<?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>149191</bug_id>
          
          <creation_ts>2015-09-15 15:27:30 -0700</creation_ts>
          <short_desc>Add empty IDBFactory implementation for Modern IDB</short_desc>
          <delta_ts>2015-09-18 05:42:02 -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>WebCore Misc.</component>
          <version>Safari 9</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>149342</dependson>
          <blocked>149117</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1126164</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-15 15:27:30 -0700</bug_when>
    <thetext>Add empty IDBFactory implementation for Modern IDB

This includes enabling DatabaseProvider to optionally choose it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126165</commentid>
    <comment_count>1</comment_count>
      <attachid>261250</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-15 15:29:57 -0700</bug_when>
    <thetext>Created attachment 261250
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126166</commentid>
    <comment_count>2</comment_count>
      <attachid>261251</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-15 15:31:40 -0700</bug_when>
    <thetext>Created attachment 261251
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126171</commentid>
    <comment_count>3</comment_count>
      <attachid>261251</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-09-15 15:48:14 -0700</bug_when>
    <thetext>Comment on attachment 261251
Patch v1

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

r=me with nits

&gt; Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp:62
&gt; +Ref&lt;IDBFactory&gt; IDBFactory::create()
&gt; +{
&gt; +    return adoptRef(*new IDBFactory);
&gt; +}
&gt; +
&gt; +IDBFactory::IDBFactory()
&gt; +{
&gt; +
&gt; +}
&gt; +
&gt; +PassRefPtr&lt;IDBRequest&gt; IDBFactory::getDatabaseNames(ScriptExecutionContext*, ExceptionCode&amp;)
&gt; +{
&gt; +    return nullptr;
&gt; +}
&gt; +
&gt; +PassRefPtr&lt;IDBOpenDBRequest&gt; IDBFactory::open(ScriptExecutionContext*, const String&amp;, ExceptionCode&amp;)
&gt; +{
&gt; +    return nullptr;
&gt; +}
&gt; +
&gt; +PassRefPtr&lt;IDBOpenDBRequest&gt; IDBFactory::open(ScriptExecutionContext*, const String&amp;, unsigned long long, ExceptionCode&amp;)
&gt; +{
&gt; +    return nullptr;
&gt; +}
&gt; +
&gt; +PassRefPtr&lt;IDBOpenDBRequest&gt; IDBFactory::deleteDatabase(ScriptExecutionContext*, const String&amp;, ExceptionCode&amp;)
&gt; +{
&gt; +    return nullptr;
&gt; +}

Why isn&apos;t the ScriptExecutionContext* passed into the create() method, rather than into every method called on the IDBFactory?

&gt; Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp:64
&gt; +short IDBFactory::cmp(ScriptExecutionContext*, const Deprecated::ScriptValue&amp;, const Deprecated::ScriptValue&amp;, ExceptionCode&amp;)

We shouldn&apos;t add any more method names as bad as &quot;cmp&quot;.  Could we add a &quot;ImplementedAs=compare&quot; attribute to the IDL?

