<?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>152441</bug_id>
          
          <creation_ts>2015-12-18 15:27:27 -0800</creation_ts>
          <short_desc>Modern IDB: Don&apos;t open any new connections until after version change transactions are completely handled</short_desc>
          <delta_ts>2015-12-23 23:40:57 -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>150882</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>1150401</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-12-18 15:27:27 -0800</bug_when>
    <thetext>Modern IDB: Don&apos;t open any new connections until after version change transactions are 100% completed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150606</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-12-19 21:31:57 -0800</bug_when>
    <thetext>Retitled:
Modern IDB: IDBOpenDBRequests should be able to get a success or error event immediately after their transaction finishes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150662</commentid>
    <comment_count>2</comment_count>
      <attachid>267724</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-12-20 13:30:16 -0800</bug_when>
    <thetext>Created attachment 267724
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150687</commentid>
    <comment_count>3</comment_count>
      <attachid>267731</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-12-20 21:16:57 -0800</bug_when>
    <thetext>Created attachment 267731
Patch v1 - rebaselined</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150689</commentid>
    <comment_count>4</comment_count>
      <attachid>267733</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-12-20 21:21:05 -0800</bug_when>
    <thetext>Created attachment 267733
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151257</commentid>
    <comment_count>5</comment_count>
      <attachid>267733</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-23 23:40:53 -0800</bug_when>
    <thetext>Comment on attachment 267733
Patch v2

Clearing flags on attachment: 267733

Committed r194414: &lt;http://trac.webkit.org/changeset/194414&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151258</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-23 23:40:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267724</attachid>
            <date>2015-12-20 13:30:16 -0800</date>
            <delta_ts>2015-12-20 21:16:57 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>21417</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiYTMyYWNhLi5kOGQ5ZGFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMTIt
MjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IERvbid0IG9wZW4gYW55IG5ldyBjb25uZWN0aW9ucyB1bnRpbCBhZnRlciB2ZXJzaW9uIGNo
YW5nZSB0cmFuc2FjdGlvbnMgYXJlIGNvbXBsZXRlbHkgaGFuZGxlZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjQ0MS4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVz
dEV4cGVjdGF0aW9uczogRW5hYmxlIDQgbm93LXBhc3NpbmcgdGVzdHMuCisKIDIwMTUtMTItMTgg
IEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIENhY2hlIHJlZGly
ZWN0cyBhcyBzZXBhcmF0ZSBlbnRyaWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sx
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOTZlMGU5MC4uMDQxYTQ4MSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTMsMTAgKzkzLDYgQEAg
c3RvcmFnZS9pbmRleGVkZGIvdW5ibG9ja2VkLXZlcnNpb24tY2hhbmdlcy5odG1sIFsgU2tpcCBd
CiBzdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1kZWxldGVwZW5kaW5nLWZsYWcuaHRtbCBbIEZh
aWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3Qu
aHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1nYXRlZC1vbi1k
ZWxldGUuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVu
LWluLXVwZ3JhZGVuZWVkZWQuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50
dmVyc2lvbi1wZW5kaW5nLXZlcnNpb24tY2hhbmdlcy1kZXNjZW5kaW5nLmh0bWwgWyBGYWlsdXJl
IF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tcGVuZGluZy12ZXJzaW9uLWNoYW5nZXMt
c2FtZS5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXR3by1v
cGVucy1uby12ZXJzaW9ucy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9vZGQt
c3RyaW5ncy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWRiLXByaXZh
dGUtYnJvd3NpbmcuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvcHJvcGVydGll
cy1kaXNhYmxlZC1hdC1ydW50aW1lLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMTYx
ZDg4Li5kYmRlODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMTUtMTItMjAgIEJy
YWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJREI6IERv
bid0IG9wZW4gYW55IG5ldyBjb25uZWN0aW9ucyB1bnRpbCBhZnRlciB2ZXJzaW9uIGNoYW5nZSB0
cmFuc2FjdGlvbnMgYXJlIGNvbXBsZXRlbHkgaGFuZGxlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjQ0MS4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKEF0IGxlYXN0IDQgZmFp
bGluZyB0ZXN0cyBub3cgcGFzcykuCisgICAgICAgIAorICAgICAgICBXaGVuIGEgdmVyc2lvbiBj
aGFuZ2UgdHJhbnNhY3Rpb24gaXMgaW4gcHJvZ3Jlc3MgZm9yIGEgZGF0YWJhc2UsIHRoZSBzZXJ2
ZXIgc2hvdWxkIG5vdCBvcGVuIGFueSBuZXcgY29ubmVjdGlvbnMKKyAgICAgICAgdG8gdGhhdCBk
YXRhYmFzZSB1bnRpbCB0aGUgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gaGFzIGJlZW4gMTAw
JSBjb21wbGV0ZWQuCisgICAgICAgIAorICAgICAgICBUaGlzIG1lYW5zICphbGwqIGV2ZW50cyBy
ZWxhdGVkIHRvIGZpbmlzaGluZyB0aGUgdHJhbnNhY3Rpb24gbXVzdCBmaXJlLgorICAgICAgICAK
KyAgICAgICAgVG8gc3VwcG9ydCB0aGlzLCBhIG5ldyBtZXNzYWdlIGZyb20gY2xpZW50IC0+IHNl
cnZlciBpcyBhZGRlZC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0
aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRv
U2VydmVyLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Ub1NlcnZlckRlbGVnYXRlLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJDbGllbnQ6OklEQk9wZW5EQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1wbC5oOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJSZXF1ZXN0SW1wbC5oOgorICAgICAgICAKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25D
aGFuZ2VUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlx
dWVJREJEYXRhYmFzZTo6aGFuZGxlRGF0YWJhc2VPcGVyYXRpb25zKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lv
bkNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNl
Ojpjb21taXRUcmFuc2FjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQWJvcnRUcmFuc2FjdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjppblBy
b2dyZXNzVHJhbnNhY3Rpb25Db21wbGV0ZWQpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorICAgICAgICAKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb246OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZSk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uaDoKKyAgICAg
ICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5m
by5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkluZm86OmxvZ2dpbmdTdHJp
bmcpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbklu
Zm8uaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJv
Y2Vzc0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6
OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmg6CisKIDIwMTUtMTIt
MTggIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIENhY2hlIHJl
ZGlyZWN0cyBhcyBzZXBhcmF0ZSBlbnRyaWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIu
Y3BwCmluZGV4IGRjMTMzYmQuLmZmMWJhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2
ZXIuY3BwCkBAIC0yOTAsNiArMjkwLDEzIEBAIHZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpk
aWRDb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyCiAgICAg
dHJhbnNhY3Rpb24tPmRpZENvbW1pdChlcnJvcik7CiB9CiAKK3ZvaWQgSURCQ29ubmVjdGlvblRv
U2VydmVyOjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihJREJUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24pCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rp
b25Ub1NlcnZlcjo6ZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24iKTsK
KyAgICBhdXRvIGlkZW50aWZpZXIgPSB0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpOwor
ICAgIG1fZGVsZWdhdGUtPmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
KGlkZW50aWZpZXIpOworfQorCiB2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRUcmFu
c2FjdGlvbihJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7CiAgICAgTE9HKEluZGV4ZWRE
QiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRUcmFuc2FjdGlvbiIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25U
b1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IGRjYzE0OGUuLmIxNGU1MGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29u
bmVjdGlvblRvU2VydmVyLmgKQEAgLTk4LDYgKzk4LDggQEAgcHVibGljOgogICAgIHZvaWQgY29t
bWl0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mKTsKICAgICB2b2lkIGRpZENvbW1pdFRyYW5z
YWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBJREJFcnJvciYpOwogCisgICAgdm9pZCBkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25D
aGFuZ2VUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYpOworCiAgICAgdm9pZCBhYm9ydFRyYW5z
YWN0aW9uKElEQlRyYW5zYWN0aW9uJik7CiAgICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9uKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJ
REJFcnJvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5o
CmluZGV4IDBiOTA5MGUuLjc1YjU1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9T
ZXJ2ZXJEZWxlZ2F0ZS5oCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgb3BlbkRhdGFiYXNlKElEQlJlcXVlc3REYXRhJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBh
Ym9ydFRyYW5zYWN0aW9uKElEQlJlc291cmNlSWRlbnRpZmllciYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihJ
REJSZXNvdXJjZUlkZW50aWZpZXImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVj
dFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0
RGF0YSYsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCT3BlbkRCUmVxdWVzdEltcGwuY3BwCmlu
ZGV4IGJkMTUyN2MuLmFmMGEzY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQk9wZW5EQlJlcXVlc3RJbXBsLmNwcApA
QCAtMTAxLDYgKzEwMSwxNiBAQCB2b2lkIElEQk9wZW5EQlJlcXVlc3Q6OmZpcmVFcnJvckFmdGVy
VmVyc2lvbkNoYW5nZUNvbXBsZXRpb24oKQogICAgIGVucXVldWVFdmVudChFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCB0cnVlLCB0cnVlKSk7CiB9CiAKK2Jvb2wgSURCT3Bl
bkRCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChFdmVudCYgZXZlbnQpCit7CisgICAgYm9vbCByZXN1
bHQgPSBJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KGV2ZW50KTsKKworICAgIGlmIChtX3RyYW5z
YWN0aW9uICYmIG1fdHJhbnNhY3Rpb24tPmlzVmVyc2lvbkNoYW5nZSgpICYmIChldmVudC50eXBl
KCkgPT0gZXZlbnROYW1lcygpLmVycm9yRXZlbnQgfHwgZXZlbnQudHlwZSgpID09IGV2ZW50TmFt
ZXMoKS5zdWNjZXNzRXZlbnQpKQorICAgICAgICBtX3RyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLnNl
cnZlckNvbm5lY3Rpb24oKS5kaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlv
bigqbV90cmFuc2FjdGlvbik7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB2b2lkIElEQk9w
ZW5EQlJlcXVlc3Q6Om9uU3VjY2Vzcyhjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQog
ewogICAgIExPRyhJbmRleGVkREIsICJJREJPcGVuREJSZXF1ZXN0OjpvblN1Y2Nlc3MoKSIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQk9w
ZW5EQlJlcXVlc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCT3BlbkRCUmVxdWVzdEltcGwuaAppbmRleCBkYWE5ZjZmLi5mMjQyYTc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCT3BlbkRCUmVx
dWVzdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCT3BlbkRCUmVxdWVzdEltcGwuaApAQCAtNTcsNiArNTcsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBmaXJlU3VjY2Vzc0FmdGVyVmVyc2lvbkNoYW5nZUNvbW1pdCgpOwogICAgIHZvaWQgZmlyZUVy
cm9yQWZ0ZXJWZXJzaW9uQ2hhbmdlQ29tcGxldGlvbigpOwogCisgICAgdmlydHVhbCBib29sIGRp
c3BhdGNoRXZlbnQoRXZlbnQmKSBvdmVycmlkZSBmaW5hbDsKKwogcHJpdmF0ZToKICAgICBJREJP
cGVuREJSZXF1ZXN0KElEQkNvbm5lY3Rpb25Ub1NlcnZlciYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImLCB1aW50NjRfdCB2ZXJzaW9uLCBJbmRl
eGVkREI6OlJlcXVlc3RUeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQlJlcXVlc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCUmVxdWVzdEltcGwuaAppbmRleCA3ZGRjM2EwLi4xNmM1
MTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCUmVxdWVzdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9j
bGllbnQvSURCUmVxdWVzdEltcGwuaApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgdXNp
bmcgUmVmQ291bnRlZDxJREJSZXF1ZXN0Pjo6ZGVyZWY7CiAKICAgICB2b2lkIGVucXVldWVFdmVu
dChSZWY8RXZlbnQ+JiYpOwotICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEV2ZW50KEV2ZW50Jikg
b3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQoRXZlbnQmKSBv
dmVycmlkZTsKIAogICAgIElEQkNvbm5lY3Rpb25Ub1NlcnZlciYgY29ubmVjdGlvbigpIHsgcmV0
dXJuIG1fY29ubmVjdGlvbjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IDA3MzQzNzYuLjdmYTU3YzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuY3BwCkBAIC0zMTcsNiArMzE3LDE3IEBAIHZvaWQgSURCU2VydmVyOjpjb21taXRUcmFu
c2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpCiAg
ICAgdHJhbnNhY3Rpb24tPmNvbW1pdCgpOwogfQogCit2b2lkIElEQlNlcnZlcjo6ZGlkRmluaXNo
SGFuZGxpbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQlNl
cnZlcjo6ZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24iKTsKKworICAg
IGF1dG8gdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZGVudGlm
aWVyKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICB0cmFu
c2FjdGlvbi0+ZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlKCk7Cit9CisKIHZvaWQgSURC
U2VydmVyOjpkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0
aW9uSWRlbnRpZmllcikKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCU2VydmVyOjpkYXRhYmFz
ZUNvbm5lY3Rpb25DbG9zZWQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAppbmRleCBiMjI0M2I3Li5iZTMzYWIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5o
CkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0
IElEQlJlcXVlc3REYXRhJik7CiAgICAgdm9pZCBhYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYpOwogICAgIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJik7CisgICAgdm9pZCBkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25D
aGFuZ2VUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKTsKICAgICB2b2lk
IGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCT2JqZWN0
U3RvcmVJbmZvJik7CiAgICAgdm9pZCBkZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0
RGF0YSYsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKTsKICAgICB2b2lkIGNsZWFyT2Jq
ZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKaW5kZXggNzFmNjVmOC4uNmY0ZGNiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCkBAIC0yMDYsMTMgKzIwNiwxMCBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpoYW5kbGVEYXRhYmFzZU9wZXJhdGlvbnMoKQogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRh
YmFzZTo6aGFuZGxlRGF0YWJhc2VPcGVyYXRpb25zIC0gVGhlcmUgYXJlICV6dSBwZW5kaW5nIiwg
bV9wZW5kaW5nRGF0YWJhc2VPcGVyYXRpb25zLnNpemUoKSk7CiAKLSAgICBpZiAobV92ZXJzaW9u
Q2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uIHx8IG1fY3VycmVudE9wZXJhdGlvbikgewotICAgICAg
ICAvLyBXZSBjYW4ndCBzdGFydCB0aGUgbmV4dCBkYXRhYmFzZSBvcGVyYXRpb24gcXVpdGUgeWV0
LCBidXQgd2UgbWlnaHQgbmVlZCB0byBub3RpZnkgYWxsIG9wZW4gY29ubmVjdGlvbnMKLSAgICAg
ICAgLy8gYWJvdXQgYSBwZW5kaW5nIGRlbGV0ZS4KLSAgICAgICAgaWYgKCFtX3BlbmRpbmdEYXRh
YmFzZU9wZXJhdGlvbnMuaXNFbXB0eSgpICYmIG1fcGVuZGluZ0RhdGFiYXNlT3BlcmF0aW9ucy5m
aXJzdCgpLT5pc0RlbGV0ZVJlcXVlc3QoKSAmJiAhbV9oYXNOb3RpZmllZENvbm5lY3Rpb25zT2ZE
ZWxldGUpIHsKLSAgICAgICAgICAgIG1faGFzTm90aWZpZWRDb25uZWN0aW9uc09mRGVsZXRlID0g
dHJ1ZTsKLSAgICAgICAgICAgIG5vdGlmeUNvbm5lY3Rpb25zT2ZWZXJzaW9uQ2hhbmdlKDApOwot
ICAgICAgICB9CisgICAgaWYgKG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbiB8fCBt
X3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiB8fCBtX2N1cnJlbnRPcGVyYXRpb24pIHsKKyAgICAg
ICAgLy8gV2UgY2FuJ3Qgc3RhcnQgYW55IG5ldyBvcGVuLWRhdGFiYXNlIG9wZXJhdGlvbnMgcmln
aHQgbm93LCBidXQgd2UgbWlnaHQgYmUgYWJsZSB0byBzdGFydCBoYW5kbGluZyBhIGRlbGV0ZSBv
cGVyYXRpb24uCisgICAgICAgIGlmICghbV9jdXJyZW50T3BlcmF0aW9uICYmICFtX3BlbmRpbmdE
YXRhYmFzZU9wZXJhdGlvbnMuaXNFbXB0eSgpICYmIG1fcGVuZGluZ0RhdGFiYXNlT3BlcmF0aW9u
cy5maXJzdCgpLT5pc0RlbGV0ZVJlcXVlc3QoKSkKKyAgICAgICAgICAgIG1fY3VycmVudE9wZXJh
dGlvbiA9IG1fcGVuZGluZ0RhdGFiYXNlT3BlcmF0aW9ucy50YWtlRmlyc3QoKTsKIAogICAgICAg
ICAvLyBTb21lIG9wZXJhdGlvbnMgKHN1Y2ggYXMgdGhlIGZpcnN0IG9wZW4gb3BlcmF0aW9uIGFm
dGVyIGEgZGVsZXRlKSByZXF1aXJlIG11bHRpcGxlIHBhc3NlcyB0byBjb21wbGV0ZWx5IGhhbmRs
ZQogICAgICAgICBpZiAobV9jdXJyZW50T3BlcmF0aW9uKQpAQCAtODQ5LDkgKzg0Niw2IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNl
VHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgICAgIEFTU0VSVCgmbV92ZXJzaW9uQ2hhbmdlVHJh
bnNhY3Rpb24tPmRhdGFiYXNlQ29ubmVjdGlvbigpID09IG1fdmVyc2lvbkNoYW5nZURhdGFiYXNl
Q29ubmVjdGlvbik7CiAgICAgICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mby0+dmVyc2lvbigpID09
IHRyYW5zYWN0aW9uLmluZm8oKS5uZXdWZXJzaW9uKCkpOwogCi0gICAgICAgIG1fdmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgbV92ZXJzaW9uQ2hhbmdlRGF0YWJh
c2VDb25uZWN0aW9uID0gbnVsbHB0cjsKLQogICAgICAgICBpbnZva2VPcGVyYXRpb25BbmRUcmFu
c2FjdGlvblRpbWVyKCk7CiAgICAgfQogCkBAIC04ODksNiArODgzLDIwIEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
biYgdHJhbnNhY3RpCiAgICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1Ro
cmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0VHJhbnNhY3Rp
b24sIGNhbGxiYWNrSUQsIHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpKTsKIH0KIAor
dm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlKFVu
aXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQoreworICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRh
YmFzZTo6ZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlIik7CisKKyAgICBBU1NFUlQobV92
ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24pOworICAgIEFTU0VSVChtX3ZlcnNpb25DaGFuZ2VUcmFu
c2FjdGlvbiA9PSAmdHJhbnNhY3Rpb24pOworCisgICAgbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rp
b24gPSBudWxscHRyOworICAgIG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbiA9IG51
bGxwdHI7CisKKyAgICBpbnZva2VPcGVyYXRpb25BbmRUcmFuc2FjdGlvblRpbWVyKCk7Cit9CisK
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uKHVpbnQ2NF90
IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CkBAIC05MDcs
OSArOTE1LDYgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybUFib3J0VHJhbnNh
Y3Rpb24odWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLAogICAgICAgICBBU1NFUlQoJm1fdmVy
c2lvbkNoYW5nZVRyYW5zYWN0aW9uLT5kYXRhYmFzZUNvbm5lY3Rpb24oKSA9PSBtX3ZlcnNpb25D
aGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb24pOwogICAgICAgICBBU1NFUlQobV92ZXJzaW9uQ2hhbmdl
VHJhbnNhY3Rpb24tPm9yaWdpbmFsRGF0YWJhc2VJbmZvKCkpOwogICAgICAgICBtX2RhdGFiYXNl
SW5mbyA9IHN0ZDo6bWFrZV91bmlxdWU8SURCRGF0YWJhc2VJbmZvPigqbV92ZXJzaW9uQ2hhbmdl
VHJhbnNhY3Rpb24tPm9yaWdpbmFsRGF0YWJhc2VJbmZvKCkpOwotCi0gICAgICAgIG1fdmVyc2lv
bkNoYW5nZVRyYW5zYWN0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgbV92ZXJzaW9uQ2hhbmdlRGF0
YWJhc2VDb25uZWN0aW9uID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBpblByb2dyZXNzVHJhbnNh
Y3Rpb25Db21wbGV0ZWQodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKQEAgLTEwOTQsOSArMTA5OSw2
IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNvbXBsZXRl
ZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpCiAgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1faW5Q
cm9ncmVzc1RyYW5zYWN0aW9ucy50YWtlKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgQVNT
RVJUKHRyYW5zYWN0aW9uKTsKIAotICAgIGlmIChtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiA9
PSB0cmFuc2FjdGlvbikKLSAgICAgICAgbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPSBudWxs
cHRyOwotCiAgICAgZm9yIChhdXRvIG9iamVjdFN0b3JlIDogdHJhbnNhY3Rpb24tPm9iamVjdFN0
b3JlSWRlbnRpZmllcnMoKSkKICAgICAgICAgbV9vYmplY3RTdG9yZVRyYW5zYWN0aW9uQ291bnRz
LnJlbW92ZShvYmplY3RTdG9yZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5kZXggMmQ4ZWRm
ZS4uMTI2ODFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTkyLDYgKzkyLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgaXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0
IElEQktleURhdGEmLCB1bnNpZ25lZCBsb25nIGNvdW50LCBHZXRSZXN1bHRDYWxsYmFjayk7CiAg
ICAgdm9pZCBjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiwg
RXJyb3JDYWxsYmFjayk7CiAgICAgdm9pZCBhYm9ydFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFi
YXNlVHJhbnNhY3Rpb24mLCBFcnJvckNhbGxiYWNrKTsKKyAgICB2b2lkIGRpZEZpbmlzaEhhbmRs
aW5nVmVyc2lvbkNoYW5nZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJik7CiAgICAgdm9p
ZCB0cmFuc2FjdGlvbkRlc3Ryb3llZChVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJik7CiAg
ICAgdm9pZCBjb25uZWN0aW9uQ2xvc2VkRnJvbUNsaWVudChVbmlxdWVJREJEYXRhYmFzZUNvbm5l
Y3Rpb24mKTsKIApAQCAtMTgzLDcgKzE4NCw3IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxSZWZQ
dHI8VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uPj4gbV9jbG9zZVBlbmRpbmdEYXRhYmFzZUNv
bm5lY3Rpb25zOwogCiAgICAgUmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbj4gbV92
ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uOwotICAgIFVuaXF1ZUlEQkRhdGFiYXNlVHJh
bnNhY3Rpb24qIG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uIHsgbnVsbHB0ciB9OworICAgIFJl
ZlB0cjxVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uPiBtX3ZlcnNpb25DaGFuZ2VUcmFuc2Fj
dGlvbjsKIAogICAgIGJvb2wgbV9pc09wZW5pbmdCYWNraW5nU3RvcmUgeyBmYWxzZSB9OwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxJREJCYWNraW5nU3RvcmU+IG1fYmFja2luZ1N0b3JlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwCmluZGV4IGIwYjUxZTAuLjdl
OTkxZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAK
QEAgLTMwOSw2ICszMDksMTQgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpk
aWRBY3RpdmF0ZUluQmFja2luZ1N0b3JlKGNvbnN0IElEQkVycm9yJiBlcnIKICAgICBtX2RhdGFi
YXNlQ29ubmVjdGlvbi0+Y29ubmVjdGlvblRvQ2xpZW50KCkuZGlkU3RhcnRUcmFuc2FjdGlvbiht
X3RyYW5zYWN0aW9uSW5mby5pZGVudGlmaWVyKCksIGVycm9yKTsKIH0KIAordm9pZCBVbmlxdWVJ
REJEYXRhYmFzZVRyYW5zYWN0aW9uOjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2UoKQor
eworICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpkaWRG
aW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2UiKTsKKyAgICBBU1NFUlQoaXNWZXJzaW9uQ2hhbmdl
KCkpOworCisgICAgbV9kYXRhYmFzZUNvbm5lY3Rpb24tPmRhdGFiYXNlKCkuZGlkRmluaXNoSGFu
ZGxpbmdWZXJzaW9uQ2hhbmdlKCp0aGlzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVy
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VU
cmFuc2FjdGlvbi5oCmluZGV4IDgwMzkyOWEuLjUwMDVmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uaApAQCAtNzksNiArNzksNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBpdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5RGF0
YSYsIHVuc2lnbmVkIGxvbmcgY291bnQpOwogCiAgICAgdm9pZCBkaWRBY3RpdmF0ZUluQmFja2lu
Z1N0b3JlKGNvbnN0IElEQkVycm9yJik7CisgICAgdm9pZCBkaWRGaW5pc2hIYW5kbGluZ1ZlcnNp
b25DaGFuZ2UoKTsKIAogICAgIGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIG9iamVjdFN0b3JlSWRl
bnRpZmllcnMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmNwcAppbmRleCAxYzg4M2VjLi43
Yjg5ZWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFy
ZWQvSURCVHJhbnNhY3Rpb25JbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmNwcApAQCAtMjgsNiArMjgsOCBAQAog
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRlICJJREJUcmFuc2FjdGlv
bkltcGwuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBJREJUcmFuc2FjdGlvbkluZm86OklE
QlRyYW5zYWN0aW9uSW5mbyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGlkZW50aWZpZXIp
CkBAIC04MCw2ICs4MiwyOCBAQCBJREJUcmFuc2FjdGlvbkluZm8gSURCVHJhbnNhY3Rpb25JbmZv
Ojppc29sYXRlZENvcHkoKSBjb25zdAogICAgIHJldHVybiBXVEY6Om1vdmUocmVzdWx0KTsKIH0K
IAorI2lmbmRlZiBOREVCVUcKK1N0cmluZyBJREJUcmFuc2FjdGlvbkluZm86OmxvZ2dpbmdTdHJp
bmcoKSBjb25zdAoreworICAgIFN0cmluZyBtb2RlU3RyaW5nOworICAgIHN3aXRjaCAobV9tb2Rl
KSB7CisgICAgY2FzZSBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZTo6UmVhZE9ubHk6CisgICAg
ICAgIG1vZGVTdHJpbmcgPSBJREJUcmFuc2FjdGlvbjo6bW9kZVJlYWRPbmx5KCk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU6OlJlYWRXcml0ZToK
KyAgICAgICAgbW9kZVN0cmluZyA9IElEQlRyYW5zYWN0aW9uOjptb2RlUmVhZFdyaXRlKCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU6OlZlcnNp
b25DaGFuZ2U6CisgICAgICAgIG1vZGVTdHJpbmcgPSBJREJUcmFuc2FjdGlvbjo6bW9kZVZlcnNp
b25DaGFuZ2UoKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgfQorICAgIAorICAgIHJldHVybiBtYWtlU3RyaW5nKCJUcmFu
c2FjdGlvbjogIiwgbV9pZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKSwgIiBtb2RlICIsIG1vZGVT
dHJpbmcsICIgbmV3VmVyc2lvbiAiLCBTdHJpbmc6Om51bWJlcihtX25ld1ZlcnNpb24pKTsKK30K
KyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uaAppbmRleCBiMTcyODBlLi5iYmVj
NzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCVHJhbnNhY3Rpb25JbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5oCkBAIC02MSw2ICs2MSwxMCBAQCBwdWJsaWM6
CiAKICAgICBJREJEYXRhYmFzZUluZm8qIG9yaWdpbmFsRGF0YWJhc2VJbmZvKCkgY29uc3QgeyBy
ZXR1cm4gbV9vcmlnaW5hbERhdGFiYXNlSW5mby5nZXQoKTsgfQogCisjaWZuZGVmIE5ERUJVRwor
ICAgIFN0cmluZyBsb2dnaW5nU3RyaW5nKCkgY29uc3Q7CisjZW5kaWYKKwogcHJpdmF0ZToKICAg
ICBJREJUcmFuc2FjdGlvbkluZm8oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nl
c3NJREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVk
L0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKaW5kZXggZjhlMGY4Zi4uMWVmNDA1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNl
cnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lu
UHJvY2Vzc0lEQlNlcnZlci5jcHAKQEAgLTIyNCw2ICsyMjQsMTQgQEAgdm9pZCBJblByb2Nlc3NJ
REJTZXJ2ZXI6OmNvbW1pdFRyYW5zYWN0aW9uKElEQlJlc291cmNlSWRlbnRpZmllciYgcmVzb3Vy
Y2VJZGVudGkKICAgICB9KTsKIH0KIAordm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZEZpbmlz
aEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyKQoreworICAgIFJlZlB0cjxJblByb2Nlc3NJREJTZXJ2ZXI+
IHNlbGYodGhpcyk7CisgICAgUnVuTG9vcDo6Y3VycmVudCgpLmRpc3BhdGNoKFt0aGlzLCBzZWxm
LCB0cmFuc2FjdGlvbklkZW50aWZpZXJdIHsKKyAgICAgICAgbV9zZXJ2ZXItPmRpZEZpbmlzaEhh
bmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7Cisg
ICAgfSk7Cit9CisKIHZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpjcmVhdGVPYmplY3RTdG9yZShj
b25zdCBJREJSZXF1ZXN0RGF0YSYgcmVzdWx0RGF0YSwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZv
JiBpbmZvKQogewogICAgIFJlZlB0cjxJblByb2Nlc3NJREJTZXJ2ZXI+IHNlbGYodGhpcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9j
ZXNzSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SW5Qcm9jZXNzSURCU2VydmVyLmgKaW5kZXggMzhlYTM5My4uNDFkNDNkYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nl
c3NJREJTZXJ2ZXIuaApAQCAtNTgsNiArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IG9wZW5EYXRhYmFzZShJREJSZXF1ZXN0RGF0YSYpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1
YWwgdm9pZCBhYm9ydFRyYW5zYWN0aW9uKElEQlJlc291cmNlSWRlbnRpZmllciYpIG92ZXJyaWRl
IGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBjb21taXRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlk
ZW50aWZpZXImKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoSGFu
ZGxpbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJikgb3Zl
cnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElE
QlJlcXVlc3REYXRhJiwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJikgb3ZlcnJpZGUgZmluYWw7
CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRh
JiwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZp
cnR1YWwgdm9pZCBjbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKSBvdmVycmlkZSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267731</attachid>
            <date>2015-12-20 21:16:57 -0800</date>
            <delta_ts>2015-12-20 21:21:05 -0800</delta_ts>
            <desc>Patch v1 - rebaselined</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>21425</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3ODY3MjA4Li40NGY0ODE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMTIt
MjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IERvbid0IG9wZW4gYW55IG5ldyBjb25uZWN0aW9ucyB1bnRpbCBhZnRlciB2ZXJzaW9uIGNo
YW5nZSB0cmFuc2FjdGlvbnMgYXJlIGNvbXBsZXRlbHkgaGFuZGxlZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjQ0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0
RXhwZWN0YXRpb25zOiBFbmFibGUgNCBub3ctcGFzc2luZyB0ZXN0cy4KKwogMjAxNS0xMi0yMCAg
Q29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjE5NDAzMyBhbmQgcjE5NDI2Ny4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5NmUwZTkwLi4wNDFhNDgxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC05
MywxMCArOTMsNiBAQCBzdG9yYWdlL2luZGV4ZWRkYi91bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2Vz
Lmh0bWwgWyBTa2lwIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWRlbGV0ZXBlbmRpbmct
ZmxhZy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9kZWxldGUtY2xvc2VkLWRh
dGFiYXNlLW9iamVjdC5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWdhdGVkLW9uLWRlbGV0ZS5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLW9wZW4taW4tdXBncmFkZW5lZWRlZC5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlbmRpbmctdmVyc2lvbi1jaGFuZ2VzLWRlc2NlbmRpbmcu
aHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZW5kaW5nLXZl
cnNpb24tY2hhbmdlcy1zYW1lLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tdHdvLW9wZW5zLW5vLXZlcnNpb25zLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2Uv
aW5kZXhlZGRiL29kZC1zdHJpbmdzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRi
L29wZW4tZGItcHJpdmF0ZS1icm93c2luZy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4
ZWRkYi9wcm9wZXJ0aWVzLWRpc2FibGVkLWF0LXJ1bnRpbWUuaHRtbCBbIEZhaWx1cmUgXQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGZmMTQwMTkuLjlkNjllMGEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBA
CisyMDE1LTEyLTIwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAg
ICBNb2Rlcm4gSURCOiBEb24ndCBvcGVuIGFueSBuZXcgY29ubmVjdGlvbnMgdW50aWwgYWZ0ZXIg
dmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb25zIGFyZSBjb21wbGV0ZWx5IGhhbmRsZWQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NDEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMg
KEF0IGxlYXN0IDQgZmFpbGluZyB0ZXN0cyBub3cgcGFzcykuCisgICAgICAgIAorICAgICAgICBX
aGVuIGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gaXMgaW4gcHJvZ3Jlc3MgZm9yIGEgZGF0
YWJhc2UsIHRoZSBzZXJ2ZXIgc2hvdWxkIG5vdCBvcGVuIGFueSBuZXcgY29ubmVjdGlvbnMKKyAg
ICAgICAgdG8gdGhhdCBkYXRhYmFzZSB1bnRpbCB0aGUgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rp
b24gaGFzIGJlZW4gMTAwJSBjb21wbGV0ZWQuCisgICAgICAgIAorICAgICAgICBUaGlzIG1lYW5z
ICphbGwqIGV2ZW50cyByZWxhdGVkIHRvIGZpbmlzaGluZyB0aGUgdHJhbnNhY3Rpb24gbXVzdCBm
aXJlLgorICAgICAgICAKKyAgICAgICAgVG8gc3VwcG9ydCB0aGlzLCBhIG5ldyBtZXNzYWdlIGZy
b20gY2xpZW50IC0+IHNlcnZlciBpcyBhZGRlZC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lv
bkNoYW5nZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCQ29ubmVjdGlvblRvU2VydmVyLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmg6CisgICAgICAgIAorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQk9wZW5EQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1w
bC5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJSZXF1ZXN0SW1wbC5o
OgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpkaWRGaW5pc2hI
YW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6aGFuZGxlRGF0YWJhc2VPcGVyYXRpb25zKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZEZpbmlz
aEhhbmRsaW5nVmVyc2lvbkNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVu
aXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQWJvcnRUcmFu
c2FjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlOjppblByb2dyZXNzVHJhbnNhY3Rpb25Db21wbGV0ZWQpOiBEZWxldGVkLgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorICAg
ICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2VUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb246OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZSk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24uaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
QlRyYW5zYWN0aW9uSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbklu
Zm86OmxvZ2dpbmdTdHJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9J
REJUcmFuc2FjdGlvbkluZm8uaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJblBy
b2Nlc3NJREJTZXJ2ZXI6OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVy
Lmg6CisKIDIwMTUtMTItMjAgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdW51c2VkIHNldFRvb2xiYXJIZWlnaHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25U
b1NlcnZlci5jcHAKaW5kZXggZGMxMzNiZC4uZmYxYmE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Ub1NlcnZlci5jcHAKQEAgLTI5MCw2ICsyOTAsMTMgQEAgdm9pZCBJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OmRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHIKICAgICB0cmFuc2FjdGlvbi0+ZGlkQ29tbWl0KGVycm9yKTsKIH0KIAordm9pZCBJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
KElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiSURC
Q29ubmVjdGlvblRvU2VydmVyOjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2Fj
dGlvbiIpOworICAgIGF1dG8gaWRlbnRpZmllciA9IHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlm
aWVyKCk7CisgICAgbV9kZWxlZ2F0ZS0+ZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlVHJh
bnNhY3Rpb24oaWRlbnRpZmllcik7Cit9CisKIHZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjph
Ym9ydFRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsKICAgICBMT0co
SW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjphYm9ydFRyYW5zYWN0aW9uIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29u
bmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggZGNjMTQ4ZS4uYjE0ZTUwYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtOTgsNiArOTgsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjb21taXRUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYpOwogICAgIHZvaWQgZGlkQ29t
bWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CiAKKyAgICB2b2lkIGRpZEZpbmlzaEhhbmRsaW5n
VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJik7CisKICAgICB2b2lkIGFi
b3J0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mKTsKICAgICB2b2lkIGRpZEFib3J0VHJhbnNh
Y3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IGNvbnN0IElEQkVycm9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRl
bGVnYXRlLmgKaW5kZXggMGI5MDkwZS4uNzViNTU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBvcGVuRGF0YWJhc2UoSURCUmVxdWVzdERhdGEmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGFib3J0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBjb21taXRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5z
YWN0aW9uKElEQlJlc291cmNlSWRlbnRpZmllciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJPYmplY3RTdG9y
ZUluZm8mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElE
QlJlcXVlc3REYXRhJiwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgY2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2
NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQk9wZW5EQlJlcXVlc3RJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1w
bC5jcHAKaW5kZXggYmQxNTI3Yy4uYWYwYTNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQk9wZW5EQlJlcXVlc3RJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCT3BlbkRCUmVxdWVzdElt
cGwuY3BwCkBAIC0xMDEsNiArMTAxLDE2IEBAIHZvaWQgSURCT3BlbkRCUmVxdWVzdDo6ZmlyZUVy
cm9yQWZ0ZXJWZXJzaW9uQ2hhbmdlQ29tcGxldGlvbigpCiAgICAgZW5xdWV1ZUV2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIHRydWUsIHRydWUpKTsKIH0KIAorYm9v
bCBJREJPcGVuREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkKK3sKKyAgICBi
b29sIHJlc3VsdCA9IElEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQoZXZlbnQpOworCisgICAgaWYg
KG1fdHJhbnNhY3Rpb24gJiYgbV90cmFuc2FjdGlvbi0+aXNWZXJzaW9uQ2hhbmdlKCkgJiYgKGV2
ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZXJyb3JFdmVudCB8fCBldmVudC50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCkpCisgICAgICAgIG1fdHJhbnNhY3Rpb24tPmRhdGFi
YXNlKCkuc2VydmVyQ29ubmVjdGlvbigpLmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRy
YW5zYWN0aW9uKCptX3RyYW5zYWN0aW9uKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZv
aWQgSURCT3BlbkRCUmVxdWVzdDo6b25TdWNjZXNzKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3Vs
dERhdGEpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQk9wZW5EQlJlcXVlc3Q6Om9uU3VjY2Vz
cygpIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCT3BlbkRCUmVxdWVzdEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1wbC5oCmluZGV4IGRhYTlmNmYuLmYyNDJhNzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJP
cGVuREJSZXF1ZXN0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1wbC5oCkBAIC01Nyw2ICs1Nyw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGZpcmVTdWNjZXNzQWZ0ZXJWZXJzaW9uQ2hhbmdlQ29tbWl0KCk7CiAgICAgdm9p
ZCBmaXJlRXJyb3JBZnRlclZlcnNpb25DaGFuZ2VDb21wbGV0aW9uKCk7CiAKKyAgICB2aXJ0dWFs
IGJvb2wgZGlzcGF0Y2hFdmVudChFdmVudCYpIG92ZXJyaWRlIGZpbmFsOworCiBwcml2YXRlOgog
ICAgIElEQk9wZW5EQlJlcXVlc3QoSURCQ29ubmVjdGlvblRvU2VydmVyJiwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYsIHVpbnQ2NF90IHZlcnNp
b24sIEluZGV4ZWREQjo6UmVxdWVzdFR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCUmVxdWVzdEltcGwuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJSZXF1ZXN0SW1wbC5oCmluZGV4IDdkZGMz
YTAuLjE2YzUxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJSZXF1ZXN0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJSZXF1ZXN0SW1wbC5oCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoK
ICAgICB1c2luZyBSZWZDb3VudGVkPElEQlJlcXVlc3Q+OjpkZXJlZjsKIAogICAgIHZvaWQgZW5x
dWV1ZUV2ZW50KFJlZjxFdmVudD4mJik7Ci0gICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQo
RXZlbnQmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hFdmVudChF
dmVudCYpIG92ZXJyaWRlOwogCiAgICAgSURCQ29ubmVjdGlvblRvU2VydmVyJiBjb25uZWN0aW9u
KCkgeyByZXR1cm4gbV9jb25uZWN0aW9uOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggMDczNDM3Ni4uN2Zh
NTdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5jcHAKQEAgLTMxNyw2ICszMTcsMTcgQEAgdm9pZCBJREJTZXJ2ZXI6OmNv
bW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGkKICAgICB0cmFuc2FjdGlvbi0+Y29tbWl0KCk7CiB9CiAKK3ZvaWQgSURCU2VydmVyOjpk
aWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBMT0coSW5kZXhlZERC
LCAiSURCU2VydmVyOjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiIp
OworCisgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlv
bklkZW50aWZpZXIpOworICAgIGlmICghdHJhbnNhY3Rpb24pCisgICAgICAgIHJldHVybjsKKwor
ICAgIHRyYW5zYWN0aW9uLT5kaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2UoKTsKK30KKwog
dm9pZCBJREJTZXJ2ZXI6OmRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJTZXJ2ZXI6
OmRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4IGIyMjQzYjcuLmJlMzNhYjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VydmVyLmgKQEAgLTYwLDYgKzYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGVsZXRlRGF0YWJh
c2UoY29uc3QgSURCUmVxdWVzdERhdGEmKTsKICAgICB2b2lkIGFib3J0VHJhbnNhY3Rpb24oY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJik7CiAgICAgdm9pZCBjb21taXRUcmFuc2FjdGlvbihj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKTsKKyAgICB2b2lkIGRpZEZpbmlzaEhhbmRsaW5n
VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYpOwog
ICAgIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJ
REJPYmplY3RTdG9yZUluZm8mKTsKICAgICB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElE
QlJlcXVlc3REYXRhJiwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpOwogICAgIHZvaWQg
Y2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0
b3JlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCA3MWY2NWY4Li42
ZjRkY2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTIwNiwxMyArMjA2LDEwIEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmhhbmRsZURhdGFiYXNlT3BlcmF0aW9ucygpCiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVuaXF1
ZUlEQkRhdGFiYXNlOjpoYW5kbGVEYXRhYmFzZU9wZXJhdGlvbnMgLSBUaGVyZSBhcmUgJXp1IHBl
bmRpbmciLCBtX3BlbmRpbmdEYXRhYmFzZU9wZXJhdGlvbnMuc2l6ZSgpKTsKIAotICAgIGlmICht
X3ZlcnNpb25DaGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb24gfHwgbV9jdXJyZW50T3BlcmF0aW9uKSB7
Ci0gICAgICAgIC8vIFdlIGNhbid0IHN0YXJ0IHRoZSBuZXh0IGRhdGFiYXNlIG9wZXJhdGlvbiBx
dWl0ZSB5ZXQsIGJ1dCB3ZSBtaWdodCBuZWVkIHRvIG5vdGlmeSBhbGwgb3BlbiBjb25uZWN0aW9u
cwotICAgICAgICAvLyBhYm91dCBhIHBlbmRpbmcgZGVsZXRlLgotICAgICAgICBpZiAoIW1fcGVu
ZGluZ0RhdGFiYXNlT3BlcmF0aW9ucy5pc0VtcHR5KCkgJiYgbV9wZW5kaW5nRGF0YWJhc2VPcGVy
YXRpb25zLmZpcnN0KCktPmlzRGVsZXRlUmVxdWVzdCgpICYmICFtX2hhc05vdGlmaWVkQ29ubmVj
dGlvbnNPZkRlbGV0ZSkgewotICAgICAgICAgICAgbV9oYXNOb3RpZmllZENvbm5lY3Rpb25zT2ZE
ZWxldGUgPSB0cnVlOwotICAgICAgICAgICAgbm90aWZ5Q29ubmVjdGlvbnNPZlZlcnNpb25DaGFu
Z2UoMCk7Ci0gICAgICAgIH0KKyAgICBpZiAobV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0
aW9uIHx8IG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uIHx8IG1fY3VycmVudE9wZXJhdGlvbikg
eworICAgICAgICAvLyBXZSBjYW4ndCBzdGFydCBhbnkgbmV3IG9wZW4tZGF0YWJhc2Ugb3BlcmF0
aW9ucyByaWdodCBub3csIGJ1dCB3ZSBtaWdodCBiZSBhYmxlIHRvIHN0YXJ0IGhhbmRsaW5nIGEg
ZGVsZXRlIG9wZXJhdGlvbi4KKyAgICAgICAgaWYgKCFtX2N1cnJlbnRPcGVyYXRpb24gJiYgIW1f
cGVuZGluZ0RhdGFiYXNlT3BlcmF0aW9ucy5pc0VtcHR5KCkgJiYgbV9wZW5kaW5nRGF0YWJhc2VP
cGVyYXRpb25zLmZpcnN0KCktPmlzRGVsZXRlUmVxdWVzdCgpKQorICAgICAgICAgICAgbV9jdXJy
ZW50T3BlcmF0aW9uID0gbV9wZW5kaW5nRGF0YWJhc2VPcGVyYXRpb25zLnRha2VGaXJzdCgpOwog
CiAgICAgICAgIC8vIFNvbWUgb3BlcmF0aW9ucyAoc3VjaCBhcyB0aGUgZmlyc3Qgb3BlbiBvcGVy
YXRpb24gYWZ0ZXIgYSBkZWxldGUpIHJlcXVpcmUgbXVsdGlwbGUgcGFzc2VzIHRvIGNvbXBsZXRl
bHkgaGFuZGxlCiAgICAgICAgIGlmIChtX2N1cnJlbnRPcGVyYXRpb24pCkBAIC04NDksOSArODQ2
LDYgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24oVW5pcXVlSURC
RGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKICAgICAgICAgQVNTRVJUKCZtX3ZlcnNpb25D
aGFuZ2VUcmFuc2FjdGlvbi0+ZGF0YWJhc2VDb25uZWN0aW9uKCkgPT0gbV92ZXJzaW9uQ2hhbmdl
RGF0YWJhc2VDb25uZWN0aW9uKTsKICAgICAgICAgQVNTRVJUKG1fZGF0YWJhc2VJbmZvLT52ZXJz
aW9uKCkgPT0gdHJhbnNhY3Rpb24uaW5mbygpLm5ld1ZlcnNpb24oKSk7CiAKLSAgICAgICAgbV92
ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPSBudWxscHRyOwotICAgICAgICBtX3ZlcnNpb25DaGFu
Z2VEYXRhYmFzZUNvbm5lY3Rpb24gPSBudWxscHRyOwotCiAgICAgICAgIGludm9rZU9wZXJhdGlv
bkFuZFRyYW5zYWN0aW9uVGltZXIoKTsKICAgICB9CiAKQEAgLTg4OSw2ICs4ODMsMjAgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRy
YW5zYWN0aW9uJiB0cmFuc2FjdGkKICAgICBtX3NlcnZlci5wb3N0RGF0YWJhc2VUYXNrKGNyZWF0
ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQWJvcnRU
cmFuc2FjdGlvbiwgY2FsbGJhY2tJRCwgdHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkp
OwogfQogCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25D
aGFuZ2UoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCit7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVuaXF1
ZUlEQkRhdGFiYXNlOjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2UiKTsKKworICAgIEFT
U0VSVChtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik7CisgICAgQVNTRVJUKG1fdmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uID09ICZ0cmFuc2FjdGlvbik7CisKKyAgICBtX3ZlcnNpb25DaGFuZ2VU
cmFuc2FjdGlvbiA9IG51bGxwdHI7CisgICAgbV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0
aW9uID0gbnVsbHB0cjsKKworICAgIGludm9rZU9wZXJhdGlvbkFuZFRyYW5zYWN0aW9uVGltZXIo
KTsKK30KKwogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUFib3J0VHJhbnNhY3Rpb24o
dWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
QEAgLTkwNyw5ICs5MTUsNiBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQWJv
cnRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsCiAgICAgICAgIEFTU0VS
VCgmbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24tPmRhdGFiYXNlQ29ubmVjdGlvbigpID09IG1f
dmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbik7CiAgICAgICAgIEFTU0VSVChtX3ZlcnNp
b25DaGFuZ2VUcmFuc2FjdGlvbi0+b3JpZ2luYWxEYXRhYmFzZUluZm8oKSk7CiAgICAgICAgIG1f
ZGF0YWJhc2VJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxJREJEYXRhYmFzZUluZm8+KCptX3ZlcnNp
b25DaGFuZ2VUcmFuc2FjdGlvbi0+b3JpZ2luYWxEYXRhYmFzZUluZm8oKSk7Ci0KLSAgICAgICAg
bV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPSBudWxscHRyOwotICAgICAgICBtX3ZlcnNpb25D
aGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb24gPSBudWxscHRyOwogICAgIH0KIAogICAgIGluUHJvZ3Jl
c3NUcmFuc2FjdGlvbkNvbXBsZXRlZCh0cmFuc2FjdGlvbklkZW50aWZpZXIpOwpAQCAtMTA5NCw5
ICsxMDk5LDYgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6aW5Qcm9ncmVzc1RyYW5zYWN0aW9u
Q29tcGxldGVkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmkKICAgICBhdXRvIHRyYW5zYWN0aW9u
ID0gbV9pblByb2dyZXNzVHJhbnNhY3Rpb25zLnRha2UodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsK
ICAgICBBU1NFUlQodHJhbnNhY3Rpb24pOwogCi0gICAgaWYgKG1fdmVyc2lvbkNoYW5nZVRyYW5z
YWN0aW9uID09IHRyYW5zYWN0aW9uKQotICAgICAgICBtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlv
biA9IG51bGxwdHI7Ci0KICAgICBmb3IgKGF1dG8gb2JqZWN0U3RvcmUgOiB0cmFuc2FjdGlvbi0+
b2JqZWN0U3RvcmVJZGVudGlmaWVycygpKQogICAgICAgICBtX29iamVjdFN0b3JlVHJhbnNhY3Rp
b25Db3VudHMucmVtb3ZlKG9iamVjdFN0b3JlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAppbmRl
eCAyZDhlZGZlLi4xMjY4MWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAtOTIsNiArOTIs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRh
JiwgY29uc3QgSURCS2V5RGF0YSYsIHVuc2lnbmVkIGxvbmcgY291bnQsIEdldFJlc3VsdENhbGxi
YWNrKTsKICAgICB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mLCBFcnJvckNhbGxiYWNrKTsKICAgICB2b2lkIGFib3J0VHJhbnNhY3Rpb24oVW5pcXVl
SURCRGF0YWJhc2VUcmFuc2FjdGlvbiYsIEVycm9yQ2FsbGJhY2spOworICAgIHZvaWQgZGlkRmlu
aXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mKTsK
ICAgICB2b2lkIHRyYW5zYWN0aW9uRGVzdHJveWVkKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rp
b24mKTsKICAgICB2b2lkIGNvbm5lY3Rpb25DbG9zZWRGcm9tQ2xpZW50KFVuaXF1ZUlEQkRhdGFi
YXNlQ29ubmVjdGlvbiYpOwogCkBAIC0xODMsNyArMTg0LDcgQEAgcHJpdmF0ZToKICAgICBIYXNo
U2V0PFJlZlB0cjxVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24+PiBtX2Nsb3NlUGVuZGluZ0Rh
dGFiYXNlQ29ubmVjdGlvbnM7CiAKICAgICBSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0
aW9uPiBtX3ZlcnNpb25DaGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb247Ci0gICAgVW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbiogbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24geyBudWxscHRyIH07
CisgICAgUmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24+IG1fdmVyc2lvbkNoYW5n
ZVRyYW5zYWN0aW9uOwogCiAgICAgYm9vbCBtX2lzT3BlbmluZ0JhY2tpbmdTdG9yZSB7IGZhbHNl
IH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPElEQkJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAKaW5kZXggYjBi
NTFlMC4uN2U5OTFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0
aW9uLmNwcApAQCAtMzA5LDYgKzMwOSwxNCBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb246OmRpZEFjdGl2YXRlSW5CYWNraW5nU3RvcmUoY29uc3QgSURCRXJyb3ImIGVycgogICAg
IG1fZGF0YWJhc2VDb25uZWN0aW9uLT5jb25uZWN0aW9uVG9DbGllbnQoKS5kaWRTdGFydFRyYW5z
YWN0aW9uKG1fdHJhbnNhY3Rpb25JbmZvLmlkZW50aWZpZXIoKSwgZXJyb3IpOwogfQogCit2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNo
YW5nZSgpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rp
b246OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZSIpOworICAgIEFTU0VSVChpc1ZlcnNp
b25DaGFuZ2UoKSk7CisKKyAgICBtX2RhdGFiYXNlQ29ubmVjdGlvbi0+ZGF0YWJhc2UoKS5kaWRG
aW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2UoKnRoaXMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBJ
REJTZXJ2ZXIKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uLmgKaW5kZXggODAzOTI5YS4uNTAwNWYwNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNl
VHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5oCkBAIC03OSw2ICs3OSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGl0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJ
REJLZXlEYXRhJiwgdW5zaWduZWQgbG9uZyBjb3VudCk7CiAKICAgICB2b2lkIGRpZEFjdGl2YXRl
SW5CYWNraW5nU3RvcmUoY29uc3QgSURCRXJyb3ImKTsKKyAgICB2b2lkIGRpZEZpbmlzaEhhbmRs
aW5nVmVyc2lvbkNoYW5nZSgpOwogCiAgICAgY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgb2JqZWN0
U3RvcmVJZGVudGlmaWVycygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uY3BwCmluZGV4IDFj
ODgzZWMuLjdiODllZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uY3BwCkBAIC0yOCw2ICsy
OCw4IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgIklEQlRy
YW5zYWN0aW9uSW1wbC5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIElEQlRyYW5zYWN0aW9u
SW5mbzo6SURCVHJhbnNhY3Rpb25JbmZvKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgaWRl
bnRpZmllcikKQEAgLTgwLDYgKzgyLDI4IEBAIElEQlRyYW5zYWN0aW9uSW5mbyBJREJUcmFuc2Fj
dGlvbkluZm86Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgcmV0dXJuIFdURjo6bW92ZShyZXN1
bHQpOwogfQogCisjaWZuZGVmIE5ERUJVRworU3RyaW5nIElEQlRyYW5zYWN0aW9uSW5mbzo6bG9n
Z2luZ1N0cmluZygpIGNvbnN0Cit7CisgICAgU3RyaW5nIG1vZGVTdHJpbmc7CisgICAgc3dpdGNo
IChtX21vZGUpIHsKKyAgICBjYXNlIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpSZWFkT25s
eToKKyAgICAgICAgbW9kZVN0cmluZyA9IElEQlRyYW5zYWN0aW9uOjptb2RlUmVhZE9ubHkoKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZTo6UmVh
ZFdyaXRlOgorICAgICAgICBtb2RlU3RyaW5nID0gSURCVHJhbnNhY3Rpb246Om1vZGVSZWFkV3Jp
dGUoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9k
ZTo6VmVyc2lvbkNoYW5nZToKKyAgICAgICAgbW9kZVN0cmluZyA9IElEQlRyYW5zYWN0aW9uOjpt
b2RlVmVyc2lvbkNoYW5nZSgpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIG1ha2VTdHJp
bmcoIlRyYW5zYWN0aW9uOiAiLCBtX2lkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLCAiIG1vZGUg
IiwgbW9kZVN0cmluZywgIiBuZXdWZXJzaW9uICIsIFN0cmluZzo6bnVtYmVyKG1fbmV3VmVyc2lv
bikpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5oCmluZGV4IGIxNzI4
MGUuLmJiZWM3NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmgKQEAgLTYxLDYgKzYxLDEwIEBA
IHB1YmxpYzoKIAogICAgIElEQkRhdGFiYXNlSW5mbyogb3JpZ2luYWxEYXRhYmFzZUluZm8oKSBj
b25zdCB7IHJldHVybiBtX29yaWdpbmFsRGF0YWJhc2VJbmZvLmdldCgpOyB9CiAKKyNpZm5kZWYg
TkRFQlVHCisgICAgU3RyaW5nIGxvZ2dpbmdTdHJpbmcoKSBjb25zdDsKKyNlbmRpZgorCiBwcml2
YXRlOgogICAgIElEQlRyYW5zYWN0aW9uSW5mbyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVk
L0luUHJvY2Vzc0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcAppbmRleCBmOGUwZjhmLi4xZWY0MDU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9j
ZXNzSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcApAQCAtMjI0LDYgKzIyNCwxNCBAQCB2b2lkIElu
UHJvY2Vzc0lEQlNlcnZlcjo6Y29tbWl0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVy
JiByZXNvdXJjZUlkZW50aQogICAgIH0pOwogfQogCit2b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6
ZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCit7CisgICAgUmVmUHRyPEluUHJvY2Vzc0lE
QlNlcnZlcj4gc2VsZih0aGlzKTsKKyAgICBSdW5Mb29wOjpjdXJyZW50KCkuZGlzcGF0Y2goW3Ro
aXMsIHNlbGYsIHRyYW5zYWN0aW9uSWRlbnRpZmllcl0geworICAgICAgICBtX3NlcnZlci0+ZGlk
RmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlm
aWVyKTsKKyAgICB9KTsKK30KKwogdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmNyZWF0ZU9iamVj
dFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXN1bHREYXRhLCBjb25zdCBJREJPYmplY3RT
dG9yZUluZm8mIGluZm8pCiB7CiAgICAgUmVmUHRyPEluUHJvY2Vzc0lEQlNlcnZlcj4gc2VsZih0
aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JblByb2Nlc3NJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaAppbmRleCAzOGVhMzkzLi40MWQ0M2RjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNz
SURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVk
L0luUHJvY2Vzc0lEQlNlcnZlci5oCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgb3BlbkRhdGFiYXNlKElEQlJlcXVlc3REYXRhJikgb3ZlcnJpZGUgZmluYWw7CiAg
ICAgdmlydHVhbCB2b2lkIGFib3J0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJikg
b3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKElEQlJl
c291cmNlSWRlbnRpZmllciYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBkaWRG
aW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZp
ZXImKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUo
Y29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mKSBvdmVycmlk
ZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVx
dWVzdERhdGEmLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkgb3ZlcnJpZGUgZmluYWw7
CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEm
LCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpIG92ZXJyaWRlIGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267733</attachid>
            <date>2015-12-20 21:21:05 -0800</date>
            <delta_ts>2015-12-23 23:40:53 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>21445</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3ODY3MjA4Li40NGY0ODE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMTIt
MjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IERvbid0IG9wZW4gYW55IG5ldyBjb25uZWN0aW9ucyB1bnRpbCBhZnRlciB2ZXJzaW9uIGNo
YW5nZSB0cmFuc2FjdGlvbnMgYXJlIGNvbXBsZXRlbHkgaGFuZGxlZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjQ0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0
RXhwZWN0YXRpb25zOiBFbmFibGUgNCBub3ctcGFzc2luZyB0ZXN0cy4KKwogMjAxNS0xMi0yMCAg
Q29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjE5NDAzMyBhbmQgcjE5NDI2Ny4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5NmUwZTkwLi4wNDFhNDgxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC05
MywxMCArOTMsNiBAQCBzdG9yYWdlL2luZGV4ZWRkYi91bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2Vz
Lmh0bWwgWyBTa2lwIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWRlbGV0ZXBlbmRpbmct
ZmxhZy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9kZWxldGUtY2xvc2VkLWRh
dGFiYXNlLW9iamVjdC5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLWdhdGVkLW9uLWRlbGV0ZS5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLW9wZW4taW4tdXBncmFkZW5lZWRlZC5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlbmRpbmctdmVyc2lvbi1jaGFuZ2VzLWRlc2NlbmRpbmcu
aHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZW5kaW5nLXZl
cnNpb24tY2hhbmdlcy1zYW1lLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tdHdvLW9wZW5zLW5vLXZlcnNpb25zLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2Uv
aW5kZXhlZGRiL29kZC1zdHJpbmdzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRi
L29wZW4tZGItcHJpdmF0ZS1icm93c2luZy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4
ZWRkYi9wcm9wZXJ0aWVzLWRpc2FibGVkLWF0LXJ1bnRpbWUuaHRtbCBbIEZhaWx1cmUgXQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGZmMTQwMTkuLjlkNjllMGEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBA
CisyMDE1LTEyLTIwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAg
ICBNb2Rlcm4gSURCOiBEb24ndCBvcGVuIGFueSBuZXcgY29ubmVjdGlvbnMgdW50aWwgYWZ0ZXIg
dmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb25zIGFyZSBjb21wbGV0ZWx5IGhhbmRsZWQuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NDEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMg
KEF0IGxlYXN0IDQgZmFpbGluZyB0ZXN0cyBub3cgcGFzcykuCisgICAgICAgIAorICAgICAgICBX
aGVuIGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gaXMgaW4gcHJvZ3Jlc3MgZm9yIGEgZGF0
YWJhc2UsIHRoZSBzZXJ2ZXIgc2hvdWxkIG5vdCBvcGVuIGFueSBuZXcgY29ubmVjdGlvbnMKKyAg
ICAgICAgdG8gdGhhdCBkYXRhYmFzZSB1bnRpbCB0aGUgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rp
b24gaGFzIGJlZW4gMTAwJSBjb21wbGV0ZWQuCisgICAgICAgIAorICAgICAgICBUaGlzIG1lYW5z
ICphbGwqIGV2ZW50cyByZWxhdGVkIHRvIGZpbmlzaGluZyB0aGUgdHJhbnNhY3Rpb24gbXVzdCBm
aXJlLgorICAgICAgICAKKyAgICAgICAgVG8gc3VwcG9ydCB0aGlzLCBhIG5ldyBtZXNzYWdlIGZy
b20gY2xpZW50IC0+IHNlcnZlciBpcyBhZGRlZC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lv
bkNoYW5nZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCQ29ubmVjdGlvblRvU2VydmVyLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmg6CisgICAgICAgIAorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQk9wZW5EQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1w
bC5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJSZXF1ZXN0SW1wbC5o
OgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpkaWRGaW5pc2hI
YW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6aGFuZGxlRGF0YWJhc2VPcGVyYXRpb25zKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZEZpbmlz
aEhhbmRsaW5nVmVyc2lvbkNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVu
aXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtQWJvcnRUcmFu
c2FjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlOjppblByb2dyZXNzVHJhbnNhY3Rpb25Db21wbGV0ZWQpOiBEZWxldGVkLgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorICAg
ICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2VUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb246OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZSk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24uaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
QlRyYW5zYWN0aW9uSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbklu
Zm86OmxvZ2dpbmdTdHJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9J
REJUcmFuc2FjdGlvbkluZm8uaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJblBy
b2Nlc3NJREJTZXJ2ZXI6OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVy
Lmg6CisKIDIwMTUtMTItMjAgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdW51c2VkIHNldFRvb2xiYXJIZWlnaHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25U
b1NlcnZlci5jcHAKaW5kZXggZGMxMzNiZC4uZmYxYmE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Ub1NlcnZlci5jcHAKQEAgLTI5MCw2ICsyOTAsMTMgQEAgdm9pZCBJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OmRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHIKICAgICB0cmFuc2FjdGlvbi0+ZGlkQ29tbWl0KGVycm9yKTsKIH0KIAordm9pZCBJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
KElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiSURC
Q29ubmVjdGlvblRvU2VydmVyOjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2Fj
dGlvbiIpOworICAgIGF1dG8gaWRlbnRpZmllciA9IHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlm
aWVyKCk7CisgICAgbV9kZWxlZ2F0ZS0+ZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlVHJh
bnNhY3Rpb24oaWRlbnRpZmllcik7Cit9CisKIHZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjph
Ym9ydFRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsKICAgICBMT0co
SW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjphYm9ydFRyYW5zYWN0aW9uIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29u
bmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggZGNjMTQ4ZS4uYjE0ZTUwYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtOTgsNiArOTgsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjb21taXRUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYpOwogICAgIHZvaWQgZGlkQ29t
bWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CiAKKyAgICB2b2lkIGRpZEZpbmlzaEhhbmRsaW5n
VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJik7CisKICAgICB2b2lkIGFi
b3J0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mKTsKICAgICB2b2lkIGRpZEFib3J0VHJhbnNh
Y3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IGNvbnN0IElEQkVycm9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRl
bGVnYXRlLmgKaW5kZXggMGI5MDkwZS4uNzViNTU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBvcGVuRGF0YWJhc2UoSURCUmVxdWVzdERhdGEmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGFib3J0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBjb21taXRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5z
YWN0aW9uKElEQlJlc291cmNlSWRlbnRpZmllciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJPYmplY3RTdG9y
ZUluZm8mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElE
QlJlcXVlc3REYXRhJiwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgY2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2
NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQk9wZW5EQlJlcXVlc3RJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1w
bC5jcHAKaW5kZXggYmQxNTI3Yy4uYWYwYTNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQk9wZW5EQlJlcXVlc3RJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCT3BlbkRCUmVxdWVzdElt
cGwuY3BwCkBAIC0xMDEsNiArMTAxLDE2IEBAIHZvaWQgSURCT3BlbkRCUmVxdWVzdDo6ZmlyZUVy
cm9yQWZ0ZXJWZXJzaW9uQ2hhbmdlQ29tcGxldGlvbigpCiAgICAgZW5xdWV1ZUV2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIHRydWUsIHRydWUpKTsKIH0KIAorYm9v
bCBJREJPcGVuREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCkKK3sKKyAgICBi
b29sIHJlc3VsdCA9IElEQlJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQoZXZlbnQpOworCisgICAgaWYg
KG1fdHJhbnNhY3Rpb24gJiYgbV90cmFuc2FjdGlvbi0+aXNWZXJzaW9uQ2hhbmdlKCkgJiYgKGV2
ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZXJyb3JFdmVudCB8fCBldmVudC50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCkpCisgICAgICAgIG1fdHJhbnNhY3Rpb24tPmRhdGFi
YXNlKCkuc2VydmVyQ29ubmVjdGlvbigpLmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRy
YW5zYWN0aW9uKCptX3RyYW5zYWN0aW9uKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZv
aWQgSURCT3BlbkRCUmVxdWVzdDo6b25TdWNjZXNzKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3Vs
dERhdGEpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQk9wZW5EQlJlcXVlc3Q6Om9uU3VjY2Vz
cygpIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCT3BlbkRCUmVxdWVzdEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1wbC5oCmluZGV4IGRhYTlmNmYuLmYyNDJhNzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJP
cGVuREJSZXF1ZXN0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1wbC5oCkBAIC01Nyw2ICs1Nyw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGZpcmVTdWNjZXNzQWZ0ZXJWZXJzaW9uQ2hhbmdlQ29tbWl0KCk7CiAgICAgdm9p
ZCBmaXJlRXJyb3JBZnRlclZlcnNpb25DaGFuZ2VDb21wbGV0aW9uKCk7CiAKKyAgICB2aXJ0dWFs
IGJvb2wgZGlzcGF0Y2hFdmVudChFdmVudCYpIG92ZXJyaWRlIGZpbmFsOworCiBwcml2YXRlOgog
ICAgIElEQk9wZW5EQlJlcXVlc3QoSURCQ29ubmVjdGlvblRvU2VydmVyJiwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYsIHVpbnQ2NF90IHZlcnNp
b24sIEluZGV4ZWREQjo6UmVxdWVzdFR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCUmVxdWVzdEltcGwuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJSZXF1ZXN0SW1wbC5oCmluZGV4IDdkZGMz
YTAuLjE2YzUxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJSZXF1ZXN0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJSZXF1ZXN0SW1wbC5oCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoK
ICAgICB1c2luZyBSZWZDb3VudGVkPElEQlJlcXVlc3Q+OjpkZXJlZjsKIAogICAgIHZvaWQgZW5x
dWV1ZUV2ZW50KFJlZjxFdmVudD4mJik7Ci0gICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQo
RXZlbnQmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hFdmVudChF
dmVudCYpIG92ZXJyaWRlOwogCiAgICAgSURCQ29ubmVjdGlvblRvU2VydmVyJiBjb25uZWN0aW9u
KCkgeyByZXR1cm4gbV9jb25uZWN0aW9uOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggMDczNDM3Ni4uN2Zh
NTdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5jcHAKQEAgLTMxNyw2ICszMTcsMTcgQEAgdm9pZCBJREJTZXJ2ZXI6OmNv
bW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGkKICAgICB0cmFuc2FjdGlvbi0+Y29tbWl0KCk7CiB9CiAKK3ZvaWQgSURCU2VydmVyOjpk
aWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBMT0coSW5kZXhlZERC
LCAiSURCU2VydmVyOjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiIp
OworCisgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlv
bklkZW50aWZpZXIpOworICAgIGlmICghdHJhbnNhY3Rpb24pCisgICAgICAgIHJldHVybjsKKwor
ICAgIHRyYW5zYWN0aW9uLT5kaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2UoKTsKK30KKwog
dm9pZCBJREJTZXJ2ZXI6OmRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJTZXJ2ZXI6
OmRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4IGIyMjQzYjcuLmJlMzNhYjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VydmVyLmgKQEAgLTYwLDYgKzYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGVsZXRlRGF0YWJh
c2UoY29uc3QgSURCUmVxdWVzdERhdGEmKTsKICAgICB2b2lkIGFib3J0VHJhbnNhY3Rpb24oY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJik7CiAgICAgdm9pZCBjb21taXRUcmFuc2FjdGlvbihj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKTsKKyAgICB2b2lkIGRpZEZpbmlzaEhhbmRsaW5n
VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYpOwog
ICAgIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJ
REJPYmplY3RTdG9yZUluZm8mKTsKICAgICB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElE
QlJlcXVlc3REYXRhJiwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpOwogICAgIHZvaWQg
Y2xlYXJPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0
b3JlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCA3MWY2NWY4Li5h
MDBhMGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTIwNiwxMyArMjA2LDEwIEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmhhbmRsZURhdGFiYXNlT3BlcmF0aW9ucygpCiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVuaXF1
ZUlEQkRhdGFiYXNlOjpoYW5kbGVEYXRhYmFzZU9wZXJhdGlvbnMgLSBUaGVyZSBhcmUgJXp1IHBl
bmRpbmciLCBtX3BlbmRpbmdEYXRhYmFzZU9wZXJhdGlvbnMuc2l6ZSgpKTsKIAotICAgIGlmICht
X3ZlcnNpb25DaGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb24gfHwgbV9jdXJyZW50T3BlcmF0aW9uKSB7
Ci0gICAgICAgIC8vIFdlIGNhbid0IHN0YXJ0IHRoZSBuZXh0IGRhdGFiYXNlIG9wZXJhdGlvbiBx
dWl0ZSB5ZXQsIGJ1dCB3ZSBtaWdodCBuZWVkIHRvIG5vdGlmeSBhbGwgb3BlbiBjb25uZWN0aW9u
cwotICAgICAgICAvLyBhYm91dCBhIHBlbmRpbmcgZGVsZXRlLgotICAgICAgICBpZiAoIW1fcGVu
ZGluZ0RhdGFiYXNlT3BlcmF0aW9ucy5pc0VtcHR5KCkgJiYgbV9wZW5kaW5nRGF0YWJhc2VPcGVy
YXRpb25zLmZpcnN0KCktPmlzRGVsZXRlUmVxdWVzdCgpICYmICFtX2hhc05vdGlmaWVkQ29ubmVj
dGlvbnNPZkRlbGV0ZSkgewotICAgICAgICAgICAgbV9oYXNOb3RpZmllZENvbm5lY3Rpb25zT2ZE
ZWxldGUgPSB0cnVlOwotICAgICAgICAgICAgbm90aWZ5Q29ubmVjdGlvbnNPZlZlcnNpb25DaGFu
Z2UoMCk7Ci0gICAgICAgIH0KKyAgICBpZiAobV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0
aW9uIHx8IG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uIHx8IG1fY3VycmVudE9wZXJhdGlvbikg
eworICAgICAgICAvLyBXZSBjYW4ndCBzdGFydCBhbnkgbmV3IG9wZW4tZGF0YWJhc2Ugb3BlcmF0
aW9ucyByaWdodCBub3csIGJ1dCB3ZSBtaWdodCBiZSBhYmxlIHRvIHN0YXJ0IGhhbmRsaW5nIGEg
ZGVsZXRlIG9wZXJhdGlvbi4KKyAgICAgICAgaWYgKCFtX2N1cnJlbnRPcGVyYXRpb24gJiYgIW1f
cGVuZGluZ0RhdGFiYXNlT3BlcmF0aW9ucy5pc0VtcHR5KCkgJiYgbV9wZW5kaW5nRGF0YWJhc2VP
cGVyYXRpb25zLmZpcnN0KCktPmlzRGVsZXRlUmVxdWVzdCgpKQorICAgICAgICAgICAgbV9jdXJy
ZW50T3BlcmF0aW9uID0gbV9wZW5kaW5nRGF0YWJhc2VPcGVyYXRpb25zLnRha2VGaXJzdCgpOwog
CiAgICAgICAgIC8vIFNvbWUgb3BlcmF0aW9ucyAoc3VjaCBhcyB0aGUgZmlyc3Qgb3BlbiBvcGVy
YXRpb24gYWZ0ZXIgYSBkZWxldGUpIHJlcXVpcmUgbXVsdGlwbGUgcGFzc2VzIHRvIGNvbXBsZXRl
bHkgaGFuZGxlCiAgICAgICAgIGlmIChtX2N1cnJlbnRPcGVyYXRpb24pCkBAIC04NDksOSArODQ2
LDYgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24oVW5pcXVlSURC
RGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKICAgICAgICAgQVNTRVJUKCZtX3ZlcnNpb25D
aGFuZ2VUcmFuc2FjdGlvbi0+ZGF0YWJhc2VDb25uZWN0aW9uKCkgPT0gbV92ZXJzaW9uQ2hhbmdl
RGF0YWJhc2VDb25uZWN0aW9uKTsKICAgICAgICAgQVNTRVJUKG1fZGF0YWJhc2VJbmZvLT52ZXJz
aW9uKCkgPT0gdHJhbnNhY3Rpb24uaW5mbygpLm5ld1ZlcnNpb24oKSk7CiAKLSAgICAgICAgbV92
ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPSBudWxscHRyOwotICAgICAgICBtX3ZlcnNpb25DaGFu
Z2VEYXRhYmFzZUNvbm5lY3Rpb24gPSBudWxscHRyOwotCiAgICAgICAgIGludm9rZU9wZXJhdGlv
bkFuZFRyYW5zYWN0aW9uVGltZXIoKTsKICAgICB9CiAKQEAgLTg4OSw2ICs4ODMsMjAgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRy
YW5zYWN0aW9uJiB0cmFuc2FjdGkKICAgICBtX3NlcnZlci5wb3N0RGF0YWJhc2VUYXNrKGNyZWF0
ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQWJvcnRU
cmFuc2FjdGlvbiwgY2FsbGJhY2tJRCwgdHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSkp
OwogfQogCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25D
aGFuZ2UoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCit7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVuaXF1
ZUlEQkRhdGFiYXNlOjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2UiKTsKKworICAgIEFT
U0VSVChtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik7CisgICAgQVNTRVJUX1VOVVNFRCh0cmFu
c2FjdGlvbiwgbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPT0gJnRyYW5zYWN0aW9uKTsKKwor
ICAgIG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uID0gbnVsbHB0cjsKKyAgICBtX3ZlcnNpb25D
aGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb24gPSBudWxscHRyOworCisgICAgaW52b2tlT3BlcmF0aW9u
QW5kVHJhbnNhY3Rpb25UaW1lcigpOworfQorCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJm
b3JtQWJvcnRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKQogewogICAgIEFTU0VS
VCghaXNNYWluVGhyZWFkKCkpOwpAQCAtOTA3LDkgKzkxNSw2IEBAIHZvaWQgVW5pcXVlSURCRGF0
YWJhc2U6OmRpZFBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRp
ZmllciwKICAgICAgICAgQVNTRVJUKCZtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbi0+ZGF0YWJh
c2VDb25uZWN0aW9uKCkgPT0gbV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uKTsKICAg
ICAgICAgQVNTRVJUKG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uLT5vcmlnaW5hbERhdGFiYXNl
SW5mbygpKTsKICAgICAgICAgbV9kYXRhYmFzZUluZm8gPSBzdGQ6Om1ha2VfdW5pcXVlPElEQkRh
dGFiYXNlSW5mbz4oKm1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uLT5vcmlnaW5hbERhdGFiYXNl
SW5mbygpKTsKLQotICAgICAgICBtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiA9IG51bGxwdHI7
Ci0gICAgICAgIG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbiA9IG51bGxwdHI7CiAg
ICAgfQogCiAgICAgaW5Qcm9ncmVzc1RyYW5zYWN0aW9uQ29tcGxldGVkKHRyYW5zYWN0aW9uSWRl
bnRpZmllcik7CkBAIC0xMDk0LDkgKzEwOTksNiBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpp
blByb2dyZXNzVHJhbnNhY3Rpb25Db21wbGV0ZWQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaQog
ICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX2luUHJvZ3Jlc3NUcmFuc2FjdGlvbnMudGFrZSh0cmFu
c2FjdGlvbklkZW50aWZpZXIpOwogICAgIEFTU0VSVCh0cmFuc2FjdGlvbik7CiAKLSAgICBpZiAo
bV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPT0gdHJhbnNhY3Rpb24pCi0gICAgICAgIG1fdmVy
c2lvbkNoYW5nZVRyYW5zYWN0aW9uID0gbnVsbHB0cjsKLQogICAgIGZvciAoYXV0byBvYmplY3RT
dG9yZSA6IHRyYW5zYWN0aW9uLT5vYmplY3RTdG9yZUlkZW50aWZpZXJzKCkpCiAgICAgICAgIG1f
b2JqZWN0U3RvcmVUcmFuc2FjdGlvbkNvdW50cy5yZW1vdmUob2JqZWN0U3RvcmUpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURC
RGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9Vbmlx
dWVJREJEYXRhYmFzZS5oCmluZGV4IDJkOGVkZmUuLjEyNjgxZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZS5oCkBAIC05Miw2ICs5Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGl0ZXJhdGVDdXJzb3Io
Y29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlEYXRhJiwgdW5zaWduZWQgbG9uZyBj
b3VudCwgR2V0UmVzdWx0Q2FsbGJhY2spOwogICAgIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oVW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYsIEVycm9yQ2FsbGJhY2spOwogICAgIHZvaWQgYWJv
cnRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiwgRXJyb3JDYWxsYmFj
ayk7CisgICAgdm9pZCBkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2UoVW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbiYpOwogICAgIHZvaWQgdHJhbnNhY3Rpb25EZXN0cm95ZWQoVW5pcXVl
SURCRGF0YWJhc2VUcmFuc2FjdGlvbiYpOwogICAgIHZvaWQgY29ubmVjdGlvbkNsb3NlZEZyb21D
bGllbnQoVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJik7CiAKQEAgLTE4Myw3ICsxODQsNyBA
QCBwcml2YXRlOgogICAgIEhhc2hTZXQ8UmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlv
bj4+IG1fY2xvc2VQZW5kaW5nRGF0YWJhc2VDb25uZWN0aW9uczsKIAogICAgIFJlZlB0cjxVbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb24+IG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlv
bjsKLSAgICBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uKiBtX3ZlcnNpb25DaGFuZ2VUcmFu
c2FjdGlvbiB7IG51bGxwdHIgfTsKKyAgICBSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbj4gbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb247CiAKICAgICBib29sIG1faXNPcGVuaW5n
QmFja2luZ1N0b3JlIHsgZmFsc2UgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCQmFja2luZ1N0
b3JlPiBtX2JhY2tpbmdTdG9yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uLmNwcAppbmRleCBiMGI1MWUwLi43ZTk5MWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwCkBAIC0zMDksNiArMzA5LDE0IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6ZGlkQWN0aXZhdGVJbkJhY2tpbmdTdG9yZShjb25z
dCBJREJFcnJvciYgZXJyCiAgICAgbV9kYXRhYmFzZUNvbm5lY3Rpb24tPmNvbm5lY3Rpb25Ub0Ns
aWVudCgpLmRpZFN0YXJ0VHJhbnNhY3Rpb24obV90cmFuc2FjdGlvbkluZm8uaWRlbnRpZmllcigp
LCBlcnJvcik7CiB9CiAKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6ZGlkRmlu
aXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlKCkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVl
SURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6ZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlIik7
CisgICAgQVNTRVJUKGlzVmVyc2lvbkNoYW5nZSgpKTsKKworICAgIG1fZGF0YWJhc2VDb25uZWN0
aW9uLT5kYXRhYmFzZSgpLmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZSgqdGhpcyk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2VUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uaAppbmRleCA4MDM5MjlhLi41
MDA1ZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmgKQEAg
LTc5LDYgKzc5LDcgQEAgcHVibGljOgogICAgIHZvaWQgaXRlcmF0ZUN1cnNvcihjb25zdCBJREJS
ZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCB1bnNpZ25lZCBsb25nIGNvdW50KTsKIAog
ICAgIHZvaWQgZGlkQWN0aXZhdGVJbkJhY2tpbmdTdG9yZShjb25zdCBJREJFcnJvciYpOworICAg
IHZvaWQgZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlKCk7CiAKICAgICBjb25zdCBWZWN0
b3I8dWludDY0X3Q+JiBvYmplY3RTdG9yZUlkZW50aWZpZXJzKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8u
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0
aW9uSW5mby5jcHAKaW5kZXggMWM4ODNlYy4uN2I4OWVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9u
SW5mby5jcHAKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQogCisjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25JbXBsLmgiCisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogSURCVHJhbnNhY3Rpb25JbmZvOjpJREJUcmFuc2FjdGlvbkluZm8oY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiBpZGVudGlmaWVyKQpAQCAtODAsNiArODIsMjggQEAgSURCVHJhbnNh
Y3Rpb25JbmZvIElEQlRyYW5zYWN0aW9uSW5mbzo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKICAgICBy
ZXR1cm4gV1RGOjptb3ZlKHJlc3VsdCk7CiB9CiAKKyNpZm5kZWYgTkRFQlVHCitTdHJpbmcgSURC
VHJhbnNhY3Rpb25JbmZvOjpsb2dnaW5nU3RyaW5nKCkgY29uc3QKK3sKKyAgICBTdHJpbmcgbW9k
ZVN0cmluZzsKKyAgICBzd2l0Y2ggKG1fbW9kZSkgeworICAgIGNhc2UgSW5kZXhlZERCOjpUcmFu
c2FjdGlvbk1vZGU6OlJlYWRPbmx5OgorICAgICAgICBtb2RlU3RyaW5nID0gSURCVHJhbnNhY3Rp
b246Om1vZGVSZWFkT25seSgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluZGV4ZWREQjo6
VHJhbnNhY3Rpb25Nb2RlOjpSZWFkV3JpdGU6CisgICAgICAgIG1vZGVTdHJpbmcgPSBJREJUcmFu
c2FjdGlvbjo6bW9kZVJlYWRXcml0ZSgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluZGV4
ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlOgorICAgICAgICBtb2RlU3RyaW5n
ID0gSURCVHJhbnNhY3Rpb246Om1vZGVWZXJzaW9uQ2hhbmdlKCk7CisgICAgICAgIGJyZWFrOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICAK
KyAgICByZXR1cm4gbWFrZVN0cmluZygiVHJhbnNhY3Rpb246ICIsIG1faWRlbnRpZmllci5sb2dn
aW5nU3RyaW5nKCksICIgbW9kZSAiLCBtb2RlU3RyaW5nLCAiIG5ld1ZlcnNpb24gIiwgU3RyaW5n
OjpudW1iZXIobV9uZXdWZXJzaW9uKSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZv
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rp
b25JbmZvLmgKaW5kZXggYjE3MjgwZS4uYmJlYzc0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8u
aApAQCAtNjEsNiArNjEsMTAgQEAgcHVibGljOgogCiAgICAgSURCRGF0YWJhc2VJbmZvKiBvcmln
aW5hbERhdGFiYXNlSW5mbygpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luYWxEYXRhYmFzZUluZm8u
Z2V0KCk7IH0KIAorI2lmbmRlZiBOREVCVUcKKyAgICBTdHJpbmcgbG9nZ2luZ1N0cmluZygpIGNv
bnN0OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgSURCVHJhbnNhY3Rpb25JbmZvKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCmluZGV4
IGY4ZTBmOGYuLjFlZjQwNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCkBAIC0yMjQs
NiArMjI0LDE0IEBAIHZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpjb21taXRUcmFuc2FjdGlvbihJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHJlc291cmNlSWRlbnRpCiAgICAgfSk7CiB9CiAKK3ZvaWQg
SW5Qcm9jZXNzSURCU2VydmVyOjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2Fj
dGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKK3sKKyAg
ICBSZWZQdHI8SW5Qcm9jZXNzSURCU2VydmVyPiBzZWxmKHRoaXMpOworICAgIFJ1bkxvb3A6OmN1
cnJlbnQoKS5kaXNwYXRjaChbdGhpcywgc2VsZiwgdHJhbnNhY3Rpb25JZGVudGlmaWVyXSB7Cisg
ICAgICAgIG1fc2VydmVyLT5kaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlv
bih0cmFuc2FjdGlvbklkZW50aWZpZXIpOworICAgIH0pOworfQorCiB2b2lkIEluUHJvY2Vzc0lE
QlNlcnZlcjo6Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlc3VsdERh
dGEsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYgaW5mbykKIHsKICAgICBSZWZQdHI8SW5Qcm9j
ZXNzSURCU2VydmVyPiBzZWxmKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oCmluZGV4IDM4
ZWEzOTMuLjQxZDQzZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmgKQEAgLTU4LDYgKzU4LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvcGVuRGF0YWJhc2UoSURCUmVxdWVzdERhdGEm
KSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihJREJS
ZXNvdXJjZUlkZW50aWZpZXImKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgY29t
bWl0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJikgb3ZlcnJpZGUgZmluYWw7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
KElEQlJlc291cmNlSWRlbnRpZmllciYpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9p
ZCBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQk9iamVj
dFN0b3JlSW5mbyYpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmpl
Y3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVO
YW1lKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJPYmplY3RTdG9yZShj
b25zdCBJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikgb3Zl
cnJpZGUgZmluYWw7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>