<?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>154356</bug_id>
          
          <creation_ts>2016-02-17 13:33:02 -0800</creation_ts>
          <short_desc>Modern IDB: More Encoder/Decoder/Messaging scaffolding for WK2 IPC</short_desc>
          <delta_ts>2016-02-17 15:25:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>149117</blocked>
    
    <blocked>153808</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1165713</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-17 13:33:02 -0800</bug_when>
    <thetext>Modern IDB: More Encoder/Decoder/Messaging scaffolding for WK2 IPC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165718</commentid>
    <comment_count>1</comment_count>
      <attachid>271584</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-17 13:39:54 -0800</bug_when>
    <thetext>Created attachment 271584
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165721</commentid>
    <comment_count>2</comment_count>
      <attachid>271584</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-17 13:46:20 -0800</bug_when>
    <thetext>Comment on attachment 271584
Patch v1

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

&gt; Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.h:62
&gt; +    WEBCORE_EXPORT IDBDatabaseInfo();

I think this should go with the other constructor declaration.

&gt; Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:41
&gt; +

intentional space?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165727</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-17 13:57:50 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 271584 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=271584&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.h:62
&gt; &gt; +    WEBCORE_EXPORT IDBDatabaseInfo();
&gt; 
&gt; I think this should go with the other constructor declaration.

I&apos;ve been trying to make it clear - or at least suggest - that these default constructors are only for the sake of encoder/decoder (They didn&apos;t exist before today)

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:41
&gt; &gt; +
&gt; 
&gt; intentional space?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165757</commentid>
    <comment_count>4</comment_count>
      <attachid>271595</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-17 14:48:35 -0800</bug_when>
    <thetext>Created attachment 271595
Patch for linux EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165763</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-17 15:24:23 -0800</bug_when>
    <thetext>GTK is broken for other reasons... I&apos;m landing now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165764</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-17 15:25:33 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/196725</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271584</attachid>
            <date>2016-02-17 13:39:54 -0800</date>
            <delta_ts>2016-02-17 14:45:13 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>18325</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2YWEyNjdlLi45ZjQ0MDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTYtMDItMTcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vZGVybiBJREI6IE1vcmUgRW5jb2Rlci9EZWNvZGVyL01lc3NhZ2luZyBzY2FmZm9sZGlu
