<?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>161986</bug_id>
          
          <creation_ts>2016-09-14 13:52:28 -0700</creation_ts>
          <short_desc>Add CSS -webkit-appearance property for Apple Pay buttons</short_desc>
          <delta_ts>2016-09-15 12:28:57 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1229712</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-14 13:52:28 -0700</bug_when>
    <thetext>Add CSS -webkit-appearance property for Apple Pay buttons</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229741</commentid>
    <comment_count>1</comment_count>
      <attachid>288859</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-14 14:27:25 -0700</bug_when>
    <thetext>Created attachment 288859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229745</commentid>
    <comment_count>2</comment_count>
      <attachid>288861</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-14 14:38:00 -0700</bug_when>
    <thetext>Created attachment 288861
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229750</commentid>
    <comment_count>3</comment_count>
      <attachid>288863</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-14 14:47:39 -0700</bug_when>
    <thetext>Created attachment 288863
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229771</commentid>
    <comment_count>4</comment_count>
      <attachid>288870</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-14 15:17:02 -0700</bug_when>
    <thetext>Created attachment 288870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229788</commentid>
    <comment_count>5</comment_count>
      <attachid>288879</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-14 15:59:58 -0700</bug_when>
    <thetext>Created attachment 288879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229804</commentid>
    <comment_count>6</comment_count>
      <attachid>288886</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-14 16:26:41 -0700</bug_when>
    <thetext>Created attachment 288886
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229857</commentid>
    <comment_count>7</comment_count>
      <attachid>288886</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-09-14 17:56:40 -0700</bug_when>
    <thetext>Comment on attachment 288886
Patch

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

If it is possible to put the PDF artwork in Open Source, it would be good to have some ref tests for the combination of 3 styles * 4 types.

&gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:5499
&gt; +    default:
&gt; +        ASSERT_NOT_REACHED();
&gt; +        break;
&gt; +    }

Maybe pick one style between this ^^^^

&gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:5515
&gt; +    default:
&gt; +        break;
&gt; +    }
&gt; +    ASSERT_NOT_REACHED();

... and this ^^^^?

Although maybe this is standard.

Same with the ApplePayButtonType parts.

&gt; Source/WebCore/css/CSSPropertyNames.in:687
&gt; +-apple-pay-button-style [NameForMethods=ApplePayButtonStyle]
&gt; +-apple-pay-button-type [NameForMethods=ApplePayButtonType]

Wouldn&apos;t you get these names by default?

&gt; Source/WebCore/rendering/style/RenderStyle.h:1746
&gt; +#if ENABLE(APPLE_PAY)
&gt; +    void setApplePayButtonStyle(ApplePayButtonStyle v) { SET_VAR(rareInheritedData, applePayButtonStyle, static_cast&lt;unsigned&gt;(v)); }
&gt; +    void setApplePayButtonType(ApplePayButtonType v) { SET_VAR(rareInheritedData, applePayButtonType, static_cast&lt;unsigned&gt;(v)); }
&gt; +#endif

I think these should be in rareNonInheritedData, unless you think you&apos;d want to set the style on a parent element and have it inherit down.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230047</commentid>
    <comment_count>8</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-15 09:58:27 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 288886 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=288886&amp;action=review
&gt; 
&gt; If it is possible to put the PDF artwork in Open Source, it would be good to
&gt; have some ref tests for the combination of 3 styles * 4 types.

I don&apos;t think it&apos;s possible.

&gt; 
&gt; &gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:5499
&gt; &gt; +    default:
&gt; &gt; +        ASSERT_NOT_REACHED();
&gt; &gt; +        break;
&gt; &gt; +    }
&gt; 
&gt; Maybe pick one style between this ^^^^
&gt; 
&gt; &gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:5515
&gt; &gt; +    default:
&gt; &gt; +        break;
&gt; &gt; +    }
&gt; &gt; +    ASSERT_NOT_REACHED();
&gt; 
&gt; ... and this ^^^^?
&gt; 
&gt; Although maybe this is standard.

Yeah, just matched the existing switch statements.

&gt; 
&gt; Same with the ApplePayButtonType parts.
&gt; 
&gt; &gt; Source/WebCore/css/CSSPropertyNames.in:687
&gt; &gt; +-apple-pay-button-style [NameForMethods=ApplePayButtonStyle]
&gt; &gt; +-apple-pay-button-type [NameForMethods=ApplePayButtonType]
&gt; 
&gt; Wouldn&apos;t you get these names by default?

I think so.

&gt; 
&gt; &gt; Source/WebCore/rendering/style/RenderStyle.h:1746
&gt; &gt; +#if ENABLE(APPLE_PAY)
&gt; &gt; +    void setApplePayButtonStyle(ApplePayButtonStyle v) { SET_VAR(rareInheritedData, applePayButtonStyle, static_cast&lt;unsigned&gt;(v)); }
&gt; &gt; +    void setApplePayButtonType(ApplePayButtonType v) { SET_VAR(rareInheritedData, applePayButtonType, static_cast&lt;unsigned&gt;(v)); }
&gt; &gt; +#endif
&gt; 
&gt; I think these should be in rareNonInheritedData, unless you think you&apos;d want
&gt; to set the style on a parent element and have it inherit down.

Yes, you&apos;re right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230079</commentid>
    <comment_count>9</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-09-15 10:48:05 -0700</bug_when>
    <thetext>Committed r205980: &lt;http://trac.webkit.org/changeset/205980&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230133</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-09-15 12:28:57 -0700</bug_when>
    <thetext>r-, no tests :|</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288859</attachid>
            <date>2016-09-14 14:27:25 -0700</date>
            <delta_ts>2016-09-14 14:37:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161986-20160914142448.patch</filename>
            <type>text/plain</type>
            <size>35539</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1OTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZjOTk4ZWIyNzcyZGI2
ZjkwOTFhNTNhMTUwMDk2M2FlMjQ4ZWRlZS4uZDUzODcyZmRlOWVmMzc2YmY0NDE1OWMzMjI3YzRk
ZWMxOGVlMzM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDE2LTA5LTE0ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIENTUyAtd2Vi
a2l0LWFwcGVhcmFuY2UgcHJvcGVydHkgZm9yIEFwcGxlIFBheSBidXR0b25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5ODYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgLXdlYmtpdC1h
cHBlYXJhbmNlIHByb3BlcnR5LCAiLWFwcGxlLXBheS1idXR0b24iLgorICAgICAgICBBbHNvLCBh
ZGQgdHdvIHByb3BlcnRpZXMsICItYXBwbGUtcGF5LWJ1dHRvbi10eXBlIiBhbmQgIi1hcHBsZS1w
YXktYnV0dG9uLXN0eWxlIi4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgQWRkIFJlbmRlclRoZW1lQ29jb2EuaCBhbmQgUmVuZGVyVGhlbWVD
b2NvYS5tbS4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1
ZSk6CisgICAgICAgIEhhbmRsZSBDU1NQcm9wZXJ0eUFwcGxlUGF5QnV0dG9uU3R5bGUgYW5kIENT
U1Byb3BlcnR5QXBwbGVQYXlCdXR0b25UeXBlLgorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgQXBwbGVQYXlCdXR0b25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgQXBwbGVQYXlCdXR0b25UeXBlKToKKyAgICAgICAgQWRkIEFw
cGxlUGF5QnV0dG9uU3R5bGUgYW5kIEFwcGxlUGF5QnV0dG9uVHlwZSBjb252ZXJzaW9uIHJvdXRp
bmVzLgorCisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgIEFkZCAt
YXBwbGUtcGF5LWJ1dHRvbi1zdHlsZSBhbmQgLWFwcGxlLXBheS1idXR0b24tdHlwZS4KKworICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICBBZGQgQ1NTIHZhbHVlcy4K
KworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjppc0tl
eXdvcmRQcm9wZXJ0eUlEKToKKyAgICAgICAgSGFuZGxlIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0
b25TdHlsZSBhbmQgQ1NTUHJvcGVydHlBcHBsZVBheUJ1dHRvblR5cGUuCisKKyAgICAgICAgKFdl
YkNvcmU6OmlzQXBwbGVMZWdhY3lDU1NQcm9wZXJ0eUtleXdvcmQpOgorICAgICAgICBOZXcgZnVu
Y3Rpb24gdGhhdCByZXR1cm5zIHdoZXRoZXIgdGhlIENTUyBwcm9wZXJ0eSBzaG91bGQgYmUgcmV3
cml0dGVuIHRvIC13ZWJraXQtLgorICAgICAgICBXZSB3YW50IHRvIHJld3JpdGUgLWFwcGxlLSBi
dXQgbm90IC1hcHBsZS1wYXktLgorCisgICAgICAgIChXZWJDb3JlOjpjc3NQcm9wZXJ0eUlEKToK
KyAgICAgICAgVXNlIHRoZSBuZXdseSBhZGRlZCBpc0FwcGxlTGVnYWN5Q1NTUHJvcGVydHlLZXl3
b3JkLgorCisgICAgICAgIChXZWJDb3JlOjppc0FwcGxlTGVnYWN5Q1NTVmFsdWVLZXl3b3JkKToK
KyAgICAgICAgQ2hlY2sgZm9yICItYXBwbGUtcGF5LSIgaW4gYWRkaXRpb24gdG8gIi1hcHBsZS1z
eXN0ZW0tIi4KKworICAgICAgICAqIHBsYXRmb3JtL1RoZW1lVHlwZXMuaDoKKyAgICAgICAgQWRk
IEFwcGxlUGF5QnV0dG9uUGFydC4KKworICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9QYXNz
S2l0U1BJLmg6CisgICAgICAgIEFkZCBQS0RyYXdBcHBsZVBheUJ1dHRvbiBkZWNsYXJhdGlvbi4K
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUpOgorICAgICAgICBIYW5kbGUgQXBwbGVQYXlCdXR0
b25QYXJ0LgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOgorICAgICAg
ICBIYW5kbGUgQXBwbGVQYXlCdXR0b25QYXJ0LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0QXBwbGVQYXlC
dXR0b25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRBcHBsZVBh
eUJ1dHRvbik6CisgICAgICAgIEFkZCBuZXcgZnVuY3Rpb25zLgorCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ29jb2EuaDogQWRkZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDb2Nv
YTo6YWRqdXN0QXBwbGVQYXlCdXR0b25TdHlsZSk6CisgICAgICAgIEFkanVzdCB0aGUgbWluaW11
bSB3aWR0aCBhbmQgbWluaW11bSBoZWlnaHQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKFdlYkNv
cmU6OnRvUEtQYXltZW50QnV0dG9uU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6dG9QS1BheW1l
bnRCdXR0b25UeXBlKToKKyAgICAgICAgSGVscGVyIGZ1bmN0aW9ucyB0aGF0IGNvbnZlciBvdXIg
V2ViQ29yZSB0eXBlcyB0byBQSyB0eXBlcy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVDb2NvYTo6cGFpbnRBcHBsZVBheUJ1dHRvbik6CisgICAgICAgIENhbGwgUEtEcmF3QXBwbGVQ
YXlCdXR0b24uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgSW5oZXJpdCBmcm9tIFJl
bmRlclRoZW1lQ29jb2EuCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjphcHBsZVBheUJ1dHRvblN0eWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjphcHBsZVBheUJ1dHRvblR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEFwcGxlUGF5QnV0dG9uU3R5bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEFwcGxlUGF5QnV0dG9uVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5pdGlhbEFwcGxlUGF5QnV0dG9uU3R5bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmluaXRpYWxBcHBsZVBheUJ1dHRvblR5cGUp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9
PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoK
KyAgICAgICAgQWRkIG5ldyBzdHlsZSBtZW1iZXJzIGZvciB0aGUgYnV0dG9uIHN0eWxlIGFuZCBi
dXR0b24gdHlwZSBwcm9wZXJ0aWVzLgorCiAyMDE2LTA5LTE0ICBDYXJsb3MgR2FybmFjaG8gPGNh
cmxvc2dAZ25vbWUub3JnPgogCiAgICAgICAgIFtHVEtdW1dheWxhbmRdIEltcGxlbWVudCBjbGlw
Ym9hcmQgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDcxNjZjYmNkNzIyNDgxN2YwNGMyOTNmYTgwMjg4OTIzNTZiZDQ1
Y2YuLjM2ZDBlZmFiMmU5OWExNTIzNWE0OThhYWE0MWQ5YmFjYTkwNTIwNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY5OCw2
ICs2OTgsOCBAQAogCQkxQTIyNDY0RTBDQzk4RERCMDBDMDUyNDAgLyogU1FMaXRlVHJhbnNhY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjI0
NjQ4MENDOThEREIwMEMwNTI0MCAvKiBTUUxpdGVUcmFuc2FjdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMjQ4NDREMUQxQTI3MkEwMEY1
NkJBNyAvKiBQYXltZW50SGVhZGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUEyNDg0NEMxRDFBMjcwMTAwRjU2QkE3IC8qIFBheW1lbnRIZWFkZXJz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUEy
NTBFMEQxQ0RENjMyMDAwRDBCRTYzIC8qIExpbmtJY29uVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyNTBFMEMxQ0RENjMyMDAwRDBCRTYzIC8q
IExpbmtJY29uVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTFBMjk5RkU3MUQ3RjVGQTYwMEE2MDA5MyAvKiBSZW5kZXJUaGVtZUNvY29hLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyOTlGRTUx
RDdGNUZBNjAwQTYwMDkzIC8qIFJlbmRlclRoZW1lQ29jb2EubW0gKi87IH07CisJCTFBMjk5RkU4
MUQ3RjVGQTYwMEE2MDA5MyAvKiBSZW5kZXJUaGVtZUNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTI5OUZFNjFEN0Y1RkE2MDBBNjAwOTMgLyog
UmVuZGVyVGhlbWVDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTFBMkE2ODIzMEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyQTY4
MjEwQjVCRURFNzAwMDJBNDgwIC8qIFByb2dyZXNzVHJhY2tlci5jcHAgKi87IH07CiAJCTFBMkE2
ODI0MEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMkE2ODIyMEI1QkVERTcwMDAyQTQ4MCAv
KiBQcm9ncmVzc1RyYWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkxQTJBQUM1ODBEQzJBM0IxMDBBMjBEOUEgLyogQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUEyQUFDNTYwREMyQTNCMTAwQTIwRDlBIC8qIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNw
cCAqLzsgfTsKQEAgLTc1NDUsNiArNzU0Nyw4IEBACiAJCTFBMjI0NjQ4MENDOThEREIwMEMwNTI0
MCAvKiBTUUxpdGVUcmFuc2FjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTUUxpdGVUcmFuc2FjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTI0
ODQ0QzFEMUEyNzAxMDBGNTZCQTcgLyogUGF5bWVudEhlYWRlcnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudEhlYWRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUEyNTBFMEMxQ0RENjMyMDAwRDBCRTYzIC8qIExpbmtJY29uVHlwZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaW5rSWNvblR5cGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUEyOTlGRTUxRDdGNUZBNjAwQTYwMDkzIC8qIFJlbmRlclRoZW1l
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW5kZXJU
aGVtZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQTI5OUZFNjFEN0Y1
RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW5kZXJUaGVtZUNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFBMkE2ODIxMEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb2dyZXNzVHJhY2tlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMkE2ODIyMEI1QkVERTcwMDAyQTQ4MCAvKiBQ
cm9ncmVzc1RyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2dy
ZXNzVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTJBQUM1NjBEQzJB
M0IxMDBBMjBEOUEgLyogQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI4NjUsNiArMjI4NjksOCBAQAogCQkJCUU0Qzkx
QTE1MTgwOTk5RjEwMEExN0Y2RCAvKiBSZW5kZXJUZXh0TGluZUJveGVzLmggKi8sCiAJCQkJQkNF
QTQ4NEEwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlclRoZW1lLmNwcCAqLywKIAkJCQlCQ0VBNDg0
QjA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyVGhlbWUuaCAqLywKKwkJCQkxQTI5OUZFNjFEN0Y1
RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVDb2NvYS5oICovLAorCQkJCTFBMjk5RkU1MUQ3RjVG
QTYwMEE2MDA5MyAvKiBSZW5kZXJUaGVtZUNvY29hLm1tICovLAogCQkJCUZFRDEzRDUwMENFQTk0
OTcwMEQ4OTQ2NiAvKiBSZW5kZXJUaGVtZUlPUy5oICovLAogCQkJCUM1NUM3QkEwMTcxOEFGQkEw
MDEzMjdFNCAvKiBSZW5kZXJUaGVtZUlPUy5tbSAqLywKIAkJCQlCQ0VBNDg0ODA5N0Q5MzAyMDA5
NEM5RTQgLyogUmVuZGVyVGhlbWVNYWMuaCAqLywKQEAgLTI1MTEzLDYgKzI1MTE5LDcgQEAKIAkJ
CQlCQzkyNkY4MTBDMDU1MjQ3MDA4Mjc3NkIgLyogSlNIVE1MRnJhbWVTZXRFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBODBFN0IxNTBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTJBQTJGMEExQ0RBQjQwMEI0MkIyNSAvKiBK
U0hUTUxIZWFkaW5nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUEyOTlGRTgxRDdGNUZB
NjAwQTYwMDkzIC8qIFJlbmRlclRoZW1lQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTJB
QTMxMEExQ0RBQjQwMEI0MkIyNSAvKiBKU0hUTUxIUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBODVCMTkwMEExQjE4QTIwMEQ4Qzg3QyAvKiBKU0hUTUxIdG1sRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM0OTE4QzkwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2NjAsNiArMjc2NjcsNyBAQAogCQkJCUY0NUMy
MzFEMTk5NUI3M0IwMEE2RTJFMyAvKiBBeGlzU2Nyb2xsU25hcE9mZnNldHMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzdGNTdBQ0YxQTUwNzJERDAwODc2Rjk4IC8qIEFYT2JqZWN0Q2FjaGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQUFBNzI4RjkxNkQxRDhCQzAwRDNCQkM2IC8qIEFYT2JqZWN0
Q2FjaGVJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQkxQTI5OUZFNzFEN0Y1RkE2MDBBNjAwOTMg
LyogUmVuZGVyVGhlbWVDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI5QTgxMjRCMEZCQjlD
QTkwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNB
OEM4MUYxMUUzRDM2OTAwODEyRkI3IC8qIEJhY2tGb3J3YXJkQ29udHJvbGxlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQ0E4Q0E1RjExRTRFNkQxMDA4MTJGQjcgLyogQmFja0ZvcndhcmRMaXN0
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBiYTA4MTg2NTUwOGQyODZkNGU5NWZhOWQxOWY1
ZmVlZGZiZWVlNTIwLi44M2IxMzJkMTY2YmQ2YzlmMzYxYzM3ZmQyMWFjMTllMTBkODk5N2E2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcApAQCAtMzc1Myw2ICszNzUzLDEzIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHls
ZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsCiAgICAg
ICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLT50cmFpbGluZ1dv
cmQoKSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlBcHBsZVBheUJ1dHRvblN0eWxlOgorICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbC5jcmVhdGVWYWx1ZShzdHlsZS0+YXBwbGVQYXlCdXR0b25TdHlsZSgpKTsKKyAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eUFwcGxlUGF5QnV0dG9uVHlwZToKKyAgICAgICAgICAgIHJldHVybiBj
c3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUtPmFwcGxlUGF5QnV0dG9uVHlwZSgpKTsKKyNl
bmRpZgorCiAgICAgICAgIC8qIEluZGl2aWR1YWwgcHJvcGVydGllcyBub3QgcGFydCBvZiB0aGUg
c3BlYyAqLwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFJlcGVhdFg6CiAgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUmVwZWF0WToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IDRlZmMwN2ZkOTdhNWU3YzBj
ZDQzNTdmODk3MzJkNDFlM2E0MWZjODkuLjhmOGVhNDExMjEyMDZhNTMyODgzMWJkNjg1ZDFkZjJl
MmVjZTk4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaApAQCAtNjE2LDYgKzYxNiwxMSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQgZSkKICAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbWFnZUNvbnRyb2xzQnV0dG9uOwogICAgICAgICBicmVhazsK
ICNlbmRpZgorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblBh
cnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXBwbGVQYXlCdXR0b247Cisg
ICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgfQogfQogCkBAIC01NDczLDYgKzU0NzgsODcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRyYWlsaW5nV29y
ZCgpIGNvbnN0CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVkpCit0ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQXBwbGVQYXlCdXR0
b25TdHlsZSBlKQorICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgbV9wcmlt
aXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKKyAgICBzd2l0Y2ggKGUpIHsKKyAgICBjYXNl
IEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBD
U1NWYWx1ZVdoaXRlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5
bGU6OldoaXRlT3V0bGluZToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXaGl0
ZU91dGxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25TdHlsZTo6
QmxhY2s6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmxhY2s7CisgICAgICAg
IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBBcHBsZVBheUJ1dHRvblN0eWxlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQo
aXNWYWx1ZUlEKCkpOworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBD
U1NWYWx1ZVdoaXRlOgorICAgICAgICByZXR1cm4gQXBwbGVQYXlCdXR0b25TdHlsZTo6V2hpdGU7
CisgICAgY2FzZSBDU1NWYWx1ZVdoaXRlT3V0bGluZToKKyAgICAgICAgcmV0dXJuIEFwcGxlUGF5
QnV0dG9uU3R5bGU6OldoaXRlT3V0bGluZTsKKyAgICBjYXNlIENTU1ZhbHVlQmxhY2s6CisgICAg
ICAgIHJldHVybiBBcHBsZVBheUJ1dHRvblN0eWxlOjpCbGFjazsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IEFwcGxlUGF5QnV0dG9uU3R5bGU6OkJsYWNrOworfQorCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQXBwbGVQYXlCdXR0b25UeXBlIGUpCisg
ICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBl
ID0gQ1NTX1ZBTFVFX0lEOworICAgIHN3aXRjaCAoZSkgeworICAgIGNhc2UgQXBwbGVQYXlCdXR0
b25UeXBlOjpQbGFpbjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQbGFpbjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkJ1eToKKyAgICAg
ICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCdXk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQXBwbGVQYXlCdXR0b25UeXBlOjpTZXRVcDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVTZXRVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5
cGU6OkluU3RvcmU6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5TdG9yZTsK
KyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJp
bWl0aXZlVmFsdWU6Om9wZXJhdG9yIEFwcGxlUGF5QnV0dG9uVHlwZSgpIGNvbnN0Cit7CisgICAg
QVNTRVJUKGlzVmFsdWVJRCgpKTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAg
IGNhc2UgQ1NTVmFsdWVQbGFpbjoKKyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6
UGxhaW47CisgICAgY2FzZSBDU1NWYWx1ZUJ1eToKKyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0
dG9uVHlwZTo6QnV5OworICAgIGNhc2UgQ1NTVmFsdWVTZXRVcDoKKyAgICAgICAgcmV0dXJuIEFw
cGxlUGF5QnV0dG9uVHlwZTo6U2V0VXA7CisgICAgY2FzZSBDU1NWYWx1ZUluU3RvcmU6CisgICAg
ICAgIHJldHVybiBBcHBsZVBheUJ1dHRvblR5cGU6OkluU3RvcmU7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biBBcHBsZVBheUJ1dHRvblR5cGU6OlBsYWluOworfQorI2VuZGlmCisKIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250VmFyaWFudFBvc2l0
aW9uIHBvc2l0aW9uKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IDliOWVlM2U2MjY2ZjE0ODY1YWM5MDdk
MzIxZWI5YzdhZDE0YTY3OGQuLjg4NjEzMzljZjNjOWFlYzI2YzMwMzY4Yjg1ODRiNTJmNmMxOTdl
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC02ODEsMyArNjgx
LDggQEAgdG91Y2gtYWN0aW9uCiAjaWYgZGVmaW5lZChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQp
ICYmIEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRAogLWFwcGxlLXRyYWlsaW5nLXdvcmQgW0luaGVy
aXRlZCwgTmFtZUZvck1ldGhvZHM9VHJhaWxpbmdXb3JkXQogI2VuZGlmCisKKyNpZiBkZWZpbmVk
KEVOQUJMRV9BUFBMRV9QQVkpICYmIEVOQUJMRV9BUFBMRV9QQVkKKy1hcHBsZS1wYXktYnV0dG9u
LXN0eWxlIFtOYW1lRm9yTWV0aG9kcz1BcHBsZVBheUJ1dHRvblN0eWxlXQorLWFwcGxlLXBheS1i
dXR0b24tdHlwZSBbTmFtZUZvck1ldGhvZHM9QXBwbGVQYXlCdXR0b25UeXBlXQorI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDExZTg1MWI4MGM3MDIyMDky
NDhmYWViNjA4ODhjZjU2MjVmZjA2ZDcuLmY4ZmY2ZWExYWEzYWU3NWJkZTg0YTBhMzJlZWE2MTQ2
MzliZjVhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRz
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC04MDYs
NiArODA2LDkgQEAgcmF0aW5nLWxldmVsLWluZGljYXRvcgogI2lmIGRlZmluZWQoRU5BQkxFX1NF
UlZJQ0VfQ09OVFJPTFMpICYmIEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTCiBpbWFnZS1jb250cm9s
cy1idXR0b24KICNlbmRpZgorI2lmIGRlZmluZWQoRU5BQkxFX0FQUExFX1BBWSkgJiYgRU5BQkxF
X0FQUExFX1BBWQorLWFwcGxlLXBheS1idXR0b24KKyNlbmRpZgogdGV4dGFyZWEKICNpZiBkZWZp
bmVkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICYmIEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1F
TlQKIGF0dGFjaG1lbnQKQEAgLTExODUsNiArMTE4OCwxNyBAQCBmcm9tLWludHJpbnNpYwogLXdl
YmtpdC1wYXJ0aWFsbHktYmFsYW5jZWQKICNlbmRpZgogCisjaWYgZGVmaW5lZChFTkFCTEVfQVBQ
TEVfUEFZKSAmJiBFTkFCTEVfQVBQTEVfUEFZCisvLyAtYXBwbGUtcGF5LWJ1dHRvbi1zdHlsZQor
d2hpdGUtb3V0bGluZQorCisvLyAtYXBwbGUtcGF5LWJ1dHRvbi10eXBlCitwbGFpbgorYnV5Citz
ZXQtdXAKK2luLXN0b3JlCisjZW5kaWYKKwogLy8gZm9udC1zeW50aGVzaXMKIHdlaWdodAogc3R5
bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcAppbmRleCA5YjI1MjkyNjVk
OWNhYzgxMzk2NjNhMmVhM2YwN2YzODg1Y2FhZWVlLi5iNmIzMjI4MjI2NWQwY2I5NzZhNDQyMjU0
MDI2YTIzYTI1MDg0Zjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3Bw
CkBAIC0xMDQ5LDYgKzEwNDksMTYgQEAgc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRLZXl3b3Jk
UHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIGludAogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCisjaWYgRU5BQkxFKEFQUExF
X1BBWSkKKyAgICBjYXNlIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0b25TdHlsZTogLy8gd2hpdGUg
fCB3aGl0ZS1vdXRsaW5lIHwgYmxhY2sKKyAgICAgICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVX
aGl0ZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2hpdGVPdXRsaW5lIHx8IHZhbHVlSUQgPT0gQ1NT
VmFsdWVCbGFjaykKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0b25UeXBlOiAvLyBwbGFpbiB8IGJ1eSB8IHNl
dC11cCB8IGluLXN0b3JlCisgICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlUGxhaW4gfHwg
dmFsdWVJRCA9PSBDU1NWYWx1ZUJ1eSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU2V0VXAgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZUluU3RvcmUpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgYnJlYWs7CisjZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFZhcmlhbnRQb3NpdGlv
bjogLy8gbm9ybWFsIHwgc3ViIHwgc3VwZXIKICAgICAgICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFs
dWVOb3JtYWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVN1YiB8fCB2YWx1ZUlEID09IENTU1ZhbHVl
U3VwZXIpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEyMjQsNiArMTIzNCwxMCBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgaXNLZXl3b3JkUHJvcGVydHlJRChDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5SWQpCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0U2Nyb2xsU25hcFR5cGU6CiAjZW5kaWYKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAg
IGNhc2UgQ1NTUHJvcGVydHlBcHBsZVBheUJ1dHRvblN0eWxlOgorICAgIGNhc2UgQ1NTUHJvcGVy
dHlBcHBsZVBheUJ1dHRvblR5cGU6CisjZW5kaWYKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eUp1c3RpZnlDb250ZW50OgogICAgIGNhc2UgQ1NTUHJvcGVydHlBbGln
bkNvbnRlbnQ6CkBAIC0xMzM4Nyw2ICsxMzQwMSwxNSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VW
aWV3cG9ydFNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BJZCwgQ1NTUHJvcGVydHlJRCBmaXJz
dAogfQogI2VuZGlmCiAKK3N0YXRpYyBib29sIGlzQXBwbGVMZWdhY3lDU1NQcm9wZXJ0eUtleXdv
cmQoY29uc3QgY2hhciogcHJvcGVydHlLZXl3b3JkLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAg
c3RhdGljIGNvbnN0IGNoYXIgYXBwbGVQcmVmaXhbXSA9ICItYXBwbGUtIjsKKyAgICBzdGF0aWMg
Y29uc3QgY2hhciBhcHBsZVBheVByZWZpeFtdID0gIi1hcHBsZS1wYXktIjsKKworICAgIHJldHVy
biBoYXNQcmVmaXgocHJvcGVydHlLZXl3b3JkLCBsZW5ndGgsIGFwcGxlUHJlZml4KQorICAgICAg
ICAmJiAhaGFzUHJlZml4KHByb3BlcnR5S2V5d29yZCwgbGVuZ3RoLCBhcHBsZVBheVByZWZpeCk7
Cit9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgogc3RhdGljIENTU1Byb3Bl
cnR5SUQgY3NzUHJvcGVydHlJRChjb25zdCBDaGFyYWN0ZXJUeXBlKiBwcm9wZXJ0eU5hbWUsIHVu
c2lnbmVkIGxlbmd0aCkKIHsKQEAgLTEzNDA2LDcgKzEzNDI5LDcgQEAgc3RhdGljIENTU1Byb3Bl
cnR5SUQgY3NzUHJvcGVydHlJRChjb25zdCBDaGFyYWN0ZXJUeXBlKiBwcm9wZXJ0eU5hbWUsIHVu
c2lnbmVkIGwKICAgICAgICAgLy8gSWYgdGhlIHByZWZpeCBpcyAtYXBwbGUtIG9yIC1raHRtbC0s
IGNoYW5nZSBpdCB0byAtd2Via2l0LS4KICAgICAgICAgLy8gVGhpcyBtYWtlcyB0aGUgc3RyaW5n
IG9uZSBjaGFyYWN0ZXIgbG9uZ2VyLgogICAgICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5sZWdhY3lDU1NWZW5kb3JQcmVmaXhlc0VuYWJsZWQoKQotICAg
ICAgICAgICAgJiYgKGhhc1ByZWZpeChidWZmZXIsIGxlbmd0aCwgIi1hcHBsZS0iKSB8fCBoYXNQ
cmVmaXgoYnVmZmVyLCBsZW5ndGgsICIta2h0bWwtIikpKSB7CisgICAgICAgICAgICAmJiAoaXNB
cHBsZUxlZ2FjeUNTU1Byb3BlcnR5S2V5d29yZChidWZmZXIsIGxlbmd0aCkgfHwgaGFzUHJlZml4
KGJ1ZmZlciwgbGVuZ3RoLCAiLWtodG1sLSIpKSkgewogICAgICAgICAgICAgbWVtbW92ZShidWZm
ZXIgKyA3LCBidWZmZXIgKyA2LCBsZW5ndGggKyAxIC0gNik7CiAgICAgICAgICAgICBtZW1jcHko
YnVmZmVyLCAiLXdlYmtpdCIsIDcpOwogICAgICAgICAgICAgKytsZW5ndGg7CkBAIC0xMzQ1Nywx
NCArMTM0ODAsMTYgQEAgdm9pZCBjc3NQcm9wZXJ0eU5hbWVJT1NBbGlhc2luZyhjb25zdCBjaGFy
KiBwcm9wZXJ0eU5hbWUsIGNvbnN0IGNoYXIqJiBwcm9wZXJ0eU4KIH0KICNlbmRpZgogCi1zdGF0
aWMgYm9vbCBpc0FwcGxlTGVnYWN5Q3NzVmFsdWVLZXl3b3JkKGNvbnN0IGNoYXIqIHZhbHVlS2V5
d29yZCwgdW5zaWduZWQgbGVuZ3RoKQorc3RhdGljIGJvb2wgaXNBcHBsZUxlZ2FjeUNTU1ZhbHVl
S2V5d29yZChjb25zdCBjaGFyKiB2YWx1ZUtleXdvcmQsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAg
ICBzdGF0aWMgY29uc3QgY2hhciBhcHBsZVByZWZpeFtdID0gIi1hcHBsZS0iOwotICAgIHN0YXRp
YyBjb25zdCBjaGFyIGFwcGxlU3lzdGVtUHJlZml4W10gPSAiLWFwcGxlLXN5c3RlbSI7CisgICAg
c3RhdGljIGNvbnN0IGNoYXIgYXBwbGVTeXN0ZW1QcmVmaXhbXSA9ICItYXBwbGUtc3lzdGVtLSI7
CisgICAgc3RhdGljIGNvbnN0IGNoYXIgYXBwbGVQYXlQcmVmaXhbXSA9ICItYXBwbGUtcGF5LSI7
CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGFwcGxlV2lyZWxlc3NQbGF5YmFja1RhcmdldEFjdGl2
ZSA9IGdldFZhbHVlTmFtZShDU1NWYWx1ZUFwcGxlV2lyZWxlc3NQbGF5YmFja1RhcmdldEFjdGl2
ZSk7CiAKICAgICByZXR1cm4gaGFzUHJlZml4KHZhbHVlS2V5d29yZCwgbGVuZ3RoLCBhcHBsZVBy
ZWZpeCkKICAgICAgICAgJiYgIWhhc1ByZWZpeCh2YWx1ZUtleXdvcmQsIGxlbmd0aCwgYXBwbGVT
eXN0ZW1QcmVmaXgpCisgICAgICAgICYmICFoYXNQcmVmaXgodmFsdWVLZXl3b3JkLCBsZW5ndGgs
IGFwcGxlUGF5UHJlZml4KQogICAgICAgICAmJiAhV1RGOjplcXVhbChyZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4odmFsdWVLZXl3b3JkKSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KGFwcGxlV2lyZWxlc3NQbGF5YmFja1RhcmdldEFjdGl2ZSksIGxlbmd0aCk7CiB9CiAKQEAg
LTEzNDg2LDcgKzEzNTExLDcgQEAgc3RhdGljIENTU1ZhbHVlSUQgY3NzVmFsdWVLZXl3b3JkSUQo
Y29uc3QgQ2hhcmFjdGVyVHlwZSogdmFsdWVLZXl3b3JkLCB1bnNpZ25lZAogICAgICAgICAvLyBU
aGlzIG1ha2VzIHRoZSBzdHJpbmcgb25lIGNoYXJhY3RlciBsb25nZXIuCiAgICAgICAgIC8vIE9u
IGlPUyB3ZSBkb24ndCB3YW50IHRvIGNoYW5nZSB2YWx1ZXMgc3RhcnRpbmcgd2l0aCAtYXBwbGUt
c3lzdGVtIHRvIC13ZWJraXQtc3lzdGVtLgogICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMg
bWFuZ2xpbmcgd2l0aG91dCBicmVha2luZyB0aGUgd2ViLgotICAgICAgICBpZiAoaXNBcHBsZUxl
Z2FjeUNzc1ZhbHVlS2V5d29yZChidWZmZXIsIGxlbmd0aCkgfHwgaGFzUHJlZml4KGJ1ZmZlciwg
bGVuZ3RoLCAiLWtodG1sLSIpKSB7CisgICAgICAgIGlmIChpc0FwcGxlTGVnYWN5Q1NTVmFsdWVL
ZXl3b3JkKGJ1ZmZlciwgbGVuZ3RoKSB8fCBoYXNQcmVmaXgoYnVmZmVyLCBsZW5ndGgsICIta2h0
bWwtIikpIHsKICAgICAgICAgICAgIG1lbW1vdmUoYnVmZmVyICsgNywgYnVmZmVyICsgNiwgbGVu
Z3RoICsgMSAtIDYpOwogICAgICAgICAgICAgbWVtY3B5KGJ1ZmZlciwgIi13ZWJraXQiLCA3KTsK
ICAgICAgICAgICAgICsrbGVuZ3RoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGhlbWVUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCmlu
ZGV4IDA5OTQ1MzkxNzQxNWU5M2IwYzU3OTUyNzc1ZTY4YjM0MThmZWFkNTYuLjUwZTZlZGNiZjNi
MDliZGVhMTEwMTg1YzViZDJiYWE2NjU0NGViMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1RoZW1lVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVt
ZVR5cGVzLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5k
ZWYgVGhlbWVUeXBlc19oCi0jZGVmaW5lIFRoZW1lVHlwZXNfaAorI3ByYWdtYSBvbmNlCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDksNiArNDgsOSBAQCBlbnVtIENvbnRyb2xQYXJ0IHsK
ICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBJbWFnZUNvbnRyb2xzQnV0dG9uUGFy
dCwKICNlbmRpZgorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgQXBwbGVQYXlCdXR0b25QYXJ0
LAorI2VuZGlmCiAgICAgVGV4dEFyZWFQYXJ0LAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1F
TlQpCiAgICAgQXR0YWNobWVudFBhcnQsCkBAIC03Myw0ICs3NSwzIEBAIGVudW0gVGhlbWVDb2xv
ciB7CiB9OwogCiB9Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NwaS9jb2NvYS9QYXNzS2l0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29j
b2EvUGFzc0tpdFNQSS5oCmluZGV4IGEwYzdiOTk4NGU3ZWU3MTk5NzU5NTkwNjI4NTkyNTQzOTVk
ZjkxMDkuLmVmYWEyNzZiZTE0ZTBjNDk2OWI0OTgwNDk4NDQ2OTA0ZTE5MWRkYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9QYXNzS2l0U1BJLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1Bhc3NLaXRTUEkuaApAQCAtMjE0LDMg
KzIxNCw2IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQK
IAogI2VuZGlmCisKK2V4dGVybiAiQyIKK3ZvaWQgUEtEcmF3QXBwbGVQYXlCdXR0b24oQ0dDb250
ZXh0UmVmLCBDR1JlY3QgZHJhd1JlY3QsIENHRmxvYXQgc2NhbGUsIFBLUGF5bWVudEJ1dHRvblR5
cGUsIFBLUGF5bWVudEJ1dHRvblN0eWxlLCBOU1N0cmluZyAqbGFuZ3VhZ2VDb2RlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4IDI3NTZmNmI0NTcwODMzNmZh
ZTY0M2EwNjE3MGZhYjU4ZWIxYjA4MTkuLmNkZDAxZTM0ZjcyYjdhZjc5ZDhiNjNiZGJhZjlhMjZk
YTBkNjE2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAt
MjUzLDYgKzI1MywxMCBAQCB2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RTdHlsZShTdHlsZVJlc29s
dmVyJiBzdHlsZVJlc29sdmVyLCBSZW5kZXJTdHlsZSYgc3R5bGUsCiAjZW5kaWYKICAgICBjYXNl
IENhcHNMb2NrSW5kaWNhdG9yUGFydDoKICAgICAgICAgcmV0dXJuIGFkanVzdENhcHNMb2NrSW5k
aWNhdG9yU3R5bGUoc3R5bGVSZXNvbHZlciwgc3R5bGUsIGVsZW1lbnQpOworI2lmIEVOQUJMRShB
UFBMRV9QQVkpCisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblBhcnQ6CisgICAgICAgIHJldHVybiBh
ZGp1c3RBcHBsZVBheUJ1dHRvblN0eWxlKHN0eWxlUmVzb2x2ZXIsIHN0eWxlLCBlbGVtZW50KTsK
KyNlbmRpZgogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgY2FzZSBBdHRhY2ht
ZW50UGFydDoKICAgICAgICAgcmV0dXJuIGFkanVzdEF0dGFjaG1lbnRTdHlsZShzdHlsZVJlc29s
dmVyLCBzdHlsZSwgZWxlbWVudCk7CkBAIC00MDEsNiArNDA1LDEwIEBAIGJvb2wgUmVuZGVyVGhl
bWU6OnBhaW50KGNvbnN0IFJlbmRlckJveCYgYm94LCBDb250cm9sU3RhdGVzJiBjb250cm9sU3Rh
dGVzLCBjb25zCiAjZW5kaWYKICAgICBjYXNlIENhcHNMb2NrSW5kaWNhdG9yUGFydDoKICAgICAg
ICAgcmV0dXJuIHBhaW50Q2Fwc0xvY2tJbmRpY2F0b3IoYm94LCBwYWludEluZm8sIGludGVncmFs
U25hcHBlZFJlY3QpOworI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgY2FzZSBBcHBsZVBheUJ1
dHRvblBhcnQ6CisgICAgICAgIHJldHVybiBwYWludEFwcGxlUGF5QnV0dG9uKGJveCwgcGFpbnRJ
bmZvLCBpbnRlZ3JhbFNuYXBwZWRSZWN0KTsKKyNlbmRpZgogI2lmIEVOQUJMRShBVFRBQ0hNRU5U
X0VMRU1FTlQpCiAgICAgY2FzZSBBdHRhY2htZW50UGFydDoKICAgICAgICAgcmV0dXJuIHBhaW50
QXR0YWNobWVudChib3gsIHBhaW50SW5mbywgaW50ZWdyYWxTbmFwcGVkUmVjdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IDM2YTRjODlhNmNkMWIzMDcyNTY4ODU0
MjAyYjVkZWQ0Mjg0MWRiZTUuLjM5Yjk3Yzg2YWRlMTdkYzJjMmE2ZjQ5YzQ0NTE4YTExM2ZkNzJk
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBAIC0zMjUsNiArMzI1
LDExIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0Q2Fwc0xvY2tJbmRpY2F0
b3JTdHlsZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29u
c3Q7CiAgICAgdmlydHVhbCBib29sIHBhaW50Q2Fwc0xvY2tJbmRpY2F0b3IoY29uc3QgUmVuZGVy
T2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogCisjaWYgRU5BQkxF
KEFQUExFX1BBWSkKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0QXBwbGVQYXlCdXR0b25TdHlsZShT
dHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3QgeyB9Cisg
ICAgdmlydHVhbCBib29sIHBhaW50QXBwbGVQYXlCdXR0b24oY29uc3QgUmVuZGVyT2JqZWN0Jiwg
Y29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KKyNlbmRp
ZgorCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICB2aXJ0dWFsIHZvaWQgYWRq
dXN0QXR0YWNobWVudFN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYsIGNvbnN0IEVs
ZW1lbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRBdHRhY2htZW50KGNvbnN0IFJl
bmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzNjkwZmYy
NjMyMDljZTQ1ZGE5YTkyZTljZTk2YTc3OWE4ZDQ4ODkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5oCkBAIC0wLDAgKzEsMzggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyVGhlbWVDb2NvYSA6IHB1YmxpYyBS
ZW5kZXJUaGVtZSB7Citwcml2YXRlOgorICAgIHZvaWQgYWRqdXN0QXBwbGVQYXlCdXR0b25TdHls
ZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgYm9vbCBwYWludEFwcGxlUGF5QnV0dG9uKGNvbnN0IFJlbmRlck9iamVjdCYs
IGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKK307CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjY5NThiOWNkZGY0Njc3NzJiNWZjYmY1ZjA4NTU0NmFiNjU4NmQ2YgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCkBAIC0wLDAg
KzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVu
ZGVyVGhlbWVDb2NvYS5oIgorCisjaW5jbHVkZSAiUGFzc0tpdFNQSS5oIgorI2luY2x1ZGUgIlJl
bmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiU29mdExp
bmtpbmcuaCIKKyNpbmNsdWRlICJUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKKworI2lm
IFBMQVRGT1JNKE1BQykKK1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhQYXNzS2l0KTsKKyNl
bHNlCitTT0ZUX0xJTktfRlJBTUVXT1JLKFBhc3NLaXQpOworI2VuZGlmCisKK1NPRlRfTElOS19N
QVlfRkFJTChQYXNzS2l0LCBQS0RyYXdBcHBsZVBheUJ1dHRvbiwgdm9pZCwgKENHQ29udGV4dFJl
ZiBjb250ZXh0LCBDR1JlY3QgZHJhd1JlY3QsIENHRmxvYXQgc2NhbGUsIFBLUGF5bWVudEJ1dHRv
blR5cGUgdHlwZSwgUEtQYXltZW50QnV0dG9uU3R5bGUgc3R5bGUsIE5TU3RyaW5nICpsYW5ndWFn
ZUNvZGUpLCAoY29udGV4dCwgZHJhd1JlY3QsIHNjYWxlLCB0eXBlLCBzdHlsZSwgbGFuZ3VhZ2VD
b2RlKSk7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGNvbnN0IGF1dG8gYXBwbGVQ
YXlCdXR0b25NaW5pbXVtV2lkdGggPSAxNDA7CitzdGF0aWMgY29uc3QgYXV0byBhcHBsZVBheUJ1
dHRvblBsYWluTWluaW11bVdpZHRoID0gMTAwOworc3RhdGljIGNvbnN0IGF1dG8gYXBwbGVQYXlC
dXR0b25NaW5pbXVtSGVpZ2h0ID0gMzA7CisKK3ZvaWQgUmVuZGVyVGhlbWVDb2NvYTo6YWRqdXN0
QXBwbGVQYXlCdXR0b25TdHlsZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmIHN0eWxlLCBj
b25zdCBFbGVtZW50KikgY29uc3QKK3sKKyAgICBpZiAoc3R5bGUuYXBwbGVQYXlCdXR0b25UeXBl
KCkgPT0gQXBwbGVQYXlCdXR0b25UeXBlOjpQbGFpbikKKyAgICAgICAgc3R5bGUuc2V0TWluV2lk
dGgoTGVuZ3RoKGFwcGxlUGF5QnV0dG9uUGxhaW5NaW5pbXVtV2lkdGgsIEZpeGVkKSk7CisgICAg
ZWxzZQorICAgICAgICBzdHlsZS5zZXRNaW5XaWR0aChMZW5ndGgoYXBwbGVQYXlCdXR0b25NaW5p
bXVtV2lkdGgsIEZpeGVkKSk7CisgICAgc3R5bGUuc2V0TWluSGVpZ2h0KExlbmd0aChhcHBsZVBh
eUJ1dHRvbk1pbmltdW1IZWlnaHQsIEZpeGVkKSk7Cit9CisKK3N0YXRpYyBQS1BheW1lbnRCdXR0
b25TdHlsZSB0b1BLUGF5bWVudEJ1dHRvblN0eWxlKEFwcGxlUGF5QnV0dG9uU3R5bGUgc3R5bGUp
Cit7CisgICAgc3dpdGNoIChzdHlsZSkgeworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25TdHlsZTo6
V2hpdGU6CisgICAgICAgIHJldHVybiBQS1BheW1lbnRCdXR0b25TdHlsZVdoaXRlOworICAgIGNh
c2UgQXBwbGVQYXlCdXR0b25TdHlsZTo6V2hpdGVPdXRsaW5lOgorICAgICAgICByZXR1cm4gUEtQ
YXltZW50QnV0dG9uU3R5bGVXaGl0ZU91dGxpbmU7CisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblN0
eWxlOjpCbGFjazoKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJ1dHRvblN0eWxlQmxhY2s7Cisg
ICAgfQorfQorCitzdGF0aWMgUEtQYXltZW50QnV0dG9uVHlwZSB0b1BLUGF5bWVudEJ1dHRvblR5
cGUoQXBwbGVQYXlCdXR0b25UeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAg
Y2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OlBsYWluOgorICAgICAgICByZXR1cm4gUEtQYXltZW50
QnV0dG9uVHlwZVBsYWluOworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpCdXk6CisgICAg
ICAgIHJldHVybiBQS1BheW1lbnRCdXR0b25UeXBlQnV5OworICAgIGNhc2UgQXBwbGVQYXlCdXR0
b25UeXBlOjpTZXRVcDoKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJ1dHRvblR5cGVTZXRVcDsK
KyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6SW5TdG9yZToKKyAgICAgICAgcmV0dXJuIFBL
UGF5bWVudEJ1dHRvblR5cGVJblN0b3JlOworICAgIH0KK30KKworYm9vbCBSZW5kZXJUaGVtZUNv
Y29hOjpwYWludEFwcGxlUGF5QnV0dG9uKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIGNv
bnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiBwYWludFJlY3QpCit7Cisg
ICAgaWYgKCFjYW5Mb2FkUEtEcmF3QXBwbGVQYXlCdXR0b24oKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKHBhaW50SW5m
by5jb250ZXh0KCkpOworCisgICAgcGFpbnRJbmZvLmNvbnRleHQoKS5zZXRTaG91bGRTbW9vdGhG
b250cyh0cnVlKTsKKyAgICBwYWludEluZm8uY29udGV4dCgpLnNjYWxlKEZsb2F0U2l6ZSgxLCAt
MSkpOworCisgICAgUEtEcmF3QXBwbGVQYXlCdXR0b24ocGFpbnRJbmZvLmNvbnRleHQoKS5wbGF0
Zm9ybUNvbnRleHQoKSwgQ0dSZWN0TWFrZShwYWludFJlY3QueCgpLCAtcGFpbnRSZWN0Lm1heFko
KSwgcGFpbnRSZWN0LndpZHRoKCksIHBhaW50UmVjdC5oZWlnaHQoKSksIDEuMCwgdG9QS1BheW1l
bnRCdXR0b25UeXBlKHJlbmRlcmVyLnN0eWxlKCkuYXBwbGVQYXlCdXR0b25UeXBlKCkpLCB0b1BL
UGF5bWVudEJ1dHRvblN0eWxlKHJlbmRlcmVyLnN0eWxlKCkuYXBwbGVQYXlCdXR0b25TdHlsZSgp
KSwgcmVuZGVyZXIuc3R5bGUoKS5sb2NhbGUoKSk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKaW5kZXggZmZiMmUz
ZjE1YzU2NDNjNTU1OTMwOTI5ODgzZWY5NjBlYzUzYmQ4ZC4uZmRkN2MwYTdkMjBkZDU2OGM0MTc4
ZjgyNWI5MzlmNDA5MzU3NmZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lSU9TLmgKQEAgLTIzLDEyICsyMywxMSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKLSNpZm5kZWYgUmVuZGVyVGhlbWVJT1NfaAotI2RlZmluZSBSZW5kZXJU
aGVtZUlPU19oCisjcHJhZ21hIG9uY2UKIAogI2lmIFBMQVRGT1JNKElPUykKIAotI2luY2x1ZGUg
IlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWVDb2NvYS5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgCkBAIC0zNiw3ICszNSw3IEBAIGNsYXNzIFJlbmRlclN0eWxlOwog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0Owogc3RydWN0IEF0dGFjaG1lbnRMYXlvdXQ7CiAKLWNsYXNz
IFJlbmRlclRoZW1lSU9TIGZpbmFsIDogcHVibGljIFJlbmRlclRoZW1lIHsKK2NsYXNzIFJlbmRl
clRoZW1lSU9TIGZpbmFsIDogcHVibGljIFJlbmRlclRoZW1lQ29jb2EgewogcHVibGljOgogICAg
IHN0YXRpYyBSZWY8UmVuZGVyVGhlbWU+IGNyZWF0ZSgpOwogCkBAIC0xMzUsNCArMTM0LDMgQEAg
cHJpdmF0ZToKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKLSNlbmRpZiAvLyBSZW5kZXJU
aGVtZUlPU19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4
IDRlMDBhNDhiMDRhZTRjYjFmYjQzYzA0ZjliMzdiNDY2ZTQ5YmZmNWMuLjY1OGY4ODMxNDYzNjA3
MjliNmNhMzc2NmRjMGM5YTlhNTY5Yjg2ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5oCkBAIC0xOSwxMiArMTksMTIgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgogICoKICAqLwotI2lmICFQTEFURk9STShJT1MpCiAKLSNpZm5kZWYgUmVuZGVy
VGhlbWVNYWNfaAotI2RlZmluZSBSZW5kZXJUaGVtZU1hY19oCisjcHJhZ21hIG9uY2UKIAotI2lt
cG9ydCAiUmVuZGVyVGhlbWUuaCIKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIlJlbmRl
clRoZW1lQ29jb2EuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9I
YXNoTWFwLmg+CiAKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgUmVuZGVyUHJvZ3Jlc3M7CiBjbGFz
cyBSZW5kZXJTdHlsZTsKIHN0cnVjdCBBdHRhY2htZW50TGF5b3V0OwogCi1jbGFzcyBSZW5kZXJU
aGVtZU1hYyBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUaGVtZSB7CitjbGFzcyBSZW5kZXJUaGVtZU1h
YyBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUaGVtZUNvY29hIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFJlbmRlclRoZW1lPiBjcmVhdGUoKTsKIApAQCAtMjUwLDYgKzI1MCw0IEBAIHByaXZhdGU6
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFJlbmRlclRoZW1lTWFjX2gK
LQotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCAzYzA1YTdj
ZDBhZTQyYWNkNGFlMTEzYjg4NmRhOGUyZmE0NjY5YWVkLi4wMmYyYmY3ZTMwODBhYTUyYWI0Y2Iw
ZWFmODE4MmU4YjYxYTM2MGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaApAQCAtMTIxOCw3ICsxMjE4LDEyIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
Q1NTX1RSQUlMSU5HX1dPUkQpCiAgICAgVHJhaWxpbmdXb3JkIHRyYWlsaW5nV29yZCgpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRyYWlsaW5nV29yZD4ocmFyZUluaGVyaXRlZERhdGEtPnRy
YWlsaW5nV29yZCk7IH0KICNlbmRpZgotICAgIAorCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAg
ICBBcHBsZVBheUJ1dHRvblN0eWxlIGFwcGxlUGF5QnV0dG9uU3R5bGUoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxBcHBsZVBheUJ1dHRvblN0eWxlPihyYXJlSW5oZXJpdGVkRGF0YS0+YXBw
bGVQYXlCdXR0b25TdHlsZSk7IH0KKyAgICBBcHBsZVBheUJ1dHRvblR5cGUgYXBwbGVQYXlCdXR0
b25UeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QXBwbGVQYXlCdXR0b25UeXBlPihy
YXJlSW5oZXJpdGVkRGF0YS0+YXBwbGVQYXlCdXR0b25UeXBlKTsgfQorI2VuZGlmCisKICAgICB2
b2lkIGNoZWNrVmFyaWFibGVzSW5DdXN0b21Qcm9wZXJ0aWVzKCk7CiAKIC8vIGF0dHJpYnV0ZSBz
ZXR0ZXIgbWV0aG9kcwpAQCAtMTczNSw2ICsxNzQwLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFRyYWlsaW5nV29yZChUcmFpbGluZ1dvcmQgdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRh
LCB0cmFpbGluZ1dvcmQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KSk7IH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICB2b2lkIHNldEFwcGxlUGF5QnV0dG9uU3R5bGUoQXBw
bGVQYXlCdXR0b25TdHlsZSB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIGFwcGxlUGF5
QnV0dG9uU3R5bGUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KSk7IH0KKyAgICB2b2lkIHNldEFw
cGxlUGF5QnV0dG9uVHlwZShBcHBsZVBheUJ1dHRvblR5cGUgdikgeyBTRVRfVkFSKHJhcmVJbmhl
cml0ZWREYXRhLCBhcHBsZVBheUJ1dHRvblR5cGUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KSk7
IH0KKyNlbmRpZgorCiAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUmIHN2Z1N0eWxlKCkgY29uc3Qg
eyByZXR1cm4gKm1fc3ZnU3R5bGU7IH0KICAgICBTVkdSZW5kZXJTdHlsZSYgYWNjZXNzU1ZHU3R5
bGUoKSB7IHJldHVybiAqbV9zdmdTdHlsZS5hY2Nlc3MoKTsgfQogCkBAIC0yMDg2LDYgKzIwOTYs
MTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBUcmFpbGluZ1dvcmQgaW5pdGlhbFRyYWlsaW5nV29y
ZCgpIHsgcmV0dXJuIFRyYWlsaW5nV29yZDo6QXV0bzsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
QVBQTEVfUEFZKQorICAgIHN0YXRpYyBBcHBsZVBheUJ1dHRvblN0eWxlIGluaXRpYWxBcHBsZVBh
eUJ1dHRvblN0eWxlKCkgeyByZXR1cm4gQXBwbGVQYXlCdXR0b25TdHlsZTo6QmxhY2s7IH0KKyAg
ICBzdGF0aWMgQXBwbGVQYXlCdXR0b25UeXBlIGluaXRpYWxBcHBsZVBheUJ1dHRvblR5cGUoKSB7
IHJldHVybiBBcHBsZVBheUJ1dHRvblR5cGU6OlBsYWluOyB9CisjZW5kaWYKKwogI2lmIEVOQUJM
RShDU1NfR1JJRF9MQVlPVVQpCiAgICAgLy8gVGhlIGluaXRpYWwgdmFsdWUgaXMgJ25vbmUnIGZv
ciBncmlkIHRyYWNrcy4KICAgICBzdGF0aWMgVmVjdG9yPEdyaWRUcmFja1NpemU+IGluaXRpYWxH
cmlkQ29sdW1ucygpIHsgcmV0dXJuIFZlY3RvcjxHcmlkVHJhY2tTaXplPigpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5o
CmluZGV4IDM1MThjMmY0ZTljOTI0N2IyYTIxZmJkYjAwN2JkODc5NTdjZjAzMDAuLjdjYWY3MTU1
MTAxM2FjNjUyYWQ4MGEzN2Y4ZmY1M2E5MjhjMTcwMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC02OTYsNiAr
Njk2LDIxIEBAIGVudW0gY2xhc3MgVHJhaWxpbmdXb3JkIHsKIH07CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShBUFBMRV9QQVkpCitlbnVtIGNsYXNzIEFwcGxlUGF5QnV0dG9uU3R5bGUgeworICAgIFdo
aXRlLAorICAgIFdoaXRlT3V0bGluZSwKKyAgICBCbGFjaywKK307CisKK2VudW0gY2xhc3MgQXBw
bGVQYXlCdXR0b25UeXBlIHsKKyAgICBQbGFpbiwKKyAgICBCdXksCisgICAgU2V0VXAsCisgICAg
SW5TdG9yZSwKK307CisjZW5kaWYKKwogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiwgRUZpbGxTaXplVHlwZSk7CiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBF
RmlsbEF0dGFjaG1lbnQpOwogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgRUZp
bGxCb3gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDIwOThiOTE3OWM1NzFlYmI4NGVkYjJmM2M3
ODYxMTgyOGM2NmUxZTEuLjhiYWYzNTIwZTE3Zjg4NjBmMDYzNzhlOTIzMzM4NTc3MjcxMTgwYTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhl
cml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTEyNCw2ICsxMjQsMTAgQEAgU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSgpCiAjaWYgRU5BQkxFKENTU19UUkFJTElO
R19XT1JEKQogICAgICwgdHJhaWxpbmdXb3JkKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJT
dHlsZTo6aW5pdGlhbFRyYWlsaW5nV29yZCgpKSkKICNlbmRpZgorI2lmIEVOQUJMRShBUFBMRV9Q
QVkpCisgICAgLCBhcHBsZVBheUJ1dHRvblN0eWxlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5k
ZXJTdHlsZTo6aW5pdGlhbEFwcGxlUGF5QnV0dG9uU3R5bGUoKSkpCisgICAgLCBhcHBsZVBheUJ1
dHRvblR5cGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsQXBwbGVQ
YXlCdXR0b25UeXBlKCkpKQorI2VuZGlmCiAgICAgLCBtX2hhbmdpbmdQdW5jdHVhdGlvbihSZW5k
ZXJTdHlsZTo6aW5pdGlhbEhhbmdpbmdQdW5jdHVhdGlvbigpKQogICAgICwgaHlwaGVuYXRpb25M
aW1pdEJlZm9yZSgtMSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRBZnRlcigtMSkKQEAgLTIwNiw2
ICsyMTAsMTAgQEAgaW5saW5lIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVy
aXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGEKICNpZiBFTkFCTEUoQ1NTX1RSQUlM
SU5HX1dPUkQpCiAgICAgLCB0cmFpbGluZ1dvcmQoby50cmFpbGluZ1dvcmQpCiAjZW5kaWYKKyNp
ZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgICwgYXBwbGVQYXlCdXR0b25TdHlsZShvLmFwcGxlUGF5
QnV0dG9uU3R5bGUpCisgICAgLCBhcHBsZVBheUJ1dHRvblR5cGUoby5hcHBsZVBheUJ1dHRvblR5
cGUpCisjZW5kaWYKICAgICAsIG1faGFuZ2luZ1B1bmN0dWF0aW9uKG8ubV9oYW5naW5nUHVuY3R1
YXRpb24pCiAgICAgLCBoeXBoZW5hdGlvblN0cmluZyhvLmh5cGhlbmF0aW9uU3RyaW5nKQogICAg
ICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZShvLmh5cGhlbmF0aW9uTGltaXRCZWZvcmUpCkBAIC0z
MTIsNiArMzIwLDEwIEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShj
b25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdAogI2lmIEVOQUJMRShDU1NfVFJB
SUxJTkdfV09SRCkKICAgICAgICAgJiYgdHJhaWxpbmdXb3JkID09IG8udHJhaWxpbmdXb3JkCiAj
ZW5kaWYKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgICAgICAmJiBhcHBsZVBheUJ1dHRvblN0
eWxlID09IG8uYXBwbGVQYXlCdXR0b25TdHlsZQorICAgICAgICAmJiBhcHBsZVBheUJ1dHRvblR5
cGUgPT0gby5hcHBsZVBheUJ1dHRvblR5cGUKKyNlbmRpZgogICAgICAgICAmJiBtX2hhbmdpbmdQ
dW5jdHVhdGlvbiA9PSBvLm1faGFuZ2luZ1B1bmN0dWF0aW9uCiAgICAgICAgICYmIG1fY3VzdG9t
UHJvcGVydGllcyA9PSBvLm1fY3VzdG9tUHJvcGVydGllcwogICAgICAgICAmJiBhcmVQb2ludGlu
Z1RvRXF1YWxEYXRhKGxpc3RTdHlsZUltYWdlLCBvLmxpc3RTdHlsZUltYWdlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YS5oCmluZGV4IDVmN2MyMzYzNjU4ODdlZDNkOGRkZWQ4OWI3MjMxMjBiMjRiZDE5MTMuLmNlOWZh
MzgxZTZkMzZjOTYwMjY4NzBjNGUzNzc3MzRiNzA2MDJmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaApAQCAt
MTM2LDYgKzEzNiwxMSBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgdHJhaWxpbmdXb3JkIDogMTsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICB1bnNpZ25lZCBhcHBsZVBheUJ1
dHRvblN0eWxlIDogMjsKKyAgICB1bnNpZ25lZCBhcHBsZVBheUJ1dHRvblR5cGUgOiAzOworI2Vu
ZGlmCisKICAgICB1bnNpZ25lZCBtX2hhbmdpbmdQdW5jdHVhdGlvbiA6IDQ7CiAKICAgICBBdG9t
aWNTdHJpbmcgaHlwaGVuYXRpb25TdHJpbmc7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288861</attachid>
            <date>2016-09-14 14:38:00 -0700</date>
            <delta_ts>2016-09-14 14:47:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161986-20160914143523.patch</filename>
            <type>text/plain</type>
            <size>40857</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1OTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI4Zjc0M2VhNDc0MjQ4
ZTdlOTY5ZjVjMDRlNjY4YmE3Y2YyY2I4ZS4uZjI4ZTE1NGZlYTQ2MjU2MjgyM2Q5OGEzMGNlYjYz
OTBiMmQ3ZmE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDE2LTA5LTE0ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIENTUyAtd2Vi
a2l0LWFwcGVhcmFuY2UgcHJvcGVydHkgZm9yIEFwcGxlIFBheSBidXR0b25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5ODYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgLXdlYmtpdC1h
cHBlYXJhbmNlIHByb3BlcnR5LCAiLWFwcGxlLXBheS1idXR0b24iLgorICAgICAgICBBbHNvLCBh
ZGQgdHdvIHByb3BlcnRpZXMsICItYXBwbGUtcGF5LWJ1dHRvbi10eXBlIiBhbmQgIi1hcHBsZS1w
YXktYnV0dG9uLXN0eWxlIi4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgQWRkIFJlbmRlclRoZW1lQ29jb2EuaCBhbmQgUmVuZGVyVGhlbWVD
b2NvYS5tbS4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1
ZSk6CisgICAgICAgIEhhbmRsZSBDU1NQcm9wZXJ0eUFwcGxlUGF5QnV0dG9uU3R5bGUgYW5kIENT
U1Byb3BlcnR5QXBwbGVQYXlCdXR0b25UeXBlLgorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgQXBwbGVQYXlCdXR0b25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgQXBwbGVQYXlCdXR0b25UeXBlKToKKyAgICAgICAgQWRkIEFw
cGxlUGF5QnV0dG9uU3R5bGUgYW5kIEFwcGxlUGF5QnV0dG9uVHlwZSBjb252ZXJzaW9uIHJvdXRp
bmVzLgorCisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgIEFkZCAt
YXBwbGUtcGF5LWJ1dHRvbi1zdHlsZSBhbmQgLWFwcGxlLXBheS1idXR0b24tdHlwZS4KKworICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICBBZGQgQ1NTIHZhbHVlcy4K
KworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjppc0tl
eXdvcmRQcm9wZXJ0eUlEKToKKyAgICAgICAgSGFuZGxlIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0
b25TdHlsZSBhbmQgQ1NTUHJvcGVydHlBcHBsZVBheUJ1dHRvblR5cGUuCisKKyAgICAgICAgKFdl
YkNvcmU6OmlzQXBwbGVMZWdhY3lDU1NQcm9wZXJ0eUtleXdvcmQpOgorICAgICAgICBOZXcgZnVu
Y3Rpb24gdGhhdCByZXR1cm5zIHdoZXRoZXIgdGhlIENTUyBwcm9wZXJ0eSBzaG91bGQgYmUgcmV3
cml0dGVuIHRvIC13ZWJraXQtLgorICAgICAgICBXZSB3YW50IHRvIHJld3JpdGUgLWFwcGxlLSBi
dXQgbm90IC1hcHBsZS1wYXktLgorCisgICAgICAgIChXZWJDb3JlOjpjc3NQcm9wZXJ0eUlEKToK
KyAgICAgICAgVXNlIHRoZSBuZXdseSBhZGRlZCBpc0FwcGxlTGVnYWN5Q1NTUHJvcGVydHlLZXl3
b3JkLgorCisgICAgICAgIChXZWJDb3JlOjppc0FwcGxlTGVnYWN5Q1NTVmFsdWVLZXl3b3JkKToK
KyAgICAgICAgQ2hlY2sgZm9yICItYXBwbGUtcGF5LSIgaW4gYWRkaXRpb24gdG8gIi1hcHBsZS1z
eXN0ZW0tIi4KKworICAgICAgICAqIHBsYXRmb3JtL1RoZW1lVHlwZXMuaDoKKyAgICAgICAgQWRk
IEFwcGxlUGF5QnV0dG9uUGFydC4KKworICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9QYXNz
S2l0U1BJLmg6CisgICAgICAgIEFkZCBQS0RyYXdBcHBsZVBheUJ1dHRvbiBkZWNsYXJhdGlvbi4K
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUpOgorICAgICAgICBIYW5kbGUgQXBwbGVQYXlCdXR0
b25QYXJ0LgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOgorICAgICAg
ICBIYW5kbGUgQXBwbGVQYXlCdXR0b25QYXJ0LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0QXBwbGVQYXlC
dXR0b25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRBcHBsZVBh
eUJ1dHRvbik6CisgICAgICAgIEFkZCBuZXcgZnVuY3Rpb25zLgorCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ29jb2EuaDogQWRkZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDb2Nv
YTo6YWRqdXN0QXBwbGVQYXlCdXR0b25TdHlsZSk6CisgICAgICAgIEFkanVzdCB0aGUgbWluaW11
bSB3aWR0aCBhbmQgbWluaW11bSBoZWlnaHQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKFdlYkNv
cmU6OnRvUEtQYXltZW50QnV0dG9uU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6dG9QS1BheW1l
bnRCdXR0b25UeXBlKToKKyAgICAgICAgSGVscGVyIGZ1bmN0aW9ucyB0aGF0IGNvbnZlciBvdXIg
V2ViQ29yZSB0eXBlcyB0byBQSyB0eXBlcy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVDb2NvYTo6cGFpbnRBcHBsZVBheUJ1dHRvbik6CisgICAgICAgIENhbGwgUEtEcmF3QXBwbGVQ
YXlCdXR0b24uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgSW5oZXJpdCBmcm9tIFJl
bmRlclRoZW1lQ29jb2EuCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjphcHBsZVBheUJ1dHRvblN0eWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjphcHBsZVBheUJ1dHRvblR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEFwcGxlUGF5QnV0dG9uU3R5bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEFwcGxlUGF5QnV0dG9uVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5pdGlhbEFwcGxlUGF5QnV0dG9uU3R5bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmluaXRpYWxBcHBsZVBheUJ1dHRvblR5cGUp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9
PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoK
KyAgICAgICAgQWRkIG5ldyBzdHlsZSBtZW1iZXJzIGZvciB0aGUgYnV0dG9uIHN0eWxlIGFuZCBi
dXR0b24gdHlwZSBwcm9wZXJ0aWVzLgorCiAyMDE2LTA5LTE0ICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRpYVN0cmVhbV0gTWlub3IgY2xlYW51
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDI4Y2E2NzM5ZjFkYjYxZDEwNWZkMGE5ODFkZTBmY2UxZjMwMmNkMjYuLjI4NjNjYzY5
NTI2NjM5MjJmOWUyMmU5MDg4NjU1ZTNmNThjNzk4YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY5Myw2ICs2OTMsOCBAQAog
CQkxQTIyNDY0RTBDQzk4RERCMDBDMDUyNDAgLyogU1FMaXRlVHJhbnNhY3Rpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjI0NjQ4MENDOThEREIw
MEMwNTI0MCAvKiBTUUxpdGVUcmFuc2FjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMjQ4NDREMUQxQTI3MkEwMEY1NkJBNyAvKiBQYXlt
ZW50SGVhZGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUEyNDg0NEMxRDFBMjcwMTAwRjU2QkE3IC8qIFBheW1lbnRIZWFkZXJzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUEyNTBFMEQxQ0RENjMy
MDAwRDBCRTYzIC8qIExpbmtJY29uVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUEyNTBFMEMxQ0RENjMyMDAwRDBCRTYzIC8qIExpbmtJY29uVHlw
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFB
Mjk5RkU3MUQ3RjVGQTYwMEE2MDA5MyAvKiBSZW5kZXJUaGVtZUNvY29hLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyOTlGRTUxRDdGNUZBNjAwQTYw
MDkzIC8qIFJlbmRlclRoZW1lQ29jb2EubW0gKi87IH07CisJCTFBMjk5RkU4MUQ3RjVGQTYwMEE2
MDA5MyAvKiBSZW5kZXJUaGVtZUNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQTI5OUZFNjFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVD
b2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTFBMkE2ODIzMEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyQTY4MjEwQjVCRURFNzAw
MDJBNDgwIC8qIFByb2dyZXNzVHJhY2tlci5jcHAgKi87IH07CiAJCTFBMkE2ODI0MEI1QkVERTcw
MDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBMkE2ODIyMEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1Ry
YWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkxQTJBQUM1ODBEQzJBM0IxMDBBMjBEOUEgLyogQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyQUFDNTYw
REMyQTNCMTAwQTIwRDlBIC8qIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCAqLzsgfTsKQEAg
LTc1MzAsNiArNzUzMiw4IEBACiAJCTFBMjI0NjQ4MENDOThEREIwMEMwNTI0MCAvKiBTUUxpdGVU
cmFuc2FjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTUUxpdGVUcmFu
c2FjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTI0ODQ0QzFEMUEyNzAx
MDBGNTZCQTcgLyogUGF5bWVudEhlYWRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGF5bWVudEhlYWRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEy
NTBFMEMxQ0RENjMyMDAwRDBCRTYzIC8qIExpbmtJY29uVHlwZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMaW5rSWNvblR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUEyOTlGRTUxRDdGNUZBNjAwQTYwMDkzIC8qIFJlbmRlclRoZW1lQ29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW5kZXJUaGVtZUNvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQTI5OUZFNjFEN0Y1RkE2MDBBNjAwOTMg
LyogUmVuZGVyVGhlbWVDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJUaGVtZUNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMkE2ODIx
MEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb2dyZXNzVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFBMkE2ODIyMEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNr
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2dyZXNzVHJhY2tlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTJBQUM1NjBEQzJBM0IxMDBBMjBEOUEg
LyogQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjI4MzcsNiArMjI4NDEsOCBAQAogCQkJCUU0QzkxQTE1MTgwOTk5RjEw
MEExN0Y2RCAvKiBSZW5kZXJUZXh0TGluZUJveGVzLmggKi8sCiAJCQkJQkNFQTQ4NEEwOTdEOTMw
MjAwOTRDOUU0IC8qIFJlbmRlclRoZW1lLmNwcCAqLywKIAkJCQlCQ0VBNDg0QjA5N0Q5MzAyMDA5
NEM5RTQgLyogUmVuZGVyVGhlbWUuaCAqLywKKwkJCQkxQTI5OUZFNjFEN0Y1RkE2MDBBNjAwOTMg
LyogUmVuZGVyVGhlbWVDb2NvYS5oICovLAorCQkJCTFBMjk5RkU1MUQ3RjVGQTYwMEE2MDA5MyAv
KiBSZW5kZXJUaGVtZUNvY29hLm1tICovLAogCQkJCUZFRDEzRDUwMENFQTk0OTcwMEQ4OTQ2NiAv
KiBSZW5kZXJUaGVtZUlPUy5oICovLAogCQkJCUM1NUM3QkEwMTcxOEFGQkEwMDEzMjdFNCAvKiBS
ZW5kZXJUaGVtZUlPUy5tbSAqLywKIAkJCQlCQ0VBNDg0ODA5N0Q5MzAyMDA5NEM5RTQgLyogUmVu
ZGVyVGhlbWVNYWMuaCAqLywKQEAgLTI1MDg0LDYgKzI1MDkwLDcgQEAKIAkJCQlCQzkyNkY4MTBD
MDU1MjQ3MDA4Mjc3NkIgLyogSlNIVE1MRnJhbWVTZXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODBFN0IxNTBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBRTJBQTJGMEExQ0RBQjQwMEI0MkIyNSAvKiBKU0hUTUxIZWFkaW5n
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUEyOTlGRTgxRDdGNUZBNjAwQTYwMDkzIC8q
IFJlbmRlclRoZW1lQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTJBQTMxMEExQ0RBQjQw
MEI0MkIyNSAvKiBKU0hUTUxIUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBODVCMTkw
MEExQjE4QTIwMEQ4Qzg3QyAvKiBKU0hUTUxIdG1sRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM0OTE4QzkwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjc2MjcsNiArMjc2MzQsNyBAQAogCQkJCUY0NUMyMzFEMTk5NUI3M0Iw
MEE2RTJFMyAvKiBBeGlzU2Nyb2xsU25hcE9mZnNldHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MzdGNTdBQ0YxQTUwNzJERDAwODc2Rjk4IC8qIEFYT2JqZWN0Q2FjaGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQUFBNzI4RjkxNkQxRDhCQzAwRDNCQkM2IC8qIEFYT2JqZWN0Q2FjaGVJT1MubW0g
aW4gU291cmNlcyAqLywKKwkJCQkxQTI5OUZFNzFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhl
bWVDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI5QTgxMjRCMEZCQjlDQTkwMDUxMDI5MyAv
KiBBWE9iamVjdENhY2hlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBOEM4MUYxMUUzRDM2
OTAwODEyRkI3IC8qIEJhY2tGb3J3YXJkQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0E4Q0E1RjExRTRFNkQxMDA4MTJGQjcgLyogQmFja0ZvcndhcmRMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcAppbmRleCBiYTA4MTg2NTUwOGQyODZkNGU5NWZhOWQxOWY1ZmVlZGZiZWVlNTIw
Li44M2IxMzJkMTY2YmQ2YzlmMzYxYzM3ZmQyMWFjMTllMTBkODk5N2E2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMzc1
Myw2ICszNzUzLDEzIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6
cHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsCiAgICAgICAgICAgICByZXR1
cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLT50cmFpbGluZ1dvcmQoKSk7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlBcHBs
ZVBheUJ1dHRvblN0eWxlOgorICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVW
YWx1ZShzdHlsZS0+YXBwbGVQYXlCdXR0b25TdHlsZSgpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eUFwcGxlUGF5QnV0dG9uVHlwZToKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wu
Y3JlYXRlVmFsdWUoc3R5bGUtPmFwcGxlUGF5QnV0dG9uVHlwZSgpKTsKKyNlbmRpZgorCiAgICAg
ICAgIC8qIEluZGl2aWR1YWwgcHJvcGVydGllcyBub3QgcGFydCBvZiB0aGUgc3BlYyAqLwogICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFJlcGVhdFg6CiAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlCYWNrZ3JvdW5kUmVwZWF0WToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IDRlZmMwN2ZkOTdhNWU3YzBjZDQzNTdmODk3MzJk
NDFlM2E0MWZjODkuLjhmOGVhNDExMjEyMDZhNTMyODgzMWJkNjg1ZDFkZjJlMmVjZTk4NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAt
NjE2LDYgKzYxNiwxMSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQgZSkKICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVJbWFnZUNvbnRyb2xzQnV0dG9uOwogICAgICAgICBicmVhazsKICNlbmRpZgorI2lm
IEVOQUJMRShBUFBMRV9QQVkpCisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblBhcnQ6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXBwbGVQYXlCdXR0b247CisgICAgICAgIGJyZWFr
OworI2VuZGlmCiAgICAgfQogfQogCkBAIC01NDczLDYgKzU0NzgsODcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRyYWlsaW5nV29yZCgpIGNvbnN0CiB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVkpCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQXBwbGVQYXlCdXR0b25TdHlsZSBlKQor
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19WQUxVRV9JRDsKKyAgICBzd2l0Y2ggKGUpIHsKKyAgICBjYXNlIEFwcGxlUGF5QnV0
dG9uU3R5bGU6OldoaXRlOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdoaXRl
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlT3V0
bGluZToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXaGl0ZU91dGxpbmU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25TdHlsZTo6QmxhY2s6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmxhY2s7CisgICAgICAgIGJyZWFrOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsK
KyAgICB9Cit9CisKK3RlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBBcHBsZVBheUJ1dHRvblN0eWxlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNWYWx1ZUlEKCkp
OworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVdoaXRl
OgorICAgICAgICByZXR1cm4gQXBwbGVQYXlCdXR0b25TdHlsZTo6V2hpdGU7CisgICAgY2FzZSBD
U1NWYWx1ZVdoaXRlT3V0bGluZToKKyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uU3R5bGU6
OldoaXRlT3V0bGluZTsKKyAgICBjYXNlIENTU1ZhbHVlQmxhY2s6CisgICAgICAgIHJldHVybiBB
cHBsZVBheUJ1dHRvblN0eWxlOjpCbGFjazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsK
KyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFwcGxlUGF5QnV0
dG9uU3R5bGU6OkJsYWNrOworfQorCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQXBwbGVQYXlCdXR0b25UeXBlIGUpCisgICAgOiBDU1NWYWx1
ZShQcmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOworICAgIHN3aXRjaCAoZSkgeworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpQbGFp
bjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQbGFpbjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkJ1eToKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVCdXk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXBwbGVQYXlC
dXR0b25UeXBlOjpTZXRVcDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZXRV
cDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkluU3RvcmU6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5TdG9yZTsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IGJyZWFrOworICAgIH0KK30KKwordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEFwcGxlUGF5QnV0dG9uVHlwZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFs
dWVQbGFpbjoKKyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6UGxhaW47CisgICAg
Y2FzZSBDU1NWYWx1ZUJ1eToKKyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6QnV5
OworICAgIGNhc2UgQ1NTVmFsdWVTZXRVcDoKKyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9u
VHlwZTo6U2V0VXA7CisgICAgY2FzZSBDU1NWYWx1ZUluU3RvcmU6CisgICAgICAgIHJldHVybiBB
cHBsZVBheUJ1dHRvblR5cGU6OkluU3RvcmU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBBcHBsZVBheUJ1
dHRvblR5cGU6OlBsYWluOworfQorI2VuZGlmCisKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250VmFyaWFudFBvc2l0aW9uIHBvc2l0aW9u
KQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0eU5hbWVzLmluCmluZGV4IDliOWVlM2U2MjY2ZjE0ODY1YWM5MDdkMzIxZWI5YzdhZDE0
YTY3OGQuLjg4NjEzMzljZjNjOWFlYzI2YzMwMzY4Yjg1ODRiNTJmNmMxOTdlMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC02ODEsMyArNjgxLDggQEAgdG91Y2gt
YWN0aW9uCiAjaWYgZGVmaW5lZChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICYmIEVOQUJMRV9D
U1NfVFJBSUxJTkdfV09SRAogLWFwcGxlLXRyYWlsaW5nLXdvcmQgW0luaGVyaXRlZCwgTmFtZUZv
ck1ldGhvZHM9VHJhaWxpbmdXb3JkXQogI2VuZGlmCisKKyNpZiBkZWZpbmVkKEVOQUJMRV9BUFBM
RV9QQVkpICYmIEVOQUJMRV9BUFBMRV9QQVkKKy1hcHBsZS1wYXktYnV0dG9uLXN0eWxlIFtOYW1l
Rm9yTWV0aG9kcz1BcHBsZVBheUJ1dHRvblN0eWxlXQorLWFwcGxlLXBheS1idXR0b24tdHlwZSBb
TmFtZUZvck1ldGhvZHM9QXBwbGVQYXlCdXR0b25UeXBlXQorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDExZTg1MWI4MGM3MDIyMDkyNDhmYWViNjA4ODhj
ZjU2MjVmZjA2ZDcuLmY4ZmY2ZWExYWEzYWU3NWJkZTg0YTBhMzJlZWE2MTQ2MzliZjVhM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC04MDYsNiArODA2LDkgQEAg
cmF0aW5nLWxldmVsLWluZGljYXRvcgogI2lmIGRlZmluZWQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJP
TFMpICYmIEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTCiBpbWFnZS1jb250cm9scy1idXR0b24KICNl
bmRpZgorI2lmIGRlZmluZWQoRU5BQkxFX0FQUExFX1BBWSkgJiYgRU5BQkxFX0FQUExFX1BBWQor
LWFwcGxlLXBheS1idXR0b24KKyNlbmRpZgogdGV4dGFyZWEKICNpZiBkZWZpbmVkKEVOQUJMRV9B
VFRBQ0hNRU5UX0VMRU1FTlQpICYmIEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQKIGF0dGFjaG1l
bnQKQEAgLTExODUsNiArMTE4OCwxNyBAQCBmcm9tLWludHJpbnNpYwogLXdlYmtpdC1wYXJ0aWFs
bHktYmFsYW5jZWQKICNlbmRpZgogCisjaWYgZGVmaW5lZChFTkFCTEVfQVBQTEVfUEFZKSAmJiBF
TkFCTEVfQVBQTEVfUEFZCisvLyAtYXBwbGUtcGF5LWJ1dHRvbi1zdHlsZQord2hpdGUtb3V0bGlu
ZQorCisvLyAtYXBwbGUtcGF5LWJ1dHRvbi10eXBlCitwbGFpbgorYnV5CitzZXQtdXAKK2luLXN0
b3JlCisjZW5kaWYKKwogLy8gZm9udC1zeW50aGVzaXMKIHdlaWdodAogc3R5bGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcAppbmRleCA2ZjkxNTc2ZTIzMTZkYWEyNzE3MmU2
MjdhZmQzMjUwZDJlYmJiODBhLi5kYjVmY2E2YzNhMzExYmZhZTJiYjI4ZmFiZmQ0NGQxNGVjYzYz
NTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCkBAIC0xMDUwLDYg
KzEwNTAsMTYgQEAgc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRW
YWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIGludAogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBj
YXNlIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0b25TdHlsZTogLy8gd2hpdGUgfCB3aGl0ZS1vdXRs
aW5lIHwgYmxhY2sKKyAgICAgICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVXaGl0ZSB8fCB2YWx1
ZUlEID09IENTU1ZhbHVlV2hpdGVPdXRsaW5lIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVCbGFjaykK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1By
b3BlcnR5QXBwbGVQYXlCdXR0b25UeXBlOiAvLyBwbGFpbiB8IGJ1eSB8IHNldC11cCB8IGluLXN0
b3JlCisgICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlUGxhaW4gfHwgdmFsdWVJRCA9PSBD
U1NWYWx1ZUJ1eSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU2V0VXAgfHwgdmFsdWVJRCA9PSBDU1NW
YWx1ZUluU3RvcmUpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgYnJlYWs7Cisj
ZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFZhcmlhbnRQb3NpdGlvbjogLy8gbm9ybWFs
IHwgc3ViIHwgc3VwZXIKICAgICAgICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwg
dmFsdWVJRCA9PSBDU1NWYWx1ZVN1YiB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU3VwZXIpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTExNDksNiArMTE1OSwxNjQgQEAgc3RhdGljIGlubGlu
ZSBib29sIGlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5SWQsIGludAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGlz
S2V5d29yZFByb3BlcnR5SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkKQoreworICAgIHN3aXRj
aCAocHJvcGVydHlJZCkgeworICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21TdHlsZToK
KyAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQ29sbGFwc2U6CisgICAgY2FzZSBDU1NQcm9wZXJ0
eUJvcmRlckxlZnRTdHlsZToKKyAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRTdHlsZToK
KyAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyVG9wU3R5bGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0
eUJveFNpemluZzoKKyAgICBjYXNlIENTU1Byb3BlcnR5QnJlYWtBZnRlcjoKKyAgICBjYXNlIENT
U1Byb3BlcnR5QnJlYWtCZWZvcmU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJyZWFrSW5zaWRlOgor
ICAgIGNhc2UgQ1NTUHJvcGVydHlDYXB0aW9uU2lkZToKKyAgICBjYXNlIENTU1Byb3BlcnR5Q2xl
YXI6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVtbkZpbGw6CisgICAgY2FzZSBDU1NQcm9wZXJ0
eUNvbHVtblByb2dyZXNzaW9uOgorICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5SdWxlU3R5bGU6
CisgICAgY2FzZSBDU1NQcm9wZXJ0eURpcmVjdGlvbjoKKyAgICBjYXNlIENTU1Byb3BlcnR5RGlz
cGxheToKKyAgICBjYXNlIENTU1Byb3BlcnR5RW1wdHlDZWxsczoKKyAgICBjYXNlIENTU1Byb3Bl
cnR5RmxleERpcmVjdGlvbjoKKyAgICBjYXNlIENTU1Byb3BlcnR5RmxleFdyYXA6CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUZsb2F0OgorICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3RyZXRjaDoKKyAg
ICBjYXNlIENTU1Byb3BlcnR5Rm9udFN0eWxlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlGb250VmFy
aWFudEFsdGVybmF0ZXM6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRWYXJpYW50Q2FwczoKKyAg
ICBjYXNlIENTU1Byb3BlcnR5Rm9udFZhcmlhbnRQb3NpdGlvbjoKKyAgICBjYXNlIENTU1Byb3Bl
cnR5SW1hZ2VSZW5kZXJpbmc6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUxpc3RTdHlsZVBvc2l0aW9u
OgorICAgIGNhc2UgQ1NTUHJvcGVydHlMaXN0U3R5bGVUeXBlOgorICAgIGNhc2UgQ1NTUHJvcGVy
dHlPYmplY3RGaXQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVTdHlsZToKKyAgICBjYXNl
IENTU1Byb3BlcnR5T3ZlcmZsb3dXcmFwOgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1g6
CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKKyAgICBjYXNlIENTU1Byb3BlcnR5UGFn
ZUJyZWFrQWZ0ZXI6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZ2VCcmVha0JlZm9yZToKKyAgICBj
YXNlIENTU1Byb3BlcnR5UGFnZUJyZWFrSW5zaWRlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlQb2lu
dGVyRXZlbnRzOgorICAgIGNhc2UgQ1NTUHJvcGVydHlQb3NpdGlvbjoKKyAgICBjYXNlIENTU1By
b3BlcnR5UmVzaXplOgorICAgIGNhc2UgQ1NTUHJvcGVydHlTcGVhazoKKyAgICBjYXNlIENTU1By
b3BlcnR5VGFibGVMYXlvdXQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRBbGlnbjoKKyAgICBj
YXNlIENTU1Byb3BlcnR5VGV4dExpbmVUaHJvdWdoTW9kZToKKyAgICBjYXNlIENTU1Byb3BlcnR5
VGV4dExpbmVUaHJvdWdoU3R5bGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRPdmVyZmxvdzoK
KyAgICBjYXNlIENTU1Byb3BlcnR5VGV4dE92ZXJsaW5lTW9kZToKKyAgICBjYXNlIENTU1Byb3Bl
cnR5VGV4dE92ZXJsaW5lU3R5bGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRSZW5kZXJpbmc6
CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRUcmFuc2Zvcm06CisgICAgY2FzZSBDU1NQcm9wZXJ0
eVRleHRVbmRlcmxpbmVNb2RlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0VW5kZXJsaW5lU3R5
bGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zZm9ybVN0eWxlOgorICAgIGNhc2UgQ1NTUHJv
cGVydHlVbmljb2RlQmlkaToKKyAgICBjYXNlIENTU1Byb3BlcnR5VmlzaWJpbGl0eToKKyAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0QXBwZWFyYW5jZToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0QmFja2ZhY2VWaXNpYmlsaXR5OgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJB
ZnRlclN0eWxlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJCZWZvcmVTdHlsZToK
KyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyRW5kU3R5bGU6CisgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEJvcmRlckZpdDoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVy
U3RhcnRTdHlsZToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm94QWxpZ246CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdEJveERpcmVjdGlvbjoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0Qm94TGluZXM6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveE9yaWVudDoKKyAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0Qm94UGFjazoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
Q29sdW1uQXhpczoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uQnJlYWtBZnRlcjoK
KyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uQnJlYWtCZWZvcmU6CisgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdENvbHVtbkJyZWFrSW5zaWRlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRGb250S2VybmluZzoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udFNtb290aGlu
ZzoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0SHlwaGVuczoKKyAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0TGluZUFsaWduOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRMaW5lQnJlYWs6
CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdExpbmVTbmFwOgorICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRNYXJnaW5BZnRlckNvbGxhcHNlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRN
YXJnaW5CZWZvcmVDb2xsYXBzZToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQm90
dG9tQ29sbGFwc2U6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcmdpblRvcENvbGxhcHNl
OgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlRGlyZWN0aW9uOgorICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRNYXJxdWVlU3R5bGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE5ic3BNb2RlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRQcmludENvbG9yQWRqdXN0Ogor
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRSdGxPcmRlcmluZzoKKyAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0UnVieVBvc2l0aW9uOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0Q29t
YmluZToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25TdHlsZToKKyAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dE9yaWVudGF0aW9uOgorICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRUZXh0U2VjdXJpdHk6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRa
b29tOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1TdHlsZToKKyAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0VXNlckRyYWc6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFVz
ZXJNb2RpZnk6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJTZWxlY3Q6CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdFdyaXRpbmdNb2RlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXaGl0
ZVNwYWNlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXb3JkQnJlYWs6CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdvcmRXcmFwOgorI2lmIEVOQUJMRShDU1NfVFJBSUxJTkdfV09SRCkKKyAgICBjYXNlIENT
U1Byb3BlcnR5QXBwbGVUcmFpbGluZ1dvcmQ6CisjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0NPTVBP
U0lUSU5HKQorICAgIGNhc2UgQ1NTUHJvcGVydHlJc29sYXRpb246CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eU1peEJsZW5kTW9kZToKKyNlbmRpZgorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVRvdWNoQWN0aW9uOgorI2VuZGlmCisjaWYgRU5BQkxFKENTU19CT1hf
REVDT1JBVElPTl9CUkVBSykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm94RGVjb3JhdGlv
bkJyZWFrOgorI2VuZGlmCisjaWYgRU5BQkxFKENVUlNPUl9WSVNJQklMSVRZKQorICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRDdXJzb3JWaXNpYmlsaXR5OgorI2VuZGlmCisjaWYgRU5BQkxFKEFD
Q0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
T3ZlcmZsb3dTY3JvbGxpbmc6CisjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFJlZ2lvbkJyZWFrQWZ0ZXI6CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFJlZ2lvbkJyZWFrQmVmb3JlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRS
ZWdpb25CcmVha0luc2lkZToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0UmVnaW9uRnJhZ21l
bnQ6CisjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRUZXh0QWxpZ25MYXN0OgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0SnVzdGlm
eToKKyNlbmRpZgorI2lmIFBMQVRGT1JNKElPUykKKyAgICAvLyBBcHBsZSBzcGVjaWZpYyBwcm9w
ZXJ0eS4gVGhlc2Ugd2lsbCBuZXZlciBiZSBzdGFuZGFyZGl6ZWQgYW5kIGlzIHB1cmVseSB0bwor
ICAgIC8vIHN1cHBvcnQgY3VzdG9tIFdlYktpdC1iYXNlZCBBcHBsZSBhcHBsaWNhdGlvbnMuCisg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRvdWNoQ2FsbG91dDoKKyNlbmRpZgorI2lmIEVOQUJM
RShDU1NfU0NST0xMX1NOQVApCisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFNjcm9sbFNuYXBU
eXBlOgorI2VuZGlmCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBjYXNlIENTU1Byb3BlcnR5
QXBwbGVQYXlCdXR0b25TdHlsZToKKyAgICBjYXNlIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0b25U
eXBlOgorI2VuZGlmCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgQ1NTUHJvcGVydHlK
dXN0aWZ5Q29udGVudDoKKyAgICBjYXNlIENTU1Byb3BlcnR5QWxpZ25Db250ZW50OgorICAgIGNh
c2UgQ1NTUHJvcGVydHlBbGlnbkl0ZW1zOgorICAgIGNhc2UgQ1NTUHJvcGVydHlBbGlnblNlbGY6
CisjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKKyAgICAgICAgcmV0dXJuICFSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKTsK
KyNlbHNlCisgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCisgICAgZGVmYXVsdDoKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogc3RhdGljIGJvb2wgaXNVbml2ZXJzYWxLZXl3
b3JkKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIC8vIFRoZXNlIGtleXdvcmRzIGNhbiBi
ZSB1c2VkIGZvciBhbGwgcHJvcGVydGllcy4KQEAgLTEzMjk1LDYgKzEzNDYzLDE1IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZVZpZXdwb3J0U2hvcnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcElkLCBD
U1NQcm9wZXJ0eUlEIGZpcnN0CiB9CiAjZW5kaWYKIAorc3RhdGljIGJvb2wgaXNBcHBsZUxlZ2Fj
eUNTU1Byb3BlcnR5S2V5d29yZChjb25zdCBjaGFyKiBwcm9wZXJ0eUtleXdvcmQsIHVuc2lnbmVk
IGxlbmd0aCkKK3sKKyAgICBzdGF0aWMgY29uc3QgY2hhciBhcHBsZVByZWZpeFtdID0gIi1hcHBs
ZS0iOworICAgIHN0YXRpYyBjb25zdCBjaGFyIGFwcGxlUGF5UHJlZml4W10gPSAiLWFwcGxlLXBh
eS0iOworCisgICAgcmV0dXJuIGhhc1ByZWZpeChwcm9wZXJ0eUtleXdvcmQsIGxlbmd0aCwgYXBw
bGVQcmVmaXgpCisgICAgICAgICYmICFoYXNQcmVmaXgocHJvcGVydHlLZXl3b3JkLCBsZW5ndGgs
IGFwcGxlUGF5UHJlZml4KTsKK30KKwogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+
CiBzdGF0aWMgQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0eUlEKGNvbnN0IENoYXJhY3RlclR5cGUq
IHByb3BlcnR5TmFtZSwgdW5zaWduZWQgbGVuZ3RoKQogewpAQCAtMTMzMTQsNyArMTM0OTEsNyBA
QCBzdGF0aWMgQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0eUlEKGNvbnN0IENoYXJhY3RlclR5cGUq
IHByb3BlcnR5TmFtZSwgdW5zaWduZWQgbAogICAgICAgICAvLyBJZiB0aGUgcHJlZml4IGlzIC1h
cHBsZS0gb3IgLWtodG1sLSwgY2hhbmdlIGl0IHRvIC13ZWJraXQtLgogICAgICAgICAvLyBUaGlz
IG1ha2VzIHRoZSBzdHJpbmcgb25lIGNoYXJhY3RlciBsb25nZXIuCiAgICAgICAgIGlmIChSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmxlZ2FjeUNTU1ZlbmRvclByZWZp
eGVzRW5hYmxlZCgpCi0gICAgICAgICAgICAmJiAoaGFzUHJlZml4KGJ1ZmZlciwgbGVuZ3RoLCAi
LWFwcGxlLSIpIHx8IGhhc1ByZWZpeChidWZmZXIsIGxlbmd0aCwgIi1raHRtbC0iKSkpIHsKKyAg
ICAgICAgICAgICYmIChpc0FwcGxlTGVnYWN5Q1NTUHJvcGVydHlLZXl3b3JkKGJ1ZmZlciwgbGVu
Z3RoKSB8fCBoYXNQcmVmaXgoYnVmZmVyLCBsZW5ndGgsICIta2h0bWwtIikpKSB7CiAgICAgICAg
ICAgICBtZW1tb3ZlKGJ1ZmZlciArIDcsIGJ1ZmZlciArIDYsIGxlbmd0aCArIDEgLSA2KTsKICAg
ICAgICAgICAgIG1lbWNweShidWZmZXIsICItd2Via2l0IiwgNyk7CiAgICAgICAgICAgICArK2xl
bmd0aDsKQEAgLTEzMzY1LDE0ICsxMzU0MiwxNiBAQCB2b2lkIGNzc1Byb3BlcnR5TmFtZUlPU0Fs
aWFzaW5nKGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgY29uc3QgY2hhciomIHByb3BlcnR5Tgog
fQogI2VuZGlmCiAKLXN0YXRpYyBib29sIGlzQXBwbGVMZWdhY3lDc3NWYWx1ZUtleXdvcmQoY29u
c3QgY2hhciogdmFsdWVLZXl3b3JkLCB1bnNpZ25lZCBsZW5ndGgpCitzdGF0aWMgYm9vbCBpc0Fw
cGxlTGVnYWN5Q1NTVmFsdWVLZXl3b3JkKGNvbnN0IGNoYXIqIHZhbHVlS2V5d29yZCwgdW5zaWdu
ZWQgbGVuZ3RoKQogewogICAgIHN0YXRpYyBjb25zdCBjaGFyIGFwcGxlUHJlZml4W10gPSAiLWFw
cGxlLSI7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIgYXBwbGVTeXN0ZW1QcmVmaXhbXSA9ICItYXBw
bGUtc3lzdGVtIjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBhcHBsZVN5c3RlbVByZWZpeFtdID0g
Ii1hcHBsZS1zeXN0ZW0tIjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBhcHBsZVBheVByZWZpeFtd
ID0gIi1hcHBsZS1wYXktIjsKICAgICBzdGF0aWMgY29uc3QgY2hhciogYXBwbGVXaXJlbGVzc1Bs
YXliYWNrVGFyZ2V0QWN0aXZlID0gZ2V0VmFsdWVOYW1lKENTU1ZhbHVlQXBwbGVXaXJlbGVzc1Bs
YXliYWNrVGFyZ2V0QWN0aXZlKTsKIAogICAgIHJldHVybiBoYXNQcmVmaXgodmFsdWVLZXl3b3Jk
LCBsZW5ndGgsIGFwcGxlUHJlZml4KQogICAgICAgICAmJiAhaGFzUHJlZml4KHZhbHVlS2V5d29y
ZCwgbGVuZ3RoLCBhcHBsZVN5c3RlbVByZWZpeCkKKyAgICAgICAgJiYgIWhhc1ByZWZpeCh2YWx1
ZUtleXdvcmQsIGxlbmd0aCwgYXBwbGVQYXlQcmVmaXgpCiAgICAgICAgICYmICFXVEY6OmVxdWFs
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPih2YWx1ZUtleXdvcmQpLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oYXBwbGVXaXJlbGVzc1BsYXliYWNrVGFyZ2V0QWN0aXZlKSwg
bGVuZ3RoKTsKIH0KIApAQCAtMTMzOTQsNyArMTM1NzMsNyBAQCBzdGF0aWMgQ1NTVmFsdWVJRCBj
c3NWYWx1ZUtleXdvcmRJRChjb25zdCBDaGFyYWN0ZXJUeXBlKiB2YWx1ZUtleXdvcmQsIHVuc2ln
bmVkCiAgICAgICAgIC8vIFRoaXMgbWFrZXMgdGhlIHN0cmluZyBvbmUgY2hhcmFjdGVyIGxvbmdl
ci4KICAgICAgICAgLy8gT24gaU9TIHdlIGRvbid0IHdhbnQgdG8gY2hhbmdlIHZhbHVlcyBzdGFy
dGluZyB3aXRoIC1hcHBsZS1zeXN0ZW0gdG8gLXdlYmtpdC1zeXN0ZW0uCiAgICAgICAgIC8vIEZJ
WE1FOiBSZW1vdmUgdGhpcyBtYW5nbGluZyB3aXRob3V0IGJyZWFraW5nIHRoZSB3ZWIuCi0gICAg
ICAgIGlmIChpc0FwcGxlTGVnYWN5Q3NzVmFsdWVLZXl3b3JkKGJ1ZmZlciwgbGVuZ3RoKSB8fCBo
YXNQcmVmaXgoYnVmZmVyLCBsZW5ndGgsICIta2h0bWwtIikpIHsKKyAgICAgICAgaWYgKGlzQXBw
bGVMZWdhY3lDU1NWYWx1ZUtleXdvcmQoYnVmZmVyLCBsZW5ndGgpIHx8IGhhc1ByZWZpeChidWZm
ZXIsIGxlbmd0aCwgIi1raHRtbC0iKSkgewogICAgICAgICAgICAgbWVtbW92ZShidWZmZXIgKyA3
LCBidWZmZXIgKyA2LCBsZW5ndGggKyAxIC0gNik7CiAgICAgICAgICAgICBtZW1jcHkoYnVmZmVy
LCAiLXdlYmtpdCIsIDcpOwogICAgICAgICAgICAgKytsZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9UaGVtZVR5cGVzLmgKaW5kZXggMDk5NDUzOTE3NDE1ZTkzYjBjNTc5NTI3NzVlNjhiMzQxOGZl
YWQ1Ni4uNTBlNmVkY2JmM2IwOWJkZWExMTAxODVjNWJkMmJhYTY2NTQ0ZWIwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaApAQCAtMjMsOCArMjMsNyBAQAogICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCiAgKi8KIAotI2lmbmRlZiBUaGVtZVR5cGVzX2gKLSNkZWZpbmUgVGhlbWVUeXBlc19oCisj
cHJhZ21hIG9uY2UKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw2ICs0OCw5IEBAIGVu
dW0gQ29udHJvbFBhcnQgewogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIEltYWdl
Q29udHJvbHNCdXR0b25QYXJ0LAogI2VuZGlmCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBB
cHBsZVBheUJ1dHRvblBhcnQsCisjZW5kaWYKICAgICBUZXh0QXJlYVBhcnQsCiAjaWYgRU5BQkxF
KEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBBdHRhY2htZW50UGFydCwKQEAgLTczLDQgKzc1LDMg
QEAgZW51bSBUaGVtZUNvbG9yIHsKIH07CiAKIH0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1Bhc3NLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NwaS9jb2NvYS9QYXNzS2l0U1BJLmgKaW5kZXggYTBjN2I5OTg0ZTdlZTcxOTk3
NTk1OTA2Mjg1OTI1NDM5NWRmOTEwOS4uZWZhYTI3NmJlMTRlMGM0OTY5YjQ5ODA0OTg0NDY5MDRl
MTkxZGRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1Bh
c3NLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvUGFzc0tp
dFNQSS5oCkBAIC0yMTQsMyArMjE0LDYgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIE5TX0FT
U1VNRV9OT05OVUxMX0VORAogCiAjZW5kaWYKKworZXh0ZXJuICJDIgordm9pZCBQS0RyYXdBcHBs
ZVBheUJ1dHRvbihDR0NvbnRleHRSZWYsIENHUmVjdCBkcmF3UmVjdCwgQ0dGbG9hdCBzY2FsZSwg
UEtQYXltZW50QnV0dG9uVHlwZSwgUEtQYXltZW50QnV0dG9uU3R5bGUsIE5TU3RyaW5nICpsYW5n
dWFnZUNvZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXgg
Mjc1NmY2YjQ1NzA4MzM2ZmFlNjQzYTA2MTcwZmFiNThlYjFiMDgxOS4uY2RkMDFlMzRmNzJiN2Fm
NzlkOGI2M2JkYmFmOWEyNmRhMGQ2MTY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwCkBAIC0yNTMsNiArMjUzLDEwIEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVz
dFN0eWxlKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIFJlbmRlclN0eWxlJiBzdHlsZSwK
ICNlbmRpZgogICAgIGNhc2UgQ2Fwc0xvY2tJbmRpY2F0b3JQYXJ0OgogICAgICAgICByZXR1cm4g
YWRqdXN0Q2Fwc0xvY2tJbmRpY2F0b3JTdHlsZShzdHlsZVJlc29sdmVyLCBzdHlsZSwgZWxlbWVu
dCk7CisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uUGFydDoK
KyAgICAgICAgcmV0dXJuIGFkanVzdEFwcGxlUGF5QnV0dG9uU3R5bGUoc3R5bGVSZXNvbHZlciwg
c3R5bGUsIGVsZW1lbnQpOworI2VuZGlmCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkK
ICAgICBjYXNlIEF0dGFjaG1lbnRQYXJ0OgogICAgICAgICByZXR1cm4gYWRqdXN0QXR0YWNobWVu
dFN0eWxlKHN0eWxlUmVzb2x2ZXIsIHN0eWxlLCBlbGVtZW50KTsKQEAgLTQwMSw2ICs0MDUsMTAg
QEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnQoY29uc3QgUmVuZGVyQm94JiBib3gsIENvbnRyb2xT
dGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIGNvbnMKICNlbmRpZgogICAgIGNhc2UgQ2Fwc0xvY2tJbmRp
Y2F0b3JQYXJ0OgogICAgICAgICByZXR1cm4gcGFpbnRDYXBzTG9ja0luZGljYXRvcihib3gsIHBh
aW50SW5mbywgaW50ZWdyYWxTbmFwcGVkUmVjdCk7CisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAg
ICBjYXNlIEFwcGxlUGF5QnV0dG9uUGFydDoKKyAgICAgICAgcmV0dXJuIHBhaW50QXBwbGVQYXlC
dXR0b24oYm94LCBwYWludEluZm8sIGludGVncmFsU25hcHBlZFJlY3QpOworI2VuZGlmCiAjaWYg
RU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBjYXNlIEF0dGFjaG1lbnRQYXJ0OgogICAg
ICAgICByZXR1cm4gcGFpbnRBdHRhY2htZW50KGJveCwgcGFpbnRJbmZvLCBpbnRlZ3JhbFNuYXBw
ZWRSZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggMzZhNGM4
OWE2Y2QxYjMwNzI1Njg4NTQyMDJiNWRlZDQyODQxZGJlNS4uMzliOTdjODZhZGUxN2RjMmMyYTZm
NDljNDQ1MThhMTEzZmQ3MmQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmgKQEAgLTMyNSw2ICszMjUsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBhZGp1
c3RDYXBzTG9ja0luZGljYXRvclN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYsIGNv
bnN0IEVsZW1lbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDYXBzTG9ja0luZGlj
YXRvcihjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0
Jik7CiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RBcHBs
ZVBheUJ1dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1l
bnQqKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRBcHBsZVBheUJ1dHRvbihjb25z
dCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1
cm4gdHJ1ZTsgfQorI2VuZGlmCisKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAg
IHZpcnR1YWwgdm9pZCBhZGp1c3RBdHRhY2htZW50U3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRl
clN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwYWludEF0
dGFjaG1lbnQoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50
UmVjdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTM2OTBmZjI2MzIwOWNlNDVkYTlhOTJlOWNlOTZhNzc5YThkNDg4OQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmgK
QEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
UmVuZGVyVGhlbWUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJUaGVt
ZUNvY29hIDogcHVibGljIFJlbmRlclRoZW1lIHsKK3ByaXZhdGU6CisgICAgdm9pZCBhZGp1c3RB
cHBsZVBheUJ1dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYsIGNvbnN0IEVs
ZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHBhaW50QXBwbGVQYXlCdXR0b24oY29u
c3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92ZXJy
aWRlOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2Nv
YS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNjk1OGI5Y2RkZjQ2Nzc3MmI1ZmNiZjVmMDg1NTQ2YWI2NTg2ZDZi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q29jb2EubW0KQEAgLTAsMCArMSw5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZUNvY29hLmgiCisKKyNpbmNsdWRlICJQYXNzS2l0U1BJ
LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIK
KyNpbmNsdWRlICJTb2Z0TGlua2luZy5oIgorI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbi5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVX
T1JLKFBhc3NLaXQpOworI2Vsc2UKK1NPRlRfTElOS19GUkFNRVdPUksoUGFzc0tpdCk7CisjZW5k
aWYKKworU09GVF9MSU5LX01BWV9GQUlMKFBhc3NLaXQsIFBLRHJhd0FwcGxlUGF5QnV0dG9uLCB2
b2lkLCAoQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCBkcmF3UmVjdCwgQ0dGbG9hdCBzY2Fs
ZSwgUEtQYXltZW50QnV0dG9uVHlwZSB0eXBlLCBQS1BheW1lbnRCdXR0b25TdHlsZSBzdHlsZSwg
TlNTdHJpbmcgKmxhbmd1YWdlQ29kZSksIChjb250ZXh0LCBkcmF3UmVjdCwgc2NhbGUsIHR5cGUs
IHN0eWxlLCBsYW5ndWFnZUNvZGUpKTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMg
Y29uc3QgYXV0byBhcHBsZVBheUJ1dHRvbk1pbmltdW1XaWR0aCA9IDE0MDsKK3N0YXRpYyBjb25z
dCBhdXRvIGFwcGxlUGF5QnV0dG9uUGxhaW5NaW5pbXVtV2lkdGggPSAxMDA7CitzdGF0aWMgY29u
c3QgYXV0byBhcHBsZVBheUJ1dHRvbk1pbmltdW1IZWlnaHQgPSAzMDsKKwordm9pZCBSZW5kZXJU
aGVtZUNvY29hOjphZGp1c3RBcHBsZVBheUJ1dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5k
ZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqKSBjb25zdAoreworICAgIGlmIChzdHlsZS5h
cHBsZVBheUJ1dHRvblR5cGUoKSA9PSBBcHBsZVBheUJ1dHRvblR5cGU6OlBsYWluKQorICAgICAg
ICBzdHlsZS5zZXRNaW5XaWR0aChMZW5ndGgoYXBwbGVQYXlCdXR0b25QbGFpbk1pbmltdW1XaWR0
aCwgRml4ZWQpKTsKKyAgICBlbHNlCisgICAgICAgIHN0eWxlLnNldE1pbldpZHRoKExlbmd0aChh
cHBsZVBheUJ1dHRvbk1pbmltdW1XaWR0aCwgRml4ZWQpKTsKKyAgICBzdHlsZS5zZXRNaW5IZWln
aHQoTGVuZ3RoKGFwcGxlUGF5QnV0dG9uTWluaW11bUhlaWdodCwgRml4ZWQpKTsKK30KKworc3Rh
dGljIFBLUGF5bWVudEJ1dHRvblN0eWxlIHRvUEtQYXltZW50QnV0dG9uU3R5bGUoQXBwbGVQYXlC
dXR0b25TdHlsZSBzdHlsZSkKK3sKKyAgICBzd2l0Y2ggKHN0eWxlKSB7CisgICAgY2FzZSBBcHBs
ZVBheUJ1dHRvblN0eWxlOjpXaGl0ZToKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJ1dHRvblN0
eWxlV2hpdGU7CisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblN0eWxlOjpXaGl0ZU91dGxpbmU6Cisg
ICAgICAgIHJldHVybiBQS1BheW1lbnRCdXR0b25TdHlsZVdoaXRlT3V0bGluZTsKKyAgICBjYXNl
IEFwcGxlUGF5QnV0dG9uU3R5bGU6OkJsYWNrOgorICAgICAgICByZXR1cm4gUEtQYXltZW50QnV0
dG9uU3R5bGVCbGFjazsKKyAgICB9Cit9CisKK3N0YXRpYyBQS1BheW1lbnRCdXR0b25UeXBlIHRv
UEtQYXltZW50QnV0dG9uVHlwZShBcHBsZVBheUJ1dHRvblR5cGUgdHlwZSkKK3sKKyAgICBzd2l0
Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6UGxhaW46CisgICAgICAg
IHJldHVybiBQS1BheW1lbnRCdXR0b25UeXBlUGxhaW47CisgICAgY2FzZSBBcHBsZVBheUJ1dHRv
blR5cGU6OkJ1eToKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJ1dHRvblR5cGVCdXk7CisgICAg
Y2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OlNldFVwOgorICAgICAgICByZXR1cm4gUEtQYXltZW50
QnV0dG9uVHlwZVNldFVwOworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpJblN0b3JlOgor
ICAgICAgICByZXR1cm4gUEtQYXltZW50QnV0dG9uVHlwZUluU3RvcmU7CisgICAgfQorfQorCiti
b29sIFJlbmRlclRoZW1lQ29jb2E6OnBhaW50QXBwbGVQYXlCdXR0b24oY29uc3QgUmVuZGVyT2Jq
ZWN0JiByZW5kZXJlciwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3Qm
IHBhaW50UmVjdCkKK3sKKyAgICBpZiAoIWNhbkxvYWRQS0RyYXdBcHBsZVBheUJ1dHRvbigpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0
YXRlU2F2ZXIocGFpbnRJbmZvLmNvbnRleHQoKSk7CisKKyAgICBwYWludEluZm8uY29udGV4dCgp
LnNldFNob3VsZFNtb290aEZvbnRzKHRydWUpOworICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2Nh
bGUoRmxvYXRTaXplKDEsIC0xKSk7CisKKyAgICBQS0RyYXdBcHBsZVBheUJ1dHRvbihwYWludElu
Zm8uY29udGV4dCgpLnBsYXRmb3JtQ29udGV4dCgpLCBDR1JlY3RNYWtlKHBhaW50UmVjdC54KCks
IC1wYWludFJlY3QubWF4WSgpLCBwYWludFJlY3Qud2lkdGgoKSwgcGFpbnRSZWN0LmhlaWdodCgp
KSwgMS4wLCB0b1BLUGF5bWVudEJ1dHRvblR5cGUocmVuZGVyZXIuc3R5bGUoKS5hcHBsZVBheUJ1
dHRvblR5cGUoKSksIHRvUEtQYXltZW50QnV0dG9uU3R5bGUocmVuZGVyZXIuc3R5bGUoKS5hcHBs
ZVBheUJ1dHRvblN0eWxlKCkpLCByZW5kZXJlci5zdHlsZSgpLmxvY2FsZSgpKTsKKworICAgIHJl
dHVybiBmYWxzZTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJ
T1MuaAppbmRleCBmZmIyZTNmMTVjNTY0M2M1NTU5MzA5Mjk4ODNlZjk2MGVjNTNiZDhkLi5mZGQ3
YzBhN2QyMGRkNTY4YzQxNzhmODI1YjkzOWY0MDkzNTc2ZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaApAQCAtMjMsMTIgKzIzLDExIEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBSZW5kZXJUaGVtZUlPU19o
Ci0jZGVmaW5lIFJlbmRlclRoZW1lSU9TX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgUExBVEZPUk0o
SU9TKQogCi0jaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZUNv
Y29hLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKQEAgLTM2LDcgKzM1LDcgQEAgY2xh
c3MgUmVuZGVyU3R5bGU7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBzdHJ1Y3QgQXR0YWNobWVu
dExheW91dDsKIAotY2xhc3MgUmVuZGVyVGhlbWVJT1MgZmluYWwgOiBwdWJsaWMgUmVuZGVyVGhl
bWUgeworY2xhc3MgUmVuZGVyVGhlbWVJT1MgZmluYWwgOiBwdWJsaWMgUmVuZGVyVGhlbWVDb2Nv
YSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZW5kZXJUaGVtZT4gY3JlYXRlKCk7CiAKQEAg
LTEzNSw0ICsxMzQsMyBAQCBwcml2YXRlOgogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQot
I2VuZGlmIC8vIFJlbmRlclRoZW1lSU9TX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLmgKaW5kZXggNGUwMGE0OGIwNGFlNGNiMWZiNDNjMDRmOWIzN2I0NjZlNDliZmY1
Yy4uNjU4Zjg4MzE0NjM2MDcyOWI2Y2EzNzY2ZGMwYzlhOWE1NjliODZlNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTE5LDEyICsxOSwxMiBAQAogICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKgogICovCi0jaWYgIVBMQVRGT1JNKElPUykK
IAotI2lmbmRlZiBSZW5kZXJUaGVtZU1hY19oCi0jZGVmaW5lIFJlbmRlclRoZW1lTWFjX2gKKyNw
cmFnbWEgb25jZQogCi0jaW1wb3J0ICJSZW5kZXJUaGVtZS5oIgorI2lmIFBMQVRGT1JNKE1BQykK
KworI2ltcG9ydCAiUmVuZGVyVGhlbWVDb2NvYS5oIgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgogI2ltcG9ydCA8d3RmL0hhc2hNYXAuaD4KIApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBSZW5k
ZXJQcm9ncmVzczsKIGNsYXNzIFJlbmRlclN0eWxlOwogc3RydWN0IEF0dGFjaG1lbnRMYXlvdXQ7
CiAKLWNsYXNzIFJlbmRlclRoZW1lTWFjIGZpbmFsIDogcHVibGljIFJlbmRlclRoZW1lIHsKK2Ns
YXNzIFJlbmRlclRoZW1lTWFjIGZpbmFsIDogcHVibGljIFJlbmRlclRoZW1lQ29jb2EgewogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8UmVuZGVyVGhlbWU+IGNyZWF0ZSgpOwogCkBAIC0yNTAsNiAr
MjUwLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8g
UmVuZGVyVGhlbWVNYWNfaAotCi0jZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKKyNlbmRpZiAvLyBQ
TEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCmluZGV4IDNjMDVhN2NkMGFlNDJhY2Q0YWUxMTNiODg2ZGE4ZTJmYTQ2NjlhZWQuLjAyZjJi
ZjdlMzA4MGFhNTJhYjRjYjBlYWY4MTgyZThiNjFhMzYwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0xMjE4LDcgKzEyMTgsMTIgQEAgcHVi
bGljOgogI2lmIEVOQUJMRShDU1NfVFJBSUxJTkdfV09SRCkKICAgICBUcmFpbGluZ1dvcmQgdHJh
aWxpbmdXb3JkKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VHJhaWxpbmdXb3JkPihyYXJl
SW5oZXJpdGVkRGF0YS0+dHJhaWxpbmdXb3JkKTsgfQogI2VuZGlmCi0gICAgCisKKyNpZiBFTkFC
TEUoQVBQTEVfUEFZKQorICAgIEFwcGxlUGF5QnV0dG9uU3R5bGUgYXBwbGVQYXlCdXR0b25TdHls
ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFwcGxlUGF5QnV0dG9uU3R5bGU+KHJhcmVJ
bmhlcml0ZWREYXRhLT5hcHBsZVBheUJ1dHRvblN0eWxlKTsgfQorICAgIEFwcGxlUGF5QnV0dG9u
VHlwZSBhcHBsZVBheUJ1dHRvblR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxBcHBs
ZVBheUJ1dHRvblR5cGU+KHJhcmVJbmhlcml0ZWREYXRhLT5hcHBsZVBheUJ1dHRvblR5cGUpOyB9
CisjZW5kaWYKKwogICAgIHZvaWQgY2hlY2tWYXJpYWJsZXNJbkN1c3RvbVByb3BlcnRpZXMoKTsK
IAogLy8gYXR0cmlidXRlIHNldHRlciBtZXRob2RzCkBAIC0xNzM1LDYgKzE3NDAsMTEgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0VHJhaWxpbmdXb3JkKFRyYWlsaW5nV29yZCB2KSB7IFNFVF9WQVIo
cmFyZUluaGVyaXRlZERhdGEsIHRyYWlsaW5nV29yZCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYp
KTsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgIHZvaWQgc2V0QXBwbGVQ
YXlCdXR0b25TdHlsZShBcHBsZVBheUJ1dHRvblN0eWxlIHYpIHsgU0VUX1ZBUihyYXJlSW5oZXJp
dGVkRGF0YSwgYXBwbGVQYXlCdXR0b25TdHlsZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsg
fQorICAgIHZvaWQgc2V0QXBwbGVQYXlCdXR0b25UeXBlKEFwcGxlUGF5QnV0dG9uVHlwZSB2KSB7
IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIGFwcGxlUGF5QnV0dG9uVHlwZSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHYpKTsgfQorI2VuZGlmCisKICAgICBjb25zdCBTVkdSZW5kZXJTdHlsZSYg
c3ZnU3R5bGUoKSBjb25zdCB7IHJldHVybiAqbV9zdmdTdHlsZTsgfQogICAgIFNWR1JlbmRlclN0
eWxlJiBhY2Nlc3NTVkdTdHlsZSgpIHsgcmV0dXJuICptX3N2Z1N0eWxlLmFjY2VzcygpOyB9CiAK
QEAgLTIwODYsNiArMjA5NiwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFRyYWlsaW5nV29yZCBp
bml0aWFsVHJhaWxpbmdXb3JkKCkgeyByZXR1cm4gVHJhaWxpbmdXb3JkOjpBdXRvOyB9CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgc3RhdGljIEFwcGxlUGF5QnV0dG9uU3R5
bGUgaW5pdGlhbEFwcGxlUGF5QnV0dG9uU3R5bGUoKSB7IHJldHVybiBBcHBsZVBheUJ1dHRvblN0
eWxlOjpCbGFjazsgfQorICAgIHN0YXRpYyBBcHBsZVBheUJ1dHRvblR5cGUgaW5pdGlhbEFwcGxl
UGF5QnV0dG9uVHlwZSgpIHsgcmV0dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6UGxhaW47IH0KKyNl
bmRpZgorCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKICAgICAvLyBUaGUgaW5pdGlhbCB2
YWx1ZSBpcyAnbm9uZScgZm9yIGdyaWQgdHJhY2tzLgogICAgIHN0YXRpYyBWZWN0b3I8R3JpZFRy
YWNrU2l6ZT4gaW5pdGlhbEdyaWRDb2x1bW5zKCkgeyByZXR1cm4gVmVjdG9yPEdyaWRUcmFja1Np
emU+KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlQ29uc3RhbnRzLmgKaW5kZXggMzUxOGMyZjRlOWM5MjQ3YjJhMjFmYmRiMDA3YmQ4Nzk1
N2NmMDMwMC4uN2NhZjcxNTUxMDEzYWM2NTJhZDgwYTM3ZjhmZjUzYTkyOGMxNzAyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3Rh
bnRzLmgKQEAgLTY5Niw2ICs2OTYsMjEgQEAgZW51bSBjbGFzcyBUcmFpbGluZ1dvcmQgewogfTsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKK2VudW0gY2xhc3MgQXBwbGVQYXlCdXR0
b25TdHlsZSB7CisgICAgV2hpdGUsCisgICAgV2hpdGVPdXRsaW5lLAorICAgIEJsYWNrLAorfTsK
KworZW51bSBjbGFzcyBBcHBsZVBheUJ1dHRvblR5cGUgeworICAgIFBsYWluLAorICAgIEJ1eSwK
KyAgICBTZXRVcCwKKyAgICBJblN0b3JlLAorfTsKKyNlbmRpZgorCiBUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mLCBFRmlsbFNpemVUeXBlKTsKIFRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYsIEVGaWxsQXR0YWNobWVudCk7CiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mLCBFRmlsbEJveCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggMjA5OGI5MTc5
YzU3MWViYjg0ZWRiMmYzYzc4NjExODI4YzY2ZTFlMS4uOGJhZjM1MjBlMTdmODg2MGYwNjM3OGU5
MjMzMzg1NzcyNzExODBhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAtMTI0LDYgKzEyNCwxMCBA
QCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKCkKICNpZiBF
TkFCTEUoQ1NTX1RSQUlMSU5HX1dPUkQpCiAgICAgLCB0cmFpbGluZ1dvcmQoc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsVHJhaWxpbmdXb3JkKCkpKQogI2VuZGlmCisj
aWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICAsIGFwcGxlUGF5QnV0dG9uU3R5bGUoc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsQXBwbGVQYXlCdXR0b25TdHlsZSgpKSkK
KyAgICAsIGFwcGxlUGF5QnV0dG9uVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUmVuZGVyU3R5
bGU6OmluaXRpYWxBcHBsZVBheUJ1dHRvblR5cGUoKSkpCisjZW5kaWYKICAgICAsIG1faGFuZ2lu
Z1B1bmN0dWF0aW9uKFJlbmRlclN0eWxlOjppbml0aWFsSGFuZ2luZ1B1bmN0dWF0aW9uKCkpCiAg
ICAgLCBoeXBoZW5hdGlvbkxpbWl0QmVmb3JlKC0xKQogICAgICwgaHlwaGVuYXRpb25MaW1pdEFm
dGVyKC0xKQpAQCAtMjA2LDYgKzIxMCwxMCBAQCBpbmxpbmUgU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYQogI2lm
IEVOQUJMRShDU1NfVFJBSUxJTkdfV09SRCkKICAgICAsIHRyYWlsaW5nV29yZChvLnRyYWlsaW5n
V29yZCkKICNlbmRpZgorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgLCBhcHBsZVBheUJ1dHRv
blN0eWxlKG8uYXBwbGVQYXlCdXR0b25TdHlsZSkKKyAgICAsIGFwcGxlUGF5QnV0dG9uVHlwZShv
LmFwcGxlUGF5QnV0dG9uVHlwZSkKKyNlbmRpZgogICAgICwgbV9oYW5naW5nUHVuY3R1YXRpb24o
by5tX2hhbmdpbmdQdW5jdHVhdGlvbikKICAgICAsIGh5cGhlbmF0aW9uU3RyaW5nKG8uaHlwaGVu
YXRpb25TdHJpbmcpCiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0QmVmb3JlKG8uaHlwaGVuYXRpb25M
aW1pdEJlZm9yZSkKQEAgLTMxMiw2ICszMjAsMTAgQEAgYm9vbCBTdHlsZVJhcmVJbmhlcml0ZWRE
YXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pIGNvbnN0CiAj
aWYgRU5BQkxFKENTU19UUkFJTElOR19XT1JEKQogICAgICAgICAmJiB0cmFpbGluZ1dvcmQgPT0g
by50cmFpbGluZ1dvcmQKICNlbmRpZgorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgICAgICYm
IGFwcGxlUGF5QnV0dG9uU3R5bGUgPT0gby5hcHBsZVBheUJ1dHRvblN0eWxlCisgICAgICAgICYm
IGFwcGxlUGF5QnV0dG9uVHlwZSA9PSBvLmFwcGxlUGF5QnV0dG9uVHlwZQorI2VuZGlmCiAgICAg
ICAgICYmIG1faGFuZ2luZ1B1bmN0dWF0aW9uID09IG8ubV9oYW5naW5nUHVuY3R1YXRpb24KICAg
ICAgICAgJiYgbV9jdXN0b21Qcm9wZXJ0aWVzID09IG8ubV9jdXN0b21Qcm9wZXJ0aWVzCiAgICAg
ICAgICYmIGFyZVBvaW50aW5nVG9FcXVhbERhdGEobGlzdFN0eWxlSW1hZ2UsIG8ubGlzdFN0eWxl
SW1hZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggNWY3YzIzNjM2NTg4N2VkM2Q4ZGRlZDg5YjcyMzEy
MGIyNGJkMTkxMy4uY2U5ZmEzODFlNmQzNmM5NjAyNjg3MGM0ZTM3NzczNGI3MDYwMmY4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRl
ZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5oCkBAIC0xMzYsNiArMTM2LDExIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCB0
cmFpbGluZ1dvcmQgOiAxOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgIHVu
c2lnbmVkIGFwcGxlUGF5QnV0dG9uU3R5bGUgOiAyOworICAgIHVuc2lnbmVkIGFwcGxlUGF5QnV0
dG9uVHlwZSA6IDM7CisjZW5kaWYKKwogICAgIHVuc2lnbmVkIG1faGFuZ2luZ1B1bmN0dWF0aW9u
IDogNDsKIAogICAgIEF0b21pY1N0cmluZyBoeXBoZW5hdGlvblN0cmluZzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288863</attachid>
            <date>2016-09-14 14:47:39 -0700</date>
            <delta_ts>2016-09-14 15:16:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161986-20160914144503.patch</filename>
            <type>text/plain</type>
            <size>40924</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1OTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI4Zjc0M2VhNDc0MjQ4
ZTdlOTY5ZjVjMDRlNjY4YmE3Y2YyY2I4ZS4uZjI4ZTE1NGZlYTQ2MjU2MjgyM2Q5OGEzMGNlYjYz
OTBiMmQ3ZmE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDE2LTA5LTE0ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIENTUyAtd2Vi
a2l0LWFwcGVhcmFuY2UgcHJvcGVydHkgZm9yIEFwcGxlIFBheSBidXR0b25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5ODYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgLXdlYmtpdC1h
cHBlYXJhbmNlIHByb3BlcnR5LCAiLWFwcGxlLXBheS1idXR0b24iLgorICAgICAgICBBbHNvLCBh
ZGQgdHdvIHByb3BlcnRpZXMsICItYXBwbGUtcGF5LWJ1dHRvbi10eXBlIiBhbmQgIi1hcHBsZS1w
YXktYnV0dG9uLXN0eWxlIi4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgQWRkIFJlbmRlclRoZW1lQ29jb2EuaCBhbmQgUmVuZGVyVGhlbWVD
b2NvYS5tbS4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1
ZSk6CisgICAgICAgIEhhbmRsZSBDU1NQcm9wZXJ0eUFwcGxlUGF5QnV0dG9uU3R5bGUgYW5kIENT
U1Byb3BlcnR5QXBwbGVQYXlCdXR0b25UeXBlLgorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgQXBwbGVQYXlCdXR0b25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgQXBwbGVQYXlCdXR0b25UeXBlKToKKyAgICAgICAgQWRkIEFw
cGxlUGF5QnV0dG9uU3R5bGUgYW5kIEFwcGxlUGF5QnV0dG9uVHlwZSBjb252ZXJzaW9uIHJvdXRp
bmVzLgorCisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgIEFkZCAt
YXBwbGUtcGF5LWJ1dHRvbi1zdHlsZSBhbmQgLWFwcGxlLXBheS1idXR0b24tdHlwZS4KKworICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICBBZGQgQ1NTIHZhbHVlcy4K
KworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjppc0tl
eXdvcmRQcm9wZXJ0eUlEKToKKyAgICAgICAgSGFuZGxlIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0
b25TdHlsZSBhbmQgQ1NTUHJvcGVydHlBcHBsZVBheUJ1dHRvblR5cGUuCisKKyAgICAgICAgKFdl
YkNvcmU6OmlzQXBwbGVMZWdhY3lDU1NQcm9wZXJ0eUtleXdvcmQpOgorICAgICAgICBOZXcgZnVu
Y3Rpb24gdGhhdCByZXR1cm5zIHdoZXRoZXIgdGhlIENTUyBwcm9wZXJ0eSBzaG91bGQgYmUgcmV3
cml0dGVuIHRvIC13ZWJraXQtLgorICAgICAgICBXZSB3YW50IHRvIHJld3JpdGUgLWFwcGxlLSBi
dXQgbm90IC1hcHBsZS1wYXktLgorCisgICAgICAgIChXZWJDb3JlOjpjc3NQcm9wZXJ0eUlEKToK
KyAgICAgICAgVXNlIHRoZSBuZXdseSBhZGRlZCBpc0FwcGxlTGVnYWN5Q1NTUHJvcGVydHlLZXl3
b3JkLgorCisgICAgICAgIChXZWJDb3JlOjppc0FwcGxlTGVnYWN5Q1NTVmFsdWVLZXl3b3JkKToK
KyAgICAgICAgQ2hlY2sgZm9yICItYXBwbGUtcGF5LSIgaW4gYWRkaXRpb24gdG8gIi1hcHBsZS1z
eXN0ZW0tIi4KKworICAgICAgICAqIHBsYXRmb3JtL1RoZW1lVHlwZXMuaDoKKyAgICAgICAgQWRk
IEFwcGxlUGF5QnV0dG9uUGFydC4KKworICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9QYXNz
S2l0U1BJLmg6CisgICAgICAgIEFkZCBQS0RyYXdBcHBsZVBheUJ1dHRvbiBkZWNsYXJhdGlvbi4K
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZTo6YWRqdXN0U3R5bGUpOgorICAgICAgICBIYW5kbGUgQXBwbGVQYXlCdXR0
b25QYXJ0LgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOgorICAgICAg
ICBIYW5kbGUgQXBwbGVQYXlCdXR0b25QYXJ0LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0QXBwbGVQYXlC
dXR0b25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRBcHBsZVBh
eUJ1dHRvbik6CisgICAgICAgIEFkZCBuZXcgZnVuY3Rpb25zLgorCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ29jb2EuaDogQWRkZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDb2Nv
YTo6YWRqdXN0QXBwbGVQYXlCdXR0b25TdHlsZSk6CisgICAgICAgIEFkanVzdCB0aGUgbWluaW11
bSB3aWR0aCBhbmQgbWluaW11bSBoZWlnaHQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKFdlYkNv
cmU6OnRvUEtQYXltZW50QnV0dG9uU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6dG9QS1BheW1l
bnRCdXR0b25UeXBlKToKKyAgICAgICAgSGVscGVyIGZ1bmN0aW9ucyB0aGF0IGNvbnZlciBvdXIg
V2ViQ29yZSB0eXBlcyB0byBQSyB0eXBlcy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVDb2NvYTo6cGFpbnRBcHBsZVBheUJ1dHRvbik6CisgICAgICAgIENhbGwgUEtEcmF3QXBwbGVQ
YXlCdXR0b24uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgSW5oZXJpdCBmcm9tIFJl
bmRlclRoZW1lQ29jb2EuCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjphcHBsZVBheUJ1dHRvblN0eWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjphcHBsZVBheUJ1dHRvblR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEFwcGxlUGF5QnV0dG9uU3R5bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEFwcGxlUGF5QnV0dG9uVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5pdGlhbEFwcGxlUGF5QnV0dG9uU3R5bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmluaXRpYWxBcHBsZVBheUJ1dHRvblR5cGUp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9
PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoK
KyAgICAgICAgQWRkIG5ldyBzdHlsZSBtZW1iZXJzIGZvciB0aGUgYnV0dG9uIHN0eWxlIGFuZCBi
dXR0b24gdHlwZSBwcm9wZXJ0aWVzLgorCiAyMDE2LTA5LTE0ICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRpYVN0cmVhbV0gTWlub3IgY2xlYW51
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDI4Y2E2NzM5ZjFkYjYxZDEwNWZkMGE5ODFkZTBmY2UxZjMwMmNkMjYuLjI4NjNjYzY5
NTI2NjM5MjJmOWUyMmU5MDg4NjU1ZTNmNThjNzk4YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY5Myw2ICs2OTMsOCBAQAog
CQkxQTIyNDY0RTBDQzk4RERCMDBDMDUyNDAgLyogU1FMaXRlVHJhbnNhY3Rpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjI0NjQ4MENDOThEREIw
MEMwNTI0MCAvKiBTUUxpdGVUcmFuc2FjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMjQ4NDREMUQxQTI3MkEwMEY1NkJBNyAvKiBQYXlt
ZW50SGVhZGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUEyNDg0NEMxRDFBMjcwMTAwRjU2QkE3IC8qIFBheW1lbnRIZWFkZXJzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUEyNTBFMEQxQ0RENjMy
MDAwRDBCRTYzIC8qIExpbmtJY29uVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUEyNTBFMEMxQ0RENjMyMDAwRDBCRTYzIC8qIExpbmtJY29uVHlw
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFB
Mjk5RkU3MUQ3RjVGQTYwMEE2MDA5MyAvKiBSZW5kZXJUaGVtZUNvY29hLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyOTlGRTUxRDdGNUZBNjAwQTYw
MDkzIC8qIFJlbmRlclRoZW1lQ29jb2EubW0gKi87IH07CisJCTFBMjk5RkU4MUQ3RjVGQTYwMEE2
MDA5MyAvKiBSZW5kZXJUaGVtZUNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQTI5OUZFNjFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVD
b2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTFBMkE2ODIzMEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyQTY4MjEwQjVCRURFNzAw
MDJBNDgwIC8qIFByb2dyZXNzVHJhY2tlci5jcHAgKi87IH07CiAJCTFBMkE2ODI0MEI1QkVERTcw
MDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBMkE2ODIyMEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1Ry
YWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkxQTJBQUM1ODBEQzJBM0IxMDBBMjBEOUEgLyogQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyQUFDNTYw
REMyQTNCMTAwQTIwRDlBIC8qIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCAqLzsgfTsKQEAg
LTc1MzAsNiArNzUzMiw4IEBACiAJCTFBMjI0NjQ4MENDOThEREIwMEMwNTI0MCAvKiBTUUxpdGVU
cmFuc2FjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTUUxpdGVUcmFu
c2FjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTI0ODQ0QzFEMUEyNzAx
MDBGNTZCQTcgLyogUGF5bWVudEhlYWRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGF5bWVudEhlYWRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEy
NTBFMEMxQ0RENjMyMDAwRDBCRTYzIC8qIExpbmtJY29uVHlwZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMaW5rSWNvblR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUEyOTlGRTUxRDdGNUZBNjAwQTYwMDkzIC8qIFJlbmRlclRoZW1lQ29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW5kZXJUaGVtZUNvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQTI5OUZFNjFEN0Y1RkE2MDBBNjAwOTMg
LyogUmVuZGVyVGhlbWVDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJUaGVtZUNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMkE2ODIx
MEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb2dyZXNzVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFBMkE2ODIyMEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNr
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2dyZXNzVHJhY2tlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTJBQUM1NjBEQzJBM0IxMDBBMjBEOUEg
LyogQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjI4MzcsNiArMjI4NDEsOCBAQAogCQkJCUU0QzkxQTE1MTgwOTk5RjEw
MEExN0Y2RCAvKiBSZW5kZXJUZXh0TGluZUJveGVzLmggKi8sCiAJCQkJQkNFQTQ4NEEwOTdEOTMw
MjAwOTRDOUU0IC8qIFJlbmRlclRoZW1lLmNwcCAqLywKIAkJCQlCQ0VBNDg0QjA5N0Q5MzAyMDA5
NEM5RTQgLyogUmVuZGVyVGhlbWUuaCAqLywKKwkJCQkxQTI5OUZFNjFEN0Y1RkE2MDBBNjAwOTMg
LyogUmVuZGVyVGhlbWVDb2NvYS5oICovLAorCQkJCTFBMjk5RkU1MUQ3RjVGQTYwMEE2MDA5MyAv
KiBSZW5kZXJUaGVtZUNvY29hLm1tICovLAogCQkJCUZFRDEzRDUwMENFQTk0OTcwMEQ4OTQ2NiAv
KiBSZW5kZXJUaGVtZUlPUy5oICovLAogCQkJCUM1NUM3QkEwMTcxOEFGQkEwMDEzMjdFNCAvKiBS
ZW5kZXJUaGVtZUlPUy5tbSAqLywKIAkJCQlCQ0VBNDg0ODA5N0Q5MzAyMDA5NEM5RTQgLyogUmVu
ZGVyVGhlbWVNYWMuaCAqLywKQEAgLTI1MDg0LDYgKzI1MDkwLDcgQEAKIAkJCQlCQzkyNkY4MTBD
MDU1MjQ3MDA4Mjc3NkIgLyogSlNIVE1MRnJhbWVTZXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODBFN0IxNTBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBRTJBQTJGMEExQ0RBQjQwMEI0MkIyNSAvKiBKU0hUTUxIZWFkaW5n
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUEyOTlGRTgxRDdGNUZBNjAwQTYwMDkzIC8q
IFJlbmRlclRoZW1lQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTJBQTMxMEExQ0RBQjQw
MEI0MkIyNSAvKiBKU0hUTUxIUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBODVCMTkw
MEExQjE4QTIwMEQ4Qzg3QyAvKiBKU0hUTUxIdG1sRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM0OTE4QzkwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjc2MjcsNiArMjc2MzQsNyBAQAogCQkJCUY0NUMyMzFEMTk5NUI3M0Iw
MEE2RTJFMyAvKiBBeGlzU2Nyb2xsU25hcE9mZnNldHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MzdGNTdBQ0YxQTUwNzJERDAwODc2Rjk4IC8qIEFYT2JqZWN0Q2FjaGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQUFBNzI4RjkxNkQxRDhCQzAwRDNCQkM2IC8qIEFYT2JqZWN0Q2FjaGVJT1MubW0g
aW4gU291cmNlcyAqLywKKwkJCQkxQTI5OUZFNzFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhl
bWVDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI5QTgxMjRCMEZCQjlDQTkwMDUxMDI5MyAv
KiBBWE9iamVjdENhY2hlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBOEM4MUYxMUUzRDM2
OTAwODEyRkI3IC8qIEJhY2tGb3J3YXJkQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0E4Q0E1RjExRTRFNkQxMDA4MTJGQjcgLyogQmFja0ZvcndhcmRMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcAppbmRleCBiYTA4MTg2NTUwOGQyODZkNGU5NWZhOWQxOWY1ZmVlZGZiZWVlNTIw
Li44M2IxMzJkMTY2YmQ2YzlmMzYxYzM3ZmQyMWFjMTllMTBkODk5N2E2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMzc1
Myw2ICszNzUzLDEzIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6
cHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsCiAgICAgICAgICAgICByZXR1
cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLT50cmFpbGluZ1dvcmQoKSk7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlBcHBs
ZVBheUJ1dHRvblN0eWxlOgorICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVW
YWx1ZShzdHlsZS0+YXBwbGVQYXlCdXR0b25TdHlsZSgpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eUFwcGxlUGF5QnV0dG9uVHlwZToKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wu
Y3JlYXRlVmFsdWUoc3R5bGUtPmFwcGxlUGF5QnV0dG9uVHlwZSgpKTsKKyNlbmRpZgorCiAgICAg
ICAgIC8qIEluZGl2aWR1YWwgcHJvcGVydGllcyBub3QgcGFydCBvZiB0aGUgc3BlYyAqLwogICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFJlcGVhdFg6CiAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlCYWNrZ3JvdW5kUmVwZWF0WToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IDRlZmMwN2ZkOTdhNWU3YzBjZDQzNTdmODk3MzJk
NDFlM2E0MWZjODkuLjhmOGVhNDExMjEyMDZhNTMyODgzMWJkNjg1ZDFkZjJlMmVjZTk4NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAt
NjE2LDYgKzYxNiwxMSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQgZSkKICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0g
Q1NTVmFsdWVJbWFnZUNvbnRyb2xzQnV0dG9uOwogICAgICAgICBicmVhazsKICNlbmRpZgorI2lm
IEVOQUJMRShBUFBMRV9QQVkpCisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblBhcnQ6CisgICAgICAg
IG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQXBwbGVQYXlCdXR0b247CisgICAgICAgIGJyZWFr
OworI2VuZGlmCiAgICAgfQogfQogCkBAIC01NDczLDYgKzU0NzgsODcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFRyYWlsaW5nV29yZCgpIGNvbnN0CiB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVkpCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQXBwbGVQYXlCdXR0b25TdHlsZSBlKQor
ICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgbV9wcmltaXRpdmVVbml0VHlw
ZSA9IENTU19WQUxVRV9JRDsKKyAgICBzd2l0Y2ggKGUpIHsKKyAgICBjYXNlIEFwcGxlUGF5QnV0
dG9uU3R5bGU6OldoaXRlOgorICAgICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdoaXRl
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlT3V0
bGluZToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVXaGl0ZU91dGxpbmU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25TdHlsZTo6QmxhY2s6CisgICAg
ICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlQmxhY2s7CisgICAgICAgIGJyZWFrOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsK
KyAgICB9Cit9CisKK3RlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRv
ciBBcHBsZVBheUJ1dHRvblN0eWxlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNWYWx1ZUlEKCkp
OworICAgIHN3aXRjaCAobV92YWx1ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVdoaXRl
OgorICAgICAgICByZXR1cm4gQXBwbGVQYXlCdXR0b25TdHlsZTo6V2hpdGU7CisgICAgY2FzZSBD
U1NWYWx1ZVdoaXRlT3V0bGluZToKKyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uU3R5bGU6
OldoaXRlT3V0bGluZTsKKyAgICBjYXNlIENTU1ZhbHVlQmxhY2s6CisgICAgICAgIHJldHVybiBB
cHBsZVBheUJ1dHRvblN0eWxlOjpCbGFjazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsK
KyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFwcGxlUGF5QnV0
dG9uU3R5bGU6OkJsYWNrOworfQorCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQXBwbGVQYXlCdXR0b25UeXBlIGUpCisgICAgOiBDU1NWYWx1
ZShQcmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVF
X0lEOworICAgIHN3aXRjaCAoZSkgeworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpQbGFp
bjoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVQbGFpbjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkJ1eToKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVCdXk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXBwbGVQYXlC
dXR0b25UeXBlOjpTZXRVcDoKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZXRV
cDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkluU3RvcmU6
CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlSW5TdG9yZTsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IGJyZWFrOworICAgIH0KK30KKwordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
Om9wZXJhdG9yIEFwcGxlUGF5QnV0dG9uVHlwZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVmFs
dWVJRCgpKTsKKyAgICBzd2l0Y2ggKG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFs
dWVQbGFpbjoKKyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6UGxhaW47CisgICAg
Y2FzZSBDU1NWYWx1ZUJ1eToKKyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6QnV5
OworICAgIGNhc2UgQ1NTVmFsdWVTZXRVcDoKKyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9u
VHlwZTo6U2V0VXA7CisgICAgY2FzZSBDU1NWYWx1ZUluU3RvcmU6CisgICAgICAgIHJldHVybiBB
cHBsZVBheUJ1dHRvblR5cGU6OkluU3RvcmU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBBcHBsZVBheUJ1
dHRvblR5cGU6OlBsYWluOworfQorI2VuZGlmCisKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShGb250VmFyaWFudFBvc2l0aW9uIHBvc2l0aW9u
KQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0eU5hbWVzLmluCmluZGV4IDliOWVlM2U2MjY2ZjE0ODY1YWM5MDdkMzIxZWI5YzdhZDE0
YTY3OGQuLjg4NjEzMzljZjNjOWFlYzI2YzMwMzY4Yjg1ODRiNTJmNmMxOTdlMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC02ODEsMyArNjgxLDggQEAgdG91Y2gt
YWN0aW9uCiAjaWYgZGVmaW5lZChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICYmIEVOQUJMRV9D
U1NfVFJBSUxJTkdfV09SRAogLWFwcGxlLXRyYWlsaW5nLXdvcmQgW0luaGVyaXRlZCwgTmFtZUZv
ck1ldGhvZHM9VHJhaWxpbmdXb3JkXQogI2VuZGlmCisKKyNpZiBkZWZpbmVkKEVOQUJMRV9BUFBM
RV9QQVkpICYmIEVOQUJMRV9BUFBMRV9QQVkKKy1hcHBsZS1wYXktYnV0dG9uLXN0eWxlIFtOYW1l
Rm9yTWV0aG9kcz1BcHBsZVBheUJ1dHRvblN0eWxlXQorLWFwcGxlLXBheS1idXR0b24tdHlwZSBb
TmFtZUZvck1ldGhvZHM9QXBwbGVQYXlCdXR0b25UeXBlXQorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDExZTg1MWI4MGM3MDIyMDkyNDhmYWViNjA4ODhj
ZjU2MjVmZjA2ZDcuLmY4ZmY2ZWExYWEzYWU3NWJkZTg0YTBhMzJlZWE2MTQ2MzliZjVhM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC04MDYsNiArODA2LDkgQEAg
cmF0aW5nLWxldmVsLWluZGljYXRvcgogI2lmIGRlZmluZWQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJP
TFMpICYmIEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTCiBpbWFnZS1jb250cm9scy1idXR0b24KICNl
bmRpZgorI2lmIGRlZmluZWQoRU5BQkxFX0FQUExFX1BBWSkgJiYgRU5BQkxFX0FQUExFX1BBWQor
LWFwcGxlLXBheS1idXR0b24KKyNlbmRpZgogdGV4dGFyZWEKICNpZiBkZWZpbmVkKEVOQUJMRV9B
VFRBQ0hNRU5UX0VMRU1FTlQpICYmIEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQKIGF0dGFjaG1l
bnQKQEAgLTExODUsNiArMTE4OCwxNyBAQCBmcm9tLWludHJpbnNpYwogLXdlYmtpdC1wYXJ0aWFs
bHktYmFsYW5jZWQKICNlbmRpZgogCisjaWYgZGVmaW5lZChFTkFCTEVfQVBQTEVfUEFZKSAmJiBF
TkFCTEVfQVBQTEVfUEFZCisvLyAtYXBwbGUtcGF5LWJ1dHRvbi1zdHlsZQord2hpdGUtb3V0bGlu
ZQorCisvLyAtYXBwbGUtcGF5LWJ1dHRvbi10eXBlCitwbGFpbgorYnV5CitzZXQtdXAKK2luLXN0
b3JlCisjZW5kaWYKKwogLy8gZm9udC1zeW50aGVzaXMKIHdlaWdodAogc3R5bGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcAppbmRleCA2ZjkxNTc2ZTIzMTZkYWEyNzE3MmU2
MjdhZmQzMjUwZDJlYmJiODBhLi5kYjVmY2E2YzNhMzExYmZhZTJiYjI4ZmFiZmQ0NGQxNGVjYzYz
NTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCkBAIC0xMDUwLDYg
KzEwNTAsMTYgQEAgc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRW
YWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIGludAogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBj
YXNlIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0b25TdHlsZTogLy8gd2hpdGUgfCB3aGl0ZS1vdXRs
aW5lIHwgYmxhY2sKKyAgICAgICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVXaGl0ZSB8fCB2YWx1
ZUlEID09IENTU1ZhbHVlV2hpdGVPdXRsaW5lIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVCbGFjaykK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1By
b3BlcnR5QXBwbGVQYXlCdXR0b25UeXBlOiAvLyBwbGFpbiB8IGJ1eSB8IHNldC11cCB8IGluLXN0
b3JlCisgICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlUGxhaW4gfHwgdmFsdWVJRCA9PSBD
U1NWYWx1ZUJ1eSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU2V0VXAgfHwgdmFsdWVJRCA9PSBDU1NW
YWx1ZUluU3RvcmUpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgYnJlYWs7Cisj
ZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFZhcmlhbnRQb3NpdGlvbjogLy8gbm9ybWFs
IHwgc3ViIHwgc3VwZXIKICAgICAgICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwg
dmFsdWVJRCA9PSBDU1NWYWx1ZVN1YiB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU3VwZXIpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTExNDksNiArMTE1OSwxNjQgQEAgc3RhdGljIGlubGlu
ZSBib29sIGlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5SWQsIGludAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGlz
S2V5d29yZFByb3BlcnR5SUQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkKQoreworICAgIHN3aXRj
aCAocHJvcGVydHlJZCkgeworICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCb3R0b21TdHlsZToK
KyAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyQ29sbGFwc2U6CisgICAgY2FzZSBDU1NQcm9wZXJ0
eUJvcmRlckxlZnRTdHlsZToKKyAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRTdHlsZToK
KyAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyVG9wU3R5bGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0
eUJveFNpemluZzoKKyAgICBjYXNlIENTU1Byb3BlcnR5QnJlYWtBZnRlcjoKKyAgICBjYXNlIENT
U1Byb3BlcnR5QnJlYWtCZWZvcmU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUJyZWFrSW5zaWRlOgor
ICAgIGNhc2UgQ1NTUHJvcGVydHlDYXB0aW9uU2lkZToKKyAgICBjYXNlIENTU1Byb3BlcnR5Q2xl
YXI6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUNvbHVtbkZpbGw6CisgICAgY2FzZSBDU1NQcm9wZXJ0
eUNvbHVtblByb2dyZXNzaW9uOgorICAgIGNhc2UgQ1NTUHJvcGVydHlDb2x1bW5SdWxlU3R5bGU6
CisgICAgY2FzZSBDU1NQcm9wZXJ0eURpcmVjdGlvbjoKKyAgICBjYXNlIENTU1Byb3BlcnR5RGlz
cGxheToKKyAgICBjYXNlIENTU1Byb3BlcnR5RW1wdHlDZWxsczoKKyAgICBjYXNlIENTU1Byb3Bl
cnR5RmxleERpcmVjdGlvbjoKKyAgICBjYXNlIENTU1Byb3BlcnR5RmxleFdyYXA6CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUZsb2F0OgorICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3RyZXRjaDoKKyAg
ICBjYXNlIENTU1Byb3BlcnR5Rm9udFN0eWxlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlGb250VmFy
aWFudEFsdGVybmF0ZXM6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRWYXJpYW50Q2FwczoKKyAg
ICBjYXNlIENTU1Byb3BlcnR5Rm9udFZhcmlhbnRQb3NpdGlvbjoKKyAgICBjYXNlIENTU1Byb3Bl
cnR5SW1hZ2VSZW5kZXJpbmc6CisgICAgY2FzZSBDU1NQcm9wZXJ0eUxpc3RTdHlsZVBvc2l0aW9u
OgorICAgIGNhc2UgQ1NTUHJvcGVydHlMaXN0U3R5bGVUeXBlOgorICAgIGNhc2UgQ1NTUHJvcGVy
dHlPYmplY3RGaXQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eU91dGxpbmVTdHlsZToKKyAgICBjYXNl
IENTU1Byb3BlcnR5T3ZlcmZsb3dXcmFwOgorICAgIGNhc2UgQ1NTUHJvcGVydHlPdmVyZmxvd1g6
CisgICAgY2FzZSBDU1NQcm9wZXJ0eU92ZXJmbG93WToKKyAgICBjYXNlIENTU1Byb3BlcnR5UGFn
ZUJyZWFrQWZ0ZXI6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZ2VCcmVha0JlZm9yZToKKyAgICBj
YXNlIENTU1Byb3BlcnR5UGFnZUJyZWFrSW5zaWRlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlQb2lu
dGVyRXZlbnRzOgorICAgIGNhc2UgQ1NTUHJvcGVydHlQb3NpdGlvbjoKKyAgICBjYXNlIENTU1By
b3BlcnR5UmVzaXplOgorICAgIGNhc2UgQ1NTUHJvcGVydHlTcGVhazoKKyAgICBjYXNlIENTU1By
b3BlcnR5VGFibGVMYXlvdXQ6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRBbGlnbjoKKyAgICBj
YXNlIENTU1Byb3BlcnR5VGV4dExpbmVUaHJvdWdoTW9kZToKKyAgICBjYXNlIENTU1Byb3BlcnR5
VGV4dExpbmVUaHJvdWdoU3R5bGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRPdmVyZmxvdzoK
KyAgICBjYXNlIENTU1Byb3BlcnR5VGV4dE92ZXJsaW5lTW9kZToKKyAgICBjYXNlIENTU1Byb3Bl
cnR5VGV4dE92ZXJsaW5lU3R5bGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRSZW5kZXJpbmc6
CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRUcmFuc2Zvcm06CisgICAgY2FzZSBDU1NQcm9wZXJ0
eVRleHRVbmRlcmxpbmVNb2RlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0VW5kZXJsaW5lU3R5
bGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVRyYW5zZm9ybVN0eWxlOgorICAgIGNhc2UgQ1NTUHJv
cGVydHlVbmljb2RlQmlkaToKKyAgICBjYXNlIENTU1Byb3BlcnR5VmlzaWJpbGl0eToKKyAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0QXBwZWFyYW5jZToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0QmFja2ZhY2VWaXNpYmlsaXR5OgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJB
ZnRlclN0eWxlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJCZWZvcmVTdHlsZToK
KyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyRW5kU3R5bGU6CisgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEJvcmRlckZpdDoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVy
U3RhcnRTdHlsZToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm94QWxpZ246CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdEJveERpcmVjdGlvbjoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0Qm94TGluZXM6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJveE9yaWVudDoKKyAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0Qm94UGFjazoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
Q29sdW1uQXhpczoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uQnJlYWtBZnRlcjoK
KyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q29sdW1uQnJlYWtCZWZvcmU6CisgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdENvbHVtbkJyZWFrSW5zaWRlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRGb250S2VybmluZzoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udFNtb290aGlu
ZzoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0SHlwaGVuczoKKyAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0TGluZUFsaWduOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRMaW5lQnJlYWs6
CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdExpbmVTbmFwOgorICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRNYXJnaW5BZnRlckNvbGxhcHNlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRN
YXJnaW5CZWZvcmVDb2xsYXBzZToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQm90
dG9tQ29sbGFwc2U6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcmdpblRvcENvbGxhcHNl
OgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlRGlyZWN0aW9uOgorICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRNYXJxdWVlU3R5bGU6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dE5ic3BNb2RlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRQcmludENvbG9yQWRqdXN0Ogor
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRSdGxPcmRlcmluZzoKKyAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0UnVieVBvc2l0aW9uOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0Q29t
YmluZToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25TdHlsZToKKyAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dE9yaWVudGF0aW9uOgorICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRUZXh0U2VjdXJpdHk6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRa
b29tOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm1TdHlsZToKKyAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0VXNlckRyYWc6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFVz
ZXJNb2RpZnk6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJTZWxlY3Q6CisgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdFdyaXRpbmdNb2RlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXaGl0
ZVNwYWNlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXb3JkQnJlYWs6CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdvcmRXcmFwOgorI2lmIEVOQUJMRShDU1NfVFJBSUxJTkdfV09SRCkKKyAgICBjYXNlIENT
U1Byb3BlcnR5QXBwbGVUcmFpbGluZ1dvcmQ6CisjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0NPTVBP
U0lUSU5HKQorICAgIGNhc2UgQ1NTUHJvcGVydHlJc29sYXRpb246CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eU1peEJsZW5kTW9kZToKKyNlbmRpZgorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVRvdWNoQWN0aW9uOgorI2VuZGlmCisjaWYgRU5BQkxFKENTU19CT1hf
REVDT1JBVElPTl9CUkVBSykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm94RGVjb3JhdGlv
bkJyZWFrOgorI2VuZGlmCisjaWYgRU5BQkxFKENVUlNPUl9WSVNJQklMSVRZKQorICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRDdXJzb3JWaXNpYmlsaXR5OgorI2VuZGlmCisjaWYgRU5BQkxFKEFD
Q0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
T3ZlcmZsb3dTY3JvbGxpbmc6CisjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFJlZ2lvbkJyZWFrQWZ0ZXI6CisgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFJlZ2lvbkJyZWFrQmVmb3JlOgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRS
ZWdpb25CcmVha0luc2lkZToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0UmVnaW9uRnJhZ21l
bnQ6CisjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTM19URVhUKQorICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRUZXh0QWxpZ25MYXN0OgorICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0SnVzdGlm
eToKKyNlbmRpZgorI2lmIFBMQVRGT1JNKElPUykKKyAgICAvLyBBcHBsZSBzcGVjaWZpYyBwcm9w
ZXJ0eS4gVGhlc2Ugd2lsbCBuZXZlciBiZSBzdGFuZGFyZGl6ZWQgYW5kIGlzIHB1cmVseSB0bwor
ICAgIC8vIHN1cHBvcnQgY3VzdG9tIFdlYktpdC1iYXNlZCBBcHBsZSBhcHBsaWNhdGlvbnMuCisg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRvdWNoQ2FsbG91dDoKKyNlbmRpZgorI2lmIEVOQUJM
RShDU1NfU0NST0xMX1NOQVApCisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFNjcm9sbFNuYXBU
eXBlOgorI2VuZGlmCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBjYXNlIENTU1Byb3BlcnR5
QXBwbGVQYXlCdXR0b25TdHlsZToKKyAgICBjYXNlIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0b25U
eXBlOgorI2VuZGlmCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgQ1NTUHJvcGVydHlK
dXN0aWZ5Q29udGVudDoKKyAgICBjYXNlIENTU1Byb3BlcnR5QWxpZ25Db250ZW50OgorICAgIGNh
c2UgQ1NTUHJvcGVydHlBbGlnbkl0ZW1zOgorICAgIGNhc2UgQ1NTUHJvcGVydHlBbGlnblNlbGY6
CisjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKKyAgICAgICAgcmV0dXJuICFSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKTsK
KyNlbHNlCisgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCisgICAgZGVmYXVsdDoKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogc3RhdGljIGJvb2wgaXNVbml2ZXJzYWxLZXl3
b3JkKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIC8vIFRoZXNlIGtleXdvcmRzIGNhbiBi
ZSB1c2VkIGZvciBhbGwgcHJvcGVydGllcy4KQEAgLTEzMjk1LDYgKzEzNDYzLDE1IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZVZpZXdwb3J0U2hvcnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcElkLCBD
U1NQcm9wZXJ0eUlEIGZpcnN0CiB9CiAjZW5kaWYKIAorc3RhdGljIGJvb2wgaXNBcHBsZUxlZ2Fj
eUNTU1Byb3BlcnR5S2V5d29yZChjb25zdCBjaGFyKiBwcm9wZXJ0eUtleXdvcmQsIHVuc2lnbmVk
IGxlbmd0aCkKK3sKKyAgICBzdGF0aWMgY29uc3QgY2hhciBhcHBsZVByZWZpeFtdID0gIi1hcHBs
ZS0iOworICAgIHN0YXRpYyBjb25zdCBjaGFyIGFwcGxlUGF5UHJlZml4W10gPSAiLWFwcGxlLXBh
eS0iOworCisgICAgcmV0dXJuIGhhc1ByZWZpeChwcm9wZXJ0eUtleXdvcmQsIGxlbmd0aCwgYXBw
bGVQcmVmaXgpCisgICAgICAgICYmICFoYXNQcmVmaXgocHJvcGVydHlLZXl3b3JkLCBsZW5ndGgs
IGFwcGxlUGF5UHJlZml4KTsKK30KKwogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+
CiBzdGF0aWMgQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0eUlEKGNvbnN0IENoYXJhY3RlclR5cGUq
IHByb3BlcnR5TmFtZSwgdW5zaWduZWQgbGVuZ3RoKQogewpAQCAtMTMzMTQsNyArMTM0OTEsNyBA
QCBzdGF0aWMgQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0eUlEKGNvbnN0IENoYXJhY3RlclR5cGUq
IHByb3BlcnR5TmFtZSwgdW5zaWduZWQgbAogICAgICAgICAvLyBJZiB0aGUgcHJlZml4IGlzIC1h
cHBsZS0gb3IgLWtodG1sLSwgY2hhbmdlIGl0IHRvIC13ZWJraXQtLgogICAgICAgICAvLyBUaGlz
IG1ha2VzIHRoZSBzdHJpbmcgb25lIGNoYXJhY3RlciBsb25nZXIuCiAgICAgICAgIGlmIChSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmxlZ2FjeUNTU1ZlbmRvclByZWZp
eGVzRW5hYmxlZCgpCi0gICAgICAgICAgICAmJiAoaGFzUHJlZml4KGJ1ZmZlciwgbGVuZ3RoLCAi
LWFwcGxlLSIpIHx8IGhhc1ByZWZpeChidWZmZXIsIGxlbmd0aCwgIi1raHRtbC0iKSkpIHsKKyAg
ICAgICAgICAgICYmIChpc0FwcGxlTGVnYWN5Q1NTUHJvcGVydHlLZXl3b3JkKGJ1ZmZlciwgbGVu
Z3RoKSB8fCBoYXNQcmVmaXgoYnVmZmVyLCBsZW5ndGgsICIta2h0bWwtIikpKSB7CiAgICAgICAg
ICAgICBtZW1tb3ZlKGJ1ZmZlciArIDcsIGJ1ZmZlciArIDYsIGxlbmd0aCArIDEgLSA2KTsKICAg
ICAgICAgICAgIG1lbWNweShidWZmZXIsICItd2Via2l0IiwgNyk7CiAgICAgICAgICAgICArK2xl
bmd0aDsKQEAgLTEzMzY1LDE0ICsxMzU0MiwxNiBAQCB2b2lkIGNzc1Byb3BlcnR5TmFtZUlPU0Fs
aWFzaW5nKGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgY29uc3QgY2hhciomIHByb3BlcnR5Tgog
fQogI2VuZGlmCiAKLXN0YXRpYyBib29sIGlzQXBwbGVMZWdhY3lDc3NWYWx1ZUtleXdvcmQoY29u
c3QgY2hhciogdmFsdWVLZXl3b3JkLCB1bnNpZ25lZCBsZW5ndGgpCitzdGF0aWMgYm9vbCBpc0Fw
cGxlTGVnYWN5Q1NTVmFsdWVLZXl3b3JkKGNvbnN0IGNoYXIqIHZhbHVlS2V5d29yZCwgdW5zaWdu
ZWQgbGVuZ3RoKQogewogICAgIHN0YXRpYyBjb25zdCBjaGFyIGFwcGxlUHJlZml4W10gPSAiLWFw
cGxlLSI7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIgYXBwbGVTeXN0ZW1QcmVmaXhbXSA9ICItYXBw
bGUtc3lzdGVtIjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBhcHBsZVN5c3RlbVByZWZpeFtdID0g
Ii1hcHBsZS1zeXN0ZW0tIjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBhcHBsZVBheVByZWZpeFtd
ID0gIi1hcHBsZS1wYXktIjsKICAgICBzdGF0aWMgY29uc3QgY2hhciogYXBwbGVXaXJlbGVzc1Bs
YXliYWNrVGFyZ2V0QWN0aXZlID0gZ2V0VmFsdWVOYW1lKENTU1ZhbHVlQXBwbGVXaXJlbGVzc1Bs
YXliYWNrVGFyZ2V0QWN0aXZlKTsKIAogICAgIHJldHVybiBoYXNQcmVmaXgodmFsdWVLZXl3b3Jk
LCBsZW5ndGgsIGFwcGxlUHJlZml4KQogICAgICAgICAmJiAhaGFzUHJlZml4KHZhbHVlS2V5d29y
ZCwgbGVuZ3RoLCBhcHBsZVN5c3RlbVByZWZpeCkKKyAgICAgICAgJiYgIWhhc1ByZWZpeCh2YWx1
ZUtleXdvcmQsIGxlbmd0aCwgYXBwbGVQYXlQcmVmaXgpCiAgICAgICAgICYmICFXVEY6OmVxdWFs
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPih2YWx1ZUtleXdvcmQpLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oYXBwbGVXaXJlbGVzc1BsYXliYWNrVGFyZ2V0QWN0aXZlKSwg
bGVuZ3RoKTsKIH0KIApAQCAtMTMzOTQsNyArMTM1NzMsNyBAQCBzdGF0aWMgQ1NTVmFsdWVJRCBj
c3NWYWx1ZUtleXdvcmRJRChjb25zdCBDaGFyYWN0ZXJUeXBlKiB2YWx1ZUtleXdvcmQsIHVuc2ln
bmVkCiAgICAgICAgIC8vIFRoaXMgbWFrZXMgdGhlIHN0cmluZyBvbmUgY2hhcmFjdGVyIGxvbmdl
ci4KICAgICAgICAgLy8gT24gaU9TIHdlIGRvbid0IHdhbnQgdG8gY2hhbmdlIHZhbHVlcyBzdGFy
dGluZyB3aXRoIC1hcHBsZS1zeXN0ZW0gdG8gLXdlYmtpdC1zeXN0ZW0uCiAgICAgICAgIC8vIEZJ
WE1FOiBSZW1vdmUgdGhpcyBtYW5nbGluZyB3aXRob3V0IGJyZWFraW5nIHRoZSB3ZWIuCi0gICAg
ICAgIGlmIChpc0FwcGxlTGVnYWN5Q3NzVmFsdWVLZXl3b3JkKGJ1ZmZlciwgbGVuZ3RoKSB8fCBo
YXNQcmVmaXgoYnVmZmVyLCBsZW5ndGgsICIta2h0bWwtIikpIHsKKyAgICAgICAgaWYgKGlzQXBw
bGVMZWdhY3lDU1NWYWx1ZUtleXdvcmQoYnVmZmVyLCBsZW5ndGgpIHx8IGhhc1ByZWZpeChidWZm
ZXIsIGxlbmd0aCwgIi1raHRtbC0iKSkgewogICAgICAgICAgICAgbWVtbW92ZShidWZmZXIgKyA3
LCBidWZmZXIgKyA2LCBsZW5ndGggKyAxIC0gNik7CiAgICAgICAgICAgICBtZW1jcHkoYnVmZmVy
LCAiLXdlYmtpdCIsIDcpOwogICAgICAgICAgICAgKytsZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9UaGVtZVR5cGVzLmgKaW5kZXggMDk5NDUzOTE3NDE1ZTkzYjBjNTc5NTI3NzVlNjhiMzQxOGZl
YWQ1Ni4uNTBlNmVkY2JmM2IwOWJkZWExMTAxODVjNWJkMmJhYTY2NTQ0ZWIwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaApAQCAtMjMsOCArMjMsNyBAQAogICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCiAgKi8KIAotI2lmbmRlZiBUaGVtZVR5cGVzX2gKLSNkZWZpbmUgVGhlbWVUeXBlc19oCisj
cHJhZ21hIG9uY2UKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw2ICs0OCw5IEBAIGVu
dW0gQ29udHJvbFBhcnQgewogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIEltYWdl
Q29udHJvbHNCdXR0b25QYXJ0LAogI2VuZGlmCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBB
cHBsZVBheUJ1dHRvblBhcnQsCisjZW5kaWYKICAgICBUZXh0QXJlYVBhcnQsCiAjaWYgRU5BQkxF
KEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBBdHRhY2htZW50UGFydCwKQEAgLTczLDQgKzc1LDMg
QEAgZW51bSBUaGVtZUNvbG9yIHsKIH07CiAKIH0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1Bhc3NLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NwaS9jb2NvYS9QYXNzS2l0U1BJLmgKaW5kZXggYTBjN2I5OTg0ZTdlZTcxOTk3
NTk1OTA2Mjg1OTI1NDM5NWRmOTEwOS4uZWZhYTI3NmJlMTRlMGM0OTY5YjQ5ODA0OTg0NDY5MDRl
MTkxZGRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1Bh
c3NLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvUGFzc0tp
dFNQSS5oCkBAIC0yMTQsMyArMjE0LDYgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIE5TX0FT
U1VNRV9OT05OVUxMX0VORAogCiAjZW5kaWYKKworZXh0ZXJuICJDIgordm9pZCBQS0RyYXdBcHBs
ZVBheUJ1dHRvbihDR0NvbnRleHRSZWYsIENHUmVjdCBkcmF3UmVjdCwgQ0dGbG9hdCBzY2FsZSwg
UEtQYXltZW50QnV0dG9uVHlwZSwgUEtQYXltZW50QnV0dG9uU3R5bGUsIE5TU3RyaW5nICpsYW5n
dWFnZUNvZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXgg
Mjc1NmY2YjQ1NzA4MzM2ZmFlNjQzYTA2MTcwZmFiNThlYjFiMDgxOS4uY2RkMDFlMzRmNzJiN2Fm
NzlkOGI2M2JkYmFmOWEyNmRhMGQ2MTY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwCkBAIC0yNTMsNiArMjUzLDEwIEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVz
dFN0eWxlKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIFJlbmRlclN0eWxlJiBzdHlsZSwK
ICNlbmRpZgogICAgIGNhc2UgQ2Fwc0xvY2tJbmRpY2F0b3JQYXJ0OgogICAgICAgICByZXR1cm4g
YWRqdXN0Q2Fwc0xvY2tJbmRpY2F0b3JTdHlsZShzdHlsZVJlc29sdmVyLCBzdHlsZSwgZWxlbWVu
dCk7CisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uUGFydDoK
KyAgICAgICAgcmV0dXJuIGFkanVzdEFwcGxlUGF5QnV0dG9uU3R5bGUoc3R5bGVSZXNvbHZlciwg
c3R5bGUsIGVsZW1lbnQpOworI2VuZGlmCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkK
ICAgICBjYXNlIEF0dGFjaG1lbnRQYXJ0OgogICAgICAgICByZXR1cm4gYWRqdXN0QXR0YWNobWVu
dFN0eWxlKHN0eWxlUmVzb2x2ZXIsIHN0eWxlLCBlbGVtZW50KTsKQEAgLTQwMSw2ICs0MDUsMTAg
QEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnQoY29uc3QgUmVuZGVyQm94JiBib3gsIENvbnRyb2xT
dGF0ZXMmIGNvbnRyb2xTdGF0ZXMsIGNvbnMKICNlbmRpZgogICAgIGNhc2UgQ2Fwc0xvY2tJbmRp
Y2F0b3JQYXJ0OgogICAgICAgICByZXR1cm4gcGFpbnRDYXBzTG9ja0luZGljYXRvcihib3gsIHBh
aW50SW5mbywgaW50ZWdyYWxTbmFwcGVkUmVjdCk7CisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAg
ICBjYXNlIEFwcGxlUGF5QnV0dG9uUGFydDoKKyAgICAgICAgcmV0dXJuIHBhaW50QXBwbGVQYXlC
dXR0b24oYm94LCBwYWludEluZm8sIGludGVncmFsU25hcHBlZFJlY3QpOworI2VuZGlmCiAjaWYg
RU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBjYXNlIEF0dGFjaG1lbnRQYXJ0OgogICAg
ICAgICByZXR1cm4gcGFpbnRBdHRhY2htZW50KGJveCwgcGFpbnRJbmZvLCBpbnRlZ3JhbFNuYXBw
ZWRSZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggMzZhNGM4
OWE2Y2QxYjMwNzI1Njg4NTQyMDJiNWRlZDQyODQxZGJlNS4uMzliOTdjODZhZGUxN2RjMmMyYTZm
NDljNDQ1MThhMTEzZmQ3MmQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmgKQEAgLTMyNSw2ICszMjUsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBhZGp1
c3RDYXBzTG9ja0luZGljYXRvclN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYsIGNv
bnN0IEVsZW1lbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDYXBzTG9ja0luZGlj
YXRvcihjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0
Jik7CiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RBcHBs
ZVBheUJ1dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1l
bnQqKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRBcHBsZVBheUJ1dHRvbihjb25z
dCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1
cm4gdHJ1ZTsgfQorI2VuZGlmCisKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAg
IHZpcnR1YWwgdm9pZCBhZGp1c3RBdHRhY2htZW50U3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRl
clN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwYWludEF0
dGFjaG1lbnQoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50
UmVjdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjRjNTg3ZjFhYWJmYzZhNWVmYzkyZTM0ZGQ4ZjQ0NmI2MmE4ZDA1ZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmgK
QEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
UmVuZGVyVGhlbWUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJUaGVt
ZUNvY29hIDogcHVibGljIFJlbmRlclRoZW1lIHsKK3ByaXZhdGU6CisjaWYgRU5BQkxFKEFQUExF
X1BBWSkKKyAgICB2b2lkIGFkanVzdEFwcGxlUGF5QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciYs
IFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wg
cGFpbnRBcHBsZVBheUJ1dHRvbihjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8m
LCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CisjZW5kaWYKK307CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2MyMjM4YWYx
ZDI5MDI0OTA2YjQ1ZDA5MWM5ZTI1NDZjOThkYWYzYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCkBAIC0wLDAgKzEsMTAzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1l
Q29jb2EuaCIKKworI2lmIEVOQUJMRShBUFBMRV9QQVkpCisKKyNpbmNsdWRlICJQYXNzS2l0U1BJ
LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIK
KyNpbmNsdWRlICJTb2Z0TGlua2luZy5oIgorI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbi5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVX
T1JLKFBhc3NLaXQpOworI2Vsc2UKK1NPRlRfTElOS19GUkFNRVdPUksoUGFzc0tpdCk7CisjZW5k
aWYKKworU09GVF9MSU5LX01BWV9GQUlMKFBhc3NLaXQsIFBLRHJhd0FwcGxlUGF5QnV0dG9uLCB2
b2lkLCAoQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCBkcmF3UmVjdCwgQ0dGbG9hdCBzY2Fs
ZSwgUEtQYXltZW50QnV0dG9uVHlwZSB0eXBlLCBQS1BheW1lbnRCdXR0b25TdHlsZSBzdHlsZSwg
TlNTdHJpbmcgKmxhbmd1YWdlQ29kZSksIChjb250ZXh0LCBkcmF3UmVjdCwgc2NhbGUsIHR5cGUs
IHN0eWxlLCBsYW5ndWFnZUNvZGUpKTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMg
Y29uc3QgYXV0byBhcHBsZVBheUJ1dHRvbk1pbmltdW1XaWR0aCA9IDE0MDsKK3N0YXRpYyBjb25z
dCBhdXRvIGFwcGxlUGF5QnV0dG9uUGxhaW5NaW5pbXVtV2lkdGggPSAxMDA7CitzdGF0aWMgY29u
c3QgYXV0byBhcHBsZVBheUJ1dHRvbk1pbmltdW1IZWlnaHQgPSAzMDsKKwordm9pZCBSZW5kZXJU
aGVtZUNvY29hOjphZGp1c3RBcHBsZVBheUJ1dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5k
ZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqKSBjb25zdAoreworICAgIGlmIChzdHlsZS5h
cHBsZVBheUJ1dHRvblR5cGUoKSA9PSBBcHBsZVBheUJ1dHRvblR5cGU6OlBsYWluKQorICAgICAg
ICBzdHlsZS5zZXRNaW5XaWR0aChMZW5ndGgoYXBwbGVQYXlCdXR0b25QbGFpbk1pbmltdW1XaWR0
aCwgRml4ZWQpKTsKKyAgICBlbHNlCisgICAgICAgIHN0eWxlLnNldE1pbldpZHRoKExlbmd0aChh
cHBsZVBheUJ1dHRvbk1pbmltdW1XaWR0aCwgRml4ZWQpKTsKKyAgICBzdHlsZS5zZXRNaW5IZWln
aHQoTGVuZ3RoKGFwcGxlUGF5QnV0dG9uTWluaW11bUhlaWdodCwgRml4ZWQpKTsKK30KKworc3Rh
dGljIFBLUGF5bWVudEJ1dHRvblN0eWxlIHRvUEtQYXltZW50QnV0dG9uU3R5bGUoQXBwbGVQYXlC
dXR0b25TdHlsZSBzdHlsZSkKK3sKKyAgICBzd2l0Y2ggKHN0eWxlKSB7CisgICAgY2FzZSBBcHBs
ZVBheUJ1dHRvblN0eWxlOjpXaGl0ZToKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJ1dHRvblN0
eWxlV2hpdGU7CisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblN0eWxlOjpXaGl0ZU91dGxpbmU6Cisg
ICAgICAgIHJldHVybiBQS1BheW1lbnRCdXR0b25TdHlsZVdoaXRlT3V0bGluZTsKKyAgICBjYXNl
IEFwcGxlUGF5QnV0dG9uU3R5bGU6OkJsYWNrOgorICAgICAgICByZXR1cm4gUEtQYXltZW50QnV0
dG9uU3R5bGVCbGFjazsKKyAgICB9Cit9CisKK3N0YXRpYyBQS1BheW1lbnRCdXR0b25UeXBlIHRv
UEtQYXltZW50QnV0dG9uVHlwZShBcHBsZVBheUJ1dHRvblR5cGUgdHlwZSkKK3sKKyAgICBzd2l0
Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6UGxhaW46CisgICAgICAg
IHJldHVybiBQS1BheW1lbnRCdXR0b25UeXBlUGxhaW47CisgICAgY2FzZSBBcHBsZVBheUJ1dHRv
blR5cGU6OkJ1eToKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJ1dHRvblR5cGVCdXk7CisgICAg
Y2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OlNldFVwOgorICAgICAgICByZXR1cm4gUEtQYXltZW50
QnV0dG9uVHlwZVNldFVwOworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpJblN0b3JlOgor
ICAgICAgICByZXR1cm4gUEtQYXltZW50QnV0dG9uVHlwZUluU3RvcmU7CisgICAgfQorfQorCiti
b29sIFJlbmRlclRoZW1lQ29jb2E6OnBhaW50QXBwbGVQYXlCdXR0b24oY29uc3QgUmVuZGVyT2Jq
ZWN0JiByZW5kZXJlciwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3Qm
IHBhaW50UmVjdCkKK3sKKyAgICBpZiAoIWNhbkxvYWRQS0RyYXdBcHBsZVBheUJ1dHRvbigpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0
YXRlU2F2ZXIocGFpbnRJbmZvLmNvbnRleHQoKSk7CisKKyAgICBwYWludEluZm8uY29udGV4dCgp
LnNldFNob3VsZFNtb290aEZvbnRzKHRydWUpOworICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2Nh
bGUoRmxvYXRTaXplKDEsIC0xKSk7CisKKyAgICBQS0RyYXdBcHBsZVBheUJ1dHRvbihwYWludElu
Zm8uY29udGV4dCgpLnBsYXRmb3JtQ29udGV4dCgpLCBDR1JlY3RNYWtlKHBhaW50UmVjdC54KCks
IC1wYWludFJlY3QubWF4WSgpLCBwYWludFJlY3Qud2lkdGgoKSwgcGFpbnRSZWN0LmhlaWdodCgp
KSwgMS4wLCB0b1BLUGF5bWVudEJ1dHRvblR5cGUocmVuZGVyZXIuc3R5bGUoKS5hcHBsZVBheUJ1
dHRvblR5cGUoKSksIHRvUEtQYXltZW50QnV0dG9uU3R5bGUocmVuZGVyZXIuc3R5bGUoKS5hcHBs
ZVBheUJ1dHRvblN0eWxlKCkpLCByZW5kZXJlci5zdHlsZSgpLmxvY2FsZSgpKTsKKworICAgIHJl
dHVybiBmYWxzZTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLmgKaW5kZXggZmZiMmUzZjE1YzU2NDNjNTU1OTMwOTI5ODgzZWY5NjBlYzUz
YmQ4ZC4uZmRkN2MwYTdkMjBkZDU2OGM0MTc4ZjgyNWI5MzlmNDA5MzU3NmZlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKQEAgLTIzLDEyICsyMywxMSBAQAog
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgUmVuZGVy
VGhlbWVJT1NfaAotI2RlZmluZSBSZW5kZXJUaGVtZUlPU19oCisjcHJhZ21hIG9uY2UKIAogI2lm
IFBMQVRGT1JNKElPUykKIAotI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiUmVu
ZGVyVGhlbWVDb2NvYS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCkBAIC0zNiw3ICsz
NSw3IEBAIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0Owogc3RydWN0
IEF0dGFjaG1lbnRMYXlvdXQ7CiAKLWNsYXNzIFJlbmRlclRoZW1lSU9TIGZpbmFsIDogcHVibGlj
IFJlbmRlclRoZW1lIHsKK2NsYXNzIFJlbmRlclRoZW1lSU9TIGZpbmFsIDogcHVibGljIFJlbmRl
clRoZW1lQ29jb2EgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVuZGVyVGhlbWU+IGNyZWF0
ZSgpOwogCkBAIC0xMzUsNCArMTM0LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykKLSNlbmRpZiAvLyBSZW5kZXJUaGVtZUlPU19oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4IDRlMDBhNDhiMDRhZTRjYjFmYjQzYzA0ZjliMzdi
NDY2ZTQ5YmZmNWMuLjY1OGY4ODMxNDYzNjA3MjliNmNhMzc2NmRjMGM5YTlhNTY5Yjg2ZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCkBAIC0xOSwxMiArMTks
MTIgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICoKICAqLwotI2lmICFQTEFU
Rk9STShJT1MpCiAKLSNpZm5kZWYgUmVuZGVyVGhlbWVNYWNfaAotI2RlZmluZSBSZW5kZXJUaGVt
ZU1hY19oCisjcHJhZ21hIG9uY2UKIAotI2ltcG9ydCAiUmVuZGVyVGhlbWUuaCIKKyNpZiBQTEFU
Rk9STShNQUMpCisKKyNpbXBvcnQgIlJlbmRlclRoZW1lQ29jb2EuaCIKICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CiAKQEAgLTQwLDcgKzQwLDcgQEAg
Y2xhc3MgUmVuZGVyUHJvZ3Jlc3M7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIHN0cnVjdCBBdHRhY2ht
ZW50TGF5b3V0OwogCi1jbGFzcyBSZW5kZXJUaGVtZU1hYyBmaW5hbCA6IHB1YmxpYyBSZW5kZXJU
aGVtZSB7CitjbGFzcyBSZW5kZXJUaGVtZU1hYyBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUaGVtZUNv
Y29hIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlbmRlclRoZW1lPiBjcmVhdGUoKTsKIApA
QCAtMjUwLDYgKzI1MCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmIC8vIFJlbmRlclRoZW1lTWFjX2gKLQotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCisj
ZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaAppbmRleCAzYzA1YTdjZDBhZTQyYWNkNGFlMTEzYjg4NmRhOGUyZmE0NjY5
YWVkLi4wMmYyYmY3ZTMwODBhYTUyYWI0Y2IwZWFmODE4MmU4YjYxYTM2MGVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTIxOCw3ICsxMjE4
LDEyIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ1NTX1RSQUlMSU5HX1dPUkQpCiAgICAgVHJhaWxp
bmdXb3JkIHRyYWlsaW5nV29yZCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRyYWlsaW5n
V29yZD4ocmFyZUluaGVyaXRlZERhdGEtPnRyYWlsaW5nV29yZCk7IH0KICNlbmRpZgotICAgIAor
CisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBBcHBsZVBheUJ1dHRvblN0eWxlIGFwcGxlUGF5
QnV0dG9uU3R5bGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxBcHBsZVBheUJ1dHRvblN0
eWxlPihyYXJlSW5oZXJpdGVkRGF0YS0+YXBwbGVQYXlCdXR0b25TdHlsZSk7IH0KKyAgICBBcHBs
ZVBheUJ1dHRvblR5cGUgYXBwbGVQYXlCdXR0b25UeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8QXBwbGVQYXlCdXR0b25UeXBlPihyYXJlSW5oZXJpdGVkRGF0YS0+YXBwbGVQYXlCdXR0
b25UeXBlKTsgfQorI2VuZGlmCisKICAgICB2b2lkIGNoZWNrVmFyaWFibGVzSW5DdXN0b21Qcm9w
ZXJ0aWVzKCk7CiAKIC8vIGF0dHJpYnV0ZSBzZXR0ZXIgbWV0aG9kcwpAQCAtMTczNSw2ICsxNzQw
LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRyYWlsaW5nV29yZChUcmFpbGluZ1dvcmQgdikg
eyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCB0cmFpbGluZ1dvcmQsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPih2KSk7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICB2b2lk
IHNldEFwcGxlUGF5QnV0dG9uU3R5bGUoQXBwbGVQYXlCdXR0b25TdHlsZSB2KSB7IFNFVF9WQVIo
cmFyZUluaGVyaXRlZERhdGEsIGFwcGxlUGF5QnV0dG9uU3R5bGUsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPih2KSk7IH0KKyAgICB2b2lkIHNldEFwcGxlUGF5QnV0dG9uVHlwZShBcHBsZVBheUJ1dHRv
blR5cGUgdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBhcHBsZVBheUJ1dHRvblR5cGUs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KSk7IH0KKyNlbmRpZgorCiAgICAgY29uc3QgU1ZHUmVu
ZGVyU3R5bGUmIHN2Z1N0eWxlKCkgY29uc3QgeyByZXR1cm4gKm1fc3ZnU3R5bGU7IH0KICAgICBT
VkdSZW5kZXJTdHlsZSYgYWNjZXNzU1ZHU3R5bGUoKSB7IHJldHVybiAqbV9zdmdTdHlsZS5hY2Nl
c3MoKTsgfQogCkBAIC0yMDg2LDYgKzIwOTYsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBUcmFp
bGluZ1dvcmQgaW5pdGlhbFRyYWlsaW5nV29yZCgpIHsgcmV0dXJuIFRyYWlsaW5nV29yZDo6QXV0
bzsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgIHN0YXRpYyBBcHBsZVBh
eUJ1dHRvblN0eWxlIGluaXRpYWxBcHBsZVBheUJ1dHRvblN0eWxlKCkgeyByZXR1cm4gQXBwbGVQ
YXlCdXR0b25TdHlsZTo6QmxhY2s7IH0KKyAgICBzdGF0aWMgQXBwbGVQYXlCdXR0b25UeXBlIGlu
aXRpYWxBcHBsZVBheUJ1dHRvblR5cGUoKSB7IHJldHVybiBBcHBsZVBheUJ1dHRvblR5cGU6OlBs
YWluOyB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAgLy8gVGhl
IGluaXRpYWwgdmFsdWUgaXMgJ25vbmUnIGZvciBncmlkIHRyYWNrcy4KICAgICBzdGF0aWMgVmVj
dG9yPEdyaWRUcmFja1NpemU+IGluaXRpYWxHcmlkQ29sdW1ucygpIHsgcmV0dXJuIFZlY3RvcjxH
cmlkVHJhY2tTaXplPigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IDM1MThjMmY0ZTljOTI0N2IyYTIxZmJk
YjAwN2JkODc5NTdjZjAzMDAuLjdjYWY3MTU1MTAxM2FjNjUyYWQ4MGEzN2Y4ZmY1M2E5MjhjMTcw
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oCkBAIC02OTYsNiArNjk2LDIxIEBAIGVudW0gY2xhc3MgVHJhaWxpbmdX
b3JkIHsKIH07CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVkpCitlbnVtIGNsYXNzIEFw
cGxlUGF5QnV0dG9uU3R5bGUgeworICAgIFdoaXRlLAorICAgIFdoaXRlT3V0bGluZSwKKyAgICBC
bGFjaywKK307CisKK2VudW0gY2xhc3MgQXBwbGVQYXlCdXR0b25UeXBlIHsKKyAgICBQbGFpbiwK
KyAgICBCdXksCisgICAgU2V0VXAsCisgICAgSW5TdG9yZSwKK307CisjZW5kaWYKKwogVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgRUZpbGxTaXplVHlwZSk7CiBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBFRmlsbEF0dGFjaG1lbnQpOwogVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgRUZpbGxCb3gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4
IDIwOThiOTE3OWM1NzFlYmI4NGVkYjJmM2M3ODYxMTgyOGM2NmUxZTEuLjhiYWYzNTIwZTE3Zjg4
NjBmMDYzNzhlOTIzMzM4NTc3MjcxMTgwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTEyNCw2
ICsxMjQsMTAgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0
YSgpCiAjaWYgRU5BQkxFKENTU19UUkFJTElOR19XT1JEKQogICAgICwgdHJhaWxpbmdXb3JkKHN0
YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFRyYWlsaW5nV29yZCgpKSkK
ICNlbmRpZgorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgLCBhcHBsZVBheUJ1dHRvblN0eWxl
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbEFwcGxlUGF5QnV0dG9u
U3R5bGUoKSkpCisgICAgLCBhcHBsZVBheUJ1dHRvblR5cGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFJlbmRlclN0eWxlOjppbml0aWFsQXBwbGVQYXlCdXR0b25UeXBlKCkpKQorI2VuZGlmCiAgICAg
LCBtX2hhbmdpbmdQdW5jdHVhdGlvbihSZW5kZXJTdHlsZTo6aW5pdGlhbEhhbmdpbmdQdW5jdHVh
dGlvbigpKQogICAgICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZSgtMSkKICAgICAsIGh5cGhlbmF0
aW9uTGltaXRBZnRlcigtMSkKQEAgLTIwNiw2ICsyMTAsMTAgQEAgaW5saW5lIFN0eWxlUmFyZUlu
aGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJp
dGVkRGEKICNpZiBFTkFCTEUoQ1NTX1RSQUlMSU5HX1dPUkQpCiAgICAgLCB0cmFpbGluZ1dvcmQo
by50cmFpbGluZ1dvcmQpCiAjZW5kaWYKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgICwgYXBw
bGVQYXlCdXR0b25TdHlsZShvLmFwcGxlUGF5QnV0dG9uU3R5bGUpCisgICAgLCBhcHBsZVBheUJ1
dHRvblR5cGUoby5hcHBsZVBheUJ1dHRvblR5cGUpCisjZW5kaWYKICAgICAsIG1faGFuZ2luZ1B1
bmN0dWF0aW9uKG8ubV9oYW5naW5nUHVuY3R1YXRpb24pCiAgICAgLCBoeXBoZW5hdGlvblN0cmlu
ZyhvLmh5cGhlbmF0aW9uU3RyaW5nKQogICAgICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZShvLmh5
cGhlbmF0aW9uTGltaXRCZWZvcmUpCkBAIC0zMTIsNiArMzIwLDEwIEBAIGJvb2wgU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBv
KSBjb25zdAogI2lmIEVOQUJMRShDU1NfVFJBSUxJTkdfV09SRCkKICAgICAgICAgJiYgdHJhaWxp
bmdXb3JkID09IG8udHJhaWxpbmdXb3JkCiAjZW5kaWYKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQor
ICAgICAgICAmJiBhcHBsZVBheUJ1dHRvblN0eWxlID09IG8uYXBwbGVQYXlCdXR0b25TdHlsZQor
ICAgICAgICAmJiBhcHBsZVBheUJ1dHRvblR5cGUgPT0gby5hcHBsZVBheUJ1dHRvblR5cGUKKyNl
bmRpZgogICAgICAgICAmJiBtX2hhbmdpbmdQdW5jdHVhdGlvbiA9PSBvLm1faGFuZ2luZ1B1bmN0
dWF0aW9uCiAgICAgICAgICYmIG1fY3VzdG9tUHJvcGVydGllcyA9PSBvLm1fY3VzdG9tUHJvcGVy
dGllcwogICAgICAgICAmJiBhcmVQb2ludGluZ1RvRXF1YWxEYXRhKGxpc3RTdHlsZUltYWdlLCBv
Lmxpc3RTdHlsZUltYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCmluZGV4IDVmN2MyMzYzNjU4ODdlZDNkOGRk
ZWQ4OWI3MjMxMjBiMjRiZDE5MTMuLmNlOWZhMzgxZTZkMzZjOTYwMjY4NzBjNGUzNzc3MzRiNzA2
MDJmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVJbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuaApAQCAtMTM2LDYgKzEzNiwxMSBAQCBwdWJsaWM6CiAgICAg
dW5zaWduZWQgdHJhaWxpbmdXb3JkIDogMTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BB
WSkKKyAgICB1bnNpZ25lZCBhcHBsZVBheUJ1dHRvblN0eWxlIDogMjsKKyAgICB1bnNpZ25lZCBh
cHBsZVBheUJ1dHRvblR5cGUgOiAzOworI2VuZGlmCisKICAgICB1bnNpZ25lZCBtX2hhbmdpbmdQ
dW5jdHVhdGlvbiA6IDQ7CiAKICAgICBBdG9taWNTdHJpbmcgaHlwaGVuYXRpb25TdHJpbmc7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288870</attachid>
            <date>2016-09-14 15:17:02 -0700</date>
            <delta_ts>2016-09-14 15:59:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161986-20160914151425.patch</filename>
            <type>text/plain</type>
            <size>36067</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1OTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI4Zjc0M2VhNDc0MjQ4
ZTdlOTY5ZjVjMDRlNjY4YmE3Y2YyY2I4ZS4uNWNmNjAyNTdlMTlmZGM5NTc0N2RjZmM2YzE0M2Mz
YjQyNTg4YzlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDE2LTA5LTE0ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIENTUyAtd2Vi
a2l0LWFwcGVhcmFuY2UgcHJvcGVydHkgZm9yIEFwcGxlIFBheSBidXR0b25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5ODYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgLXdlYmtpdC1h
cHBlYXJhbmNlIHByb3BlcnR5LCAiLWFwcGxlLXBheS1idXR0b24iLgorICAgICAgICBBbHNvLCBh
ZGQgdHdvIHByb3BlcnRpZXMsICItYXBwbGUtcGF5LWJ1dHRvbi10eXBlIiBhbmQgIi1hcHBsZS1w
YXktYnV0dG9uLXN0eWxlIi4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgQWRkIFJlbmRlclRoZW1lQ29jb2EuaCBhbmQgUmVuZGVyVGhlbWVD
b2NvYS5tbS4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1
ZSk6CisgICAgICAgIEhhbmRsZSBDU1NQcm9wZXJ0eUFwcGxlUGF5QnV0dG9uU3R5bGUgYW5kIENT
U1Byb3BlcnR5QXBwbGVQYXlCdXR0b25UeXBlLgorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgQXBwbGVQYXlCdXR0b25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgQXBwbGVQYXlCdXR0b25UeXBlKToKKyAgICAgICAgQWRkIEFw
cGxlUGF5QnV0dG9uU3R5bGUgYW5kIEFwcGxlUGF5QnV0dG9uVHlwZSBjb252ZXJzaW9uIHJvdXRp
bmVzLgorCisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgIEFkZCAt
YXBwbGUtcGF5LWJ1dHRvbi1zdHlsZSBhbmQgLWFwcGxlLXBheS1idXR0b24tdHlwZS4KKworICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICBBZGQgQ1NTIHZhbHVlcy4K
KworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZSk6CisgICAgICAgIEhhbmRsZSBDU1NQcm9w
ZXJ0eUFwcGxlUGF5QnV0dG9uU3R5bGUgYW5kIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0b25UeXBl
LgorCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKToKKyAg
ICAgICAgSGFuZGxlIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0b25TdHlsZSBhbmQgQ1NTUHJvcGVy
dHlBcHBsZVBheUJ1dHRvblR5cGUuCisKKyAgICAgICAgKFdlYkNvcmU6OmlzQXBwbGVMZWdhY3lD
U1NQcm9wZXJ0eUtleXdvcmQpOgorICAgICAgICBOZXcgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHdo
ZXRoZXIgdGhlIENTUyBwcm9wZXJ0eSBzaG91bGQgYmUgcmV3cml0dGVuIHRvIC13ZWJraXQtLgor
ICAgICAgICBXZSB3YW50IHRvIHJld3JpdGUgLWFwcGxlLSBidXQgbm90IC1hcHBsZS1wYXktLgor
CisgICAgICAgIChXZWJDb3JlOjpjc3NQcm9wZXJ0eUlEKToKKyAgICAgICAgVXNlIHRoZSBuZXds
eSBhZGRlZCBpc0FwcGxlTGVnYWN5Q1NTUHJvcGVydHlLZXl3b3JkLgorCisgICAgICAgIChXZWJD
b3JlOjppc0FwcGxlTGVnYWN5Q1NTVmFsdWVLZXl3b3JkKToKKyAgICAgICAgQ2hlY2sgZm9yICIt
YXBwbGUtcGF5LSIgaW4gYWRkaXRpb24gdG8gIi1hcHBsZS1zeXN0ZW0tIi4KKworICAgICAgICAq
IHBsYXRmb3JtL1RoZW1lVHlwZXMuaDoKKyAgICAgICAgQWRkIEFwcGxlUGF5QnV0dG9uUGFydC4K
KworICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9QYXNzS2l0U1BJLmg6CisgICAgICAgIEFk
ZCBQS0RyYXdBcHBsZVBheUJ1dHRvbiBkZWNsYXJhdGlvbi4KKworICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0
U3R5bGUpOgorICAgICAgICBIYW5kbGUgQXBwbGVQYXlCdXR0b25QYXJ0LgorCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOgorICAgICAgICBIYW5kbGUgQXBwbGVQYXlCdXR0
b25QYXJ0LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0QXBwbGVQYXlCdXR0b25TdHlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRBcHBsZVBheUJ1dHRvbik6CisgICAgICAgIEFk
ZCBuZXcgZnVuY3Rpb25zLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2Eu
aDogQWRkZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW06IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDb2NvYTo6YWRqdXN0QXBwbGVQYXlCdXR0
b25TdHlsZSk6CisgICAgICAgIEFkanVzdCB0aGUgbWluaW11bSB3aWR0aCBhbmQgbWluaW11bSBo
ZWlnaHQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKFdlYkNvcmU6OnRvUEtQYXltZW50QnV0dG9u
U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6dG9QS1BheW1lbnRCdXR0b25UeXBlKToKKyAgICAg
ICAgSGVscGVyIGZ1bmN0aW9ucyB0aGF0IGNvbnZlciBvdXIgV2ViQ29yZSB0eXBlcyB0byBQSyB0
eXBlcy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDb2NvYTo6cGFpbnRBcHBsZVBh
eUJ1dHRvbik6CisgICAgICAgIENhbGwgUEtEcmF3QXBwbGVQYXlCdXR0b24uCisKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMuaDoKKyAgICAgICAgSW5oZXJpdCBmcm9tIFJlbmRlclRoZW1lQ29jb2EuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjphcHBsZVBheUJ1dHRvblN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclN0eWxlOjphcHBsZVBheUJ1dHRvblR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U3R5bGU6OnNldEFwcGxlUGF5QnV0dG9uU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U3R5bGU6OnNldEFwcGxlUGF5QnV0dG9uVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
dHlsZTo6aW5pdGlhbEFwcGxlUGF5QnV0dG9uU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6OmluaXRpYWxBcHBsZVBheUJ1dHRvblR5cGUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFy
ZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgQWRkIG5ldyBzdHls
ZSBtZW1iZXJzIGZvciB0aGUgYnV0dG9uIHN0eWxlIGFuZCBidXR0b24gdHlwZSBwcm9wZXJ0aWVz
LgorCiAyMDE2LTA5LTE0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFtNZWRpYVN0cmVhbV0gTWlub3IgY2xlYW51cApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI4Y2E2NzM5ZjFkYjYx
ZDEwNWZkMGE5ODFkZTBmY2UxZjMwMmNkMjYuLjI4NjNjYzY5NTI2NjM5MjJmOWUyMmU5MDg4NjU1
ZTNmNThjNzk4YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTY5Myw2ICs2OTMsOCBAQAogCQkxQTIyNDY0RTBDQzk4RERCMDBD
MDUyNDAgLyogU1FMaXRlVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjI0NjQ4MENDOThEREIwMEMwNTI0MCAvKiBTUUxpdGVUcmFu
c2FjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTFBMjQ4NDREMUQxQTI3MkEwMEY1NkJBNyAvKiBQYXltZW50SGVhZGVycy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyNDg0NEMxRDFBMjcwMTAw
RjU2QkE3IC8qIFBheW1lbnRIZWFkZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUEyNTBFMEQxQ0RENjMyMDAwRDBCRTYzIC8qIExpbmtJY29u
VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEy
NTBFMEMxQ0RENjMyMDAwRDBCRTYzIC8qIExpbmtJY29uVHlwZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFBMjk5RkU3MUQ3RjVGQTYwMEE2MDA5
MyAvKiBSZW5kZXJUaGVtZUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUEyOTlGRTUxRDdGNUZBNjAwQTYwMDkzIC8qIFJlbmRlclRoZW1lQ29j
b2EubW0gKi87IH07CisJCTFBMjk5RkU4MUQ3RjVGQTYwMEE2MDA5MyAvKiBSZW5kZXJUaGVtZUNv
Y29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTI5
OUZFNjFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVDb2NvYS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMkE2ODIzMEI1QkVERTcwMDAy
QTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUEyQTY4MjEwQjVCRURFNzAwMDJBNDgwIC8qIFByb2dyZXNzVHJh
Y2tlci5jcHAgKi87IH07CiAJCTFBMkE2ODI0MEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1Ry
YWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFB
MkE2ODIyMEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTJBQUM1ODBEQzJBM0IxMDBB
MjBEOUEgLyogQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyQUFDNTYwREMyQTNCMTAwQTIwRDlBIC8qIEFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCAqLzsgfTsKQEAgLTc1MzAsNiArNzUzMiw4IEBACiAJ
CTFBMjI0NjQ4MENDOThEREIwMEMwNTI0MCAvKiBTUUxpdGVUcmFuc2FjdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTUUxpdGVUcmFuc2FjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQTI0ODQ0QzFEMUEyNzAxMDBGNTZCQTcgLyogUGF5bWVudEhl
YWRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudEhlYWRlcnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEyNTBFMEMxQ0RENjMyMDAwRDBCRTYz
IC8qIExpbmtJY29uVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaW5r
SWNvblR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEyOTlGRTUxRDdGNUZB
NjAwQTYwMDkzIC8qIFJlbmRlclRoZW1lQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBSZW5kZXJUaGVtZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQTI5OUZFNjFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVDb2NvYS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUaGVtZUNvY29hLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMkE2ODIxMEI1QkVERTcwMDAyQTQ4MCAvKiBQ
cm9ncmVzc1RyYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFByb2dyZXNzVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMkE2
ODIyMEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFByb2dyZXNzVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQTJBQUM1NjBEQzJBM0IxMDBBMjBEOUEgLyogQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI4Mzcs
NiArMjI4NDEsOCBAQAogCQkJCUU0QzkxQTE1MTgwOTk5RjEwMEExN0Y2RCAvKiBSZW5kZXJUZXh0
TGluZUJveGVzLmggKi8sCiAJCQkJQkNFQTQ4NEEwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlclRo
ZW1lLmNwcCAqLywKIAkJCQlCQ0VBNDg0QjA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyVGhlbWUu
aCAqLywKKwkJCQkxQTI5OUZFNjFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVDb2NvYS5o
ICovLAorCQkJCTFBMjk5RkU1MUQ3RjVGQTYwMEE2MDA5MyAvKiBSZW5kZXJUaGVtZUNvY29hLm1t
ICovLAogCQkJCUZFRDEzRDUwMENFQTk0OTcwMEQ4OTQ2NiAvKiBSZW5kZXJUaGVtZUlPUy5oICov
LAogCQkJCUM1NUM3QkEwMTcxOEFGQkEwMDEzMjdFNCAvKiBSZW5kZXJUaGVtZUlPUy5tbSAqLywK
IAkJCQlCQ0VBNDg0ODA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyVGhlbWVNYWMuaCAqLywKQEAg
LTI1MDg0LDYgKzI1MDkwLDcgQEAKIAkJCQlCQzkyNkY4MTBDMDU1MjQ3MDA4Mjc3NkIgLyogSlNI
VE1MRnJhbWVTZXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFN0IxNTBBMTlENjA2
MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTJB
QTJGMEExQ0RBQjQwMEI0MkIyNSAvKiBKU0hUTUxIZWFkaW5nRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMUEyOTlGRTgxRDdGNUZBNjAwQTYwMDkzIC8qIFJlbmRlclRoZW1lQ29jb2EuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBRTJBQTMxMEExQ0RBQjQwMEI0MkIyNSAvKiBKU0hUTUxIUkVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBODVCMTkwMEExQjE4QTIwMEQ4Qzg3QyAvKiBK
U0hUTUxIdG1sRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0OTE4QzkwQkZFQTA1MDAw
OUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2Mjcs
NiArMjc2MzQsNyBAQAogCQkJCUY0NUMyMzFEMTk5NUI3M0IwMEE2RTJFMyAvKiBBeGlzU2Nyb2xs
U25hcE9mZnNldHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdGNTdBQ0YxQTUwNzJERDAwODc2
Rjk4IC8qIEFYT2JqZWN0Q2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUFBNzI4RjkxNkQx
RDhCQzAwRDNCQkM2IC8qIEFYT2JqZWN0Q2FjaGVJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQkx
QTI5OUZFNzFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTI5QTgxMjRCMEZCQjlDQTkwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBOEM4MUYxMUUzRDM2OTAwODEyRkI3IC8qIEJhY2tGb3J3
YXJkQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0E4Q0E1RjExRTRFNkQxMDA4
MTJGQjcgLyogQmFja0ZvcndhcmRMaXN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBiYTA4
MTg2NTUwOGQyODZkNGU5NWZhOWQxOWY1ZmVlZGZiZWVlNTIwLi44M2IxMzJkMTY2YmQ2YzlmMzYx
YzM3ZmQyMWFjMTllMTBkODk5N2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMzc1Myw2ICszNzUzLDEzIEBAIFJlZlB0
cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SUQsCiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0
ZVZhbHVlKHN0eWxlLT50cmFpbGluZ1dvcmQoKSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBM
RV9QQVkpCisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlBcHBsZVBheUJ1dHRvblN0eWxlOgorICAg
ICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS0+YXBwbGVQYXlC
dXR0b25TdHlsZSgpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUFwcGxlUGF5QnV0dG9uVHlw
ZToKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUtPmFw
cGxlUGF5QnV0dG9uVHlwZSgpKTsKKyNlbmRpZgorCiAgICAgICAgIC8qIEluZGl2aWR1YWwgcHJv
cGVydGllcyBub3QgcGFydCBvZiB0aGUgc3BlYyAqLwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5
QmFja2dyb3VuZFJlcGVhdFg6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUmVw
ZWF0WToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1h
cHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
CmluZGV4IDRlZmMwN2ZkOTdhNWU3YzBjZDQzNTdmODk3MzJkNDFlM2E0MWZjODkuLjhmOGVhNDEx
MjEyMDZhNTMyODgzMWJkNjg1ZDFkZjJlMmVjZTk4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAtNjE2LDYgKzYxNiwxMSBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJv
bFBhcnQgZSkKICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbWFnZUNvbnRyb2xz
QnV0dG9uOwogICAgICAgICBicmVhazsKICNlbmRpZgorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisg
ICAgY2FzZSBBcHBsZVBheUJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQXBwbGVQYXlCdXR0b247CisgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgfQogfQog
CkBAIC01NDczLDYgKzU0NzgsODcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFRyYWlsaW5nV29yZCgpIGNvbnN0CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShBUFBMRV9QQVkpCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoQXBwbGVQYXlCdXR0b25TdHlsZSBlKQorICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCit7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKKyAg
ICBzd2l0Y2ggKGUpIHsKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdoaXRlOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlT3V0bGluZToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVXaGl0ZU91dGxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQXBwbGVQYXlCdXR0b25TdHlsZTo6QmxhY2s6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQmxhY2s7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBBcHBsZVBheUJ1dHRvblN0eWxl
KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOworICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVdoaXRlOgorICAgICAgICByZXR1cm4gQXBw
bGVQYXlCdXR0b25TdHlsZTo6V2hpdGU7CisgICAgY2FzZSBDU1NWYWx1ZVdoaXRlT3V0bGluZToK
KyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlT3V0bGluZTsKKyAgICBj
YXNlIENTU1ZhbHVlQmxhY2s6CisgICAgICAgIHJldHVybiBBcHBsZVBheUJ1dHRvblN0eWxlOjpC
bGFjazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uU3R5bGU6OkJsYWNrOworfQor
Cit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
QXBwbGVQYXlCdXR0b25UeXBlIGUpCisgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKK3sK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOworICAgIHN3aXRjaCAoZSkg
eworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpQbGFpbjoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVQbGFpbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcHBsZVBh
eUJ1dHRvblR5cGU6OkJ1eToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCdXk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpTZXRVcDoKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZXRVcDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkluU3RvcmU6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlSW5TdG9yZTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwor
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEFwcGxlUGF5QnV0
dG9uVHlwZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKyAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVQbGFpbjoKKyAgICAgICAgcmV0
dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6UGxhaW47CisgICAgY2FzZSBDU1NWYWx1ZUJ1eToKKyAg
ICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6QnV5OworICAgIGNhc2UgQ1NTVmFsdWVT
ZXRVcDoKKyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6U2V0VXA7CisgICAgY2Fz
ZSBDU1NWYWx1ZUluU3RvcmU6CisgICAgICAgIHJldHVybiBBcHBsZVBheUJ1dHRvblR5cGU6Oklu
U3RvcmU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBBcHBsZVBheUJ1dHRvblR5cGU6OlBsYWluOworfQor
I2VuZGlmCisKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShGb250VmFyaWFudFBvc2l0aW9uIHBvc2l0aW9uKQogICAgIDogQ1NTVmFsdWUoUHJp
bWl0aXZlQ2xhc3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVy
dHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4
IDliOWVlM2U2MjY2ZjE0ODY1YWM5MDdkMzIxZWI5YzdhZDE0YTY3OGQuLjg4NjEzMzljZjNjOWFl
YzI2YzMwMzY4Yjg1ODRiNTJmNmMxOTdlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eU5hbWVzLmluCkBAIC02ODEsMyArNjgxLDggQEAgdG91Y2gtYWN0aW9uCiAjaWYgZGVmaW5lZChF
TkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICYmIEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRAogLWFw
cGxlLXRyYWlsaW5nLXdvcmQgW0luaGVyaXRlZCwgTmFtZUZvck1ldGhvZHM9VHJhaWxpbmdXb3Jk
XQogI2VuZGlmCisKKyNpZiBkZWZpbmVkKEVOQUJMRV9BUFBMRV9QQVkpICYmIEVOQUJMRV9BUFBM
RV9QQVkKKy1hcHBsZS1wYXktYnV0dG9uLXN0eWxlIFtOYW1lRm9yTWV0aG9kcz1BcHBsZVBheUJ1
dHRvblN0eWxlXQorLWFwcGxlLXBheS1idXR0b24tdHlwZSBbTmFtZUZvck1ldGhvZHM9QXBwbGVQ
YXlCdXR0b25UeXBlXQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
CmluZGV4IDExZTg1MWI4MGM3MDIyMDkyNDhmYWViNjA4ODhjZjU2MjVmZjA2ZDcuLmY4ZmY2ZWEx
YWEzYWU3NWJkZTg0YTBhMzJlZWE2MTQ2MzliZjVhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUtleXdvcmRzLmluCkBAIC04MDYsNiArODA2LDkgQEAgcmF0aW5nLWxldmVsLWluZGljYXRv
cgogI2lmIGRlZmluZWQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICYmIEVOQUJMRV9TRVJWSUNF
X0NPTlRST0xTCiBpbWFnZS1jb250cm9scy1idXR0b24KICNlbmRpZgorI2lmIGRlZmluZWQoRU5B
QkxFX0FQUExFX1BBWSkgJiYgRU5BQkxFX0FQUExFX1BBWQorLWFwcGxlLXBheS1idXR0b24KKyNl
bmRpZgogdGV4dGFyZWEKICNpZiBkZWZpbmVkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICYm
IEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQKIGF0dGFjaG1lbnQKQEAgLTExODUsNiArMTE4OCwx
NyBAQCBmcm9tLWludHJpbnNpYwogLXdlYmtpdC1wYXJ0aWFsbHktYmFsYW5jZWQKICNlbmRpZgog
CisjaWYgZGVmaW5lZChFTkFCTEVfQVBQTEVfUEFZKSAmJiBFTkFCTEVfQVBQTEVfUEFZCisvLyAt
YXBwbGUtcGF5LWJ1dHRvbi1zdHlsZQord2hpdGUtb3V0bGluZQorCisvLyAtYXBwbGUtcGF5LWJ1
dHRvbi10eXBlCitwbGFpbgorYnV5CitzZXQtdXAKK2luLXN0b3JlCisjZW5kaWYKKwogLy8gZm9u
dC1zeW50aGVzaXMKIHdlaWdodAogc3R5bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyLmNwcAppbmRleCA2ZjkxNTc2ZTIzMTZkYWEyNzE3MmU2MjdhZmQzMjUwZDJlYmJiODBhLi42
MWYyNzVkY2JmMTIyYmY4YzU5MDMwN2I0MGU4MzczZjg2YWQ1NGM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCkBAIC0xMDUwLDYgKzEwNTAsMTYgQEAgc3RhdGljIGlu
bGluZSBib29sIGlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5SWQsIGludAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGJyZWFrOwog
I2VuZGlmCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBjYXNlIENTU1Byb3BlcnR5QXBwbGVQ
YXlCdXR0b25TdHlsZTogLy8gd2hpdGUgfCB3aGl0ZS1vdXRsaW5lIHwgYmxhY2sKKyAgICAgICAg
aWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVXaGl0ZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2hpdGVP
dXRsaW5lIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVCbGFjaykKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0b25U
eXBlOiAvLyBwbGFpbiB8IGJ1eSB8IHNldC11cCB8IGluLXN0b3JlCisgICAgICAgIGlmICh2YWx1
ZUlEID09IENTU1ZhbHVlUGxhaW4gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUJ1eSB8fCB2YWx1ZUlE
ID09IENTU1ZhbHVlU2V0VXAgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUluU3RvcmUpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICBjYXNlIENTU1By
b3BlcnR5Rm9udFZhcmlhbnRQb3NpdGlvbjogLy8gbm9ybWFsIHwgc3ViIHwgc3VwZXIKICAgICAg
ICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVN1
YiB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU3VwZXIpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTEzMjk1LDYgKzEzMzA1LDE1IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZpZXdwb3J0U2hv
cnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcElkLCBDU1NQcm9wZXJ0eUlEIGZpcnN0CiB9CiAjZW5k
aWYKIAorc3RhdGljIGJvb2wgaXNBcHBsZUxlZ2FjeUNTU1Byb3BlcnR5S2V5d29yZChjb25zdCBj
aGFyKiBwcm9wZXJ0eUtleXdvcmQsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBzdGF0aWMgY29u
c3QgY2hhciBhcHBsZVByZWZpeFtdID0gIi1hcHBsZS0iOworICAgIHN0YXRpYyBjb25zdCBjaGFy
IGFwcGxlUGF5UHJlZml4W10gPSAiLWFwcGxlLXBheS0iOworCisgICAgcmV0dXJuIGhhc1ByZWZp
eChwcm9wZXJ0eUtleXdvcmQsIGxlbmd0aCwgYXBwbGVQcmVmaXgpCisgICAgICAgICYmICFoYXNQ
cmVmaXgocHJvcGVydHlLZXl3b3JkLCBsZW5ndGgsIGFwcGxlUGF5UHJlZml4KTsKK30KKwogdGVt
cGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CiBzdGF0aWMgQ1NTUHJvcGVydHlJRCBjc3NQ
cm9wZXJ0eUlEKGNvbnN0IENoYXJhY3RlclR5cGUqIHByb3BlcnR5TmFtZSwgdW5zaWduZWQgbGVu
Z3RoKQogewpAQCAtMTMzMTQsNyArMTMzMzMsNyBAQCBzdGF0aWMgQ1NTUHJvcGVydHlJRCBjc3NQ
cm9wZXJ0eUlEKGNvbnN0IENoYXJhY3RlclR5cGUqIHByb3BlcnR5TmFtZSwgdW5zaWduZWQgbAog
ICAgICAgICAvLyBJZiB0aGUgcHJlZml4IGlzIC1hcHBsZS0gb3IgLWtodG1sLSwgY2hhbmdlIGl0
IHRvIC13ZWJraXQtLgogICAgICAgICAvLyBUaGlzIG1ha2VzIHRoZSBzdHJpbmcgb25lIGNoYXJh
Y3RlciBsb25nZXIuCiAgICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLmxlZ2FjeUNTU1ZlbmRvclByZWZpeGVzRW5hYmxlZCgpCi0gICAgICAgICAgICAm
JiAoaGFzUHJlZml4KGJ1ZmZlciwgbGVuZ3RoLCAiLWFwcGxlLSIpIHx8IGhhc1ByZWZpeChidWZm
ZXIsIGxlbmd0aCwgIi1raHRtbC0iKSkpIHsKKyAgICAgICAgICAgICYmIChpc0FwcGxlTGVnYWN5
Q1NTUHJvcGVydHlLZXl3b3JkKGJ1ZmZlciwgbGVuZ3RoKSB8fCBoYXNQcmVmaXgoYnVmZmVyLCBs
ZW5ndGgsICIta2h0bWwtIikpKSB7CiAgICAgICAgICAgICBtZW1tb3ZlKGJ1ZmZlciArIDcsIGJ1
ZmZlciArIDYsIGxlbmd0aCArIDEgLSA2KTsKICAgICAgICAgICAgIG1lbWNweShidWZmZXIsICIt
d2Via2l0IiwgNyk7CiAgICAgICAgICAgICArK2xlbmd0aDsKQEAgLTEzMzY1LDE0ICsxMzM4NCwx
NiBAQCB2b2lkIGNzc1Byb3BlcnR5TmFtZUlPU0FsaWFzaW5nKGNvbnN0IGNoYXIqIHByb3BlcnR5
TmFtZSwgY29uc3QgY2hhciomIHByb3BlcnR5TgogfQogI2VuZGlmCiAKLXN0YXRpYyBib29sIGlz
QXBwbGVMZWdhY3lDc3NWYWx1ZUtleXdvcmQoY29uc3QgY2hhciogdmFsdWVLZXl3b3JkLCB1bnNp
Z25lZCBsZW5ndGgpCitzdGF0aWMgYm9vbCBpc0FwcGxlTGVnYWN5Q1NTVmFsdWVLZXl3b3JkKGNv
bnN0IGNoYXIqIHZhbHVlS2V5d29yZCwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIHN0YXRpYyBj
b25zdCBjaGFyIGFwcGxlUHJlZml4W10gPSAiLWFwcGxlLSI7Ci0gICAgc3RhdGljIGNvbnN0IGNo
YXIgYXBwbGVTeXN0ZW1QcmVmaXhbXSA9ICItYXBwbGUtc3lzdGVtIjsKKyAgICBzdGF0aWMgY29u
c3QgY2hhciBhcHBsZVN5c3RlbVByZWZpeFtdID0gIi1hcHBsZS1zeXN0ZW0tIjsKKyAgICBzdGF0
aWMgY29uc3QgY2hhciBhcHBsZVBheVByZWZpeFtdID0gIi1hcHBsZS1wYXktIjsKICAgICBzdGF0
aWMgY29uc3QgY2hhciogYXBwbGVXaXJlbGVzc1BsYXliYWNrVGFyZ2V0QWN0aXZlID0gZ2V0VmFs
dWVOYW1lKENTU1ZhbHVlQXBwbGVXaXJlbGVzc1BsYXliYWNrVGFyZ2V0QWN0aXZlKTsKIAogICAg
IHJldHVybiBoYXNQcmVmaXgodmFsdWVLZXl3b3JkLCBsZW5ndGgsIGFwcGxlUHJlZml4KQogICAg
ICAgICAmJiAhaGFzUHJlZml4KHZhbHVlS2V5d29yZCwgbGVuZ3RoLCBhcHBsZVN5c3RlbVByZWZp
eCkKKyAgICAgICAgJiYgIWhhc1ByZWZpeCh2YWx1ZUtleXdvcmQsIGxlbmd0aCwgYXBwbGVQYXlQ
cmVmaXgpCiAgICAgICAgICYmICFXVEY6OmVxdWFsKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPih2YWx1ZUtleXdvcmQpLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oYXBwbGVX
aXJlbGVzc1BsYXliYWNrVGFyZ2V0QWN0aXZlKSwgbGVuZ3RoKTsKIH0KIApAQCAtMTMzOTQsNyAr
MTM0MTUsNyBAQCBzdGF0aWMgQ1NTVmFsdWVJRCBjc3NWYWx1ZUtleXdvcmRJRChjb25zdCBDaGFy
YWN0ZXJUeXBlKiB2YWx1ZUtleXdvcmQsIHVuc2lnbmVkCiAgICAgICAgIC8vIFRoaXMgbWFrZXMg
dGhlIHN0cmluZyBvbmUgY2hhcmFjdGVyIGxvbmdlci4KICAgICAgICAgLy8gT24gaU9TIHdlIGRv
bid0IHdhbnQgdG8gY2hhbmdlIHZhbHVlcyBzdGFydGluZyB3aXRoIC1hcHBsZS1zeXN0ZW0gdG8g
LXdlYmtpdC1zeXN0ZW0uCiAgICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtYW5nbGluZyB3
aXRob3V0IGJyZWFraW5nIHRoZSB3ZWIuCi0gICAgICAgIGlmIChpc0FwcGxlTGVnYWN5Q3NzVmFs
dWVLZXl3b3JkKGJ1ZmZlciwgbGVuZ3RoKSB8fCBoYXNQcmVmaXgoYnVmZmVyLCBsZW5ndGgsICIt
a2h0bWwtIikpIHsKKyAgICAgICAgaWYgKGlzQXBwbGVMZWdhY3lDU1NWYWx1ZUtleXdvcmQoYnVm
ZmVyLCBsZW5ndGgpIHx8IGhhc1ByZWZpeChidWZmZXIsIGxlbmd0aCwgIi1raHRtbC0iKSkgewog
ICAgICAgICAgICAgbWVtbW92ZShidWZmZXIgKyA3LCBidWZmZXIgKyA2LCBsZW5ndGggKyAxIC0g
Nik7CiAgICAgICAgICAgICBtZW1jcHkoYnVmZmVyLCAiLXdlYmtpdCIsIDcpOwogICAgICAgICAg
ICAgKytsZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckZhc3RQYXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZh
c3RQYXRocy5jcHAKaW5kZXggYzliNzliMDg3MjQ0ZThkZDk1Mzc4NzE4ODk1NDIzYjMxY2MzM2Zi
OC4uMGE3NWNlM2E3MWQxYzVkZTFjMmQzZjU0YWY0ZjU3Yjk5ZmJiOTQ1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtOTIyLDYg
KzkyMiwxMCBAQCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNLZXl3b3JkUHJvcGVydHlJRChD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQpCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2Nyb2xsU25hcFR5cGU6CiAjZW5kaWYKKyNpZiBFTkFC
TEUoQVBQTEVfUEFZKQorICAgIGNhc2UgQ1NTUHJvcGVydHlBcHBsZVBheUJ1dHRvblN0eWxlOgor
ICAgIGNhc2UgQ1NTUHJvcGVydHlBcHBsZVBheUJ1dHRvblR5cGU6CisjZW5kaWYKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUp1c3RpZnlDb250ZW50OgogICAgIGNh
c2UgQ1NTUHJvcGVydHlBbGlnbkNvbnRlbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9UaGVtZVR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVz
LmgKaW5kZXggMDk5NDUzOTE3NDE1ZTkzYjBjNTc5NTI3NzVlNjhiMzQxOGZlYWQ1Ni4uNTBlNmVk
Y2JmM2IwOWJkZWExMTAxODVjNWJkMmJhYTY2NTQ0ZWIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1RoZW1lVHlwZXMuaApAQCAtMjMsOCArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAot
I2lmbmRlZiBUaGVtZVR5cGVzX2gKLSNkZWZpbmUgVGhlbWVUeXBlc19oCisjcHJhZ21hIG9uY2UK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw2ICs0OCw5IEBAIGVudW0gQ29udHJvbFBh
cnQgewogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIEltYWdlQ29udHJvbHNCdXR0
b25QYXJ0LAogI2VuZGlmCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBBcHBsZVBheUJ1dHRv
blBhcnQsCisjZW5kaWYKICAgICBUZXh0QXJlYVBhcnQsCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRf
RUxFTUVOVCkKICAgICBBdHRhY2htZW50UGFydCwKQEAgLTczLDQgKzc1LDMgQEAgZW51bSBUaGVt
ZUNvbG9yIHsKIH07CiAKIH0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3BpL2NvY29hL1Bhc3NLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nw
aS9jb2NvYS9QYXNzS2l0U1BJLmgKaW5kZXggYTBjN2I5OTg0ZTdlZTcxOTk3NTk1OTA2Mjg1OTI1
NDM5NWRmOTEwOS4uZWZhYTI3NmJlMTRlMGM0OTY5YjQ5ODA0OTg0NDY5MDRlMTkxZGRhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1Bhc3NLaXRTUEkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvUGFzc0tpdFNQSS5oCkBAIC0y
MTQsMyArMjE0LDYgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIE5TX0FTU1VNRV9OT05OVUxM
X0VORAogCiAjZW5kaWYKKworZXh0ZXJuICJDIgordm9pZCBQS0RyYXdBcHBsZVBheUJ1dHRvbihD
R0NvbnRleHRSZWYsIENHUmVjdCBkcmF3UmVjdCwgQ0dGbG9hdCBzY2FsZSwgUEtQYXltZW50QnV0
dG9uVHlwZSwgUEtQYXltZW50QnV0dG9uU3R5bGUsIE5TU3RyaW5nICpsYW5ndWFnZUNvZGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggMjc1NmY2YjQ1NzA4
MzM2ZmFlNjQzYTA2MTcwZmFiNThlYjFiMDgxOS4uY2RkMDFlMzRmNzJiN2FmNzlkOGI2M2JkYmFm
OWEyNmRhMGQ2MTY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3Bw
CkBAIC0yNTMsNiArMjUzLDEwIEBAIHZvaWQgUmVuZGVyVGhlbWU6OmFkanVzdFN0eWxlKFN0eWxl
UmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIFJlbmRlclN0eWxlJiBzdHlsZSwKICNlbmRpZgogICAg
IGNhc2UgQ2Fwc0xvY2tJbmRpY2F0b3JQYXJ0OgogICAgICAgICByZXR1cm4gYWRqdXN0Q2Fwc0xv
Y2tJbmRpY2F0b3JTdHlsZShzdHlsZVJlc29sdmVyLCBzdHlsZSwgZWxlbWVudCk7CisjaWYgRU5B
QkxFKEFQUExFX1BBWSkKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uUGFydDoKKyAgICAgICAgcmV0
dXJuIGFkanVzdEFwcGxlUGF5QnV0dG9uU3R5bGUoc3R5bGVSZXNvbHZlciwgc3R5bGUsIGVsZW1l
bnQpOworI2VuZGlmCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBjYXNlIEF0
dGFjaG1lbnRQYXJ0OgogICAgICAgICByZXR1cm4gYWRqdXN0QXR0YWNobWVudFN0eWxlKHN0eWxl
UmVzb2x2ZXIsIHN0eWxlLCBlbGVtZW50KTsKQEAgLTQwMSw2ICs0MDUsMTAgQEAgYm9vbCBSZW5k
ZXJUaGVtZTo6cGFpbnQoY29uc3QgUmVuZGVyQm94JiBib3gsIENvbnRyb2xTdGF0ZXMmIGNvbnRy
b2xTdGF0ZXMsIGNvbnMKICNlbmRpZgogICAgIGNhc2UgQ2Fwc0xvY2tJbmRpY2F0b3JQYXJ0Ogog
ICAgICAgICByZXR1cm4gcGFpbnRDYXBzTG9ja0luZGljYXRvcihib3gsIHBhaW50SW5mbywgaW50
ZWdyYWxTbmFwcGVkUmVjdCk7CisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBjYXNlIEFwcGxl
UGF5QnV0dG9uUGFydDoKKyAgICAgICAgcmV0dXJuIHBhaW50QXBwbGVQYXlCdXR0b24oYm94LCBw
YWludEluZm8sIGludGVncmFsU25hcHBlZFJlY3QpOworI2VuZGlmCiAjaWYgRU5BQkxFKEFUVEFD
SE1FTlRfRUxFTUVOVCkKICAgICBjYXNlIEF0dGFjaG1lbnRQYXJ0OgogICAgICAgICByZXR1cm4g
cGFpbnRBdHRhY2htZW50KGJveCwgcGFpbnRJbmZvLCBpbnRlZ3JhbFNuYXBwZWRSZWN0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggMzZhNGM4OWE2Y2QxYjMwNzI1
Njg4NTQyMDJiNWRlZDQyODQxZGJlNS4uMzliOTdjODZhZGUxN2RjMmMyYTZmNDljNDQ1MThhMTEz
ZmQ3MmQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTMyNSw2
ICszMjUsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RDYXBzTG9ja0lu
ZGljYXRvclN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQq
KSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDYXBzTG9ja0luZGljYXRvcihjb25zdCBS
ZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAKKyNpZiBF
TkFCTEUoQVBQTEVfUEFZKQorICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RBcHBsZVBheUJ1dHRvblN0
eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdCB7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRBcHBsZVBheUJ1dHRvbihjb25zdCBSZW5kZXJPYmpl
Y3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQor
I2VuZGlmCisKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIHZpcnR1YWwgdm9p
ZCBhZGp1c3RBdHRhY2htZW50U3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxlJiwgY29u
c3QgRWxlbWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwYWludEF0dGFjaG1lbnQoY29u
c3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRj
NTg3ZjFhYWJmYzZhNWVmYzkyZTM0ZGQ4ZjQ0NmI2MmE4ZDA1ZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmgKQEAgLTAsMCArMSw0
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiUmVuZGVyVGhlbWUu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJUaGVtZUNvY29hIDogcHVi
bGljIFJlbmRlclRoZW1lIHsKK3ByaXZhdGU6CisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICB2
b2lkIGFkanVzdEFwcGxlUGF5QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxl
JiwgY29uc3QgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgcGFpbnRBcHBsZVBh
eUJ1dHRvbihjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRS
ZWN0Jikgb3ZlcnJpZGU7CisjZW5kaWYKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2MyMjM4YWYxZDI5MDI0OTA2YjQ1
ZDA5MWM5ZTI1NDZjOThkYWYzYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCkBAIC0wLDAgKzEsMTAzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lQ29jb2EuaCIKKwor
I2lmIEVOQUJMRShBUFBMRV9QQVkpCisKKyNpbmNsdWRlICJQYXNzS2l0U1BJLmgiCisjaW5jbHVk
ZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJT
b2Z0TGlua2luZy5oIgorI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgor
CisjaWYgUExBVEZPUk0oTUFDKQorU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLKFBhc3NLaXQp
OworI2Vsc2UKK1NPRlRfTElOS19GUkFNRVdPUksoUGFzc0tpdCk7CisjZW5kaWYKKworU09GVF9M
SU5LX01BWV9GQUlMKFBhc3NLaXQsIFBLRHJhd0FwcGxlUGF5QnV0dG9uLCB2b2lkLCAoQ0dDb250
ZXh0UmVmIGNvbnRleHQsIENHUmVjdCBkcmF3UmVjdCwgQ0dGbG9hdCBzY2FsZSwgUEtQYXltZW50
QnV0dG9uVHlwZSB0eXBlLCBQS1BheW1lbnRCdXR0b25TdHlsZSBzdHlsZSwgTlNTdHJpbmcgKmxh
bmd1YWdlQ29kZSksIChjb250ZXh0LCBkcmF3UmVjdCwgc2NhbGUsIHR5cGUsIHN0eWxlLCBsYW5n
dWFnZUNvZGUpKTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3QgYXV0byBh
cHBsZVBheUJ1dHRvbk1pbmltdW1XaWR0aCA9IDE0MDsKK3N0YXRpYyBjb25zdCBhdXRvIGFwcGxl
UGF5QnV0dG9uUGxhaW5NaW5pbXVtV2lkdGggPSAxMDA7CitzdGF0aWMgY29uc3QgYXV0byBhcHBs
ZVBheUJ1dHRvbk1pbmltdW1IZWlnaHQgPSAzMDsKKwordm9pZCBSZW5kZXJUaGVtZUNvY29hOjph
ZGp1c3RBcHBsZVBheUJ1dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYgc3R5
bGUsIGNvbnN0IEVsZW1lbnQqKSBjb25zdAoreworICAgIGlmIChzdHlsZS5hcHBsZVBheUJ1dHRv
blR5cGUoKSA9PSBBcHBsZVBheUJ1dHRvblR5cGU6OlBsYWluKQorICAgICAgICBzdHlsZS5zZXRN
aW5XaWR0aChMZW5ndGgoYXBwbGVQYXlCdXR0b25QbGFpbk1pbmltdW1XaWR0aCwgRml4ZWQpKTsK
KyAgICBlbHNlCisgICAgICAgIHN0eWxlLnNldE1pbldpZHRoKExlbmd0aChhcHBsZVBheUJ1dHRv
bk1pbmltdW1XaWR0aCwgRml4ZWQpKTsKKyAgICBzdHlsZS5zZXRNaW5IZWlnaHQoTGVuZ3RoKGFw
cGxlUGF5QnV0dG9uTWluaW11bUhlaWdodCwgRml4ZWQpKTsKK30KKworc3RhdGljIFBLUGF5bWVu
dEJ1dHRvblN0eWxlIHRvUEtQYXltZW50QnV0dG9uU3R5bGUoQXBwbGVQYXlCdXR0b25TdHlsZSBz
dHlsZSkKK3sKKyAgICBzd2l0Y2ggKHN0eWxlKSB7CisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblN0
eWxlOjpXaGl0ZToKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJ1dHRvblN0eWxlV2hpdGU7Cisg
ICAgY2FzZSBBcHBsZVBheUJ1dHRvblN0eWxlOjpXaGl0ZU91dGxpbmU6CisgICAgICAgIHJldHVy
biBQS1BheW1lbnRCdXR0b25TdHlsZVdoaXRlT3V0bGluZTsKKyAgICBjYXNlIEFwcGxlUGF5QnV0
dG9uU3R5bGU6OkJsYWNrOgorICAgICAgICByZXR1cm4gUEtQYXltZW50QnV0dG9uU3R5bGVCbGFj
azsKKyAgICB9Cit9CisKK3N0YXRpYyBQS1BheW1lbnRCdXR0b25UeXBlIHRvUEtQYXltZW50QnV0
dG9uVHlwZShBcHBsZVBheUJ1dHRvblR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsK
KyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6UGxhaW46CisgICAgICAgIHJldHVybiBQS1Bh
eW1lbnRCdXR0b25UeXBlUGxhaW47CisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkJ1eToK
KyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJ1dHRvblR5cGVCdXk7CisgICAgY2FzZSBBcHBsZVBh
eUJ1dHRvblR5cGU6OlNldFVwOgorICAgICAgICByZXR1cm4gUEtQYXltZW50QnV0dG9uVHlwZVNl
dFVwOworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpJblN0b3JlOgorICAgICAgICByZXR1
cm4gUEtQYXltZW50QnV0dG9uVHlwZUluU3RvcmU7CisgICAgfQorfQorCitib29sIFJlbmRlclRo
ZW1lQ29jb2E6OnBhaW50QXBwbGVQYXlCdXR0b24oY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJl
ciwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHBhaW50UmVjdCkK
K3sKKyAgICBpZiAoIWNhbkxvYWRQS0RyYXdBcHBsZVBheUJ1dHRvbigpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIocGFp
bnRJbmZvLmNvbnRleHQoKSk7CisKKyAgICBwYWludEluZm8uY29udGV4dCgpLnNldFNob3VsZFNt
b290aEZvbnRzKHRydWUpOworICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2NhbGUoRmxvYXRTaXpl
KDEsIC0xKSk7CisKKyAgICBQS0RyYXdBcHBsZVBheUJ1dHRvbihwYWludEluZm8uY29udGV4dCgp
LnBsYXRmb3JtQ29udGV4dCgpLCBDR1JlY3RNYWtlKHBhaW50UmVjdC54KCksIC1wYWludFJlY3Qu
bWF4WSgpLCBwYWludFJlY3Qud2lkdGgoKSwgcGFpbnRSZWN0LmhlaWdodCgpKSwgMS4wLCB0b1BL
UGF5bWVudEJ1dHRvblR5cGUocmVuZGVyZXIuc3R5bGUoKS5hcHBsZVBheUJ1dHRvblR5cGUoKSks
IHRvUEtQYXltZW50QnV0dG9uU3R5bGUocmVuZGVyZXIuc3R5bGUoKS5hcHBsZVBheUJ1dHRvblN0
eWxlKCkpLCByZW5kZXJlci5zdHlsZSgpLmxvY2FsZSgpKTsKKworICAgIHJldHVybiBmYWxzZTsK
K30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9T
LmgKaW5kZXggZmZiMmUzZjE1YzU2NDNjNTU1OTMwOTI5ODgzZWY5NjBlYzUzYmQ4ZC4uZmRkN2Mw
YTdkMjBkZDU2OGM0MTc4ZjgyNWI5MzlmNDA5MzU3NmZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKQEAgLTIzLDEyICsyMywxMSBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgUmVuZGVyVGhlbWVJT1NfaAot
I2RlZmluZSBSZW5kZXJUaGVtZUlPU19oCisjcHJhZ21hIG9uY2UKIAogI2lmIFBMQVRGT1JNKElP
UykKIAotI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWVDb2Nv
YS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCkBAIC0zNiw3ICszNSw3IEBAIGNsYXNz
IFJlbmRlclN0eWxlOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0Owogc3RydWN0IEF0dGFjaG1lbnRM
YXlvdXQ7CiAKLWNsYXNzIFJlbmRlclRoZW1lSU9TIGZpbmFsIDogcHVibGljIFJlbmRlclRoZW1l
IHsKK2NsYXNzIFJlbmRlclRoZW1lSU9TIGZpbmFsIDogcHVibGljIFJlbmRlclRoZW1lQ29jb2Eg
ewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVuZGVyVGhlbWU+IGNyZWF0ZSgpOwogCkBAIC0x
MzUsNCArMTM0LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKLSNl
bmRpZiAvLyBSZW5kZXJUaGVtZUlPU19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5oCmluZGV4IDRlMDBhNDhiMDRhZTRjYjFmYjQzYzA0ZjliMzdiNDY2ZTQ5YmZmNWMu
LjY1OGY4ODMxNDYzNjA3MjliNmNhMzc2NmRjMGM5YTlhNTY5Yjg2ZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCkBAIC0xOSwxMiArMTksMTIgQEAKICAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICoKICAqLwotI2lmICFQTEFURk9STShJT1MpCiAK
LSNpZm5kZWYgUmVuZGVyVGhlbWVNYWNfaAotI2RlZmluZSBSZW5kZXJUaGVtZU1hY19oCisjcHJh
Z21hIG9uY2UKIAotI2ltcG9ydCAiUmVuZGVyVGhlbWUuaCIKKyNpZiBQTEFURk9STShNQUMpCisK
KyNpbXBvcnQgIlJlbmRlclRoZW1lQ29jb2EuaCIKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
ICNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CiAKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgUmVuZGVy
UHJvZ3Jlc3M7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIHN0cnVjdCBBdHRhY2htZW50TGF5b3V0Owog
Ci1jbGFzcyBSZW5kZXJUaGVtZU1hYyBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUaGVtZSB7CitjbGFz
cyBSZW5kZXJUaGVtZU1hYyBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUaGVtZUNvY29hIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPFJlbmRlclRoZW1lPiBjcmVhdGUoKTsKIApAQCAtMjUwLDYgKzI1
MCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFJl
bmRlclRoZW1lTWFjX2gKLQotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCisjZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aAppbmRleCAzYzA1YTdjZDBhZTQyYWNkNGFlMTEzYjg4NmRhOGUyZmE0NjY5YWVkLi4wMmYyYmY3
ZTMwODBhYTUyYWI0Y2IwZWFmODE4MmU4YjYxYTM2MGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTIxOCw3ICsxMjE4LDEyIEBAIHB1Ymxp
YzoKICNpZiBFTkFCTEUoQ1NTX1RSQUlMSU5HX1dPUkQpCiAgICAgVHJhaWxpbmdXb3JkIHRyYWls
aW5nV29yZCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRyYWlsaW5nV29yZD4ocmFyZUlu
aGVyaXRlZERhdGEtPnRyYWlsaW5nV29yZCk7IH0KICNlbmRpZgotICAgIAorCisjaWYgRU5BQkxF
KEFQUExFX1BBWSkKKyAgICBBcHBsZVBheUJ1dHRvblN0eWxlIGFwcGxlUGF5QnV0dG9uU3R5bGUo
KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxBcHBsZVBheUJ1dHRvblN0eWxlPihyYXJlSW5o
ZXJpdGVkRGF0YS0+YXBwbGVQYXlCdXR0b25TdHlsZSk7IH0KKyAgICBBcHBsZVBheUJ1dHRvblR5
cGUgYXBwbGVQYXlCdXR0b25UeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QXBwbGVQ
YXlCdXR0b25UeXBlPihyYXJlSW5oZXJpdGVkRGF0YS0+YXBwbGVQYXlCdXR0b25UeXBlKTsgfQor
I2VuZGlmCisKICAgICB2b2lkIGNoZWNrVmFyaWFibGVzSW5DdXN0b21Qcm9wZXJ0aWVzKCk7CiAK
IC8vIGF0dHJpYnV0ZSBzZXR0ZXIgbWV0aG9kcwpAQCAtMTczNSw2ICsxNzQwLDExIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFRyYWlsaW5nV29yZChUcmFpbGluZ1dvcmQgdikgeyBTRVRfVkFSKHJh
cmVJbmhlcml0ZWREYXRhLCB0cmFpbGluZ1dvcmQsIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KSk7
IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICB2b2lkIHNldEFwcGxlUGF5
QnV0dG9uU3R5bGUoQXBwbGVQYXlCdXR0b25TdHlsZSB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRl
ZERhdGEsIGFwcGxlUGF5QnV0dG9uU3R5bGUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KSk7IH0K
KyAgICB2b2lkIHNldEFwcGxlUGF5QnV0dG9uVHlwZShBcHBsZVBheUJ1dHRvblR5cGUgdikgeyBT
RVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBhcHBsZVBheUJ1dHRvblR5cGUsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPih2KSk7IH0KKyNlbmRpZgorCiAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUmIHN2
Z1N0eWxlKCkgY29uc3QgeyByZXR1cm4gKm1fc3ZnU3R5bGU7IH0KICAgICBTVkdSZW5kZXJTdHls
ZSYgYWNjZXNzU1ZHU3R5bGUoKSB7IHJldHVybiAqbV9zdmdTdHlsZS5hY2Nlc3MoKTsgfQogCkBA
IC0yMDg2LDYgKzIwOTYsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBUcmFpbGluZ1dvcmQgaW5p
dGlhbFRyYWlsaW5nV29yZCgpIHsgcmV0dXJuIFRyYWlsaW5nV29yZDo6QXV0bzsgfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgIHN0YXRpYyBBcHBsZVBheUJ1dHRvblN0eWxl
IGluaXRpYWxBcHBsZVBheUJ1dHRvblN0eWxlKCkgeyByZXR1cm4gQXBwbGVQYXlCdXR0b25TdHls
ZTo6QmxhY2s7IH0KKyAgICBzdGF0aWMgQXBwbGVQYXlCdXR0b25UeXBlIGluaXRpYWxBcHBsZVBh
eUJ1dHRvblR5cGUoKSB7IHJldHVybiBBcHBsZVBheUJ1dHRvblR5cGU6OlBsYWluOyB9CisjZW5k
aWYKKwogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAgLy8gVGhlIGluaXRpYWwgdmFs
dWUgaXMgJ25vbmUnIGZvciBncmlkIHRyYWNrcy4KICAgICBzdGF0aWMgVmVjdG9yPEdyaWRUcmFj
a1NpemU+IGluaXRpYWxHcmlkQ29sdW1ucygpIHsgcmV0dXJuIFZlY3RvcjxHcmlkVHJhY2tTaXpl
PigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oCmluZGV4IDM1MThjMmY0ZTljOTI0N2IyYTIxZmJkYjAwN2JkODc5NTdj
ZjAzMDAuLjdjYWY3MTU1MTAxM2FjNjUyYWQ4MGEzN2Y4ZmY1M2E5MjhjMTcwMjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oCkBAIC02OTYsNiArNjk2LDIxIEBAIGVudW0gY2xhc3MgVHJhaWxpbmdXb3JkIHsKIH07CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVkpCitlbnVtIGNsYXNzIEFwcGxlUGF5QnV0dG9u
U3R5bGUgeworICAgIFdoaXRlLAorICAgIFdoaXRlT3V0bGluZSwKKyAgICBCbGFjaywKK307CisK
K2VudW0gY2xhc3MgQXBwbGVQYXlCdXR0b25UeXBlIHsKKyAgICBQbGFpbiwKKyAgICBCdXksCisg
ICAgU2V0VXAsCisgICAgSW5TdG9yZSwKK307CisjZW5kaWYKKwogVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiwgRUZpbGxTaXplVHlwZSk7CiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mLCBFRmlsbEF0dGFjaG1lbnQpOwogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiwgRUZpbGxCb3gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDIwOThiOTE3OWM1
NzFlYmI4NGVkYjJmM2M3ODYxMTgyOGM2NmUxZTEuLjhiYWYzNTIwZTE3Zjg4NjBmMDYzNzhlOTIz
MzM4NTc3MjcxMTgwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTEyNCw2ICsxMjQsMTAgQEAg
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSgpCiAjaWYgRU5B
QkxFKENTU19UUkFJTElOR19XT1JEKQogICAgICwgdHJhaWxpbmdXb3JkKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFRyYWlsaW5nV29yZCgpKSkKICNlbmRpZgorI2lm
IEVOQUJMRShBUFBMRV9QQVkpCisgICAgLCBhcHBsZVBheUJ1dHRvblN0eWxlKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbEFwcGxlUGF5QnV0dG9uU3R5bGUoKSkpCisg
ICAgLCBhcHBsZVBheUJ1dHRvblR5cGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxl
Ojppbml0aWFsQXBwbGVQYXlCdXR0b25UeXBlKCkpKQorI2VuZGlmCiAgICAgLCBtX2hhbmdpbmdQ
dW5jdHVhdGlvbihSZW5kZXJTdHlsZTo6aW5pdGlhbEhhbmdpbmdQdW5jdHVhdGlvbigpKQogICAg
ICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZSgtMSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRBZnRl
cigtMSkKQEAgLTIwNiw2ICsyMTAsMTAgQEAgaW5saW5lIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6
OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGEKICNpZiBF
TkFCTEUoQ1NTX1RSQUlMSU5HX1dPUkQpCiAgICAgLCB0cmFpbGluZ1dvcmQoby50cmFpbGluZ1dv
cmQpCiAjZW5kaWYKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgICwgYXBwbGVQYXlCdXR0b25T
dHlsZShvLmFwcGxlUGF5QnV0dG9uU3R5bGUpCisgICAgLCBhcHBsZVBheUJ1dHRvblR5cGUoby5h
cHBsZVBheUJ1dHRvblR5cGUpCisjZW5kaWYKICAgICAsIG1faGFuZ2luZ1B1bmN0dWF0aW9uKG8u
bV9oYW5naW5nUHVuY3R1YXRpb24pCiAgICAgLCBoeXBoZW5hdGlvblN0cmluZyhvLmh5cGhlbmF0
aW9uU3RyaW5nKQogICAgICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZShvLmh5cGhlbmF0aW9uTGlt
aXRCZWZvcmUpCkBAIC0zMTIsNiArMzIwLDEwIEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdAogI2lm
IEVOQUJMRShDU1NfVFJBSUxJTkdfV09SRCkKICAgICAgICAgJiYgdHJhaWxpbmdXb3JkID09IG8u
dHJhaWxpbmdXb3JkCiAjZW5kaWYKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgICAgICAmJiBh
cHBsZVBheUJ1dHRvblN0eWxlID09IG8uYXBwbGVQYXlCdXR0b25TdHlsZQorICAgICAgICAmJiBh
cHBsZVBheUJ1dHRvblR5cGUgPT0gby5hcHBsZVBheUJ1dHRvblR5cGUKKyNlbmRpZgogICAgICAg
ICAmJiBtX2hhbmdpbmdQdW5jdHVhdGlvbiA9PSBvLm1faGFuZ2luZ1B1bmN0dWF0aW9uCiAgICAg
ICAgICYmIG1fY3VzdG9tUHJvcGVydGllcyA9PSBvLm1fY3VzdG9tUHJvcGVydGllcwogICAgICAg
ICAmJiBhcmVQb2ludGluZ1RvRXF1YWxEYXRhKGxpc3RTdHlsZUltYWdlLCBvLmxpc3RTdHlsZUlt
YWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVJbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlSW5oZXJpdGVkRGF0YS5oCmluZGV4IDVmN2MyMzYzNjU4ODdlZDNkOGRkZWQ4OWI3MjMxMjBi
MjRiZDE5MTMuLmNlOWZhMzgxZTZkMzZjOTYwMjY4NzBjNGUzNzc3MzRiNzA2MDJmOGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVy
aXRlZERhdGEuaApAQCAtMTM2LDYgKzEzNiwxMSBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgdHJh
aWxpbmdXb3JkIDogMTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICB1bnNp
Z25lZCBhcHBsZVBheUJ1dHRvblN0eWxlIDogMjsKKyAgICB1bnNpZ25lZCBhcHBsZVBheUJ1dHRv
blR5cGUgOiAzOworI2VuZGlmCisKICAgICB1bnNpZ25lZCBtX2hhbmdpbmdQdW5jdHVhdGlvbiA6
IDQ7CiAKICAgICBBdG9taWNTdHJpbmcgaHlwaGVuYXRpb25TdHJpbmc7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288879</attachid>
            <date>2016-09-14 15:59:58 -0700</date>
            <delta_ts>2016-09-14 16:26:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161986-20160914155722.patch</filename>
            <type>text/plain</type>
            <size>36135</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1OTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI4Zjc0M2VhNDc0MjQ4
ZTdlOTY5ZjVjMDRlNjY4YmE3Y2YyY2I4ZS4uNWNmNjAyNTdlMTlmZGM5NTc0N2RjZmM2YzE0M2Mz
YjQyNTg4YzlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDE2LTA5LTE0ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIENTUyAtd2Vi
a2l0LWFwcGVhcmFuY2UgcHJvcGVydHkgZm9yIEFwcGxlIFBheSBidXR0b25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5ODYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgLXdlYmtpdC1h
cHBlYXJhbmNlIHByb3BlcnR5LCAiLWFwcGxlLXBheS1idXR0b24iLgorICAgICAgICBBbHNvLCBh
ZGQgdHdvIHByb3BlcnRpZXMsICItYXBwbGUtcGF5LWJ1dHRvbi10eXBlIiBhbmQgIi1hcHBsZS1w
YXktYnV0dG9uLXN0eWxlIi4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgQWRkIFJlbmRlclRoZW1lQ29jb2EuaCBhbmQgUmVuZGVyVGhlbWVD
b2NvYS5tbS4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1
ZSk6CisgICAgICAgIEhhbmRsZSBDU1NQcm9wZXJ0eUFwcGxlUGF5QnV0dG9uU3R5bGUgYW5kIENT
U1Byb3BlcnR5QXBwbGVQYXlCdXR0b25UeXBlLgorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgQXBwbGVQYXlCdXR0b25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgQXBwbGVQYXlCdXR0b25UeXBlKToKKyAgICAgICAgQWRkIEFw
cGxlUGF5QnV0dG9uU3R5bGUgYW5kIEFwcGxlUGF5QnV0dG9uVHlwZSBjb252ZXJzaW9uIHJvdXRp
bmVzLgorCisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgIEFkZCAt
YXBwbGUtcGF5LWJ1dHRvbi1zdHlsZSBhbmQgLWFwcGxlLXBheS1idXR0b24tdHlwZS4KKworICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICBBZGQgQ1NTIHZhbHVlcy4K
KworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZSk6CisgICAgICAgIEhhbmRsZSBDU1NQcm9w
ZXJ0eUFwcGxlUGF5QnV0dG9uU3R5bGUgYW5kIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0b25UeXBl
LgorCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKToKKyAg
ICAgICAgSGFuZGxlIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0b25TdHlsZSBhbmQgQ1NTUHJvcGVy
dHlBcHBsZVBheUJ1dHRvblR5cGUuCisKKyAgICAgICAgKFdlYkNvcmU6OmlzQXBwbGVMZWdhY3lD
U1NQcm9wZXJ0eUtleXdvcmQpOgorICAgICAgICBOZXcgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHdo
ZXRoZXIgdGhlIENTUyBwcm9wZXJ0eSBzaG91bGQgYmUgcmV3cml0dGVuIHRvIC13ZWJraXQtLgor
ICAgICAgICBXZSB3YW50IHRvIHJld3JpdGUgLWFwcGxlLSBidXQgbm90IC1hcHBsZS1wYXktLgor
CisgICAgICAgIChXZWJDb3JlOjpjc3NQcm9wZXJ0eUlEKToKKyAgICAgICAgVXNlIHRoZSBuZXds
eSBhZGRlZCBpc0FwcGxlTGVnYWN5Q1NTUHJvcGVydHlLZXl3b3JkLgorCisgICAgICAgIChXZWJD
b3JlOjppc0FwcGxlTGVnYWN5Q1NTVmFsdWVLZXl3b3JkKToKKyAgICAgICAgQ2hlY2sgZm9yICIt
YXBwbGUtcGF5LSIgaW4gYWRkaXRpb24gdG8gIi1hcHBsZS1zeXN0ZW0tIi4KKworICAgICAgICAq
IHBsYXRmb3JtL1RoZW1lVHlwZXMuaDoKKyAgICAgICAgQWRkIEFwcGxlUGF5QnV0dG9uUGFydC4K
KworICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9QYXNzS2l0U1BJLmg6CisgICAgICAgIEFk
ZCBQS0RyYXdBcHBsZVBheUJ1dHRvbiBkZWNsYXJhdGlvbi4KKworICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0
U3R5bGUpOgorICAgICAgICBIYW5kbGUgQXBwbGVQYXlCdXR0b25QYXJ0LgorCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOgorICAgICAgICBIYW5kbGUgQXBwbGVQYXlCdXR0
b25QYXJ0LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0QXBwbGVQYXlCdXR0b25TdHlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRBcHBsZVBheUJ1dHRvbik6CisgICAgICAgIEFk
ZCBuZXcgZnVuY3Rpb25zLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2Eu
aDogQWRkZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW06IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDb2NvYTo6YWRqdXN0QXBwbGVQYXlCdXR0
b25TdHlsZSk6CisgICAgICAgIEFkanVzdCB0aGUgbWluaW11bSB3aWR0aCBhbmQgbWluaW11bSBo
ZWlnaHQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKFdlYkNvcmU6OnRvUEtQYXltZW50QnV0dG9u
U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6dG9QS1BheW1lbnRCdXR0b25UeXBlKToKKyAgICAg
ICAgSGVscGVyIGZ1bmN0aW9ucyB0aGF0IGNvbnZlciBvdXIgV2ViQ29yZSB0eXBlcyB0byBQSyB0
eXBlcy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDb2NvYTo6cGFpbnRBcHBsZVBh
eUJ1dHRvbik6CisgICAgICAgIENhbGwgUEtEcmF3QXBwbGVQYXlCdXR0b24uCisKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMuaDoKKyAgICAgICAgSW5oZXJpdCBmcm9tIFJlbmRlclRoZW1lQ29jb2EuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjphcHBsZVBheUJ1dHRvblN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclN0eWxlOjphcHBsZVBheUJ1dHRvblR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U3R5bGU6OnNldEFwcGxlUGF5QnV0dG9uU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U3R5bGU6OnNldEFwcGxlUGF5QnV0dG9uVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
dHlsZTo6aW5pdGlhbEFwcGxlUGF5QnV0dG9uU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6OmluaXRpYWxBcHBsZVBheUJ1dHRvblR5cGUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFy
ZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgQWRkIG5ldyBzdHls
ZSBtZW1iZXJzIGZvciB0aGUgYnV0dG9uIHN0eWxlIGFuZCBidXR0b24gdHlwZSBwcm9wZXJ0aWVz
LgorCiAyMDE2LTA5LTE0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFtNZWRpYVN0cmVhbV0gTWlub3IgY2xlYW51cApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI4Y2E2NzM5ZjFkYjYx
ZDEwNWZkMGE5ODFkZTBmY2UxZjMwMmNkMjYuLjI4NjNjYzY5NTI2NjM5MjJmOWUyMmU5MDg4NjU1
ZTNmNThjNzk4YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTY5Myw2ICs2OTMsOCBAQAogCQkxQTIyNDY0RTBDQzk4RERCMDBD
MDUyNDAgLyogU1FMaXRlVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjI0NjQ4MENDOThEREIwMEMwNTI0MCAvKiBTUUxpdGVUcmFu
c2FjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTFBMjQ4NDREMUQxQTI3MkEwMEY1NkJBNyAvKiBQYXltZW50SGVhZGVycy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyNDg0NEMxRDFBMjcwMTAw
RjU2QkE3IC8qIFBheW1lbnRIZWFkZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUEyNTBFMEQxQ0RENjMyMDAwRDBCRTYzIC8qIExpbmtJY29u
VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEy
NTBFMEMxQ0RENjMyMDAwRDBCRTYzIC8qIExpbmtJY29uVHlwZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFBMjk5RkU3MUQ3RjVGQTYwMEE2MDA5
MyAvKiBSZW5kZXJUaGVtZUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUEyOTlGRTUxRDdGNUZBNjAwQTYwMDkzIC8qIFJlbmRlclRoZW1lQ29j
b2EubW0gKi87IH07CisJCTFBMjk5RkU4MUQ3RjVGQTYwMEE2MDA5MyAvKiBSZW5kZXJUaGVtZUNv
Y29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTI5
OUZFNjFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVDb2NvYS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMkE2ODIzMEI1QkVERTcwMDAy
QTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUEyQTY4MjEwQjVCRURFNzAwMDJBNDgwIC8qIFByb2dyZXNzVHJh
Y2tlci5jcHAgKi87IH07CiAJCTFBMkE2ODI0MEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1Ry
YWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFB
MkE2ODIyMEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTJBQUM1ODBEQzJBM0IxMDBB
MjBEOUEgLyogQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyQUFDNTYwREMyQTNCMTAwQTIwRDlBIC8qIEFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCAqLzsgfTsKQEAgLTc1MzAsNiArNzUzMiw4IEBACiAJ
CTFBMjI0NjQ4MENDOThEREIwMEMwNTI0MCAvKiBTUUxpdGVUcmFuc2FjdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTUUxpdGVUcmFuc2FjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQTI0ODQ0QzFEMUEyNzAxMDBGNTZCQTcgLyogUGF5bWVudEhl
YWRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudEhlYWRlcnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEyNTBFMEMxQ0RENjMyMDAwRDBCRTYz
IC8qIExpbmtJY29uVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaW5r
SWNvblR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEyOTlGRTUxRDdGNUZB
NjAwQTYwMDkzIC8qIFJlbmRlclRoZW1lQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBSZW5kZXJUaGVtZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQTI5OUZFNjFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVDb2NvYS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUaGVtZUNvY29hLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMkE2ODIxMEI1QkVERTcwMDAyQTQ4MCAvKiBQ
cm9ncmVzc1RyYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFByb2dyZXNzVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMkE2
ODIyMEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFByb2dyZXNzVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQTJBQUM1NjBEQzJBM0IxMDBBMjBEOUEgLyogQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI4Mzcs
NiArMjI4NDEsOCBAQAogCQkJCUU0QzkxQTE1MTgwOTk5RjEwMEExN0Y2RCAvKiBSZW5kZXJUZXh0
TGluZUJveGVzLmggKi8sCiAJCQkJQkNFQTQ4NEEwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlclRo
ZW1lLmNwcCAqLywKIAkJCQlCQ0VBNDg0QjA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyVGhlbWUu
aCAqLywKKwkJCQkxQTI5OUZFNjFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVDb2NvYS5o
ICovLAorCQkJCTFBMjk5RkU1MUQ3RjVGQTYwMEE2MDA5MyAvKiBSZW5kZXJUaGVtZUNvY29hLm1t
ICovLAogCQkJCUZFRDEzRDUwMENFQTk0OTcwMEQ4OTQ2NiAvKiBSZW5kZXJUaGVtZUlPUy5oICov
LAogCQkJCUM1NUM3QkEwMTcxOEFGQkEwMDEzMjdFNCAvKiBSZW5kZXJUaGVtZUlPUy5tbSAqLywK
IAkJCQlCQ0VBNDg0ODA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyVGhlbWVNYWMuaCAqLywKQEAg
LTI1MDg0LDYgKzI1MDkwLDcgQEAKIAkJCQlCQzkyNkY4MTBDMDU1MjQ3MDA4Mjc3NkIgLyogSlNI
VE1MRnJhbWVTZXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFN0IxNTBBMTlENjA2
MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTJB
QTJGMEExQ0RBQjQwMEI0MkIyNSAvKiBKU0hUTUxIZWFkaW5nRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMUEyOTlGRTgxRDdGNUZBNjAwQTYwMDkzIC8qIFJlbmRlclRoZW1lQ29jb2EuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBRTJBQTMxMEExQ0RBQjQwMEI0MkIyNSAvKiBKU0hUTUxIUkVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBODVCMTkwMEExQjE4QTIwMEQ4Qzg3QyAvKiBK
U0hUTUxIdG1sRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0OTE4QzkwQkZFQTA1MDAw
OUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2Mjcs
NiArMjc2MzQsNyBAQAogCQkJCUY0NUMyMzFEMTk5NUI3M0IwMEE2RTJFMyAvKiBBeGlzU2Nyb2xs
U25hcE9mZnNldHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdGNTdBQ0YxQTUwNzJERDAwODc2
Rjk4IC8qIEFYT2JqZWN0Q2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUFBNzI4RjkxNkQx
RDhCQzAwRDNCQkM2IC8qIEFYT2JqZWN0Q2FjaGVJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQkx
QTI5OUZFNzFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTI5QTgxMjRCMEZCQjlDQTkwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBOEM4MUYxMUUzRDM2OTAwODEyRkI3IC8qIEJhY2tGb3J3
YXJkQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0E4Q0E1RjExRTRFNkQxMDA4
MTJGQjcgLyogQmFja0ZvcndhcmRMaXN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBiYTA4
MTg2NTUwOGQyODZkNGU5NWZhOWQxOWY1ZmVlZGZiZWVlNTIwLi44M2IxMzJkMTY2YmQ2YzlmMzYx
YzM3ZmQyMWFjMTllMTBkODk5N2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMzc1Myw2ICszNzUzLDEzIEBAIFJlZlB0
cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SUQsCiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0
ZVZhbHVlKHN0eWxlLT50cmFpbGluZ1dvcmQoKSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBM
RV9QQVkpCisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlBcHBsZVBheUJ1dHRvblN0eWxlOgorICAg
ICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS0+YXBwbGVQYXlC
dXR0b25TdHlsZSgpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUFwcGxlUGF5QnV0dG9uVHlw
ZToKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUtPmFw
cGxlUGF5QnV0dG9uVHlwZSgpKTsKKyNlbmRpZgorCiAgICAgICAgIC8qIEluZGl2aWR1YWwgcHJv
cGVydGllcyBub3QgcGFydCBvZiB0aGUgc3BlYyAqLwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5
QmFja2dyb3VuZFJlcGVhdFg6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUmVw
ZWF0WToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1h
cHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
CmluZGV4IDRlZmMwN2ZkOTdhNWU3YzBjZDQzNTdmODk3MzJkNDFlM2E0MWZjODkuLjhmOGVhNDEx
MjEyMDZhNTMyODgzMWJkNjg1ZDFkZjJlMmVjZTk4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAtNjE2LDYgKzYxNiwxMSBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJv
bFBhcnQgZSkKICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbWFnZUNvbnRyb2xz
QnV0dG9uOwogICAgICAgICBicmVhazsKICNlbmRpZgorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisg
ICAgY2FzZSBBcHBsZVBheUJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQXBwbGVQYXlCdXR0b247CisgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgfQogfQog
CkBAIC01NDczLDYgKzU0NzgsODcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFRyYWlsaW5nV29yZCgpIGNvbnN0CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShBUFBMRV9QQVkpCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoQXBwbGVQYXlCdXR0b25TdHlsZSBlKQorICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCit7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKKyAg
ICBzd2l0Y2ggKGUpIHsKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdoaXRlOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlT3V0bGluZToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVXaGl0ZU91dGxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQXBwbGVQYXlCdXR0b25TdHlsZTo6QmxhY2s6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQmxhY2s7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBBcHBsZVBheUJ1dHRvblN0eWxl
KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOworICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVdoaXRlOgorICAgICAgICByZXR1cm4gQXBw
bGVQYXlCdXR0b25TdHlsZTo6V2hpdGU7CisgICAgY2FzZSBDU1NWYWx1ZVdoaXRlT3V0bGluZToK
KyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlT3V0bGluZTsKKyAgICBj
YXNlIENTU1ZhbHVlQmxhY2s6CisgICAgICAgIHJldHVybiBBcHBsZVBheUJ1dHRvblN0eWxlOjpC
bGFjazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uU3R5bGU6OkJsYWNrOworfQor
Cit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
QXBwbGVQYXlCdXR0b25UeXBlIGUpCisgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKK3sK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOworICAgIHN3aXRjaCAoZSkg
eworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpQbGFpbjoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVQbGFpbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcHBsZVBh
eUJ1dHRvblR5cGU6OkJ1eToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCdXk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpTZXRVcDoKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZXRVcDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkluU3RvcmU6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlSW5TdG9yZTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwor
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEFwcGxlUGF5QnV0
dG9uVHlwZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKyAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVQbGFpbjoKKyAgICAgICAgcmV0
dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6UGxhaW47CisgICAgY2FzZSBDU1NWYWx1ZUJ1eToKKyAg
ICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6QnV5OworICAgIGNhc2UgQ1NTVmFsdWVT
ZXRVcDoKKyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6U2V0VXA7CisgICAgY2Fz
ZSBDU1NWYWx1ZUluU3RvcmU6CisgICAgICAgIHJldHVybiBBcHBsZVBheUJ1dHRvblR5cGU6Oklu
U3RvcmU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBBcHBsZVBheUJ1dHRvblR5cGU6OlBsYWluOworfQor
I2VuZGlmCisKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShGb250VmFyaWFudFBvc2l0aW9uIHBvc2l0aW9uKQogICAgIDogQ1NTVmFsdWUoUHJp
bWl0aXZlQ2xhc3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVy
dHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4
IDliOWVlM2U2MjY2ZjE0ODY1YWM5MDdkMzIxZWI5YzdhZDE0YTY3OGQuLjg4NjEzMzljZjNjOWFl
YzI2YzMwMzY4Yjg1ODRiNTJmNmMxOTdlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eU5hbWVzLmluCkBAIC02ODEsMyArNjgxLDggQEAgdG91Y2gtYWN0aW9uCiAjaWYgZGVmaW5lZChF
TkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICYmIEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRAogLWFw
cGxlLXRyYWlsaW5nLXdvcmQgW0luaGVyaXRlZCwgTmFtZUZvck1ldGhvZHM9VHJhaWxpbmdXb3Jk
XQogI2VuZGlmCisKKyNpZiBkZWZpbmVkKEVOQUJMRV9BUFBMRV9QQVkpICYmIEVOQUJMRV9BUFBM
RV9QQVkKKy1hcHBsZS1wYXktYnV0dG9uLXN0eWxlIFtOYW1lRm9yTWV0aG9kcz1BcHBsZVBheUJ1
dHRvblN0eWxlXQorLWFwcGxlLXBheS1idXR0b24tdHlwZSBbTmFtZUZvck1ldGhvZHM9QXBwbGVQ
YXlCdXR0b25UeXBlXQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
CmluZGV4IDExZTg1MWI4MGM3MDIyMDkyNDhmYWViNjA4ODhjZjU2MjVmZjA2ZDcuLmY4ZmY2ZWEx
YWEzYWU3NWJkZTg0YTBhMzJlZWE2MTQ2MzliZjVhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUtleXdvcmRzLmluCkBAIC04MDYsNiArODA2LDkgQEAgcmF0aW5nLWxldmVsLWluZGljYXRv
cgogI2lmIGRlZmluZWQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICYmIEVOQUJMRV9TRVJWSUNF
X0NPTlRST0xTCiBpbWFnZS1jb250cm9scy1idXR0b24KICNlbmRpZgorI2lmIGRlZmluZWQoRU5B
QkxFX0FQUExFX1BBWSkgJiYgRU5BQkxFX0FQUExFX1BBWQorLWFwcGxlLXBheS1idXR0b24KKyNl
bmRpZgogdGV4dGFyZWEKICNpZiBkZWZpbmVkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICYm
IEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQKIGF0dGFjaG1lbnQKQEAgLTExODUsNiArMTE4OCwx
NyBAQCBmcm9tLWludHJpbnNpYwogLXdlYmtpdC1wYXJ0aWFsbHktYmFsYW5jZWQKICNlbmRpZgog
CisjaWYgZGVmaW5lZChFTkFCTEVfQVBQTEVfUEFZKSAmJiBFTkFCTEVfQVBQTEVfUEFZCisvLyAt
YXBwbGUtcGF5LWJ1dHRvbi1zdHlsZQord2hpdGUtb3V0bGluZQorCisvLyAtYXBwbGUtcGF5LWJ1
dHRvbi10eXBlCitwbGFpbgorYnV5CitzZXQtdXAKK2luLXN0b3JlCisjZW5kaWYKKwogLy8gZm9u
dC1zeW50aGVzaXMKIHdlaWdodAogc3R5bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyLmNwcAppbmRleCA2ZjkxNTc2ZTIzMTZkYWEyNzE3MmU2MjdhZmQzMjUwZDJlYmJiODBhLi5h
YWJmYWVmNjE3YTFiOGZmZDIzM2Y2NTRlNWUyZDA0NTA3YjA3NGEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCkBAIC0xMDUwLDYgKzEwNTAsMTYgQEAgc3RhdGljIGlu
bGluZSBib29sIGlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5SWQsIGludAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGJyZWFrOwog
I2VuZGlmCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBjYXNlIENTU1Byb3BlcnR5QXBwbGVQ
YXlCdXR0b25TdHlsZTogLy8gd2hpdGUgfCB3aGl0ZS1vdXRsaW5lIHwgYmxhY2sKKyAgICAgICAg
aWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVXaGl0ZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2hpdGVP
dXRsaW5lIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVCbGFjaykKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0b25U
eXBlOiAvLyBwbGFpbiB8IGJ1eSB8IHNldC11cCB8IGluLXN0b3JlCisgICAgICAgIGlmICh2YWx1
ZUlEID09IENTU1ZhbHVlUGxhaW4gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUJ1eSB8fCB2YWx1ZUlE
ID09IENTU1ZhbHVlU2V0VXAgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUluU3RvcmUpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICBjYXNlIENTU1By
b3BlcnR5Rm9udFZhcmlhbnRQb3NpdGlvbjogLy8gbm9ybWFsIHwgc3ViIHwgc3VwZXIKICAgICAg
ICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVN1
YiB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU3VwZXIpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTEzMjk1LDYgKzEzMzA1LDE3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZpZXdwb3J0U2hv
cnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcElkLCBDU1NQcm9wZXJ0eUlEIGZpcnN0CiB9CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShMRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykKK3N0YXRpYyBib29s
IGlzQXBwbGVMZWdhY3lDU1NQcm9wZXJ0eUtleXdvcmQoY29uc3QgY2hhciogcHJvcGVydHlLZXl3
b3JkLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgYXBwbGVQcmVm
aXhbXSA9ICItYXBwbGUtIjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBhcHBsZVBheVByZWZpeFtd
ID0gIi1hcHBsZS1wYXktIjsKKworICAgIHJldHVybiBoYXNQcmVmaXgocHJvcGVydHlLZXl3b3Jk
LCBsZW5ndGgsIGFwcGxlUHJlZml4KQorICAgICAgICAmJiAhaGFzUHJlZml4KHByb3BlcnR5S2V5
d29yZCwgbGVuZ3RoLCBhcHBsZVBheVByZWZpeCk7Cit9CisjZW5kaWYKKwogdGVtcGxhdGUgPHR5
cGVuYW1lIENoYXJhY3RlclR5cGU+CiBzdGF0aWMgQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0eUlE
KGNvbnN0IENoYXJhY3RlclR5cGUqIHByb3BlcnR5TmFtZSwgdW5zaWduZWQgbGVuZ3RoKQogewpA
QCAtMTMzMTQsNyArMTMzMzUsNyBAQCBzdGF0aWMgQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0eUlE
KGNvbnN0IENoYXJhY3RlclR5cGUqIHByb3BlcnR5TmFtZSwgdW5zaWduZWQgbAogICAgICAgICAv
LyBJZiB0aGUgcHJlZml4IGlzIC1hcHBsZS0gb3IgLWtodG1sLSwgY2hhbmdlIGl0IHRvIC13ZWJr
aXQtLgogICAgICAgICAvLyBUaGlzIG1ha2VzIHRoZSBzdHJpbmcgb25lIGNoYXJhY3RlciBsb25n
ZXIuCiAgICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LmxlZ2FjeUNTU1ZlbmRvclByZWZpeGVzRW5hYmxlZCgpCi0gICAgICAgICAgICAmJiAoaGFzUHJl
Zml4KGJ1ZmZlciwgbGVuZ3RoLCAiLWFwcGxlLSIpIHx8IGhhc1ByZWZpeChidWZmZXIsIGxlbmd0
aCwgIi1raHRtbC0iKSkpIHsKKyAgICAgICAgICAgICYmIChpc0FwcGxlTGVnYWN5Q1NTUHJvcGVy
dHlLZXl3b3JkKGJ1ZmZlciwgbGVuZ3RoKSB8fCBoYXNQcmVmaXgoYnVmZmVyLCBsZW5ndGgsICIt
a2h0bWwtIikpKSB7CiAgICAgICAgICAgICBtZW1tb3ZlKGJ1ZmZlciArIDcsIGJ1ZmZlciArIDYs
IGxlbmd0aCArIDEgLSA2KTsKICAgICAgICAgICAgIG1lbWNweShidWZmZXIsICItd2Via2l0Iiwg
Nyk7CiAgICAgICAgICAgICArK2xlbmd0aDsKQEAgLTEzMzY1LDE0ICsxMzM4NiwxNiBAQCB2b2lk
IGNzc1Byb3BlcnR5TmFtZUlPU0FsaWFzaW5nKGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgY29u
c3QgY2hhciomIHByb3BlcnR5TgogfQogI2VuZGlmCiAKLXN0YXRpYyBib29sIGlzQXBwbGVMZWdh
Y3lDc3NWYWx1ZUtleXdvcmQoY29uc3QgY2hhciogdmFsdWVLZXl3b3JkLCB1bnNpZ25lZCBsZW5n
dGgpCitzdGF0aWMgYm9vbCBpc0FwcGxlTGVnYWN5Q1NTVmFsdWVLZXl3b3JkKGNvbnN0IGNoYXIq
IHZhbHVlS2V5d29yZCwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIHN0YXRpYyBjb25zdCBjaGFy
IGFwcGxlUHJlZml4W10gPSAiLWFwcGxlLSI7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIgYXBwbGVT
eXN0ZW1QcmVmaXhbXSA9ICItYXBwbGUtc3lzdGVtIjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBh
cHBsZVN5c3RlbVByZWZpeFtdID0gIi1hcHBsZS1zeXN0ZW0tIjsKKyAgICBzdGF0aWMgY29uc3Qg
Y2hhciBhcHBsZVBheVByZWZpeFtdID0gIi1hcHBsZS1wYXktIjsKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogYXBwbGVXaXJlbGVzc1BsYXliYWNrVGFyZ2V0QWN0aXZlID0gZ2V0VmFsdWVOYW1lKENT
U1ZhbHVlQXBwbGVXaXJlbGVzc1BsYXliYWNrVGFyZ2V0QWN0aXZlKTsKIAogICAgIHJldHVybiBo
YXNQcmVmaXgodmFsdWVLZXl3b3JkLCBsZW5ndGgsIGFwcGxlUHJlZml4KQogICAgICAgICAmJiAh
aGFzUHJlZml4KHZhbHVlS2V5d29yZCwgbGVuZ3RoLCBhcHBsZVN5c3RlbVByZWZpeCkKKyAgICAg
ICAgJiYgIWhhc1ByZWZpeCh2YWx1ZUtleXdvcmQsIGxlbmd0aCwgYXBwbGVQYXlQcmVmaXgpCiAg
ICAgICAgICYmICFXVEY6OmVxdWFsKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPih2YWx1
ZUtleXdvcmQpLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oYXBwbGVXaXJlbGVzc1Bs
YXliYWNrVGFyZ2V0QWN0aXZlKSwgbGVuZ3RoKTsKIH0KIApAQCAtMTMzOTQsNyArMTM0MTcsNyBA
QCBzdGF0aWMgQ1NTVmFsdWVJRCBjc3NWYWx1ZUtleXdvcmRJRChjb25zdCBDaGFyYWN0ZXJUeXBl
KiB2YWx1ZUtleXdvcmQsIHVuc2lnbmVkCiAgICAgICAgIC8vIFRoaXMgbWFrZXMgdGhlIHN0cmlu
ZyBvbmUgY2hhcmFjdGVyIGxvbmdlci4KICAgICAgICAgLy8gT24gaU9TIHdlIGRvbid0IHdhbnQg
dG8gY2hhbmdlIHZhbHVlcyBzdGFydGluZyB3aXRoIC1hcHBsZS1zeXN0ZW0gdG8gLXdlYmtpdC1z
eXN0ZW0uCiAgICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtYW5nbGluZyB3aXRob3V0IGJy
ZWFraW5nIHRoZSB3ZWIuCi0gICAgICAgIGlmIChpc0FwcGxlTGVnYWN5Q3NzVmFsdWVLZXl3b3Jk
KGJ1ZmZlciwgbGVuZ3RoKSB8fCBoYXNQcmVmaXgoYnVmZmVyLCBsZW5ndGgsICIta2h0bWwtIikp
IHsKKyAgICAgICAgaWYgKGlzQXBwbGVMZWdhY3lDU1NWYWx1ZUtleXdvcmQoYnVmZmVyLCBsZW5n
dGgpIHx8IGhhc1ByZWZpeChidWZmZXIsIGxlbmd0aCwgIi1raHRtbC0iKSkgewogICAgICAgICAg
ICAgbWVtbW92ZShidWZmZXIgKyA3LCBidWZmZXIgKyA2LCBsZW5ndGggKyAxIC0gNik7CiAgICAg
ICAgICAgICBtZW1jcHkoYnVmZmVyLCAiLXdlYmtpdCIsIDcpOwogICAgICAgICAgICAgKytsZW5n
dGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQ
YXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5j
cHAKaW5kZXggYzliNzliMDg3MjQ0ZThkZDk1Mzc4NzE4ODk1NDIzYjMxY2MzM2ZiOC4uMGE3NWNl
M2E3MWQxYzVkZTFjMmQzZjU0YWY0ZjU3Yjk5ZmJiOTQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtOTIyLDYgKzkyMiwxMCBA
QCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNLZXl3b3JkUHJvcGVydHlJRChDU1NQcm9wZXJ0
eUlEIHByb3BlcnR5SWQpCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0U2Nyb2xsU25hcFR5cGU6CiAjZW5kaWYKKyNpZiBFTkFCTEUoQVBQTEVf
UEFZKQorICAgIGNhc2UgQ1NTUHJvcGVydHlBcHBsZVBheUJ1dHRvblN0eWxlOgorICAgIGNhc2Ug
Q1NTUHJvcGVydHlBcHBsZVBheUJ1dHRvblR5cGU6CisjZW5kaWYKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUp1c3RpZnlDb250ZW50OgogICAgIGNhc2UgQ1NTUHJv
cGVydHlBbGlnbkNvbnRlbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
aGVtZVR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKaW5kZXgg
MDk5NDUzOTE3NDE1ZTkzYjBjNTc5NTI3NzVlNjhiMzQxOGZlYWQ1Ni4uNTBlNmVkY2JmM2IwOWJk
ZWExMTAxODVjNWJkMmJhYTY2NTQ0ZWIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVGhlbWVUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlw
ZXMuaApAQCAtMjMsOCArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBU
aGVtZVR5cGVzX2gKLSNkZWZpbmUgVGhlbWVUeXBlc19oCisjcHJhZ21hIG9uY2UKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC00OSw2ICs0OCw5IEBAIGVudW0gQ29udHJvbFBhcnQgewogI2lm
IEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIEltYWdlQ29udHJvbHNCdXR0b25QYXJ0LAog
I2VuZGlmCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBBcHBsZVBheUJ1dHRvblBhcnQsCisj
ZW5kaWYKICAgICBUZXh0QXJlYVBhcnQsCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkK
ICAgICBBdHRhY2htZW50UGFydCwKQEAgLTczLDQgKzc1LDMgQEAgZW51bSBUaGVtZUNvbG9yIHsK
IH07CiAKIH0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Bp
L2NvY29hL1Bhc3NLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Q
YXNzS2l0U1BJLmgKaW5kZXggYTBjN2I5OTg0ZTdlZTcxOTk3NTk1OTA2Mjg1OTI1NDM5NWRmOTEw
OS4uMDUyMDk5MjYwMDFiYTViYTBiZTE2MzdiMDdjMzAyZjE2YTBkYjQ1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1Bhc3NLaXRTUEkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvUGFzc0tpdFNQSS5oCkBAIC0yMTQsMyArMjE0
LDYgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIE5TX0FTU1VNRV9OT05OVUxMX0VORAogCiAj
ZW5kaWYKKworZXh0ZXJuICJDIgordm9pZCBQS0RyYXdBcHBsZVBheUJ1dHRvbihfTm9ubnVsbCBD
R0NvbnRleHRSZWYsIENHUmVjdCBkcmF3UmVjdCwgQ0dGbG9hdCBzY2FsZSwgUEtQYXltZW50QnV0
dG9uVHlwZSwgUEtQYXltZW50QnV0dG9uU3R5bGUsIE5TU3RyaW5nICogX051bGxhYmxlIGxhbmd1
YWdlQ29kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCAy
NzU2ZjZiNDU3MDgzMzZmYWU2NDNhMDYxNzBmYWI1OGViMWIwODE5Li5jZGQwMWUzNGY3MmI3YWY3
OWQ4YjYzYmRiYWY5YTI2ZGEwZDYxNjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5jcHAKQEAgLTI1Myw2ICsyNTMsMTAgQEAgdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0
U3R5bGUoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgUmVuZGVyU3R5bGUmIHN0eWxlLAog
I2VuZGlmCiAgICAgY2FzZSBDYXBzTG9ja0luZGljYXRvclBhcnQ6CiAgICAgICAgIHJldHVybiBh
ZGp1c3RDYXBzTG9ja0luZGljYXRvclN0eWxlKHN0eWxlUmVzb2x2ZXIsIHN0eWxlLCBlbGVtZW50
KTsKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgIGNhc2UgQXBwbGVQYXlCdXR0b25QYXJ0Ogor
ICAgICAgICByZXR1cm4gYWRqdXN0QXBwbGVQYXlCdXR0b25TdHlsZShzdHlsZVJlc29sdmVyLCBz
dHlsZSwgZWxlbWVudCk7CisjZW5kaWYKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQog
ICAgIGNhc2UgQXR0YWNobWVudFBhcnQ6CiAgICAgICAgIHJldHVybiBhZGp1c3RBdHRhY2htZW50
U3R5bGUoc3R5bGVSZXNvbHZlciwgc3R5bGUsIGVsZW1lbnQpOwpAQCAtNDAxLDYgKzQwNSwxMCBA
QCBib29sIFJlbmRlclRoZW1lOjpwYWludChjb25zdCBSZW5kZXJCb3gmIGJveCwgQ29udHJvbFN0
YXRlcyYgY29udHJvbFN0YXRlcywgY29ucwogI2VuZGlmCiAgICAgY2FzZSBDYXBzTG9ja0luZGlj
YXRvclBhcnQ6CiAgICAgICAgIHJldHVybiBwYWludENhcHNMb2NrSW5kaWNhdG9yKGJveCwgcGFp
bnRJbmZvLCBpbnRlZ3JhbFNuYXBwZWRSZWN0KTsKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAg
IGNhc2UgQXBwbGVQYXlCdXR0b25QYXJ0OgorICAgICAgICByZXR1cm4gcGFpbnRBcHBsZVBheUJ1
dHRvbihib3gsIHBhaW50SW5mbywgaW50ZWdyYWxTbmFwcGVkUmVjdCk7CisjZW5kaWYKICNpZiBF
TkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIGNhc2UgQXR0YWNobWVudFBhcnQ6CiAgICAg
ICAgIHJldHVybiBwYWludEF0dGFjaG1lbnQoYm94LCBwYWludEluZm8sIGludGVncmFsU25hcHBl
ZFJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCAzNmE0Yzg5
YTZjZDFiMzA3MjU2ODg1NDIwMmI1ZGVkNDI4NDFkYmU1Li4zOWI5N2M4NmFkZTE3ZGMyYzJhNmY0
OWM0NDUxOGExMTNmZDcyZDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
aApAQCAtMzI1LDYgKzMyNSwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGFkanVz
dENhcHNMb2NrSW5kaWNhdG9yU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxlJiwgY29u
c3QgRWxlbWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwYWludENhcHNMb2NrSW5kaWNh
dG9yKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3Qm
KTsKIAorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgdmlydHVhbCB2b2lkIGFkanVzdEFwcGxl
UGF5QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVu
dCopIGNvbnN0IHsgfQorICAgIHZpcnR1YWwgYm9vbCBwYWludEFwcGxlUGF5QnV0dG9uKGNvbnN0
IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVy
biB0cnVlOyB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAg
dmlydHVhbCB2b2lkIGFkanVzdEF0dGFjaG1lbnRTdHlsZShTdHlsZVJlc29sdmVyJiwgUmVuZGVy
U3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHBhaW50QXR0
YWNobWVudChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRS
ZWN0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
b2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iNGM1ODdmMWFhYmZjNmE1ZWZjOTJlMzRkZDhmNDQ2YjYyYThkMDVlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaApA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJS
ZW5kZXJUaGVtZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlclRoZW1l
Q29jb2EgOiBwdWJsaWMgUmVuZGVyVGhlbWUgeworcHJpdmF0ZToKKyNpZiBFTkFCTEUoQVBQTEVf
UEFZKQorICAgIHZvaWQgYWRqdXN0QXBwbGVQYXlCdXR0b25TdHlsZShTdHlsZVJlc29sdmVyJiwg
UmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBw
YWludEFwcGxlUGF5QnV0dG9uKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKKyNlbmRpZgorfTsKKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzIyMzhhZjFk
MjkwMjQ5MDZiNDVkMDkxYzllMjU0NmM5OGRhZjNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0KQEAgLTAsMCArMSwxMDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWVD
b2NvYS5oIgorCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKworI2luY2x1ZGUgIlBhc3NLaXRTUEku
aCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgor
I2luY2x1ZGUgIlNvZnRMaW5raW5nLmgiCisjaW5jbHVkZSAiVHJhbnNsYXRlVHJhbnNmb3JtT3Bl
cmF0aW9uLmgiCisKKyNpZiBQTEFURk9STShNQUMpCitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdP
UksoUGFzc0tpdCk7CisjZWxzZQorU09GVF9MSU5LX0ZSQU1FV09SSyhQYXNzS2l0KTsKKyNlbmRp
ZgorCitTT0ZUX0xJTktfTUFZX0ZBSUwoUGFzc0tpdCwgUEtEcmF3QXBwbGVQYXlCdXR0b24sIHZv
aWQsIChDR0NvbnRleHRSZWYgY29udGV4dCwgQ0dSZWN0IGRyYXdSZWN0LCBDR0Zsb2F0IHNjYWxl
LCBQS1BheW1lbnRCdXR0b25UeXBlIHR5cGUsIFBLUGF5bWVudEJ1dHRvblN0eWxlIHN0eWxlLCBO
U1N0cmluZyAqbGFuZ3VhZ2VDb2RlKSwgKGNvbnRleHQsIGRyYXdSZWN0LCBzY2FsZSwgdHlwZSwg
c3R5bGUsIGxhbmd1YWdlQ29kZSkpOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBj
b25zdCBhdXRvIGFwcGxlUGF5QnV0dG9uTWluaW11bVdpZHRoID0gMTQwOworc3RhdGljIGNvbnN0
IGF1dG8gYXBwbGVQYXlCdXR0b25QbGFpbk1pbmltdW1XaWR0aCA9IDEwMDsKK3N0YXRpYyBjb25z
dCBhdXRvIGFwcGxlUGF5QnV0dG9uTWluaW11bUhlaWdodCA9IDMwOworCit2b2lkIFJlbmRlclRo
ZW1lQ29jb2E6OmFkanVzdEFwcGxlUGF5QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRl
clN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCopIGNvbnN0Cit7CisgICAgaWYgKHN0eWxlLmFw
cGxlUGF5QnV0dG9uVHlwZSgpID09IEFwcGxlUGF5QnV0dG9uVHlwZTo6UGxhaW4pCisgICAgICAg
IHN0eWxlLnNldE1pbldpZHRoKExlbmd0aChhcHBsZVBheUJ1dHRvblBsYWluTWluaW11bVdpZHRo
LCBGaXhlZCkpOworICAgIGVsc2UKKyAgICAgICAgc3R5bGUuc2V0TWluV2lkdGgoTGVuZ3RoKGFw
cGxlUGF5QnV0dG9uTWluaW11bVdpZHRoLCBGaXhlZCkpOworICAgIHN0eWxlLnNldE1pbkhlaWdo
dChMZW5ndGgoYXBwbGVQYXlCdXR0b25NaW5pbXVtSGVpZ2h0LCBGaXhlZCkpOworfQorCitzdGF0
aWMgUEtQYXltZW50QnV0dG9uU3R5bGUgdG9QS1BheW1lbnRCdXR0b25TdHlsZShBcHBsZVBheUJ1
dHRvblN0eWxlIHN0eWxlKQoreworICAgIHN3aXRjaCAoc3R5bGUpIHsKKyAgICBjYXNlIEFwcGxl
UGF5QnV0dG9uU3R5bGU6OldoaXRlOgorICAgICAgICByZXR1cm4gUEtQYXltZW50QnV0dG9uU3R5
bGVXaGl0ZTsKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlT3V0bGluZToKKyAg
ICAgICAgcmV0dXJuIFBLUGF5bWVudEJ1dHRvblN0eWxlV2hpdGVPdXRsaW5lOworICAgIGNhc2Ug
QXBwbGVQYXlCdXR0b25TdHlsZTo6QmxhY2s6CisgICAgICAgIHJldHVybiBQS1BheW1lbnRCdXR0
b25TdHlsZUJsYWNrOworICAgIH0KK30KKworc3RhdGljIFBLUGF5bWVudEJ1dHRvblR5cGUgdG9Q
S1BheW1lbnRCdXR0b25UeXBlKEFwcGxlUGF5QnV0dG9uVHlwZSB0eXBlKQoreworICAgIHN3aXRj
aCAodHlwZSkgeworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpQbGFpbjoKKyAgICAgICAg
cmV0dXJuIFBLUGF5bWVudEJ1dHRvblR5cGVQbGFpbjsKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9u
VHlwZTo6QnV5OgorICAgICAgICByZXR1cm4gUEtQYXltZW50QnV0dG9uVHlwZUJ1eTsKKyAgICBj
YXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6U2V0VXA6CisgICAgICAgIHJldHVybiBQS1BheW1lbnRC
dXR0b25UeXBlU2V0VXA7CisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkluU3RvcmU6Cisg
ICAgICAgIHJldHVybiBQS1BheW1lbnRCdXR0b25UeXBlSW5TdG9yZTsKKyAgICB9Cit9CisKK2Jv
b2wgUmVuZGVyVGhlbWVDb2NvYTo6cGFpbnRBcHBsZVBheUJ1dHRvbihjb25zdCBSZW5kZXJPYmpl
Y3QmIHJlbmRlcmVyLCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYg
cGFpbnRSZWN0KQoreworICAgIGlmICghY2FuTG9hZFBLRHJhd0FwcGxlUGF5QnV0dG9uKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3Rh
dGVTYXZlcihwYWludEluZm8uY29udGV4dCgpKTsKKworICAgIHBhaW50SW5mby5jb250ZXh0KCku
c2V0U2hvdWxkU21vb3RoRm9udHModHJ1ZSk7CisgICAgcGFpbnRJbmZvLmNvbnRleHQoKS5zY2Fs
ZShGbG9hdFNpemUoMSwgLTEpKTsKKworICAgIFBLRHJhd0FwcGxlUGF5QnV0dG9uKHBhaW50SW5m
by5jb250ZXh0KCkucGxhdGZvcm1Db250ZXh0KCksIENHUmVjdE1ha2UocGFpbnRSZWN0LngoKSwg
LXBhaW50UmVjdC5tYXhZKCksIHBhaW50UmVjdC53aWR0aCgpLCBwYWludFJlY3QuaGVpZ2h0KCkp
LCAxLjAsIHRvUEtQYXltZW50QnV0dG9uVHlwZShyZW5kZXJlci5zdHlsZSgpLmFwcGxlUGF5QnV0
dG9uVHlwZSgpKSwgdG9QS1BheW1lbnRCdXR0b25TdHlsZShyZW5kZXJlci5zdHlsZSgpLmFwcGxl
UGF5QnV0dG9uU3R5bGUoKSksIHJlbmRlcmVyLnN0eWxlKCkubG9jYWxlKCkpOworCisgICAgcmV0
dXJuIGZhbHNlOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVJT1MuaAppbmRleCBmZmIyZTNmMTVjNTY0M2M1NTU5MzA5Mjk4ODNlZjk2MGVjNTNi
ZDhkLi5mZGQ3YzBhN2QyMGRkNTY4YzQxNzhmODI1YjkzOWY0MDkzNTc2ZmVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaApAQCAtMjMsMTIgKzIzLDExIEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBSZW5kZXJU
aGVtZUlPU19oCi0jZGVmaW5lIFJlbmRlclRoZW1lSU9TX2gKKyNwcmFnbWEgb25jZQogCiAjaWYg
UExBVEZPUk0oSU9TKQogCi0jaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNsdWRlICJSZW5k
ZXJUaGVtZUNvY29hLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKQEAgLTM2LDcgKzM1
LDcgQEAgY2xhc3MgUmVuZGVyU3R5bGU7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBzdHJ1Y3Qg
QXR0YWNobWVudExheW91dDsKIAotY2xhc3MgUmVuZGVyVGhlbWVJT1MgZmluYWwgOiBwdWJsaWMg
UmVuZGVyVGhlbWUgeworY2xhc3MgUmVuZGVyVGhlbWVJT1MgZmluYWwgOiBwdWJsaWMgUmVuZGVy
VGhlbWVDb2NvYSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZW5kZXJUaGVtZT4gY3JlYXRl
KCk7CiAKQEAgLTEzNSw0ICsxMzQsMyBAQCBwcml2YXRlOgogfQogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TKQotI2VuZGlmIC8vIFJlbmRlclRoZW1lSU9TX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLmgKaW5kZXggNGUwMGE0OGIwNGFlNGNiMWZiNDNjMDRmOWIzN2I0
NjZlNDliZmY1Yy4uNjU4Zjg4MzE0NjM2MDcyOWI2Y2EzNzY2ZGMwYzlhOWE1NjliODZlNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTE5LDEyICsxOSwx
MiBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKgogICovCi0jaWYgIVBMQVRG
T1JNKElPUykKIAotI2lmbmRlZiBSZW5kZXJUaGVtZU1hY19oCi0jZGVmaW5lIFJlbmRlclRoZW1l
TWFjX2gKKyNwcmFnbWEgb25jZQogCi0jaW1wb3J0ICJSZW5kZXJUaGVtZS5oIgorI2lmIFBMQVRG
T1JNKE1BQykKKworI2ltcG9ydCAiUmVuZGVyVGhlbWVDb2NvYS5oIgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL0hhc2hNYXAuaD4KIApAQCAtNDAsNyArNDAsNyBAQCBj
bGFzcyBSZW5kZXJQcm9ncmVzczsKIGNsYXNzIFJlbmRlclN0eWxlOwogc3RydWN0IEF0dGFjaG1l
bnRMYXlvdXQ7CiAKLWNsYXNzIFJlbmRlclRoZW1lTWFjIGZpbmFsIDogcHVibGljIFJlbmRlclRo
ZW1lIHsKK2NsYXNzIFJlbmRlclRoZW1lTWFjIGZpbmFsIDogcHVibGljIFJlbmRlclRoZW1lQ29j
b2EgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVuZGVyVGhlbWU+IGNyZWF0ZSgpOwogCkBA
IC0yNTAsNiArMjUwLDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0j
ZW5kaWYgLy8gUmVuZGVyVGhlbWVNYWNfaAotCi0jZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKKyNl
bmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCmluZGV4IDNjMDVhN2NkMGFlNDJhY2Q0YWUxMTNiODg2ZGE4ZTJmYTQ2Njlh
ZWQuLjAyZjJiZjdlMzA4MGFhNTJhYjRjYjBlYWY4MTgyZThiNjFhMzYwZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0xMjE4LDcgKzEyMTgs
MTIgQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfVFJBSUxJTkdfV09SRCkKICAgICBUcmFpbGlu
Z1dvcmQgdHJhaWxpbmdXb3JkKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VHJhaWxpbmdX
b3JkPihyYXJlSW5oZXJpdGVkRGF0YS0+dHJhaWxpbmdXb3JkKTsgfQogI2VuZGlmCi0gICAgCisK
KyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgIEFwcGxlUGF5QnV0dG9uU3R5bGUgYXBwbGVQYXlC
dXR0b25TdHlsZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFwcGxlUGF5QnV0dG9uU3R5
bGU+KHJhcmVJbmhlcml0ZWREYXRhLT5hcHBsZVBheUJ1dHRvblN0eWxlKTsgfQorICAgIEFwcGxl
UGF5QnV0dG9uVHlwZSBhcHBsZVBheUJ1dHRvblR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxBcHBsZVBheUJ1dHRvblR5cGU+KHJhcmVJbmhlcml0ZWREYXRhLT5hcHBsZVBheUJ1dHRv
blR5cGUpOyB9CisjZW5kaWYKKwogICAgIHZvaWQgY2hlY2tWYXJpYWJsZXNJbkN1c3RvbVByb3Bl
cnRpZXMoKTsKIAogLy8gYXR0cmlidXRlIHNldHRlciBtZXRob2RzCkBAIC0xNzM1LDYgKzE3NDAs
MTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VHJhaWxpbmdXb3JkKFRyYWlsaW5nV29yZCB2KSB7
IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIHRyYWlsaW5nV29yZCwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHYpKTsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgIHZvaWQg
c2V0QXBwbGVQYXlCdXR0b25TdHlsZShBcHBsZVBheUJ1dHRvblN0eWxlIHYpIHsgU0VUX1ZBUihy
YXJlSW5oZXJpdGVkRGF0YSwgYXBwbGVQYXlCdXR0b25TdHlsZSwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHYpKTsgfQorICAgIHZvaWQgc2V0QXBwbGVQYXlCdXR0b25UeXBlKEFwcGxlUGF5QnV0dG9u
VHlwZSB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIGFwcGxlUGF5QnV0dG9uVHlwZSwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpKTsgfQorI2VuZGlmCisKICAgICBjb25zdCBTVkdSZW5k
ZXJTdHlsZSYgc3ZnU3R5bGUoKSBjb25zdCB7IHJldHVybiAqbV9zdmdTdHlsZTsgfQogICAgIFNW
R1JlbmRlclN0eWxlJiBhY2Nlc3NTVkdTdHlsZSgpIHsgcmV0dXJuICptX3N2Z1N0eWxlLmFjY2Vz
cygpOyB9CiAKQEAgLTIwODYsNiArMjA5NiwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFRyYWls
aW5nV29yZCBpbml0aWFsVHJhaWxpbmdXb3JkKCkgeyByZXR1cm4gVHJhaWxpbmdXb3JkOjpBdXRv
OyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgc3RhdGljIEFwcGxlUGF5
QnV0dG9uU3R5bGUgaW5pdGlhbEFwcGxlUGF5QnV0dG9uU3R5bGUoKSB7IHJldHVybiBBcHBsZVBh
eUJ1dHRvblN0eWxlOjpCbGFjazsgfQorICAgIHN0YXRpYyBBcHBsZVBheUJ1dHRvblR5cGUgaW5p
dGlhbEFwcGxlUGF5QnV0dG9uVHlwZSgpIHsgcmV0dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6UGxh
aW47IH0KKyNlbmRpZgorCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKICAgICAvLyBUaGUg
aW5pdGlhbCB2YWx1ZSBpcyAnbm9uZScgZm9yIGdyaWQgdHJhY2tzLgogICAgIHN0YXRpYyBWZWN0
b3I8R3JpZFRyYWNrU2l6ZT4gaW5pdGlhbEdyaWRDb2x1bW5zKCkgeyByZXR1cm4gVmVjdG9yPEdy
aWRUcmFja1NpemU+KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKaW5kZXggMzUxOGMyZjRlOWM5MjQ3YjJhMjFmYmRi
MDA3YmQ4Nzk1N2NmMDMwMC4uN2NhZjcxNTUxMDEzYWM2NTJhZDgwYTM3ZjhmZjUzYTkyOGMxNzAy
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmgKQEAgLTY5Niw2ICs2OTYsMjEgQEAgZW51bSBjbGFzcyBUcmFpbGluZ1dv
cmQgewogfTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKK2VudW0gY2xhc3MgQXBw
bGVQYXlCdXR0b25TdHlsZSB7CisgICAgV2hpdGUsCisgICAgV2hpdGVPdXRsaW5lLAorICAgIEJs
YWNrLAorfTsKKworZW51bSBjbGFzcyBBcHBsZVBheUJ1dHRvblR5cGUgeworICAgIFBsYWluLAor
ICAgIEJ1eSwKKyAgICBTZXRVcCwKKyAgICBJblN0b3JlLAorfTsKKyNlbmRpZgorCiBUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBFRmlsbFNpemVUeXBlKTsKIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIEVGaWxsQXR0YWNobWVudCk7CiBUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mLCBFRmlsbEJveCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXgg
MjA5OGI5MTc5YzU3MWViYjg0ZWRiMmYzYzc4NjExODI4YzY2ZTFlMS4uOGJhZjM1MjBlMTdmODg2
MGYwNjM3OGU5MjMzMzg1NzcyNzExODBhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAtMTI0LDYg
KzEyNCwxMCBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRh
KCkKICNpZiBFTkFCTEUoQ1NTX1RSQUlMSU5HX1dPUkQpCiAgICAgLCB0cmFpbGluZ1dvcmQoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsVHJhaWxpbmdXb3JkKCkpKQog
I2VuZGlmCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICAsIGFwcGxlUGF5QnV0dG9uU3R5bGUo
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsQXBwbGVQYXlCdXR0b25T
dHlsZSgpKSkKKyAgICAsIGFwcGxlUGF5QnV0dG9uVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UmVuZGVyU3R5bGU6OmluaXRpYWxBcHBsZVBheUJ1dHRvblR5cGUoKSkpCisjZW5kaWYKICAgICAs
IG1faGFuZ2luZ1B1bmN0dWF0aW9uKFJlbmRlclN0eWxlOjppbml0aWFsSGFuZ2luZ1B1bmN0dWF0
aW9uKCkpCiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0QmVmb3JlKC0xKQogICAgICwgaHlwaGVuYXRp
b25MaW1pdEFmdGVyKC0xKQpAQCAtMjA2LDYgKzIxMCwxMCBAQCBpbmxpbmUgU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVJbmhlcml0
ZWREYQogI2lmIEVOQUJMRShDU1NfVFJBSUxJTkdfV09SRCkKICAgICAsIHRyYWlsaW5nV29yZChv
LnRyYWlsaW5nV29yZCkKICNlbmRpZgorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgLCBhcHBs
ZVBheUJ1dHRvblN0eWxlKG8uYXBwbGVQYXlCdXR0b25TdHlsZSkKKyAgICAsIGFwcGxlUGF5QnV0
dG9uVHlwZShvLmFwcGxlUGF5QnV0dG9uVHlwZSkKKyNlbmRpZgogICAgICwgbV9oYW5naW5nUHVu
Y3R1YXRpb24oby5tX2hhbmdpbmdQdW5jdHVhdGlvbikKICAgICAsIGh5cGhlbmF0aW9uU3RyaW5n
KG8uaHlwaGVuYXRpb25TdHJpbmcpCiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0QmVmb3JlKG8uaHlw
aGVuYXRpb25MaW1pdEJlZm9yZSkKQEAgLTMxMiw2ICszMjAsMTAgQEAgYm9vbCBTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8p
IGNvbnN0CiAjaWYgRU5BQkxFKENTU19UUkFJTElOR19XT1JEKQogICAgICAgICAmJiB0cmFpbGlu
Z1dvcmQgPT0gby50cmFpbGluZ1dvcmQKICNlbmRpZgorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisg
ICAgICAgICYmIGFwcGxlUGF5QnV0dG9uU3R5bGUgPT0gby5hcHBsZVBheUJ1dHRvblN0eWxlCisg
ICAgICAgICYmIGFwcGxlUGF5QnV0dG9uVHlwZSA9PSBvLmFwcGxlUGF5QnV0dG9uVHlwZQorI2Vu
ZGlmCiAgICAgICAgICYmIG1faGFuZ2luZ1B1bmN0dWF0aW9uID09IG8ubV9oYW5naW5nUHVuY3R1
YXRpb24KICAgICAgICAgJiYgbV9jdXN0b21Qcm9wZXJ0aWVzID09IG8ubV9jdXN0b21Qcm9wZXJ0
aWVzCiAgICAgICAgICYmIGFyZVBvaW50aW5nVG9FcXVhbERhdGEobGlzdFN0eWxlSW1hZ2UsIG8u
bGlzdFN0eWxlSW1hZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggNWY3YzIzNjM2NTg4N2VkM2Q4ZGRl
ZDg5YjcyMzEyMGIyNGJkMTkxMy4uY2U5ZmEzODFlNmQzNmM5NjAyNjg3MGM0ZTM3NzczNGI3MDYw
MmY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC0xMzYsNiArMTM2LDExIEBAIHB1YmxpYzoKICAgICB1
bnNpZ25lZCB0cmFpbGluZ1dvcmQgOiAxOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZ
KQorICAgIHVuc2lnbmVkIGFwcGxlUGF5QnV0dG9uU3R5bGUgOiAyOworICAgIHVuc2lnbmVkIGFw
cGxlUGF5QnV0dG9uVHlwZSA6IDM7CisjZW5kaWYKKwogICAgIHVuc2lnbmVkIG1faGFuZ2luZ1B1
bmN0dWF0aW9uIDogNDsKIAogICAgIEF0b21pY1N0cmluZyBoeXBoZW5hdGlvblN0cmluZzsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288886</attachid>
            <date>2016-09-14 16:26:41 -0700</date>
            <delta_ts>2016-09-14 17:56:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161986-20160914162405.patch</filename>
            <type>text/plain</type>
            <size>36136</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1OTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI4Zjc0M2VhNDc0MjQ4
ZTdlOTY5ZjVjMDRlNjY4YmE3Y2YyY2I4ZS4uNWNmNjAyNTdlMTlmZGM5NTc0N2RjZmM2YzE0M2Mz
YjQyNTg4YzlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDE2LTA5LTE0ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIENTUyAtd2Vi
a2l0LWFwcGVhcmFuY2UgcHJvcGVydHkgZm9yIEFwcGxlIFBheSBidXR0b25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5ODYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgLXdlYmtpdC1h
cHBlYXJhbmNlIHByb3BlcnR5LCAiLWFwcGxlLXBheS1idXR0b24iLgorICAgICAgICBBbHNvLCBh
ZGQgdHdvIHByb3BlcnRpZXMsICItYXBwbGUtcGF5LWJ1dHRvbi10eXBlIiBhbmQgIi1hcHBsZS1w
YXktYnV0dG9uLXN0eWxlIi4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgQWRkIFJlbmRlclRoZW1lQ29jb2EuaCBhbmQgUmVuZGVyVGhlbWVD
b2NvYS5tbS4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1
ZSk6CisgICAgICAgIEhhbmRsZSBDU1NQcm9wZXJ0eUFwcGxlUGF5QnV0dG9uU3R5bGUgYW5kIENT
U1Byb3BlcnR5QXBwbGVQYXlCdXR0b25UeXBlLgorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgQXBwbGVQYXlCdXR0b25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6b3BlcmF0b3IgQXBwbGVQYXlCdXR0b25UeXBlKToKKyAgICAgICAgQWRkIEFw
cGxlUGF5QnV0dG9uU3R5bGUgYW5kIEFwcGxlUGF5QnV0dG9uVHlwZSBjb252ZXJzaW9uIHJvdXRp
bmVzLgorCisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgIEFkZCAt
YXBwbGUtcGF5LWJ1dHRvbi1zdHlsZSBhbmQgLWFwcGxlLXBheS1idXR0b24tdHlwZS4KKworICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICBBZGQgQ1NTIHZhbHVlcy4K
KworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZSk6CisgICAgICAgIEhhbmRsZSBDU1NQcm9w
ZXJ0eUFwcGxlUGF5QnV0dG9uU3R5bGUgYW5kIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0b25UeXBl
LgorCisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyRmFzdFBhdGhzOjppc0tleXdvcmRQcm9wZXJ0eUlEKToKKyAg
ICAgICAgSGFuZGxlIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0b25TdHlsZSBhbmQgQ1NTUHJvcGVy
dHlBcHBsZVBheUJ1dHRvblR5cGUuCisKKyAgICAgICAgKFdlYkNvcmU6OmlzQXBwbGVMZWdhY3lD
U1NQcm9wZXJ0eUtleXdvcmQpOgorICAgICAgICBOZXcgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHdo
ZXRoZXIgdGhlIENTUyBwcm9wZXJ0eSBzaG91bGQgYmUgcmV3cml0dGVuIHRvIC13ZWJraXQtLgor
ICAgICAgICBXZSB3YW50IHRvIHJld3JpdGUgLWFwcGxlLSBidXQgbm90IC1hcHBsZS1wYXktLgor
CisgICAgICAgIChXZWJDb3JlOjpjc3NQcm9wZXJ0eUlEKToKKyAgICAgICAgVXNlIHRoZSBuZXds
eSBhZGRlZCBpc0FwcGxlTGVnYWN5Q1NTUHJvcGVydHlLZXl3b3JkLgorCisgICAgICAgIChXZWJD
b3JlOjppc0FwcGxlTGVnYWN5Q1NTVmFsdWVLZXl3b3JkKToKKyAgICAgICAgQ2hlY2sgZm9yICIt
YXBwbGUtcGF5LSIgaW4gYWRkaXRpb24gdG8gIi1hcHBsZS1zeXN0ZW0tIi4KKworICAgICAgICAq
IHBsYXRmb3JtL1RoZW1lVHlwZXMuaDoKKyAgICAgICAgQWRkIEFwcGxlUGF5QnV0dG9uUGFydC4K
KworICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9QYXNzS2l0U1BJLmg6CisgICAgICAgIEFk
ZCBQS0RyYXdBcHBsZVBheUJ1dHRvbiBkZWNsYXJhdGlvbi4KKworICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0
U3R5bGUpOgorICAgICAgICBIYW5kbGUgQXBwbGVQYXlCdXR0b25QYXJ0LgorCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnQpOgorICAgICAgICBIYW5kbGUgQXBwbGVQYXlCdXR0
b25QYXJ0LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6YWRqdXN0QXBwbGVQYXlCdXR0b25TdHlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGFpbnRBcHBsZVBheUJ1dHRvbik6CisgICAgICAgIEFk
ZCBuZXcgZnVuY3Rpb25zLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2Eu
aDogQWRkZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW06IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDb2NvYTo6YWRqdXN0QXBwbGVQYXlCdXR0
b25TdHlsZSk6CisgICAgICAgIEFkanVzdCB0aGUgbWluaW11bSB3aWR0aCBhbmQgbWluaW11bSBo
ZWlnaHQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKFdlYkNvcmU6OnRvUEtQYXltZW50QnV0dG9u
U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6dG9QS1BheW1lbnRCdXR0b25UeXBlKToKKyAgICAg
ICAgSGVscGVyIGZ1bmN0aW9ucyB0aGF0IGNvbnZlciBvdXIgV2ViQ29yZSB0eXBlcyB0byBQSyB0
eXBlcy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDb2NvYTo6cGFpbnRBcHBsZVBh
eUJ1dHRvbik6CisgICAgICAgIENhbGwgUEtEcmF3QXBwbGVQYXlCdXR0b24uCisKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMuaDoKKyAgICAgICAgSW5oZXJpdCBmcm9tIFJlbmRlclRoZW1lQ29jb2EuCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjphcHBsZVBheUJ1dHRvblN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclN0eWxlOjphcHBsZVBheUJ1dHRvblR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U3R5bGU6OnNldEFwcGxlUGF5QnV0dG9uU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U3R5bGU6OnNldEFwcGxlUGF5QnV0dG9uVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
dHlsZTo6aW5pdGlhbEFwcGxlUGF5QnV0dG9uU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6OmluaXRpYWxBcHBsZVBheUJ1dHRvblR5cGUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFy
ZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgQWRkIG5ldyBzdHls
ZSBtZW1iZXJzIGZvciB0aGUgYnV0dG9uIHN0eWxlIGFuZCBidXR0b24gdHlwZSBwcm9wZXJ0aWVz
LgorCiAyMDE2LTA5LTE0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFtNZWRpYVN0cmVhbV0gTWlub3IgY2xlYW51cApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI4Y2E2NzM5ZjFkYjYx
ZDEwNWZkMGE5ODFkZTBmY2UxZjMwMmNkMjYuLjI4NjNjYzY5NTI2NjM5MjJmOWUyMmU5MDg4NjU1
ZTNmNThjNzk4YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTY5Myw2ICs2OTMsOCBAQAogCQkxQTIyNDY0RTBDQzk4RERCMDBD
MDUyNDAgLyogU1FMaXRlVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjI0NjQ4MENDOThEREIwMEMwNTI0MCAvKiBTUUxpdGVUcmFu
c2FjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTFBMjQ4NDREMUQxQTI3MkEwMEY1NkJBNyAvKiBQYXltZW50SGVhZGVycy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyNDg0NEMxRDFBMjcwMTAw
RjU2QkE3IC8qIFBheW1lbnRIZWFkZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUEyNTBFMEQxQ0RENjMyMDAwRDBCRTYzIC8qIExpbmtJY29u
VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEy
NTBFMEMxQ0RENjMyMDAwRDBCRTYzIC8qIExpbmtJY29uVHlwZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFBMjk5RkU3MUQ3RjVGQTYwMEE2MDA5
MyAvKiBSZW5kZXJUaGVtZUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUEyOTlGRTUxRDdGNUZBNjAwQTYwMDkzIC8qIFJlbmRlclRoZW1lQ29j
b2EubW0gKi87IH07CisJCTFBMjk5RkU4MUQ3RjVGQTYwMEE2MDA5MyAvKiBSZW5kZXJUaGVtZUNv
Y29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTI5
OUZFNjFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVDb2NvYS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMkE2ODIzMEI1QkVERTcwMDAy
QTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUEyQTY4MjEwQjVCRURFNzAwMDJBNDgwIC8qIFByb2dyZXNzVHJh
Y2tlci5jcHAgKi87IH07CiAJCTFBMkE2ODI0MEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1Ry
YWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFB
MkE2ODIyMEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTJBQUM1ODBEQzJBM0IxMDBB
MjBEOUEgLyogQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyQUFDNTYwREMyQTNCMTAwQTIwRDlBIC8qIEFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCAqLzsgfTsKQEAgLTc1MzAsNiArNzUzMiw4IEBACiAJ
CTFBMjI0NjQ4MENDOThEREIwMEMwNTI0MCAvKiBTUUxpdGVUcmFuc2FjdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTUUxpdGVUcmFuc2FjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQTI0ODQ0QzFEMUEyNzAxMDBGNTZCQTcgLyogUGF5bWVudEhl
YWRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudEhlYWRlcnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEyNTBFMEMxQ0RENjMyMDAwRDBCRTYz
IC8qIExpbmtJY29uVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaW5r
SWNvblR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEyOTlGRTUxRDdGNUZB
NjAwQTYwMDkzIC8qIFJlbmRlclRoZW1lQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBSZW5kZXJUaGVtZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxQTI5OUZFNjFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVDb2NvYS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUaGVtZUNvY29hLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMkE2ODIxMEI1QkVERTcwMDAyQTQ4MCAvKiBQ
cm9ncmVzc1RyYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFByb2dyZXNzVHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMkE2
ODIyMEI1QkVERTcwMDAyQTQ4MCAvKiBQcm9ncmVzc1RyYWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFByb2dyZXNzVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQTJBQUM1NjBEQzJBM0IxMDBBMjBEOUEgLyogQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI4Mzcs
NiArMjI4NDEsOCBAQAogCQkJCUU0QzkxQTE1MTgwOTk5RjEwMEExN0Y2RCAvKiBSZW5kZXJUZXh0
TGluZUJveGVzLmggKi8sCiAJCQkJQkNFQTQ4NEEwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlclRo
ZW1lLmNwcCAqLywKIAkJCQlCQ0VBNDg0QjA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyVGhlbWUu
aCAqLywKKwkJCQkxQTI5OUZFNjFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVDb2NvYS5o
ICovLAorCQkJCTFBMjk5RkU1MUQ3RjVGQTYwMEE2MDA5MyAvKiBSZW5kZXJUaGVtZUNvY29hLm1t
ICovLAogCQkJCUZFRDEzRDUwMENFQTk0OTcwMEQ4OTQ2NiAvKiBSZW5kZXJUaGVtZUlPUy5oICov
LAogCQkJCUM1NUM3QkEwMTcxOEFGQkEwMDEzMjdFNCAvKiBSZW5kZXJUaGVtZUlPUy5tbSAqLywK
IAkJCQlCQ0VBNDg0ODA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyVGhlbWVNYWMuaCAqLywKQEAg
LTI1MDg0LDYgKzI1MDkwLDcgQEAKIAkJCQlCQzkyNkY4MTBDMDU1MjQ3MDA4Mjc3NkIgLyogSlNI
VE1MRnJhbWVTZXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFN0IxNTBBMTlENjA2
MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTJB
QTJGMEExQ0RBQjQwMEI0MkIyNSAvKiBKU0hUTUxIZWFkaW5nRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMUEyOTlGRTgxRDdGNUZBNjAwQTYwMDkzIC8qIFJlbmRlclRoZW1lQ29jb2EuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBRTJBQTMxMEExQ0RBQjQwMEI0MkIyNSAvKiBKU0hUTUxIUkVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBODVCMTkwMEExQjE4QTIwMEQ4Qzg3QyAvKiBK
U0hUTUxIdG1sRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0OTE4QzkwQkZFQTA1MDAw
OUQ2MzE2IC8qIEpTSFRNTElGcmFtZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc2Mjcs
NiArMjc2MzQsNyBAQAogCQkJCUY0NUMyMzFEMTk5NUI3M0IwMEE2RTJFMyAvKiBBeGlzU2Nyb2xs
U25hcE9mZnNldHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdGNTdBQ0YxQTUwNzJERDAwODc2
Rjk4IC8qIEFYT2JqZWN0Q2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUFBNzI4RjkxNkQx
RDhCQzAwRDNCQkM2IC8qIEFYT2JqZWN0Q2FjaGVJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQkx
QTI5OUZFNzFEN0Y1RkE2MDBBNjAwOTMgLyogUmVuZGVyVGhlbWVDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTI5QTgxMjRCMEZCQjlDQTkwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBOEM4MUYxMUUzRDM2OTAwODEyRkI3IC8qIEJhY2tGb3J3
YXJkQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0E4Q0E1RjExRTRFNkQxMDA4
MTJGQjcgLyogQmFja0ZvcndhcmRMaXN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBiYTA4
MTg2NTUwOGQyODZkNGU5NWZhOWQxOWY1ZmVlZGZiZWVlNTIwLi44M2IxMzJkMTY2YmQ2YzlmMzYx
YzM3ZmQyMWFjMTllMTBkODk5N2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMzc1Myw2ICszNzUzLDEzIEBAIFJlZlB0
cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SUQsCiAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0
ZVZhbHVlKHN0eWxlLT50cmFpbGluZ1dvcmQoKSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBM
RV9QQVkpCisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlBcHBsZVBheUJ1dHRvblN0eWxlOgorICAg
ICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS0+YXBwbGVQYXlC
dXR0b25TdHlsZSgpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUFwcGxlUGF5QnV0dG9uVHlw
ZToKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUtPmFw
cGxlUGF5QnV0dG9uVHlwZSgpKTsKKyNlbmRpZgorCiAgICAgICAgIC8qIEluZGl2aWR1YWwgcHJv
cGVydGllcyBub3QgcGFydCBvZiB0aGUgc3BlYyAqLwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5
QmFja2dyb3VuZFJlcGVhdFg6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUmVw
ZWF0WToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1h
cHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
CmluZGV4IDRlZmMwN2ZkOTdhNWU3YzBjZDQzNTdmODk3MzJkNDFlM2E0MWZjODkuLjhmOGVhNDEx
MjEyMDZhNTMyODgzMWJkNjg1ZDFkZjJlMmVjZTk4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAtNjE2LDYgKzYxNiwxMSBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJv
bFBhcnQgZSkKICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVJbWFnZUNvbnRyb2xz
QnV0dG9uOwogICAgICAgICBicmVhazsKICNlbmRpZgorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisg
ICAgY2FzZSBBcHBsZVBheUJ1dHRvblBhcnQ6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENT
U1ZhbHVlQXBwbGVQYXlCdXR0b247CisgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgfQogfQog
CkBAIC01NDczLDYgKzU0NzgsODcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFs
dWU6Om9wZXJhdG9yIFRyYWlsaW5nV29yZCgpIGNvbnN0CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShBUFBMRV9QQVkpCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoQXBwbGVQYXlCdXR0b25TdHlsZSBlKQorICAgIDogQ1NTVmFsdWUoUHJpbWl0
aXZlQ2xhc3MpCit7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19WQUxVRV9JRDsKKyAg
ICBzd2l0Y2ggKGUpIHsKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlOgorICAg
ICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZVdoaXRlOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlT3V0bGluZToKKyAgICAgICAgbV92YWx1
ZS52YWx1ZUlEID0gQ1NTVmFsdWVXaGl0ZU91dGxpbmU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQXBwbGVQYXlCdXR0b25TdHlsZTo6QmxhY2s6CisgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9
IENTU1ZhbHVlQmxhY2s7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBBcHBsZVBheUJ1dHRvblN0eWxl
KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNWYWx1ZUlEKCkpOworICAgIHN3aXRjaCAobV92YWx1
ZS52YWx1ZUlEKSB7CisgICAgY2FzZSBDU1NWYWx1ZVdoaXRlOgorICAgICAgICByZXR1cm4gQXBw
bGVQYXlCdXR0b25TdHlsZTo6V2hpdGU7CisgICAgY2FzZSBDU1NWYWx1ZVdoaXRlT3V0bGluZToK
KyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uU3R5bGU6OldoaXRlT3V0bGluZTsKKyAgICBj
YXNlIENTU1ZhbHVlQmxhY2s6CisgICAgICAgIHJldHVybiBBcHBsZVBheUJ1dHRvblN0eWxlOjpC
bGFjazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uU3R5bGU6OkJsYWNrOworfQor
Cit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
QXBwbGVQYXlCdXR0b25UeXBlIGUpCisgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKK3sK
KyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX1ZBTFVFX0lEOworICAgIHN3aXRjaCAoZSkg
eworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpQbGFpbjoKKyAgICAgICAgbV92YWx1ZS52
YWx1ZUlEID0gQ1NTVmFsdWVQbGFpbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcHBsZVBh
eUJ1dHRvblR5cGU6OkJ1eToKKyAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVCdXk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpTZXRVcDoKKyAg
ICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVTZXRVcDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OkluU3RvcmU6CisgICAgICAgIG1fdmFsdWUudmFs
dWVJRCA9IENTU1ZhbHVlSW5TdG9yZTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwor
dGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEFwcGxlUGF5QnV0
dG9uVHlwZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzVmFsdWVJRCgpKTsKKyAgICBzd2l0Y2gg
KG1fdmFsdWUudmFsdWVJRCkgeworICAgIGNhc2UgQ1NTVmFsdWVQbGFpbjoKKyAgICAgICAgcmV0
dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6UGxhaW47CisgICAgY2FzZSBDU1NWYWx1ZUJ1eToKKyAg
ICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6QnV5OworICAgIGNhc2UgQ1NTVmFsdWVT
ZXRVcDoKKyAgICAgICAgcmV0dXJuIEFwcGxlUGF5QnV0dG9uVHlwZTo6U2V0VXA7CisgICAgY2Fz
ZSBDU1NWYWx1ZUluU3RvcmU6CisgICAgICAgIHJldHVybiBBcHBsZVBheUJ1dHRvblR5cGU6Oklu
U3RvcmU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBBcHBsZVBheUJ1dHRvblR5cGU6OlBsYWluOworfQor
I2VuZGlmCisKIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRp
dmVWYWx1ZShGb250VmFyaWFudFBvc2l0aW9uIHBvc2l0aW9uKQogICAgIDogQ1NTVmFsdWUoUHJp
bWl0aXZlQ2xhc3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVy
dHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4
IDliOWVlM2U2MjY2ZjE0ODY1YWM5MDdkMzIxZWI5YzdhZDE0YTY3OGQuLjg4NjEzMzljZjNjOWFl
YzI2YzMwMzY4Yjg1ODRiNTJmNmMxOTdlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
eU5hbWVzLmluCkBAIC02ODEsMyArNjgxLDggQEAgdG91Y2gtYWN0aW9uCiAjaWYgZGVmaW5lZChF
TkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICYmIEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRAogLWFw
cGxlLXRyYWlsaW5nLXdvcmQgW0luaGVyaXRlZCwgTmFtZUZvck1ldGhvZHM9VHJhaWxpbmdXb3Jk
XQogI2VuZGlmCisKKyNpZiBkZWZpbmVkKEVOQUJMRV9BUFBMRV9QQVkpICYmIEVOQUJMRV9BUFBM
RV9QQVkKKy1hcHBsZS1wYXktYnV0dG9uLXN0eWxlIFtOYW1lRm9yTWV0aG9kcz1BcHBsZVBheUJ1
dHRvblN0eWxlXQorLWFwcGxlLXBheS1idXR0b24tdHlwZSBbTmFtZUZvck1ldGhvZHM9QXBwbGVQ
YXlCdXR0b25UeXBlXQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
CmluZGV4IDExZTg1MWI4MGM3MDIyMDkyNDhmYWViNjA4ODhjZjU2MjVmZjA2ZDcuLmY4ZmY2ZWEx
YWEzYWU3NWJkZTg0YTBhMzJlZWE2MTQ2MzliZjVhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUtleXdvcmRzLmluCkBAIC04MDYsNiArODA2LDkgQEAgcmF0aW5nLWxldmVsLWluZGljYXRv
cgogI2lmIGRlZmluZWQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICYmIEVOQUJMRV9TRVJWSUNF
X0NPTlRST0xTCiBpbWFnZS1jb250cm9scy1idXR0b24KICNlbmRpZgorI2lmIGRlZmluZWQoRU5B
QkxFX0FQUExFX1BBWSkgJiYgRU5BQkxFX0FQUExFX1BBWQorLWFwcGxlLXBheS1idXR0b24KKyNl
bmRpZgogdGV4dGFyZWEKICNpZiBkZWZpbmVkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICYm
IEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQKIGF0dGFjaG1lbnQKQEAgLTExODUsNiArMTE4OCwx
NyBAQCBmcm9tLWludHJpbnNpYwogLXdlYmtpdC1wYXJ0aWFsbHktYmFsYW5jZWQKICNlbmRpZgog
CisjaWYgZGVmaW5lZChFTkFCTEVfQVBQTEVfUEFZKSAmJiBFTkFCTEVfQVBQTEVfUEFZCisvLyAt
YXBwbGUtcGF5LWJ1dHRvbi1zdHlsZQord2hpdGUtb3V0bGluZQorCisvLyAtYXBwbGUtcGF5LWJ1
dHRvbi10eXBlCitwbGFpbgorYnV5CitzZXQtdXAKK2luLXN0b3JlCisjZW5kaWYKKwogLy8gZm9u
dC1zeW50aGVzaXMKIHdlaWdodAogc3R5bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyLmNwcAppbmRleCA2ZjkxNTc2ZTIzMTZkYWEyNzE3MmU2MjdhZmQzMjUwZDJlYmJiODBhLi5h
YWJmYWVmNjE3YTFiOGZmZDIzM2Y2NTRlNWUyZDA0NTA3YjA3NGEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQYXJzZXIuY3BwCkBAIC0xMDUwLDYgKzEwNTAsMTYgQEAgc3RhdGljIGlu
bGluZSBib29sIGlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5SWQsIGludAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGJyZWFrOwog
I2VuZGlmCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBjYXNlIENTU1Byb3BlcnR5QXBwbGVQ
YXlCdXR0b25TdHlsZTogLy8gd2hpdGUgfCB3aGl0ZS1vdXRsaW5lIHwgYmxhY2sKKyAgICAgICAg
aWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVXaGl0ZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2hpdGVP
dXRsaW5lIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVCbGFjaykKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5QXBwbGVQYXlCdXR0b25U
eXBlOiAvLyBwbGFpbiB8IGJ1eSB8IHNldC11cCB8IGluLXN0b3JlCisgICAgICAgIGlmICh2YWx1
ZUlEID09IENTU1ZhbHVlUGxhaW4gfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUJ1eSB8fCB2YWx1ZUlE
ID09IENTU1ZhbHVlU2V0VXAgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUluU3RvcmUpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICBjYXNlIENTU1By
b3BlcnR5Rm9udFZhcmlhbnRQb3NpdGlvbjogLy8gbm9ybWFsIHwgc3ViIHwgc3VwZXIKICAgICAg
ICAgaWYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVN1
YiB8fCB2YWx1ZUlEID09IENTU1ZhbHVlU3VwZXIpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTEzMjk1LDYgKzEzMzA1LDE3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZpZXdwb3J0U2hv
cnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcElkLCBDU1NQcm9wZXJ0eUlEIGZpcnN0CiB9CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShMRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykKK3N0YXRpYyBib29s
IGlzQXBwbGVMZWdhY3lDU1NQcm9wZXJ0eUtleXdvcmQoY29uc3QgY2hhciogcHJvcGVydHlLZXl3
b3JkLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgYXBwbGVQcmVm
aXhbXSA9ICItYXBwbGUtIjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBhcHBsZVBheVByZWZpeFtd
ID0gIi1hcHBsZS1wYXktIjsKKworICAgIHJldHVybiBoYXNQcmVmaXgocHJvcGVydHlLZXl3b3Jk
LCBsZW5ndGgsIGFwcGxlUHJlZml4KQorICAgICAgICAmJiAhaGFzUHJlZml4KHByb3BlcnR5S2V5
d29yZCwgbGVuZ3RoLCBhcHBsZVBheVByZWZpeCk7Cit9CisjZW5kaWYKKwogdGVtcGxhdGUgPHR5
cGVuYW1lIENoYXJhY3RlclR5cGU+CiBzdGF0aWMgQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0eUlE
KGNvbnN0IENoYXJhY3RlclR5cGUqIHByb3BlcnR5TmFtZSwgdW5zaWduZWQgbGVuZ3RoKQogewpA
QCAtMTMzMTQsNyArMTMzMzUsNyBAQCBzdGF0aWMgQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0eUlE
KGNvbnN0IENoYXJhY3RlclR5cGUqIHByb3BlcnR5TmFtZSwgdW5zaWduZWQgbAogICAgICAgICAv
LyBJZiB0aGUgcHJlZml4IGlzIC1hcHBsZS0gb3IgLWtodG1sLSwgY2hhbmdlIGl0IHRvIC13ZWJr
aXQtLgogICAgICAgICAvLyBUaGlzIG1ha2VzIHRoZSBzdHJpbmcgb25lIGNoYXJhY3RlciBsb25n
ZXIuCiAgICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LmxlZ2FjeUNTU1ZlbmRvclByZWZpeGVzRW5hYmxlZCgpCi0gICAgICAgICAgICAmJiAoaGFzUHJl
Zml4KGJ1ZmZlciwgbGVuZ3RoLCAiLWFwcGxlLSIpIHx8IGhhc1ByZWZpeChidWZmZXIsIGxlbmd0
aCwgIi1raHRtbC0iKSkpIHsKKyAgICAgICAgICAgICYmIChpc0FwcGxlTGVnYWN5Q1NTUHJvcGVy
dHlLZXl3b3JkKGJ1ZmZlciwgbGVuZ3RoKSB8fCBoYXNQcmVmaXgoYnVmZmVyLCBsZW5ndGgsICIt
a2h0bWwtIikpKSB7CiAgICAgICAgICAgICBtZW1tb3ZlKGJ1ZmZlciArIDcsIGJ1ZmZlciArIDYs
IGxlbmd0aCArIDEgLSA2KTsKICAgICAgICAgICAgIG1lbWNweShidWZmZXIsICItd2Via2l0Iiwg
Nyk7CiAgICAgICAgICAgICArK2xlbmd0aDsKQEAgLTEzMzY1LDE0ICsxMzM4NiwxNiBAQCB2b2lk
IGNzc1Byb3BlcnR5TmFtZUlPU0FsaWFzaW5nKGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgY29u
c3QgY2hhciomIHByb3BlcnR5TgogfQogI2VuZGlmCiAKLXN0YXRpYyBib29sIGlzQXBwbGVMZWdh
Y3lDc3NWYWx1ZUtleXdvcmQoY29uc3QgY2hhciogdmFsdWVLZXl3b3JkLCB1bnNpZ25lZCBsZW5n
dGgpCitzdGF0aWMgYm9vbCBpc0FwcGxlTGVnYWN5Q1NTVmFsdWVLZXl3b3JkKGNvbnN0IGNoYXIq
IHZhbHVlS2V5d29yZCwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIHN0YXRpYyBjb25zdCBjaGFy
IGFwcGxlUHJlZml4W10gPSAiLWFwcGxlLSI7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIgYXBwbGVT
eXN0ZW1QcmVmaXhbXSA9ICItYXBwbGUtc3lzdGVtIjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBh
cHBsZVN5c3RlbVByZWZpeFtdID0gIi1hcHBsZS1zeXN0ZW0tIjsKKyAgICBzdGF0aWMgY29uc3Qg
Y2hhciBhcHBsZVBheVByZWZpeFtdID0gIi1hcHBsZS1wYXktIjsKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogYXBwbGVXaXJlbGVzc1BsYXliYWNrVGFyZ2V0QWN0aXZlID0gZ2V0VmFsdWVOYW1lKENT
U1ZhbHVlQXBwbGVXaXJlbGVzc1BsYXliYWNrVGFyZ2V0QWN0aXZlKTsKIAogICAgIHJldHVybiBo
YXNQcmVmaXgodmFsdWVLZXl3b3JkLCBsZW5ndGgsIGFwcGxlUHJlZml4KQogICAgICAgICAmJiAh
aGFzUHJlZml4KHZhbHVlS2V5d29yZCwgbGVuZ3RoLCBhcHBsZVN5c3RlbVByZWZpeCkKKyAgICAg
ICAgJiYgIWhhc1ByZWZpeCh2YWx1ZUtleXdvcmQsIGxlbmd0aCwgYXBwbGVQYXlQcmVmaXgpCiAg
ICAgICAgICYmICFXVEY6OmVxdWFsKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPih2YWx1
ZUtleXdvcmQpLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oYXBwbGVXaXJlbGVzc1Bs
YXliYWNrVGFyZ2V0QWN0aXZlKSwgbGVuZ3RoKTsKIH0KIApAQCAtMTMzOTQsNyArMTM0MTcsNyBA
QCBzdGF0aWMgQ1NTVmFsdWVJRCBjc3NWYWx1ZUtleXdvcmRJRChjb25zdCBDaGFyYWN0ZXJUeXBl
KiB2YWx1ZUtleXdvcmQsIHVuc2lnbmVkCiAgICAgICAgIC8vIFRoaXMgbWFrZXMgdGhlIHN0cmlu
ZyBvbmUgY2hhcmFjdGVyIGxvbmdlci4KICAgICAgICAgLy8gT24gaU9TIHdlIGRvbid0IHdhbnQg
dG8gY2hhbmdlIHZhbHVlcyBzdGFydGluZyB3aXRoIC1hcHBsZS1zeXN0ZW0gdG8gLXdlYmtpdC1z
eXN0ZW0uCiAgICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtYW5nbGluZyB3aXRob3V0IGJy
ZWFraW5nIHRoZSB3ZWIuCi0gICAgICAgIGlmIChpc0FwcGxlTGVnYWN5Q3NzVmFsdWVLZXl3b3Jk
KGJ1ZmZlciwgbGVuZ3RoKSB8fCBoYXNQcmVmaXgoYnVmZmVyLCBsZW5ndGgsICIta2h0bWwtIikp
IHsKKyAgICAgICAgaWYgKGlzQXBwbGVMZWdhY3lDU1NWYWx1ZUtleXdvcmQoYnVmZmVyLCBsZW5n
dGgpIHx8IGhhc1ByZWZpeChidWZmZXIsIGxlbmd0aCwgIi1raHRtbC0iKSkgewogICAgICAgICAg
ICAgbWVtbW92ZShidWZmZXIgKyA3LCBidWZmZXIgKyA2LCBsZW5ndGggKyAxIC0gNik7CiAgICAg
ICAgICAgICBtZW1jcHkoYnVmZmVyLCAiLXdlYmtpdCIsIDcpOwogICAgICAgICAgICAgKytsZW5n
dGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQ
YXRocy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckZhc3RQYXRocy5j
cHAKaW5kZXggYzliNzliMDg3MjQ0ZThkZDk1Mzc4NzE4ODk1NDIzYjMxY2MzM2ZiOC4uMGE3NWNl
M2E3MWQxYzVkZTFjMmQzZjU0YWY0ZjU3Yjk5ZmJiOTQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcApAQCAtOTIyLDYgKzkyMiwxMCBA
QCBib29sIENTU1BhcnNlckZhc3RQYXRoczo6aXNLZXl3b3JkUHJvcGVydHlJRChDU1NQcm9wZXJ0
eUlEIHByb3BlcnR5SWQpCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0U2Nyb2xsU25hcFR5cGU6CiAjZW5kaWYKKyNpZiBFTkFCTEUoQVBQTEVf
UEFZKQorICAgIGNhc2UgQ1NTUHJvcGVydHlBcHBsZVBheUJ1dHRvblN0eWxlOgorICAgIGNhc2Ug
Q1NTUHJvcGVydHlBcHBsZVBheUJ1dHRvblR5cGU6CisjZW5kaWYKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUp1c3RpZnlDb250ZW50OgogICAgIGNhc2UgQ1NTUHJv
cGVydHlBbGlnbkNvbnRlbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
aGVtZVR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKaW5kZXgg
MDk5NDUzOTE3NDE1ZTkzYjBjNTc5NTI3NzVlNjhiMzQxOGZlYWQ1Ni4uNTBlNmVkY2JmM2IwOWJk
ZWExMTAxODVjNWJkMmJhYTY2NTQ0ZWIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVGhlbWVUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlw
ZXMuaApAQCAtMjMsOCArMjMsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBU
aGVtZVR5cGVzX2gKLSNkZWZpbmUgVGhlbWVUeXBlc19oCisjcHJhZ21hIG9uY2UKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC00OSw2ICs0OCw5IEBAIGVudW0gQ29udHJvbFBhcnQgewogI2lm
IEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIEltYWdlQ29udHJvbHNCdXR0b25QYXJ0LAog
I2VuZGlmCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBBcHBsZVBheUJ1dHRvblBhcnQsCisj
ZW5kaWYKICAgICBUZXh0QXJlYVBhcnQsCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkK
ICAgICBBdHRhY2htZW50UGFydCwKQEAgLTczLDQgKzc1LDMgQEAgZW51bSBUaGVtZUNvbG9yIHsK
IH07CiAKIH0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Bp
L2NvY29hL1Bhc3NLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Q
YXNzS2l0U1BJLmgKaW5kZXggYTBjN2I5OTg0ZTdlZTcxOTk3NTk1OTA2Mjg1OTI1NDM5NWRmOTEw
OS4uMDUyMDk5MjYwMDFiYTViYTBiZTE2MzdiMDdjMzAyZjE2YTBkYjQ1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL1Bhc3NLaXRTUEkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvUGFzc0tpdFNQSS5oCkBAIC0yMTQsMyArMjE0
LDYgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIE5TX0FTU1VNRV9OT05OVUxMX0VORAogCiAj
ZW5kaWYKKworZXh0ZXJuICJDIgordm9pZCBQS0RyYXdBcHBsZVBheUJ1dHRvbihfTm9ubnVsbCBD
R0NvbnRleHRSZWYsIENHUmVjdCBkcmF3UmVjdCwgQ0dGbG9hdCBzY2FsZSwgUEtQYXltZW50QnV0
dG9uVHlwZSwgUEtQYXltZW50QnV0dG9uU3R5bGUsIE5TU3RyaW5nICogX051bGxhYmxlIGxhbmd1
YWdlQ29kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCAy
NzU2ZjZiNDU3MDgzMzZmYWU2NDNhMDYxNzBmYWI1OGViMWIwODE5Li5jZGQwMWUzNGY3MmI3YWY3
OWQ4YjYzYmRiYWY5YTI2ZGEwZDYxNjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5jcHAKQEAgLTI1Myw2ICsyNTMsMTAgQEAgdm9pZCBSZW5kZXJUaGVtZTo6YWRqdXN0
U3R5bGUoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgUmVuZGVyU3R5bGUmIHN0eWxlLAog
I2VuZGlmCiAgICAgY2FzZSBDYXBzTG9ja0luZGljYXRvclBhcnQ6CiAgICAgICAgIHJldHVybiBh
ZGp1c3RDYXBzTG9ja0luZGljYXRvclN0eWxlKHN0eWxlUmVzb2x2ZXIsIHN0eWxlLCBlbGVtZW50
KTsKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgIGNhc2UgQXBwbGVQYXlCdXR0b25QYXJ0Ogor
ICAgICAgICByZXR1cm4gYWRqdXN0QXBwbGVQYXlCdXR0b25TdHlsZShzdHlsZVJlc29sdmVyLCBz
dHlsZSwgZWxlbWVudCk7CisjZW5kaWYKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQog
ICAgIGNhc2UgQXR0YWNobWVudFBhcnQ6CiAgICAgICAgIHJldHVybiBhZGp1c3RBdHRhY2htZW50
U3R5bGUoc3R5bGVSZXNvbHZlciwgc3R5bGUsIGVsZW1lbnQpOwpAQCAtNDAxLDYgKzQwNSwxMCBA
QCBib29sIFJlbmRlclRoZW1lOjpwYWludChjb25zdCBSZW5kZXJCb3gmIGJveCwgQ29udHJvbFN0
YXRlcyYgY29udHJvbFN0YXRlcywgY29ucwogI2VuZGlmCiAgICAgY2FzZSBDYXBzTG9ja0luZGlj
YXRvclBhcnQ6CiAgICAgICAgIHJldHVybiBwYWludENhcHNMb2NrSW5kaWNhdG9yKGJveCwgcGFp
bnRJbmZvLCBpbnRlZ3JhbFNuYXBwZWRSZWN0KTsKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAg
IGNhc2UgQXBwbGVQYXlCdXR0b25QYXJ0OgorICAgICAgICByZXR1cm4gcGFpbnRBcHBsZVBheUJ1
dHRvbihib3gsIHBhaW50SW5mbywgaW50ZWdyYWxTbmFwcGVkUmVjdCk7CisjZW5kaWYKICNpZiBF
TkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIGNhc2UgQXR0YWNobWVudFBhcnQ6CiAgICAg
ICAgIHJldHVybiBwYWludEF0dGFjaG1lbnQoYm94LCBwYWludEluZm8sIGludGVncmFsU25hcHBl
ZFJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCAzNmE0Yzg5
YTZjZDFiMzA3MjU2ODg1NDIwMmI1ZGVkNDI4NDFkYmU1Li4zOWI5N2M4NmFkZTE3ZGMyYzJhNmY0
OWM0NDUxOGExMTNmZDcyZDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUu
aApAQCAtMzI1LDYgKzMyNSwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGFkanVz
dENhcHNMb2NrSW5kaWNhdG9yU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxlJiwgY29u
c3QgRWxlbWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwYWludENhcHNMb2NrSW5kaWNh
dG9yKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3Qm
KTsKIAorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgdmlydHVhbCB2b2lkIGFkanVzdEFwcGxl
UGF5QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVu
dCopIGNvbnN0IHsgfQorICAgIHZpcnR1YWwgYm9vbCBwYWludEFwcGxlUGF5QnV0dG9uKGNvbnN0
IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVy
biB0cnVlOyB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAg
dmlydHVhbCB2b2lkIGFkanVzdEF0dGFjaG1lbnRTdHlsZShTdHlsZVJlc29sdmVyJiwgUmVuZGVy
U3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHBhaW50QXR0
YWNobWVudChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRS
ZWN0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
b2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iNGM1ODdmMWFhYmZjNmE1ZWZjOTJlMzRkZDhmNDQ2YjYyYThkMDVlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaApA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJS
ZW5kZXJUaGVtZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlclRoZW1l
Q29jb2EgOiBwdWJsaWMgUmVuZGVyVGhlbWUgeworcHJpdmF0ZToKKyNpZiBFTkFCTEUoQVBQTEVf
UEFZKQorICAgIHZvaWQgYWRqdXN0QXBwbGVQYXlCdXR0b25TdHlsZShTdHlsZVJlc29sdmVyJiwg
UmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBw
YWludEFwcGxlUGF5QnV0dG9uKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKKyNlbmRpZgorfTsKKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NGViN2ZjYjVj
ZmFiYzA4NzNkNDViMGNiNTVlMzViMDg0ZjM3ZjIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0KQEAgLTAsMCArMSwxMDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVyVGhlbWVD
b2NvYS5oIgorCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKworI2luY2x1ZGUgIlBhc3NLaXRTUEku
aCIKKyNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIK
KyNpbmNsdWRlICJTb2Z0TGlua2luZy5oIgorI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbi5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVX
T1JLKFBhc3NLaXQpOworI2Vsc2UKK1NPRlRfTElOS19GUkFNRVdPUksoUGFzc0tpdCk7CisjZW5k
aWYKKworU09GVF9MSU5LX01BWV9GQUlMKFBhc3NLaXQsIFBLRHJhd0FwcGxlUGF5QnV0dG9uLCB2
b2lkLCAoQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVjdCBkcmF3UmVjdCwgQ0dGbG9hdCBzY2Fs
ZSwgUEtQYXltZW50QnV0dG9uVHlwZSB0eXBlLCBQS1BheW1lbnRCdXR0b25TdHlsZSBzdHlsZSwg
TlNTdHJpbmcgKmxhbmd1YWdlQ29kZSksIChjb250ZXh0LCBkcmF3UmVjdCwgc2NhbGUsIHR5cGUs
IHN0eWxlLCBsYW5ndWFnZUNvZGUpKTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMg
Y29uc3QgYXV0byBhcHBsZVBheUJ1dHRvbk1pbmltdW1XaWR0aCA9IDE0MDsKK3N0YXRpYyBjb25z
dCBhdXRvIGFwcGxlUGF5QnV0dG9uUGxhaW5NaW5pbXVtV2lkdGggPSAxMDA7CitzdGF0aWMgY29u
c3QgYXV0byBhcHBsZVBheUJ1dHRvbk1pbmltdW1IZWlnaHQgPSAzMDsKKwordm9pZCBSZW5kZXJU
aGVtZUNvY29hOjphZGp1c3RBcHBsZVBheUJ1dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5k
ZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqKSBjb25zdAoreworICAgIGlmIChzdHlsZS5h
cHBsZVBheUJ1dHRvblR5cGUoKSA9PSBBcHBsZVBheUJ1dHRvblR5cGU6OlBsYWluKQorICAgICAg
ICBzdHlsZS5zZXRNaW5XaWR0aChMZW5ndGgoYXBwbGVQYXlCdXR0b25QbGFpbk1pbmltdW1XaWR0
aCwgRml4ZWQpKTsKKyAgICBlbHNlCisgICAgICAgIHN0eWxlLnNldE1pbldpZHRoKExlbmd0aChh
cHBsZVBheUJ1dHRvbk1pbmltdW1XaWR0aCwgRml4ZWQpKTsKKyAgICBzdHlsZS5zZXRNaW5IZWln
aHQoTGVuZ3RoKGFwcGxlUGF5QnV0dG9uTWluaW11bUhlaWdodCwgRml4ZWQpKTsKK30KKworc3Rh
dGljIFBLUGF5bWVudEJ1dHRvblN0eWxlIHRvUEtQYXltZW50QnV0dG9uU3R5bGUoQXBwbGVQYXlC
dXR0b25TdHlsZSBzdHlsZSkKK3sKKyAgICBzd2l0Y2ggKHN0eWxlKSB7CisgICAgY2FzZSBBcHBs
ZVBheUJ1dHRvblN0eWxlOjpXaGl0ZToKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJ1dHRvblN0
eWxlV2hpdGU7CisgICAgY2FzZSBBcHBsZVBheUJ1dHRvblN0eWxlOjpXaGl0ZU91dGxpbmU6Cisg
ICAgICAgIHJldHVybiBQS1BheW1lbnRCdXR0b25TdHlsZVdoaXRlT3V0bGluZTsKKyAgICBjYXNl
IEFwcGxlUGF5QnV0dG9uU3R5bGU6OkJsYWNrOgorICAgICAgICByZXR1cm4gUEtQYXltZW50QnV0
dG9uU3R5bGVCbGFjazsKKyAgICB9Cit9CisKK3N0YXRpYyBQS1BheW1lbnRCdXR0b25UeXBlIHRv
UEtQYXltZW50QnV0dG9uVHlwZShBcHBsZVBheUJ1dHRvblR5cGUgdHlwZSkKK3sKKyAgICBzd2l0
Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEFwcGxlUGF5QnV0dG9uVHlwZTo6UGxhaW46CisgICAgICAg
IHJldHVybiBQS1BheW1lbnRCdXR0b25UeXBlUGxhaW47CisgICAgY2FzZSBBcHBsZVBheUJ1dHRv
blR5cGU6OkJ1eToKKyAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJ1dHRvblR5cGVCdXk7CisgICAg
Y2FzZSBBcHBsZVBheUJ1dHRvblR5cGU6OlNldFVwOgorICAgICAgICByZXR1cm4gUEtQYXltZW50
QnV0dG9uVHlwZVNldFVwOworICAgIGNhc2UgQXBwbGVQYXlCdXR0b25UeXBlOjpJblN0b3JlOgor
ICAgICAgICByZXR1cm4gUEtQYXltZW50QnV0dG9uVHlwZUluU3RvcmU7CisgICAgfQorfQorCiti
b29sIFJlbmRlclRoZW1lQ29jb2E6OnBhaW50QXBwbGVQYXlCdXR0b24oY29uc3QgUmVuZGVyT2Jq
ZWN0JiByZW5kZXJlciwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3Qm
IHBhaW50UmVjdCkKK3sKKyAgICBpZiAoIWNhbkxvYWRQS0RyYXdBcHBsZVBheUJ1dHRvbigpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0
YXRlU2F2ZXIocGFpbnRJbmZvLmNvbnRleHQoKSk7CisKKyAgICBwYWludEluZm8uY29udGV4dCgp
LnNldFNob3VsZFNtb290aEZvbnRzKHRydWUpOworICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2Nh
bGUoRmxvYXRTaXplKDEsIC0xKSk7CisKKyAgICBQS0RyYXdBcHBsZVBheUJ1dHRvbihwYWludElu
Zm8uY29udGV4dCgpLnBsYXRmb3JtQ29udGV4dCgpLCBDR1JlY3RNYWtlKHBhaW50UmVjdC54KCks
IC1wYWludFJlY3QubWF4WSgpLCBwYWludFJlY3Qud2lkdGgoKSwgcGFpbnRSZWN0LmhlaWdodCgp
KSwgMS4wLCB0b1BLUGF5bWVudEJ1dHRvblR5cGUocmVuZGVyZXIuc3R5bGUoKS5hcHBsZVBheUJ1
dHRvblR5cGUoKSksIHRvUEtQYXltZW50QnV0dG9uU3R5bGUocmVuZGVyZXIuc3R5bGUoKS5hcHBs
ZVBheUJ1dHRvblN0eWxlKCkpLCByZW5kZXJlci5zdHlsZSgpLmxvY2FsZSgpKTsKKworICAgIHJl
dHVybiBmYWxzZTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLmgKaW5kZXggZmZiMmUzZjE1YzU2NDNjNTU1OTMwOTI5ODgzZWY5NjBlYzUz
YmQ4ZC4uZmRkN2MwYTdkMjBkZDU2OGM0MTc4ZjgyNWI5MzlmNDA5MzU3NmZlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKQEAgLTIzLDEyICsyMywxMSBAQAog
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgUmVuZGVy
VGhlbWVJT1NfaAotI2RlZmluZSBSZW5kZXJUaGVtZUlPU19oCisjcHJhZ21hIG9uY2UKIAogI2lm
IFBMQVRGT1JNKElPUykKIAotI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiUmVu
ZGVyVGhlbWVDb2NvYS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCkBAIC0zNiw3ICsz
NSw3IEBAIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0Owogc3RydWN0
IEF0dGFjaG1lbnRMYXlvdXQ7CiAKLWNsYXNzIFJlbmRlclRoZW1lSU9TIGZpbmFsIDogcHVibGlj
IFJlbmRlclRoZW1lIHsKK2NsYXNzIFJlbmRlclRoZW1lSU9TIGZpbmFsIDogcHVibGljIFJlbmRl
clRoZW1lQ29jb2EgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVuZGVyVGhlbWU+IGNyZWF0
ZSgpOwogCkBAIC0xMzUsNCArMTM0LDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykKLSNlbmRpZiAvLyBSZW5kZXJUaGVtZUlPU19oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4IDRlMDBhNDhiMDRhZTRjYjFmYjQzYzA0ZjliMzdi
NDY2ZTQ5YmZmNWMuLjY1OGY4ODMxNDYzNjA3MjliNmNhMzc2NmRjMGM5YTlhNTY5Yjg2ZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCkBAIC0xOSwxMiArMTks
MTIgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICoKICAqLwotI2lmICFQTEFU
Rk9STShJT1MpCiAKLSNpZm5kZWYgUmVuZGVyVGhlbWVNYWNfaAotI2RlZmluZSBSZW5kZXJUaGVt
ZU1hY19oCisjcHJhZ21hIG9uY2UKIAotI2ltcG9ydCAiUmVuZGVyVGhlbWUuaCIKKyNpZiBQTEFU
Rk9STShNQUMpCisKKyNpbXBvcnQgIlJlbmRlclRoZW1lQ29jb2EuaCIKICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CiAKQEAgLTQwLDcgKzQwLDcgQEAg
Y2xhc3MgUmVuZGVyUHJvZ3Jlc3M7CiBjbGFzcyBSZW5kZXJTdHlsZTsKIHN0cnVjdCBBdHRhY2ht
ZW50TGF5b3V0OwogCi1jbGFzcyBSZW5kZXJUaGVtZU1hYyBmaW5hbCA6IHB1YmxpYyBSZW5kZXJU
aGVtZSB7CitjbGFzcyBSZW5kZXJUaGVtZU1hYyBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUaGVtZUNv
Y29hIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlbmRlclRoZW1lPiBjcmVhdGUoKTsKIApA
QCAtMjUwLDYgKzI1MCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmIC8vIFJlbmRlclRoZW1lTWFjX2gKLQotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCisj
ZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaAppbmRleCAzYzA1YTdjZDBhZTQyYWNkNGFlMTEzYjg4NmRhOGUyZmE0NjY5
YWVkLi4wMmYyYmY3ZTMwODBhYTUyYWI0Y2IwZWFmODE4MmU4YjYxYTM2MGVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTIxOCw3ICsxMjE4
LDEyIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ1NTX1RSQUlMSU5HX1dPUkQpCiAgICAgVHJhaWxp
bmdXb3JkIHRyYWlsaW5nV29yZCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRyYWlsaW5n
V29yZD4ocmFyZUluaGVyaXRlZERhdGEtPnRyYWlsaW5nV29yZCk7IH0KICNlbmRpZgotICAgIAor
CisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICBBcHBsZVBheUJ1dHRvblN0eWxlIGFwcGxlUGF5
QnV0dG9uU3R5bGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxBcHBsZVBheUJ1dHRvblN0
eWxlPihyYXJlSW5oZXJpdGVkRGF0YS0+YXBwbGVQYXlCdXR0b25TdHlsZSk7IH0KKyAgICBBcHBs
ZVBheUJ1dHRvblR5cGUgYXBwbGVQYXlCdXR0b25UeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8QXBwbGVQYXlCdXR0b25UeXBlPihyYXJlSW5oZXJpdGVkRGF0YS0+YXBwbGVQYXlCdXR0
b25UeXBlKTsgfQorI2VuZGlmCisKICAgICB2b2lkIGNoZWNrVmFyaWFibGVzSW5DdXN0b21Qcm9w
ZXJ0aWVzKCk7CiAKIC8vIGF0dHJpYnV0ZSBzZXR0ZXIgbWV0aG9kcwpAQCAtMTczNSw2ICsxNzQw
LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRyYWlsaW5nV29yZChUcmFpbGluZ1dvcmQgdikg
eyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCB0cmFpbGluZ1dvcmQsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPih2KSk7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKyAgICB2b2lk
IHNldEFwcGxlUGF5QnV0dG9uU3R5bGUoQXBwbGVQYXlCdXR0b25TdHlsZSB2KSB7IFNFVF9WQVIo
cmFyZUluaGVyaXRlZERhdGEsIGFwcGxlUGF5QnV0dG9uU3R5bGUsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPih2KSk7IH0KKyAgICB2b2lkIHNldEFwcGxlUGF5QnV0dG9uVHlwZShBcHBsZVBheUJ1dHRv
blR5cGUgdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBhcHBsZVBheUJ1dHRvblR5cGUs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KSk7IH0KKyNlbmRpZgorCiAgICAgY29uc3QgU1ZHUmVu
ZGVyU3R5bGUmIHN2Z1N0eWxlKCkgY29uc3QgeyByZXR1cm4gKm1fc3ZnU3R5bGU7IH0KICAgICBT
VkdSZW5kZXJTdHlsZSYgYWNjZXNzU1ZHU3R5bGUoKSB7IHJldHVybiAqbV9zdmdTdHlsZS5hY2Nl
c3MoKTsgfQogCkBAIC0yMDg2LDYgKzIwOTYsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBUcmFp
bGluZ1dvcmQgaW5pdGlhbFRyYWlsaW5nV29yZCgpIHsgcmV0dXJuIFRyYWlsaW5nV29yZDo6QXV0
bzsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgIHN0YXRpYyBBcHBsZVBh
eUJ1dHRvblN0eWxlIGluaXRpYWxBcHBsZVBheUJ1dHRvblN0eWxlKCkgeyByZXR1cm4gQXBwbGVQ
YXlCdXR0b25TdHlsZTo6QmxhY2s7IH0KKyAgICBzdGF0aWMgQXBwbGVQYXlCdXR0b25UeXBlIGlu
aXRpYWxBcHBsZVBheUJ1dHRvblR5cGUoKSB7IHJldHVybiBBcHBsZVBheUJ1dHRvblR5cGU6OlBs
YWluOyB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAgLy8gVGhl
IGluaXRpYWwgdmFsdWUgaXMgJ25vbmUnIGZvciBncmlkIHRyYWNrcy4KICAgICBzdGF0aWMgVmVj
dG9yPEdyaWRUcmFja1NpemU+IGluaXRpYWxHcmlkQ29sdW1ucygpIHsgcmV0dXJuIFZlY3RvcjxH
cmlkVHJhY2tTaXplPigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IDM1MThjMmY0ZTljOTI0N2IyYTIxZmJk
YjAwN2JkODc5NTdjZjAzMDAuLjdjYWY3MTU1MTAxM2FjNjUyYWQ4MGEzN2Y4ZmY1M2E5MjhjMTcw
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oCkBAIC02OTYsNiArNjk2LDIxIEBAIGVudW0gY2xhc3MgVHJhaWxpbmdX
b3JkIHsKIH07CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVkpCitlbnVtIGNsYXNzIEFw
cGxlUGF5QnV0dG9uU3R5bGUgeworICAgIFdoaXRlLAorICAgIFdoaXRlT3V0bGluZSwKKyAgICBC
bGFjaywKK307CisKK2VudW0gY2xhc3MgQXBwbGVQYXlCdXR0b25UeXBlIHsKKyAgICBQbGFpbiwK
KyAgICBCdXksCisgICAgU2V0VXAsCisgICAgSW5TdG9yZSwKK307CisjZW5kaWYKKwogVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgRUZpbGxTaXplVHlwZSk7CiBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBFRmlsbEF0dGFjaG1lbnQpOwogVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgRUZpbGxCb3gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4
IDIwOThiOTE3OWM1NzFlYmI4NGVkYjJmM2M3ODYxMTgyOGM2NmUxZTEuLjhiYWYzNTIwZTE3Zjg4
NjBmMDYzNzhlOTIzMzM4NTc3MjcxMTgwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTEyNCw2
ICsxMjQsMTAgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0
YSgpCiAjaWYgRU5BQkxFKENTU19UUkFJTElOR19XT1JEKQogICAgICwgdHJhaWxpbmdXb3JkKHN0
YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbFRyYWlsaW5nV29yZCgpKSkK
ICNlbmRpZgorI2lmIEVOQUJMRShBUFBMRV9QQVkpCisgICAgLCBhcHBsZVBheUJ1dHRvblN0eWxl
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihSZW5kZXJTdHlsZTo6aW5pdGlhbEFwcGxlUGF5QnV0dG9u
U3R5bGUoKSkpCisgICAgLCBhcHBsZVBheUJ1dHRvblR5cGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFJlbmRlclN0eWxlOjppbml0aWFsQXBwbGVQYXlCdXR0b25UeXBlKCkpKQorI2VuZGlmCiAgICAg
LCBtX2hhbmdpbmdQdW5jdHVhdGlvbihSZW5kZXJTdHlsZTo6aW5pdGlhbEhhbmdpbmdQdW5jdHVh
dGlvbigpKQogICAgICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZSgtMSkKICAgICAsIGh5cGhlbmF0
aW9uTGltaXRBZnRlcigtMSkKQEAgLTIwNiw2ICsyMTAsMTAgQEAgaW5saW5lIFN0eWxlUmFyZUlu
aGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJp
dGVkRGEKICNpZiBFTkFCTEUoQ1NTX1RSQUlMSU5HX1dPUkQpCiAgICAgLCB0cmFpbGluZ1dvcmQo
by50cmFpbGluZ1dvcmQpCiAjZW5kaWYKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorICAgICwgYXBw
bGVQYXlCdXR0b25TdHlsZShvLmFwcGxlUGF5QnV0dG9uU3R5bGUpCisgICAgLCBhcHBsZVBheUJ1
dHRvblR5cGUoby5hcHBsZVBheUJ1dHRvblR5cGUpCisjZW5kaWYKICAgICAsIG1faGFuZ2luZ1B1
bmN0dWF0aW9uKG8ubV9oYW5naW5nUHVuY3R1YXRpb24pCiAgICAgLCBoeXBoZW5hdGlvblN0cmlu
ZyhvLmh5cGhlbmF0aW9uU3RyaW5nKQogICAgICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZShvLmh5
cGhlbmF0aW9uTGltaXRCZWZvcmUpCkBAIC0zMTIsNiArMzIwLDEwIEBAIGJvb2wgU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBv
KSBjb25zdAogI2lmIEVOQUJMRShDU1NfVFJBSUxJTkdfV09SRCkKICAgICAgICAgJiYgdHJhaWxp
bmdXb3JkID09IG8udHJhaWxpbmdXb3JkCiAjZW5kaWYKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQor
ICAgICAgICAmJiBhcHBsZVBheUJ1dHRvblN0eWxlID09IG8uYXBwbGVQYXlCdXR0b25TdHlsZQor
ICAgICAgICAmJiBhcHBsZVBheUJ1dHRvblR5cGUgPT0gby5hcHBsZVBheUJ1dHRvblR5cGUKKyNl
bmRpZgogICAgICAgICAmJiBtX2hhbmdpbmdQdW5jdHVhdGlvbiA9PSBvLm1faGFuZ2luZ1B1bmN0
dWF0aW9uCiAgICAgICAgICYmIG1fY3VzdG9tUHJvcGVydGllcyA9PSBvLm1fY3VzdG9tUHJvcGVy
dGllcwogICAgICAgICAmJiBhcmVQb2ludGluZ1RvRXF1YWxEYXRhKGxpc3RTdHlsZUltYWdlLCBv
Lmxpc3RTdHlsZUltYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCmluZGV4IDVmN2MyMzYzNjU4ODdlZDNkOGRk
ZWQ4OWI3MjMxMjBiMjRiZDE5MTMuLmNlOWZhMzgxZTZkMzZjOTYwMjY4NzBjNGUzNzc3MzRiNzA2
MDJmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVJbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuaApAQCAtMTM2LDYgKzEzNiwxMSBAQCBwdWJsaWM6CiAgICAg
dW5zaWduZWQgdHJhaWxpbmdXb3JkIDogMTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BB
WSkKKyAgICB1bnNpZ25lZCBhcHBsZVBheUJ1dHRvblN0eWxlIDogMjsKKyAgICB1bnNpZ25lZCBh
cHBsZVBheUJ1dHRvblR5cGUgOiAzOworI2VuZGlmCisKICAgICB1bnNpZ25lZCBtX2hhbmdpbmdQ
dW5jdHVhdGlvbiA6IDQ7CiAKICAgICBBdG9taWNTdHJpbmcgaHlwaGVuYXRpb25TdHJpbmc7Cg==
</data>
<flag name="review"
          id="312166"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>