<?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>159255</bug_id>
          
          <creation_ts>2016-06-29 02:07:05 -0700</creation_ts>
          <short_desc>Purge PassRefPtr in Modules/webdatabase</short_desc>
          <delta_ts>2016-07-12 18:25:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>159314</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ryanhaddad</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1206339</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-06-29 02:07:05 -0700</bug_when>
    <thetext>SSIA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206340</commentid>
    <comment_count>1</comment_count>
      <attachid>282334</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-06-29 02:09:51 -0700</bug_when>
    <thetext>Created attachment 282334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206402</commentid>
    <comment_count>2</comment_count>
      <attachid>282334</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-06-29 09:33:23 -0700</bug_when>
    <thetext>Comment on attachment 282334
Patch

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

&gt; Source/WebCore/Modules/webdatabase/Database.cpp:249
&gt; -        PassRefPtr&lt;ScriptExecutionContext&gt; passedContext = m_scriptExecutionContext.release();
&gt; +        RefPtr&lt;ScriptExecutionContext&gt; passedContext = WTFMove(m_scriptExecutionContext);
&gt;          passedContext-&gt;postTask({ScriptExecutionContext::Task::CleanupTask, [passedContext] (ScriptExecutionContext&amp; context) {

c++14 allows you to do the WTFMove in the capture, like this:
passedContext = WTFMove(m_scriptExecutionContext)

&gt; Source/WebCore/Modules/webdatabase/Database.h:128
&gt; +    Database(RefPtr&lt;DatabaseContext&gt;&amp;, const String&amp; name, const String&amp; expectedVersion, const String&amp; displayName, unsigned long estimatedSize);

RefPtr&lt;DatabaseContext&gt;&amp;&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206575</commentid>
    <comment_count>3</comment_count>
      <attachid>282394</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-06-29 17:45:43 -0700</bug_when>
    <thetext>Created attachment 282394
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206586</commentid>
    <comment_count>4</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-06-29 18:18:37 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 282334 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=282334&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webdatabase/Database.cpp:249
&gt; &gt; -        PassRefPtr&lt;ScriptExecutionContext&gt; passedContext = m_scriptExecutionContext.release();
&gt; &gt; +        RefPtr&lt;ScriptExecutionContext&gt; passedContext = WTFMove(m_scriptExecutionContext);
&gt; &gt;          passedContext-&gt;postTask({ScriptExecutionContext::Task::CleanupTask, [passedContext] (ScriptExecutionContext&amp; context) {
&gt; 
&gt; c++14 allows you to do the WTFMove in the capture, like this:
&gt; passedContext = WTFMove(m_scriptExecutionContext)
&gt; 
&gt; &gt; Source/WebCore/Modules/webdatabase/Database.h:128
&gt; &gt; +    Database(RefPtr&lt;DatabaseContext&gt;&amp;, const String&amp; name, const String&amp; expectedVersion, const String&amp; displayName, unsigned long estimatedSize);
&gt; 
&gt; RefPtr&lt;DatabaseContext&gt;&amp;&amp;


I see. Fixed all. Thanks~</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206625</commentid>
    <comment_count>5</comment_count>
      <attachid>282394</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-06-29 20:32:23 -0700</bug_when>
    <thetext>Comment on attachment 282394
Patch

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

&gt; Source/WebCore/Modules/webdatabase/SQLStatement.h:62
&gt; +    RefPtr&lt;SQLError&gt; sqlError() const;
&gt; +    SQLResultSet* sqlResultSet() const;

This is an inconsistent design.
Why is one returned by RefPTR and the other by pointer?

Please change this before landing unless you have a rationale.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206640</commentid>
    <comment_count>6</comment_count>
      <attachid>282414</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-06-29 21:32:19 -0700</bug_when>
    <thetext>Created attachment 282414
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206641</commentid>
    <comment_count>7</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-06-29 21:37:17 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 282394 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=282394&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webdatabase/SQLStatement.h:62
&gt; &gt; +    RefPtr&lt;SQLError&gt; sqlError() const;
&gt; &gt; +    SQLResultSet* sqlResultSet() const;
&gt; 
&gt; This is an inconsistent design.
&gt; Why is one returned by RefPTR and the other by pointer?
&gt; 
&gt; Please change this before landing unless you have a rationale.

I thought sqlError() was referenced by other variables. For example, 


void SQLTransactionBackend::openTransactionAndPreflight() {

...
 m_transactionError = m_wrapper-&gt;sqlError();

However it looks m_transactionError just calls member functions, not referenced or is passed to other variables. So it seems to me that sqlError() can be changed as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206669</commentid>
    <comment_count>8</comment_count>
      <attachid>282414</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-30 01:14:59 -0700</bug_when>
    <thetext>Comment on attachment 282414
Patch for landing

Clearing flags on attachment: 282414

Committed r202676: &lt;http://trac.webkit.org/changeset/202676&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206670</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-30 01:15:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206822</commentid>
    <comment_count>10</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-06-30 13:17:59 -0700</bug_when>
    <thetext>This change appears to have caused storage/websql test crashes

See crashlogs from mac-wk1 here:
https://build.webkit.org/results/Apple%20El%20Capitan%20Debug%20WK1%20(Tests)/r202693%20(6322)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206836</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-30 13:41:30 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 159314</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207774</commentid>
    <comment_count>12</comment_count>
      <attachid>282758</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-07-05 01:43:56 -0700</bug_when>
    <thetext>Created attachment 282758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207777</commentid>
    <comment_count>13</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-07-05 01:47:07 -0700</bug_when>
    <thetext>Below lambda function caused the test crash on mac-wk1. However I don&apos;t know how to fix this issue yet. So I&apos;d like to prepare a new patch after landing this patch. 

In Database.cpp,

Database::~Database()
{
...
        PassRefPtr&lt;ScriptExecutionContext&gt; passedContext = m_scriptExecutionContext.release();
        passedContext-&gt;postTask({ScriptExecutionContext::Task::CleanupTask, [passedContext] (ScriptExecutionContext&amp; context) {
            ASSERT_UNUSED(context, &amp;context == passedContext);
            RefPtr&lt;ScriptExecutionContext&gt; scriptExecutionContext(passedContext);
        }});
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208924</commentid>
    <comment_count>14</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-07-07 18:09:35 -0700</bug_when>
    <thetext>Ryan, Darin, could you take a look ? Last patch doesn&apos;t cause the test crash anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210299</commentid>
    <comment_count>15</comment_count>
      <attachid>282758</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-12 18:25:08 -0700</bug_when>
    <thetext>Comment on attachment 282758
Patch

Clearing flags on attachment: 282758

Committed r203146: &lt;http://trac.webkit.org/changeset/203146&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210300</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-12 18:25:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282334</attachid>
            <date>2016-06-29 02:09:51 -0700</date>
            <delta_ts>2016-06-29 17:45:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159255-20160629180931.patch</filename>
            <type>text/plain</type>
            <size>23052</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyNTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGVkYTQwZWEyMzg0MDY2
YjQ0YTE5NWJlMGJlY2EyNDkxYmJiZDM4YS4uYjJhYjdiZGI0MDE0NjQzMDQ3NzQ5NWIwZWQxNTdk
YzIwYTE4OTVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE2LTA2LTI5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBQdXJnZSBQYXNz
UmVmUHRyIGluIE1vZHVsZXMvd2ViZGF0YWJhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTI1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFzIGEgc3RlcCB0byByZW1vdmUgUGFzc1JlZlB0ciB1c2Us
IHRoaXMgcGF0Y2ggY2xlYW5zIGl0IHVwIGluIE1vZHVsZXMvd2ViZGF0YWJhc2UuCisKKyAgICAg
ICAgQWRkaXRpb25hbGx5IHVubmVjZXNzYXJ5IHNwYWNlcyBhbmQgdGFicyBhcmUgcmVtb3ZlZCB0
b28uCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVy
LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNl
Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhYmFzZTo6RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJh
c2U6On5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6c2NoZWR1bGVUcmFu
c2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24pOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhYmFzZUF1dGhvcml6ZXI6OmFsbG93UmVhZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VN
YW5hZ2VyOjpvcGVuRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2Vy
OjpmdWxsUGF0aEZvckRhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlTWFuYWdl
cjo6ZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4pOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VNYW5hZ2VyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRhc2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFuc2FjdGlvblRhc2s6
OkRhdGFiYXNlVHJhbnNhY3Rpb25UYXNrKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlVGFzay5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJh
Y2tXcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTUUxDYWxsYmFja1dyYXBwZXI6OlNRTENh
bGxiYWNrV3JhcHBlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxSZXN1bHRT
ZXRSb3dMaXN0Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpTUUxTdGF0ZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpzcWxFcnJvcik6CisgICAgICAgIChXZWJDb3Jl
OjpTUUxTdGF0ZW1lbnQ6OnNxbFJlc3VsdFNldCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxTdGF0ZW1lbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRy
YW5zYWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlv
bkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpTUUxUcmFu
c2FjdGlvbkJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5k
Ojp0cmFuc2FjdGlvbkVycm9yKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRy
YW5zYWN0aW9uQmFja2VuZC5oOgorCiAyMDE2LTA2LTI4ICBKaWV3ZW4gVGFuICA8amlld2VuX3Rh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50ICJyZXBsYWNlbWVudCIgY29kZWMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lv
bldyYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VW
ZXJzaW9uV3JhcHBlci5jcHAKaW5kZXggM2RhZTkyMzRmNmUyYTRmNjM3NmU5MGU3ZGFmNzY5YzBj
YmJjMzVkMC4uNTE1ZWMyOGY3NTc1NDMwNmJhMTczZGRiOTNhNGJmMmZiZWJhOTY5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3Jh
cHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VW
ZXJzaW9uV3JhcHBlci5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkRhdGFiYXNl
LmgiCiAjaW5jbHVkZSAiU1FMRXJyb3IuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRh
YmFzZS5oCmluZGV4IDFjZTIzOWM0NGQ5MGVhMTI1N2E1NzYyNmQwOWE2MTQ1MGU3YjM5MTYuLjkw
ZTg0NDkzYjQ5OTY5ZDI4YmI1MmY1YjQ3MDRkNGZhOTQ0ZDkyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNl
LmgKQEAgLTIxLDE0ICsyMSwxMyBAQAogICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjaWZuZGVmIERP
TVdpbmRvd1dlYkRhdGFiYXNlX2gKICNkZWZpbmUgRE9NV2luZG93V2ViRGF0YWJhc2VfaAogCiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCmluZGV4IGRhMzhlMWNmZjg5MTYwNTAwOWFmNzU1YzQ3
MmRkMGU0NDdhZjE1NjMuLjYyOTU1NjE4MmQ2NTc4MmYyMThlM2ZlNmRkN2QxNmE3NjY3NThkNjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3Bw
CkBAIC01NCw3ICs1NCw2IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRl
ICJWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAt
MjAzLDcgKzIwMiw3IEBAIHN0YXRpYyBEYXRhYmFzZUd1aWQgZ3VpZEZvck9yaWdpbkFuZE5hbWUo
Y29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtCiAgICAgcmV0dXJuIGd1aWQ7
CiB9CiAKLURhdGFiYXNlOjpEYXRhYmFzZShQYXNzUmVmUHRyPERhdGFiYXNlQ29udGV4dD4gZGF0
YWJhc2VDb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZXhwZWN0ZWRW
ZXJzaW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRl
ZFNpemUpCitEYXRhYmFzZTo6RGF0YWJhc2UoUmVmUHRyPERhdGFiYXNlQ29udGV4dD4mIGRhdGFi
YXNlQ29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkVmVy
c2lvbiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRT
aXplKQogICAgIDogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGRhdGFiYXNlQ29udGV4dC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICwgbV9kYXRhYmFzZUNvbnRleHQoZGF0YWJhc2VD
b250ZXh0KQogICAgICwgbV9kZWxldGVkKGZhbHNlKQpAQCAtMjQ2LDcgKzI0NSw3IEBAIERhdGFi
YXNlOjp+RGF0YWJhc2UoKQogICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0Nv
bnRleHRUaHJlYWQoKSkgewogICAgICAgICAvLyBHcmFiIGEgcG9pbnRlciB0byB0aGUgc2NyaXB0
IGV4ZWN1dGlvbiBoZXJlIGJlY2F1c2Ugd2UncmUgcmVsZWFzaW5nIGl0IHdoZW4gd2UgcGFzcyBp
dCB0bwogICAgICAgICAvLyBEZXJlZkNvbnRleHRUYXNrOjpjcmVhdGUuCi0gICAgICAgIFBhc3NS
ZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gcGFzc2VkQ29udGV4dCA9IG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5yZWxlYXNlKCk7CisgICAgICAgIFJlZlB0cjxTY3JpcHRFeGVjdXRpb25D
b250ZXh0PiBwYXNzZWRDb250ZXh0ID0gV1RGTW92ZShtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
OwogICAgICAgICBwYXNzZWRDb250ZXh0LT5wb3N0VGFzayh7U2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6VGFzazo6Q2xlYW51cFRhc2ssIFtwYXNzZWRDb250ZXh0XSAoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCkgewogICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCAmY29u
dGV4dCA9PSBwYXNzZWRDb250ZXh0KTsKICAgICAgICAgICAgIFJlZlB0cjxTY3JpcHRFeGVjdXRp
b25Db250ZXh0PiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KHBhc3NlZENvbnRleHQpOwpAQCAtNTcx
LDcgKzU3MCw3IEBAIHZvaWQgRGF0YWJhc2U6OnNjaGVkdWxlVHJhbnNhY3Rpb24oKQogICAgICAg
ICB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25RdWV1ZS50YWtlRmlyc3QoKTsKIAogICAgIGlm
ICh0cmFuc2FjdGlvbiAmJiBkYXRhYmFzZUNvbnRleHQoKS0+ZGF0YWJhc2VUaHJlYWQoKSkgewot
ICAgICAgICBhdXRvIHRhc2sgPSBzdGQ6Om1ha2VfdW5pcXVlPERhdGFiYXNlVHJhbnNhY3Rpb25U
YXNrPih0cmFuc2FjdGlvbik7CisgICAgICAgIGF1dG8gdGFzayA9IHN0ZDo6bWFrZV91bmlxdWU8
RGF0YWJhc2VUcmFuc2FjdGlvblRhc2s+KFdURk1vdmUodHJhbnNhY3Rpb24pKTsKICAgICAgICAg
TE9HKFN0b3JhZ2VBUEksICJTY2hlZHVsaW5nIERhdGFiYXNlVHJhbnNhY3Rpb25UYXNrICVwIGZv
ciB0cmFuc2FjdGlvbiAlcFxuIiwgdGFzay5nZXQoKSwgdGFzay0+dHJhbnNhY3Rpb24oKSk7CiAg
ICAgICAgIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzID0gdHJ1ZTsKICAgICAgICAgZGF0YWJhc2VD
b250ZXh0KCktPmRhdGFiYXNlVGhyZWFkKCktPnNjaGVkdWxlVGFzayhXVEZNb3ZlKHRhc2spKTsK
QEAgLTU4OSw3ICs1ODgsNyBAQCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBEYXRhYmFz
ZTo6cnVuVHJhbnNhY3Rpb24oUmVmPFNRTFRyYW5zYWN0aW9uPiYmIHRyYQogICAgIGlmIChkYXRh
KQogICAgICAgICB3cmFwcGVyID0gQ2hhbmdlVmVyc2lvbldyYXBwZXI6OmNyZWF0ZShkYXRhLT5v
bGRWZXJzaW9uKCksIGRhdGEtPm5ld1ZlcnNpb24oKSk7CiAKLSAgICBSZWZQdHI8U1FMVHJhbnNh
Y3Rpb25CYWNrZW5kPiB0cmFuc2FjdGlvbkJhY2tlbmQgPSBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6
OmNyZWF0ZSh0aGlzLCBXVEZNb3ZlKHRyYW5zYWN0aW9uKSwgd3JhcHBlciwgcmVhZE9ubHkpOwor
ICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IHRyYW5zYWN0aW9uQmFja2VuZCA9IFNR
TFRyYW5zYWN0aW9uQmFja2VuZDo6Y3JlYXRlKHRoaXMsIFdURk1vdmUodHJhbnNhY3Rpb24pLCBX
VEZNb3ZlKHdyYXBwZXIpLCByZWFkT25seSk7CiAgICAgbV90cmFuc2FjdGlvblF1ZXVlLmFwcGVu
ZCh0cmFuc2FjdGlvbkJhY2tlbmQpOwogICAgIGlmICghbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3Mp
CiAgICAgICAgIHNjaGVkdWxlVHJhbnNhY3Rpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaAppbmRleCA4OGVjZDFjYjkxMzUyYTExM2ZhYjBhNzBm
MWQ3OTJjY2IyMDI5NzQ3Li40NjhhODZmNWMxYmQ0ZjVhMmUyNzQ3ZjcxMGNkMmIxM2I0MmUyNjNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCkBA
IC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogICAgIHZvaWQgcGVyZm9ybUNsb3NlKCk7CiAKIHBy
aXZhdGU6Ci0gICAgRGF0YWJhc2UoUGFzc1JlZlB0cjxEYXRhYmFzZUNvbnRleHQ+LCBjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZXhwZWN0ZWRWZXJzaW9uLCBjb25zdCBTdHJpbmcm
IGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpOworICAgIERhdGFiYXNl
KFJlZlB0cjxEYXRhYmFzZUNvbnRleHQ+JiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIGV4cGVjdGVkVmVyc2lvbiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQg
bG9uZyBlc3RpbWF0ZWRTaXplKTsKIAogICAgIHZvaWQgY2xvc2VEYXRhYmFzZSgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9y
aXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0
aG9yaXplci5jcHAKaW5kZXggMDkzM2YyMDZjY2RkODg2ZTU2Yzk1ZTY2MzMyNmFmOThmZDU4Mjc2
ZC4uMTAzMTBhMGYzYTI3ZDQwMTYzODkwZTI3Mzc4MjYxZDVjN2RkZTQ2MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3Jp
emVyLmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkRhdGFiYXNlQXV0aG9yaXplci5oIgogCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
MzQ0LDcgKzM0Myw3IEBAIGludCBEYXRhYmFzZUF1dGhvcml6ZXI6OmFsbG93UmVhZChjb25zdCBT
dHJpbmcmIHRhYmxlTmFtZSwgY29uc3QgU3RyaW5nJikKIHsKICAgICBpZiAobV9wZXJtaXNzaW9u
cyAmIE5vQWNjZXNzTWFzayAmJiBtX3NlY3VyaXR5RW5hYmxlZCkKICAgICAgICAgcmV0dXJuIFNR
TEF1dGhEZW55OwotICAgIAorCiAgICAgcmV0dXJuIGRlbnlCYXNlZE9uVGFibGVOYW1lKHRhYmxl
TmFtZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VNYW5hZ2VyLmNwcAppbmRleCBhZmM3ODhmMjQzMGEyMzA3NzdmMjgzYjRmMGEz
YTE0ZWY3YmEwM2I3Li4wMDQxMTY5YjZlZDYxN2NlZGYwNTc3NDg2YWQ5NTVhYmY2MGMwYjg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZU1hbmFnZXIuY3BwCkBAIC0yMCw3ICsyMCw3IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKQEAgLTI3Miw3ICsyNzIsNyBAQCB2b2lkIERhdGFiYXNlTWFuYWdl
cjo6cmVtb3ZlUHJvcG9zZWREYXRhYmFzZShQcm9wb3NlZERhdGFiYXNlKiBwcm9wb3NlZERiKQog
CiBSZWZQdHI8RGF0YWJhc2U+IERhdGFiYXNlTWFuYWdlcjo6b3BlbkRhdGFiYXNlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCiAgICAgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBT
dHJpbmcmIGV4cGVjdGVkVmVyc2lvbiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwKLSAgICB1
bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUsIFBhc3NSZWZQdHI8RGF0YWJhc2VDYWxsYmFjaz4g
Y3JlYXRpb25DYWxsYmFjaywKKyAgICB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUsIFJlZlB0
cjxEYXRhYmFzZUNhbGxiYWNrPiYmIGNyZWF0aW9uQ2FsbGJhY2ssCiAgICAgRGF0YWJhc2VFcnJv
ciYgZXJyb3IpCiB7CiAgICAgU2NyaXB0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZVRocmVhZGluZygp
OwpAQCAtMzI3LDcgKzMyNyw3IEBAIFN0cmluZyBEYXRhYmFzZU1hbmFnZXI6OmZ1bGxQYXRoRm9y
RGF0YWJhc2UoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgY29uc3QgU3RyaW5nCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICB9CiAgICAgfQotICAgIAorCiAgICAgcmV0
dXJuIG1fc2VydmVyLT5mdWxsUGF0aEZvckRhdGFiYXNlKG9yaWdpbiwgbmFtZSwgY3JlYXRlSWZE
b2VzTm90RXhpc3QpOwogfQogCkBAIC0zNTAsMTYgKzM1MCwxNiBAQCBEYXRhYmFzZURldGFpbHMg
RGF0YWJhc2VNYW5hZ2VyOjpkZXRhaWxzRm9yTmFtZUFuZE9yaWdpbihjb25zdCBTdHJpbmcmIG5h
bWUsIFNlYwogewogICAgIHsKICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV9t
dXRleCk7Ci0gICAgICAgIAorCiAgICAgICAgIGZvciAoYXV0byogcHJvcG9zZWREYXRhYmFzZSA6
IG1fcHJvcG9zZWREYXRhYmFzZXMpIHsKICAgICAgICAgICAgIGlmIChwcm9wb3NlZERhdGFiYXNl
LT5kZXRhaWxzKCkubmFtZSgpID09IG5hbWUgJiYgcHJvcG9zZWREYXRhYmFzZS0+b3JpZ2luKCkt
PmVxdWFsKG9yaWdpbikpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQocHJvcG9zZWREYXRhYmFz
ZS0+ZGV0YWlscygpLnRocmVhZElEKCkgPT0gc3RkOjp0aGlzX3RocmVhZDo6Z2V0X2lkKCkgfHwg
aXNNYWluVGhyZWFkKCkpOwotICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAgICAgICAgcmV0
dXJuIHByb3Bvc2VkRGF0YWJhc2UtPmRldGFpbHMoKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0KLSAgICAKKwogICAgIHJldHVybiBtX3NlcnZlci0+ZGV0YWlsc0Zvck5hbWVBbmRP
cmlnaW4obmFtZSwgb3JpZ2luKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmgKaW5kZXggNDFjZDdmZTc1ZDdkMWNkNWRj
YTdhN2EzMWQxNzA2NjMxOTJlZDZmYi4uYmE0MWYxY2JhOTA5NWYyY2ZiYTEyYmNlM2QyNTY5YWY2
MWMxYjc4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlTWFuYWdlci5oCkBAIC0yMCw3ICsyMCw3IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKICNpZm5kZWYgRGF0YWJhc2VNYW5hZ2VyX2gKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2suaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODEsNyArODAsNyBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgRXhjZXB0aW9uQ29kZSBleGNlcHRpb25Db2RlRm9yRGF0YWJhc2VFcnJv
cihEYXRhYmFzZUVycm9yKTsKIAotICAgIFJlZlB0cjxEYXRhYmFzZT4gb3BlbkRhdGFiYXNlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
ZXhwZWN0ZWRWZXJzaW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25n
IGVzdGltYXRlZFNpemUsIFBhc3NSZWZQdHI8RGF0YWJhc2VDYWxsYmFjaz4sIERhdGFiYXNlRXJy
b3ImKTsKKyAgICBSZWZQdHI8RGF0YWJhc2U+IG9wZW5EYXRhYmFzZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkVmVyc2lv
biwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXpl
LCBSZWZQdHI8RGF0YWJhc2VDYWxsYmFjaz4mJiwgRGF0YWJhc2VFcnJvciYpOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBoYXNPcGVuRGF0YWJhc2VzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRhc2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZVRhc2suY3BwCmluZGV4IDZkYmY1N2Y1YjQ4N2FmMTRjMDdhMDI3YTczMjg0ZDU4OGZhOTViZTcu
LmI4NzE1MTVkYjgzYTllMDQwNWMwZDllNzI5YmJlZGVmYjk0ZjNiZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAKQEAgLTE0
NCw5ICsxNDQsOSBAQCBjb25zdCBjaGFyKiBEYXRhYmFzZUNsb3NlVGFzazo6ZGVidWdUYXNrTmFt
ZSgpIGNvbnN0CiAvLyAqKiogRGF0YWJhc2VUcmFuc2FjdGlvblRhc2sgKioqCiAvLyBTdGFydHMg
YSB0cmFuc2FjdGlvbiB0aGF0IHdpbGwgcmVwb3J0IGl0cyByZXN1bHRzIHZpYSBhIGNhbGxiYWNr
LgogCi1EYXRhYmFzZVRyYW5zYWN0aW9uVGFzazo6RGF0YWJhc2VUcmFuc2FjdGlvblRhc2soUGFz
c1JlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IHRyYW5zYWN0aW9uKQorRGF0YWJhc2VUcmFu
c2FjdGlvblRhc2s6OkRhdGFiYXNlVHJhbnNhY3Rpb25UYXNrKFJlZlB0cjxTUUxUcmFuc2FjdGlv
bkJhY2tlbmQ+JiYgdHJhbnNhY3Rpb24pCiAgICAgOiBEYXRhYmFzZVRhc2soKnRyYW5zYWN0aW9u
LT5kYXRhYmFzZSgpLCAwKQotICAgICwgbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKKyAgICAs
IG1fdHJhbnNhY3Rpb24oV1RGTW92ZSh0cmFuc2FjdGlvbikpCiAgICAgLCBtX2RpZFBlcmZvcm1U
YXNrKGZhbHNlKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZVRhc2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VUYXNrLmgKaW5kZXggMmZmOGRmNWU3ZGE1ZDAxZWFkYjVjMDMwNTQzNzNmOTZi
YTQ0OTliNy4uZTVmNDc1YzBhYTBkZGY3NTAwOTA0ZDBiYzY0MDNkOTJmY2E4Njg3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oCkBA
IC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgiCiAjaW5j
bHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+Ci0jaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTEyMyw3ICsxMjIsNyBAQCBwcml2YXRlOgogCiBjbGFz
cyBEYXRhYmFzZVRyYW5zYWN0aW9uVGFzayA6IHB1YmxpYyBEYXRhYmFzZVRhc2sgewogcHVibGlj
OgotICAgIGV4cGxpY2l0IERhdGFiYXNlVHJhbnNhY3Rpb25UYXNrKFBhc3NSZWZQdHI8U1FMVHJh
bnNhY3Rpb25CYWNrZW5kPik7CisgICAgZXhwbGljaXQgRGF0YWJhc2VUcmFuc2FjdGlvblRhc2so
UmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4mJik7CiAgICAgdmlydHVhbCB+RGF0YWJhc2VU
cmFuc2FjdGlvblRhc2soKTsKIAogICAgIFNRTFRyYW5zYWN0aW9uQmFja2VuZCogdHJhbnNhY3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0aW9uLmdldCgpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxsYmFja1dyYXBwZXIuaApp
bmRleCBiNjQ1NDgyMGY3Mzc1NjFmMzBiY2FhNTBiMGE2MjgxYjIzOWRjZjgwLi5hNjVjY2I3MDRk
OWUxZGZlNDk5NjI5MWJkMGVmZTJhYzU4ZmJkODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmgKQEAgLTQxLDgg
KzQxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gLSBieSB1bndyYXBwaW5nIGFuZCB0aGVu
IGRlcmVmZXJlbmNpbmcgbm9ybWFsbHkgLSBvbiBjb250ZXh0IHRocmVhZCBvbmx5CiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBjbGFzcyBTUUxDYWxsYmFja1dyYXBwZXIgewogcHVibGljOgotICAgIFNR
TENhbGxiYWNrV3JhcHBlcihQYXNzUmVmUHRyPFQ+IGNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQotICAgICAgICA6IG1fY2FsbGJhY2soY2Fs
bGJhY2spCisgICAgU1FMQ2FsbGJhY2tXcmFwcGVyKFJlZlB0cjxUPiYmIGNhbGxiYWNrLCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICA6IG1f
Y2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCiAgICAgICAgICwgbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KG1fY2FsbGJhY2sgPyBzY3JpcHRFeGVjdXRpb25Db250ZXh0IDogMCkKICAgICB7CiAg
ICAgICAgIEFTU0VSVCghbV9jYWxsYmFjayB8fCAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0Lmdl
dCgpICYmIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMUmVzdWx0U2V0
Um93TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxSZXN1bHRT
ZXRSb3dMaXN0LmgKaW5kZXggZWVmMTQ4ZDdiNmNmYjFiMjQ2ZmQyMjBiMmY4Mzk3OWQ2OTU3Yjhj
Ni4uNTVkZTJmYjk1MWY4NWIxYTJkMmM4OTVkMzNiYTk3NTQyYjhhNjE1NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxSZXN1bHRTZXRSb3dMaXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxSZXN1bHRTZXRSb3dM
aXN0LmgKQEAgLTI5LDcgKzI5LDYgQEAKICNpZm5kZWYgU1FMUmVzdWx0U2V0Um93TGlzdF9oCiAj
ZGVmaW5lIFNRTFJlc3VsdFNldFJvd0xpc3RfaAogCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgIlNRTFZhbHVlLmgiCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50
LmNwcAppbmRleCA0ZDZiYjNmNzNmNTk2NWM5NmUxNTZkNzYwYzc5Y2UyYTVkYzk0MTVmLi45N2Y5
NmZjZWUyYTM3YjNkOWQ5ZTY1OTcwMWE2MmNmZjM5MGUyYzc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwCkBAIC00MCw3ICs0
MCw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAKLS8vIFRoZSBMaWZlLUN5
Y2xlIG9mIGEgU1FMU3RhdGVtZW50IGkuZS4gV2hvJ3Mga2VlcGluZyB0aGUgU1FMU3RhdGVtZW50
IGFsaXZlPyAKKy8vIFRoZSBMaWZlLUN5Y2xlIG9mIGEgU1FMU3RhdGVtZW50IGkuZS4gV2hvJ3Mg
a2VlcGluZyB0aGUgU1FMU3RhdGVtZW50IGFsaXZlPwogLy8gPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8v
IFRoZSBSZWZQdHIgY2hhaW4gZ29lcyBzb21ldGhpbmcgbGlrZSB0aGlzOgogLy8KQEAgLTc0LDEx
ICs3NCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNRTFN0YXRlbWVudDo6U1FMU3Rh
dGVtZW50KERhdGFiYXNlJiBkYXRhYmFzZSwgY29uc3QgU3RyaW5nJiBzdGF0ZW1lbnQsIGNvbnN0
IFZlY3RvcjxTUUxWYWx1ZT4mIGFyZ3VtZW50cywgUGFzc1JlZlB0cjxTUUxTdGF0ZW1lbnRDYWxs
YmFjaz4gY2FsbGJhY2ssIFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaz4gZXJy
b3JDYWxsYmFjaywgaW50IHBlcm1pc3Npb25zKQorU1FMU3RhdGVtZW50OjpTUUxTdGF0ZW1lbnQo
RGF0YWJhc2UmIGRhdGFiYXNlLCBjb25zdCBTdHJpbmcmIHN0YXRlbWVudCwgY29uc3QgVmVjdG9y
PFNRTFZhbHVlPiYgYXJndW1lbnRzLCBSZWZQdHI8U1FMU3RhdGVtZW50Q2FsbGJhY2s+JiYgY2Fs
bGJhY2ssIFJlZlB0cjxTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2ss
IGludCBwZXJtaXNzaW9ucykKICAgICA6IG1fc3RhdGVtZW50KHN0YXRlbWVudC5pc29sYXRlZENv
cHkoKSkKICAgICAsIG1fYXJndW1lbnRzKGFyZ3VtZW50cykKLSAgICAsIG1fc3RhdGVtZW50Q2Fs
bGJhY2tXcmFwcGVyKGNhbGxiYWNrLCBkYXRhYmFzZS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
Ci0gICAgLCBtX3N0YXRlbWVudEVycm9yQ2FsbGJhY2tXcmFwcGVyKGVycm9yQ2FsbGJhY2ssIGRh
dGFiYXNlLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAsIG1fc3RhdGVtZW50Q2FsbGJh
Y2tXcmFwcGVyKFdURk1vdmUoY2FsbGJhY2spLCBkYXRhYmFzZS5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCisgICAgLCBtX3N0YXRlbWVudEVycm9yQ2FsbGJhY2tXcmFwcGVyKFdURk1vdmUoZXJy
b3JDYWxsYmFjayksIGRhdGFiYXNlLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAsIG1f
cGVybWlzc2lvbnMocGVybWlzc2lvbnMpCiB7CiB9CkBAIC04NywxNCArODcsMTQgQEAgU1FMU3Rh
dGVtZW50Ojp+U1FMU3RhdGVtZW50KCkKIHsKIH0KIAotUGFzc1JlZlB0cjxTUUxFcnJvcj4gU1FM
U3RhdGVtZW50OjpzcWxFcnJvcigpIGNvbnN0CitSZWZQdHI8U1FMRXJyb3I+IFNRTFN0YXRlbWVu
dDo6c3FsRXJyb3IoKSBjb25zdAogewogICAgIHJldHVybiBtX2Vycm9yOwogfQogCi1QYXNzUmVm
UHRyPFNRTFJlc3VsdFNldD4gU1FMU3RhdGVtZW50OjpzcWxSZXN1bHRTZXQoKSBjb25zdAorU1FM
UmVzdWx0U2V0KiBTUUxTdGF0ZW1lbnQ6OnNxbFJlc3VsdFNldCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fcmVzdWx0U2V0OworICAgIHJldHVybiBtX3Jlc3VsdFNldC5nZXQoKTsKIH0KIAogYm9v
bCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJhc2UmIGRiKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmgKaW5kZXggMzc0NjAyZGI5OWYx
MWE1YWVlN2FkY2E2NDljMjY0YmZlOGNmMGRkYi4uZDc0NDUzMzAxNDFlZTlmODczODJkMDNmZmEw
MjM2NDZiZGJmNmYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxTdGF0ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTFN0YXRlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIFNRTFRyYW5zYWN0aW9u
QmFja2VuZDsKIAogY2xhc3MgU1FMU3RhdGVtZW50IHsKIHB1YmxpYzoKLSAgICBTUUxTdGF0ZW1l
bnQoRGF0YWJhc2UmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiwgUGFz
c1JlZlB0cjxTUUxTdGF0ZW1lbnRDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50RXJy
b3JDYWxsYmFjaz4sIGludCBwZXJtaXNzaW9ucyk7CisgICAgU1FMU3RhdGVtZW50KERhdGFiYXNl
JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPFNRTFZhbHVlPiYsIFJlZlB0cjxTUUxTdGF0
ZW1lbnRDYWxsYmFjaz4mJiwgUmVmUHRyPFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s+JiYsIGlu
dCBwZXJtaXNzaW9ucyk7CiAgICAgflNRTFN0YXRlbWVudCgpOwogCiAgICAgYm9vbCBleGVjdXRl
KERhdGFiYXNlJik7CkBAIC01OCw4ICs1OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERhdGFi
YXNlRGVsZXRlZEVycm9yKCk7CiAgICAgdm9pZCBzZXRWZXJzaW9uTWlzbWF0Y2hlZEVycm9yKCk7
CiAKLSAgICBQYXNzUmVmUHRyPFNRTEVycm9yPiBzcWxFcnJvcigpIGNvbnN0OwotICAgIFBhc3NS
ZWZQdHI8U1FMUmVzdWx0U2V0PiBzcWxSZXN1bHRTZXQoKSBjb25zdDsKKyAgICBSZWZQdHI8U1FM
RXJyb3I+IHNxbEVycm9yKCkgY29uc3Q7CisgICAgU1FMUmVzdWx0U2V0KiBzcWxSZXN1bHRTZXQo
KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB2b2lkIHNldEZhaWx1cmVEdWVUb1F1b3RhKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9u
LmgKaW5kZXggZGVjOWI4YTlkZjZjZWI3Yzk5NDk3YmUwNGJjNTI1NTFiOGRiZmZmOS4uZGRhY2M4
Yjk4ZmFiZTRjNGFjNzE2NzM5ZDNkOWFhMzg5OTQ2YWQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaApAQCAtMzIsNyArMzIs
NiBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiU1FMQ2FsbGJhY2tXcmFw
cGVyLmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25TdGF0ZU1hY2hpbmUuaCIKLSNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAppbmRleCA5ZDA4NmNiMGIxYzE4NzZm
Zjk1ZjU1MThhYmQxYTNkYzczNDFlMmQ4Li44MWQ3YTFiMmYzN2M4NTFjYTkyNzY2OTJlYjEyN2Zi
OGNlNzFhYTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCkBAIC0yMzAsNyArMjMwLDcgQEAK
IC8vIHRvIHdhaXQgZm9yIGZ1cnRoZXIgYWN0aW9uLgogCiAKLS8vIFRoZSBMaWZlLUN5Y2xlIG9m
IGEgU1FMVHJhbnNhY3Rpb24gaS5lLiBXaG8ncyBrZWVwaW5nIHRoZSBTUUxUcmFuc2FjdGlvbiBh
bGl2ZT8gCisvLyBUaGUgTGlmZS1DeWNsZSBvZiBhIFNRTFRyYW5zYWN0aW9uIGkuZS4gV2hvJ3Mg
a2VlcGluZyB0aGUgU1FMVHJhbnNhY3Rpb24gYWxpdmU/CiAvLyA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KIC8vIFRoZSBSZWZQdHIgY2hhaW4gZ29lcyBzb21ldGhpbmcgbGlrZSB0aGlzOgogLy8KQEAg
LTMwNyw3ICszMDcsNyBAQAogLy8gICAgIC0gRGF0YWJhc2VCYWNrZW5kOjpjbG9zZSgpIHdpbGwg
aXRlcmF0ZQogLy8gICAgICAgRGF0YWJhc2VCYWNrZW5kOjptX3RyYW5zYWN0aW9uUXVldWUgYW5k
IGNhbGwKIC8vICAgICAgIG5vdGlmeURhdGFiYXNlVGhyZWFkSXNTaHV0dGluZ0Rvd24oKSBvbiBl
YWNoIHRyYW5zYWN0aW9uIHRoZXJlLgotLy8gICAgICAgIAorLy8KIC8vICAgICBQaGFzZSAyLiBB
ZnRlciBzY2hlZHVsaW5nLCBiZWZvcmUgc3RhdGUgQWNxdWlyZUxvY2sKIC8vCiAvLyAgICAgLSBJ
ZiB0aGUgaW50ZXJydXB0aW9uIG9jY3VyZXMgYmVmb3JlIHRoZSBEYXRhYmFzZVRyYW5zYWN0aW9u
VGFzayBpcwpAQCAtMzQzLDE1ICszNDMsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWY8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmNyZWF0ZShE
YXRhYmFzZSogZGIsIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb24+IGZyb250ZW5kLCBQYXNzUmVm
UHRyPFNRTFRyYW5zYWN0aW9uV3JhcHBlcj4gd3JhcHBlciwgYm9vbCByZWFkT25seSkKK1JlZjxT
UUxUcmFuc2FjdGlvbkJhY2tlbmQ+IFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6Y3JlYXRlKERhdGFi
YXNlKiBkYiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uPiYmIGZyb250ZW5kLCBSZWZQdHI8U1FMVHJh
bnNhY3Rpb25XcmFwcGVyPiYmIHdyYXBwZXIsIGJvb2wgcmVhZE9ubHkpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1FMVHJhbnNhY3Rpb25CYWNrZW5kKGRiLCBmcm9udGVuZCwgd3JhcHBl
ciwgcmVhZE9ubHkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTUUxUcmFuc2FjdGlvbkJh
Y2tlbmQoZGIsIFdURk1vdmUoZnJvbnRlbmQpLCBXVEZNb3ZlKHdyYXBwZXIpLCByZWFkT25seSkp
OwogfQogCi1TUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OlNRTFRyYW5zYWN0aW9uQmFja2VuZChEYXRh
YmFzZSogZGIsIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb24+IGZyb250ZW5kLCBQYXNzUmVmUHRy
PFNRTFRyYW5zYWN0aW9uV3JhcHBlcj4gd3JhcHBlciwgYm9vbCByZWFkT25seSkKLSAgICA6IG1f
ZnJvbnRlbmQoZnJvbnRlbmQpCitTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OlNRTFRyYW5zYWN0aW9u
QmFja2VuZChEYXRhYmFzZSogZGIsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbj4mJiBmcm9udGVuZCwg
UmVmUHRyPFNRTFRyYW5zYWN0aW9uV3JhcHBlcj4mJiB3cmFwcGVyLCBib29sIHJlYWRPbmx5KQor
ICAgIDogbV9mcm9udGVuZChXVEZNb3ZlKGZyb250ZW5kKSkKICAgICAsIG1fZGF0YWJhc2UoZGIp
Ci0gICAgLCBtX3dyYXBwZXIod3JhcHBlcikKKyAgICAsIG1fd3JhcHBlcihXVEZNb3ZlKHdyYXBw
ZXIpKQogICAgICwgbV9oYXNDYWxsYmFjayhtX2Zyb250ZW5kLT5oYXNDYWxsYmFjaygpKQogICAg
ICwgbV9oYXNTdWNjZXNzQ2FsbGJhY2sobV9mcm9udGVuZC0+aGFzU3VjY2Vzc0NhbGxiYWNrKCkp
CiAgICAgLCBtX2hhc0Vycm9yQ2FsbGJhY2sobV9mcm9udGVuZC0+aGFzRXJyb3JDYWxsYmFjaygp
KQpAQCAtNDI4LDkgKzQyOCw5IEBAIFNRTFN0YXRlbWVudCogU1FMVHJhbnNhY3Rpb25CYWNrZW5k
OjpjdXJyZW50U3RhdGVtZW50KCkKICAgICByZXR1cm4gbV9jdXJyZW50U3RhdGVtZW50QmFja2Vu
ZC5nZXQoKTsKIH0KIAotUGFzc1JlZlB0cjxTUUxFcnJvcj4gU1FMVHJhbnNhY3Rpb25CYWNrZW5k
Ojp0cmFuc2FjdGlvbkVycm9yKCkKK1NRTEVycm9yKiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnRy
YW5zYWN0aW9uRXJyb3IoKQogewotICAgIHJldHVybiBtX3RyYW5zYWN0aW9uRXJyb3I7CisgICAg
cmV0dXJuIG1fdHJhbnNhY3Rpb25FcnJvci5nZXQoKTsKIH0KIAogdm9pZCBTUUxUcmFuc2FjdGlv
bkJhY2tlbmQ6OnNldFNob3VsZFJldHJ5Q3VycmVudFN0YXRlbWVudChib29sIHNob3VsZFJldHJ5
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbkJhY2tlbmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb25CYWNrZW5kLmgKaW5kZXggMzBjZGYyOWVmNjFiMGI0ZmRmOWMwNjM0NDJiNmJj
NzMyNDRhYjNhYi4uYmJmYWMwYjgzMzBlNDZlMTdmYzE1ZmQxZTMzZDY5NjFmMTRlMjhkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlv
bkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRy
YW5zYWN0aW9uQmFja2VuZC5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKIAogY2xhc3MgU1FM
VHJhbnNhY3Rpb25CYWNrZW5kIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNRTFRyYW5z
YWN0aW9uQmFja2VuZD4sIHB1YmxpYyBTUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZTxTUUxUcmFu
c2FjdGlvbkJhY2tlbmQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNRTFRyYW5zYWN0aW9u
QmFja2VuZD4gY3JlYXRlKERhdGFiYXNlKiwgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbj4sIFBh
c3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25XcmFwcGVyPiwgYm9vbCByZWFkT25seSk7CisgICAgc3Rh
dGljIFJlZjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IGNyZWF0ZShEYXRhYmFzZSosIFJlZlB0cjxT
UUxUcmFuc2FjdGlvbj4mJiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uV3JhcHBlcj4mJiwgYm9vbCBy
ZWFkT25seSk7CiAKICAgICB2aXJ0dWFsIH5TUUxUcmFuc2FjdGlvbkJhY2tlbmQoKTsKIApAQCAt
NzEsMTMgKzcxLDEzIEBAIHB1YmxpYzoKIAogICAgIC8vIEFQSXMgY2FsbGVkIGZyb20gdGhlIGZy
b250ZW5kIHB1Ymxpc2hlZCB2aWEgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOgogICAgIHZvaWQgcmVx
dWVzdFRyYW5zaXRUb1N0YXRlKFNRTFRyYW5zYWN0aW9uU3RhdGUpOwotICAgIFBhc3NSZWZQdHI8
U1FMRXJyb3I+IHRyYW5zYWN0aW9uRXJyb3IoKTsKKyAgICBTUUxFcnJvciogdHJhbnNhY3Rpb25F
cnJvcigpOwogICAgIFNRTFN0YXRlbWVudCogY3VycmVudFN0YXRlbWVudCgpOwogICAgIHZvaWQg
c2V0U2hvdWxkUmV0cnlDdXJyZW50U3RhdGVtZW50KGJvb2wpOwogICAgIHZvaWQgZXhlY3V0ZVNR
TChzdGQ6OnVuaXF1ZV9wdHI8U1FMU3RhdGVtZW50Pik7Ci0gICAgCisKIHByaXZhdGU6Ci0gICAg
U1FMVHJhbnNhY3Rpb25CYWNrZW5kKERhdGFiYXNlKiwgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlv
bj4sIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25XcmFwcGVyPiwgYm9vbCByZWFkT25seSk7Cisg
ICAgU1FMVHJhbnNhY3Rpb25CYWNrZW5kKERhdGFiYXNlKiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9u
PiYmLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25XcmFwcGVyPiYmLCBib29sIHJlYWRPbmx5KTsKIAog
ICAgIHZvaWQgZG9DbGVhbnVwKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282394</attachid>
            <date>2016-06-29 17:45:43 -0700</date>
            <delta_ts>2016-06-29 21:32:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159255-20160630094522.patch</filename>
            <type>text/plain</type>
            <size>25694</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyNTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGVkYTQwZWEyMzg0MDY2
YjQ0YTE5NWJlMGJlY2EyNDkxYmJiZDM4YS4uYjJhYjdiZGI0MDE0NjQzMDQ3NzQ5NWIwZWQxNTdk
YzIwYTE4OTVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE2LTA2LTI5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBQdXJnZSBQYXNz
UmVmUHRyIGluIE1vZHVsZXMvd2ViZGF0YWJhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTI1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFzIGEgc3RlcCB0byByZW1vdmUgUGFzc1JlZlB0ciB1c2Us
IHRoaXMgcGF0Y2ggY2xlYW5zIGl0IHVwIGluIE1vZHVsZXMvd2ViZGF0YWJhc2UuCisKKyAgICAg
ICAgQWRkaXRpb25hbGx5IHVubmVjZXNzYXJ5IHNwYWNlcyBhbmQgdGFicyBhcmUgcmVtb3ZlZCB0
b28uCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVy
LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNl
Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhYmFzZTo6RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJh
c2U6On5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6c2NoZWR1bGVUcmFu
c2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24pOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhYmFzZUF1dGhvcml6ZXI6OmFsbG93UmVhZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VN
YW5hZ2VyOjpvcGVuRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2Vy
OjpmdWxsUGF0aEZvckRhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlTWFuYWdl
cjo6ZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4pOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VNYW5hZ2VyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRhc2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFuc2FjdGlvblRhc2s6
OkRhdGFiYXNlVHJhbnNhY3Rpb25UYXNrKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlVGFzay5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJh
Y2tXcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTUUxDYWxsYmFja1dyYXBwZXI6OlNRTENh
bGxiYWNrV3JhcHBlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxSZXN1bHRT
ZXRSb3dMaXN0Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpTUUxTdGF0ZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpzcWxFcnJvcik6CisgICAgICAgIChXZWJDb3Jl
OjpTUUxTdGF0ZW1lbnQ6OnNxbFJlc3VsdFNldCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxTdGF0ZW1lbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRy
YW5zYWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlv
bkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpTUUxUcmFu
c2FjdGlvbkJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25CYWNrZW5k
Ojp0cmFuc2FjdGlvbkVycm9yKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRy
YW5zYWN0aW9uQmFja2VuZC5oOgorCiAyMDE2LTA2LTI4ICBKaWV3ZW4gVGFuICA8amlld2VuX3Rh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50ICJyZXBsYWNlbWVudCIgY29kZWMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lv
bldyYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VW
ZXJzaW9uV3JhcHBlci5jcHAKaW5kZXggM2RhZTkyMzRmNmUyYTRmNjM3NmU5MGU3ZGFmNzY5YzBj
YmJjMzVkMC4uNTE1ZWMyOGY3NTc1NDMwNmJhMTczZGRiOTNhNGJmMmZiZWJhOTY5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3Jh
cHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VW
ZXJzaW9uV3JhcHBlci5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkRhdGFiYXNl
LmgiCiAjaW5jbHVkZSAiU1FMRXJyb3IuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRh
YmFzZS5oCmluZGV4IDFjZTIzOWM0NGQ5MGVhMTI1N2E1NzYyNmQwOWE2MTQ1MGU3YjM5MTYuLjkw
ZTg0NDkzYjQ5OTY5ZDI4YmI1MmY1YjQ3MDRkNGZhOTQ0ZDkyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNl
LmgKQEAgLTIxLDE0ICsyMSwxMyBAQAogICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjaWZuZGVmIERP
TVdpbmRvd1dlYkRhdGFiYXNlX2gKICNkZWZpbmUgRE9NV2luZG93V2ViRGF0YWJhc2VfaAogCiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCmluZGV4IGRhMzhlMWNmZjg5MTYwNTAwOWFmNzU1YzQ3
MmRkMGU0NDdhZjE1NjMuLjFmZjIzOGNjN2NkMzE4ZWY5M2ZhMGU1YjNkNDUwNmZhODQ3YzcwNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3Bw
CkBAIC01NCw3ICs1NCw2IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRl
ICJWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAt
MjAzLDkgKzIwMiw5IEBAIHN0YXRpYyBEYXRhYmFzZUd1aWQgZ3VpZEZvck9yaWdpbkFuZE5hbWUo
Y29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtCiAgICAgcmV0dXJuIGd1aWQ7
CiB9CiAKLURhdGFiYXNlOjpEYXRhYmFzZShQYXNzUmVmUHRyPERhdGFiYXNlQ29udGV4dD4gZGF0
YWJhc2VDb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZXhwZWN0ZWRW
ZXJzaW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRl
ZFNpemUpCitEYXRhYmFzZTo6RGF0YWJhc2UoUmVmUHRyPERhdGFiYXNlQ29udGV4dD4mJiBkYXRh
YmFzZUNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBleHBlY3RlZFZl
cnNpb24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVk
U2l6ZSkKICAgICA6IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChkYXRhYmFzZUNvbnRleHQtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAsIG1fZGF0YWJhc2VDb250ZXh0KGRhdGFiYXNl
Q29udGV4dCkKKyAgICAsIG1fZGF0YWJhc2VDb250ZXh0KFdURk1vdmUoZGF0YWJhc2VDb250ZXh0
KSkKICAgICAsIG1fZGVsZXRlZChmYWxzZSkKICAgICAsIG1fbmFtZShuYW1lLmlzb2xhdGVkQ29w
eSgpKQogICAgICwgbV9leHBlY3RlZFZlcnNpb24oZXhwZWN0ZWRWZXJzaW9uLmlzb2xhdGVkQ29w
eSgpKQpAQCAtMjQyLDEyICsyNDEsMTMgQEAgRGF0YWJhc2U6OkRhdGFiYXNlKFBhc3NSZWZQdHI8
RGF0YWJhc2VDb250ZXh0PiBkYXRhYmFzZUNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmEKIAogRGF0
YWJhc2U6On5EYXRhYmFzZSgpCiB7Ci0gICAgLy8gVGhlIHJlZmVyZW5jZSB0byB0aGUgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCBuZWVkcyB0byBiZSBjbGVhcmVkIG9uIHRoZSBKYXZhU2NyaXB0IHRo
cmVhZC4gIElmIHdlJ3JlIG9uIHRoYXQgdGhyZWFkIGFscmVhZHksIHdlIGNhbiBqdXN0IGxldCB0
aGUgUmVmUHRyJ3MgZGVzdHJ1Y3Rpb24gZG8gdGhlIGRlcmVmZmluZy4KKyAgICAvLyBUaGUgcmVm
ZXJlbmNlIHRvIHRoZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0IG5lZWRzIHRvIGJlIGNsZWFyZWQg
b24gdGhlIEphdmFTY3JpcHQgdGhyZWFkLgorICAgIC8vIElmIHdlJ3JlIG9uIHRoYXQgdGhyZWFk
IGFscmVhZHksIHdlIGNhbiBqdXN0IGxldCB0aGUgUmVmUHRyJ3MgZGVzdHJ1Y3Rpb24gZG8gdGhl
IGRlcmVmZmluZy4KICAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250ZXh0
VGhyZWFkKCkpIHsKICAgICAgICAgLy8gR3JhYiBhIHBvaW50ZXIgdG8gdGhlIHNjcmlwdCBleGVj
dXRpb24gaGVyZSBiZWNhdXNlIHdlJ3JlIHJlbGVhc2luZyBpdCB3aGVuIHdlIHBhc3MgaXQgdG8K
ICAgICAgICAgLy8gRGVyZWZDb250ZXh0VGFzazo6Y3JlYXRlLgotICAgICAgICBQYXNzUmVmUHRy
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IHBhc3NlZENvbnRleHQgPSBtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQucmVsZWFzZSgpOwotICAgICAgICBwYXNzZWRDb250ZXh0LT5wb3N0VGFzayh7U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzazo6Q2xlYW51cFRhc2ssIFtwYXNzZWRDb250ZXh0XSAo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgICAgICBSZWZQdHI8U2NyaXB0
RXhlY3V0aW9uQ29udGV4dD4gcGFzc2VkQ29udGV4dDsKKyAgICAgICAgcGFzc2VkQ29udGV4dC0+
cG9zdFRhc2soe1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s6OkNsZWFudXBUYXNrLCBbcGFz
c2VkQ29udGV4dCA9IFdURk1vdmUobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KV0gKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsKICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQoY29u
dGV4dCwgJmNvbnRleHQgPT0gcGFzc2VkQ29udGV4dCk7CiAgICAgICAgICAgICBSZWZQdHI8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dD4gc2NyaXB0RXhlY3V0aW9uQ29udGV4dChwYXNzZWRDb250ZXh0
KTsKICAgICAgICAgfX0pOwpAQCAtNTcxLDcgKzU3MSw3IEBAIHZvaWQgRGF0YWJhc2U6OnNjaGVk
dWxlVHJhbnNhY3Rpb24oKQogICAgICAgICB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25RdWV1
ZS50YWtlRmlyc3QoKTsKIAogICAgIGlmICh0cmFuc2FjdGlvbiAmJiBkYXRhYmFzZUNvbnRleHQo
KS0+ZGF0YWJhc2VUaHJlYWQoKSkgewotICAgICAgICBhdXRvIHRhc2sgPSBzdGQ6Om1ha2VfdW5p
cXVlPERhdGFiYXNlVHJhbnNhY3Rpb25UYXNrPih0cmFuc2FjdGlvbik7CisgICAgICAgIGF1dG8g
dGFzayA9IHN0ZDo6bWFrZV91bmlxdWU8RGF0YWJhc2VUcmFuc2FjdGlvblRhc2s+KFdURk1vdmUo
dHJhbnNhY3Rpb24pKTsKICAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJTY2hlZHVsaW5nIERhdGFi
YXNlVHJhbnNhY3Rpb25UYXNrICVwIGZvciB0cmFuc2FjdGlvbiAlcFxuIiwgdGFzay5nZXQoKSwg
dGFzay0+dHJhbnNhY3Rpb24oKSk7CiAgICAgICAgIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzID0g
dHJ1ZTsKICAgICAgICAgZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFkKCktPnNjaGVk
dWxlVGFzayhXVEZNb3ZlKHRhc2spKTsKQEAgLTU4OSw3ICs1ODksNyBAQCBSZWZQdHI8U1FMVHJh
bnNhY3Rpb25CYWNrZW5kPiBEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24oUmVmPFNRTFRyYW5zYWN0
aW9uPiYmIHRyYQogICAgIGlmIChkYXRhKQogICAgICAgICB3cmFwcGVyID0gQ2hhbmdlVmVyc2lv
bldyYXBwZXI6OmNyZWF0ZShkYXRhLT5vbGRWZXJzaW9uKCksIGRhdGEtPm5ld1ZlcnNpb24oKSk7
CiAKLSAgICBSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiB0cmFuc2FjdGlvbkJhY2tlbmQg
PSBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmNyZWF0ZSh0aGlzLCBXVEZNb3ZlKHRyYW5zYWN0aW9u
KSwgd3JhcHBlciwgcmVhZE9ubHkpOworICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+
IHRyYW5zYWN0aW9uQmFja2VuZCA9IFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6Y3JlYXRlKHRoaXMs
IFdURk1vdmUodHJhbnNhY3Rpb24pLCBXVEZNb3ZlKHdyYXBwZXIpLCByZWFkT25seSk7CiAgICAg
bV90cmFuc2FjdGlvblF1ZXVlLmFwcGVuZCh0cmFuc2FjdGlvbkJhY2tlbmQpOwogICAgIGlmICgh
bV90cmFuc2FjdGlvbkluUHJvZ3Jlc3MpCiAgICAgICAgIHNjaGVkdWxlVHJhbnNhY3Rpb24oKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaAppbmRleCA4
OGVjZDFjYjkxMzUyYTExM2ZhYjBhNzBmMWQ3OTJjY2IyMDI5NzQ3Li4xZTEwMDBmMmI1ZjBhNzM5
ZTE2YTlmNGViNWRlNDM2MGQ0OGRjMWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogICAgIHZv
aWQgcGVyZm9ybUNsb3NlKCk7CiAKIHByaXZhdGU6Ci0gICAgRGF0YWJhc2UoUGFzc1JlZlB0cjxE
YXRhYmFzZUNvbnRleHQ+LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZXhwZWN0
ZWRWZXJzaW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGlt
YXRlZFNpemUpOworICAgIERhdGFiYXNlKFJlZlB0cjxEYXRhYmFzZUNvbnRleHQ+JiYsIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBleHBlY3RlZFZlcnNpb24sIGNvbnN0IFN0cmlu
ZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSk7CiAKICAgICB2b2lk
IGNsb3NlRGF0YWJhc2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwCmluZGV4IDA5MzNmMjA2Y2NkZDg4
NmU1NmM5NWU2NjMzMjZhZjk4ZmQ1ODI3NmQuLjEwMzEwYTBmM2EyN2Q0MDE2Mzg5MGUyNzM3ODI2
MWQ1YzdkZGU0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VBdXRob3JpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEYXRhYmFzZUF1dGhvcml6ZXIuaCIKIAotI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM0NCw3ICszNDMsNyBAQCBpbnQgRGF0YWJhc2VBdXRo
b3JpemVyOjphbGxvd1JlYWQoY29uc3QgU3RyaW5nJiB0YWJsZU5hbWUsIGNvbnN0IFN0cmluZyYp
CiB7CiAgICAgaWYgKG1fcGVybWlzc2lvbnMgJiBOb0FjY2Vzc01hc2sgJiYgbV9zZWN1cml0eUVu
YWJsZWQpCiAgICAgICAgIHJldHVybiBTUUxBdXRoRGVueTsKLSAgICAKKwogICAgIHJldHVybiBk
ZW55QmFzZWRPblRhYmxlTmFtZSh0YWJsZU5hbWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKaW5kZXggYWZj
Nzg4ZjI0MzBhMjMwNzc3ZjI4M2I0ZjBhM2ExNGVmN2JhMDNiNy4uMDA0MTE2OWI2ZWQ2MTdjZWRm
MDU3NzQ4NmFkOTU1YWJmNjBjMGI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcApAQCAtMjAsNyArMjAsNyBAQAog
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCkBAIC0yNzIsNyArMjcy
LDcgQEAgdm9pZCBEYXRhYmFzZU1hbmFnZXI6OnJlbW92ZVByb3Bvc2VkRGF0YWJhc2UoUHJvcG9z
ZWREYXRhYmFzZSogcHJvcG9zZWREYikKIAogUmVmUHRyPERhdGFiYXNlPiBEYXRhYmFzZU1hbmFn
ZXI6Om9wZW5EYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAogICAgIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBleHBlY3RlZFZlcnNpb24sIGNvbnN0IFN0
cmluZyYgZGlzcGxheU5hbWUsCi0gICAgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBQYXNz
UmVmUHRyPERhdGFiYXNlQ2FsbGJhY2s+IGNyZWF0aW9uQ2FsbGJhY2ssCisgICAgdW5zaWduZWQg
bG9uZyBlc3RpbWF0ZWRTaXplLCBSZWZQdHI8RGF0YWJhc2VDYWxsYmFjaz4mJiBjcmVhdGlvbkNh
bGxiYWNrLAogICAgIERhdGFiYXNlRXJyb3ImIGVycm9yKQogewogICAgIFNjcmlwdENvbnRyb2xs
ZXI6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKQEAgLTMyNyw3ICszMjcsNyBAQCBTdHJpbmcgRGF0
YWJhc2VNYW5hZ2VyOjpmdWxsUGF0aEZvckRhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4s
IGNvbnN0IFN0cmluZwogICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAgICAg
fQogICAgIH0KLSAgICAKKwogICAgIHJldHVybiBtX3NlcnZlci0+ZnVsbFBhdGhGb3JEYXRhYmFz
ZShvcmlnaW4sIG5hbWUsIGNyZWF0ZUlmRG9lc05vdEV4aXN0KTsKIH0KIApAQCAtMzUwLDE2ICsz
NTAsMTYgQEAgRGF0YWJhc2VEZXRhaWxzIERhdGFiYXNlTWFuYWdlcjo6ZGV0YWlsc0Zvck5hbWVB
bmRPcmlnaW4oY29uc3QgU3RyaW5nJiBuYW1lLCBTZWMKIHsKICAgICB7CiAgICAgICAgIHN0ZDo6
bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fbXV0ZXgpOwotICAgICAgICAKKwogICAgICAgICBmb3Ig
KGF1dG8qIHByb3Bvc2VkRGF0YWJhc2UgOiBtX3Byb3Bvc2VkRGF0YWJhc2VzKSB7CiAgICAgICAg
ICAgICBpZiAocHJvcG9zZWREYXRhYmFzZS0+ZGV0YWlscygpLm5hbWUoKSA9PSBuYW1lICYmIHBy
b3Bvc2VkRGF0YWJhc2UtPm9yaWdpbigpLT5lcXVhbChvcmlnaW4pKSB7CiAgICAgICAgICAgICAg
ICAgQVNTRVJUKHByb3Bvc2VkRGF0YWJhc2UtPmRldGFpbHMoKS50aHJlYWRJRCgpID09IHN0ZDo6
dGhpc190aHJlYWQ6OmdldF9pZCgpIHx8IGlzTWFpblRocmVhZCgpKTsKLSAgICAgICAgICAgICAg
ICAKKwogICAgICAgICAgICAgICAgIHJldHVybiBwcm9wb3NlZERhdGFiYXNlLT5kZXRhaWxzKCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgCisKICAgICByZXR1cm4gbV9z
ZXJ2ZXItPmRldGFpbHNGb3JOYW1lQW5kT3JpZ2luKG5hbWUsIG9yaWdpbik7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5o
CmluZGV4IDQxY2Q3ZmU3NWQ3ZDFjZDVkY2E3YTdhMzFkMTcwNjYzMTkyZWQ2ZmIuLmJhNDFmMWNi
YTkwOTVmMmNmYmExMmJjZTNkMjU2OWFmNjFjMWI3ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuaApAQCAtMjAsNyArMjAs
NyBAQAogICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjaWZuZGVmIERhdGFiYXNlTWFuYWdlcl9oCkBA
IC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTgxLDcgKzgwLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEV4Y2VwdGlvbkNvZGUgZXhj
ZXB0aW9uQ29kZUZvckRhdGFiYXNlRXJyb3IoRGF0YWJhc2VFcnJvcik7CiAKLSAgICBSZWZQdHI8
RGF0YWJhc2U+IG9wZW5EYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkVmVyc2lvbiwgY29uc3QgU3RyaW5nJiBk
aXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBQYXNzUmVmUHRyPERhdGFi
YXNlQ2FsbGJhY2s+LCBEYXRhYmFzZUVycm9yJik7CisgICAgUmVmUHRyPERhdGFiYXNlPiBvcGVu
RGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgU3RyaW5nJiBleHBlY3RlZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVu
c2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSwgUmVmUHRyPERhdGFiYXNlQ2FsbGJhY2s+JiYsIERh
dGFiYXNlRXJyb3ImKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzT3BlbkRhdGFiYXNl
cyhTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVNlcnZlci5jcHAKaW5kZXggNjI0YTczN2M1MjVi
OTU3YjcxZWVlZTY2ZjU5YWI0ZDBlZmE3YmViZi4uODY5NjM0NGQ5MWQ4MjU3ZjBiZGY2YTBjZGE4
MWIwZWIzMGEyZjY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZVNlcnZlci5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgpAQCAtMTE3LDcgKzExNyw3IEBAIFJlZlB0
cjxEYXRhYmFzZT4gRGF0YWJhc2VTZXJ2ZXI6Om9wZW5EYXRhYmFzZShSZWZQdHI8RGF0YWJhc2VD
b250ZXh0PiYgYmFja2VuZENvCiB7CiAgICAgUmVmUHRyPERhdGFiYXNlPiBkYXRhYmFzZTsKICAg
ICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsgLy8gTWFrZSBzb21lIG9sZGVyIGNvbXBpbGVycyBoYXBw
eS4KLSAgICAKKwogICAgIHN3aXRjaCAoYXR0ZW1wdCkgewogICAgIGNhc2UgRmlyc3RUcnlUb09w
ZW5EYXRhYmFzZToKICAgICAgICAgc3VjY2VzcyA9IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigp
LmNhbkVzdGFibGlzaERhdGFiYXNlKGJhY2tlbmRDb250ZXh0LmdldCgpLCBuYW1lLCBlc3RpbWF0
ZWRTaXplLCBlcnJvcik7CkBAIC0xMzMsNyArMTMzLDcgQEAgUmVmUHRyPERhdGFiYXNlPiBEYXRh
YmFzZVNlcnZlcjo6b3BlbkRhdGFiYXNlKFJlZlB0cjxEYXRhYmFzZUNvbnRleHQ+JiBiYWNrZW5k
Q28KIAogUmVmUHRyPERhdGFiYXNlPiBEYXRhYmFzZVNlcnZlcjo6Y3JlYXRlRGF0YWJhc2UoUmVm
UHRyPERhdGFiYXNlQ29udGV4dD4mIGJhY2tlbmRDb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgZXhwZWN0ZWRWZXJzaW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1l
LCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUsIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJh
c2UsIERhdGFiYXNlRXJyb3ImIGVycm9yLCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKLSAgICBS
ZWZQdHI8RGF0YWJhc2U+IGRhdGFiYXNlID0gYWRvcHRSZWYobmV3IERhdGFiYXNlKGJhY2tlbmRD
b250ZXh0LCBuYW1lLCBleHBlY3RlZFZlcnNpb24sIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXpl
KSk7CisgICAgUmVmUHRyPERhdGFiYXNlPiBkYXRhYmFzZSA9IGFkb3B0UmVmKG5ldyBEYXRhYmFz
ZShiYWNrZW5kQ29udGV4dC5jb3B5UmVmKCksIG5hbWUsIGV4cGVjdGVkVmVyc2lvbiwgZGlzcGxh
eU5hbWUsIGVzdGltYXRlZFNpemUpKTsKIAogICAgIGlmICghZGF0YWJhc2UtPm9wZW5BbmRWZXJp
ZnlWZXJzaW9uKHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBlcnJvciwgZXJyb3JNZXNzYWdlKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAKaW5kZXggNmRiZjU3ZjViNDg3YWYxNGMwN2Ew
MjdhNzMyODRkNTg4ZmE5NWJlNy4uYjg3MTUxNWRiODNhOWUwNDA1YzBkOWU3MjliYmVkZWZiOTRm
M2JmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VUYXNrLmNwcApAQCAtMTQ0LDkgKzE0NCw5IEBAIGNvbnN0IGNoYXIqIERhdGFiYXNlQ2xv
c2VUYXNrOjpkZWJ1Z1Rhc2tOYW1lKCkgY29uc3QKIC8vICoqKiBEYXRhYmFzZVRyYW5zYWN0aW9u
VGFzayAqKioKIC8vIFN0YXJ0cyBhIHRyYW5zYWN0aW9uIHRoYXQgd2lsbCByZXBvcnQgaXRzIHJl
c3VsdHMgdmlhIGEgY2FsbGJhY2suCiAKLURhdGFiYXNlVHJhbnNhY3Rpb25UYXNrOjpEYXRhYmFz
ZVRyYW5zYWN0aW9uVGFzayhQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4gdHJhbnNh
Y3Rpb24pCitEYXRhYmFzZVRyYW5zYWN0aW9uVGFzazo6RGF0YWJhc2VUcmFuc2FjdGlvblRhc2so
UmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4mJiB0cmFuc2FjdGlvbikKICAgICA6IERhdGFi
YXNlVGFzaygqdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCksIDApCi0gICAgLCBtX3RyYW5zYWN0aW9u
KHRyYW5zYWN0aW9uKQorICAgICwgbV90cmFuc2FjdGlvbihXVEZNb3ZlKHRyYW5zYWN0aW9uKSkK
ICAgICAsIG1fZGlkUGVyZm9ybVRhc2soZmFsc2UpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suaAppbmRleCAyZmY4ZGY1ZTdkYTVk
MDFlYWRiNWMwMzA1NDM3M2Y5NmJhNDQ5OWI3Li5lNWY0NzVjMGFhMGRkZjc1MDA5MDRkMGJjNjQw
M2Q5MmZjYTg2ODc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVGFzay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VUYXNrLmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJTUUxUcmFuc2Fj
dGlvbkJhY2tlbmQuaCIKICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2suaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTIzLDcgKzEyMiw3
IEBAIHByaXZhdGU6CiAKIGNsYXNzIERhdGFiYXNlVHJhbnNhY3Rpb25UYXNrIDogcHVibGljIERh
dGFiYXNlVGFzayB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgRGF0YWJhc2VUcmFuc2FjdGlvblRh
c2soUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+KTsKKyAgICBleHBsaWNpdCBEYXRh
YmFzZVRyYW5zYWN0aW9uVGFzayhSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiYmKTsKICAg
ICB2aXJ0dWFsIH5EYXRhYmFzZVRyYW5zYWN0aW9uVGFzaygpOwogCiAgICAgU1FMVHJhbnNhY3Rp
b25CYWNrZW5kKiB0cmFuc2FjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNhY3Rpb24uZ2V0
KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
Q2FsbGJhY2tXcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NR
TENhbGxiYWNrV3JhcHBlci5oCmluZGV4IGI2NDU0ODIwZjczNzU2MWYzMGJjYWE1MGIwYTYyODFi
MjM5ZGNmODAuLmE2NWNjYjcwNGQ5ZTFkZmU0OTk2MjkxYmQwZWZlMmFjNThmYmQ4NjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFw
cGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxsYmFj
a1dyYXBwZXIuaApAQCAtNDEsOCArNDEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyAtIGJ5
IHVud3JhcHBpbmcgYW5kIHRoZW4gZGVyZWZlcmVuY2luZyBub3JtYWxseSAtIG9uIGNvbnRleHQg
dGhyZWFkIG9ubHkKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFNRTENhbGxiYWNrV3JhcHBl
ciB7CiBwdWJsaWM6Ci0gICAgU1FMQ2FsbGJhY2tXcmFwcGVyKFBhc3NSZWZQdHI8VD4gY2FsbGJh
Y2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCi0gICAg
ICAgIDogbV9jYWxsYmFjayhjYWxsYmFjaykKKyAgICBTUUxDYWxsYmFja1dyYXBwZXIoUmVmUHRy
PFQ+JiYgY2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpCisgICAgICAgIDogbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKICAgICAgICAg
LCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQobV9jYWxsYmFjayA/IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgOiAwKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX2NhbGxiYWNrIHx8IChtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuZ2V0KCkgJiYgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0Nv
bnRleHRUaHJlYWQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9TUUxSZXN1bHRTZXRSb3dMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFJlc3VsdFNldFJvd0xpc3QuaAppbmRleCBlZWYxNDhkN2I2Y2ZiMWIyNDZm
ZDIyMGIyZjgzOTc5ZDY5NTdiOGM2Li41NWRlMmZiOTUxZjg1YjFhMmQyYzg5NWQzM2JhOTc1NDJi
OGE2MTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NR
TFJlc3VsdFNldFJvd0xpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTFJlc3VsdFNldFJvd0xpc3QuaApAQCAtMjksNyArMjksNiBAQAogI2lmbmRlZiBTUUxS
ZXN1bHRTZXRSb3dMaXN0X2gKICNkZWZpbmUgU1FMUmVzdWx0U2V0Um93TGlzdF9oCiAKLSNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSAiU1FMVmFsdWUuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwCmluZGV4IDRkNmJiM2Y3M2Y1OTY1Yzk2ZTE1NmQ3NjBj
NzljZTJhNWRjOTQxNWYuLjk3Zjk2ZmNlZTJhMzdiM2Q5ZDllNjU5NzAxYTYyY2ZmMzkwZTJjNzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRl
bWVudC5jcHAKQEAgLTQwLDcgKzQwLDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKIAotLy8gVGhlIExpZmUtQ3ljbGUgb2YgYSBTUUxTdGF0ZW1lbnQgaS5lLiBXaG8ncyBrZWVw
aW5nIHRoZSBTUUxTdGF0ZW1lbnQgYWxpdmU/IAorLy8gVGhlIExpZmUtQ3ljbGUgb2YgYSBTUUxT
dGF0ZW1lbnQgaS5lLiBXaG8ncyBrZWVwaW5nIHRoZSBTUUxTdGF0ZW1lbnQgYWxpdmU/CiAvLyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQogLy8gVGhlIFJlZlB0ciBjaGFpbiBnb2VzIHNvbWV0aGluZyBsaWtl
IHRoaXM6CiAvLwpAQCAtNzQsMTEgKzc0LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
U1FMU3RhdGVtZW50OjpTUUxTdGF0ZW1lbnQoRGF0YWJhc2UmIGRhdGFiYXNlLCBjb25zdCBTdHJp
bmcmIHN0YXRlbWVudCwgY29uc3QgVmVjdG9yPFNRTFZhbHVlPiYgYXJndW1lbnRzLCBQYXNzUmVm
UHRyPFNRTFN0YXRlbWVudENhbGxiYWNrPiBjYWxsYmFjaywgUGFzc1JlZlB0cjxTUUxTdGF0ZW1l
bnRFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBpbnQgcGVybWlzc2lvbnMpCitTUUxTdGF0
ZW1lbnQ6OlNRTFN0YXRlbWVudChEYXRhYmFzZSYgZGF0YWJhc2UsIGNvbnN0IFN0cmluZyYgc3Rh
dGVtZW50LCBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiBhcmd1bWVudHMsIFJlZlB0cjxTUUxTdGF0
ZW1lbnRDYWxsYmFjaz4mJiBjYWxsYmFjaywgUmVmUHRyPFNRTFN0YXRlbWVudEVycm9yQ2FsbGJh
Y2s+JiYgZXJyb3JDYWxsYmFjaywgaW50IHBlcm1pc3Npb25zKQogICAgIDogbV9zdGF0ZW1lbnQo
c3RhdGVtZW50Lmlzb2xhdGVkQ29weSgpKQogICAgICwgbV9hcmd1bWVudHMoYXJndW1lbnRzKQot
ICAgICwgbV9zdGF0ZW1lbnRDYWxsYmFja1dyYXBwZXIoY2FsbGJhY2ssIGRhdGFiYXNlLnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAsIG1fc3RhdGVtZW50RXJyb3JDYWxsYmFja1dyYXBw
ZXIoZXJyb3JDYWxsYmFjaywgZGF0YWJhc2Uuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAg
ICwgbV9zdGF0ZW1lbnRDYWxsYmFja1dyYXBwZXIoV1RGTW92ZShjYWxsYmFjayksIGRhdGFiYXNl
LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAsIG1fc3RhdGVtZW50RXJyb3JDYWxsYmFj
a1dyYXBwZXIoV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgZGF0YWJhc2Uuc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKQogICAgICwgbV9wZXJtaXNzaW9ucyhwZXJtaXNzaW9ucykKIHsKIH0KQEAgLTg3
LDE0ICs4NywxNCBAQCBTUUxTdGF0ZW1lbnQ6On5TUUxTdGF0ZW1lbnQoKQogewogfQogCi1QYXNz
UmVmUHRyPFNRTEVycm9yPiBTUUxTdGF0ZW1lbnQ6OnNxbEVycm9yKCkgY29uc3QKK1JlZlB0cjxT
UUxFcnJvcj4gU1FMU3RhdGVtZW50OjpzcWxFcnJvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
ZXJyb3I7CiB9CiAKLVBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxTdGF0ZW1lbnQ6OnNxbFJl
c3VsdFNldCgpIGNvbnN0CitTUUxSZXN1bHRTZXQqIFNRTFN0YXRlbWVudDo6c3FsUmVzdWx0U2V0
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9yZXN1bHRTZXQ7CisgICAgcmV0dXJuIG1fcmVzdWx0
U2V0LmdldCgpOwogfQogCiBib29sIFNRTFN0YXRlbWVudDo6ZXhlY3V0ZShEYXRhYmFzZSYgZGIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQu
aAppbmRleCAzNzQ2MDJkYjk5ZjExYTVhZWU3YWRjYTY0OWMyNjRiZmU4Y2YwZGRiLi5kNzQ0NTMz
MDE0MWVlOWY4NzM4MmQwM2ZmYTAyMzY0NmJkYmY2ZjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
Y2xhc3MgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOwogCiBjbGFzcyBTUUxTdGF0ZW1lbnQgewogcHVi
bGljOgotICAgIFNRTFN0YXRlbWVudChEYXRhYmFzZSYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZl
Y3RvcjxTUUxWYWx1ZT4mLCBQYXNzUmVmUHRyPFNRTFN0YXRlbWVudENhbGxiYWNrPiwgUGFzc1Jl
ZlB0cjxTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrPiwgaW50IHBlcm1pc3Npb25zKTsKKyAgICBT
UUxTdGF0ZW1lbnQoRGF0YWJhc2UmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8U1FMVmFs
dWU+JiwgUmVmUHRyPFNRTFN0YXRlbWVudENhbGxiYWNrPiYmLCBSZWZQdHI8U1FMU3RhdGVtZW50
RXJyb3JDYWxsYmFjaz4mJiwgaW50IHBlcm1pc3Npb25zKTsKICAgICB+U1FMU3RhdGVtZW50KCk7
CiAKICAgICBib29sIGV4ZWN1dGUoRGF0YWJhc2UmKTsKQEAgLTU4LDggKzU4LDggQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0RGF0YWJhc2VEZWxldGVkRXJyb3IoKTsKICAgICB2b2lkIHNldFZlcnNp
b25NaXNtYXRjaGVkRXJyb3IoKTsKIAotICAgIFBhc3NSZWZQdHI8U1FMRXJyb3I+IHNxbEVycm9y
KCkgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IHNxbFJlc3VsdFNldCgpIGNv
bnN0OworICAgIFJlZlB0cjxTUUxFcnJvcj4gc3FsRXJyb3IoKSBjb25zdDsKKyAgICBTUUxSZXN1
bHRTZXQqIHNxbFJlc3VsdFNldCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIHZvaWQgc2V0RmFp
bHVyZUR1ZVRvUXVvdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvU1FMVHJhbnNhY3Rpb24uaAppbmRleCBkZWM5YjhhOWRmNmNlYjdjOTk0OTdiZTA0YmM1
MjU1MWI4ZGJmZmY5Li5kZGFjYzhiOThmYWJlNGM0YWM3MTY3MzlkM2Q5YWEzODk5NDZhZDlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2Fj
dGlvbi5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNs
dWRlICJTUUxDYWxsYmFja1dyYXBwZXIuaCIKICNpbmNsdWRlICJTUUxUcmFuc2FjdGlvblN0YXRl
TWFjaGluZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCmlu
ZGV4IDlkMDg2Y2IwYjFjMTg3NmZmOTVmNTUxOGFiZDFhM2RjNzM0MWUyZDguLjgxZDdhMWIyZjM3
Yzg1MWNhOTI3NjY5MmViMTI3ZmI4Y2U3MWFhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAK
QEAgLTIzMCw3ICsyMzAsNyBAQAogLy8gdG8gd2FpdCBmb3IgZnVydGhlciBhY3Rpb24uCiAKIAot
Ly8gVGhlIExpZmUtQ3ljbGUgb2YgYSBTUUxUcmFuc2FjdGlvbiBpLmUuIFdobydzIGtlZXBpbmcg
dGhlIFNRTFRyYW5zYWN0aW9uIGFsaXZlPyAKKy8vIFRoZSBMaWZlLUN5Y2xlIG9mIGEgU1FMVHJh
bnNhY3Rpb24gaS5lLiBXaG8ncyBrZWVwaW5nIHRoZSBTUUxUcmFuc2FjdGlvbiBhbGl2ZT8KIC8v
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGhlIFJlZlB0ciBjaGFpbiBnb2VzIHNvbWV0aGlu
ZyBsaWtlIHRoaXM6CiAvLwpAQCAtMzA3LDcgKzMwNyw3IEBACiAvLyAgICAgLSBEYXRhYmFzZUJh
Y2tlbmQ6OmNsb3NlKCkgd2lsbCBpdGVyYXRlCiAvLyAgICAgICBEYXRhYmFzZUJhY2tlbmQ6Om1f
dHJhbnNhY3Rpb25RdWV1ZSBhbmQgY2FsbAogLy8gICAgICAgbm90aWZ5RGF0YWJhc2VUaHJlYWRJ
c1NodXR0aW5nRG93bigpIG9uIGVhY2ggdHJhbnNhY3Rpb24gdGhlcmUuCi0vLyAgICAgICAgCisv
LwogLy8gICAgIFBoYXNlIDIuIEFmdGVyIHNjaGVkdWxpbmcsIGJlZm9yZSBzdGF0ZSBBY3F1aXJl
TG9jawogLy8KIC8vICAgICAtIElmIHRoZSBpbnRlcnJ1cHRpb24gb2NjdXJlcyBiZWZvcmUgdGhl
IERhdGFiYXNlVHJhbnNhY3Rpb25UYXNrIGlzCkBAIC0zNDMsMTUgKzM0MywxNSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IFNRTFRyYW5zYWN0
aW9uQmFja2VuZDo6Y3JlYXRlKERhdGFiYXNlKiBkYiwgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlv
bj4gZnJvbnRlbmQsIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25XcmFwcGVyPiB3cmFwcGVyLCBi
b29sIHJlYWRPbmx5KQorUmVmPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4gU1FMVHJhbnNhY3Rpb25C
YWNrZW5kOjpjcmVhdGUoRGF0YWJhc2UqIGRiLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb24+JiYgZnJv
bnRlbmQsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbldyYXBwZXI+JiYgd3JhcHBlciwgYm9vbCByZWFk
T25seSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTUUxUcmFuc2FjdGlvbkJhY2tlbmQo
ZGIsIGZyb250ZW5kLCB3cmFwcGVyLCByZWFkT25seSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNRTFRyYW5zYWN0aW9uQmFja2VuZChkYiwgV1RGTW92ZShmcm9udGVuZCksIFdURk1vdmUo
d3JhcHBlciksIHJlYWRPbmx5KSk7CiB9CiAKLVNRTFRyYW5zYWN0aW9uQmFja2VuZDo6U1FMVHJh
bnNhY3Rpb25CYWNrZW5kKERhdGFiYXNlKiBkYiwgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbj4g
ZnJvbnRlbmQsIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25XcmFwcGVyPiB3cmFwcGVyLCBib29s
IHJlYWRPbmx5KQotICAgIDogbV9mcm9udGVuZChmcm9udGVuZCkKK1NRTFRyYW5zYWN0aW9uQmFj
a2VuZDo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kKERhdGFiYXNlKiBkYiwgUmVmUHRyPFNRTFRyYW5z
YWN0aW9uPiYmIGZyb250ZW5kLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25XcmFwcGVyPiYmIHdyYXBw
ZXIsIGJvb2wgcmVhZE9ubHkpCisgICAgOiBtX2Zyb250ZW5kKFdURk1vdmUoZnJvbnRlbmQpKQog
ICAgICwgbV9kYXRhYmFzZShkYikKLSAgICAsIG1fd3JhcHBlcih3cmFwcGVyKQorICAgICwgbV93
cmFwcGVyKFdURk1vdmUod3JhcHBlcikpCiAgICAgLCBtX2hhc0NhbGxiYWNrKG1fZnJvbnRlbmQt
Pmhhc0NhbGxiYWNrKCkpCiAgICAgLCBtX2hhc1N1Y2Nlc3NDYWxsYmFjayhtX2Zyb250ZW5kLT5o
YXNTdWNjZXNzQ2FsbGJhY2soKSkKICAgICAsIG1faGFzRXJyb3JDYWxsYmFjayhtX2Zyb250ZW5k
LT5oYXNFcnJvckNhbGxiYWNrKCkpCkBAIC00MjgsOSArNDI4LDkgQEAgU1FMU3RhdGVtZW50KiBT
UUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmN1cnJlbnRTdGF0ZW1lbnQoKQogICAgIHJldHVybiBtX2N1
cnJlbnRTdGF0ZW1lbnRCYWNrZW5kLmdldCgpOwogfQogCi1QYXNzUmVmUHRyPFNRTEVycm9yPiBT
UUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnRyYW5zYWN0aW9uRXJyb3IoKQorU1FMRXJyb3IqIFNRTFRy
YW5zYWN0aW9uQmFja2VuZDo6dHJhbnNhY3Rpb25FcnJvcigpCiB7Ci0gICAgcmV0dXJuIG1fdHJh
bnNhY3Rpb25FcnJvcjsKKyAgICByZXR1cm4gbV90cmFuc2FjdGlvbkVycm9yLmdldCgpOwogfQog
CiB2b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6c2V0U2hvdWxkUmV0cnlDdXJyZW50U3RhdGVt
ZW50KGJvb2wgc2hvdWxkUmV0cnkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaAppbmRleCAzMGNkZjI5ZWY2
MWIwYjRmZGY5YzA2MzQ0MmI2YmM3MzI0NGFiM2FiLi5iYmZhYzBiODMzMGU0NmUxN2ZjMTVmZDFl
MzNkNjk2MWYxNGUyOGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKQEAgLTU4LDcgKzU4LDcgQEAg
cHVibGljOgogCiBjbGFzcyBTUUxUcmFuc2FjdGlvbkJhY2tlbmQgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiwgcHVibGljIFNRTFRyYW5zYWN0aW9u
U3RhdGVNYWNoaW5lPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4gewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBjcmVhdGUoRGF0YWJhc2UqLCBQYXNzUmVmUHRy
PFNRTFRyYW5zYWN0aW9uPiwgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbldyYXBwZXI+LCBib29s
IHJlYWRPbmx5KTsKKyAgICBzdGF0aWMgUmVmPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4gY3JlYXRl
KERhdGFiYXNlKiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uPiYmLCBSZWZQdHI8U1FMVHJhbnNhY3Rp
b25XcmFwcGVyPiYmLCBib29sIHJlYWRPbmx5KTsKIAogICAgIHZpcnR1YWwgflNRTFRyYW5zYWN0
aW9uQmFja2VuZCgpOwogCkBAIC03MSwxMyArNzEsMTMgQEAgcHVibGljOgogCiAgICAgLy8gQVBJ
cyBjYWxsZWQgZnJvbSB0aGUgZnJvbnRlbmQgcHVibGlzaGVkIHZpYSBTUUxUcmFuc2FjdGlvbkJh
Y2tlbmQ6CiAgICAgdm9pZCByZXF1ZXN0VHJhbnNpdFRvU3RhdGUoU1FMVHJhbnNhY3Rpb25TdGF0
ZSk7Ci0gICAgUGFzc1JlZlB0cjxTUUxFcnJvcj4gdHJhbnNhY3Rpb25FcnJvcigpOworICAgIFNR
TEVycm9yKiB0cmFuc2FjdGlvbkVycm9yKCk7CiAgICAgU1FMU3RhdGVtZW50KiBjdXJyZW50U3Rh
dGVtZW50KCk7CiAgICAgdm9pZCBzZXRTaG91bGRSZXRyeUN1cnJlbnRTdGF0ZW1lbnQoYm9vbCk7
CiAgICAgdm9pZCBleGVjdXRlU1FMKHN0ZDo6dW5pcXVlX3B0cjxTUUxTdGF0ZW1lbnQ+KTsKLSAg
ICAKKwogcHJpdmF0ZToKLSAgICBTUUxUcmFuc2FjdGlvbkJhY2tlbmQoRGF0YWJhc2UqLCBQYXNz
UmVmUHRyPFNRTFRyYW5zYWN0aW9uPiwgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbldyYXBwZXI+
LCBib29sIHJlYWRPbmx5KTsKKyAgICBTUUxUcmFuc2FjdGlvbkJhY2tlbmQoRGF0YWJhc2UqLCBS
ZWZQdHI8U1FMVHJhbnNhY3Rpb24+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbldyYXBwZXI+JiYs
IGJvb2wgcmVhZE9ubHkpOwogCiAgICAgdm9pZCBkb0NsZWFudXAoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282414</attachid>
            <date>2016-06-29 21:32:19 -0700</date>
            <delta_ts>2016-07-05 01:43:47 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-159255-20160630133157.patch</filename>
            <type>text/plain</type>
            <size>25709</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyNTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGVkYTQwZWEyMzg0MDY2
YjQ0YTE5NWJlMGJlY2EyNDkxYmJiZDM4YS4uZTYwNWM3MDgyODA3MjIzYWJiY2VlNDY4ODA0ZGJi
NGNkNjk3ODRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE2LTA2LTI5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBQdXJnZSBQYXNz
UmVmUHRyIGluIE1vZHVsZXMvd2ViZGF0YWJhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTI1NQorCisgICAgICAgIFJldmlld2VkIGJ5IEJlbmph
bWluIFBvdWxhaW4uCisKKyAgICAgICAgQXMgYSBzdGVwIHRvIHJlbW92ZSBQYXNzUmVmUHRyIHVz
ZSwgdGhpcyBwYXRjaCBjbGVhbnMgaXQgdXAgaW4gTW9kdWxlcy93ZWJkYXRhYmFzZS4KKworICAg
ICAgICBBZGRpdGlvbmFsbHkgdW5uZWNlc3Nhcnkgc3BhY2VzIGFuZCB0YWJzIGFyZSByZW1vdmVk
IHRvby4KKworICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBw
ZXIuY3BwOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJh
c2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZTo6fkRhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpzY2hlZHVsZVRy
YW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpydW5UcmFuc2FjdGlvbik6
CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFiYXNlQXV0aG9yaXplcjo6YWxsb3dSZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFz
ZU1hbmFnZXI6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZU1hbmFn
ZXI6OmZ1bGxQYXRoRm9yRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VNYW5h
Z2VyOjpkZXRhaWxzRm9yTmFtZUFuZE9yaWdpbik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZU1hbmFnZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVGFzay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYW5zYWN0aW9uVGFz
azo6RGF0YWJhc2VUcmFuc2FjdGlvblRhc2spOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VUYXNrLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxs
YmFja1dyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTENhbGxiYWNrV3JhcHBlcjo6U1FM
Q2FsbGJhY2tXcmFwcGVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFJlc3Vs
dFNldFJvd0xpc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OlNRTFN0YXRlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OnNxbEVycm9yKToKKyAgICAgICAgKFdlYkNv
cmU6OlNRTFN0YXRlbWVudDo6c3FsUmVzdWx0U2V0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFN0YXRlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0
aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OlNRTFRy
YW5zYWN0aW9uQmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tl
bmQ6OnRyYW5zYWN0aW9uRXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb25CYWNrZW5kLmg6CisKIDIwMTYtMDYtMjggIEppZXdlbiBUYW4gIDxqaWV3ZW5f
dGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgInJlcGxhY2VtZW50IiBjb2RlYwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJz
aW9uV3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5n
ZVZlcnNpb25XcmFwcGVyLmNwcAppbmRleCAzZGFlOTIzNGY2ZTJhNGY2Mzc2ZTkwZTdkYWY3Njlj
MGNiYmMzNWQwLi41MTVlYzI4Zjc1NzU0MzA2YmExNzNkZGI5M2E0YmYyZmJlYmE5NjliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25X
cmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5n
ZVZlcnNpb25XcmFwcGVyLmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiRGF0YWJh
c2UuaCIKICNpbmNsdWRlICJTUUxFcnJvci5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFi
YXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRh
dGFiYXNlLmgKaW5kZXggMWNlMjM5YzQ0ZDkwZWExMjU3YTU3NjI2ZDA5YTYxNDUwZTdiMzkxNi4u
OTBlODQ0OTNiNDk5NjlkMjhiYjUyZjViNDcwNGQ0ZmE5NDRkOTJmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJh
c2UuaApAQCAtMjEsMTQgKzIxLDEzIEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpZm5kZWYg
RE9NV2luZG93V2ViRGF0YWJhc2VfaAogI2RlZmluZSBET01XaW5kb3dXZWJEYXRhYmFzZV9oCiAK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKaW5kZXggZGEzOGUxY2ZmODkxNjA1MDA5YWY3NTVj
NDcyZGQwZTQ0N2FmMTU2My4uMWZmMjM4Y2M3Y2QzMThlZjkzZmEwZTViM2Q0NTA2ZmE4NDdjNzA0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5j
cHAKQEAgLTU0LDcgKzU0LDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1
ZGUgIlZvaWRDYWxsYmFjay5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBA
IC0yMDMsOSArMjAyLDkgQEAgc3RhdGljIERhdGFiYXNlR3VpZCBndWlkRm9yT3JpZ2luQW5kTmFt
ZShjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW0KICAgICByZXR1cm4gZ3Vp
ZDsKIH0KIAotRGF0YWJhc2U6OkRhdGFiYXNlKFBhc3NSZWZQdHI8RGF0YWJhc2VDb250ZXh0PiBk
YXRhYmFzZUNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBleHBlY3Rl
ZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1h
dGVkU2l6ZSkKK0RhdGFiYXNlOjpEYXRhYmFzZShSZWZQdHI8RGF0YWJhc2VDb250ZXh0PiYmIGRh
dGFiYXNlQ29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVk
VmVyc2lvbiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0
ZWRTaXplKQogICAgIDogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGRhdGFiYXNlQ29udGV4dC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICwgbV9kYXRhYmFzZUNvbnRleHQoZGF0YWJh
c2VDb250ZXh0KQorICAgICwgbV9kYXRhYmFzZUNvbnRleHQoV1RGTW92ZShkYXRhYmFzZUNvbnRl
eHQpKQogICAgICwgbV9kZWxldGVkKGZhbHNlKQogICAgICwgbV9uYW1lKG5hbWUuaXNvbGF0ZWRD
b3B5KCkpCiAgICAgLCBtX2V4cGVjdGVkVmVyc2lvbihleHBlY3RlZFZlcnNpb24uaXNvbGF0ZWRD
b3B5KCkpCkBAIC0yNDIsMTIgKzI0MSwxMyBAQCBEYXRhYmFzZTo6RGF0YWJhc2UoUGFzc1JlZlB0
cjxEYXRhYmFzZUNvbnRleHQ+IGRhdGFiYXNlQ29udGV4dCwgY29uc3QgU3RyaW5nJiBuYQogCiBE
YXRhYmFzZTo6fkRhdGFiYXNlKCkKIHsKLSAgICAvLyBUaGUgcmVmZXJlbmNlIHRvIHRoZSBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0IG5lZWRzIHRvIGJlIGNsZWFyZWQgb24gdGhlIEphdmFTY3JpcHQg
dGhyZWFkLiAgSWYgd2UncmUgb24gdGhhdCB0aHJlYWQgYWxyZWFkeSwgd2UgY2FuIGp1c3QgbGV0
IHRoZSBSZWZQdHIncyBkZXN0cnVjdGlvbiBkbyB0aGUgZGVyZWZmaW5nLgorICAgIC8vIFRoZSBy
ZWZlcmVuY2UgdG8gdGhlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgbmVlZHMgdG8gYmUgY2xlYXJl
ZCBvbiB0aGUgSmF2YVNjcmlwdCB0aHJlYWQuCisgICAgLy8gSWYgd2UncmUgb24gdGhhdCB0aHJl
YWQgYWxyZWFkeSwgd2UgY2FuIGp1c3QgbGV0IHRoZSBSZWZQdHIncyBkZXN0cnVjdGlvbiBkbyB0
aGUgZGVyZWZmaW5nLgogICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0NvbnRl
eHRUaHJlYWQoKSkgewogICAgICAgICAvLyBHcmFiIGEgcG9pbnRlciB0byB0aGUgc2NyaXB0IGV4
ZWN1dGlvbiBoZXJlIGJlY2F1c2Ugd2UncmUgcmVsZWFzaW5nIGl0IHdoZW4gd2UgcGFzcyBpdCB0
bwogICAgICAgICAvLyBEZXJlZkNvbnRleHRUYXNrOjpjcmVhdGUuCi0gICAgICAgIFBhc3NSZWZQ
dHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gcGFzc2VkQ29udGV4dCA9IG1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5yZWxlYXNlKCk7Ci0gICAgICAgIHBhc3NlZENvbnRleHQtPnBvc3RUYXNrKHtT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrOjpDbGVhbnVwVGFzaywgW3Bhc3NlZENvbnRleHRd
IChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7CisgICAgICAgIFJlZlB0cjxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0PiBwYXNzZWRDb250ZXh0OworICAgICAgICBwYXNzZWRDb250ZXh0
LT5wb3N0VGFzayh7U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzazo6Q2xlYW51cFRhc2ssIFtw
YXNzZWRDb250ZXh0ID0gV1RGTW92ZShtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpXSAoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgewogICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChj
b250ZXh0LCAmY29udGV4dCA9PSBwYXNzZWRDb250ZXh0KTsKICAgICAgICAgICAgIFJlZlB0cjxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0PiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KHBhc3NlZENvbnRl
eHQpOwogICAgICAgICB9fSk7CkBAIC01NzEsNyArNTcxLDcgQEAgdm9pZCBEYXRhYmFzZTo6c2No
ZWR1bGVUcmFuc2FjdGlvbigpCiAgICAgICAgIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvblF1
ZXVlLnRha2VGaXJzdCgpOwogCiAgICAgaWYgKHRyYW5zYWN0aW9uICYmIGRhdGFiYXNlQ29udGV4
dCgpLT5kYXRhYmFzZVRocmVhZCgpKSB7Ci0gICAgICAgIGF1dG8gdGFzayA9IHN0ZDo6bWFrZV91
bmlxdWU8RGF0YWJhc2VUcmFuc2FjdGlvblRhc2s+KHRyYW5zYWN0aW9uKTsKKyAgICAgICAgYXV0
byB0YXNrID0gc3RkOjptYWtlX3VuaXF1ZTxEYXRhYmFzZVRyYW5zYWN0aW9uVGFzaz4oV1RGTW92
ZSh0cmFuc2FjdGlvbikpOwogICAgICAgICBMT0coU3RvcmFnZUFQSSwgIlNjaGVkdWxpbmcgRGF0
YWJhc2VUcmFuc2FjdGlvblRhc2sgJXAgZm9yIHRyYW5zYWN0aW9uICVwXG4iLCB0YXNrLmdldCgp
LCB0YXNrLT50cmFuc2FjdGlvbigpKTsKICAgICAgICAgbV90cmFuc2FjdGlvbkluUHJvZ3Jlc3Mg
PSB0cnVlOwogICAgICAgICBkYXRhYmFzZUNvbnRleHQoKS0+ZGF0YWJhc2VUaHJlYWQoKS0+c2No
ZWR1bGVUYXNrKFdURk1vdmUodGFzaykpOwpAQCAtNTg5LDcgKzU4OSw3IEBAIFJlZlB0cjxTUUxU
cmFuc2FjdGlvbkJhY2tlbmQ+IERhdGFiYXNlOjpydW5UcmFuc2FjdGlvbihSZWY8U1FMVHJhbnNh
Y3Rpb24+JiYgdHJhCiAgICAgaWYgKGRhdGEpCiAgICAgICAgIHdyYXBwZXIgPSBDaGFuZ2VWZXJz
aW9uV3JhcHBlcjo6Y3JlYXRlKGRhdGEtPm9sZFZlcnNpb24oKSwgZGF0YS0+bmV3VmVyc2lvbigp
KTsKIAotICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IHRyYW5zYWN0aW9uQmFja2Vu
ZCA9IFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6Y3JlYXRlKHRoaXMsIFdURk1vdmUodHJhbnNhY3Rp
b24pLCB3cmFwcGVyLCByZWFkT25seSk7CisgICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2Vu
ZD4gdHJhbnNhY3Rpb25CYWNrZW5kID0gU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpjcmVhdGUodGhp
cywgV1RGTW92ZSh0cmFuc2FjdGlvbiksIFdURk1vdmUod3JhcHBlciksIHJlYWRPbmx5KTsKICAg
ICBtX3RyYW5zYWN0aW9uUXVldWUuYXBwZW5kKHRyYW5zYWN0aW9uQmFja2VuZCk7CiAgICAgaWYg
KCFtX3RyYW5zYWN0aW9uSW5Qcm9ncmVzcykKICAgICAgICAgc2NoZWR1bGVUcmFuc2FjdGlvbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCmluZGV4
IDg4ZWNkMWNiOTEzNTJhMTEzZmFiMGE3MGYxZDc5MmNjYjIwMjk3NDcuLjFlMTAwMGYyYjVmMGE3
MzllMTZhOWY0ZWI1ZGU0MzYwZDQ4ZGMxY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlLmgKQEAgLTEyNSw3ICsxMjUsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBwZXJmb3JtQ2xvc2UoKTsKIAogcHJpdmF0ZToKLSAgICBEYXRhYmFzZShQYXNzUmVmUHRy
PERhdGFiYXNlQ29udGV4dD4sIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBleHBl
Y3RlZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0
aW1hdGVkU2l6ZSk7CisgICAgRGF0YWJhc2UoUmVmUHRyPERhdGFiYXNlQ29udGV4dD4mJiwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkVmVyc2lvbiwgY29uc3QgU3Ry
aW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplKTsKIAogICAgIHZv
aWQgY2xvc2VEYXRhYmFzZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAKaW5kZXggMDkzM2YyMDZjY2Rk
ODg2ZTU2Yzk1ZTY2MzMyNmFmOThmZDU4Mjc2ZC4uMTAzMTBhMGYzYTI3ZDQwMTYzODkwZTI3Mzc4
MjYxZDVjN2RkZTQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmNwcApAQCAtMjksNyArMjksNiBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlQXV0aG9yaXplci5oIgogCi0jaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzQ0LDcgKzM0Myw3IEBAIGludCBEYXRhYmFzZUF1
dGhvcml6ZXI6OmFsbG93UmVhZChjb25zdCBTdHJpbmcmIHRhYmxlTmFtZSwgY29uc3QgU3RyaW5n
JikKIHsKICAgICBpZiAobV9wZXJtaXNzaW9ucyAmIE5vQWNjZXNzTWFzayAmJiBtX3NlY3VyaXR5
RW5hYmxlZCkKICAgICAgICAgcmV0dXJuIFNRTEF1dGhEZW55OwotICAgIAorCiAgICAgcmV0dXJu
IGRlbnlCYXNlZE9uVGFibGVOYW1lKHRhYmxlTmFtZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcAppbmRleCBh
ZmM3ODhmMjQzMGEyMzA3NzdmMjgzYjRmMGEzYTE0ZWY3YmEwM2I3Li4wMDQxMTY5YjZlZDYxN2Nl
ZGYwNTc3NDg2YWQ5NTVhYmY2MGMwYjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwCkBAIC0yMCw3ICsyMCw3IEBA
CiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKQEAgLTI3Miw3ICsy
NzIsNyBAQCB2b2lkIERhdGFiYXNlTWFuYWdlcjo6cmVtb3ZlUHJvcG9zZWREYXRhYmFzZShQcm9w
b3NlZERhdGFiYXNlKiBwcm9wb3NlZERiKQogCiBSZWZQdHI8RGF0YWJhc2U+IERhdGFiYXNlTWFu
YWdlcjo6b3BlbkRhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsCiAgICAg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkVmVyc2lvbiwgY29uc3Qg
U3RyaW5nJiBkaXNwbGF5TmFtZSwKLSAgICB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUsIFBh
c3NSZWZQdHI8RGF0YWJhc2VDYWxsYmFjaz4gY3JlYXRpb25DYWxsYmFjaywKKyAgICB1bnNpZ25l
ZCBsb25nIGVzdGltYXRlZFNpemUsIFJlZlB0cjxEYXRhYmFzZUNhbGxiYWNrPiYmIGNyZWF0aW9u
Q2FsbGJhY2ssCiAgICAgRGF0YWJhc2VFcnJvciYgZXJyb3IpCiB7CiAgICAgU2NyaXB0Q29udHJv
bGxlcjo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwpAQCAtMzI3LDcgKzMyNyw3IEBAIFN0cmluZyBE
YXRhYmFzZU1hbmFnZXI6OmZ1bGxQYXRoRm9yRGF0YWJhc2UoU2VjdXJpdHlPcmlnaW4qIG9yaWdp
biwgY29uc3QgU3RyaW5nCiAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAg
ICB9CiAgICAgfQotICAgIAorCiAgICAgcmV0dXJuIG1fc2VydmVyLT5mdWxsUGF0aEZvckRhdGFi
YXNlKG9yaWdpbiwgbmFtZSwgY3JlYXRlSWZEb2VzTm90RXhpc3QpOwogfQogCkBAIC0zNTAsMTYg
KzM1MCwxNiBAQCBEYXRhYmFzZURldGFpbHMgRGF0YWJhc2VNYW5hZ2VyOjpkZXRhaWxzRm9yTmFt
ZUFuZE9yaWdpbihjb25zdCBTdHJpbmcmIG5hbWUsIFNlYwogewogICAgIHsKICAgICAgICAgc3Rk
Ojpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV9tdXRleCk7Ci0gICAgICAgIAorCiAgICAgICAgIGZv
ciAoYXV0byogcHJvcG9zZWREYXRhYmFzZSA6IG1fcHJvcG9zZWREYXRhYmFzZXMpIHsKICAgICAg
ICAgICAgIGlmIChwcm9wb3NlZERhdGFiYXNlLT5kZXRhaWxzKCkubmFtZSgpID09IG5hbWUgJiYg
cHJvcG9zZWREYXRhYmFzZS0+b3JpZ2luKCktPmVxdWFsKG9yaWdpbikpIHsKICAgICAgICAgICAg
ICAgICBBU1NFUlQocHJvcG9zZWREYXRhYmFzZS0+ZGV0YWlscygpLnRocmVhZElEKCkgPT0gc3Rk
Ojp0aGlzX3RocmVhZDo6Z2V0X2lkKCkgfHwgaXNNYWluVGhyZWFkKCkpOwotICAgICAgICAgICAg
ICAgIAorCiAgICAgICAgICAgICAgICAgcmV0dXJuIHByb3Bvc2VkRGF0YWJhc2UtPmRldGFpbHMo
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KLSAgICAKKwogICAgIHJldHVybiBt
X3NlcnZlci0+ZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4obmFtZSwgb3JpZ2luKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2Vy
LmgKaW5kZXggNDFjZDdmZTc1ZDdkMWNkNWRjYTdhN2EzMWQxNzA2NjMxOTJlZDZmYi4uYmE0MWYx
Y2JhOTA5NWYyY2ZiYTEyYmNlM2QyNTY5YWY2MWMxYjc4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5oCkBAIC0yMCw3ICsy
MCw3IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpZm5kZWYgRGF0YWJhc2VNYW5hZ2VyX2gK
QEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtODEsNyArODAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgRXhjZXB0aW9uQ29kZSBl
eGNlcHRpb25Db2RlRm9yRGF0YWJhc2VFcnJvcihEYXRhYmFzZUVycm9yKTsKIAotICAgIFJlZlB0
cjxEYXRhYmFzZT4gb3BlbkRhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZXhwZWN0ZWRWZXJzaW9uLCBjb25zdCBTdHJpbmcm
IGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUsIFBhc3NSZWZQdHI8RGF0
YWJhc2VDYWxsYmFjaz4sIERhdGFiYXNlRXJyb3ImKTsKKyAgICBSZWZQdHI8RGF0YWJhc2U+IG9w
ZW5EYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIGV4cGVjdGVkVmVyc2lvbiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwg
dW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBSZWZQdHI8RGF0YWJhc2VDYWxsYmFjaz4mJiwg
RGF0YWJhc2VFcnJvciYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNPcGVuRGF0YWJh
c2VzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlU2VydmVyLmNwcAppbmRleCA2MjRhNzM3YzUy
NWI5NTdiNzFlZWVlNjZmNTlhYjRkMGVmYTdiZWJmLi44Njk2MzQ0ZDkxZDgyNTdmMGJkZjZhMGNk
YTgxYjBlYjMwYTJmNjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlU2VydmVyLmNwcApAQCAtMjAsNyArMjAsNyBAQAogICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQogICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCkBAIC0xMTcsNyArMTE3LDcgQEAgUmVm
UHRyPERhdGFiYXNlPiBEYXRhYmFzZVNlcnZlcjo6b3BlbkRhdGFiYXNlKFJlZlB0cjxEYXRhYmFz
ZUNvbnRleHQ+JiBiYWNrZW5kQ28KIHsKICAgICBSZWZQdHI8RGF0YWJhc2U+IGRhdGFiYXNlOwog
ICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOyAvLyBNYWtlIHNvbWUgb2xkZXIgY29tcGlsZXJzIGhh
cHB5LgotICAgIAorCiAgICAgc3dpdGNoIChhdHRlbXB0KSB7CiAgICAgY2FzZSBGaXJzdFRyeVRv
T3BlbkRhdGFiYXNlOgogICAgICAgICBzdWNjZXNzID0gRGF0YWJhc2VUcmFja2VyOjp0cmFja2Vy
KCkuY2FuRXN0YWJsaXNoRGF0YWJhc2UoYmFja2VuZENvbnRleHQuZ2V0KCksIG5hbWUsIGVzdGlt
YXRlZFNpemUsIGVycm9yKTsKQEAgLTEzMyw3ICsxMzMsNyBAQCBSZWZQdHI8RGF0YWJhc2U+IERh
dGFiYXNlU2VydmVyOjpvcGVuRGF0YWJhc2UoUmVmUHRyPERhdGFiYXNlQ29udGV4dD4mIGJhY2tl
bmRDbwogCiBSZWZQdHI8RGF0YWJhc2U+IERhdGFiYXNlU2VydmVyOjpjcmVhdGVEYXRhYmFzZShS
ZWZQdHI8RGF0YWJhc2VDb250ZXh0PiYgYmFja2VuZENvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiBleHBlY3RlZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5h
bWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSwgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRh
YmFzZSwgRGF0YWJhc2VFcnJvciYgZXJyb3IsIFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewotICAg
IFJlZlB0cjxEYXRhYmFzZT4gZGF0YWJhc2UgPSBhZG9wdFJlZihuZXcgRGF0YWJhc2UoYmFja2Vu
ZENvbnRleHQsIG5hbWUsIGV4cGVjdGVkVmVyc2lvbiwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNp
emUpKTsKKyAgICBSZWZQdHI8RGF0YWJhc2U+IGRhdGFiYXNlID0gYWRvcHRSZWYobmV3IERhdGFi
YXNlKGJhY2tlbmRDb250ZXh0LmNvcHlSZWYoKSwgbmFtZSwgZXhwZWN0ZWRWZXJzaW9uLCBkaXNw
bGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSkpOwogCiAgICAgaWYgKCFkYXRhYmFzZS0+b3BlbkFuZFZl
cmlmeVZlcnNpb24oc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIGVycm9yLCBlcnJvck1lc3NhZ2Up
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmNwcAppbmRleCA2ZGJmNTdmNWI0ODdhZjE0YzA3
YTAyN2E3MzI4NGQ1ODhmYTk1YmU3Li5iODcxNTE1ZGI4M2E5ZTA0MDVjMGQ5ZTcyOWJiZWRlZmI5
NGYzYmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVGFzay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRhc2suY3BwCkBAIC0xNDQsOSArMTQ0LDkgQEAgY29uc3QgY2hhciogRGF0YWJhc2VD
bG9zZVRhc2s6OmRlYnVnVGFza05hbWUoKSBjb25zdAogLy8gKioqIERhdGFiYXNlVHJhbnNhY3Rp
b25UYXNrICoqKgogLy8gU3RhcnRzIGEgdHJhbnNhY3Rpb24gdGhhdCB3aWxsIHJlcG9ydCBpdHMg
cmVzdWx0cyB2aWEgYSBjYWxsYmFjay4KIAotRGF0YWJhc2VUcmFuc2FjdGlvblRhc2s6OkRhdGFi
YXNlVHJhbnNhY3Rpb25UYXNrKFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiB0cmFu
c2FjdGlvbikKK0RhdGFiYXNlVHJhbnNhY3Rpb25UYXNrOjpEYXRhYmFzZVRyYW5zYWN0aW9uVGFz
ayhSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiYmIHRyYW5zYWN0aW9uKQogICAgIDogRGF0
YWJhc2VUYXNrKCp0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKSwgMCkKLSAgICAsIG1fdHJhbnNhY3Rp
b24odHJhbnNhY3Rpb24pCisgICAgLCBtX3RyYW5zYWN0aW9uKFdURk1vdmUodHJhbnNhY3Rpb24p
KQogICAgICwgbV9kaWRQZXJmb3JtVGFzayhmYWxzZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oCmluZGV4IDJmZjhkZjVlN2Rh
NWQwMWVhZGI1YzAzMDU0MzczZjk2YmE0NDk5YjcuLmU1ZjQ3NWMwYWEwZGRmNzUwMDkwNGQwYmM2
NDAzZDkyZmNhODY4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VUYXNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRhc2suaApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIlNRTFRyYW5z
YWN0aW9uQmFja2VuZC5oIgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3
dGYvTG9jay5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xMjMsNyArMTIy
LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgRGF0YWJhc2VUcmFuc2FjdGlvblRhc2sgOiBwdWJsaWMg
RGF0YWJhc2VUYXNrIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBEYXRhYmFzZVRyYW5zYWN0aW9u
VGFzayhQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4pOworICAgIGV4cGxpY2l0IERh
dGFiYXNlVHJhbnNhY3Rpb25UYXNrKFJlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+JiYpOwog
ICAgIHZpcnR1YWwgfkRhdGFiYXNlVHJhbnNhY3Rpb25UYXNrKCk7CiAKICAgICBTUUxUcmFuc2Fj
dGlvbkJhY2tlbmQqIHRyYW5zYWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc2FjdGlvbi5n
ZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxDYWxsYmFja1dyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
U1FMQ2FsbGJhY2tXcmFwcGVyLmgKaW5kZXggYjY0NTQ4MjBmNzM3NTYxZjMwYmNhYTUwYjBhNjI4
MWIyMzlkY2Y4MC4uYTY1Y2NiNzA0ZDllMWRmZTQ5OTYyOTFiZDBlZmUyYWM1OGZiZDg2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxsYmFja1dy
YXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxi
YWNrV3JhcHBlci5oCkBAIC00MSw4ICs0MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIC0g
YnkgdW53cmFwcGluZyBhbmQgdGhlbiBkZXJlZmVyZW5jaW5nIG5vcm1hbGx5IC0gb24gY29udGV4
dCB0aHJlYWQgb25seQogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgU1FMQ2FsbGJhY2tXcmFw
cGVyIHsKIHB1YmxpYzoKLSAgICBTUUxDYWxsYmFja1dyYXBwZXIoUGFzc1JlZlB0cjxUPiBjYWxs
YmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKLSAg
ICAgICAgOiBtX2NhbGxiYWNrKGNhbGxiYWNrKQorICAgIFNRTENhbGxiYWNrV3JhcHBlcihSZWZQ
dHI8VD4mJiBjYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkKKyAgICAgICAgOiBtX2NhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQogICAgICAg
ICAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChtX2NhbGxiYWNrID8gc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCA6IDApCiAgICAgewogICAgICAgICBBU1NFUlQoIW1fY2FsbGJhY2sgfHwgKG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5nZXQoKSAmJiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlz
Q29udGV4dFRocmVhZCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFJlc3VsdFNldFJvd0xpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMUmVzdWx0U2V0Um93TGlzdC5oCmluZGV4IGVlZjE0OGQ3YjZjZmIxYjI0
NmZkMjIwYjJmODM5NzlkNjk1N2I4YzYuLjU1ZGUyZmI5NTFmODViMWEyZDJjODk1ZDMzYmE5NzU0
MmI4YTYxNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
U1FMUmVzdWx0U2V0Um93TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvU1FMUmVzdWx0U2V0Um93TGlzdC5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaWZuZGVmIFNR
TFJlc3VsdFNldFJvd0xpc3RfaAogI2RlZmluZSBTUUxSZXN1bHRTZXRSb3dMaXN0X2gKIAotI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNp
bmNsdWRlICJTUUxWYWx1ZS5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAKaW5kZXggNGQ2YmIzZjczZjU5NjVjOTZlMTU2ZDc2
MGM3OWNlMmE1ZGM5NDE1Zi4uYzFhZjkwYTNjOTAwZDdjYzJjODBiMmYzOGJkMTE1ZjMyMGM2YTU1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3Rh
dGVtZW50LmNwcApAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogCi0vLyBUaGUgTGlmZS1DeWNsZSBvZiBhIFNRTFN0YXRlbWVudCBpLmUuIFdobydzIGtl
ZXBpbmcgdGhlIFNRTFN0YXRlbWVudCBhbGl2ZT8gCisvLyBUaGUgTGlmZS1DeWNsZSBvZiBhIFNR
TFN0YXRlbWVudCBpLmUuIFdobydzIGtlZXBpbmcgdGhlIFNRTFN0YXRlbWVudCBhbGl2ZT8KIC8v
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CiAvLyBUaGUgUmVmUHRyIGNoYWluIGdvZXMgc29tZXRoaW5nIGxp
a2UgdGhpczoKIC8vCkBAIC03NCwxMSArNzQsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1TUUxTdGF0ZW1lbnQ6OlNRTFN0YXRlbWVudChEYXRhYmFzZSYgZGF0YWJhc2UsIGNvbnN0IFN0
cmluZyYgc3RhdGVtZW50LCBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiBhcmd1bWVudHMsIFBhc3NS
ZWZQdHI8U1FMU3RhdGVtZW50Q2FsbGJhY2s+IGNhbGxiYWNrLCBQYXNzUmVmUHRyPFNRTFN0YXRl
bWVudEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssIGludCBwZXJtaXNzaW9ucykKK1NRTFN0
YXRlbWVudDo6U1FMU3RhdGVtZW50KERhdGFiYXNlJiBkYXRhYmFzZSwgY29uc3QgU3RyaW5nJiBz
dGF0ZW1lbnQsIGNvbnN0IFZlY3RvcjxTUUxWYWx1ZT4mIGFyZ3VtZW50cywgUmVmUHRyPFNRTFN0
YXRlbWVudENhbGxiYWNrPiYmIGNhbGxiYWNrLCBSZWZQdHI8U1FMU3RhdGVtZW50RXJyb3JDYWxs
YmFjaz4mJiBlcnJvckNhbGxiYWNrLCBpbnQgcGVybWlzc2lvbnMpCiAgICAgOiBtX3N0YXRlbWVu
dChzdGF0ZW1lbnQuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX2FyZ3VtZW50cyhhcmd1bWVudHMp
Ci0gICAgLCBtX3N0YXRlbWVudENhbGxiYWNrV3JhcHBlcihjYWxsYmFjaywgZGF0YWJhc2Uuc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICwgbV9zdGF0ZW1lbnRFcnJvckNhbGxiYWNrV3Jh
cHBlcihlcnJvckNhbGxiYWNrLCBkYXRhYmFzZS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisg
ICAgLCBtX3N0YXRlbWVudENhbGxiYWNrV3JhcHBlcihXVEZNb3ZlKGNhbGxiYWNrKSwgZGF0YWJh
c2Uuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICwgbV9zdGF0ZW1lbnRFcnJvckNhbGxi
YWNrV3JhcHBlcihXVEZNb3ZlKGVycm9yQ2FsbGJhY2spLCBkYXRhYmFzZS5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCiAgICAgLCBtX3Blcm1pc3Npb25zKHBlcm1pc3Npb25zKQogewogfQpAQCAt
ODcsMTQgKzg3LDE0IEBAIFNRTFN0YXRlbWVudDo6flNRTFN0YXRlbWVudCgpCiB7CiB9CiAKLVBh
c3NSZWZQdHI8U1FMRXJyb3I+IFNRTFN0YXRlbWVudDo6c3FsRXJyb3IoKSBjb25zdAorU1FMRXJy
b3IqIFNRTFN0YXRlbWVudDo6c3FsRXJyb3IoKSBjb25zdAogewotICAgIHJldHVybiBtX2Vycm9y
OworICAgIHJldHVybiBtX2Vycm9yLmdldCgpOwogfQogCi1QYXNzUmVmUHRyPFNRTFJlc3VsdFNl
dD4gU1FMU3RhdGVtZW50OjpzcWxSZXN1bHRTZXQoKSBjb25zdAorU1FMUmVzdWx0U2V0KiBTUUxT
dGF0ZW1lbnQ6OnNxbFJlc3VsdFNldCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcmVzdWx0U2V0
OworICAgIHJldHVybiBtX3Jlc3VsdFNldC5nZXQoKTsKIH0KIAogYm9vbCBTUUxTdGF0ZW1lbnQ6
OmV4ZWN1dGUoRGF0YWJhc2UmIGRiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvU1FMU3RhdGVtZW50LmgKaW5kZXggMzc0NjAyZGI5OWYxMWE1YWVlN2FkY2E2NDlj
MjY0YmZlOGNmMGRkYi4uNDNjN2M0OGU5ZDRlOGY1NDAxMjY3ZTAzZjlkYzgwMGMzMTQ4ZjY2MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVu
dC5oCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIFNRTFRyYW5zYWN0aW9uQmFja2VuZDsKIAogY2xh
c3MgU1FMU3RhdGVtZW50IHsKIHB1YmxpYzoKLSAgICBTUUxTdGF0ZW1lbnQoRGF0YWJhc2UmLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiwgUGFzc1JlZlB0cjxTUUxTdGF0
ZW1lbnRDYWxsYmFjaz4sIFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaz4sIGlu
dCBwZXJtaXNzaW9ucyk7CisgICAgU1FMU3RhdGVtZW50KERhdGFiYXNlJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgVmVjdG9yPFNRTFZhbHVlPiYsIFJlZlB0cjxTUUxTdGF0ZW1lbnRDYWxsYmFjaz4m
JiwgUmVmUHRyPFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s+JiYsIGludCBwZXJtaXNzaW9ucyk7
CiAgICAgflNRTFN0YXRlbWVudCgpOwogCiAgICAgYm9vbCBleGVjdXRlKERhdGFiYXNlJik7CkBA
IC01OCw4ICs1OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERhdGFiYXNlRGVsZXRlZEVycm9y
KCk7CiAgICAgdm9pZCBzZXRWZXJzaW9uTWlzbWF0Y2hlZEVycm9yKCk7CiAKLSAgICBQYXNzUmVm
UHRyPFNRTEVycm9yPiBzcWxFcnJvcigpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8U1FMUmVzdWx0
U2V0PiBzcWxSZXN1bHRTZXQoKSBjb25zdDsKKyAgICBTUUxFcnJvciogc3FsRXJyb3IoKSBjb25z
dDsKKyAgICBTUUxSZXN1bHRTZXQqIHNxbFJlc3VsdFNldCgpIGNvbnN0OwogCiBwcml2YXRlOgog
ICAgIHZvaWQgc2V0RmFpbHVyZUR1ZVRvUXVvdGEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaAppbmRleCBkZWM5YjhhOWRmNmNl
YjdjOTk0OTdiZTA0YmM1MjU1MWI4ZGJmZmY5Li5kZGFjYzhiOThmYWJlNGM0YWM3MTY3MzlkM2Q5
YWEzODk5NDZhZDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTFRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbi5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiRXZlbnRU
YXJnZXQuaCIKICNpbmNsdWRlICJTUUxDYWxsYmFja1dyYXBwZXIuaCIKICNpbmNsdWRlICJTUUxU
cmFuc2FjdGlvblN0YXRlTWFjaGluZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tl
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlv
bkJhY2tlbmQuY3BwCmluZGV4IDlkMDg2Y2IwYjFjMTg3NmZmOTVmNTUxOGFiZDFhM2RjNzM0MWUy
ZDguLjgxZDdhMWIyZjM3Yzg1MWNhOTI3NjY5MmViMTI3ZmI4Y2U3MWFhNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0
aW9uQmFja2VuZC5jcHAKQEAgLTIzMCw3ICsyMzAsNyBAQAogLy8gdG8gd2FpdCBmb3IgZnVydGhl
ciBhY3Rpb24uCiAKIAotLy8gVGhlIExpZmUtQ3ljbGUgb2YgYSBTUUxUcmFuc2FjdGlvbiBpLmUu
IFdobydzIGtlZXBpbmcgdGhlIFNRTFRyYW5zYWN0aW9uIGFsaXZlPyAKKy8vIFRoZSBMaWZlLUN5
Y2xlIG9mIGEgU1FMVHJhbnNhY3Rpb24gaS5lLiBXaG8ncyBrZWVwaW5nIHRoZSBTUUxUcmFuc2Fj
dGlvbiBhbGl2ZT8KIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gVGhlIFJlZlB0ciBjaGFp
biBnb2VzIHNvbWV0aGluZyBsaWtlIHRoaXM6CiAvLwpAQCAtMzA3LDcgKzMwNyw3IEBACiAvLyAg
ICAgLSBEYXRhYmFzZUJhY2tlbmQ6OmNsb3NlKCkgd2lsbCBpdGVyYXRlCiAvLyAgICAgICBEYXRh
YmFzZUJhY2tlbmQ6Om1fdHJhbnNhY3Rpb25RdWV1ZSBhbmQgY2FsbAogLy8gICAgICAgbm90aWZ5
RGF0YWJhc2VUaHJlYWRJc1NodXR0aW5nRG93bigpIG9uIGVhY2ggdHJhbnNhY3Rpb24gdGhlcmUu
Ci0vLyAgICAgICAgCisvLwogLy8gICAgIFBoYXNlIDIuIEFmdGVyIHNjaGVkdWxpbmcsIGJlZm9y
ZSBzdGF0ZSBBY3F1aXJlTG9jawogLy8KIC8vICAgICAtIElmIHRoZSBpbnRlcnJ1cHRpb24gb2Nj
dXJlcyBiZWZvcmUgdGhlIERhdGFiYXNlVHJhbnNhY3Rpb25UYXNrIGlzCkBAIC0zNDMsMTUgKzM0
MywxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxTUUxUcmFuc2FjdGlvbkJhY2tl
bmQ+IFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6Y3JlYXRlKERhdGFiYXNlKiBkYiwgUGFzc1JlZlB0
cjxTUUxUcmFuc2FjdGlvbj4gZnJvbnRlbmQsIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25XcmFw
cGVyPiB3cmFwcGVyLCBib29sIHJlYWRPbmx5KQorUmVmPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4g
U1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpjcmVhdGUoRGF0YWJhc2UqIGRiLCBSZWZQdHI8U1FMVHJh
bnNhY3Rpb24+JiYgZnJvbnRlbmQsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbldyYXBwZXI+JiYgd3Jh
cHBlciwgYm9vbCByZWFkT25seSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTUUxUcmFu
c2FjdGlvbkJhY2tlbmQoZGIsIGZyb250ZW5kLCB3cmFwcGVyLCByZWFkT25seSkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNRTFRyYW5zYWN0aW9uQmFja2VuZChkYiwgV1RGTW92ZShmcm9u
dGVuZCksIFdURk1vdmUod3JhcHBlciksIHJlYWRPbmx5KSk7CiB9CiAKLVNRTFRyYW5zYWN0aW9u
QmFja2VuZDo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kKERhdGFiYXNlKiBkYiwgUGFzc1JlZlB0cjxT
UUxUcmFuc2FjdGlvbj4gZnJvbnRlbmQsIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25XcmFwcGVy
PiB3cmFwcGVyLCBib29sIHJlYWRPbmx5KQotICAgIDogbV9mcm9udGVuZChmcm9udGVuZCkKK1NR
TFRyYW5zYWN0aW9uQmFja2VuZDo6U1FMVHJhbnNhY3Rpb25CYWNrZW5kKERhdGFiYXNlKiBkYiwg
UmVmUHRyPFNRTFRyYW5zYWN0aW9uPiYmIGZyb250ZW5kLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25X
cmFwcGVyPiYmIHdyYXBwZXIsIGJvb2wgcmVhZE9ubHkpCisgICAgOiBtX2Zyb250ZW5kKFdURk1v
dmUoZnJvbnRlbmQpKQogICAgICwgbV9kYXRhYmFzZShkYikKLSAgICAsIG1fd3JhcHBlcih3cmFw
cGVyKQorICAgICwgbV93cmFwcGVyKFdURk1vdmUod3JhcHBlcikpCiAgICAgLCBtX2hhc0NhbGxi
YWNrKG1fZnJvbnRlbmQtPmhhc0NhbGxiYWNrKCkpCiAgICAgLCBtX2hhc1N1Y2Nlc3NDYWxsYmFj
ayhtX2Zyb250ZW5kLT5oYXNTdWNjZXNzQ2FsbGJhY2soKSkKICAgICAsIG1faGFzRXJyb3JDYWxs
YmFjayhtX2Zyb250ZW5kLT5oYXNFcnJvckNhbGxiYWNrKCkpCkBAIC00MjgsOSArNDI4LDkgQEAg
U1FMU3RhdGVtZW50KiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmN1cnJlbnRTdGF0ZW1lbnQoKQog
ICAgIHJldHVybiBtX2N1cnJlbnRTdGF0ZW1lbnRCYWNrZW5kLmdldCgpOwogfQogCi1QYXNzUmVm
UHRyPFNRTEVycm9yPiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnRyYW5zYWN0aW9uRXJyb3IoKQor
U1FMRXJyb3IqIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6dHJhbnNhY3Rpb25FcnJvcigpCiB7Ci0g
ICAgcmV0dXJuIG1fdHJhbnNhY3Rpb25FcnJvcjsKKyAgICByZXR1cm4gbV90cmFuc2FjdGlvbkVy
cm9yLmdldCgpOwogfQogCiB2b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6c2V0U2hvdWxkUmV0
cnlDdXJyZW50U3RhdGVtZW50KGJvb2wgc2hvdWxkUmV0cnkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaApp
bmRleCAzMGNkZjI5ZWY2MWIwYjRmZGY5YzA2MzQ0MmI2YmM3MzI0NGFiM2FiLi5iYmZhYzBiODMz
MGU0NmUxN2ZjMTVmZDFlMzNkNjk2MWYxNGUyOGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKQEAg
LTU4LDcgKzU4LDcgQEAgcHVibGljOgogCiBjbGFzcyBTUUxUcmFuc2FjdGlvbkJhY2tlbmQgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiwgcHVibGlj
IFNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBjcmVhdGUoRGF0YWJh
c2UqLCBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uPiwgUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlv
bldyYXBwZXI+LCBib29sIHJlYWRPbmx5KTsKKyAgICBzdGF0aWMgUmVmPFNRTFRyYW5zYWN0aW9u
QmFja2VuZD4gY3JlYXRlKERhdGFiYXNlKiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uPiYmLCBSZWZQ
dHI8U1FMVHJhbnNhY3Rpb25XcmFwcGVyPiYmLCBib29sIHJlYWRPbmx5KTsKIAogICAgIHZpcnR1
YWwgflNRTFRyYW5zYWN0aW9uQmFja2VuZCgpOwogCkBAIC03MSwxMyArNzEsMTMgQEAgcHVibGlj
OgogCiAgICAgLy8gQVBJcyBjYWxsZWQgZnJvbSB0aGUgZnJvbnRlbmQgcHVibGlzaGVkIHZpYSBT
UUxUcmFuc2FjdGlvbkJhY2tlbmQ6CiAgICAgdm9pZCByZXF1ZXN0VHJhbnNpdFRvU3RhdGUoU1FM
VHJhbnNhY3Rpb25TdGF0ZSk7Ci0gICAgUGFzc1JlZlB0cjxTUUxFcnJvcj4gdHJhbnNhY3Rpb25F
cnJvcigpOworICAgIFNRTEVycm9yKiB0cmFuc2FjdGlvbkVycm9yKCk7CiAgICAgU1FMU3RhdGVt
ZW50KiBjdXJyZW50U3RhdGVtZW50KCk7CiAgICAgdm9pZCBzZXRTaG91bGRSZXRyeUN1cnJlbnRT
dGF0ZW1lbnQoYm9vbCk7CiAgICAgdm9pZCBleGVjdXRlU1FMKHN0ZDo6dW5pcXVlX3B0cjxTUUxT
dGF0ZW1lbnQ+KTsKLSAgICAKKwogcHJpdmF0ZToKLSAgICBTUUxUcmFuc2FjdGlvbkJhY2tlbmQo
RGF0YWJhc2UqLCBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uPiwgUGFzc1JlZlB0cjxTUUxUcmFu
c2FjdGlvbldyYXBwZXI+LCBib29sIHJlYWRPbmx5KTsKKyAgICBTUUxUcmFuc2FjdGlvbkJhY2tl
bmQoRGF0YWJhc2UqLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb24+JiYsIFJlZlB0cjxTUUxUcmFuc2Fj
dGlvbldyYXBwZXI+JiYsIGJvb2wgcmVhZE9ubHkpOwogCiAgICAgdm9pZCBkb0NsZWFudXAoKTsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282758</attachid>
            <date>2016-07-05 01:43:56 -0700</date>
            <delta_ts>2016-07-12 18:25:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159255-20160705174325.patch</filename>
            <type>text/plain</type>
            <size>23536</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAyODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmE1ZDdhMGYwNzBiNjVk
ZmUxMWE0MTA4ZWJmYTEwOGQ1NTAzMTBhMy4uNWIyY2U3ZTE3YmExM2JmMTI3ZDdlMzQ1MDdkZWVi
MDJhMDgxZDcxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE2LTA3LTA1ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBQdXJnZSBQYXNz
UmVmUHRyIGluIE1vZHVsZXMvd2ViZGF0YWJhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTI1NQorCisgICAgICAgIFJldmlld2VkIGJ5IEJlbmph
bWluIFBvdWxhaW4uCisKKyAgICAgICAgQXMgYSBzdGVwIHRvIHJlbW92ZSBQYXNzUmVmUHRyIHVz
ZSwgdGhpcyBwYXRjaCBjbGVhbnMgaXQgdXAgaW4gTW9kdWxlcy93ZWJkYXRhYmFzZS4KKworICAg
ICAgICBBZGRpdGlvbmFsbHkgdW5uZWNlc3Nhcnkgc3BhY2VzIGFuZCB0YWJzIGFyZSByZW1vdmVk
IHRvby4KKworICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBw
ZXIuY3BwOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJh
c2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZTo6fkRhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpzY2hlZHVsZVRy
YW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpydW5UcmFuc2FjdGlvbik6
CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFiYXNlQXV0aG9yaXplcjo6YWxsb3dSZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFz
ZU1hbmFnZXI6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZU1hbmFn
ZXI6OmZ1bGxQYXRoRm9yRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VNYW5h
Z2VyOjpkZXRhaWxzRm9yTmFtZUFuZE9yaWdpbik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZU1hbmFnZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVGFzay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYW5zYWN0aW9uVGFz
azo6RGF0YWJhc2VUcmFuc2FjdGlvblRhc2spOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VUYXNrLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxs
YmFja1dyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTENhbGxiYWNrV3JhcHBlcjo6U1FM
Q2FsbGJhY2tXcmFwcGVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFJlc3Vs
dFNldFJvd0xpc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OlNRTFN0YXRlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OnNxbEVycm9yKToKKyAgICAgICAgKFdlYkNv
cmU6OlNRTFN0YXRlbWVudDo6c3FsUmVzdWx0U2V0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFN0YXRlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0
aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OlNRTFRy
YW5zYWN0aW9uQmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tl
bmQ6OnRyYW5zYWN0aW9uRXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb25CYWNrZW5kLmg6CisKIDIwMTYtMDctMDQgIEZ1amlpIEhpcm9ub3JpICA8SGly
b25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW0dUS10gTnVsbCBOb2RlIGRlcmVmZXJl
bmNlIGluIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmlsaXR5Rm9yU2VsZWN0aW9uQ2hh
bmdlIG9mIEZyYW1lU2VsZWN0aW9uQXRrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcAppbmRleCAz
ZGFlOTIzNGY2ZTJhNGY2Mzc2ZTkwZTdkYWY3NjljMGNiYmMzNWQwLi41MTVlYzI4Zjc1NzU0MzA2
YmExNzNkZGI5M2E0YmYyZmJlYmE5NjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcApAQCAtMzAs
NyArMzAsNiBAQAogCiAjaW5jbHVkZSAiRGF0YWJhc2UuaCIKICNpbmNsdWRlICJTUUxFcnJvci5o
IgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmgKaW5kZXggMWNlMjM5YzQ0ZDkw
ZWExMjU3YTU3NjI2ZDA5YTYxNDUwZTdiMzkxNi4uOTBlODQ0OTNiNDk5NjlkMjhiYjUyZjViNDcw
NGQ0ZmE5NDRkOTJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaApAQCAtMjEsMTQgKzIxLDEzIEBACiAg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKICNpZm5kZWYgRE9NV2luZG93V2ViRGF0YWJhc2VfaAogI2Rl
ZmluZSBET01XaW5kb3dXZWJEYXRhYmFzZV9oCiAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAK
aW5kZXggZGEzOGUxY2ZmODkxNjA1MDA5YWY3NTVjNDcyZGQwZTQ0N2FmMTU2My4uOGQzYjM1YTYw
NWM3YWZkNWJhOGFjZmNlZGZkM2JiZmZmNTliZjY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKQEAgLTIwMyw5ICsyMDMsOSBAQCBzdGF0
aWMgRGF0YWJhc2VHdWlkIGd1aWRGb3JPcmlnaW5BbmROYW1lKGNvbnN0IFN0cmluZyYgb3JpZ2lu
LCBjb25zdCBTdHJpbmcmIG5hbQogICAgIHJldHVybiBndWlkOwogfQogCi1EYXRhYmFzZTo6RGF0
YWJhc2UoUGFzc1JlZlB0cjxEYXRhYmFzZUNvbnRleHQ+IGRhdGFiYXNlQ29udGV4dCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkVmVyc2lvbiwgY29uc3QgU3RyaW5n
JiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplKQorRGF0YWJhc2U6OkRh
dGFiYXNlKFJlZlB0cjxEYXRhYmFzZUNvbnRleHQ+JiYgZGF0YWJhc2VDb250ZXh0LCBjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZXhwZWN0ZWRWZXJzaW9uLCBjb25zdCBTdHJpbmcm
IGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpCiAgICAgOiBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQoZGF0YWJhc2VDb250ZXh0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpCi0gICAgLCBtX2RhdGFiYXNlQ29udGV4dChkYXRhYmFzZUNvbnRleHQpCisgICAgLCBtX2Rh
dGFiYXNlQ29udGV4dChXVEZNb3ZlKGRhdGFiYXNlQ29udGV4dCkpCiAgICAgLCBtX2RlbGV0ZWQo
ZmFsc2UpCiAgICAgLCBtX25hbWUobmFtZS5pc29sYXRlZENvcHkoKSkKICAgICAsIG1fZXhwZWN0
ZWRWZXJzaW9uKGV4cGVjdGVkVmVyc2lvbi5pc29sYXRlZENvcHkoKSkKQEAgLTU3MSw3ICs1NzEs
NyBAQCB2b2lkIERhdGFiYXNlOjpzY2hlZHVsZVRyYW5zYWN0aW9uKCkKICAgICAgICAgdHJhbnNh
Y3Rpb24gPSBtX3RyYW5zYWN0aW9uUXVldWUudGFrZUZpcnN0KCk7CiAKICAgICBpZiAodHJhbnNh
Y3Rpb24gJiYgZGF0YWJhc2VDb250ZXh0KCktPmRhdGFiYXNlVGhyZWFkKCkpIHsKLSAgICAgICAg
YXV0byB0YXNrID0gc3RkOjptYWtlX3VuaXF1ZTxEYXRhYmFzZVRyYW5zYWN0aW9uVGFzaz4odHJh
bnNhY3Rpb24pOworICAgICAgICBhdXRvIHRhc2sgPSBzdGQ6Om1ha2VfdW5pcXVlPERhdGFiYXNl
VHJhbnNhY3Rpb25UYXNrPihXVEZNb3ZlKHRyYW5zYWN0aW9uKSk7CiAgICAgICAgIExPRyhTdG9y
YWdlQVBJLCAiU2NoZWR1bGluZyBEYXRhYmFzZVRyYW5zYWN0aW9uVGFzayAlcCBmb3IgdHJhbnNh
Y3Rpb24gJXBcbiIsIHRhc2suZ2V0KCksIHRhc2stPnRyYW5zYWN0aW9uKCkpOwogICAgICAgICBt
X3RyYW5zYWN0aW9uSW5Qcm9ncmVzcyA9IHRydWU7CiAgICAgICAgIGRhdGFiYXNlQ29udGV4dCgp
LT5kYXRhYmFzZVRocmVhZCgpLT5zY2hlZHVsZVRhc2soV1RGTW92ZSh0YXNrKSk7CkBAIC01ODks
NyArNTg5LDcgQEAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4gRGF0YWJhc2U6OnJ1blRy
YW5zYWN0aW9uKFJlZjxTUUxUcmFuc2FjdGlvbj4mJiB0cmEKICAgICBpZiAoZGF0YSkKICAgICAg
ICAgd3JhcHBlciA9IENoYW5nZVZlcnNpb25XcmFwcGVyOjpjcmVhdGUoZGF0YS0+b2xkVmVyc2lv
bigpLCBkYXRhLT5uZXdWZXJzaW9uKCkpOwogCi0gICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uQmFj
a2VuZD4gdHJhbnNhY3Rpb25CYWNrZW5kID0gU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpjcmVhdGUo
dGhpcywgV1RGTW92ZSh0cmFuc2FjdGlvbiksIHdyYXBwZXIsIHJlYWRPbmx5KTsKKyAgICBSZWZQ
dHI8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiB0cmFuc2FjdGlvbkJhY2tlbmQgPSBTUUxUcmFuc2Fj
dGlvbkJhY2tlbmQ6OmNyZWF0ZSh0aGlzLCBXVEZNb3ZlKHRyYW5zYWN0aW9uKSwgV1RGTW92ZSh3
cmFwcGVyKSwgcmVhZE9ubHkpOwogICAgIG1fdHJhbnNhY3Rpb25RdWV1ZS5hcHBlbmQodHJhbnNh
Y3Rpb25CYWNrZW5kKTsKICAgICBpZiAoIW1fdHJhbnNhY3Rpb25JblByb2dyZXNzKQogICAgICAg
ICBzY2hlZHVsZVRyYW5zYWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlLmgKaW5kZXggODhlY2QxY2I5MTM1MmExMTNmYWIwYTcwZjFkNzkyY2Ni
MjAyOTc0Ny4uMWUxMDAwZjJiNWYwYTczOWUxNmE5ZjRlYjVkZTQzNjBkNDhkYzFjZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaApAQCAtMTI1LDcg
KzEyNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBlcmZvcm1DbG9zZSgpOwogCiBwcml2YXRlOgot
ICAgIERhdGFiYXNlKFBhc3NSZWZQdHI8RGF0YWJhc2VDb250ZXh0PiwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkVmVyc2lvbiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5
TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplKTsKKyAgICBEYXRhYmFzZShSZWZQdHI8
RGF0YWJhc2VDb250ZXh0PiYmLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZXhw
ZWN0ZWRWZXJzaW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVz
dGltYXRlZFNpemUpOwogCiAgICAgdm9pZCBjbG9zZURhdGFiYXNlKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVy
LmNwcAppbmRleCAwOTMzZjIwNmNjZGQ4ODZlNTZjOTVlNjYzMzI2YWY5OGZkNTgyNzZkLi4xMDMx
MGEwZjNhMjdkNDAxNjM4OTBlMjczNzgyNjFkNWM3ZGRlNDYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3Bw
CkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRGF0YWJh
c2VBdXRob3JpemVyLmgiCiAKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNDQsNyAr
MzQzLDcgQEAgaW50IERhdGFiYXNlQXV0aG9yaXplcjo6YWxsb3dSZWFkKGNvbnN0IFN0cmluZyYg
dGFibGVOYW1lLCBjb25zdCBTdHJpbmcmKQogewogICAgIGlmIChtX3Blcm1pc3Npb25zICYgTm9B
Y2Nlc3NNYXNrICYmIG1fc2VjdXJpdHlFbmFibGVkKQogICAgICAgICByZXR1cm4gU1FMQXV0aERl
bnk7Ci0gICAgCisKICAgICByZXR1cm4gZGVueUJhc2VkT25UYWJsZU5hbWUodGFibGVOYW1lKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZU1hbmFnZXIuY3BwCmluZGV4IGFmYzc4OGYyNDMwYTIzMDc3N2YyODNiNGYwYTNhMTRlZjdi
YTAzYjcuLjAwNDExNjliNmVkNjE3Y2VkZjA1Nzc0ODZhZDk1NWFiZjYwYzBiODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdl
ci5jcHAKQEAgLTIwLDcgKzIwLDcgQEAKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgpAQCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgRGF0YWJhc2VNYW5hZ2VyOjpyZW1v
dmVQcm9wb3NlZERhdGFiYXNlKFByb3Bvc2VkRGF0YWJhc2UqIHByb3Bvc2VkRGIpCiAKIFJlZlB0
cjxEYXRhYmFzZT4gRGF0YWJhc2VNYW5hZ2VyOjpvcGVuRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwKICAgICBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
ZXhwZWN0ZWRWZXJzaW9uLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLAotICAgIHVuc2lnbmVk
IGxvbmcgZXN0aW1hdGVkU2l6ZSwgUGFzc1JlZlB0cjxEYXRhYmFzZUNhbGxiYWNrPiBjcmVhdGlv
bkNhbGxiYWNrLAorICAgIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSwgUmVmUHRyPERhdGFi
YXNlQ2FsbGJhY2s+JiYgY3JlYXRpb25DYWxsYmFjaywKICAgICBEYXRhYmFzZUVycm9yJiBlcnJv
cikKIHsKICAgICBTY3JpcHRDb250cm9sbGVyOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CkBAIC0z
MjcsNyArMzI3LDcgQEAgU3RyaW5nIERhdGFiYXNlTWFuYWdlcjo6ZnVsbFBhdGhGb3JEYXRhYmFz
ZShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBTdHJpbmcKICAgICAgICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgCisKICAgICByZXR1cm4gbV9z
ZXJ2ZXItPmZ1bGxQYXRoRm9yRGF0YWJhc2Uob3JpZ2luLCBuYW1lLCBjcmVhdGVJZkRvZXNOb3RF
eGlzdCk7CiB9CiAKQEAgLTM1MCwxNiArMzUwLDE2IEBAIERhdGFiYXNlRGV0YWlscyBEYXRhYmFz
ZU1hbmFnZXI6OmRldGFpbHNGb3JOYW1lQW5kT3JpZ2luKGNvbnN0IFN0cmluZyYgbmFtZSwgU2Vj
CiB7CiAgICAgewogICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhtX211dGV4KTsK
LSAgICAgICAgCisKICAgICAgICAgZm9yIChhdXRvKiBwcm9wb3NlZERhdGFiYXNlIDogbV9wcm9w
b3NlZERhdGFiYXNlcykgewogICAgICAgICAgICAgaWYgKHByb3Bvc2VkRGF0YWJhc2UtPmRldGFp
bHMoKS5uYW1lKCkgPT0gbmFtZSAmJiBwcm9wb3NlZERhdGFiYXNlLT5vcmlnaW4oKS0+ZXF1YWwo
b3JpZ2luKSkgewogICAgICAgICAgICAgICAgIEFTU0VSVChwcm9wb3NlZERhdGFiYXNlLT5kZXRh
aWxzKCkudGhyZWFkSUQoKSA9PSBzdGQ6OnRoaXNfdGhyZWFkOjpnZXRfaWQoKSB8fCBpc01haW5U
aHJlYWQoKSk7Ci0gICAgICAgICAgICAgICAgCisKICAgICAgICAgICAgICAgICByZXR1cm4gcHJv
cG9zZWREYXRhYmFzZS0+ZGV0YWlscygpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQotICAgIAorCiAgICAgcmV0dXJuIG1fc2VydmVyLT5kZXRhaWxzRm9yTmFtZUFuZE9yaWdpbihu
YW1lLCBvcmlnaW4pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuaAppbmRleCA0MWNkN2ZlNzVkN2QxY2Q1ZGNhN2E3YTMx
ZDE3MDY2MzE5MmVkNmZiLi5iYTQxZjFjYmE5MDk1ZjJjZmJhMTJiY2UzZDI1NjlhZjYxYzFiNzgx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VNYW5hZ2VyLmgKQEAgLTIwLDcgKzIwLDcgQEAKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI2lm
bmRlZiBEYXRhYmFzZU1hbmFnZXJfaApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5o
PgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04MSw3ICs4MCw3IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbkNvZGVGb3JEYXRhYmFzZUVycm9yKERhdGFi
YXNlRXJyb3IpOwogCi0gICAgUmVmUHRyPERhdGFiYXNlPiBvcGVuRGF0YWJhc2UoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBleHBlY3Rl
ZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1h
dGVkU2l6ZSwgUGFzc1JlZlB0cjxEYXRhYmFzZUNhbGxiYWNrPiwgRGF0YWJhc2VFcnJvciYpOwor
ICAgIFJlZlB0cjxEYXRhYmFzZT4gb3BlbkRhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZXhwZWN0ZWRWZXJzaW9uLCBjb25z
dCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUsIFJlZlB0
cjxEYXRhYmFzZUNhbGxiYWNrPiYmLCBEYXRhYmFzZUVycm9yJik7CiAKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGhhc09wZW5EYXRhYmFzZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlU2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VTZXJ2
ZXIuY3BwCmluZGV4IDYyNGE3MzdjNTI1Yjk1N2I3MWVlZWU2NmY1OWFiNGQwZWZhN2JlYmYuLjg2
OTYzNDRkOTFkODI1N2YwYmRmNmEwY2RhODFiMGViMzBhMmY2NWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VTZXJ2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VTZXJ2ZXIuY3BwCkBAIC0y
MCw3ICsyMCw3IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIK
QEAgLTExNyw3ICsxMTcsNyBAQCBSZWZQdHI8RGF0YWJhc2U+IERhdGFiYXNlU2VydmVyOjpvcGVu
RGF0YWJhc2UoUmVmUHRyPERhdGFiYXNlQ29udGV4dD4mIGJhY2tlbmRDbwogewogICAgIFJlZlB0
cjxEYXRhYmFzZT4gZGF0YWJhc2U7CiAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7IC8vIE1ha2Ug
c29tZSBvbGRlciBjb21waWxlcnMgaGFwcHkuCi0gICAgCisKICAgICBzd2l0Y2ggKGF0dGVtcHQp
IHsKICAgICBjYXNlIEZpcnN0VHJ5VG9PcGVuRGF0YWJhc2U6CiAgICAgICAgIHN1Y2Nlc3MgPSBE
YXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5jYW5Fc3RhYmxpc2hEYXRhYmFzZShiYWNrZW5kQ29u
dGV4dC5nZXQoKSwgbmFtZSwgZXN0aW1hdGVkU2l6ZSwgZXJyb3IpOwpAQCAtMTMzLDcgKzEzMyw3
IEBAIFJlZlB0cjxEYXRhYmFzZT4gRGF0YWJhc2VTZXJ2ZXI6Om9wZW5EYXRhYmFzZShSZWZQdHI8
RGF0YWJhc2VDb250ZXh0PiYgYmFja2VuZENvCiAKIFJlZlB0cjxEYXRhYmFzZT4gRGF0YWJhc2VT
ZXJ2ZXI6OmNyZWF0ZURhdGFiYXNlKFJlZlB0cjxEYXRhYmFzZUNvbnRleHQ+JiBiYWNrZW5kQ29u
dGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkVmVyc2lvbiwg
Y29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBi
b29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBEYXRhYmFzZUVycm9yJiBlcnJvciwgU3RyaW5n
JiBlcnJvck1lc3NhZ2UpCiB7Ci0gICAgUmVmUHRyPERhdGFiYXNlPiBkYXRhYmFzZSA9IGFkb3B0
UmVmKG5ldyBEYXRhYmFzZShiYWNrZW5kQ29udGV4dCwgbmFtZSwgZXhwZWN0ZWRWZXJzaW9uLCBk
aXNwbGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSkpOworICAgIFJlZlB0cjxEYXRhYmFzZT4gZGF0YWJh
c2UgPSBhZG9wdFJlZihuZXcgRGF0YWJhc2UoYmFja2VuZENvbnRleHQuY29weVJlZigpLCBuYW1l
LCBleHBlY3RlZFZlcnNpb24sIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKSk7CiAKICAgICBp
ZiAoIWRhdGFiYXNlLT5vcGVuQW5kVmVyaWZ5VmVyc2lvbihzZXRWZXJzaW9uSW5OZXdEYXRhYmFz
ZSwgZXJyb3IsIGVycm9yTWVzc2FnZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwCmlu
ZGV4IDZkYmY1N2Y1YjQ4N2FmMTRjMDdhMDI3YTczMjg0ZDU4OGZhOTViZTcuLmI4NzE1MTVkYjgz
YTllMDQwNWMwZDllNzI5YmJlZGVmYjk0ZjNiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAKQEAgLTE0NCw5ICsxNDQsOSBA
QCBjb25zdCBjaGFyKiBEYXRhYmFzZUNsb3NlVGFzazo6ZGVidWdUYXNrTmFtZSgpIGNvbnN0CiAv
LyAqKiogRGF0YWJhc2VUcmFuc2FjdGlvblRhc2sgKioqCiAvLyBTdGFydHMgYSB0cmFuc2FjdGlv
biB0aGF0IHdpbGwgcmVwb3J0IGl0cyByZXN1bHRzIHZpYSBhIGNhbGxiYWNrLgogCi1EYXRhYmFz
ZVRyYW5zYWN0aW9uVGFzazo6RGF0YWJhc2VUcmFuc2FjdGlvblRhc2soUGFzc1JlZlB0cjxTUUxU
cmFuc2FjdGlvbkJhY2tlbmQ+IHRyYW5zYWN0aW9uKQorRGF0YWJhc2VUcmFuc2FjdGlvblRhc2s6
OkRhdGFiYXNlVHJhbnNhY3Rpb25UYXNrKFJlZlB0cjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+JiYg
dHJhbnNhY3Rpb24pCiAgICAgOiBEYXRhYmFzZVRhc2soKnRyYW5zYWN0aW9uLT5kYXRhYmFzZSgp
LCAwKQotICAgICwgbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKKyAgICAsIG1fdHJhbnNhY3Rp
b24oV1RGTW92ZSh0cmFuc2FjdGlvbikpCiAgICAgLCBtX2RpZFBlcmZvcm1UYXNrKGZhbHNlKQog
ewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRhc2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VU
YXNrLmgKaW5kZXggMmZmOGRmNWU3ZGE1ZDAxZWFkYjVjMDMwNTQzNzNmOTZiYTQ0OTliNy4uZTVm
NDc1YzBhYTBkZGY3NTAwOTA0ZDBiYzY0MDNkOTJmY2E4Njg3NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5oCkBAIC0zMyw3ICszMyw2
IEBACiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgiCiAjaW5jbHVkZSA8d3RmL0Nv
bmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKQEAgLTEyMyw3ICsxMjIsNyBAQCBwcml2YXRlOgogCiBjbGFzcyBEYXRhYmFzZVRy
YW5zYWN0aW9uVGFzayA6IHB1YmxpYyBEYXRhYmFzZVRhc2sgewogcHVibGljOgotICAgIGV4cGxp
Y2l0IERhdGFiYXNlVHJhbnNhY3Rpb25UYXNrKFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25CYWNr
ZW5kPik7CisgICAgZXhwbGljaXQgRGF0YWJhc2VUcmFuc2FjdGlvblRhc2soUmVmUHRyPFNRTFRy
YW5zYWN0aW9uQmFja2VuZD4mJik7CiAgICAgdmlydHVhbCB+RGF0YWJhc2VUcmFuc2FjdGlvblRh
c2soKTsKIAogICAgIFNRTFRyYW5zYWN0aW9uQmFja2VuZCogdHJhbnNhY3Rpb24oKSBjb25zdCB7
IHJldHVybiBtX3RyYW5zYWN0aW9uLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxsYmFja1dyYXBwZXIuaAppbmRleCBiNjQ1NDgy
MGY3Mzc1NjFmMzBiY2FhNTBiMGE2MjgxYjIzOWRjZjgwLi5hNjVjY2I3MDRkOWUxZGZlNDk5NjI5
MWJkMGVmZTJhYzU4ZmJkODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmgKQEAgLTQxLDggKzQxLDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogLy8gLSBieSB1bndyYXBwaW5nIGFuZCB0aGVuIGRlcmVmZXJlbmNp
bmcgbm9ybWFsbHkgLSBvbiBjb250ZXh0IHRocmVhZCBvbmx5CiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjbGFzcyBTUUxDYWxsYmFja1dyYXBwZXIgewogcHVibGljOgotICAgIFNRTENhbGxiYWNrV3Jh
cHBlcihQYXNzUmVmUHRyPFQ+IGNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KQotICAgICAgICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCisgICAg
U1FMQ2FsbGJhY2tXcmFwcGVyKFJlZlB0cjxUPiYmIGNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICA6IG1fY2FsbGJhY2soV1RG
TW92ZShjYWxsYmFjaykpCiAgICAgICAgICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KG1fY2Fs
bGJhY2sgPyBzY3JpcHRFeGVjdXRpb25Db250ZXh0IDogMCkKICAgICB7CiAgICAgICAgIEFTU0VS
VCghbV9jYWxsYmFjayB8fCAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LmdldCgpICYmIG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMUmVzdWx0U2V0Um93TGlzdC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxSZXN1bHRTZXRSb3dMaXN0LmgK
aW5kZXggZWVmMTQ4ZDdiNmNmYjFiMjQ2ZmQyMjBiMmY4Mzk3OWQ2OTU3YjhjNi4uNTVkZTJmYjk1
MWY4NWIxYTJkMmM4OTVkMzNiYTk3NTQyYjhhNjE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxSZXN1bHRTZXRSb3dMaXN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxSZXN1bHRTZXRSb3dMaXN0LmgKQEAgLTI5
LDcgKzI5LDYgQEAKICNpZm5kZWYgU1FMUmVzdWx0U2V0Um93TGlzdF9oCiAjZGVmaW5lIFNRTFJl
c3VsdFNldFJvd0xpc3RfaAogCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgIlNRTFZhbHVlLmgiCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcAppbmRleCA0
ZDZiYjNmNzNmNTk2NWM5NmUxNTZkNzYwYzc5Y2UyYTVkYzk0MTVmLi5jMWFmOTBhM2M5MDBkN2Nj
MmM4MGIyZjM4YmQxMTVmMzIwYzZhNTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwCkBAIC00MCw3ICs0MCw3IEBACiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAKLS8vIFRoZSBMaWZlLUN5Y2xlIG9mIGEgU1FM
U3RhdGVtZW50IGkuZS4gV2hvJ3Mga2VlcGluZyB0aGUgU1FMU3RhdGVtZW50IGFsaXZlPyAKKy8v
IFRoZSBMaWZlLUN5Y2xlIG9mIGEgU1FMU3RhdGVtZW50IGkuZS4gV2hvJ3Mga2VlcGluZyB0aGUg
U1FMU3RhdGVtZW50IGFsaXZlPwogLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRoZSBSZWZQdHIg
Y2hhaW4gZ29lcyBzb21ldGhpbmcgbGlrZSB0aGlzOgogLy8KQEAgLTc0LDExICs3NCwxMSBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNRTFN0YXRlbWVudDo6U1FMU3RhdGVtZW50KERhdGFi
YXNlJiBkYXRhYmFzZSwgY29uc3QgU3RyaW5nJiBzdGF0ZW1lbnQsIGNvbnN0IFZlY3RvcjxTUUxW
YWx1ZT4mIGFyZ3VtZW50cywgUGFzc1JlZlB0cjxTUUxTdGF0ZW1lbnRDYWxsYmFjaz4gY2FsbGJh
Y2ssIFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywg
aW50IHBlcm1pc3Npb25zKQorU1FMU3RhdGVtZW50OjpTUUxTdGF0ZW1lbnQoRGF0YWJhc2UmIGRh
dGFiYXNlLCBjb25zdCBTdHJpbmcmIHN0YXRlbWVudCwgY29uc3QgVmVjdG9yPFNRTFZhbHVlPiYg
YXJndW1lbnRzLCBSZWZQdHI8U1FMU3RhdGVtZW50Q2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0
cjxTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrPiYmIGVycm9yQ2FsbGJhY2ssIGludCBwZXJtaXNz
aW9ucykKICAgICA6IG1fc3RhdGVtZW50KHN0YXRlbWVudC5pc29sYXRlZENvcHkoKSkKICAgICAs
IG1fYXJndW1lbnRzKGFyZ3VtZW50cykKLSAgICAsIG1fc3RhdGVtZW50Q2FsbGJhY2tXcmFwcGVy
KGNhbGxiYWNrLCBkYXRhYmFzZS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgLCBtX3N0
YXRlbWVudEVycm9yQ2FsbGJhY2tXcmFwcGVyKGVycm9yQ2FsbGJhY2ssIGRhdGFiYXNlLnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAsIG1fc3RhdGVtZW50Q2FsbGJhY2tXcmFwcGVyKFdU
Rk1vdmUoY2FsbGJhY2spLCBkYXRhYmFzZS5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAg
LCBtX3N0YXRlbWVudEVycm9yQ2FsbGJhY2tXcmFwcGVyKFdURk1vdmUoZXJyb3JDYWxsYmFjayks
IGRhdGFiYXNlLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAsIG1fcGVybWlzc2lvbnMo
cGVybWlzc2lvbnMpCiB7CiB9CkBAIC04NywxNCArODcsMTQgQEAgU1FMU3RhdGVtZW50Ojp+U1FM
U3RhdGVtZW50KCkKIHsKIH0KIAotUGFzc1JlZlB0cjxTUUxFcnJvcj4gU1FMU3RhdGVtZW50Ojpz
cWxFcnJvcigpIGNvbnN0CitTUUxFcnJvciogU1FMU3RhdGVtZW50OjpzcWxFcnJvcigpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1fZXJyb3I7CisgICAgcmV0dXJuIG1fZXJyb3IuZ2V0KCk7CiB9CiAK
LVBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxTdGF0ZW1lbnQ6OnNxbFJlc3VsdFNldCgpIGNv
bnN0CitTUUxSZXN1bHRTZXQqIFNRTFN0YXRlbWVudDo6c3FsUmVzdWx0U2V0KCkgY29uc3QKIHsK
LSAgICByZXR1cm4gbV9yZXN1bHRTZXQ7CisgICAgcmV0dXJuIG1fcmVzdWx0U2V0LmdldCgpOwog
fQogCiBib29sIFNRTFN0YXRlbWVudDo6ZXhlY3V0ZShEYXRhYmFzZSYgZGIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuaAppbmRleCAzNzQ2
MDJkYjk5ZjExYTVhZWU3YWRjYTY0OWMyNjRiZmU4Y2YwZGRiLi40M2M3YzQ4ZTlkNGU4ZjU0MDEy
NjdlMDNmOWRjODAwYzMxNDhmNjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgU1FMVHJh
bnNhY3Rpb25CYWNrZW5kOwogCiBjbGFzcyBTUUxTdGF0ZW1lbnQgewogcHVibGljOgotICAgIFNR
TFN0YXRlbWVudChEYXRhYmFzZSYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxTUUxWYWx1
ZT4mLCBQYXNzUmVmUHRyPFNRTFN0YXRlbWVudENhbGxiYWNrPiwgUGFzc1JlZlB0cjxTUUxTdGF0
ZW1lbnRFcnJvckNhbGxiYWNrPiwgaW50IHBlcm1pc3Npb25zKTsKKyAgICBTUUxTdGF0ZW1lbnQo
RGF0YWJhc2UmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiwgUmVmUHRy
PFNRTFN0YXRlbWVudENhbGxiYWNrPiYmLCBSZWZQdHI8U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFj
az4mJiwgaW50IHBlcm1pc3Npb25zKTsKICAgICB+U1FMU3RhdGVtZW50KCk7CiAKICAgICBib29s
IGV4ZWN1dGUoRGF0YWJhc2UmKTsKQEAgLTU4LDggKzU4LDggQEAgcHVibGljOgogICAgIHZvaWQg
c2V0RGF0YWJhc2VEZWxldGVkRXJyb3IoKTsKICAgICB2b2lkIHNldFZlcnNpb25NaXNtYXRjaGVk
RXJyb3IoKTsKIAotICAgIFBhc3NSZWZQdHI8U1FMRXJyb3I+IHNxbEVycm9yKCkgY29uc3Q7Ci0g
ICAgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IHNxbFJlc3VsdFNldCgpIGNvbnN0OworICAgIFNR
TEVycm9yKiBzcWxFcnJvcigpIGNvbnN0OworICAgIFNRTFJlc3VsdFNldCogc3FsUmVzdWx0U2V0
KCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzZXRGYWlsdXJlRHVlVG9RdW90YSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2Fj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlv
bi5oCmluZGV4IGRlYzliOGE5ZGY2Y2ViN2M5OTQ5N2JlMDRiYzUyNTUxYjhkYmZmZjkuLmRkYWNj
OGI5OGZhYmU0YzRhYzcxNjczOWQzZDlhYTM4OTk0NmFkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmgKQEAgLTMyLDcgKzMy
LDYgQEAKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIlNRTENhbGxiYWNrV3Jh
cHBlci5oIgogI2luY2x1ZGUgIlNRTFRyYW5zYWN0aW9uU3RhdGVNYWNoaW5lLmgiCi0jaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKaW5kZXggOWQwODZjYjBiMWMxODc2
ZmY5NWY1NTE4YWJkMWEzZGM3MzQxZTJkOC4uODhhMTM0OWMxMDViNWE5OWZmODU3ZmUxMzMzMDEw
NGNiYjYwN2UyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcApAQCAtMzQzLDE1ICszNDMsMTUg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8U1FMVHJhbnNhY3Rpb25CYWNrZW5kPiBT
UUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmNyZWF0ZShEYXRhYmFzZSogZGIsIFBhc3NSZWZQdHI8U1FM
VHJhbnNhY3Rpb24+IGZyb250ZW5kLCBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uV3JhcHBlcj4g
d3JhcHBlciwgYm9vbCByZWFkT25seSkKK1JlZjxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IFNRTFRy
YW5zYWN0aW9uQmFja2VuZDo6Y3JlYXRlKERhdGFiYXNlKiBkYiwgUmVmUHRyPFNRTFRyYW5zYWN0
aW9uPiYmIGZyb250ZW5kLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25XcmFwcGVyPiYmIHdyYXBwZXIs
IGJvb2wgcmVhZE9ubHkpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1FMVHJhbnNhY3Rp
b25CYWNrZW5kKGRiLCBmcm9udGVuZCwgd3JhcHBlciwgcmVhZE9ubHkpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTUUxUcmFuc2FjdGlvbkJhY2tlbmQoZGIsIFdURk1vdmUoZnJvbnRlbmQp
LCBXVEZNb3ZlKHdyYXBwZXIpLCByZWFkT25seSkpOwogfQogCi1TUUxUcmFuc2FjdGlvbkJhY2tl
bmQ6OlNRTFRyYW5zYWN0aW9uQmFja2VuZChEYXRhYmFzZSogZGIsIFBhc3NSZWZQdHI8U1FMVHJh
bnNhY3Rpb24+IGZyb250ZW5kLCBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uV3JhcHBlcj4gd3Jh
cHBlciwgYm9vbCByZWFkT25seSkKLSAgICA6IG1fZnJvbnRlbmQoZnJvbnRlbmQpCitTUUxUcmFu
c2FjdGlvbkJhY2tlbmQ6OlNRTFRyYW5zYWN0aW9uQmFja2VuZChEYXRhYmFzZSogZGIsIFJlZlB0
cjxTUUxUcmFuc2FjdGlvbj4mJiBmcm9udGVuZCwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uV3JhcHBl
cj4mJiB3cmFwcGVyLCBib29sIHJlYWRPbmx5KQorICAgIDogbV9mcm9udGVuZChXVEZNb3ZlKGZy
b250ZW5kKSkKICAgICAsIG1fZGF0YWJhc2UoZGIpCi0gICAgLCBtX3dyYXBwZXIod3JhcHBlcikK
KyAgICAsIG1fd3JhcHBlcihXVEZNb3ZlKHdyYXBwZXIpKQogICAgICwgbV9oYXNDYWxsYmFjayht
X2Zyb250ZW5kLT5oYXNDYWxsYmFjaygpKQogICAgICwgbV9oYXNTdWNjZXNzQ2FsbGJhY2sobV9m
cm9udGVuZC0+aGFzU3VjY2Vzc0NhbGxiYWNrKCkpCiAgICAgLCBtX2hhc0Vycm9yQ2FsbGJhY2so
bV9mcm9udGVuZC0+aGFzRXJyb3JDYWxsYmFjaygpKQpAQCAtNDI4LDkgKzQyOCw5IEBAIFNRTFN0
YXRlbWVudCogU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpjdXJyZW50U3RhdGVtZW50KCkKICAgICBy
ZXR1cm4gbV9jdXJyZW50U3RhdGVtZW50QmFja2VuZC5nZXQoKTsKIH0KIAotUGFzc1JlZlB0cjxT
UUxFcnJvcj4gU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjp0cmFuc2FjdGlvbkVycm9yKCkKK1NRTEVy
cm9yKiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnRyYW5zYWN0aW9uRXJyb3IoKQogewotICAgIHJl
dHVybiBtX3RyYW5zYWN0aW9uRXJyb3I7CisgICAgcmV0dXJuIG1fdHJhbnNhY3Rpb25FcnJvci5n
ZXQoKTsKIH0KIAogdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OnNldFNob3VsZFJldHJ5Q3Vy
cmVudFN0YXRlbWVudChib29sIHNob3VsZFJldHJ5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKaW5kZXgg
MzBjZGYyOWVmNjFiMGI0ZmRmOWMwNjM0NDJiNmJjNzMyNDRhYjNhYi4uNTUxMDcxMGY3NDNmOTRk
NDk4YTg1NmM2NmI0ZjI0ODllZDllMGU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5oCkBAIC01OCw3
ICs1OCw3IEBAIHB1YmxpYzoKIAogY2xhc3MgU1FMVHJhbnNhY3Rpb25CYWNrZW5kIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4sIHB1YmxpYyBTUUxU
cmFuc2FjdGlvblN0YXRlTWFjaGluZTxTUUxUcmFuc2FjdGlvbkJhY2tlbmQ+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPFNRTFRyYW5zYWN0aW9uQmFja2VuZD4gY3JlYXRlKERhdGFiYXNlKiwg
UGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbj4sIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25XcmFw
cGVyPiwgYm9vbCByZWFkT25seSk7CisgICAgc3RhdGljIFJlZjxTUUxUcmFuc2FjdGlvbkJhY2tl
bmQ+IGNyZWF0ZShEYXRhYmFzZSosIFJlZlB0cjxTUUxUcmFuc2FjdGlvbj4mJiwgUmVmUHRyPFNR
TFRyYW5zYWN0aW9uV3JhcHBlcj4mJiwgYm9vbCByZWFkT25seSk7CiAKICAgICB2aXJ0dWFsIH5T
UUxUcmFuc2FjdGlvbkJhY2tlbmQoKTsKIApAQCAtNzEsMTMgKzcxLDEzIEBAIHB1YmxpYzoKIAog
ICAgIC8vIEFQSXMgY2FsbGVkIGZyb20gdGhlIGZyb250ZW5kIHB1Ymxpc2hlZCB2aWEgU1FMVHJh
bnNhY3Rpb25CYWNrZW5kOgogICAgIHZvaWQgcmVxdWVzdFRyYW5zaXRUb1N0YXRlKFNRTFRyYW5z
YWN0aW9uU3RhdGUpOwotICAgIFBhc3NSZWZQdHI8U1FMRXJyb3I+IHRyYW5zYWN0aW9uRXJyb3Io
KTsKKyAgICBTUUxFcnJvciogdHJhbnNhY3Rpb25FcnJvcigpOwogICAgIFNRTFN0YXRlbWVudCog
Y3VycmVudFN0YXRlbWVudCgpOwogICAgIHZvaWQgc2V0U2hvdWxkUmV0cnlDdXJyZW50U3RhdGVt
ZW50KGJvb2wpOwogICAgIHZvaWQgZXhlY3V0ZVNRTChzdGQ6OnVuaXF1ZV9wdHI8U1FMU3RhdGVt
ZW50Pik7CiAgICAgCiBwcml2YXRlOgotICAgIFNRTFRyYW5zYWN0aW9uQmFja2VuZChEYXRhYmFz
ZSosIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb24+LCBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9u
V3JhcHBlcj4sIGJvb2wgcmVhZE9ubHkpOworICAgIFNRTFRyYW5zYWN0aW9uQmFja2VuZChEYXRh
YmFzZSosIFJlZlB0cjxTUUxUcmFuc2FjdGlvbj4mJiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uV3Jh
cHBlcj4mJiwgYm9vbCByZWFkT25seSk7CiAKICAgICB2b2lkIGRvQ2xlYW51cCgpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>