ZyBmb3IgV0syIElQQy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NDM1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvciB5ZXQ7IEp1c3QgbGF5aW5nIHRoZSBncm91bmR3
b3JrLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5m
by5oOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJbmZvOjplbmNvZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJbmZvOjpkZWNvZGUpOgorCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJFcnJv
cjo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkVycm9yOjpkZWNvZGUpOgorCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlcXVlc3REYXRhLmg6CisgICAgICAg
IChXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YTo6ZGVjb2RlKToKKworICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJS
ZXN1bHREYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVzdWx0RGF0YTo6ZGVj
b2RlKToKKwogMjAxNi0wMi0xNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBQREZQbHVnaW4ncyBzY3JvbGxhYmxlQXJlYSBjb250YWluZXIgaXMgbm90
IHByb3Blcmx5IHVucmVnaXN0ZXJlZCB3aGVuIHBhZ2UgaXMgZ29pbmcgaW50byB0aGUgUGFnZUNh
Y2hlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCRGF0YWJhc2VJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFy
ZWQvSURCRGF0YWJhc2VJbmZvLmgKaW5kZXggYTEzMTVhYS4uZjFlYWVjOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFz
ZUluZm8uaApAQCAtNTksMTMgKzU5LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRlbGV0ZU9iamVj
dFN0b3JlKGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKTsKICAgICB2b2lkIGRlbGV0ZU9i
amVjdFN0b3JlKHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAKKyAgICBXRUJDT1JF
X0VYUE9SVCBJREJEYXRhYmFzZUluZm8oKTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIElEQkRhdGFiYXNlSW5mbyYpOworCiAjaWZu
ZGVmIE5ERUJVRwogICAgIFN0cmluZyBsb2dnaW5nU3RyaW5nKCkgY29uc3Q7CiAjZW5kaWYKIAog
cHJpdmF0ZToKLSAgICBJREJEYXRhYmFzZUluZm8oKTsKLQogICAgIElEQk9iamVjdFN0b3JlSW5m
byogZ2V0SW5mb0ZvckV4aXN0aW5nT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBvYmplY3RTdG9y
ZU5hbWUpOwogICAgIElEQk9iamVjdFN0b3JlSW5mbyogZ2V0SW5mb0ZvckV4aXN0aW5nT2JqZWN0
U3RvcmUodWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKIApAQCAtNzcsNiArODAsMzAg
QEAgcHJpdmF0ZToKIAogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSURCRGF0
YWJhc2VJbmZvOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVy
IDw8IG1fbmFtZSA8PCBtX3ZlcnNpb24gPDwgbV9tYXhPYmplY3RTdG9yZUlEIDw8IG1fb2JqZWN0
U3RvcmVNYXA7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citib29sIElEQkRhdGFiYXNl
SW5mbzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIElEQkRhdGFiYXNlSW5mbyYgaW5mbykKK3sK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubV9uYW1lKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLm1fdmVyc2lvbikpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5tX21heE9iamVj
dFN0b3JlSUQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGluZm8ubV9vYmplY3RTdG9yZU1hcCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJFcnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmgKaW5kZXggMGZmZDA4YS4uMWVlOWI1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmgK
QEAgLTU3LDkgKzU3LDIyIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fbWVzc2FnZTsKIH07CiAK
LXRlbXBsYXRlPGNsYXNzIERlY29kZXI+IGJvb2wgSURCRXJyb3I6OmRlY29kZShEZWNvZGVyJiwg
SURCRXJyb3ImKQordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSURCRXJyb3I6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIHJldHVybiBmYWxzZTsKKyAgICBlbmNv
ZGVyIDw8IG1fY29kZSA8PCBtX21lc3NhZ2U7Cit9CisgICAgCit0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPgorYm9vbCBJREJFcnJvcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIElEQkVycm9yJiBl
cnJvcikKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGVycm9yLm1fY29kZSkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZXJyb3IubV9tZXNzYWdl
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JREJSZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQlJlcXVlc3REYXRhLmgKaW5kZXggMTg4OTc3ZC4uNzU4OWFkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJl
cXVlc3REYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVk
L0lEQlJlcXVlc3REYXRhLmgKQEAgLTEzNywyOCArMTM3LDI4IEBAIGJvb2wgSURCUmVxdWVzdERh
dGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdCkKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc09iamVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICBpZiAoaGFzT2JqZWN0KSB7Ci0gICAgICAgIElEQlJlc291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlkZW50aWZpZXIpKQorICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SURCUmVzb3VyY2VJZGVudGlmaWVyPiBvYmplY3QgPSBzdGQ6Om1h
a2VfdW5pcXVlPElEQlJlc291cmNlSWRlbnRpZmllcj4oKTsKKyAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZSgqb2JqZWN0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcmVx
dWVzdC5tX3JlcXVlc3RJZGVudGlmaWVyID0gc3RkOjptYWtlX3VuaXF1ZTxJREJSZXNvdXJjZUlk
ZW50aWZpZXI+KGlkZW50aWZpZXIpOworICAgICAgICByZXF1ZXN0Lm1fcmVxdWVzdElkZW50aWZp
ZXIgPSBXVEZNb3ZlKG9iamVjdCk7CiAgICAgfQogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSho
YXNPYmplY3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGhhc09iamVjdCkgewot
ICAgICAgICBJREJSZXNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcjsKLSAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShpZGVudGlmaWVyKSkKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElEQlJl
c291cmNlSWRlbnRpZmllcj4gb2JqZWN0ID0gc3RkOjptYWtlX3VuaXF1ZTxJREJSZXNvdXJjZUlk
ZW50aWZpZXI+KCk7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoKm9iamVjdCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJlcXVlc3QubV90cmFuc2FjdGlvbklkZW50
aWZpZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPElEQlJlc291cmNlSWRlbnRpZmllcj4oaWRlbnRpZmll
cik7CisgICAgICAgIHJlcXVlc3QubV90cmFuc2FjdGlvbklkZW50aWZpZXIgPSBXVEZNb3ZlKG9i
amVjdCk7CiAgICAgfQogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNPYmplY3QpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGhhc09iamVjdCkgewotICAgICAgICBJREJSZXNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcjsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShp
ZGVudGlmaWVyKSkKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElEQlJlc291cmNlSWRlbnRpZmll
cj4gb2JqZWN0ID0gc3RkOjptYWtlX3VuaXF1ZTxJREJSZXNvdXJjZUlkZW50aWZpZXI+KCk7Cisg
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoKm9iamVjdCkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIHJlcXVlc3QubV9jdXJzb3JJZGVudGlmaWVyID0gc3RkOjptYWtlX3Vu
aXF1ZTxJREJSZXNvdXJjZUlkZW50aWZpZXI+KGlkZW50aWZpZXIpOworICAgICAgICByZXF1ZXN0
Lm1fY3Vyc29ySWRlbnRpZmllciA9IFdURk1vdmUob2JqZWN0KTsKICAgICB9CiAKICAgICByZXR1
cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJSZXN1bHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCUmVzdWx0RGF0YS5oCmluZGV4IDkwNTFmNTMuLjQ1YTEwZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERh
dGEuaApAQCAtMTE4LDkgKzExOCw4NiBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fcmVzdWx0
SW50ZWdlciB7IDAgfTsKIH07CiAKLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+IGJvb2wgSURCUmVz
dWx0RGF0YTo6ZGVjb2RlKERlY29kZXImLCBJREJSZXN1bHREYXRhJikKK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Cit2b2lkIElEQlJlc3VsdERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogewotICAgIHJldHVybiBmYWxzZTsKKyAgICBlbmNvZGVyIDw8IG1fcmVxdWVzdElkZW50
aWZpZXIgPDwgbV9lcnJvciA8PCBtX2RhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIgPDwgbV9y
ZXN1bHRJbnRlZ2VyOworCisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fdHlwZSk7CisKKyAgICBl
bmNvZGVyIDw8ICEhbV9kYXRhYmFzZUluZm87CisgICAgaWYgKG1fZGF0YWJhc2VJbmZvKQorICAg
ICAgICBlbmNvZGVyIDw8ICptX2RhdGFiYXNlSW5mbzsKKworICAgIGVuY29kZXIgPDwgISFtX3Ry
YW5zYWN0aW9uSW5mbzsKKyAgICBpZiAobV90cmFuc2FjdGlvbkluZm8pCisgICAgICAgIGVuY29k
ZXIgPDwgKm1fdHJhbnNhY3Rpb25JbmZvOworCisgICAgZW5jb2RlciA8PCAhIW1fcmVzdWx0S2V5
OworICAgIGlmIChtX3Jlc3VsdEtleSkKKyAgICAgICAgZW5jb2RlciA8PCAqbV9yZXN1bHRLZXk7
CisKKyAgICBlbmNvZGVyIDw8ICEhbV9nZXRSZXN1bHQ7CisgICAgaWYgKG1fZ2V0UmVzdWx0KQor
ICAgICAgICBlbmNvZGVyIDw8ICptX2dldFJlc3VsdDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gYm9vbCBJREJSZXN1bHREYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSURCUmVz
dWx0RGF0YSYgcmVzdWx0KQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fcmVx
dWVzdElkZW50aWZpZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC5tX2Vycm9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9kYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVy
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQubV9yZXN1bHRJbnRlZ2VyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZUVudW0ocmVzdWx0Lm1fdHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGJvb2wgaGFzT2JqZWN0OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNPYmpl
Y3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGhhc09iamVjdCkgeworICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SURCRGF0YWJhc2VJbmZvPiBvYmplY3QgPSBzdGQ6Om1ha2VfdW5p
cXVlPElEQkRhdGFiYXNlSW5mbz4oKTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSgqb2Jq
ZWN0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmVzdWx0Lm1fZGF0YWJh
c2VJbmZvID0gV1RGTW92ZShvYmplY3QpOworICAgIH0KKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaGFzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChoYXNPYmplY3Qp
IHsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElEQlRyYW5zYWN0aW9uSW5mbz4gb2JqZWN0ID0g
c3RkOjptYWtlX3VuaXF1ZTxJREJUcmFuc2FjdGlvbkluZm8+KCk7CisgICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoKm9iamVjdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IHJlc3VsdC5tX3RyYW5zYWN0aW9uSW5mbyA9IFdURk1vdmUob2JqZWN0KTsKKyAgICB9CisKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc09iamVjdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoaGFzT2JqZWN0KSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxJREJLZXlEYXRh
PiBvYmplY3QgPSBzdGQ6Om1ha2VfdW5pcXVlPElEQktleURhdGE+KCk7CisgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoKm9iamVjdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIHJlc3VsdC5tX3Jlc3VsdEtleSA9IFdURk1vdmUob2JqZWN0KTsKKyAgICB9CisKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGhhc09iamVjdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAoaGFzT2JqZWN0KSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxJREJHZXRSZXN1bHQ+
IG9iamVjdCA9IHN0ZDo6bWFrZV91bmlxdWU8SURCR2V0UmVzdWx0PigpOworICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKCpvYmplY3QpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICByZXN1bHQubV9nZXRSZXN1bHQgPSBXVEZNb3ZlKG9iamVjdCk7CisgICAgfQorCisgICAg
cmV0dXJuIHRydWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBm
MGY3NmI3Li5jZDBjZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTYtMDItMTcg
IEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJREI6
IE1vcmUgRW5jb2Rlci9EZWNvZGVyL01lc3NhZ2luZyBzY2FmZm9sZGluZyBmb3IgV0syIElQQy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDM1Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5n
ZSBpbiBiZWhhdmlvciB5ZXQ7IEp1c3QgbGF5aW5nIHRoZSBncm91bmR3b3JrLgorCisgICAgICAg
ICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZERlbGV0ZURh
dGFiYXNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRP
cGVuRGF0YWJhc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6
OmRpZEFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ6OmRpZENvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50OjpkaWRDcmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRGVsZXRlT2JqZWN0U3RvcmUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZENsZWFyT2JqZWN0U3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZENyZWF0
ZUluZGV4KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRE
ZWxldGVJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6
ZGlkUHV0T3JBZGQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6
OmRpZEdldFJlY29yZCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6ZGlkR2V0Q291bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ6OmRpZERlbGV0ZVJlY29yZCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25U
b0NsaWVudDo6ZGlkT3BlbkN1cnNvcik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudDo6ZGlkSXRlcmF0ZUN1cnNvcik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudDo6ZmlyZVZlcnNpb25DaGFuZ2VFdmVudCk6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkU3RhcnRUcmFuc2FjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6bm90aWZ5T3BlbkRCUmVxdWVz
dEJsb2NrZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluOgorCiAyMDE2LTAy
LTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBE
RlBsdWdpbidzIHNjcm9sbGFibGVBcmVhIGNvbnRhaW5lciBpcyBub3QgcHJvcGVybHkgdW5yZWdp
c3RlcmVkIHdoZW4gcGFnZSBpcyBnb2luZyBpbnRvIHRoZSBQYWdlQ2FjaGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAppbmRleCBmNDkyYzZkLi41OGI0NjkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCkBAIC0yOCw2ICsyOCwxMiBA
QAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdl
cy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSURCRXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0lE
QlJlc3VsdERhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVj
dGlvbi5oPgorCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CkBAIC02Miw3NiArNjgsOTQgQEAgV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9D
bGllbnQmIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y29ubmVjdGlvblQKICAgICByZXR1cm4g
Km1fY29ubmVjdGlvblRvQ2xpZW50OwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6ZGlkRGVsZXRlRGF0YWJhc2UoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpCit2b2lk
IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRGVsZXRlRGF0YWJhc2UoY29uc3QgV2ViQ29y
ZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKIHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZERlbGV0ZURhdGFiYXNlKHJlc3VsdERhdGEpKTsKIH0K
IAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZE9wZW5EYXRhYmFzZShjb25zdCBX
ZWJDb3JlOjpJREJSZXN1bHREYXRhJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpk
aWRPcGVuRGF0YWJhc2UoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkK
IHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZE9wZW5E
YXRhYmFzZShyZXN1bHREYXRhKSk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
OjpkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpCit2b2lk
IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBXZWJD
b3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6SURCRXJyb3ImIGVycm9yKQogeworICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlcjo6RGlkQWJvcnRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIGVycm9yKSk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRDb21t
aXRUcmFuc2FjdGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKQordm9pZCBXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQ6OmRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6OklE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpJREJFcnJvciYgZXJyb3IpCiB7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlv
blRvU2VydmVyOjpEaWRDb21taXRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklkZW50aWZpZXIsIGVy
cm9yKSk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRDcmVhdGVPYmpl
Y3RTdG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikKK3ZvaWQgV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50OjpkaWRDcmVhdGVPYmplY3RTdG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXN1
bHREYXRhJiByZXN1bHREYXRhKQogeworICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlcjo6RGlkQ3JlYXRlT2JqZWN0U3RvcmUocmVzdWx0RGF0YSkpOwogfQogCi12b2lk
IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgV2Vi
Q29yZTo6SURCUmVzdWx0RGF0YSYpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlk
RGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0
YSkKIHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZERl
bGV0ZU9iamVjdFN0b3JlKHJlc3VsdERhdGEpKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ6OmRpZENsZWFyT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0
YSYpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkQ2xlYXJPYmplY3RTdG9yZShj
b25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQogeworICAgIHNlbmQoTWVz
c2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6RGlkQ2xlYXJPYmplY3RTdG9yZShyZXN1
bHREYXRhKSk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRDcmVhdGVJ
bmRleChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50OjpkaWRDcmVhdGVJbmRleChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJiBy
ZXN1bHREYXRhKQogeworICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6RGlkQ3JlYXRlSW5kZXgocmVzdWx0RGF0YSkpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudDo6ZGlkRGVsZXRlSW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYp
Cit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRGVsZXRlSW5kZXgoY29uc3QgV2Vi
Q29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKIHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZERlbGV0ZUluZGV4KHJlc3VsdERhdGEpKTsKIH0K
IAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZFB1dE9yQWRkKGNvbnN0IFdlYkNv
cmU6OklEQlJlc3VsdERhdGEmKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZFB1
dE9yQWRkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiB7CisgICAg
c2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWRQdXRPckFkZChyZXN1
bHREYXRhKSk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRSZWNv
cmQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25U
b0NsaWVudDo6ZGlkR2V0UmVjb3JkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3Vs
dERhdGEpCiB7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpE
aWRHZXRSZWNvcmQocmVzdWx0RGF0YSkpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudDo6ZGlkR2V0Q291bnQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpCit2b2lkIFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0Q291bnQoY29uc3QgV2ViQ29yZTo6SURCUmVz
dWx0RGF0YSYgcmVzdWx0RGF0YSkKIHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXI6OkRpZEdldENvdW50KHJlc3VsdERhdGEpKTsKIH0KIAotdm9pZCBXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQ6OmRpZERlbGV0ZVJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXN1
bHREYXRhJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWREZWxldGVSZWNvcmQo
Y29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKIHsKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZERlbGV0ZVJlY29yZChyZXN1bHRE
YXRhKSk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRPcGVuQ3Vyc29y
KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmRpZE9wZW5DdXJzb3IoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0
RGF0YSkKIHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRp
ZE9wZW5DdXJzb3IocmVzdWx0RGF0YSkpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudDo6ZGlkSXRlcmF0ZUN1cnNvcihjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikKK3Zv
aWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRJdGVyYXRlQ3Vyc29yKGNvbnN0IFdlYkNv
cmU6OklEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiB7CisgICAgc2VuZChNZXNzYWdlczo6V2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWRJdGVyYXRlQ3Vyc29yKHJlc3VsdERhdGEpKTsKIH0K
IAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQo
V2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBX
ZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRf
dCByZXF1ZXN0ZWRWZXJzaW9uKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmZpcmVW
ZXJzaW9uQ2hhbmdlRXZlbnQoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmll
ciYgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pCiB7CisgICAg
c2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpGaXJlVmVyc2lvbkNoYW5n
ZUV2ZW50KGNvbm5lY3Rpb24uaWRlbnRpZmllcigpLCByZXF1ZXN0SWRlbnRpZmllciwgcmVxdWVz
dGVkVmVyc2lvbikpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkU3Rh
cnRUcmFuc2FjdGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKQordm9pZCBXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQ6OmRpZFN0YXJ0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OklEQkVycm9yJiBlcnJvcikKIHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OkRpZFN0YXJ0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVyLCBlcnJv
cikpOwogfQogCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6bm90aWZ5T3BlbkRCUmVx
dWVzdEJsb2NrZWQoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0
SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikKIHsK
KyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Ok5vdGlmeU9wZW5E
QlJlcXVlc3RCbG9ja2VkKHJlcXVlc3RJZGVudGlmaWVyLCBvbGRWZXJzaW9uLCBuZXdWZXJzaW9u
KSk7CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkZWxldGVEYXRhYmFzZShj
b25zdCBJREJSZXF1ZXN0RGF0YSYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvU2VydmVyLmgKaW5kZXggZmQ2MTJhMy4uMGJiZGEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtODQsNiArODQsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaWREZWxldGVSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpOwog
ICAgIHZvaWQgZGlkT3BlbkN1cnNvcihjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJik7CiAg
ICAgdm9pZCBkaWRJdGVyYXRlQ3Vyc29yKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKTsK
KyAgICB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgdW5pcXVlRGF0YWJhc2VD
b25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVy
JiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CisgICAgdm9p
ZCBkaWRTdGFydFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpOworICAg
IHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2ViQ29yZTo6SURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWlu
dDY0X3QgbmV3VmVyc2lvbik7CiAKIHByaXZhdGU6CiAgICAgV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5tZXNzYWdlcy5pbgppbmRleCBhOGE2OTdhLi44M2UzZjgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvU2VydmVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0
YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW4KQEAg
LTM4LDYgKzM4LDExIEBAIG1lc3NhZ2VzIC0+IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciB7CiAg
ICAgRGlkRGVsZXRlUmVjb3JkKFdlYkNvcmU6OklEQlJlc3VsdERhdGEgcmVzdWx0KQogICAgIERp
ZE9wZW5DdXJzb3IoV2ViQ29yZTo6SURCUmVzdWx0RGF0YSByZXN1bHQpCiAgICAgRGlkSXRlcmF0
ZUN1cnNvcihXZWJDb3JlOjpJREJSZXN1bHREYXRhIHJlc3VsdCkKKworICAgIEZpcmVWZXJzaW9u
Q2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCByZXF1
ZXN0ZWRWZXJzaW9uKQorICAgIERpZFN0YXJ0VHJhbnNhY3Rpb24oV2ViQ29yZTo6SURCUmVzb3Vy
Y2VJZGVudGlmaWVyIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6SURCRXJyb3IgZXJy
b3IpCisgICAgTm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoV2ViQ29yZTo6SURCUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRf
dCBuZXdWZXJzaW9uKQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkg
JiYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCg==
</data>
<flag name="review"
          id="296400"
          type_id="1"
          status="+"
          setter="achristensen"
    />
    <flag name="commit-queue"
          id="296401"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271595</attachid>
            <date>2016-02-17 14:48:35 -0800</date>
            <delta_ts>2016-02-17 14:48:35 -0800</delta_ts>
            <desc>Patch for linux EWS</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>19183</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2YWEyNjdlLi44NjBmYzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTYtMDItMTcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vZGVybiBJREI6IE1vcmUgRW5jb2Rlci9EZWNvZGVyL01lc3NhZ2luZyBzY2FmZm9sZGlu
