<?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>156810</bug_id>
          
          <creation_ts>2016-04-20 14:47:26 -0700</creation_ts>
          <short_desc>Modern IDB (Workers): Introduce &quot;IDBConnectionProxy&quot; for future threading abstraction, and adopt it in IDBFactory</short_desc>
          <delta_ts>2016-04-20 16:46:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149117</blocked>
    
    <blocked>149953</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1185549</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 14:47:26 -0700</bug_when>
    <thetext>Modern IDB (Workers): Introduce &quot;IDBConnectionProxy&quot; for future threading abstraction

You can get to your IDBConnectionProxy from your ScriptExecutionContext, which will work on both main and worker threads.

IDBConnectionProxy will hold on to the IDBConnectionToServer, which will remain a main-thread-only construct.

Slowly, IDB* objects getting to their IDBConnectionProxy will replace them holding on to an IDBConnectionToServer directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185551</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 14:48:55 -0700</bug_when>
    <thetext>While I&apos;m touching IDBFactory, I&apos;m going to modernize it a bit by replacing ExceptionCode with ExceptionCodeWithMessage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185559</commentid>
    <comment_count>2</comment_count>
      <attachid>276856</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 15:06:37 -0700</bug_when>
    <thetext>Created attachment 276856
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185571</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 15:33:03 -0700</bug_when>
    <thetext>Seems to have recked havoc on mac-wk2 tests (of course everything works great locally *sigh*)

Will fix before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185606</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 16:40:40 -0700</bug_when>
    <thetext>NM! Things are fine. Yay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185609</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-04-20 16:46:23 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/199797</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276856</attachid>
            <date>2016-04-20 15:06:37 -0700</date>
            <delta_ts>2016-04-20 15:10:42 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>40415</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmOGU2NmU4Li4wNGExOGIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTYtMDQt
MjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIE1vZGVybiBJ
REIgKFdvcmtlcnMpOiBJbnRyb2R1Y2UgIklEQkNvbm5lY3Rpb25Qcm94eSIgZm9yIGZ1dHVyZSB0
aHJlYWRpbmcgYWJzdHJhY3Rpb24sIGFuZCBhZG9wdCBpdCBpbiBJREJGYWN0b3J5LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2ODEwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWJhZC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJhZC1wYXJhbWV0ZXJzLXByaXZhdGUtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJhc2Ut
cmVxdWVzdC1ldmVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL29wZW5kYXRhYmFzZS1yZXF1ZXN0LWV2ZW50LXByaXZhdGUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJhc2UtcmVxdWVzdC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRh
YmFzZS1yZXF1ZXN0LXByaXZhdGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi93b3JrZXJzLWVuYWJsZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtZXZlbnQtYmFzaWMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV2ZW50LWJhc2ljLXBy
aXZhdGUtZXhwZWN0ZWQudHh0OgorCisyMDE2LTA0LTIwICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KKwogICAgICAgICBNb2Rlcm4gSURCIChXb3JrZXJzKTogRW5hYmxlIElOREVY
RURfREFUQUJBU0VfSU5fV09SS0VSUyBjb21waWxlIHRpbWUgZmxhZywgYnV0IGRpc2FibGVkIGlu
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTY3ODIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi1iYWQtcGFyYW1ldGVycy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJhZC1wYXJhbWV0ZXJzLWV4cGVj
dGVkLnR4dAppbmRleCA1YzlmZWYyLi4xNmI1OGRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJhZC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWJhZC1wYXJhbWV0
ZXJzLWV4cGVjdGVkLnR4dApAQCAtMTMsNyArMTMsNyBAQCBQQVNTIEV4Y2VwdGlvbiB3YXMgdGhy
b3duLgogUEFTUyBpbmRleGVkREIub3BlbihkYm5hbWUsICdzdHJpbmd2ZXJzaW9uJykgdGhyZXcg
VHlwZUVycm9yOiBWYWx1ZSBOYU4gaXMgb3V0c2lkZSB0aGUgcmFuZ2UgWzAsIDkwMDcxOTkyNTQ3
NDA5OTFdCiBFeHBlY3RpbmcgVHlwZUVycm9yIGV4Y2VwdGlvbiBmcm9tIGluZGV4ZWREQi5vcGVu
KGRibmFtZSwgMCkKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCi1QQVNTIGluZGV4ZWREQi5v
cGVuKGRibmFtZSwgMCkgdGhyZXcgVHlwZUVycm9yOiBUeXBlIGVycm9yCitQQVNTIGluZGV4ZWRE
Qi5vcGVuKGRibmFtZSwgMCkgdGhyZXcgVHlwZUVycm9yOiBJREJGYWN0b3J5Lm9wZW4oKSBjYWxs
ZWQgd2l0aCBhIHZlcnNpb24gb2YgMAogRXhwZWN0aW5nIFR5cGVFcnJvciBleGNlcHRpb24gZnJv
bSBpbmRleGVkREIub3BlbihkYm5hbWUsIC01KQogUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4K
IFBBU1MgaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAtNSkgdGhyZXcgVHlwZUVycm9yOiBWYWx1ZSAt
NSBpcyBvdXRzaWRlIHRoZSByYW5nZSBbMCwgOTAwNzE5OTI1NDc0MDk5MV0KQEAgLTM0LDcgKzM0
LDcgQEAgUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KIFBBU1MgaW5kZXhlZERCLm9wZW4oZGJu
YW1lLCAweDIwMDAwMDAwMDAwMDAwKSB0aHJldyBUeXBlRXJyb3I6IFZhbHVlIDkwMDcxOTkyNTQ3
NDA5OTIgaXMgb3V0c2lkZSB0aGUgcmFuZ2UgWzAsIDkwMDcxOTkyNTQ3NDA5OTFdCiBFeHBlY3Rp
bmcgVHlwZUVycm9yIGV4Y2VwdGlvbiBmcm9tIGluZGV4ZWREQi5vcGVuKGRibmFtZSwgbnVsbCkK
IFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCi1QQVNTIGluZGV4ZWREQi5vcGVuKGRibmFtZSwg
bnVsbCkgdGhyZXcgVHlwZUVycm9yOiBUeXBlIGVycm9yCitQQVNTIGluZGV4ZWREQi5vcGVuKGRi
bmFtZSwgbnVsbCkgdGhyZXcgVHlwZUVycm9yOiBJREJGYWN0b3J5Lm9wZW4oKSBjYWxsZWQgd2l0
aCBhIHZlcnNpb24gb2YgMAogRXhwZWN0aW5nIFR5cGVFcnJvciBleGNlcHRpb24gZnJvbSBpbmRl
eGVkREIub3BlbihkYm5hbWUsIHVuZGVmaW5lZCkKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24u
CiBQQVNTIGluZGV4ZWREQi5vcGVuKGRibmFtZSwgdW5kZWZpbmVkKSB0aHJldyBUeXBlRXJyb3I6
IFZhbHVlIE5hTiBpcyBvdXRzaWRlIHRoZSByYW5nZSBbMCwgOTAwNzE5OTI1NDc0MDk5MV0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYmFkLXBh
cmFtZXRlcnMtcHJpdmF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLWJhZC1wYXJhbWV0ZXJzLXByaXZhdGUtZXhwZWN0ZWQudHh0CmluZGV4
IDVjOWZlZjIuLjE2YjU4ZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2ludHZlcnNpb24tYmFkLXBhcmFtZXRlcnMtcHJpdmF0ZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1iYWQtcGFyYW1ldGVycy1w
cml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMTMsNyArMTMsNyBAQCBQQVNTIEV4Y2VwdGlvbiB3YXMg
dGhyb3duLgogUEFTUyBpbmRleGVkREIub3BlbihkYm5hbWUsICdzdHJpbmd2ZXJzaW9uJykgdGhy
ZXcgVHlwZUVycm9yOiBWYWx1ZSBOYU4gaXMgb3V0c2lkZSB0aGUgcmFuZ2UgWzAsIDkwMDcxOTky
NTQ3NDA5OTFdCiBFeHBlY3RpbmcgVHlwZUVycm9yIGV4Y2VwdGlvbiBmcm9tIGluZGV4ZWREQi5v
cGVuKGRibmFtZSwgMCkKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCi1QQVNTIGluZGV4ZWRE
Qi5vcGVuKGRibmFtZSwgMCkgdGhyZXcgVHlwZUVycm9yOiBUeXBlIGVycm9yCitQQVNTIGluZGV4
ZWREQi5vcGVuKGRibmFtZSwgMCkgdGhyZXcgVHlwZUVycm9yOiBJREJGYWN0b3J5Lm9wZW4oKSBj
YWxsZWQgd2l0aCBhIHZlcnNpb24gb2YgMAogRXhwZWN0aW5nIFR5cGVFcnJvciBleGNlcHRpb24g
ZnJvbSBpbmRleGVkREIub3BlbihkYm5hbWUsIC01KQogUEFTUyBFeGNlcHRpb24gd2FzIHRocm93
bi4KIFBBU1MgaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAtNSkgdGhyZXcgVHlwZUVycm9yOiBWYWx1
ZSAtNSBpcyBvdXRzaWRlIHRoZSByYW5nZSBbMCwgOTAwNzE5OTI1NDc0MDk5MV0KQEAgLTM0LDcg
KzM0LDcgQEAgUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KIFBBU1MgaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCAweDIwMDAwMDAwMDAwMDAwKSB0aHJldyBUeXBlRXJyb3I6IFZhbHVlIDkwMDcxOTky
NTQ3NDA5OTIgaXMgb3V0c2lkZSB0aGUgcmFuZ2UgWzAsIDkwMDcxOTkyNTQ3NDA5OTFdCiBFeHBl
Y3RpbmcgVHlwZUVycm9yIGV4Y2VwdGlvbiBmcm9tIGluZGV4ZWREQi5vcGVuKGRibmFtZSwgbnVs
bCkKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCi1QQVNTIGluZGV4ZWREQi5vcGVuKGRibmFt
ZSwgbnVsbCkgdGhyZXcgVHlwZUVycm9yOiBUeXBlIGVycm9yCitQQVNTIGluZGV4ZWREQi5vcGVu
KGRibmFtZSwgbnVsbCkgdGhyZXcgVHlwZUVycm9yOiBJREJGYWN0b3J5Lm9wZW4oKSBjYWxsZWQg
d2l0aCBhIHZlcnNpb24gb2YgMAogRXhwZWN0aW5nIFR5cGVFcnJvciBleGNlcHRpb24gZnJvbSBp
bmRleGVkREIub3BlbihkYm5hbWUsIHVuZGVmaW5lZCkKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJv
d24uCiBQQVNTIGluZGV4ZWREQi5vcGVuKGRibmFtZSwgdW5kZWZpbmVkKSB0aHJldyBUeXBlRXJy
b3I6IFZhbHVlIE5hTiBpcyBvdXRzaWRlIHRoZSByYW5nZSBbMCwgOTAwNzE5OTI1NDc0MDk5MV0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0
YWJhc2UtcmVxdWVzdC1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXJlcXVlc3QtZXZlbnQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGJhMzFmYTIuLmY5ZWI1YWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9vcGVuZGF0YWJhc2UtcmVxdWVzdC1ldmVudC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFzZS1yZXF1
ZXN0LWV2ZW50LWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgVGhpcyB0ZXN0IGNhbGxzIG9w
ZW4gb24gd2luZG93LmluZGV4ZWREQiBpbiB2YXJpb3VzIHdheXMsIHZlcmlmeWluZyB0aGF0IElE
Qk9wZW4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1DYXVnaHQgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVHlwZSBlcnJvcgorQ2F1Z2h0IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IElEQkZhY3Rv
cnkub3BlbigpIGNhbGxlZCB3aXRoIGEgdmVyc2lvbiBvZiAwCiBDYXVnaHQgZXhjZXB0aW9uIFR5
cGVFcnJvcjogVmFsdWUgLTEgaXMgb3V0c2lkZSB0aGUgcmFuZ2UgWzAsIDkwMDcxOTkyNTQ3NDA5
OTFdCiBbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdCiB1cGdyYWRlbmVlZGVkOiBvbGQgdmVyc2lv
biAtIDAgbmV3IHZlcnNpb24gLSAxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXJlcXVlc3QtZXZlbnQtcHJpdmF0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNl
LXJlcXVlc3QtZXZlbnQtcHJpdmF0ZS1leHBlY3RlZC50eHQKaW5kZXggYmEzMWZhMi4uZjllYjVh
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5k
YXRhYmFzZS1yZXF1ZXN0LWV2ZW50LXByaXZhdGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJhc2UtcmVxdWVzdC1ldmVudC1w
cml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcgQEAgVGhpcyB0ZXN0IGNhbGxzIG9wZW4g
b24gd2luZG93LmluZGV4ZWREQiBpbiB2YXJpb3VzIHdheXMsIHZlcmlmeWluZyB0aGF0IElEQk9w
ZW4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1DYXVnaHQgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvcgorQ2F1Z2h0IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IElEQkZhY3Rvcnku
b3BlbigpIGNhbGxlZCB3aXRoIGEgdmVyc2lvbiBvZiAwCiBDYXVnaHQgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVmFsdWUgLTEgaXMgb3V0c2lkZSB0aGUgcmFuZ2UgWzAsIDkwMDcxOTkyNTQ3NDA5OTFd
CiBbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdCiB1cGdyYWRlbmVlZGVkOiBvbGQgdmVyc2lvbiAt
IDAgbmV3IHZlcnNpb24gLSAxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXJlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFzZS1yZXF1ZXN0LWV4cGVjdGVk
LnR4dAppbmRleCBjOWY0OGRiLi43OTRhMDRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXJlcXVlc3QtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJhc2UtcmVx
dWVzdC1leHBlY3RlZC50eHQKQEAgLTYsNyArNiw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
CiBbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdCiBbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdCiBU
eXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzCi1UeXBlRXJyb3I6IFR5cGUgZXJyb3IKK1R5
cGVFcnJvcjogSURCRmFjdG9yeS5vcGVuKCkgY2FsbGVkIHdpdGggYSB2ZXJzaW9uIG9mIDAKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFzZS1yZXF1
ZXN0LXByaXZhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL29wZW5kYXRhYmFzZS1yZXF1ZXN0LXByaXZhdGUtZXhwZWN0ZWQudHh0CmluZGV4IGM5
ZjQ4ZGIuLjc5NGEwNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9vcGVuZGF0YWJhc2UtcmVxdWVzdC1wcml2YXRlLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXJlcXVlc3Qt
cHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTYsNyArNiw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFCiBbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdCiBbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3Rd
CiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzCi1UeXBlRXJyb3I6IFR5cGUgZXJyb3IK
K1R5cGVFcnJvcjogSURCRmFjdG9yeS5vcGVuKCkgY2FsbGVkIHdpdGggYSB2ZXJzaW9uIG9mIDAK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3dvcmtlcnMtZW5hYmxl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi93b3Jr
ZXJzLWVuYWJsZS1leHBlY3RlZC50eHQKaW5kZXggNjBkMzEwZi4uZTczYzkzOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3dvcmtlcnMtZW5hYmxlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vd29y
a2Vycy1lbmFibGUtZXhwZWN0ZWQudHh0CkBAIC01LDggKzUsOCBAQCBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURQogCiBTdGFydGluZyB3b3JrZXI6IHJlc291cmNlcy93b3JrZXJzLWVuYWJsZS5qcwog
UEFTUyBbV29ya2VyXSBzZWxmLmluZGV4ZWREQiBpcyBkZWZpbmVkLgotRkFJTCBbV29ya2VyXSBz
ZWxmLmluZGV4ZWREQiBzaG91bGQgYmUgbm9uLW51bGwuIFdhcyBudWxsCi1GQUlMIFtXb3JrZXJd
IHNlbGYuaW5kZXhlZERCIGluc3RhbmNlb2YgSURCRmFjdG9yeSBzaG91bGQgYmUgdHJ1ZS4gV2Fz
IGZhbHNlLgorUEFTUyBbV29ya2VyXSBzZWxmLmluZGV4ZWREQiBpcyBub24tbnVsbC4KK1BBU1Mg
W1dvcmtlcl0gc2VsZi5pbmRleGVkREIgaW5zdGFuY2VvZiBJREJGYWN0b3J5IGlzIHRydWUKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtZXZlbnQtYmFz
aWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1j
aGFuZ2UtZXZlbnQtYmFzaWMtZXhwZWN0ZWQudHh0CmluZGV4IDJhNTQ1MzUuLjY1NjQzMWUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV2
ZW50LWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi92ZXJzaW9uLWNoYW5nZS1ldmVudC1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBA
Ci0wIHZlcnNpb246IFR5cGVFcnJvcjogVHlwZSBlcnJvcgorMCB2ZXJzaW9uOiBUeXBlRXJyb3I6
IElEQkZhY3Rvcnkub3BlbigpIGNhbGxlZCB3aXRoIGEgdmVyc2lvbiBvZiAwCiBOZWdhdGl2ZSB2
ZXJzaW9uOiBUeXBlRXJyb3I6IFZhbHVlIC0xIGlzIG91dHNpZGUgdGhlIHJhbmdlIFswLCA5MDA3
MTk5MjU0NzQwOTkxXQogU3RyaW5nIHZlcnNpb246IFR5cGVFcnJvcjogVmFsdWUgTmFOIGlzIG91
dHNpZGUgdGhlIHJhbmdlIFswLCA5MDA3MTk5MjU0NzQwOTkxXQogRmlyc3QgcmVxdWVzdDogMCAx
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5n
ZS1ldmVudC1iYXNpYy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV2ZW50LWJhc2ljLXByaXZhdGUtZXhwZWN0ZWQudHh0
CmluZGV4IDJhNTQ1MzUuLjY1NjQzMWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV2ZW50LWJhc2ljLXByaXZhdGUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV2ZW50
LWJhc2ljLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotMCB2ZXJzaW9uOiBU
eXBlRXJyb3I6IFR5cGUgZXJyb3IKKzAgdmVyc2lvbjogVHlwZUVycm9yOiBJREJGYWN0b3J5Lm9w
ZW4oKSBjYWxsZWQgd2l0aCBhIHZlcnNpb24gb2YgMAogTmVnYXRpdmUgdmVyc2lvbjogVHlwZUVy
cm9yOiBWYWx1ZSAtMSBpcyBvdXRzaWRlIHRoZSByYW5nZSBbMCwgOTAwNzE5OTI1NDc0MDk5MV0K
IFN0cmluZyB2ZXJzaW9uOiBUeXBlRXJyb3I6IFZhbHVlIE5hTiBpcyBvdXRzaWRlIHRoZSByYW5n
ZSBbMCwgOTAwNzE5OTI1NDc0MDk5MV0KIEZpcnN0IHJlcXVlc3Q6IDAgMQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCAzNzI2ZmU2Li45MjI4NmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODU1
LDYgKzg1NSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9J
REJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xv
YmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuY3BwCiAKKyAgICBNb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblByb3h5LmNwcAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1Ry
YW5zYWN0aW9uT3BlcmF0aW9uLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWI2NzY1OS4uMWNjMGRhNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU4IEBACiAyMDE2LTA0LTIwICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KIAorICAgICAgICBNb2Rlcm4gSURCIChXb3JrZXJzKTogSW50cm9k
dWNlICJJREJDb25uZWN0aW9uUHJveHkiIGZvciBmdXR1cmUgdGhyZWFkaW5nIGFic3RyYWN0aW9u
LCBhbmQgYWRvcHQgaXQgaW4gSURCRmFjdG9yeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjgxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoQ292ZXJlZCBieSBjaGFuZ2VzIHRv
IGV4aXN0aW5nIHRlc3RzKS4KKworICAgICAgICBBZGQgdGhlIElEQkNvbm5lY3Rpb25Qcm94eSBv
YmplY3QsIGluY2x1ZGluZyB0aGUgYWJpbGl0eSB0byByZXBsaWNhdGUgSURCRmFjdG9yeSBmdW5j
dGlvbmFsaXR5OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29u
bmVjdGlvblByb3h5OjpJREJDb25uZWN0aW9uUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SURC
Q2xpZW50OjpJREJDb25uZWN0aW9uUHJveHk6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eTo6ZGVsZXRlRGF0YWJhc2UpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuaDogCisg
ICAgICAgIAorICAgICAgICBBZGQgcHVyZSB2aXJ0dWFsIElEQkNvbm5lY3Rpb25Qcm94eSBhY2Nl
c3NvcjoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOiAKKworICAgICAg
ICBJbXBsZW1lbnQgaXQ6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjppZGJDb25uZWN0aW9uUHJveHkpOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5oOgorICAgICAgICAKKyAgICAgICAgSW1wbGVtZW50IGl0OgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xvYmFs
U2NvcGU6OmlkYkNvbm5lY3Rpb25Qcm94eSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9i
YWxTY29wZS5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5k
b3dJbmRleGVkRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93SW5kZXhl
ZERhdGFiYXNlOjppbmRleGVkREIpOgorCisKKyAgICAgICAgRG9uJ3Qga2VlcCBhIHJlZmVyZW5j
ZSB0byBJREJDb25uZWN0aW9uVG9TZXJ2ZXIsIGJ1dCByYXRoZXIgZ2V0IGF0IHRoZSBjb250ZXh0
J3MgSURCQ29ubmVjdGlvblByb3h5OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkZhY3Rvcnk6OklEQkZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6
SURCRmFjdG9yeTo6b3Blbik6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5OjpvcGVuSW50
ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6ZGVsZXRlRGF0YWJhc2UpOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaDoKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbDoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlOjppbmRleGVkREIpOgorCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgor
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcDoKKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKworMjAxNi0wNC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CisKICAgICAgICAgQXR0ZW1wdCB0byBmaXggbm9uLUlOREVYRURfREFUQUJBU0VfSU5fV09S
S0VSUyBidWlsZHMgYWZ0ZXIgcjE5OTc3OQogCiAgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwCmluZGV4IGFiMjQ3MDcuLjg5M2M4
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRv
d0luZGV4ZWREYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcApAQCAtMTEyLDcgKzExMiw3IEBAIElEQkZh
Y3RvcnkqIERPTVdpbmRvd0luZGV4ZWREYXRhYmFzZTo6aW5kZXhlZERCKCkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICBpZiAoIW1faWRiRmFjdG9yeSkKLSAgICAgICAgbV9pZGJGYWN0
b3J5ID0gSURCRmFjdG9yeTo6Y3JlYXRlKHBhZ2UtPmlkYkNvbm5lY3Rpb24oKSk7CisgICAgICAg
IG1faWRiRmFjdG9yeSA9IElEQkZhY3Rvcnk6OmNyZWF0ZSgpOwogCiAgICAgcmV0dXJuIG1faWRi
RmFjdG9yeS5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeS5jcHAKaW5kZXggMjIwMmVmNC4uMTFhNWQyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlICJJREJCaW5kaW5nVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiSURCQ29ubmVjdGlvblByb3h5
LmgiCiAjaW5jbHVkZSAiSURCQ29ubmVjdGlvblRvU2VydmVyLmgiCiAjaW5jbHVkZSAiSURCRGF0
YWJhc2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCkBAIC02MiwxMyArNjMsMTIg
QEAgc3RhdGljIGJvb2wgc2hvdWxkVGhyb3dTZWN1cml0eUV4Y2VwdGlvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUmVmPElEQkZhY3Rv
cnk+IElEQkZhY3Rvcnk6OmNyZWF0ZShJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYg
Y29ubmVjdGlvbikKK1JlZjxJREJGYWN0b3J5PiBJREJGYWN0b3J5OjpjcmVhdGUoKQogewotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IElEQkZhY3RvcnkoY29ubmVjdGlvbikpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IElEQkZhY3RvcnkpOwogfQogCi1JREJGYWN0b3J5OjpJREJGYWN0b3J5
KElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBjb25uZWN0aW9uKQotICAgIDogbV9j
b25uZWN0aW9uVG9TZXJ2ZXIoY29ubmVjdGlvbikKK0lEQkZhY3Rvcnk6OklEQkZhY3RvcnkoKQog
ewogfQogCkBAIC03NiwzNCArNzYsMzcgQEAgSURCRmFjdG9yeTo6fklEQkZhY3RvcnkoKQogewog
fQogCi1SZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6b3BlbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUm
IGVjKQorUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2Rl
V2l0aE1lc3NhZ2UmIGVjKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJGYWN0b3J5OjpvcGVu
Iik7CiAgICAgCiAgICAgcmV0dXJuIG9wZW5JbnRlcm5hbChjb250ZXh0LCBuYW1lLCAwLCBlYyk7
CiB9CiAKLVJlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBJREJGYWN0b3J5OjpvcGVuKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgdW5zaWduZWQgbG9u
ZyBsb25nIHZlcnNpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPElEQk9wZW5EQlJlcXVl
c3Q+IElEQkZhY3Rvcnk6Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3RyaW5nJiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbiwgRXhjZXB0aW9uQ29k
ZVdpdGhNZXNzYWdlJiBlYykKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCRmFjdG9yeTo6b3Bl
biIpOwogICAgIAogICAgIGlmICghdmVyc2lvbikgewotICAgICAgICBlYyA9IFR5cGVFcnJvcjsK
KyAgICAgICAgZWMuY29kZSA9IFR5cGVFcnJvcjsKKyAgICAgICAgZWMubWVzc2FnZSA9IEFTQ0lJ
TGl0ZXJhbCgiSURCRmFjdG9yeS5vcGVuKCkgY2FsbGVkIHdpdGggYSB2ZXJzaW9uIG9mIDAiKTsK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgcmV0dXJuIG9wZW5JbnRlcm5h
bChjb250ZXh0LCBuYW1lLCB2ZXJzaW9uLCBlYyk7CiB9CiAKLVJlZlB0cjxJREJPcGVuREJSZXF1
ZXN0PiBJREJGYWN0b3J5OjpvcGVuSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbiwgRXhj
ZXB0aW9uQ29kZSYgZWMpCitSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6b3Bl
bkludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYg
bmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIHZlcnNpb24sIEV4Y2VwdGlvbkNvZGVXaXRoTWVzc2Fn
ZSYgZWMpCiB7CiAgICAgaWYgKG5hbWUuaXNOdWxsKCkpIHsKLSAgICAgICAgZWMgPSBUeXBlRXJy
b3I7CisgICAgICAgIGVjLmNvZGUgPSBUeXBlRXJyb3I7CisgICAgICAgIGVjLm1lc3NhZ2UgPSBB
U0NJSUxpdGVyYWwoIklEQkZhY3Rvcnkub3BlbigpIGNhbGxlZCB3aXRob3V0IGEgZGF0YWJhc2Ug
bmFtZSIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAoc2hvdWxk
VGhyb3dTZWN1cml0eUV4Y2VwdGlvbihjb250ZXh0KSkgewotICAgICAgICBlYyA9IFNFQ1VSSVRZ
X0VSUjsKKyAgICAgICAgZWMuY29kZSA9IFNFQ1VSSVRZX0VSUjsKKyAgICAgICAgZWMubWVzc2Fn
ZSA9IEFTQ0lJTGl0ZXJhbCgiSURCRmFjdG9yeS5vcGVuKCkgY2FsbGVkIGluIGFuIGludmFsaWQg
c2VjdXJpdHkgY29udGV4dCIpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKQEAg
LTExMSwyNyArMTE0LDMzIEBAIFJlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBJREJGYWN0b3J5Ojpv
cGVuSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4CiAgICAgQVNTRVJUKGNv
bnRleHQudG9wT3JpZ2luKCkpOwogICAgIElEQkRhdGFiYXNlSWRlbnRpZmllciBkYXRhYmFzZUlk
ZW50aWZpZXIobmFtZSwgKmNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKSwgKmNvbnRleHQudG9wT3Jp
Z2luKCkpOwogICAgIGlmICghZGF0YWJhc2VJZGVudGlmaWVyLmlzVmFsaWQoKSkgewotICAgICAg
ICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAgZWMuY29kZSA9IFR5cGVFcnJvcjsKKyAgICAgICAg
ZWMubWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiSURCRmFjdG9yeS5vcGVuKCkgY2FsbGVkIHdpdGgg
YW4gaW52YWxpZCBzZWN1cml0eSBvcmlnaW4iKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogCi0gICAgYXV0byByZXF1ZXN0ID0gSURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRlT3BlblJl
cXVlc3QobV9jb25uZWN0aW9uVG9TZXJ2ZXIuZ2V0KCksIGNvbnRleHQsIGRhdGFiYXNlSWRlbnRp
ZmllciwgdmVyc2lvbik7Ci0gICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPm9wZW5EYXRhYmFzZShy
ZXF1ZXN0LmdldCgpKTsKKyAgICBhdXRvKiBjb25uZWN0aW9uUHJveHkgPSBjb250ZXh0LmlkYkNv
bm5lY3Rpb25Qcm94eSgpOworICAgIGlmICghY29ubmVjdGlvblByb3h5KSB7CisgICAgICAgIGVj
LmNvZGUgPSBTRUNVUklUWV9FUlI7CisgICAgICAgIGVjLm1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwo
IklEQkZhY3Rvcnkub3BlbigpIGNhbGxlZCBhdCBhbiBpbnZhbGlkIHRpbWUiKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCZyZXF1ZXN0Lmxl
YWtSZWYoKSk7CisgICAgcmV0dXJuIGNvbm5lY3Rpb25Qcm94eS0+b3BlbkRhdGFiYXNlKGNvbnRl
eHQsIGRhdGFiYXNlSWRlbnRpZmllciwgdmVyc2lvbik7CiB9CiAKLVJlZlB0cjxJREJPcGVuREJS
ZXF1ZXN0PiBJREJGYWN0b3J5OjpkZWxldGVEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRy
PElEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6OmRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZVdp
dGhNZXNzYWdlJiBlYykKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCRmFjdG9yeTo6ZGVsZXRl
RGF0YWJhc2UgLSAlcyIsIG5hbWUudXRmOCgpLmRhdGEoKSk7CiAKICAgICBpZiAobmFtZS5pc051
bGwoKSkgewotICAgICAgICBlYyA9IFR5cGVFcnJvcjsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgICAgIGVjLmNvZGUgPSBUeXBlRXJyb3I7CisgICAgICAgIGVjLm1lc3NhZ2UgPSBBU0NJ
SUxpdGVyYWwoIklEQkZhY3RvcnkuZGVsZXRlRGF0YWJhc2UoKSBjYWxsZWQgd2l0aG91dCBhIGRh
dGFiYXNlIG5hbWUiKTsKICAgICB9CiAgICAgCiAgICAgaWYgKHNob3VsZFRocm93U2VjdXJpdHlF
eGNlcHRpb24oY29udGV4dCkpIHsKLSAgICAgICAgZWMgPSBTRUNVUklUWV9FUlI7CisgICAgICAg
IGVjLmNvZGUgPSBTRUNVUklUWV9FUlI7CisgICAgICAgIGVjLm1lc3NhZ2UgPSBBU0NJSUxpdGVy
YWwoIklEQkZhY3RvcnkuZGVsZXRlRGF0YWJhc2UoKSBjYWxsZWQgaW4gYW4gaW52YWxpZCBzZWN1
cml0eSBjb250ZXh0Iik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApAQCAtMTM5
LDE0ICsxNDgsMTkgQEAgUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6OmRlbGV0
ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnQKICAgICBBU1NFUlQoY29udGV4
dC50b3BPcmlnaW4oKSk7CiAgICAgSURCRGF0YWJhc2VJZGVudGlmaWVyIGRhdGFiYXNlSWRlbnRp
ZmllcihuYW1lLCAqY29udGV4dC5zZWN1cml0eU9yaWdpbigpLCAqY29udGV4dC50b3BPcmlnaW4o
KSk7CiAgICAgaWYgKCFkYXRhYmFzZUlkZW50aWZpZXIuaXNWYWxpZCgpKSB7Ci0gICAgICAgIGVj
ID0gVHlwZUVycm9yOworICAgICAgICBlYy5jb2RlID0gVHlwZUVycm9yOworICAgICAgICBlYy5t
ZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJJREJGYWN0b3J5LmRlbGV0ZURhdGFiYXNlKCkgY2FsbGVk
IHdpdGggYW4gaW52YWxpZCBzZWN1cml0eSBvcmlnaW4iKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogCi0gICAgYXV0byByZXF1ZXN0ID0gSURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRl
RGVsZXRlUmVxdWVzdChtX2Nvbm5lY3Rpb25Ub1NlcnZlci5nZXQoKSwgY29udGV4dCwgZGF0YWJh
c2VJZGVudGlmaWVyKTsKLSAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGVsZXRlRGF0YWJhc2Uo
cmVxdWVzdC5nZXQoKSk7CisgICAgYXV0byogY29ubmVjdGlvblByb3h5ID0gY29udGV4dC5pZGJD
b25uZWN0aW9uUHJveHkoKTsKKyAgICBpZiAoIWNvbm5lY3Rpb25Qcm94eSkgeworICAgICAgICBl
Yy5jb2RlID0gU0VDVVJJVFlfRVJSOworICAgICAgICBlYy5tZXNzYWdlID0gQVNDSUlMaXRlcmFs
KCJJREJGYWN0b3J5LmRlbGV0ZURhdGFiYXNlKCkgY2FsbGVkIGF0IGFuIGludmFsaWQgdGltZSIp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAKLSAgICByZXR1cm4gYWRvcHRSZWYo
JnJlcXVlc3QubGVha1JlZigpKTsKKyAgICByZXR1cm4gY29ubmVjdGlvblByb3h5LT5kZWxldGVE
YXRhYmFzZShjb250ZXh0LCBkYXRhYmFzZUlkZW50aWZpZXIpOwogfQogCiBzaG9ydCBJREJGYWN0
b3J5OjpjbXAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNWYWx1ZSBmaXJzdFZh
bHVlLCBKU1ZhbHVlIHNlY29uZFZhbHVlLCBFeGNlcHRpb25Db2RlV2l0aE1lc3NhZ2UmIGVjKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oCmluZGV4IDJi
ODUwNzUuLjVhYzNjYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNSwgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVk
ZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3Mg
SlNWYWx1ZTsKQEAgLTQ4LDIzICs0OCwyMSBAQCBjbGFzcyBJREJDb25uZWN0aW9uVG9TZXJ2ZXI7
CiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKLWNsYXNzIElEQkZhY3RvcnkgOiBwdWJs
aWMgUmVmQ291bnRlZDxJREJGYWN0b3J5PiB7CitjbGFzcyBJREJGYWN0b3J5IDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPElEQkZhY3Rvcnk+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PElEQkZhY3Rvcnk+IGNyZWF0ZShJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYpOwor
ICAgIHN0YXRpYyBSZWY8SURCRmFjdG9yeT4gY3JlYXRlKCk7CiAgICAgfklEQkZhY3RvcnkoKTsK
IAotICAgIFJlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBvcGVuKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBSZWZQdHI8SURC
T3BlbkRCUmVxdWVzdD4gb3BlbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5n
JiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbiwgRXhjZXB0aW9uQ29kZSYpOwotICAg
IFJlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBkZWxldGVEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CisgICAgUmVmUHRy
PElEQk9wZW5EQlJlcXVlc3Q+IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0
cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZVdpdGhNZXNzYWdlJik7CisgICAgUmVmUHRyPElEQk9w
ZW5EQlJlcXVlc3Q+IG9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYg
bmFtZSwgdW5zaWduZWQgbG9uZyBsb25nIHZlcnNpb24sIEV4Y2VwdGlvbkNvZGVXaXRoTWVzc2Fn
ZSYpOworICAgIFJlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiBkZWxldGVEYXRhYmFzZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlV2l0aE1l
c3NhZ2UmKTsKIAogICAgIHNob3J0IGNtcChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSlNDOjpK
U1ZhbHVlIGZpcnN0LCBKU0M6OkpTVmFsdWUgc2Vjb25kLCBFeGNlcHRpb25Db2RlV2l0aE1lc3Nh
Z2UmKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBJREJGYWN0b3J5KElEQkNsaWVudDo6SURC
Q29ubmVjdGlvblRvU2VydmVyJik7CisgICAgZXhwbGljaXQgSURCRmFjdG9yeSgpOwogCi0gICAg
UmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IG9wZW5JbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgY29uc3QgU3RyaW5nJiBuYW1lLCB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbiwgRXhj
ZXB0aW9uQ29kZSYpOwotCi0gICAgUmVmPElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVy
PiBtX2Nvbm5lY3Rpb25Ub1NlcnZlcjsKKyAgICBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gb3Bl
bkludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIG5hbWUsIHVu
c2lnbmVkIGxvbmcgbG9uZyB2ZXJzaW9uLCBFeGNlcHRpb25Db2RlV2l0aE1lc3NhZ2UmKTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeS5pZGwKaW5kZXggN2RkNThhNy4uM2E4YjE1YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwKQEAgLTI5LDgg
KzI5LDggQEAKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKICAgICBFeHBvc2VkPShXaW5kb3cs
V29ya2VyKSwKIF0gaW50ZXJmYWNlIElEQkZhY3RvcnkgewotICAgIFtDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0LCBSYWlzZXNFeGNlcHRpb25dIElEQk9wZW5EQlJlcXVlc3Qgb3BlbihE
T01TdHJpbmcgbmFtZSwgW0VuZm9yY2VSYW5nZV0gb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBsb25n
IHZlcnNpb24pOwotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSYWlzZXNF
eGNlcHRpb25dIElEQk9wZW5EQlJlcXVlc3QgZGVsZXRlRGF0YWJhc2UoRE9NU3RyaW5nIG5hbWUp
OworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSYWlzZXNFeGNlcHRpb25X
aXRoTWVzc2FnZV0gSURCT3BlbkRCUmVxdWVzdCBvcGVuKERPTVN0cmluZyBuYW1lLCBbRW5mb3Jj
ZVJhbmdlXSBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbik7CisgICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIFJhaXNlc0V4Y2VwdGlvbldpdGhNZXNzYWdlXSBJ
REJPcGVuREJSZXF1ZXN0IGRlbGV0ZURhdGFiYXNlKERPTVN0cmluZyBuYW1lKTsKICAgICBbQ2Fs
bFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgUmFpc2VzRXhjZXB0aW9uV2l0aE1lc3NhZ2Vd
IHNob3J0IGNtcChhbnkgZmlyc3QsIGFueSBzZWNvbmQpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0
YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xvYmFs
U2NvcGVJbmRleGVkRGF0YWJhc2UuY3BwCmluZGV4IGY3MTNiNDMuLjMxNzA2YTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5k
ZXhlZERhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9X
b3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5jcHAKQEAgLTY5LDcgKzY5LDEwIEBAIElE
QkZhY3RvcnkqIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlOjppbmRleGVkREIoV29y
a2VyR2xvYmFsU2NvcGUmIHNjb3BlCiAKIElEQkZhY3RvcnkqIFdvcmtlckdsb2JhbFNjb3BlSW5k
ZXhlZERhdGFiYXNlOjppbmRleGVkREIoKQogewotICAgIHJldHVybiBudWxscHRyOworICAgIGlm
ICghbV9pZGJGYWN0b3J5KQorICAgICAgICBtX2lkYkZhY3RvcnkgPSBJREJGYWN0b3J5OjpjcmVh
dGUoKTsKKworICAgIHJldHVybiBtX2lkYkZhY3RvcnkuZ2V0KCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Qcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNDc3ZTE0NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHkuY3BwCkBAIC0w
LDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
SURCQ29ubmVjdGlvblByb3h5LmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKwor
I2luY2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgSURCQ2xpZW50IHsKKworSURCQ29u
bmVjdGlvblByb3h5OjpJREJDb25uZWN0aW9uUHJveHkoSURCQ29ubmVjdGlvblRvU2VydmVyJiBj
b25uZWN0aW9uKQorICAgIDogbV9jb25uZWN0aW9uVG9TZXJ2ZXIoY29ubmVjdGlvbikKK3sKK30K
KworUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkNvbm5lY3Rpb25Qcm94eTo6b3BlbkRhdGFi
YXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IElEQkRhdGFiYXNlSWRl
bnRpZmllciYgZGF0YWJhc2VJZGVudGlmaWVyLCB1aW50NjRfdCB2ZXJzaW9uKQoreworICAgIC8v
IEZJWE1FOiBHZXQgcmlkIG9mIHRoZSBuZWVkIGZvciBJREIgb2JqZWN0cyB0byBob2xkIGEgcmVm
ZXJlbmNlIHRvIHRoZSBJREJDb25uZWN0aW9uVG9TZXJ2ZXIsCisgICAgLy8gd2hpY2ggd2lsbCBl
bmFibGUgdGhlbSB0byBvcGVyYXRlIG9uIFdvcmtlciB0aHJlYWRzLgorICAgIGlmICghaXNNYWlu
VGhyZWFkKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byByZXF1ZXN0ID0g
SURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRlT3BlblJlcXVlc3QobV9jb25uZWN0aW9uVG9TZXJ2ZXIu
Z2V0KCksIGNvbnRleHQsIGRhdGFiYXNlSWRlbnRpZmllciwgdmVyc2lvbik7CisgICAgbV9jb25u
ZWN0aW9uVG9TZXJ2ZXItPm9wZW5EYXRhYmFzZShyZXF1ZXN0LmdldCgpKTsKKworICAgIHJldHVy
biBhZG9wdFJlZigmcmVxdWVzdC5sZWFrUmVmKCkpOworfQorCitSZWZQdHI8SURCT3BlbkRCUmVx
dWVzdD4gSURCQ29ubmVjdGlvblByb3h5OjpkZWxldGVEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBjb25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImIGRhdGFiYXNlSWRl
bnRpZmllcikKK3sKKyAgICAvLyBGSVhNRTogR2V0IHJpZCBvZiB0aGUgbmVlZCBmb3IgSURCIG9i
amVjdHMgdG8gaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgSURCQ29ubmVjdGlvblRvU2VydmVyLAor
ICAgIC8vIHdoaWNoIHdpbGwgZW5hYmxlIHRoZW0gdG8gb3BlcmF0ZSBvbiBXb3JrZXIgdGhyZWFk
cy4KKyAgICBpZiAoIWlzTWFpblRocmVhZCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIGF1dG8gcmVxdWVzdCA9IElEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZURlbGV0ZVJlcXVlc3Qo
bV9jb25uZWN0aW9uVG9TZXJ2ZXIuZ2V0KCksIGNvbnRleHQsIGRhdGFiYXNlSWRlbnRpZmllcik7
CisgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXItPmRlbGV0ZURhdGFiYXNlKHJlcXVlc3QuZ2V0KCkp
OworCisgICAgcmV0dXJuIGFkb3B0UmVmKCZyZXF1ZXN0LmxlYWtSZWYoKSk7Cit9CisKK30gLy8g
bmFtZXNhcGNlIElEQkNsaWVudAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWIzZmYxOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uUHJveHku
aApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Ub1NlcnZlci5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQkRhdGFiYXNlSWRlbnRpZmllcjsK
K2NsYXNzIElEQk9wZW5EQlJlcXVlc3Q7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owor
CituYW1lc3BhY2UgSURCQ2xpZW50IHsKKworY2xhc3MgSURCQ29ubmVjdGlvblByb3h5IHsKK3B1
YmxpYzoKKyAgICBJREJDb25uZWN0aW9uUHJveHkoSURCQ29ubmVjdGlvblRvU2VydmVyJik7CisK
KyAgICBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gb3BlbkRhdGFiYXNlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBjb25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImLCB1aW50NjRfdCB2ZXJzaW9u
KTsKKyAgICBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gZGVsZXRlRGF0YWJhc2UoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYpOworCitwcml2YXRl
OgorICAgIFJlZjxJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IG1fY29ubmVjdGlvblRvU2VydmVyOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgSURCQ2xpZW50Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuaAppbmRleCBkZjc2YjM4Li5lOWIyYjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUsIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotI2lmbmRlZiBJREJDb25uZWN0aW9uVG9TZXJ2ZXJfaAotI2RlZmluZSBJREJDb25u
ZWN0aW9uVG9TZXJ2ZXJfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKIApAQCAtMzQsNyArMzMsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0jaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MSw3ICs1MCw3IEBAIG5hbWVzcGFjZSBJREJDbGll
bnQgewogCiBjbGFzcyBUcmFuc2FjdGlvbk9wZXJhdGlvbjsKIAotY2xhc3MgSURCQ29ubmVjdGlv
blRvU2VydmVyIDogcHVibGljIFJlZkNvdW50ZWQ8SURCQ29ubmVjdGlvblRvU2VydmVyPiB7Citj
bGFzcyBJREJDb25uZWN0aW9uVG9TZXJ2ZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
SURCQ29ubmVjdGlvblRvU2VydmVyPiB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFJlZjxJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IGNyZWF0ZShJREJDb25uZWN0aW9uVG9TZXJ2
ZXJEZWxlZ2F0ZSYpOwogCkBAIC0xNDMsNCArMTQyLDMgQEAgcHJpdmF0ZToKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotI2VuZGlm
IC8vIElEQkNvbm5lY3Rpb25Ub1NlcnZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDczZWM2OC4uMWI4MzRiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjA4NSw2ICsyMDg1LDggQEAKIAkJNTE3QTYzQzQxQjc0MzE4QjAwRTdEQ0RDIC8qIEtleWVkRW5j
b2RlckNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxN0E2M0MxMUI3NDMxN0UwMEU3RENEQyAvKiBLZXllZEVuY29kZXJDRi5jcHAgKi87IH07CiAJ
CTUxN0E2M0M1MUI3NDMxOEYwMEU3RENEQyAvKiBLZXllZERlY29kZXJDRi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTYzQzAxQjc0MzE3RTAwRTdE
Q0RDIC8qIEtleWVkRGVjb2RlckNGLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNTE3QTYzQzYxQjc0MzE5MjAwRTdEQ0RDIC8qIEtleWVkRW5jb2Rl
ckNGLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdB
NjNDMjFCNzQzMTdFMDBFN0RDREMgLyogS2V5ZWRFbmNvZGVyQ0YuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTdCMjVBOTFDQzgyQjJBMDA2MUMw
MTEgLyogSURCQ29ubmVjdGlvblByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0IyNUE3MUNDODIwMzIwMDYxQzAxMSAvKiBJREJDb25uZWN0
aW9uUHJveHkuY3BwICovOyB9OworCQk1MTdCMjVBQTFDQzgyQjJBMDA2MUMwMTEgLyogSURCQ29u
bmVjdGlvblByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTdCMjVBODFDQzgyMDMyMDA2MUMwMTEgLyogSURCQ29ubmVjdGlvblByb3h5LmggKi87
IH07CiAJCTUxN0ZCQTFFMTUxQUIxN0MwMEI1Nzk1OSAvKiBET01XaW5kb3dFeHRlbnNpb24uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3RkJBMTcx
NTFBQTcxQjAwQjU3OTU5IC8qIERPTVdpbmRvd0V4dGVuc2lvbi5jcHAgKi87IH07CiAJCTUxODVG
Qzc0MUJCNEM0RTgwMDEyODk4RiAvKiBET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFENzE5NkMxODExMDZE
RjAwMTZEQzUxIC8qIERPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAgKi87IH07CiAJCTUxODVG
Qzc1MUJCNEM0RTgwMDEyODk4RiAvKiBET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDcxOTZEMTgxMTA2REYw
MDE2REM1MSAvKiBET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaCAqLzsgfTsKQEAgLTk2NzIsNiAr
OTY3NCw4IEBACiAJCTUxN0E2M0MwMUI3NDMxN0UwMEU3RENEQyAvKiBLZXllZERlY29kZXJDRi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLZXllZERlY29kZXJDRi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdBNjNDMTFCNzQzMTdFMDBFN0RDREMgLyogS2V5
ZWRFbmNvZGVyQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS2V5
ZWRFbmNvZGVyQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdBNjNDMjFC
NzQzMTdFMDBFN0RDREMgLyogS2V5ZWRFbmNvZGVyQ0YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gS2V5ZWRFbmNvZGVyQ0YuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTE3QjI1QTcxQ0M4MjAzMjAwNjFDMDExIC8qIElEQkNvbm5lY3Rpb25Qcm94eS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJDb25uZWN0aW9uUHJveHkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdCMjVBODFDQzgyMDMyMDA2MUMwMTEg
LyogSURCQ29ubmVjdGlvblByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IElEQkNvbm5lY3Rpb25Qcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdG
QkExNzE1MUFBNzFCMDBCNTc5NTkgLyogRE9NV2luZG93RXh0ZW5zaW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVdpbmRvd0V4dGVuc2lvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0ZCQTE4MTUxQUE3MUIwMEI1Nzk1OSAvKiBET01X
aW5kb3dFeHRlbnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2lu
ZG93RXh0ZW5zaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODVGQ0I2MUJC
NEM3NjEwMDEyODk4RiAvKiBET01SZXF1ZXN0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NUmVxdWVzdFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNzIyMyw2ICsxNzIyNyw4IEBACiAJCTUxMDMxMDQyMUJBOEM2NEMwMDMzMjlDMCAvKiBj
bGllbnQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTUx
N0IyNUE3MUNDODIwMzIwMDYxQzAxMSAvKiBJREJDb25uZWN0aW9uUHJveHkuY3BwICovLAorCQkJ
CTUxN0IyNUE4MUNDODIwMzIwMDYxQzAxMSAvKiBJREJDb25uZWN0aW9uUHJveHkuaCAqLywKIAkJ
CQk1MTg1RkNCQzFCQjVDQjc3MDAxMjg5OEYgLyogSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCAq
LywKIAkJCQk1MTBBNThGRDFCQjA3QTk2MDBDMTkyODIgLyogSURCQ29ubmVjdGlvblRvU2VydmVy
LmggKi8sCiAJCQkJNTE4NUZDQkQxQkI1Q0I3NzAwMTI4OThGIC8qIElEQkNvbm5lY3Rpb25Ub1Nl
cnZlckRlbGVnYXRlLmggKi8sCkBAIC0yODM5Niw2ICsyODQwMiw3IEBACiAJCQkJMkQyMzJDMDAx
QTMyNkYwMjAwNkJGMkRCIC8qIFRVQ2FsbFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzM3NUQ3
RkUxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ2
QTJCMUMxN0NBNjVCOTAwMERCQ0Q4IC8qIFR5cGVkRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QjI1QUExQ0M4MkIyQTAwNjFDMDExIC8qIElEQkNvbm5l
Y3Rpb25Qcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMUEwOTlFNjQ5MjAwNTZFNTgx
IC8qIFR5cGluZ0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjRFMEE0NEVGQzcw
MEY5OTJFMCAvKiBVSUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI0RjBBNDRFRkM3
MDBGOTkyRTAgLyogVUlFdmVudFdpdGhLZXlTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDU1
Nyw2ICszMDU2NCw3IEBACiAJCQkJNDE0N0UyQjgxQzg5OTEyRjAwQTdFNzE1IC8qIEZldGNoQm9k
eU93bmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVFMkM0MzZCMUJDRjA3MUUwMDAxRTJCQyAv
KiBKU1JUQ1RyYWNrRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFQzAxQzIwQzI3NERE
RDAwOUY0RUM5IC8qIEpTU2NyZWVuLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxN0IyNUE5MUND
ODJCMkEwMDYxQzAxMSAvKiBJREJDb25uZWN0aW9uUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkRBMTVFQ0QxMkIwM0Y2MTAwM0E1ODNBIC8qIEpTU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5RkEzN0VGQTExNzJGREE2MDBDNENENTUgLyogSlNTY3JpcHRQ
cm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlGQTM3RUZDMTE3MkZEQTYwMEM0Q0Q1NSAv
KiBKU1NjcmlwdFByb2ZpbGVOb2RlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggZmYwYWQ1Zi4uY2VlNWY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC0yMDEsNiArMjAxLDExIEBACiAjaW5jbHVkZSAiUmVuZGVyRnVsbFNjcmVlbi5oIgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyNpbmNsdWRlICJJREJDb25uZWN0aW9u
UHJveHkuaCIKKyNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0LmgiCisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKElPUykKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJEZXZp
Y2VNb3Rpb25DbGllbnRJT1MuaCIKQEAgLTMxMDMsNiArMzEwOCwyMSBAQCB2b2lkIERvY3VtZW50
OjpkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKICAgICBmcmFtZSgpLT5z
Y3JpcHQoKS5kaXNhYmxlRXZhbChlcnJvck1lc3NhZ2UpOwogfQogCisjaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCitJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogRG9jdW1lbnQ6Omlk
YkNvbm5lY3Rpb25Qcm94eSgpCit7CisgICAgaWYgKCFtX2lkYkNvbm5lY3Rpb25Qcm94eSkgewor
ICAgICAgICBQYWdlKiBjdXJyZW50UGFnZSA9IHBhZ2UoKTsKKyAgICAgICAgaWYgKCFjdXJyZW50
UGFnZSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAgIG1faWRiQ29ubmVj
dGlvblByb3h5ID0gc3RkOjptYWtlX3VuaXF1ZTxJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94
eT4oY3VycmVudFBhZ2UtPmlkYkNvbm5lY3Rpb24oKSk7CisgICAgfQorCisgICAgcmV0dXJuIG1f
aWRiQ29ubmVjdGlvblByb3h5LmdldCgpOworfQorI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQorCiBib29sIERvY3VtZW50OjpjYW5OYXZpZ2F0ZShGcmFtZSogdGFyZ2V0RnJhbWUp
CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBlOTUxMTk1Li40
MjRkZjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMyw3ICszLDcgQEAKICAqICAgICAgICAg
ICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAg
ICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKICAqICAgICAgICAgICAo
QykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQotICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTAsIDIwMTItMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxMCwgMjAxMi0yMDEzLCAyMDE1LCAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCwg
MjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50
b3JjaG1vYmlsZS5jb20vKQogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0yNSw4ICsyNSw3IEBACiAgKgogICovCiAK
LSNpZm5kZWYgRG9jdW1lbnRfaAotI2RlZmluZSBEb2N1bWVudF9oCisjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgIkNvbGxlY3Rpb25UeXBlLmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKQEAgLTY2MSw2
ICs2NjAsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSkgZmluYWw7CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyAg
ICBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5KCkgZmlu
YWw7CisjZW5kaWYKKwogICAgIGJvb2wgY2FuTmF2aWdhdGUoRnJhbWUqIHRhcmdldEZyYW1lKTsK
ICAgICBGcmFtZSogZmluZFVuc2FmZVBhcmVudFNjcm9sbFByb3BhZ2F0aW9uQm91bmRhcnkoKTsK
IApAQCAtMTc3Niw2ICsxNzc5LDEwIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKICAgICBib29sIG1faGFzSGFkQWN0aXZlTWVkaWFTdHJlYW1UcmFjayB7IGZhbHNlIH07CiAj
ZW5kaWYKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIHN0ZDo6dW5pcXVlX3B0
cjxJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eT4gbV9pZGJDb25uZWN0aW9uUHJveHk7Cisj
ZW5kaWYKIH07CiAKIGlubGluZSB2b2lkIERvY3VtZW50Ojpub3RpZnlSZW1vdmVQZW5kaW5nU2hl
ZXRJZk5lZWRlZCgpCkBAIC0xODE4LDUgKzE4MjUsMyBAQCBTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0JFR0lOKFdlYkNvcmU6OkRvY3VtZW50KQogICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7IHJldHVybiBjb250ZXh0
LmlzRG9jdW1lbnQoKTsgfQogICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpO
b2RlJiBub2RlKSB7IHJldHVybiBub2RlLmlzRG9jdW1lbnROb2RlKCk7IH0KIFNQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfRU5EKCkKLQotI2VuZGlmIC8vIERvY3VtZW50X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDYzZjEwNmYuLmU5MmMwZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtNTUsNiAr
NTUsMTAgQEAgY2xhc3MgUHVibGljVVJMTWFuYWdlcjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwog
Y2xhc3MgVVJMOwogCituYW1lc3BhY2UgSURCQ2xpZW50IHsKK2NsYXNzIElEQkNvbm5lY3Rpb25Q
cm94eTsKK30KKwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCA6IHB1YmxpYyBTZWN1cml0
eUNvbnRleHQgewogcHVibGljOgogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTcz
LDYgKzc3LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbChjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgPSAwOwogCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCisgICAgdmlydHVhbCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogaWRiQ29ubmVj
dGlvblByb3h5KCkgPSAwOworI2VuZGlmCisKICAgICBib29sIHNhbml0aXplU2NyaXB0RXJyb3Io
U3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCYgbGluZU51bWJlciwgaW50JiBjb2x1bW5OdW1iZXIs
IFN0cmluZyYgc291cmNlVVJMLCBDYWNoZWRTY3JpcHQqID0gbnVsbHB0cik7CiAgICAgdm9pZCBy
ZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVy
LCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUmVmUHRyPEluc3Bl
Y3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmLCBDYWNoZWRTY3JpcHQqID0gbnVsbHB0cik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQu
Y3BwCmluZGV4IDcxYzQxYTIuLjg0NWUwZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtMjA2LDcgKzIwNiw3IEBA
IHByaXZhdGU6CiB2b2lkIEV4ZWN1dGFibGVXaXRoRGF0YWJhc2U6OnN0YXJ0KElEQkZhY3Rvcnkq
IGlkYkZhY3RvcnksIFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUp
CiB7CiAgICAgUmVmPE9wZW5EYXRhYmFzZUNhbGxiYWNrPiBjYWxsYmFjayA9IE9wZW5EYXRhYmFz
ZUNhbGxiYWNrOjpjcmVhdGUodGhpcyk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAg
RXhjZXB0aW9uQ29kZVdpdGhNZXNzYWdlIGVjOwogCiAgICAgaWYgKCFjb250ZXh0KCkpIHsKICAg
ICAgICAgcmVxdWVzdENhbGxiYWNrKCkuc2VuZEZhaWx1cmUoIkNvdWxkIG5vdCBvcGVuIGRhdGFi
YXNlLiIpOwpAQCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQgRXhlY3V0YWJsZVdpdGhEYXRhYmFzZTo6
c3RhcnQoSURCRmFjdG9yeSogaWRiRmFjdG9yeSwgU2VjdXJpdHlPcmlnaW4qLCBjb25zCiAgICAg
fQogCiAgICAgUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IGlkYk9wZW5EQlJlcXVlc3QgPSBpZGJG
YWN0b3J5LT5vcGVuKCpjb250ZXh0KCksIGRhdGFiYXNlTmFtZSwgZWMpOwotICAgIGlmIChlYykg
eworICAgIGlmIChlYy5jb2RlKSB7CiAgICAgICAgIHJlcXVlc3RDYWxsYmFjaygpLnNlbmRGYWls
dXJlKCJDb3VsZCBub3Qgb3BlbiBkYXRhYmFzZS4iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggNmVl
MDZiMy4uZWU4ZDc3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxT
Y29wZS5jcHAKQEAgLTExMiw2ICsxMTIsMTUgQEAgdm9pZCBXb3JrZXJHbG9iYWxTY29wZTo6ZGlz
YWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiAgICAgbV9zY3JpcHQtPmRpc2Fi
bGVFdmFsKGVycm9yTWVzc2FnZSk7CiB9CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
K0lEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBXb3JrZXJHbG9iYWxTY29wZTo6aWRiQ29u
bmVjdGlvblByb3h5KCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50CisKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKwogV29ya2Vy
TG9jYXRpb24qIFdvcmtlckdsb2JhbFNjb3BlOjpsb2NhdGlvbigpIGNvbnN0CiB7CiAgICAgaWYg
KCFtX2xvY2F0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5o
CmluZGV4IGZlYWQ2NGEuLjI1OWY1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmgKQEAgLTcwLDYgKzcwLDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlz
YWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIG92ZXJyaWRlOwogCisjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCisgICAgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkq
IGlkYkNvbm5lY3Rpb25Qcm94eSgpIGZpbmFsOworI2VuZGlmCisKICAgICBib29sIHNob3VsZEJ5
cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5OyB9CiAKICAgICBX
b3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsg
fQo=
</data>
<flag name="review"
          id="301131"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>