<?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>125816</bug_id>
          
          <creation_ts>2013-12-16 16:41:06 -0800</creation_ts>
          <short_desc>DatabaseProcess: Plumb through messaging for the 4 basic transaction operations</short_desc>
          <delta_ts>2013-12-16 17:09:21 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>124521</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>960304</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-12-16 16:41:06 -0800</bug_when>
    <thetext>DatabaseProcess: Plumb through messaging for the 4 basic transaction operations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960307</commentid>
    <comment_count>1</comment_count>
      <attachid>219370</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-12-16 16:46:53 -0800</bug_when>
    <thetext>Created attachment 219370
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960309</commentid>
    <comment_count>2</comment_count>
      <attachid>219370</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-12-16 17:01:42 -0800</bug_when>
    <thetext>Comment on attachment 219370
Patch v1

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

r=me

&gt; Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:234
&gt; +        LOG_ERROR(&quot;Attempting to queue transaction operation when an operation is already pending&quot;);

An operation or the operation? Should it be an assertion?

I guess I&apos;m not sure what this error means, besides &quot;ping Brady on IRC&quot; :)

&gt; Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:255
&gt; +

Looks like too much whitespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960314</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-12-16 17:06:15 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 219370 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=219370&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:234
&gt; &gt; +        LOG_ERROR(&quot;Attempting to queue transaction operation when an operation is already pending&quot;);
&gt; 
&gt; An operation or the operation? Should it be an assertion?

&quot;an&quot; operation.

The reason this is not an ASSERT is because it directly relies on an ID that was sent over the wire from another process, so it can&apos;t be trusted as an invariant.

Will try to clarify the error message.

&gt; &gt; Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:255
&gt; &gt; +

Yup!  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960316</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-12-16 17:09:21 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/160678</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219370</attachid>
            <date>2013-12-16 16:46:53 -0800</date>
            <delta_ts>2013-12-16 17:01:42 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>28861</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzMjI3YTc2Li4wMGE1YzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjgg
QEAKIDIwMTMtMTItMTYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIERhdGFiYXNlUHJvY2VzczogUGx1bWIgdGhyb3VnaCBtZXNzYWdpbmcgZm9yIHRoZSA0IGJh
c2ljIHRyYW5zYWN0aW9uIG9wZXJhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNTgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZSBtZXNzYWdpbmcgYmVnaW5zIGFuZCBlbmRzIGluIHRoZSBX
ZWJQcm9jZXNzOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJ
REJTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyQ29u
bmVjdGlvbjo6YmVnaW5UcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZl
ckNvbm5lY3Rpb246OmRpZEJlZ2luVHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJTZXJ2ZXJDb25uZWN0aW9uOjpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZENvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6cmVzZXRUcmFuc2FjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZFJlc2V0VHJhbnNhY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpyb2xsYmFja1RyYW5z
YWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6ZGlkUm9s
bGJhY2tUcmFuc2FjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhl
ZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFi
YXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKworICAg
ICAgICBJdCB0cmF2ZWxzIGZyb20gdGhlIFdlYlByb2Nlc3MgdG8gdGhlIERhdGFiYXNlUHJvY2Vz
cyBjb25uZWN0aW9uOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJh
c2VQcm9jZXNzSURCQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJv
Y2Vzc0lEQkNvbm5lY3Rpb246OmJlZ2luVHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpE
YXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OnJlc2V0VHJhbnNhY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpyb2xsYmFj
a1RyYW5zYWN0aW9uKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFi
YXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisKKyAgICAg
ICAgSXQgdHJhdmVscyBmcm9tIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBhcHByb3ByaWF0ZSBVbmlx
dWVJREJEYXRhYmFzZToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1
ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6Om9w
ZW5UcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpiZWdp
blRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OmNvbW1p
dFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OnJlc2V0
VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6cm9sbGJh
Y2tUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwb3N0
VHJhbnNhY3Rpb25PcGVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFz
ZTo6ZGlkQ29tcGxldGVUcmFuc2FjdGlvbk9wZXJhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlVu
aXF1ZUlEQkRhdGFiYXNlOjpvcGVuQmFja2luZ1N0b3JlVHJhbnNhY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZTo6YmVnaW5CYWNraW5nU3RvcmVUcmFuc2FjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRCYWNraW5nU3RvcmVU
cmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpyZXNldEJh
Y2tpbmdTdG9yZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJh
c2U6OnJvbGxiYWNrQmFja2luZ1N0b3JlVHJhbnNhY3Rpb24pOgorICAgICAgICAqIERhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuaDoKKworICAgICAgICBUaGUgVW5p
cXVlSURCRGF0YWJhc2Ugb2JqZWN0IHBlcmZvcm1zIHRoZSBvcGVyYXRpb24gd2l0aCB0aGUgYmFj
a2luZyBzdG9yZToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlE
QkRhdGFiYXNlQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4
ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6ZXN0YWJs
aXNoVHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tp
bmdTdG9yZVNRTGl0ZTo6YmVnaW5UcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1
ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpjb21taXRUcmFuc2FjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpyZXNldFRy
YW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3Rv
cmVTUUxpdGU6OnJvbGxiYWNrVHJhbnNhY3Rpb24pOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vz
cy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmg6
CisKKyAgICAgICAgQW5kIHRoZSBTUUxpdGUgYmFja2luZyBzdG9yZSBjYWxscyB0aGUgYXBwcm9w
cmlhdGUgbWV0aG9kIG9uIHRoZSBTUUxpdGUgdHJhbnNhY3Rpb246CisgICAgICAgICogRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCVHJhbnNhY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTUUxpdGVJREJUcmFuc2FjdGlvbjo6YmVnaW4pOiBTdHViYmVkIGZvciBu
b3cuCisgICAgICAgIChXZWJLaXQ6OlNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpjb21taXQpOiBEaXR0
by4KKyAgICAgICAgKFdlYktpdDo6U1FMaXRlSURCVHJhbnNhY3Rpb246OnJlc2V0KTogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6OlNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpyb2xsYmFjayk6IERpdHRv
LgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1NRTGl0ZUlEQlRy
YW5zYWN0aW9uLmg6CisKKzIwMTMtMTItMTYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgorCiAgICAgICAgIERhdGFiYXNlUHJvY2VzczogSW1wbGVtZW50IG9wZW5UcmFuc2FjdGlv
bigpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU3
OTQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWRE
Qi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5jcHAKaW5k
ZXggOTQ3ZGY0Yi4uMDhiMjRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lE
QkNvbm5lY3Rpb24uY3BwCkBAIC04Myw2ICs4Myw0NiBAQCB2b2lkIERhdGFiYXNlUHJvY2Vzc0lE
QkNvbm5lY3Rpb246Om9wZW5UcmFuc2FjdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3Qg
dAogICAgIH0pOwogfQogCit2b2lkIERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OmJlZ2lu
VHJhbnNhY3Rpb24odWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IHRyYW5zYWN0aW9uSUQpCit7
CisgICAgQVNTRVJUKG1fdW5pcXVlSURCRGF0YWJhc2UpOworCisgICAgUmVmUHRyPERhdGFiYXNl
UHJvY2Vzc0lEQkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24odGhpcyk7CisgICAgbV91bmlxdWVJREJE
YXRhYmFzZS0+YmVnaW5UcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbklkZW50aWZpZXIoKnRoaXMs
IHRyYW5zYWN0aW9uSUQpLCBbY29ubmVjdGlvbiwgcmVxdWVzdElEXShib29sIHN1Y2Nlc3MpIHsK
KyAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViSURCU2VydmVyQ29ubmVjdGlv
bjo6RGlkQmVnaW5UcmFuc2FjdGlvbihyZXF1ZXN0SUQsIHN1Y2Nlc3MpKTsKKyAgICB9KTsKK30K
Kwordm9pZCBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpjb21taXRUcmFuc2FjdGlvbih1
aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgdHJhbnNhY3Rpb25JRCkKK3sKKyAgICBBU1NFUlQo
bV91bmlxdWVJREJEYXRhYmFzZSk7CisKKyAgICBSZWZQdHI8RGF0YWJhc2VQcm9jZXNzSURCQ29u
bmVjdGlvbj4gY29ubmVjdGlvbih0aGlzKTsKKyAgICBtX3VuaXF1ZUlEQkRhdGFiYXNlLT5jb21t
aXRUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbklkZW50aWZpZXIoKnRoaXMsIHRyYW5zYWN0aW9u
SUQpLCBbY29ubmVjdGlvbiwgcmVxdWVzdElEXShib29sIHN1Y2Nlc3MpIHsKKyAgICAgICAgY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6RGlkQ29tbWl0
VHJhbnNhY3Rpb24ocmVxdWVzdElELCBzdWNjZXNzKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgRGF0
YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6cmVzZXRUcmFuc2FjdGlvbih1aW50NjRfdCByZXF1
ZXN0SUQsIGludDY0X3QgdHJhbnNhY3Rpb25JRCkKK3sKKyAgICBBU1NFUlQobV91bmlxdWVJREJE
YXRhYmFzZSk7CisKKyAgICBSZWZQdHI8RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbj4gY29u
bmVjdGlvbih0aGlzKTsKKyAgICBtX3VuaXF1ZUlEQkRhdGFiYXNlLT5yZXNldFRyYW5zYWN0aW9u
KElEQlRyYW5zYWN0aW9uSWRlbnRpZmllcigqdGhpcywgdHJhbnNhY3Rpb25JRCksIFtjb25uZWN0
aW9uLCByZXF1ZXN0SURdKGJvb2wgc3VjY2VzcykgeworICAgICAgICBjb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpEaWRSZXNldFRyYW5zYWN0aW9uKHJl
cXVlc3RJRCwgc3VjY2VzcykpOworICAgIH0pOworfQorCit2b2lkIERhdGFiYXNlUHJvY2Vzc0lE
QkNvbm5lY3Rpb246OnJvbGxiYWNrVHJhbnNhY3Rpb24odWludDY0X3QgcmVxdWVzdElELCBpbnQ2
NF90IHRyYW5zYWN0aW9uSUQpCit7CisgICAgQVNTRVJUKG1fdW5pcXVlSURCRGF0YWJhc2UpOwor
CisgICAgUmVmUHRyPERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24odGhp
cyk7CisgICAgbV91bmlxdWVJREJEYXRhYmFzZS0+cm9sbGJhY2tUcmFuc2FjdGlvbihJREJUcmFu
c2FjdGlvbklkZW50aWZpZXIoKnRoaXMsIHRyYW5zYWN0aW9uSUQpLCBbY29ubmVjdGlvbiwgcmVx
dWVzdElEXShib29sIHN1Y2Nlc3MpIHsKKyAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6RGlkUm9sbGJhY2tUcmFuc2FjdGlvbihyZXF1ZXN0
SUQsIHN1Y2Nlc3MpKTsKKyAgICB9KTsKK30KKwogQ29yZUlQQzo6Q29ubmVjdGlvbiogRGF0YWJh
c2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKQogewogICAg
IHJldHVybiBtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFz
ZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKaW5kZXggMTc3ODEwZS4uNTYyMjk2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nl
c3NJREJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0lu
ZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKQEAgLTY0LDYgKzY0LDEwIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKGNvbnN0IFN0cmluZyYgZGF0
YWJhc2VOYW1lLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgbWFpbkZyYW1lT3JpZ2luKTsKICAgICB2b2lkIGdldE9yRXN0
YWJsaXNoSURCRGF0YWJhc2VNZXRhZGF0YSh1aW50NjRfdCByZXF1ZXN0SUQpOwogICAgIHZvaWQg
b3BlblRyYW5zYWN0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCB0cmFuc2FjdGlvbklE
LCBpbnQ2NF90IHRyYW5zYWN0aW9uTW9kZSk7CisgICAgdm9pZCBiZWdpblRyYW5zYWN0aW9uKHVp
bnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCB0cmFuc2FjdGlvbklEKTsKKyAgICB2b2lkIGNvbW1p
dFRyYW5zYWN0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCB0cmFuc2FjdGlvbklEKTsK
KyAgICB2b2lkIHJlc2V0VHJhbnNhY3Rpb24odWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IHRy
YW5zYWN0aW9uSUQpOworICAgIHZvaWQgcm9sbGJhY2tUcmFuc2FjdGlvbih1aW50NjRfdCByZXF1
ZXN0SUQsIGludDY0X3QgdHJhbnNhY3Rpb25JRCk7CiAKICAgICBSZWY8RGF0YWJhc2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgdWludDY0X3QgbV9zZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNz
SURCQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCA4Y2JhYTc3Li5jYmUzOTU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJv
Y2Vzc0lEQkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCkBAIC0yNSw3ICsyNSwxMiBAQAogbWVzc2FnZXMgLT4gRGF0YWJhc2VQcm9jZXNzSURCQ29u
bmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7CiAgICAgRXN0YWJsaXNoQ29ubmVjdGlvbihTdHJpbmcg
ZGF0YWJhc2VOYW1lLCBXZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcGVuaW5nT3JpZ2luLCBX
ZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YSBtYWluRnJhbWVPcmlnaW4pCiAgICAgR2V0T3JFc3Rh
Ymxpc2hJREJEYXRhYmFzZU1ldGFkYXRhKHVpbnQ2NF90IHJlcXVlc3RJRCkKKwogICAgIE9wZW5U
cmFuc2FjdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgdHJhbnNhY3Rpb25JRCwgaW50
NjRfdCB0cmFuc2FjdGlvbk1vZGUpCisgICAgQmVnaW5UcmFuc2FjdGlvbih1aW50NjRfdCByZXF1
ZXN0SUQsIGludDY0X3QgdHJhbnNhY3Rpb25JRCkKKyAgICBDb21taXRUcmFuc2FjdGlvbih1aW50
NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgdHJhbnNhY3Rpb25JRCkKKyAgICBSZXNldFRyYW5zYWN0
aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCB0cmFuc2FjdGlvbklEKQorICAgIFJvbGxi
YWNrVHJhbnNhY3Rpb24odWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IHRyYW5zYWN0aW9uSUQp
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkgJiYgRU5BQkxFKERBVEFC
QVNFX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNl
UHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IGFhNjZiYjQuLjQw
ZmE5MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVk
REIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCkBAIC0xOTgsNiArMTk4LDMxIEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZE9wZW5CYWNraW5nU3RvcmVBbmRSZWFkTWV0YWRh
dGEoY29uc3QgSURCRGF0YWJhc2VNZXRhCiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5U
cmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImIGlkZW50aWZpZXIsIHN0
ZDo6ZnVuY3Rpb248dm9pZChib29sKT4gc3VjY2Vzc0NhbGxiYWNrKQogeworICAgIHBvc3RUcmFu
c2FjdGlvbk9wZXJhdGlvbigmVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5CYWNraW5nU3RvcmVUcmFu
c2FjdGlvbiwgaWRlbnRpZmllciwgc3VjY2Vzc0NhbGxiYWNrKTsKK30KKwordm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6YmVnaW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZp
ZXImIGlkZW50aWZpZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZChib29sKT4gc3VjY2Vzc0NhbGxiYWNr
KQoreworICAgIHBvc3RUcmFuc2FjdGlvbk9wZXJhdGlvbigmVW5pcXVlSURCRGF0YWJhc2U6OmJl
Z2luQmFja2luZ1N0b3JlVHJhbnNhY3Rpb24sIGlkZW50aWZpZXIsIHN1Y2Nlc3NDYWxsYmFjayk7
Cit9CisKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElE
QlRyYW5zYWN0aW9uSWRlbnRpZmllciYgaWRlbnRpZmllciwgc3RkOjpmdW5jdGlvbjx2b2lkKGJv
b2wpPiBzdWNjZXNzQ2FsbGJhY2spCit7CisgICAgcG9zdFRyYW5zYWN0aW9uT3BlcmF0aW9uKCZV
bmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24sIGlkZW50aWZp
ZXIsIHN1Y2Nlc3NDYWxsYmFjayk7Cit9CisKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlc2V0
VHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiBpZGVudGlmaWVyLCBz
dGQ6OmZ1bmN0aW9uPHZvaWQoYm9vbCk+IHN1Y2Nlc3NDYWxsYmFjaykKK3sKKyAgICBwb3N0VHJh
bnNhY3Rpb25PcGVyYXRpb24oJlVuaXF1ZUlEQkRhdGFiYXNlOjpyZXNldEJhY2tpbmdTdG9yZVRy
YW5zYWN0aW9uLCBpZGVudGlmaWVyLCBzdWNjZXNzQ2FsbGJhY2spOworfQorCit2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpyb2xsYmFja1RyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRl
bnRpZmllciYgaWRlbnRpZmllciwgc3RkOjpmdW5jdGlvbjx2b2lkKGJvb2wpPiBzdWNjZXNzQ2Fs
bGJhY2spCit7CisgICAgcG9zdFRyYW5zYWN0aW9uT3BlcmF0aW9uKCZVbmlxdWVJREJEYXRhYmFz
ZTo6cm9sbGJhY2tCYWNraW5nU3RvcmVUcmFuc2FjdGlvbiwgaWRlbnRpZmllciwgc3VjY2Vzc0Nh
bGxiYWNrKTsKK30KKwordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cG9zdFRyYW5zYWN0aW9uT3Bl
cmF0aW9uKFRyYW5zYWN0aW9uT3BlcmF0aW9uRnVuY3Rpb24gZnVuY3Rpb24sIGNvbnN0IElEQlRy
YW5zYWN0aW9uSWRlbnRpZmllciYgaWRlbnRpZmllciwgc3RkOjpmdW5jdGlvbjx2b2lkKGJvb2wp
PiBzdWNjZXNzQ2FsbGJhY2spCit7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAg
IGlmICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0cykgewpAQCAtMjA1LDcgKzIzMCwxMyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25J
ZGVudGlmaWVyJiBpZGVudGlmaQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcG9zdERh
dGFiYXNlVGFzayhjcmVhdGVBc3luY1Rhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6b3Bl
bkJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLCBpZGVudGlmaWVyKSk7CisgICAgaWYgKG1fcGVuZGlu
Z1RyYW5zYWN0aW9uUmVxdWVzdHMuY29udGFpbnMoaWRlbnRpZmllcikpIHsKKyAgICAgICAgTE9H
X0VSUk9SKCJBdHRlbXB0aW5nIHRvIHF1ZXVlIHRyYW5zYWN0aW9uIG9wZXJhdGlvbiB3aGVuIGFu
IG9wZXJhdGlvbiBpcyBhbHJlYWR5IHBlbmRpbmciKTsKKyAgICAgICAgc3VjY2Vzc0NhbGxiYWNr
KGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHBvc3REYXRhYmFzZVRhc2so
Y3JlYXRlQXN5bmNUYXNrKCp0aGlzLCBmdW5jdGlvbiwgaWRlbnRpZmllcikpOwogCiAgICAgUmVm
UHRyPEFzeW5jUmVxdWVzdD4gcmVxdWVzdCA9IEFzeW5jUmVxdWVzdEltcGw8Ym9vbD46OmNyZWF0
ZShbc3VjY2Vzc0NhbGxiYWNrXShib29sIHN1Y2Nlc3MpIHsKICAgICAgICAgc3VjY2Vzc0NhbGxi
YWNrKHN1Y2Nlc3MpOwpAQCAtMjEzLDcgKzI0NCwxOSBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
OjpvcGVuVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiBpZGVudGlm
aQogICAgICAgICBzdWNjZXNzQ2FsbGJhY2soZmFsc2UpOwogICAgIH0pOwogCi0gICAgbV9wZW5k
aW5nT3BlblRyYW5zYWN0aW9uUmVxdWVzdHMuc2V0KGlkZW50aWZpZXIsIHJlcXVlc3QucmVsZWFz
ZSgpKTsKKyAgICBtX3BlbmRpbmdUcmFuc2FjdGlvblJlcXVlc3RzLmFkZChpZGVudGlmaWVyLCBy
ZXF1ZXN0LnJlbGVhc2UoKSk7Cit9CisKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZENvbXBs
ZXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiBp
ZGVudGlmaWVyLCBib29sIHN1Y2Nlc3MpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KworICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHJlcXVlc3QgPSBtX3BlbmRpbmdUcmFuc2FjdGlv
blJlcXVlc3RzLnRha2UoaWRlbnRpZmllcik7CisKKyAgICBpZiAoIXJlcXVlc3QpCisgICAgICAg
IHJldHVybjsKKworICAgIHJlcXVlc3QtPmNvbXBsZXRlUmVxdWVzdChzdWNjZXNzKTsKIH0KIAog
dm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKGNvbnN0
IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYgaWRlbnRpZmllcikKQEAgLTIyMywxOSArMjY2LDQ3
IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5CYWNraW5nU3RvcmVUcmFuc2FjdGlvbihj
b25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpCiAKICAgICBib29sIHN1Y2Nlc3MgPSBtX2JhY2tp
bmdTdG9yZS0+ZXN0YWJsaXNoVHJhbnNhY3Rpb24oaWRlbnRpZmllcik7CiAKLSAgICBwb3N0TWFp
blRocmVhZFRhc2soY3JlYXRlQXN5bmNUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRp
ZE9wZW5CYWNraW5nU3RvcmVUcmFuc2FjdGlvbiwgaWRlbnRpZmllciwgc3VjY2VzcykpOworICAg
IHBvc3RNYWluVGhyZWFkVGFzayhjcmVhdGVBc3luY1Rhc2soKnRoaXMsICZVbmlxdWVJREJEYXRh
YmFzZTo6ZGlkQ29tcGxldGVUcmFuc2FjdGlvbk9wZXJhdGlvbiwgaWRlbnRpZmllciwgc3VjY2Vz
cykpOwogfQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRPcGVuQmFja2luZ1N0b3JlVHJh
bnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiBpZGVudGlmaWVyLCBib29s
IHN1Y2Nlc3MpCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpiZWdpbkJhY2tpbmdTdG9yZVRyYW5z
YWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKLSAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwor
ICAgIEFTU0VSVChtX2JhY2tpbmdTdG9yZSk7CiAKLSAgICBSZWZQdHI8QXN5bmNSZXF1ZXN0PiBy
ZXF1ZXN0ID0gbV9wZW5kaW5nT3BlblRyYW5zYWN0aW9uUmVxdWVzdHMudGFrZShpZGVudGlmaWVy
KTsKKyAgICBib29sIHN1Y2Nlc3MgPSBtX2JhY2tpbmdTdG9yZS0+YmVnaW5UcmFuc2FjdGlvbihp
ZGVudGlmaWVyKTsKIAotICAgIGlmICghcmVxdWVzdCkKLSAgICAgICAgcmV0dXJuOworICAgIHBv
c3RNYWluVGhyZWFkVGFzayhjcmVhdGVBc3luY1Rhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFz
ZTo6ZGlkQ29tcGxldGVUcmFuc2FjdGlvbk9wZXJhdGlvbiwgaWRlbnRpZmllciwgc3VjY2Vzcykp
OworfQogCi0gICAgcmVxdWVzdC0+Y29tcGxldGVSZXF1ZXN0KHN1Y2Nlc3MpOwordm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6Y29tbWl0QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oY29uc3QgSURCVHJh
bnNhY3Rpb25JZGVudGlmaWVyJiBpZGVudGlmaWVyKQoreworICAgIEFTU0VSVCghaXNNYWluVGhy
ZWFkKCkpOworICAgIEFTU0VSVChtX2JhY2tpbmdTdG9yZSk7CisKKyAgICBib29sIHN1Y2Nlc3Mg
PSBtX2JhY2tpbmdTdG9yZS0+Y29tbWl0VHJhbnNhY3Rpb24oaWRlbnRpZmllcik7CisKKyAgICBw
b3N0TWFpblRocmVhZFRhc2soY3JlYXRlQXN5bmNUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJh
c2U6OmRpZENvbXBsZXRlVHJhbnNhY3Rpb25PcGVyYXRpb24sIGlkZW50aWZpZXIsIHN1Y2Nlc3Mp
KTsKK30KKwordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cmVzZXRCYWNraW5nU3RvcmVUcmFuc2Fj
dGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImIGlkZW50aWZpZXIpCit7CisgICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKG1fYmFja2luZ1N0b3JlKTsKKwor
ICAgIGJvb2wgc3VjY2VzcyA9IG1fYmFja2luZ1N0b3JlLT5yZXNldFRyYW5zYWN0aW9uKGlkZW50
aWZpZXIpOworCisgICAgcG9zdE1haW5UaHJlYWRUYXNrKGNyZWF0ZUFzeW5jVGFzaygqdGhpcywg
JlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRDb21wbGV0ZVRyYW5zYWN0aW9uT3BlcmF0aW9uLCBpZGVu
dGlmaWVyLCBzdWNjZXNzKSk7Cit9CisKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnJvbGxiYWNr
QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiBp
ZGVudGlmaWVyKQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCht
X2JhY2tpbmdTdG9yZSk7CisKKyAgICBib29sIHN1Y2Nlc3MgPSBtX2JhY2tpbmdTdG9yZS0+cm9s
bGJhY2tUcmFuc2FjdGlvbihpZGVudGlmaWVyKTsKKworICAgIHBvc3RNYWluVGhyZWFkVGFzayhj
cmVhdGVBc3luY1Rhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkQ29tcGxldGVUcmFu
c2FjdGlvbk9wZXJhdGlvbiwgaWRlbnRpZmllciwgc3VjY2VzcykpOwogfQogCiBTdHJpbmcgVW5p
cXVlSURCRGF0YWJhc2U6OmFic29sdXRlRGF0YWJhc2VEaXJlY3RvcnkoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJE
YXRhYmFzZS5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9Vbmlx
dWVJREJEYXRhYmFzZS5oCmluZGV4IGVjYWM1MTkuLjMzM2RhMjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRh
dGFiYXNlLmgKQEAgLTY1LDcgKzY1LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHVucmVnaXN0ZXJD
b25uZWN0aW9uKERhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24mKTsKIAogICAgIHZvaWQgZ2V0
T3JFc3RhYmxpc2hJREJEYXRhYmFzZU1ldGFkYXRhKHN0ZDo6ZnVuY3Rpb248dm9pZChib29sLCBj
b25zdCBXZWJDb3JlOjpJREJEYXRhYmFzZU1ldGFkYXRhJik+IGNvbXBsZXRpb25DYWxsYmFjayk7
CisKICAgICB2b2lkIG9wZW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZp
ZXImLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoYm9vbCk+IHN1Y2Nlc3NDYWxsYmFjayk7CisgICAgdm9p
ZCBiZWdpblRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYsIHN0ZDo6
ZnVuY3Rpb248dm9pZChib29sKT4gc3VjY2Vzc0NhbGxiYWNrKTsKKyAgICB2b2lkIGNvbW1pdFRy
YW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYsIHN0ZDo6ZnVuY3Rpb248
dm9pZChib29sKT4gc3VjY2Vzc0NhbGxiYWNrKTsKKyAgICB2b2lkIHJlc2V0VHJhbnNhY3Rpb24o
Y29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiwgc3RkOjpmdW5jdGlvbjx2b2lkKGJvb2wp
PiBzdWNjZXNzQ2FsbGJhY2spOworICAgIHZvaWQgcm9sbGJhY2tUcmFuc2FjdGlvbihjb25zdCBJ
REJUcmFuc2FjdGlvbklkZW50aWZpZXImLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoYm9vbCk+IHN1Y2Nl
c3NDYWxsYmFjayk7CiAKIHByaXZhdGU6CiAgICAgVW5pcXVlSURCRGF0YWJhc2UoY29uc3QgVW5p
cXVlSURCRGF0YWJhc2VJZGVudGlmaWVyJik7CkBAIC05MSwyMiArOTYsMjkgQEAgcHJpdmF0ZToK
IAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIG9yaWdpbiBjYW4gdXNlIHRoZSBzYW1lIGRh
dGFiYXNlcyBhcyB0aGUgZ2l2ZW4gb3JpZ2luLgogICAgIGJvb2wgY2FuU2hhcmVEYXRhYmFzZXMo
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJikgY29u
c3Q7CisKKyAgICB0eXBlZGVmIHZvaWQgKFVuaXF1ZUlEQkRhdGFiYXNlOjoqVHJhbnNhY3Rpb25P
cGVyYXRpb25GdW5jdGlvbikoY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJik7CisgICAg
dm9pZCBwb3N0VHJhbnNhY3Rpb25PcGVyYXRpb24oVHJhbnNhY3Rpb25PcGVyYXRpb25GdW5jdGlv
biwgY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiwgc3RkOjpmdW5jdGlvbjx2b2lkKGJv
b2wpPiBzdWNjZXNzQ2FsbGJhY2spOwogICAgIAogICAgIC8vIFRvIGJlIGNhbGxlZCBmcm9tIHRo
ZSBkYXRhYmFzZSB3b3JrcXVldWUgdGhyZWFkIG9ubHkKICAgICB2b2lkIHBlcmZvcm1OZXh0RGF0
YWJhc2VUYXNrKCk7CiAgICAgdm9pZCBwb3N0TWFpblRocmVhZFRhc2soc3RkOjp1bmlxdWVfcHRy
PEFzeW5jVGFzaz4pOwogICAgIHZvaWQgb3BlbkJhY2tpbmdTdG9yZUFuZFJlYWRNZXRhZGF0YShj
b25zdCBVbmlxdWVJREJEYXRhYmFzZUlkZW50aWZpZXImLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNl
RGlyZWN0b3J5KTsKICAgICB2b2lkIG9wZW5CYWNraW5nU3RvcmVUcmFuc2FjdGlvbihjb25zdCBJ
REJUcmFuc2FjdGlvbklkZW50aWZpZXImKTsKKyAgICB2b2lkIGJlZ2luQmFja2luZ1N0b3JlVHJh
bnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJik7CisgICAgdm9pZCBjb21t
aXRCYWNraW5nU3RvcmVUcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXIm
KTsKKyAgICB2b2lkIHJlc2V0QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNh
Y3Rpb25JZGVudGlmaWVyJik7CisgICAgdm9pZCByb2xsYmFja0JhY2tpbmdTdG9yZVRyYW5zYWN0
aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYpOwogCiAgICAgLy8gQ2FsbGJhY2tz
IGZyb20gdGhlIGRhdGFiYXNlIHdvcmtxdWV1ZSB0aHJlYWQsIHRvIGJlIHBlcmZvcm1lZCBvbiB0
aGUgbWFpbiB0aHJlYWQgb25seQogICAgIHZvaWQgcGVyZm9ybU5leHRNYWluVGhyZWFkVGFzaygp
OwogICAgIHZvaWQgZGlkT3BlbkJhY2tpbmdTdG9yZUFuZFJlYWRNZXRhZGF0YShjb25zdCBXZWJD
b3JlOjpJREJEYXRhYmFzZU1ldGFkYXRhJiwgYm9vbCBzdWNjZXNzKTsKLSAgICB2b2lkIGRpZE9w
ZW5CYWNraW5nU3RvcmVUcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXIm
LCBib29sIHN1Y2Nlc3MpOworICAgIHZvaWQgZGlkQ29tcGxldGVUcmFuc2FjdGlvbk9wZXJhdGlv
bihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImLCBib29sIHN1Y2Nlc3MpOwogCiAgICAg
Ym9vbCBtX2FjY2VwdGluZ05ld1JlcXVlc3RzOwogCiAgICAgRGVxdWU8UmVmUHRyPEFzeW5jUmVx
dWVzdD4+IG1fcGVuZGluZ01ldGFkYXRhUmVxdWVzdHM7Ci0gICAgSGFzaE1hcDxJREJUcmFuc2Fj
dGlvbklkZW50aWZpZXIsIFJlZlB0cjxBc3luY1JlcXVlc3Q+PiBtX3BlbmRpbmdPcGVuVHJhbnNh
Y3Rpb25SZXF1ZXN0czsKKyAgICBIYXNoTWFwPElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciwgUmVm
UHRyPEFzeW5jUmVxdWVzdD4+IG1fcGVuZGluZ1RyYW5zYWN0aW9uUmVxdWVzdHM7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VNZXRhZGF0YT4gbV9tZXRhZGF0YTsK
ICAgICBib29sIG1fZGlkR2V0TWV0YWRhdGFGcm9tQmFja2luZ1N0b3JlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFz
ZUJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWRE
Qi9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZS5oCmluZGV4IDJjNzc2ZjIuLmM5YjA3MjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5p
cXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlLmgKQEAgLTQz
LDcgKzQzLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5VbmlxdWVJREJEYXRhYmFzZUJhY2tp
bmdTdG9yZSgpIHsgfQogCiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SURC
RGF0YWJhc2VNZXRhZGF0YT4gZ2V0T3JFc3RhYmxpc2hNZXRhZGF0YSgpID0gMDsKKwogICAgIHZp
cnR1YWwgYm9vbCBlc3RhYmxpc2hUcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50
aWZpZXImKSA9IDA7CisgICAgdmlydHVhbCBib29sIGJlZ2luVHJhbnNhY3Rpb24oY29uc3QgSURC
VHJhbnNhY3Rpb25JZGVudGlmaWVyJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjb21taXRUcmFu
c2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImKSA9IDA7CisgICAgdmlydHVh
bCBib29sIHJlc2V0VHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJikg
PSAwOworICAgIHZpcnR1YWwgYm9vbCByb2xsYmFja1RyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5z
YWN0aW9uSWRlbnRpZmllciYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUv
U1FMaXRlSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IDJhNmZlMGEu
LjFjNzAzODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvc3FsaXRlL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9TUUxpdGVJREJUcmFuc2FjdGlvbi5j
cHAKQEAgLTM0LDYgKzM0LDI2IEBAIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpTUUxpdGVJREJUcmFu
c2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImIGlkZW50CiB7CiB9CiAKK2Jv
b2wgU1FMaXRlSURCVHJhbnNhY3Rpb246OmJlZ2luKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgU1FMaXRlSURCVHJhbnNhY3Rpb246OmNvbW1pdCgpCit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitib29sIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpyZXNldCgpCit7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIFNRTGl0ZUlEQlRyYW5zYWN0aW9uOjpyb2xsYmFjaygpCit7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlm
IC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKSAmJiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3Fs
aXRlL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nl
c3MvSW5kZXhlZERCL3NxbGl0ZS9TUUxpdGVJREJUcmFuc2FjdGlvbi5oCmluZGV4IDhjZjM5MGYu
LjFkZTZkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRl
eGVkREIvc3FsaXRlL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRlSURCVHJhbnNhY3Rpb24uaApA
QCAtNDMsNiArNDMsMTEgQEAgcHVibGljOgogCiAgICAgY29uc3QgSURCVHJhbnNhY3Rpb25JZGVu
dGlmaWVyJiBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKKyAg
ICBib29sIGJlZ2luKCk7CisgICAgYm9vbCBjb21taXQoKTsKKyAgICBib29sIHJlc2V0KCk7Cisg
ICAgYm9vbCByb2xsYmFjaygpOworCiBwcml2YXRlOgogICAgIFNRTGl0ZUlEQlRyYW5zYWN0aW9u
KGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFz
ZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAK
aW5kZXggNTQyNTRmNC4uNWFmZGUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVT
UUxpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIv
c3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcApAQCAtMTk2LDEz
ICsxOTYsNjcgQEAgc3RkOjp1bmlxdWVfcHRyPElEQkRhdGFiYXNlTWV0YWRhdGE+IFVuaXF1ZUlE
QkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpnZXRPckUKIGJvb2wgVW5pcXVlSURCRGF0YWJh
c2VCYWNraW5nU3RvcmVTUUxpdGU6OmVzdGFibGlzaFRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5z
YWN0aW9uSWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVh
ZCgpKTsKLSAgICBBU1NFUlQoIW1fdHJhbnNhY3Rpb25zLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsK
LQotICAgIG1fdHJhbnNhY3Rpb25zLmFkZChpZGVudGlmaWVyLCBTUUxpdGVJREJUcmFuc2FjdGlv
bjo6Y3JlYXRlKGlkZW50aWZpZXIpKTsKKyAgICAKKyAgICBpZiAoIW1fdHJhbnNhY3Rpb25zLmFk
ZChpZGVudGlmaWVyLCBTUUxpdGVJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKGlkZW50aWZpZXIpKS5p
c05ld0VudHJ5KSB7CisgICAgICAgIExPR19FUlJPUigiQXR0ZW1wdCB0byBlc3RhYmxpc2ggdHJh
bnNhY3Rpb24gaWRlbnRpZmllciB0aGF0IGFscmVhZHkgZXhpc3RzIik7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBVbmlxdWVJREJE
YXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6YmVnaW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFu
c2FjdGlvbklkZW50aWZpZXImIGlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJl
YWQoKSk7CisKKyAgICBTUUxpdGVJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24gPSBtX3RyYW5z
YWN0aW9ucy5nZXQoaWRlbnRpZmllcik7CisgICAgaWYgKCF0cmFuc2FjdGlvbikgeworICAgICAg
ICBMT0dfRVJST1IoIkF0dGVtcHQgdG8gYmVnaW4gYSB0cmFuc2FjdGlvbiB0aGF0IGhhc24ndCBi
ZWVuIGVzdGFibGlzaGVkIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gdHJhbnNhY3Rpb24tPmJlZ2luKCk7Cit9CisKK2Jvb2wgVW5pcXVlSURCRGF0YWJhc2VC
YWNraW5nU3RvcmVTUUxpdGU6OmNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9u
SWRlbnRpZmllciYgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
KworICAgIFNRTGl0ZUlEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25z
LmdldChpZGVudGlmaWVyKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uKSB7CisgICAgICAgIExPR19F
UlJPUigiQXR0ZW1wdCB0byBjb21taXQgYSB0cmFuc2FjdGlvbiB0aGF0IGhhc24ndCBiZWVuIGVz
dGFibGlzaGVkIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4g
dHJhbnNhY3Rpb24tPmNvbW1pdCgpOworfQorCitib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2lu
Z1N0b3JlU1FMaXRlOjpyZXNldFRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRp
ZmllciYgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKworICAg
IFNRTGl0ZUlEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldChp
ZGVudGlmaWVyKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uKSB7CisgICAgICAgIExPR19FUlJPUigi
QXR0ZW1wdCB0byByZXNldCBhIHRyYW5zYWN0aW9uIHRoYXQgaGFzbid0IGJlZW4gZXN0YWJsaXNo
ZWQiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cmFuc2Fj
dGlvbi0+cmVzZXQoKTsKK30KKworYm9vbCBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNR
TGl0ZTo6cm9sbGJhY2tUcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXIm
IGlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisKKyAgICBTUUxp
dGVJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQoaWRlbnRp
Zmllcik7CisgICAgaWYgKCF0cmFuc2FjdGlvbikgeworICAgICAgICBMT0dfRVJST1IoIkF0dGVt
cHQgdG8gcm9sbGJhY2sgYSB0cmFuc2FjdGlvbiB0aGF0IGhhc24ndCBiZWVuIGVzdGFibGlzaGVk
Iik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJhbnNhY3Rp
b24tPnJvbGxiYWNrKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8g
RU5BQkxFKElOREVYRURfREFUQUJBU0UpICYmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUv
VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuaCBiL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0
b3JlU1FMaXRlLmgKaW5kZXggZDYyYWVlOC4uNTYyNjRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VC
YWNraW5nU3RvcmVTUUxpdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oCkBA
IC01Miw3ICs1MiwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VW5pcXVlSURCRGF0YWJhc2VC
YWNraW5nU3RvcmVTUUxpdGUoKTsKIAogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OklEQkRhdGFiYXNlTWV0YWRhdGE+IGdldE9yRXN0YWJsaXNoTWV0YWRhdGEoKSBPVkVSUklE
RTsKKwogICAgIHZpcnR1YWwgYm9vbCBlc3RhYmxpc2hUcmFuc2FjdGlvbihjb25zdCBJREJUcmFu
c2FjdGlvbklkZW50aWZpZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgYmVnaW5UcmFu
c2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgY29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlm
aWVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHJlc2V0VHJhbnNhY3Rpb24oY29uc3Qg
SURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHJv
bGxiYWNrVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJikgT1ZFUlJJ
REU7CiAKIHByaXZhdGU6CiAgICAgVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUo
Y29uc3QgVW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVyJiwgY29uc3QgU3RyaW5nJiBkYXRhYmFz
ZURpcmVjdG9yeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFi
YXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5j
cHAKaW5kZXggZTRlNTE5ZS4uNzY3ODI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJT
ZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMTM5LDE4ICsxMzksOTAgQEAgdm9pZCBXZWJJREJTZXJ2
ZXJDb25uZWN0aW9uOjpkaWRPcGVuVHJhbnNhY3Rpb24odWludDY0X3QgcmVxdWVzdElELCBib29s
IHN1Y2Nlc3MKIAogdm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpiZWdpblRyYW5zYWN0aW9u
KGludDY0X3QgdHJhbnNhY3Rpb25JRCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25D
YWxsYmFjaykKIHsKKyAgICBSZWZQdHI8QXN5bmNSZXF1ZXN0PiBzZXJ2ZXJSZXF1ZXN0ID0gQXN5
bmNSZXF1ZXN0SW1wbDw+OjpjcmVhdGUoY29tcGxldGlvbkNhbGxiYWNrLCBjb21wbGV0aW9uQ2Fs
bGJhY2spOworCisgICAgdWludDY0X3QgcmVxdWVzdElEID0gc2VydmVyUmVxdWVzdC0+cmVxdWVz
dElEKCk7CisgICAgQVNTRVJUKCFtX3NlcnZlclJlcXVlc3RzLmNvbnRhaW5zKHJlcXVlc3RJRCkp
OworICAgIG1fc2VydmVyUmVxdWVzdHMuYWRkKHJlcXVlc3RJRCwgc2VydmVyUmVxdWVzdC5yZWxl
YXNlKCkpOworCisgICAgc2VuZChNZXNzYWdlczo6RGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlv
bjo6QmVnaW5UcmFuc2FjdGlvbihyZXF1ZXN0SUQsIHRyYW5zYWN0aW9uSUQpKTsKK30KKwordm9p
ZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpkaWRCZWdpblRyYW5zYWN0aW9uKHVpbnQ2NF90IHJl
cXVlc3RJRCwgYm9vbCkKK3sKKyAgICBSZWZQdHI8QXN5bmNSZXF1ZXN0PiBzZXJ2ZXJSZXF1ZXN0
ID0gbV9zZXJ2ZXJSZXF1ZXN0cy50YWtlKHJlcXVlc3RJRCk7CisKKyAgICBpZiAoIXNlcnZlclJl
cXVlc3QpCisgICAgICAgIHJldHVybjsKKworICAgIHNlcnZlclJlcXVlc3QtPmNvbXBsZXRlUmVx
dWVzdCgpOwogfQogCiB2b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246OmNvbW1pdFRyYW5zYWN0
aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JRCwgQm9vbENhbGxiYWNrRnVuY3Rpb24gc3VjY2Vzc0Nh
bGxiYWNrKQogeworICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHNlcnZlclJlcXVlc3QgPSBBc3lu
Y1JlcXVlc3RJbXBsPGJvb2w+OjpjcmVhdGUoc3VjY2Vzc0NhbGxiYWNrKTsKKworICAgIHNlcnZl
clJlcXVlc3QtPnNldEFib3J0SGFuZGxlcihbc3VjY2Vzc0NhbGxiYWNrXSgpIHsKKyAgICAgICAg
c3VjY2Vzc0NhbGxiYWNrKGZhbHNlKTsKKyAgICB9KTsKKworICAgIHVpbnQ2NF90IHJlcXVlc3RJ
RCA9IHNlcnZlclJlcXVlc3QtPnJlcXVlc3RJRCgpOworICAgIEFTU0VSVCghbV9zZXJ2ZXJSZXF1
ZXN0cy5jb250YWlucyhyZXF1ZXN0SUQpKTsKKyAgICBtX3NlcnZlclJlcXVlc3RzLmFkZChyZXF1
ZXN0SUQsIHNlcnZlclJlcXVlc3QucmVsZWFzZSgpKTsKKworICAgIHNlbmQoTWVzc2FnZXM6OkRh
dGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OkNvbW1pdFRyYW5zYWN0aW9uKHJlcXVlc3RJRCwg
dHJhbnNhY3Rpb25JRCkpOworfQorCit2b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246OmRpZENv
bW1pdFRyYW5zYWN0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBzdWNjZXNzKQoreworICAg
IFJlZlB0cjxBc3luY1JlcXVlc3Q+IHNlcnZlclJlcXVlc3QgPSBtX3NlcnZlclJlcXVlc3RzLnRh
a2UocmVxdWVzdElEKTsKKworICAgIGlmICghc2VydmVyUmVxdWVzdCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgc2VydmVyUmVxdWVzdC0+Y29tcGxldGVSZXF1ZXN0KHN1Y2Nlc3MpOwogfQogCiB2
b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246OnJlc2V0VHJhbnNhY3Rpb24oaW50NjRfdCB0cmFu
c2FjdGlvbklELCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkNhbGxiYWNrKQogewor
ICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHNlcnZlclJlcXVlc3QgPSBBc3luY1JlcXVlc3RJbXBs
PD46OmNyZWF0ZShjb21wbGV0aW9uQ2FsbGJhY2ssIGNvbXBsZXRpb25DYWxsYmFjayk7CisKKyAg
ICB1aW50NjRfdCByZXF1ZXN0SUQgPSBzZXJ2ZXJSZXF1ZXN0LT5yZXF1ZXN0SUQoKTsKKyAgICBB
U1NFUlQoIW1fc2VydmVyUmVxdWVzdHMuY29udGFpbnMocmVxdWVzdElEKSk7CisgICAgbV9zZXJ2
ZXJSZXF1ZXN0cy5hZGQocmVxdWVzdElELCBzZXJ2ZXJSZXF1ZXN0LnJlbGVhc2UoKSk7CisKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uOjpSZXNldFRyYW5z
YWN0aW9uKHJlcXVlc3RJRCwgdHJhbnNhY3Rpb25JRCkpOworfQorCit2b2lkIFdlYklEQlNlcnZl
ckNvbm5lY3Rpb246OmRpZFJlc2V0VHJhbnNhY3Rpb24odWludDY0X3QgcmVxdWVzdElELCBib29s
KQoreworICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHNlcnZlclJlcXVlc3QgPSBtX3NlcnZlclJl
cXVlc3RzLnRha2UocmVxdWVzdElEKTsKKworICAgIGlmICghc2VydmVyUmVxdWVzdCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgc2VydmVyUmVxdWVzdC0+Y29tcGxldGVSZXF1ZXN0KCk7CiB9CiAK
IHZvaWQgV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6cm9sbGJhY2tUcmFuc2FjdGlvbihpbnQ2NF90
IHRyYW5zYWN0aW9uSUQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uQ2FsbGJhY2sp
CiB7CisgICAgUmVmUHRyPEFzeW5jUmVxdWVzdD4gc2VydmVyUmVxdWVzdCA9IEFzeW5jUmVxdWVz
dEltcGw8Pjo6Y3JlYXRlKGNvbXBsZXRpb25DYWxsYmFjaywgY29tcGxldGlvbkNhbGxiYWNrKTsK
KworICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9IHNlcnZlclJlcXVlc3QtPnJlcXVlc3RJRCgpOwor
ICAgIEFTU0VSVCghbV9zZXJ2ZXJSZXF1ZXN0cy5jb250YWlucyhyZXF1ZXN0SUQpKTsKKyAgICBt
X3NlcnZlclJlcXVlc3RzLmFkZChyZXF1ZXN0SUQsIHNlcnZlclJlcXVlc3QucmVsZWFzZSgpKTsK
KworICAgIHNlbmQoTWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OlJvbGxi
YWNrVHJhbnNhY3Rpb24ocmVxdWVzdElELCB0cmFuc2FjdGlvbklEKSk7Cit9CisKK3ZvaWQgV2Vi
SURCU2VydmVyQ29ubmVjdGlvbjo6ZGlkUm9sbGJhY2tUcmFuc2FjdGlvbih1aW50NjRfdCByZXF1
ZXN0SUQsIGJvb2wpCit7CisgICAgUmVmUHRyPEFzeW5jUmVxdWVzdD4gc2VydmVyUmVxdWVzdCA9
IG1fc2VydmVyUmVxdWVzdHMudGFrZShyZXF1ZXN0SUQpOworCisgICAgaWYgKCFzZXJ2ZXJSZXF1
ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBzZXJ2ZXJSZXF1ZXN0LT5jb21wbGV0ZVJlcXVl
c3QoKTsKIH0KIAogdm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpzZXRJbmRleEtleXMoaW50
NjRfdCB0cmFuc2FjdGlvbklELCBpbnQ2NF90IGRhdGFiYXNlSUQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJRCwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYsIElEQktleSYgcHJpbWFyeUtleSwg
Y29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElEcywgY29uc3QgVmVjdG9yPFZlY3RvcjxSZWZQ
dHI8SURCS2V5Pj4+JiBpbmRleEtleXMsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElE
QkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9X
ZWJJREJTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggOWM4ZDRmYS4uOTc4M2VjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNl
cnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5oCkBAIC05NSw2ICs5NSwxMCBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBkaWRHZXRPckVzdGFibGlzaElEQkRhdGFiYXNlTWV0YWRhdGEo
dWludDY0X3QgcmVxdWVzdElELCBib29sIHN1Y2Nlc3MsIGNvbnN0IFdlYkNvcmU6OklEQkRhdGFi
YXNlTWV0YWRhdGEmKTsKICAgICB2b2lkIGRpZE9wZW5UcmFuc2FjdGlvbih1aW50NjRfdCByZXF1
ZXN0SUQsIGJvb2wgc3VjY2Vzcyk7CisgICAgdm9pZCBkaWRCZWdpblRyYW5zYWN0aW9uKHVpbnQ2
NF90IHJlcXVlc3RJRCwgYm9vbCBzdWNjZXNzKTsKKyAgICB2b2lkIGRpZENvbW1pdFRyYW5zYWN0
aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBzdWNjZXNzKTsKKyAgICB2b2lkIGRpZFJlc2V0
VHJhbnNhY3Rpb24odWludDY0X3QgcmVxdWVzdElELCBib29sIHN1Y2Nlc3MpOworICAgIHZvaWQg
ZGlkUm9sbGJhY2tUcmFuc2FjdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgc3VjY2Vzcyk7
CiAKICAgICB1aW50NjRfdCBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
U2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
RGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmlu
ZGV4IDhmMTMyN2YuLjYxMTEwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJ
REJTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCwxMiBAQAogCiBtZXNz
YWdlcyAtPiBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaWRH
ZXRPckVzdGFibGlzaElEQkRhdGFiYXNlTWV0YWRhdGEodWludDY0X3QgcmVxdWVzdElELCBib29s
IHN1Y2Nlc3MsIFdlYkNvcmU6OklEQkRhdGFiYXNlTWV0YWRhdGEgbWV0YWRhdGEpCisKICAgICBE
aWRPcGVuVHJhbnNhY3Rpb24odWludDY0X3QgcmVxdWVzdElELCBib29sIHN1Y2Nlc3MpCisgICAg
RGlkQmVnaW5UcmFuc2FjdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgc3VjY2VzcykKKyAg
ICBEaWRDb21taXRUcmFuc2FjdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgc3VjY2VzcykK
KyAgICBEaWRSZXNldFRyYW5zYWN0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBzdWNjZXNz
KQorICAgIERpZFJvbGxiYWNrVHJhbnNhY3Rpb24odWludDY0X3QgcmVxdWVzdElELCBib29sIHN1
Y2Nlc3MpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkgJiYgRU5BQkxF
KERBVEFCQVNFX1BST0NFU1MpCg==
</data>
<flag name="review"
          id="242985"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>