ZyBmb3IgV0syIElQQy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NDM1NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisK
KyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yIHlldDsgSnVzdCBsYXlpbmcgdGhlIGdyb3Vu
ZHdvcmsuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJ
bmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUluZm86OmVuY29kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUluZm86OmRlY29kZSk6CisKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkVy
cm9yOjplbmNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRXJyb3I6OmRlY29kZSk6CisKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVxdWVzdERhdGEuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlJlcXVlc3REYXRhOjpkZWNvZGUpOgorCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QlJlc3VsdERhdGE6OmVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXN1bHREYXRhOjpk
ZWNvZGUpOgorCiAyMDE2LTAyLTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFBERlBsdWdpbidzIHNjcm9sbGFibGVBcmVhIGNvbnRhaW5lciBpcyBu
b3QgcHJvcGVybHkgdW5yZWdpc3RlcmVkIHdoZW4gcGFnZSBpcyBnb2luZyBpbnRvIHRoZSBQYWdl
Q2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJEYXRhYmFzZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJEYXRhYmFzZUluZm8uaAppbmRleCBhMTMxNWFhLi5mMWVhZWM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZv
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFi
YXNlSW5mby5oCkBAIC01OSwxMyArNTksMTYgQEAgcHVibGljOgogICAgIHZvaWQgZGVsZXRlT2Jq
ZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpOwogICAgIHZvaWQgZGVsZXRl
T2JqZWN0U3RvcmUodWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKIAorICAgIFdFQkNP
UkVfRVhQT1JUIElEQkRhdGFiYXNlSW5mbygpOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgSURCRGF0YWJhc2VJbmZvJik7CisKICNp
Zm5kZWYgTkRFQlVHCiAgICAgU3RyaW5nIGxvZ2dpbmdTdHJpbmcoKSBjb25zdDsKICNlbmRpZgog
CiBwcml2YXRlOgotICAgIElEQkRhdGFiYXNlSW5mbygpOwotCiAgICAgSURCT2JqZWN0U3RvcmVJ
bmZvKiBnZXRJbmZvRm9yRXhpc3RpbmdPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG9iamVjdFN0
b3JlTmFtZSk7CiAgICAgSURCT2JqZWN0U3RvcmVJbmZvKiBnZXRJbmZvRm9yRXhpc3RpbmdPYmpl
Y3RTdG9yZSh1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogCkBAIC03Nyw2ICs4MCwz
MCBAQCBwcml2YXRlOgogCiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBJREJE
YXRhYmFzZUluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXIgPDwgbV9uYW1lIDw8IG1fdmVyc2lvbiA8PCBtX21heE9iamVjdFN0b3JlSUQgPDwgbV9vYmpl
Y3RTdG9yZU1hcDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgSURCRGF0YWJh
c2VJbmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSURCRGF0YWJhc2VJbmZvJiBpbmZvKQor
eworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5tX25hbWUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubV92ZXJzaW9uKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLm1fbWF4T2Jq
ZWN0U3RvcmVJRCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoaW5mby5tX29iamVjdFN0b3JlTWFwKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3IuaAppbmRleCAwZmZkMDhhLi4xZWU5YjVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRXJyb3Iu
aApAQCAtNTcsOSArNTcsMjIgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9tZXNzYWdlOwogfTsK
IAotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gYm9vbCBJREJFcnJvcjo6ZGVjb2RlKERlY29kZXIm
LCBJREJFcnJvciYpCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBJREJFcnJvcjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGVu
Y29kZXIgPDwgbV9jb2RlIDw8IG1fbWVzc2FnZTsKK30KKyAgICAKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+Citib29sIElEQkVycm9yOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSURCRXJyb3Im
IGVycm9yKQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZXJyb3IubV9jb2RlKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShlcnJvci5tX21lc3Nh
Z2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQlJlcXVlc3REYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCUmVxdWVzdERhdGEuaAppbmRleCAxODg5NzdkLi43NTg5YWRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURC
UmVxdWVzdERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFy
ZWQvSURCUmVxdWVzdERhdGEuaApAQCAtMTM3LDI4ICsxMzcsMjggQEAgYm9vbCBJREJSZXF1ZXN0
RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIElEQlJlcXVlc3REYXRhJiByZXF1ZXN0KQog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzT2JqZWN0KSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGlmIChoYXNPYmplY3QpIHsKLSAgICAgICAgSURCUmVzb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXI7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaWRlbnRpZmllcikpCisgICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxJREJSZXNvdXJjZUlkZW50aWZpZXI+IG9iamVjdCA9IHN0ZDo6
bWFrZV91bmlxdWU8SURCUmVzb3VyY2VJZGVudGlmaWVyPigpOworICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKCpvYmplY3QpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBy
ZXF1ZXN0Lm1fcmVxdWVzdElkZW50aWZpZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPElEQlJlc291cmNl
SWRlbnRpZmllcj4oaWRlbnRpZmllcik7CisgICAgICAgIHJlcXVlc3QubV9yZXF1ZXN0SWRlbnRp
ZmllciA9IFdURk1vdmUob2JqZWN0KTsKICAgICB9CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGhhc09iamVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoaGFzT2JqZWN0KSB7
Ci0gICAgICAgIElEQlJlc291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyOwotICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGlkZW50aWZpZXIpKQorICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURC
UmVzb3VyY2VJZGVudGlmaWVyPiBvYmplY3QgPSBzdGQ6Om1ha2VfdW5pcXVlPElEQlJlc291cmNl
SWRlbnRpZmllcj4oKTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSgqb2JqZWN0KSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcmVxdWVzdC5tX3RyYW5zYWN0aW9uSWRl
bnRpZmllciA9IHN0ZDo6bWFrZV91bmlxdWU8SURCUmVzb3VyY2VJZGVudGlmaWVyPihpZGVudGlm
aWVyKTsKKyAgICAgICAgcmVxdWVzdC5tX3RyYW5zYWN0aW9uSWRlbnRpZmllciA9IFdURk1vdmUo
b2JqZWN0KTsKICAgICB9CiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc09iamVjdCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoaGFzT2JqZWN0KSB7Ci0gICAgICAgIElEQlJl
c291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGlkZW50aWZpZXIpKQorICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCUmVzb3VyY2VJZGVudGlm
aWVyPiBvYmplY3QgPSBzdGQ6Om1ha2VfdW5pcXVlPElEQlJlc291cmNlSWRlbnRpZmllcj4oKTsK
KyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSgqb2JqZWN0KSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgcmVxdWVzdC5tX2N1cnNvcklkZW50aWZpZXIgPSBzdGQ6Om1ha2Vf
dW5pcXVlPElEQlJlc291cmNlSWRlbnRpZmllcj4oaWRlbnRpZmllcik7CisgICAgICAgIHJlcXVl
c3QubV9jdXJzb3JJZGVudGlmaWVyID0gV1RGTW92ZShvYmplY3QpOwogICAgIH0KIAogICAgIHJl
dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQlJlc3VsdERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJSZXN1bHREYXRhLmgKaW5kZXggOTA1MWY1My4uNDVhMTBkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzdWx0
RGF0YS5oCkBAIC0xMTgsOSArMTE4LDg2IEBAIHByaXZhdGU6CiAgICAgdWludDY0X3QgbV9yZXN1
bHRJbnRlZ2VyIHsgMCB9OwogfTsKIAotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gYm9vbCBJREJS
ZXN1bHREYXRhOjpkZWNvZGUoRGVjb2RlciYsIElEQlJlc3VsdERhdGEmKQordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgSURCUmVzdWx0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGVuY29kZXIgPDwgbV9yZXF1ZXN0SWRl
bnRpZmllciA8PCBtX2Vycm9yIDw8IG1fZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciA8PCBt
X3Jlc3VsdEludGVnZXI7CisKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV90eXBlKTsKKworICAg
IGVuY29kZXIgPDwgISFtX2RhdGFiYXNlSW5mbzsKKyAgICBpZiAobV9kYXRhYmFzZUluZm8pCisg
ICAgICAgIGVuY29kZXIgPDwgKm1fZGF0YWJhc2VJbmZvOworCisgICAgZW5jb2RlciA8PCAhIW1f
dHJhbnNhY3Rpb25JbmZvOworICAgIGlmIChtX3RyYW5zYWN0aW9uSW5mbykKKyAgICAgICAgZW5j
b2RlciA8PCAqbV90cmFuc2FjdGlvbkluZm87CisKKyAgICBlbmNvZGVyIDw8ICEhbV9yZXN1bHRL
ZXk7CisgICAgaWYgKG1fcmVzdWx0S2V5KQorICAgICAgICBlbmNvZGVyIDw8ICptX3Jlc3VsdEtl
eTsKKworICAgIGVuY29kZXIgPDwgISFtX2dldFJlc3VsdDsKKyAgICBpZiAobV9nZXRSZXN1bHQp
CisgICAgICAgIGVuY29kZXIgPDwgKm1fZ2V0UmVzdWx0OworfQorCit0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBib29sIElEQlJlc3VsdERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJREJS
ZXN1bHREYXRhJiByZXN1bHQpCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9y
ZXF1ZXN0SWRlbnRpZmllcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0Lm1fZXJyb3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2RhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZp
ZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5tX3Jlc3VsdEludGVnZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlRW51bShyZXN1bHQubV90eXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgYm9vbCBoYXNPYmplY3Q7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc09i
amVjdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoaGFzT2JqZWN0KSB7CisgICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxJREJEYXRhYmFzZUluZm8+IG9iamVjdCA9IHN0ZDo6bWFrZV91
bmlxdWU8SURCRGF0YWJhc2VJbmZvPigpOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKCpv
YmplY3QpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXN1bHQubV9kYXRh
YmFzZUluZm8gPSBXVEZNb3ZlKG9iamVjdCk7CisgICAgfQorCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShoYXNPYmplY3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGhhc09iamVj
dCkgeworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCVHJhbnNhY3Rpb25JbmZvPiBvYmplY3Qg
PSBzdGQ6Om1ha2VfdW5pcXVlPElEQlRyYW5zYWN0aW9uSW5mbz4oKTsKKyAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZSgqb2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgcmVzdWx0Lm1fdHJhbnNhY3Rpb25JbmZvID0gV1RGTW92ZShvYmplY3QpOworICAgIH0KKwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGlmIChoYXNPYmplY3QpIHsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElEQktleURh
dGE+IG9iamVjdCA9IHN0ZDo6bWFrZV91bmlxdWU8SURCS2V5RGF0YT4oKTsKKyAgICAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZSgqb2JqZWN0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgcmVzdWx0Lm1fcmVzdWx0S2V5ID0gV1RGTW92ZShvYmplY3QpOworICAgIH0KKworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaGFzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmIChoYXNPYmplY3QpIHsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElEQkdldFJlc3Vs
dD4gb2JqZWN0ID0gc3RkOjptYWtlX3VuaXF1ZTxJREJHZXRSZXN1bHQ+KCk7CisgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoKm9iamVjdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIHJlc3VsdC5tX2dldFJlc3VsdCA9IFdURk1vdmUob2JqZWN0KTsKKyAgICB9CisKKyAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IGYwZjc2YjcuLjkyZmE3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxNi0wMi0x
NyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9kZXJuIElE
QjogTW9yZSBFbmNvZGVyL0RlY29kZXIvTWVzc2FnaW5nIHNjYWZmb2xkaW5nIGZvciBXSzIgSVBD
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MzU2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBObyBj
aGFuZ2UgaW4gYmVoYXZpb3IgeWV0OyBKdXN0IGxheWluZyB0aGUgZ3JvdW5kd29yay4KKworICAg
ICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWREZWxl
dGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6
ZGlkT3BlbkRhdGFiYXNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50OjpkaWRBYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50OjpkaWRDb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkQ3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZERlbGV0ZU9iamVjdFN0b3JlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRDbGVhck9iamVj
dFN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRD
cmVhdGVJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6
ZGlkRGVsZXRlSW5kZXgpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ6OmRpZFB1dE9yQWRkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50OjpkaWRHZXRSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmRpZEdldENvdW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50OjpkaWREZWxldGVSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0
aW9uVG9DbGllbnQ6OmRpZE9wZW5DdXJzb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQ6OmRpZEl0ZXJhdGVDdXJzb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQ6OmZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZFN0YXJ0VHJhbnNhY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om5vdGlmeU9wZW5EQlJl
cXVlc3RCbG9ja2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5tZXNzYWdlcy5pbjoKKwogMjAx
Ni0wMi0xNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBQREZQbHVnaW4ncyBzY3JvbGxhYmxlQXJlYSBjb250YWluZXIgaXMgbm90IHByb3Blcmx5IHVu
cmVnaXN0ZXJlZCB3aGVuIHBhZ2UgaXMgZ29pbmcgaW50byB0aGUgUGFnZUNhY2hlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXggZjQ5MmM2ZC4uNThiNDY5MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcApAQCAtMjgsNiArMjgs
MTIgQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCisjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVz
c2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0lEQkVycm9yLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9JREJSZXN1bHREYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9VbmlxdWVJREJEYXRhYmFzZUNv
bm5lY3Rpb24uaD4KKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewpAQCAtNjIsNzYgKzY4LDk0IEBAIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCQ29ubmVjdGlv
blRvQ2xpZW50JiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNvbm5lY3Rpb25UCiAgICAgcmV0
dXJuICptX2Nvbm5lY3Rpb25Ub0NsaWVudDsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKQor
dm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IFdl
YkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiB7CisgICAgc2VuZChNZXNzYWdlczo6
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWREZWxldGVEYXRhYmFzZShyZXN1bHREYXRhKSk7
CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRPcGVuRGF0YWJhc2UoY29u
c3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6ZGlkT3BlbkRhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3VsdERh
dGEpCiB7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWRP
cGVuRGF0YWJhc2UocmVzdWx0RGF0YSkpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudDo6ZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50
aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKQor
dm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3Qg
V2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OklEQkVycm9yJiBlcnJvcikKIHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZEFib3J0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCBlcnJvcikpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlk
Q29tbWl0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikKK3ZvaWQgV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRDb21taXRUcmFuc2FjdGlvbihjb25zdCBXZWJDb3Jl
OjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6SURCRXJyb3ImIGVycm9yKQogeworICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6RGlkQ29tbWl0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVy
LCBlcnJvcikpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkQ3JlYXRl
T2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpCit2b2lkIFdlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudDo6ZGlkQ3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURC
UmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKIHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OkRpZENyZWF0ZU9iamVjdFN0b3JlKHJlc3VsdERhdGEpKTsKIH0KIAot
dm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZERlbGV0ZU9iamVjdFN0b3JlKGNvbnN0
IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6
OmRpZERlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3Vs
dERhdGEpCiB7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpE
aWREZWxldGVPYmplY3RTdG9yZShyZXN1bHREYXRhKSk7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50OjpkaWRDbGVhck9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3Vs
dERhdGEmKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZENsZWFyT2JqZWN0U3Rv
cmUoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKIHsKKyAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OkRpZENsZWFyT2JqZWN0U3RvcmUo
cmVzdWx0RGF0YSkpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkQ3Jl
YXRlSW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpCit2b2lkIFdlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudDo6ZGlkQ3JlYXRlSW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0
YSYgcmVzdWx0RGF0YSkKIHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OkRpZENyZWF0ZUluZGV4KHJlc3VsdERhdGEpKTsKIH0KIAotdm9pZCBXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQ6OmRpZERlbGV0ZUluZGV4KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERh
dGEmKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZERlbGV0ZUluZGV4KGNvbnN0
IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiB7CisgICAgc2VuZChNZXNzYWdl
czo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWREZWxldGVJbmRleChyZXN1bHREYXRhKSk7
CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRQdXRPckFkZChjb25zdCBX
ZWJDb3JlOjpJREJSZXN1bHREYXRhJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpk
aWRQdXRPckFkZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQogewor
ICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6RGlkUHV0T3JBZGQo
cmVzdWx0RGF0YSkpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0
UmVjb3JkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKQordm9pZCBXZWJJREJDb25uZWN0
aW9uVG9DbGllbnQ6OmRpZEdldFJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJiBy
ZXN1bHREYXRhKQogeworICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6RGlkR2V0UmVjb3JkKHJlc3VsdERhdGEpKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ6OmRpZEdldENvdW50KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKQordm9p
ZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldENvdW50KGNvbnN0IFdlYkNvcmU6OklE
QlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiB7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29u
bmVjdGlvblRvU2VydmVyOjpEaWRHZXRDb3VudChyZXN1bHREYXRhKSk7CiB9CiAKLXZvaWQgV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWREZWxldGVSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURC
UmVzdWx0RGF0YSYpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRGVsZXRlUmVj
b3JkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiB7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpEaWREZWxldGVSZWNvcmQocmVz
dWx0RGF0YSkpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkT3BlbkN1
cnNvcihjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50OjpkaWRPcGVuQ3Vyc29yKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmIHJl
c3VsdERhdGEpCiB7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVy
OjpEaWRPcGVuQ3Vyc29yKHJlc3VsdERhdGEpKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ6OmRpZEl0ZXJhdGVDdXJzb3IoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYp
Cit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkSXRlcmF0ZUN1cnNvcihjb25zdCBX
ZWJDb3JlOjpJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQogeworICAgIHNlbmQoTWVzc2FnZXM6
OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6RGlkSXRlcmF0ZUN1cnNvcihyZXN1bHREYXRhKSk7
CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpmaXJlVmVyc2lvbkNoYW5nZUV2
ZW50KFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiwgY29u
c3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWlu
dDY0X3QgcmVxdWVzdGVkVmVyc2lvbikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpm
aXJlVmVyc2lvbkNoYW5nZUV2ZW50KFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50
aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKQogewor
ICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6RmlyZVZlcnNpb25D
aGFuZ2VFdmVudChjb25uZWN0aW9uLmlkZW50aWZpZXIoKSwgcmVxdWVzdElkZW50aWZpZXIsIHJl
cXVlc3RlZFZlcnNpb24pKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRp
ZFN0YXJ0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikKK3ZvaWQgV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRTdGFydFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6
OklEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpJREJFcnJvciYgZXJyb3IpCiB7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVj
dGlvblRvU2VydmVyOjpEaWRTdGFydFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
ZXJyb3IpKTsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om5vdGlmeU9wZW5E
QlJlcXVlc3RCbG9ja2VkKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVx
dWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNpb24p
CiB7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpOb3RpZnlP
cGVuREJSZXF1ZXN0QmxvY2tlZChyZXF1ZXN0SWRlbnRpZmllciwgb2xkVmVyc2lvbiwgbmV3VmVy
c2lvbikpOwogfQogCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGVsZXRlRGF0YWJh
c2UoY29uc3QgSURCUmVxdWVzdERhdGEmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLmNwcAppbmRleCBmMDVmOGNlLi40MzVjYjVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtMjQ5LDYgKzI0OSwx
NyBAQCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkSXRlcmF0ZUN1cnNvcihjb25z
dCBJREJSZXN1bHREYXRhJikKIHsKIH0KIAordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OmZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291
cmNlSWRlbnRpZmllciYsIHVpbnQ2NF90KQoreworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6ZGlkU3RhcnRUcmFuc2FjdGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlk
ZW50aWZpZXImLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpCit7Cit9CisKK3ZvaWQgV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyOjpub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJD
b3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImLCB1aW50NjRfdCwgdWludDY0X3QpCit7Cit9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLmgKaW5kZXggZmQ2MTJhMy4uMGJiZGEzMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtODQsNiArODQsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkaWREZWxldGVSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYp
OwogICAgIHZvaWQgZGlkT3BlbkN1cnNvcihjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJik7
CiAgICAgdm9pZCBkaWRJdGVyYXRlQ3Vyc29yKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEm
KTsKKyAgICB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3QgdW5pcXVlRGF0YWJh
c2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlm
aWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CisgICAg
dm9pZCBkaWRTdGFydFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpOwor
ICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2ViQ29yZTo6SURCUmVz
b3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwg
dWludDY0X3QgbmV3VmVyc2lvbik7CiAKIHByaXZhdGU6CiAgICAgV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b1NlcnZlci5tZXNzYWdlcy5pbgppbmRleCBhOGE2OTdhLi44M2UzZjgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
RGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuaW4K
QEAgLTM4LDYgKzM4LDExIEBAIG1lc3NhZ2VzIC0+IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciB7
CiAgICAgRGlkRGVsZXRlUmVjb3JkKFdlYkNvcmU6OklEQlJlc3VsdERhdGEgcmVzdWx0KQogICAg
IERpZE9wZW5DdXJzb3IoV2ViQ29yZTo6SURCUmVzdWx0RGF0YSByZXN1bHQpCiAgICAgRGlkSXRl
cmF0ZUN1cnNvcihXZWJDb3JlOjpJREJSZXN1bHREYXRhIHJlc3VsdCkKKworICAgIEZpcmVWZXJz
aW9uQ2hhbmdlRXZlbnQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgV2Vi
Q29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBy
ZXF1ZXN0ZWRWZXJzaW9uKQorICAgIERpZFN0YXJ0VHJhbnNhY3Rpb24oV2ViQ29yZTo6SURCUmVz
b3VyY2VJZGVudGlmaWVyIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6SURCRXJyb3Ig
ZXJyb3IpCisgICAgTm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoV2ViQ29yZTo6SURCUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50
NjRfdCBuZXdWZXJzaW9uKQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkgJiYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>