<?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>118265</bug_id>
          
          <creation_ts>2013-07-01 15:33:10 -0700</creation_ts>
          <short_desc>[GTK][ThreadedCompositor] Add support for threaded compositor</short_desc>
          <delta_ts>2015-01-07 20:29:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>117227</dependson>
    
    <dependson>118383</dependson>
          <blocked>100341</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Gwang Yoon Hwang">yoon</reporter>
          <assigned_to name="Gwang Yoon Hwang">yoon</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jaepark</cc>
    
    <cc>mrobinson</cc>
    
    <cc>noam</cc>
    
    <cc>sergio</cc>
    
    <cc>skyul</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>905164</commentid>
    <comment_count>0</comment_count>
    <who name="Gwang Yoon Hwang">yoon</who>
    <bug_when>2013-07-01 15:33:10 -0700</bug_when>
    <thetext>By implementing ThreadedCoordinatedLayerTreeHost, this patch supports
    threaded compositor for WK2. In this initial implementation, threaded
    compositor only supports fixedLayout.
    
    COORDINATED_GRAPHICS_IPC is introduced to classify IPC specific codes
    from Coordinated Graphics.
    
    Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp :
        Calls XInitThreads to use thread-safe xlib.
    
    No new tests, this is an experimental feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905169</commentid>
    <comment_count>1</comment_count>
      <attachid>205842</attachid>
    <who name="Gwang Yoon Hwang">yoon</who>
    <bug_when>2013-07-01 16:10:03 -0700</bug_when>
    <thetext>Created attachment 205842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906143</commentid>
    <comment_count>2</comment_count>
      <attachid>206079</attachid>
    <who name="Gwang Yoon Hwang">yoon</who>
    <bug_when>2013-07-04 05:05:50 -0700</bug_when>
    <thetext>Created attachment 206079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055596</commentid>
    <comment_count>3</comment_count>
      <attachid>243287</attachid>
    <who name="Gwang Yoon Hwang">yoon</who>
    <bug_when>2014-12-15 04:17:34 -0800</bug_when>
    <thetext>Created attachment 243287
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059001</commentid>
    <comment_count>4</comment_count>
      <attachid>244059</attachid>
    <who name="Gwang Yoon Hwang">yoon</who>
    <bug_when>2015-01-06 06:58:13 -0800</bug_when>
    <thetext>Created attachment 244059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059022</commentid>
    <comment_count>5</comment_count>
      <attachid>244065</attachid>
    <who name="Gwang Yoon Hwang">yoon</who>
    <bug_when>2015-01-06 09:05:08 -0800</bug_when>
    <thetext>Created attachment 244065
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059025</commentid>
    <comment_count>6</comment_count>
      <attachid>244066</attachid>
    <who name="Gwang Yoon Hwang">yoon</who>
    <bug_when>2015-01-06 09:14:50 -0800</bug_when>
    <thetext>Created attachment 244066
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059026</commentid>
    <comment_count>7</comment_count>
    <who name="Gwang Yoon Hwang">yoon</who>
    <bug_when>2015-01-06 09:17:02 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created attachment 244066 [details]
&gt; Patch

Sorry for noise.
I made a little typo in previous patch.

Changes:

* Change COORDINATED_GRAPHICS_IPC to COORDINATED_GRAPHICS_MULITIPROCESS
* Rebase for current HEAD</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059086</commentid>
    <comment_count>8</comment_count>
      <attachid>244066</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-01-06 11:39:18 -0800</bug_when>
    <thetext>Comment on attachment 244066
Patch

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

Looks good to me, thought the changes to platform independent files will need to be approved by Apple.

&gt; Source/WebKit2/ChangeLog:8
&gt; +        This patch introduces the Threaded Compositor for WebKitGTK+.

Nit: the Threaded Compositor -&gt; a threaded compositor

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:527
&gt; +#if USE(COORDINATED_GRAPHICS_MULTIPROCESS)
&gt;      m_page-&gt;send(Messages::WebPageProxy::DidChangeContentSize(size));
&gt;  #endif
&gt; +#endif

These blocks do not have to be nested. I think it&apos;s clearer to not nest them actually.

&gt; Source/cmake/WebKitFeatures.cmake:152
&gt; +    WEBKIT_OPTION_DEFINE(ENABLE_THREADED_COMPOSITOR &quot;Toggle Toggle Threaded Compositor support&quot; OFF)

Nit: Threaded Compositor -&gt; threaded compositor

&gt; Tools/Scripts/webkitperl/FeatureList.pm:386
&gt; +    { option =&gt; &quot;threaded-compositor&quot;, desc =&gt; &quot;Toggle Threaded Compositor support&quot;,

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059301</commentid>
    <comment_count>9</comment_count>
      <attachid>244129</attachid>
    <who name="Gwang Yoon Hwang">yoon</who>
    <bug_when>2015-01-06 20:07:00 -0800</bug_when>
    <thetext>Created attachment 244129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059303</commentid>
    <comment_count>10</comment_count>
    <who name="Gwang Yoon Hwang">yoon</who>
    <bug_when>2015-01-06 20:14:23 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 244066 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=244066&amp;action=review
&gt; 
&gt; Looks good to me, thought the changes to platform independent files will
&gt; need to be approved by Apple.
&gt; 
Okay, I&apos;ll ask for approval later.

&gt; &gt; Source/WebKit2/ChangeLog:8
&gt; &gt; +        This patch introduces the Threaded Compositor for WebKitGTK+.
&gt; 
&gt; Nit: the Threaded Compositor -&gt; a threaded compositor
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:527
&gt; &gt; +#if USE(COORDINATED_GRAPHICS_MULTIPROCESS)
&gt; &gt;      m_page-&gt;send(Messages::WebPageProxy::DidChangeContentSize(size));
&gt; &gt;  #endif
&gt; &gt; +#endif
&gt; 
&gt; These blocks do not have to be nested. I think it&apos;s clearer to not nest them
&gt; actually.
&gt; 

Good point. Modified.

&gt; &gt; Source/cmake/WebKitFeatures.cmake:152
&gt; &gt; +    WEBKIT_OPTION_DEFINE(ENABLE_THREADED_COMPOSITOR &quot;Toggle Toggle Threaded Compositor support&quot; OFF)
&gt; 
&gt; Nit: Threaded Compositor -&gt; threaded compositor
&gt; 

Fixed. :)

&gt; &gt; Tools/Scripts/webkitperl/FeatureList.pm:386
&gt; &gt; +    { option =&gt; &quot;threaded-compositor&quot;, desc =&gt; &quot;Toggle Threaded Compositor support&quot;,
&gt; 
&gt; Ditto.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059464</commentid>
    <comment_count>11</comment_count>
      <attachid>244066</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-01-07 12:39:16 -0800</bug_when>
    <thetext>Comment on attachment 244066
Patch

Cross platform files look fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059704</commentid>
    <comment_count>12</comment_count>
      <attachid>244129</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-07 20:29:25 -0800</bug_when>
    <thetext>Comment on attachment 244129
Patch

Clearing flags on attachment: 244129

Committed r178095: &lt;http://trac.webkit.org/changeset/178095&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059705</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-07 20:29:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205842</attachid>
            <date>2013-07-01 16:10:03 -0700</date>
            <delta_ts>2013-07-04 05:05:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118265-20130702080756.patch</filename>
            <type>text/plain</type>
            <size>45577</size>
            <attacher name="Gwang Yoon Hwang">yoon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRmNzAyYmMwNWEyNzA2MzRkYWQzNjlm
N2U3Nzg3YmU0M2U1OWFjNmQuLmIwYmM5N2Q3MWU2MTYyMGQ5ZTM2Nzg2M2Q1YjgxYmNmNzc3Mjlj
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDYtMDUgIEd3YW5nIFlvb24gSHdhbmcgIDxy
eXVtaWVsQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtXSzJdW0dUS10gSW1wbGVtZW50IHRo
cmVhZGVkIGNvbXBvc2l0aW5nIGZvciBXZWJLaXQyIEd0ay4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODI2NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENPT1JESU5BVEVEX0dSQVBISUNTX0lQQyBzaG91
bGQgYmUgZGVjbGFpcmVkIHRvIHVzZSBDb29yZGluYXRlZAorICAgICAgICBHcmFwaGljcyBpbiBX
ZWJLaXRRVC4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDEzLTA2LTI4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFN0cmlu
Zzo6ZGVwcmVjYXRlZENoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCkgYW5kIHJlbGF0ZWQg
Y29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDE4ZTliYWRmNDQ2YWRjZWM1NDU5OWNmMTI5ODk3ZGJlN2MzNmQy
N2EuLjkwYWQyOTYwYTA5MDI1NjI4YmRjMWIzMTg3MWIyNmZhMWJhYmUyMDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsNSArMSw5MiBAQAogMjAxMy0wNi0wNSAgR3dhbmcgWW9vbiBId2FuZyAgPHJ5dW1pZWxA
Y29tcGFueTEwMC5uZXQ+CiAKKyAgICAgICAgW1dLMl1bR1RLXSBJbXBsZW1lbnQgdGhyZWFkZWQg
Y29tcG9zaXRpbmcgZm9yIFdlYktpdDIgR3RrLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MjY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQnkgaW1wbGVtZW50aW5nIFRocmVhZGVkQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0LCB0aGlzIHBhdGNoIHN1cHBvcnRzCisgICAgICAgIHRocmVhZGVkIGNvbXBv
c2l0b3IgZm9yIFdLMi4gSW4gdGhpcyBpbml0aWFsIGltcGxlbWVudGF0aW9uLCB0aHJlYWRlZAor
ICAgICAgICBjb21wb3NpdG9yIG9ubHkgc3VwcG9ydHMgZml4ZWRMYXlvdXQuCisKKyAgICAgICAg
Q09PUkRJTkFURURfR1JBUEhJQ1NfSVBDIGlzIGludHJvZHVjZWQgdG8gY2xhc3NpZnkgSVBDIHNw
ZWNpZmljIGNvZGVzCisgICAgICAgIGZyb20gQ29vcmRpbmF0ZWQgR3JhcGhpY3MuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlLgorCisgICAg
ICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHA6CisgICAgICAgIChf
V2ViS2l0U2V0dGluZ3NQcml2YXRlOjpfV2ViS2l0U2V0dGluZ3NQcml2YXRlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHA6CisgICAgICAgICh3ZWJr
aXRXZWJWaWV3QmFzZUNyZWF0ZVdlYlBhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eUltcGw6OkRyYXdpbmdBcmVh
UHJveHlJbXBsKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eUltcGw6OmVudGVy
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5n
ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1Ro
cmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjcmVhdGUpOgorICAgICAgICAo
V2ViS2l0OjpUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6flRocmVhZGVkQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0KToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb29yZGluYXRl
ZExheWVyVHJlZUhvc3Q6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KToKKyAgICAg
ICAgKFdlYktpdDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNjaGVkdWxlTGF5
ZXJGbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0OjpzZXRMYXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpU
aHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0U2hvdWxkTm90aWZ5QWZ0ZXJOZXh0
U2NoZWR1bGVkTGF5ZXJGbHVzaCk6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0OjpzZXRSb290Q29tcG9zaXRpbmdMYXllcik6CisgICAgICAgIChXZWJL
aXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjppbnZhbGlkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNjcm9sbE5vbkNv
bXBvc2l0ZWRDb250ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0Ojpmb3JjZVJlcGFpbnQpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Zm9yY2VSZXBhaW50QXN5bmMpOgorICAgICAgICAoV2Vi
S2l0OjpUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2l6ZURpZENoYW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpkZXZpY2VP
clBhZ2VTY2FsZUZhY3RvckNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdDo6ZGlkSW5zdGFsbFBhZ2VPdmVybGF5KToKKyAgICAgICAgKFdl
YktpdDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmRpZFVuaW5zdGFsbFBhZ2VP
dmVybGF5KToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3Q6OnNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFk
ZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFBhZ2VPdmVybGF5T3BhY2l0eSk6CisgICAg
ICAgIChXZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpwYXVzZVJlbmRl
cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
OjpyZXN1bWVSZW5kZXJpbmcpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdDo6Z3JhcGhpY3NMYXllckZhY3RvcnkpOgorICAgICAgICAoV2ViS2l0OjpU
aHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0QmFja2dyb3VuZENvbG9yKToKKyAg
ICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnZpZXdwb3J0
U2l6ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYktpdDo6
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmRpZFNjYWxlRmFjdG9yQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRO
YXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVIb3N0OjpzdXBwb3J0c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdDo6cGFnZU92ZXJsYXlTaG91bGRBcHBseUZhZGVXaGVuUGFpbnRpbmcp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpEcmF3aW5nQXJlYUltcGw6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
TGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0OjpzZXROYXRp
dmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6On5XZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6c2V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlbmRWaWV3cG9ydEF0
dHJpYnV0ZXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGFnZURpZFJlcXVl
c3RTY3JvbGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjYW5IYW5kbGVVc2VyRXZlbnRz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1haW5GcmFtZURpZExheW91dCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWlu
R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc01haW5HdGspOgorCisyMDEzLTA2
LTA1ICBHd2FuZyBZb29uIEh3YW5nICA8cnl1bWllbEBjb21wYW55MTAwLm5ldD4KKwogICAgICAg
ICBbV0syXVtHVEtdIExldCBEcmF3aW5nQXJlYSBtYW5hZ2VzIHNldEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdXaW5kb3dJZAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE3MjMwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDFjMmQyMzk4ZDM5YWM3OWUxYzU5YWYxYTU2
MjI5OGYxYjU5ODVlYWEuLmM5OGIzNzQ3OGY0MWIwODYwZDA3MDkyN2QyYmQ1OGI0ZmRmM2FlZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaApAQCAtODgxLDYgKzg4MSw3IEBACiAvKiBDb21wb3NpdGluZyBvbiB0aGUg
VUktcHJvY2VzcyBpbiBXZWJLaXQyICovCiAjaWYgVVNFKDNEX0dSQVBISUNTKSAmJiBQTEFURk9S
TShRVCkKICNkZWZpbmUgV1RGX1VTRV9DT09SRElOQVRFRF9HUkFQSElDUyAxCisjZGVmaW5lIFdU
Rl9VU0VfQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDIDEKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
TUFDKSB8fCBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtl
ZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCmluZGV4IDYyNDc0MTFhODMx
YjlmZWI2NTFmYWVlMjY4NzU4YTkyOGEzZWQwMjQuLjY1YTlhZGFjNjRmZTA4ZTBhYWI4MjZmNWU5
YzY1YTUwOGQ3ZGZhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFt
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCkBAIC0xNDIsNiArMTQyLDcgQEAg
bGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RLX0FQ
SV9NSU5PUl9WRVJTSU9OQF9sYV9DUFAKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9hdGsgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9ndGsgXAorCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzIFwKIAktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyIFwKIAktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL2lu
Y2x1ZGUgXAogCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvd2Via2l0
Mmd0ayBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiMTUwMTdmZWI4Y2QwYzVm
ODg0YTU4ZDk1OTM1OTdiZGE2YTI3NjJlLi5kN2YxNDRkZWY4MDNjYWJiNDQzOTkxODVkMzMzNWJm
NGM2NmE0MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTEyNDMsMTEgKzEy
NDMsMTcgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aAogCitpZiBVU0VfVEhSRUFERURfQ09NUE9TSVRPUgord2Via2l0Ml9zb3VyY2VzICs9IFwKKyAg
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1Ro
cmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcCBcCisgICBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdC5oCitlbHNlCiBpZiBVU0VfVEVYVFVSRV9NQVBQRVJfR0wKIHdlYmtpdDJf
c291cmNlcyArPSBcCiAgICBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xh
eWVyVHJlZUhvc3RHdGsuY3BwIFwKICAgIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCiBlbmRpZiAjIEVORCBVU0VfVEVYVFVSRV9NQVBQRVJf
R0wKK2VuZGlmCiAKIHdlYmtpdDJfcGx1Z2luX3Byb2Nlc3NfYnVpbHRfc291cmNlcyArPSBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VSZWNl
aXZlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0U2V0dGluZ3MuY3BwCmluZGV4IDRjZTg0NDJhMTU5M2Y0MWMwMjE3ODAyYWVmMTRmYzBlNDc5
YmJlYWUuLjAyZWFmYTU5NWUyM2YyOGMzZGY0MmY3YzVkYjc1MDRhYjA4OWRmNjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAK
QEAgLTUxLDYgKzUxLDEwIEBAIHN0cnVjdCBfV2ViS2l0U2V0dGluZ3NQcml2YXRlIHsKICAgICAg
ICAgZmFudGFzeUZvbnRGYW1pbHkgPSBwcmVmZXJlbmNlcy0+ZmFudGFzeUZvbnRGYW1pbHkoKS51
dGY4KCk7CiAgICAgICAgIHBpY3RvZ3JhcGhGb250RmFtaWx5ID0gcHJlZmVyZW5jZXMtPnBpY3Rv
Z3JhcGhGb250RmFtaWx5KCkudXRmOCgpOwogICAgICAgICBkZWZhdWx0Q2hhcnNldCA9IHByZWZl
cmVuY2VzLT5kZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgpLnV0ZjgoKTsKKworI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAgICAgICAgcHJlZmVyZW5jZXMtPnNldEZvcmNl
Q29tcG9zaXRpbmdNb2RlKHRydWUpOworI2VuZGlmCiAgICAgfQogCiAgICAgUmVmUHRyPFdlYlBy
ZWZlcmVuY2VzPiBwcmVmZXJlbmNlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCBkMjJiN2QzMmVjMWFiZjRi
MWQ0MTQ3MDIyOGY0NzEyNGFlNWZmOWM1Li41MmNkNWM2NzY5NGEwMWQyMjFmYzFlMDE0YTIwZGEz
OTNiZDc4NzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCkBAIC05MTAsNiArOTEwLDEwIEBAIHZvaWQgd2Via2l0
V2ViVmlld0Jhc2VDcmVhdGVXZWJQYWdlKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3
QmFzZSwgV2ViQ29uCiAgICAgfQogI2VuZGlmCiAKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1NfVEhSRUFERUQpCisgICAgcHJpdi0+cGFnZVByb3h5LT5zZXRVc2VGaXhlZExheW91dCh0cnVl
KTsKKyNlbmRpZgorCiAgICAgLy8gVGhpcyBtdXN0IGhhcHBlbiBoZXJlIGluc3RlYWQgb2YgdGhl
IGluc3RhbmNlIGluaXRpYWxpemVyLCBiZWNhdXNlIHRoZSBpbnB1dCBtZXRob2QKICAgICAvLyBm
aWx0ZXIgbXVzdCBoYXZlIGFjY2VzcyB0byB0aGUgcGFnZS4KICAgICBwcml2LT5pbnB1dE1ldGhv
ZEZpbHRlci5zZXRXZWJWaWV3KHdlYmtpdFdlYlZpZXdCYXNlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5oCmluZGV4IDJmYjE3YjNlZGFlZmNl
YWUxY2FjYWNhNzFmNjI5NTE4MmI3MjEwNzkuLjIyOWZjODRjYWFhODE5MGRjYjI0MzRlYWQwNDZi
ZTQ4OWZjMWYxODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0UHJveHkuaApAQCAtMjEsNyArMjEsNyBAQAogI2lmbmRlZiBDb29yZGluYXRlZExheWVy
VHJlZUhvc3RQcm94eV9oCiAjZGVmaW5lIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5X2gK
IAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1NfSVBDKQogCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJz
LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCkBAIC0zNyw2ICszNyw4IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5OwogCitjbGFzcyBEcmF3aW5n
QXJlYVByb3h5OworCiBjbGFzcyBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eSA6IHB1Ymxp
YyBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmVDbGllbnQsIHB1YmxpYyBDb3JlSVBD
OjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdFByb3h5KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTcw
LDYgKzcyLDYgQEAgcHJvdGVjdGVkOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlm
IC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1NfSVBDKQogCiAjZW5kaWYgLy8gQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHlf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwCmluZGV4
IDRkNDlkODE2YzU0MmE3ZmI5MWZhMDFiZDRmZmI1NTIxNGI4NzJiY2UuLjNiNTQwNjdhNDcwNWYw
NGM3NDdlOGM2N2JlNjIzOGU0ODEyYTg4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKQEAgLTMwLDEwICszMCw2IEBACiAjaW5jbHVkZSAiV2Vi
UGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAKLSNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1MpCi0jaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJv
eHkuaCIKLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdl
YktpdCB7CkBAIC02NCw3ICs2MCw3IEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eTo6c2V0U2l6ZShj
b25zdCBJbnRTaXplJiBzaXplLCBjb25zdCBJbnRTaXplJiBsYXllclBvc2l0aW9uCiAgICAgc2l6
ZURpZENoYW5nZSgpOwogfQogCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiB2b2lkIERyYXdpbmdBcmVhUHJveHk6OnVwZGF0
ZVZpZXdwb3J0KCkKIHsKICAgICBtX3dlYlBhZ2VQcm94eS0+c2V0Vmlld05lZWRzRGlzcGxheSh2
aWV3cG9ydFZpc2libGVSZWN0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5LmgKaW5kZXggZTI2MGRiYzk3NWFhNzc2NTEyNTkyNGM0ZTQ5ZTUxMjI1ZjkyMDY1
MS4uNDdmNmI5NzBiYzUzNmMwY2ZiZjE4YjQxZmEwMTFlZDhiNGUwOWY0MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC0zNiwxMCArMzYsMTMgQEAK
ICNpbmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAorI2lm
IFVTRShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCisjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0UHJveHkuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
TGF5ZXJUcmVlQ29udGV4dDsKLWNsYXNzIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Owog
Y2xhc3MgVXBkYXRlSW5mbzsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIApAQCAtNzMsNyArNzYsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNvbG9yU3BhY2VEaWRDaGFuZ2UoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgbWluaW11bUxheW91dFNpemVEaWRDaGFuZ2UoKSB7IH0KIAotI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBD
KQogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWV3cG9ydCgpOwogICAgIHZpcnR1YWwgV2ViQ29y
ZTo6SW50UmVjdCB2aWV3cG9ydFZpc2libGVSZWN0KCkgY29uc3QgeyByZXR1cm4gY29udGVudHNS
ZWN0KCk7IH0KICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3QgY29udGVudHNSZWN0KCkgY29u
c3Q7CkBAIC05Miw3ICs5NSw3IEBAIHByb3RlY3RlZDoKICAgICBXZWJDb3JlOjpJbnRTaXplIG1f
bGF5ZXJQb3NpdGlvbjsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fc2Nyb2xsT2Zmc2V0OwogCi0j
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElD
U19JUEMpCiAgICAgT3duUHRyPENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5PiBtX2Nvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCmluZGV4IDBhNTM5ZjM2NWI4ZGMy
ZDZkNmJkOGFkZjUyOTg1NDAxZDgxNzc4ZmEuLjUxNmIxNmMzZjBkMGNhZjJkNDkxNTQ4MDA2YjBi
YTdlNjI5ZDllYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdB
cmVhUHJveHlJbXBsLmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NQ
cm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaW9uLmg+CiAKLSNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKICNpbmNsdWRl
ICJDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5oIgogI2VuZGlmCiAKQEAgLTU4LDcgKzU4
LDcgQEAgRHJhd2luZ0FyZWFQcm94eUltcGw6OkRyYXdpbmdBcmVhUHJveHlJbXBsKFdlYlBhZ2VQ
cm94eSogd2ViUGFnZVByb3h5KQogICAgICwgbV9pc0JhY2tpbmdTdG9yZURpc2NhcmRhYmxlKHRy
dWUpCiAgICAgLCBtX2Rpc2NhcmRCYWNraW5nU3RvcmVUaW1lcihSdW5Mb29wOjpjdXJyZW50KCks
IHRoaXMsICZEcmF3aW5nQXJlYVByb3h5SW1wbDo6ZGlzY2FyZEJhY2tpbmdTdG9yZSkKIHsKLSNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
X0lQQykKICAgICAvLyBDb25zdHJ1Y3QgdGhlIHByb3h5IGVhcmx5IHRvIGFsbG93IG1lc3NhZ2Vz
IHRvIGJlIHNlbnQgdG8gdGhlIHdlYiBwcm9jZXNzIHdoaWxlIEFDIGlzIGVudGVyZWQgdGhlcmUu
CiAgICAgaWYgKHdlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPmZvcmNl
Q29tcG9zaXRpbmdNb2RlKCkpCiAgICAgICAgIG1fY29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJv
eHkgPSBhZG9wdFB0cihuZXcgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkodGhpcykpOwpA
QCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OmVudGVyQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4CiAgICAgbV9iYWNraW5n
U3RvcmUgPSBudWxscHRyOwogICAgIG1fbGF5ZXJUcmVlQ29udGV4dCA9IGxheWVyVHJlZUNvbnRl
eHQ7CiAgICAgbV93ZWJQYWdlUHJveHktPmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUo
bGF5ZXJUcmVlQ29udGV4dCk7Ci0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiAgICAgaWYgKCFtX2Nvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdFByb3h5KQogICAgICAgICBtX2Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5ID0g
YWRvcHRQdHIobmV3IENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5KHRoaXMpKTsKICNlbmRp
ZgpAQCAtMzc4LDcgKzM3OCw3IEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6OnNldE5hdGl2
ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUpCiB9CiAjZW5kaWYK
IAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1NfSVBDKQogdm9pZCBEcmF3aW5nQXJlYVByb3h5SW1wbDo6c2V0VmlzaWJsZUNvbnRlbnRz
UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpc2libGVDb250ZW50c1JlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHRyYWplY3RvcnlWZWN0b3IpCiB7CiAgICAgaWYgKG1fY29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCmluZGV4IGZhMDRiOTU2ZGE2ZmYyOWY4ODRiOTVhZTA0
YjRiOWIxZjgyNTkwNzQuLjQyOGUxOGMzYzI2YTJjNmE1ZWMzNGU1MGZhNzdhNTkxNzhlNjllOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5o
CkBAIC0zOSw3ICszOSw5IEBAIGNsYXNzIFJlZ2lvbjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
KyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogY2xhc3MgQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0UHJveHk7CisjZW5kaWYKIAogY2xhc3MgRHJhd2luZ0FyZWFQcm94eUltcGwgOiBw
dWJsaWMgRHJhd2luZ0FyZWFQcm94eSB7CiBwdWJsaWM6CkBAIC04Niw3ICs4OCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVy
VHJlZUNvbnRleHQmKTsKICAgICB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgp
OwogICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJU
cmVlQ29udGV4dCYpOwotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVu
dHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdmlzaWJsZUNvbnRlbnRzUmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgdHJhamVjdG9yeSkgT1ZFUlJJREU7CiAjZW5kaWYKICNl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA5NWY2Njk2M2FjODMw
ZmM2ZTA3NGZiMGI3MDY3ZTI3YTU5YmU1MjIwLi4xODU2OTcwNjUxNmU5NzQ4MzY4MzM2NWUzZmQy
YmFkYmIwMDNmZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTEx
Niw3ICsxMTYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgdG9vbFRpcENoYW5nZWQo
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgPSAwOwogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJ
TkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpICYmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDU19JUEMpCiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZW5kZXJG
cmFtZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGNvdmVyZWRSZWN0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VUcmFuc2l0
aW9uVmlld3BvcnRSZWFkeSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggMWM3NTJkMzYyYmE4OTczZTY4NWY5OTIwMmZkNGUyZWE0MDczMjE4Mi4u
OTBhZDUyODUyN2U2OTlkOTY5ZTEwNzI0OTlmMmU2OTM5YzY2NDdmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTkzLDcgKzkzLDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KIAotI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBD
KQogI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5TWVzc2FnZXMuaCIKICNl
bmRpZgogCkBAIC0xMTcxLDcgKzExNzEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZXhlY3V0ZUVk
aXRDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUpCiAgICAgbV9wcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpFeGVjdXRlRWRpdENvbW1hbmQoY29tbWFuZE5hbWUpLCBtX3Bh
Z2VJRCk7CiB9CiAgICAgCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTX0lQQykKIHZvaWQgV2ViUGFnZVByb3h5Ojpjb21taXRQYWdlVHJh
bnNpdGlvblZpZXdwb3J0KCkKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKQEAgLTI4MzksNyArMjgz
OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCB1aW50NjRfdCBmCiAgICAgc2hvdWxkQ2xvc2UgPSBtX3VpQ2xp
ZW50LnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh0aGlzLCBtZXNzYWdlLCBmcmFtZSk7CiB9
CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1NfSVBDKQogdm9pZCBXZWJQYWdlUHJveHk6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0
IEludFBvaW50JiBwb2ludCkKIHsKICAgICBtX3BhZ2VDbGllbnQtPnBhZ2VEaWRSZXF1ZXN0U2Ny
b2xsKHBvaW50KTsKQEAgLTI5NDIsNyArMjk0Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5k
bGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSogZG93bmxvYWQpCiB9CiAjZW5kaWYgLy8g
UExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oR1RLKQogCi0jaWYgUExB
VEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Nf
SVBDKQogdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBJbnRT
aXplJiBzaXplKQogewogICAgIG1fcGFnZUNsaWVudC0+ZGlkQ2hhbmdlQ29udGVudHNTaXplKHNp
emUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDViMTJmYzJm
M2U4YTkyYWZlMmY1MTRlYzgxZGZmZmU1MzQ3NzAzMDYuLjdmNjc4N2RiMDkyOTc2OTc1ZDY4M2Iy
NmJhZjg1ODE2YWNkZjAzYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTM2MSw3ICszNjEsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCBtYWludGFpbnNJ
bmFjdGl2ZVNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbnRhaW5zSW5hY3RpdmVTZWxl
Y3Rpb247IH0KICAgICB2b2lkIHNldE1haW50YWluc0luYWN0aXZlU2VsZWN0aW9uKGJvb2wpOwot
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKSAKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9S
RSkgJiYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKICAgICB2b2lkIGRpZFJlbmRlckZy
YW1lKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgY292ZXJlZFJlY3QpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCkBAIC00MjYs
NyArNDI2LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKEdUSykKICAgICBQbGF0Zm9ybVdpZGdl
dCB2aWV3V2lkZ2V0KCk7CiAjZW5kaWYKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNp
ZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkgJiYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQ
QykKICAgICB2b2lkIGNvbW1pdFBhZ2VUcmFuc2l0aW9uVmlld3BvcnQoKTsKICNlbmRpZgogCkBA
IC04NzYsMTUgKzg3NiwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJOb3RpZmljYXRpb25z
KGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcyk7CiAgICAgdm9pZCBkaWRE
ZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKIAotI2lmIFVTRShU
SUxFRF9CQUNLSU5HX1NUT1JFKQotICAgIHZvaWQgcGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmKTsKLSAgICB2b2lkIHBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFk
eSgpOwotI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgdm9pZCBkaWRGaW5kWm9vbWFibGVB
cmVhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKQorI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDU19JUEMpCisgICAgdm9pZCBwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYpOworICAgIHZvaWQgcGFnZVRyYW5zaXRpb25WaWV3cG9ydFJl
YWR5KCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDhjMWRlOTA4Y2NkNjhjOWY1MmRjMDAwZWE5NjFjNTEz
ZTI3NTEyYzMuLmEzYTAwOTQ0NzczNTk0NGZkNjQxMjBlNjc2YWNkODMzMGU0NjVhOTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpA
QCAtNzMsMTAgKzczLDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBIYW5kbGVJ
bnB1dE1ldGhvZEtleWRvd24oKSAtPiAoYm9vbCBoYW5kbGVkKQogI2VuZGlmCiAKLSNpZiBVU0Uo
VElMRURfQkFDS0lOR19TVE9SRSkKLSAgICBQYWdlRGlkUmVxdWVzdFNjcm9sbChXZWJDb3JlOjpJ
bnRQb2ludCBwb2ludCkKLSAgICBQYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkoKQotI2VuZGlm
CiAjaWYgUExBVEZPUk0oUVQpCiAgICAgRGlkRmluZFpvb21hYmxlQXJlYShXZWJDb3JlOjpJbnRQ
b2ludCB0YXJnZXQsIFdlYkNvcmU6OkludFJlY3QgYXJlYSkKICAgICBBdXRoZW50aWNhdGlvblJl
cXVpcmVkUmVxdWVzdChXVEY6OlN0cmluZyBob3N0bmFtZSwgV1RGOjpTdHJpbmcgcmVhbG0sIFdU
Rjo6U3RyaW5nIHByZWZpbGxlZFVzZXJuYW1lKSAtPiAoV1RGOjpTdHJpbmcgdXNlcm5hbWUsIFdU
Rjo6U3RyaW5nIHBhc3N3b3JkKQpAQCAtODQsNyArODAsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdl
UHJveHkgewogICAgIFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZFJlcXVlc3QoV1RGOjpTdHJp
bmcgaG9zdG5hbWUsIHVpbnQxNl90IHBvcnQsIFdURjo6U3RyaW5nIHByZWZpbGxlZFVzZXJuYW1l
KSAtPiAoV1RGOjpTdHJpbmcgdXNlcm5hbWUsIFdURjo6U3RyaW5nIHBhc3N3b3JkKQogI2VuZGlm
CiAKLSNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKQorI2lmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDU19JUEMpCisgICAgUGFnZURpZFJlcXVlc3RTY3JvbGwoV2ViQ29yZTo6SW50UG9p
bnQgcG9pbnQpCisgICAgUGFnZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5KCkKICAgICBEaWRDaGFu
Z2VDb250ZW50c1NpemUoV2ViQ29yZTo6SW50U2l6ZSBuZXdTaXplKQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAppbmRleCBjZTE2MDA2ZGI3NGYyMGY5NzI3NGQ0ZWIzYjU0ZmY4YWU4
YjgwZThjLi44YjU4YjhlNDcyNjRlN2QyMDAwZTc3MjAxMzkxYTI2NTZkMjQ4ODM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00ODEsOCArNDgxLDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6
ZSkgY29uCiAgICAgaWYgKG1fcGFnZS0+dXNlRml4ZWRMYXlvdXQoKSkKICAgICAgICAgbV9wYWdl
LT5kcmF3aW5nQXJlYSgpLT5sYXllclRyZWVIb3N0KCktPnNpemVEaWRDaGFuZ2Uoc2l6ZSk7CiAK
KyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VDb250ZW50c1NpemUoc2l6ZSkpOwogI2VuZGlm
CisjZW5kaWYKIAogICAgIG1fcGFnZS0+ZHJhd2luZ0FyZWEoKS0+bWFpbkZyYW1lQ29udGVudFNp
emVDaGFuZ2VkKHNpemUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2NiZWVlNmI4NzIyYzRhNGY1YzZjZmQ0NzIwOWQ3NzgzNmUwZjdkZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcApAQCAtMCwwICsxLDE4OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBDb21wYW55IDEwMCwgSW5jLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFE
RUQpCisjaW5jbHVkZSAiVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuaCIKKworI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8VGhy
ZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q+IFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0OjpjcmVhdGUoV2ViUGFnZSogd2ViUGFnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KHdlYlBhZ2UpKTsKK30KKworVGhy
ZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6On5UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdCgpCit7Cit9CisKK1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpUaHJl
YWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdChXZWJQYWdlKiB3ZWJQYWdlKQorICAgIDogTGF5
ZXJUcmVlSG9zdCh3ZWJQYWdlKQorICAgICwgbV9mb3JjZVJlcGFpbnRBc3luY0NhbGxiYWNrSUQo
MCkKK3sKKyAgICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRlZENvb3JkaW5hdGVkQ29tcG9zaXRvcjo6
Y3JlYXRlKHdlYlBhZ2UtPmNvcmVQYWdlKCksIHRoaXMsIG1fd2ViUGFnZS0+c2l6ZSgpKTsKK30K
Kwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2NoZWR1bGVMYXllckZs
dXNoKCkKK3sKKyAgICBtX2NvbXBvc2l0b3ItPnNjaGVkdWxlTGF5ZXJGbHVzaCgpOworfQorCit2
b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRMYXllckZsdXNoU2NoZWR1
bGluZ0VuYWJsZWQoYm9vbCBsYXllckZsdXNoaW5nRW5hYmxlZCkKK3sKKyAgICBtX2NvbXBvc2l0
b3ItPnNldExheWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxlZChsYXllckZsdXNoaW5nRW5hYmxlZCk7
Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFNob3VsZE5v
dGlmeUFmdGVyTmV4dFNjaGVkdWxlZExheWVyRmx1c2goYm9vbCBub3RpZnlBZnRlclNjaGVkdWxl
ZExheWVyRmx1c2gpCit7CisgICAgbV9jb21wb3NpdG9yLT5zZXRTaG91bGROb3RpZnlBZnRlck5l
eHRTY2hlZHVsZWRMYXllckZsdXNoKG5vdGlmeUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVzaCk7Cit9
CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFJvb3RDb21wb3Np
dGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit7CisgICAg
bV9jb21wb3NpdG9yLT5zZXRSb290Q29tcG9zaXRpbmdMYXllcihncmFwaGljc0xheWVyKTsKK30K
Kwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6aW52YWxpZGF0ZSgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdDo6c2Nyb2xsTm9uQ29tcG9zaXRlZENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHJlY3QpCit7CisgICAgbV9jb21wb3NpdG9yLT5zY3JvbGxUbyhyZWN0LmxvY2F0aW9u
KCkpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpmb3JjZVJl
cGFpbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgVGhyZWFkZWRDb29y
ZGluYXRlZExheWVyVHJlZUhvc3Q6OmZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNr
SUQpCit7CisgICAgLy8gV2UgZXhwZWN0IHRoZSBVSSBwcm9jZXNzIHRvIG5vdCByZXF1aXJlIGEg
bmV3IHJlcGFpbnQgdW50aWwgdGhlIHByZXZpb3VzIG9uZSBoYXMgZmluaXNoZWQuCisgICAgQVNT
RVJUKCFtX2ZvcmNlUmVwYWludEFzeW5jQ2FsbGJhY2tJRCk7CisgICAgbV9mb3JjZVJlcGFpbnRB
c3luY0NhbGxiYWNrSUQgPSBjYWxsYmFja0lEOworICAgIG1fY29tcG9zaXRvci0+c2NoZWR1bGVM
YXllckZsdXNoKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGlu
YXRlZExheWVyVHJlZUhvc3Q6OnNpemVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
bmV3U2l6ZSkKK3sKKyAgICBtX2NvbXBvc2l0b3ItPmNvbnRlbnRzU2l6ZUNoYW5nZWQobmV3U2l6
ZSk7CisKKyAgICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKQorICAgICAgICBtX3BhZ2VPdmVybGF5
TGF5ZXItPnNldFNpemUobmV3U2l6ZSk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3Q6OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpCit7CisgICAgbV9j
b21wb3NpdG9yLT5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKKworICAgIGlmICht
X3BhZ2VPdmVybGF5TGF5ZXIpCisgICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+ZGV2aWNlT3JQ
YWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3Q6OmRpZEluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSogcGFnZU92ZXJs
YXkpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdDo6ZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqIHBh
Z2VPdmVybGF5KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRD
b29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KFBhZ2VP
dmVybGF5KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKK3sKKyAgICBBU1NFUlQobV9w
YWdlT3ZlcmxheUxheWVyKTsKKyAgICBtX3BhZ2VPdmVybGF5TGF5ZXItPnNldE5lZWRzRGlzcGxh
eUluUmVjdChyZWN0KTsKKyAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwordm9pZCBUaHJl
YWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZU92ZXJsYXlPcGFjaXR5KFBhZ2VP
dmVybGF5KiwgZmxvYXQgdmFsdWUpCit7CisgICAgQVNTRVJUKG1fcGFnZU92ZXJsYXlMYXllcik7
CisgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zZXRPcGFjaXR5KHZhbHVlKTsKKyAgICBzY2hlZHVs
ZUxheWVyRmx1c2goKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dDo6cGF1c2VSZW5kZXJpbmcoKQoreworICAgIG1fY29tcG9zaXRvci0+cGF1c2VSZW5kZXJpbmco
KTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6cmVzdW1lUmVu
ZGVyaW5nKCkKK3sKKyAgICBtX2NvbXBvc2l0b3ItPnJlc3VtZVJlbmRlcmluZygpOworfQorCitH
cmFwaGljc0xheWVyRmFjdG9yeSogVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6Omdy
YXBoaWNzTGF5ZXJGYWN0b3J5KCkKK3sKKyAgICByZXR1cm4gbV9jb21wb3NpdG9yLT5ncmFwaGlj
c0xheWVyRmFjdG9yeSgpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0OjpzZXRCYWNrZ3JvdW5kQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6OnZpZXdwb3J0U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6
ZSkKK3sKKyAgICBtX2NvbXBvc2l0b3ItPnZpZXdwb3J0U2l6ZUNoYW5nZWQoc2l6ZSk7Cit9CisK
K3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmRpZENoYW5nZVZpZXdwb3J0
UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHIpCit7Cisg
ICAgbV9jb21wb3NpdG9yLT52aWV3cG9ydEF0dHJpYnV0ZUNoYW5nZWQoYXR0cik7Cit9CisKK3Zv
aWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmRpZFNjYWxlRmFjdG9yQ2hhbmdl
ZChmbG9hdCBzY2FsZSwgY29uc3QgSW50UG9pbnQmIG9yaWdpbikKK3sKKyAgICBtX3dlYlBhZ2Ut
PnNjYWxlUGFnZShzY2FsZSwgb3JpZ2luKTsKK30KKworI2lmIFBMQVRGT1JNKEdUSykKK3ZvaWQg
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVG
b3JDb21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUpCit7CisgICAgbV9sYXllclRyZWVDb250ZXh0
LndpbmRvd0hhbmRsZSA9IGhhbmRsZTsKKyAgICBtX2NvbXBvc2l0b3ItPnNldE5hdGl2ZVN1cmZh
Y2VIYW5kbGVGb3JDb21wb3NpdGluZyhoYW5kbGUpOworfQorI2VuZGlmCisKK2Jvb2wgTGF5ZXJU
cmVlSG9zdDo6c3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkKK3sKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjQ3ZDQx
YjcwNTE3YWNkNWIzZmFjYzkzZDJlOWRkNzBjMDZjZWI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFk
ZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuaApAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBDb21wYW55IDEwMCwgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFRo
cmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0X2gKKyNkZWZpbmUgVGhyZWFkZWRDb29yZGlu
YXRlZExheWVyVHJlZUhvc3RfaAorCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVB
REVEKQorCisjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4dC5oIgorI2luY2x1ZGUgIkxheWVyVHJl
ZUhvc3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9UaHJlYWRlZENvb3JkaW5hdGVkQ29tcG9zaXRvci5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgR3JhcGhpY3NMYXllckZhY3Rvcnk7Cit9
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBUaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCA6IHB1YmxpYyBMYXllclRyZWVIb3N0LCBwdWJsaWMg
V2ViQ29yZTo6VGhyZWFkZWRDb29yZGluYXRlZENvbXBvc2l0b3I6OkNsaWVudCB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q+
IGNyZWF0ZShXZWJQYWdlKik7CisgICAgdmlydHVhbCB+VGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3QoKTsKKworICAgIHZpcnR1YWwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJU
cmVlQ29udGV4dCgpIE9WRVJSSURFIHsgcmV0dXJuIG1fbGF5ZXJUcmVlQ29udGV4dDsgfTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUxheWVyRmx1c2goKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkKGJvb2wpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGROb3RpZnlBZnRlck5leHRTY2hlZHVsZWRMYXllckZs
dXNoKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdM
YXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGludmFsaWRhdGUoKSBPVkVSUklERTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXROb25Db21wb3Np
dGVkQ29udGVudHNOZWVkRGlzcGxheSgpIE9WRVJSSURFIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpIE9WRVJSSURFIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsTm9uQ29tcG9z
aXRlZENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNjcm9sbFJlY3QpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBmb3JjZVJlcGFpbnQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0X3QgLypjYWxsYmFja0lEKi8pIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBzaXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IG5ld1NpemUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZh
Y3RvckNoYW5nZWQoKSBPVkVSUklERTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRJbnN0YWxsUGFn
ZU92ZXJsYXkoUGFnZU92ZXJsYXkqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkVW5p
bnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkoUGFnZU92ZXJsYXkqLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VPdmVybGF5T3Bh
Y2l0eShQYWdlT3ZlcmxheSosIGZsb2F0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgcGFn
ZU92ZXJsYXlTaG91bGRBcHBseUZhZGVXaGVuUGFpbnRpbmcoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorCisgICAgdmlydHVhbCB2b2lkIHBhdXNlUmVuZGVyaW5nKCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHJlc3VtZVJlbmRlcmluZygpIE9WRVJSSURFOworCisgICAgdmlydHVhbCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IFdlYkNvcmU6
OkNvbG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhZ2VCYWNrZ3JvdW5kVHJhbnNw
YXJlbmN5Q2hhbmdlZCgpIE9WRVJSSURFIHsgfTsKKworICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9y
dFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdw
b3J0QXR0cmlidXRlcyYpIE9WRVJSSURFOworCisjaWYgUExBVEZPUk0oR1RLKQorICAgIHZpcnR1
YWwgdm9pZCBzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QpIE9W
RVJSSURFOworI2VuZGlmCisKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBUaHJlYWRlZENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdChXZWJQYWdlKik7CisKK3ByaXZhdGU6CisKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkU2NhbGVGYWN0b3JDaGFuZ2VkKGZsb2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgb3JpZ2luKSBPVkVSUklERTsKKworICAgIExheWVyVHJlZUNvbnRleHQgbV9sYXll
clRyZWVDb250ZXh0OworICAgIHVpbnQ2NF90IG1fZm9yY2VSZXBhaW50QXN5bmNDYWxsYmFja0lE
OworCisgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9wcmV2U2Nyb2xsUG9zaXRpb247CisKKyAgICAv
LyBUaGUgcGFnZSBvdmVybGF5IGxheWVyLiBXaWxsIGJlIG51bGwgaWYgdGhlcmUncyBubyBwYWdl
IG92ZXJsYXkuCisgICAgT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fcGFnZU92ZXJs
YXlMYXllcjsKKyAgICBSZWZQdHI8UGFnZU92ZXJsYXk+IG1fcGFnZU92ZXJsYXk7CisKKyAgICBP
d25QdHI8V2ViQ29yZTo6VGhyZWFkZWRDb29yZGluYXRlZENvbXBvc2l0b3I+IG1fY29tcG9zaXRv
cjsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisKKyNlbmRpZiAvLyBUaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYS5oCmluZGV4IDk2OTg0MDhiOTljMjg4ZDRjY2JjMTlmZDY0MDU3Y2VmY2M0NWZh
MmUuLmYyNzNjZGM4YmJlZTgwY2ViYjQzYWNjNzI3ZWZhNmU4YWMxMWM4YmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCkBAIC05Nyw3ICs5
Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVy
Rmx1c2goKSA9IDA7CiAjZW5kaWYKIAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwg
Q29yZUlQQzo6TWVzc2FnZURlY29kZXImKSA9IDA7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcAppbmRleCAy
MGNlMjYyMWFjOTE1ZWU2ZTcxNTI4NmIwYzAxYWZmNTkyMTJkNWZhLi4xNTBjOGJhMmY0NmM0ZGEz
YWI3ZmU3NWQ5YjlhMGYwMWE3ODg1MTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcApAQCAtNzQ2LDcgKzc0Niw3IEBA
IHZvaWQgRHJhd2luZ0FyZWFJbXBsOjpkaXNwbGF5KFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiAg
ICAgbV9kaXNwbGF5VGltZXIuc3RvcCgpOwogfQogCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiB2b2lkIERyYXdpbmdBcmVh
SW1wbDo6ZGlkUmVjZWl2ZUNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIp
CiB7CiAgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKQEAgLTc3NSw2ICs3NzUsOCBAQCB2b2lkIERy
YXdpbmdBcmVhSW1wbDo6c2V0TGF5ZXJIb3N0aW5nTW9kZSh1aW50MzJfdCBvcGFxdWVMYXllckhv
c3RpbmdNb2RlKQogdm9pZCBEcmF3aW5nQXJlYUltcGw6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVG
b3JDb21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUpCiB7CiAgICAgbV9uYXRpdmVTdXJmYWNlSGFu
ZGxlRm9yQ29tcG9zaXRpbmcgPSBoYW5kbGU7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAg
ICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRp
bmcoaGFuZGxlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKaW5kZXggNzg5YjBlNGE1NTc0N2QzMjMxNTM2
NjY2MjYyNmIwOWMyYTgwNDBlMC4uY2EzM2Y5NWNmZGVkMmRlMGM4ZDU1YTRiZGY3ZjQxYzc0Nzhj
ODNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYUltcGwuaApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QpIE9WRVJSSURF
OwogI2VuZGlmCiAKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTX0lQQykKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VEZWNvZGVyJik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IGE0YTEwMzk4NGJmNGIzNWIzZWY2
YTQ0ZWQ0Yjc3ZGQ4NTg1YTRkNjEuLjJkYTRmZDQ2MjBmNjJhYjQxNjRmZGQ5ODM3Yjc5MWFhYmQx
MDU0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXll
clRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5
ZXJUcmVlSG9zdC5jcHAKQEAgLTMwLDEwICszMCwxNCBAQAogI2luY2x1ZGUgIkxheWVyVHJlZUhv
c3RNYWMuaCIKICNlbmRpZgogCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0LmgiCiAjZW5kaWYKIAorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURF
RCkKKyNpbmNsdWRlICJUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oIgorI2VuZGlm
CisKICNpZiBQTEFURk9STShHVEspICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICNpbmNsdWRl
ICJMYXllclRyZWVIb3N0R3RrLmgiCiAjZW5kaWYKQEAgLTQ2LDggKzUwLDEwIEBAIFBhc3NSZWZQ
dHI8TGF5ZXJUcmVlSG9zdD4gTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2Up
CiB7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHJldHVybiBMYXllclRyZWVIb3N0TWFjOjpjcmVh
dGUod2ViUGFnZSk7Ci0jZWxpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjZWxpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIHJldHVybiBDb29yZGluYXRlZExheWVyVHJl
ZUhvc3Q6OmNyZWF0ZSh3ZWJQYWdlKTsKKyNlbGlmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19U
SFJFQURFRCkKKyAgICByZXR1cm4gVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNy
ZWF0ZSh3ZWJQYWdlKTsKICNlbGlmIFBMQVRGT1JNKEdUSykgJiYgVVNFKFRFWFRVUkVfTUFQUEVS
X0dMKQogICAgIHJldHVybiBMYXllclRyZWVIb3N0R3RrOjpjcmVhdGUod2ViUGFnZSk7CiAjZWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJl
ZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0
LmgKaW5kZXggMmZhZDJkMTNjZjI1ZDgzNmVjZmFiYTNhYmZlNmFmODk4MDI0MGEyNi4uNTJmMDZl
ODAxMTU1N2QzZGY0MTk1MmY4MWU0YmJlZTQ3NjY1MTkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCkBAIC00Myw2ICs0MywxMCBA
QCBjbGFzcyBJbnRSZWN0OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBj
bGFzcyBHcmFwaGljc0xheWVyRmFjdG9yeTsKKworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElD
U19USFJFQURFRCkKK2NsYXNzIFZpZXdwb3J0QXR0cmlidXRlczsKKyNlbmRpZgogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTg2LDE1ICs5MCwyNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSB7IHJl
dHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEJhY2tncm91bmRDb2xvcihjb25zdCBXZWJD
b3JlOjpDb2xvciYpIHsgfQogCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVD
b29yZGluYXRlZExheWVyVHJlZUhvc3RNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlRGVjb2RlciYpID0gMDsKICNlbmRpZgogCisjaWYgVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTX1RIUkVBREVEKQorICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydFNpemVDaGFuZ2Vk
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5n
ZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKSA9
IDA7CisjZW5kaWYKKworI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgUExBVEZPUk0oR1RL
KQorICAgIHZpcnR1YWwgdm9pZCBzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmco
dWludDY0X3QpIHsgfQorI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2
b2lkIHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSkgeyB9CiAjZW5kaWYKIAot
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykgJiYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpICYmIEVOQUJMRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24o
KSA9IDA7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDcxY2Q2Njc0NTE1N2VmN2U5YWVlMzYwMjM0OTk3N2ZkZGY5OTQ2ZDYu
LjI0MTI4YjA5NjFlZjZjN2YxZDUwZDNhNjdmYWU5ZTFjNzJiZmM2NWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE4OSw3ICsxODksNyBA
QAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNlbmRpZgogCi0jaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19J
UEMpCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0TWVzc2FnZXMuaCIKICNlbmRp
ZgogCkBAIC0zOTgsNyArMzk4LDcgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQs
IGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAKICAgICAvLyBG
SVhNRTogVGhpcyBzaG91bGQgYmUgZG9uZSBpbiB0aGUgb2JqZWN0IGNvbnN0cnVjdG9ycywgYW5k
IHRoZSBvYmplY3RzIHRoZW1zZWx2ZXMgc2hvdWxkIGJlIG1lc3NhZ2UgcmVjZWl2ZXJzLgogICAg
IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6RHJhd2lu
Z0FyZWE6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlSUQsIHRoaXMpOwotI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQog
ICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Q29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlELCB0
aGlzKTsKICNlbmRpZgogI2lmIEVOQUJMRShJTlNQRUNUT1IpCkBAIC00MzQsNyArNDM0LDcgQEAg
V2ViUGFnZTo6fldlYlBhZ2UoKQogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGRvbmUg
aW4gdGhlIG9iamVjdCBkZXN0cnVjdG9ycywgYW5kIHRoZSBvYmplY3RzIHRoZW1zZWx2ZXMgc2hv
dWxkIGJlIG1lc3NhZ2UgcmVjZWl2ZXJzLgogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6RHJhd2luZ0FyZWE6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSwgbV9wYWdlSUQpOwotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlEKTsKICNlbmRpZgogI2lmIEVOQUJMRShJTlNQRUNU
T1IpCkBAIC0xMDgyLDggKzEwODIsMTMgQEAgdm9pZCBXZWJQYWdlOjpzZXRTaXplKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIHZpZXdTaXplKQogICAgIG1fdmlld1NpemUgPSB2aWV3U2l6ZTsKIAog
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotICAgIGlmICh2aWV3LT51c2VGaXhlZExheW91
dCgpKQorICAgIGlmICh2aWV3LT51c2VGaXhlZExheW91dCgpKSB7CiAgICAgICAgIHNlbmRWaWV3
cG9ydEF0dHJpYnV0ZXNDaGFuZ2VkKCk7CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RI
UkVBREVEKQorICAgICAgICBpZiAobV9kcmF3aW5nQXJlYS0+bGF5ZXJUcmVlSG9zdCgpKQorICAg
ICAgICAgICAgbV9kcmF3aW5nQXJlYS0+bGF5ZXJUcmVlSG9zdCgpLT52aWV3cG9ydFNpemVDaGFu
Z2VkKHZpZXdTaXplKTsKKyNlbmRpZgorICAgIH0KICNlbmRpZgogfQogCkBAIC0xMTM3LDcgKzEx
NDIsMTIgQEAgdm9pZCBXZWJQYWdlOjpzZW5kVmlld3BvcnRBdHRyaWJ1dGVzQ2hhbmdlZCgpCiAg
ICAgLy8gVGhpcyBhbHNvIHRha2VzIGNhcmUgb2YgdGhlIHJlbGF5b3V0LgogICAgIHNldEZpeGVk
TGF5b3V0U2l6ZShyb3VuZGVkSW50U2l6ZShhdHRyLmxheW91dFNpemUpKTsKIAorI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDU19JUEMpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoYXR0cikpOworI2VsaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX1RIUkVBREVEKQorICAgIGlmIChtX2RyYXdpbmdBcmVhLT5sYXllclRyZWVI
b3N0KCkpCisgICAgICAgIG1fZHJhd2luZ0FyZWEtPmxheWVyVHJlZUhvc3QoKS0+ZGlkQ2hhbmdl
Vmlld3BvcnRQcm9wZXJ0aWVzKGF0dHIpOworI2VuZGlmCiB9CiAjZW5kaWYKIApAQCAtMTU1Miw3
ICsxNTYyLDExIEBAIHZvaWQgV2ViUGFnZTo6cGFnZURpZFNjcm9sbCgpCiAjaWYgVVNFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCiB2b2lkIFdlYlBhZ2U6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0
IEludFBvaW50JiBwb2ludCkKIHsKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQog
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UGFnZURpZFJlcXVlc3RTY3JvbGwocG9p
bnQpKTsKKyNlbGlmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAgICBkcmF3
aW5nQXJlYSgpLT5zY3JvbGwoSW50UmVjdChwb2ludCwgSW50U2l6ZSgpKSwgSW50U2l6ZSgpKTsK
KyNlbmRpZgogfQogI2VuZGlmCiAKQEAgLTIwOTgsNyArMjExMiw3IEBAIHZvaWQgV2ViUGFnZTo6
ZGlkVXBkYXRlSW5XaW5kb3dTdGF0ZVRpbWVyRmlyZWQoKQogCiBpbmxpbmUgYm9vbCBXZWJQYWdl
OjpjYW5IYW5kbGVVc2VyRXZlbnRzKCkgY29uc3QKIHsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19T
VE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIC8vIFNob3VsZCBh
cHBseSBvbmx5IGlmIHRoZSBhcmVhIHdhcyBmcm96ZW4gYnkgZGlkU3RhcnRQYWdlVHJhbnNpdGlv
bigpLgogICAgIHJldHVybiAhbV9kcmF3aW5nQXJlYS0+bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigp
OwogI2VuZGlmCkBAIC0yMTQ4LDcgKzIxNjIsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFN0YXJ0UGFn
ZVRyYW5zaXRpb24oKQogCiB2b2lkIFdlYlBhZ2U6OmRpZENvbXBsZXRlUGFnZVRyYW5zaXRpb24o
KQogewotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElOQVRFRF9H
UkFQSElDU19JUEMpCiAgICAgaWYgKG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5k
ZWxlZ2F0ZXNTY3JvbGxpbmcoKSkKICAgICAgICAgLy8gV2FpdCB1bnRpbCB0aGUgVUkgcHJvY2Vz
cyBzZW50IHVzIHRoZSB2aXNpYmxlIHJlY3QgaXQgd2FudHMgcmVuZGVyZWQuCiAgICAgICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UGFnZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5KCkp
OwpAQCAtMzA0Myw3ICszMDU3LDcgQEAgdm9pZCBXZWJQYWdlOjptYWluRnJhbWVEaWRMYXlvdXQo
KQogICAgICAgICBtX2NhY2hlZFBhZ2VDb3VudCA9IHBhZ2VDb3VudDsKICAgICB9CiAKLSNpZiBV
U0UoVElMRURfQkFDS0lOR19TVE9SRSkgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQor
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiAgICAgaWYgKG1fZHJhd2luZ0FyZWEg
JiYgbV9kcmF3aW5nQXJlYS0+bGF5ZXJUcmVlSG9zdCgpKSB7CiAgICAgICAgIGRvdWJsZSByZWQs
IGdyZWVuLCBibHVlLCBhbHBoYTsKICAgICAgICAgbV9tYWluRnJhbWUtPmdldERvY3VtZW50QmFj
a2dyb3VuZENvbG9yKCZyZWQsICZncmVlbiwgJmJsdWUsICZhbHBoYSk7CkBAIC0zMTQ3LDcgKzMx
NjEsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6Q29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgaWYgKG1fZHJhd2luZ0FyZWEp
CiAgICAgICAgICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKQEAgLTM2NDgsNyArMzY2Miw3IEBA
IGJvb2wgV2ViUGFnZTo6Y2FuSGFuZGxlUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCiAgICAgcmV0dXJuIHBsYXRmb3JtQ2FuSGFuZGxlUmVxdWVzdChyZXF1
ZXN0KTsKIH0KIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDU19JUEMpCiB2b2lkIFdlYlBhZ2U6OmNvbW1pdFBhZ2VUcmFuc2l0aW9uVmll
d3BvcnQoKQogewogICAgIG1fZHJhd2luZ0FyZWEtPnNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4o
ZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggZjQzZmQ3MzdlZjRhNzlkMTNiZDg5OWViYzgxMGE5NmIyY2UwYjFmYy4uMzJiZjIxOTFlMWMx
ZjZhOTc0ZmYwMzM3MDE0NTRmOTgyODFiNDQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00NTAsNyArNDUwLDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0VGhlbWVQYXRoKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAKLSNpZiBVU0UoVElMRURf
QkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIHZv
aWQgY29tbWl0UGFnZVRyYW5zaXRpb25WaWV3cG9ydCgpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5k
ZXggNTkxNzljNGM4ZDQ5YzNjNWI4ZDUzYjNjN2NiYjgxYzFhYjA3MDU1OS4uNjQxNGM0NGUyODY1
MGE3ZWU3MGExMGIxZjY2MDdkMzU5Zjc0N2YwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTI0OSw3ICsyNDks
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRUaGVtZVBh
dGgoV1RGOjpTdHJpbmcgdGhlbWVQYXRoKQogI2VuZGlmCiAKLSNpZiBVU0UoVElMRURfQkFDS0lO
R19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIENvbW1pdFBh
Z2VUcmFuc2l0aW9uVmlld3BvcnQoKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcAppbmRleCA1NGM4ZGYzZTBjYmNl
Yzc1ZDcwOTJjMmIyNDI2YWM3ZmY1MWM0ZWY4Li43ZjczNDZmMzlmMTJkYjQ5ZTdkYzU5MjBlNDcz
YTBkMTYzZmM4OWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9X
ZWJQcm9jZXNzTWFpbkd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsv
V2ViUHJvY2Vzc01haW5HdGsuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1
ZGUgPFdlYktpdDIvV2ViUHJvY2Vzcy5oPgorI2luY2x1ZGUgPFgxMS9YbGliLmg+CiAjaW5jbHVk
ZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPGxpYmludGwuaD4KICNpbmNsdWRlIDxsaWJzb3VwL3Nv
dXAuaD4KQEAgLTU0LDYgKzU1LDcgQEAgV0tfRVhQT1JUIGludCBXZWJQcm9jZXNzTWFpbkd0ayhp
bnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICBzbGVlcCgzMCk7CiAjZW5kaWYKIAorICAg
IFhJbml0VGhyZWFkcygpOwogICAgIGd0a19pbml0KCZhcmdjLCAmYXJndik7CiAKICAgICBiaW5k
dGV4dGRvbWFpbihHRVRURVhUX1BBQ0tBR0UsIFBBQ0tBR0VfTE9DQUxFX0RJUik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25z
RWZsLmNtYWtlCmluZGV4IDVhZGI1NDk5Mjg5MDJkY2YyNjQwNjYzZWY0YzMyZDVhODY5NjcxZGIu
LjBhMmM1OTEwYmFiYWExZjYyYTc3ZWRlZWM1MTYwNmVlMDIxMDYxM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZs
LmNtYWtlCkBAIC0xODQsNiArMTg0LDcgQEAgaWYgKFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9S
RSkKICAgICBhZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
PTEpCiAKICAgICBhZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX0NPT1JESU5BVEVEX0dSQVBISUNT
PTEpCisgICAgYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9DT09SRElOQVRFRF9HUkFQSElDU19J
UEM9MSkKIAogICAgIHNldChXVEZfVVNFX1RFWFRVUkVfTUFQUEVSIDEpCiAgICAgYWRkX2RlZmlu
aXRpb25zKC1EV1RGX1VTRV9URVhUVVJFX01BUFBFUj0xKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9n
IGIvQ2hhbmdlTG9nCmluZGV4IDBjMGZjNzk1MmViNTM2OGIxNzI0MDU5NGU2MTliNjRjYjYwNDlh
MDguLjc5MTViOTdjZmU5YWNiNTBmZWNkNTgxNTliZjQ0N2RmZDZkMGFlYWYgMTAwNjQ0Ci0tLSBh
L0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNyBAQAogMjAxMy0wNi0wNSAg
R3dhbmcgWW9vbiBId2FuZyAgPHJ5dW1pZWxAY29tcGFueTEwMC5uZXQ+CiAKKyAgICAgICAgW1dL
Ml1bR1RLXSBJbXBsZW1lbnQgdGhyZWFkZWQgY29tcG9zaXRpbmcgZm9yIFdlYktpdDIgR3RrLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MjY1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ09PUkRJTkFU
RURfR1JBUEhJQ1NfSVBDIHNob3VsZCBiZSBkZWNsYWlyZWQgdG8gdXNlIENvb3JkaW5hdGVkCisg
ICAgICAgIEdyYXBoaWNzIGluIFdlYktpdEVGTC4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlOgorCisyMDEzLTA2LTA1ICBHd2FuZyBZb29uIEh3YW5nICA8cnl1bWll
bEBjb21wYW55MTAwLm5ldD4KKwogICAgICAgICBbV0sxXVtHVEtdIEFkZCBzdXBwb3J0IHRvIHVz
ZSBUaHJlYWRlZCBDb29yZGluYXRlZCBHcmFwaGljcy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzIyNwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206079</attachid>
            <date>2013-07-04 05:05:50 -0700</date>
            <delta_ts>2014-12-15 04:17:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118265-20130704210338.patch</filename>
            <type>text/plain</type>
            <size>45472</size>
            <attacher name="Gwang Yoon Hwang">yoon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDEyNTQxOGQ4NjU4ODAyNzI2OGMyZWEx
NzhlMDVmOGFmZDkxOTExZDAuLjI5YzU0YmEwODkwNmEwYWJiN2E2NmEzZmYwZGU3NWYzZjYwY2E1
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDctMDQgIEd3YW5nIFlvb24gSHdhbmcgIDxy
eXVtaWVsQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtXSzJdW0dUS10gSW1wbGVtZW50IHRo
cmVhZGVkIGNvbXBvc2l0aW5nIGZvciBXZWJLaXQyIEd0ay4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODI2NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENPT1JESU5BVEVEX0dSQVBISUNTX0lQQyBzaG91
bGQgYmUgZGVjbGFpcmVkIHRvIHVzZSBDb29yZGluYXRlZAorICAgICAgICBHcmFwaGljcyBpbiBX
ZWJLaXRRVC4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDEzLTA3LTAzICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5kb3dzXSBVbnJl
dmlld2VkIGJ1aWxkIGNvcnJlY3Rpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGJhODNmYzFjYTliYmIxYmRl
ZjM2YWQ1MTE4YmUyN2EyYTU4ZmRjMC4uNDE1YWMzODcyMDdhMGE0ZTYwNWRhNmMzNzQ1MWU2M2Uz
NmIwODg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDEzLTA3LTA0ICBHd2FuZyBZ
b29uIEh3YW5nICA8cnl1bWllbEBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBbV0syXVtHVEtd
IEltcGxlbWVudCB0aHJlYWRlZCBjb21wb3NpdGluZyBmb3IgV2ViS2l0MiBHdGsuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgyNjUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCeSBpbXBsZW1lbnRpbmcg
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QsIHRoaXMgcGF0Y2ggc3VwcG9ydHMKKyAg
ICAgICAgdGhyZWFkZWQgY29tcG9zaXRvciBmb3IgV0syLiBJbiB0aGlzIGluaXRpYWwgaW1wbGVt
ZW50YXRpb24sIHRocmVhZGVkCisgICAgICAgIGNvbXBvc2l0b3Igb25seSBzdXBwb3J0cyBmaXhl
ZExheW91dC4KKworICAgICAgICBDT09SRElOQVRFRF9HUkFQSElDU19JUEMgaXMgaW50cm9kdWNl
ZCB0byBjbGFzc2lmeSBJUEMgc3BlY2lmaWMgY29kZXMKKyAgICAgICAgZnJvbSBDb29yZGluYXRl
ZCBHcmFwaGljcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMgYW4gZXhwZXJpbWVu
dGFsIGZlYXR1cmUuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRp
bmdzLmNwcDoKKyAgICAgICAgKF9XZWJLaXRTZXR0aW5nc1ByaXZhdGU6Ol9XZWJLaXRTZXR0aW5n
c1ByaXZhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNl
LmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlQ3JlYXRlV2ViUGFnZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVBy
b3h5SW1wbDo6RHJhd2luZ0FyZWFQcm94eUltcGwpOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5n
QXJlYVByb3h5SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6Y29udGVudHNTaXplQ2hhbmdlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0Ojp+VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViS2l0
OjpUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6VGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdDo6c2NoZWR1bGVMYXllckZsdXNoKToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRD
b29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldExheWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxlZCk6
CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRT
aG91bGROb3RpZnlBZnRlck5leHRTY2hlZHVsZWRMYXllckZsdXNoKToKKyAgICAgICAgKFdlYktp
dDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFJvb3RDb21wb3NpdGluZ0xh
eWVyKToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6
OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdDo6c2Nyb2xsTm9uQ29tcG9zaXRlZENvbnRlbnRzKToKKyAgICAgICAgKFdlYktpdDo6
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmZvcmNlUmVwYWludCk6CisgICAgICAg
IChXZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpmb3JjZVJlcGFpbnRB
c3luYyk6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
OjpzaXplRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3Q6OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpkaWRJbnN0YWxsUGFnZU92
ZXJsYXkpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dDo6ZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkpOgorICAg
ICAgICAoV2ViS2l0OjpUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZU92
ZXJsYXlPcGFjaXR5KToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6OnBhdXNlUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb29y
ZGluYXRlZExheWVyVHJlZUhvc3Q6OnJlc3VtZVJlbmRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6
OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpncmFwaGljc0xheWVyRmFjdG9yeSk6
CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRC
YWNrZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdDo6dmlld3BvcnRTaXplQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlRocmVh
ZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMp
OgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6ZGlk
U2NhbGVGYWN0b3JDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb29yZGluYXRl
ZExheWVyVHJlZUhvc3Q6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3Q6OnN1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpwYWdlT3ZlcmxheVNob3VsZEFw
cGx5RmFkZVdoZW5QYWludGluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1wbDo6c2V0TmF0aXZlU3VyZmFjZUhh
bmRsZUZvckNvbXBvc2l0aW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWFJbXBsLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3Qu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0OjpjcmVhdGUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChXZWJLaXQ6Okxh
eWVyVHJlZUhvc3Q6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6fldlYlBhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6c2VuZFZpZXdwb3J0QXR0cmlidXRlc0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpwYWdlRGlkUmVxdWVzdFNjcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNhbkhhbmRsZVVzZXJFdmVudHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDb21w
bGV0ZVBhZ2VUcmFuc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bWFpbkZyYW1l
RGlkTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
TWFpbkd0ayk6CisKIDIwMTMtMDYtMDUgIEd3YW5nIFlvb24gSHdhbmcgIDxyeXVtaWVsQGNvbXBh
bnkxMDAubmV0PgogCiAgICAgICAgIFtXSzJdW0dUS10gTGV0IERyYXdpbmdBcmVhIG1hbmFnZXMg
c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1dpbmRvd0lkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAppbmRleCAxYzJkMjM5
OGQzOWFjNzllMWM1OWFmMWE1NjIyOThmMWI1OTg1ZWFhLi5jOThiMzc0NzhmNDFiMDg2MGQwNzA5
MjdkMmJkNThiNGZkZjNhZWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTg4MSw2ICs4ODEsNyBAQAogLyog
Q29tcG9zaXRpbmcgb24gdGhlIFVJLXByb2Nlc3MgaW4gV2ViS2l0MiAqLwogI2lmIFVTRSgzRF9H
UkFQSElDUykgJiYgUExBVEZPUk0oUVQpCiAjZGVmaW5lIFdURl9VU0VfQ09PUkRJTkFURURfR1JB
UEhJQ1MgMQorI2RlZmluZSBXVEZfVVNFX0NPT1JESU5BVEVEX0dSQVBISUNTX0lQQyAxCiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5h
bQppbmRleCA2MjQ3NDExYTgzMWI5ZmViNjUxZmFlZTI2ODc1OGE5MjhhM2VkMDI0Li42NWE5YWRh
YzY0ZmUwOGUwYWFiODI2ZjVlOWM2NWE1MDhkN2RmYTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQpA
QCAtMTQyLDYgKzE0Miw3IEBAIGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVS
U0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkBfbGFfQ1BQCiAJLUkkKHNyY2Rpcikv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRrIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrIFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcyBcCiAJLUkkKHRvcF9idWls
ZGRpcikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0MiBcCiAJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9pbmNsdWRlIFwKIAktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL3dlYmtpdDJndGsgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5k
ZXggYjE1MDE3ZmViOGNkMGM1Zjg4NGE1OGQ5NTkzNTk3YmRhNmEyNzYyZS4uZDdmMTQ0ZGVmODAz
Y2FiYjQ0Mzk5MTg1ZDMzMzViZjRjNjZhNDE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0
LmFtCkBAIC0xMjQzLDExICsxMjQzLDE3IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKIAoraWYgVVNFX1RIUkVBREVEX0NPTVBPU0lUT1IKK3dlYmtp
dDJfc291cmNlcyArPSBcCisgICBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAgXAor
ICAgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuaAorZWxzZQogaWYgVVNFX1RFWFRVUkVf
TUFQUEVSX0dMCiB3ZWJraXQyX3NvdXJjZXMgKz0gXAogICAgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcCBcCiAgICBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaAogZW5kaWYgIyBFTkQg
VVNFX1RFWFRVUkVfTUFQUEVSX0dMCitlbmRpZgogCiB3ZWJraXQyX3BsdWdpbl9wcm9jZXNzX2J1
aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvTlBPYmplY3RNZXNzYWdl
UmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcAppbmRleCA0Y2U4NDQyYTE1OTNmNDFj
MDIxNzgwMmFlZjE0ZmMwZTQ3OWJiZWFlLi4wMmVhZmE1OTVlMjNmMjhjM2RmNDJmN2M1ZGI3NTA0
YWIwODlkZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0U2V0dGluZ3MuY3BwCkBAIC01MSw2ICs1MSwxMCBAQCBzdHJ1Y3QgX1dlYktpdFNldHRp
bmdzUHJpdmF0ZSB7CiAgICAgICAgIGZhbnRhc3lGb250RmFtaWx5ID0gcHJlZmVyZW5jZXMtPmZh
bnRhc3lGb250RmFtaWx5KCkudXRmOCgpOwogICAgICAgICBwaWN0b2dyYXBoRm9udEZhbWlseSA9
IHByZWZlcmVuY2VzLT5waWN0b2dyYXBoRm9udEZhbWlseSgpLnV0ZjgoKTsKICAgICAgICAgZGVm
YXVsdENoYXJzZXQgPSBwcmVmZXJlbmNlcy0+ZGVmYXVsdFRleHRFbmNvZGluZ05hbWUoKS51dGY4
KCk7CisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgICAgIHBy
ZWZlcmVuY2VzLT5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKKyNlbmRpZgogICAgIH0K
IAogICAgIFJlZlB0cjxXZWJQcmVmZXJlbmNlcz4gcHJlZmVyZW5jZXM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5k
ZXggZDIyYjdkMzJlYzFhYmY0YjFkNDE0NzAyMjhmNDcxMjRhZTVmZjljNS4uNTJjZDVjNjc2OTRh
MDFkMjIxZmMxZTAxNGEyMGRhMzkzYmQ3ODcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtOTEwLDYgKzkx
MCwxMCBAQCB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ3JlYXRlV2ViUGFnZShXZWJLaXRXZWJWaWV3
QmFzZSogd2Via2l0V2ViVmlld0Jhc2UsIFdlYkNvbgogICAgIH0KICNlbmRpZgogCisjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorICAgIHByaXYtPnBhZ2VQcm94eS0+c2V0
VXNlRml4ZWRMYXlvdXQodHJ1ZSk7CisjZW5kaWYKKwogICAgIC8vIFRoaXMgbXVzdCBoYXBwZW4g
aGVyZSBpbnN0ZWFkIG9mIHRoZSBpbnN0YW5jZSBpbml0aWFsaXplciwgYmVjYXVzZSB0aGUgaW5w
dXQgbWV0aG9kCiAgICAgLy8gZmlsdGVyIG11c3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIHBhZ2UuCiAg
ICAgcHJpdi0+aW5wdXRNZXRob2RGaWx0ZXIuc2V0V2ViVmlldyh3ZWJraXRXZWJWaWV3QmFzZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaApp
bmRleCAyZmIxN2IzZWRhZWZjZWFlMWNhY2FjYTcxZjYyOTUxODJiNzIxMDc5Li4yMjlmYzg0Y2Fh
YTgxOTBkY2IyNDM0ZWFkMDQ2YmU0ODlmYzFmMTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKQEAgLTIxLDcgKzIxLDcgQEAKICNpZm5k
ZWYgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHlfaAogI2RlZmluZSBDb29yZGluYXRlZExh
eWVyVHJlZUhvc3RQcm94eV9oCiAKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKIAogI2luY2x1ZGUgIkNvb3JkaW5hdGVkR3Jh
cGhpY3NBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgpAQCAt
MzcsNiArMzcsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRHJhd2luZ0FyZWFQcm94
eTsKIAorY2xhc3MgRHJhd2luZ0FyZWFQcm94eTsKKwogY2xhc3MgQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0UHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xp
ZW50LCBwdWJsaWMgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eSk7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CkBAIC03MCw2ICs3Miw2IEBAIHByb3RlY3RlZDoKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjZW5kaWYg
Ly8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKIAogI2VuZGlmIC8vIENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdFByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9EcmF3aW5nQXJlYVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5n
QXJlYVByb3h5LmNwcAppbmRleCA0ZDQ5ZDgxNmM1NDJhN2ZiOTFmYTAxYmQ0ZmZiNTUyMTRiODcy
YmNlLi4zYjU0MDY3YTQ3MDVmMDRjNzQ3ZThjNjdiZTYyMzhlNDgxMmE4OGVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwCkBAIC0zMCwxMCArMzAs
NiBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94
eS5oIgogCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQotI2luY2x1ZGUgIkNvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgiCi0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjQsNyArNjAsNyBAQCB2b2lkIERyYXdpbmdB
cmVhUHJveHk6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3QgSW50U2l6ZSYgbGF5
ZXJQb3NpdGlvbgogICAgIHNpemVEaWRDaGFuZ2UoKTsKIH0KIAotI2lmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogdm9pZCBEcmF3
aW5nQXJlYVByb3h5Ojp1cGRhdGVWaWV3cG9ydCgpCiB7CiAgICAgbV93ZWJQYWdlUHJveHktPnNl
dFZpZXdOZWVkc0Rpc3BsYXkodmlld3BvcnRWaXNpYmxlUmVjdCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGUyNjBkYmM5NzVhYTc3NjUxMjU5
MjRjNGU0OWU1MTIyNWY5MjA2NTEuLjQ3ZjZiOTcwYmM1MzZjMGNmYmYxOGI0MWZhMDExZWQ4YjRl
MDlmNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaApA
QCAtMzYsMTAgKzM2LDEzIEBACiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CiAKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQorI2luY2x1
ZGUgIkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgiCisjZW5kaWYKKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIExheWVyVHJlZUNvbnRleHQ7Ci1jbGFzcyBDb29yZGluYXRlZExh
eWVyVHJlZUhvc3RQcm94eTsKIGNsYXNzIFVwZGF0ZUluZm87CiBjbGFzcyBXZWJQYWdlUHJveHk7
CiAKQEAgLTczLDcgKzc2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb2xvclNwYWNl
RGlkQ2hhbmdlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1pbmltdW1MYXlvdXRTaXplRGlkQ2hh
bmdlKCkgeyB9CiAKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTX0lQQykKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlld3BvcnQoKTsK
ICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgdmlld3BvcnRWaXNpYmxlUmVjdCgpIGNvbnN0
IHsgcmV0dXJuIGNvbnRlbnRzUmVjdCgpOyB9CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0
IGNvbnRlbnRzUmVjdCgpIGNvbnN0OwpAQCAtOTIsNyArOTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
V2ViQ29yZTo6SW50U2l6ZSBtX2xheWVyUG9zaXRpb247CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBt
X3Njcm9sbE9mZnNldDsKIAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIE93blB0cjxDb29yZGluYXRlZExheWVyVHJl
ZUhvc3RQcm94eT4gbV9jb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcApp
bmRleCAwYTUzOWYzNjViOGRjMmQ2ZDZiZDhhZGY1Mjk4NTQwMWQ4MTc3OGZhLi41MTZiMTZjM2Yw
ZDBjYWYyZDQ5MTU0ODAwNmIwYmE3ZTYyOWQ5ZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNp
bmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lvbi5oPgog
Ci0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQ
SElDU19JUEMpCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaCIKICNl
bmRpZgogCkBAIC01OCw3ICs1OCw3IEBAIERyYXdpbmdBcmVhUHJveHlJbXBsOjpEcmF3aW5nQXJl
YVByb3h5SW1wbChXZWJQYWdlUHJveHkqIHdlYlBhZ2VQcm94eSkKICAgICAsIG1faXNCYWNraW5n
U3RvcmVEaXNjYXJkYWJsZSh0cnVlKQogICAgICwgbV9kaXNjYXJkQmFja2luZ1N0b3JlVGltZXIo
UnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmRHJhd2luZ0FyZWFQcm94eUltcGw6OmRpc2NhcmRC
YWNraW5nU3RvcmUpCiB7Ci0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDU19JUEMpCiAgICAgLy8gQ29uc3RydWN0IHRoZSBwcm94eSBlYXJs
eSB0byBhbGxvdyBtZXNzYWdlcyB0byBiZSBzZW50IHRvIHRoZSB3ZWIgcHJvY2VzcyB3aGlsZSBB
QyBpcyBlbnRlcmVkIHRoZXJlLgogICAgIGlmICh3ZWJQYWdlUHJveHktPnBhZ2VHcm91cCgpLT5w
cmVmZXJlbmNlcygpLT5mb3JjZUNvbXBvc2l0aW5nTW9kZSgpKQogICAgICAgICBtX2Nvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdFByb3h5ID0gYWRvcHRQdHIobmV3IENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdFByb3h5KHRoaXMpKTsKQEAgLTM2NSw3ICszNjUsNyBAQCB2b2lkIERyYXdpbmdBcmVhUHJv
eHlJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNv
bnRleAogICAgIG1fYmFja2luZ1N0b3JlID0gbnVsbHB0cjsKICAgICBtX2xheWVyVHJlZUNvbnRl
eHQgPSBsYXllclRyZWVDb250ZXh0OwogICAgIG1fd2ViUGFnZVByb3h5LT5lbnRlckFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyVHJlZUNvbnRleHQpOwotI2lmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIGlmICgh
bV9jb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eSkKICAgICAgICAgbV9jb29yZGluYXRlZExh
eWVyVHJlZUhvc3RQcm94eSA9IGFkb3B0UHRyKG5ldyBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eSh0aGlzKSk7CiAjZW5kaWYKQEAgLTM3OCw3ICszNzgsNyBAQCB2b2lkIERyYXdpbmdBcmVh
UHJveHlJbXBsOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3Qg
aGFuZGxlKQogfQogI2VuZGlmCiAKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKIHZvaWQgRHJhd2luZ0FyZWFQcm94eUltcGw6
OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB2aXNpYmxl
Q29udGVudHNSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9y
KQogewogICAgIGlmIChtX2Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAppbmRleCBmYTA0Yjk1
NmRhNmZmMjlmODg0Yjk1YWUwNGI0YjliMWY4MjU5MDc0Li40MjhlMThjM2MyNmEyYzZhNWVjMzRl
NTBmYTc3YTU5MTc4ZTY5ZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eUltcGwuaApAQCAtMzksNyArMzksOSBAQCBjbGFzcyBSZWdpb247CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKIGNs
YXNzIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OworI2VuZGlmCiAKIGNsYXNzIERyYXdp
bmdBcmVhUHJveHlJbXBsIDogcHVibGljIERyYXdpbmdBcmVhUHJveHkgewogcHVibGljOgpAQCAt
ODYsNyArODgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jik7CiAgICAgdm9pZCBleGl0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUoKTsKICAgICB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKTsKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpc2li
bGVDb250ZW50c1JlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHRyYWplY3RvcnkpIE9W
RVJSSURFOwogI2VuZGlmCiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
aW5kZXggOTVmNjY5NjNhYzgzMGZjNmUwNzRmYjBiNzA2N2UyN2E1OWJlNTIyMC4uMTg1Njk3MDY1
MTZlOTc0ODM2ODMzNjVlM2ZkMmJhZGJiMDAzZmQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2
b2lkIHRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpID0gMDsKIAot
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JF
KSAmJiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIHZpcnR1YWwgdm9pZCBwYWdl
RGlkUmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVuZGVyRnJhbWUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY29udGVudHNT
aXplLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb3ZlcmVkUmVjdCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBwYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkoKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdiNmYxOTg4YzhjZjBmOTYwN2UzNjY5
MGRmZmUyMDg0MjJmNmNkZWIuLmM3MWQzMjIwMjVhZTFkM2ZhM2JhNGZhMDZhZTYwMjJiMTEwNTQw
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC05Myw3
ICs5Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI2luY2x1ZGUg
PHN0ZGlvLmg+CiAKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTX0lQQykKICNpbmNsdWRlICJDb29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eU1lc3NhZ2VzLmgiCiAjZW5kaWYKIApAQCAtMTE3Nyw3ICsxMTc3LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lKQog
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RXhlY3V0ZUVkaXRDb21tYW5k
KGNvbW1hbmROYW1lKSwgbV9wYWdlSUQpOwogfQogICAgIAotI2lmIFVTRShUSUxFRF9CQUNLSU5H
X1NUT1JFKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6Y29tbWl0UGFnZVRyYW5zaXRpb25WaWV3cG9ydCgpCiB7CiAgICAgaWYgKCFpc1ZhbGlk
KCkpCkBAIC0yODQ1LDcgKzI4NDUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdWludDY0X3QgZgogICAgIHNo
b3VsZENsb3NlID0gbV91aUNsaWVudC5ydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodGhpcywg
bWVzc2FnZSwgZnJhbWUpOwogfQogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKIHZvaWQgV2ViUGFnZVByb3h5OjpwYWdlRGlk
UmVxdWVzdFNjcm9sbChjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CiAgICAgbV9wYWdlQ2xpZW50
LT5wYWdlRGlkUmVxdWVzdFNjcm9sbChwb2ludCk7CkBAIC0yOTQ4LDcgKzI5NDgsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqIGRvd25s
b2FkKQogfQogI2VuZGlmIC8vIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRG
T1JNKEdUSykKIAotI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpCisjaWYgVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTX0lQQykKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VDb250
ZW50c1NpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAgICBtX3BhZ2VDbGllbnQtPmRpZENo
YW5nZUNvbnRlbnRzU2l6ZShzaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCBkNzY0ZjhiNjIzODFiZmY4NzkxYTNjOWFlNWNiYzg3NDY1ZDA0ZTIxLi42ZTg5
NGRmNTJmMmRkNzljZDk3MjFkMTg0NGMzMjM2ZGE4MWRiYzBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zNjEsNyArMzYxLDcgQEAgcHVibGljOgogICAgIAog
ICAgIGJvb2wgbWFpbnRhaW5zSW5hY3RpdmVTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX21h
aW50YWluc0luYWN0aXZlU2VsZWN0aW9uOyB9CiAgICAgdm9pZCBzZXRNYWludGFpbnNJbmFjdGl2
ZVNlbGVjdGlvbihib29sKTsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkgCisjaWYgVVNF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpICYmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiAg
ICAgdm9pZCBkaWRSZW5kZXJGcmFtZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjb250ZW50c1Np
emUsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNvdmVyZWRSZWN0KTsKICNlbmRpZgogI2lmIFBM
QVRGT1JNKFFUKQpAQCAtNDI2LDcgKzQyNiw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShHVEsp
CiAgICAgUGxhdGZvcm1XaWRnZXQgdmlld1dpZGdldCgpOwogI2VuZGlmCi0jaWYgVVNFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpICYmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDU19JUEMpCiAgICAgdm9pZCBjb21taXRQYWdlVHJhbnNpdGlvblZpZXdw
b3J0KCk7CiAjZW5kaWYKIApAQCAtODc2LDE1ICs4NzYsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25J
RHMpOwogICAgIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRp
b25JRCk7CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKLSAgICB2b2lkIHBhZ2VEaWRS
ZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7Ci0gICAgdm9pZCBwYWdlVHJh
bnNpdGlvblZpZXdwb3J0UmVhZHkoKTsKLSNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQogICAgIHZv
aWQgZGlkRmluZFpvb21hYmxlQXJlYShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JN
KEVGTCkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQorICAgIHZvaWQgcGFnZURp
ZFJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKKyAgICB2b2lkIHBhZ2VU
cmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpOwogICAgIHZvaWQgZGlkQ2hhbmdlQ29udGVudHNTaXpl
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmYzJmYzNlNTc1MGFj
YzkwMTUxMWE0OWEzY2Y1ODJiOTYzYWUyZjY4Li40MzdiYTc5ZTM1ZjcyZjBjNWJlYTkwYjg0NDJi
ODQzMWM5YzFmNTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTczLDEwICs3Myw2IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAgICAgSGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKCkgLT4gKGJvb2wgaGFuZGxlZCkK
ICNlbmRpZgogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgUGFnZURpZFJlcXVl
c3RTY3JvbGwoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpCi0gICAgUGFnZVRyYW5zaXRpb25WaWV3
cG9ydFJlYWR5KCkKLSNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQogICAgIERpZEZpbmRab29tYWJs
ZUFyZWEoV2ViQ29yZTo6SW50UG9pbnQgdGFyZ2V0LCBXZWJDb3JlOjpJbnRSZWN0IGFyZWEpCiAg
ICAgQXV0aGVudGljYXRpb25SZXF1aXJlZFJlcXVlc3QoV1RGOjpTdHJpbmcgaG9zdG5hbWUsIFdU
Rjo6U3RyaW5nIHJlYWxtLCBXVEY6OlN0cmluZyBwcmVmaWxsZWRVc2VybmFtZSkgLT4gKFdURjo6
U3RyaW5nIHVzZXJuYW1lLCBXVEY6OlN0cmluZyBwYXNzd29yZCkKQEAgLTg0LDcgKzgwLDkgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWly
ZWRSZXF1ZXN0KFdURjo6U3RyaW5nIGhvc3RuYW1lLCB1aW50MTZfdCBwb3J0LCBXVEY6OlN0cmlu
ZyBwcmVmaWxsZWRVc2VybmFtZSkgLT4gKFdURjo6U3RyaW5nIHVzZXJuYW1lLCBXVEY6OlN0cmlu
ZyBwYXNzd29yZCkKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkK
KyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQorICAgIFBhZ2VEaWRSZXF1ZXN0U2Ny
b2xsKFdlYkNvcmU6OkludFBvaW50IHBvaW50KQorICAgIFBhZ2VUcmFuc2l0aW9uVmlld3BvcnRS
ZWFkeSgpCiAgICAgRGlkQ2hhbmdlQ29udGVudHNTaXplKFdlYkNvcmU6OkludFNpemUgbmV3U2l6
ZSkKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggY2UxNjAwNmRiNzRmMjBm
OTcyNzRkNGViM2I1NGZmOGFlOGI4MGU4Yy4uOGI1OGI4ZTQ3MjY0ZTdkMjAwMGU3NzIwMTM5MWEy
NjU2ZDI0ODgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNDgxLDggKzQ4MSwxMCBA
QCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUs
IGNvbnN0IEludFNpemUmIHNpemUpIGNvbgogICAgIGlmIChtX3BhZ2UtPnVzZUZpeGVkTGF5b3V0
KCkpCiAgICAgICAgIG1fcGFnZS0+ZHJhd2luZ0FyZWEoKS0+bGF5ZXJUcmVlSG9zdCgpLT5zaXpl
RGlkQ2hhbmdlKHNpemUpOwogCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKICAg
ICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlQ29udGVudHNT
aXplKHNpemUpKTsKICNlbmRpZgorI2VuZGlmCiAKICAgICBtX3BhZ2UtPmRyYXdpbmdBcmVhKCkt
Pm1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChzaXplKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRD
b29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdjYmVlZTZiODcyMmM0YTRmNWM2Y2ZkNDcyMDlkNzc4MzZlMGY3
ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAK
QEAgLTAsMCArMSwxODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQ29tcGFueSAxMDAs
IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX1RIUkVBREVEKQorI2luY2x1ZGUgIlRocmVhZGVkQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIldl
YlBhZ2UuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitQYXNzUmVmUHRyPFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0PiBUaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2UpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCh3
ZWJQYWdlKSk7Cit9CisKK1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojp+VGhyZWFk
ZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QoKQoreworfQorCitUaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QoV2ViUGFnZSog
d2ViUGFnZSkKKyAgICA6IExheWVyVHJlZUhvc3Qod2ViUGFnZSkKKyAgICAsIG1fZm9yY2VSZXBh
aW50QXN5bmNDYWxsYmFja0lEKDApCit7CisgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb29y
ZGluYXRlZENvbXBvc2l0b3I6OmNyZWF0ZSh3ZWJQYWdlLT5jb3JlUGFnZSgpLCB0aGlzLCBtX3dl
YlBhZ2UtPnNpemUoKSk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3Q6OnNjaGVkdWxlTGF5ZXJGbHVzaCgpCit7CisgICAgbV9jb21wb3NpdG9yLT5zY2hlZHVsZUxh
eWVyRmx1c2goKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6
c2V0TGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkKGJvb2wgbGF5ZXJGbHVzaGluZ0VuYWJsZWQp
Cit7CisgICAgbV9jb21wb3NpdG9yLT5zZXRMYXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQobGF5
ZXJGbHVzaGluZ0VuYWJsZWQpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0OjpzZXRTaG91bGROb3RpZnlBZnRlck5leHRTY2hlZHVsZWRMYXllckZsdXNoKGJvb2wg
bm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoKQoreworICAgIG1fY29tcG9zaXRvci0+c2V0
U2hvdWxkTm90aWZ5QWZ0ZXJOZXh0U2NoZWR1bGVkTGF5ZXJGbHVzaChub3RpZnlBZnRlclNjaGVk
dWxlZExheWVyRmx1c2gpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0OjpzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBncmFw
aGljc0xheWVyKQoreworICAgIG1fY29tcG9zaXRvci0+c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIo
Z3JhcGhpY3NMYXllcik7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3Q6OmludmFsaWRhdGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGhy
ZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNjcm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50
cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQoreworICAgIG1fY29tcG9zaXRvci0+c2Ny
b2xsVG8ocmVjdC5sb2NhdGlvbigpKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdDo6Zm9yY2VSZXBhaW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Citib29sIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpmb3JjZVJlcGFpbnRBc3lu
Yyh1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIC8vIFdlIGV4cGVjdCB0aGUgVUkgcHJvY2Vz
cyB0byBub3QgcmVxdWlyZSBhIG5ldyByZXBhaW50IHVudGlsIHRoZSBwcmV2aW91cyBvbmUgaGFz
IGZpbmlzaGVkLgorICAgIEFTU0VSVCghbV9mb3JjZVJlcGFpbnRBc3luY0NhbGxiYWNrSUQpOwor
ICAgIG1fZm9yY2VSZXBhaW50QXN5bmNDYWxsYmFja0lEID0gY2FsbGJhY2tJRDsKKyAgICBtX2Nv
bXBvc2l0b3ItPnNjaGVkdWxlTGF5ZXJGbHVzaCgpOworICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzaXplRGlkQ2hhbmdlKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIG5ld1NpemUpCit7CisgICAgbV9jb21wb3NpdG9yLT5jb250ZW50
c1NpemVDaGFuZ2VkKG5ld1NpemUpOworCisgICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikKKyAg
ICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zZXRTaXplKG5ld1NpemUpOworfQorCit2b2lkIFRo
cmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNo
YW5nZWQoKQoreworICAgIG1fY29tcG9zaXRvci0+ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFu
Z2VkKCk7CisKKyAgICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKQorICAgICAgICBtX3BhZ2VPdmVy
bGF5TGF5ZXItPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOworfQorCit2b2lkIFRo
cmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpkaWRJbnN0YWxsUGFnZU92ZXJsYXkoUGFn
ZU92ZXJsYXkqIHBhZ2VPdmVybGF5KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmRpZFVuaW5zdGFsbFBhZ2VPdmVy
bGF5KFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRQYWdlT3Zlcmxh
eU5lZWRzRGlzcGxheShQYWdlT3ZlcmxheSosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3Qp
Cit7CisgICAgQVNTRVJUKG1fcGFnZU92ZXJsYXlMYXllcik7CisgICAgbV9wYWdlT3ZlcmxheUxh
eWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QocmVjdCk7CisgICAgc2NoZWR1bGVMYXllckZsdXNo
KCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFBhZ2VP
dmVybGF5T3BhY2l0eShQYWdlT3ZlcmxheSosIGZsb2F0IHZhbHVlKQoreworICAgIEFTU0VSVCht
X3BhZ2VPdmVybGF5TGF5ZXIpOworICAgIG1fcGFnZU92ZXJsYXlMYXllci0+c2V0T3BhY2l0eSh2
YWx1ZSk7CisgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29y
ZGluYXRlZExheWVyVHJlZUhvc3Q6OnBhdXNlUmVuZGVyaW5nKCkKK3sKKyAgICBtX2NvbXBvc2l0
b3ItPnBhdXNlUmVuZGVyaW5nKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6OnJlc3VtZVJlbmRlcmluZygpCit7CisgICAgbV9jb21wb3NpdG9yLT5yZXN1bWVS
ZW5kZXJpbmcoKTsKK30KKworR3JhcGhpY3NMYXllckZhY3RvcnkqIFRocmVhZGVkQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0OjpncmFwaGljc0xheWVyRmFjdG9yeSgpCit7CisgICAgcmV0dXJuIG1f
Y29tcG9zaXRvci0+Z3JhcGhpY3NMYXllckZhY3RvcnkoKTsKK30KKwordm9pZCBUaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IFdlYkNvcmU6
OkNvbG9yJiBjb2xvcikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRocmVh
ZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojp2aWV3cG9ydFNpemVDaGFuZ2VkKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIHNpemUpCit7CisgICAgbV9jb21wb3NpdG9yLT52aWV3cG9ydFNpemVD
aGFuZ2VkKHNpemUpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
OjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRy
aWJ1dGVzJiBhdHRyKQoreworICAgIG1fY29tcG9zaXRvci0+dmlld3BvcnRBdHRyaWJ1dGVDaGFu
Z2VkKGF0dHIpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpk
aWRTY2FsZUZhY3RvckNoYW5nZWQoZmxvYXQgc2NhbGUsIGNvbnN0IEludFBvaW50JiBvcmlnaW4p
Cit7CisgICAgbV93ZWJQYWdlLT5zY2FsZVBhZ2Uoc2NhbGUsIG9yaWdpbik7Cit9CisKKyNpZiBQ
TEFURk9STShHVEspCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRO
YXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQoreworICAg
IG1fbGF5ZXJUcmVlQ29udGV4dC53aW5kb3dIYW5kbGUgPSBoYW5kbGU7CisgICAgbV9jb21wb3Np
dG9yLT5zZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcoaGFuZGxlKTsKK30KKyNl
bmRpZgorCitib29sIExheWVyVHJlZUhvc3Q6OnN1cHBvcnRzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
ZygpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29y
ZGluYXRlZExheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWY0N2Q0MWI3MDUxN2FjZDViM2ZhY2M5M2QyZTlkZDcwYzA2Y2ViOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKQEAgLTAsMCAr
MSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQ29tcGFueSAxMDAsIEluYy4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdF9oCisjZGVm
aW5lIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0X2gKKworI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDU19USFJFQURFRCkKKworI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIK
KyNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvVGhyZWFkZWRDb29yZGluYXRlZENvbXBvc2l0b3IuaD4KKyNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEdyYXBo
aWNzTGF5ZXJGYWN0b3J5OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFn
ZTsKKworY2xhc3MgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QgOiBwdWJsaWMgTGF5
ZXJUcmVlSG9zdCwgcHVibGljIFdlYkNvcmU6OlRocmVhZGVkQ29vcmRpbmF0ZWRDb21wb3NpdG9y
OjpDbGllbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRocmVhZGVkQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0PiBjcmVhdGUoV2ViUGFnZSopOworICAgIHZpcnR1YWwgflRocmVh
ZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KCk7CisKKyAgICB2aXJ0dWFsIGNvbnN0IExheWVy
VHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQoKSBPVkVSUklERSB7IHJldHVybiBtX2xheWVy
VHJlZUNvbnRleHQ7IH07CisKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoKCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldExheWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxl
ZChib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkTm90aWZ5QWZ0ZXJO
ZXh0U2NoZWR1bGVkTGF5ZXJGbHVzaChib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCkgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXkoKSBPVkVSUklERSB7IH07
CisgICAgdmlydHVhbCB2b2lkIHNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5SW5S
ZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklERSB7IH07CisgICAgdmlydHVhbCB2
b2lkIHNjcm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBz
Y3JvbGxSZWN0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9yY2VSZXBhaW50KCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIGZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IC8qY2Fs
bGJhY2tJRCovKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2l6ZURpZENoYW5nZShjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBuZXdTaXplKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkSW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGRpZFVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KFBhZ2VPdmVy
bGF5KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRQYWdlT3ZlcmxheU9wYWNpdHkoUGFnZU92ZXJsYXkqLCBmbG9hdCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBib29sIHBhZ2VPdmVybGF5U2hvdWxkQXBwbHlGYWRlV2hlblBhaW50aW5nKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgdm9pZCBwYXVzZVJlbmRlcmlu
ZygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXN1bWVSZW5kZXJpbmcoKSBPVkVSUklE
RTsKKworICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNz
TGF5ZXJGYWN0b3J5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEJhY2tncm91bmRD
b2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBw
YWdlQmFja2dyb3VuZFRyYW5zcGFyZW5jeUNoYW5nZWQoKSBPVkVSUklERSB7IH07CisKKyAgICB2
aXJ0dWFsIHZvaWQgdmlld3BvcnRTaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhj
b25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKSBPVkVSUklERTsKKworI2lmIFBMQVRG
T1JNKEdUSykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBv
c2l0aW5nKHVpbnQ2NF90KSBPVkVSUklERTsKKyNlbmRpZgorCitwcm90ZWN0ZWQ6CisgICAgZXhw
bGljaXQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QoV2ViUGFnZSopOworCitwcml2
YXRlOgorCisgICAgdmlydHVhbCB2b2lkIGRpZFNjYWxlRmFjdG9yQ2hhbmdlZChmbG9hdCBzY2Fs
ZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG9yaWdpbikgT1ZFUlJJREU7CisKKyAgICBMYXll
clRyZWVDb250ZXh0IG1fbGF5ZXJUcmVlQ29udGV4dDsKKyAgICB1aW50NjRfdCBtX2ZvcmNlUmVw
YWludEFzeW5jQ2FsbGJhY2tJRDsKKworICAgIFdlYkNvcmU6OkludFBvaW50IG1fcHJldlNjcm9s
bFBvc2l0aW9uOworCisgICAgLy8gVGhlIHBhZ2Ugb3ZlcmxheSBsYXllci4gV2lsbCBiZSBudWxs
IGlmIHRoZXJlJ3Mgbm8gcGFnZSBvdmVybGF5LgorICAgIE93blB0cjxXZWJDb3JlOjpHcmFwaGlj
c0xheWVyPiBtX3BhZ2VPdmVybGF5TGF5ZXI7CisgICAgUmVmUHRyPFBhZ2VPdmVybGF5PiBtX3Bh
Z2VPdmVybGF5OworCisgICAgT3duUHRyPFdlYkNvcmU6OlRocmVhZGVkQ29vcmRpbmF0ZWRDb21w
b3NpdG9yPiBtX2NvbXBvc2l0b3I7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorCisjZW5kaWYgLy8g
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAppbmRleCA5Njk4NDA4Yjk5YzI4OGQ0Y2Ni
YzE5ZmQ2NDA1N2NlZmNjNDVmYTJlLi5mMjczY2RjOGJiZWU4MGNlYmI0M2FjYzcyN2VmYTZlOGFj
MTFjOGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWEuaApAQCAtOTcsNyArOTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVk
dWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgPSAwOwogI2VuZGlmCiAKLSNpZiBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgPSAwOwogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYUltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhSW1wbC5jcHAKaW5kZXggMjBjZTI2MjFhYzkxNWVlNmU3MTUyODZiMGMwMWFmZjU5MjEyZDVm
YS4uMTUwYzhiYTJmNDZjNGRhM2FiN2ZlNzVkOWI5YTBmMDFhNzg4NTE2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAK
QEAgLTc0Niw3ICs3NDYsNyBAQCB2b2lkIERyYXdpbmdBcmVhSW1wbDo6ZGlzcGxheShVcGRhdGVJ
bmZvJiB1cGRhdGVJbmZvKQogICAgIG1fZGlzcGxheVRpbWVyLnN0b3AoKTsKIH0KIAotI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBD
KQogdm9pZCBEcmF3aW5nQXJlYUltcGw6OmRpZFJlY2VpdmVDb29yZGluYXRlZExheWVyVHJlZUhv
c3RNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCkBAIC03NzUs
NiArNzc1LDggQEAgdm9pZCBEcmF3aW5nQXJlYUltcGw6OnNldExheWVySG9zdGluZ01vZGUodWlu
dDMyX3Qgb3BhcXVlTGF5ZXJIb3N0aW5nTW9kZSkKIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjpzZXRO
YXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQogewogICAg
IG1fbmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nID0gaGFuZGxlOworICAgIGlmICht
X2xheWVyVHJlZUhvc3QpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0TmF0aXZlU3VyZmFj
ZUhhbmRsZUZvckNvbXBvc2l0aW5nKGhhbmRsZSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCmluZGV4IDc4
OWIwZTRhNTU3NDdkMzIzMTUzNjY2NjI2MjZiMDljMmE4MDQwZTAuLmNhMzNmOTVjZmRlZDJkZTBj
OGQ1NWE0YmRmN2Y0MWM3NDc4YzgzYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5n
KHVpbnQ2NF90KSBPVkVSUklERTsKICNlbmRpZgogCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVDb29yZGluYXRlZExheWVyVHJlZUhvc3RNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcAppbmRleCBh
NGExMDM5ODRiZjRiMzViM2VmNmE0NGVkNGI3N2RkODU4NWE0ZDYxLi4yZGE0ZmQ0NjIwZjYyYWI0
MTY0ZmRkOTgzN2I3OTFhYWJkMTA1NDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwCkBAIC0zMCwxMCArMzAsMTQgQEAKICNp
bmNsdWRlICJMYXllclRyZWVIb3N0TWFjLmgiCiAjZW5kaWYKIAotI2lmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogI2luY2x1ZGUg
IkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oIgogI2VuZGlmCiAKKyNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1NfVEhSRUFERUQpCisjaW5jbHVkZSAiVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3QuaCIKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oR1RLKSAmJiBVU0UoVEVYVFVSRV9N
QVBQRVJfR0wpCiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9zdEd0ay5oIgogI2VuZGlmCkBAIC00Niw4
ICs1MCwxMCBAQCBQYXNzUmVmUHRyPExheWVyVHJlZUhvc3Q+IExheWVyVHJlZUhvc3Q6OmNyZWF0
ZShXZWJQYWdlKiB3ZWJQYWdlKQogewogI2lmIFBMQVRGT1JNKE1BQykKICAgICByZXR1cm4gTGF5
ZXJUcmVlSG9zdE1hYzo6Y3JlYXRlKHdlYlBhZ2UpOwotI2VsaWYgVVNFKENPT1JESU5BVEVEX0dS
QVBISUNTKQorI2VsaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKICAgICByZXR1cm4g
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjcmVhdGUod2ViUGFnZSk7CisjZWxpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgcmV0dXJuIFRocmVhZGVkQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0OjpjcmVhdGUod2ViUGFnZSk7CiAjZWxpZiBQTEFURk9STShHVEspICYm
IFVTRShURVhUVVJFX01BUFBFUl9HTCkKICAgICByZXR1cm4gTGF5ZXJUcmVlSG9zdEd0azo6Y3Jl
YXRlKHdlYlBhZ2UpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDJmYWQyZDEzY2YyNWQ4MzZlY2ZhYmEzYWJmZTZh
Zjg5ODAyNDBhMjYuLjUyZjA2ZTgwMTE1NTdkM2RmNDE5NTJmODFlNGJiZWU0NzY2NTE5MGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3Qu
aApAQCAtNDMsNiArNDMsMTAgQEAgY2xhc3MgSW50UmVjdDsKIGNsYXNzIEludFNpemU7CiBjbGFz
cyBHcmFwaGljc0xheWVyOwogY2xhc3MgR3JhcGhpY3NMYXllckZhY3Rvcnk7CisKKyNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCitjbGFzcyBWaWV3cG9ydEF0dHJpYnV0ZXM7
CisjZW5kaWYKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC04NiwxNSArOTAsMjQgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNz
TGF5ZXJGYWN0b3J5KCkgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRCYWNrZ3Jv
dW5kQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSB7IH0KIAotI2lmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKSA9IDA7CiAjZW5kaWYKIAor
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAgICB2aXJ0dWFsIHZvaWQg
dmlld3BvcnRTaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmll
d3BvcnRBdHRyaWJ1dGVzJikgPSAwOworI2VuZGlmCisKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVJf
R0wpICYmIFBMQVRGT1JNKEdUSykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmF0aXZlU3VyZmFjZUhh
bmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90KSB7IH0KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllckhvc3RpbmdNb2RlKExheWVySG9zdGluZ01v
ZGUpIHsgfQogI2VuZGlmCiAKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpICYmIEVOQUJM
RShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Nf
SVBDKSAmJiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgdmlydHVhbCB2b2lk
IHNjaGVkdWxlQW5pbWF0aW9uKCkgPSAwOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBhZmI2YTQ1NzgzNTE3ZWY4NmI0Njc5
ZTMwZGJjNWViZWQzM2UwMDZmLi5iYTEwNWUzNDBhNWY5ZGY0NDYzZTQyMmNiNjA2YWZhZjA1N2U5
YTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC0xODksNyArMTg5LDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVy
Lmg+CiAjZW5kaWYKIAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1NfSVBDKQogI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dE1lc3NhZ2VzLmgiCiAjZW5kaWYKIApAQCAtMzk4LDcgKzM5OCw3IEBAIFdlYlBhZ2U6OldlYlBh
Z2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlIG9iamVj
dCBjb25zdHJ1Y3RvcnMsIGFuZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzIHNob3VsZCBiZSBtZXNz
YWdlIHJlY2VpdmVycy4KICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5hZGRNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlE
LCB0aGlzKTsKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX0lQQykKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5hZGRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBtX3BhZ2VJRCwgdGhpcyk7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpA
QCAtNDM0LDcgKzQzNCw3IEBAIFdlYlBhZ2U6On5XZWJQYWdlKCkKIAogICAgIC8vIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSBkb25lIGluIHRoZSBvYmplY3QgZGVzdHJ1Y3RvcnMsIGFuZCB0aGUgb2Jq
ZWN0cyB0aGVtc2VsdmVzIHNob3VsZCBiZSBtZXNzYWdlIHJlY2VpdmVycy4KICAgICBXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkRyYXdpbmdBcmVh
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlEKTsKLSNpZiBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKICAgICBXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkNvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCk7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpAQCAtMTA4Niw4ICsxMDg2LDEzIEBAIHZvaWQgV2ViUGFn
ZTo6c2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB2aWV3U2l6ZSkKICAgICBtX3ZpZXdT
aXplID0gdmlld1NpemU7CiAKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKLSAgICBpZiAo
dmlldy0+dXNlRml4ZWRMYXlvdXQoKSkKKyAgICBpZiAodmlldy0+dXNlRml4ZWRMYXlvdXQoKSkg
ewogICAgICAgICBzZW5kVmlld3BvcnRBdHRyaWJ1dGVzQ2hhbmdlZCgpOworI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAgICAgICAgaWYgKG1fZHJhd2luZ0FyZWEtPmxh
eWVyVHJlZUhvc3QoKSkKKyAgICAgICAgICAgIG1fZHJhd2luZ0FyZWEtPmxheWVyVHJlZUhvc3Qo
KS0+dmlld3BvcnRTaXplQ2hhbmdlZCh2aWV3U2l6ZSk7CisjZW5kaWYKKyAgICB9CiAjZW5kaWYK
IH0KIApAQCAtMTE0MSw3ICsxMTQ2LDEyIEBAIHZvaWQgV2ViUGFnZTo6c2VuZFZpZXdwb3J0QXR0
cmlidXRlc0NoYW5nZWQoKQogICAgIC8vIFRoaXMgYWxzbyB0YWtlcyBjYXJlIG9mIHRoZSByZWxh
eW91dC4KICAgICBzZXRGaXhlZExheW91dFNpemUocm91bmRlZEludFNpemUoYXR0ci5sYXlvdXRT
aXplKSk7CiAKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGF0dHIpKTsK
KyNlbGlmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAgICBpZiAobV9kcmF3
aW5nQXJlYS0+bGF5ZXJUcmVlSG9zdCgpKQorICAgICAgICBtX2RyYXdpbmdBcmVhLT5sYXllclRy
ZWVIb3N0KCktPmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhhdHRyKTsKKyNlbmRpZgogfQog
I2VuZGlmCiAKQEAgLTE1NTYsNyArMTU2NiwxMSBAQCB2b2lkIFdlYlBhZ2U6OnBhZ2VEaWRTY3Jv
bGwoKQogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogdm9pZCBXZWJQYWdlOjpwYWdlRGlk
UmVxdWVzdFNjcm9sbChjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CisjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX0lQQykKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlBhZ2VE
aWRSZXF1ZXN0U2Nyb2xsKHBvaW50KSk7CisjZWxpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Nf
VEhSRUFERUQpCisgICAgZHJhd2luZ0FyZWEoKS0+c2Nyb2xsKEludFJlY3QocG9pbnQsIEludFNp
emUoKSksIEludFNpemUoKSk7CisjZW5kaWYKIH0KICNlbmRpZgogCkBAIC0yMTAyLDcgKzIxMTYs
NyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFVwZGF0ZUluV2luZG93U3RhdGVUaW1lckZpcmVkKCkKIAog
aW5saW5lIGJvb2wgV2ViUGFnZTo6Y2FuSGFuZGxlVXNlckV2ZW50cygpIGNvbnN0CiB7Ci0jaWYg
VVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQ
QykKICAgICAvLyBTaG91bGQgYXBwbHkgb25seSBpZiB0aGUgYXJlYSB3YXMgZnJvemVuIGJ5IGRp
ZFN0YXJ0UGFnZVRyYW5zaXRpb24oKS4KICAgICByZXR1cm4gIW1fZHJhd2luZ0FyZWEtPmxheWVy
VHJlZVN0YXRlSXNGcm96ZW4oKTsKICNlbmRpZgpAQCAtMjE1Miw3ICsyMTY2LDcgQEAgdm9pZCBX
ZWJQYWdlOjpkaWRTdGFydFBhZ2VUcmFuc2l0aW9uKCkKIAogdm9pZCBXZWJQYWdlOjpkaWRDb21w
bGV0ZVBhZ2VUcmFuc2l0aW9uKCkKIHsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIGlmIChtX21haW5GcmFtZS0+Y29y
ZUZyYW1lKCktPnZpZXcoKS0+ZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCiAgICAgICAgIC8vIFdhaXQg
dW50aWwgdGhlIFVJIHByb2Nlc3Mgc2VudCB1cyB0aGUgdmlzaWJsZSByZWN0IGl0IHdhbnRzIHJl
bmRlcmVkLgogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlBhZ2VUcmFuc2l0
aW9uVmlld3BvcnRSZWFkeSgpKTsKQEAgLTMwNDIsNyArMzA1Niw3IEBAIHZvaWQgV2ViUGFnZTo6
bWFpbkZyYW1lRGlkTGF5b3V0KCkKICAgICAgICAgbV9jYWNoZWRQYWdlQ291bnQgPSBwYWdlQ291
bnQ7CiAgICAgfQogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpICYmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAg
IGlmIChtX2RyYXdpbmdBcmVhICYmIG1fZHJhd2luZ0FyZWEtPmxheWVyVHJlZUhvc3QoKSkgewog
ICAgICAgICBkb3VibGUgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGE7CiAgICAgICAgIG1fbWFpbkZy
YW1lLT5nZXREb2N1bWVudEJhY2tncm91bmRDb2xvcigmcmVkLCAmZ3JlZW4sICZibHVlLCAmYWxw
aGEpOwpAQCAtMzE0Niw3ICszMTYwLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWcKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKSAmJiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQ
QykKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkNv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAg
IGlmIChtX2RyYXdpbmdBcmVhKQogICAgICAgICAgICAgbV9kcmF3aW5nQXJlYS0+ZGlkUmVjZWl2
ZUNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CkBA
IC0zNjQ3LDcgKzM2NjEsNyBAQCBib29sIFdlYlBhZ2U6OmNhbkhhbmRsZVJlcXVlc3QoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgIHJldHVybiBwbGF0Zm9ybUNh
bkhhbmRsZVJlcXVlc3QocmVxdWVzdCk7CiB9CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9S
RSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogdm9pZCBXZWJQYWdlOjpjb21t
aXRQYWdlVHJhbnNpdGlvblZpZXdwb3J0KCkKIHsKICAgICBtX2RyYXdpbmdBcmVhLT5zZXRMYXll
clRyZWVTdGF0ZUlzRnJvemVuKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCmluZGV4IGY0M2ZkNzM3ZWY0YTc5ZDEzYmQ4OTllYmM4MTBhOTZiMmNl
MGIxZmMuLjMyYmYyMTkxZTFjMWY2YTk3NGZmMDMzNzAxNDU0Zjk4MjgxYjQ0N2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNDUwLDcgKzQ1MCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRoZW1lUGF0aChjb25zdCBTdHJpbmcmKTsKICNlbmRp
ZgogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKENPT1JESU5BVEVEX0dS
QVBISUNTX0lQQykKICAgICB2b2lkIGNvbW1pdFBhZ2VUcmFuc2l0aW9uVmlld3BvcnQoKTsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCmluZGV4IDU5MTc5YzRjOGQ0OWMzYzViOGQ1M2IzYzdjYmI4MWMxYWIw
NzA1NTkuLjY0MTRjNDRlMjg2NTBhN2VlNzBhMTBiMWY2NjA3ZDM1OWY3NDdmMDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCkBAIC0yNDksNyArMjQ5LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZl
ciB7CiAgICAgU2V0VGhlbWVQYXRoKFdURjo6U3RyaW5nIHRoZW1lUGF0aCkKICNlbmRpZgogCi0j
aWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
X0lQQykKICAgICBDb21taXRQYWdlVHJhbnNpdGlvblZpZXdwb3J0KCkKICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAK
aW5kZXggNTRjOGRmM2UwY2JjZWM3NWQ3MDkyYzJiMjQyNmFjN2ZmNTFjNGVmOC4uN2Y3MzQ2ZjM5
ZjEyZGI0OWU3ZGM1OTIwZTQ3M2EwZDE2M2ZjODlmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dlYlByb2Nlc3MuaD4KKyNpbmNsdWRlIDxY
MTEvWGxpYi5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDxsaWJpbnRsLmg+CiAj
aW5jbHVkZSA8bGlic291cC9zb3VwLmg+CkBAIC01NCw2ICs1NSw3IEBAIFdLX0VYUE9SVCBpbnQg
V2ViUHJvY2Vzc01haW5HdGsoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgc2xlZXAo
MzApOwogI2VuZGlmCiAKKyAgICBYSW5pdFRocmVhZHMoKTsKICAgICBndGtfaW5pdCgmYXJnYywg
JmFyZ3YpOwogCiAgICAgYmluZHRleHRkb21haW4oR0VUVEVYVF9QQUNLQUdFLCBQQUNLQUdFX0xP
Q0FMRV9ESVIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UgYi9T
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQppbmRleCA1YWRiNTQ5OTI4OTAyZGNmMjY0MDY2
M2VmNGMzMmQ1YTg2OTY3MWRiLi4wYTJjNTkxMGJhYmFhMWY2MmE3N2VkZWVjNTE2MDZlZTAyMTA2
MTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQorKysgYi9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAtMTg0LDYgKzE4NCw3IEBAIGlmIChXVEZfVVNF
X1RJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9BQ0NF
TEVSQVRFRF9DT01QT1NJVElORz0xKQogCiAgICAgYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9D
T09SRElOQVRFRF9HUkFQSElDUz0xKQorICAgIGFkZF9kZWZpbml0aW9ucygtRFdURl9VU0VfQ09P
UkRJTkFURURfR1JBUEhJQ1NfSVBDPTEpCiAKICAgICBzZXQoV1RGX1VTRV9URVhUVVJFX01BUFBF
UiAxKQogICAgIGFkZF9kZWZpbml0aW9ucygtRFdURl9VU0VfVEVYVFVSRV9NQVBQRVI9MSkKZGlm
ZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAxZTU0NmMxZjhkZjdiOTQ5OTBj
NjljMmM4NWI0NDQ1MDA5Y2QyZjY5Li4yZGQ0NTNmNTVmOTNjZjY1MjhhMzc2ZTE5ODlmMDFjYjli
MTZiYmY5IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MTcgQEAKIDIwMTMtMDctMDQgIEd3YW5nIFlvb24gSHdhbmcgIDxyeXVtaWVsQGNvbXBhbnkxMDAu
bmV0PgogCisgICAgICAgIFtXSzJdW0dUS10gSW1wbGVtZW50IHRocmVhZGVkIGNvbXBvc2l0aW5n
IGZvciBXZWJLaXQyIEd0ay4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExODI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENPT1JESU5BVEVEX0dSQVBISUNTX0lQQyBzaG91bGQgYmUgZGVjbGFpcmVkIHRv
IHVzZSBDb29yZGluYXRlZAorICAgICAgICBHcmFwaGljcyBpbiBXZWJLaXRFRkwuCisKKyAgICAg
ICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKworMjAxMy0wNy0wNCAgR3dhbmcg
WW9vbiBId2FuZyAgPHJ5dW1pZWxAY29tcGFueTEwMC5uZXQ+CisKICAgICAgICAgW1dLMV1bR1RL
XSBBZGQgc3VwcG9ydCB0byB1c2UgVGhyZWFkZWQgQ29tcG9zaXRvci4KICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzIyNwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243287</attachid>
            <date>2014-12-15 04:17:34 -0800</date>
            <delta_ts>2015-01-06 06:57:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118265-20141215131820.patch</filename>
            <type>text/plain</type>
            <size>56962</size>
            <attacher name="Gwang Yoon Hwang">yoon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3Mjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg5ZDcxY2FjZWEwOGQy
MDRhNTgyNWNjMzY1ZjliM2RmNmUwYmU4MS4uYjI1MGZjNWU1OWQ3NjEwMjA5ZmM4ODBhNjAyNzVh
NzA2YmQyMGFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTEyLTA2ICBHd2Fu
ZyBZb29uIEh3YW5nICA8eW9vbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1RocmVhZGVk
Q29tcG9zaXRvcl0gQWRkIHN1cHBvcnQgZm9yIHRocmVhZGVkIGNvbXBvc2l0b3IuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgyNjUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNt
YWtlOgorICAgICAgICBBZGRzIENvb2RpbmF0ZWRHcmFwaGljcyBhbmQgdGhyZWFkZWQgY29tcG9z
aXRvciByZWxhdGVkIGNsYXNzZXMgdG8KKyAgICAgICAgc3VwcG9ydCB0aHJlYWRlZCBjb21wb3Np
dG9yCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRUaWxlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmg6CisgICAgICAgIFRoaXMgY2xhc3Mgc2hvdWxkIGJl
IGd1YXJkZWQgYnkgQ09PUkRJTkFURURfR1JBUEhJQ1MgaW5zdGVhZCBvZgorICAgICAgICBUSUxF
RF9CQUNLSU5HX1NUT1JFCisKIDIwMTQtMTItMTUgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtp
bUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbR1RLXSBSZW1vdmUgR2FtZXBhZERldmljZUd0azo6
Y3JlYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhZGQzYTMyNDI1NTAzOTZjNzEzNjMxZGMwYWZmZWUyODY2
OGFhZWMzLi4zZDhmOGVjOGE1YTQ4YjY5YzYzYWM5ZThlM2VjNWZjYjA3ZTBlMzY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMTQtMTItMDYgIEd3YW5nIFlvb24gSHdhbmcgIDx5b29u
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bVGhyZWFkZWRDb21wb3NpdG9yXSBBZGQgc3Vw
cG9ydCBmb3IgdGhyZWFkZWQgY29tcG9zaXRvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExODI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyB0aGUgVGhyZWFkZWQg
Q29tcG9zaXRvciBmb3IgV2ViS2l0R1RLKy4KKyAgICAgICAgSXQgaXMgZGlzYWJsZWQgYXMgYSBk
ZWZhdWx0IGJlY2F1c2UgaXQgaXMgYSBpbml0aWFsIGltcGxlbWVudGF0aW9uLgorICAgICAgICBU
aGUgdGhyZWFkZWQgY29tcG9zaXRvciBjYW4gYmUgZW5hYmxlZCB1c2luZyAtLXRocmVhZGVkLWNv
bXBvc2l0b3IKKyAgICAgICAgb3B0aW9uIGF0IGNvbXBpbGUgdGltZS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIHRoaXMgaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgQWRkcyBDb29kaW5hdGVkR3JhcGhpY3MgYW5kIHRo
cmVhZGVkIGNvbXBvc2l0b3IgcmVsYXRlZCBjbGFzc2VzIHRvCisgICAgICAgIHN1cHBvcnQgdGhy
ZWFkZWQgY29tcG9zaXRvcgorCisgICAgICAgICogU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oOgor
ICAgICAgICBVc2UgRHJhd2luZ0FyZWFJbXBsIGZvciB0aHJlYWRlZCBjb21wb3NpdG9yCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHA6CisgICAgICAgIChf
V2ViS2l0U2V0dGluZ3NQcml2YXRlOjpfV2ViS2l0U2V0dGluZ3NQcml2YXRlKToKKyAgICAgICAg
TW9kaWZpZWQgdG8gdXNlIGZvcmNlQ29tcG9zaXRpbmdNb2RlIHdoZW4gdGhlIHRocmVhZGVkIGNv
bXBvc2l0b3IgdXNlZC4KKyAgICAgICAgSWYgd2UgZG9lcyBub3Qgc2V0IHRoaXMgbW9kZSBoZXJl
LCBpdCBjYW5ub3QgZHJhdyB0aGUgcm9vdCBjb250ZW50IGxheWVyLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnJv
b3RMYXllcik6CisgICAgICAgIEltcGxlbWVudHMgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJl
ZUhvc3QgdG8gdXNlIHRoZSB0aHJlYWRlZAorICAgICAgICBjb21wb3NpdG9yLiBJdCBpcyBiYXNp
Y2FsbHkgc2ltaWxhciB3aXRoIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCBidXQgaXQgdXNlcyBU
aHJlYWRlZENvbXBvc2l0b3IgaW5zdGVhZCBvZiBJUEMuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OkRyYXdpbmdBcmVhKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgQ09PUkRJTkFURURfR1JBUEhJ
Q1NfSVBDIGlzIGludHJvZHVjZWQgdG8gY2xhc3NpZnkgSVBDIHNwZWNpZmljIGNvZGVzCisgICAg
ICAgIGZyb20gQ29vcmRpbmF0ZWQgR3JhcGhpY3MuCisgICAgICAgIEFuZCBDT09SRElOQVRFRF9H
UkFQSElDU19USFJFQURFRCBpcyB1c2VkIHRvIGd1YXJkIHRoZSB0aHJlYWRlZAorICAgICAgICBj
b21wb3NpdG9yIHNwZWNpZmljIGNvZGVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L0RyYXdpbmdBcmVhSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1wbDo6
RHJhd2luZ0FyZWFJbXBsKToKKyAgICAgICAgTW9kaWZpZWQgdG8gdXNlIGZvcmNlQ29tcG9zaXRp
bmdNb2RlIHdoZW4gdGhlIHRocmVhZGVkIGNvbXBvc2l0b3IgdXNlZC4KKyAgICAgICAgSWYgd2Ug
ZG9lcyBub3Qgc2V0IHRoaXMgbW9kZSBoZXJlLCBpdCB3aWxsIGNyYXNoIGJlY2F1c2Ugb2YgUGFn
ZU92ZXJsYXkuCisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1wbDo6bWFpbkZyYW1lQ29u
dGVudFNpemVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFJbXBsOjp1cGRh
dGVCYWNraW5nU3RvcmVTdGF0ZSk6CisgICAgICAgIE1vZGlmaWVkIHRvIGhhbmRsZSBjb250ZW50
cyAvIHZpZXdwb3J0IHNpemUgY2hhbmdlcyBmb3IgdGhyZWFkZWQgY29tcG9zaXRvci4KKyAgICAg
ICAgKFdlYktpdDo6RHJhd2luZ0FyZWFJbXBsOjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5
ZXIpOgorICAgICAgICBBZGRlZCB0byBzdXBwb3J0IE92ZXJsYXkgbGF5ZXIgaW4gdGhlIHRocmVh
ZGVkIGNvbXBvc2l0b3IuCisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1wbDo6c2V0TmF0
aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKToKKyAgICAgICAgUHVzaCB0aGUgc3VyZmFj
ZSBoYW5kbGUgZm9yIGNvbXBvc2l0aW5nIHRvIHRoZSB0aHJlYWRlZCBjb21wb3NpdG9yLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oOiBVc2UgQ09PUkRJ
TkFURURfR1JBUElIQ1NfVEhSRUFERUQgdG8gZ3VhcmQgdGhlIHRocmVhZGVkIGNvbXBvc2l0b3Ig
cmVsYXRlZCBjb2Rlcy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9z
dC5jcHA6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0
Lmg6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDogRGl0
dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDogRGl0dG8uCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46IERpdHRvLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwOgorICAgICAgICAg
ICAgTW9kaWZpZWQgdG8gY2FsbCBYSW5pdFRocmVhZHMgdG8gdXNlIHRocmVhZC1zYWZlIHhsaWIu
CisKIDIwMTQtMTItMTUgIEd3YW5nIFlvb24gSHdhbmcgIDx5b29uQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgVGhyZWFkU2FmZUNvb3JkaW5hdGVk
U3VyZmFjZSwgVGhyZWFkZWRDb21wb3NpdG9yLCBhbmQgU2ltcGxlVmlld3BvcnRDb250cm9sbGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGFhNGJjOWMyMjA4MGQ2ZTA3NmIxMjFiY2Q1
MGNjYWRhMmNmZjcwNmEuLmMwZjA4NjVkNGY0NmM4YmNmYjI5NTFlNTgwNzM5NjU4NzQ0YTU5ODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0zNzcsNiArMzc3LDMxIEBAIGlmIChFTkFC
TEVfVEVYVFVSRV9NQVBQRVIpCiAgICAgKQogZW5kaWYgKCkKIAoraWYgKEVOQUJMRV9USFJFQURF
RF9DT01QT1NJVE9SKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklF
UworICAgICAgICAiJHtXRUJDT1JFX0RJUn0vcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFw
aGljcyIKKyAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZCIKKyAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC90aHJlYWRlZGNvbXBvc2l0b3IiCisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVf
U09VUkNFUworICAgICAgICBwYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKyAgICAgICAgcGFnZS9zY3Jv
bGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdTdGF0ZU5vZGVDb29yZGluYXRlZEdy
YXBoaWNzLmNwcAorICAgICAgICBwYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Nj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZUNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCisgICAgICAg
IHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAKKyAgICAgICAgcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcAorICAgICAgICBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlTm9kZS5jcHAKKyAgICAgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2lu
Z1N0b3JlLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
QXJlYUFsbG9jYXRvci5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdl
QmFja2luZy5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkU3VyZmFjZS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1VwZGF0ZUF0bGFzLmNwcAorICAgICkKK2VuZGlmICgpCisK
IGlmIChXVEZfVVNFX0VHTCkKICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUwogICAg
ICAgICAke0VHTF9MSUJSQVJZfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRU
aWxlLmNwcAppbmRleCBiMjRmNDhkMjM2MTkxNzkxMDNjY2ZiNDdkZTZjMGVmYmNkNDFkZjhjLi5k
ZDMyYzIzNDkxOTczMjQzNmM5MmI0ZDc5MzA2Y2ZiZmZlMDZkMzQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRUaWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvb3JkaW5hdGVkVGlsZS5oIgogCi0jaWYgVVNFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKQEAgLTE0
MSw0ICsxNDEsNCBAQCB2b2lkIENvb3JkaW5hdGVkVGlsZUJhY2tlbmQ6OnBhaW50Q2hlY2tlclBh
dHRlcm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNlbmRpZiAvLyBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRUaWxlLmgKaW5kZXggZDg0NWNlNWRmNTgzMTVhY2IzMmRiMGI1YjAxNWZmNjYyYjE4MDk1Mi4u
Yjc5NzA5ZjNiYTY0Y2U1YzA2MDczNGQyZjVlYTYxZTExNTA0MjEwYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkVGlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZFRpbGUuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBD
b29yZGluYXRlZFRpbGVfaAogI2RlZmluZSBDb29yZGluYXRlZFRpbGVfaAogCi0jaWYgVVNFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogCiAjaW5j
bHVkZSAiQ29vcmRpbmF0ZWRTdXJmYWNlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgpAQCAtOTEs
NiArOTEsNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAv
LyBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1MpCiAKICNlbmRpZiAvLyBDb29yZGluYXRlZFRpbGVfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5j
bWFrZQppbmRleCA5OGExYzk2NzMwYTVjMmQxYmNkZDNmZGY1N2RjM2I5ZGE5NDQzNTIzLi4yYzZm
NTVkZjhjM2RhNzIzZDQ1N2QwMGMyNDY5ZTU3YzY3ODQyZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdU
Sy5jbWFrZQpAQCAtMzA5LDcgKzMwOSw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwog
CiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0
ay5jcHAKIAotICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAK
ICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1ByaW50ZXJMaXN0R3RrLmNwcAogICAgIFdlYlBy
b2Nlc3MvV2ViUGFnZS9ndGsvV2ViSW5zcGVjdG9yVUlHdGsuY3BwCiAgICAgV2ViUHJvY2Vzcy9X
ZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcApAQCAtNzQwLDYgKzczOSwyNyBAQCBsaXN0KEFQUEVO
RCBQbHVnaW5Qcm9jZXNzX1NPVVJDRVMKICAgICBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvdW5p
eC9QbHVnaW5Qcm9jZXNzTWFpbi5jcHAKICkKIAoraWYgKEVOQUJMRV9USFJFQURFRF9DT01QT1NJ
VE9SKQorICAgIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUworICAgICAgICBTaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKKyAgICAgICAgU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAorICAg
ICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9TaW1wbGVWaWV3cG9ydENvbnRyb2xsZXIu
Y3BwCisgICAgICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCisgICAgICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcAor
ICAgICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKyAgICApCisgICAgbGlzdChBUFBFTkQgV2ViS2l0
Ml9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQiCisgICAgICAgICIke1dFQktJVDJfRElSfS9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcyIKKyAgICAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvciIKKyAgICAgICAgIiR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzIgorICAgICkKK2Vs
c2UgKEVOQUJMRV9USFJFQURFRF9DT01QT1NJVE9SKQorICAgIGxpc3QoQVBQRU5EIFdlYktpdDJf
U09VUkNFUworICAgICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsu
Y3BwCisgICAgKQorZW5kaWYgKCkKKwogIyBDb21tYW5kcyBmb3IgYnVpbGRpbmcgdGhlIGJ1aWx0
LWluIGluamVjdGVkIGJ1bmRsZS4KIGluY2x1ZGVfZGlyZWN0b3JpZXMoCiAgICAgIiR7V0VCS0lU
Ml9ESVJ9L1BsYXRmb3JtIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdp
bmdBcmVhSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCmlu
ZGV4IDg2ODc3YWE2Y2RlNGQ0YWRlNDIyYjQwZWFmYjQ2NjNkYzI1YWEwZmEuLjc1ZjcyNzFkNTll
MjEyM2JkMTQyZTY1ZWU1OTA4N2NmYmUzNzc2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmgKQEAgLTM1LDcgKzM1LDcgQEAgZW51bSBEcmF3aW5nQXJlYVR5cGUgewog
I2VuZGlmCiAgICAgRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlLAogI2Vsc2UKLSNpZiBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQ
QykKICAgICBEcmF3aW5nQXJlYVR5cGVDb29yZGluYXRlZAogI2Vsc2UKICAgICBEcmF3aW5nQXJl
YVR5cGVJbXBsLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0U2V0dGluZ3MuY3BwCmluZGV4IGQ5NjljNWI4ZDg1NjA2OTdmZTIxNWUzZGM0NjNhNDJjMGM0
MjI5MmIuLjc2ZjNiNzM1ZDdmY2FjMDg5YzExMWQxYTc4ZDcxYTllMzFlMWZhNzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAK
QEAgLTU0LDYgKzU0LDEwIEBAIHN0cnVjdCBfV2ViS2l0U2V0dGluZ3NQcml2YXRlIHsKICAgICAg
ICAgZmFudGFzeUZvbnRGYW1pbHkgPSBwcmVmZXJlbmNlcy0+ZmFudGFzeUZvbnRGYW1pbHkoKS51
dGY4KCk7CiAgICAgICAgIHBpY3RvZ3JhcGhGb250RmFtaWx5ID0gcHJlZmVyZW5jZXMtPnBpY3Rv
Z3JhcGhGb250RmFtaWx5KCkudXRmOCgpOwogICAgICAgICBkZWZhdWx0Q2hhcnNldCA9IHByZWZl
cmVuY2VzLT5kZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgpLnV0ZjgoKTsKKworI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAgICAgICAgcHJlZmVyZW5jZXMtPnNldEZvcmNl
Q29tcG9zaXRpbmdNb2RlKHRydWUpOworI2VuZGlmCiAgICAgfQogCiAgICAgUmVmUHRyPFdlYlBy
ZWZlcmVuY2VzPiBwcmVmZXJlbmNlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZExheWVyVHJlZUhvc3RQcm94eS5oCmluZGV4IGFiMThjNjNhNzc4NzRiZDA4ZTNiY2E1NWVkZTk2
Yzg3YjU1MTkyNTcuLjQxNzZjNWQzOGQ5YzQzOGIwYjEwYjNlZTk5MWM0NTExMzRhMzJjYmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaApA
QCAtMjEsNyArMjEsNyBAQAogI2lmbmRlZiBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eV9o
CiAjZGVmaW5lIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5X2gKIAotI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogCiAj
aW5jbHVkZSAiQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAi
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgiCkBAIC02OSw2ICs2OSw2IEBAIHByb3RlY3RlZDoK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1MpCisjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKIAogI2VuZGlm
IC8vIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCmluZGV4IGFiNzk4OGNjMDczZjUxNjVhNTJiMWJjMmJmYzFiNWIyYTVjMWY3
NGUuLjg1MDUwYzBlNmIxNWE2M2Q5NmE2MGVkNTU3MDU1NmM1YmEyOTE5NjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTM4LDEyICsxMzgsMTAgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgYm9vbCB1c2VDdXN0b21Db250ZW50UHJvdmlkZXIpID0gMDsKIAotI2lmIFVT
RShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19JUEMp
CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZW5kZXJGcmFtZShjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNvdmVy
ZWRSZWN0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFk
eSgpID0gMDsKLSNlbmRpZgotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluZFpvb21hYmxlQXJlYShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAyZjYyMmNkYTg0ZjBkY2U0YTc3MmU3NTE1MTUz
MzA4ODAwOTcxNGIxLi41MDRmMGY2ZWI2NzJjODQwMGMzNGQ5NGY0MjZhMzljN2RjMWZhMmM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTA3LDcgKzEw
Nyw3IEBACiAjaW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIgogI2Vu
ZGlmCiAKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTX0lQQykKICNpbmNsdWRlICJDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eU1l
c3NhZ2VzLmgiCiAjZW5kaWYKIApAQCAtMTM3OCw3ICsxMzc4LDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZENvbW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYp
CiB9CiAjZW5kaWYKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDU19JUEMpCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UGFnZVRyYW5z
aXRpb25WaWV3cG9ydCgpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCkBAIC0zMzQ3LDcgKzMzNDcs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgdWludDY0X3QgZgogICAgIHNob3VsZENsb3NlID0gbV91aUNsaWVu
dC0+cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHRoaXMsIG1lc3NhZ2UsIGZyYW1lKTsKIH0K
IAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQ
SElDU19JUEMpCiB2b2lkIFdlYlBhZ2VQcm94eTo6cGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3Qg
SW50UG9pbnQmIHBvaW50KQogewogICAgIG1fcGFnZUNsaWVudC5wYWdlRGlkUmVxdWVzdFNjcm9s
bChwb2ludCk7CkBAIC0zNDYzLDcgKzM0NjMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxl
RG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqIGRvd25sb2FkKQogICAgIG1fcGFnZUNsaWVu
dC5oYW5kbGVEb3dubG9hZFJlcXVlc3QoZG93bmxvYWQpOwogfQogCi0jaWYgUExBVEZPUk0oRUZM
KQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkQ2hhbmdlQ29udGVudFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAgICBtX3BhZ2VD
bGllbnQuZGlkQ2hhbmdlQ29udGVudFNpemUoc2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggMjBjMzBmYTJhZTI0ZjY2Y2I3MzZlMGM4NzU2ZTY0ZGYyZjZj
ZGJkNy4uMDM2NDA5MTA1YTljYjVlNDE2YTkyOTJmMjBmYWFmZTIwZmU2ZWMwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDY3LDcgKzQ2Nyw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgZGlkQ29tbWl0TGF5ZXJUcmVlKGNvbnN0IFdlYktpdDo6UmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24mKTsKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKSAKKyNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIHZvaWQgZGlkUmVuZGVyRnJhbWUo
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY29udGVudHNTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBjb3ZlcmVkUmVjdCk7CiAjZW5kaWYKICNpZiBQTEFURk9STShFRkwpCkBAIC01MzksNyAr
NTM5LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKEdUSykKICAgICBQbGF0Zm9ybVdpZGdldCB2
aWV3V2lkZ2V0KCk7CiAjZW5kaWYKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIHZvaWQgY29tbWl0UGFnZVRyYW5zaXRp
b25WaWV3cG9ydCgpOwogI2VuZGlmCiAKQEAgLTEwOTUsMTQgKzEwOTUsMTAgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3Rp
ZmljYXRpb25JRHMpOwogICAgIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBu
b3RpZmljYXRpb25JRCk7CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIHZvaWQgcGFnZURpZFJlcXVlc3RTY3JvbGwo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICAgICB2b2lkIHBhZ2VUcmFuc2l0aW9uVmlld3Bv
cnRSZWFkeSgpOwotI2VuZGlmCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIHZv
aWQgZGlkRmluZFpvb21hYmxlQXJlYShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKEVGTCkKICAgICB2b2lkIGRp
ZENoYW5nZUNvbnRlbnRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCA2ODRjNzZhNjNlMzY1MmUwMTk2MzMwMzRiNGJjMWRhNzY5NzUzOGRiLi5jMmQxZTA3YzAy
M2ZhNzc1OTFkMWVmODBkMTFiZmZkZDM0ZjI4NTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTk1LDE1ICs5NSwxMCBAQCBt
ZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bigp
IC0+IChib29sIGhhbmRsZWQpCiAjZW5kaWYKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiAgICAgUGFnZURpZFJlcXVlc3RT
Y3JvbGwoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpCiAgICAgUGFnZVRyYW5zaXRpb25WaWV3cG9y
dFJlYWR5KCkKLSNlbmRpZgotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBEaWRG
aW5kWm9vbWFibGVBcmVhKFdlYkNvcmU6OkludFBvaW50IHRhcmdldCwgV2ViQ29yZTo6SW50UmVj
dCBhcmVhKQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShFRkwpCiAgICAgRGlkQ2hhbmdlQ29udGVu
dFNpemUoV2ViQ29yZTo6SW50U2l6ZSBuZXdTaXplKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAppbmRleCA3Y2UyODFkOGRiNGY3ZDFkYjM1NGY4YzVlYTZhMzZlMDU2M2Y0NDg3Li45
NTRiOWVlNWMwYWM2YzI5NzAwYjY3ZjY5ZDEzMWY4NTYxOTk3ZGVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCkBAIC01MjEsOCArNTIxLDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250
ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uCiAg
ICAgaWYgKG1fcGFnZS0+dXNlRml4ZWRMYXlvdXQoKSkKICAgICAgICAgbV9wYWdlLT5kcmF3aW5n
QXJlYSgpLT5sYXllclRyZWVIb3N0KCktPnNpemVEaWRDaGFuZ2Uoc2l6ZSk7CiAKKyNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWRDaGFuZ2VDb250ZW50U2l6ZShzaXplKSk7CiAjZW5kaWYKKyNlbmRpZgog
CiAgICAgbV9wYWdlLT5kcmF3aW5nQXJlYSgpLT5tYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQo
c2l6ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRE
cmF3aW5nQXJlYS5jcHAKaW5kZXggNTI4NTdkYmJhNWU5ZTZiZDI4Y2FhY2Y3MWUxYjEzYzU2M2E3
OWIwNS4uOGI3N2NmNTYwNDdlOGE1YWJkZDMyMThlYmRhNTQ4NjY1MjZkNTM3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWREcmF3aW5nQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5jcHAK
QEAgLTYwMCwxMSArNjAwLDEzIEBAIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYTo6ZGlzcGxh
eShVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQogICAgIG1fZGlzcGxheVRpbWVyLnN0b3AoKTsKIH0K
IAorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiB2b2lkIENvb3JkaW5hdGVkRHJh
d2luZ0FyZWE6OmRpZFJlY2VpdmVDb29yZGluYXRlZExheWVyVHJlZUhvc3RNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsK
ICAgICBpZiAobV9sYXllclRyZWVIb3N0KQogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmRpZFJl
Y2VpdmVDb29yZGluYXRlZExheWVyVHJlZUhvc3RNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIp
OwogfQorI2VuZGlmCiAKIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYTo6YXR0YWNoVmlld092
ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciogdmlld092ZXJsYXlSb290TGF5ZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERy
YXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmgKaW5kZXggYTRlMmViZjhiNzQ0OTI1
MDRjMzNhZTc5ZWM2ZTdjNmQwNThlZTA1Yy4uMGVlYzQ2M2IzOGE1NWZiMWFkYzVhZTQwZmE2MWYy
MWNmN2MzZGNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkRHJhd2luZ0FyZWEuaApAQCAtNjQsNyArNjQsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0ZWx5KCkgb3ZlcnJp
ZGU7CiAKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wNDQxOWYxNDk4OTkzNzEzZjQ0ZWMyOWNhNDliZjg4ZmJmY2Y0YzRkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBAIC0wLDAgKzEs
MzAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQ29tcGFueSAxMDAs
IEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3QuaCIKKworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKworI2luY2x1
ZGUgIkRyYXdpbmdBcmVhSW1wbC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5j
bHVkZSAiVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZS5oIgorI2luY2x1ZGUgIldlYlBhZ2Uu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01haW5GcmFtZS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NS
ZWZQdHI8VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q+IFRocmVhZGVkQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0OjpjcmVhdGUoV2ViUGFnZSogd2ViUGFnZSkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KHdlYlBhZ2UpKTsK
K30KKworVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6On5UaHJlYWRlZENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdCgpCit7Cit9CisKK1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0OjpUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdChXZWJQYWdlKiB3ZWJQYWdlKQor
ICAgIDogTGF5ZXJUcmVlSG9zdCh3ZWJQYWdlKQorICAgICwgbV9mb3JjZVJlcGFpbnRBc3luY0Nh
bGxiYWNrSUQoMCkKKyAgICAsIG1fY29udGVudExheWVyKG51bGxwdHIpCisgICAgLCBtX3ZpZXdP
dmVybGF5Um9vdExheWVyKG51bGxwdHIpCisgICAgLCBtX25vdGlmeUFmdGVyU2NoZWR1bGVkTGF5
ZXJGbHVzaChmYWxzZSkKKyAgICAsIG1faXNTdXNwZW5kZWQoZmFsc2UpCisgICAgLCBtX2lzV2Fp
dGluZ0ZvclJlbmRlcmVyKGZhbHNlKQorICAgICwgbV9sYXllckZsdXNoVGltZXIoUnVuTG9vcDo6
bWFpbigpLCB0aGlzLCAmVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnBlcmZvcm1T
Y2hlZHVsZWRMYXllckZsdXNoKQorICAgICwgbV9sYXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQo
dHJ1ZSkKK3sKKyAgICBtX2Nvb3JkaW5hdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDb21wb3NpdGlu
Z0Nvb3JkaW5hdG9yPihtX3dlYlBhZ2UtPmNvcmVQYWdlKCksIHRoaXMpOworCisgICAgbV9jb29y
ZGluYXRvci0+Y3JlYXRlUm9vdExheWVyKG1fd2ViUGFnZS0+c2l6ZSgpKTsKKworICAgIENvb3Jk
aW5hdGVkU3VyZmFjZTo6c2V0RmFjdG9yeShjcmVhdGVDb29yZGluYXRlZFN1cmZhY2UpOworCisg
ICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUodGhpcyk7CisgICAg
c2NoZWR1bGVMYXllckZsdXNoKCk7Cit9CisKK1Bhc3NSZWZQdHI8Q29vcmRpbmF0ZWRTdXJmYWNl
PiBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlQ29vcmRpbmF0ZWRTdXJm
YWNlKGNvbnN0IEludFNpemUmIHNpemUsIENvb3JkaW5hdGVkU3VyZmFjZTo6RmxhZ3MgZmxhZ3Mp
Cit7CisgICAgcmV0dXJuIFRocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2U6OmNyZWF0ZShzaXpl
LCBmbGFncyk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNj
aGVkdWxlTGF5ZXJGbHVzaCgpCit7CisgICAgaWYgKCFtX2xheWVyRmx1c2hTY2hlZHVsaW5nRW5h
YmxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX2xheWVyRmx1c2hUaW1lci5pc0Fj
dGl2ZSgpKQorICAgICAgICBtX2xheWVyRmx1c2hUaW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisK
K3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldExheWVyRmx1c2hTY2hl
ZHVsaW5nRW5hYmxlZChib29sIGxheWVyRmx1c2hpbmdFbmFibGVkKQoreworICAgIGlmIChtX2xh
eWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxlZCA9PSBsYXllckZsdXNoaW5nRW5hYmxlZCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9sYXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQgPSBsYXllckZs
dXNoaW5nRW5hYmxlZDsKKworICAgIGlmIChtX2xheWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxlZCkg
eworICAgICAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGNhbmNlbFBlbmRpbmdMYXllckZsdXNoKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29y
ZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFNob3VsZE5vdGlmeUFmdGVyTmV4dFNjaGVkdWxlZExh
eWVyRmx1c2goYm9vbCBub3RpZnlBZnRlclNjaGVkdWxlZExheWVyRmx1c2gpCit7CisgICAgbV9u
b3RpZnlBZnRlclNjaGVkdWxlZExheWVyRmx1c2ggPSBub3RpZnlBZnRlclNjaGVkdWxlZExheWVy
Rmx1c2g7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFJv
b3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIp
Cit7CisgICAgbV9jb250ZW50TGF5ZXIgPSBncmFwaGljc0xheWVyOworICAgIHVwZGF0ZVJvb3RM
YXllcnMoKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6aW52
YWxpZGF0ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2Nyb2xsTm9uQ29tcG9zaXRlZENvbnRlbnRzKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCit7CisgICAgbV9jb21wb3NpdG9yLT5zY3JvbGxUbyhy
ZWN0LmxvY2F0aW9uKCkpOworICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOworfQorCit2b2lkIFRo
cmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpmb3JjZVJlcGFpbnQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3Q6OmZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgLy8gV2Ug
ZXhwZWN0IHRoZSBVSSBwcm9jZXNzIHRvIG5vdCByZXF1aXJlIGEgbmV3IHJlcGFpbnQgdW50aWwg
dGhlIHByZXZpb3VzIG9uZSBoYXMgZmluaXNoZWQuCisgICAgQVNTRVJUKCFtX2ZvcmNlUmVwYWlu
dEFzeW5jQ2FsbGJhY2tJRCk7CisgICAgbV9mb3JjZVJlcGFpbnRBc3luY0NhbGxiYWNrSUQgPSBj
YWxsYmFja0lEOworICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOworICAgIHJldHVybiB0cnVlOwor
fQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzaXplRGlkQ2hhbmdl
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG5ld1NpemUpCit7CisgICAgbV9jb29yZGluYXRvci0+
c2l6ZURpZENoYW5nZShuZXdTaXplKTsKKyAgICBtX2NvbXBvc2l0b3ItPmRpZENoYW5nZUNvbnRl
bnRzU2l6ZShuZXdTaXplKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdDo6ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkKK3sKKyAgICBtX2Nvb3JkaW5h
dG9yLT5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKK30KKwordm9pZCBUaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6cGF1c2VSZW5kZXJpbmcoKQoreworICAgIG1faXNT
dXNwZW5kZWQgPSB0cnVlOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0OjpyZXN1bWVSZW5kZXJpbmcoKQoreworICAgIG1faXNTdXNwZW5kZWQgPSBmYWxzZTsKKyAg
ICBzY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKworR3JhcGhpY3NMYXllckZhY3RvcnkqIFRocmVh
ZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpncmFwaGljc0xheWVyRmFjdG9yeSgpCit7Cisg
ICAgcmV0dXJuIG1fY29vcmRpbmF0b3IuZ2V0KCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGlu
YXRlZExheWVyVHJlZUhvc3Q6OnZpZXdwb3J0U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgc2l6ZSkKK3sKKyAgICBtX2NvbXBvc2l0b3ItPmRpZENoYW5nZVZpZXdwb3J0U2l6ZShz
aXplKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6ZGlkQ2hh
bmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYg
YXR0cikKK3sKKyAgICBtX2NvbXBvc2l0b3ItPmRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlKGF0
dHIpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpjb21wb3Np
dG9yRGlkRmx1c2hMYXllcnMoKQoreworICAgIHN0YXRpY19jYXN0PERyYXdpbmdBcmVhSW1wbCo+
KG1fd2ViUGFnZS0+ZHJhd2luZ0FyZWEoKSktPmxheWVySG9zdERpZEZsdXNoTGF5ZXJzKCk7Cit9
CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmRpZFNjYWxlRmFjdG9y
Q2hhbmdlZChmbG9hdCBzY2FsZSwgY29uc3QgSW50UG9pbnQmIG9yaWdpbikKK3sKKyAgICBtX3dl
YlBhZ2UtPnNjYWxlUGFnZShzY2FsZSwgb3JpZ2luKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdDo6dXBkYXRlUm9vdExheWVycygpCit7CisgICAgaWYgKCFtX2Nv
bnRlbnRMYXllciAmJiAhbV92aWV3T3ZlcmxheVJvb3RMYXllcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9jb29yZGluYXRvci0+c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIobV9jb250ZW50TGF5
ZXIsIG1fdmlld092ZXJsYXlSb290TGF5ZXIpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0OjpzZXRWaWV3T3ZlcmxheVJvb3RMYXllcihHcmFwaGljc0xheWVyKiB2
aWV3T3ZlcmxheVJvb3RMYXllcikKK3sKKyAgICBtX3ZpZXdPdmVybGF5Um9vdExheWVyID0gdmll
d092ZXJsYXlSb290TGF5ZXI7CisgICAgdXBkYXRlUm9vdExheWVycygpOworfQorCisjaWYgUExB
VEZPUk0oR1RLKQordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0TmF0
aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90IGhhbmRsZSkKK3sKKyAgICBt
X2xheWVyVHJlZUNvbnRleHQuY29udGV4dElEID0gaGFuZGxlOworICAgIG1fY29tcG9zaXRvci0+
c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKGhhbmRsZSk7Cit9CisjZW5kaWYK
KworI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKK3ZvaWQgVGhyZWFkZWRDb29y
ZGluYXRlZExheWVyVHJlZUhvc3Q6OnNjaGVkdWxlQW5pbWF0aW9uKCkKK3sKKyAgICBpZiAobV9p
c1dhaXRpbmdGb3JSZW5kZXJlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fbGF5ZXJG
bHVzaFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbGF5ZXJGbHVz
aFRpbWVyLnN0YXJ0T25lU2hvdChtX2Nvb3JkaW5hdG9yLT5uZXh0QW5pbWF0aW9uU2VydmljZVRp
bWUoKSk7CisgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Cit9CisjZW5kaWYKKwordm9pZCBUaHJl
YWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25z
dCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIHRyYWplY3RvcnlWZWN0b3IsIGZs
b2F0IHNjYWxlKQoreworICAgIG1fY29vcmRpbmF0b3ItPnNldFZpc2libGVDb250ZW50c1JlY3Qo
cmVjdCwgdHJhamVjdG9yeVZlY3Rvcik7CisgICAgaWYgKG1fbGFzdFNjcm9sbFBvc2l0aW9uICE9
IHJvdW5kZWRJbnRQb2ludChyZWN0LmxvY2F0aW9uKCkpKSB7CisgICAgICAgIG1fbGFzdFNjcm9s
bFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KHJlY3QubG9jYXRpb24oKSk7CisKKyAgICAgICAg
aWYgKCFtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+dXNlRml4ZWRM
YXlvdXQoKSkKKyAgICAgICAgICAgIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCku
dmlldygpLT5ub3RpZnlTY3JvbGxQb3NpdGlvbkNoYW5nZWQobV9sYXN0U2Nyb2xsUG9zaXRpb24p
OworICAgIH0KKworICAgIGlmIChtX2xhc3RTY2FsZUZhY3RvciAhPSBzY2FsZSkgeworICAgICAg
ICBtX2xhc3RTY2FsZUZhY3RvciA9IHNjYWxlOworICAgICAgICBkaWRTY2FsZUZhY3RvckNoYW5n
ZWQobV9sYXN0U2NhbGVGYWN0b3IsIG1fbGFzdFNjcm9sbFBvc2l0aW9uKTsKKyAgICB9CisKKyAg
ICBzY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdDo6Y2FuY2VsUGVuZGluZ0xheWVyRmx1c2goKQoreworICAgIG1fbGF5ZXJGbHVz
aFRpbWVyLnN0b3AoKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dDo6cGVyZm9ybVNjaGVkdWxlZExheWVyRmx1c2goKQoreworICAgIGlmIChtX2lzU3VzcGVuZGVk
IHx8IG1faXNXYWl0aW5nRm9yUmVuZGVyZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29v
cmRpbmF0b3ItPnN5bmNEaXNwbGF5U3RhdGUoKTsKKyAgICBib29sIGRpZFN5bmMgPSBtX2Nvb3Jk
aW5hdG9yLT5mbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKTsKKworICAgIGlmIChtX25vdGlmeUFm
dGVyU2NoZWR1bGVkTGF5ZXJGbHVzaCAmJiBkaWRTeW5jKSB7CisgICAgICAgIGNvbXBvc2l0b3JE
aWRGbHVzaExheWVycygpOworICAgICAgICBtX25vdGlmeUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVz
aCA9IGZhbHNlOworICAgIH0KK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdDo6cHVyZ2VCYWNraW5nU3RvcmVzKCkKK3sKKyAgICBtX2Nvb3JkaW5hdG9yLT5wdXJnZUJh
Y2tpbmdTdG9yZXMoKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dDo6cmVuZGVyTmV4dEZyYW1lKCkKK3sKKyAgICBtX2lzV2FpdGluZ0ZvclJlbmRlcmVyID0gZmFs
c2U7CisgICAgbV9jb29yZGluYXRvci0+cmVuZGVyTmV4dEZyYW1lKCk7CisgICAgc2NoZWR1bGVM
YXllckZsdXNoKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6
OmNvbW1pdFNjcm9sbE9mZnNldCh1aW50MzJfdCBsYXllcklELCBjb25zdCBJbnRTaXplJiBvZmZz
ZXQpCit7CisgICAgbV9jb29yZGluYXRvci0+Y29tbWl0U2Nyb2xsT2Zmc2V0KGxheWVySUQsIG9m
ZnNldCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6Om5vdGlm
eUZsdXNoUmVxdWlyZWQoKQoreworICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOworfQorCit2b2lk
IFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpjb21taXRTY2VuZVN0YXRlKGNvbnN0
IENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSYgc3RhdGUpCit7CisgICAgbV9pc1dhaXRpbmdGb3JS
ZW5kZXJlciA9IHRydWU7CisgICAgbV9jb21wb3NpdG9yLT51cGRhdGVTY2VuZVN0YXRlKHN0YXRl
KTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6cGFpbnRMYXll
ckNvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJ
bnRSZWN0JikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NjI1ODkzODgwMWJkNDI5YzcyM2ViZGUwNTNkYWMyYTZhYjM3Y2Y1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuaApAQCAtMCwwICsxLDE1NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMyBDb21wYW55IDEwMCwgSW5jLgorICog
Q29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGhyZWFk
ZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3RfaAorI2RlZmluZSBUaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdF9oCisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQp
CisKKyNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCisjaW5jbHVkZSAiTGF5ZXJUcmVlSG9z
dC5oIgorI2luY2x1ZGUgIlRocmVhZGVkQ29tcG9zaXRvci5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
Q29tcG9zaXRpbmdDb29yZGluYXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRQ
b2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
SW50U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZU92ZXJsYXkuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZTsKK2NsYXNzIENvb3JkaW5h
dGVkR3JhcGhpY3NTdGF0ZTsKK2NsYXNzIENvb3JkaW5hdGVkU3VyZmFjZTsKK2NsYXNzIEdyYXBo
aWNzQ29udGV4dDsKK2NsYXNzIEdyYXBoaWNzTGF5ZXI7CitjbGFzcyBHcmFwaGljc0xheWVyRmFj
dG9yeTsKK2NsYXNzIEdyYXBoaWNzTGF5ZXJGYWN0b3J5OworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJl
ZUhvc3QgOiBwdWJsaWMgTGF5ZXJUcmVlSG9zdCwgcHVibGljIFdlYkNvcmU6OkNvbXBvc2l0aW5n
Q29vcmRpbmF0b3I6OkNsaWVudCwgcHVibGljIFRocmVhZGVkQ29tcG9zaXRvcjo6Q2xpZW50IHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0PiBjcmVhdGUoV2ViUGFnZSopOwor
ICAgIHZpcnR1YWwgflRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KCk7CisKKyAgICB2
aXJ0dWFsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQoKSBvdmVycmlk
ZSB7IHJldHVybiBtX2xheWVyVHJlZUNvbnRleHQ7IH07CisKKyAgICB2aXJ0dWFsIHZvaWQgc2No
ZWR1bGVMYXllckZsdXNoKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldExheWVyRmx1
c2hTY2hlZHVsaW5nRW5hYmxlZChib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
U2hvdWxkTm90aWZ5QWZ0ZXJOZXh0U2NoZWR1bGVkTGF5ZXJGbHVzaChib29sKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCkgb3ZlcnJp
ZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3Bs
YXkoKSBvdmVycmlkZSB7IH07CisgICAgdmlydHVhbCB2b2lkIHNldE5vbkNvbXBvc2l0ZWRDb250
ZW50c05lZWREaXNwbGF5SW5SZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZSB7
IH07CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
Zm9yY2VSZXBhaW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGZvcmNlUmVwYWludEFz
eW5jKHVpbnQ2NF90IC8qY2FsbGJhY2tJRCovKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBuZXdTaXplKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkgb3ZlcnJp
ZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgcGF1c2VSZW5kZXJpbmcoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVzdW1lUmVuZGVyaW5nKCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWdlQmFja2dyb3VuZFRyYW5zcGFyZW5jeUNoYW5nZWQo
KSBvdmVycmlkZSB7IH07CisKKyAgICB2aXJ0dWFsIHZvaWQgdmlld3BvcnRTaXplQ2hhbmdlZChj
b25zdCBXZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZENo
YW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMm
KSBvdmVycmlkZTsKKworI2lmIFBMQVRGT1JNKEdUSykKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmF0
aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90KSBvdmVycmlkZTsKKyNlbmRp
ZgorCisjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQorICAgIHZpcnR1YWwgdm9p
ZCBzY2hlZHVsZUFuaW1hdGlvbigpIG92ZXJyaWRlOworI2VuZGlmCisKKyAgICB2b2lkIHNldFZp
ZXdPdmVybGF5Um9vdExheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJDb3JlOjpDb29yZGluYXRlZFN1cmZhY2U+IGNyZWF0ZUNvb3JkaW5hdGVk
U3VyZmFjZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6Q29vcmRpbmF0ZWRTdXJm
YWNlOjpGbGFncyk7CisKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBUaHJlYWRlZENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdChXZWJQYWdlKik7CisKK3ByaXZhdGU6CisKKyAgICB2b2lkIGNvbXBv
c2l0b3JEaWRGbHVzaExheWVycygpOworICAgIHZvaWQgZGlkU2NhbGVGYWN0b3JDaGFuZ2VkKGZs
b2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgb3JpZ2luKTsKKworICAgIHZvaWQg
dXBkYXRlUm9vdExheWVycygpOworCisgICAgdm9pZCBjYW5jZWxQZW5kaW5nTGF5ZXJGbHVzaCgp
OworICAgIHZvaWQgcGVyZm9ybVNjaGVkdWxlZExheWVyRmx1c2goKTsKKworICAgIFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllcigpIHsgcmV0dXJuIG1fY29vcmRpbmF0b3ItPnJvb3RM
YXllcigpOyB9CisKKyAgICAvLyBUaHJlYWRlZENvbXBvc2l0b3I6OkNsaWVudAorICAgIHZpcnR1
YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBmbG9hdCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHB1cmdlQmFja2luZ1N0b3JlcygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBy
ZW5kZXJOZXh0RnJhbWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tbWl0U2Nyb2xs
T2Zmc2V0KHVpbnQzMl90IGxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG9mZnNldCkg
b3ZlcnJpZGU7CisKKyAgICAvLyBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpDbGllbnQKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRmx1c2hSb290TGF5ZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
b3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tbWl0U2NlbmVTdGF0ZShjb25zdCBXZWJDb3JlOjpD
b29yZGluYXRlZEdyYXBoaWNzU3RhdGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFp
bnRMYXllckNvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCkgb3ZlcnJp
ZGU7CisKKyAgICBMYXllclRyZWVDb250ZXh0IG1fbGF5ZXJUcmVlQ29udGV4dDsKKyAgICB1aW50
NjRfdCBtX2ZvcmNlUmVwYWludEFzeW5jQ2FsbGJhY2tJRDsKKworICAgIFdlYkNvcmU6OkludFBv
aW50IG1fcHJldlNjcm9sbFBvc2l0aW9uOworCisgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllciog
bV9jb250ZW50TGF5ZXI7CisgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbV92aWV3T3Zlcmxh
eVJvb3RMYXllcjsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb21wb3NpdGluZ0Nv
b3JkaW5hdG9yPiBtX2Nvb3JkaW5hdG9yOworICAgIFJlZlB0cjxUaHJlYWRlZENvbXBvc2l0b3I+
IG1fY29tcG9zaXRvcjsKKworICAgIGJvb2wgbV9ub3RpZnlBZnRlclNjaGVkdWxlZExheWVyRmx1
c2g7CisgICAgYm9vbCBtX2lzU3VzcGVuZGVkOworICAgIGJvb2wgbV9pc1dhaXRpbmdGb3JSZW5k
ZXJlcjsKKworICAgIGZsb2F0IG1fbGFzdFNjYWxlRmFjdG9yOworICAgIFdlYkNvcmU6OkludFBv
aW50IG1fbGFzdFNjcm9sbFBvc2l0aW9uOworCisgICAgUnVuTG9vcDo6VGltZXI8VGhyZWFkZWRD
b29yZGluYXRlZExheWVyVHJlZUhvc3Q+IG1fbGF5ZXJGbHVzaFRpbWVyOworICAgIGJvb2wgbV9s
YXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKworI2VuZGlm
IC8vIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCmluZGV4IDZlY2Q3MjYwN2Uw
YWY1NGI4NWFlOTIxODE4YWQzZjQ5ZjdiOGM3YzYuLjE1ZDM5NGEyMGI3NTg2N2QxYTNmYWI0YTll
ZTUxZTFhYzlmNWNmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmNwcApAQCAtMzksNyArMzksNyBAQAogI2luY2x1ZGUgIlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAiVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWEuaCIKICNlbHNlCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDU19JUEMpCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWREcmF3aW5nQXJl
YS5oIgogI2Vsc2UKICNpbmNsdWRlICJEcmF3aW5nQXJlYUltcGwuaCIKQEAgLTYxLDcgKzYxLDcg
QEAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhPiBEcmF3aW5nQXJlYTo6Y3JlYXRlKFdlYlBh
Z2UmIHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2UKICAgICBjYXNlIERyYXdpbmdBcmVhVHlwZVJlbW90
ZUxheWVyVHJlZToKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWE+KHdlYlBhZ2UsIHBhcmFtZXRlcnMpOwogI2Vsc2UKLSNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKICAg
ICBjYXNlIERyYXdpbmdBcmVhVHlwZUNvb3JkaW5hdGVkOgogICAgICAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxDb29yZGluYXRlZERyYXdpbmdBcmVhPih3ZWJQYWdlLCBwYXJhbWV0ZXJzKTsK
ICNlbHNlCkBAIC03Nyw2ICs3Nyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYT4gRHJh
d2luZ0FyZWE6OmNyZWF0ZShXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBXZWJQYWdlCiBEcmF3aW5n
QXJlYTo6RHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlIHR5cGUsIFdlYlBhZ2UmIHdlYlBhZ2Up
CiAgICAgOiBtX3R5cGUodHlwZSkKICAgICAsIG1fd2ViUGFnZSh3ZWJQYWdlKQorI2lmIFVTRShU
RVhUVVJFX01BUFBFUl9HTCkgJiYgUExBVEZPUk0oR1RLKQorICAgICwgbV9uYXRpdmVTdXJmYWNl
SGFuZGxlRm9yQ29tcG9zaXRpbmcoMCkKKyNlbmRpZgogewogICAgIFdlYlByb2Nlc3M6OnNoYXJl
ZCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6RHJhd2luZ0FyZWE6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgbV93ZWJQYWdlLnBhZ2VJRCgpLCAqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IDQ0MWUxMTg1OTRl
ZjQ3NmU2Y2ZkZTU0NjVmNGZlMTg0NWNlNDJiZGIuLjZiMjJiYTdkZDI2N2VhYTMzNjZkMjE4NTAz
YWNhZTc5OWRlMDIyMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYS5oCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlS
ZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCk7CiAjZW5kaWYKIAotI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0TWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgPSAwOwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUlt
cGwuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1w
bC5jcHAKaW5kZXggYTc3MmJmYjBkMTg3MjNlMWY5ZDg3NjcyOTAyNGUyMTc1YTAwMWQxNC4uZjcx
MTgyY2NmNzJkY2FhNmU0N2I4ZDBlNzQ5NjE1NTAzM2NjODRkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAKQEAgLTM1
LDkgKzM1LDE0IEBACiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1NfVEhSRUFERUQpCisjaW5jbHVkZSAiVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Qu
aCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC02Myw2ICs2OCwxMSBAQCBEcmF3aW5nQXJlYUltcGw6OkRyYXdpbmdBcmVhSW1wbChX
ZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZQogICAgICwgbV9k
aXNwbGF5VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmRHJhd2luZ0FyZWFJbXBsOjpkaXNw
bGF5VGltZXJGaXJlZCkKICAgICAsIG1fZXhpdENvbXBvc2l0aW5nVGltZXIoUnVuTG9vcDo6bWFp
bigpLCB0aGlzLCAmRHJhd2luZ0FyZWFJbXBsOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUpCiB7CisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgd2Vi
UGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUp
OworI2VuZGlmCisKICAgICBpZiAod2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmFjY2Vs
ZXJhdGVkRHJhd2luZ0VuYWJsZWQoKSB8fCB3ZWJQYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCku
Zm9yY2VDb21wb3NpdGluZ01vZGUoKSkKICAgICAgICAgbV9hbHdheXNVc2VDb21wb3NpdGluZyA9
IHRydWU7CiAKQEAgLTIyMCw2ICsyMzAsMTYgQEAgdm9pZCBEcmF3aW5nQXJlYUltcGw6OnNldFBh
aW50aW5nRW5hYmxlZChib29sIHBhaW50aW5nRW5hYmxlZCkKICAgICBtX2lzUGFpbnRpbmdFbmFi
bGVkID0gcGFpbnRpbmdFbmFibGVkOwogfQogCit2b2lkIERyYXdpbmdBcmVhSW1wbDo6bWFpbkZy
YW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG5ld1NpemUpCit7
CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorICAgIGlmIChtX2xheWVy
VHJlZUhvc3QpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2l6ZURpZENoYW5nZShuZXdTaXpl
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG5ld1NpemUpOworI2VuZGlmCit9CisKIHZvaWQg
RHJhd2luZ0FyZWFJbXBsOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0
b3JlJiBzdG9yZSkKIHsKICAgICBtX3dlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zZXRG
b3JjZUNvbXBvc2l0aW5nTW9kZShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5j
ZXNLZXk6OmZvcmNlQ29tcG9zaXRpbmdNb2RlS2V5KCkpKTsKQEAgLTMyMiw3ICszNDIsMTEgQEAg
dm9pZCBEcmF3aW5nQXJlYUltcGw6OnVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IHN0
YXRlSUQsIGJvb2wgcmVzcG9uZEltbWUKICAgICAgICAgbV93ZWJQYWdlLnNjcm9sbE1haW5GcmFt
ZUlmTm90QXRNYXhTY3JvbGxQb3NpdGlvbihzY3JvbGxPZmZzZXQpOwogCiAgICAgICAgIGlmICht
X2xheWVyVHJlZUhvc3QpIHsKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQp
CisgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnZpZXdwb3J0U2l6ZUNoYW5nZWQobV93ZWJQ
YWdlLnNpemUoKSk7CisjZWxzZQogICAgICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zaXplRGlk
Q2hhbmdlKG1fd2ViUGFnZS5zaXplKCkpOworI2VuZGlmCiAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgbV9kaXJ0eVJlZ2lvbiA9IG1fd2ViUGFnZS5ib3VuZHMoKTsKICAgICB9IGVsc2UgewpA
QCAtNjQzLDEwICs2NjcsMzIgQEAgdm9pZCBEcmF3aW5nQXJlYUltcGw6OmRpc3BsYXkoVXBkYXRl
SW5mbyYgdXBkYXRlSW5mbykKICAgICBtX2Rpc3BsYXlUaW1lci5zdG9wKCk7CiB9CiAKK3ZvaWQg
RHJhd2luZ0FyZWFJbXBsOjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6
RnJhbWUqIGZyYW1lLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiB2aWV3T3ZlcmxheVJvb3RMYXll
cikKK3sKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgaWYgKCFm
cmFtZS0+aXNNYWluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX2xheWVy
VHJlZUhvc3QpCisgICAgICAgIHJldHVybjsKKworICAgIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0KiBjb29yZGluYXRlZExheWVyVHJlZUhvc3QgPSBzdGF0aWNfY2FzdDxUaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCo+KG1fbGF5ZXJUcmVlSG9zdC5nZXQoKSk7CisgICAg
Y29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LT5zZXRWaWV3T3ZlcmxheVJvb3RMYXllcih2aWV3T3Zl
cmxheVJvb3RMYXllcik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CisgICAgVU5V
U0VEX1BBUkFNKHZpZXdPdmVybGF5Um9vdExheWVyKTsKKyNlbmRpZgorfQorCiAjaWYgVVNFKFRF
WFRVUkVfTUFQUEVSX0dMKSAmJiBQTEFURk9STShHVEspCiB2b2lkIERyYXdpbmdBcmVhSW1wbDo6
c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90IGhhbmRsZSkKIHsK
ICAgICBtX25hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyA9IGhhbmRsZTsKKworI2lm
IFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAgICBpZiAobV9sYXllclRyZWVI
b3N0KQorICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JD
b21wb3NpdGluZyhoYW5kbGUpOworI2VuZGlmCiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCmluZGV4IGEwYTY4
YWEzNTA4MWUxNDkwZjA1ODQ1NTcxMmI1M2IzMTZmNjdjNjAuLjBmYmZhN2FhMzE3OTAxMDUzMmE3
YmJmNWE2MDk0ODkzYjBmZjU4ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKQEAgLTYwLDYgKzYwLDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0X3QgY2FsbGJhY2tJRCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpOworICAgIHZpcnR1
YWwgdm9pZCBtYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBX
ZWJQcmVmZXJlbmNlc1N0b3JlJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIG92ZXJyaWRlOwpAQCAt
NjcsNiArNjgsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0
aW5nTGF5ZXJGbHVzaCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBv
c2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0ZWx5KCkgb3ZlcnJpZGU7CiAKKyAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciopOworCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiBQTEFU
Rk9STShHVEspCiAgICAgdmlydHVhbCB2b2lkIHNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21w
b3NpdGluZyh1aW50NjRfdCkgb3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcAppbmRleCA1OTNhMWNhNDVk
NjM4N2EyMWY0ZTU1M2Y0NjQ1NWI3YTQ4MmUzMGU1Li5kZTlmNmY0NDUwMTYxYzdhMjdhOGRjM2Uy
ZTMyOWFiZDhkNzc4OGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwCkBAIC0yNiwxMSArMjYsMTEgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCiAKLSNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKICNpbmNsdWRl
ICJDb29yZGluYXRlZExheWVyVHJlZUhvc3QuaCIKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oR1RL
KSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisjZWxpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1NfVEhSRUFERUQpCisjaW5jbHVkZSAiVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Qu
aCIKKyNlbGlmIFBMQVRGT1JNKEdUSykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogI2luY2x1
ZGUgIkxheWVyVHJlZUhvc3RHdGsuaCIKICNlbmRpZgogCkBAIC00MCw4ICs0MCwxMCBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogUGFzc1JlZlB0cjxMYXllclRyZWVIb3N0PiBMYXllclRyZWVIb3N0
OjpjcmVhdGUoV2ViUGFnZSogd2ViUGFnZSkKIHsKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKICAgICByZXR1cm4gQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0OjpjcmVhdGUod2ViUGFnZSk7CisjZWxpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgcmV0dXJuIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0OjpjcmVhdGUod2ViUGFnZSk7CiAjZWxpZiBQTEFURk9STShHVEspICYmIFVTRShU
RVhUVVJFX01BUFBFUl9HTCkKICAgICByZXR1cm4gTGF5ZXJUcmVlSG9zdEd0azo6Y3JlYXRlKHdl
YlBhZ2UpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9MYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
TGF5ZXJUcmVlSG9zdC5oCmluZGV4IDY0ZWVjNTEzYmQyNmNlNTc5ZjBhMzIyMmE2NWZlMTkzMzk1
YmNmNDEuLmI4M2Y0ZWE4ZGVkZjk3YTg0MTVjM2JiMmRjZWRmMTQ5YzkxY2I2MTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaApAQCAt
NDMsNiArNDMsOSBAQCBjbGFzcyBJbnRSZWN0OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEdyYXBo
aWNzTGF5ZXI7CiBjbGFzcyBHcmFwaGljc0xheWVyRmFjdG9yeTsKKyNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1NfVEhSRUFERUQpCitjbGFzcyBWaWV3cG9ydEF0dHJpYnV0ZXM7CisjZW5kaWYK
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC03NiwxMCArNzksMTYgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZh
Y3RvcnkoKSB7IHJldHVybiAwOyB9CiAKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisj
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZUNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBD
OjpNZXNzYWdlRGVjb2RlciYpID0gMDsKICNlbmRpZgogCisjaWYgVVNFKENPT1JESU5BVEVEX0dS
QVBISUNTX1RIUkVBREVEKQorICAgIHZpcnR1YWwgdm9pZCBzZXROYXRpdmVTdXJmYWNlSGFuZGxl
Rm9yQ29tcG9zaXRpbmcodWludDY0X3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmlld3BvcnRT
aXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRy
aWJ1dGVzJikgPSAwOworI2VuZGlmCisKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpICYm
IEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVBbmltYXRpb24oKSA9IDA7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiZWZkNzg1MWY1NTRiN2QwZTY0YTAyMmY5M2NhN2Nl
MjUyZmVhN2ZlLi5mYjM0YmRmMGU1NTQ2N2IxZDYzMGZiNzcwNmIwM2RjZTJmNjdhYzlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yMDgs
NyArMjA4LDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CiAjZW5k
aWYKIAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1NfSVBDKQogI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2Vz
LmgiCiAjZW5kaWYKIApAQCAtNDczLDcgKzQ3Myw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0
X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQog
ICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2Vi
UGFnZTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCwgKnRoaXMpOwogCiAgICAgLy8g
RklYTUU6IFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlIG9iamVjdCBjb25zdHJ1Y3RvcnMsIGFu
ZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzIHNob3VsZCBiZSBtZXNzYWdlIHJlY2VpdmVycy4KLSNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
X0lQQykKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3Bh
Z2VJRCwgKnRoaXMpOwogI2VuZGlmCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKQEAgLTU0MCw3ICs1
NDAsNyBAQCBXZWJQYWdlOjp+V2ViUGFnZSgpCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1fcGFnZUlEKTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBkb25lIGluIHRo
ZSBvYmplY3QgZGVzdHJ1Y3RvcnMsIGFuZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzIHNob3VsZCBi
ZSBtZXNzYWdlIHJlY2VpdmVycy4KLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX0lQQykKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5y
ZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQpAQCAtMTI5OSw3ICsxMjk5LDEyIEBAIHZvaWQgV2ViUGFnZTo6c2VuZFZpZXdwb3J0
QXR0cmlidXRlc0NoYW5nZWQoKQogICAgIC8vIFRoaXMgYWxzbyB0YWtlcyBjYXJlIG9mIHRoZSBy
ZWxheW91dC4KICAgICBzZXRGaXhlZExheW91dFNpemUocm91bmRlZEludFNpemUoYXR0ci5sYXlv
dXRTaXplKSk7CiAKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGF0dHIp
KTsKKyNlbHNlCisgICAgaWYgKG1fZHJhd2luZ0FyZWEtPmxheWVyVHJlZUhvc3QoKSkKKyAgICAg
ICAgbV9kcmF3aW5nQXJlYS0+bGF5ZXJUcmVlSG9zdCgpLT5kaWRDaGFuZ2VWaWV3cG9ydFByb3Bl
cnRpZXMoYXR0cik7CisjZW5kaWYKIH0KICNlbmRpZgogCkBAIC0xNzg5LDcgKzE3OTQsMTEgQEAg
dm9pZCBXZWJQYWdlOjpwYWdlRGlkU2Nyb2xsKCkKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9S
RSkKIHZvaWQgV2ViUGFnZTo6cGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgSW50UG9pbnQmIHBv
aW50KQogeworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiAgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpQYWdlRGlkUmVxdWVzdFNjcm9sbChwb2ludCkpOworI2VsaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorICAgIGRyYXdpbmdBcmVhKCktPnNj
cm9sbChJbnRSZWN0KHBvaW50LCBJbnRTaXplKCkpLCBJbnRTaXplKCkpOworI2VuZGlmCiB9CiAj
ZW5kaWYKIApAQCAtMjM2MCw3ICsyMzY5LDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRTdGFydFBhZ2VU
cmFuc2l0aW9uKCkKIAogdm9pZCBXZWJQYWdlOjpkaWRDb21wbGV0ZVBhZ2VUcmFuc2l0aW9uKCkK
IHsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1NfSVBDKQogICAgIC8vIG1fbWFpbkZyYW1lIGNhbiBiZSBudWxsIHNpbmNlIHIxNzAxNjMu
CiAgICAgaWYgKG1fbWFpbkZyYW1lICYmIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygp
LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSkgewogICAgICAgICAvLyBXYWl0IHVudGlsIHRoZSBVSSBw
cm9jZXNzIHNlbnQgdXMgdGhlIHZpc2libGUgcmVjdCBpdCB3YW50cyByZW5kZXJlZC4KQEAgLTM1
MjMsNyArMzUzMiw3IEBAIGJvb2wgV2ViUGFnZTo6d2luZG93QW5kV2ViUGFnZUFyZUZvY3VzZWQo
KSBjb25zdAogCiB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKLSNpZiBVU0Uo
VElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfSVBDKQog
ICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6Q29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgaWYg
KG1fZHJhd2luZ0FyZWEpCiAgICAgICAgICAgICBtX2RyYXdpbmdBcmVhLT5kaWRSZWNlaXZlQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKQEAgLTQw
MTAsNyArNDAxOSw3IEBAIGJvb2wgV2ViUGFnZTo6Y2FuSGFuZGxlUmVxdWVzdChjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgcmV0dXJuIHBsYXRmb3JtQ2FuSGFu
ZGxlUmVxdWVzdChyZXF1ZXN0KTsKIH0KIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQor
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiB2b2lkIFdlYlBhZ2U6OmNvbW1pdFBh
Z2VUcmFuc2l0aW9uVmlld3BvcnQoKQogewogICAgIG1fZHJhd2luZ0FyZWEtPnNldExheWVyVHJl
ZVN0YXRlSXNGcm96ZW4oZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggMjNjZmNlOGQyZGQ4NTliYmIyMjhhNDQ1ZjM5ZmM3Y2VmMzQ1MDUw
NC4uYjcxMjhlYjg2NWQ1NGE0NGZjN2RkNjI3NWY5M2ZkNDNhMTEyOGE4ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC01ODUsNyArNTg1LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0VGhlbWVQYXRoKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAK
LSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1NfSVBDKQogICAgIHZvaWQgY29tbWl0UGFnZVRyYW5zaXRpb25WaWV3cG9ydCgpOwogI2VuZGlm
CiAKQEAgLTEwMTYsNyArMTAxNiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoaWRlRmluZFVJKCk7
CiAgICAgdm9pZCBjb3VudFN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiwgdWludDMyX3QgZmlu
ZE9wdGlvbnMsIHVpbnQzMl90IG1heE1hdGNoQ291bnQpOwogCi0jaWYgVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiAgICAgdm9pZCBm
aW5kWm9vbWFibGVBcmVhRm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBhcmVhKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDdlZDdlYTE5
NmVhNTI4NjQwZmFmMjkzYjU4ZTMzMDY3ODZmNjRjNzQuLmM0Njc3ZTc4NmI1NmZmMzcwZmVhYmFi
ZTNiYzc3YWYxNjBmODRmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zMTUsNyArMzE1LDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0VGhlbWVQYXRoKFN0cmluZyB0
aGVtZVBhdGgpCiAjZW5kaWYKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDU19JUEMpCiAgICAgQ29tbWl0UGFnZVRyYW5zaXRpb25WaWV3
cG9ydCgpCiAjZW5kaWYKIApAQCAtMzgxLDcgKzM4MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2Ug
TGVnYWN5UmVjZWl2ZXIgewogICAgIFNldENvbXBvc2l0aW9uKFN0cmluZyBjb21wb3NpdGlvblN0
cmluZywgVmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVzLCB1
aW50NjRfdCBjdXJzb3JQb3NpdGlvbikKICAgICBDYW5jZWxDb21wb3NpdGlvbigpCiAjZW5kaWYK
LSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTX0lQQykKICAgICBGaW5kWm9vbWFibGVBcmVhRm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQg
cG9pbnQsIFdlYkNvcmU6OkludFNpemUgYXJlYSkKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAKaW5kZXggZjRhYzNl
ZGIzMzNiMjBmODg2ZTA3M2I4YjIxY2MxZTI3NjdkZmE2ZC4uMWFmNDZlM2ZlN2Y4YmM2YmM2ZjRj
MmI0MDFjM2UyZmNiNmI3ZWI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcApAQCAtMzQsNiArMzQsMTAgQEAKICNpbmNsdWRl
IDxsaWJpbnRsLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAKKyNpZiBQTEFURk9STShY
MTEpCisjaW5jbHVkZSA8WDExL1hsaWIuaD4KKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Nyw2ICs1MSw5IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIHNsZWVwKDMwKTsKICNlbmRpZgogCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTX1RIUkVBREVEKSAmJiBQTEFURk9STShYMTEpCisgICAgICAgIFhJbml0VGhyZWFkcygpOwor
I2VuZGlmCiAgICAgICAgIGd0a19pbml0KG51bGxwdHIsIG51bGxwdHIpOwogCiAgICAgICAgIGJp
bmR0ZXh0ZG9tYWluKEdFVFRFWFRfUEFDS0FHRSwgUEFDS0FHRV9MT0NBTEVfRElSKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlv
bnNFZmwuY21ha2UKaW5kZXggY2IwNDUwMGQ5M2MxMzZhM2EwN2FkOGZiOWE2Y2Y4OTY4NzI4MjU3
Mi4uNDAzYmI3Zjc0NDVjYjhiNGI4NGRmNWVhYzQxODlkOWExNGJjNWY0MSAxMDA2NDQKLS0tIGEv
U291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNF
ZmwuY21ha2UKQEAgLTExOCw3ICsxMTgsNiBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfV0VCX0FVRElPIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX1dFQl9USU1JTkcgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxV
RShFTkFCTEVfV0VCR0wgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfWEhSX1RJTUVPVVQgT04pCi1XRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShXVEZf
VVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgT04pCiAKIGlmIChFTkFCTEVfTExJTlRfQ19MT09QKQog
ICAgIG1lc3NhZ2UoU1RBVFVTICJGb3JjZSBlbmFibGluZyBMTElOVCBDIExPT1AuIikKQEAgLTIw
OCw2ICsyMDcsOCBAQCBpZiAoRU5BQkxFX1ZJREVPIE9SIEVOQUJMRV9XRUJfQVVESU8pCiBlbmRp
ZiAoKQogCiBhZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX0NPT1JESU5BVEVEX0dSQVBISUNTPTEp
CithZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX0NPT1JESU5BVEVEX0dSQVBISUNTX0lQQz0xKQor
YWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9USUxFRF9CQUNLSU5HX1NUT1JFPTEpCiAKIGFkZF9k
ZWZpbml0aW9ucygtRFdURl9VU0VfVEVYVFVSRV9NQVBQRVI9MSkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFr
ZQppbmRleCA4YjEzYWE5NzdiYjRmOTE4NDllOThkMGEwZGZhNDYwYzY3NzgyMzYwLi4zY2MyZGUz
OWE2YjQ2MDUyZjUyNjNhZDMzNDJlMjkyYTkxZjBhNjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21h
a2UvT3B0aW9uc0dUSy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQpA
QCAtMTcyLDcgKzE3Miw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9XRUJfQVVESU8gT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
V0VCX1RJTUlORyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9Y
SFJfVElNRU9VVCBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9O
RVRXT1JLX1BST0NFU1MgT04pCi1XRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShXVEZf
VVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX1RIUkVBREVEX0NPTVBPU0lUT1IgT0ZGKQogV0VCS0lUX09QVElPTl9FTkQo
KQogCiBpZiAoTElCTk9USUZZX0ZPVU5EKQpAQCAtMzI5LDYgKzMyOSwxMiBAQCBpZiAoT1BFTkdM
X0ZPVU5EIEFORCAoR0xYX0ZPVU5EIE9SIEVHTF9GT1VORCkpCiAgICAgaWYgKEdMWF9GT1VORCkK
ICAgICAgICAgYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9HTFg9MSkKICAgICBlbmRpZiAoKQor
CisgICAgaWYgKEVOQUJMRV9USFJFQURFRF9DT01QT1NJVE9SKQorICAgICAgICBhZGRfZGVmaW5p
dGlvbnMoLURXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9MSkKKyAgICAgICAgYWRkX2RlZmlu
aXRpb25zKC1EV1RGX1VTRV9DT09SRElOQVRFRF9HUkFQSElDUz0xKQorICAgICAgICBhZGRfZGVm
aW5pdGlvbnMoLURXVEZfVVNFX0NPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEPTEpCisgICAg
ZW5kaWYgKCkKIGVuZGlmICgpCiAKIGlmIChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlIGIvU291cmNlL2NtYWtl
L1dlYktpdEZlYXR1cmVzLmNtYWtlCmluZGV4IGNhYzk5OTk4MjBmNTJhNzZjMjRkZGVjYWE5MDg2
NTIyYWNjNTI1NDYuLjMzZjY3Y2MxNjg5ZWU0MDA4MzM3ODZmMDE4ZWQ3NmYxMDhlZWFjMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQorKysgYi9Tb3VyY2Uv
Y21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKQEAgLTE0OSw3ICsxNDksNyBAQCBtYWNybyhXRUJL
SVRfT1BUSU9OX0JFR0lOKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9YSFJfVElN
RU9VVCAiVG9nZ2xlIFhIUiB0aW1lb3V0IHN1cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9O
X0RFRklORShFTkFCTEVfWFNMVCAiVG9nZ2xlIFhTTFQgc3VwcG9ydCIgT04pCiAgICAgV0VCS0lU
X09QVElPTl9ERUZJTkUoVVNFX1NZU1RFTV9NQUxMT0MgIlRvZ2dsZSBzeXN0ZW0gYWxsb2NhdG9y
IGluc3RlYWQgb2YgVENtYWxsb2MiIE9GRikKLSAgICBXRUJLSVRfT1BUSU9OX0RFRklORShXVEZf
VVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgIlRvZ2dsZSBUaWxlZCBCYWNraW5nIFN0b3JlIHN1cHBv
cnQiIE9GRikKKyAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfVEhSRUFERURfQ09NUE9T
SVRPUiAiVG9nZ2xlIFRvZ2dsZSBUaHJlYWRlZCBDb21wb3NpdG9yIHN1cHBvcnQiIE9GRikKIAog
ICAgIFdFQktJVF9PUFRJT05fREVQRU5EKEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIgRU5BQkxF
X1ZJREVPKQogICAgIFdFQktJVF9PUFRJT05fREVQRU5EKEVOQUJMRV9NRURJQV9DT05UUk9MU19T
Q1JJUFQgRU5BQkxFX1ZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlY29uZmlnLmguY21h
a2UgYi9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQppbmRleCAwMGQ1ZjMxODhkZTQ4OTU0NWUz
NTg3YjhlODRlMjdkMTYxZmU0YjRjLi40MzA5OGFhODhjM2Q4ZWJiMmQwM2UzYTAyZGI3NTNiMjA2
OGE2OTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQorKysgYi9Tb3Vy
Y2UvY21ha2Vjb25maWcuaC5jbWFrZQpAQCAtMTM5LDcgKzEzOSw2IEBACiAjY21ha2VkZWZpbmUw
MSBFTkFCTEVfWFNMVAogI2NtYWtlZGVmaW5lMDEgVVNFX1NZU1RFTV9NQUxMT0MKICNjbWFrZWRl
ZmluZTAxIFdURl9VU0VfR0VPQ0xVRTIKLSNjbWFrZWRlZmluZTAxIFdURl9VU0VfVElMRURfQkFD
S0lOR19TVE9SRQogI2NtYWtlZGVmaW5lMDEgSEFWRV9MTFZNCiAjY21ha2VkZWZpbmUwMSBIQVZF
X0dUS19VTklYX1BSSU5USU5HCiAjY21ha2VkZWZpbmUwMSBXVEZfQ1BVX0FSTTY0X0NPUlRFWEE1
MwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDlm
Y2I5YjVmNjQzNDE3NWQxZmExNTI1MjQ4NmIxNTJlM2MwYTVhMjkuLmNlNTNjMDI4NGEwMDlhM2Yy
OGUyNjhhZjIzZmFlNzg2MWQxZjAzNWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0xMi0wNiAgR3dhbmcgWW9v
biBId2FuZyAgPHlvb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtUaHJlYWRlZENvbXBv
c2l0b3JdIEFkZCBzdXBwb3J0IGZvciB0aHJlYWRlZCBjb21wb3NpdG9yLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MjY1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGhlIEVOQUJMRV9USFJF
QURFRF9DT01QT1NJVE9SIGZlYXR1cmUgZmxhZyB0byB0aGUgY21ha2UgYW5kCisgICAgICAgIGF1
dG90b29scyBidWlsZCBzeXN0ZW1zLiBUaGUgZmVhdHVyZSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0
LgorICAgICAgICBBbmQgcmVtb3ZlIGRlcHJlY2F0ZWQgdGhlIFdURl9VU0VfVElMRURfQkFDS0lO
R19TVE9SRSBmZWF0dXJlIGZsYWcKKyAgICAgICAgZnJvbSB0aGUgZmVhdHVyZSBmbGFncy4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbToKKwogMjAxNC0xMi0x
NCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBQ
YXNzUmVmIHdpdGggUmVmL1JlZiYmIGFjcm9zcyB0aGUgYm9hcmQuCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHBlcmwvRmVhdHVyZUxpc3QucG0KaW5kZXggNTFkZDhiZTAwNjFiMTJiNmE2NTM4MDVkYzEzMjkx
OTBkM2JjNzM4ZS4uMzMxZWI4ZWE1NTBiOGM5YmE1ODU3MmU3Njc4MzMyYmQ2ZTZlOTgwNSAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMTI4LDcgKzEyOCw3IEBA
IG15ICgKICAgICAkc3lzdGVtTWFsbG9jU3VwcG9ydCwKICAgICAkdGVtcGxhdGVFbGVtZW50U3Vw
cG9ydCwKICAgICAkdGV4dEF1dG9zaXppbmdTdXBwb3J0LAotICAgICR0aWxlZEJhY2tpbmdTdG9y
ZVN1cHBvcnQsCisgICAgJHRocmVhZGVkQ29tcG9zaXRvclN1cHBvcnQsCiAgICAgJHRocmVhZGVk
SFRNTFBhcnNlclN1cHBvcnQsCiAgICAgJHRvdWNoRXZlbnRzU3VwcG9ydCwKICAgICAkdG91Y2hT
bGlkZXJTdXBwb3J0LApAQCAtMzgzLDYgKzM4Myw5IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICB7
IG9wdGlvbiA9PiAidGVtcGxhdGUtZWxlbWVudCIsIGRlc2MgPT4gIlRvZ2dsZSBIVE1MVGVtcGxh
dGVFbGVtZW50IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVEVNUExBVEVfRUxF
TUVOVCIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR0ZW1wbGF0ZUVsZW1lbnRTdXBwb3J0IH0s
CiAKKyAgICB7IG9wdGlvbiA9PiAidGhyZWFkZWQtY29tcG9zaXRvciIsIGRlc2MgPT4gIlRvZ2ds
ZSBUaHJlYWRlZCBDb21wb3NpdG9yIHN1cHBvcnQiLAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
VEhSRUFERURfQ09NUE9TSVRPUiIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCR0aHJlYWRlZENv
bXBvc2l0b3JTdXBwb3J0IH0sCisKICAgICB7IG9wdGlvbiA9PiAidGV4dC1hdXRvc2l6aW5nIiwg
ZGVzYyA9PiAiVG9nZ2xlIFRleHQgQXV0b3NpemluZyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX1RFWFRfQVVUT1NJWklORyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCR0ZXh0
QXV0b3NpemluZ1N1cHBvcnQgfSwKIApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9n
CmluZGV4IGFhOTMwM2Y0ZWQ1NDkwYzQzOWM0YTU2ZDdjMmQ3YTZmY2UzNjBlNGEuLjQ1MzVjZGM0
NTcwZWI2YjA2ZWE0NWUxZDExYzdkZTM3OGM0Y2I2OTggMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZwor
KysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNC0xMi0wNiAgR3dhbmcgWW9vbiBI
d2FuZyAgPHlvb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtUaHJlYWRlZENvbXBvc2l0
b3JdIEFkZCBzdXBwb3J0IGZvciB0aHJlYWRlZCBjb21wb3NpdG9yLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MjY1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGhlIEVOQUJMRV9USFJFQURF
RF9DT01QT1NJVE9SIGZlYXR1cmUgZmxhZyB0byB0aGUgY21ha2UgYW5kCisgICAgICAgIGF1dG90
b29scyBidWlsZCBzeXN0ZW1zLiBUaGUgZmVhdHVyZSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0Lgor
ICAgICAgICBBbmQgcmVtb3ZlIGRlcHJlY2F0ZWQgdGhlIFdURl9VU0VfVElMRURfQkFDS0lOR19T
VE9SRSBmZWF0dXJlIGZsYWcKKyAgICAgICAgZnJvbSB0aGUgZmVhdHVyZSBmbGFncy4KKworICAg
ICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9j
bWFrZS9PcHRpb25zR1RLLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRGZWF0
dXJlcy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZToKKwogMjAx
NC0xMi0xMCAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgogCiAgICAgICAg
IE51bGwgZGVyZWZlcmVuY2UgcGVyZm9ybWluZyBhICJUYXBBbmRBSGFsZiIgZ2VzdHVyZSBpbiBH
b29nbGUgc2VhcmNoIGZpZWxkCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244059</attachid>
            <date>2015-01-06 06:58:13 -0800</date>
            <delta_ts>2015-01-06 09:04:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118265-20150106235814.patch</filename>
            <type>text/plain</type>
            <size>57214</size>
            <attacher name="Gwang Yoon Hwang">yoon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3ODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNkOTIwYTc5NzRhMTU3
NWY3NGY2YzFiOTU1Y2U3ZTQxZTM5NDI4MC4uZTk5YjI3ZjJlOTUwNDRkOGExYjA3YzA3YjlkYjdj
NDJjNTNhZDg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTEyLTA2ICBHd2Fu
ZyBZb29uIEh3YW5nICA8eW9vbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1RocmVhZGVk
Q29tcG9zaXRvcl0gQWRkIHN1cHBvcnQgZm9yIHRocmVhZGVkIGNvbXBvc2l0b3IuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgyNjUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNt
YWtlOgorICAgICAgICBBZGRzIENvb2RpbmF0ZWRHcmFwaGljcyBhbmQgdGhyZWFkZWQgY29tcG9z
aXRvciByZWxhdGVkIGNsYXNzZXMgdG8KKyAgICAgICAgc3VwcG9ydCB0aHJlYWRlZCBjb21wb3Np
dG9yCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRUaWxlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmg6CisgICAgICAgIFRoaXMgY2xhc3Mgc2hvdWxkIGJl
IGd1YXJkZWQgYnkgQ09PUkRJTkFURURfR1JBUEhJQ1MgaW5zdGVhZCBvZgorICAgICAgICBUSUxF
RF9CQUNLSU5HX1NUT1JFCisKIDIwMTUtMDEtMDUgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFu
emFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIERpc2FibGUgZ3N0LXBsdWdp
bi1zY2FubmVyIGlmIHNlY2NvbXAgZmlsdGVycyBhcmUgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDJh
OTQ3MDg0YjUwYTMyMTFjODc3ZmZmYWI3NThjZWFiYTk2NjBmOTQuLjY3NGY4MmYzZDUwMmFhZTUz
MGQ0NTExYmRjOGM0MjI3NzZmZjAyYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NSBAQAorMjAx
NC0xMi0wNiAgR3dhbmcgWW9vbiBId2FuZyAgPHlvb25AaWdhbGlhLmNvbT4KKworICAgICAgICBb
R1RLXVtUaHJlYWRlZENvbXBvc2l0b3JdIEFkZCBzdXBwb3J0IGZvciB0aHJlYWRlZCBjb21wb3Np
dG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4
MjY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBUaHJlYWRlZCBDb21wb3NpdG9yIGZvciBXZWJLaXRHVEsr
LgorICAgICAgICBJdCBpcyBkaXNhYmxlZCBhcyBhIGRlZmF1bHQgYmVjYXVzZSBpdCBpcyBhIGlu
aXRpYWwgaW1wbGVtZW50YXRpb24uCisgICAgICAgIFRoZSB0aHJlYWRlZCBjb21wb3NpdG9yIGNh
biBiZSBlbmFibGVkIHVzaW5nIC0tdGhyZWFkZWQtY29tcG9zaXRvcgorICAgICAgICBvcHRpb24g
YXQgY29tcGlsZSB0aW1lLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdGhpcyBpcyBhbiBleHBl
cmltZW50YWwgZmVhdHVyZS4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAg
ICBBZGRzIENvb2RpbmF0ZWRHcmFwaGljcyBhbmQgdGhyZWFkZWQgY29tcG9zaXRvciByZWxhdGVk
IGNsYXNzZXMgdG8KKyAgICAgICAgc3VwcG9ydCB0aHJlYWRlZCBjb21wb3NpdG9yCisKKyAgICAg
ICAgKiBTaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmg6CisgICAgICAgIFVzZSBEcmF3aW5nQXJlYUlt
cGwgZm9yIHRocmVhZGVkIGNvbXBvc2l0b3IKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKF9XZWJLaXRTZXR0aW5nc1ByaXZhdGU6Ol9X
ZWJLaXRTZXR0aW5nc1ByaXZhdGUpOgorICAgICAgICBNb2RpZmllZCB0byB1c2UgZm9yY2VDb21w
b3NpdGluZ01vZGUgd2hlbiB0aGUgdGhyZWFkZWQgY29tcG9zaXRvciB1c2VkLgorICAgICAgICBJ
ZiB3ZSBkb2VzIG5vdCBzZXQgdGhpcyBtb2RlIGhlcmUsIGl0IGNhbm5vdCBkcmF3IHRoZSByb290
IGNvbnRlbnQgbGF5ZXIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVk
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpUaHJl
YWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6cm9vdExheWVyKToKKyAgICAgICAgSW1wbGVt
ZW50cyBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCB0byB1c2UgdGhlIHRocmVhZGVk
CisgICAgICAgIGNvbXBvc2l0b3IuIEl0IGlzIGJhc2ljYWxseSBzaW1pbGFyIHdpdGggQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0IGJ1dCBpdCB1c2VzIFRocmVhZGVkQ29tcG9zaXRvciBpbnN0ZWFk
IG9mIElQQy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVu
dHNTaXplQ2hhbmdlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkRyYXdpbmdBcmVhOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJl
YTo6RHJhd2luZ0FyZWEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5oOgorICAgICAgICBDT09SRElOQVRFRF9HUkFQSElDU19NVUxJVElQUk9DRVNTIGlzIGludHJv
ZHVjZWQgdG8gY2xhc3NpZnkgSVBDIHNwZWNpZmljIGNvZGVzCisgICAgICAgIGZyb20gQ29vcmRp
bmF0ZWQgR3JhcGhpY3MuCisgICAgICAgIEFuZCBDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURF
RCBpcyB1c2VkIHRvIGd1YXJkIHRoZSB0aHJlYWRlZAorICAgICAgICBjb21wb3NpdG9yIHNwZWNp
ZmljIGNvZGVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1wbDo6RHJhd2luZ0FyZWFJbXBs
KToKKyAgICAgICAgTW9kaWZpZWQgdG8gdXNlIGZvcmNlQ29tcG9zaXRpbmdNb2RlIHdoZW4gdGhl
IHRocmVhZGVkIGNvbXBvc2l0b3IgdXNlZC4KKyAgICAgICAgSWYgd2UgZG9lcyBub3Qgc2V0IHRo
aXMgbW9kZSBoZXJlLCBpdCB3aWxsIGNyYXNoIGJlY2F1c2Ugb2YgUGFnZU92ZXJsYXkuCisgICAg
ICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1wbDo6bWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFJbXBsOjp1cGRhdGVCYWNraW5nU3RvcmVT
dGF0ZSk6CisgICAgICAgIE1vZGlmaWVkIHRvIGhhbmRsZSBjb250ZW50cyAvIHZpZXdwb3J0IHNp
emUgY2hhbmdlcyBmb3IgdGhyZWFkZWQgY29tcG9zaXRvci4KKyAgICAgICAgKFdlYktpdDo6RHJh
d2luZ0FyZWFJbXBsOjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIpOgorICAgICAgICBB
ZGRlZCB0byBzdXBwb3J0IE92ZXJsYXkgbGF5ZXIgaW4gdGhlIHRocmVhZGVkIGNvbXBvc2l0b3Iu
CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1wbDo6c2V0TmF0aXZlU3VyZmFjZUhhbmRs
ZUZvckNvbXBvc2l0aW5nKToKKyAgICAgICAgUHVzaCB0aGUgc3VyZmFjZSBoYW5kbGUgZm9yIGNv
bXBvc2l0aW5nIHRvIHRoZSB0aHJlYWRlZCBjb21wb3NpdG9yLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oOiBVc2UgQ09PUkRJTkFURURfR1JBUElIQ1Nf
VEhSRUFERUQgdG8gZ3VhcmQgdGhlIHRocmVhZGVkIGNvbXBvc2l0b3IgcmVsYXRlZCBjb2Rlcy4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHA6IERpdHRvLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0Lmg6IERpdHRvLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDogRGl0dG8uCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46IERpdHRvLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwOgorICAgICAgICAgICAgTW9kaWZpZWQgdG8g
Y2FsbCBYSW5pdFRocmVhZHMgdG8gdXNlIHRocmVhZC1zYWZlIHhsaWIuCisKIDIwMTUtMDEtMDQg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhbiB1
cCBzb21lIG9mIHRoZSBJUEMgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCAxYmY2
NzNhYTllYWZkMDcxYTc1MzFlZTRhNzZiMjRkMTI5OWJlZGQ1Li5iZjExYTgzMzk3N2RlNzdmNDI5
NzkwNjA2ZThhOTMyNjcxMzJiYjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMzc2
LDYgKzM3NiwzMSBAQCBpZiAoRU5BQkxFX1RFWFRVUkVfTUFQUEVSKQogICAgICkKIGVuZGlmICgp
CiAKK2lmIChFTkFCTEVfVEhSRUFERURfQ09NUE9TSVRPUikKKyAgICBsaXN0KEFQUEVORCBXZWJD
b3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L3BhZ2Uvc2Ny
b2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MiCisgICAgICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQiCisgICAgICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvdGhyZWFkZWRjb21wb3NpdG9yIgorICAgICkKKyAg
ICBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgcGFnZS9zY3JvbGxpbmcvY29v
cmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3Mu
Y3BwCisgICAgICAgIHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5n
U3RhdGVOb2RlQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKyAgICAgICAgcGFnZS9zY3JvbGxpbmcv
Y29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGVDb29yZGluYXRl
ZEdyYXBoaWNzLmNwcAorICAgICAgICBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNr
eU5vZGUuY3BwCisgICAgICAgIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAKKyAg
ICAgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwCisgICAgICAgIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0FyZWFBbGxvY2F0b3IuY3BwCisgICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAor
ICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFN1cmZhY2UuY3BwCisgICAgICAgIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFRpbGUuY3BwCisg
ICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9VcGRhdGVBdGxhcy5j
cHAKKyAgICApCitlbmRpZiAoKQorCiBpZiAoV1RGX1VTRV9FR0wpCiAgICAgbGlzdChBUFBFTkQg
V2ViQ29yZV9MSUJSQVJJRVMKICAgICAgICAgJHtFR0xfTElCUkFSWX0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGlu
YXRlZFRpbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5jcHAKaW5kZXggYjI0ZjQ4ZDIzNjE5MTc5MTAzY2Nm
YjQ3ZGU2YzBlZmJjZDQxZGY4Yy4uZGQzMmMyMzQ5MTk3MzI0MzZjOTJiNGQ3OTMwNmNmYmZmZTA2
ZDM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5jcHAKQEAg
LTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb29yZGluYXRl
ZFRpbGUuaCIKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUg
IkltYWdlQnVmZmVyLmgiCkBAIC0xNDEsNCArMTQxLDQgQEAgdm9pZCBDb29yZGluYXRlZFRpbGVC
YWNrZW5kOjpwYWludENoZWNrZXJQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0
UmUKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNFKFRJTEVEX0JBQ0tJ
TkdfU1RPUkUpCisjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkVGlsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5oCmluZGV4IGQ4NDVjZTVkZjU4MzE1YWNiMzJk
YjBiNWIwMTVmZjY2MmIxODA5NTIuLmI3OTcwOWYzYmE2NGNlNWMwNjA3MzRkMmY1ZWE2MWUxMTUw
NDIxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZFRpbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmgKQEAgLTI2
LDcgKzI2LDcgQEAKICNpZm5kZWYgQ29vcmRpbmF0ZWRUaWxlX2gKICNkZWZpbmUgQ29vcmRpbmF0
ZWRUaWxlX2gKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKIAogI2luY2x1ZGUgIkNvb3JkaW5hdGVkU3VyZmFjZS5oIgogI2luY2x1
ZGUgIkludFJlY3QuaCIKQEAgLTkxLDYgKzkxLDYgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjZW5kaWYg
Ly8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogCiAjZW5kaWYgLy8gQ29vcmRpbmF0ZWRUaWxl
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYjg2MjA1YzYwMzU1YzRhYzMxMTUzZDZh
MDMxZjk2MTMxZDNiMWM3Mi4uYmFiZTI3ZDdlOTQ3OTYxM2M3NTkwOTNjNWIyMGMwYjU0MTcyNTIw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTMxMSw3ICszMTEsNiBAQCBsaXN0KEFQ
UEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFn
ZUFjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCiAKLSAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L0xheWVyVHJlZUhvc3RHdGsuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9QcmludGVy
TGlzdEd0ay5jcHAKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYkluc3BlY3RvclVJR3Rr
LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAKQEAgLTc0Miw2
ICs3NDEsMjcgQEAgbGlzdChBUFBFTkQgUGx1Z2luUHJvY2Vzc19TT1VSQ0VTCiAgICAgUGx1Z2lu
UHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgvUGx1Z2luUHJvY2Vzc01haW4uY3BwCiApCiAKK2lmIChF
TkFCTEVfVEhSRUFERURfQ09NUE9TSVRPUikKKyAgICBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJD
RVMKKyAgICAgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmUuY3BwCisgICAgICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZS5jcHAKKyAgICAgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvU2lt
cGxlVmlld3BvcnRDb250cm9sbGVyLmNwcAorICAgICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAorICAgICAgICBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkU2FmZUNv
b3JkaW5hdGVkU3VyZmFjZS5jcHAKKyAgICAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisgICAgKQor
ICAgIGxpc3QoQVBQRU5EIFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkIgorICAgICAg
ICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MiCisgICAgICAgICIk
e1dFQktJVDJfRElSfS9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0
b3IiCisgICAgICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcyIKKyAgICApCitlbHNlIChFTkFCTEVfVEhSRUFERURfQ09NUE9TSVRPUikKKyAg
ICBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKKyAgICAgICAgV2ViUHJvY2Vzcy9XZWJQYWdl
L2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcAorICAgICkKK2VuZGlmICgpCisKICMgQ29tbWFuZHMg
Zm9yIGJ1aWxkaW5nIHRoZSBidWlsdC1pbiBpbmplY3RlZCBidW5kbGUuCiBpbmNsdWRlX2RpcmVj
dG9yaWVzKAogICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybSIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9EcmF3aW5nQXJlYUluZm8uaAppbmRleCA4Njg3N2FhNmNkZTRkNGFkZTQyMmI0MGVhZmI0NjYz
ZGMyNWFhMGZhLi4xNzU4YzJlZTk4MWE5NjhkN2IzYTZkNzk4YjQ5NWVmMjI1OTBmMWFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCkBAIC0zNSw3ICszNSw3IEBAIGVu
dW0gRHJhd2luZ0FyZWFUeXBlIHsKICNlbmRpZgogICAgIERyYXdpbmdBcmVhVHlwZVJlbW90ZUxh
eWVyVHJlZSwKICNlbHNlCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDU19NVUxJVElQUk9DRVNTKQogICAgIERyYXdpbmdBcmVhVHlwZUNv
b3JkaW5hdGVkCiAjZWxzZQogICAgIERyYXdpbmdBcmVhVHlwZUltcGwsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggZDk2
OWM1YjhkODU2MDY5N2ZlMjE1ZTNkYzQ2M2E0MmMwYzQyMjkyYi4uNzZmM2I3MzVkN2ZjYWMwODlj
MTExZDFhNzhkNzFhOWUzMWUxZmE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcApAQCAtNTQsNiArNTQsMTAgQEAgc3RydWN0
IF9XZWJLaXRTZXR0aW5nc1ByaXZhdGUgewogICAgICAgICBmYW50YXN5Rm9udEZhbWlseSA9IHBy
ZWZlcmVuY2VzLT5mYW50YXN5Rm9udEZhbWlseSgpLnV0ZjgoKTsKICAgICAgICAgcGljdG9ncmFw
aEZvbnRGYW1pbHkgPSBwcmVmZXJlbmNlcy0+cGljdG9ncmFwaEZvbnRGYW1pbHkoKS51dGY4KCk7
CiAgICAgICAgIGRlZmF1bHRDaGFyc2V0ID0gcHJlZmVyZW5jZXMtPmRlZmF1bHRUZXh0RW5jb2Rp
bmdOYW1lKCkudXRmOCgpOworCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVE
KQorICAgICAgICBwcmVmZXJlbmNlcy0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7Cisj
ZW5kaWYKICAgICB9CiAKICAgICBSZWZQdHI8V2ViUHJlZmVyZW5jZXM+IHByZWZlcmVuY2VzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5k
ZXggYWIxOGM2M2E3Nzg3NGJkMDhlM2JjYTU1ZWRlOTZjODdiNTUxOTI1Ny4uMmRiMjNhMGYzNjZj
NWQzYjM3ZjFkNjRjYjcwZTNhYzQwOWUyNTg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5oCkBAIC0yMSw3ICsyMSw3IEBACiAjaWZuZGVm
IENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5X2gKICNkZWZpbmUgQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0UHJveHlfaAogCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDU19NVUxJVElQUk9DRVNTKQogCiAjaW5jbHVkZSAiQ29vcmRp
bmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lLmgiCkBAIC02OSw2ICs2OSw2IEBAIHByb3RlY3RlZDoKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjZW5kaWYg
Ly8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NFU1MpCiAKICNlbmRpZiAvLyBD
b29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaAppbmRleCA2N2NiMjdlMzQ4YTBkNjg2NzFjOGIxMzBmMTUwN2MyY2Y3ODJmZTdhLi5h
YWQ0ZjhiYmExZDMxOTk5NTJiMTcyZWVlZTk3MWUyNDY0NWUxMjgzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTEzOCwxMiArMTM4LDEwIEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgdm9pZCBkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIGJvb2wgdXNlQ3VzdG9tQ29udGVudFByb3ZpZGVyKSA9IDA7CiAKLSNpZiBVU0UoVElM
RURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMSVRJUFJP
Q0VTUykKICAgICB2aXJ0dWFsIHZvaWQgcGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbmRlckZyYW1lKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
Y292ZXJlZFJlY3QpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGFnZVRyYW5zaXRpb25WaWV3cG9y
dFJlYWR5KCkgPSAwOwotI2VuZGlmCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5kWm9vbWFibGVBcmVhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpID0gMDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDAyODJlOTQyNDk0ZDU2NWU0YTg1NzQ0
NzFjODZlMTAyMWIxMmJhMDYuLjBkYjY0YmYwZDZmMTQyNWY0NWVjOTc1ZjZhNTlhNmM4ZTc0OTkz
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMDks
NyArMTA5LDcgQEAKICNpbmNsdWRlICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Lmgi
CiAjZW5kaWYKIAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1NfTVVMSVRJUFJPQ0VTUykKICNpbmNsdWRlICJDb29yZGluYXRlZExheWVy
VHJlZUhvc3RQcm94eU1lc3NhZ2VzLmgiCiAjZW5kaWYKIApAQCAtMTM3Miw3ICsxMzcyLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbiYpCiB9CiAjZW5kaWYKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxJVElQUk9DRVNTKQogdm9pZCBXZWJQ
YWdlUHJveHk6OmNvbW1pdFBhZ2VUcmFuc2l0aW9uVmlld3BvcnQoKQogewogICAgIGlmICghaXNW
YWxpZCgpKQpAQCAtMzI4MCw3ICszMjgwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVpbnQ2NF90IGYKICAg
ICBzaG91bGRDbG9zZSA9IG1fdWlDbGllbnQtPnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh0
aGlzLCBtZXNzYWdlLCBmcmFtZSk7CiB9CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkK
KyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMSVRJUFJPQ0VTUykKIHZvaWQgV2ViUGFn
ZVByb3h5OjpwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CiAg
ICAgbV9wYWdlQ2xpZW50LnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKHBvaW50KTsKQEAgLTMzOTYsNyAr
MzM5Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxv
YWRQcm94eSogZG93bmxvYWQpCiAgICAgbV9wYWdlQ2xpZW50LmhhbmRsZURvd25sb2FkUmVxdWVz
dChkb3dubG9hZCk7CiB9CiAKLSNpZiBQTEFURk9STShFRkwpCisjaWYgVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTX01VTElUSVBST0NFU1MpCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlQ29u
dGVudFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAgICBtX3BhZ2VDbGllbnQuZGlkQ2hh
bmdlQ29udGVudFNpemUoc2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggN2YzYjA3ZDc3YTAyN2E5ZjY4YTM1ZGQ4ZmEzODQyMWIyM2M5YzU4Yi4uMmM4YTE1
MGFjOTgxMTg1MjkxZjVhZmE5ZDRiZWQ4NDMxM2RhZDQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDc1LDcgKzQ3NSw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgZGlkQ29tbWl0TGF5ZXJUcmVlKGNvbnN0IFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb24mKTsKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKSAKKyNpZiBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1NfTVVMSVRJUFJPQ0VTUykKICAgICB2b2lkIGRpZFJlbmRlckZyYW1lKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgY292ZXJlZFJlY3QpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oRUZMKQpAQCAtNTQ3LDcgKzU0
Nyw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShHVEspCiAgICAgUGxhdGZvcm1XaWRnZXQgdmll
d1dpZGdldCgpOwogI2VuZGlmCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NFU1MpCiAgICAgdm9pZCBjb21taXRQYWdl
VHJhbnNpdGlvblZpZXdwb3J0KCk7CiAjZW5kaWYKIApAQCAtMTEwNywxNCArMTEwNywxMCBAQCBw
cml2YXRlOgogICAgIHZvaWQgY2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50NjRf
dD4mIG5vdGlmaWNhdGlvbklEcyk7CiAgICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKHVp
bnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQor
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxJVElQUk9DRVNTKQogICAgIHZvaWQgcGFn
ZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICAgICB2b2lkIHBh
Z2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpOwotI2VuZGlmCi0jaWYgVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTKQogICAgIHZvaWQgZGlkRmluZFpvb21hYmxlQXJlYShjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSNlbmRpZgotI2lmIFBMQVRGT1JN
KEVGTCkKICAgICB2b2lkIGRpZENoYW5nZUNvbnRlbnRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCAzOGE1MjRlYzY4NzU1MzMyMDI3NDMyZDFkODk2YzVlZTE0
ODU3ZTVlLi44ZGNmOTUzZGNjZWU0MmRjMDlmZWUxM2QwOTE0ZDNjZDQ5NTlkZmM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAg
LTk1LDE1ICs5NSwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEhhbmRsZUlu
cHV0TWV0aG9kS2V5ZG93bigpIC0+IChib29sIGhhbmRsZWQpCiAjZW5kaWYKIAotI2lmIFVTRShU
SUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxJVElQ
Uk9DRVNTKQogICAgIFBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKFdlYkNvcmU6OkludFBvaW50IHBvaW50
KQogICAgIFBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpCi0jZW5kaWYKLSNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1MpCiAgICAgRGlkRmluZFpvb21hYmxlQXJlYShXZWJDb3JlOjpJbnRQ
b2ludCB0YXJnZXQsIFdlYkNvcmU6OkludFJlY3QgYXJlYSkKLSNlbmRpZgotCi0jaWYgUExBVEZP
Uk0oRUZMKQogICAgIERpZENoYW5nZUNvbnRlbnRTaXplKFdlYkNvcmU6OkludFNpemUgbmV3U2l6
ZSkKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNGQ1NGJhYzA2ZGRmODBj
MWUxNTdkOWUzYzU1ZjQ1MTdlY2FkYzkxYS4uZWE4MTdjZWM5NzJkODdkNjdiMmFkNzcxZDJhMDVj
MTU4OGRiMzE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNTIxLDggKzUyMSwxMCBA
QCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUs
IGNvbnN0IEludFNpemUmIHNpemUpIGNvbgogICAgIGlmIChtX3BhZ2UtPnVzZUZpeGVkTGF5b3V0
KCkpCiAgICAgICAgIG1fcGFnZS0+ZHJhd2luZ0FyZWEoKS0+bGF5ZXJUcmVlSG9zdCgpLT5zaXpl
RGlkQ2hhbmdlKHNpemUpOwogCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBS
T0NFU1MpCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5n
ZUNvbnRlbnRTaXplKHNpemUpKTsKICNlbmRpZgorI2VuZGlmCiAKICAgICBtX3BhZ2UtPmRyYXdp
bmdBcmVhKCktPm1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChzaXplKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWREcmF3aW5nQXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmNwcAppbmRl
eCA1Mjg1N2RiYmE1ZTllNmJkMjhjYWFjZjcxZTFiMTNjNTYzYTc5YjA1Li42Y2MxN2JjY2NkZDZi
ZWM4OThlNDA5ODNlZmYyYzMzNzc4YzU1ZDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdB
cmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmNwcApAQCAtNjAwLDExICs2MDAsMTMg
QEAgdm9pZCBDb29yZGluYXRlZERyYXdpbmdBcmVhOjpkaXNwbGF5KFVwZGF0ZUluZm8mIHVwZGF0
ZUluZm8pCiAgICAgbV9kaXNwbGF5VGltZXIuc3RvcCgpOwogfQogCisjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX01VTElUSVBST0NFU1MpCiB2b2lkIENvb3JkaW5hdGVkRHJhd2luZ0FyZWE6
OmRpZFJlY2VpdmVDb29yZGluYXRlZExheWVyVHJlZUhvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biogY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAo
bV9sYXllclRyZWVIb3N0KQogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmRpZFJlY2VpdmVDb29y
ZGluYXRlZExheWVyVHJlZUhvc3RNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQorI2Vu
ZGlmCiAKIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYTo6YXR0YWNoVmlld092ZXJsYXlHcmFw
aGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciog
dmlld092ZXJsYXlSb290TGF5ZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVh
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmgKaW5kZXggYTRlMmViZjhiNzQ0OTI1MDRjMzNhZTc5
ZWM2ZTdjNmQwNThlZTA1Yy4uZWZkZjQ5OWZhNzhhNjFiMGY1YmViM2U4OTI5NTg4ZWYxMmU1OWIx
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2lu
Z0FyZWEuaApAQCAtNjQsNyArNjQsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzY2hl
ZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBz
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0ZWx5KCkgb3ZlcnJpZGU7CiAKKyNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMSVRJUFJPQ0VTUykKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZUNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOworI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQg
YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDQ0MTlmMTQ5ODk5MzcxM2Y0NGVjMjljYTQ5YmY4OGZiZmNmNGM0ZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcApAQCAtMCwwICsx
LDMwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAw
LCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0LmgiCisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisKKyNpbmNs
dWRlICJEcmF3aW5nQXJlYUltcGwuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2lu
Y2x1ZGUgIlRocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2UuaCIKKyNpbmNsdWRlICJXZWJQYWdl
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4K
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNz
UmVmUHRyPFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0PiBUaHJlYWRlZENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2UpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCh3ZWJQYWdlKSk7
Cit9CisKK1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojp+VGhyZWFkZWRDb29yZGlu
YXRlZExheWVyVHJlZUhvc3QoKQoreworfQorCitUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QoV2ViUGFnZSogd2ViUGFnZSkK
KyAgICA6IExheWVyVHJlZUhvc3Qod2ViUGFnZSkKKyAgICAsIG1fZm9yY2VSZXBhaW50QXN5bmND
YWxsYmFja0lEKDApCisgICAgLCBtX2NvbnRlbnRMYXllcihudWxscHRyKQorICAgICwgbV92aWV3
T3ZlcmxheVJvb3RMYXllcihudWxscHRyKQorICAgICwgbV9ub3RpZnlBZnRlclNjaGVkdWxlZExh
eWVyRmx1c2goZmFsc2UpCisgICAgLCBtX2lzU3VzcGVuZGVkKGZhbHNlKQorICAgICwgbV9pc1dh
aXRpbmdGb3JSZW5kZXJlcihmYWxzZSkKKyAgICAsIG1fbGF5ZXJGbHVzaFRpbWVyKFJ1bkxvb3A6
Om1haW4oKSwgdGhpcywgJlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpwZXJmb3Jt
U2NoZWR1bGVkTGF5ZXJGbHVzaCkKKyAgICAsIG1fbGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVk
KHRydWUpCit7CisgICAgbV9jb29yZGluYXRvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q29tcG9zaXRp
bmdDb29yZGluYXRvcj4obV93ZWJQYWdlLT5jb3JlUGFnZSgpLCB0aGlzKTsKKworICAgIG1fY29v
cmRpbmF0b3ItPmNyZWF0ZVJvb3RMYXllcihtX3dlYlBhZ2UtPnNpemUoKSk7CisKKyAgICBDb29y
ZGluYXRlZFN1cmZhY2U6OnNldEZhY3RvcnkoY3JlYXRlQ29vcmRpbmF0ZWRTdXJmYWNlKTsKKwor
ICAgIG1fY29tcG9zaXRvciA9IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKHRoaXMpOworICAg
IHNjaGVkdWxlTGF5ZXJGbHVzaCgpOworfQorCitQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFj
ZT4gVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNyZWF0ZUNvb3JkaW5hdGVkU3Vy
ZmFjZShjb25zdCBJbnRTaXplJiBzaXplLCBDb29yZGluYXRlZFN1cmZhY2U6OkZsYWdzIGZsYWdz
KQoreworICAgIHJldHVybiBUaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGUoc2l6
ZSwgZmxhZ3MpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpz
Y2hlZHVsZUxheWVyRmx1c2goKQoreworICAgIGlmICghbV9sYXllckZsdXNoU2NoZWR1bGluZ0Vu
YWJsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9sYXllckZsdXNoVGltZXIuaXNB
Y3RpdmUoKSkKKyAgICAgICAgbV9sYXllckZsdXNoVGltZXIuc3RhcnRPbmVTaG90KDApOworfQor
Cit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRMYXllckZsdXNoU2No
ZWR1bGluZ0VuYWJsZWQoYm9vbCBsYXllckZsdXNoaW5nRW5hYmxlZCkKK3sKKyAgICBpZiAobV9s
YXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQgPT0gbGF5ZXJGbHVzaGluZ0VuYWJsZWQpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fbGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkID0gbGF5ZXJG
bHVzaGluZ0VuYWJsZWQ7CisKKyAgICBpZiAobV9sYXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQp
IHsKKyAgICAgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBjYW5jZWxQZW5kaW5nTGF5ZXJGbHVzaCgpOworfQorCit2b2lkIFRocmVhZGVkQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRTaG91bGROb3RpZnlBZnRlck5leHRTY2hlZHVsZWRM
YXllckZsdXNoKGJvb2wgbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoKQoreworICAgIG1f
bm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoID0gbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXll
ckZsdXNoOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRS
b290Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVy
KQoreworICAgIG1fY29udGVudExheWVyID0gZ3JhcGhpY3NMYXllcjsKKyAgICB1cGRhdGVSb290
TGF5ZXJzKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6Omlu
dmFsaWRhdGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRD
b29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNjcm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQoreworICAgIG1fY29tcG9zaXRvci0+c2Nyb2xsVG8o
cmVjdC5sb2NhdGlvbigpKTsKKyAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwordm9pZCBU
aHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Zm9yY2VSZXBhaW50KCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0Ojpmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIC8vIFdl
IGV4cGVjdCB0aGUgVUkgcHJvY2VzcyB0byBub3QgcmVxdWlyZSBhIG5ldyByZXBhaW50IHVudGls
IHRoZSBwcmV2aW91cyBvbmUgaGFzIGZpbmlzaGVkLgorICAgIEFTU0VSVCghbV9mb3JjZVJlcGFp
bnRBc3luY0NhbGxiYWNrSUQpOworICAgIG1fZm9yY2VSZXBhaW50QXN5bmNDYWxsYmFja0lEID0g
Y2FsbGJhY2tJRDsKKyAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2l6ZURpZENoYW5n
ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBuZXdTaXplKQoreworICAgIG1fY29vcmRpbmF0b3It
PnNpemVEaWRDaGFuZ2UobmV3U2l6ZSk7CisgICAgbV9jb21wb3NpdG9yLT5kaWRDaGFuZ2VDb250
ZW50c1NpemUobmV3U2l6ZSk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJl
ZUhvc3Q6OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpCit7CisgICAgbV9jb29yZGlu
YXRvci0+ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgVGhyZWFk
ZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnBhdXNlUmVuZGVyaW5nKCkKK3sKKyAgICBtX2lz
U3VzcGVuZGVkID0gdHJ1ZTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdDo6cmVzdW1lUmVuZGVyaW5nKCkKK3sKKyAgICBtX2lzU3VzcGVuZGVkID0gZmFsc2U7Cisg
ICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Cit9CisKK0dyYXBoaWNzTGF5ZXJGYWN0b3J5KiBUaHJl
YWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Z3JhcGhpY3NMYXllckZhY3RvcnkoKQorewor
ICAgIHJldHVybiBtX2Nvb3JkaW5hdG9yLmdldCgpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0Ojp2aWV3cG9ydFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHNpemUpCit7CisgICAgbV9jb21wb3NpdG9yLT5kaWRDaGFuZ2VWaWV3cG9ydFNpemUo
c2l6ZSk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmRpZENo
YW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMm
IGF0dHIpCit7CisgICAgbV9jb21wb3NpdG9yLT5kaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZShh
dHRyKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Y29tcG9z
aXRvckRpZEZsdXNoTGF5ZXJzKCkKK3sKKyAgICBzdGF0aWNfY2FzdDxEcmF3aW5nQXJlYUltcGwq
PihtX3dlYlBhZ2UtPmRyYXdpbmdBcmVhKCkpLT5sYXllckhvc3REaWRGbHVzaExheWVycygpOwor
fQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpkaWRTY2FsZUZhY3Rv
ckNoYW5nZWQoZmxvYXQgc2NhbGUsIGNvbnN0IEludFBvaW50JiBvcmlnaW4pCit7CisgICAgbV93
ZWJQYWdlLT5zY2FsZVBhZ2Uoc2NhbGUsIG9yaWdpbik7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29y
ZGluYXRlZExheWVyVHJlZUhvc3Q6OnVwZGF0ZVJvb3RMYXllcnMoKQoreworICAgIGlmICghbV9j
b250ZW50TGF5ZXIgJiYgIW1fdmlld092ZXJsYXlSb290TGF5ZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fY29vcmRpbmF0b3ItPnNldFJvb3RDb21wb3NpdGluZ0xheWVyKG1fY29udGVudExh
eWVyLCBtX3ZpZXdPdmVybGF5Um9vdExheWVyKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdDo6c2V0Vmlld092ZXJsYXlSb290TGF5ZXIoR3JhcGhpY3NMYXllciog
dmlld092ZXJsYXlSb290TGF5ZXIpCit7CisgICAgbV92aWV3T3ZlcmxheVJvb3RMYXllciA9IHZp
ZXdPdmVybGF5Um9vdExheWVyOworICAgIHVwZGF0ZVJvb3RMYXllcnMoKTsKK30KKworI2lmIFBM
QVRGT1JNKEdUSykKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldE5h
dGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUpCit7CisgICAg
bV9sYXllclRyZWVDb250ZXh0LmNvbnRleHRJRCA9IGhhbmRsZTsKKyAgICBtX2NvbXBvc2l0b3It
PnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyhoYW5kbGUpOworfQorI2VuZGlm
CisKKyNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCit2b2lkIFRocmVhZGVkQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzY2hlZHVsZUFuaW1hdGlvbigpCit7CisgICAgaWYgKG1f
aXNXYWl0aW5nRm9yUmVuZGVyZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2xheWVy
Rmx1c2hUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2xheWVyRmx1
c2hUaW1lci5zdGFydE9uZVNob3QobV9jb29yZGluYXRvci0+bmV4dEFuaW1hdGlvblNlcnZpY2VU
aW1lKCkpOworICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOworfQorI2VuZGlmCisKK3ZvaWQgVGhy
ZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29u
c3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yLCBm
bG9hdCBzY2FsZSkKK3sKKyAgICBtX2Nvb3JkaW5hdG9yLT5zZXRWaXNpYmxlQ29udGVudHNSZWN0
KHJlY3QsIHRyYWplY3RvcnlWZWN0b3IpOworICAgIGlmIChtX2xhc3RTY3JvbGxQb3NpdGlvbiAh
PSByb3VuZGVkSW50UG9pbnQocmVjdC5sb2NhdGlvbigpKSkgeworICAgICAgICBtX2xhc3RTY3Jv
bGxQb3NpdGlvbiA9IHJvdW5kZWRJbnRQb2ludChyZWN0LmxvY2F0aW9uKCkpOworCisgICAgICAg
IGlmICghbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPnVzZUZpeGVk
TGF5b3V0KCkpCisgICAgICAgICAgICBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPm1haW5GcmFtZSgp
LnZpZXcoKS0+bm90aWZ5U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKG1fbGFzdFNjcm9sbFBvc2l0aW9u
KTsKKyAgICB9CisKKyAgICBpZiAobV9sYXN0U2NhbGVGYWN0b3IgIT0gc2NhbGUpIHsKKyAgICAg
ICAgbV9sYXN0U2NhbGVGYWN0b3IgPSBzY2FsZTsKKyAgICAgICAgZGlkU2NhbGVGYWN0b3JDaGFu
Z2VkKG1fbGFzdFNjYWxlRmFjdG9yLCBtX2xhc3RTY3JvbGxQb3NpdGlvbik7CisgICAgfQorCisg
ICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3Q6OmNhbmNlbFBlbmRpbmdMYXllckZsdXNoKCkKK3sKKyAgICBtX2xheWVyRmx1
c2hUaW1lci5zdG9wKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3Q6OnBlcmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKCkKK3sKKyAgICBpZiAobV9pc1N1c3BlbmRl
ZCB8fCBtX2lzV2FpdGluZ0ZvclJlbmRlcmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Nv
b3JkaW5hdG9yLT5zeW5jRGlzcGxheVN0YXRlKCk7CisgICAgYm9vbCBkaWRTeW5jID0gbV9jb29y
ZGluYXRvci0+Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCk7CisKKyAgICBpZiAobV9ub3RpZnlB
ZnRlclNjaGVkdWxlZExheWVyRmx1c2ggJiYgZGlkU3luYykgeworICAgICAgICBjb21wb3NpdG9y
RGlkRmx1c2hMYXllcnMoKTsKKyAgICAgICAgbV9ub3RpZnlBZnRlclNjaGVkdWxlZExheWVyRmx1
c2ggPSBmYWxzZTsKKyAgICB9Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJl
ZUhvc3Q6OnB1cmdlQmFja2luZ1N0b3JlcygpCit7CisgICAgbV9jb29yZGluYXRvci0+cHVyZ2VC
YWNraW5nU3RvcmVzKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3Q6OnJlbmRlck5leHRGcmFtZSgpCit7CisgICAgbV9pc1dhaXRpbmdGb3JSZW5kZXJlciA9IGZh
bHNlOworICAgIG1fY29vcmRpbmF0b3ItPnJlbmRlck5leHRGcmFtZSgpOworICAgIHNjaGVkdWxl
TGF5ZXJGbHVzaCgpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
Ojpjb21taXRTY3JvbGxPZmZzZXQodWludDMyX3QgbGF5ZXJJRCwgY29uc3QgSW50U2l6ZSYgb2Zm
c2V0KQoreworICAgIG1fY29vcmRpbmF0b3ItPmNvbW1pdFNjcm9sbE9mZnNldChsYXllcklELCBv
ZmZzZXQpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpub3Rp
ZnlGbHVzaFJlcXVpcmVkKCkKK3sKKyAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwordm9p
ZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Y29tbWl0U2NlbmVTdGF0ZShjb25z
dCBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUmIHN0YXRlKQoreworICAgIG1faXNXYWl0aW5nRm9y
UmVuZGVyZXIgPSB0cnVlOworICAgIG1fY29tcG9zaXRvci0+dXBkYXRlU2NlbmVTdGF0ZShzdGF0
ZSk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnBhaW50TGF5
ZXJDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
SW50UmVjdCYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjYyNTg5Mzg4MDFiZDQyOWM3MjNlYmRlMDUzZGFjMmE2YWIzN2NmNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKQEAgLTAsMCArMSwxNTcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQ29tcGFueSAxMDAsIEluYy4KKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFRocmVh
ZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0X2gKKyNkZWZpbmUgVGhyZWFkZWRDb29yZGluYXRl
ZExheWVyVHJlZUhvc3RfaAorCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVE
KQorCisjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4dC5oIgorI2luY2x1ZGUgIkxheWVyVHJlZUhv
c3QuaCIKKyNpbmNsdWRlICJUaHJlYWRlZENvbXBvc2l0b3IuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50
UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0ludFNpemUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VPdmVybGF5Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9UaW1lci5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU7CitjbGFzcyBDb29yZGlu
YXRlZEdyYXBoaWNzU3RhdGU7CitjbGFzcyBDb29yZGluYXRlZFN1cmZhY2U7CitjbGFzcyBHcmFw
aGljc0NvbnRleHQ7CitjbGFzcyBHcmFwaGljc0xheWVyOworY2xhc3MgR3JhcGhpY3NMYXllckZh
Y3Rvcnk7CitjbGFzcyBHcmFwaGljc0xheWVyRmFjdG9yeTsKK30KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0IDogcHVibGljIExheWVyVHJlZUhvc3QsIHB1YmxpYyBXZWJDb3JlOjpDb21wb3NpdGlu
Z0Nvb3JkaW5hdG9yOjpDbGllbnQsIHB1YmxpYyBUaHJlYWRlZENvbXBvc2l0b3I6OkNsaWVudCB7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3QpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdD4gY3JlYXRlKFdlYlBhZ2UqKTsK
KyAgICB2aXJ0dWFsIH5UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCgpOworCisgICAg
dmlydHVhbCBjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KCkgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9sYXllclRyZWVDb250ZXh0OyB9OworCisgICAgdmlydHVhbCB2b2lkIHNj
aGVkdWxlTGF5ZXJGbHVzaCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllckZs
dXNoU2NoZWR1bGluZ0VuYWJsZWQoYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dFNob3VsZE5vdGlmeUFmdGVyTmV4dFNjaGVkdWxlZExheWVyRmx1c2goYm9vbCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZSgpIG92ZXJy
aWRlOworCisgICAgdmlydHVhbCB2b2lkIHNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNw
bGF5KCkgb3ZlcnJpZGUgeyB9OworICAgIHZpcnR1YWwgdm9pZCBzZXROb25Db21wb3NpdGVkQ29u
dGVudHNOZWVkRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGUg
eyB9OworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxOb25Db21wb3NpdGVkQ29udGVudHMoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGZvcmNlUmVwYWludCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRB
c3luYyh1aW50NjRfdCAvKmNhbGxiYWNrSUQqLykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNpemVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgbmV3U2l6ZSkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpIG92ZXJy
aWRlOworCisgICAgdmlydHVhbCB2b2lkIHBhdXNlUmVuZGVyaW5nKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHJlc3VtZVJlbmRlcmluZygpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2Vk
KCkgb3ZlcnJpZGUgeyB9OworCisgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0U2l6ZUNoYW5nZWQo
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRD
aGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVz
Jikgb3ZlcnJpZGU7CisKKyNpZiBQTEFURk9STShHVEspCisgICAgdmlydHVhbCB2b2lkIHNldE5h
dGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCkgb3ZlcnJpZGU7CisjZW5k
aWYKKworI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKKyAgICB2aXJ0dWFsIHZv
aWQgc2NoZWR1bGVBbmltYXRpb24oKSBvdmVycmlkZTsKKyNlbmRpZgorCisgICAgdm9pZCBzZXRW
aWV3T3ZlcmxheVJvb3RMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViQ29yZTo6Q29vcmRpbmF0ZWRTdXJmYWNlPiBjcmVhdGVDb29yZGluYXRl
ZFN1cmZhY2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkNvb3JkaW5hdGVkU3Vy
ZmFjZTo6RmxhZ3MpOworCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgVGhyZWFkZWRDb29yZGlu
YXRlZExheWVyVHJlZUhvc3QoV2ViUGFnZSopOworCitwcml2YXRlOgorCisgICAgdm9pZCBjb21w
b3NpdG9yRGlkRmx1c2hMYXllcnMoKTsKKyAgICB2b2lkIGRpZFNjYWxlRmFjdG9yQ2hhbmdlZChm
bG9hdCBzY2FsZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG9yaWdpbik7CisKKyAgICB2b2lk
IHVwZGF0ZVJvb3RMYXllcnMoKTsKKworICAgIHZvaWQgY2FuY2VsUGVuZGluZ0xheWVyRmx1c2go
KTsKKyAgICB2b2lkIHBlcmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKCk7CisKKyAgICBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKiByb290TGF5ZXIoKSB7IHJldHVybiBtX2Nvb3JkaW5hdG9yLT5yb290
TGF5ZXIoKTsgfQorCisgICAgLy8gVGhyZWFkZWRDb21wb3NpdG9yOjpDbGllbnQKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBwdXJnZUJhY2tpbmdTdG9yZXMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVuZGVyTmV4dEZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdFNjcm9s
bE9mZnNldCh1aW50MzJfdCBsYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBvZmZzZXQp
IG92ZXJyaWRlOworCisgICAgLy8gQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Q2xpZW50CisgICAg
dmlydHVhbCB2b2lkIGRpZEZsdXNoUm9vdExheWVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
IG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdFNjZW5lU3RhdGUoY29uc3QgV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBh
aW50TGF5ZXJDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpIG92ZXJy
aWRlOworCisgICAgTGF5ZXJUcmVlQ29udGV4dCBtX2xheWVyVHJlZUNvbnRleHQ7CisgICAgdWlu
dDY0X3QgbV9mb3JjZVJlcGFpbnRBc3luY0NhbGxiYWNrSUQ7CisKKyAgICBXZWJDb3JlOjpJbnRQ
b2ludCBtX3ByZXZTY3JvbGxQb3NpdGlvbjsKKworICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
IG1fY29udGVudExheWVyOworICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIG1fdmlld092ZXJs
YXlSb290TGF5ZXI7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29tcG9zaXRpbmdD
b29yZGluYXRvcj4gbV9jb29yZGluYXRvcjsKKyAgICBSZWZQdHI8VGhyZWFkZWRDb21wb3NpdG9y
PiBtX2NvbXBvc2l0b3I7CisKKyAgICBib29sIG1fbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZs
dXNoOworICAgIGJvb2wgbV9pc1N1c3BlbmRlZDsKKyAgICBib29sIG1faXNXYWl0aW5nRm9yUmVu
ZGVyZXI7CisKKyAgICBmbG9hdCBtX2xhc3RTY2FsZUZhY3RvcjsKKyAgICBXZWJDb3JlOjpJbnRQ
b2ludCBtX2xhc3RTY3JvbGxQb3NpdGlvbjsKKworICAgIFJ1bkxvb3A6OlRpbWVyPFRocmVhZGVk
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0PiBtX2xheWVyRmx1c2hUaW1lcjsKKyAgICBib29sIG1f
bGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisKKyNlbmRp
ZiAvLyBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAppbmRleCA2ZWNkNzI2MDdl
MGFmNTRiODVhZTkyMTgxOGFkM2Y0OWY3YjhjN2M2Li43YmE1ODgxOGU5OTI4NDBmYTE4OGQwYTAx
ZjAzYzVlN2JkZDI2MzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlICJSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYS5oIgogI2luY2x1ZGUgIlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhLmgiCiAjZWxzZQotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1NfTVVMSVRJUFJPQ0VTUykKICNpbmNsdWRlICJDb29yZGluYXRl
ZERyYXdpbmdBcmVhLmgiCiAjZWxzZQogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW1wbC5oIgpAQCAt
NjEsNyArNjEsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWE+IERyYXdpbmdBcmVhOjpj
cmVhdGUoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgV2ViUGFnZQogICAgIGNhc2UgRHJhd2luZ0Fy
ZWFUeXBlUmVtb3RlTGF5ZXJUcmVlOgogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYT4od2ViUGFnZSwgcGFyYW1ldGVycyk7CiAjZWxzZQot
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1NfTVVMSVRJUFJPQ0VTUykKICAgICBjYXNlIERyYXdpbmdBcmVhVHlwZUNvb3JkaW5hdGVkOgog
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDb29yZGluYXRlZERyYXdpbmdBcmVhPih3
ZWJQYWdlLCBwYXJhbWV0ZXJzKTsKICNlbHNlCkBAIC03Nyw2ICs3Nyw5IEBAIHN0ZDo6dW5pcXVl
X3B0cjxEcmF3aW5nQXJlYT4gRHJhd2luZ0FyZWE6OmNyZWF0ZShXZWJQYWdlJiB3ZWJQYWdlLCBj
b25zdCBXZWJQYWdlCiBEcmF3aW5nQXJlYTo6RHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlIHR5
cGUsIFdlYlBhZ2UmIHdlYlBhZ2UpCiAgICAgOiBtX3R5cGUodHlwZSkKICAgICAsIG1fd2ViUGFn
ZSh3ZWJQYWdlKQorI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgUExBVEZPUk0oR1RLKQor
ICAgICwgbV9uYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcoMCkKKyNlbmRpZgogewog
ICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6RHJh
d2luZ0FyZWE6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlLnBhZ2VJRCgpLCAqdGhp
cyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5oCmluZGV4IDQ0MWUxMTg1OTRlZjQ3NmU2Y2ZkZTU0NjVmNGZlMTg0NWNlNDJiZGIuLjJhYTRm
MjNhY2Q5MThiYjIwNDU5NGQ5YTE1OTI1MmJmNGYxZGMzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCkBAIC0xMDksNyArMTA5LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1v
bml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCk7CiAj
ZW5kaWYKIAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1NfTVVMSVRJUFJPQ0VTUykKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNz
YWdlRGVjb2RlciYpID0gMDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCmluZGV4IGE3NzJiZmIwZDE4NzIz
ZTFmOWQ4NzY3MjkwMjRlMjE3NWEwMDFkMTQuLmY3MTE4MmNjZjcyZGNhYTZlNDdiOGQwZTc0OTYx
NTUwMzNjYzg0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCkBAIC0zNSw5ICszNSwxNCBAQAogI2luY2x1ZGUgIldl
YlByZWZlcmVuY2VzS2V5cy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5o
PgogCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorI2luY2x1ZGUgIlRo
cmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjMsNiArNjgsMTEgQEAgRHJh
d2luZ0FyZWFJbXBsOjpEcmF3aW5nQXJlYUltcGwoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGUKICAgICAsIG1fZGlzcGxheVRpbWVyKFJ1bkxvb3A6Om1haW4o
KSwgdGhpcywgJkRyYXdpbmdBcmVhSW1wbDo6ZGlzcGxheVRpbWVyRmlyZWQpCiAgICAgLCBtX2V4
aXRDb21wb3NpdGluZ1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJkRyYXdpbmdBcmVhSW1w
bDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKQogeworCisjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX1RIUkVBREVEKQorICAgIHdlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3Mo
KS5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKKyNlbmRpZgorCiAgICAgaWYgKHdlYlBh
Z2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKCkgfHwg
d2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmZvcmNlQ29tcG9zaXRpbmdNb2RlKCkpCiAg
ICAgICAgIG1fYWx3YXlzVXNlQ29tcG9zaXRpbmcgPSB0cnVlOwogCkBAIC0yMjAsNiArMjMwLDE2
IEBAIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjpzZXRQYWludGluZ0VuYWJsZWQoYm9vbCBwYWludGlu
Z0VuYWJsZWQpCiAgICAgbV9pc1BhaW50aW5nRW5hYmxlZCA9IHBhaW50aW5nRW5hYmxlZDsKIH0K
IAordm9pZCBEcmF3aW5nQXJlYUltcGw6Om1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBuZXdTaXplKQoreworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQ
SElDU19USFJFQURFRCkKKyAgICBpZiAobV9sYXllclRyZWVIb3N0KQorICAgICAgICBtX2xheWVy
VHJlZUhvc3QtPnNpemVEaWRDaGFuZ2UobmV3U2l6ZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShuZXdTaXplKTsKKyNlbmRpZgorfQorCiB2b2lkIERyYXdpbmdBcmVhSW1wbDo6dXBkYXRlUHJl
ZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiB7CiAgICAgbV93ZWJQ
YWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoc3RvcmUu
Z2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpmb3JjZUNvbXBvc2l0aW5nTW9k
ZUtleSgpKSk7CkBAIC0zMjIsNyArMzQyLDExIEBAIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjp1cGRh
dGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBzdGF0ZUlELCBib29sIHJlc3BvbmRJbW1lCiAg
ICAgICAgIG1fd2ViUGFnZS5zY3JvbGxNYWluRnJhbWVJZk5vdEF0TWF4U2Nyb2xsUG9zaXRpb24o
c2Nyb2xsT2Zmc2V0KTsKIAogICAgICAgICBpZiAobV9sYXllclRyZWVIb3N0KSB7CisjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorICAgICAgICAgICAgbV9sYXllclRyZWVI
b3N0LT52aWV3cG9ydFNpemVDaGFuZ2VkKG1fd2ViUGFnZS5zaXplKCkpOworI2Vsc2UKICAgICAg
ICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2l6ZURpZENoYW5nZShtX3dlYlBhZ2Uuc2l6ZSgpKTsK
KyNlbmRpZgogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIG1fZGlydHlSZWdpb24gPSBtX3dl
YlBhZ2UuYm91bmRzKCk7CiAgICAgfSBlbHNlIHsKQEAgLTY0MywxMCArNjY3LDMyIEBAIHZvaWQg
RHJhd2luZ0FyZWFJbXBsOjpkaXNwbGF5KFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiAgICAgbV9k
aXNwbGF5VGltZXIuc3RvcCgpOwogfQogCit2b2lkIERyYXdpbmdBcmVhSW1wbDo6YXR0YWNoVmll
d092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSwgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciogdmlld092ZXJsYXlSb290TGF5ZXIpCit7CisjaWYgVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTX1RIUkVBREVEKQorICAgIGlmICghZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmICghbV9sYXllclRyZWVIb3N0KQorICAgICAgICByZXR1cm47
CisKKyAgICBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCogY29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0ID0gc3RhdGljX2Nhc3Q8VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Qq
PihtX2xheWVyVHJlZUhvc3QuZ2V0KCkpOworICAgIGNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC0+
c2V0Vmlld092ZXJsYXlSb290TGF5ZXIodmlld092ZXJsYXlSb290TGF5ZXIpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oZnJhbWUpOworICAgIFVOVVNFRF9QQVJBTSh2aWV3T3ZlcmxheVJvb3RM
YXllcik7CisjZW5kaWYKK30KKwogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgUExBVEZP
Uk0oR1RLKQogdm9pZCBEcmF3aW5nQXJlYUltcGw6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JD
b21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUpCiB7CiAgICAgbV9uYXRpdmVTdXJmYWNlSGFuZGxl
Rm9yQ29tcG9zaXRpbmcgPSBoYW5kbGU7CisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Nf
VEhSRUFERUQpCisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgbV9sYXllclRyZWVI
b3N0LT5zZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcoaGFuZGxlKTsKKyNlbmRp
ZgogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYUltcGwuaAppbmRleCBhMGE2OGFhMzUwODFlMTQ5MGYwNTg0NTU3MTJiNTNi
MzE2ZjY3YzYwLi4wZmJmYTdhYTMxNzkwMTA1MzJhN2JiZjVhNjA5NDg5M2IwZmY1OGU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1w
bC5oCkBAIC02MCw2ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGZvcmNlUmVw
YWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldFBh
aW50aW5nRW5hYmxlZChib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFpbkZyYW1lQ29udGVudFNp
emVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpIG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhp
Y3NMYXllckZhY3RvcnkoKSBvdmVycmlkZTsKQEAgLTY3LDYgKzY4LDggQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVs
eSgpIG92ZXJyaWRlOwogCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhp
Y3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKwogI2lm
IFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgUExBVEZPUk0oR1RLKQogICAgIHZpcnR1YWwgdm9p
ZCBzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QpIG92ZXJyaWRl
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
TGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5
ZXJUcmVlSG9zdC5jcHAKaW5kZXggNTkzYTFjYTQ1ZDYzODdhMjFmNGU1NTNmNDY0NTViN2E0ODJl
MzBlNS4uMDg0MWVhYTIzZTEwM2JjNzI4MmRmYTc3ZjA0ZDQ1NDQxOGJhZjA2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcApA
QCAtMjYsMTEgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTGF5ZXJU
cmVlSG9zdC5oIgogCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDU19NVUxJVElQUk9DRVNTKQogI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdC5oIgotI2VuZGlmCi0KLSNpZiBQTEFURk9STShHVEspICYmIFVTRShURVhUVVJF
X01BUFBFUl9HTCkKKyNlbGlmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyNp
bmNsdWRlICJUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oIgorI2VsaWYgUExBVEZP
Uk0oR1RLKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9z
dEd0ay5oIgogI2VuZGlmCiAKQEAgLTQwLDggKzQwLDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBQYXNzUmVmUHRyPExheWVyVHJlZUhvc3Q+IExheWVyVHJlZUhvc3Q6OmNyZWF0ZShXZWJQYWdl
KiB3ZWJQYWdlKQogewotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1NfTVVMSVRJUFJPQ0VTUykKICAgICByZXR1cm4gQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0OjpjcmVhdGUod2ViUGFnZSk7CisjZWxpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1NfVEhSRUFERUQpCisgICAgcmV0dXJuIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0OjpjcmVhdGUod2ViUGFnZSk7CiAjZWxpZiBQTEFURk9STShHVEspICYmIFVTRShURVhUVVJF
X01BUFBFUl9HTCkKICAgICByZXR1cm4gTGF5ZXJUcmVlSG9zdEd0azo6Y3JlYXRlKHdlYlBhZ2Up
OwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9M
YXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJU
cmVlSG9zdC5oCmluZGV4IDY0ZWVjNTEzYmQyNmNlNTc5ZjBhMzIyMmE2NWZlMTkzMzk1YmNmNDEu
LmFiZTdlMGY2MDJmNjE1ZDQ2ODE0Njc0MmRkOGU2NTFhMzRiMzQ2NTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaApAQCAtNDMsNiAr
NDMsOSBAQCBjbGFzcyBJbnRSZWN0OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIEdyYXBoaWNzTGF5
ZXI7CiBjbGFzcyBHcmFwaGljc0xheWVyRmFjdG9yeTsKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1NfVEhSRUFERUQpCitjbGFzcyBWaWV3cG9ydEF0dHJpYnV0ZXM7CisjZW5kaWYKIH0KIAog
bmFtZXNwYWNlIFdlYktpdCB7CkBAIC03NiwxMCArNzksMTYgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3Rvcnko
KSB7IHJldHVybiAwOyB9CiAKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NFU1MpCiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVDb29yZGluYXRlZExheWVyVHJlZUhvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlvbios
IElQQzo6TWVzc2FnZURlY29kZXImKSA9IDA7CiAjZW5kaWYKIAorI2lmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDU19USFJFQURFRCkKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmF0aXZlU3VyZmFjZUhh
bmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZpZXdw
b3J0U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0
QXR0cmlidXRlcyYpID0gMDsKKyNlbmRpZgorCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
KSAmJiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgdmlydHVhbCB2b2lkIHNj
aGVkdWxlQW5pbWF0aW9uKCkgPSAwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNDEzZjdjZjE0NGY0OWYyMTg0YTEzNjExMDhh
MTMwMWJhYjQzOTc0YS4uNzQ0NjFiMjkxNjlkMTQxY2MxYTUzZjcxZjZmNzQyNzYzMWJmY2U1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
MjA4LDcgKzIwOCw3IEBACiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgog
I2VuZGlmCiAKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX01VTElUSVBST0NFU1MpCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0TWVzc2FnZXMuaCIKICNlbmRpZgogCkBAIC00NzQsNyArNDc0LDcgQEAgV2ViUGFnZTo6
V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuYWRkTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpXZWJQYWdlOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlELCAqdGhp
cyk7CiAKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgZG9uZSBpbiB0aGUgb2JqZWN0IGNv
bnN0cnVjdG9ycywgYW5kIHRoZSBvYmplY3RzIHRoZW1zZWx2ZXMgc2hvdWxkIGJlIG1lc3NhZ2Ug
cmVjZWl2ZXJzLgotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1NfTVVMSVRJUFJPQ0VTUykKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCwgKnRoaXMpOwogI2VuZGlmCiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKQEAgLTU2MCw3ICs1NjAsNyBAQCBXZWJQYWdlOjp+V2ViUGFnZSgpCiAgICAg
V2ViUHJvY2Vzczo6c2hhcmVkKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQ
YWdlOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlEKTsKIAogICAgIC8vIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSBkb25lIGluIHRoZSBvYmplY3QgZGVzdHJ1Y3RvcnMsIGFuZCB0aGUgb2Jq
ZWN0cyB0aGVtc2VsdmVzIHNob3VsZCBiZSBtZXNzYWdlIHJlY2VpdmVycy4KLSNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBS
T0NFU1MpCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV9wYWdlSUQpOwogI2VuZGlmCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKQEAgLTEzMDksNyArMTMw
OSwxMiBAQCB2b2lkIFdlYlBhZ2U6OnNlbmRWaWV3cG9ydEF0dHJpYnV0ZXNDaGFuZ2VkKCkKICAg
ICAvLyBUaGlzIGFsc28gdGFrZXMgY2FyZSBvZiB0aGUgcmVsYXlvdXQuCiAgICAgc2V0Rml4ZWRM
YXlvdXRTaXplKHJvdW5kZWRJbnRTaXplKGF0dHIubGF5b3V0U2l6ZSkpOwogCisjaWYgVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NFU1MpCiAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoYXR0cikpOworI2Vsc2UKKyAg
ICBpZiAobV9kcmF3aW5nQXJlYS0+bGF5ZXJUcmVlSG9zdCgpKQorICAgICAgICBtX2RyYXdpbmdB
cmVhLT5sYXllclRyZWVIb3N0KCktPmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhhdHRyKTsK
KyNlbmRpZgogfQogI2VuZGlmCiAKQEAgLTE3OTQsNyArMTc5OSwxMSBAQCB2b2lkIFdlYlBhZ2U6
OnBhZ2VEaWRTY3JvbGwoKQogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogdm9pZCBXZWJQ
YWdlOjpwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CisjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NFU1MpCiAgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpQYWdlRGlkUmVxdWVzdFNjcm9sbChwb2ludCkpOworI2VsaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorICAgIGRyYXdpbmdBcmVhKCktPnNjcm9s
bChJbnRSZWN0KHBvaW50LCBJbnRTaXplKCkpLCBJbnRTaXplKCkpOworI2VuZGlmCiB9CiAjZW5k
aWYKIApAQCAtMjM2OCw3ICsyMzc3LDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRTdGFydFBhZ2VUcmFu
c2l0aW9uKCkKIAogdm9pZCBXZWJQYWdlOjpkaWRDb21wbGV0ZVBhZ2VUcmFuc2l0aW9uKCkKIHsK
LSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1NfTVVMSVRJUFJPQ0VTUykKICAgICAvLyBtX21haW5GcmFtZSBjYW4gYmUgbnVsbCBzaW5jZSBy
MTcwMTYzLgogICAgIGlmIChtX21haW5GcmFtZSAmJiBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCkt
PnZpZXcoKS0+ZGVsZWdhdGVzU2Nyb2xsaW5nKCkpIHsKICAgICAgICAgLy8gV2FpdCB1bnRpbCB0
aGUgVUkgcHJvY2VzcyBzZW50IHVzIHRoZSB2aXNpYmxlIHJlY3QgaXQgd2FudHMgcmVuZGVyZWQu
CkBAIC0zNTMyLDcgKzM1NDEsNyBAQCBib29sIFdlYlBhZ2U6OndpbmRvd0FuZFdlYlBhZ2VBcmVG
b2N1c2VkKCkgY29uc3QKIAogdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0j
aWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
X01VTElUSVBST0NFU1MpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSkgewogICAgICAgICBpZiAobV9kcmF3aW5nQXJlYSkKICAgICAgICAgICAgIG1fZHJhd2luZ0Fy
ZWEtPmRpZFJlY2VpdmVDb29yZGluYXRlZExheWVyVHJlZUhvc3RNZXNzYWdlKGNvbm5lY3Rpb24s
IGRlY29kZXIpOwpAQCAtNDAxOSw3ICs0MDI4LDcgQEAgYm9vbCBXZWJQYWdlOjpjYW5IYW5kbGVS
ZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICByZXR1
cm4gcGxhdGZvcm1DYW5IYW5kbGVSZXF1ZXN0KHJlcXVlc3QpOwogfQogCi0jaWYgVVNFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NF
U1MpCiB2b2lkIFdlYlBhZ2U6OmNvbW1pdFBhZ2VUcmFuc2l0aW9uVmlld3BvcnQoKQogewogICAg
IG1fZHJhd2luZ0FyZWEtPnNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4oZmFsc2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZDRhNTJjN2FlZTll
MzM0YTFiNzcyMjY5MGViOWNmYzc0YTQ1Mjg0ZC4uN2JiYWI3MWNkYTUzOTI4Y2RlYmRjYzJlNWRm
MmNmZGQzNzcxOGJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC01ODcsNyArNTg3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGhlbWVQYXRo
KGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkK
KyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMSVRJUFJPQ0VTUykKICAgICB2b2lkIGNv
bW1pdFBhZ2VUcmFuc2l0aW9uVmlld3BvcnQoKTsKICNlbmRpZgogCkBAIC0xMDIzLDcgKzEwMjMs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgaGlkZUZpbmRVSSgpOwogICAgIHZvaWQgY291bnRTdHJp
bmdNYXRjaGVzKGNvbnN0IFN0cmluZyYsIHVpbnQzMl90IGZpbmRPcHRpb25zLCB1aW50MzJfdCBt
YXhNYXRjaENvdW50KTsKIAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1NfTVVMSVRJUFJPQ0VTUykKICAgICB2b2lkIGZpbmRab29tYWJs
ZUFyZWFGb3JQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIGFyZWEpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMGRiMTUzMGUzNTkzZWJkNTM5
MGJjMWEzOWEwNzNlYmQwZTJhZmQzYi4uNTlmOWJiYzEwZGI0ODc3ZWQ4ZDVhMDg0YTdlYzZlMWQ2
YTczZmExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTMxNSw3ICszMTUsNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRUaGVtZVBhdGgoU3RyaW5nIHRoZW1lUGF0aCkK
ICNlbmRpZgogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX01VTElUSVBST0NFU1MpCiAgICAgQ29tbWl0UGFnZVRyYW5zaXRpb25WaWV3
cG9ydCgpCiAjZW5kaWYKIApAQCAtMzgxLDcgKzM4MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2Ug
TGVnYWN5UmVjZWl2ZXIgewogICAgIFNldENvbXBvc2l0aW9uKFN0cmluZyBjb21wb3NpdGlvblN0
cmluZywgVmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVzLCB1
aW50NjRfdCBjdXJzb3JQb3NpdGlvbikKICAgICBDYW5jZWxDb21wb3NpdGlvbigpCiAjZW5kaWYK
LSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTX01VTElUSVBST0NFU1MpCiAgICAgRmluZFpvb21hYmxlQXJlYUZvclBvaW50KFdlYkNvcmU6
OkludFBvaW50IHBvaW50LCBXZWJDb3JlOjpJbnRTaXplIGFyZWEpCiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCmlu
ZGV4IDU4ZWE2OGY3ZDkwNzg0MWI0YzFkYmJiNGNiNDA1MWQxNDdmYTNmNTIuLmUyYjc4NWJlMzhk
M2Y2NzhlNDBlY2Q1ZDNjMmM0YmM2OGRmZTBjM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAKQEAgLTM0LDYgKzM0LDEwIEBA
CiAjaW5jbHVkZSA8bGliaW50bC5oPgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgogCisjaWYg
UExBVEZPUk0oWDExKQorI2luY2x1ZGUgPFgxMS9YbGliLmg+CisjZW5kaWYKKwogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDcsNiArNTEsOSBAQCBw
dWJsaWM6CiAgICAgICAgICAgICBzbGVlcCgzMCk7CiAjZW5kaWYKIAorI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDU19USFJFQURFRCkgJiYgUExBVEZPUk0oWDExKQorICAgICAgICBYSW5pdFRo
cmVhZHMoKTsKKyNlbmRpZgogICAgICAgICBndGtfaW5pdChudWxscHRyLCBudWxscHRyKTsKIAog
ICAgICAgICBiaW5kdGV4dGRvbWFpbihHRVRURVhUX1BBQ0tBR0UsIFBBQ0tBR0VfTE9DQUxFX0RJ
Uik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9j
bWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IGNiMDQ1MDBkOTNjMTM2YTNhMDdhZDhmYjlhNmNm
ODk2ODcyODI1NzIuLmZjZDY4MzBjMzA0MTY5MWQyMmZjNjQ0MTQ0NjY2NGI2Yjg1ZTZhMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFr
ZS9PcHRpb25zRWZsLmNtYWtlCkBAIC0xMTgsNyArMTE4LDYgQEAgV0VCS0lUX09QVElPTl9ERUZB
VUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9BVURJTyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX1dFQkdMIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX1hIUl9USU1FT1VUIE9OKQotV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoV1RGX1VTRV9USUxFRF9CQUNLSU5HX1NUT1JFIE9OKQogCiBpZiAoRU5BQkxFX0xMSU5U
X0NfTE9PUCkKICAgICBtZXNzYWdlKFNUQVRVUyAiRm9yY2UgZW5hYmxpbmcgTExJTlQgQyBMT09Q
LiIpCkBAIC0yMDgsNiArMjA3LDggQEAgaWYgKEVOQUJMRV9WSURFTyBPUiBFTkFCTEVfV0VCX0FV
RElPKQogZW5kaWYgKCkKIAogYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9DT09SRElOQVRFRF9H
UkFQSElDUz0xKQorYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9DT09SRElOQVRFRF9HUkFQSElD
U19NVUxJVElQUk9DRVNTPTEpCithZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX1RJTEVEX0JBQ0tJ
TkdfU1RPUkU9MSkKIAogYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9URVhUVVJFX01BUFBFUj0x
KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZSBiL1NvdXJjZS9j
bWFrZS9PcHRpb25zR1RLLmNtYWtlCmluZGV4IDU0Y2IwMDNkNDI2NWNhYzE2OWUwZmU5NzA3YzIy
YTdmYjA1ZjU1MzYuLmMwYThhZDViMWRhNDg3MTJiNjcyOTllYmU3MGNjZjQyMzhiYWQ1ZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFr
ZS9PcHRpb25zR1RLLmNtYWtlCkBAIC0xNzIsNyArMTcyLDcgQEAgV0VCS0lUX09QVElPTl9ERUZB
VUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9BVURJTyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX1hIUl9USU1FT1VUIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX05FVFdPUktfUFJPQ0VTUyBPTikKLVdFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRSBPRkYpCitXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVEhSRUFERURfQ09NUE9TSVRPUiBPRkYp
CiBXRUJLSVRfT1BUSU9OX0VORCgpCiAKIGlmIChMSUJOT1RJRllfRk9VTkQpCkBAIC0zMjksNiAr
MzI5LDEyIEBAIGlmIChPUEVOR0xfRk9VTkQgQU5EIChHTFhfRk9VTkQgT1IgRUdMX0ZPVU5EKSkK
ICAgICBpZiAoR0xYX0ZPVU5EKQogICAgICAgICBhZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX0dM
WD0xKQogICAgIGVuZGlmICgpCisKKyAgICBpZiAoRU5BQkxFX1RIUkVBREVEX0NPTVBPU0lUT1Ip
CisgICAgICAgIGFkZF9kZWZpbml0aW9ucygtRFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRT0x
KQorICAgICAgICBhZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX0NPT1JESU5BVEVEX0dSQVBISUNT
PTEpCisgICAgICAgIGFkZF9kZWZpbml0aW9ucygtRFdURl9VU0VfQ09PUkRJTkFURURfR1JBUEhJ
Q1NfVEhSRUFERUQ9MSkKKyAgICBlbmRpZiAoKQogZW5kaWYgKCkKIAogaWYgKEVOQUJMRV9HQU1F
UEFEX0RFUFJFQ0FURUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMu
Y21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKaW5kZXggY2FjOTk5OTgy
MGY1MmE3NmMyNGRkZWNhYTkwODY1MjJhY2M1MjU0Ni4uMzNmNjdjYzE2ODllZTQwMDgzMzc4NmYw
MThlZDc2ZjEwOGVlYWMzNCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVz
LmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQpAQCAtMTQ5LDcg
KzE0OSw3IEBAIG1hY3JvKFdFQktJVF9PUFRJT05fQkVHSU4pCiAgICAgV0VCS0lUX09QVElPTl9E
RUZJTkUoRU5BQkxFX1hIUl9USU1FT1VUICJUb2dnbGUgWEhSIHRpbWVvdXQgc3VwcG9ydCIgT0ZG
KQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9YU0xUICJUb2dnbGUgWFNMVCBzdXBw
b3J0IiBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfU1lTVEVNX01BTExPQyAiVG9n
Z2xlIHN5c3RlbSBhbGxvY2F0b3IgaW5zdGVhZCBvZiBUQ21hbGxvYyIgT0ZGKQotICAgIFdFQktJ
VF9PUFRJT05fREVGSU5FKFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRSAiVG9nZ2xlIFRpbGVk
IEJhY2tpbmcgU3RvcmUgc3VwcG9ydCIgT0ZGKQorICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVO
QUJMRV9USFJFQURFRF9DT01QT1NJVE9SICJUb2dnbGUgVG9nZ2xlIFRocmVhZGVkIENvbXBvc2l0
b3Igc3VwcG9ydCIgT0ZGKQogCiAgICAgV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX0VOQ1JZ
UFRFRF9NRURJQV9WMiBFTkFCTEVfVklERU8pCiAgICAgV0VCS0lUX09QVElPTl9ERVBFTkQoRU5B
QkxFX01FRElBX0NPTlRST0xTX1NDUklQVCBFTkFCTEVfVklERU8pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvY21ha2Vjb25maWcuaC5jbWFrZSBiL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCmluZGV4
IDAwZDVmMzE4OGRlNDg5NTQ1ZTM1ODdiOGU4NGUyN2QxNjFmZTRiNGMuLjQzMDk4YWE4OGMzZDhl
YmIyZDAzZTNhMDJkYjc1M2IyMDY4YTY5MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZWNvbmZp
Zy5oLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCkBAIC0xMzksNyArMTM5
LDYgQEAKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9YU0xUCiAjY21ha2VkZWZpbmUwMSBVU0VfU1lT
VEVNX01BTExPQwogI2NtYWtlZGVmaW5lMDEgV1RGX1VTRV9HRU9DTFVFMgotI2NtYWtlZGVmaW5l
MDEgV1RGX1VTRV9USUxFRF9CQUNLSU5HX1NUT1JFCiAjY21ha2VkZWZpbmUwMSBIQVZFX0xMVk0K
ICNjbWFrZWRlZmluZTAxIEhBVkVfR1RLX1VOSVhfUFJJTlRJTkcKICNjbWFrZWRlZmluZTAxIFdU
Rl9DUFVfQVJNNjRfQ09SVEVYQTUzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggNzY2MmNhNzhjZDlhYjkzYTFkNzE2MzZmYjhiNzAxNzYwYWQ4MDFj
MS4uYTc0YmQzMmE1ZGY1MGMwYzYwN2E4NDY5MzU2Nzc0Y2RlMWQ0ZmE4YSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDE0LTEyLTA2ICBHd2FuZyBZb29uIEh3YW5nICA8eW9vbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IFtHVEtdW1RocmVhZGVkQ29tcG9zaXRvcl0gQWRkIHN1cHBvcnQgZm9yIHRocmVhZGVkIGNvbXBv
c2l0b3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTgyNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCB0aGUgRU5BQkxFX1RIUkVBREVEX0NPTVBPU0lUT1IgZmVhdHVyZSBmbGFnIHRvIHRoZSBj
bWFrZSBhbmQKKyAgICAgICAgYXV0b3Rvb2xzIGJ1aWxkIHN5c3RlbXMuIFRoZSBmZWF0dXJlIGlz
IGRpc2FibGVkIGJ5IGRlZmF1bHQuCisgICAgICAgIEFuZCByZW1vdmUgZGVwcmVjYXRlZCB0aGUg
V1RGX1VTRV9USUxFRF9CQUNLSU5HX1NUT1JFIGZlYXR1cmUgZmxhZworICAgICAgICBmcm9tIHRo
ZSBmZWF0dXJlIGZsYWdzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVM
aXN0LnBtOgorCiAyMDE1LTAxLTAxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgogCiAgICAgICAgIFNpbXBsaWZ5IFdlYktpdFRlc3RSdW5uZXIgdGltZW91dCB0cmFja2luZwpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCmluZGV4IDUxZGQ4YmUwMDYxYjEy
YjZhNjUzODA1ZGMxMzI5MTkwZDNiYzczOGUuLjMzMWViOGVhNTUwYjhjOWJhNTg1NzJlNzY3ODMz
MmJkNmU2ZTk4MDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJl
TGlzdC5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KQEAg
LTEyOCw3ICsxMjgsNyBAQCBteSAoCiAgICAgJHN5c3RlbU1hbGxvY1N1cHBvcnQsCiAgICAgJHRl
bXBsYXRlRWxlbWVudFN1cHBvcnQsCiAgICAgJHRleHRBdXRvc2l6aW5nU3VwcG9ydCwKLSAgICAk
dGlsZWRCYWNraW5nU3RvcmVTdXBwb3J0LAorICAgICR0aHJlYWRlZENvbXBvc2l0b3JTdXBwb3J0
LAogICAgICR0aHJlYWRlZEhUTUxQYXJzZXJTdXBwb3J0LAogICAgICR0b3VjaEV2ZW50c1N1cHBv
cnQsCiAgICAgJHRvdWNoU2xpZGVyU3VwcG9ydCwKQEAgLTM4Myw2ICszODMsOSBAQCBteSBAZmVh
dHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gInRlbXBsYXRlLWVsZW1lbnQiLCBkZXNjID0+ICJU
b2dnbGUgSFRNTFRlbXBsYXRlRWxlbWVudCBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX1RFTVBMQVRFX0VMRU1FTlQiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkdGVtcGxhdGVF
bGVtZW50U3VwcG9ydCB9LAogCisgICAgeyBvcHRpb24gPT4gInRocmVhZGVkLWNvbXBvc2l0b3Ii
LCBkZXNjID0+ICJUb2dnbGUgVGhyZWFkZWQgQ29tcG9zaXRvciBzdXBwb3J0IiwKKyAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX1RIUkVBREVEX0NPTVBPU0lUT1IiLCBkZWZhdWx0ID0+IDAsIHZhbHVl
ID0+IFwkdGhyZWFkZWRDb21wb3NpdG9yU3VwcG9ydCB9LAorCiAgICAgeyBvcHRpb24gPT4gInRl
eHQtYXV0b3NpemluZyIsIGRlc2MgPT4gIlRvZ2dsZSBUZXh0IEF1dG9zaXppbmcgc3VwcG9ydCIs
CiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9URVhUX0FVVE9TSVpJTkciLCBkZWZhdWx0ID0+IDAs
IHZhbHVlID0+IFwkdGV4dEF1dG9zaXppbmdTdXBwb3J0IH0sCiAKZGlmZiAtLWdpdCBhL0NoYW5n
ZUxvZyBiL0NoYW5nZUxvZwppbmRleCBkNmExNDUzZmRiOWFkNTc0NjM2NzljNWE3NzBiNTU4Yjll
YWRmODgwLi41MDc5YTQ2NDAzMmVmN2Y3ZGQ4OTk5ZTU0ODRkNTM4MmNlMWRhZjgxIDEwMDY0NAot
LS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMTIt
MDYgIEd3YW5nIFlvb24gSHdhbmcgIDx5b29uQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11b
VGhyZWFkZWRDb21wb3NpdG9yXSBBZGQgc3VwcG9ydCBmb3IgdGhyZWFkZWQgY29tcG9zaXRvci4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODI2NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRo
ZSBFTkFCTEVfVEhSRUFERURfQ09NUE9TSVRPUiBmZWF0dXJlIGZsYWcgdG8gdGhlIGNtYWtlIGFu
ZAorICAgICAgICBhdXRvdG9vbHMgYnVpbGQgc3lzdGVtcy4gVGhlIGZlYXR1cmUgaXMgZGlzYWJs
ZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgQW5kIHJlbW92ZSBkZXByZWNhdGVkIHRoZSBXVEZfVVNF
X1RJTEVEX0JBQ0tJTkdfU1RPUkUgZmVhdHVyZSBmbGFnCisgICAgICAgIGZyb20gdGhlIGZlYXR1
cmUgZmxhZ3MuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKyAg
ICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2Uv
Y21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtlY29uZmln
LmguY21ha2U6CisKIDIwMTQtMTItMjMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CiAKICAgICAgICAgU2ltcGxpZnkgYnVpbGRpbmcgd2l0aCBBU2FuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244065</attachid>
            <date>2015-01-06 09:05:08 -0800</date>
            <delta_ts>2015-01-06 09:14:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118265-20150107020510.patch</filename>
            <type>text/plain</type>
            <size>57280</size>
            <attacher name="Gwang Yoon Hwang">yoon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3OTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDIxZmM5Yjc1ZDRiNTEz
NTY0YzNhZmJkMDJhYjA3Yzc4NjI5YzNkZS4uZmI5OTU5YjRhNzIwNDkxMjcyMDZiNjhhOGU0ZGNi
ZWEwOTFhMDUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTEyLTA2ICBHd2Fu
ZyBZb29uIEh3YW5nICA8eW9vbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1RocmVhZGVk
Q29tcG9zaXRvcl0gQWRkIHN1cHBvcnQgZm9yIHRocmVhZGVkIGNvbXBvc2l0b3IuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgyNjUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNt
YWtlOgorICAgICAgICBBZGRzIENvb2RpbmF0ZWRHcmFwaGljcyBhbmQgdGhyZWFkZWQgY29tcG9z
aXRvciByZWxhdGVkIGNsYXNzZXMgdG8KKyAgICAgICAgc3VwcG9ydCB0aHJlYWRlZCBjb21wb3Np
dG9yCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRUaWxlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmg6CisgICAgICAgIFRoaXMgY2xhc3Mgc2hvdWxkIGJl
IGd1YXJkZWQgYnkgQ09PUkRJTkFURURfR1JBUEhJQ1MgaW5zdGVhZCBvZgorICAgICAgICBUSUxF
RF9CQUNLSU5HX1NUT1JFCisKIDIwMTUtMDEtMDYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlc29sdmUgbWlycm9yaW5nIGFuZCB2YXJpYW50IGluIEZvbnQg
aW5zdGVhZCBvZiBGb250R2x5cGhzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmYzYjQ1Y2U5OGI1MzFkNWQ3YWNj
YmU0ODc0OTU4MDI4YjlmZjkyZC4uMjdhN2NlNTc4NjdiNjNhNmRiN2QxZjk5YTcwYTIzZWI1ZTg5
MzAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE0LTEyLTA2ICBHd2FuZyBZb29u
IEh3YW5nICA8eW9vbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1RocmVhZGVkQ29tcG9z
aXRvcl0gQWRkIHN1cHBvcnQgZm9yIHRocmVhZGVkIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgyNjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMg
dGhlIFRocmVhZGVkIENvbXBvc2l0b3IgZm9yIFdlYktpdEdUSysuCisgICAgICAgIEl0IGlzIGRp
c2FibGVkIGFzIGEgZGVmYXVsdCBiZWNhdXNlIGl0IGlzIGEgaW5pdGlhbCBpbXBsZW1lbnRhdGlv
bi4KKyAgICAgICAgVGhlIHRocmVhZGVkIGNvbXBvc2l0b3IgY2FuIGJlIGVuYWJsZWQgdXNpbmcg
LS10aHJlYWRlZC1jb21wb3NpdG9yCisgICAgICAgIG9wdGlvbiBhdCBjb21waWxlIHRpbWUuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlLgor
CisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgIEFkZHMgQ29vZGluYXRlZEdy
YXBoaWNzIGFuZCB0aHJlYWRlZCBjb21wb3NpdG9yIHJlbGF0ZWQgY2xhc3NlcyB0bworICAgICAg
ICBzdXBwb3J0IHRocmVhZGVkIGNvbXBvc2l0b3IKKworICAgICAgICAqIFNoYXJlZC9EcmF3aW5n
QXJlYUluZm8uaDoKKyAgICAgICAgVXNlIERyYXdpbmdBcmVhSW1wbCBmb3IgdGhyZWFkZWQgY29t
cG9zaXRvcgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuY3Bw
OgorICAgICAgICAoX1dlYktpdFNldHRpbmdzUHJpdmF0ZTo6X1dlYktpdFNldHRpbmdzUHJpdmF0
ZSk6CisgICAgICAgIE1vZGlmaWVkIHRvIHVzZSBmb3JjZUNvbXBvc2l0aW5nTW9kZSB3aGVuIHRo
ZSB0aHJlYWRlZCBjb21wb3NpdG9yIHVzZWQuCisgICAgICAgIElmIHdlIGRvZXMgbm90IHNldCB0
aGlzIG1vZGUgaGVyZSwgaXQgY2Fubm90IGRyYXcgdGhlIHJvb3QgY29udGVudCBsYXllci4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVk
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJl
ZUhvc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0Ojpyb290TGF5ZXIpOgorICAgICAgICBJbXBsZW1lbnRzIFRocmVhZGVkQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0IHRvIHVzZSB0aGUgdGhyZWFkZWQKKyAgICAgICAgY29tcG9zaXRv
ci4gSXQgaXMgYmFzaWNhbGx5IHNpbWlsYXIgd2l0aCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Qg
YnV0IGl0IHVzZXMgVGhyZWFkZWRDb21wb3NpdG9yIGluc3RlYWQgb2YgSVBDLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZERyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjpEcmF3aW5nQXJlYSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmg6CisgICAgICAgIENPT1JE
SU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NFU1MgaXMgaW50cm9kdWNlZCB0byBjbGFzc2lmeSBJ
UEMgc3BlY2lmaWMgY29kZXMKKyAgICAgICAgZnJvbSBDb29yZGluYXRlZCBHcmFwaGljcy4KKyAg
ICAgICAgQW5kIENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEIGlzIHVzZWQgdG8gZ3VhcmQg
dGhlIHRocmVhZGVkCisgICAgICAgIGNvbXBvc2l0b3Igc3BlY2lmaWMgY29kZXMuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFJbXBsOjpEcmF3aW5nQXJlYUltcGwpOgorICAgICAgICBNb2RpZmll
ZCB0byB1c2UgZm9yY2VDb21wb3NpdGluZ01vZGUgd2hlbiB0aGUgdGhyZWFkZWQgY29tcG9zaXRv
ciB1c2VkLgorICAgICAgICBJZiB3ZSBkb2VzIG5vdCBzZXQgdGhpcyBtb2RlIGhlcmUsIGl0IHdp
bGwgY3Jhc2ggYmVjYXVzZSBvZiBQYWdlT3ZlcmxheS4KKyAgICAgICAgKFdlYktpdDo6RHJhd2lu
Z0FyZWFJbXBsOjptYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0
OjpEcmF3aW5nQXJlYUltcGw6OnVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKToKKyAgICAgICAgTW9k
aWZpZWQgdG8gaGFuZGxlIGNvbnRlbnRzIC8gdmlld3BvcnQgc2l6ZSBjaGFuZ2VzIGZvciB0aHJl
YWRlZCBjb21wb3NpdG9yLgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYUltcGw6OmF0dGFj
aFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcik6CisgICAgICAgIEFkZGVkIHRvIHN1cHBvcnQgT3Zl
cmxheSBsYXllciBpbiB0aGUgdGhyZWFkZWQgY29tcG9zaXRvci4KKyAgICAgICAgKFdlYktpdDo6
RHJhd2luZ0FyZWFJbXBsOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcpOgor
ICAgICAgICBQdXNoIHRoZSBzdXJmYWNlIGhhbmRsZSBmb3IgY29tcG9zaXRpbmcgdG8gdGhlIHRo
cmVhZGVkIGNvbXBvc2l0b3IuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWFJbXBsLmg6IFVzZSBDT09SRElOQVRFRF9HUkFQSUhDU19USFJFQURFRCB0byBndWFyZCB0
aGUgdGhyZWFkZWQgY29tcG9zaXRvciByZWxhdGVkIGNvZGVzLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcDogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaDogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjogRGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNz
TWFpbkd0ay5jcHA6CisgICAgICAgICAgICBNb2RpZmllZCB0byBjYWxsIFhJbml0VGhyZWFkcyB0
byB1c2UgdGhyZWFkLXNhZmUgeGxpYi4KKwogMjAxNS0wMS0wNSAgTWF0dCBCYWtlciAgPG1hdHRi
YWtlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogaW5zcGVjdG9yIHZpZXcg
dG9wIGluc2V0IHNob3VsZCBub3QgaW5jbHVkZSBoZWlnaHQgb2Ygd2ViIHZpZXcgYmFubmVycwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBmMmY2NGVmYWI4OWY2ZTczNDIyMWQxMTRiN2Zl
NDQyY2U4ODhkOWRmLi5lZDk1Mjk5ODYzMzkyYzRiNjI5YzNkNjY4MjY4NWVjMzQyMjQ4NDNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMzc0LDYgKzM3NCwzMSBAQCBpZiAoRU5BQkxF
X1RFWFRVUkVfTUFQUEVSKQogICAgICkKIGVuZGlmICgpCiAKK2lmIChFTkFCTEVfVEhSRUFERURf
Q09NUE9TSVRPUikKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMK
KyAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhp
Y3MiCisgICAgICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQiCisgICAgICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvdGhyZWFkZWRjb21wb3NpdG9yIgorICAgICkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NP
VVJDRVMKKyAgICAgICAgcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxp
bmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCisgICAgICAgIHBhZ2Uvc2Nyb2xs
aW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nU3RhdGVOb2RlQ29vcmRpbmF0ZWRHcmFw
aGljcy5jcHAKKyAgICAgICAgcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGVDb29yZGluYXRlZEdyYXBoaWNzLmNwcAorICAgICAgICBw
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwCisgICAgICAgIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAKKyAgICAgICAgcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZU5vZGUuY3BwCisgICAgICAgIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdT
dG9yZS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Fy
ZWFBbGxvY2F0b3IuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorICAgICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmcuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZFN1cmZhY2UuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZFRpbGUuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9VcGRhdGVBdGxhcy5jcHAKKyAgICApCitlbmRpZiAoKQorCiBp
ZiAoV1RGX1VTRV9FR0wpCiAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKICAgICAg
ICAgJHtFR0xfTElCUkFSWX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFRpbGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGls
ZS5jcHAKaW5kZXggYjI0ZjQ4ZDIzNjE5MTc5MTAzY2NmYjQ3ZGU2YzBlZmJjZDQxZGY4Yy4uZGQz
MmMyMzQ5MTk3MzI0MzZjOTJiNGQ3OTMwNmNmYmZmZTA2ZDM0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
VGlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJDb29yZGluYXRlZFRpbGUuaCIKIAotI2lmIFVTRShUSUxF
RF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKIAogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCkBAIC0xNDEs
NCArMTQxLDQgQEAgdm9pZCBDb29yZGluYXRlZFRpbGVCYWNrZW5kOjpwYWludENoZWNrZXJQYXR0
ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmUKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCi0jZW5kaWYgLy8gVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjZW5kaWYgLy8gVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
VGlsZS5oCmluZGV4IGQ4NDVjZTVkZjU4MzE1YWNiMzJkYjBiNWIwMTVmZjY2MmIxODA5NTIuLmI3
OTcwOWYzYmE2NGNlNWMwNjA3MzRkMmY1ZWE2MWUxMTUwNDIxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZFRpbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgQ29v
cmRpbmF0ZWRUaWxlX2gKICNkZWZpbmUgQ29vcmRpbmF0ZWRUaWxlX2gKIAotI2lmIFVTRShUSUxF
RF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKIAogI2luY2x1
ZGUgIkNvb3JkaW5hdGVkU3VyZmFjZS5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKQEAgLTkxLDYg
KzkxLDYgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8g
VVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQogCiAjZW5kaWYgLy8gQ29vcmRpbmF0ZWRUaWxlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21h
a2UKaW5kZXggYjg2MjA1YzYwMzU1YzRhYzMxMTUzZDZhMDMxZjk2MTMxZDNiMWM3Mi4uYmFiZTI3
ZDdlOTQ3OTYxM2M3NTkwOTNjNWIyMGMwYjU0MTcyNTIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsu
Y21ha2UKQEAgLTMxMSw3ICszMTEsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAog
ICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RBdGsu
Y3BwCiAKLSAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwCiAg
ICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9QcmludGVyTGlzdEd0ay5jcHAKICAgICBXZWJQcm9j
ZXNzL1dlYlBhZ2UvZ3RrL1dlYkluc3BlY3RvclVJR3RrLmNwcAogICAgIFdlYlByb2Nlc3MvV2Vi
UGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAKQEAgLTc0Miw2ICs3NDEsMjcgQEAgbGlzdChBUFBFTkQg
UGx1Z2luUHJvY2Vzc19TT1VSQ0VTCiAgICAgUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgv
UGx1Z2luUHJvY2Vzc01haW4uY3BwCiApCiAKK2lmIChFTkFCTEVfVEhSRUFERURfQ09NUE9TSVRP
UikKKyAgICBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKKyAgICAgICAgU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCisgICAgICAgIFNoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKyAgICAg
ICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvU2ltcGxlVmlld3BvcnRDb250cm9sbGVyLmNw
cAorICAgICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3Iv
VGhyZWFkZWRDb21wb3NpdG9yLmNwcAorICAgICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZS5jcHAKKyAg
ICAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29y
ZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYktpdDJf
SU5DTFVERV9ESVJFQ1RPUklFUworICAgICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkIgorICAgICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MiCisgICAgICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IiCisgICAgICAgICIke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcyIKKyAgICApCitlbHNl
IChFTkFCTEVfVEhSRUFERURfQ09NUE9TSVRPUikKKyAgICBsaXN0KEFQUEVORCBXZWJLaXQyX1NP
VVJDRVMKKyAgICAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNw
cAorICAgICkKK2VuZGlmICgpCisKICMgQ29tbWFuZHMgZm9yIGJ1aWxkaW5nIHRoZSBidWlsdC1p
biBpbmplY3RlZCBidW5kbGUuCiBpbmNsdWRlX2RpcmVjdG9yaWVzKAogICAgICIke1dFQktJVDJf
RElSfS9QbGF0Zm9ybSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5n
QXJlYUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaAppbmRl
eCA4Njg3N2FhNmNkZTRkNGFkZTQyMmI0MGVhZmI0NjYzZGMyNWFhMGZhLi4xNzU4YzJlZTk4MWE5
NjhkN2IzYTZkNzk4YjQ5NWVmMjI1OTBmMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdp
bmdBcmVhSW5mby5oCkBAIC0zNSw3ICszNSw3IEBAIGVudW0gRHJhd2luZ0FyZWFUeXBlIHsKICNl
bmRpZgogICAgIERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZSwKICNlbHNlCi0jaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxJ
VElQUk9DRVNTKQogICAgIERyYXdpbmdBcmVhVHlwZUNvb3JkaW5hdGVkCiAjZWxzZQogICAgIERy
YXdpbmdBcmVhVHlwZUltcGwsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggZDk2OWM1YjhkODU2MDY5N2ZlMjE1ZTNkYzQ2
M2E0MmMwYzQyMjkyYi4uNzZmM2I3MzVkN2ZjYWMwODljMTExZDFhNzhkNzFhOWUzMWUxZmE3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGlu
Z3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRp
bmdzLmNwcApAQCAtNTQsNiArNTQsMTAgQEAgc3RydWN0IF9XZWJLaXRTZXR0aW5nc1ByaXZhdGUg
ewogICAgICAgICBmYW50YXN5Rm9udEZhbWlseSA9IHByZWZlcmVuY2VzLT5mYW50YXN5Rm9udEZh
bWlseSgpLnV0ZjgoKTsKICAgICAgICAgcGljdG9ncmFwaEZvbnRGYW1pbHkgPSBwcmVmZXJlbmNl
cy0+cGljdG9ncmFwaEZvbnRGYW1pbHkoKS51dGY4KCk7CiAgICAgICAgIGRlZmF1bHRDaGFyc2V0
ID0gcHJlZmVyZW5jZXMtPmRlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKCkudXRmOCgpOworCisjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorICAgICAgICBwcmVmZXJlbmNlcy0+
c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CisjZW5kaWYKICAgICB9CiAKICAgICBSZWZQ
dHI8V2ViUHJlZmVyZW5jZXM+IHByZWZlcmVuY2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXggZDY5ZmExN2IxODRmNmRkZmEyYWRm
ZGQ4OTZiN2EzYmFmYmY0MzIzYy4uYWM4YTM1ZThjYjEwMTZhNGI2ZWE3MmU1MWUzYWU5ODU2NTE5
NzU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eS5oCkBAIC0yMSw3ICsyMSw3IEBACiAjaWZuZGVmIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dFByb3h5X2gKICNkZWZpbmUgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHlfaAogCi0jaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19N
VUxJVElQUk9DRVNTKQogCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgiCkBAIC02OSw2ICs2
OSw2IEBAIHByb3RlY3RlZDoKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTX01VTElUSVBST0NFU1MpCiAKICNlbmRpZiAvLyBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA2N2NiMjdlMzQ4
YTBkNjg2NzFjOGIxMzBmMTUwN2MyY2Y3ODJmZTdhLi5hYWQ0ZjhiYmExZDMxOTk5NTJiMTcyZWVl
ZTk3MWUyNDY0NWUxMjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFn
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAg
LTEzOCwxMiArMTM4LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRM
b2FkRm9yTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgdXNlQ3VzdG9tQ29u
dGVudFByb3ZpZGVyKSA9IDA7CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMSVRJUFJPQ0VTUykKICAgICB2aXJ0dWFsIHZvaWQg
cGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlbmRlckZyYW1lKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRl
bnRzU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY292ZXJlZFJlY3QpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgcGFnZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5KCkgPSAwOwotI2VuZGlmCi0j
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5kWm9v
bWFibGVBcmVhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYpID0gMDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IDAyODJlOTQyNDk0ZDU2NWU0YTg1NzQ0NzFjODZlMTAyMWIxMmJhMDYuLjBkYjY0
YmYwZDZmMTQyNWY0NWVjOTc1ZjZhNTlhNmM4ZTc0OTkzZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAKICNpbmNsdWRlICJS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgiCiAjZW5kaWYKIAotI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMSVRJUFJP
Q0VTUykKICNpbmNsdWRlICJDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eU1lc3NhZ2VzLmgi
CiAjZW5kaWYKIApAQCAtMTM3Miw3ICsxMzcyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENv
bW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYpCiB9CiAjZW5k
aWYKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElOQVRFRF9H
UkFQSElDU19NVUxJVElQUk9DRVNTKQogdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFBhZ2VUcmFu
c2l0aW9uVmlld3BvcnQoKQogewogICAgIGlmICghaXNWYWxpZCgpKQpAQCAtMzI4MCw3ICszMjgw
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIHVpbnQ2NF90IGYKICAgICBzaG91bGRDbG9zZSA9IG1fdWlDbGll
bnQtPnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh0aGlzLCBtZXNzYWdlLCBmcmFtZSk7CiB9
CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1NfTVVMSVRJUFJPQ0VTUykKIHZvaWQgV2ViUGFnZVByb3h5OjpwYWdlRGlkUmVxdWVzdFNj
cm9sbChjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CiAgICAgbV9wYWdlQ2xpZW50LnBhZ2VEaWRS
ZXF1ZXN0U2Nyb2xsKHBvaW50KTsKQEAgLTMzOTYsNyArMzM5Niw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSogZG93bmxvYWQpCiAgICAg
bV9wYWdlQ2xpZW50LmhhbmRsZURvd25sb2FkUmVxdWVzdChkb3dubG9hZCk7CiB9CiAKLSNpZiBQ
TEFURk9STShFRkwpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NFU1Mp
CiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlQ29udGVudFNpemUoY29uc3QgSW50U2l6ZSYg
c2l6ZSkKIHsKICAgICBtX3BhZ2VDbGllbnQuZGlkQ2hhbmdlQ29udGVudFNpemUoc2l6ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZWRlMzMyMjQyNzZmMDQ5
YjVmNWQxODBiYjc3OTE1NzBlZDBlYjNhZS4uOTI0OGY2OTFlMTE3MWMyZDU5ZGE1YjlkM2UzZDIx
NGE1YjQ1YWFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
NDc1LDcgKzQ3NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkQ29tbWl0TGF5ZXJUcmVlKGNv
bnN0IFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKIAotI2lmIFVTRShUSUxF
RF9CQUNLSU5HX1NUT1JFKSAKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMSVRJUFJP
Q0VTUykKICAgICB2b2lkIGRpZFJlbmRlckZyYW1lKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNv
bnRlbnRzU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY292ZXJlZFJlY3QpOwogI2VuZGlm
CiAjaWYgUExBVEZPUk0oRUZMKQpAQCAtNTQ3LDcgKzU0Nyw3IEBAIHB1YmxpYzoKICNpZiBQTEFU
Rk9STShHVEspCiAgICAgUGxhdGZvcm1XaWRnZXQgdmlld1dpZGdldCgpOwogI2VuZGlmCi0jaWYg
VVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01V
TElUSVBST0NFU1MpCiAgICAgdm9pZCBjb21taXRQYWdlVHJhbnNpdGlvblZpZXdwb3J0KCk7CiAj
ZW5kaWYKIApAQCAtMTEwNywxNCArMTEwNywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJO
b3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcyk7CiAg
ICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsK
IAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQ
SElDU19NVUxJVElQUk9DRVNTKQogICAgIHZvaWQgcGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmKTsKICAgICB2b2lkIHBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFk
eSgpOwotI2VuZGlmCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIHZvaWQgZGlk
RmluZFpvb21hYmxlQXJlYShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKEVGTCkKICAgICB2b2lkIGRpZENoYW5n
ZUNvbnRlbnRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAz
OGE1MjRlYzY4NzU1MzMyMDI3NDMyZDFkODk2YzVlZTE0ODU3ZTVlLi44ZGNmOTUzZGNjZWU0MmRj
MDlmZWUxM2QwOTE0ZDNjZDQ5NTlkZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTk1LDE1ICs5NSwxMCBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogICAgIEhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bigpIC0+IChi
b29sIGhhbmRsZWQpCiAjZW5kaWYKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lm
IFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxJVElQUk9DRVNTKQogICAgIFBhZ2VEaWRSZXF1
ZXN0U2Nyb2xsKFdlYkNvcmU6OkludFBvaW50IHBvaW50KQogICAgIFBhZ2VUcmFuc2l0aW9uVmll
d3BvcnRSZWFkeSgpCi0jZW5kaWYKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAg
RGlkRmluZFpvb21hYmxlQXJlYShXZWJDb3JlOjpJbnRQb2ludCB0YXJnZXQsIFdlYkNvcmU6Oklu
dFJlY3QgYXJlYSkKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oRUZMKQogICAgIERpZENoYW5nZUNv
bnRlbnRTaXplKFdlYkNvcmU6OkludFNpemUgbmV3U2l6ZSkKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKaW5kZXggNGQ1NGJhYzA2ZGRmODBjMWUxNTdkOWUzYzU1ZjQ1MTdlY2FkYzkx
YS4uZWE4MTdjZWM5NzJkODdkNjdiMmFkNzcxZDJhMDVjMTU4OGRiMzE1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcApAQCAtNTIxLDggKzUyMSwxMCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6
Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNv
bgogICAgIGlmIChtX3BhZ2UtPnVzZUZpeGVkTGF5b3V0KCkpCiAgICAgICAgIG1fcGFnZS0+ZHJh
d2luZ0FyZWEoKS0+bGF5ZXJUcmVlSG9zdCgpLT5zaXplRGlkQ2hhbmdlKHNpemUpOwogCisjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NFU1MpCiAgICAgbV9wYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZUNvbnRlbnRTaXplKHNpemUpKTsKICNl
bmRpZgorI2VuZGlmCiAKICAgICBtX3BhZ2UtPmRyYXdpbmdBcmVhKCktPm1haW5GcmFtZUNvbnRl
bnRTaXplQ2hhbmdlZChzaXplKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmNwcAppbmRleCA3ZjNlMWVjZjNiNTk4ZmNkZWM2YWE5
MWFiYjRlZjY1MjA3YmU2ODJiLi43YWI5YzgxMzBlZWNjNmYwYTAxMGUwNjA3NGQ2NTdiMjA5MWNj
NDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERy
YXdpbmdBcmVhLmNwcApAQCAtNjAwLDExICs2MDAsMTMgQEAgdm9pZCBDb29yZGluYXRlZERyYXdp
bmdBcmVhOjpkaXNwbGF5KFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiAgICAgbV9kaXNwbGF5VGlt
ZXIuc3RvcCgpOwogfQogCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NF
U1MpCiB2b2lkIENvb3JkaW5hdGVkRHJhd2luZ0FyZWE6OmRpZFJlY2VpdmVDb29yZGluYXRlZExh
eWVyVHJlZUhvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNz
YWdlRGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAobV9sYXllclRyZWVIb3N0KQogICAgICAg
ICBtX2xheWVyVHJlZUhvc3QtPmRpZFJlY2VpdmVDb29yZGluYXRlZExheWVyVHJlZUhvc3RNZXNz
YWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogfQorI2VuZGlmCiAKIHZvaWQgQ29vcmRpbmF0ZWRE
cmF3aW5nQXJlYTo6YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1l
KiBmcmFtZSwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogdmlld092ZXJsYXlSb290TGF5ZXIpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVh
LmgKaW5kZXggY2M2Mzk1NzI0NmZhZDA0NTNhMDJmODE1NTc0MzU2NzE4NWE3NjRlNS4uY2NmZWFi
YmY2YTUyZmM3YzNiNTJhMjQ5NTk3ZmM0YTQwNmNmNWVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRE
cmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuaApAQCAtNjQsNyArNjQsOSBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVz
aCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaEltbWVkaWF0ZWx5KCkgb3ZlcnJpZGU7CiAKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1NfTVVMSVRJUFJPQ0VTUykKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpOworI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGlj
c0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ0MTlmMTQ5ODk5Mzcx
M2Y0NGVjMjljYTQ5YmY4OGZiZmNmNGM0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0LmNwcApAQCAtMCwwICsxLDMwMCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAwLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgiCisKKyNpZiBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisKKyNpbmNsdWRlICJEcmF3aW5nQXJlYUltcGwuaCIK
KyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlRocmVhZFNhZmVDb29yZGlu
YXRlZFN1cmZhY2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lVmlldy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2Uu
aD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFRocmVhZGVkQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0PiBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Y3JlYXRl
KFdlYlBhZ2UqIHdlYlBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCh3ZWJQYWdlKSk7Cit9CisKK1RocmVhZGVkQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0Ojp+VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QoKQorewor
fQorCitUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6VGhyZWFkZWRDb29yZGluYXRl
ZExheWVyVHJlZUhvc3QoV2ViUGFnZSogd2ViUGFnZSkKKyAgICA6IExheWVyVHJlZUhvc3Qod2Vi
UGFnZSkKKyAgICAsIG1fZm9yY2VSZXBhaW50QXN5bmNDYWxsYmFja0lEKDApCisgICAgLCBtX2Nv
bnRlbnRMYXllcihudWxscHRyKQorICAgICwgbV92aWV3T3ZlcmxheVJvb3RMYXllcihudWxscHRy
KQorICAgICwgbV9ub3RpZnlBZnRlclNjaGVkdWxlZExheWVyRmx1c2goZmFsc2UpCisgICAgLCBt
X2lzU3VzcGVuZGVkKGZhbHNlKQorICAgICwgbV9pc1dhaXRpbmdGb3JSZW5kZXJlcihmYWxzZSkK
KyAgICAsIG1fbGF5ZXJGbHVzaFRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRocmVhZGVk
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpwZXJmb3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCkKKyAg
ICAsIG1fbGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkKHRydWUpCit7CisgICAgbV9jb29yZGlu
YXRvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q29tcG9zaXRpbmdDb29yZGluYXRvcj4obV93ZWJQYWdl
LT5jb3JlUGFnZSgpLCB0aGlzKTsKKworICAgIG1fY29vcmRpbmF0b3ItPmNyZWF0ZVJvb3RMYXll
cihtX3dlYlBhZ2UtPnNpemUoKSk7CisKKyAgICBDb29yZGluYXRlZFN1cmZhY2U6OnNldEZhY3Rv
cnkoY3JlYXRlQ29vcmRpbmF0ZWRTdXJmYWNlKTsKKworICAgIG1fY29tcG9zaXRvciA9IFRocmVh
ZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKHRoaXMpOworICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwor
fQorCitQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4gVGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3Q6OmNyZWF0ZUNvb3JkaW5hdGVkU3VyZmFjZShjb25zdCBJbnRTaXplJiBzaXpl
LCBDb29yZGluYXRlZFN1cmZhY2U6OkZsYWdzIGZsYWdzKQoreworICAgIHJldHVybiBUaHJlYWRT
YWZlQ29vcmRpbmF0ZWRTdXJmYWNlOjpjcmVhdGUoc2l6ZSwgZmxhZ3MpOworfQorCit2b2lkIFRo
cmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzY2hlZHVsZUxheWVyRmx1c2goKQorewor
ICAgIGlmICghbV9sYXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICghbV9sYXllckZsdXNoVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9sYXll
ckZsdXNoVGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0OjpzZXRMYXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQoYm9vbCBsYXll
ckZsdXNoaW5nRW5hYmxlZCkKK3sKKyAgICBpZiAobV9sYXllckZsdXNoU2NoZWR1bGluZ0VuYWJs
ZWQgPT0gbGF5ZXJGbHVzaGluZ0VuYWJsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbGF5
ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkID0gbGF5ZXJGbHVzaGluZ0VuYWJsZWQ7CisKKyAgICBp
ZiAobV9sYXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQpIHsKKyAgICAgICAgc2NoZWR1bGVMYXll
ckZsdXNoKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYW5jZWxQZW5kaW5nTGF5
ZXJGbHVzaCgpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpz
ZXRTaG91bGROb3RpZnlBZnRlck5leHRTY2hlZHVsZWRMYXllckZsdXNoKGJvb2wgbm90aWZ5QWZ0
ZXJTY2hlZHVsZWRMYXllckZsdXNoKQoreworICAgIG1fbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXll
ckZsdXNoID0gbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoOworfQorCit2b2lkIFRocmVh
ZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQoreworICAgIG1fY29udGVudExheWVy
ID0gZ3JhcGhpY3NMYXllcjsKKyAgICB1cGRhdGVSb290TGF5ZXJzKCk7Cit9CisKK3ZvaWQgVGhy
ZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmludmFsaWRhdGUoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6
OnNjcm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0
KQoreworICAgIG1fY29tcG9zaXRvci0+c2Nyb2xsVG8ocmVjdC5sb2NhdGlvbigpKTsKKyAgICBz
Y2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdDo6Zm9yY2VSZXBhaW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiti
b29sIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpmb3JjZVJlcGFpbnRBc3luYyh1
aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIC8vIFdlIGV4cGVjdCB0aGUgVUkgcHJvY2VzcyB0
byBub3QgcmVxdWlyZSBhIG5ldyByZXBhaW50IHVudGlsIHRoZSBwcmV2aW91cyBvbmUgaGFzIGZp
bmlzaGVkLgorICAgIEFTU0VSVCghbV9mb3JjZVJlcGFpbnRBc3luY0NhbGxiYWNrSUQpOworICAg
IG1fZm9yY2VSZXBhaW50QXN5bmNDYWxsYmFja0lEID0gY2FsbGJhY2tJRDsKKyAgICBzY2hlZHVs
ZUxheWVyRmx1c2goKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBUaHJlYWRlZENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBuZXdTaXplKQoreworICAgIG1fY29vcmRpbmF0b3ItPnNpemVEaWRDaGFuZ2UobmV3U2l6ZSk7
CisgICAgbV9jb21wb3NpdG9yLT5kaWRDaGFuZ2VDb250ZW50c1NpemUobmV3U2l6ZSk7Cit9CisK
K3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmRldmljZU9yUGFnZVNjYWxl
RmFjdG9yQ2hhbmdlZCgpCit7CisgICAgbV9jb29yZGluYXRvci0+ZGV2aWNlT3JQYWdlU2NhbGVG
YWN0b3JDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3Q6OnBhdXNlUmVuZGVyaW5nKCkKK3sKKyAgICBtX2lzU3VzcGVuZGVkID0gdHJ1ZTsKK30KKwor
dm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6cmVzdW1lUmVuZGVyaW5nKCkK
K3sKKyAgICBtX2lzU3VzcGVuZGVkID0gZmFsc2U7CisgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7
Cit9CisKK0dyYXBoaWNzTGF5ZXJGYWN0b3J5KiBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdDo6Z3JhcGhpY3NMYXllckZhY3RvcnkoKQoreworICAgIHJldHVybiBtX2Nvb3JkaW5hdG9y
LmdldCgpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojp2aWV3
cG9ydFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpCit7CisgICAgbV9j
b21wb3NpdG9yLT5kaWRDaGFuZ2VWaWV3cG9ydFNpemUoc2l6ZSk7Cit9CisKK3ZvaWQgVGhyZWFk
ZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhj
b25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmIGF0dHIpCit7CisgICAgbV9jb21wb3Np
dG9yLT5kaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZShhdHRyKTsKK30KKwordm9pZCBUaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Y29tcG9zaXRvckRpZEZsdXNoTGF5ZXJzKCkKK3sK
KyAgICBzdGF0aWNfY2FzdDxEcmF3aW5nQXJlYUltcGwqPihtX3dlYlBhZ2UtPmRyYXdpbmdBcmVh
KCkpLT5sYXllckhvc3REaWRGbHVzaExheWVycygpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0OjpkaWRTY2FsZUZhY3RvckNoYW5nZWQoZmxvYXQgc2NhbGUsIGNv
bnN0IEludFBvaW50JiBvcmlnaW4pCit7CisgICAgbV93ZWJQYWdlLT5zY2FsZVBhZ2Uoc2NhbGUs
IG9yaWdpbik7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnVw
ZGF0ZVJvb3RMYXllcnMoKQoreworICAgIGlmICghbV9jb250ZW50TGF5ZXIgJiYgIW1fdmlld092
ZXJsYXlSb290TGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29vcmRpbmF0b3ItPnNl
dFJvb3RDb21wb3NpdGluZ0xheWVyKG1fY29udGVudExheWVyLCBtX3ZpZXdPdmVybGF5Um9vdExh
eWVyKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0Vmll
d092ZXJsYXlSb290TGF5ZXIoR3JhcGhpY3NMYXllciogdmlld092ZXJsYXlSb290TGF5ZXIpCit7
CisgICAgbV92aWV3T3ZlcmxheVJvb3RMYXllciA9IHZpZXdPdmVybGF5Um9vdExheWVyOworICAg
IHVwZGF0ZVJvb3RMYXllcnMoKTsKK30KKworI2lmIFBMQVRGT1JNKEdUSykKK3ZvaWQgVGhyZWFk
ZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21w
b3NpdGluZyh1aW50NjRfdCBoYW5kbGUpCit7CisgICAgbV9sYXllclRyZWVDb250ZXh0LmNvbnRl
eHRJRCA9IGhhbmRsZTsKKyAgICBtX2NvbXBvc2l0b3ItPnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVG
b3JDb21wb3NpdGluZyhoYW5kbGUpOworfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoUkVRVUVTVF9B
TklNQVRJT05fRlJBTUUpCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpz
Y2hlZHVsZUFuaW1hdGlvbigpCit7CisgICAgaWYgKG1faXNXYWl0aW5nRm9yUmVuZGVyZXIpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2xheWVyRmx1c2hUaW1lci5pc0FjdGl2ZSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2xheWVyRmx1c2hUaW1lci5zdGFydE9uZVNob3QobV9j
b29yZGluYXRvci0+bmV4dEFuaW1hdGlvblNlcnZpY2VUaW1lKCkpOworICAgIHNjaGVkdWxlTGF5
ZXJGbHVzaCgpOworfQorI2VuZGlmCisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJl
ZUhvc3Q6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25z
dCBGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yLCBmbG9hdCBzY2FsZSkKK3sKKyAgICBtX2Nv
b3JkaW5hdG9yLT5zZXRWaXNpYmxlQ29udGVudHNSZWN0KHJlY3QsIHRyYWplY3RvcnlWZWN0b3Ip
OworICAgIGlmIChtX2xhc3RTY3JvbGxQb3NpdGlvbiAhPSByb3VuZGVkSW50UG9pbnQocmVjdC5s
b2NhdGlvbigpKSkgeworICAgICAgICBtX2xhc3RTY3JvbGxQb3NpdGlvbiA9IHJvdW5kZWRJbnRQ
b2ludChyZWN0LmxvY2F0aW9uKCkpOworCisgICAgICAgIGlmICghbV93ZWJQYWdlLT5jb3JlUGFn
ZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPnVzZUZpeGVkTGF5b3V0KCkpCisgICAgICAgICAgICBt
X3dlYlBhZ2UtPmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+bm90aWZ5U2Nyb2xsUG9z
aXRpb25DaGFuZ2VkKG1fbGFzdFNjcm9sbFBvc2l0aW9uKTsKKyAgICB9CisKKyAgICBpZiAobV9s
YXN0U2NhbGVGYWN0b3IgIT0gc2NhbGUpIHsKKyAgICAgICAgbV9sYXN0U2NhbGVGYWN0b3IgPSBz
Y2FsZTsKKyAgICAgICAgZGlkU2NhbGVGYWN0b3JDaGFuZ2VkKG1fbGFzdFNjYWxlRmFjdG9yLCBt
X2xhc3RTY3JvbGxQb3NpdGlvbik7CisgICAgfQorCisgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7
Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNhbmNlbFBlbmRp
bmdMYXllckZsdXNoKCkKK3sKKyAgICBtX2xheWVyRmx1c2hUaW1lci5zdG9wKCk7Cit9CisKK3Zv
aWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnBlcmZvcm1TY2hlZHVsZWRMYXll
ckZsdXNoKCkKK3sKKyAgICBpZiAobV9pc1N1c3BlbmRlZCB8fCBtX2lzV2FpdGluZ0ZvclJlbmRl
cmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Nvb3JkaW5hdG9yLT5zeW5jRGlzcGxheVN0
YXRlKCk7CisgICAgYm9vbCBkaWRTeW5jID0gbV9jb29yZGluYXRvci0+Zmx1c2hQZW5kaW5nTGF5
ZXJDaGFuZ2VzKCk7CisKKyAgICBpZiAobV9ub3RpZnlBZnRlclNjaGVkdWxlZExheWVyRmx1c2gg
JiYgZGlkU3luYykgeworICAgICAgICBjb21wb3NpdG9yRGlkRmx1c2hMYXllcnMoKTsKKyAgICAg
ICAgbV9ub3RpZnlBZnRlclNjaGVkdWxlZExheWVyRmx1c2ggPSBmYWxzZTsKKyAgICB9Cit9CisK
K3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnB1cmdlQmFja2luZ1N0b3Jl
cygpCit7CisgICAgbV9jb29yZGluYXRvci0+cHVyZ2VCYWNraW5nU3RvcmVzKCk7Cit9CisKK3Zv
aWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnJlbmRlck5leHRGcmFtZSgpCit7
CisgICAgbV9pc1dhaXRpbmdGb3JSZW5kZXJlciA9IGZhbHNlOworICAgIG1fY29vcmRpbmF0b3It
PnJlbmRlck5leHRGcmFtZSgpOworICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOworfQorCit2b2lk
IFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpjb21taXRTY3JvbGxPZmZzZXQodWlu
dDMyX3QgbGF5ZXJJRCwgY29uc3QgSW50U2l6ZSYgb2Zmc2V0KQoreworICAgIG1fY29vcmRpbmF0
b3ItPmNvbW1pdFNjcm9sbE9mZnNldChsYXllcklELCBvZmZzZXQpOworfQorCit2b2lkIFRocmVh
ZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpub3RpZnlGbHVzaFJlcXVpcmVkKCkKK3sKKyAg
ICBzY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdDo6Y29tbWl0U2NlbmVTdGF0ZShjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzU3Rh
dGUmIHN0YXRlKQoreworICAgIG1faXNXYWl0aW5nRm9yUmVuZGVyZXIgPSB0cnVlOworICAgIG1f
Y29tcG9zaXRvci0+dXBkYXRlU2NlbmVTdGF0ZShzdGF0ZSk7Cit9CisKK3ZvaWQgVGhyZWFkZWRD
b29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnBhaW50TGF5ZXJDb250ZW50cyhjb25zdCBHcmFwaGlj
c0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYpCit7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYyNTg5Mzg4MDFiZDQyOWM3MjNlYmRl
MDUzZGFjMmE2YWIzN2NmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0LmgKQEAgLTAsMCArMSwxNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQ29tcGFueSAxMDAsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0X2gKKyNkZWZpbmUgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3RfaAorCisjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorCisjaW5jbHVkZSAiTGF5ZXJUcmVl
Q29udGV4dC5oIgorI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKKyNpbmNsdWRlICJUaHJlYWRl
ZENvbXBvc2l0b3IuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3Iu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0UmVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1BhZ2VPdmVybGF5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgorI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0
Zi9UaHJlYWRpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyU3RhdGU7CitjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGU7CitjbGFz
cyBDb29yZGluYXRlZFN1cmZhY2U7CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CitjbGFzcyBHcmFw
aGljc0xheWVyOworY2xhc3MgR3JhcGhpY3NMYXllckZhY3Rvcnk7CitjbGFzcyBHcmFwaGljc0xh
eWVyRmFjdG9yeTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisK
K2NsYXNzIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0IDogcHVibGljIExheWVyVHJl
ZUhvc3QsIHB1YmxpYyBXZWJDb3JlOjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpDbGllbnQsIHB1
YmxpYyBUaHJlYWRlZENvbXBvc2l0b3I6OkNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QpOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxUaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdD4gY3JlYXRlKFdlYlBhZ2UqKTsKKyAgICB2aXJ0dWFsIH5UaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCgpOworCisgICAgdmlydHVhbCBjb25zdCBMYXllclRyZWVD
b250ZXh0JiBsYXllclRyZWVDb250ZXh0KCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9sYXllclRyZWVD
b250ZXh0OyB9OworCisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlTGF5ZXJGbHVzaCgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQoYm9v
bCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZE5vdGlmeUFmdGVyTmV4dFNj
aGVkdWxlZExheWVyRmx1c2goYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFJv
b3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZSgpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lk
IHNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5KCkgb3ZlcnJpZGUgeyB9OworICAg
IHZpcnR1YWwgdm9pZCBzZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheUluUmVjdChj
b25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9OworICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxOb25Db21wb3NpdGVkQ29udGVudHMoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xs
UmVjdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGZvcmNlUmVwYWludCgpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCAvKmNhbGxiYWNr
SUQqLykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNpemVEaWRDaGFuZ2UoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgbmV3U2l6ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRldmlj
ZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lk
IHBhdXNlUmVuZGVyaW5nKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlc3VtZVJlbmRl
cmluZygpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFj
dG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
cGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCkgb3ZlcnJpZGUgeyB9OworCisgICAg
dmlydHVhbCB2b2lkIHZpZXdwb3J0U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMo
Y29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJikgb3ZlcnJpZGU7CisKKyNpZiBQTEFU
Rk9STShHVEspCisgICAgdmlydHVhbCB2b2lkIHNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21w
b3NpdGluZyh1aW50NjRfdCkgb3ZlcnJpZGU7CisjZW5kaWYKKworI2lmIEVOQUJMRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRSkKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSBv
dmVycmlkZTsKKyNlbmRpZgorCisgICAgdm9pZCBzZXRWaWV3T3ZlcmxheVJvb3RMYXllcihXZWJD
b3JlOjpHcmFwaGljc0xheWVyKik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29yZTo6Q29v
cmRpbmF0ZWRTdXJmYWNlPiBjcmVhdGVDb29yZGluYXRlZFN1cmZhY2UoY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYsIFdlYkNvcmU6OkNvb3JkaW5hdGVkU3VyZmFjZTo6RmxhZ3MpOworCitwcm90ZWN0
ZWQ6CisgICAgZXhwbGljaXQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QoV2ViUGFn
ZSopOworCitwcml2YXRlOgorCisgICAgdm9pZCBjb21wb3NpdG9yRGlkRmx1c2hMYXllcnMoKTsK
KyAgICB2b2lkIGRpZFNjYWxlRmFjdG9yQ2hhbmdlZChmbG9hdCBzY2FsZSwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIG9yaWdpbik7CisKKyAgICB2b2lkIHVwZGF0ZVJvb3RMYXllcnMoKTsKKwor
ICAgIHZvaWQgY2FuY2VsUGVuZGluZ0xheWVyRmx1c2goKTsKKyAgICB2b2lkIHBlcmZvcm1TY2hl
ZHVsZWRMYXllckZsdXNoKCk7CisKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiByb290TGF5
ZXIoKSB7IHJldHVybiBtX2Nvb3JkaW5hdG9yLT5yb290TGF5ZXIoKTsgfQorCisgICAgLy8gVGhy
ZWFkZWRDb21wb3NpdG9yOjpDbGllbnQKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZUNvbnRl
bnRzUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiwgZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwdXJnZUJhY2tpbmdTdG9y
ZXMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyTmV4dEZyYW1lKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdFNjcm9sbE9mZnNldCh1aW50MzJfdCBsYXllcklE
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBvZmZzZXQpIG92ZXJyaWRlOworCisgICAgLy8gQ29t
cG9zaXRpbmdDb29yZGluYXRvcjo6Q2xpZW50CisgICAgdmlydHVhbCB2b2lkIGRpZEZsdXNoUm9v
dExheWVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGNvbW1pdFNjZW5lU3RhdGUoY29uc3QgV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRl
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50TGF5ZXJDb250ZW50cyhjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpIG92ZXJyaWRlOworCisgICAgTGF5ZXJUcmVlQ29u
dGV4dCBtX2xheWVyVHJlZUNvbnRleHQ7CisgICAgdWludDY0X3QgbV9mb3JjZVJlcGFpbnRBc3lu
Y0NhbGxiYWNrSUQ7CisKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3ByZXZTY3JvbGxQb3NpdGlv
bjsKKworICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIG1fY29udGVudExheWVyOworICAgIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqIG1fdmlld092ZXJsYXlSb290TGF5ZXI7CisKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29tcG9zaXRpbmdDb29yZGluYXRvcj4gbV9jb29yZGluYXRv
cjsKKyAgICBSZWZQdHI8VGhyZWFkZWRDb21wb3NpdG9yPiBtX2NvbXBvc2l0b3I7CisKKyAgICBi
b29sIG1fbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoOworICAgIGJvb2wgbV9pc1N1c3Bl
bmRlZDsKKyAgICBib29sIG1faXNXYWl0aW5nRm9yUmVuZGVyZXI7CisKKyAgICBmbG9hdCBtX2xh
c3RTY2FsZUZhY3RvcjsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2xhc3RTY3JvbGxQb3NpdGlv
bjsKKworICAgIFJ1bkxvb3A6OlRpbWVyPFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
PiBtX2xheWVyRmx1c2hUaW1lcjsKKyAgICBib29sIG1fbGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFi
bGVkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisKKyNlbmRpZiAvLyBUaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWEuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0RyYXdpbmdBcmVhLmNwcAppbmRleCA2ZWNkNzI2MDdlMGFmNTRiODVhZTkyMTgxOGFkM2Y0OWY3
YjhjN2M2Li43YmE1ODgxOGU5OTI4NDBmYTE4OGQwYTAxZjAzYzVlN2JkZDI2MzZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKQEAg
LTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oIgog
I2luY2x1ZGUgIlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgiCiAjZWxzZQotI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVM
SVRJUFJPQ0VTUykKICNpbmNsdWRlICJDb29yZGluYXRlZERyYXdpbmdBcmVhLmgiCiAjZWxzZQog
I2luY2x1ZGUgIkRyYXdpbmdBcmVhSW1wbC5oIgpAQCAtNjEsNyArNjEsNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8RHJhd2luZ0FyZWE+IERyYXdpbmdBcmVhOjpjcmVhdGUoV2ViUGFnZSYgd2ViUGFnZSwg
Y29uc3QgV2ViUGFnZQogICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlOgog
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YT4od2ViUGFnZSwgcGFyYW1ldGVycyk7CiAjZWxzZQotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQ
SElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMSVRJUFJPQ0VTUykKICAgICBj
YXNlIERyYXdpbmdBcmVhVHlwZUNvb3JkaW5hdGVkOgogICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxDb29yZGluYXRlZERyYXdpbmdBcmVhPih3ZWJQYWdlLCBwYXJhbWV0ZXJzKTsKICNl
bHNlCkBAIC03Nyw2ICs3Nyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYT4gRHJhd2lu
Z0FyZWE6OmNyZWF0ZShXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBXZWJQYWdlCiBEcmF3aW5nQXJl
YTo6RHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlIHR5cGUsIFdlYlBhZ2UmIHdlYlBhZ2UpCiAg
ICAgOiBtX3R5cGUodHlwZSkKICAgICAsIG1fd2ViUGFnZSh3ZWJQYWdlKQorI2lmIFVTRShURVhU
VVJFX01BUFBFUl9HTCkgJiYgUExBVEZPUk0oR1RLKQorICAgICwgbV9uYXRpdmVTdXJmYWNlSGFu
ZGxlRm9yQ29tcG9zaXRpbmcoMCkKKyNlbmRpZgogewogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6RHJhd2luZ0FyZWE6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgbV93ZWJQYWdlLnBhZ2VJRCgpLCAqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IGVhYTg1ZWE0YzgwMjAy
YjU2MDk0OGQ0Mjc0ZjI2NGM2NTVkNGU3ZmMuLjE2NDA5NzQzNWVmZTRlNjg0NzIwNmNlMDY1MGZl
YTZlYmY3NDJmY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYS5oCkBAIC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZy
ZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCk7CiAjZW5kaWYKIAotI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMSVRJUFJPQ0VT
UykKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdE1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpID0gMDsKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYUltcGwuY3BwCmluZGV4IGE3NzJiZmIwZDE4NzIzZTFmOWQ4NzY3MjkwMjRlMjE3NWEwMDFk
MTQuLmY3MTE4MmNjZjcyZGNhYTZlNDdiOGQwZTc0OTYxNTUwMzNjYzg0ZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3Bw
CkBAIC0zNSw5ICszNSwxNCBAQAogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgogI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogCisjaWYgVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTX1RIUkVBREVEKQorI2luY2x1ZGUgIlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0LmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewpAQCAtNjMsNiArNjgsMTEgQEAgRHJhd2luZ0FyZWFJbXBsOjpEcmF3aW5nQXJl
YUltcGwoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGUKICAg
ICAsIG1fZGlzcGxheVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJkRyYXdpbmdBcmVhSW1w
bDo6ZGlzcGxheVRpbWVyRmlyZWQpCiAgICAgLCBtX2V4aXRDb21wb3NpdGluZ1RpbWVyKFJ1bkxv
b3A6Om1haW4oKSwgdGhpcywgJkRyYXdpbmdBcmVhSW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKQogeworCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQor
ICAgIHdlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zZXRGb3JjZUNvbXBvc2l0aW5nTW9k
ZSh0cnVlKTsKKyNlbmRpZgorCiAgICAgaWYgKHdlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3Mo
KS5hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKCkgfHwgd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0
aW5ncygpLmZvcmNlQ29tcG9zaXRpbmdNb2RlKCkpCiAgICAgICAgIG1fYWx3YXlzVXNlQ29tcG9z
aXRpbmcgPSB0cnVlOwogCkBAIC0yMjAsNiArMjMwLDE2IEBAIHZvaWQgRHJhd2luZ0FyZWFJbXBs
OjpzZXRQYWludGluZ0VuYWJsZWQoYm9vbCBwYWludGluZ0VuYWJsZWQpCiAgICAgbV9pc1BhaW50
aW5nRW5hYmxlZCA9IHBhaW50aW5nRW5hYmxlZDsKIH0KIAordm9pZCBEcmF3aW5nQXJlYUltcGw6
Om1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBuZXdT
aXplKQoreworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAgICBpZiAo
bV9sYXllclRyZWVIb3N0KQorICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNpemVEaWRDaGFuZ2Uo
bmV3U2l6ZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShuZXdTaXplKTsKKyNlbmRpZgorfQor
CiB2b2lkIERyYXdpbmdBcmVhSW1wbDo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYgc3RvcmUpCiB7CiAgICAgbV93ZWJQYWdlLmNvcmVQYWdlKCktPnNldHRpbmdz
KCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5Ojpmb3JjZUNvbXBvc2l0aW5nTW9kZUtleSgpKSk7CkBAIC0zMjIsNyArMzQy
LDExIEBAIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjp1cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50
NjRfdCBzdGF0ZUlELCBib29sIHJlc3BvbmRJbW1lCiAgICAgICAgIG1fd2ViUGFnZS5zY3JvbGxN
YWluRnJhbWVJZk5vdEF0TWF4U2Nyb2xsUG9zaXRpb24oc2Nyb2xsT2Zmc2V0KTsKIAogICAgICAg
ICBpZiAobV9sYXllclRyZWVIb3N0KSB7CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RI
UkVBREVEKQorICAgICAgICAgICAgbV9sYXllclRyZWVIb3N0LT52aWV3cG9ydFNpemVDaGFuZ2Vk
KG1fd2ViUGFnZS5zaXplKCkpOworI2Vsc2UKICAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+
c2l6ZURpZENoYW5nZShtX3dlYlBhZ2Uuc2l6ZSgpKTsKKyNlbmRpZgogICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgIG1fZGlydHlSZWdpb24gPSBtX3dlYlBhZ2UuYm91bmRzKCk7CiAgICAgfSBl
bHNlIHsKQEAgLTY0MywxMCArNjY3LDMyIEBAIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjpkaXNwbGF5
KFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiAgICAgbV9kaXNwbGF5VGltZXIuc3RvcCgpOwogfQog
Cit2b2lkIERyYXdpbmdBcmVhSW1wbDo6YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdl
YkNvcmU6OkZyYW1lKiBmcmFtZSwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogdmlld092ZXJsYXlS
b290TGF5ZXIpCit7CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorICAg
IGlmICghZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgh
bV9sYXllclRyZWVIb3N0KQorICAgICAgICByZXR1cm47CisKKyAgICBUaHJlYWRlZENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdCogY29vcmRpbmF0ZWRMYXllclRyZWVIb3N0ID0gc3RhdGljX2Nhc3Q8
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QqPihtX2xheWVyVHJlZUhvc3QuZ2V0KCkp
OworICAgIGNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC0+c2V0Vmlld092ZXJsYXlSb290TGF5ZXIo
dmlld092ZXJsYXlSb290TGF5ZXIpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZnJhbWUpOwor
ICAgIFVOVVNFRF9QQVJBTSh2aWV3T3ZlcmxheVJvb3RMYXllcik7CisjZW5kaWYKK30KKwogI2lm
IFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYgUExBVEZPUk0oR1RLKQogdm9pZCBEcmF3aW5nQXJl
YUltcGw6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCBoYW5k
bGUpCiB7CiAgICAgbV9uYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcgPSBoYW5kbGU7
CisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgaWYgKG1fbGF5
ZXJUcmVlSG9zdCkKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXROYXRpdmVTdXJmYWNlSGFu
ZGxlRm9yQ29tcG9zaXRpbmcoaGFuZGxlKTsKKyNlbmRpZgogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAppbmRl
eCBhMGE2OGFhMzUwODFlMTQ5MGYwNTg0NTU3MTJiNTNiMzE2ZjY3YzYwLi4wZmJmYTdhYTMxNzkw
MTA1MzJhN2JiZjVhNjA5NDg5M2IwZmY1OGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCkBAIC02MCw2ICs2MCw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBib29sIGZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxi
YWNrSUQpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldFBhaW50aW5nRW5hYmxlZChib29sKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6
OkludFNpemUmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMo
Y29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBvdmVycmlk
ZTsKQEAgLTY3LDYgKzY4LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVD
b21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpIG92ZXJyaWRlOwogCisgICAgdmly
dHVhbCB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSos
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKwogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkg
JiYgUExBVEZPUk0oR1RLKQogICAgIHZpcnR1YWwgdm9pZCBzZXROYXRpdmVTdXJmYWNlSGFuZGxl
Rm9yQ29tcG9zaXRpbmcodWludDY0X3QpIG92ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggNTkz
YTFjYTQ1ZDYzODdhMjFmNGU1NTNmNDY0NTViN2E0ODJlMzBlNS4uMDg0MWVhYTIzZTEwM2JjNzI4
MmRmYTc3ZjA0ZDQ1NDQxOGJhZjA2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcApAQCAtMjYsMTEgKzI2LDExIEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9zdC5oIgogCi0jaWYgVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxJVElQ
Uk9DRVNTKQogI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oIgotI2VuZGlmCi0K
LSNpZiBQTEFURk9STShHVEspICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyNlbGlmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyNpbmNsdWRlICJUaHJlYWRlZENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdC5oIgorI2VsaWYgUExBVEZPUk0oR1RLKSAmJiBVU0UoVEVYVFVSRV9N
QVBQRVJfR0wpCiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9zdEd0ay5oIgogI2VuZGlmCiAKQEAgLTQw
LDggKzQwLDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBQYXNzUmVmUHRyPExheWVyVHJlZUhv
c3Q+IExheWVyVHJlZUhvc3Q6OmNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQogewotI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMSVRJ
UFJPQ0VTUykKICAgICByZXR1cm4gQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjcmVhdGUod2Vi
UGFnZSk7CisjZWxpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgcmV0
dXJuIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjcmVhdGUod2ViUGFnZSk7CiAj
ZWxpZiBQTEFURk9STShHVEspICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICAgICByZXR1cm4g
TGF5ZXJUcmVlSG9zdEd0azo6Y3JlYXRlKHdlYlBhZ2UpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCmluZGV4IGY5ZTE1OTFl
ZDBkMjM4NTIyNTY0YTI2MjAxMDRkYzUwNWJkYTZiM2QuLjJmYzA4MWYzYmQ2MmY1NmJjYzA1ZmNi
Nzk1N2NjOWYyOTU2YjQxZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9MYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0xheWVyVHJlZUhvc3QuaApAQCAtNDMsNiArNDMsOSBAQCBjbGFzcyBJbnRSZWN0Owog
Y2xhc3MgSW50U2l6ZTsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBjbGFzcyBHcmFwaGljc0xheWVy
RmFjdG9yeTsKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCitjbGFzcyBW
aWV3cG9ydEF0dHJpYnV0ZXM7CisjZW5kaWYKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC03
NiwxMCArNzksMTYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSB7IHJldHVybiAwOyB9CiAKLSNpZiBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01V
TElUSVBST0NFU1MpCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDb29yZGluYXRlZExheWVy
VHJlZUhvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSA9
IDA7CiAjZW5kaWYKIAorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2
NF90KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0U2l6ZUNoYW5nZWQoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQ
cm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpID0gMDsKKyNlbmRp
ZgorCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKSAmJiBFTkFCTEUoUkVRVUVTVF9BTklN
QVRJT05fRlJBTUUpCiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgPSAwOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggMjRiN2Y2MzYxOWEzZGU1OTgwY2IzYzg1ODQ0OTg5ZTEwZjk5MTI3NS4uMzQzN2ZiYzhk
ZTdhNDZmOTg2YTRhMDllMjhlYzMzODdjZTNmMTQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjA4LDcgKzIwOCw3IEBACiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogI2VuZGlmCiAKLSNpZiBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NF
U1MpCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0TWVzc2FnZXMuaCIKICNlbmRp
ZgogCkBAIC00NzQsNyArNDc0LDcgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQs
IGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgV2ViUHJv
Y2Vzczo6c2hhcmVkKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlELCAqdGhpcyk7CiAKICAgICAvLyBGSVhNRTogVGhp
cyBzaG91bGQgYmUgZG9uZSBpbiB0aGUgb2JqZWN0IGNvbnN0cnVjdG9ycywgYW5kIHRoZSBvYmpl
Y3RzIHRoZW1zZWx2ZXMgc2hvdWxkIGJlIG1lc3NhZ2UgcmVjZWl2ZXJzLgotI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMSVRJUFJP
Q0VTUykKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3Bh
Z2VJRCwgKnRoaXMpOwogI2VuZGlmCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKQEAgLTU2MCw3ICs1
NjAsNyBAQCBXZWJQYWdlOjp+V2ViUGFnZSgpCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1fcGFnZUlEKTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBkb25lIGluIHRo
ZSBvYmplY3QgZGVzdHJ1Y3RvcnMsIGFuZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzIHNob3VsZCBi
ZSBtZXNzYWdlIHJlY2VpdmVycy4KLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NFU1MpCiAgICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlSUQpOwogI2VuZGlmCiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikKQEAgLTEzMDksNyArMTMwOSwxMiBAQCB2b2lkIFdlYlBhZ2U6OnNl
bmRWaWV3cG9ydEF0dHJpYnV0ZXNDaGFuZ2VkKCkKICAgICAvLyBUaGlzIGFsc28gdGFrZXMgY2Fy
ZSBvZiB0aGUgcmVsYXlvdXQuCiAgICAgc2V0Rml4ZWRMYXlvdXRTaXplKHJvdW5kZWRJbnRTaXpl
KGF0dHIubGF5b3V0U2l6ZSkpOwogCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTElU
SVBST0NFU1MpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VWaWV3
cG9ydFByb3BlcnRpZXMoYXR0cikpOworI2Vsc2UKKyAgICBpZiAobV9kcmF3aW5nQXJlYS0+bGF5
ZXJUcmVlSG9zdCgpKQorICAgICAgICBtX2RyYXdpbmdBcmVhLT5sYXllclRyZWVIb3N0KCktPmRp
ZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhhdHRyKTsKKyNlbmRpZgogfQogI2VuZGlmCiAKQEAg
LTE3OTQsNyArMTc5OSwxMSBAQCB2b2lkIFdlYlBhZ2U6OnBhZ2VEaWRTY3JvbGwoKQogI2lmIFVT
RShUSUxFRF9CQUNLSU5HX1NUT1JFKQogdm9pZCBXZWJQYWdlOjpwYWdlRGlkUmVxdWVzdFNjcm9s
bChjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
X01VTElUSVBST0NFU1MpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQYWdlRGlk
UmVxdWVzdFNjcm9sbChwb2ludCkpOworI2VsaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RI
UkVBREVEKQorICAgIGRyYXdpbmdBcmVhKCktPnNjcm9sbChJbnRSZWN0KHBvaW50LCBJbnRTaXpl
KCkpLCBJbnRTaXplKCkpOworI2VuZGlmCiB9CiAjZW5kaWYKIApAQCAtMjM2OCw3ICsyMzc3LDcg
QEAgdm9pZCBXZWJQYWdlOjpkaWRTdGFydFBhZ2VUcmFuc2l0aW9uKCkKIAogdm9pZCBXZWJQYWdl
OjpkaWRDb21wbGV0ZVBhZ2VUcmFuc2l0aW9uKCkKIHsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19T
VE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMSVRJUFJPQ0VTUykKICAgICAv
LyBtX21haW5GcmFtZSBjYW4gYmUgbnVsbCBzaW5jZSByMTcwMTYzLgogICAgIGlmIChtX21haW5G
cmFtZSAmJiBtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKS0+ZGVsZWdhdGVzU2Nyb2xs
aW5nKCkpIHsKICAgICAgICAgLy8gV2FpdCB1bnRpbCB0aGUgVUkgcHJvY2VzcyBzZW50IHVzIHRo
ZSB2aXNpYmxlIHJlY3QgaXQgd2FudHMgcmVuZGVyZWQuCkBAIC0zNTMyLDcgKzM1NDEsNyBAQCBi
b29sIFdlYlBhZ2U6OndpbmRvd0FuZFdlYlBhZ2VBcmVGb2N1c2VkKCkgY29uc3QKIAogdm9pZCBX
ZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6TWVzc2FnZURlY29kZXImIGRlY29kZXIpCiB7Ci0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NFU1MpCiAgICAgaWYg
KGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpDb29yZGluYXRlZExh
eWVyVHJlZUhvc3Q6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBpZiAobV9kcmF3
aW5nQXJlYSkKICAgICAgICAgICAgIG1fZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVDb29yZGluYXRl
ZExheWVyVHJlZUhvc3RNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwpAQCAtNDAxOSw3ICs0
MDI4LDcgQEAgYm9vbCBXZWJQYWdlOjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICByZXR1cm4gcGxhdGZvcm1DYW5IYW5kbGVSZXF1
ZXN0KHJlcXVlc3QpOwogfQogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NFU1MpCiB2b2lkIFdlYlBhZ2U6OmNvbW1p
dFBhZ2VUcmFuc2l0aW9uVmlld3BvcnQoKQogewogICAgIG1fZHJhd2luZ0FyZWEtPnNldExheWVy
VHJlZVN0YXRlSXNGcm96ZW4oZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKaW5kZXggY2E5OWYzMzVmMTk1NzZkOTNkNjkxMTFmMjU0NGIxMGJmNzVj
NzJkMi4uMWNkNzJkZTNmOWExNzFiOWFkZjc1ZDUwODQ4MWUxNGE3Zjg2MGIwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC01ODcsNyArNTg3LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0VGhlbWVQYXRoKGNvbnN0IFN0cmluZyYpOwogI2VuZGlm
CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1NfTVVMSVRJUFJPQ0VTUykKICAgICB2b2lkIGNvbW1pdFBhZ2VUcmFuc2l0aW9uVmlld3Bv
cnQoKTsKICNlbmRpZgogCkBAIC0xMDIzLDcgKzEwMjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
aGlkZUZpbmRVSSgpOwogICAgIHZvaWQgY291bnRTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYs
IHVpbnQzMl90IGZpbmRPcHRpb25zLCB1aW50MzJfdCBtYXhNYXRjaENvdW50KTsKIAotI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVM
SVRJUFJPQ0VTUykKICAgICB2b2lkIGZpbmRab29tYWJsZUFyZWFGb3JQb2ludChjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGFyZWEpOwogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KaW5kZXggMGRiMTUzMGUzNTkzZWJkNTM5MGJjMWEzOWEwNzNlYmQwZTJhZmQzYi4u
NTlmOWJiYzEwZGI0ODc3ZWQ4ZDVhMDg0YTdlYzZlMWQ2YTczZmExOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAg
LTMxNSw3ICszMTUsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBTZXRUaGVtZVBhdGgoU3RyaW5nIHRoZW1lUGF0aCkKICNlbmRpZgogCi0jaWYgVVNFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NF
U1MpCiAgICAgQ29tbWl0UGFnZVRyYW5zaXRpb25WaWV3cG9ydCgpCiAjZW5kaWYKIApAQCAtMzgx
LDcgKzM4MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNl
dENvbXBvc2l0aW9uKFN0cmluZyBjb21wb3NpdGlvblN0cmluZywgVmVjdG9yPFdlYkNvcmU6OkNv
bXBvc2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVzLCB1aW50NjRfdCBjdXJzb3JQb3NpdGlvbikK
ICAgICBDYW5jZWxDb21wb3NpdGlvbigpCiAjZW5kaWYKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTElUSVBST0NFU1MpCiAgICAg
RmluZFpvb21hYmxlQXJlYUZvclBvaW50KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBXZWJDb3Jl
OjpJbnRTaXplIGFyZWEpCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCmluZGV4IDU4ZWE2OGY3ZDkwNzg0MWI0YzFk
YmJiNGNiNDA1MWQxNDdmYTNmNTIuLmUyYjc4NWJlMzhkM2Y2NzhlNDBlY2Q1ZDNjMmM0YmM2OGRm
ZTBjM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nl
c3NNYWluR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9j
ZXNzTWFpbkd0ay5jcHAKQEAgLTM0LDYgKzM0LDEwIEBACiAjaW5jbHVkZSA8bGliaW50bC5oPgog
I2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgogCisjaWYgUExBVEZPUk0oWDExKQorI2luY2x1ZGUg
PFgxMS9YbGliLmg+CisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewpAQCAtNDcsNiArNTEsOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBzbGVl
cCgzMCk7CiAjZW5kaWYKIAorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkg
JiYgUExBVEZPUk0oWDExKQorICAgICAgICBYSW5pdFRocmVhZHMoKTsKKyNlbmRpZgogICAgICAg
ICBndGtfaW5pdChudWxscHRyLCBudWxscHRyKTsKIAogICAgICAgICBiaW5kdGV4dGRvbWFpbihH
RVRURVhUX1BBQ0tBR0UsIFBBQ0tBR0VfTE9DQUxFX0RJUik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmlu
ZGV4IGNiMDQ1MDBkOTNjMTM2YTNhMDdhZDhmYjlhNmNmODk2ODcyODI1NzIuLmZjZDY4MzBjMzA0
MTY5MWQyMmZjNjQ0MTQ0NjY2NGI2Yjg1ZTZhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC0x
MTgsNyArMTE4LDYgQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dF
Ql9BVURJTyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJf
VElNSU5HIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQkdM
IE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1hIUl9USU1FT1VU
IE9OKQotV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoV1RGX1VTRV9USUxFRF9CQUNL
SU5HX1NUT1JFIE9OKQogCiBpZiAoRU5BQkxFX0xMSU5UX0NfTE9PUCkKICAgICBtZXNzYWdlKFNU
QVRVUyAiRm9yY2UgZW5hYmxpbmcgTExJTlQgQyBMT09QLiIpCkBAIC0yMDgsNiArMjA3LDggQEAg
aWYgKEVOQUJMRV9WSURFTyBPUiBFTkFCTEVfV0VCX0FVRElPKQogZW5kaWYgKCkKIAogYWRkX2Rl
ZmluaXRpb25zKC1EV1RGX1VTRV9DT09SRElOQVRFRF9HUkFQSElDUz0xKQorYWRkX2RlZmluaXRp
b25zKC1EV1RGX1VTRV9DT09SRElOQVRFRF9HUkFQSElDU19NVUxJVElQUk9DRVNTPTEpCithZGRf
ZGVmaW5pdGlvbnMoLURXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9MSkKIAogYWRkX2RlZmlu
aXRpb25zKC1EV1RGX1VTRV9URVhUVVJFX01BUFBFUj0xKQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc0dUSy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCmlu
ZGV4IDU0Y2IwMDNkNDI2NWNhYzE2OWUwZmU5NzA3YzIyYTdmYjA1ZjU1MzYuLmMwYThhZDViMWRh
NDg3MTJiNjcyOTllYmU3MGNjZjQyMzhiYWQ1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9P
cHRpb25zR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBAIC0x
NzIsNyArMTcyLDcgQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dF
Ql9BVURJTyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJf
VElNSU5HIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1hIUl9U
SU1FT1VUIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX05FVFdP
UktfUFJPQ0VTUyBPTikKLVdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKFdURl9VU0Vf
VElMRURfQkFDS0lOR19TVE9SRSBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxV
RShFTkFCTEVfVEhSRUFERURfQ09NUE9TSVRPUiBPRkYpCiBXRUJLSVRfT1BUSU9OX0VORCgpCiAK
IGlmIChMSUJOT1RJRllfRk9VTkQpCkBAIC0zMjksNiArMzI5LDEyIEBAIGlmIChPUEVOR0xfRk9V
TkQgQU5EIChHTFhfRk9VTkQgT1IgRUdMX0ZPVU5EKSkKICAgICBpZiAoR0xYX0ZPVU5EKQogICAg
ICAgICBhZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX0dMWD0xKQogICAgIGVuZGlmICgpCisKKyAg
ICBpZiAoRU5BQkxFX1RIUkVBREVEX0NPTVBPU0lUT1IpCisgICAgICAgIGFkZF9kZWZpbml0aW9u
cygtRFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRT0xKQorICAgICAgICBhZGRfZGVmaW5pdGlv
bnMoLURXVEZfVVNFX0NPT1JESU5BVEVEX0dSQVBISUNTPTEpCisgICAgICAgIGFkZF9kZWZpbml0
aW9ucygtRFdURl9VU0VfQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQ9MSkKKyAgICBlbmRp
ZiAoKQogZW5kaWYgKCkKIAogaWYgKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2Vi
S2l0RmVhdHVyZXMuY21ha2UKaW5kZXggY2FjOTk5OTgyMGY1MmE3NmMyNGRkZWNhYTkwODY1MjJh
Y2M1MjU0Ni4uMzNmNjdjYzE2ODllZTQwMDgzMzc4NmYwMThlZDc2ZjEwOGVlYWMzNCAxMDA2NDQK
LS0tIGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFr
ZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQpAQCAtMTQ5LDcgKzE0OSw3IEBAIG1hY3JvKFdFQktJVF9P
UFRJT05fQkVHSU4pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1hIUl9USU1FT1VU
ICJUb2dnbGUgWEhSIHRpbWVvdXQgc3VwcG9ydCIgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVG
SU5FKEVOQUJMRV9YU0xUICJUb2dnbGUgWFNMVCBzdXBwb3J0IiBPTikKICAgICBXRUJLSVRfT1BU
SU9OX0RFRklORShVU0VfU1lTVEVNX01BTExPQyAiVG9nZ2xlIHN5c3RlbSBhbGxvY2F0b3IgaW5z
dGVhZCBvZiBUQ21hbGxvYyIgT0ZGKQotICAgIFdFQktJVF9PUFRJT05fREVGSU5FKFdURl9VU0Vf
VElMRURfQkFDS0lOR19TVE9SRSAiVG9nZ2xlIFRpbGVkIEJhY2tpbmcgU3RvcmUgc3VwcG9ydCIg
T0ZGKQorICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9USFJFQURFRF9DT01QT1NJVE9S
ICJUb2dnbGUgVG9nZ2xlIFRocmVhZGVkIENvbXBvc2l0b3Igc3VwcG9ydCIgT0ZGKQogCiAgICAg
V0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMiBFTkFCTEVfVklE
RU8pCiAgICAgV0VCS0lUX09QVElPTl9ERVBFTkQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQ
VCBFTkFCTEVfVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZSBi
L1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCmluZGV4IDAwZDVmMzE4OGRlNDg5NTQ1ZTM1ODdi
OGU4NGUyN2QxNjFmZTRiNGMuLjQzMDk4YWE4OGMzZDhlYmIyZDAzZTNhMDJkYjc1M2IyMDY4YTY5
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCisrKyBiL1NvdXJjZS9j
bWFrZWNvbmZpZy5oLmNtYWtlCkBAIC0xMzksNyArMTM5LDYgQEAKICNjbWFrZWRlZmluZTAxIEVO
QUJMRV9YU0xUCiAjY21ha2VkZWZpbmUwMSBVU0VfU1lTVEVNX01BTExPQwogI2NtYWtlZGVmaW5l
MDEgV1RGX1VTRV9HRU9DTFVFMgotI2NtYWtlZGVmaW5lMDEgV1RGX1VTRV9USUxFRF9CQUNLSU5H
X1NUT1JFCiAjY21ha2VkZWZpbmUwMSBIQVZFX0xMVk0KICNjbWFrZWRlZmluZTAxIEhBVkVfR1RL
X1VOSVhfUFJJTlRJTkcKICNjbWFrZWRlZmluZTAxIFdURl9DUFVfQVJNNjRfQ09SVEVYQTUzCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjMxMTQ3
NDVlZDhjMDBhOTQxNjUyOGE4Mzk0M2VjNmMxOWI5Yzg5My4uMGEwZDZjMTdhMWU4MTM4YzRkYjNj
ODg1YmJiZWU5YWIxODJkNjEzMCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTEyLTA2ICBHd2FuZyBZb29uIEh3
YW5nICA8eW9vbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1RocmVhZGVkQ29tcG9zaXRv
cl0gQWRkIHN1cHBvcnQgZm9yIHRocmVhZGVkIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgyNjUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUgRU5BQkxFX1RIUkVBREVE
X0NPTVBPU0lUT1IgZmVhdHVyZSBmbGFnIHRvIHRoZSBjbWFrZSBhbmQKKyAgICAgICAgYXV0b3Rv
b2xzIGJ1aWxkIHN5c3RlbXMuIFRoZSBmZWF0dXJlIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuCisg
ICAgICAgIEFuZCByZW1vdmUgZGVwcmVjYXRlZCB0aGUgV1RGX1VTRV9USUxFRF9CQUNLSU5HX1NU
T1JFIGZlYXR1cmUgZmxhZworICAgICAgICBmcm9tIHRoZSBmZWF0dXJlIGZsYWdzLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtOgorCiAyMDE1LTAxLTA1ICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHNv
bWUgc3RhbGUgY2xhc3MgbmFtZXMgaW4gY2hlY2stZm9yLWluYXBwcm9wcmlhdGUtb2JqYy1jbGFz
cy1uYW1lcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0
LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCmluZGV4IDUxZGQ4
YmUwMDYxYjEyYjZhNjUzODA1ZGMxMzI5MTkwZDNiYzczOGUuLjMzMWViOGVhNTUwYjhjOWJhNTg1
NzJlNzY3ODMzMmJkNmU2ZTk4MDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVy
bC9GZWF0dXJlTGlzdC5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxp
c3QucG0KQEAgLTEyOCw3ICsxMjgsNyBAQCBteSAoCiAgICAgJHN5c3RlbU1hbGxvY1N1cHBvcnQs
CiAgICAgJHRlbXBsYXRlRWxlbWVudFN1cHBvcnQsCiAgICAgJHRleHRBdXRvc2l6aW5nU3VwcG9y
dCwKLSAgICAkdGlsZWRCYWNraW5nU3RvcmVTdXBwb3J0LAorICAgICR0aHJlYWRlZENvbXBvc2l0
b3JTdXBwb3J0LAogICAgICR0aHJlYWRlZEhUTUxQYXJzZXJTdXBwb3J0LAogICAgICR0b3VjaEV2
ZW50c1N1cHBvcnQsCiAgICAgJHRvdWNoU2xpZGVyU3VwcG9ydCwKQEAgLTM4Myw2ICszODMsOSBA
QCBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gInRlbXBsYXRlLWVsZW1lbnQiLCBk
ZXNjID0+ICJUb2dnbGUgSFRNTFRlbXBsYXRlRWxlbWVudCBzdXBwb3J0IiwKICAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwk
dGVtcGxhdGVFbGVtZW50U3VwcG9ydCB9LAogCisgICAgeyBvcHRpb24gPT4gInRocmVhZGVkLWNv
bXBvc2l0b3IiLCBkZXNjID0+ICJUb2dnbGUgVGhyZWFkZWQgQ29tcG9zaXRvciBzdXBwb3J0IiwK
KyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1RIUkVBREVEX0NPTVBPU0lUT1IiLCBkZWZhdWx0ID0+
IDAsIHZhbHVlID0+IFwkdGhyZWFkZWRDb21wb3NpdG9yU3VwcG9ydCB9LAorCiAgICAgeyBvcHRp
b24gPT4gInRleHQtYXV0b3NpemluZyIsIGRlc2MgPT4gIlRvZ2dsZSBUZXh0IEF1dG9zaXppbmcg
c3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9URVhUX0FVVE9TSVpJTkciLCBkZWZh
dWx0ID0+IDAsIHZhbHVlID0+IFwkdGV4dEF1dG9zaXppbmdTdXBwb3J0IH0sCiAKZGlmZiAtLWdp
dCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBkNmExNDUzZmRiOWFkNTc0NjM2NzljNWE3
NzBiNTU4YjllYWRmODgwLi41MDc5YTQ2NDAzMmVmN2Y3ZGQ4OTk5ZTU0ODRkNTM4MmNlMWRhZjgx
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTQtMTItMDYgIEd3YW5nIFlvb24gSHdhbmcgIDx5b29uQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS11bVGhyZWFkZWRDb21wb3NpdG9yXSBBZGQgc3VwcG9ydCBmb3IgdGhyZWFkZWQgY29t
cG9zaXRvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExODI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGVkIHRoZSBFTkFCTEVfVEhSRUFERURfQ09NUE9TSVRPUiBmZWF0dXJlIGZsYWcgdG8gdGhl
IGNtYWtlIGFuZAorICAgICAgICBhdXRvdG9vbHMgYnVpbGQgc3lzdGVtcy4gVGhlIGZlYXR1cmUg
aXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgQW5kIHJlbW92ZSBkZXByZWNhdGVkIHRo
ZSBXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgZmVhdHVyZSBmbGFnCisgICAgICAgIGZyb20g
dGhlIGZlYXR1cmUgZmxhZ3MuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5j
bWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZToKKyAgICAgICAg
KiBTb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2U6CisgICAgICAgICogU291cmNlL2Nt
YWtlY29uZmlnLmguY21ha2U6CisKIDIwMTQtMTItMjMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkgYnVpbGRpbmcgd2l0aCBBU2FuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244066</attachid>
            <date>2015-01-06 09:14:50 -0800</date>
            <delta_ts>2015-01-06 20:06:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118265-20150107021452.patch</filename>
            <type>text/plain</type>
            <size>57245</size>
            <attacher name="Gwang Yoon Hwang">yoon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3OTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDIxZmM5Yjc1ZDRiNTEz
NTY0YzNhZmJkMDJhYjA3Yzc4NjI5YzNkZS4uZmI5OTU5YjRhNzIwNDkxMjcyMDZiNjhhOGU0ZGNi
ZWEwOTFhMDUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTEyLTA2ICBHd2Fu
ZyBZb29uIEh3YW5nICA8eW9vbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1RocmVhZGVk
Q29tcG9zaXRvcl0gQWRkIHN1cHBvcnQgZm9yIHRocmVhZGVkIGNvbXBvc2l0b3IuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgyNjUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNt
YWtlOgorICAgICAgICBBZGRzIENvb2RpbmF0ZWRHcmFwaGljcyBhbmQgdGhyZWFkZWQgY29tcG9z
aXRvciByZWxhdGVkIGNsYXNzZXMgdG8KKyAgICAgICAgc3VwcG9ydCB0aHJlYWRlZCBjb21wb3Np
dG9yCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRUaWxlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmg6CisgICAgICAgIFRoaXMgY2xhc3Mgc2hvdWxkIGJl
IGd1YXJkZWQgYnkgQ09PUkRJTkFURURfR1JBUEhJQ1MgaW5zdGVhZCBvZgorICAgICAgICBUSUxF
RF9CQUNLSU5HX1NUT1JFCisKIDIwMTUtMDEtMDYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlc29sdmUgbWlycm9yaW5nIGFuZCB2YXJpYW50IGluIEZvbnQg
aW5zdGVhZCBvZiBGb250R2x5cGhzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmYzYjQ1Y2U5OGI1MzFkNWQ3YWNj
YmU0ODc0OTU4MDI4YjlmZjkyZC4uZjAyZTM1YmUxNzMyMzhkNzZjNTdjZDJmZjFjYmZlNTA2OGQx
Mzg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE0LTEyLTA2ICBHd2FuZyBZb29u
IEh3YW5nICA8eW9vbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1RocmVhZGVkQ29tcG9z
aXRvcl0gQWRkIHN1cHBvcnQgZm9yIHRocmVhZGVkIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgyNjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMg
dGhlIFRocmVhZGVkIENvbXBvc2l0b3IgZm9yIFdlYktpdEdUSysuCisgICAgICAgIEl0IGlzIGRp
c2FibGVkIGFzIGEgZGVmYXVsdCBiZWNhdXNlIGl0IGlzIGEgaW5pdGlhbCBpbXBsZW1lbnRhdGlv
bi4KKyAgICAgICAgVGhlIHRocmVhZGVkIGNvbXBvc2l0b3IgY2FuIGJlIGVuYWJsZWQgdXNpbmcg
LS10aHJlYWRlZC1jb21wb3NpdG9yCisgICAgICAgIG9wdGlvbiBhdCBjb21waWxlIHRpbWUuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlLgor
CisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgIEFkZHMgQ29vZGluYXRlZEdy
YXBoaWNzIGFuZCB0aHJlYWRlZCBjb21wb3NpdG9yIHJlbGF0ZWQgY2xhc3NlcyB0bworICAgICAg
ICBzdXBwb3J0IHRocmVhZGVkIGNvbXBvc2l0b3IKKworICAgICAgICAqIFNoYXJlZC9EcmF3aW5n
QXJlYUluZm8uaDoKKyAgICAgICAgVXNlIERyYXdpbmdBcmVhSW1wbCBmb3IgdGhyZWFkZWQgY29t
cG9zaXRvcgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3MuY3Bw
OgorICAgICAgICAoX1dlYktpdFNldHRpbmdzUHJpdmF0ZTo6X1dlYktpdFNldHRpbmdzUHJpdmF0
ZSk6CisgICAgICAgIE1vZGlmaWVkIHRvIHVzZSBmb3JjZUNvbXBvc2l0aW5nTW9kZSB3aGVuIHRo
ZSB0aHJlYWRlZCBjb21wb3NpdG9yIHVzZWQuCisgICAgICAgIElmIHdlIGRvZXMgbm90IHNldCB0
aGlzIG1vZGUgaGVyZSwgaXQgY2Fubm90IGRyYXcgdGhlIHJvb3QgY29udGVudCBsYXllci4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVk
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJl
ZUhvc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0Ojpyb290TGF5ZXIpOgorICAgICAgICBJbXBsZW1lbnRzIFRocmVhZGVkQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0IHRvIHVzZSB0aGUgdGhyZWFkZWQKKyAgICAgICAgY29tcG9zaXRv
ci4gSXQgaXMgYmFzaWNhbGx5IHNpbWlsYXIgd2l0aCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Qg
YnV0IGl0IHVzZXMgVGhyZWFkZWRDb21wb3NpdG9yIGluc3RlYWQgb2YgSVBDLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZERyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjpEcmF3aW5nQXJlYSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmg6CisgICAgICAgIENPT1JE
SU5BVEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUyBpcyBpbnRyb2R1Y2VkIHRvIGNsYXNzaWZ5IElQ
QyBzcGVjaWZpYyBjb2RlcworICAgICAgICBmcm9tIENvb3JkaW5hdGVkIEdyYXBoaWNzLgorICAg
ICAgICBBbmQgQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQgaXMgdXNlZCB0byBndWFyZCB0
aGUgdGhyZWFkZWQKKyAgICAgICAgY29tcG9zaXRvciBzcGVjaWZpYyBjb2Rlcy4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpEcmF3aW5nQXJlYUltcGw6OkRyYXdpbmdBcmVhSW1wbCk6CisgICAgICAgIE1vZGlmaWVk
IHRvIHVzZSBmb3JjZUNvbXBvc2l0aW5nTW9kZSB3aGVuIHRoZSB0aHJlYWRlZCBjb21wb3NpdG9y
IHVzZWQuCisgICAgICAgIElmIHdlIGRvZXMgbm90IHNldCB0aGlzIG1vZGUgaGVyZSwgaXQgd2ls
bCBjcmFzaCBiZWNhdXNlIG9mIFBhZ2VPdmVybGF5LgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5n
QXJlYUltcGw6Om1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6
OkRyYXdpbmdBcmVhSW1wbDo6dXBkYXRlQmFja2luZ1N0b3JlU3RhdGUpOgorICAgICAgICBNb2Rp
ZmllZCB0byBoYW5kbGUgY29udGVudHMgLyB2aWV3cG9ydCBzaXplIGNoYW5nZXMgZm9yIHRocmVh
ZGVkIGNvbXBvc2l0b3IuCisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhSW1wbDo6YXR0YWNo
Vmlld092ZXJsYXlHcmFwaGljc0xheWVyKToKKyAgICAgICAgQWRkZWQgdG8gc3VwcG9ydCBPdmVy
bGF5IGxheWVyIGluIHRoZSB0aHJlYWRlZCBjb21wb3NpdG9yLgorICAgICAgICAoV2ViS2l0OjpE
cmF3aW5nQXJlYUltcGw6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyk6Cisg
ICAgICAgIFB1c2ggdGhlIHN1cmZhY2UgaGFuZGxlIGZvciBjb21wb3NpdGluZyB0byB0aGUgdGhy
ZWFkZWQgY29tcG9zaXRvci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYUltcGwuaDogVXNlIENPT1JESU5BVEVEX0dSQVBJSENTX1RIUkVBREVEIHRvIGd1YXJkIHRo
ZSB0aHJlYWRlZCBjb21wb3NpdG9yIHJlbGF0ZWQgY29kZXMuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOiBEaXR0by4KKworICAgICAgICAqIFdlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NN
YWluR3RrLmNwcDoKKyAgICAgICAgICAgIE1vZGlmaWVkIHRvIGNhbGwgWEluaXRUaHJlYWRzIHRv
IHVzZSB0aHJlYWQtc2FmZSB4bGliLgorCiAyMDE1LTAxLTA1ICBNYXR0IEJha2VyICA8bWF0dGJh
a2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbnNwZWN0b3IgdmlldyB0
b3AgaW5zZXQgc2hvdWxkIG5vdCBpbmNsdWRlIGhlaWdodCBvZiB3ZWIgdmlldyBiYW5uZXJzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGYyZjY0ZWZhYjg5ZjZlNzM0MjIxZDExNGI3ZmU0
NDJjZTg4OGQ5ZGYuLmVkOTUyOTk4NjMzOTJjNGI2MjljM2Q2NjgyNjg1ZWMzNDIyNDg0M2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0zNzQsNiArMzc0LDMxIEBAIGlmIChFTkFCTEVf
VEVYVFVSRV9NQVBQRVIpCiAgICAgKQogZW5kaWYgKCkKIAoraWYgKEVOQUJMRV9USFJFQURFRF9D
T01QT1NJVE9SKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwor
ICAgICAgICAiJHtXRUJDT1JFX0RJUn0vcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGlj
cyIKKyAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZCIKKyAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC90aHJlYWRlZGNvbXBvc2l0b3IiCisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUworICAgICAgICBwYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKyAgICAgICAgcGFnZS9zY3JvbGxp
bmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdTdGF0ZU5vZGVDb29yZGluYXRlZEdyYXBo
aWNzLmNwcAorICAgICAgICBwYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZUNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCisgICAgICAgIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAKKyAgICAgICAgcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcAorICAgICAgICBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlTm9kZS5jcHAKKyAgICAgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0
b3JlLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQXJl
YUFsbG9jYXRvci5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisgICAgICAg
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFj
a2luZy5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkU3VyZmFjZS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL1VwZGF0ZUF0bGFzLmNwcAorICAgICkKK2VuZGlmICgpCisKIGlm
IChXVEZfVVNFX0VHTCkKICAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUwogICAgICAg
ICAke0VHTF9MSUJSQVJZfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxl
LmNwcAppbmRleCBiMjRmNDhkMjM2MTkxNzkxMDNjY2ZiNDdkZTZjMGVmYmNkNDFkZjhjLi5kZDMy
YzIzNDkxOTczMjQzNmM5MmI0ZDc5MzA2Y2ZiZmZlMDZkMzQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRU
aWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvb3JkaW5hdGVkVGlsZS5oIgogCi0jaWYgVVNFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogCiAjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKQEAgLTE0MSw0
ICsxNDEsNCBAQCB2b2lkIENvb3JkaW5hdGVkVGlsZUJhY2tlbmQ6OnBhaW50Q2hlY2tlclBhdHRl
cm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKLSNlbmRpZiAvLyBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNlbmRpZiAvLyBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRU
aWxlLmgKaW5kZXggZDg0NWNlNWRmNTgzMTVhY2IzMmRiMGI1YjAxNWZmNjYyYjE4MDk1Mi4uYjc5
NzA5ZjNiYTY0Y2U1YzA2MDczNGQyZjVlYTYxZTExNTA0MjEwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
VGlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZFRpbGUuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBDb29y
ZGluYXRlZFRpbGVfaAogI2RlZmluZSBDb29yZGluYXRlZFRpbGVfaAogCi0jaWYgVVNFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogCiAjaW5jbHVk
ZSAiQ29vcmRpbmF0ZWRTdXJmYWNlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgpAQCAtOTEsNiAr
OTEsNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBV
U0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1MpCiAKICNlbmRpZiAvLyBDb29yZGluYXRlZFRpbGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFr
ZQppbmRleCBiODYyMDVjNjAzNTVjNGFjMzExNTNkNmEwMzFmOTYxMzFkM2IxYzcyLi5iYWJlMjdk
N2U5NDc5NjEzYzc1OTA5M2M1YjIwYzBiNTQxNzI1MjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5j
bWFrZQpAQCAtMzExLDcgKzMxMSw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogCiAg
ICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5j
cHAKIAotICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAKICAg
ICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1ByaW50ZXJMaXN0R3RrLmNwcAogICAgIFdlYlByb2Nl
c3MvV2ViUGFnZS9ndGsvV2ViSW5zcGVjdG9yVUlHdGsuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJQ
YWdlL2d0ay9XZWJQYWdlR3RrLmNwcApAQCAtNzQyLDYgKzc0MSwyNyBAQCBsaXN0KEFQUEVORCBQ
bHVnaW5Qcm9jZXNzX1NPVVJDRVMKICAgICBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9Q
bHVnaW5Qcm9jZXNzTWFpbi5jcHAKICkKIAoraWYgKEVOQUJMRV9USFJFQURFRF9DT01QT1NJVE9S
KQorICAgIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUworICAgICAgICBTaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKKyAgICAgICAgU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAorICAgICAg
ICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9TaW1wbGVWaWV3cG9ydENvbnRyb2xsZXIuY3Bw
CisgICAgICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9U
aHJlYWRlZENvbXBvc2l0b3IuY3BwCisgICAgICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRTYWZlQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcAorICAg
ICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKyAgICApCisgICAgbGlzdChBUFBFTkQgV2ViS2l0Ml9J
TkNMVURFX0RJUkVDVE9SSUVTCisgICAgICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQiCisgICAgICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcyIKKyAgICAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvciIKKyAgICAgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzIgorICAgICkKK2Vsc2Ug
KEVOQUJMRV9USFJFQURFRF9DT01QT1NJVE9SKQorICAgIGxpc3QoQVBQRU5EIFdlYktpdDJfU09V
UkNFUworICAgICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3Bw
CisgICAgKQorZW5kaWYgKCkKKwogIyBDb21tYW5kcyBmb3IgYnVpbGRpbmcgdGhlIGJ1aWx0LWlu
IGluamVjdGVkIGJ1bmRsZS4KIGluY2x1ZGVfZGlyZWN0b3JpZXMoCiAgICAgIiR7V0VCS0lUMl9E
SVJ9L1BsYXRmb3JtIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdB
cmVhSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCmluZGV4
IDg2ODc3YWE2Y2RlNGQ0YWRlNDIyYjQwZWFmYjQ2NjNkYzI1YWEwZmEuLjFiNmRhNTJlNGQ0YmIy
NTdjYTUxZjNkNTg0NzIzYTk1OTIxOWFhZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9EcmF3aW5nQXJlYUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2lu
Z0FyZWFJbmZvLmgKQEAgLTM1LDcgKzM1LDcgQEAgZW51bSBEcmF3aW5nQXJlYVR5cGUgewogI2Vu
ZGlmCiAgICAgRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlLAogI2Vsc2UKLSNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJ
UFJPQ0VTUykKICAgICBEcmF3aW5nQXJlYVR5cGVDb29yZGluYXRlZAogI2Vsc2UKICAgICBEcmF3
aW5nQXJlYVR5cGVJbXBsLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0U2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IGQ5NjljNWI4ZDg1NjA2OTdmZTIxNWUzZGM0NjNh
NDJjMGM0MjI5MmIuLjc2ZjNiNzM1ZDdmY2FjMDg5YzExMWQxYTc4ZDcxYTllMzFlMWZhNzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5n
cy5jcHAKQEAgLTU0LDYgKzU0LDEwIEBAIHN0cnVjdCBfV2ViS2l0U2V0dGluZ3NQcml2YXRlIHsK
ICAgICAgICAgZmFudGFzeUZvbnRGYW1pbHkgPSBwcmVmZXJlbmNlcy0+ZmFudGFzeUZvbnRGYW1p
bHkoKS51dGY4KCk7CiAgICAgICAgIHBpY3RvZ3JhcGhGb250RmFtaWx5ID0gcHJlZmVyZW5jZXMt
PnBpY3RvZ3JhcGhGb250RmFtaWx5KCkudXRmOCgpOwogICAgICAgICBkZWZhdWx0Q2hhcnNldCA9
IHByZWZlcmVuY2VzLT5kZWZhdWx0VGV4dEVuY29kaW5nTmFtZSgpLnV0ZjgoKTsKKworI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAgICAgICAgcHJlZmVyZW5jZXMtPnNl
dEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworI2VuZGlmCiAgICAgfQogCiAgICAgUmVmUHRy
PFdlYlByZWZlcmVuY2VzPiBwcmVmZXJlbmNlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5oCmluZGV4IGQ2OWZhMTdiMTg0ZjZkZGZhMmFkZmRk
ODk2YjdhM2JhZmJmNDMyM2MuLjA0NjViNjlmZjk0NTFhYjgxYTlkZjU1Mjg0OTk0NjlmYzE3YmE2
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJv
eHkuaApAQCAtMjEsNyArMjEsNyBAQAogI2lmbmRlZiBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eV9oCiAjZGVmaW5lIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5X2gKIAotI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVM
VElQUk9DRVNTKQogCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJz
LmgiCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgiCkBAIC02OSw2ICs2OSw2
IEBAIHByb3RlY3RlZDoKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1MpCisjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
X01VTFRJUFJPQ0VTUykKIAogI2VuZGlmIC8vIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDY3Y2IyN2UzNDhhMGQ2
ODY3MWM4YjEzMGYxNTA3YzJjZjc4MmZlN2EuLmJkMTgyN2I2NzQxN2E2OWM1NDBjOGFiN2UzZmZk
YzI2M2E5M2I2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTM4
LDEyICsxMzgsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdExvYWRG
b3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCB1c2VDdXN0b21Db250ZW50
UHJvdmlkZXIpID0gMDsKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDU19NVUxUSVBST0NFU1MpCiAgICAgdmlydHVhbCB2b2lkIHBhZ2VE
aWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZW5kZXJGcmFtZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjb250ZW50c1Np
emUsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNvdmVyZWRSZWN0KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpID0gMDsKLSNlbmRpZgotI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluZFpvb21hYmxl
QXJlYShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9
IDA7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCAwMjgyZTk0MjQ5NGQ1NjVlNGE4NTc0NDcxYzg2ZTEwMjFiMTJiYTA2Li40MDUzNTBiM2I0
YjBiZDI4ZDlkMTZkZmE1Y2E4OWM3OGZlNDFmZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTA5LDcgKzEwOSw3IEBACiAjaW5jbHVkZSAiUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIgogI2VuZGlmCiAKLSNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUykK
ICNpbmNsdWRlICJDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eU1lc3NhZ2VzLmgiCiAjZW5k
aWYKIApAQCAtMTM3Miw3ICsxMzcyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExh
eWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYpCiB9CiAjZW5kaWYKIAot
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElD
U19NVUxUSVBST0NFU1MpCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UGFnZVRyYW5zaXRpb25W
aWV3cG9ydCgpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCkBAIC0zMjgwLDcgKzMyODAsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgdWludDY0X3QgZgogICAgIHNob3VsZENsb3NlID0gbV91aUNsaWVudC0+cnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHRoaXMsIG1lc3NhZ2UsIGZyYW1lKTsKIH0KIAotI2lm
IFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19N
VUxUSVBST0NFU1MpCiB2b2lkIFdlYlBhZ2VQcm94eTo6cGFnZURpZFJlcXVlc3RTY3JvbGwoY29u
c3QgSW50UG9pbnQmIHBvaW50KQogewogICAgIG1fcGFnZUNsaWVudC5wYWdlRGlkUmVxdWVzdFNj
cm9sbChwb2ludCk7CkBAIC0zMzk2LDcgKzMzOTYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFu
ZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqIGRvd25sb2FkKQogICAgIG1fcGFnZUNs
aWVudC5oYW5kbGVEb3dubG9hZFJlcXVlc3QoZG93bmxvYWQpOwogfQogCi0jaWYgUExBVEZPUk0o
RUZMKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxUSVBST0NFU1MpCiB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkQ2hhbmdlQ29udGVudFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsK
ICAgICBtX3BhZ2VDbGllbnQuZGlkQ2hhbmdlQ29udGVudFNpemUoc2l6ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZWRlMzMyMjQyNzZmMDQ5YjVmNWQxODBi
Yjc3OTE1NzBlZDBlYjNhZS4uZjM5ZTY4YTNiN2EzNWI5Yzg1NmQ3NDYzOGE3N2FjMzQwMWIzYWRj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDc1LDcgKzQ3
NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkQ29tbWl0TGF5ZXJUcmVlKGNvbnN0IFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5H
X1NUT1JFKSAKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQUk9DRVNTKQogICAg
IHZvaWQgZGlkUmVuZGVyRnJhbWUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY29udGVudHNTaXpl
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb3ZlcmVkUmVjdCk7CiAjZW5kaWYKICNpZiBQTEFU
Rk9STShFRkwpCkBAIC01NDcsNyArNTQ3LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKEdUSykK
ICAgICBQbGF0Zm9ybVdpZGdldCB2aWV3V2lkZ2V0KCk7CiAjZW5kaWYKLSNpZiBVU0UoVElMRURf
QkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQUk9DRVNT
KQogICAgIHZvaWQgY29tbWl0UGFnZVRyYW5zaXRpb25WaWV3cG9ydCgpOwogI2VuZGlmCiAKQEAg
LTExMDcsMTQgKzExMDcsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9u
cyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25JRHMpOwogICAgIHZvaWQgZGlk
RGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CiAKLSNpZiBVU0Uo
VElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQ
Uk9DRVNTKQogICAgIHZvaWQgcGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmKTsKICAgICB2b2lkIHBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpOwotI2VuZGlm
Ci0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIHZvaWQgZGlkRmluZFpvb21hYmxl
QXJlYShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsK
LSNlbmRpZgotI2lmIFBMQVRGT1JNKEVGTCkKICAgICB2b2lkIGRpZENoYW5nZUNvbnRlbnRTaXpl
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAzOGE1MjRlYzY4NzU1
MzMyMDI3NDMyZDFkODk2YzVlZTE0ODU3ZTVlLi5iZjlkZGFlNmFlMGJiNjlmYjc1Yzk5MmQ1M2U4
MzEzZjcyMDQ3OTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTk1LDE1ICs5NSwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdl
UHJveHkgewogICAgIEhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bigpIC0+IChib29sIGhhbmRsZWQp
CiAjZW5kaWYKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDU19NVUxUSVBST0NFU1MpCiAgICAgUGFnZURpZFJlcXVlc3RTY3JvbGwoV2Vi
Q29yZTo6SW50UG9pbnQgcG9pbnQpCiAgICAgUGFnZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5KCkK
LSNlbmRpZgotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBEaWRGaW5kWm9vbWFi
bGVBcmVhKFdlYkNvcmU6OkludFBvaW50IHRhcmdldCwgV2ViQ29yZTo6SW50UmVjdCBhcmVhKQot
I2VuZGlmCi0KLSNpZiBQTEFURk9STShFRkwpCiAgICAgRGlkQ2hhbmdlQ29udGVudFNpemUoV2Vi
Q29yZTo6SW50U2l6ZSBuZXdTaXplKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApp
bmRleCA0ZDU0YmFjMDZkZGY4MGMxZTE1N2Q5ZTNjNTVmNDUxN2VjYWRjOTFhLi4zMTUzNjUxY2Ux
MjdjNmIyZTBiYmQ5ZTI2NDk0OTI3ZGFmZGQ3YTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CkBAIC01MjEsOCArNTIxLDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVD
aGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uCiAgICAgaWYgKG1f
cGFnZS0+dXNlRml4ZWRMYXlvdXQoKSkKICAgICAgICAgbV9wYWdlLT5kcmF3aW5nQXJlYSgpLT5s
YXllclRyZWVIb3N0KCktPnNpemVEaWRDaGFuZ2Uoc2l6ZSk7CiAKKyNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1NfTVVMVElQUk9DRVNTKQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWRDaGFuZ2VDb250ZW50U2l6ZShzaXplKSk7CiAjZW5kaWYKKyNlbmRpZgog
CiAgICAgbV9wYWdlLT5kcmF3aW5nQXJlYSgpLT5tYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQo
c2l6ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRE
cmF3aW5nQXJlYS5jcHAKaW5kZXggN2YzZTFlY2YzYjU5OGZjZGVjNmFhOTFhYmI0ZWY2NTIwN2Jl
NjgyYi4uOGI5MmYzOWQ5ODU0NzkyYzc1YmM5YTdlN2FhN2ZjYWRiOTY0YTMyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWREcmF3aW5nQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5jcHAK
QEAgLTYwMCwxMSArNjAwLDEzIEBAIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYTo6ZGlzcGxh
eShVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQogICAgIG1fZGlzcGxheVRpbWVyLnN0b3AoKTsKIH0K
IAorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxUSVBST0NFU1MpCiB2b2lkIENvb3Jk
aW5hdGVkRHJhd2luZ0FyZWE6OmRpZFJlY2VpdmVDb29yZGluYXRlZExheWVyVHJlZUhvc3RNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVj
b2RlcikKIHsKICAgICBpZiAobV9sYXllclRyZWVIb3N0KQogICAgICAgICBtX2xheWVyVHJlZUhv
c3QtPmRpZFJlY2VpdmVDb29yZGluYXRlZExheWVyVHJlZUhvc3RNZXNzYWdlKGNvbm5lY3Rpb24s
IGRlY29kZXIpOwogfQorI2VuZGlmCiAKIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYTo6YXR0
YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSwgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciogdmlld092ZXJsYXlSb290TGF5ZXIpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZERyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmgKaW5kZXggY2M2Mzk1
NzI0NmZhZDA0NTNhMDJmODE1NTc0MzU2NzE4NWE3NjRlNS4uMTRkMmI1NmQ1MjQ1NDdiN2FlMjdl
NzFjOTIwNDQ0Zjc2NGMyZGE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuaApAQCAtNjQsNyArNjQsOSBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0ZWx5
KCkgb3ZlcnJpZGU7CiAKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQUk9DRVNT
KQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0TWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisjZW5kaWYKIAog
ICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6
RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1Ro
cmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDQxOWYxNDk4OTkzNzEzZjQ0ZWMyOWNhNDliZjg4
ZmJmY2Y0YzRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3QuY3BwCkBAIC0wLDAgKzEsMzAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgQ29tcGFueSAxMDAsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGhyZWFkZWRDb29y
ZGluYXRlZExheWVyVHJlZUhvc3QuaCIKKworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19U
SFJFQURFRCkKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW1wbC5oIgorI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCisjaW5jbHVkZSAiVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZS5oIgor
I2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVWaWV3
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL01haW5GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q+
IFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjcmVhdGUoV2ViUGFnZSogd2ViUGFn
ZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0KHdlYlBhZ2UpKTsKK30KKworVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6
On5UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCgpCit7Cit9CisKK1RocmVhZGVkQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0OjpUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdChX
ZWJQYWdlKiB3ZWJQYWdlKQorICAgIDogTGF5ZXJUcmVlSG9zdCh3ZWJQYWdlKQorICAgICwgbV9m
b3JjZVJlcGFpbnRBc3luY0NhbGxiYWNrSUQoMCkKKyAgICAsIG1fY29udGVudExheWVyKG51bGxw
dHIpCisgICAgLCBtX3ZpZXdPdmVybGF5Um9vdExheWVyKG51bGxwdHIpCisgICAgLCBtX25vdGlm
eUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVzaChmYWxzZSkKKyAgICAsIG1faXNTdXNwZW5kZWQoZmFs
c2UpCisgICAgLCBtX2lzV2FpdGluZ0ZvclJlbmRlcmVyKGZhbHNlKQorICAgICwgbV9sYXllckZs
dXNoVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6OnBlcmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKQorICAgICwgbV9sYXllckZsdXNo
U2NoZWR1bGluZ0VuYWJsZWQodHJ1ZSkKK3sKKyAgICBtX2Nvb3JkaW5hdG9yID0gc3RkOjptYWtl
X3VuaXF1ZTxDb21wb3NpdGluZ0Nvb3JkaW5hdG9yPihtX3dlYlBhZ2UtPmNvcmVQYWdlKCksIHRo
aXMpOworCisgICAgbV9jb29yZGluYXRvci0+Y3JlYXRlUm9vdExheWVyKG1fd2ViUGFnZS0+c2l6
ZSgpKTsKKworICAgIENvb3JkaW5hdGVkU3VyZmFjZTo6c2V0RmFjdG9yeShjcmVhdGVDb29yZGlu
YXRlZFN1cmZhY2UpOworCisgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpj
cmVhdGUodGhpcyk7CisgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Cit9CisKK1Bhc3NSZWZQdHI8
Q29vcmRpbmF0ZWRTdXJmYWNlPiBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Y3Jl
YXRlQ29vcmRpbmF0ZWRTdXJmYWNlKGNvbnN0IEludFNpemUmIHNpemUsIENvb3JkaW5hdGVkU3Vy
ZmFjZTo6RmxhZ3MgZmxhZ3MpCit7CisgICAgcmV0dXJuIFRocmVhZFNhZmVDb29yZGluYXRlZFN1
cmZhY2U6OmNyZWF0ZShzaXplLCBmbGFncyk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRl
ZExheWVyVHJlZUhvc3Q6OnNjaGVkdWxlTGF5ZXJGbHVzaCgpCit7CisgICAgaWYgKCFtX2xheWVy
Rmx1c2hTY2hlZHVsaW5nRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX2xh
eWVyRmx1c2hUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2xheWVyRmx1c2hUaW1lci5zdGFy
dE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6
OnNldExheWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxlZChib29sIGxheWVyRmx1c2hpbmdFbmFibGVk
KQoreworICAgIGlmIChtX2xheWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxlZCA9PSBsYXllckZsdXNo
aW5nRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sYXllckZsdXNoU2NoZWR1bGlu
Z0VuYWJsZWQgPSBsYXllckZsdXNoaW5nRW5hYmxlZDsKKworICAgIGlmIChtX2xheWVyRmx1c2hT
Y2hlZHVsaW5nRW5hYmxlZCkgeworICAgICAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGNhbmNlbFBlbmRpbmdMYXllckZsdXNoKCk7Cit9CisK
K3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldFNob3VsZE5vdGlmeUFm
dGVyTmV4dFNjaGVkdWxlZExheWVyRmx1c2goYm9vbCBub3RpZnlBZnRlclNjaGVkdWxlZExheWVy
Rmx1c2gpCit7CisgICAgbV9ub3RpZnlBZnRlclNjaGVkdWxlZExheWVyRmx1c2ggPSBub3RpZnlB
ZnRlclNjaGVkdWxlZExheWVyRmx1c2g7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3Q6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqIGdyYXBoaWNzTGF5ZXIpCit7CisgICAgbV9jb250ZW50TGF5ZXIgPSBncmFwaGljc0xheWVy
OworICAgIHVwZGF0ZVJvb3RMYXllcnMoKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdDo6aW52YWxpZGF0ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2Nyb2xsTm9uQ29tcG9z
aXRlZENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCit7CisgICAgbV9jb21w
b3NpdG9yLT5zY3JvbGxUbyhyZWN0LmxvY2F0aW9uKCkpOworICAgIHNjaGVkdWxlTGF5ZXJGbHVz
aCgpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpmb3JjZVJl
cGFpbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgVGhyZWFkZWRDb29y
ZGluYXRlZExheWVyVHJlZUhvc3Q6OmZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNr
SUQpCit7CisgICAgLy8gV2UgZXhwZWN0IHRoZSBVSSBwcm9jZXNzIHRvIG5vdCByZXF1aXJlIGEg
bmV3IHJlcGFpbnQgdW50aWwgdGhlIHByZXZpb3VzIG9uZSBoYXMgZmluaXNoZWQuCisgICAgQVNT
RVJUKCFtX2ZvcmNlUmVwYWludEFzeW5jQ2FsbGJhY2tJRCk7CisgICAgbV9mb3JjZVJlcGFpbnRB
c3luY0NhbGxiYWNrSUQgPSBjYWxsYmFja0lEOworICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwor
ICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0OjpzaXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG5ld1NpemUpCit7Cisg
ICAgbV9jb29yZGluYXRvci0+c2l6ZURpZENoYW5nZShuZXdTaXplKTsKKyAgICBtX2NvbXBvc2l0
b3ItPmRpZENoYW5nZUNvbnRlbnRzU2l6ZShuZXdTaXplKTsKK30KKwordm9pZCBUaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkK
K3sKKyAgICBtX2Nvb3JkaW5hdG9yLT5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsK
K30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6cGF1c2VSZW5kZXJp
bmcoKQoreworICAgIG1faXNTdXNwZW5kZWQgPSB0cnVlOworfQorCit2b2lkIFRocmVhZGVkQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0OjpyZXN1bWVSZW5kZXJpbmcoKQoreworICAgIG1faXNTdXNw
ZW5kZWQgPSBmYWxzZTsKKyAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKworR3JhcGhpY3NM
YXllckZhY3RvcnkqIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpncmFwaGljc0xh
eWVyRmFjdG9yeSgpCit7CisgICAgcmV0dXJuIG1fY29vcmRpbmF0b3IuZ2V0KCk7Cit9CisKK3Zv
aWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnZpZXdwb3J0U2l6ZUNoYW5nZWQo
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBtX2NvbXBvc2l0b3ItPmRpZENo
YW5nZVZpZXdwb3J0U2l6ZShzaXplKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZp
ZXdwb3J0QXR0cmlidXRlcyYgYXR0cikKK3sKKyAgICBtX2NvbXBvc2l0b3ItPmRpZENoYW5nZVZp
ZXdwb3J0QXR0cmlidXRlKGF0dHIpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0Ojpjb21wb3NpdG9yRGlkRmx1c2hMYXllcnMoKQoreworICAgIHN0YXRpY19jYXN0
PERyYXdpbmdBcmVhSW1wbCo+KG1fd2ViUGFnZS0+ZHJhd2luZ0FyZWEoKSktPmxheWVySG9zdERp
ZEZsdXNoTGF5ZXJzKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3Q6OmRpZFNjYWxlRmFjdG9yQ2hhbmdlZChmbG9hdCBzY2FsZSwgY29uc3QgSW50UG9pbnQmIG9y
aWdpbikKK3sKKyAgICBtX3dlYlBhZ2UtPnNjYWxlUGFnZShzY2FsZSwgb3JpZ2luKTsKK30KKwor
dm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6dXBkYXRlUm9vdExheWVycygp
Cit7CisgICAgaWYgKCFtX2NvbnRlbnRMYXllciAmJiAhbV92aWV3T3ZlcmxheVJvb3RMYXllcikK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb29yZGluYXRvci0+c2V0Um9vdENvbXBvc2l0aW5n
TGF5ZXIobV9jb250ZW50TGF5ZXIsIG1fdmlld092ZXJsYXlSb290TGF5ZXIpOworfQorCit2b2lk
IFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRWaWV3T3ZlcmxheVJvb3RMYXll
cihHcmFwaGljc0xheWVyKiB2aWV3T3ZlcmxheVJvb3RMYXllcikKK3sKKyAgICBtX3ZpZXdPdmVy
bGF5Um9vdExheWVyID0gdmlld092ZXJsYXlSb290TGF5ZXI7CisgICAgdXBkYXRlUm9vdExheWVy
cygpOworfQorCisjaWYgUExBVEZPUk0oR1RLKQordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdDo6c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90
IGhhbmRsZSkKK3sKKyAgICBtX2xheWVyVHJlZUNvbnRleHQuY29udGV4dElEID0gaGFuZGxlOwor
ICAgIG1fY29tcG9zaXRvci0+c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKGhh
bmRsZSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkK
K3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNjaGVkdWxlQW5pbWF0aW9u
KCkKK3sKKyAgICBpZiAobV9pc1dhaXRpbmdGb3JSZW5kZXJlcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKG1fbGF5ZXJGbHVzaFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fbGF5ZXJGbHVzaFRpbWVyLnN0YXJ0T25lU2hvdChtX2Nvb3JkaW5hdG9yLT5uZXh0
QW5pbWF0aW9uU2VydmljZVRpbWUoKSk7CisgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Cit9Cisj
ZW5kaWYKKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJs
ZUNvbnRlbnRzUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIHRy
YWplY3RvcnlWZWN0b3IsIGZsb2F0IHNjYWxlKQoreworICAgIG1fY29vcmRpbmF0b3ItPnNldFZp
c2libGVDb250ZW50c1JlY3QocmVjdCwgdHJhamVjdG9yeVZlY3Rvcik7CisgICAgaWYgKG1fbGFz
dFNjcm9sbFBvc2l0aW9uICE9IHJvdW5kZWRJbnRQb2ludChyZWN0LmxvY2F0aW9uKCkpKSB7Cisg
ICAgICAgIG1fbGFzdFNjcm9sbFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KHJlY3QubG9jYXRp
b24oKSk7CisKKyAgICAgICAgaWYgKCFtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPm1haW5GcmFtZSgp
LnZpZXcoKS0+dXNlRml4ZWRMYXlvdXQoKSkKKyAgICAgICAgICAgIG1fd2ViUGFnZS0+Y29yZVBh
Z2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT5ub3RpZnlTY3JvbGxQb3NpdGlvbkNoYW5nZWQobV9s
YXN0U2Nyb2xsUG9zaXRpb24pOworICAgIH0KKworICAgIGlmIChtX2xhc3RTY2FsZUZhY3RvciAh
PSBzY2FsZSkgeworICAgICAgICBtX2xhc3RTY2FsZUZhY3RvciA9IHNjYWxlOworICAgICAgICBk
aWRTY2FsZUZhY3RvckNoYW5nZWQobV9sYXN0U2NhbGVGYWN0b3IsIG1fbGFzdFNjcm9sbFBvc2l0
aW9uKTsKKyAgICB9CisKKyAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwordm9pZCBUaHJl
YWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Y2FuY2VsUGVuZGluZ0xheWVyRmx1c2goKQor
eworICAgIG1fbGF5ZXJGbHVzaFRpbWVyLnN0b3AoKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdDo6cGVyZm9ybVNjaGVkdWxlZExheWVyRmx1c2goKQoreworICAg
IGlmIChtX2lzU3VzcGVuZGVkIHx8IG1faXNXYWl0aW5nRm9yUmVuZGVyZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fY29vcmRpbmF0b3ItPnN5bmNEaXNwbGF5U3RhdGUoKTsKKyAgICBib29s
IGRpZFN5bmMgPSBtX2Nvb3JkaW5hdG9yLT5mbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKTsKKwor
ICAgIGlmIChtX25vdGlmeUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVzaCAmJiBkaWRTeW5jKSB7Cisg
ICAgICAgIGNvbXBvc2l0b3JEaWRGbHVzaExheWVycygpOworICAgICAgICBtX25vdGlmeUFmdGVy
U2NoZWR1bGVkTGF5ZXJGbHVzaCA9IGZhbHNlOworICAgIH0KK30KKwordm9pZCBUaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6cHVyZ2VCYWNraW5nU3RvcmVzKCkKK3sKKyAgICBtX2Nv
b3JkaW5hdG9yLT5wdXJnZUJhY2tpbmdTdG9yZXMoKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdDo6cmVuZGVyTmV4dEZyYW1lKCkKK3sKKyAgICBtX2lzV2FpdGlu
Z0ZvclJlbmRlcmVyID0gZmFsc2U7CisgICAgbV9jb29yZGluYXRvci0+cmVuZGVyTmV4dEZyYW1l
KCk7CisgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGlu
YXRlZExheWVyVHJlZUhvc3Q6OmNvbW1pdFNjcm9sbE9mZnNldCh1aW50MzJfdCBsYXllcklELCBj
b25zdCBJbnRTaXplJiBvZmZzZXQpCit7CisgICAgbV9jb29yZGluYXRvci0+Y29tbWl0U2Nyb2xs
T2Zmc2V0KGxheWVySUQsIG9mZnNldCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3Q6Om5vdGlmeUZsdXNoUmVxdWlyZWQoKQoreworICAgIHNjaGVkdWxlTGF5ZXJG
bHVzaCgpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpjb21t
aXRTY2VuZVN0YXRlKGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSYgc3RhdGUpCit7Cisg
ICAgbV9pc1dhaXRpbmdGb3JSZW5kZXJlciA9IHRydWU7CisgICAgbV9jb21wb3NpdG9yLT51cGRh
dGVTY2VuZVN0YXRlKHN0YXRlKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdDo6cGFpbnRMYXllckNvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42NjI1ODkzODgwMWJkNDI5YzcyM2ViZGUwNTNkYWMyYTZhYjM3Y2Y1
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuaApAQCAt
MCwwICsxLDE1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMyBDb21w
YW55IDEwMCwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3RfaAorI2RlZmluZSBU
aHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdF9oCisKKyNpZiBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1NfVEhSRUFERUQpCisKKyNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCisjaW5j
bHVkZSAiTGF5ZXJUcmVlSG9zdC5oIgorI2luY2x1ZGUgIlRocmVhZGVkQ29tcG9zaXRvci5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZU92ZXJs
YXkuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0
ZTsKK2NsYXNzIENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZTsKK2NsYXNzIENvb3JkaW5hdGVkU3Vy
ZmFjZTsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKK2NsYXNzIEdyYXBoaWNzTGF5ZXI7CitjbGFz
cyBHcmFwaGljc0xheWVyRmFjdG9yeTsKK2NsYXNzIEdyYXBoaWNzTGF5ZXJGYWN0b3J5OworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgVGhyZWFkZWRD
b29yZGluYXRlZExheWVyVHJlZUhvc3QgOiBwdWJsaWMgTGF5ZXJUcmVlSG9zdCwgcHVibGljIFdl
YkNvcmU6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OkNsaWVudCwgcHVibGljIFRocmVhZGVkQ29t
cG9zaXRvcjo6Q2xpZW50IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUaHJlYWRlZENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0PiBj
cmVhdGUoV2ViUGFnZSopOworICAgIHZpcnR1YWwgflRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0KCk7CisKKyAgICB2aXJ0dWFsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJl
ZUNvbnRleHQoKSBvdmVycmlkZSB7IHJldHVybiBtX2xheWVyVHJlZUNvbnRleHQ7IH07CisKKyAg
ICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldExheWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxlZChib29sKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkTm90aWZ5QWZ0ZXJOZXh0U2NoZWR1bGVkTGF5ZXJGbHVz
aChib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5
ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlKCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9uQ29tcG9zaXRl
ZENvbnRlbnRzTmVlZERpc3BsYXkoKSBvdmVycmlkZSB7IH07CisgICAgdmlydHVhbCB2b2lkIHNl
dE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSBvdmVycmlkZSB7IH07CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbE5vbkNvbXBvc2l0
ZWRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0KSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZm9yY2VSZXBhaW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIGZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IC8qY2FsbGJhY2tJRCovKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBu
ZXdTaXplKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0
b3JDaGFuZ2VkKCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgcGF1c2VSZW5kZXJpbmco
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lUmVuZGVyaW5nKCkgb3ZlcnJpZGU7
CisKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xh
eWVyRmFjdG9yeSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWdlQmFja2dyb3VuZFRy
YW5zcGFyZW5jeUNoYW5nZWQoKSBvdmVycmlkZSB7IH07CisKKyAgICB2aXJ0dWFsIHZvaWQgdmll
d3BvcnRTaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpW
aWV3cG9ydEF0dHJpYnV0ZXMmKSBvdmVycmlkZTsKKworI2lmIFBMQVRGT1JNKEdUSykKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90
KSBvdmVycmlkZTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1F
KQorICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpIG92ZXJyaWRlOworI2VuZGlm
CisKKyAgICB2b2lkIHNldFZpZXdPdmVybGF5Um9vdExheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb3JlOjpDb29yZGluYXRlZFN1cmZhY2U+
IGNyZWF0ZUNvb3JkaW5hdGVkU3VyZmFjZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29y
ZTo6Q29vcmRpbmF0ZWRTdXJmYWNlOjpGbGFncyk7CisKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNp
dCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdChXZWJQYWdlKik7CisKK3ByaXZhdGU6
CisKKyAgICB2b2lkIGNvbXBvc2l0b3JEaWRGbHVzaExheWVycygpOworICAgIHZvaWQgZGlkU2Nh
bGVGYWN0b3JDaGFuZ2VkKGZsb2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgb3Jp
Z2luKTsKKworICAgIHZvaWQgdXBkYXRlUm9vdExheWVycygpOworCisgICAgdm9pZCBjYW5jZWxQ
ZW5kaW5nTGF5ZXJGbHVzaCgpOworICAgIHZvaWQgcGVyZm9ybVNjaGVkdWxlZExheWVyRmx1c2go
KTsKKworICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHJvb3RMYXllcigpIHsgcmV0dXJuIG1f
Y29vcmRpbmF0b3ItPnJvb3RMYXllcigpOyB9CisKKyAgICAvLyBUaHJlYWRlZENvbXBvc2l0b3I6
OkNsaWVudAorICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBmbG9hdCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHB1cmdlQmFja2luZ1N0b3JlcygpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCByZW5kZXJOZXh0RnJhbWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgY29tbWl0U2Nyb2xsT2Zmc2V0KHVpbnQzMl90IGxheWVySUQsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIG9mZnNldCkgb3ZlcnJpZGU7CisKKyAgICAvLyBDb21wb3NpdGluZ0Nvb3JkaW5h
dG9yOjpDbGllbnQKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmx1c2hSb290TGF5ZXIoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZs
dXNoUmVxdWlyZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tbWl0U2NlbmVTdGF0
ZShjb25zdCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRMYXllckNvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBjbGlwUmVjdCkgb3ZlcnJpZGU7CisKKyAgICBMYXllclRyZWVDb250ZXh0IG1fbGF5ZXJUcmVl
Q29udGV4dDsKKyAgICB1aW50NjRfdCBtX2ZvcmNlUmVwYWludEFzeW5jQ2FsbGJhY2tJRDsKKwor
ICAgIFdlYkNvcmU6OkludFBvaW50IG1fcHJldlNjcm9sbFBvc2l0aW9uOworCisgICAgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciogbV9jb250ZW50TGF5ZXI7CisgICAgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciogbV92aWV3T3ZlcmxheVJvb3RMYXllcjsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yPiBtX2Nvb3JkaW5hdG9yOworICAgIFJlZlB0cjxU
aHJlYWRlZENvbXBvc2l0b3I+IG1fY29tcG9zaXRvcjsKKworICAgIGJvb2wgbV9ub3RpZnlBZnRl
clNjaGVkdWxlZExheWVyRmx1c2g7CisgICAgYm9vbCBtX2lzU3VzcGVuZGVkOworICAgIGJvb2wg
bV9pc1dhaXRpbmdGb3JSZW5kZXJlcjsKKworICAgIGZsb2F0IG1fbGFzdFNjYWxlRmFjdG9yOwor
ICAgIFdlYkNvcmU6OkludFBvaW50IG1fbGFzdFNjcm9sbFBvc2l0aW9uOworCisgICAgUnVuTG9v
cDo6VGltZXI8VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q+IG1fbGF5ZXJGbHVzaFRp
bWVyOworICAgIGJvb2wgbV9sYXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19U
SFJFQURFRCkKKworI2VuZGlmIC8vIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3Bw
CmluZGV4IDZlY2Q3MjYwN2UwYWY1NGI4NWFlOTIxODE4YWQzZjQ5ZjdiOGM3YzYuLmU2Y2VkOWUy
MzUyMWVjYjk4ZDI3YWNmZjMwMmI3ZDY3OTI2NGZkNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApAQCAtMzksNyArMzksNyBAQAog
I2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAiVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCIKICNlbHNlCi0jaWYgVVNFKENPT1JESU5BVEVEX0dS
QVBISUNTKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxUSVBST0NFU1MpCiAjaW5j
bHVkZSAiQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5oIgogI2Vsc2UKICNpbmNsdWRlICJEcmF3aW5n
QXJlYUltcGwuaCIKQEAgLTYxLDcgKzYxLDcgQEAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVh
PiBEcmF3aW5nQXJlYTo6Y3JlYXRlKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2UKICAg
ICBjYXNlIERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZToKICAgICAgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE+KHdlYlBhZ2UsIHBhcmFt
ZXRlcnMpOwogI2Vsc2UKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUykKICAgICBjYXNlIERyYXdpbmdBcmVhVHlw
ZUNvb3JkaW5hdGVkOgogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDb29yZGluYXRl
ZERyYXdpbmdBcmVhPih3ZWJQYWdlLCBwYXJhbWV0ZXJzKTsKICNlbHNlCkBAIC03Nyw2ICs3Nyw5
IEBAIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYT4gRHJhd2luZ0FyZWE6OmNyZWF0ZShXZWJQ
YWdlJiB3ZWJQYWdlLCBjb25zdCBXZWJQYWdlCiBEcmF3aW5nQXJlYTo6RHJhd2luZ0FyZWEoRHJh
d2luZ0FyZWFUeXBlIHR5cGUsIFdlYlBhZ2UmIHdlYlBhZ2UpCiAgICAgOiBtX3R5cGUodHlwZSkK
ICAgICAsIG1fd2ViUGFnZSh3ZWJQYWdlKQorI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkgJiYg
UExBVEZPUk0oR1RLKQorICAgICwgbV9uYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmco
MCkKKyNlbmRpZgogewogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmFkZE1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6RHJhd2luZ0FyZWE6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdl
LnBhZ2VJRCgpLCAqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IGVhYTg1ZWE0YzgwMjAyYjU2MDk0OGQ0Mjc0ZjI2NGM2
NTVkNGU3ZmMuLmU0NTM4Njk1NjA5NTQ4N2I1ZDZjMDg1OWUwZDgwMDY2YWM1YzI2MjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCkBAIC0x
MDksNyArMTA5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpE
aXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9y
bURpc3BsYXlJRCk7CiAjZW5kaWYKIAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQUk9DRVNTKQogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgPSAwOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAKaW5kZXgg
YTc3MmJmYjBkMTg3MjNlMWY5ZDg3NjcyOTAyNGUyMTc1YTAwMWQxNC4uZjcxMTgyY2NmNzJkY2Fh
NmU0N2I4ZDBlNzQ5NjE1NTAzM2NjODRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAKQEAgLTM1LDkgKzM1LDE0IEBA
CiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9NYWluRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NldHRpbmdzLmg+CiAKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQp
CisjaW5jbHVkZSAiVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuaCIKKyNlbmRpZgor
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC02Myw2
ICs2OCwxMSBAQCBEcmF3aW5nQXJlYUltcGw6OkRyYXdpbmdBcmVhSW1wbChXZWJQYWdlJiB3ZWJQ
YWdlLCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZQogICAgICwgbV9kaXNwbGF5VGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmRHJhd2luZ0FyZWFJbXBsOjpkaXNwbGF5VGltZXJGaXJl
ZCkKICAgICAsIG1fZXhpdENvbXBvc2l0aW5nVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAm
RHJhd2luZ0FyZWFJbXBsOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpCiB7CisKKyNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgd2ViUGFnZS5jb3JlUGFn
ZSgpLT5zZXR0aW5ncygpLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworI2VuZGlmCisK
ICAgICBpZiAod2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmFjY2VsZXJhdGVkRHJhd2lu
Z0VuYWJsZWQoKSB8fCB3ZWJQYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZm9yY2VDb21wb3Np
dGluZ01vZGUoKSkKICAgICAgICAgbV9hbHdheXNVc2VDb21wb3NpdGluZyA9IHRydWU7CiAKQEAg
LTIyMCw2ICsyMzAsMTYgQEAgdm9pZCBEcmF3aW5nQXJlYUltcGw6OnNldFBhaW50aW5nRW5hYmxl
ZChib29sIHBhaW50aW5nRW5hYmxlZCkKICAgICBtX2lzUGFpbnRpbmdFbmFibGVkID0gcGFpbnRp
bmdFbmFibGVkOwogfQogCit2b2lkIERyYXdpbmdBcmVhSW1wbDo6bWFpbkZyYW1lQ29udGVudFNp
emVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG5ld1NpemUpCit7CisjaWYgVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCisg
ICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2l6ZURpZENoYW5nZShuZXdTaXplKTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKG5ld1NpemUpOworI2VuZGlmCit9CisKIHZvaWQgRHJhd2luZ0FyZWFJ
bXBsOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkK
IHsKICAgICBtX3dlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zZXRGb3JjZUNvbXBvc2l0
aW5nTW9kZShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZvcmNl
Q29tcG9zaXRpbmdNb2RlS2V5KCkpKTsKQEAgLTMyMiw3ICszNDIsMTEgQEAgdm9pZCBEcmF3aW5n
QXJlYUltcGw6OnVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IHN0YXRlSUQsIGJvb2wg
cmVzcG9uZEltbWUKICAgICAgICAgbV93ZWJQYWdlLnNjcm9sbE1haW5GcmFtZUlmTm90QXRNYXhT
Y3JvbGxQb3NpdGlvbihzY3JvbGxPZmZzZXQpOwogCiAgICAgICAgIGlmIChtX2xheWVyVHJlZUhv
c3QpIHsKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgICAgICAg
ICBtX2xheWVyVHJlZUhvc3QtPnZpZXdwb3J0U2l6ZUNoYW5nZWQobV93ZWJQYWdlLnNpemUoKSk7
CisjZWxzZQogICAgICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zaXplRGlkQ2hhbmdlKG1fd2Vi
UGFnZS5zaXplKCkpOworI2VuZGlmCiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbV9kaXJ0
eVJlZ2lvbiA9IG1fd2ViUGFnZS5ib3VuZHMoKTsKICAgICB9IGVsc2UgewpAQCAtNjQzLDEwICs2
NjcsMzIgQEAgdm9pZCBEcmF3aW5nQXJlYUltcGw6OmRpc3BsYXkoVXBkYXRlSW5mbyYgdXBkYXRl
SW5mbykKICAgICBtX2Rpc3BsYXlUaW1lci5zdG9wKCk7CiB9CiAKK3ZvaWQgRHJhd2luZ0FyZWFJ
bXBsOjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqIGZyYW1l
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiB2aWV3T3ZlcmxheVJvb3RMYXllcikKK3sKKyNpZiBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgaWYgKCFmcmFtZS0+aXNNYWlu
RnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX2xheWVyVHJlZUhvc3QpCisg
ICAgICAgIHJldHVybjsKKworICAgIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KiBj
b29yZGluYXRlZExheWVyVHJlZUhvc3QgPSBzdGF0aWNfY2FzdDxUaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdCo+KG1fbGF5ZXJUcmVlSG9zdC5nZXQoKSk7CisgICAgY29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0LT5zZXRWaWV3T3ZlcmxheVJvb3RMYXllcih2aWV3T3ZlcmxheVJvb3RMYXll
cik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKHZp
ZXdPdmVybGF5Um9vdExheWVyKTsKKyNlbmRpZgorfQorCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVS
X0dMKSAmJiBQTEFURk9STShHVEspCiB2b2lkIERyYXdpbmdBcmVhSW1wbDo6c2V0TmF0aXZlU3Vy
ZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90IGhhbmRsZSkKIHsKICAgICBtX25hdGl2
ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyA9IGhhbmRsZTsKKworI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAgICBpZiAobV9sYXllclRyZWVIb3N0KQorICAgICAg
ICBtX2xheWVyVHJlZUhvc3QtPnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyho
YW5kbGUpOworI2VuZGlmCiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCmluZGV4IGEwYTY4YWEzNTA4MWUxNDkw
ZjA1ODQ1NTcxMmI1M2IzMTZmNjdjNjAuLjBmYmZhN2FhMzE3OTAxMDUzMmE3YmJmNWE2MDk0ODkz
YjBmZjU4ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RHJhd2luZ0FyZWFJbXBsLmgKQEAgLTYwLDYgKzYwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICB2aXJ0
dWFsIHZvaWQgc2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBtYWlu
RnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNl
c1N0b3JlJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJG
YWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIG92ZXJyaWRlOwpAQCAtNjcsNiArNjgsOCBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVz
aCgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaEltbWVkaWF0ZWx5KCkgb3ZlcnJpZGU7CiAKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoVmll
d092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopOworCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKSAmJiBQTEFURk9STShHVEspCiAg
ICAgdmlydHVhbCB2b2lkIHNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50
NjRfdCkgb3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcAppbmRleCA1OTNhMWNhNDVkNjM4N2EyMWY0ZTU1
M2Y0NjQ1NWI3YTQ4MmUzMGU1Li4wZjdjMjJlYzAxOTc5MTk1ZjY4NTI0ZTc3Zjc3YWRjM2UzYmQ2
NzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJU
cmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVy
VHJlZUhvc3QuY3BwCkBAIC0yNiwxMSArMjYsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJMYXllclRyZWVIb3N0LmgiCiAKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Mp
CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUykKICNpbmNsdWRlICJD
b29yZGluYXRlZExheWVyVHJlZUhvc3QuaCIKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oR1RLKSAm
JiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCisjZWxpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Nf
VEhSRUFERUQpCisjaW5jbHVkZSAiVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuaCIK
KyNlbGlmIFBMQVRGT1JNKEdUSykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogI2luY2x1ZGUg
IkxheWVyVHJlZUhvc3RHdGsuaCIKICNlbmRpZgogCkBAIC00MCw4ICs0MCwxMCBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogUGFzc1JlZlB0cjxMYXllclRyZWVIb3N0PiBMYXllclRyZWVIb3N0Ojpj
cmVhdGUoV2ViUGFnZSogd2ViUGFnZSkKIHsKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Mp
CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUykKICAgICByZXR1cm4g
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjcmVhdGUod2ViUGFnZSk7CisjZWxpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgcmV0dXJuIFRocmVhZGVkQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0OjpjcmVhdGUod2ViUGFnZSk7CiAjZWxpZiBQTEFURk9STShHVEspICYm
IFVTRShURVhUVVJFX01BUFBFUl9HTCkKICAgICByZXR1cm4gTGF5ZXJUcmVlSG9zdEd0azo6Y3Jl
YXRlKHdlYlBhZ2UpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCmluZGV4IGY5ZTE1OTFlZDBkMjM4NTIyNTY0YTI2MjAxMDRk
YzUwNWJkYTZiM2QuLjgxMGIwNWEyMzJjNWRiY2U5YjE5YmUzMTQ0NjU1OTBjMDQxYmNlZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3Qu
aApAQCAtNDMsNiArNDMsOSBAQCBjbGFzcyBJbnRSZWN0OwogY2xhc3MgSW50U2l6ZTsKIGNsYXNz
IEdyYXBoaWNzTGF5ZXI7CiBjbGFzcyBHcmFwaGljc0xheWVyRmFjdG9yeTsKKyNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCitjbGFzcyBWaWV3cG9ydEF0dHJpYnV0ZXM7Cisj
ZW5kaWYKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC03NiwxMCArNzksMTYgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NM
YXllckZhY3RvcnkoKSB7IHJldHVybiAwOyB9CiAKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUykKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZUNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpID0gMDsKICNlbmRpZgogCisjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorICAgIHZpcnR1YWwgdm9pZCBzZXROYXRp
dmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgdmlld3BvcnRTaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29y
ZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJikgPSAwOworI2VuZGlmCisKICNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1MpICYmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICB2aXJ0
dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSA9IDA7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAyNGI3ZjYzNjE5YTNkZTU5
ODBjYjNjODU4NDQ5ODllMTBmOTkxMjc1Li41Yjk4NjYwMTQ4NGQ1YzgwNTdkNWI0YTE5ZDMyMjFi
YzljYTQzNGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC0yMDgsNyArMjA4LDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtD
b3VudGVyLmg+CiAjZW5kaWYKIAotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQUk9DRVNTKQogI2luY2x1ZGUgIkNvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2VzLmgiCiAjZW5kaWYKIApAQCAtNDc0LDcgKzQ3NCw3IEBA
IFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmFkZE1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3Bh
Z2VJRCwgKnRoaXMpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhl
IG9iamVjdCBjb25zdHJ1Y3RvcnMsIGFuZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzIHNob3VsZCBi
ZSBtZXNzYWdlIHJlY2VpdmVycy4KLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUykKICAgICBXZWJQcm9jZXNzOjpz
aGFyZWQoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCwgKnRoaXMpOwogI2VuZGlmCiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikKQEAgLTU2MCw3ICs1NjAsNyBAQCBXZWJQYWdlOjp+V2ViUGFn
ZSgpCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpXZWJQYWdlOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlEKTsKIAogICAgIC8v
IEZJWE1FOiBUaGlzIHNob3VsZCBiZSBkb25lIGluIHRoZSBvYmplY3QgZGVzdHJ1Y3RvcnMsIGFu
ZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzIHNob3VsZCBiZSBtZXNzYWdlIHJlY2VpdmVycy4KLSNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
X01VTFRJUFJPQ0VTUykKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5yZW1vdmVNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBtX3BhZ2VJRCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpAQCAtMTMw
OSw3ICsxMzA5LDEyIEBAIHZvaWQgV2ViUGFnZTo6c2VuZFZpZXdwb3J0QXR0cmlidXRlc0NoYW5n
ZWQoKQogICAgIC8vIFRoaXMgYWxzbyB0YWtlcyBjYXJlIG9mIHRoZSByZWxheW91dC4KICAgICBz
ZXRGaXhlZExheW91dFNpemUocm91bmRlZEludFNpemUoYXR0ci5sYXlvdXRTaXplKSk7CiAKKyNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQUk9DRVNTKQogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGF0dHIpKTsKKyNl
bHNlCisgICAgaWYgKG1fZHJhd2luZ0FyZWEtPmxheWVyVHJlZUhvc3QoKSkKKyAgICAgICAgbV9k
cmF3aW5nQXJlYS0+bGF5ZXJUcmVlSG9zdCgpLT5kaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMo
YXR0cik7CisjZW5kaWYKIH0KICNlbmRpZgogCkBAIC0xNzk0LDcgKzE3OTksMTEgQEAgdm9pZCBX
ZWJQYWdlOjpwYWdlRGlkU2Nyb2xsKCkKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKIHZv
aWQgV2ViUGFnZTo6cGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgSW50UG9pbnQmIHBvaW50KQog
eworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxUSVBST0NFU1MpCiAgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQYWdlRGlkUmVxdWVzdFNjcm9sbChwb2ludCkpOworI2Vs
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorICAgIGRyYXdpbmdBcmVhKCkt
PnNjcm9sbChJbnRSZWN0KHBvaW50LCBJbnRTaXplKCkpLCBJbnRTaXplKCkpOworI2VuZGlmCiB9
CiAjZW5kaWYKIApAQCAtMjM2OCw3ICsyMzc3LDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRTdGFydFBh
Z2VUcmFuc2l0aW9uKCkKIAogdm9pZCBXZWJQYWdlOjpkaWRDb21wbGV0ZVBhZ2VUcmFuc2l0aW9u
KCkKIHsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1NfTVVMVElQUk9DRVNTKQogICAgIC8vIG1fbWFpbkZyYW1lIGNhbiBiZSBudWxsIHNp
bmNlIHIxNzAxNjMuCiAgICAgaWYgKG1fbWFpbkZyYW1lICYmIG1fbWFpbkZyYW1lLT5jb3JlRnJh
bWUoKS0+dmlldygpLT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSkgewogICAgICAgICAvLyBXYWl0IHVu
dGlsIHRoZSBVSSBwcm9jZXNzIHNlbnQgdXMgdGhlIHZpc2libGUgcmVjdCBpdCB3YW50cyByZW5k
ZXJlZC4KQEAgLTM1MzIsNyArMzU0MSw3IEBAIGJvb2wgV2ViUGFnZTo6d2luZG93QW5kV2ViUGFn
ZUFyZUZvY3VzZWQoKSBjb25zdAogCiB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVjb2RlcikK
IHsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1NfTVVMVElQUk9DRVNTKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUo
KSA9PSBNZXNzYWdlczo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCkpIHsKICAgICAgICAgaWYgKG1fZHJhd2luZ0FyZWEpCiAgICAgICAgICAgICBtX2RyYXdp
bmdBcmVhLT5kaWRSZWNlaXZlQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0TWVzc2FnZShjb25uZWN0
aW9uLCBkZWNvZGVyKTsKQEAgLTQwMTksNyArNDAyOCw3IEBAIGJvb2wgV2ViUGFnZTo6Y2FuSGFu
ZGxlUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAg
cmV0dXJuIHBsYXRmb3JtQ2FuSGFuZGxlUmVxdWVzdChyZXF1ZXN0KTsKIH0KIAotI2lmIFVTRShU
SUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxUSVBS
T0NFU1MpCiB2b2lkIFdlYlBhZ2U6OmNvbW1pdFBhZ2VUcmFuc2l0aW9uVmlld3BvcnQoKQogewog
ICAgIG1fZHJhd2luZ0FyZWEtPnNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4oZmFsc2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggY2E5OWYzMzVm
MTk1NzZkOTNkNjkxMTFmMjU0NGIxMGJmNzVjNzJkMi4uMTQ0ZjVkMTU2MzU5ODYwZjdhOTA4OWRk
Yjc3NzdlOGYxNDQ5Mjg3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC01ODcsNyArNTg3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGhlbWVQ
YXRoKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9S
RSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQUk9DRVNTKQogICAgIHZvaWQg
Y29tbWl0UGFnZVRyYW5zaXRpb25WaWV3cG9ydCgpOwogI2VuZGlmCiAKQEAgLTEwMjMsNyArMTAy
Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoaWRlRmluZFVJKCk7CiAgICAgdm9pZCBjb3VudFN0
cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiwgdWludDMyX3QgZmluZE9wdGlvbnMsIHVpbnQzMl90
IG1heE1hdGNoQ291bnQpOwogCi0jaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDU19NVUxUSVBST0NFU1MpCiAgICAgdm9pZCBmaW5kWm9vbWFi
bGVBcmVhRm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBhcmVhKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDBkYjE1MzBlMzU5M2ViZDUz
OTBiYzFhMzlhMDczZWJkMGUyYWZkM2IuLjZhOGE1OWJjMWMyYjIwYjljYzY4ZGQ0NjA0YTYxN2U2
ZGI2MTgxZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zMTUsNyArMzE1LDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0VGhlbWVQYXRoKFN0cmluZyB0aGVtZVBhdGgp
CiAjZW5kaWYKIAotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDU19NVUxUSVBST0NFU1MpCiAgICAgQ29tbWl0UGFnZVRyYW5zaXRpb25WaWV3
cG9ydCgpCiAjZW5kaWYKIApAQCAtMzgxLDcgKzM4MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2Ug
TGVnYWN5UmVjZWl2ZXIgewogICAgIFNldENvbXBvc2l0aW9uKFN0cmluZyBjb21wb3NpdGlvblN0
cmluZywgVmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVzLCB1
aW50NjRfdCBjdXJzb3JQb3NpdGlvbikKICAgICBDYW5jZWxDb21wb3NpdGlvbigpCiAjZW5kaWYK
LSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTX01VTFRJUFJPQ0VTUykKICAgICBGaW5kWm9vbWFibGVBcmVhRm9yUG9pbnQoV2ViQ29yZTo6
SW50UG9pbnQgcG9pbnQsIFdlYkNvcmU6OkludFNpemUgYXJlYSkKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAKaW5k
ZXggNThlYTY4ZjdkOTA3ODQxYjRjMWRiYmI0Y2I0MDUxZDE0N2ZhM2Y1Mi4uZTJiNzg1YmUzOGQz
ZjY3OGU0MGVjZDVkM2MyYzRiYzY4ZGZlMGMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcApAQCAtMzQsNiArMzQsMTAgQEAK
ICNpbmNsdWRlIDxsaWJpbnRsLmg+CiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAKKyNpZiBQ
TEFURk9STShYMTEpCisjaW5jbHVkZSA8WDExL1hsaWIuaD4KKyNlbmRpZgorCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Nyw2ICs1MSw5IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIHNsZWVwKDMwKTsKICNlbmRpZgogCisjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX1RIUkVBREVEKSAmJiBQTEFURk9STShYMTEpCisgICAgICAgIFhJbml0VGhy
ZWFkcygpOworI2VuZGlmCiAgICAgICAgIGd0a19pbml0KG51bGxwdHIsIG51bGxwdHIpOwogCiAg
ICAgICAgIGJpbmR0ZXh0ZG9tYWluKEdFVFRFWFRfUEFDS0FHRSwgUEFDS0FHRV9MT0NBTEVfRElS
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlIGIvU291cmNlL2Nt
YWtlL09wdGlvbnNFZmwuY21ha2UKaW5kZXggY2IwNDUwMGQ5M2MxMzZhM2EwN2FkOGZiOWE2Y2Y4
OTY4NzI4MjU3Mi4uMTM1MTg5MDQ3ZWY2YjJiYTIwM2U4NmE0MzE2YjE0OGQyYTIzMzQxOCAxMDA2
NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKKysrIGIvU291cmNlL2NtYWtl
L09wdGlvbnNFZmwuY21ha2UKQEAgLTExOCw3ICsxMTgsNiBAQCBXRUJLSVRfT1BUSU9OX0RFRkFV
TFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCX0FVRElPIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9USU1JTkcgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfV0VCR0wgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfWEhSX1RJTUVPVVQgT04pCi1XRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgT04pCiAKIGlmIChFTkFCTEVfTExJTlRf
Q19MT09QKQogICAgIG1lc3NhZ2UoU1RBVFVTICJGb3JjZSBlbmFibGluZyBMTElOVCBDIExPT1Au
IikKQEAgLTIwOCw2ICsyMDcsOCBAQCBpZiAoRU5BQkxFX1ZJREVPIE9SIEVOQUJMRV9XRUJfQVVE
SU8pCiBlbmRpZiAoKQogCiBhZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX0NPT1JESU5BVEVEX0dS
QVBISUNTPTEpCithZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX0NPT1JESU5BVEVEX0dSQVBISUNT
X01VTFRJUFJPQ0VTUz0xKQorYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9USUxFRF9CQUNLSU5H
X1NUT1JFPTEpCiAKIGFkZF9kZWZpbml0aW9ucygtRFdURl9VU0VfVEVYVFVSRV9NQVBQRVI9MSkK
IApkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2UvY21h
a2UvT3B0aW9uc0dUSy5jbWFrZQppbmRleCA1NGNiMDAzZDQyNjVjYWMxNjllMGZlOTcwN2MyMmE3
ZmIwNWY1NTM2Li5jMGE4YWQ1YjFkYTQ4NzEyYjY3Mjk5ZWJlNzBjY2Y0MjM4YmFkNWUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2Uv
T3B0aW9uc0dUSy5jbWFrZQpAQCAtMTcyLDcgKzE3Miw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfQVVESU8gT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfV0VCX1RJTUlORyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9YSFJfVElNRU9VVCBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9ORVRXT1JLX1BST0NFU1MgT04pCi1XRUJLSVRfT1BUSU9OX0RFRkFV
TFRfUE9SVF9WQUxVRShXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgT0ZGKQorV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1RIUkVBREVEX0NPTVBPU0lUT1IgT0ZGKQog
V0VCS0lUX09QVElPTl9FTkQoKQogCiBpZiAoTElCTk9USUZZX0ZPVU5EKQpAQCAtMzI5LDYgKzMy
OSwxMiBAQCBpZiAoT1BFTkdMX0ZPVU5EIEFORCAoR0xYX0ZPVU5EIE9SIEVHTF9GT1VORCkpCiAg
ICAgaWYgKEdMWF9GT1VORCkKICAgICAgICAgYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9HTFg9
MSkKICAgICBlbmRpZiAoKQorCisgICAgaWYgKEVOQUJMRV9USFJFQURFRF9DT01QT1NJVE9SKQor
ICAgICAgICBhZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9MSkK
KyAgICAgICAgYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9DT09SRElOQVRFRF9HUkFQSElDUz0x
KQorICAgICAgICBhZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX0NPT1JESU5BVEVEX0dSQVBISUNT
X1RIUkVBREVEPTEpCisgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKIGlmIChFTkFCTEVfR0FNRVBB
RF9ERVBSRUNBVEVEKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNt
YWtlIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCmluZGV4IGNhYzk5OTk4MjBm
NTJhNzZjMjRkZGVjYWE5MDg2NTIyYWNjNTI1NDYuLjMzZjY3Y2MxNjg5ZWU0MDA4MzM3ODZmMDE4
ZWQ3NmYxMDhlZWFjMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5j
bWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKQEAgLTE0OSw3ICsx
NDksNyBAQCBtYWNybyhXRUJLSVRfT1BUSU9OX0JFR0lOKQogICAgIFdFQktJVF9PUFRJT05fREVG
SU5FKEVOQUJMRV9YSFJfVElNRU9VVCAiVG9nZ2xlIFhIUiB0aW1lb3V0IHN1cHBvcnQiIE9GRikK
ICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfWFNMVCAiVG9nZ2xlIFhTTFQgc3VwcG9y
dCIgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX1NZU1RFTV9NQUxMT0MgIlRvZ2ds
ZSBzeXN0ZW0gYWxsb2NhdG9yIGluc3RlYWQgb2YgVENtYWxsb2MiIE9GRikKLSAgICBXRUJLSVRf
T1BUSU9OX0RFRklORShXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgIlRvZ2dsZSBUaWxlZCBC
YWNraW5nIFN0b3JlIHN1cHBvcnQiIE9GRikKKyAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFC
TEVfVEhSRUFERURfQ09NUE9TSVRPUiAiVG9nZ2xlIFRvZ2dsZSBUaHJlYWRlZCBDb21wb3NpdG9y
IHN1cHBvcnQiIE9GRikKIAogICAgIFdFQktJVF9PUFRJT05fREVQRU5EKEVOQUJMRV9FTkNSWVBU
RURfTUVESUFfVjIgRU5BQkxFX1ZJREVPKQogICAgIFdFQktJVF9PUFRJT05fREVQRU5EKEVOQUJM
RV9NRURJQV9DT05UUk9MU19TQ1JJUFQgRU5BQkxFX1ZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNl
L2NtYWtlY29uZmlnLmguY21ha2UgYi9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQppbmRleCAw
MGQ1ZjMxODhkZTQ4OTU0NWUzNTg3YjhlODRlMjdkMTYxZmU0YjRjLi40MzA5OGFhODhjM2Q4ZWJi
MmQwM2UzYTAyZGI3NTNiMjA2OGE2OTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Vjb25maWcu
aC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQpAQCAtMTM5LDcgKzEzOSw2
IEBACiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfWFNMVAogI2NtYWtlZGVmaW5lMDEgVVNFX1NZU1RF
TV9NQUxMT0MKICNjbWFrZWRlZmluZTAxIFdURl9VU0VfR0VPQ0xVRTIKLSNjbWFrZWRlZmluZTAx
IFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRQogI2NtYWtlZGVmaW5lMDEgSEFWRV9MTFZNCiAj
Y21ha2VkZWZpbmUwMSBIQVZFX0dUS19VTklYX1BSSU5USU5HCiAjY21ha2VkZWZpbmUwMSBXVEZf
Q1BVX0FSTTY0X0NPUlRFWEE1MwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGIzMTE0NzQ1ZWQ4YzAwYTk0MTY1MjhhODM5NDNlYzZjMTliOWM4OTMu
LjBhMGQ2YzE3YTFlODEzOGM0ZGIzYzg4NWJiYmVlOWFiMTgyZDYxMzAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
NC0xMi0wNiAgR3dhbmcgWW9vbiBId2FuZyAgPHlvb25AaWdhbGlhLmNvbT4KKworICAgICAgICBb
R1RLXVtUaHJlYWRlZENvbXBvc2l0b3JdIEFkZCBzdXBwb3J0IGZvciB0aHJlYWRlZCBjb21wb3Np
dG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4
MjY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgdGhlIEVOQUJMRV9USFJFQURFRF9DT01QT1NJVE9SIGZlYXR1cmUgZmxhZyB0byB0aGUgY21h
a2UgYW5kCisgICAgICAgIGF1dG90b29scyBidWlsZCBzeXN0ZW1zLiBUaGUgZmVhdHVyZSBpcyBk
aXNhYmxlZCBieSBkZWZhdWx0LgorICAgICAgICBBbmQgcmVtb3ZlIGRlcHJlY2F0ZWQgdGhlIFdU
Rl9VU0VfVElMRURfQkFDS0lOR19TVE9SRSBmZWF0dXJlIGZsYWcKKyAgICAgICAgZnJvbSB0aGUg
ZmVhdHVyZSBmbGFncy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlz
dC5wbToKKwogMjAxNS0wMS0wNSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSBzb21lIHN0YWxlIGNsYXNzIG5hbWVzIGluIGNoZWNrLWZvci1p
bmFwcHJvcHJpYXRlLW9iamMtY2xhc3MtbmFtZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0
dXJlTGlzdC5wbQppbmRleCA1MWRkOGJlMDA2MWIxMmI2YTY1MzgwNWRjMTMyOTE5MGQzYmM3Mzhl
Li4zMzFlYjhlYTU1MGI4YzliYTU4NTcyZTc2NzgzMzJiZDZlNmU5ODA1IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0xMjgsNyArMTI4LDcgQEAgbXkgKAogICAg
ICRzeXN0ZW1NYWxsb2NTdXBwb3J0LAogICAgICR0ZW1wbGF0ZUVsZW1lbnRTdXBwb3J0LAogICAg
ICR0ZXh0QXV0b3NpemluZ1N1cHBvcnQsCi0gICAgJHRpbGVkQmFja2luZ1N0b3JlU3VwcG9ydCwK
KyAgICAkdGhyZWFkZWRDb21wb3NpdG9yU3VwcG9ydCwKICAgICAkdGhyZWFkZWRIVE1MUGFyc2Vy
U3VwcG9ydCwKICAgICAkdG91Y2hFdmVudHNTdXBwb3J0LAogICAgICR0b3VjaFNsaWRlclN1cHBv
cnQsCkBAIC0zODMsNiArMzgzLDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+
ICJ0ZW1wbGF0ZS1lbGVtZW50IiwgZGVzYyA9PiAiVG9nZ2xlIEhUTUxUZW1wbGF0ZUVsZW1lbnQg
c3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9URU1QTEFURV9FTEVNRU5UIiwgZGVm
YXVsdCA9PiAxLCB2YWx1ZSA9PiBcJHRlbXBsYXRlRWxlbWVudFN1cHBvcnQgfSwKIAorICAgIHsg
b3B0aW9uID0+ICJ0aHJlYWRlZC1jb21wb3NpdG9yIiwgZGVzYyA9PiAiVG9nZ2xlIFRocmVhZGVk
IENvbXBvc2l0b3Igc3VwcG9ydCIsCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9USFJFQURFRF9D
T01QT1NJVE9SIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJHRocmVhZGVkQ29tcG9zaXRvclN1
cHBvcnQgfSwKKwogICAgIHsgb3B0aW9uID0+ICJ0ZXh0LWF1dG9zaXppbmciLCBkZXNjID0+ICJU
b2dnbGUgVGV4dCBBdXRvc2l6aW5nIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
VEVYVF9BVVRPU0laSU5HIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJHRleHRBdXRvc2l6aW5n
U3VwcG9ydCB9LAogCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggZDZh
MTQ1M2ZkYjlhZDU3NDYzNjc5YzVhNzcwYjU1OGI5ZWFkZjg4MC4uNTA3OWE0NjQwMzJlZjdmN2Rk
ODk5OWU1NDg0ZDUzODJjZTFkYWY4MSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTEyLTA2ICBHd2FuZyBZb29uIEh3YW5nICA8eW9v
bkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1RocmVhZGVkQ29tcG9zaXRvcl0gQWRkIHN1
cHBvcnQgZm9yIHRocmVhZGVkIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgyNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUgRU5BQkxFX1RIUkVBREVEX0NPTVBPU0lU
T1IgZmVhdHVyZSBmbGFnIHRvIHRoZSBjbWFrZSBhbmQKKyAgICAgICAgYXV0b3Rvb2xzIGJ1aWxk
IHN5c3RlbXMuIFRoZSBmZWF0dXJlIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuCisgICAgICAgIEFu
ZCByZW1vdmUgZGVwcmVjYXRlZCB0aGUgV1RGX1VTRV9USUxFRF9CQUNLSU5HX1NUT1JFIGZlYXR1
cmUgZmxhZworICAgICAgICBmcm9tIHRoZSBmZWF0dXJlIGZsYWdzLgorCisgICAgICAgICogU291
cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlv
bnNHVEsuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtl
OgorICAgICAgICAqIFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlOgorCiAyMDE0LTEyLTIzICBB
bGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IGJ1
aWxkaW5nIHdpdGggQVNhbgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244129</attachid>
            <date>2015-01-06 20:07:00 -0800</date>
            <delta_ts>2015-01-07 20:29:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118265-20150107130702.patch</filename>
            <type>text/plain</type>
            <size>57201</size>
            <attacher name="Gwang Yoon Hwang">yoon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3OTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDIxZmM5Yjc1ZDRiNTEz
NTY0YzNhZmJkMDJhYjA3Yzc4NjI5YzNkZS4uZmI5OTU5YjRhNzIwNDkxMjcyMDZiNjhhOGU0ZGNi
ZWEwOTFhMDUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTEyLTA2ICBHd2Fu
ZyBZb29uIEh3YW5nICA8eW9vbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1RocmVhZGVk
Q29tcG9zaXRvcl0gQWRkIHN1cHBvcnQgZm9yIHRocmVhZGVkIGNvbXBvc2l0b3IuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgyNjUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNt
YWtlOgorICAgICAgICBBZGRzIENvb2RpbmF0ZWRHcmFwaGljcyBhbmQgdGhyZWFkZWQgY29tcG9z
aXRvciByZWxhdGVkIGNsYXNzZXMgdG8KKyAgICAgICAgc3VwcG9ydCB0aHJlYWRlZCBjb21wb3Np
dG9yCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRUaWxlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmg6CisgICAgICAgIFRoaXMgY2xhc3Mgc2hvdWxkIGJl
IGd1YXJkZWQgYnkgQ09PUkRJTkFURURfR1JBUEhJQ1MgaW5zdGVhZCBvZgorICAgICAgICBUSUxF
RF9CQUNLSU5HX1NUT1JFCisKIDIwMTUtMDEtMDYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlc29sdmUgbWlycm9yaW5nIGFuZCB2YXJpYW50IGluIEZvbnQg
aW5zdGVhZCBvZiBGb250R2x5cGhzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmYzYjQ1Y2U5OGI1MzFkNWQ3YWNj
YmU0ODc0OTU4MDI4YjlmZjkyZC4uNzIzMWU0NjFiNjkzZjY2NGJmMWQ3MTQ1NzdiOGRkMGJhMzE5
NDdmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE0LTEyLTA2ICBHd2FuZyBZb29u
IEh3YW5nICA8eW9vbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1RocmVhZGVkQ29tcG9z
aXRvcl0gQWRkIHN1cHBvcnQgZm9yIHRocmVhZGVkIGNvbXBvc2l0b3IuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgyNjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMg
YSB0aHJlYWRlZCBjb21wb3NpdG9yIGZvciBXZWJLaXRHVEsrLgorICAgICAgICBJdCBpcyBkaXNh
YmxlZCBhcyBhIGRlZmF1bHQgYmVjYXVzZSBpdCBpcyBhIGluaXRpYWwgaW1wbGVtZW50YXRpb24u
CisgICAgICAgIFRoZSB0aHJlYWRlZCBjb21wb3NpdG9yIGNhbiBiZSBlbmFibGVkIHVzaW5nIC0t
dGhyZWFkZWQtY29tcG9zaXRvcgorICAgICAgICBvcHRpb24gYXQgY29tcGlsZSB0aW1lLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgdGhpcyBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZS4KKwor
ICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICBBZGRzIENvb2RpbmF0ZWRHcmFw
aGljcyBhbmQgdGhyZWFkZWQgY29tcG9zaXRvciByZWxhdGVkIGNsYXNzZXMgdG8KKyAgICAgICAg
c3VwcG9ydCB0aHJlYWRlZCBjb21wb3NpdG9yCisKKyAgICAgICAgKiBTaGFyZWQvRHJhd2luZ0Fy
ZWFJbmZvLmg6CisgICAgICAgIFVzZSBEcmF3aW5nQXJlYUltcGwgZm9yIHRocmVhZGVkIGNvbXBv
c2l0b3IKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNldHRpbmdzLmNwcDoK
KyAgICAgICAgKF9XZWJLaXRTZXR0aW5nc1ByaXZhdGU6Ol9XZWJLaXRTZXR0aW5nc1ByaXZhdGUp
OgorICAgICAgICBNb2RpZmllZCB0byB1c2UgZm9yY2VDb21wb3NpdGluZ01vZGUgd2hlbiB0aGUg
dGhyZWFkZWQgY29tcG9zaXRvciB1c2VkLgorICAgICAgICBJZiB3ZSBkb2VzIG5vdCBzZXQgdGhp
cyBtb2RlIGhlcmUsIGl0IGNhbm5vdCBkcmF3IHRoZSByb290IGNvbnRlbnQgbGF5ZXIuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdDo6cm9vdExheWVyKToKKyAgICAgICAgSW1wbGVtZW50cyBUaHJlYWRlZENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdCB0byB1c2UgdGhlIHRocmVhZGVkCisgICAgICAgIGNvbXBvc2l0b3Iu
IEl0IGlzIGJhc2ljYWxseSBzaW1pbGFyIHdpdGggQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0IGJ1
dCBpdCB1c2VzIFRocmVhZGVkQ29tcG9zaXRvciBpbnN0ZWFkIG9mIElQQy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRE
cmF3aW5nQXJlYS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjpj
cmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6RHJhd2luZ0FyZWEpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICBDT09SRElO
QVRFRF9HUkFQSElDU19NVUxUSVBST0NFU1MgaXMgaW50cm9kdWNlZCB0byBjbGFzc2lmeSBJUEMg
c3BlY2lmaWMgY29kZXMKKyAgICAgICAgZnJvbSBDb29yZGluYXRlZCBHcmFwaGljcy4KKyAgICAg
ICAgQW5kIENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEIGlzIHVzZWQgdG8gZ3VhcmQgdGhl
IHRocmVhZGVkCisgICAgICAgIGNvbXBvc2l0b3Igc3BlY2lmaWMgY29kZXMuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RHJhd2luZ0FyZWFJbXBsOjpEcmF3aW5nQXJlYUltcGwpOgorICAgICAgICBNb2RpZmllZCB0
byB1c2UgZm9yY2VDb21wb3NpdGluZ01vZGUgd2hlbiB0aGUgdGhyZWFkZWQgY29tcG9zaXRvciB1
c2VkLgorICAgICAgICBJZiB3ZSBkb2VzIG5vdCBzZXQgdGhpcyBtb2RlIGhlcmUsIGl0IHdpbGwg
Y3Jhc2ggYmVjYXVzZSBvZiBQYWdlT3ZlcmxheS4KKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0Fy
ZWFJbXBsOjptYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpE
cmF3aW5nQXJlYUltcGw6OnVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKToKKyAgICAgICAgTW9kaWZp
ZWQgdG8gaGFuZGxlIGNvbnRlbnRzIC8gdmlld3BvcnQgc2l6ZSBjaGFuZ2VzIGZvciB0aHJlYWRl
ZCBjb21wb3NpdG9yLgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYUltcGw6OmF0dGFjaFZp
ZXdPdmVybGF5R3JhcGhpY3NMYXllcik6CisgICAgICAgIEFkZGVkIHRvIHN1cHBvcnQgT3Zlcmxh
eSBsYXllciBpbiB0aGUgdGhyZWFkZWQgY29tcG9zaXRvci4KKyAgICAgICAgKFdlYktpdDo6RHJh
d2luZ0FyZWFJbXBsOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcpOgorICAg
ICAgICBQdXNoIHRoZSBzdXJmYWNlIGhhbmRsZSBmb3IgY29tcG9zaXRpbmcgdG8gdGhlIHRocmVh
ZGVkIGNvbXBvc2l0b3IuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWFJbXBsLmg6IFVzZSBDT09SRElOQVRFRF9HUkFQSUhDU19USFJFQURFRCB0byBndWFyZCB0aGUg
dGhyZWFkZWQgY29tcG9zaXRvciByZWxhdGVkIGNvZGVzLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcDogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0xheWVyVHJlZUhvc3QuaDogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbjogRGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFp
bkd0ay5jcHA6CisgICAgICAgICAgICBNb2RpZmllZCB0byBjYWxsIFhJbml0VGhyZWFkcyB0byB1
c2UgdGhyZWFkLXNhZmUgeGxpYi4KKwogMjAxNS0wMS0wNSAgTWF0dCBCYWtlciAgPG1hdHRiYWtl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogaW5zcGVjdG9yIHZpZXcgdG9w
IGluc2V0IHNob3VsZCBub3QgaW5jbHVkZSBoZWlnaHQgb2Ygd2ViIHZpZXcgYmFubmVycwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBmMmY2NGVmYWI4OWY2ZTczNDIyMWQxMTRiN2ZlNDQy
Y2U4ODhkOWRmLi5lZDk1Mjk5ODYzMzkyYzRiNjI5YzNkNjY4MjY4NWVjMzQyMjQ4NDNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMzc0LDYgKzM3NCwzMSBAQCBpZiAoRU5BQkxFX1RF
WFRVUkVfTUFQUEVSKQogICAgICkKIGVuZGlmICgpCiAKK2lmIChFTkFCTEVfVEhSRUFERURfQ09N
UE9TSVRPUikKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAg
ICAgICAgIiR7V0VCQ09SRV9ESVJ9L3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3Mi
CisgICAgICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQiCisgICAgICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
dGhyZWFkZWRjb21wb3NpdG9yIgorICAgICkKKyAgICBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMKKyAgICAgICAgcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdD
b29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCisgICAgICAgIHBhZ2Uvc2Nyb2xsaW5n
L2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nU3RhdGVOb2RlQ29vcmRpbmF0ZWRHcmFwaGlj
cy5jcHAKKyAgICAgICAgcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGVDb29yZGluYXRlZEdyYXBoaWNzLmNwcAorICAgICAgICBwYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwCisgICAgICAgIHBhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAKKyAgICAgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZU5vZGUuY3BwCisgICAgICAgIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9y
ZS5jcHAKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0FyZWFB
bGxvY2F0b3IuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorICAgICAgICBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmcuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZFN1cmZhY2UuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZFRpbGUuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9VcGRhdGVBdGxhcy5jcHAKKyAgICApCitlbmRpZiAoKQorCiBpZiAo
V1RGX1VTRV9FR0wpCiAgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKICAgICAgICAg
JHtFR0xfTElCUkFSWX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFRpbGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5j
cHAKaW5kZXggYjI0ZjQ4ZDIzNjE5MTc5MTAzY2NmYjQ3ZGU2YzBlZmJjZDQxZGY4Yy4uZGQzMmMy
MzQ5MTk3MzI0MzZjOTJiNGQ3OTMwNmNmYmZmZTA2ZDM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGls
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJDb29yZGluYXRlZFRpbGUuaCIKIAotI2lmIFVTRShUSUxFRF9C
QUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKIAogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCkBAIC0xNDEsNCAr
MTQxLDQgQEAgdm9pZCBDb29yZGluYXRlZFRpbGVCYWNrZW5kOjpwYWludENoZWNrZXJQYXR0ZXJu
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmUKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCi0jZW5kaWYgLy8gVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjZW5kaWYgLy8gVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGls
ZS5oCmluZGV4IGQ4NDVjZTVkZjU4MzE1YWNiMzJkYjBiNWIwMTVmZjY2MmIxODA5NTIuLmI3OTcw
OWYzYmE2NGNlNWMwNjA3MzRkMmY1ZWE2MWUxMTUwNDIxMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFRp
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgQ29vcmRp
bmF0ZWRUaWxlX2gKICNkZWZpbmUgQ29vcmRpbmF0ZWRUaWxlX2gKIAotI2lmIFVTRShUSUxFRF9C
QUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKIAogI2luY2x1ZGUg
IkNvb3JkaW5hdGVkU3VyZmFjZS5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKQEAgLTkxLDYgKzkx
LDYgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
KQogCiAjZW5kaWYgLy8gQ29vcmRpbmF0ZWRUaWxlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UK
aW5kZXggYjg2MjA1YzYwMzU1YzRhYzMxMTUzZDZhMDMxZjk2MTMxZDNiMWM3Mi4uYmFiZTI3ZDdl
OTQ3OTYxM2M3NTkwOTNjNWIyMGMwYjU0MTcyNTIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21h
a2UKQEAgLTMxMSw3ICszMTEsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAg
IFdlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3Bw
CiAKLSAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwCiAgICAg
V2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9QcmludGVyTGlzdEd0ay5jcHAKICAgICBXZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL1dlYkluc3BlY3RvclVJR3RrLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvV2ViUGFnZUd0ay5jcHAKQEAgLTc0Miw2ICs3NDEsMjcgQEAgbGlzdChBUFBFTkQgUGx1
Z2luUHJvY2Vzc19TT1VSQ0VTCiAgICAgUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L3VuaXgvUGx1
Z2luUHJvY2Vzc01haW4uY3BwCiApCiAKK2lmIChFTkFCTEVfVEhSRUFERURfQ09NUE9TSVRPUikK
KyAgICBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKKyAgICAgICAgU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCisgICAgICAgIFNoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKyAgICAgICAg
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvU2ltcGxlVmlld3BvcnRDb250cm9sbGVyLmNwcAor
ICAgICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhy
ZWFkZWRDb21wb3NpdG9yLmNwcAorICAgICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZS5jcHAKKyAgICAg
ICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGlu
YXRlZExheWVyVHJlZUhvc3QuY3BwCisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYktpdDJfSU5D
TFVERV9ESVJFQ1RPUklFUworICAgICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkIgorICAgICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MiCisgICAgICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IiCisgICAgICAgICIke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcyIKKyAgICApCitlbHNlIChF
TkFCTEVfVEhSRUFERURfQ09NUE9TSVRPUikKKyAgICBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJD
RVMKKyAgICAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcAor
ICAgICkKK2VuZGlmICgpCisKICMgQ29tbWFuZHMgZm9yIGJ1aWxkaW5nIHRoZSBidWlsdC1pbiBp
bmplY3RlZCBidW5kbGUuCiBpbmNsdWRlX2RpcmVjdG9yaWVzKAogICAgICIke1dFQktJVDJfRElS
fS9QbGF0Zm9ybSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJl
YUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaAppbmRleCA4
Njg3N2FhNmNkZTRkNGFkZTQyMmI0MGVhZmI0NjYzZGMyNWFhMGZhLi4xYjZkYTUyZTRkNGJiMjU3
Y2E1MWYzZDU4NDcyM2E5NTkyMTlhYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRHJhd2luZ0FyZWFJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdB
cmVhSW5mby5oCkBAIC0zNSw3ICszNSw3IEBAIGVudW0gRHJhd2luZ0FyZWFUeXBlIHsKICNlbmRp
ZgogICAgIERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZSwKICNlbHNlCi0jaWYgVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxUSVBS
T0NFU1MpCiAgICAgRHJhd2luZ0FyZWFUeXBlQ29vcmRpbmF0ZWQKICNlbHNlCiAgICAgRHJhd2lu
Z0FyZWFUeXBlSW1wbCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFNldHRpbmdzLmNwcAppbmRleCBkOTY5YzViOGQ4NTYwNjk3ZmUyMTVlM2RjNDYzYTQy
YzBjNDIyOTJiLi43NmYzYjczNWQ3ZmNhYzA4OWMxMTFkMWE3OGQ3MWE5ZTMxZTFmYTcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGluZ3Mu
Y3BwCkBAIC01NCw2ICs1NCwxMCBAQCBzdHJ1Y3QgX1dlYktpdFNldHRpbmdzUHJpdmF0ZSB7CiAg
ICAgICAgIGZhbnRhc3lGb250RmFtaWx5ID0gcHJlZmVyZW5jZXMtPmZhbnRhc3lGb250RmFtaWx5
KCkudXRmOCgpOwogICAgICAgICBwaWN0b2dyYXBoRm9udEZhbWlseSA9IHByZWZlcmVuY2VzLT5w
aWN0b2dyYXBoRm9udEZhbWlseSgpLnV0ZjgoKTsKICAgICAgICAgZGVmYXVsdENoYXJzZXQgPSBw
cmVmZXJlbmNlcy0+ZGVmYXVsdFRleHRFbmNvZGluZ05hbWUoKS51dGY4KCk7CisKKyNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgICAgIHByZWZlcmVuY2VzLT5zZXRG
b3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKKyNlbmRpZgogICAgIH0KIAogICAgIFJlZlB0cjxX
ZWJQcmVmZXJlbmNlcz4gcHJlZmVyZW5jZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaAppbmRleCBkNjlmYTE3YjE4NGY2ZGRmYTJhZGZkZDg5
NmI3YTNiYWZiZjQzMjNjLi4wNDY1YjY5ZmY5NDUxYWI4MWE5ZGY1NTI4NDk5NDY5ZmMxN2JhNjg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5
LmgKQEAgLTIxLDcgKzIxLDcgQEAKICNpZm5kZWYgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJv
eHlfaAogI2RlZmluZSBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eV9oCiAKLSNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJ
UFJPQ0VTUykKIAogI2luY2x1ZGUgIkNvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5o
IgogI2luY2x1ZGUgIkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oIgpAQCAtNjksNiArNjksNiBA
QCBwcm90ZWN0ZWQ6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTKQorI2VuZGlmIC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19N
VUxUSVBST0NFU1MpCiAKICNlbmRpZiAvLyBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA2N2NiMjdlMzQ4YTBkNjg2
NzFjOGIxMzBmMTUwN2MyY2Y3ODJmZTdhLi5iZDE4MjdiNjc0MTdhNjljNTQwYzhhYjdlM2ZmZGMy
NjNhOTNiNmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTEzOCwx
MiArMTM4LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRMb2FkRm9y
TWFpbkZyYW1lKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgdXNlQ3VzdG9tQ29udGVudFBy
b3ZpZGVyKSA9IDA7CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1NfTVVMVElQUk9DRVNTKQogICAgIHZpcnR1YWwgdm9pZCBwYWdlRGlk
UmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVuZGVyRnJhbWUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY29udGVudHNTaXpl
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb3ZlcmVkUmVjdCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBwYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkoKSA9IDA7Ci0jZW5kaWYKLSNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmRab29tYWJsZUFy
ZWEoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgPSAw
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggMDI4MmU5NDI0OTRkNTY1ZTRhODU3NDQ3MWM4NmUxMDIxYjEyYmEwNi4uNDA1MzUwYjNiNGIw
YmQyOGQ5ZDE2ZGZhNWNhODljNzhmZTQxZmYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQAogI2luY2x1ZGUgIlJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKICNlbmRpZgogCi0jaWYgVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxUSVBST0NFU1MpCiAj
aW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHlNZXNzYWdlcy5oIgogI2VuZGlm
CiAKQEAgLTEzNzIsNyArMTM3Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMYXll
clRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKQogfQogI2VuZGlmCiAKLSNp
ZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Nf
TVVMVElQUk9DRVNTKQogdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFBhZ2VUcmFuc2l0aW9uVmll
d3BvcnQoKQogewogICAgIGlmICghaXNWYWxpZCgpKQpAQCAtMzI4MCw3ICszMjgwLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIHVpbnQ2NF90IGYKICAgICBzaG91bGRDbG9zZSA9IG1fdWlDbGllbnQtPnJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbCh0aGlzLCBtZXNzYWdlLCBmcmFtZSk7CiB9CiAKLSNpZiBV
U0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVM
VElQUk9DRVNTKQogdm9pZCBXZWJQYWdlUHJveHk6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0
IEludFBvaW50JiBwb2ludCkKIHsKICAgICBtX3BhZ2VDbGllbnQucGFnZURpZFJlcXVlc3RTY3Jv
bGwocG9pbnQpOwpAQCAtMzM5Niw3ICszMzk2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRs
ZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5KiBkb3dubG9hZCkKICAgICBtX3BhZ2VDbGll
bnQuaGFuZGxlRG93bmxvYWRSZXF1ZXN0KGRvd25sb2FkKTsKIH0KIAotI2lmIFBMQVRGT1JNKEVG
TCkKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQUk9DRVNTKQogdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZENoYW5nZUNvbnRlbnRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAg
ICAgbV9wYWdlQ2xpZW50LmRpZENoYW5nZUNvbnRlbnRTaXplKHNpemUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGVkZTMzMjI0Mjc2ZjA0OWI1ZjVkMTgwYmI3
NzkxNTcwZWQwZWIzYWUuLmYzOWU2OGEzYjdhMzViOWM4NTZkNzQ2MzhhNzdhYzM0MDFiM2FkYzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQ3NSw3ICs0NzUs
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZENvbW1pdExheWVyVHJlZShjb25zdCBXZWJLaXQ6
OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJik7CiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19T
VE9SRSkgCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUykKICAgICB2
b2lkIGRpZFJlbmRlckZyYW1lKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY292ZXJlZFJlY3QpOwogI2VuZGlmCiAjaWYgUExBVEZP
Uk0oRUZMKQpAQCAtNTQ3LDcgKzU0Nyw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShHVEspCiAg
ICAgUGxhdGZvcm1XaWRnZXQgdmlld1dpZGdldCgpOwogI2VuZGlmCi0jaWYgVVNFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUykK
ICAgICB2b2lkIGNvbW1pdFBhZ2VUcmFuc2l0aW9uVmlld3BvcnQoKTsKICNlbmRpZgogCkBAIC0x
MTA3LDE0ICsxMTA3LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMo
Y29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgbm90aWZpY2F0aW9uSURzKTsKICAgICB2b2lkIGRpZERl
c3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwogCi0jaWYgVVNFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJUFJP
Q0VTUykKICAgICB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50Jik7CiAgICAgdm9pZCBwYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkoKTsKLSNlbmRpZgot
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICB2b2lkIGRpZEZpbmRab29tYWJsZUFy
ZWEoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0j
ZW5kaWYKLSNpZiBQTEFURk9STShFRkwpCiAgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6ZShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMzhhNTI0ZWM2ODc1NTMz
MjAyNzQzMmQxZDg5NmM1ZWUxNDg1N2U1ZS4uYmY5ZGRhZTZhZTBiYjY5ZmI3NWM5OTJkNTNlODMx
M2Y3MjA0Nzk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC05NSwxNSArOTUsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICAgICBIYW5kbGVJbnB1dE1ldGhvZEtleWRvd24oKSAtPiAoYm9vbCBoYW5kbGVkKQog
I2VuZGlmCiAKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1NfTVVMVElQUk9DRVNTKQogICAgIFBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKFdlYkNv
cmU6OkludFBvaW50IHBvaW50KQogICAgIFBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpCi0j
ZW5kaWYKLSNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgRGlkRmluZFpvb21hYmxl
QXJlYShXZWJDb3JlOjpJbnRQb2ludCB0YXJnZXQsIFdlYkNvcmU6OkludFJlY3QgYXJlYSkKLSNl
bmRpZgotCi0jaWYgUExBVEZPUk0oRUZMKQogICAgIERpZENoYW5nZUNvbnRlbnRTaXplKFdlYkNv
cmU6OkludFNpemUgbmV3U2l6ZSkKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5k
ZXggNGQ1NGJhYzA2ZGRmODBjMWUxNTdkOWUzYzU1ZjQ1MTdlY2FkYzkxYS4uZTM5ZGM0YTFlNzAy
OWYwNzNiYjhhMGVhNTRjZWEyZTgwZjBiNjc3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApA
QCAtNTIwLDcgKzUyMCw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFu
Z2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uCiAjaWYgVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTKQogICAgIGlmIChtX3BhZ2UtPnVzZUZpeGVkTGF5b3V0KCkpCiAgICAg
ICAgIG1fcGFnZS0+ZHJhd2luZ0FyZWEoKS0+bGF5ZXJUcmVlSG9zdCgpLT5zaXplRGlkQ2hhbmdl
KHNpemUpOworI2VuZGlmCiAKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQUk9D
RVNTKQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VD
b250ZW50U2l6ZShzaXplKSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5n
QXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmNwcAppbmRleCA3ZjNlMWVjZjNiNTk4ZmNk
ZWM2YWE5MWFiYjRlZjY1MjA3YmU2ODJiLi44YjkyZjM5ZDk4NTQ3OTJjNzViYzlhN2U3YWE3ZmNh
ZGI5NjRhMzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZERyYXdpbmdBcmVhLmNwcApAQCAtNjAwLDExICs2MDAsMTMgQEAgdm9pZCBDb29yZGluYXRl
ZERyYXdpbmdBcmVhOjpkaXNwbGF5KFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiAgICAgbV9kaXNw
bGF5VGltZXIuc3RvcCgpOwogfQogCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJ
UFJPQ0VTUykKIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJlYTo6ZGlkUmVjZWl2ZUNvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCiAg
ICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+ZGlkUmVjZWl2ZUNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiB9CisjZW5kaWYKIAogdm9pZCBDb29yZGlu
YXRlZERyYXdpbmdBcmVhOjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6
RnJhbWUqIGZyYW1lLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiB2aWV3T3ZlcmxheVJvb3RMYXll
cikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2lu
Z0FyZWEuaAppbmRleCBjYzYzOTU3MjQ2ZmFkMDQ1M2EwMmY4MTU1NzQzNTY3MTg1YTc2NGU1Li4x
NGQyYjU2ZDUyNDU0N2I3YWUyN2U3MWM5MjA0NDRmNzY0YzJkYTlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZERyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5oCkBAIC02NCw3ICs2
NCw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXll
ckZsdXNoKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdM
YXllckZsdXNoSW1tZWRpYXRlbHkoKSBvdmVycmlkZTsKIAorI2lmIFVTRShDT09SRElOQVRFRF9H
UkFQSElDU19NVUxUSVBST0NFU1MpCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDb29yZGlu
YXRlZExheWVyVHJlZUhvc3RNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURl
Y29kZXImKTsKKyNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3Jh
cGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVy
cmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhy
ZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0NDE5ZjE0OTg5
OTM3MTNmNDRlYzI5Y2E0OWJmODhmYmZjZjRjNGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTAsMCArMSwzMDAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KS4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCwgSW5jLgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oIgorCisjaWYgVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFJbXBs
LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJUaHJlYWRTYWZlQ29v
cmRpbmF0ZWRTdXJmYWNlLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Db29yZGlu
YXRlZEdyYXBoaWNzU3RhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxUaHJlYWRlZENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdD4gVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNy
ZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGhyZWFk
ZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Qod2ViUGFnZSkpOworfQorCitUaHJlYWRlZENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdDo6flRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KCkK
K3sKK30KKworVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OlRocmVhZGVkQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0KFdlYlBhZ2UqIHdlYlBhZ2UpCisgICAgOiBMYXllclRyZWVIb3N0
KHdlYlBhZ2UpCisgICAgLCBtX2ZvcmNlUmVwYWludEFzeW5jQ2FsbGJhY2tJRCgwKQorICAgICwg
bV9jb250ZW50TGF5ZXIobnVsbHB0cikKKyAgICAsIG1fdmlld092ZXJsYXlSb290TGF5ZXIobnVs
bHB0cikKKyAgICAsIG1fbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoKGZhbHNlKQorICAg
ICwgbV9pc1N1c3BlbmRlZChmYWxzZSkKKyAgICAsIG1faXNXYWl0aW5nRm9yUmVuZGVyZXIoZmFs
c2UpCisgICAgLCBtX2xheWVyRmx1c2hUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZUaHJl
YWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6cGVyZm9ybVNjaGVkdWxlZExheWVyRmx1c2gp
CisgICAgLCBtX2xheWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxlZCh0cnVlKQoreworICAgIG1fY29v
cmRpbmF0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbXBvc2l0aW5nQ29vcmRpbmF0b3I+KG1fd2Vi
UGFnZS0+Y29yZVBhZ2UoKSwgdGhpcyk7CisKKyAgICBtX2Nvb3JkaW5hdG9yLT5jcmVhdGVSb290
TGF5ZXIobV93ZWJQYWdlLT5zaXplKCkpOworCisgICAgQ29vcmRpbmF0ZWRTdXJmYWNlOjpzZXRG
YWN0b3J5KGNyZWF0ZUNvb3JkaW5hdGVkU3VyZmFjZSk7CisKKyAgICBtX2NvbXBvc2l0b3IgPSBU
aHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZSh0aGlzKTsKKyAgICBzY2hlZHVsZUxheWVyRmx1c2go
KTsKK30KKworUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+IFRocmVhZGVkQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0OjpjcmVhdGVDb29yZGluYXRlZFN1cmZhY2UoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgQ29vcmRpbmF0ZWRTdXJmYWNlOjpGbGFncyBmbGFncykKK3sKKyAgICByZXR1cm4gVGhy
ZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZTo6Y3JlYXRlKHNpemUsIGZsYWdzKTsKK30KKwordm9p
ZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2NoZWR1bGVMYXllckZsdXNoKCkK
K3sKKyAgICBpZiAoIW1fbGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoIW1fbGF5ZXJGbHVzaFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1f
bGF5ZXJGbHVzaFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0TGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkKGJvb2wg
bGF5ZXJGbHVzaGluZ0VuYWJsZWQpCit7CisgICAgaWYgKG1fbGF5ZXJGbHVzaFNjaGVkdWxpbmdF
bmFibGVkID09IGxheWVyRmx1c2hpbmdFbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X2xheWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxlZCA9IGxheWVyRmx1c2hpbmdFbmFibGVkOworCisg
ICAgaWYgKG1fbGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkKSB7CisgICAgICAgIHNjaGVkdWxl
TGF5ZXJGbHVzaCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY2FuY2VsUGVuZGlu
Z0xheWVyRmx1c2goKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dDo6c2V0U2hvdWxkTm90aWZ5QWZ0ZXJOZXh0U2NoZWR1bGVkTGF5ZXJGbHVzaChib29sIG5vdGlm
eUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVzaCkKK3sKKyAgICBtX25vdGlmeUFmdGVyU2NoZWR1bGVk
TGF5ZXJGbHVzaCA9IG5vdGlmeUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVzaDsKK30KKwordm9pZCBU
aHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIo
V2ViQ29yZTo6R3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBtX2NvbnRlbnRM
YXllciA9IGdyYXBoaWNzTGF5ZXI7CisgICAgdXBkYXRlUm9vdExheWVycygpOworfQorCit2b2lk
IFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjppbnZhbGlkYXRlKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0OjpzY3JvbGxOb25Db21wb3NpdGVkQ29udGVudHMoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
cmVjdCkKK3sKKyAgICBtX2NvbXBvc2l0b3ItPnNjcm9sbFRvKHJlY3QubG9jYXRpb24oKSk7Cisg
ICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3Q6OmZvcmNlUmVwYWludCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
KworYm9vbCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Zm9yY2VSZXBhaW50QXN5
bmModWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICAvLyBXZSBleHBlY3QgdGhlIFVJIHByb2Nl
c3MgdG8gbm90IHJlcXVpcmUgYSBuZXcgcmVwYWludCB1bnRpbCB0aGUgcHJldmlvdXMgb25lIGhh
cyBmaW5pc2hlZC4KKyAgICBBU1NFUlQoIW1fZm9yY2VSZXBhaW50QXN5bmNDYWxsYmFja0lEKTsK
KyAgICBtX2ZvcmNlUmVwYWludEFzeW5jQ2FsbGJhY2tJRCA9IGNhbGxiYWNrSUQ7CisgICAgc2No
ZWR1bGVMYXllckZsdXNoKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgVGhyZWFkZWRD
b29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNpemVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgbmV3U2l6ZSkKK3sKKyAgICBtX2Nvb3JkaW5hdG9yLT5zaXplRGlkQ2hhbmdlKG5ld1Np
emUpOworICAgIG1fY29tcG9zaXRvci0+ZGlkQ2hhbmdlQ29udGVudHNTaXplKG5ld1NpemUpOwor
fQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpkZXZpY2VPclBhZ2VT
Y2FsZUZhY3RvckNoYW5nZWQoKQoreworICAgIG1fY29vcmRpbmF0b3ItPmRldmljZU9yUGFnZVNj
YWxlRmFjdG9yQ2hhbmdlZCgpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0OjpwYXVzZVJlbmRlcmluZygpCit7CisgICAgbV9pc1N1c3BlbmRlZCA9IHRydWU7Cit9
CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnJlc3VtZVJlbmRlcmlu
ZygpCit7CisgICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOworICAgIHNjaGVkdWxlTGF5ZXJGbHVz
aCgpOworfQorCitHcmFwaGljc0xheWVyRmFjdG9yeSogVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6OmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkKK3sKKyAgICByZXR1cm4gbV9jb29yZGlu
YXRvci5nZXQoKTsKK30KKwordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6
dmlld3BvcnRTaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAg
IG1fY29tcG9zaXRvci0+ZGlkQ2hhbmdlVmlld3BvcnRTaXplKHNpemUpOworfQorCit2b2lkIFRo
cmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRp
ZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiBhdHRyKQoreworICAgIG1fY29t
cG9zaXRvci0+ZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1dGUoYXR0cik7Cit9CisKK3ZvaWQgVGhy
ZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNvbXBvc2l0b3JEaWRGbHVzaExheWVycygp
Cit7CisgICAgc3RhdGljX2Nhc3Q8RHJhd2luZ0FyZWFJbXBsKj4obV93ZWJQYWdlLT5kcmF3aW5n
QXJlYSgpKS0+bGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMoKTsKK30KKwordm9pZCBUaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6ZGlkU2NhbGVGYWN0b3JDaGFuZ2VkKGZsb2F0IHNjYWxl
LCBjb25zdCBJbnRQb2ludCYgb3JpZ2luKQoreworICAgIG1fd2ViUGFnZS0+c2NhbGVQYWdlKHNj
YWxlLCBvcmlnaW4pOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
Ojp1cGRhdGVSb290TGF5ZXJzKCkKK3sKKyAgICBpZiAoIW1fY29udGVudExheWVyICYmICFtX3Zp
ZXdPdmVybGF5Um9vdExheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Nvb3JkaW5hdG9y
LT5zZXRSb290Q29tcG9zaXRpbmdMYXllcihtX2NvbnRlbnRMYXllciwgbV92aWV3T3ZlcmxheVJv
b3RMYXllcik7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNl
dFZpZXdPdmVybGF5Um9vdExheWVyKEdyYXBoaWNzTGF5ZXIqIHZpZXdPdmVybGF5Um9vdExheWVy
KQoreworICAgIG1fdmlld092ZXJsYXlSb290TGF5ZXIgPSB2aWV3T3ZlcmxheVJvb3RMYXllcjsK
KyAgICB1cGRhdGVSb290TGF5ZXJzKCk7Cit9CisKKyNpZiBQTEFURk9STShHVEspCit2b2lkIFRo
cmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9y
Q29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQoreworICAgIG1fbGF5ZXJUcmVlQ29udGV4dC5j
b250ZXh0SUQgPSBoYW5kbGU7CisgICAgbV9jb21wb3NpdG9yLT5zZXROYXRpdmVTdXJmYWNlSGFu
ZGxlRm9yQ29tcG9zaXRpbmcoaGFuZGxlKTsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKFJFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FKQordm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dDo6c2NoZWR1bGVBbmltYXRpb24oKQoreworICAgIGlmIChtX2lzV2FpdGluZ0ZvclJlbmRlcmVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9sYXllckZsdXNoVGltZXIuaXNBY3RpdmUo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sYXllckZsdXNoVGltZXIuc3RhcnRPbmVTaG90
KG1fY29vcmRpbmF0b3ItPm5leHRBbmltYXRpb25TZXJ2aWNlVGltZSgpKTsKKyAgICBzY2hlZHVs
ZUxheWVyRmx1c2goKTsKK30KKyNlbmRpZgorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0OjpzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwg
Y29uc3QgRmxvYXRQb2ludCYgdHJhamVjdG9yeVZlY3RvciwgZmxvYXQgc2NhbGUpCit7CisgICAg
bV9jb29yZGluYXRvci0+c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChyZWN0LCB0cmFqZWN0b3J5VmVj
dG9yKTsKKyAgICBpZiAobV9sYXN0U2Nyb2xsUG9zaXRpb24gIT0gcm91bmRlZEludFBvaW50KHJl
Y3QubG9jYXRpb24oKSkpIHsKKyAgICAgICAgbV9sYXN0U2Nyb2xsUG9zaXRpb24gPSByb3VuZGVk
SW50UG9pbnQocmVjdC5sb2NhdGlvbigpKTsKKworICAgICAgICBpZiAoIW1fd2ViUGFnZS0+Y29y
ZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT51c2VGaXhlZExheW91dCgpKQorICAgICAgICAg
ICAgbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPm5vdGlmeVNjcm9s
bFBvc2l0aW9uQ2hhbmdlZChtX2xhc3RTY3JvbGxQb3NpdGlvbik7CisgICAgfQorCisgICAgaWYg
KG1fbGFzdFNjYWxlRmFjdG9yICE9IHNjYWxlKSB7CisgICAgICAgIG1fbGFzdFNjYWxlRmFjdG9y
ID0gc2NhbGU7CisgICAgICAgIGRpZFNjYWxlRmFjdG9yQ2hhbmdlZChtX2xhc3RTY2FsZUZhY3Rv
ciwgbV9sYXN0U2Nyb2xsUG9zaXRpb24pOworICAgIH0KKworICAgIHNjaGVkdWxlTGF5ZXJGbHVz
aCgpOworfQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjYW5jZWxQ
ZW5kaW5nTGF5ZXJGbHVzaCgpCit7CisgICAgbV9sYXllckZsdXNoVGltZXIuc3RvcCgpOworfQor
Cit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpwZXJmb3JtU2NoZWR1bGVk
TGF5ZXJGbHVzaCgpCit7CisgICAgaWYgKG1faXNTdXNwZW5kZWQgfHwgbV9pc1dhaXRpbmdGb3JS
ZW5kZXJlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb29yZGluYXRvci0+c3luY0Rpc3Bs
YXlTdGF0ZSgpOworICAgIGJvb2wgZGlkU3luYyA9IG1fY29vcmRpbmF0b3ItPmZsdXNoUGVuZGlu
Z0xheWVyQ2hhbmdlcygpOworCisgICAgaWYgKG1fbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZs
dXNoICYmIGRpZFN5bmMpIHsKKyAgICAgICAgY29tcG9zaXRvckRpZEZsdXNoTGF5ZXJzKCk7Cisg
ICAgICAgIG1fbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoID0gZmFsc2U7CisgICAgfQor
fQorCit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpwdXJnZUJhY2tpbmdT
dG9yZXMoKQoreworICAgIG1fY29vcmRpbmF0b3ItPnB1cmdlQmFja2luZ1N0b3JlcygpOworfQor
Cit2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpyZW5kZXJOZXh0RnJhbWUo
KQoreworICAgIG1faXNXYWl0aW5nRm9yUmVuZGVyZXIgPSBmYWxzZTsKKyAgICBtX2Nvb3JkaW5h
dG9yLT5yZW5kZXJOZXh0RnJhbWUoKTsKKyAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwor
dm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Y29tbWl0U2Nyb2xsT2Zmc2V0
KHVpbnQzMl90IGxheWVySUQsIGNvbnN0IEludFNpemUmIG9mZnNldCkKK3sKKyAgICBtX2Nvb3Jk
aW5hdG9yLT5jb21taXRTY3JvbGxPZmZzZXQobGF5ZXJJRCwgb2Zmc2V0KTsKK30KKwordm9pZCBU
aHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6bm90aWZ5Rmx1c2hSZXF1aXJlZCgpCit7
CisgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Cit9CisKK3ZvaWQgVGhyZWFkZWRDb29yZGluYXRl
ZExheWVyVHJlZUhvc3Q6OmNvbW1pdFNjZW5lU3RhdGUoY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGlj
c1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBtX2lzV2FpdGluZ0ZvclJlbmRlcmVyID0gdHJ1ZTsKKyAg
ICBtX2NvbXBvc2l0b3ItPnVwZGF0ZVNjZW5lU3RhdGUoc3RhdGUpOworfQorCit2b2lkIFRocmVh
ZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpwYWludExheWVyQ29udGVudHMoY29uc3QgR3Jh
cGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmKQoreworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2MjU4OTM4ODAxYmQ0MjljNzIz
ZWJkZTA1M2RhYzJhNmFiMzdjZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdC5oCkBAIC0wLDAgKzEsMTU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29w
eXJpZ2h0IChDKSAyMDEzIENvbXBhbnkgMTAwLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdF9oCisjZGVmaW5lIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0X2gKKwor
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKworI2luY2x1ZGUgIkxheWVy
VHJlZUNvbnRleHQuaCIKKyNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCisjaW5jbHVkZSAiVGhy
ZWFkZWRDb21wb3NpdG9yLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Db21wb3NpdGluZ0Nvb3JkaW5h
dG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9GbG9hdFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9JbnRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlT3ZlcmxheS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KKyNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKyNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllclN0YXRlOworY2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlOwor
Y2xhc3MgQ29vcmRpbmF0ZWRTdXJmYWNlOworY2xhc3MgR3JhcGhpY3NDb250ZXh0OworY2xhc3Mg
R3JhcGhpY3NMYXllcjsKK2NsYXNzIEdyYXBoaWNzTGF5ZXJGYWN0b3J5OworY2xhc3MgR3JhcGhp
Y3NMYXllckZhY3Rvcnk7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdl
OworCitjbGFzcyBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCA6IHB1YmxpYyBMYXll
clRyZWVIb3N0LCBwdWJsaWMgV2ViQ29yZTo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6Q2xpZW50
LCBwdWJsaWMgVGhyZWFkZWRDb21wb3NpdG9yOjpDbGllbnQgeworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VGhyZWFkZWRDb29yZGlu
YXRlZExheWVyVHJlZUhvc3Q+IGNyZWF0ZShXZWJQYWdlKik7CisgICAgdmlydHVhbCB+VGhyZWFk
ZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QoKTsKKworICAgIHZpcnR1YWwgY29uc3QgTGF5ZXJU
cmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fbGF5ZXJU
cmVlQ29udGV4dDsgfTsKKworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUxheWVyRmx1c2goKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVk
KGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGROb3RpZnlBZnRlck5l
eHRTY2hlZHVsZWRMYXllckZsdXNoKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwg
dm9pZCBzZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheSgpIG92ZXJyaWRlIHsgfTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXlJblJl
Y3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlIHsgfTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsTm9uQ29tcG9zaXRlZENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNj
cm9sbFJlY3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBmb3JjZVJlcGFpbnQoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0X3QgLypjYWxs
YmFja0lEKi8pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzaXplRGlkQ2hhbmdlKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIG5ld1NpemUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBk
ZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwg
dm9pZCBwYXVzZVJlbmRlcmluZygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXN1bWVS
ZW5kZXJpbmcoKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHBhZ2VCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5Q2hhbmdlZCgpIG92ZXJyaWRlIHsgfTsKKwor
ICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0
aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpIG92ZXJyaWRlOworCisjaWYg
UExBVEZPUk0oR1RLKQorICAgIHZpcnR1YWwgdm9pZCBzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9y
Q29tcG9zaXRpbmcodWludDY0X3QpIG92ZXJyaWRlOworI2VuZGlmCisKKyNpZiBFTkFCTEUoUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpCisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9u
KCkgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZvaWQgc2V0Vmlld092ZXJsYXlSb290TGF5ZXIo
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvcmU6
OkNvb3JkaW5hdGVkU3VyZmFjZT4gY3JlYXRlQ29vcmRpbmF0ZWRTdXJmYWNlKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmLCBXZWJDb3JlOjpDb29yZGluYXRlZFN1cmZhY2U6OkZsYWdzKTsKKworcHJv
dGVjdGVkOgorICAgIGV4cGxpY2l0IFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KFdl
YlBhZ2UqKTsKKworcHJpdmF0ZToKKworICAgIHZvaWQgY29tcG9zaXRvckRpZEZsdXNoTGF5ZXJz
KCk7CisgICAgdm9pZCBkaWRTY2FsZUZhY3RvckNoYW5nZWQoZmxvYXQgc2NhbGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBvcmlnaW4pOworCisgICAgdm9pZCB1cGRhdGVSb290TGF5ZXJzKCk7
CisKKyAgICB2b2lkIGNhbmNlbFBlbmRpbmdMYXllckZsdXNoKCk7CisgICAgdm9pZCBwZXJmb3Jt
U2NoZWR1bGVkTGF5ZXJGbHVzaCgpOworCisgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogcm9v
dExheWVyKCkgeyByZXR1cm4gbV9jb29yZGluYXRvci0+cm9vdExheWVyKCk7IH0KKworICAgIC8v
IFRocmVhZGVkQ29tcG9zaXRvcjo6Q2xpZW50CisgICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVD
b250ZW50c1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYsIGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHVyZ2VCYWNraW5n
U3RvcmVzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbmRlck5leHRGcmFtZSgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb21taXRTY3JvbGxPZmZzZXQodWludDMyX3QgbGF5
ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgb2Zmc2V0KSBvdmVycmlkZTsKKworICAgIC8v
IENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OkNsaWVudAorICAgIHZpcnR1YWwgdm9pZCBkaWRGbHVz
aFJvb3RMYXllcihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBjb21taXRTY2VuZVN0YXRlKGNvbnN0IFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NT
dGF0ZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWludExheWVyQ29udGVudHMoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KSBvdmVycmlkZTsKKworICAgIExheWVyVHJl
ZUNvbnRleHQgbV9sYXllclRyZWVDb250ZXh0OworICAgIHVpbnQ2NF90IG1fZm9yY2VSZXBhaW50
QXN5bmNDYWxsYmFja0lEOworCisgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9wcmV2U2Nyb2xsUG9z
aXRpb247CisKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBtX2NvbnRlbnRMYXllcjsKKyAg
ICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBtX3ZpZXdPdmVybGF5Um9vdExheWVyOworCisgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I+IG1fY29vcmRp
bmF0b3I7CisgICAgUmVmUHRyPFRocmVhZGVkQ29tcG9zaXRvcj4gbV9jb21wb3NpdG9yOworCisg
ICAgYm9vbCBtX25vdGlmeUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVzaDsKKyAgICBib29sIG1faXNT
dXNwZW5kZWQ7CisgICAgYm9vbCBtX2lzV2FpdGluZ0ZvclJlbmRlcmVyOworCisgICAgZmxvYXQg
bV9sYXN0U2NhbGVGYWN0b3I7CisgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9sYXN0U2Nyb2xsUG9z
aXRpb247CisKKyAgICBSdW5Mb29wOjpUaW1lcjxUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdD4gbV9sYXllckZsdXNoVGltZXI7CisgICAgYm9vbCBtX2xheWVyRmx1c2hTY2hlZHVsaW5n
RW5hYmxlZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorCisjZW5kaWYgLy8gVGhyZWFkZWRDb29yZGlu
YXRlZExheWVyVHJlZUhvc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5jcHAKaW5kZXggNmVjZDcyNjA3ZTBhZjU0Yjg1YWU5MjE4MThhZDNm
NDlmN2I4YzdjNi4uZTZjZWQ5ZTIzNTIxZWNiOThkMjdhY2ZmMzAyYjdkNjc5MjY0ZmQ1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3Bw
CkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEu
aCIKICNpbmNsdWRlICJUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oIgogI2Vsc2UKLSNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
X01VTFRJUFJPQ0VTUykKICNpbmNsdWRlICJDb29yZGluYXRlZERyYXdpbmdBcmVhLmgiCiAjZWxz
ZQogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW1wbC5oIgpAQCAtNjEsNyArNjEsNyBAQCBzdGQ6OnVu
aXF1ZV9wdHI8RHJhd2luZ0FyZWE+IERyYXdpbmdBcmVhOjpjcmVhdGUoV2ViUGFnZSYgd2ViUGFn
ZSwgY29uc3QgV2ViUGFnZQogICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVl
OgogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYT4od2ViUGFnZSwgcGFyYW1ldGVycyk7CiAjZWxzZQotI2lmIFVTRShDT09SRElOQVRFRF9H
UkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQUk9DRVNTKQogICAg
IGNhc2UgRHJhd2luZ0FyZWFUeXBlQ29vcmRpbmF0ZWQ6CiAgICAgICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPENvb3JkaW5hdGVkRHJhd2luZ0FyZWE+KHdlYlBhZ2UsIHBhcmFtZXRlcnMpOwog
I2Vsc2UKQEAgLTc3LDYgKzc3LDkgQEAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhPiBEcmF3
aW5nQXJlYTo6Y3JlYXRlKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2UKIERyYXdpbmdB
cmVhOjpEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5cGUgdHlwZSwgV2ViUGFnZSYgd2ViUGFnZSkK
ICAgICA6IG1fdHlwZSh0eXBlKQogICAgICwgbV93ZWJQYWdlKHdlYlBhZ2UpCisjaWYgVVNFKFRF
WFRVUkVfTUFQUEVSX0dMKSAmJiBQTEFURk9STShHVEspCisgICAgLCBtX25hdGl2ZVN1cmZhY2VI
YW5kbGVGb3JDb21wb3NpdGluZygwKQorI2VuZGlmCiB7CiAgICAgV2ViUHJvY2Vzczo6c2hhcmVk
KCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCBtX3dlYlBhZ2UucGFnZUlEKCksICp0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5kZXggZWFhODVlYTRjODAy
MDJiNTYwOTQ4ZDQyNzRmMjY0YzY1NWQ0ZTdmYy4uZTQ1Mzg2OTU2MDk1NDg3YjVkNmMwODU5ZTBk
ODAwNjZhYzVjMjYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0RyYXdpbmdBcmVhLmgKQEAgLTEwOSw3ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJl
ZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKTsKICNlbmRpZgogCi0jaWYgVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxUSVBST0NF
U1MpCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDb29yZGluYXRlZExheWVyVHJlZUhvc3RN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXImKSA9IDA7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWFJbXBsLmNwcAppbmRleCBhNzcyYmZiMGQxODcyM2UxZjlkODc2NzI5MDI0ZTIxNzVhMDAx
ZDE0Li5mNzExODJjY2Y3MmRjYWE2ZTQ3YjhkMGU3NDk2MTU1MDMzY2M4NGQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNw
cApAQCAtMzUsOSArMzUsMTQgQEAKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL01haW5GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KIAorI2lmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDU19USFJFQURFRCkKKyNpbmNsdWRlICJUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdC5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTYzLDYgKzY4LDExIEBAIERyYXdpbmdBcmVhSW1wbDo6RHJhd2luZ0Fy
ZWFJbXBsKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlCiAg
ICAgLCBtX2Rpc3BsYXlUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZEcmF3aW5nQXJlYUlt
cGw6OmRpc3BsYXlUaW1lckZpcmVkKQogICAgICwgbV9leGl0Q29tcG9zaXRpbmdUaW1lcihSdW5M
b29wOjptYWluKCksIHRoaXMsICZEcmF3aW5nQXJlYUltcGw6OmV4aXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZSkKIHsKKworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkK
KyAgICB3ZWJQYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2V0Rm9yY2VDb21wb3NpdGluZ01v
ZGUodHJ1ZSk7CisjZW5kaWYKKwogICAgIGlmICh3ZWJQYWdlLmNvcmVQYWdlKCktPnNldHRpbmdz
KCkuYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgpIHx8IHdlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0
dGluZ3MoKS5mb3JjZUNvbXBvc2l0aW5nTW9kZSgpKQogICAgICAgICBtX2Fsd2F5c1VzZUNvbXBv
c2l0aW5nID0gdHJ1ZTsKIApAQCAtMjIwLDYgKzIzMCwxNiBAQCB2b2lkIERyYXdpbmdBcmVhSW1w
bDo6c2V0UGFpbnRpbmdFbmFibGVkKGJvb2wgcGFpbnRpbmdFbmFibGVkKQogICAgIG1faXNQYWlu
dGluZ0VuYWJsZWQgPSBwYWludGluZ0VuYWJsZWQ7CiB9CiAKK3ZvaWQgRHJhd2luZ0FyZWFJbXBs
OjptYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgbmV3
U2l6ZSkKK3sKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgaWYg
KG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zaXplRGlkQ2hhbmdl
KG5ld1NpemUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obmV3U2l6ZSk7CisjZW5kaWYKK30K
Kwogdm9pZCBEcmF3aW5nQXJlYUltcGw6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZl
cmVuY2VzU3RvcmUmIHN0b3JlKQogewogICAgIG1fd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5n
cygpLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6Zm9yY2VDb21wb3NpdGluZ01vZGVLZXkoKSkpOwpAQCAtMzIyLDcgKzM0
MiwxMSBAQCB2b2lkIERyYXdpbmdBcmVhSW1wbDo6dXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWlu
dDY0X3Qgc3RhdGVJRCwgYm9vbCByZXNwb25kSW1tZQogICAgICAgICBtX3dlYlBhZ2Uuc2Nyb2xs
TWFpbkZyYW1lSWZOb3RBdE1heFNjcm9sbFBvc2l0aW9uKHNjcm9sbE9mZnNldCk7CiAKICAgICAg
ICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkgeworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19U
SFJFQURFRCkKKyAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dmlld3BvcnRTaXplQ2hhbmdl
ZChtX3dlYlBhZ2Uuc2l6ZSgpKTsKKyNlbHNlCiAgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3Qt
PnNpemVEaWRDaGFuZ2UobV93ZWJQYWdlLnNpemUoKSk7CisjZW5kaWYKICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICBtX2RpcnR5UmVnaW9uID0gbV93ZWJQYWdlLmJvdW5kcygpOwogICAgIH0g
ZWxzZSB7CkBAIC02NDMsMTAgKzY2NywzMiBAQCB2b2lkIERyYXdpbmdBcmVhSW1wbDo6ZGlzcGxh
eShVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQogICAgIG1fZGlzcGxheVRpbWVyLnN0b3AoKTsKIH0K
IAordm9pZCBEcmF3aW5nQXJlYUltcGw6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihX
ZWJDb3JlOjpGcmFtZSogZnJhbWUsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHZpZXdPdmVybGF5
Um9vdExheWVyKQoreworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAg
ICBpZiAoIWZyYW1lLT5pc01haW5GcmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IW1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgVGhyZWFkZWRDb29yZGlu
YXRlZExheWVyVHJlZUhvc3QqIGNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCA9IHN0YXRpY19jYXN0
PFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Kj4obV9sYXllclRyZWVIb3N0LmdldCgp
KTsKKyAgICBjb29yZGluYXRlZExheWVyVHJlZUhvc3QtPnNldFZpZXdPdmVybGF5Um9vdExheWVy
KHZpZXdPdmVybGF5Um9vdExheWVyKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsK
KyAgICBVTlVTRURfUEFSQU0odmlld092ZXJsYXlSb290TGF5ZXIpOworI2VuZGlmCit9CisKICNp
ZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmIFBMQVRGT1JNKEdUSykKIHZvaWQgRHJhd2luZ0Fy
ZWFJbXBsOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFu
ZGxlKQogewogICAgIG1fbmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nID0gaGFuZGxl
OworCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQorICAgIGlmIChtX2xh
eWVyVHJlZUhvc3QpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0TmF0aXZlU3VyZmFjZUhh
bmRsZUZvckNvbXBvc2l0aW5nKGhhbmRsZSk7CisjZW5kaWYKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKaW5k
ZXggYTBhNjhhYTM1MDgxZTE0OTBmMDU4NDU1NzEyYjUzYjMxNmY2N2M2MC4uMGZiZmE3YWEzMTc5
MDEwNTMyYTdiYmY1YTYwOTQ4OTNiMGZmNThlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaApAQCAtNjAsNiArNjAsNyBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCBjYWxs
YmFja0lEKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRQYWludGluZ0VuYWJsZWQoYm9vbCk7Cisg
ICAgdmlydHVhbCB2b2lkIG1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVByZWZlcmVuY2Vz
KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgb3ZlcnJp
ZGU7CkBAIC02Nyw2ICs2OCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxl
Q29tcG9zaXRpbmdMYXllckZsdXNoKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVk
dWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKSBvdmVycmlkZTsKIAorICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUq
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wp
ICYmIFBMQVRGT1JNKEdUSykKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmF0aXZlU3VyZmFjZUhhbmRs
ZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90KSBvdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDU5
M2ExY2E0NWQ2Mzg3YTIxZjRlNTUzZjQ2NDU1YjdhNDgyZTMwZTUuLjBmN2MyMmVjMDE5NzkxOTVm
Njg1MjRlNzdmNzdhZGMzZTNiZDY3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTI2LDExICsyNiwxMSBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKIAotI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQ
Uk9DRVNTKQogI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oIgotI2VuZGlmCi0K
LSNpZiBQTEFURk9STShHVEspICYmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKKyNlbGlmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyNpbmNsdWRlICJUaHJlYWRlZENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdC5oIgorI2VsaWYgUExBVEZPUk0oR1RLKSAmJiBVU0UoVEVYVFVSRV9N
QVBQRVJfR0wpCiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9zdEd0ay5oIgogI2VuZGlmCiAKQEAgLTQw
LDggKzQwLDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBQYXNzUmVmUHRyPExheWVyVHJlZUhv
c3Q+IExheWVyVHJlZUhvc3Q6OmNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQogewotI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQ
Uk9DRVNTKQogICAgIHJldHVybiBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNyZWF0ZSh3ZWJQ
YWdlKTsKKyNlbGlmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAgICByZXR1
cm4gVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNyZWF0ZSh3ZWJQYWdlKTsKICNl
bGlmIFBMQVRGT1JNKEdUSykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogICAgIHJldHVybiBM
YXllclRyZWVIb3N0R3RrOjpjcmVhdGUod2ViUGFnZSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVIb3N0LmgKaW5kZXggZjllMTU5MWVk
MGQyMzg1MjI1NjRhMjYyMDEwNGRjNTA1YmRhNmIzZC4uODEwYjA1YTIzMmM1ZGJjZTliMTliZTMx
NDQ2NTU5MGMwNDFiY2VmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvTGF5ZXJUcmVlSG9zdC5oCkBAIC00Myw2ICs0Myw5IEBAIGNsYXNzIEludFJlY3Q7CiBj
bGFzcyBJbnRTaXplOwogY2xhc3MgR3JhcGhpY3NMYXllcjsKIGNsYXNzIEdyYXBoaWNzTGF5ZXJG
YWN0b3J5OworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKK2NsYXNzIFZp
ZXdwb3J0QXR0cmlidXRlczsKKyNlbmRpZgogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTc2
LDEwICs3OSwxNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIHsgcmV0dXJuIDA7IH0KIAotI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVM
VElQUk9DRVNTKQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgPSAw
OwogI2VuZGlmCiAKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAg
dmlydHVhbCB2b2lkIHNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRf
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJv
cGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKSA9IDA7CisjZW5kaWYK
KwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykgJiYgRU5BQkxFKFJFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FKQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpID0gMDsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IDI0YjdmNjM2MTlhM2RlNTk4MGNiM2M4NTg0NDk4OWUxMGY5OTEyNzUuLjViOTg2NjAxNDg0
ZDVjODA1N2Q1YjRhMTlkMzIyMWJjOWNhNDM0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTIwOCw3ICsyMDgsNyBAQAogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNlbmRpZgogCi0jaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxUSVBST0NFU1Mp
CiAjaW5jbHVkZSAiQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0TWVzc2FnZXMuaCIKICNlbmRpZgog
CkBAIC00NzQsNyArNDc0LDcgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNv
bnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlELCAqdGhpcyk7CiAKICAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgYmUgZG9uZSBpbiB0aGUgb2JqZWN0IGNvbnN0cnVjdG9ycywgYW5kIHRoZSBvYmplY3Rz
IHRoZW1zZWx2ZXMgc2hvdWxkIGJlIG1lc3NhZ2UgcmVjZWl2ZXJzLgotI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQUk9DRVNT
KQogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlE
LCAqdGhpcyk7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpAQCAtNTYwLDcgKzU2MCw3
IEBAIFdlYlBhZ2U6On5XZWJQYWdlKCkKICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5yZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2U6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV9wYWdlSUQpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlIG9i
amVjdCBkZXN0cnVjdG9ycywgYW5kIHRoZSBvYmplY3RzIHRoZW1zZWx2ZXMgc2hvdWxkIGJlIG1l
c3NhZ2UgcmVjZWl2ZXJzLgotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQUk9DRVNTKQogICAgIFdlYlByb2Nlc3M6OnNoYXJl
ZCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Q29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlEKTsKICNlbmRpZgogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCkBAIC0xMzA5LDcgKzEzMDksMTIgQEAgdm9pZCBXZWJQYWdlOjpzZW5kVmll
d3BvcnRBdHRyaWJ1dGVzQ2hhbmdlZCgpCiAgICAgLy8gVGhpcyBhbHNvIHRha2VzIGNhcmUgb2Yg
dGhlIHJlbGF5b3V0LgogICAgIHNldEZpeGVkTGF5b3V0U2l6ZShyb3VuZGVkSW50U2l6ZShhdHRy
LmxheW91dFNpemUpKTsKIAorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxUSVBST0NF
U1MpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VWaWV3cG9ydFBy
b3BlcnRpZXMoYXR0cikpOworI2Vsc2UKKyAgICBpZiAobV9kcmF3aW5nQXJlYS0+bGF5ZXJUcmVl
SG9zdCgpKQorICAgICAgICBtX2RyYXdpbmdBcmVhLT5sYXllclRyZWVIb3N0KCktPmRpZENoYW5n
ZVZpZXdwb3J0UHJvcGVydGllcyhhdHRyKTsKKyNlbmRpZgogfQogI2VuZGlmCiAKQEAgLTE3OTQs
NyArMTc5OSwxMSBAQCB2b2lkIFdlYlBhZ2U6OnBhZ2VEaWRTY3JvbGwoKQogI2lmIFVTRShUSUxF
RF9CQUNLSU5HX1NUT1JFKQogdm9pZCBXZWJQYWdlOjpwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25z
dCBJbnRQb2ludCYgcG9pbnQpCiB7CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJ
UFJPQ0VTUykKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlBhZ2VEaWRSZXF1ZXN0
U2Nyb2xsKHBvaW50KSk7CisjZWxpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQp
CisgICAgZHJhd2luZ0FyZWEoKS0+c2Nyb2xsKEludFJlY3QocG9pbnQsIEludFNpemUoKSksIElu
dFNpemUoKSk7CisjZW5kaWYKIH0KICNlbmRpZgogCkBAIC0yMzY4LDcgKzIzNzcsNyBAQCB2b2lk
IFdlYlBhZ2U6OmRpZFN0YXJ0UGFnZVRyYW5zaXRpb24oKQogCiB2b2lkIFdlYlBhZ2U6OmRpZENv
bXBsZXRlUGFnZVRyYW5zaXRpb24oKQogewotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQor
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxUSVBST0NFU1MpCiAgICAgLy8gbV9tYWlu
RnJhbWUgY2FuIGJlIG51bGwgc2luY2UgcjE3MDE2My4KICAgICBpZiAobV9tYWluRnJhbWUgJiYg
bV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCktPmRlbGVnYXRlc1Njcm9sbGluZygpKSB7
CiAgICAgICAgIC8vIFdhaXQgdW50aWwgdGhlIFVJIHByb2Nlc3Mgc2VudCB1cyB0aGUgdmlzaWJs
ZSByZWN0IGl0IHdhbnRzIHJlbmRlcmVkLgpAQCAtMzUzMiw3ICszNTQxLDcgQEAgYm9vbCBXZWJQ
YWdlOjp3aW5kb3dBbmRXZWJQYWdlQXJlRm9jdXNlZCgpIGNvbnN0CiAKIHZvaWQgV2ViUGFnZTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyKQogewotI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lm
IFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxUSVBST0NFU1MpCiAgICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpDb29yZGluYXRlZExheWVyVHJlZUhv
c3Q6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBpZiAobV9kcmF3aW5nQXJlYSkK
ICAgICAgICAgICAgIG1fZHJhd2luZ0FyZWEtPmRpZFJlY2VpdmVDb29yZGluYXRlZExheWVyVHJl
ZUhvc3RNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwpAQCAtNDAxOSw3ICs0MDI4LDcgQEAg
Ym9vbCBXZWJQYWdlOjpjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKICAgICByZXR1cm4gcGxhdGZvcm1DYW5IYW5kbGVSZXF1ZXN0KHJlcXVl
c3QpOwogfQogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUykKIHZvaWQgV2ViUGFnZTo6Y29tbWl0UGFnZVRyYW5z
aXRpb25WaWV3cG9ydCgpCiB7CiAgICAgbV9kcmF3aW5nQXJlYS0+c2V0TGF5ZXJUcmVlU3RhdGVJ
c0Zyb3plbihmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAppbmRleCBjYTk5ZjMzNWYxOTU3NmQ5M2Q2OTExMWYyNTQ0YjEwYmY3NWM3MmQyLi4xNDRm
NWQxNTYzNTk4NjBmN2E5MDg5ZGRiNzc3N2U4ZjE0NDkyODdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTU4Nyw3ICs1ODcsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRUaGVtZVBhdGgoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAotI2lmIFVT
RShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19NVUxU
SVBST0NFU1MpCiAgICAgdm9pZCBjb21taXRQYWdlVHJhbnNpdGlvblZpZXdwb3J0KCk7CiAjZW5k
aWYKIApAQCAtMTAyMyw3ICsxMDIzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhpZGVGaW5kVUko
KTsKICAgICB2b2lkIGNvdW50U3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCB1aW50MzJfdCBm
aW5kT3B0aW9ucywgdWludDMyX3QgbWF4TWF0Y2hDb3VudCk7CiAKLSNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1MpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUykK
ICAgICB2b2lkIGZpbmRab29tYWJsZUFyZWFGb3JQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGFyZWEpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5k
ZXggMGRiMTUzMGUzNTkzZWJkNTM5MGJjMWEzOWEwNzNlYmQwZTJhZmQzYi4uNmE4YTU5YmMxYzJi
MjBiOWNjNjhkZDQ2MDRhNjE3ZTZkYjYxODFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTMxNSw3ICszMTUs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRUaGVtZVBh
dGgoU3RyaW5nIHRoZW1lUGF0aCkKICNlbmRpZgogCi0jaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX01VTFRJUFJPQ0VTUykKICAgICBDb21t
aXRQYWdlVHJhbnNpdGlvblZpZXdwb3J0KCkKICNlbmRpZgogCkBAIC0zODEsNyArMzgxLDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0Q29tcG9zaXRpb24o
U3RyaW5nIGNvbXBvc2l0aW9uU3RyaW5nLCBWZWN0b3I8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRl
cmxpbmU+IHVuZGVybGluZXMsIHVpbnQ2NF90IGN1cnNvclBvc2l0aW9uKQogICAgIENhbmNlbENv
bXBvc2l0aW9uKCkKICNlbmRpZgotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpZiBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQUk9DRVNTKQogICAgIEZpbmRab29tYWJsZUFy
ZWFGb3JQb2ludChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgV2ViQ29yZTo6SW50U2l6ZSBhcmVh
KQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dl
YlByb2Nlc3NNYWluR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlBy
b2Nlc3NNYWluR3RrLmNwcAppbmRleCA1OGVhNjhmN2Q5MDc4NDFiNGMxZGJiYjRjYjQwNTFkMTQ3
ZmEzZjUyLi5lMmI3ODViZTM4ZDNmNjc4ZTQwZWNkNWQzYzJjNGJjNjhkZmUwYzNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3Bw
CkBAIC0zNCw2ICszNCwxMCBAQAogI2luY2x1ZGUgPGxpYmludGwuaD4KICNpbmNsdWRlIDxsaWJz
b3VwL3NvdXAuaD4KIAorI2lmIFBMQVRGT1JNKFgxMSkKKyNpbmNsdWRlIDxYMTEvWGxpYi5oPgor
I2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
QEAgLTQ3LDYgKzUxLDkgQEAgcHVibGljOgogICAgICAgICAgICAgc2xlZXAoMzApOwogI2VuZGlm
CiAKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpICYmIFBMQVRGT1JNKFgx
MSkKKyAgICAgICAgWEluaXRUaHJlYWRzKCk7CisjZW5kaWYKICAgICAgICAgZ3RrX2luaXQobnVs
bHB0ciwgbnVsbHB0cik7CiAKICAgICAgICAgYmluZHRleHRkb21haW4oR0VUVEVYVF9QQUNLQUdF
LCBQQUNLQUdFX0xPQ0FMRV9ESVIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNF
ZmwuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQppbmRleCBjYjA0NTAwZDkz
YzEzNmEzYTA3YWQ4ZmI5YTZjZjg5Njg3MjgyNTcyLi4xMzUxODkwNDdlZjZiMmJhMjAzZTg2YTQz
MTZiMTQ4ZDJhMjMzNDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFr
ZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAtMTE4LDcgKzExOCw2IEBA
IFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfQVVESU8gT04pCiBX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCX1RJTUlORyBPTikKIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJHTCBPTikKIFdFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9YSFJfVElNRU9VVCBPTikKLVdFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRSBPTikK
IAogaWYgKEVOQUJMRV9MTElOVF9DX0xPT1ApCiAgICAgbWVzc2FnZShTVEFUVVMgIkZvcmNlIGVu
YWJsaW5nIExMSU5UIEMgTE9PUC4iKQpAQCAtMjA4LDYgKzIwNyw4IEBAIGlmIChFTkFCTEVfVklE
RU8gT1IgRU5BQkxFX1dFQl9BVURJTykKIGVuZGlmICgpCiAKIGFkZF9kZWZpbml0aW9ucygtRFdU
Rl9VU0VfQ09PUkRJTkFURURfR1JBUEhJQ1M9MSkKK2FkZF9kZWZpbml0aW9ucygtRFdURl9VU0Vf
Q09PUkRJTkFURURfR1JBUEhJQ1NfTVVMVElQUk9DRVNTPTEpCithZGRfZGVmaW5pdGlvbnMoLURX
VEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkU9MSkKIAogYWRkX2RlZmluaXRpb25zKC1EV1RGX1VT
RV9URVhUVVJFX01BUFBFUj0xKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dU
Sy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCmluZGV4IDU0Y2IwMDNkNDI2
NWNhYzE2OWUwZmU5NzA3YzIyYTdmYjA1ZjU1MzYuLmMwYThhZDViMWRhNDg3MTJiNjcyOTllYmU3
MGNjZjQyMzhiYWQ1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtl
CisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBAIC0xNzIsNyArMTcyLDcgQEAg
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9BVURJTyBPTikKIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIE9OKQogV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1hIUl9USU1FT1VUIE9OKQogV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX05FVFdPUktfUFJPQ0VTUyBPTikK
LVdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKFdURl9VU0VfVElMRURfQkFDS0lOR19T
VE9SRSBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVEhSRUFE
RURfQ09NUE9TSVRPUiBPRkYpCiBXRUJLSVRfT1BUSU9OX0VORCgpCiAKIGlmIChMSUJOT1RJRllf
Rk9VTkQpCkBAIC0zMjksNiArMzI5LDEyIEBAIGlmIChPUEVOR0xfRk9VTkQgQU5EIChHTFhfRk9V
TkQgT1IgRUdMX0ZPVU5EKSkKICAgICBpZiAoR0xYX0ZPVU5EKQogICAgICAgICBhZGRfZGVmaW5p
dGlvbnMoLURXVEZfVVNFX0dMWD0xKQogICAgIGVuZGlmICgpCisKKyAgICBpZiAoRU5BQkxFX1RI
UkVBREVEX0NPTVBPU0lUT1IpCisgICAgICAgIGFkZF9kZWZpbml0aW9ucygtRFdURl9VU0VfVElM
RURfQkFDS0lOR19TVE9SRT0xKQorICAgICAgICBhZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX0NP
T1JESU5BVEVEX0dSQVBISUNTPTEpCisgICAgICAgIGFkZF9kZWZpbml0aW9ucygtRFdURl9VU0Vf
Q09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQ9MSkKKyAgICBlbmRpZiAoKQogZW5kaWYgKCkK
IAogaWYgKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21h
a2UvV2ViS2l0RmVhdHVyZXMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21h
a2UKaW5kZXggY2FjOTk5OTgyMGY1MmE3NmMyNGRkZWNhYTkwODY1MjJhY2M1MjU0Ni4uMWUzMGMy
ZjAzNzAxZDFmMmQwOTliZjU1YWM2MzUxNWM0MzMxZGM3OCAxMDA2NDQKLS0tIGEvU291cmNlL2Nt
YWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJl
cy5jbWFrZQpAQCAtMTQ5LDcgKzE0OSw3IEBAIG1hY3JvKFdFQktJVF9PUFRJT05fQkVHSU4pCiAg
ICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1hIUl9USU1FT1VUICJUb2dnbGUgWEhSIHRp
bWVvdXQgc3VwcG9ydCIgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9YU0xU
ICJUb2dnbGUgWFNMVCBzdXBwb3J0IiBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShVU0Vf
U1lTVEVNX01BTExPQyAiVG9nZ2xlIHN5c3RlbSBhbGxvY2F0b3IgaW5zdGVhZCBvZiBUQ21hbGxv
YyIgT0ZGKQotICAgIFdFQktJVF9PUFRJT05fREVGSU5FKFdURl9VU0VfVElMRURfQkFDS0lOR19T
VE9SRSAiVG9nZ2xlIFRpbGVkIEJhY2tpbmcgU3RvcmUgc3VwcG9ydCIgT0ZGKQorICAgIFdFQktJ
VF9PUFRJT05fREVGSU5FKEVOQUJMRV9USFJFQURFRF9DT01QT1NJVE9SICJUb2dnbGUgdGhyZWFk
ZWQgY29tcG9zaXRvciBzdXBwb3J0IiBPRkYpCiAKICAgICBXRUJLSVRfT1BUSU9OX0RFUEVORChF
TkFCTEVfRU5DUllQVEVEX01FRElBX1YyIEVOQUJMRV9WSURFTykKICAgICBXRUJLSVRfT1BUSU9O
X0RFUEVORChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUIEVOQUJMRV9WSURFTykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlIGIvU291cmNlL2NtYWtlY29uZmlnLmgu
Y21ha2UKaW5kZXggMDBkNWYzMTg4ZGU0ODk1NDVlMzU4N2I4ZTg0ZTI3ZDE2MWZlNGI0Yy4uNDMw
OThhYTg4YzNkOGViYjJkMDNlM2EwMmRiNzUzYjIwNjhhNjkxYyAxMDA2NDQKLS0tIGEvU291cmNl
L2NtYWtlY29uZmlnLmguY21ha2UKKysrIGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKQEAg
LTEzOSw3ICsxMzksNiBAQAogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX1hTTFQKICNjbWFrZWRlZmlu
ZTAxIFVTRV9TWVNURU1fTUFMTE9DCiAjY21ha2VkZWZpbmUwMSBXVEZfVVNFX0dFT0NMVUUyCi0j
Y21ha2VkZWZpbmUwMSBXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUKICNjbWFrZWRlZmluZTAx
IEhBVkVfTExWTQogI2NtYWtlZGVmaW5lMDEgSEFWRV9HVEtfVU5JWF9QUklOVElORwogI2NtYWtl
ZGVmaW5lMDEgV1RGX0NQVV9BUk02NF9DT1JURVhBNTMKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiMzExNDc0NWVkOGMwMGE5NDE2NTI4YTgzOTQz
ZWM2YzE5YjljODkzLi4wYTBkNmMxN2ExZTgxMzhjNGRiM2M4ODViYmJlZTlhYjE4MmQ2MTMwIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTQtMTItMDYgIEd3YW5nIFlvb24gSHdhbmcgIDx5b29uQGlnYWxpYS5jb20+
CisKKyAgICAgICAgW0dUS11bVGhyZWFkZWRDb21wb3NpdG9yXSBBZGQgc3VwcG9ydCBmb3IgdGhy
ZWFkZWQgY29tcG9zaXRvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExODI2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGVkIHRoZSBFTkFCTEVfVEhSRUFERURfQ09NUE9TSVRPUiBmZWF0dXJlIGZs
YWcgdG8gdGhlIGNtYWtlIGFuZAorICAgICAgICBhdXRvdG9vbHMgYnVpbGQgc3lzdGVtcy4gVGhl
IGZlYXR1cmUgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgQW5kIHJlbW92ZSBkZXBy
ZWNhdGVkIHRoZSBXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgZmVhdHVyZSBmbGFnCisgICAg
ICAgIGZyb20gdGhlIGZlYXR1cmUgZmxhZ3MuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBl
cmwvRmVhdHVyZUxpc3QucG06CisKIDIwMTUtMDEtMDUgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29y
YXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgc29tZSBzdGFsZSBjbGFzcyBuYW1lcyBp
biBjaGVjay1mb3ItaW5hcHByb3ByaWF0ZS1vYmpjLWNsYXNzLW5hbWVzCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KaW5kZXggNTFkZDhiZTAwNjFiMTJiNmE2NTM4MDVkYzEz
MjkxOTBkM2JjNzM4ZS4uNDYzMjQ4ZDlmZjczOWE5MWU0NWIzN2YyZmRiMTJjZjA3ZGRlYTBlMCAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMTI4LDcgKzEyOCw3
IEBAIG15ICgKICAgICAkc3lzdGVtTWFsbG9jU3VwcG9ydCwKICAgICAkdGVtcGxhdGVFbGVtZW50
U3VwcG9ydCwKICAgICAkdGV4dEF1dG9zaXppbmdTdXBwb3J0LAotICAgICR0aWxlZEJhY2tpbmdT
dG9yZVN1cHBvcnQsCisgICAgJHRocmVhZGVkQ29tcG9zaXRvclN1cHBvcnQsCiAgICAgJHRocmVh
ZGVkSFRNTFBhcnNlclN1cHBvcnQsCiAgICAgJHRvdWNoRXZlbnRzU3VwcG9ydCwKICAgICAkdG91
Y2hTbGlkZXJTdXBwb3J0LApAQCAtMzgzLDYgKzM4Myw5IEBAIG15IEBmZWF0dXJlcyA9ICgKICAg
ICB7IG9wdGlvbiA9PiAidGVtcGxhdGUtZWxlbWVudCIsIGRlc2MgPT4gIlRvZ2dsZSBIVE1MVGVt
cGxhdGVFbGVtZW50IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVEVNUExBVEVf
RUxFTUVOVCIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR0ZW1wbGF0ZUVsZW1lbnRTdXBwb3J0
IH0sCiAKKyAgICB7IG9wdGlvbiA9PiAidGhyZWFkZWQtY29tcG9zaXRvciIsIGRlc2MgPT4gIlRv
Z2dsZSB0aHJlYWRlZCBjb21wb3NpdG9yIHN1cHBvcnQiLAorICAgICAgZGVmaW5lID0+ICJFTkFC
TEVfVEhSRUFERURfQ09NUE9TSVRPUiIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCR0aHJlYWRl
ZENvbXBvc2l0b3JTdXBwb3J0IH0sCisKICAgICB7IG9wdGlvbiA9PiAidGV4dC1hdXRvc2l6aW5n
IiwgZGVzYyA9PiAiVG9nZ2xlIFRleHQgQXV0b3NpemluZyBzdXBwb3J0IiwKICAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX1RFWFRfQVVUT1NJWklORyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCR0
ZXh0QXV0b3NpemluZ1N1cHBvcnQgfSwKIApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdl
TG9nCmluZGV4IGQ2YTE0NTNmZGI5YWQ1NzQ2MzY3OWM1YTc3MGI1NThiOWVhZGY4ODAuLjUwNzlh
NDY0MDMyZWY3ZjdkZDg5OTllNTQ4NGQ1MzgyY2UxZGFmODEgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxv
ZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNC0xMi0wNiAgR3dhbmcgWW9v
biBId2FuZyAgPHlvb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtUaHJlYWRlZENvbXBv
c2l0b3JdIEFkZCBzdXBwb3J0IGZvciB0aHJlYWRlZCBjb21wb3NpdG9yLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MjY1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGhlIEVOQUJMRV9USFJF
QURFRF9DT01QT1NJVE9SIGZlYXR1cmUgZmxhZyB0byB0aGUgY21ha2UgYW5kCisgICAgICAgIGF1
dG90b29scyBidWlsZCBzeXN0ZW1zLiBUaGUgZmVhdHVyZSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0
LgorICAgICAgICBBbmQgcmVtb3ZlIGRlcHJlY2F0ZWQgdGhlIFdURl9VU0VfVElMRURfQkFDS0lO
R19TVE9SRSBmZWF0dXJlIGZsYWcKKyAgICAgICAgZnJvbSB0aGUgZmVhdHVyZSBmbGFncy4KKwor
ICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlOgorICAgICAgICAqIFNvdXJj
ZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRG
ZWF0dXJlcy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZToKKwog
MjAxNC0xMi0yMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBTaW1wbGlmeSBidWlsZGluZyB3aXRoIEFTYW4K
</data>

          </attachment>
      

    </bug>

</bugzilla>