&gt; Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.h:46
&gt; +    virtual short cmp(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; first, const Deprecated::ScriptValue&amp; second, ExceptionCode&amp;) override final;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126175</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-15 15:50:34 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 261251 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=261251&amp;action=review
&gt; 
&gt; r=me with nits
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp:62
&gt; &gt; +Ref&lt;IDBFactory&gt; IDBFactory::create()
&gt; &gt; +{
&gt; &gt; +    return adoptRef(*new IDBFactory);
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +IDBFactory::IDBFactory()
&gt; &gt; +{
&gt; &gt; +
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +PassRefPtr&lt;IDBRequest&gt; IDBFactory::getDatabaseNames(ScriptExecutionContext*, ExceptionCode&amp;)
&gt; &gt; +{
&gt; &gt; +    return nullptr;
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +PassRefPtr&lt;IDBOpenDBRequest&gt; IDBFactory::open(ScriptExecutionContext*, const String&amp;, ExceptionCode&amp;)
&gt; &gt; +{
&gt; &gt; +    return nullptr;
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +PassRefPtr&lt;IDBOpenDBRequest&gt; IDBFactory::open(ScriptExecutionContext*, const String&amp;, unsigned long long, ExceptionCode&amp;)
&gt; &gt; +{
&gt; &gt; +    return nullptr;
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +PassRefPtr&lt;IDBOpenDBRequest&gt; IDBFactory::deleteDatabase(ScriptExecutionContext*, const String&amp;, ExceptionCode&amp;)
&gt; &gt; +{
&gt; &gt; +    return nullptr;
&gt; &gt; +}
&gt; 
&gt; Why isn&apos;t the ScriptExecutionContext* passed into the create() method,
&gt; rather than into every method called on the IDBFactory?
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.cpp:64
&gt; &gt; +short IDBFactory::cmp(ScriptExecutionContext*, const Deprecated::ScriptValue&amp;, const Deprecated::ScriptValue&amp;, ExceptionCode&amp;)
&gt; 
&gt; We shouldn&apos;t add any more method names as bad as &quot;cmp&quot;.  Could we add a
&gt; &quot;ImplementedAs=compare&quot; attribute to the IDL?
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/client/IDBFactoryImpl.h:46
&gt; &gt; +    virtual short cmp(ScriptExecutionContext*, const Deprecated::ScriptValue&amp; first, const Deprecated::ScriptValue&amp; second, ExceptionCode&amp;) override final;
&gt; 
&gt; Ditto.

These are great points to revisit while cleaning up the IDL, which will be part of https://bugs.webkit.org/show_bug.cgi?id=149117</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126176</commentid>
    <comment_count>5</comment_count>
      <attachid>261254</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-15 15:51:59 -0700</bug_when>
    <thetext>Created attachment 261254
Patch v2 - For EWS before landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126190</commentid>
    <comment_count>6</comment_count>
      <attachid>261260</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-15 16:38:33 -0700</bug_when>
    <thetext>Created attachment 261260
Patch v3 - EWS/landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126196</commentid>
    <comment_count>7</comment_count>
      <attachid>261263</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-15 16:45:12 -0700</bug_when>
    <thetext>Created attachment 261263
Patch v4 - EWS/landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126211</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-15 17:19:56 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/189831</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261250</attachid>
            <date>2015-09-15 15:29:57 -0700</date>
            <delta_ts>2015-09-15 15:31:40 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>15762</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkYjNmMWUxLi42NDFhZDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzEg
QEAKIDIwMTUtMDktMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIEFkZCBlbXB0eSBJREJGYWN0b3J5IGltcGxlbWVudGF0aW9uIGZvciBNb2Rlcm4gSURCLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MTkxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIChDbGVhbnVwLCBubyBiZWhhdmlvciBjaGFuZ2UpLgorCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvd0luZGV4ZWREYXRhYmFzZTo6aW5kZXhlZERCKToKKyAgICAgICAgCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkZhY3RvcnlJbXBsLmNwcDogCisgICAgICAg
IChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkZhY3Rvcnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJDbGllbnQ6OklEQkZhY3Rvcnk6OklEQkZhY3RvcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ2xpZW50OjpJREJGYWN0b3J5OjpnZXREYXRhYmFzZU5hbWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkNsaWVudDo6SURCRmFjdG9yeTo6b3Blbik6CisgICAgICAgIChXZWJDb3JlOjpJ
REJDbGllbnQ6OklEQkZhY3Rvcnk6OmRlbGV0ZURhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQkNsaWVudDo6SURCRmFjdG9yeTo6Y21wKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCRmFjdG9yeUltcGwuaDogCisgICAgICAgIAorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgCisgICAgICAgICogbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHA6CisgICAgICAgICogcGFnZS9EYXRhYmFzZVByb3ZpZGVyLmg6CisKKzIw
MTUtMDktMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAgIE1h
a2UgdGhlIElEQkFueTo6VHlwZSBlbnVtIGludG8gYW4gZW51bSBjbGFzcy4KICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTE2OS4KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFi
YXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4
ZWREYXRhYmFzZS5jcHAKaW5kZXggZDA1ZDIyZS4uOWI3M2VlZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0
YWJhc2UuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5j
bHVkZSAiRGF0YWJhc2VQcm92aWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiSURCRmFjdG9yeUltcGwuaCIKICNpbmNsdWRlICJMZWdhY3lGYWN0b3J5LmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC0xMTEsOCArMTEyLDEy
IEBAIElEQkZhY3RvcnkqIERPTVdpbmRvd0luZGV4ZWREYXRhYmFzZTo6aW5kZXhlZERCKCkKICAg
ICBpZiAoIW1fd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAoIW1faWRiRmFjdG9yeSkKLSAgICAgICAgbV9pZGJG
YWN0b3J5ID0gTGVnYWN5RmFjdG9yeTo6Y3JlYXRlKHBhZ2UtPmRhdGFiYXNlUHJvdmlkZXIoKS5p
ZGJGYWN0b3J5QmFja2VuZCgpKTsKKyAgICBpZiAoIW1faWRiRmFjdG9yeSkgeworICAgICAgICBp
ZiAocGFnZS0+ZGF0YWJhc2VQcm92aWRlcigpLnN1cHBvcnRzTW9kZXJuSURCKCkpCisgICAgICAg
ICAgICBtX2lkYkZhY3RvcnkgPSBJREJDbGllbnQ6OklEQkZhY3Rvcnk6OmNyZWF0ZSgpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBtX2lkYkZhY3RvcnkgPSBMZWdhY3lGYWN0b3J5OjpjcmVh
dGUocGFnZS0+ZGF0YWJhc2VQcm92aWRlcigpLmlkYkZhY3RvcnlCYWNrZW5kKCkpOworICAgIH0K
IAogICAgIHJldHVybiBtX2lkYkZhY3RvcnkuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRmFjdG9yeUltcGwuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkZhY3RvcnlJbXBsLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNWJjOTdlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkZhY3RvcnlJ
bXBsLmNwcApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIklEQkZhY3RvcnlJbXBsLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIElEQkNsaWVudCB7CisKK1Jl
ZjxJREJGYWN0b3J5PiBJREJGYWN0b3J5OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IElEQkZhY3RvcnkpOworfQorCitJREJGYWN0b3J5OjpJREJGYWN0b3J5KCkKK3sKKwor
fQorCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkZhY3Rvcnk6OmdldERhdGFiYXNlTmFtZXMo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUmKQoreworICAgIHJldHVybiBu
dWxscHRyOworfQorCitQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9w
ZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVl
c3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmlu
ZyYsIHVuc2lnbmVkIGxvbmcgbG9uZywgRXhjZXB0aW9uQ29kZSYpCit7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK1Bhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6ZGVs
ZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYsIEV4Y2Vw
dGlvbkNvZGUmKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitzaG9ydCBJREJGYWN0b3J5
OjpjbXAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlJiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmLCBFeGNlcHRpb25Db2RlJikKK3sK
KyAgICByZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgSURCQ2xpZW50Cit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJGYWN0b3J5
SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkZhY3Rv
cnlJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFiNTBjNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJGYWN0b3J5SW1wbC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIElE
QkZhY3RvcnlJbXBsX2gKKyNkZWZpbmUgSURCRmFjdG9yeUltcGxfaAorCisjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJJREJGYWN0b3J5LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK25hbWVzcGFjZSBJREJDbGllbnQgeworCitjbGFzcyBJREJGYWN0b3J5IDogcHVi
bGljIFdlYkNvcmU6OklEQkZhY3RvcnkgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8SURCRmFj
dG9yeT4gY3JlYXRlKCk7CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0
RGF0YWJhc2VOYW1lcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYpIG92
ZXJyaWRlIGZpbmFsOworCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+
IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0
aW9uQ29kZSYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJPcGVu
REJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5h
bWUsIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGUg
ZmluYWw7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IGRlbGV0ZURh
dGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2Vw
dGlvbkNvZGUmKSBvdmVycmlkZSBmaW5hbDsKKworICAgIHZpcnR1YWwgc2hvcnQgY21wKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZmlyc3Qs
IGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBzZWNvbmQsIEV4Y2VwdGlvbkNvZGUmKSBv
dmVycmlkZSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBJREJGYWN0b3J5KCk7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBJREJDbGllbnQKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorI2VuZGlmIC8vIElEQkZhY3RvcnlJbXBsX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA1NGVjODVhLi4wOGExOWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTA2LDYgKzE5MDYsOCBAQAogCQk1MTAxOTJEMjE4
QjZCOUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAxOTJEMDE4QjZCOUFCMDA3
RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmggKi87IH07CiAJCTUxMDE5MkQ1
MThCNkI5QjcwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMTkyRDMxOEI2QjlCNzAw
N0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudC5jcHAgKi87IH07CiAJCTUxMDE5MkQ2
MThCNkI5QjcwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE5MkQ0MThCNkI5QjcwMDdG
QzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaCAqLzsgfTsKKwkJNTEwMzEwNEYxQkE4
Q0MwMzAwMzMyOUMwIC8qIElEQkZhY3RvcnlJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDMxMDRBMUJBOEM2QTYwMDMzMjlDMCAvKiBJREJG
YWN0b3J5SW1wbC5jcHAgKi87IH07CisJCTUxMDMxMDUwMUJBOENDMDMwMDMzMjlDMCAvKiBJREJG
YWN0b3J5SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTEwMzEwNEIxQkE4QzZBNjAwMzMyOUMwIC8qIElEQkZhY3RvcnlJbXBsLmggKi87IH07CiAJ
CTUxMDNDMkIxMUJBMjJEMUEwMEUyNjMzNyAvKiBMZWdhY3lBbnkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2NDVCNkUxQkEwQTc2MTAwRjc4OUNF
IC8qIExlZ2FjeUFueS5jcHAgKi87IH07CiAJCTUxMDNDMkIyMUJBMjMxNzQwMEUyNjMzNyAvKiBJ
REJUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTY0NUI1MDFCOUY4ODlCMDBGNzg5Q0UgLyogSURCVHJhbnNhY3Rpb24uY3BwICov
OyB9OwogCQk1MTAzQzJCMzFCQTIzMjREMDBFMjYzMzcgLyogSURCQ3Vyc29yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjQ1QjU0MUI5Rjg4RTgw
MEY3ODlDRSAvKiBJREJDdXJzb3IuY3BwICovOyB9OwpAQCAtOTE4Myw2ICs5MTg1LDggQEAKIAkJ
NTEwMTkyRDMxOEI2QjlCNzAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUNvbnRyb2xzUm9vdEVs
ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAxOTJENDE4QjZCOUI3
MDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEltYWdlQ29udHJvbHNSb290RWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTAxOTJEODE4QjdEN0FCMDA3RkM3QTEgLyogaW1hZ2VDb250cm9s
c01hYy5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LmNzczsgcGF0aCA9IGltYWdlQ29udHJvbHNNYWMuY3Nz
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTAzMTA0QTFCQThDNkE2MDAzMzI5QzAg
LyogSURCRmFjdG9yeUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSURCRmFjdG9yeUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTAz
MTA0QjFCQThDNkE2MDAzMzI5QzAgLyogSURCRmFjdG9yeUltcGwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSURCRmFjdG9yeUltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTEwNkQ3QkIxOEJEQjc2RjAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29udGV4dC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZXh0TWVudUNvbnRl
eHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA2RDdCQzE4QkRCNzZGMDAw
QUIxNjYgLyogQ29udGV4dE1lbnVDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENvbnRleHRNZW51Q29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTBBMzI2RTE4MzE4NDMxMDAzQzUzMjYgLyogSURCU2VydmVyQ29ubmVjdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJTZXJ2ZXJDb25uZWN0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjUyMyw2ICsxNjUyNywxNSBAQAogCQkJcGF0aCA9
IGFuaW1hdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxMDMxMDQy
MUJBOEM2NEMwMDMzMjlDMCAvKiBjbGllbnQgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTUxMDMxMDRBMUJBOEM2QTYwMDMzMjlDMCAvKiBJREJGYWN0b3J5
SW1wbC5jcHAgKi8sCisJCQkJNTEwMzEwNEIxQkE4QzZBNjAwMzMyOUMwIC8qIElEQkZhY3RvcnlJ
bXBsLmggKi8sCisJCQkpOworCQkJcGF0aCA9IGNsaWVudDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CisJCX07CiAJCTUxMjZFNkI2MEEyRTNBRUYwMDVDMjlGQSAvKiBpY29uICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE4NzM1LDYgKzE4NzQ4LDcg
QEAKIAkJOTcxMkE1NTMxNTAwNEUzQzAwNDhBRjEwIC8qIGluZGV4ZWRkYiAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTEwMzEwNDIxQkE4QzY0QzAwMzMy
OUMwIC8qIGNsaWVudCAqLywKIAkJCQk1MTY0NUIyNzFCOUY2MzdFMDBGNzg5Q0UgLyogbGVnYWN5
ICovLAogCQkJCTUxRDcxOTZDMTgxMTA2REYwMDE2REM1MSAvKiBET01XaW5kb3dJbmRleGVkRGF0
YWJhc2UuY3BwICovLAogCQkJCTUxRDcxOTZEMTgxMTA2REYwMDE2REM1MSAvKiBET01XaW5kb3dJ
bmRleGVkRGF0YWJhc2UuaCAqLywKQEAgLTI2MTQ3LDYgKzI2MTYxLDcgQEAKIAkJCQkwNzhFMDkx
NjE3RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDc4RTA5MzcxN0QxNkIyQzAwNDIwQUExIC8qIE1lZGlhU3RyZWFtUHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDc4RTA5MTcxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlhU3RyZWFtUmVn
aXN0cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMDMxMDUwMUJBOENDMDMwMDMzMjlDMCAvKiBJ
REJGYWN0b3J5SW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTgxN0QxNEQxQzAwNDIw
QUExIC8qIE1lZGlhU3RyZWFtVHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE5MTdE
MTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA3RkZERTY5MTgxQUVENDIwMDcyRDQwOSAvKiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yOTAzNSw2ICsyOTA1MCw3IEBACiAJCQkJMzFGQjFBNkMxMjBB
NUQ2OTAwREMwMkEwIC8qIEpTRGV2aWNlTW90aW9uRXZlbnRDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTlBODYwMDYxMTlEQUY3RjAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRpb25F
dmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1OTBFMUI0QjExRTRFRjcwMDA2OUY3ODQgLyog
SlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUx
MDMxMDRGMUJBOENDMDMwMDMzMjlDMCAvKiBJREJGYWN0b3J5SW1wbC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQ0U0MzhBMjE0MEMwREMwMDA1RTQzN0UgLyogSlNEaWN0aW9uYXJ5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTY1OUREQzgyMDlFMTk4QkEwMDFCRjNDNiAvKiBKU0RvY3VtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCQThEMTA0MkY1QjEwMDA5RDQ0NyAvKiBKU0RvY3Vt
ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcAppbmRleCA0NGE2Y2IzLi44MzdlOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcApAQCAtNDgsNiArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBFbXB0eURhdGFiYXNlUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgRGF0YWJhc2VQcm92aWRlciB7
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgdmlydHVhbCBSZWZQdHI8SURCRmFj
dG9yeUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZUlEQkZhY3RvcnlCYWNrZW5kKCkgeyByZXR1cm4g
bnVsbHB0cjsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c01vZGVybklEQigpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRGF0YWJhc2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EYXRhYmFzZVBy
b3ZpZGVyLmgKaW5kZXggYTZlMjdjNS4uMjcwZjQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9EYXRhYmFzZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EYXRh
YmFzZVByb3ZpZGVyLmgKQEAgLTQwLDYgKzQwLDggQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCiAgICAgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqIGlkYkZhY3Rv
cnlCYWNrZW5kKCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNb2Rlcm5JREIoKSBjb25z
dCA9IDA7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggN2M4MjU2Ny4uZTU1YThmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNS0wOS0xNSAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGVtcHR5IElEQkZhY3RvcnkgaW1wbGVtZW50
YXRpb24gZm9yIE1vZGVybiBJREIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDkxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFN0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5oOgorCiAyMDE1LTA5
LTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUHJvZ3Jlc3MgdG93YXJkcyBDTWFrZSBvbiBNYWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdl
L1dlYkRhdGFiYXNlUHJvdmlkZXIuaAppbmRleCBjYTIxMTgwLi43NmY1NGIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmgKQEAgLTM1LDYgKzM1LDggQEAg
cHVibGljOgogICAgIHN0YXRpYyBXZWJEYXRhYmFzZVByb3ZpZGVyJiBzaW5nbGV0b24oKTsKICAg
ICB2aXJ0dWFsIH5XZWJEYXRhYmFzZVByb3ZpZGVyKCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNNb2Rlcm5JREIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisKIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgV2ViRGF0YWJhc2VQcm92aWRlcigpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
MDc5Y2NlZi4uOWEzZTQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE0IEBACiAyMDE1LTA5LTE1
ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQgZW1wdHkg
SURCRmFjdG9yeSBpbXBsZW1lbnRhdGlvbiBmb3IgTW9kZXJuIElEQi4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTE5MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
V2ViRGF0YWJhc2VQcm92aWRlci5oOgorCisyMDE1LTA5LTE1ICBCcmFkeSBFaWRzb24gIDxiZWlk
c29uQGFwcGxlLmNvbT4KKwogICAgICAgICBNb3ZlIG1vc3QgSURCIG9iamVjdCBlbmNvZGluZy9k
ZWNvZGluZyBmcm9tIFdlYktpdDIgdG8gV2ViQ29yZS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTE1MgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmgKaW5kZXgg
NGM2MTBhNi4uMzhkOTVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaApAQCAtMzUsNiArMzUsOCBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJEYXRhYmFzZVByb3ZpZGVyPiBnZXRPckNyZWF0ZSh1
aW50NjRfdCBpZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5XZWJEYXRhYmFzZVByb3ZpZGVyKCk7
CiAKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNb2Rlcm5JREIoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkRhdGFiYXNlUHJv
dmlkZXIodWludDY0X3QgaWRlbnRpZmllcik7CiAK
</data>
<flag name="review"
          id="286461"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261251</attachid>
            <date>2015-09-15 15:31:40 -0700</date>
            <delta_ts>2015-09-15 15:51:59 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>16687</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMjk1NzdlNS4uZDQxNDUyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTEwLDYgKzEwLDcgQEAgc2V0KFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dhbWVwYWQvZGVwcmVjYXRlZCIKICAgICAiJHtX
RUJDT1JFX0RJUn0vTW9kdWxlcy9nZW9sb2NhdGlvbiIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9k
dWxlcy9pbmRleGVkZGIiCisgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudCIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5IgogICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2luZGlldWkiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01v
ZHVsZXMvbWVkaWFjb250cm9scy8iCkBAIC04NjQsNiArODY1LDggQEAgc2V0KFdlYkNvcmVfU09V
UkNFUwogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAKICAg
ICBNb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5jcHAK
IAorICAgIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJGYWN0b3J5LmNwcAorCiAgICAgTW9k
dWxlcy9pbmRleGVkZGIvbGVnYWN5L0lEQkN1cnNvckJhY2tlbmQuY3BwCiAgICAgTW9kdWxlcy9p
bmRleGVkZGIvbGVnYWN5L0lEQkN1cnNvckJhY2tlbmRPcGVyYXRpb25zLmNwcAogICAgIE1vZHVs
ZXMvaW5kZXhlZGRiL2xlZ2FjeS9JREJEYXRhYmFzZUJhY2tlbmQuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZGIzZjFlMS4uY2NjZDU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDE1LTA5LTE1
ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQgZW1wdHkg
SURCRmFjdG9yeSBpbXBsZW1lbnRhdGlvbiBmb3IgTW9kZXJuIElEQi4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTE5MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoQ2xlYW51cCwg
bm8gYmVoYXZpb3IgY2hhbmdlKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0RPTVdp
bmRvd0luZGV4ZWREYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dJbmRl
eGVkRGF0YWJhc2U6OmluZGV4ZWREQik6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJGYWN0b3J5SW1wbC5jcHA6IAorICAgICAgICAoV2ViQ29yZTo6SURC
Q2xpZW50OjpJREJGYWN0b3J5OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50
OjpJREJGYWN0b3J5OjpJREJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6
SURCRmFjdG9yeTo6Z2V0RGF0YWJhc2VOYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGll
bnQ6OklEQkZhY3Rvcnk6Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJG
YWN0b3J5OjpkZWxldGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklE
QkZhY3Rvcnk6OmNtcCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkZh
Y3RvcnlJbXBsLmg6IAorICAgICAgICAKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIAorICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHBhZ2UvRGF0YWJhc2VQcm92
aWRlci5oOgorCisyMDE1LTA5LTE1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
KwogICAgICAgICBNYWtlIHRoZSBJREJBbnk6OlR5cGUgZW51bSBpbnRvIGFuIGVudW0gY2xhc3Mu
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkxNjku
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRv
d0luZGV4ZWREYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9E
T01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwCmluZGV4IGQwNWQyMmUuLjliNzNlZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWRE
YXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2lu
ZG93SW5kZXhlZERhdGFiYXNlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIklEQkZhY3RvcnlJbXBsLmgiCiAjaW5jbHVkZSAiTGVnYWN5RmFjdG9y
eS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgpAQCAt
MTExLDggKzExMiwxMiBAQCBJREJGYWN0b3J5KiBET01XaW5kb3dJbmRleGVkRGF0YWJhc2U6Omlu
ZGV4ZWREQigpCiAgICAgaWYgKCFtX3dpbmRvdy0+aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1l
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKCFtX2lkYkZhY3RvcnkpCi0g
ICAgICAgIG1faWRiRmFjdG9yeSA9IExlZ2FjeUZhY3Rvcnk6OmNyZWF0ZShwYWdlLT5kYXRhYmFz
ZVByb3ZpZGVyKCkuaWRiRmFjdG9yeUJhY2tlbmQoKSk7CisgICAgaWYgKCFtX2lkYkZhY3Rvcnkp
IHsKKyAgICAgICAgaWYgKHBhZ2UtPmRhdGFiYXNlUHJvdmlkZXIoKS5zdXBwb3J0c01vZGVybklE
QigpKQorICAgICAgICAgICAgbV9pZGJGYWN0b3J5ID0gSURCQ2xpZW50OjpJREJGYWN0b3J5Ojpj
cmVhdGUoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9pZGJGYWN0b3J5ID0gTGVnYWN5
RmFjdG9yeTo6Y3JlYXRlKHBhZ2UtPmRhdGFiYXNlUHJvdmlkZXIoKS5pZGJGYWN0b3J5QmFja2Vu
ZCgpKTsKKyAgICB9CiAKICAgICByZXR1cm4gbV9pZGJGYWN0b3J5LmdldCgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkZhY3RvcnlJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJGYWN0
b3J5SW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjViYzk3ZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJGYWN0b3J5SW1wbC5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJGYWN0b3J5SW1wbC5oIgorCisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBJREJD
bGllbnQgeworCitSZWY8SURCRmFjdG9yeT4gSURCRmFjdG9yeTo6Y3JlYXRlKCkKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJGYWN0b3J5KTsKK30KKworSURCRmFjdG9yeTo6SURCRmFj
dG9yeSgpCit7CisKK30KKworUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJGYWN0b3J5OjpnZXRE
YXRhYmFzZU5hbWVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJikKK3sK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBJ
REJGYWN0b3J5OjpvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmLCBF
eGNlcHRpb25Db2RlJikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUGFzc1JlZlB0cjxJ
REJPcGVuREJSZXF1ZXN0PiBJREJGYWN0b3J5OjpvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBsb25nIGxvbmcsIEV4Y2VwdGlvbkNvZGUmKQorewor
ICAgIHJldHVybiBudWxscHRyOworfQorCitQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElE
QkZhY3Rvcnk6OmRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworc2hv
cnQgSURCRmFjdG9yeTo6Y21wKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNh
dGVkOjpTY3JpcHRWYWx1ZSYsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiwgRXhjZXB0
aW9uQ29kZSYpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIElEQkNsaWVu
dAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCRmFjdG9yeUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJGYWN0b3J5SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjQxYjUwYzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCRmFjdG9yeUltcGwuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBJREJGYWN0b3J5SW1wbF9oCisjZGVmaW5lIElEQkZhY3RvcnlJbXBsX2gKKwor
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURCRmFjdG9yeS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgSURCQ2xpZW50IHsKKworY2xhc3MgSURC
RmFjdG9yeSA6IHB1YmxpYyBXZWJDb3JlOjpJREJGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPElEQkZhY3Rvcnk+IGNyZWF0ZSgpOworCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IGdldERhdGFiYXNlTmFtZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2Vw
dGlvbkNvZGUmKSBvdmVycmlkZSBmaW5hbDsKKworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJP
cGVuREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcm
IG5hbWUsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gb3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29u
c3QgU3RyaW5nJiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbiwgRXhjZXB0aW9uQ29k
ZSYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJPcGVuREJSZXF1
ZXN0PiBkZWxldGVEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGUgZmluYWw7CisKKyAgICB2aXJ0dWFsIHNo
b3J0IGNtcChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUmIGZpcnN0LCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgc2Vjb25kLCBFeGNl
cHRpb25Db2RlJikgb3ZlcnJpZGUgZmluYWw7CisKK3ByaXZhdGU6CisgICAgSURCRmFjdG9yeSgp
OworfTsKKworfSAvLyBuYW1lc3BhY2UgSURCQ2xpZW50Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyNlbmRpZiAvLyBJREJGYWN0
b3J5SW1wbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNTRlYzg1YS4uMDhhMTlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTkwNiw2ICsxOTA2LDggQEAK
IAkJNTEwMTkyRDIxOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1h
Yy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMTky
RDAxOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5oICovOyB9
OwogCQk1MTAxOTJENTE4QjZCOUI3MDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE5
MkQzMThCNkI5QjcwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuY3BwICovOyB9
OwogCQk1MTAxOTJENjE4QjZCOUI3MDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAxOTJE
NDE4QjZCOUI3MDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmggKi87IH07CisJ
CTUxMDMxMDRGMUJBOENDMDMwMDMzMjlDMCAvKiBJREJGYWN0b3J5SW1wbC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAzMTA0QTFCQThDNkE2MDAz
MzI5QzAgLyogSURCRmFjdG9yeUltcGwuY3BwICovOyB9OworCQk1MTAzMTA1MDFCQThDQzAzMDAz
MzI5QzAgLyogSURCRmFjdG9yeUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMDMxMDRCMUJBOEM2QTYwMDMzMjlDMCAvKiBJREJGYWN0b3J5SW1w
bC5oICovOyB9OwogCQk1MTAzQzJCMTFCQTIyRDFBMDBFMjYzMzcgLyogTGVnYWN5QW55LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjQ1QjZFMUJB
MEE3NjEwMEY3ODlDRSAvKiBMZWdhY3lBbnkuY3BwICovOyB9OwogCQk1MTAzQzJCMjFCQTIzMTc0
MDBFMjYzMzcgLyogSURCVHJhbnNhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2NDVCNTAxQjlGODg5QjAwRjc4OUNFIC8qIElEQlRyYW5z
YWN0aW9uLmNwcCAqLzsgfTsKIAkJNTEwM0MyQjMxQkEyMzI0RDAwRTI2MzM3IC8qIElEQkN1cnNv
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTY0
NUI1NDFCOUY4OEU4MDBGNzg5Q0UgLyogSURCQ3Vyc29yLmNwcCAqLzsgfTsKQEAgLTkxODMsNiAr
OTE4NSw4IEBACiAJCTUxMDE5MkQzMThCNkI5QjcwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VD
b250cm9sc1Jvb3RFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEw
MTkyRDQxOEI2QjlCNzAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMTkyRDgxOEI3RDdBQjAwN0ZDN0ExIC8q
IGltYWdlQ29udHJvbHNNYWMuY3NzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5jc3M7IHBhdGggPSBpbWFnZUNv
bnRyb2xzTWFjLmNzczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwMzEwNEExQkE4
QzZBNjAwMzMyOUMwIC8qIElEQkZhY3RvcnlJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IElEQkZhY3RvcnlJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTEwMzEwNEIxQkE4QzZBNjAwMzMyOUMwIC8qIElEQkZhY3RvcnlJbXBsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkZhY3RvcnlJbXBsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDZEN0JCMThCREI3NkYwMDBBQjE2NiAvKiBDb250ZXh0
TWVudUNvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29u
dGV4dE1lbnVDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNkQ3
QkMxOEJEQjc2RjAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29udGV4dC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZXh0TWVudUNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTEwQTMyNkUxODMxODQzMTAwM0M1MzI2IC8qIElEQlNlcnZlckNvbm5l
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCU2VydmVyQ29ubmVj
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY1MjMsNiArMTY1MjcsMTUg
QEAKIAkJCXBhdGggPSBhbmltYXRpb247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9
OworCQk1MTAzMTA0MjFCQThDNjRDMDAzMzI5QzAgLyogY2xpZW50ICovID0geworCQkJaXNhID0g
UEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTAzMTA0QTFCQThDNkE2MDAzMzI5QzAg
LyogSURCRmFjdG9yeUltcGwuY3BwICovLAorCQkJCTUxMDMxMDRCMUJBOEM2QTYwMDMzMjlDMCAv
KiBJREJGYWN0b3J5SW1wbC5oICovLAorCQkJKTsKKwkJCXBhdGggPSBjbGllbnQ7CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MTI2RTZCNjBBMkUzQUVGMDA1QzI5RkEgLyog
aWNvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xODcz
NSw2ICsxODc0OCw3IEBACiAJCTk3MTJBNTUzMTUwMDRFM0MwMDQ4QUYxMCAvKiBpbmRleGVkZGIg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTUxMDMxMDQy
MUJBOEM2NEMwMDMzMjlDMCAvKiBjbGllbnQgKi8sCiAJCQkJNTE2NDVCMjcxQjlGNjM3RTAwRjc4
OUNFIC8qIGxlZ2FjeSAqLywKIAkJCQk1MUQ3MTk2QzE4MTEwNkRGMDAxNkRDNTEgLyogRE9NV2lu
ZG93SW5kZXhlZERhdGFiYXNlLmNwcCAqLywKIAkJCQk1MUQ3MTk2RDE4MTEwNkRGMDAxNkRDNTEg
LyogRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmggKi8sCkBAIC0yNjE0Nyw2ICsyNjE2MSw3IEBA
CiAJCQkJMDc4RTA5MTYxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlhU3RyZWFtRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA3OEUwOTM3MTdEMTZCMkMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE3MTdEMTREMUMwMDQyMEFBMSAvKiBN
ZWRpYVN0cmVhbVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTAzMTA1MDFCQThDQzAz
MDAzMzI5QzAgLyogSURCRmFjdG9yeUltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE4
MTdEMTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwNzhFMDkxOTE3RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwN0ZGREU2OTE4MUFFRDQyMDA3MkQ0MDkgLyogTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjkwMzUsNiArMjkwNTAsNyBAQAogCQkJ
CTMxRkIxQTZDMTIwQTVENjkwMERDMDJBMCAvKiBKU0RldmljZU1vdGlvbkV2ZW50Q3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTU5QTg2MDA2MTE5REFGN0YwMERFRjFFRiAvKiBKU0Rldmlj
ZU9yaWVudGF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTkwRTFCNEIxMUU0RUY3
MDAwNjlGNzg0IC8qIEpTRGV2aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk1MTAzMTA0RjFCQThDQzAzMDAzMzI5QzAgLyogSURCRmFjdG9yeUltcGwuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFNDM4QTIxNDBDMERDMDAwNUU0MzdFIC8qIEpTRGljdGlv
bmFyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTlEREM4MjA5RTE5OEJBMDAxQkYzQzYgLyog
SlNEb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUM3QkE4RDEwNDJGNUIxMDAwOUQ0
NDcgLyogSlNEb2N1bWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggNDRhNmNiMy4uODM3ZThkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgRW1wdHlEYXRhYmFzZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIERhdGFi
YXNlUHJvdmlkZXIgewogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIHZpcnR1YWwg
UmVmUHRyPElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVJREJGYWN0b3J5QmFja2Vu
ZCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNb2Rlcm5J
REIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RhdGFiYXNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGF0YWJhc2VQcm92aWRlci5oCmluZGV4IGE2ZTI3YzUuLjI3MGY0MmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGF0YWJhc2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGF0YWJhc2VQcm92aWRlci5oCkBAIC00MCw2ICs0MCw4IEBAIHB1YmxpYzoKIAog
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJm
YWNlKiBpZGJGYWN0b3J5QmFja2VuZCgpOworCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTW9k
ZXJuSURCKCkgY29uc3QgPSAwOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdjODI1
NjcuLmU1NWE4ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDktMTUgIEJyYWR5
IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBlbXB0eSBJREJGYWN0
b3J5IGltcGxlbWVudGF0aW9uIGZvciBNb2Rlcm4gSURCLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MTkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIu
aDoKKwogMjAxNS0wOS0xNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFByb2dyZXNzIHRvd2FyZHMgQ01ha2Ugb24gTWFjLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmgKaW5kZXggY2EyMTE4MC4uNzZmNTRi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5oCkBAIC0z
NSw2ICszNSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViRGF0YWJhc2VQcm92aWRlciYgc2lu
Z2xldG9uKCk7CiAgICAgdmlydHVhbCB+V2ViRGF0YWJhc2VQcm92aWRlcigpOwogCisgICAgdmly
dHVhbCBib29sIHN1cHBvcnRzTW9kZXJuSURCKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkRhdGFiYXNlUHJvdmlkZXIoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IDA3OWNjZWYuLjlhM2U0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNCBA
QAogMjAxNS0wOS0xNSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKKyAgICAg
ICAgQWRkIGVtcHR5IElEQkZhY3RvcnkgaW1wbGVtZW50YXRpb24gZm9yIE1vZGVybiBJREIuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkxOTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaDoKKworMjAxNS0wOS0xNSAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKICAgICAgICAgTW92ZSBtb3N0IElEQiBvYmpl
Y3QgZW5jb2RpbmcvZGVjb2RpbmcgZnJvbSBXZWJLaXQyIHRvIFdlYkNvcmUuCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkxNTIKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRl
ci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92
aWRlci5oCmluZGV4IDRjNjEwYTYuLjM4ZDk1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmgKQEAgLTM1
LDYgKzM1LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViRGF0YWJhc2VQcm92aWRlcj4g
Z2V0T3JDcmVhdGUodWludDY0X3QgaWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+V2ViRGF0YWJh
c2VQcm92aWRlcigpOwogCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTW9kZXJuSURCKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBX
ZWJEYXRhYmFzZVByb3ZpZGVyKHVpbnQ2NF90IGlkZW50aWZpZXIpOwogCg==
</data>
<flag name="review"
          id="286462"
          type_id="1"
          status="+"
          setter="jer.noble"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261254</attachid>
            <date>2015-09-15 15:51:59 -0700</date>
            <delta_ts>2015-09-15 16:38:33 -0700</delta_ts>
            <desc>Patch v2 - For EWS before landing</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>16667</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMjk1NzdlNS4uNDI4MWVkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTEwLDYgKzEwLDcgQEAgc2V0KFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dhbWVwYWQvZGVwcmVjYXRlZCIKICAgICAiJHtX
RUJDT1JFX0RJUn0vTW9kdWxlcy9nZW9sb2NhdGlvbiIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9k
dWxlcy9pbmRleGVkZGIiCisgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudCIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5IgogICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2luZGlldWkiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01v
ZHVsZXMvbWVkaWFjb250cm9scy8iCkBAIC04NjQsNiArODY1LDggQEAgc2V0KFdlYkNvcmVfU09V
UkNFUwogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAKICAg
ICBNb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5jcHAK
IAorICAgIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJGYWN0b3J5SW1wbC5jcHAKKwogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9JREJDdXJzb3JCYWNrZW5kLmNwcAogICAgIE1vZHVs
ZXMvaW5kZXhlZGRiL2xlZ2FjeS9JREJDdXJzb3JCYWNrZW5kT3BlcmF0aW9ucy5jcHAKICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvSURCRGF0YWJhc2VCYWNrZW5kLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGRiM2YxZTEuLjExYTBjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMiBAQAogMjAxNS0w
OS0xNSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIGVt
cHR5IElEQkZhY3RvcnkgaW1wbGVtZW50YXRpb24gZm9yIE1vZGVybiBJREIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkxOTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChObyBiZWhhdmlv
ciBjaGFuZ2UpLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhl
ZERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd0luZGV4ZWREYXRhYmFz
ZTo6aW5kZXhlZERCKToKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkZhY3RvcnlJbXBsLmNwcDogCisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklE
QkZhY3Rvcnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkZhY3Rv
cnk6OklEQkZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJGYWN0b3J5
OjpnZXREYXRhYmFzZU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCRmFj
dG9yeTo6b3Blbik6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkZhY3Rvcnk6OmRl
bGV0ZURhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCRmFjdG9yeTo6
Y21wKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRmFjdG9yeUltcGwu
aDogCisgICAgICAgIAorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgCisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgICogcGFnZS9EYXRhYmFzZVByb3ZpZGVyLmg6CisK
KzIwMTUtMDktMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAg
IE1ha2UgdGhlIElEQkFueTo6VHlwZSBlbnVtIGludG8gYW4gZW51bSBjbGFzcy4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTE2OS4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERh
dGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0lu
ZGV4ZWREYXRhYmFzZS5jcHAKaW5kZXggZDA1ZDIyZS4uOWI3M2VlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVk
RGF0YWJhc2UuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAj
aW5jbHVkZSAiRGF0YWJhc2VQcm92aWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiSURCRmFjdG9yeUltcGwuaCIKICNpbmNsdWRlICJMZWdhY3lGYWN0b3J5LmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC0xMTEsOCArMTEy
LDEyIEBAIElEQkZhY3RvcnkqIERPTVdpbmRvd0luZGV4ZWREYXRhYmFzZTo6aW5kZXhlZERCKCkK
ICAgICBpZiAoIW1fd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAoIW1faWRiRmFjdG9yeSkKLSAgICAgICAgbV9p
ZGJGYWN0b3J5ID0gTGVnYWN5RmFjdG9yeTo6Y3JlYXRlKHBhZ2UtPmRhdGFiYXNlUHJvdmlkZXIo
KS5pZGJGYWN0b3J5QmFja2VuZCgpKTsKKyAgICBpZiAoIW1faWRiRmFjdG9yeSkgeworICAgICAg
ICBpZiAocGFnZS0+ZGF0YWJhc2VQcm92aWRlcigpLnN1cHBvcnRzTW9kZXJuSURCKCkpCisgICAg
ICAgICAgICBtX2lkYkZhY3RvcnkgPSBJREJDbGllbnQ6OklEQkZhY3Rvcnk6OmNyZWF0ZSgpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2lkYkZhY3RvcnkgPSBMZWdhY3lGYWN0b3J5Ojpj
cmVhdGUocGFnZS0+ZGF0YWJhc2VQcm92aWRlcigpLmlkYkZhY3RvcnlCYWNrZW5kKCkpOworICAg
IH0KIAogICAgIHJldHVybiBtX2lkYkZhY3RvcnkuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRmFjdG9yeUltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkZhY3RvcnlJbXBsLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNWJjOTdlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkZhY3Rv
cnlJbXBsLmNwcApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIklEQkZhY3RvcnlJbXBsLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIElEQkNsaWVudCB7CisK
K1JlZjxJREJGYWN0b3J5PiBJREJGYWN0b3J5OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IElEQkZhY3RvcnkpOworfQorCitJREJGYWN0b3J5OjpJREJGYWN0b3J5KCkKK3sK
KworfQorCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkZhY3Rvcnk6OmdldERhdGFiYXNlTmFt
ZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUmKQoreworICAgIHJldHVy
biBudWxscHRyOworfQorCitQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6
Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNv
ZGUmKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitQYXNzUmVmUHRyPElEQk9wZW5EQlJl
cXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0
cmluZyYsIHVuc2lnbmVkIGxvbmcgbG9uZywgRXhjZXB0aW9uQ29kZSYpCit7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK1Bhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6
ZGVsZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYsIEV4
Y2VwdGlvbkNvZGUmKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitzaG9ydCBJREJGYWN0
b3J5OjpjbXAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlJiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmLCBFeGNlcHRpb25Db2RlJikK
K3sKKyAgICByZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgSURCQ2xpZW50Cit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJGYWN0
b3J5SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkZh
Y3RvcnlJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFiNTBjNgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJGYWN0b3J5SW1wbC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IElEQkZhY3RvcnlJbXBsX2gKKyNkZWZpbmUgSURCRmFjdG9yeUltcGxfaAorCisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJJREJGYWN0b3J5LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBJREJDbGllbnQgeworCitjbGFzcyBJREJGYWN0b3J5IDog
cHVibGljIFdlYkNvcmU6OklEQkZhY3RvcnkgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8SURC
RmFjdG9yeT4gY3JlYXRlKCk7CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
Z2V0RGF0YWJhc2VOYW1lcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYp
IG92ZXJyaWRlIGZpbmFsOworCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVl
c3Q+IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhj
ZXB0aW9uQ29kZSYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJP
cGVuREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcm
IG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJp
ZGUgZmluYWw7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IGRlbGV0
ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4
Y2VwdGlvbkNvZGUmKSBvdmVycmlkZSBmaW5hbDsKKworICAgIHZpcnR1YWwgc2hvcnQgY21wKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZmly
c3QsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBzZWNvbmQsIEV4Y2VwdGlvbkNvZGUm
KSBvdmVycmlkZSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBJREJGYWN0b3J5KCk7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBJREJDbGllbnQKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorI2VuZGlmIC8vIElEQkZhY3RvcnlJbXBsX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA1NGVjODVhLi4wOGExOWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTA2LDYgKzE5MDYsOCBAQAogCQk1MTAxOTJE
MjE4QjZCOUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAxOTJEMDE4QjZCOUFC
MDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmggKi87IH07CiAJCTUxMDE5
MkQ1MThCNkI5QjcwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMTkyRDMxOEI2QjlC
NzAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudC5jcHAgKi87IH07CiAJCTUxMDE5
MkQ2MThCNkI5QjcwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE5MkQ0MThCNkI5Qjcw
MDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaCAqLzsgfTsKKwkJNTEwMzEwNEYx
QkE4Q0MwMzAwMzMyOUMwIC8qIElEQkZhY3RvcnlJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDMxMDRBMUJBOEM2QTYwMDMzMjlDMCAvKiBJ
REJGYWN0b3J5SW1wbC5jcHAgKi87IH07CisJCTUxMDMxMDUwMUJBOENDMDMwMDMzMjlDMCAvKiBJ
REJGYWN0b3J5SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEwMzEwNEIxQkE4QzZBNjAwMzMyOUMwIC8qIElEQkZhY3RvcnlJbXBsLmggKi87IH07
CiAJCTUxMDNDMkIxMUJBMjJEMUEwMEUyNjMzNyAvKiBMZWdhY3lBbnkuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2NDVCNkUxQkEwQTc2MTAwRjc4
OUNFIC8qIExlZ2FjeUFueS5jcHAgKi87IH07CiAJCTUxMDNDMkIyMUJBMjMxNzQwMEUyNjMzNyAv
KiBJREJUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTY0NUI1MDFCOUY4ODlCMDBGNzg5Q0UgLyogSURCVHJhbnNhY3Rpb24uY3Bw
ICovOyB9OwogCQk1MTAzQzJCMzFCQTIzMjREMDBFMjYzMzcgLyogSURCQ3Vyc29yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjQ1QjU0MUI5Rjg4
RTgwMEY3ODlDRSAvKiBJREJDdXJzb3IuY3BwICovOyB9OwpAQCAtOTE4Myw2ICs5MTg1LDggQEAK
IAkJNTEwMTkyRDMxOEI2QjlCNzAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAxOTJENDE4QjZC
OUI3MDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQ29udHJvbHNSb290RWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTAxOTJEODE4QjdEN0FCMDA3RkM3QTEgLyogaW1hZ2VDb250
cm9sc01hYy5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LmNzczsgcGF0aCA9IGltYWdlQ29udHJvbHNNYWMu
Y3NzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTAzMTA0QTFCQThDNkE2MDAzMzI5
QzAgLyogSURCRmFjdG9yeUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSURCRmFjdG9yeUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTAzMTA0QjFCQThDNkE2MDAzMzI5QzAgLyogSURCRmFjdG9yeUltcGwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSURCRmFjdG9yeUltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTEwNkQ3QkIxOEJEQjc2RjAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29udGV4
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZXh0TWVudUNv
bnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA2RDdCQzE4QkRCNzZG
MDAwQUIxNjYgLyogQ29udGV4dE1lbnVDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENvbnRleHRNZW51Q29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTBBMzI2RTE4MzE4NDMxMDAzQzUzMjYgLyogSURCU2VydmVyQ29ubmVjdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJTZXJ2ZXJDb25uZWN0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjUyMyw2ICsxNjUyNywxNSBAQAogCQkJcGF0
aCA9IGFuaW1hdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxMDMx
MDQyMUJBOEM2NEMwMDMzMjlDMCAvKiBjbGllbnQgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTUxMDMxMDRBMUJBOEM2QTYwMDMzMjlDMCAvKiBJREJGYWN0
b3J5SW1wbC5jcHAgKi8sCisJCQkJNTEwMzEwNEIxQkE4QzZBNjAwMzMyOUMwIC8qIElEQkZhY3Rv
cnlJbXBsLmggKi8sCisJCQkpOworCQkJcGF0aCA9IGNsaWVudDsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CiAJCTUxMjZFNkI2MEEyRTNBRUYwMDVDMjlGQSAvKiBpY29uICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE4NzM1LDYgKzE4NzQ4
LDcgQEAKIAkJOTcxMkE1NTMxNTAwNEUzQzAwNDhBRjEwIC8qIGluZGV4ZWRkYiAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTEwMzEwNDIxQkE4QzY0QzAw
MzMyOUMwIC8qIGNsaWVudCAqLywKIAkJCQk1MTY0NUIyNzFCOUY2MzdFMDBGNzg5Q0UgLyogbGVn
YWN5ICovLAogCQkJCTUxRDcxOTZDMTgxMTA2REYwMDE2REM1MSAvKiBET01XaW5kb3dJbmRleGVk
RGF0YWJhc2UuY3BwICovLAogCQkJCTUxRDcxOTZEMTgxMTA2REYwMDE2REM1MSAvKiBET01XaW5k
b3dJbmRleGVkRGF0YWJhc2UuaCAqLywKQEAgLTI2MTQ3LDYgKzI2MTYxLDcgQEAKIAkJCQkwNzhF
MDkxNjE3RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1FdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDc4RTA5MzcxN0QxNkIyQzAwNDIwQUExIC8qIE1lZGlhU3RyZWFtUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTcxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlhU3RyZWFt
UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMDMxMDUwMUJBOENDMDMwMDMzMjlDMCAv
KiBJREJGYWN0b3J5SW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTgxN0QxNEQxQzAw
NDIwQUExIC8qIE1lZGlhU3RyZWFtVHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE5
MTdEMTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA3RkZERTY5MTgxQUVENDIwMDcyRDQwOSAvKiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTAzNSw2ICsyOTA1MCw3IEBACiAJCQkJMzFGQjFBNkMx
MjBBNUQ2OTAwREMwMkEwIC8qIEpTRGV2aWNlTW90aW9uRXZlbnRDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTlBODYwMDYxMTlEQUY3RjAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRp
b25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1OTBFMUI0QjExRTRFRjcwMDA2OUY3ODQg
LyogSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTUxMDMxMDRGMUJBOENDMDMwMDMzMjlDMCAvKiBJREJGYWN0b3J5SW1wbC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0U0MzhBMjE0MEMwREMwMDA1RTQzN0UgLyogSlNEaWN0aW9uYXJ5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTY1OUREQzgyMDlFMTk4QkEwMDFCRjNDNiAvKiBKU0RvY3VtZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCQThEMTA0MkY1QjEwMDA5RDQ0NyAvKiBKU0Rv
Y3VtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmNwcAppbmRleCA0NGE2Y2IzLi44MzdlOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmNwcApAQCAtNDgsNiArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBFbXB0eURhdGFiYXNlUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgRGF0YWJhc2VQcm92aWRl
ciB7CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgdmlydHVhbCBSZWZQdHI8SURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZUlEQkZhY3RvcnlCYWNrZW5kKCkgeyByZXR1
cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c01vZGVybklEQigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGF0YWJhc2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EYXRhYmFz
ZVByb3ZpZGVyLmgKaW5kZXggYTZlMjdjNS4uMjcwZjQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9EYXRhYmFzZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
YXRhYmFzZVByb3ZpZGVyLmgKQEAgLTQwLDYgKzQwLDggQEAgcHVibGljOgogCiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCiAgICAgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqIGlkYkZh
Y3RvcnlCYWNrZW5kKCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNb2Rlcm5JREIoKSBj
b25zdCA9IDA7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggN2M4MjU2Ny4uYWRkZmUy
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNS0wOS0xNSAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGVtcHR5IElEQkZhY3RvcnkgaW1wbGVt
ZW50YXRpb24gZm9yIE1vZGVybiBJREIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDkxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUu
CisKKyAgICAgICAgKiBTdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaDoKKwogMjAxNS0wOS0x
NCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IFByb2dyZXNzIHRvd2FyZHMgQ01ha2Ugb24gTWFjLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9X
ZWJEYXRhYmFzZVByb3ZpZGVyLmgKaW5kZXggY2EyMTE4MC4uNzZmNTRiMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5oCkBAIC0zNSw2ICszNSw4IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgV2ViRGF0YWJhc2VQcm92aWRlciYgc2luZ2xldG9uKCk7CiAgICAg
dmlydHVhbCB+V2ViRGF0YWJhc2VQcm92aWRlcigpOwogCisgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzTW9kZXJuSURCKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IFdlYkRhdGFiYXNlUHJvdmlkZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDA3
OWNjZWYuLmQ0MjQ4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNCBAQAogMjAxNS0wOS0xNSAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIGVtcHR5IElE
QkZhY3RvcnkgaW1wbGVtZW50YXRpb24gZm9yIE1vZGVybiBJREIuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkxOTEKKworICAgICAgICBSZXZpZXdl
ZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRh
YmFzZVByb3ZpZGVyLmg6CisKKzIwMTUtMDktMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgorCiAgICAgICAgIE1vdmUgbW9zdCBJREIgb2JqZWN0IGVuY29kaW5nL2RlY29kaW5n
IGZyb20gV2ViS2l0MiB0byBXZWJDb3JlLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MTUyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaAppbmRleCA0YzYxMGE2
Li4zOGQ5NWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9XZWJEYXRhYmFzZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRlci5oCkBAIC0zNSw2ICszNSw4IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPFdlYkRhdGFiYXNlUHJvdmlkZXI+IGdldE9yQ3JlYXRlKHVpbnQ2NF90
IGlkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgfldlYkRhdGFiYXNlUHJvdmlkZXIoKTsKIAorICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c01vZGVybklEQigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGZhbHNlOyB9CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViRGF0YWJhc2VQcm92aWRlcih1
aW50NjRfdCBpZGVudGlmaWVyKTsKIAo=
</data>
<flag name="commit-queue"
          id="286464"
          type_id="3"
          status="+"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261260</attachid>
            <date>2015-09-15 16:38:33 -0700</date>
            <delta_ts>2015-09-15 16:45:12 -0700</delta_ts>
            <desc>Patch v3 - EWS/landing</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11274</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMjk1NzdlNS4uNDI4MWVkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTEwLDYgKzEwLDcgQEAgc2V0KFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dhbWVwYWQvZGVwcmVjYXRlZCIKICAgICAiJHtX
RUJDT1JFX0RJUn0vTW9kdWxlcy9nZW9sb2NhdGlvbiIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9k
dWxlcy9pbmRleGVkZGIiCisgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudCIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5IgogICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2luZGlldWkiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01v
ZHVsZXMvbWVkaWFjb250cm9scy8iCkBAIC04NjQsNiArODY1LDggQEAgc2V0KFdlYkNvcmVfU09V
UkNFUwogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAKICAg
ICBNb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5jcHAK
IAorICAgIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJGYWN0b3J5SW1wbC5jcHAKKwogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9JREJDdXJzb3JCYWNrZW5kLmNwcAogICAgIE1vZHVs
ZXMvaW5kZXhlZGRiL2xlZ2FjeS9JREJDdXJzb3JCYWNrZW5kT3BlcmF0aW9ucy5jcHAKICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvSURCRGF0YWJhc2VCYWNrZW5kLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGRiM2YxZTEuLjExYTBjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMiBAQAogMjAxNS0w
OS0xNSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIGVt
cHR5IElEQkZhY3RvcnkgaW1wbGVtZW50YXRpb24gZm9yIE1vZGVybiBJREIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkxOTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChObyBiZWhhdmlv
ciBjaGFuZ2UpLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhl
ZERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd0luZGV4ZWREYXRhYmFz
ZTo6aW5kZXhlZERCKToKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkZhY3RvcnlJbXBsLmNwcDogCisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklE
QkZhY3Rvcnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkZhY3Rv
cnk6OklEQkZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJGYWN0b3J5
OjpnZXREYXRhYmFzZU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCRmFj
dG9yeTo6b3Blbik6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkZhY3Rvcnk6OmRl
bGV0ZURhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCRmFjdG9yeTo6
Y21wKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRmFjdG9yeUltcGwu
aDogCisgICAgICAgIAorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgCisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgICogcGFnZS9EYXRhYmFzZVByb3ZpZGVyLmg6CisK
KzIwMTUtMDktMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAg
IE1ha2UgdGhlIElEQkFueTo6VHlwZSBlbnVtIGludG8gYW4gZW51bSBjbGFzcy4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTE2OS4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERh
dGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0lu
ZGV4ZWREYXRhYmFzZS5jcHAKaW5kZXggZDA1ZDIyZS4uOWI3M2VlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVk
RGF0YWJhc2UuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAj
aW5jbHVkZSAiRGF0YWJhc2VQcm92aWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiSURCRmFjdG9yeUltcGwuaCIKICNpbmNsdWRlICJMZWdhY3lGYWN0b3J5LmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC0xMTEsOCArMTEy
LDEyIEBAIElEQkZhY3RvcnkqIERPTVdpbmRvd0luZGV4ZWREYXRhYmFzZTo6aW5kZXhlZERCKCkK
ICAgICBpZiAoIW1fd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAoIW1faWRiRmFjdG9yeSkKLSAgICAgICAgbV9p
ZGJGYWN0b3J5ID0gTGVnYWN5RmFjdG9yeTo6Y3JlYXRlKHBhZ2UtPmRhdGFiYXNlUHJvdmlkZXIo
KS5pZGJGYWN0b3J5QmFja2VuZCgpKTsKKyAgICBpZiAoIW1faWRiRmFjdG9yeSkgeworICAgICAg
ICBpZiAocGFnZS0+ZGF0YWJhc2VQcm92aWRlcigpLnN1cHBvcnRzTW9kZXJuSURCKCkpCisgICAg
ICAgICAgICBtX2lkYkZhY3RvcnkgPSBJREJDbGllbnQ6OklEQkZhY3Rvcnk6OmNyZWF0ZSgpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2lkYkZhY3RvcnkgPSBMZWdhY3lGYWN0b3J5Ojpj
cmVhdGUocGFnZS0+ZGF0YWJhc2VQcm92aWRlcigpLmlkYkZhY3RvcnlCYWNrZW5kKCkpOworICAg
IH0KIAogICAgIHJldHVybiBtX2lkYkZhY3RvcnkuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTRlYzg1YS4uMDhh
MTlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTkwNiw2ICsxOTA2LDggQEAKIAkJNTEwMTkyRDIxOEI2QjlBQjAwN0ZDN0Ex
IC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudE1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMTkyRDAxOEI2QjlBQjAwN0ZDN0ExIC8qIEltYWdl
Q29udHJvbHNSb290RWxlbWVudE1hYy5oICovOyB9OwogCQk1MTAxOTJENTE4QjZCOUI3MDA3RkM3
QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE5MkQzMThCNkI5QjcwMDdGQzdBMSAvKiBJbWFn
ZUNvbnRyb2xzUm9vdEVsZW1lbnQuY3BwICovOyB9OwogCQk1MTAxOTJENjE4QjZCOUI3MDA3RkM3
QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAxOTJENDE4QjZCOUI3MDA3RkM3QTEgLyogSW1hZ2VD
b250cm9sc1Jvb3RFbGVtZW50LmggKi87IH07CisJCTUxMDMxMDRGMUJBOENDMDMwMDMzMjlDMCAv
KiBJREJGYWN0b3J5SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTAzMTA0QTFCQThDNkE2MDAzMzI5QzAgLyogSURCRmFjdG9yeUltcGwuY3Bw
ICovOyB9OworCQk1MTAzMTA1MDFCQThDQzAzMDAzMzI5QzAgLyogSURCRmFjdG9yeUltcGwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDMxMDRCMUJB
OEM2QTYwMDMzMjlDMCAvKiBJREJGYWN0b3J5SW1wbC5oICovOyB9OwogCQk1MTAzQzJCMTFCQTIy
RDFBMDBFMjYzMzcgLyogTGVnYWN5QW55LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjQ1QjZFMUJBMEE3NjEwMEY3ODlDRSAvKiBMZWdhY3lBbnku
Y3BwICovOyB9OwogCQk1MTAzQzJCMjFCQTIzMTc0MDBFMjYzMzcgLyogSURCVHJhbnNhY3Rpb24u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2NDVC
NTAxQjlGODg5QjAwRjc4OUNFIC8qIElEQlRyYW5zYWN0aW9uLmNwcCAqLzsgfTsKIAkJNTEwM0My
QjMxQkEyMzI0RDAwRTI2MzM3IC8qIElEQkN1cnNvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTY0NUI1NDFCOUY4OEU4MDBGNzg5Q0UgLyogSURC
Q3Vyc29yLmNwcCAqLzsgfTsKQEAgLTkxODMsNiArOTE4NSw4IEBACiAJCTUxMDE5MkQzMThCNkI5
QjcwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMTkyRDQxOEI2QjlCNzAwN0ZDN0ExIC8qIElt
YWdlQ29udHJvbHNSb290RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEwMTkyRDgxOEI3RDdBQjAwN0ZDN0ExIC8qIGltYWdlQ29udHJvbHNNYWMuY3NzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5jc3M7IHBhdGggPSBpbWFnZUNvbnRyb2xzTWFjLmNzczsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTEwMzEwNEExQkE4QzZBNjAwMzMyOUMwIC8qIElEQkZhY3RvcnlJ
bXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQkZhY3RvcnlJ
bXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwMzEwNEIxQkE4QzZBNjAw
MzMyOUMwIC8qIElEQkZhY3RvcnlJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IElEQkZhY3RvcnlJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDZE
N0JCMThCREI3NkYwMDBBQjE2NiAvKiBDb250ZXh0TWVudUNvbnRleHQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGV4dE1lbnVDb250ZXh0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwNkQ3QkMxOEJEQjc2RjAwMEFCMTY2IC8qIENvbnRl
eHRNZW51Q29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZXh0
TWVudUNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwQTMyNkUxODMx
ODQzMTAwM0M1MzI2IC8qIElEQlNlcnZlckNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSURCU2VydmVyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTY1MjMsNiArMTY1MjcsMTUgQEAKIAkJCXBhdGggPSBhbmltYXRpb247CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1MTAzMTA0MjFCQThDNjRDMDAzMzI5
QzAgLyogY2xpZW50ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgK
KwkJCQk1MTAzMTA0QTFCQThDNkE2MDAzMzI5QzAgLyogSURCRmFjdG9yeUltcGwuY3BwICovLAor
CQkJCTUxMDMxMDRCMUJBOEM2QTYwMDMzMjlDMCAvKiBJREJGYWN0b3J5SW1wbC5oICovLAorCQkJ
KTsKKwkJCXBhdGggPSBjbGllbnQ7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owog
CQk1MTI2RTZCNjBBMkUzQUVGMDA1QzI5RkEgLyogaWNvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xODczNSw2ICsxODc0OCw3IEBACiAJCTk3MTJBNTUz
MTUwMDRFM0MwMDQ4QUYxMCAvKiBpbmRleGVkZGIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTUxMDMxMDQyMUJBOEM2NEMwMDMzMjlDMCAvKiBjbGllbnQg
Ki8sCiAJCQkJNTE2NDVCMjcxQjlGNjM3RTAwRjc4OUNFIC8qIGxlZ2FjeSAqLywKIAkJCQk1MUQ3
MTk2QzE4MTEwNkRGMDAxNkRDNTEgLyogRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcCAqLywK
IAkJCQk1MUQ3MTk2RDE4MTEwNkRGMDAxNkRDNTEgLyogRE9NV2luZG93SW5kZXhlZERhdGFiYXNl
LmggKi8sCkBAIC0yNjE0Nyw2ICsyNjE2MSw3IEBACiAJCQkJMDc4RTA5MTYxN0QxNEQxQzAwNDIw
QUExIC8qIE1lZGlhU3RyZWFtRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTM3MTdE
MTZCMkMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3OEUwOTE3MTdEMTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1MTAzMTA1MDFCQThDQzAzMDAzMzI5QzAgLyogSURCRmFjdG9yeUltcGwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE4MTdEMTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0
cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkxOTE3RDE0RDFDMDA0MjBBQTEg
LyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0ZGREU2OTE4
MUFFRDQyMDA3MkQ0MDkgLyogTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCBpbiBIZWFkZXJzICov
LApAQCAtMjkwMzUsNiArMjkwNTAsNyBAQAogCQkJCTMxRkIxQTZDMTIwQTVENjkwMERDMDJBMCAv
KiBKU0RldmljZU1vdGlvbkV2ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU5QTg2
MDA2MTE5REFGN0YwMERFRjFFRiAvKiBKU0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTkwRTFCNEIxMUU0RUY3MDAwNjlGNzg0IC8qIEpTRGV2aWNlT3JpZW50
YXRpb25FdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTAzMTA0RjFCQThDQzAz
MDAzMzI5QzAgLyogSURCRmFjdG9yeUltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFNDM4
QTIxNDBDMERDMDAwNUU0MzdFIC8qIEpTRGljdGlvbmFyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk2NTlEREM4MjA5RTE5OEJBMDAxQkYzQzYgLyogSlNEb2N1bWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0OUM3QkE4RDEwNDJGNUIxMDAwOUQ0NDcgLyogSlNEb2N1bWVudEN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXgg
NDRhNmNiMy4uODM3ZThkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
QEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRW1wdHlEYXRhYmFz
ZVByb3ZpZGVyIGZpbmFsIDogcHVibGljIERhdGFiYXNlUHJvdmlkZXIgewogI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQogICAgIHZpcnR1YWwgUmVmUHRyPElEQkZhY3RvcnlCYWNrZW5kSW50
ZXJmYWNlPiBjcmVhdGVJREJGYWN0b3J5QmFja2VuZCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNb2Rlcm5JREIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RhdGFiYXNl
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGF0YWJhc2VQcm92aWRlci5oCmluZGV4
IGE2ZTI3YzUuLjI3MGY0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGF0YWJh
c2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGF0YWJhc2VQcm92aWRlci5o
CkBAIC00MCw2ICs0MCw4IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQogICAgIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiBpZGJGYWN0b3J5QmFja2VuZCgpOwor
CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTW9kZXJuSURCKCkgY29uc3QgPSAwOwogI2VuZGlm
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdjODI1NjcuLmFkZGZlMjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMTUtMDktMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBlbXB0eSBJREJGYWN0b3J5IGltcGxlbWVudGF0aW9uIGZvciBNb2Rl
cm4gSURCLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ5MTkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisgICAgICAgICogU3Rv
cmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmg6CisKIDIwMTUtMDktMTQgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBQcm9ncmVzcyB0b3dhcmRz
IENNYWtlIG9uIE1hYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9XZWJEYXRh
YmFzZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRl
ci5oCmluZGV4IGNhMjExODAuLjYzZDY0Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1dl
YkRhdGFiYXNlUHJvdmlkZXIuaApAQCAtMzUsNiArMzUsMTAgQEAgcHVibGljOgogICAgIHN0YXRp
YyBXZWJEYXRhYmFzZVByb3ZpZGVyJiBzaW5nbGV0b24oKTsKICAgICB2aXJ0dWFsIH5XZWJEYXRh
YmFzZVByb3ZpZGVyKCk7CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNNb2Rlcm5JREIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJEYXRhYmFzZVByb3ZpZGVy
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCAwNzljY2VmLi5kNDI0ODFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUg
KzEsMTQgQEAKIDIwMTUtMDktMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgog
CisgICAgICAgIEFkZCBlbXB0eSBJREJGYWN0b3J5IGltcGxlbWVudGF0aW9uIGZvciBNb2Rlcm4g
SURCLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5
MTkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRlci5oOgorCisyMDE1LTA5LTE1ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwogICAgICAgICBNb3ZlIG1vc3QgSURCIG9i
amVjdCBlbmNvZGluZy9kZWNvZGluZyBmcm9tIFdlYktpdDIgdG8gV2ViQ29yZS4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTE1MgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3Zp
ZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVBy
b3ZpZGVyLmgKaW5kZXggNGM2MTBhNi4uMzhkOTVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaApAQCAt
MzUsNiArMzUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJEYXRhYmFzZVByb3ZpZGVy
PiBnZXRPckNyZWF0ZSh1aW50NjRfdCBpZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIH5XZWJEYXRh
YmFzZVByb3ZpZGVyKCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNb2Rlcm5JREIoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0
IFdlYkRhdGFiYXNlUHJvdmlkZXIodWludDY0X3QgaWRlbnRpZmllcik7CiAK
</data>
<flag name="commit-queue"
          id="286468"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261263</attachid>
            <date>2015-09-15 16:45:12 -0700</date>
            <delta_ts>2015-09-15 17:18:31 -0700</delta_ts>
            <desc>Patch v4 - EWS/landing</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>16706</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMjk1NzdlNS4uNDI4MWVkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTEwLDYgKzEwLDcgQEAgc2V0KFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dhbWVwYWQvZGVwcmVjYXRlZCIKICAgICAiJHtX
RUJDT1JFX0RJUn0vTW9kdWxlcy9nZW9sb2NhdGlvbiIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9k
dWxlcy9pbmRleGVkZGIiCisgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudCIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5IgogICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2luZGlldWkiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01v
ZHVsZXMvbWVkaWFjb250cm9scy8iCkBAIC04NjQsNiArODY1LDggQEAgc2V0KFdlYkNvcmVfU09V
UkNFUwogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAKICAg
ICBNb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5jcHAK
IAorICAgIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJGYWN0b3J5SW1wbC5jcHAKKwogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9JREJDdXJzb3JCYWNrZW5kLmNwcAogICAgIE1vZHVs
ZXMvaW5kZXhlZGRiL2xlZ2FjeS9JREJDdXJzb3JCYWNrZW5kT3BlcmF0aW9ucy5jcHAKICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvSURCRGF0YWJhc2VCYWNrZW5kLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGRiM2YxZTEuLjExYTBjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMiBAQAogMjAxNS0w
OS0xNSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIGVt
cHR5IElEQkZhY3RvcnkgaW1wbGVtZW50YXRpb24gZm9yIE1vZGVybiBJREIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkxOTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChObyBiZWhhdmlv
ciBjaGFuZ2UpLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhl
ZERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd0luZGV4ZWREYXRhYmFz
ZTo6aW5kZXhlZERCKToKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkZhY3RvcnlJbXBsLmNwcDogCisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklE
QkZhY3Rvcnk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkZhY3Rv
cnk6OklEQkZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJGYWN0b3J5
OjpnZXREYXRhYmFzZU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCRmFj
dG9yeTo6b3Blbik6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkZhY3Rvcnk6OmRl
bGV0ZURhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCRmFjdG9yeTo6
Y21wKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRmFjdG9yeUltcGwu
aDogCisgICAgICAgIAorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgCisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgICogcGFnZS9EYXRhYmFzZVByb3ZpZGVyLmg6CisK
KzIwMTUtMDktMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAg
IE1ha2UgdGhlIElEQkFueTo6VHlwZSBlbnVtIGludG8gYW4gZW51bSBjbGFzcy4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTE2OS4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERh
dGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0lu
ZGV4ZWREYXRhYmFzZS5jcHAKaW5kZXggZDA1ZDIyZS4uOWI3M2VlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVk
RGF0YWJhc2UuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAj
aW5jbHVkZSAiRGF0YWJhc2VQcm92aWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiSURCRmFjdG9yeUltcGwuaCIKICNpbmNsdWRlICJMZWdhY3lGYWN0b3J5LmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC0xMTEsOCArMTEy
LDEyIEBAIElEQkZhY3RvcnkqIERPTVdpbmRvd0luZGV4ZWREYXRhYmFzZTo6aW5kZXhlZERCKCkK
ICAgICBpZiAoIW1fd2luZG93LT5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAoIW1faWRiRmFjdG9yeSkKLSAgICAgICAgbV9p
ZGJGYWN0b3J5ID0gTGVnYWN5RmFjdG9yeTo6Y3JlYXRlKHBhZ2UtPmRhdGFiYXNlUHJvdmlkZXIo
KS5pZGJGYWN0b3J5QmFja2VuZCgpKTsKKyAgICBpZiAoIW1faWRiRmFjdG9yeSkgeworICAgICAg
ICBpZiAocGFnZS0+ZGF0YWJhc2VQcm92aWRlcigpLnN1cHBvcnRzTW9kZXJuSURCKCkpCisgICAg
ICAgICAgICBtX2lkYkZhY3RvcnkgPSBJREJDbGllbnQ6OklEQkZhY3Rvcnk6OmNyZWF0ZSgpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2lkYkZhY3RvcnkgPSBMZWdhY3lGYWN0b3J5Ojpj
cmVhdGUocGFnZS0+ZGF0YWJhc2VQcm92aWRlcigpLmlkYkZhY3RvcnlCYWNrZW5kKCkpOworICAg
IH0KIAogICAgIHJldHVybiBtX2lkYkZhY3RvcnkuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRmFjdG9yeUltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkZhY3RvcnlJbXBsLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNWJjOTdlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkZhY3Rv
cnlJbXBsLmNwcApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIklEQkZhY3RvcnlJbXBsLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIElEQkNsaWVudCB7CisK
K1JlZjxJREJGYWN0b3J5PiBJREJGYWN0b3J5OjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IElEQkZhY3RvcnkpOworfQorCitJREJGYWN0b3J5OjpJREJGYWN0b3J5KCkKK3sK
KworfQorCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkZhY3Rvcnk6OmdldERhdGFiYXNlTmFt
ZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUmKQoreworICAgIHJldHVy
biBudWxscHRyOworfQorCitQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6
Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNv
ZGUmKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitQYXNzUmVmUHRyPElEQk9wZW5EQlJl
cXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0
cmluZyYsIHVuc2lnbmVkIGxvbmcgbG9uZywgRXhjZXB0aW9uQ29kZSYpCit7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK1Bhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6
ZGVsZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYsIEV4
Y2VwdGlvbkNvZGUmKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitzaG9ydCBJREJGYWN0
b3J5OjpjbXAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlJiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmLCBFeGNlcHRpb25Db2RlJikK
K3sKKyAgICByZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgSURCQ2xpZW50Cit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJGYWN0
b3J5SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkZh
Y3RvcnlJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFiNTBjNgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJGYWN0b3J5SW1wbC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IElEQkZhY3RvcnlJbXBsX2gKKyNkZWZpbmUgSURCRmFjdG9yeUltcGxfaAorCisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJJREJGYWN0b3J5LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBJREJDbGllbnQgeworCitjbGFzcyBJREJGYWN0b3J5IDog
cHVibGljIFdlYkNvcmU6OklEQkZhY3RvcnkgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8SURC
RmFjdG9yeT4gY3JlYXRlKCk7CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
Z2V0RGF0YWJhc2VOYW1lcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYp
IG92ZXJyaWRlIGZpbmFsOworCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVl
c3Q+IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhj
ZXB0aW9uQ29kZSYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJP
cGVuREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcm
IG5hbWUsIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJp
ZGUgZmluYWw7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IGRlbGV0
ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4
Y2VwdGlvbkNvZGUmKSBvdmVycmlkZSBmaW5hbDsKKworICAgIHZpcnR1YWwgc2hvcnQgY21wKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZmly
c3QsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBzZWNvbmQsIEV4Y2VwdGlvbkNvZGUm
KSBvdmVycmlkZSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBJREJGYWN0b3J5KCk7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBJREJDbGllbnQKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorI2VuZGlmIC8vIElEQkZhY3RvcnlJbXBsX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA1NGVjODVhLi4wOGExOWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTA2LDYgKzE5MDYsOCBAQAogCQk1MTAxOTJE
MjE4QjZCOUFCMDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAxOTJEMDE4QjZCOUFC
MDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50TWFjLmggKi87IH07CiAJCTUxMDE5
MkQ1MThCNkI5QjcwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMTkyRDMxOEI2QjlC
NzAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudC5jcHAgKi87IH07CiAJCTUxMDE5
MkQ2MThCNkI5QjcwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE5MkQ0MThCNkI5Qjcw
MDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaCAqLzsgfTsKKwkJNTEwMzEwNEYx
QkE4Q0MwMzAwMzMyOUMwIC8qIElEQkZhY3RvcnlJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDMxMDRBMUJBOEM2QTYwMDMzMjlDMCAvKiBJ
REJGYWN0b3J5SW1wbC5jcHAgKi87IH07CisJCTUxMDMxMDUwMUJBOENDMDMwMDMzMjlDMCAvKiBJ
REJGYWN0b3J5SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEwMzEwNEIxQkE4QzZBNjAwMzMyOUMwIC8qIElEQkZhY3RvcnlJbXBsLmggKi87IH07
CiAJCTUxMDNDMkIxMUJBMjJEMUEwMEUyNjMzNyAvKiBMZWdhY3lBbnkuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2NDVCNkUxQkEwQTc2MTAwRjc4
OUNFIC8qIExlZ2FjeUFueS5jcHAgKi87IH07CiAJCTUxMDNDMkIyMUJBMjMxNzQwMEUyNjMzNyAv
KiBJREJUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTY0NUI1MDFCOUY4ODlCMDBGNzg5Q0UgLyogSURCVHJhbnNhY3Rpb24uY3Bw
ICovOyB9OwogCQk1MTAzQzJCMzFCQTIzMjREMDBFMjYzMzcgLyogSURCQ3Vyc29yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNjQ1QjU0MUI5Rjg4
RTgwMEY3ODlDRSAvKiBJREJDdXJzb3IuY3BwICovOyB9OwpAQCAtOTE4Myw2ICs5MTg1LDggQEAK
IAkJNTEwMTkyRDMxOEI2QjlCNzAwN0ZDN0ExIC8qIEltYWdlQ29udHJvbHNSb290RWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUNvbnRyb2xzUm9v
dEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAxOTJENDE4QjZC
OUI3MDA3RkM3QTEgLyogSW1hZ2VDb250cm9sc1Jvb3RFbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQ29udHJvbHNSb290RWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTAxOTJEODE4QjdEN0FCMDA3RkM3QTEgLyogaW1hZ2VDb250
cm9sc01hYy5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LmNzczsgcGF0aCA9IGltYWdlQ29udHJvbHNNYWMu
Y3NzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTAzMTA0QTFCQThDNkE2MDAzMzI5
QzAgLyogSURCRmFjdG9yeUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSURCRmFjdG9yeUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTAzMTA0QjFCQThDNkE2MDAzMzI5QzAgLyogSURCRmFjdG9yeUltcGwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSURCRmFjdG9yeUltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTEwNkQ3QkIxOEJEQjc2RjAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29udGV4
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZXh0TWVudUNv
bnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA2RDdCQzE4QkRCNzZG
MDAwQUIxNjYgLyogQ29udGV4dE1lbnVDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENvbnRleHRNZW51Q29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTBBMzI2RTE4MzE4NDMxMDAzQzUzMjYgLyogSURCU2VydmVyQ29ubmVjdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJTZXJ2ZXJDb25uZWN0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjUyMyw2ICsxNjUyNywxNSBAQAogCQkJcGF0
aCA9IGFuaW1hdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxMDMx
MDQyMUJBOEM2NEMwMDMzMjlDMCAvKiBjbGllbnQgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTUxMDMxMDRBMUJBOEM2QTYwMDMzMjlDMCAvKiBJREJGYWN0
b3J5SW1wbC5jcHAgKi8sCisJCQkJNTEwMzEwNEIxQkE4QzZBNjAwMzMyOUMwIC8qIElEQkZhY3Rv
cnlJbXBsLmggKi8sCisJCQkpOworCQkJcGF0aCA9IGNsaWVudDsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CiAJCTUxMjZFNkI2MEEyRTNBRUYwMDVDMjlGQSAvKiBpY29uICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE4NzM1LDYgKzE4NzQ4
LDcgQEAKIAkJOTcxMkE1NTMxNTAwNEUzQzAwNDhBRjEwIC8qIGluZGV4ZWRkYiAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTEwMzEwNDIxQkE4QzY0QzAw
MzMyOUMwIC8qIGNsaWVudCAqLywKIAkJCQk1MTY0NUIyNzFCOUY2MzdFMDBGNzg5Q0UgLyogbGVn
YWN5ICovLAogCQkJCTUxRDcxOTZDMTgxMTA2REYwMDE2REM1MSAvKiBET01XaW5kb3dJbmRleGVk
RGF0YWJhc2UuY3BwICovLAogCQkJCTUxRDcxOTZEMTgxMTA2REYwMDE2REM1MSAvKiBET01XaW5k
b3dJbmRleGVkRGF0YWJhc2UuaCAqLywKQEAgLTI2MTQ3LDYgKzI2MTYxLDcgQEAKIAkJCQkwNzhF
MDkxNjE3RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1FdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDc4RTA5MzcxN0QxNkIyQzAwNDIwQUExIC8qIE1lZGlhU3RyZWFtUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTcxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlhU3RyZWFt
UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMDMxMDUwMUJBOENDMDMwMDMzMjlDMCAv
KiBJREJGYWN0b3J5SW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTgxN0QxNEQxQzAw
NDIwQUExIC8qIE1lZGlhU3RyZWFtVHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE5
MTdEMTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA3RkZERTY5MTgxQUVENDIwMDcyRDQwOSAvKiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTAzNSw2ICsyOTA1MCw3IEBACiAJCQkJMzFGQjFBNkMx
MjBBNUQ2OTAwREMwMkEwIC8qIEpTRGV2aWNlTW90aW9uRXZlbnRDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTlBODYwMDYxMTlEQUY3RjAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRp
b25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1OTBFMUI0QjExRTRFRjcwMDA2OUY3ODQg
LyogSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTUxMDMxMDRGMUJBOENDMDMwMDMzMjlDMCAvKiBJREJGYWN0b3J5SW1wbC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0U0MzhBMjE0MEMwREMwMDA1RTQzN0UgLyogSlNEaWN0aW9uYXJ5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTY1OUREQzgyMDlFMTk4QkEwMDFCRjNDNiAvKiBKU0RvY3VtZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCQThEMTA0MkY1QjEwMDA5RDQ0NyAvKiBKU0Rv
Y3VtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmNwcAppbmRleCA0NGE2Y2IzLi44MzdlOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmNwcApAQCAtNDgsNiArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBFbXB0eURhdGFiYXNlUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgRGF0YWJhc2VQcm92aWRl
ciB7CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgdmlydHVhbCBSZWZQdHI8SURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZUlEQkZhY3RvcnlCYWNrZW5kKCkgeyByZXR1
cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c01vZGVybklEQigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGF0YWJhc2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EYXRhYmFz
ZVByb3ZpZGVyLmgKaW5kZXggYTZlMjdjNS4uMjcwZjQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9EYXRhYmFzZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
YXRhYmFzZVByb3ZpZGVyLmgKQEAgLTQwLDYgKzQwLDggQEAgcHVibGljOgogCiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCiAgICAgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqIGlkYkZh
Y3RvcnlCYWNrZW5kKCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNb2Rlcm5JREIoKSBj
b25zdCA9IDA7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggN2M4MjU2Ny4uYWRkZmUy
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNS0wOS0xNSAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGVtcHR5IElEQkZhY3RvcnkgaW1wbGVt
ZW50YXRpb24gZm9yIE1vZGVybiBJREIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDkxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUu
CisKKyAgICAgICAgKiBTdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaDoKKwogMjAxNS0wOS0x
NCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IFByb2dyZXNzIHRvd2FyZHMgQ01ha2Ugb24gTWFjLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9X
ZWJEYXRhYmFzZVByb3ZpZGVyLmgKaW5kZXggY2EyMTE4MC4uNjNkNjRjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5oCkBAIC0zNSw2ICszNSwxMCBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFdlYkRhdGFiYXNlUHJvdmlkZXImIHNpbmdsZXRvbigpOwogICAg
IHZpcnR1YWwgfldlYkRhdGFiYXNlUHJvdmlkZXIoKTsKIAorI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c01vZGVybklEQigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdl
YkRhdGFiYXNlUHJvdmlkZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDA3OWNjZWYuLmQ0MjQ4MWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsNSArMSwxNCBAQAogMjAxNS0wOS0xNSAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIGVtcHR5IElEQkZhY3RvcnkgaW1wbGVtZW50
YXRpb24gZm9yIE1vZGVybiBJREIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDkxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmg6CisK
KzIwMTUtMDktMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAg
IE1vdmUgbW9zdCBJREIgb2JqZWN0IGVuY29kaW5nL2RlY29kaW5nIGZyb20gV2ViS2l0MiB0byBX
ZWJDb3JlLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ5MTUyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L1dlYkRhdGFiYXNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJh
c2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaAppbmRleCA0YzYxMGE2Li4zOGQ5NWMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3Zp
ZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJh
c2VQcm92aWRlci5oCkBAIC0zNSw2ICszNSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdl
YkRhdGFiYXNlUHJvdmlkZXI+IGdldE9yQ3JlYXRlKHVpbnQ2NF90IGlkZW50aWZpZXIpOwogICAg
IHZpcnR1YWwgfldlYkRhdGFiYXNlUHJvdmlkZXIoKTsKIAorICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c01vZGVybklEQigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisKIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgV2ViRGF0YWJhc2VQcm92aWRlcih1aW50NjRfdCBpZGVudGlmaWVy
KTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>