<?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>134257</bug_id>
          
          <creation_ts>2014-06-24 11:50:23 -0700</creation_ts>
          <short_desc>[iOS]: WK2 Inspector Node Highlighting</short_desc>
          <delta_ts>2014-06-24 16:50:43 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1018027</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-06-24 11:50:23 -0700</bug_when>
    <thetext>Hovering nodes in the inspector is not highlighting them on the page. Inspector node highlighting needs to be hooked up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018073</commentid>
    <comment_count>1</comment_count>
      <attachid>233732</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-06-24 13:15:17 -0700</bug_when>
    <thetext>Created attachment 233732
[PATCH] Proposed Fix

I decided to do this in the UIProcess so we can keep the CAShapeLayer approach like iOS WK1. Tested iOS WK1 and WK2 and both behave as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018080</commentid>
    <comment_count>2</comment_count>
      <attachid>233735</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-06-24 13:29:27 -0700</bug_when>
    <thetext>Created attachment 233735
[PATCH] Proposed Fix

Rebaselined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018093</commentid>
    <comment_count>3</comment_count>
      <attachid>233739</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-06-24 14:17:07 -0700</bug_when>
    <thetext>Created attachment 233739
[PATCH] For Windows Symbol

For windows to get new symbol name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018109</commentid>
    <comment_count>4</comment_count>
      <attachid>233744</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-06-24 14:57:19 -0700</bug_when>
    <thetext>Created attachment 233744
[PATCH] With New Windows Symbol</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018175</commentid>
    <comment_count>5</comment_count>
      <attachid>233744</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-24 16:50:38 -0700</bug_when>
    <thetext>Comment on attachment 233744
[PATCH] With New Windows Symbol

Clearing flags on attachment: 233744

Committed r170406: &lt;http://trac.webkit.org/changeset/170406&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018176</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-24 16:50:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233732</attachid>
            <date>2014-06-24 13:15:17 -0700</date>
            <delta_ts>2014-06-24 13:29:27 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>highlight.patch</filename>
            <type>text/plain</type>
            <size>40852</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkMDY4NzBiLi40MjgzM2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTQtMDYtMjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbaU9TXTogV0syIEluc3BlY3RvciBOb2RlIEhpZ2hsaWdodGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MjU3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBjbGllbnRzIHdhbnQg
dG8gZ2V0IGhpZ2hsaWdodHMgd2l0aCB0aGUgc2Nyb2xsIGFwcGxpZWQsCisgICAgICAgIG90aGVy
cyBkbyBub3QuIFByb3ZpZGUgYSBDb29yZGluYXRlU3BhY2UgcGFyYW0gdG8gYmUgdXNlZCBmb3IK
KyAgICAgICAgZ2V0dGluZyBhIGhpZ2hsaWdodCAob25seSB1c2VkIG9uIGlPUykuCisKKyAgICAg
ICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpnZXRIaWdo
bGlnaHQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yT3ZlcmxheTo6Z2V0SGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
T2JqZWN0Rm9yUmVuZGVyZXJGcmFnbWVudHMpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JPdmVybGF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHQ6OkhpZ2hsaWdodCk6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjppbnNwZWN0b3JIaWdobGlnaHRSZWN0cyk6CisKIDIwMTQtMDYtMjMgIEpvc2VwaCBQZWNv
cmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWR1Y2Ugc3luY2hyb25vdXMg
bGF5b3V0IHRyaWdnZXJlZCBieSBKYXZhU2NyaXB0LWJhc2VkIG1lZGlhIGNvbnRyb2xzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCmluZGV4IDQ3ZjczMTEuLjA5NGRiMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CkBAIC0xNzg0LDcgKzE3ODQsNyBAQCBfX1pOSzdXZWJDb3JlMTlBbmltYXRpb25Db250cm9sbGVy
MzNhbGxvd3NOZXdBbmltYXRpb25zV2hpbGVTdXNwZW5kZWRFdgogX19aTks3V2ViQ29yZTE5SFRN
TE9wdEdyb3VwRWxlbWVudDE0Z3JvdXBMYWJlbFRleHRFdgogX19aTks3V2ViQ29yZTE5SFRNTFRl
eHRBcmVhRWxlbWVudDV2YWx1ZUV2CiBfX1pOSzdXZWJDb3JlMTlJREJEYXRhYmFzZU1ldGFkYXRh
MTJpc29sYXRlZENvcHlFdgotX19aTks3V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjEyZ2V0
SGlnaGxpZ2h0RVBOU185SGlnaGxpZ2h0RQorX19aTks3V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJv
bGxlcjEyZ2V0SGlnaGxpZ2h0RVBOU185SGlnaGxpZ2h0RU5TXzE2SW5zcGVjdG9yT3ZlcmxheTE2
Q29vcmRpbmF0ZVN5c3RlbUUKIF9fWk5LN1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIyOWJ1
aWxkT2JqZWN0Rm9ySGlnaGxpZ2h0ZWROb2RlRXYKIF9fWk5LN1dlYkNvcmUxOU1lZGlhU2Vzc2lv
bk1hbmFnZXIzMGFwcGxpY2F0aW9uV2lsbEVudGVyQmFja2dyb3VuZEV2CiBfX1pOSzdXZWJDb3Jl
MTlNZWRpYVNlc3Npb25NYW5hZ2VyMzBhcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmRFdgpA
QCAtMzE1MCw3ICszMTUwLDYgQEAgX19aTks3V2ViQ29yZTlET01XaW5kb3c4ZG9jdW1lbnRFdgog
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikgJiYgUExBVEZPUk0oSU9TKQogX19aTjdXZWJDb3JlMTZm
aW5kSW50ZXJzZWN0aW9uRVJLTlNfMTBGbG9hdFBvaW50RVMyX1MyX1MyX1JTMF8KLV9fWk5LN1dl
YkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxMmdldEhpZ2hsaWdodEVQTlNfOUhpZ2hsaWdodEUK
IF9fWk5LN1dlYkNvcmU5RmxvYXRRdWFkMTJjb250YWluc1F1YWRFUktTMF8KIF9fWk5LN1dlYkNv
cmU5RmxvYXRRdWFkMTNjb250YWluc1BvaW50RVJLTlNfMTBGbG9hdFBvaW50RQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5k
ZXggM2JhZDk0Mi4uOGQxNTAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMzE4LDkgKzMxOCw5IEBAIHZvaWQgSW5zcGVjdG9y
Q29udHJvbGxlcjo6ZHJhd0hpZ2hsaWdodChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0
CiAgICAgbV9vdmVybGF5LT5wYWludChjb250ZXh0KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpnZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiBoaWdobGlnaHQpIGNvbnN0Cit2b2lkIElu
c3BlY3RvckNvbnRyb2xsZXI6OmdldEhpZ2hsaWdodChIaWdobGlnaHQqIGhpZ2hsaWdodCwgSW5z
cGVjdG9yT3ZlcmxheTo6Q29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtKSBjb25zdAog
ewotICAgIG1fb3ZlcmxheS0+Z2V0SGlnaGxpZ2h0KGhpZ2hsaWdodCk7CisgICAgbV9vdmVybGF5
LT5nZXRIaWdobGlnaHQoaGlnaGxpZ2h0LCBjb29yZGluYXRlU3lzdGVtKTsKIH0KIAogUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IEluc3BlY3RvckNvbnRyb2xsZXI6OmJ1aWxkT2JqZWN0Rm9y
SGlnaGxpZ2h0ZWROb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDk5MjgxZWUuLmMyODg2NjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMzQsNiArMzQsNyBA
QAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25Db29raWUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCiAjaW5jbHVkZSA8
aW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3Iv
SW5zcGVjdG9yRW52aXJvbm1lbnQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNTks
NyArNjAsNiBAQCBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JET01BZ2Vu
dDsKIGNsYXNzIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JGcm9u
dGVuZENsaWVudDsKLWNsYXNzIEluc3BlY3Rvck92ZXJsYXk7CiBjbGFzcyBJbnNwZWN0b3JQYWdl
QWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OwogY2xhc3MgSW5zdHJ1bWVudGlu
Z0FnZW50czsKQEAgLTY3LDcgKzY3LDYgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFBhZ2U7CiBjbGFz
cyBQYWdlRGVidWdnZXJBZ2VudDsKIGNsYXNzIFdlYkluamVjdGVkU2NyaXB0TWFuYWdlcjsKLXN0
cnVjdCBIaWdobGlnaHQ7CiAKIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXIgZmluYWwgOiBwdWJs
aWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JFbnZpcm9ubWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoSW5zcGVjdG9yQ29udHJvbGxlcik7CkBAIC0xMDQsNyArMTAzLDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCBpbnNwZWN0KE5vZGUqKTsKICAgICB2b2lkIGRyYXdIaWdobGlnaHQoR3JhcGhp
Y3NDb250ZXh0JikgY29uc3Q7Ci0gICAgdm9pZCBnZXRIaWdobGlnaHQoSGlnaGxpZ2h0KikgY29u
c3Q7CisgICAgdm9pZCBnZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiwgSW5zcGVjdG9yT3ZlcmxheTo6
Q29vcmRpbmF0ZVN5c3RlbSkgY29uc3Q7CiAgICAgdm9pZCBoaWRlSGlnaGxpZ2h0KCk7CiAgICAg
Tm9kZSogaGlnaGxpZ2h0ZWROb2RlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCA0MTQxYjcxLi5iODk5YzJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC0xMDAsMTYg
KzEwMCwyMyBAQCB2b2lkIGRyYXdPdXRsaW5lZFF1YWQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBGbG9hdFF1YWQmIHF1YWQsIGNvbnN0IENvbAogICAgIGNvbnRleHQtPmZpbGxQYXRo
KHF1YWRQYXRoKTsKIH0KIAotc3RhdGljIHZvaWQgY29udGVudHNRdWFkVG9QYWdlKGNvbnN0IEZy
YW1lVmlldyogbWFpblZpZXcsIGNvbnN0IEZyYW1lVmlldyogdmlldywgRmxvYXRRdWFkJiBxdWFk
KQorc3RhdGljIHZvaWQgY29udGVudHNRdWFkVG9Db29yZGluYXRlU3lzdGVtKGNvbnN0IEZyYW1l
VmlldyogbWFpblZpZXcsIGNvbnN0IEZyYW1lVmlldyogdmlldywgRmxvYXRRdWFkJiBxdWFkLCBJ
bnNwZWN0b3JPdmVybGF5OjpDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pCiB7CiAg
ICAgcXVhZC5zZXRQMSh2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocm91bmRlZEludFBvaW50KHF1
YWQucDEoKSkpKTsKICAgICBxdWFkLnNldFAyKHZpZXctPmNvbnRlbnRzVG9Sb290Vmlldyhyb3Vu
ZGVkSW50UG9pbnQocXVhZC5wMigpKSkpOwogICAgIHF1YWQuc2V0UDModmlldy0+Y29udGVudHNU
b1Jvb3RWaWV3KHJvdW5kZWRJbnRQb2ludChxdWFkLnAzKCkpKSk7CiAgICAgcXVhZC5zZXRQNCh2
aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocm91bmRlZEludFBvaW50KHF1YWQucDQoKSkpKTsKLSAg
ICBxdWFkICs9IG1haW5WaWV3LT5zY3JvbGxPZmZzZXQoKTsKKworICAgIGlmIChjb29yZGluYXRl
U3lzdGVtID09IEluc3BlY3Rvck92ZXJsYXk6OkNvb3JkaW5hdGVTeXN0ZW06OlZpZXcpCisgICAg
ICAgIHF1YWQgKz0gbWFpblZpZXctPnNjcm9sbE9mZnNldCgpOworfQorCitzdGF0aWMgdm9pZCBj
b250ZW50c1F1YWRUb1BhZ2UoY29uc3QgRnJhbWVWaWV3KiBtYWluVmlldywgY29uc3QgRnJhbWVW
aWV3KiB2aWV3LCBGbG9hdFF1YWQmIHF1YWQpCit7CisgICAgY29udGVudHNRdWFkVG9Db29yZGlu
YXRlU3lzdGVtKG1haW5WaWV3LCB2aWV3LCBxdWFkLCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGlu
YXRlU3lzdGVtOjpWaWV3KTsKIH0KIAotc3RhdGljIHZvaWQgYnVpbGRSZW5kZXJlckhpZ2hsaWdo
dChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgY29uc3QgSGln
aGxpZ2h0Q29uZmlnJiBoaWdobGlnaHRDb25maWcsIEhpZ2hsaWdodCogaGlnaGxpZ2h0KQorc3Rh
dGljIHZvaWQgYnVpbGRSZW5kZXJlckhpZ2hsaWdodChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBS
ZW5kZXJSZWdpb24qIHJlZ2lvbiwgY29uc3QgSGlnaGxpZ2h0Q29uZmlnJiBoaWdobGlnaHRDb25m
aWcsIEhpZ2hsaWdodCogaGlnaGxpZ2h0LCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGluYXRlU3lz
dGVtIGNvb3JkaW5hdGVTeXN0ZW0pCiB7CiAgICAgRnJhbWUqIGNvbnRhaW5pbmdGcmFtZSA9IHJl
bmRlcmVyLT5kb2N1bWVudCgpLmZyYW1lKCk7CiAgICAgaWYgKCFjb250YWluaW5nRnJhbWUpCkBA
IC0xMjYsNyArMTMzLDcgQEAgc3RhdGljIHZvaWQgYnVpbGRSZW5kZXJlckhpZ2hsaWdodChSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwKICAgICAgICAgaGlnaGxp
Z2h0LT50eXBlID0gSGlnaGxpZ2h0VHlwZVJlY3RzOwogICAgICAgICByZW5kZXJlci0+YWJzb2x1
dGVRdWFkcyhoaWdobGlnaHQtPnF1YWRzKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBoaWdobGlnaHQtPnF1YWRzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgY29udGVudHNRdWFk
VG9QYWdlKG1haW5WaWV3LCBjb250YWluaW5nVmlldywgaGlnaGxpZ2h0LT5xdWFkc1tpXSk7Cisg
ICAgICAgICAgICBjb250ZW50c1F1YWRUb0Nvb3JkaW5hdGVTeXN0ZW0obWFpblZpZXcsIGNvbnRh
aW5pbmdWaWV3LCBoaWdobGlnaHQtPnF1YWRzW2ldLCBjb29yZGluYXRlU3lzdGVtKTsKICAgICB9
IGVsc2UgaWYgKHJlbmRlcmVyLT5pc0JveCgpIHx8IHJlbmRlcmVyLT5pc1JlbmRlcklubGluZSgp
KSB7CiAgICAgICAgIExheW91dFJlY3QgY29udGVudEJveDsKICAgICAgICAgTGF5b3V0UmVjdCBw
YWRkaW5nQm94OwpAQCAtMjAyLDEwICsyMDksMTAgQEAgc3RhdGljIHZvaWQgYnVpbGRSZW5kZXJl
ckhpZ2hsaWdodChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwK
ICAgICAgICAgICAgIGFic01hcmdpblF1YWQgPSByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlUXVh
ZChGbG9hdFJlY3QobWFyZ2luQm94KSk7CiAgICAgICAgIH0KIAotICAgICAgICBjb250ZW50c1F1
YWRUb1BhZ2UobWFpblZpZXcsIGNvbnRhaW5pbmdWaWV3LCBhYnNDb250ZW50UXVhZCk7Ci0gICAg
ICAgIGNvbnRlbnRzUXVhZFRvUGFnZShtYWluVmlldywgY29udGFpbmluZ1ZpZXcsIGFic1BhZGRp
bmdRdWFkKTsKLSAgICAgICAgY29udGVudHNRdWFkVG9QYWdlKG1haW5WaWV3LCBjb250YWluaW5n
VmlldywgYWJzQm9yZGVyUXVhZCk7Ci0gICAgICAgIGNvbnRlbnRzUXVhZFRvUGFnZShtYWluVmll
dywgY29udGFpbmluZ1ZpZXcsIGFic01hcmdpblF1YWQpOworICAgICAgICBjb250ZW50c1F1YWRU
b0Nvb3JkaW5hdGVTeXN0ZW0obWFpblZpZXcsIGNvbnRhaW5pbmdWaWV3LCBhYnNDb250ZW50UXVh
ZCwgY29vcmRpbmF0ZVN5c3RlbSk7CisgICAgICAgIGNvbnRlbnRzUXVhZFRvQ29vcmRpbmF0ZVN5
c3RlbShtYWluVmlldywgY29udGFpbmluZ1ZpZXcsIGFic1BhZGRpbmdRdWFkLCBjb29yZGluYXRl
U3lzdGVtKTsKKyAgICAgICAgY29udGVudHNRdWFkVG9Db29yZGluYXRlU3lzdGVtKG1haW5WaWV3
LCBjb250YWluaW5nVmlldywgYWJzQm9yZGVyUXVhZCwgY29vcmRpbmF0ZVN5c3RlbSk7CisgICAg
ICAgIGNvbnRlbnRzUXVhZFRvQ29vcmRpbmF0ZVN5c3RlbShtYWluVmlldywgY29udGFpbmluZ1Zp
ZXcsIGFic01hcmdpblF1YWQsIGNvb3JkaW5hdGVTeXN0ZW0pOwogCiAgICAgICAgIGhpZ2hsaWdo
dC0+dHlwZSA9IEhpZ2hsaWdodFR5cGVOb2RlOwogICAgICAgICBoaWdobGlnaHQtPnF1YWRzLmFw
cGVuZChhYnNNYXJnaW5RdWFkKTsKQEAgLTIxNSwxMiArMjIyLDEyIEBAIHN0YXRpYyB2b2lkIGJ1
aWxkUmVuZGVyZXJIaWdobGlnaHQoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgUmVuZGVyUmVnaW9u
KiByZWdpb24sCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBidWlsZE5vZGVIaWdobGlnaHQoTm9k
ZSogbm9kZSwgUmVuZGVyUmVnaW9uKiByZWdpb24sIGNvbnN0IEhpZ2hsaWdodENvbmZpZyYgaGln
aGxpZ2h0Q29uZmlnLCBIaWdobGlnaHQqIGhpZ2hsaWdodCkKK3N0YXRpYyB2b2lkIGJ1aWxkTm9k
ZUhpZ2hsaWdodChOb2RlKiBub2RlLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgY29uc3QgSGlnaGxp
Z2h0Q29uZmlnJiBoaWdobGlnaHRDb25maWcsIEhpZ2hsaWdodCogaGlnaGxpZ2h0LCBJbnNwZWN0
b3JPdmVybGF5OjpDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pCiB7CiAgICAgUmVu
ZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJl
cikKICAgICAgICAgcmV0dXJuOwotICAgIGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQocmVuZGVyZXIs
IHJlZ2lvbiwgaGlnaGxpZ2h0Q29uZmlnLCBoaWdobGlnaHQpOworICAgIGJ1aWxkUmVuZGVyZXJI
aWdobGlnaHQocmVuZGVyZXIsIHJlZ2lvbiwgaGlnaGxpZ2h0Q29uZmlnLCBoaWdobGlnaHQsIGNv
b3JkaW5hdGVTeXN0ZW0pOwogfQogCiBzdGF0aWMgdm9pZCBidWlsZFF1YWRIaWdobGlnaHQoY29u
c3QgRmxvYXRRdWFkJiBxdWFkLCBjb25zdCBIaWdobGlnaHRDb25maWcmIGhpZ2hsaWdodENvbmZp
ZywgSGlnaGxpZ2h0ICpoaWdobGlnaHQpCkBAIC0yNjAsMTQgKzI2NywxNCBAQCB2b2lkIEluc3Bl
Y3Rvck92ZXJsYXk6OmRyYXdPdXRsaW5lKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
TGF5b3V0UmVjdCYgcgogICAgIGRyYXdPdXRsaW5lZFF1YWQoY29udGV4dCwgb3V0bGluZVJlY3Qs
IENvbG9yKCksIGNvbG9yKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpnZXRIaWdobGln
aHQoSGlnaGxpZ2h0KiBoaWdobGlnaHQpIGNvbnN0Cit2b2lkIEluc3BlY3Rvck92ZXJsYXk6Omdl
dEhpZ2hsaWdodChIaWdobGlnaHQqIGhpZ2hsaWdodCwgSW5zcGVjdG9yT3ZlcmxheTo6Q29vcmRp
bmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtKSBjb25zdAogewogICAgIGlmICghbV9oaWdobGln
aHROb2RlICYmICFtX2hpZ2hsaWdodFF1YWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGhpZ2hs
aWdodC0+dHlwZSA9IEhpZ2hsaWdodFR5cGVSZWN0czsKICAgICBpZiAobV9oaWdobGlnaHROb2Rl
KQotICAgICAgICBidWlsZE5vZGVIaWdobGlnaHQobV9oaWdobGlnaHROb2RlLmdldCgpLCBudWxs
cHRyLCBtX25vZGVIaWdobGlnaHRDb25maWcsIGhpZ2hsaWdodCk7CisgICAgICAgIGJ1aWxkTm9k
ZUhpZ2hsaWdodChtX2hpZ2hsaWdodE5vZGUuZ2V0KCksIG51bGxwdHIsIG1fbm9kZUhpZ2hsaWdo
dENvbmZpZywgaGlnaGxpZ2h0LCBjb29yZGluYXRlU3lzdGVtKTsKICAgICBlbHNlCiAgICAgICAg
IGJ1aWxkUXVhZEhpZ2hsaWdodCgqbV9oaWdobGlnaHRRdWFkLCBtX3F1YWRIaWdobGlnaHRDb25m
aWcsIGhpZ2hsaWdodCk7CiB9CkBAIC01MDgsNyArNTE1LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8
SW5zcGVjdG9yQXJyYXk+IGJ1aWxkT2JqZWN0Rm9yUmVuZGVyZXJGcmFnbWVudHMoUmVuZGVyT2Jq
ZWN0KgogICAgIFJlbmRlckZsb3dUaHJlYWQqIGNvbnRhaW5pbmdGbG93VGhyZWFkID0gcmVuZGVy
ZXItPmZsb3dUaHJlYWRDb250YWluaW5nQmxvY2soKTsKICAgICBpZiAoIWNvbnRhaW5pbmdGbG93
VGhyZWFkKSB7CiAgICAgICAgIEhpZ2hsaWdodCBoaWdobGlnaHQ7Ci0gICAgICAgIGJ1aWxkUmVu
ZGVyZXJIaWdobGlnaHQocmVuZGVyZXIsIG51bGxwdHIsIGNvbmZpZywgJmhpZ2hsaWdodCk7Cisg
ICAgICAgIGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQocmVuZGVyZXIsIG51bGxwdHIsIGNvbmZpZywg
JmhpZ2hsaWdodCwgSW5zcGVjdG9yT3ZlcmxheTo6Q29vcmRpbmF0ZVN5c3RlbTo6Vmlldyk7CiAg
ICAgICAgIGZyYWdtZW50c0FycmF5LT5wdXNoT2JqZWN0KGJ1aWxkT2JqZWN0Rm9ySGlnaGxpZ2h0
KGhpZ2hsaWdodCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFJlbmRlclJlZ2lvbiogc3RhcnRS
ZWdpb24gPSBudWxscHRyOwpAQCAtNTI0LDcgKzUzMSw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPElu
c3BlY3RvckFycmF5PiBidWlsZE9iamVjdEZvclJlbmRlcmVyRnJhZ21lbnRzKFJlbmRlck9iamVj
dCoKICAgICAgICAgICAgIGlmIChyZWdpb24tPmlzVmFsaWQoKSkgewogICAgICAgICAgICAgICAg
IC8vIENvbXB1dGUgdGhlIGhpZ2hsaWdodCBvZiB0aGUgZnJhZ21lbnQgaW5zaWRlIHRoZSBjdXJy
ZW50IHJlZ2lvbi4KICAgICAgICAgICAgICAgICBIaWdobGlnaHQgaGlnaGxpZ2h0OwotICAgICAg
ICAgICAgICAgIGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQocmVuZGVyZXIsIHJlZ2lvbiwgY29uZmln
LCAmaGlnaGxpZ2h0KTsKKyAgICAgICAgICAgICAgICBidWlsZFJlbmRlcmVySGlnaGxpZ2h0KHJl
bmRlcmVyLCByZWdpb24sIGNvbmZpZywgJmhpZ2hsaWdodCwgSW5zcGVjdG9yT3ZlcmxheTo6Q29v
cmRpbmF0ZVN5c3RlbTo6Vmlldyk7CiAgICAgICAgICAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gZnJhZ21lbnRPYmplY3QgPSBidWlsZE9iamVjdEZvckhpZ2hsaWdodChoaWdobGlnaHQp
OwogCiAgICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSB0aGUgY2xpcHBpbmcgYXJlYSBvZiB0aGUg
cmVnaW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92
ZXJsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmgKaW5k
ZXggM2VjMDdkZi4uMTkzYWM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvck92ZXJsYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yT3ZlcmxheS5oCkBAIC03MCw2ICs3MCw3IEBAIGVudW0gSGlnaGxpZ2h0VHlwZSB7CiBzdHJ1
Y3QgSGlnaGxpZ2h0IHsKICAgICBIaWdobGlnaHQoKQogICAgICAgICA6IHR5cGUoSGlnaGxpZ2h0
VHlwZU5vZGUpCisgICAgICAgICwgdXNlUGFnZUNvb3JkaW5hdGVzKHRydWUpCiAgICAgewogICAg
IH0KIApAQCAtMTAyLDEwICsxMDMsMTUgQEAgcHVibGljOgogICAgIEluc3BlY3Rvck92ZXJsYXko
UGFnZSYsIEluc3BlY3RvckNsaWVudCopOwogICAgIH5JbnNwZWN0b3JPdmVybGF5KCk7CiAKKyAg
ICBlbnVtIGNsYXNzIENvb3JkaW5hdGVTeXN0ZW0geworICAgICAgICBWaWV3LCAvLyBBZGp1c3Rz
IGZvciB0aGUgbWFpbiBmcmFtZSdzIHNjcm9sbCBvZmZzZXQuCisgICAgICAgIERvY3VtZW50LCAv
LyBEb2VzIG5vdCBhZGp1c3QgZm9yIHRoZSBtYWluIGZyYW1lJ3Mgc2Nyb2xsIG9mZnNldC4KKyAg
ICB9OworCiAgICAgdm9pZCB1cGRhdGUoKTsKICAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4
dCYpOwogICAgIHZvaWQgZHJhd091dGxpbmUoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0
UmVjdCYsIGNvbnN0IENvbG9yJik7Ci0gICAgdm9pZCBnZXRIaWdobGlnaHQoSGlnaGxpZ2h0Kikg
Y29uc3Q7CisgICAgdm9pZCBnZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiwgQ29vcmRpbmF0ZVN5c3Rl
bSkgY29uc3Q7CiAKICAgICB2b2lkIHNldFBhdXNlZEluRGVidWdnZXJNZXNzYWdlKGNvbnN0IFN0
cmluZyopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggOTYzMTc1OTcu
LmQwZTVkZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTcxNyw3ICs3
MTcsNyBAQCBQYXNzUmVmUHRyPENsaWVudFJlY3RMaXN0PiBJbnRlcm5hbHM6Omluc3BlY3Rvckhp
Z2hsaWdodFJlY3RzKEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0KIAogICAgIEhpZ2hsaWdodCBo
aWdobGlnaHQ7Ci0gICAgZG9jdW1lbnQtPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmdl
dEhpZ2hsaWdodCgmaGlnaGxpZ2h0KTsKKyAgICBkb2N1bWVudC0+cGFnZSgpLT5pbnNwZWN0b3JD
b250cm9sbGVyKCkuZ2V0SGlnaGxpZ2h0KCZoaWdobGlnaHQsIEluc3BlY3Rvck92ZXJsYXk6OkNv
b3JkaW5hdGVTeXN0ZW06OlZpZXcpOwogICAgIHJldHVybiBDbGllbnRSZWN0TGlzdDo6Y3JlYXRl
KGhpZ2hsaWdodC5xdWFkcyk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShlYyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggMTBkZTNhMy4uNTY4MTgwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDE0LTA2LTI0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CisKKyAgICAgICAgW2lPU106IFdLMiBJbnNwZWN0b3IgTm9kZSBIaWdobGlnaHRpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDI1NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViSW5zcGVjdG9y
L1dlYk5vZGVIaWdobGlnaHRWaWV3Lm1tOgorICAgICAgICAoLVtXZWJOb2RlSGlnaGxpZ2h0Vmll
dyBsYXlvdXRTdWJsYXllcnM6XSk6CisKIDIwMTQtMDYtMjMgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcubW0KaW5kZXgg
MjVmZmMzOS4uZmJlN2JhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVj
dG9yL1dlYk5vZGVIaWdobGlnaHRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYklu
c3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbQpAQCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRp
YyB2b2lkIGxheWVyUGF0aChDQVNoYXBlTGF5ZXIgKmxheWVyLCBjb25zdCBGbG9hdFF1YWQmIG91
dGVyUXVhZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgSGlnaGxpZ2h0IGg7Ci0gICAgW193ZWJO
b2RlSGlnaGxpZ2h0IGluc3BlY3RvckNvbnRyb2xsZXJdLT5nZXRIaWdobGlnaHQoJmgpOworICAg
IFtfd2ViTm9kZUhpZ2hsaWdodCBpbnNwZWN0b3JDb250cm9sbGVyXS0+Z2V0SGlnaGxpZ2h0KCZo
LCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGluYXRlU3lzdGVtOjpWaWV3KTsKIAogICAgIGlmICho
LnR5cGUgPT0gSGlnaGxpZ2h0VHlwZU5vZGUpCiAgICAgICAgIFtzZWxmIF9sYXlvdXRGb3JOb2Rl
SGlnaGxpZ2h0OiZoIHBhcmVudDpwYXJlbnRMYXllcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDk3Y2NmNi4u
MTA3ZTk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTA2LTI0ICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU106IFdLMiBJbnNw
ZWN0b3IgTm9kZSBIaWdobGlnaHRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzNDI1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5OgorICAgICAgICAo
c3RydWN0X29yX2NsYXNzKToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxIaWdobGln
aHQ+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEhpZ2hsaWdodD46OmRl
Y29kZSk6CisgICAgICAgIEFkZCBhIHdheSB0byBlbmNvZGUgYSBXZWJDb3JlOjpIaWdobGlnaHQg
c3RydWN0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5h
bC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX3Nob3dJbnNwZWN0b3JIaWdobGlnaHQ6V2ViQ29yZTo6XSk6CisgICAg
ICAgICgtW1dLV2ViVmlldyBfaGlkZUluc3BlY3RvckhpZ2hsaWdodF0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpzaG93SW5zcGVjdG9ySGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OmhpZGVJbnNwZWN0b3JIaWdobGlnaHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3dJ
bnNwZWN0b3JIaWdobGlnaHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhpZGVJ
bnNwZWN0b3JIaWdobGlnaHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViSW5zcGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yQ2xp
ZW50OjpoaWdobGlnaHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JDbGllbnQ6Omhp
ZGVIaWdobGlnaHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpzaG93SW5zcGVjdG9ySGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6aGlkZUluc3BlY3RvckhpZ2hsaWdodCk6CisgICAgICAgIFNlbmQgd2ViIHBy
b2Nlc3MgaGlnaGxpZ2h0IC8gaGlkZUhpZ2hsaWdodCBtZXNzYWdlcyB1cCB0bworICAgICAgICB0
aGUgVUlQcm9jZXNzIHNvIGl0IGNhbiBoaWdobGlnaHQgaW4gdGhlIFdLQ29udGVudFZpZXcuCisg
ICAgICAgIFBhc3MgdXAgYSBXZWJDb3JlOjpIaWdobGlnaHQgaW4gRG9jdW1lbnQgY29vcmRpbmF0
ZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06CisgICAgICAgICgtW1dLSW5zcGVjdG9y
SGlnaGxpZ2h0VmlldyBpbml0V2l0aEZyYW1lOl0pOgorICAgICAgICAoLVtXS0luc3BlY3Rvckhp
Z2hsaWdodFZpZXcgZGVhbGxvY10pOgorICAgICAgICAoLVtXS0luc3BlY3RvckhpZ2hsaWdodFZp
ZXcgX3JlbW92ZUFsbExheWVyc10pOgorICAgICAgICAoLVtXS0luc3BlY3RvckhpZ2hsaWdodFZp
ZXcgX2NyZWF0ZUxheWVyczpdKToKKyAgICAgICAgKGZpbmRJbnRlcnNlY3Rpb25PbkxpbmVCZXR3
ZWVuUG9pbnRzKToKKyAgICAgICAgKHF1YWRJbnRlcnNlY3Rpb24pOgorICAgICAgICAobGF5ZXJQ
YXRoV2l0aEhvbGUpOgorICAgICAgICAobGF5ZXJQYXRoKToKKyAgICAgICAgKC1bV0tJbnNwZWN0
b3JIaWdobGlnaHRWaWV3IF9sYXlvdXRGb3JOb2RlSGlnaGxpZ2h0Ol0pOgorICAgICAgICAoLVtX
S0luc3BlY3RvckhpZ2hsaWdodFZpZXcgX2xheW91dEZvclJlY3RzSGlnaGxpZ2h0Ol0pOgorICAg
ICAgICAoLVtXS0luc3BlY3RvckhpZ2hsaWdodFZpZXcgdXBkYXRlOl0pOgorICAgICAgICBSZXVz
ZSB0aGUgV2ViS2l0MSBjb2RlIHRvIHR1cm4gaGlnaGxpZ2h0IGZsb2F0IHF1YWRzIGludG8gQ0FT
aGFwZUxheWVycy4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zaG93SW5zcGVjdG9ySGln
aGxpZ2h0OldlYkNvcmU6Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9oaWRlSW5zcGVj
dG9ySGlnaGxpZ2h0XSk6CisgICAgICAgIFNob3cgYW5kIGhpZGUgdGhlIGhpZ2hsaWdodCB2aWV3
IHdpdGggdGhlIHJlc3BlY3RpdmUgV2ViQ29yZTo6SGlnaGxpZ2h0LgorCiAyMDE0LTA2LTIzICBE
YW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBObyB3YXkg
dG8gZ3JhbnQgc3RvcmFnZSBxdW90YXMgZm9yIFdlYlNRTApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDEzYTg2ODguLjczMmY0ZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTE2Miw2ICsxNjIsNyBAQCBk
ZWYgc3RydWN0X29yX2NsYXNzKG5hbWVzcGFjZSwgdHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpG
bG9hdFBvaW50M0QnLAogICAgICAgICAnV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncycsCiAg
ICAgICAgICdXZWJDb3JlOjpHcmFtbWFyRGV0YWlsJywKKyAgICAgICAgJ1dlYkNvcmU6OkhpZ2hs
aWdodCcsCiAgICAgICAgICdXZWJDb3JlOjpJREJEYXRhYmFzZU1ldGFkYXRhJywKICAgICAgICAg
J1dlYkNvcmU6OklEQkdldFJlc3VsdCcsCiAgICAgICAgICdXZWJDb3JlOjpJREJJbmRleE1ldGFk
YXRhJywKQEAgLTQyOCw2ICs0MjksNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAg
ICAgICAgJ1dlYkNvcmU6OktleWZyYW1lVmFsdWVMaXN0JzogWyc8V2ViQ29yZS9HcmFwaGljc0xh
eWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQnOiBbJzxXZWJDb3Jl
L0tleWJvYXJkRXZlbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGlu
Z3MnOiBbJzxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpIaWdo
bGlnaHQnOiBbJzxXZWJDb3JlL0luc3BlY3Rvck92ZXJsYXkuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OlBsdWdpbkluZm8nOiBbJzxXZWJDb3JlL1BsdWdpbkRhdGEuaD4nXSwKICAgICAgICAgJ1dl
YkNvcmU6OlBhc3RlYm9hcmRJbWFnZSc6IFsnPFdlYkNvcmUvUGFzdGVib2FyZC5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQnOiBbJzxXZWJDb3JlL1Bhc3RlYm9h
cmQuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKaW5kZXggZjkwYWFjOC4uYzRkNjdiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTc1LDYgKzc1LDcgQEAKIAogI2lmIFBM
QVRGT1JNKElPUykKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvSW5zcGVjdG9yT3ZlcmxheS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFzdGVib2FyZC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2VsZWN0aW9uUmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2hhcmVkQnVmZmVyLmg+CkBAIC0xMTk2LDYgKzExOTcsNDIgQEAgYm9vbCBBcmd1bWVudENvZGVy
PERhdGFiYXNlRGV0YWlscz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIERhdGFi
YXNlRGUKIAogI2lmIFBMQVRGT1JNKElPUykKIAordm9pZCBBcmd1bWVudENvZGVyPEhpZ2hsaWdo
dD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEhpZ2hsaWdodCYgaGln
aGxpZ2h0KQoreworICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGhpZ2hsaWdo
dC50eXBlKTsKKyAgICBlbmNvZGVyIDw8IGhpZ2hsaWdodC51c2VQYWdlQ29vcmRpbmF0ZXM7Cisg
ICAgZW5jb2RlciA8PCBoaWdobGlnaHQuY29udGVudENvbG9yOworICAgIGVuY29kZXIgPDwgaGln
aGxpZ2h0LmNvbnRlbnRPdXRsaW5lQ29sb3I7CisgICAgZW5jb2RlciA8PCBoaWdobGlnaHQucGFk
ZGluZ0NvbG9yOworICAgIGVuY29kZXIgPDwgaGlnaGxpZ2h0LmJvcmRlckNvbG9yOworICAgIGVu
Y29kZXIgPDwgaGlnaGxpZ2h0Lm1hcmdpbkNvbG9yOworICAgIGVuY29kZXIgPDwgaGlnaGxpZ2h0
LnF1YWRzOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8SGlnaGxpZ2h0Pjo6ZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgSGlnaGxpZ2h0JiBoaWdobGlnaHQpCit7CisgICAgdWludDMy
X3QgdHlwZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHR5cGUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaGlnaGxpZ2h0LnR5cGUgPSAoSGlnaGxpZ2h0VHlwZSl0eXBlOworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShoaWdobGlnaHQudXNlUGFnZUNvb3JkaW5hdGVzKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGlnaGxpZ2h0LmNvbnRl
bnRDb2xvcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGhpZ2hsaWdodC5jb250ZW50T3V0bGluZUNvbG9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGlnaGxpZ2h0LnBhZGRpbmdDb2xvcikpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhpZ2hsaWdodC5ib3JkZXJD
b2xvcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhp
Z2hsaWdodC5tYXJnaW5Db2xvcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGhpZ2hsaWdodC5xdWFkcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIHZvaWQgZW5jb2RlU2hhcmVkQnVmZmVyKEFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlciwgU2hhcmVkQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgU2hhcmVk
TWVtb3J5OjpIYW5kbGUgaGFuZGxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCmluZGV4IDg2NGI2YjUuLjI4Nzc3YWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTk4LDYgKzk4LDcgQEAgc3Ry
dWN0IEtleXByZXNzQ29tbWFuZDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZsb2F0UXVh
ZDsKIGNsYXNzIFNlbGVjdGlvblJlY3Q7CitzdHJ1Y3QgSGlnaGxpZ2h0Owogc3RydWN0IFBhc3Rl
Ym9hcmRJbWFnZTsKIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudDsKIHN0cnVjdCBWaWV3cG9y
dEFyZ3VtZW50czsKQEAgLTI4OSw2ICsyOTAsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpTZWxlY3Rpb25SZWN0PiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlNlbGVjdGlvblJlY3QmKTsKIH07CiAKK3RlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SGlnaGxpZ2h0PiB7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdo
dCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpI
aWdobGlnaHQmKTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKTsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6UGFzdGVib2FyZFdl
YkNvbnRlbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KaW5kZXggMTNhOGE0YS4uMGFmZjVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTkyLDYgKzkyLDcgQEAKICNpbXBv
cnQgPFVJS2l0L1VJV2luZG93X1ByaXZhdGUuaD4KICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FSZW5k
ZXJTZXJ2ZXIuaD4KICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZVByaXZhdGUuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvSW5zcGVjdG9yT3ZlcmxheS5oPgogCiBAaW50ZXJmYWNlIFVJU2Nyb2xs
VmlldyAoVUlTY3JvbGxWaWV3SW50ZXJuYWwpCiAtICh2b2lkKV9hZGp1c3RGb3JBdXRvbWF0aWNL
ZXlib2FyZEluZm86KE5TRGljdGlvbmFyeSopaW5mbyBhbmltYXRlZDooQk9PTClhbmltYXRlZCBs
YXN0QWRqdXN0bWVudDooQ0dGbG9hdCopbGFzdEFkanVzdG1lbnQ7CkBAIC02MzQsNiArNjM1LDE2
IEBAIHN0YXRpYyBDR1NpemUgcm91bmRTY3JvbGxWaWV3Q29udGVudFNpemUoY29uc3QgV2ViS2l0
OjpXZWJQYWdlUHJveHkmIHBhZ2UsIENHU2l6CiAgICAgfQogfQogCistICh2b2lkKV9zaG93SW5z
cGVjdG9ySGlnaGxpZ2h0Oihjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmKWhpZ2hsaWdodAorewor
ICAgIFtfY29udGVudFZpZXcgX3Nob3dJbnNwZWN0b3JIaWdobGlnaHQ6aGlnaGxpZ2h0XTsKK30K
KworLSAodm9pZClfaGlkZUluc3BlY3RvckhpZ2hsaWdodAoreworICAgIFtfY29udGVudFZpZXcg
X2hpZGVJbnNwZWN0b3JIaWdobGlnaHRdOworfQorCiBzdGF0aWMgQ0dGbG9hdCBjb250ZW50Wm9v
bVNjYWxlKFdLV2ViVmlldyogd2ViVmlldykKIHsKICAgICBVSVZpZXcgKnpvb21WaWV3OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRl
cm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRl
cm5hbC5oCmluZGV4IDc4ZWM3ZTMuLmRlZjBiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTQ1LDYgKzQ1
LDEwIEBACiAjZGVmaW5lIFdLX1dFQl9WSUVXX1BST1RPQ09MUwogI2VuZGlmCiAKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK3N0cnVjdCBIaWdobGlnaHQ7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
Y2xhc3MgV2ViUGFnZVByb3h5Owogc3RydWN0IFByaW50SW5mbzsKQEAgLTg2LDYgKzkwLDkgQEAg
c3RydWN0IFZpZXdTbmFwc2hvdDsKIAogLSAodm9pZClfd2lsbEludm9rZVVJU2Nyb2xsVmlld0Rl
bGVnYXRlQ2FsbGJhY2s7CiAtICh2b2lkKV9kaWRJbnZva2VVSVNjcm9sbFZpZXdEZWxlZ2F0ZUNh
bGxiYWNrOworCistICh2b2lkKV9zaG93SW5zcGVjdG9ySGlnaGxpZ2h0Oihjb25zdCBXZWJDb3Jl
OjpIaWdobGlnaHQmKWhpZ2hsaWdodDsKKy0gKHZvaWQpX2hpZGVJbnNwZWN0b3JIaWdobGlnaHQ7
CiAjZW5kaWYKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXgg
MjUxNjAwZS4uNDgyNDYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBA
IC00OCw2ICs0OCw3IEBAIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVzOwogbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgQ3Vyc29yOwogc3RydWN0IFZpZXdwb3J0QXR0cmlidXRlczsKK3N0
cnVjdCBIaWdobGlnaHQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMjY4LDYgKzI2OSw5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoRHJhd2luZ1BhZ2VzVG9QREYo
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJikgPSAwOwogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikK
KyAgICB2aXJ0dWFsIHZvaWQgc2hvd0luc3BlY3RvckhpZ2hsaWdodChjb25zdCBXZWJDb3JlOjpI
aWdobGlnaHQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGhpZGVJbnNwZWN0b3JIaWdobGlnaHQo
KSA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0luc3BlY3RvckluZGljYXRpb24oKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGhpZGVJbnNwZWN0b3JJbmRpY2F0aW9uKCkgPSAwOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZGE5MTU3MC4uN2Qz
N2IzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTIwNCw2
ICsxMjA0LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3BBc3Npc3RpbmdOb2RlKCk7CiAKICNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIHZvaWQgc2hvd0luc3BlY3RvckhpZ2hsaWdodChjb25z
dCBXZWJDb3JlOjpIaWdobGlnaHQmKTsKKyAgICB2b2lkIGhpZGVJbnNwZWN0b3JIaWdobGlnaHQo
KTsKKwogICAgIHZvaWQgc2hvd0luc3BlY3RvckluZGljYXRpb24oKTsKICAgICB2b2lkIGhpZGVJ
bnNwZWN0b3JJbmRpY2F0aW9uKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGY1MjZmMGEuLmEwOTQ0MjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMzM2LDYgKzMzNiw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgTm90
aWZ5UmV2ZWFsZWRTZWxlY3Rpb24oKQogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBTaG93
SW5zcGVjdG9ySGlnaGxpZ2h0KFdlYkNvcmU6OkhpZ2hsaWdodCBoaWdobGlnaHQpCisgICAgSGlk
ZUluc3BlY3RvckhpZ2hsaWdodCgpCisKICAgICBTaG93SW5zcGVjdG9ySW5kaWNhdGlvbigpCiAg
ICAgSGlkZUluc3BlY3RvckluZGljYXRpb24oKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggNzhhMzg3Ny4uYjEwN2U3
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MuaApAQCAtMTMwLDYgKzEzMCw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpG
bG9hdFNpemUgY29udGVudHNTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQorICAgIHZpcnR1YWwgdm9pZCBzaG93SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdl
YkNvcmU6OkhpZ2hsaWdodCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBoaWRlSW5zcGVj
dG9ySGlnaGxpZ2h0KCkgb3ZlcnJpZGU7CisKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0luc3BlY3Rv
ckluZGljYXRpb24oKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZUluc3BlY3Rvcklu
ZGljYXRpb24oKSBvdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggMzY4MjlkZC4uZGRiYzNhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
CkBAIC00NzQsNiArNDc0LDE2IEBAIGJvb2wgUGFnZUNsaWVudEltcGw6OmhhbmRsZVJ1bk9wZW5Q
YW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViT3BlblBhCiB9CiAKICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd0luc3BlY3RvckhpZ2hs
aWdodChjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmIGhpZ2hsaWdodCkKK3sKKyAgICBbbV93ZWJW
aWV3IF9zaG93SW5zcGVjdG9ySGlnaGxpZ2h0OmhpZ2hsaWdodF07Cit9CisKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OmhpZGVJbnNwZWN0b3JIaWdobGlnaHQoKQoreworICAgIFttX3dlYlZpZXcgX2hp
ZGVJbnNwZWN0b3JIaWdobGlnaHRdOworfQorCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzaG93SW5z
cGVjdG9ySW5kaWNhdGlvbigpCiB7CiAgICAgW21fd2ViVmlldyBfc2hvd0luc3BlY3RvckluZGlj
YXRpb25dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaApp
bmRleCA2YjM2ODE2Li45NTFkODJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXcuaApAQCAtMzMsNiArMzMsMTAgQEAKIEBjbGFzcyBXS0NvbnRlbnRWaWV3
OwogQGNsYXNzIFdLV2ViVmlldzsKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IEhpZ2hs
aWdodDsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5Owog
Y2xhc3MgRmluZEluZGljYXRvcjsKQEAgLTc0LDYgKzc4LDkgQEAgc3RydWN0IFdlYlBhZ2VDb25m
aWd1cmF0aW9uOwogLSAodm9pZClfZGlkUmVsYXVuY2hQcm9jZXNzOwogLSAodm9pZClfc2V0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RWaWV3OihVSVZpZXcgKilyb290VmlldzsKIAorLSAodm9p
ZClfc2hvd0luc3BlY3RvckhpZ2hsaWdodDooY29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0JiloaWdo
bGlnaHQ7CistICh2b2lkKV9oaWRlSW5zcGVjdG9ySGlnaGxpZ2h0OworCiAtICh2b2lkKV9kaWRD
b21taXRMb2FkRm9yTWFpbkZyYW1lOwogLSAodm9pZClfZGlkQ29tbWl0TGF5ZXJUcmVlOihjb25z
dCBXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJilsYXllclRyZWVUcmFuc2FjdGlv
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmlu
ZGV4IGMxM2FlNjYuLjhlZTk0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXcubW0KQEAgLTMyLDIzICszMiwyNyBAQAogI2ltcG9ydCAiUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgogI2ltcG9ydCAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eS5oIgogI2ltcG9ydCAiU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5oIgot
I2ltcG9ydCAiV2ViS2l0MkluaXRpYWxpemUuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlckludGVybmFsLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dEdyb3VwUHJp
dmF0ZS5oIgogI2ltcG9ydCAiV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLmgiCiAjaW1wb3J0ICJX
S1ByZWZlcmVuY2VzSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLUHJvY2Vzc0dyb3VwUHJpdmF0ZS5o
IgogI2ltcG9ydCAiV0tQcm9jZXNzUG9vbEludGVybmFsLmgiCi0jaW1wb3J0ICJXS1dlYlZpZXdJ
bnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oIgorI2ltcG9ydCAi
V0tXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkNvbnRleHQuaCIKICNpbXBvcnQgIldl
YkZyYW1lUHJveHkuaCIKKyNpbXBvcnQgIldlYktpdDJJbml0aWFsaXplLmgiCisjaW1wb3J0ICJX
ZWJLaXRTeXN0ZW1JbnRlcmZhY2VJT1MuaCIKICNpbXBvcnQgIldlYlBhZ2VHcm91cC5oIgogI2lt
cG9ydCAiV2ViU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2VJT1MuaCIKKyNpbXBvcnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KKyNpbXBvcnQg
PFVJS2l0L1VJV2luZG93X1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRRdWFkLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVmlldy5oPgorI2ltcG9ydCA8V2ViQ29yZS9HZW9tZXRy
eVV0aWxpdGllcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0jaW1wb3J0IDxVSUtpdC9VSVdpbmRvd19Q
cml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KIApAQCAtMTY5LDEyICsxNzMsMjUyIEBAIHByaXZhdGU6CiAKIEBlbmQKIAorCitA
aW50ZXJmYWNlIFdLSW5zcGVjdG9ySGlnaGxpZ2h0VmlldyA6IFVJVmlldyB7CisgICAgTlNNdXRh
YmxlQXJyYXkgKl9sYXllcnM7IC8vIENBU2hhcGVMYXllcnMuCit9CistICh2b2lkKXVwZGF0ZToo
Y29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0JiloaWdobGlnaHQ7CitAZW5kCisKK0BpbXBsZW1lbnRh
dGlvbiBXS0luc3BlY3RvckhpZ2hsaWdodFZpZXcKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
RnJhbWU6KENHUmVjdClmcmFtZQoreworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhG
cmFtZTpmcmFtZV0pKQorICAgICAgICByZXR1cm4gbmlsOworICAgIF9sYXllcnMgPSBbW05TTXV0
YWJsZUFycmF5IGFsbG9jXSBpbml0XTsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClk
ZWFsbG9jCit7CisgICAgW3NlbGYgX3JlbW92ZUFsbExheWVyc107CisgICAgW19sYXllcnMgcmVs
ZWFzZV07CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistICh2b2lkKV9yZW1vdmVBbGxMYXll
cnMKK3sKKyAgICBmb3IgKENBU2hhcGVMYXllciAqbGF5ZXIgaW4gX2xheWVycykKKyAgICAgICAg
W2xheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICBbX2xheWVycyByZW1vdmVBbGxPYmpl
Y3RzXTsKK30KKworLSAodm9pZClfY3JlYXRlTGF5ZXJzOihOU1VJbnRlZ2VyKW51bUxheWVycwor
eworICAgIGlmIChbX2xheWVycyBjb3VudF0gPT0gbnVtTGF5ZXJzKQorICAgICAgICByZXR1cm47
CisKKyAgICBbc2VsZiBfcmVtb3ZlQWxsTGF5ZXJzXTsKKworICAgIGZvciAoTlNVSW50ZWdlciBp
ID0gMDsgaSA8IG51bUxheWVyczsgKytpKSB7CisgICAgICAgIENBU2hhcGVMYXllciAqbGF5ZXIg
PSBbW0NBU2hhcGVMYXllciBhbGxvY10gaW5pdF07CisgICAgICAgIFtfbGF5ZXJzIGFkZE9iamVj
dDpsYXllcl07CisgICAgICAgIFtzZWxmLmxheWVyIGFkZFN1YmxheWVyOmxheWVyXTsKKyAgICAg
ICAgW2xheWVyIHJlbGVhc2VdOworICAgIH0KK30KKworc3RhdGljIGJvb2wgZmluZEludGVyc2Vj
dGlvbk9uTGluZUJldHdlZW5Qb2ludHMoY29uc3QgRmxvYXRQb2ludCYgcDEsIGNvbnN0IEZsb2F0
UG9pbnQmIHAyLCBjb25zdCBGbG9hdFBvaW50JiBkMSwgY29uc3QgRmxvYXRQb2ludCYgZDIsIEZs
b2F0UG9pbnQmIGludGVyc2VjdGlvbikgCit7CisgICAgLy8gRG8gdGhlIGxpbmVzIGludGVyc2Vj
dD8KKyAgICBGbG9hdFBvaW50IHRlbXBvcmFyeUludGVyc2VjdGlvblBvaW50OworICAgIGlmICgh
ZmluZEludGVyc2VjdGlvbihwMSwgcDIsIGQxLCBkMiwgdGVtcG9yYXJ5SW50ZXJzZWN0aW9uUG9p
bnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJcyB0aGUgaW50ZXJzZWN0aW9u
IGJldHdlZW4gdGhlIHR3byBwb2ludHMgb24gdGhlIGxpbmU/CisgICAgaWYgKHAxLngoKSA+PSBw
Mi54KCkpIHsKKyAgICAgICAgaWYgKHRlbXBvcmFyeUludGVyc2VjdGlvblBvaW50LngoKSA+IHAx
LngoKSB8fCB0ZW1wb3JhcnlJbnRlcnNlY3Rpb25Qb2ludC54KCkgPCBwMi54KCkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHRlbXBvcmFyeUlu
dGVyc2VjdGlvblBvaW50LngoKSA+IHAyLngoKSB8fCB0ZW1wb3JhcnlJbnRlcnNlY3Rpb25Qb2lu
dC54KCkgPCBwMS54KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlm
IChwMS55KCkgPj0gcDIueSgpKSB7CisgICAgICAgIGlmICh0ZW1wb3JhcnlJbnRlcnNlY3Rpb25Q
b2ludC55KCkgPiBwMS55KCkgfHwgdGVtcG9yYXJ5SW50ZXJzZWN0aW9uUG9pbnQueSgpIDwgcDIu
eSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIGlm
ICh0ZW1wb3JhcnlJbnRlcnNlY3Rpb25Qb2ludC55KCkgPiBwMi55KCkgfHwgdGVtcG9yYXJ5SW50
ZXJzZWN0aW9uUG9pbnQueSgpIDwgcDEueSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKworICAgIGludGVyc2VjdGlvbiA9IHRlbXBvcmFyeUludGVyc2VjdGlvblBvaW50Owor
ICAgIHJldHVybiB0cnVlOworfQorCisvLyBUaGlzIHF1YWQgaW50ZXJzZWN0aW9uIHdvcmtzIGJl
Y2F1c2UgdGhlIHR3byBxdWFkcyBhcmUga25vd24gdG8gYmUgYXQgdGhlIHNhbWUKKy8vIHJvdGF0
aW9uIGFuZCBjbG9ja3dpc2UtbmVzcy4KK3N0YXRpYyBGbG9hdFF1YWQgcXVhZEludGVyc2VjdGlv
bihGbG9hdFF1YWQgYm91bmRzLCBGbG9hdFF1YWQgdG9DbGFtcCkKK3sKKyAgICAvLyBSZXN1bHRp
bmcgcG9pbnRzLgorICAgIEZsb2F0UG9pbnQgcDEsIHAyLCBwMywgcDQ7CisgICAgYm9vbCBjb250
YWluc1BvaW50MSA9IGZhbHNlOworICAgIGJvb2wgY29udGFpbnNQb2ludDIgPSBmYWxzZTsKKyAg
ICBib29sIGNvbnRhaW5zUG9pbnQzID0gZmFsc2U7CisgICAgYm9vbCBjb250YWluc1BvaW50NCA9
IGZhbHNlOworICAgIGJvb2wgaW50ZXJzZWN0Rm9yUG9pbnQxID0gZmFsc2U7CisgICAgYm9vbCBp
bnRlcnNlY3RGb3JQb2ludDIgPSBmYWxzZTsKKyAgICBib29sIGludGVyc2VjdEZvclBvaW50MyA9
IGZhbHNlOworICAgIGJvb2wgaW50ZXJzZWN0Rm9yUG9pbnQ0ID0gZmFsc2U7CisKKyAgICAvLyBU
b3AgLyBib3R0b20gdmVydGljYWwgY2xhbXBpbmcuCisgICAgaWYgKGJvdW5kcy5jb250YWluc1Bv
aW50KHRvQ2xhbXAucDEoKSkpIHsKKyAgICAgICAgY29udGFpbnNQb2ludDEgPSB0cnVlOworICAg
ICAgICBwMSA9IHRvQ2xhbXAucDEoKTsKKyAgICB9IGVsc2UgaWYgKCEoaW50ZXJzZWN0Rm9yUG9p
bnQxID0gZmluZEludGVyc2VjdGlvbk9uTGluZUJldHdlZW5Qb2ludHMoYm91bmRzLnAxKCksIGJv
dW5kcy5wMigpLCB0b0NsYW1wLnAxKCksIHRvQ2xhbXAucDQoKSwgcDEpKSkKKyAgICAgICAgcDEg
PSB0b0NsYW1wLnAxKCk7CisKKyAgICBpZiAoYm91bmRzLmNvbnRhaW5zUG9pbnQodG9DbGFtcC5w
MigpKSkgeworICAgICAgICBjb250YWluc1BvaW50MiA9IHRydWU7CisgICAgICAgIHAyID0gdG9D
bGFtcC5wMigpOworICAgIH0gZWxzZSBpZiAoIShpbnRlcnNlY3RGb3JQb2ludDIgPSBmaW5kSW50
ZXJzZWN0aW9uT25MaW5lQmV0d2VlblBvaW50cyhib3VuZHMucDEoKSwgYm91bmRzLnAyKCksIHRv
Q2xhbXAucDIoKSwgdG9DbGFtcC5wMygpLCBwMikpKQorICAgICAgICBwMiA9IHRvQ2xhbXAucDIo
KTsKKworICAgIGlmIChib3VuZHMuY29udGFpbnNQb2ludCh0b0NsYW1wLnAzKCkpKSB7CisgICAg
ICAgIGNvbnRhaW5zUG9pbnQzID0gdHJ1ZTsKKyAgICAgICAgcDMgPSB0b0NsYW1wLnAzKCk7Cisg
ICAgfSBlbHNlIGlmICghKGludGVyc2VjdEZvclBvaW50MyA9IGZpbmRJbnRlcnNlY3Rpb25Pbkxp
bmVCZXR3ZWVuUG9pbnRzKGJvdW5kcy5wNCgpLCBib3VuZHMucDMoKSwgdG9DbGFtcC5wMigpLCB0
b0NsYW1wLnAzKCksIHAzKSkpCisgICAgICAgIHAzID0gdG9DbGFtcC5wMygpOworCisgICAgaWYg
KGJvdW5kcy5jb250YWluc1BvaW50KHRvQ2xhbXAucDQoKSkpIHsKKyAgICAgICAgY29udGFpbnNQ
b2ludDQgPSB0cnVlOworICAgICAgICBwNCA9IHRvQ2xhbXAucDQoKTsKKyAgICB9IGVsc2UgaWYg
KCEoaW50ZXJzZWN0Rm9yUG9pbnQ0ID0gZmluZEludGVyc2VjdGlvbk9uTGluZUJldHdlZW5Qb2lu
dHMoYm91bmRzLnA0KCksIGJvdW5kcy5wMygpLCB0b0NsYW1wLnAxKCksIHRvQ2xhbXAucDQoKSwg
cDQpKSkKKyAgICAgICAgcDQgPSB0b0NsYW1wLnA0KCk7CisKKyAgICAvLyBJZiBvbmx5IG9uZSBv
ZiB0aGUgcG9pbnRzIGludGVyc2VjdGVkIG9uIGVpdGhlciB0aGUgdG9wIG9yIGJvdHRvbSBsaW5l
IHRoZW4gd2UKKyAgICAvLyBjYW4gY2xhbXAgdGhlIG90aGVyIHBvaW50IG9uIHRoYXQgbGluZSB0
byB0aGUgY29ybmVyIG9mIHRoZSBib3VuZHMuCisgICAgaWYgKCFjb250YWluc1BvaW50MSAmJiBp
bnRlcnNlY3RGb3JQb2ludDIgJiYgIWludGVyc2VjdEZvclBvaW50MSkgeworICAgICAgICBjb250
YWluc1BvaW50MSA9IHRydWU7CisgICAgICAgIHAxID0gYm91bmRzLnAxKCk7CisgICAgfSBlbHNl
IGlmICghY29udGFpbnNQb2ludDIgJiYgaW50ZXJzZWN0Rm9yUG9pbnQxICYmICFpbnRlcnNlY3RG
b3JQb2ludDIpIHsKKyAgICAgICAgY29udGFpbnNQb2ludDIgPSB0cnVlOworICAgICAgICBwMiA9
IGJvdW5kcy5wMigpOworICAgIH0KKyAgICBpZiAoIWNvbnRhaW5zUG9pbnQ0ICYmIGludGVyc2Vj
dEZvclBvaW50MyAmJiAhaW50ZXJzZWN0Rm9yUG9pbnQ0KSB7CisgICAgICAgIGNvbnRhaW5zUG9p
bnQ0ID0gdHJ1ZTsKKyAgICAgICAgcDQgPSBib3VuZHMucDQoKTsKKyAgICB9IGVsc2UgaWYgKCFj
b250YWluc1BvaW50MyAmJiBpbnRlcnNlY3RGb3JQb2ludDQgJiYgIWludGVyc2VjdEZvclBvaW50
MykgeworICAgICAgICBjb250YWluc1BvaW50MyA9IHRydWU7CisgICAgICAgIHAzID0gYm91bmRz
LnAzKCk7CisgICAgfQorCisgICAgLy8gTm93IHdlIG9ubHkgbmVlZCB0byBwZXJmb3JtIGhvcml6
b250YWwgY2xhbXBpbmcgZm9yIHVuYWRqdXN0ZWQgcG9pbnRzLgorICAgIGlmICghY29udGFpbnNQ
b2ludDIgJiYgIWludGVyc2VjdEZvclBvaW50MikKKyAgICAgICAgZmluZEludGVyc2VjdGlvbk9u
TGluZUJldHdlZW5Qb2ludHMoYm91bmRzLnAyKCksIGJvdW5kcy5wMygpLCBwMSwgcDIsIHAyKTsK
KyAgICBpZiAoIWNvbnRhaW5zUG9pbnQzICYmICFpbnRlcnNlY3RGb3JQb2ludDMpCisgICAgICAg
IGZpbmRJbnRlcnNlY3Rpb25PbkxpbmVCZXR3ZWVuUG9pbnRzKGJvdW5kcy5wMigpLCBib3VuZHMu
cDMoKSwgcDQsIHAzLCBwMyk7CisgICAgaWYgKCFjb250YWluc1BvaW50MSAmJiAhaW50ZXJzZWN0
Rm9yUG9pbnQxKQorICAgICAgICBmaW5kSW50ZXJzZWN0aW9uT25MaW5lQmV0d2VlblBvaW50cyhi
b3VuZHMucDEoKSwgYm91bmRzLnA0KCksIHAxLCBwMiwgcDEpOworICAgIGlmICghY29udGFpbnNQ
b2ludDQgJiYgIWludGVyc2VjdEZvclBvaW50NCkKKyAgICAgICAgZmluZEludGVyc2VjdGlvbk9u
TGluZUJldHdlZW5Qb2ludHMoYm91bmRzLnAxKCksIGJvdW5kcy5wNCgpLCBwNCwgcDMsIHA0KTsK
KworICAgIHJldHVybiBGbG9hdFF1YWQocDEsIHAyLCBwMywgcDQpOworfQorCitzdGF0aWMgdm9p
ZCBsYXllclBhdGhXaXRoSG9sZShDQVNoYXBlTGF5ZXIgKmxheWVyLCBjb25zdCBGbG9hdFF1YWQm
IG91dGVyUXVhZCwgY29uc3QgRmxvYXRRdWFkJiBob2xlUXVhZCkKK3sKKyAgICAvLyBOb3RoaW5n
IHRvIHNob3cuCisgICAgaWYgKG91dGVyUXVhZCA9PSBob2xlUXVhZCB8fCBob2xlUXVhZC5jb250
YWluc1F1YWQob3V0ZXJRdWFkKSkgeworICAgICAgICBsYXllci5wYXRoID0gTlVMTDsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIElmIHRoZXJlIGlzIGEgbmVnYXRpdmUgbWFyZ2lu
IC8gcGFkZGluZyB0aGVuIHRoZSBvdXRlciBib3ggbWlnaHQgbm90CisgICAgLy8gZnVsbHkgY29u
dGFpbiB0aGUgaG9sZSBib3guIEluIHN1Y2ggY2FzZXMgd2UgcmVjYWxjdWxhdGUgdGhlIGhvbGUg
dG8KKyAgICAvLyBiZSB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoZSB0d28gcXVhZHMuCisgICAgRmxv
YXRRdWFkIGlubmVySG9sZTsKKyAgICBpZiAob3V0ZXJRdWFkLmNvbnRhaW5zUXVhZChob2xlUXVh
ZCkpCisgICAgICAgIGlubmVySG9sZSA9IGhvbGVRdWFkOworICAgIGVsc2UKKyAgICAgICAgaW5u
ZXJIb2xlID0gcXVhZEludGVyc2VjdGlvbihvdXRlclF1YWQsIGhvbGVRdWFkKTsKKworICAgIC8v
IENsb2Nrd2lzZSBpbnNpZGUgcmVjdCAoaG9sZSksIENvdW50ZXItQ2xvY2t3aXNlIG91dHNpZGUg
cmVjdCAoZmlsbCkuCisgICAgQ0dNdXRhYmxlUGF0aFJlZiBwYXRoID0gQ0dQYXRoQ3JlYXRlTXV0
YWJsZSgpOworICAgIENHUGF0aE1vdmVUb1BvaW50KHBhdGgsIDAsIGlubmVySG9sZS5wMSgpLngo
KSwgaW5uZXJIb2xlLnAxKCkueSgpKTsKKyAgICBDR1BhdGhBZGRMaW5lVG9Qb2ludChwYXRoLCAw
LCBpbm5lckhvbGUucDIoKS54KCksIGlubmVySG9sZS5wMigpLnkoKSk7CisgICAgQ0dQYXRoQWRk
TGluZVRvUG9pbnQocGF0aCwgMCwgaW5uZXJIb2xlLnAzKCkueCgpLCBpbm5lckhvbGUucDMoKS55
KCkpOworICAgIENHUGF0aEFkZExpbmVUb1BvaW50KHBhdGgsIDAsIGlubmVySG9sZS5wNCgpLngo
KSwgaW5uZXJIb2xlLnA0KCkueSgpKTsKKyAgICBDR1BhdGhNb3ZlVG9Qb2ludChwYXRoLCAwLCBv
dXRlclF1YWQucDEoKS54KCksIG91dGVyUXVhZC5wMSgpLnkoKSk7CisgICAgQ0dQYXRoQWRkTGlu
ZVRvUG9pbnQocGF0aCwgMCwgb3V0ZXJRdWFkLnA0KCkueCgpLCBvdXRlclF1YWQucDQoKS55KCkp
OworICAgIENHUGF0aEFkZExpbmVUb1BvaW50KHBhdGgsIDAsIG91dGVyUXVhZC5wMygpLngoKSwg
b3V0ZXJRdWFkLnAzKCkueSgpKTsKKyAgICBDR1BhdGhBZGRMaW5lVG9Qb2ludChwYXRoLCAwLCBv
dXRlclF1YWQucDIoKS54KCksIG91dGVyUXVhZC5wMigpLnkoKSk7CisgICAgbGF5ZXIucGF0aCA9
IHBhdGg7CisgICAgQ0dQYXRoUmVsZWFzZShwYXRoKTsKK30KKworc3RhdGljIHZvaWQgbGF5ZXJQ
YXRoKENBU2hhcGVMYXllciAqbGF5ZXIsIGNvbnN0IEZsb2F0UXVhZCYgb3V0ZXJRdWFkKQorewor
ICAgIENHTXV0YWJsZVBhdGhSZWYgcGF0aCA9IENHUGF0aENyZWF0ZU11dGFibGUoKTsKKyAgICBD
R1BhdGhNb3ZlVG9Qb2ludChwYXRoLCAwLCBvdXRlclF1YWQucDEoKS54KCksIG91dGVyUXVhZC5w
MSgpLnkoKSk7CisgICAgQ0dQYXRoQWRkTGluZVRvUG9pbnQocGF0aCwgMCwgb3V0ZXJRdWFkLnA0
KCkueCgpLCBvdXRlclF1YWQucDQoKS55KCkpOworICAgIENHUGF0aEFkZExpbmVUb1BvaW50KHBh
dGgsIDAsIG91dGVyUXVhZC5wMygpLngoKSwgb3V0ZXJRdWFkLnAzKCkueSgpKTsKKyAgICBDR1Bh
dGhBZGRMaW5lVG9Qb2ludChwYXRoLCAwLCBvdXRlclF1YWQucDIoKS54KCksIG91dGVyUXVhZC5w
MigpLnkoKSk7CisgICAgbGF5ZXIucGF0aCA9IHBhdGg7CisgICAgQ0dQYXRoUmVsZWFzZShwYXRo
KTsKK30KKworLSAodm9pZClfbGF5b3V0Rm9yTm9kZUhpZ2hsaWdodDooY29uc3QgSGlnaGxpZ2h0
JiloaWdobGlnaHQKK3sKKyAgICBbc2VsZiBfY3JlYXRlTGF5ZXJzOjRdOworCisgICAgQ0FTaGFw
ZUxheWVyICptYXJnaW5MYXllciA9IFtfbGF5ZXJzIG9iamVjdEF0SW5kZXg6MF07CisgICAgQ0FT
aGFwZUxheWVyICpib3JkZXJMYXllciA9IFtfbGF5ZXJzIG9iamVjdEF0SW5kZXg6MV07CisgICAg
Q0FTaGFwZUxheWVyICpwYWRkaW5nTGF5ZXIgPSBbX2xheWVycyBvYmplY3RBdEluZGV4OjJdOwor
ICAgIENBU2hhcGVMYXllciAqY29udGVudExheWVyID0gW19sYXllcnMgb2JqZWN0QXRJbmRleDoz
XTsKKworICAgIEZsb2F0UXVhZCBtYXJnaW5RdWFkID0gaGlnaGxpZ2h0LnF1YWRzWzBdOworICAg
IEZsb2F0UXVhZCBib3JkZXJRdWFkID0gaGlnaGxpZ2h0LnF1YWRzWzFdOworICAgIEZsb2F0UXVh
ZCBwYWRkaW5nUXVhZCA9IGhpZ2hsaWdodC5xdWFkc1syXTsKKyAgICBGbG9hdFF1YWQgY29udGVu
dFF1YWQgPSBoaWdobGlnaHQucXVhZHNbM107CisKKyAgICBtYXJnaW5MYXllci5maWxsQ29sb3Ig
PSBjYWNoZWRDR0NvbG9yKGhpZ2hsaWdodC5tYXJnaW5Db2xvciwgQ29sb3JTcGFjZURldmljZVJH
Qik7CisgICAgYm9yZGVyTGF5ZXIuZmlsbENvbG9yID0gY2FjaGVkQ0dDb2xvcihoaWdobGlnaHQu
Ym9yZGVyQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgIHBhZGRpbmdMYXllci5maWxs
Q29sb3IgPSBjYWNoZWRDR0NvbG9yKGhpZ2hsaWdodC5wYWRkaW5nQ29sb3IsIENvbG9yU3BhY2VE
ZXZpY2VSR0IpOworICAgIGNvbnRlbnRMYXllci5maWxsQ29sb3IgPSBjYWNoZWRDR0NvbG9yKGhp
Z2hsaWdodC5jb250ZW50Q29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOworCisgICAgbGF5ZXJQ
YXRoV2l0aEhvbGUobWFyZ2luTGF5ZXIsIG1hcmdpblF1YWQsIGJvcmRlclF1YWQpOworICAgIGxh
eWVyUGF0aFdpdGhIb2xlKGJvcmRlckxheWVyLCBib3JkZXJRdWFkLCBwYWRkaW5nUXVhZCk7Cisg
ICAgbGF5ZXJQYXRoV2l0aEhvbGUocGFkZGluZ0xheWVyLCBwYWRkaW5nUXVhZCwgY29udGVudFF1
YWQpOworICAgIGxheWVyUGF0aChjb250ZW50TGF5ZXIsIGNvbnRlbnRRdWFkKTsKK30KKworLSAo
dm9pZClfbGF5b3V0Rm9yUmVjdHNIaWdobGlnaHQ6KGNvbnN0IEhpZ2hsaWdodCYpaGlnaGxpZ2h0
Cit7CisgICAgTlNVSW50ZWdlciBudW1MYXllcnMgPSAoTlNVSW50ZWdlciloaWdobGlnaHQucXVh
ZHMuc2l6ZSgpOworICAgIGlmICghbnVtTGF5ZXJzKSB7CisgICAgICAgIFtzZWxmIF9yZW1vdmVB
bGxMYXllcnNdOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgW3NlbGYgX2NyZWF0ZUxh
eWVyczpudW1MYXllcnNdOworCisgICAgQ0dDb2xvclJlZiBjb250ZW50Q29sb3IgPSBjYWNoZWRD
R0NvbG9yKGhpZ2hsaWdodC5jb250ZW50Q29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAg
IGZvciAoTlNVSW50ZWdlciBpID0gMDsgaSA8IG51bUxheWVyczsgKytpKSB7CisgICAgICAgIENB
U2hhcGVMYXllciAqbGF5ZXIgPSBbX2xheWVycyBvYmplY3RBdEluZGV4OmldOworICAgICAgICBs
YXllci5maWxsQ29sb3IgPSBjb250ZW50Q29sb3I7CisgICAgICAgIGxheWVyUGF0aChsYXllciwg
aGlnaGxpZ2h0LnF1YWRzW2ldKTsKKyAgICB9Cit9CisKKy0gKHZvaWQpdXBkYXRlOihjb25zdCBI
aWdobGlnaHQmKWhpZ2hsaWdodAoreworICAgIGlmIChoaWdobGlnaHQudHlwZSA9PSBIaWdobGln
aHRUeXBlTm9kZSkKKyAgICAgICAgW3NlbGYgX2xheW91dEZvck5vZGVIaWdobGlnaHQ6aGlnaGxp
Z2h0XTsKKyAgICBlbHNlIGlmIChoaWdobGlnaHQudHlwZSA9PSBIaWdobGlnaHRUeXBlUmVjdHMp
CisgICAgICAgIFtzZWxmIF9sYXlvdXRGb3JSZWN0c0hpZ2hsaWdodDpoaWdobGlnaHRdOworfQor
CitAZW5kCisKKwogQGltcGxlbWVudGF0aW9uIFdLQ29udGVudFZpZXcgewogICAgIHN0ZDo6dW5p
cXVlX3B0cjxQYWdlQ2xpZW50SW1wbD4gX3BhZ2VDbGllbnQ7CiAgICAgUmV0YWluUHRyPFdLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlcj4gX2Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI7CiAKICAg
ICBSZXRhaW5QdHI8VUlWaWV3PiBfcm9vdENvbnRlbnRWaWV3OwogICAgIFJldGFpblB0cjxXS0lu
c3BlY3RvckluZGljYXRpb25WaWV3PiBfaW5zcGVjdG9ySW5kaWNhdGlvblZpZXc7CisgICAgUmV0
YWluUHRyPFdLSW5zcGVjdG9ySGlnaGxpZ2h0Vmlldz4gX2luc3BlY3RvckhpZ2hsaWdodFZpZXc7
CiAKICAgICBIaXN0b3JpY2FsVmVsb2NpdHlEYXRhIF9oaXN0b3JpY2FsS2luZW1hdGljRGF0YTsK
IH0KQEAgLTI3MSw2ICs1MTUsMjQgQEAgcHJpdmF0ZToKICAgICByZXR1cm4gW3NlbGYgaXNFZGl0
YWJsZV07CiB9CiAKKy0gKHZvaWQpX3Nob3dJbnNwZWN0b3JIaWdobGlnaHQ6KGNvbnN0IFdlYkNv
cmU6OkhpZ2hsaWdodCYpaGlnaGxpZ2h0Cit7CisgICAgaWYgKCFfaW5zcGVjdG9ySGlnaGxpZ2h0
VmlldykgeworICAgICAgICBfaW5zcGVjdG9ySGlnaGxpZ2h0VmlldyA9IGFkb3B0TlMoW1tXS0lu
c3BlY3RvckhpZ2hsaWdodFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVyb10pOwor
ICAgICAgICBbc2VsZiBpbnNlcnRTdWJ2aWV3Ol9pbnNwZWN0b3JIaWdobGlnaHRWaWV3LmdldCgp
IGFib3ZlU3Vidmlldzpfcm9vdENvbnRlbnRWaWV3LmdldCgpXTsKKyAgICB9CisKKyAgICBbX2lu
c3BlY3RvckhpZ2hsaWdodFZpZXcgdXBkYXRlOmhpZ2hsaWdodF07Cit9CisKKy0gKHZvaWQpX2hp
ZGVJbnNwZWN0b3JIaWdobGlnaHQKK3sKKyAgICBpZiAoX2luc3BlY3RvckhpZ2hsaWdodFZpZXcp
IHsKKyAgICAgICAgW19pbnNwZWN0b3JIaWdobGlnaHRWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXdd
OworICAgICAgICBfaW5zcGVjdG9ySGlnaGxpZ2h0VmlldyA9IG5pbDsKKyAgICB9Cit9CisKIC0g
KEJPT0wpaXNTaG93aW5nSW5zcGVjdG9ySW5kaWNhdGlvbgogewogICAgIHJldHVybiAhIV9pbnNw
ZWN0b3JJbmRpY2F0aW9uVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMjBmY2QzNC4uMzJiZDgwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTYzNiw2ICs2MzYs
MTYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnN0b3BBc3Npc3RpbmdOb2RlKCkKIH0KIAogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0luc3BlY3RvckhpZ2hsaWdo
dChjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmIGhpZ2hsaWdodCkKK3sKKyAgICBtX3BhZ2VDbGll
bnQuc2hvd0luc3BlY3RvckhpZ2hsaWdodChoaWdobGlnaHQpOworfQorCit2b2lkIFdlYlBhZ2VQ
cm94eTo6aGlkZUluc3BlY3RvckhpZ2hsaWdodCgpCit7CisgICAgbV9wYWdlQ2xpZW50LmhpZGVJ
bnNwZWN0b3JIaWdobGlnaHQoKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNob3dJbnNwZWN0
b3JJbmRpY2F0aW9uKCkKIHsKICAgICBtX3BhZ2VDbGllbnQuc2hvd0luc3BlY3RvckluZGljYXRp
b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCBlYWUwNDM2Li42Y2ZjOTE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Ykluc3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC0zMyw2ICszMywxMCBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGFnZS5oPgogCisjaWYgUExBVEZPUk0oSU9TKQorI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9y
T3ZlcmxheS5oPgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTY5LDYgKzczLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmRp
ZFJlc2l6ZU1haW5GcmFtZShGcmFtZSopCiAKIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpoaWdo
bGlnaHQoKQogeworI2lmICFQTEFURk9STShJT1MpCiAgICAgaWYgKCFtX2hpZ2hsaWdodE92ZXJs
YXkpIHsKICAgICAgICAgUmVmUHRyPFBhZ2VPdmVybGF5PiBoaWdobGlnaHRPdmVybGF5ID0gUGFn
ZU92ZXJsYXk6OmNyZWF0ZSh0aGlzKTsKICAgICAgICAgbV9oaWdobGlnaHRPdmVybGF5ID0gaGln
aGxpZ2h0T3ZlcmxheS5nZXQoKTsKQEAgLTc4LDEyICs4MywyMSBAQCB2b2lkIFdlYkluc3BlY3Rv
ckNsaWVudDo6aGlnaGxpZ2h0KCkKICAgICAgICAgbV9oaWdobGlnaHRPdmVybGF5LT5zdG9wRmFk
ZU91dEFuaW1hdGlvbigpOwogICAgICAgICBtX2hpZ2hsaWdodE92ZXJsYXktPnNldE5lZWRzRGlz
cGxheSgpOwogICAgIH0KKyNlbHNlCisgICAgSGlnaGxpZ2h0IGhpZ2hsaWdodDsKKyAgICBtX3Bh
Z2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS5nZXRIaWdobGlnaHQoJmhpZ2hs
aWdodCwgSW5zcGVjdG9yT3ZlcmxheTo6Q29vcmRpbmF0ZVN5c3RlbTo6RG9jdW1lbnQpOworICAg
IG1fcGFnZS0+c2hvd0luc3BlY3RvckhpZ2hsaWdodChoaWdobGlnaHQpOworI2VuZGlmCiB9CiAK
IHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpoaWRlSGlnaGxpZ2h0KCkKIHsKKyNpZiAhUExBVEZP
Uk0oSU9TKQogICAgIGlmIChtX2hpZ2hsaWdodE92ZXJsYXkpCiAgICAgICAgIG1fcGFnZS0+dW5p
bnN0YWxsUGFnZU92ZXJsYXkobV9oaWdobGlnaHRPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1v
ZGU6OkZhZGUpOworI2Vsc2UKKyAgICBtX3BhZ2UtPmhpZGVJbnNwZWN0b3JIaWdobGlnaHQoKTsK
KyNlbmRpZgogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYjBlODNiNy4uMjkwZjhkOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMzEsNiArMTMxLDcgQEAg
Y2xhc3MgU3Vic3RpdHV0ZURhdGE7CiBjbGFzcyBUZXh0Q2hlY2tpbmdSZXF1ZXN0OwogY2xhc3Mg
VVJMOwogY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKK3N0cnVjdCBIaWdobGlnaHQ7CiBzdHJ1Y3Qg
S2V5cHJlc3NDb21tYW5kOwogc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKIH0KQEAgLTUwNiw2
ICs1MDcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaEFzeW5jaHJvbm91c1RvdWNoRXZl
bnRzKGNvbnN0IFZlY3RvcjxXZWJUb3VjaEV2ZW50LCAxPiYgcXVldWUpOwogICAgIHZvaWQgY29u
dGVudFNpemVDYXRlZ29yeURpZENoYW5nZShjb25zdCBTdHJpbmcmKTsKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQorICAgIHZvaWQgc2hvd0luc3BlY3RvckhpZ2hsaWdodChjb25zdCBXZWJDb3JlOjpI
aWdobGlnaHQmKTsKKyAgICB2b2lkIGhpZGVJbnNwZWN0b3JIaWdobGlnaHQoKTsKKwogICAgIHZv
aWQgc2hvd0luc3BlY3RvckluZGljYXRpb24oKTsKICAgICB2b2lkIGhpZGVJbnNwZWN0b3JJbmRp
Y2F0aW9uKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA3ZTIyMmYxLi4wYWQwM2FmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBA
IC01MjksNiArNTI5LDE2IEBAIHZvaWQgV2ViUGFnZTo6c2V0QXNzaXN0ZWROb2RlU2VsZWN0ZWRJ
bmRleCh1aW50MzJfdCBpbmRleCwgYm9vbCBhbGxvd011bHRpcGxlU2VsCiB9CiAKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQordm9pZCBXZWJQYWdlOjpzaG93SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0
IFdlYkNvcmU6OkhpZ2hsaWdodCYgaGlnaGxpZ2h0KQoreworICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6U2hvd0luc3BlY3RvckhpZ2hsaWdodChoaWdobGlnaHQpKTsKK30KKwordm9p
ZCBXZWJQYWdlOjpoaWRlSW5zcGVjdG9ySGlnaGxpZ2h0KCkKK3sKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkhpZGVJbnNwZWN0b3JIaWdobGlnaHQoKSk7Cit9CisKIHZvaWQgV2Vi
UGFnZTo6c2hvd0luc3BlY3RvckluZGljYXRpb24oKQogewogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6U2hvd0luc3BlY3RvckluZGljYXRpb24oKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233735</attachid>
            <date>2014-06-24 13:29:27 -0700</date>
            <delta_ts>2014-06-24 14:57:19 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>rebaselined.patch</filename>
            <type>text/plain</type>
            <size>40917</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkMWJlMTU1Li5kMmMwYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTQtMDYtMjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbaU9TXTogV0syIEluc3BlY3RvciBOb2RlIEhpZ2hsaWdodGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MjU3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBjbGllbnRzIHdhbnQg
dG8gZ2V0IGhpZ2hsaWdodHMgd2l0aCB0aGUgc2Nyb2xsIGFwcGxpZWQsCisgICAgICAgIG90aGVy
cyBkbyBub3QuIFByb3ZpZGUgYSBDb29yZGluYXRlU3BhY2UgcGFyYW0gdG8gYmUgdXNlZCBmb3IK
KyAgICAgICAgZ2V0dGluZyBhIGhpZ2hsaWdodCAob25seSB1c2VkIG9uIGlPUykuCisKKyAgICAg
ICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpnZXRIaWdo
bGlnaHQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yT3ZlcmxheTo6Z2V0SGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
T2JqZWN0Rm9yUmVuZGVyZXJGcmFnbWVudHMpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JPdmVybGF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHQ6OkhpZ2hsaWdodCk6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjppbnNwZWN0b3JIaWdobGlnaHRSZWN0cyk6CisKIDIwMTQtMDYtMjQgIEVyaWMgQ2FybHNv
biAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBm
aXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGJlMDYwMGEuLjkwNmFkOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCkBAIC0xNzg1LDcgKzE3ODUsNyBAQCBfX1pOSzdXZWJDb3JlMTlBbmltYXRpb25D
b250cm9sbGVyMzNhbGxvd3NOZXdBbmltYXRpb25zV2hpbGVTdXNwZW5kZWRFdgogX19aTks3V2Vi
Q29yZTE5SFRNTE9wdEdyb3VwRWxlbWVudDE0Z3JvdXBMYWJlbFRleHRFdgogX19aTks3V2ViQ29y
ZTE5SFRNTFRleHRBcmVhRWxlbWVudDV2YWx1ZUV2CiBfX1pOSzdXZWJDb3JlMTlJREJEYXRhYmFz
ZU1ldGFkYXRhMTJpc29sYXRlZENvcHlFdgotX19aTks3V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJv
bGxlcjEyZ2V0SGlnaGxpZ2h0RVBOU185SGlnaGxpZ2h0RQorX19aTks3V2ViQ29yZTE5SW5zcGVj
dG9yQ29udHJvbGxlcjEyZ2V0SGlnaGxpZ2h0RVBOU185SGlnaGxpZ2h0RU5TXzE2SW5zcGVjdG9y
T3ZlcmxheTE2Q29vcmRpbmF0ZVN5c3RlbUUKIF9fWk5LN1dlYkNvcmUxOUluc3BlY3RvckNvbnRy
b2xsZXIyOWJ1aWxkT2JqZWN0Rm9ySGlnaGxpZ2h0ZWROb2RlRXYKIF9fWk5LN1dlYkNvcmUxOU1l
ZGlhU2Vzc2lvbk1hbmFnZXIzMGFwcGxpY2F0aW9uV2lsbEVudGVyQmFja2dyb3VuZEV2CiBfX1pO
SzdXZWJDb3JlMTlNZWRpYVNlc3Npb25NYW5hZ2VyMzBhcHBsaWNhdGlvbldpbGxFbnRlckZvcmVn
cm91bmRFdgpAQCAtMzE1Miw3ICszMTUyLDYgQEAgX19aTks3V2ViQ29yZTlET01XaW5kb3c4ZG9j
dW1lbnRFdgogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikgJiYgUExBVEZPUk0oSU9TKQogX19aTjdX
ZWJDb3JlMTZmaW5kSW50ZXJzZWN0aW9uRVJLTlNfMTBGbG9hdFBvaW50RVMyX1MyX1MyX1JTMF8K
LV9fWk5LN1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxMmdldEhpZ2hsaWdodEVQTlNfOUhp
Z2hsaWdodEUKIF9fWk5LN1dlYkNvcmU5RmxvYXRRdWFkMTJjb250YWluc1F1YWRFUktTMF8KIF9f
Wk5LN1dlYkNvcmU5RmxvYXRRdWFkMTNjb250YWluc1BvaW50RVJLTlNfMTBGbG9hdFBvaW50RQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKaW5kZXggM2JhZDk0Mi4uOGQxNTAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMzE4LDkgKzMxOCw5IEBAIHZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZHJhd0hpZ2hsaWdodChHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQpIGNvbnN0CiAgICAgbV9vdmVybGF5LT5wYWludChjb250ZXh0KTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JDb250cm9sbGVyOjpnZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiBoaWdobGlnaHQpIGNvbnN0
Cit2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmdldEhpZ2hsaWdodChIaWdobGlnaHQqIGhpZ2hs
aWdodCwgSW5zcGVjdG9yT3ZlcmxheTo6Q29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVt
KSBjb25zdAogewotICAgIG1fb3ZlcmxheS0+Z2V0SGlnaGxpZ2h0KGhpZ2hsaWdodCk7CisgICAg
bV9vdmVybGF5LT5nZXRIaWdobGlnaHQoaGlnaGxpZ2h0LCBjb29yZGluYXRlU3lzdGVtKTsKIH0K
IAogUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IEluc3BlY3RvckNvbnRyb2xsZXI6OmJ1aWxk
T2JqZWN0Rm9ySGlnaGxpZ2h0ZWROb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDk5MjgxZWUuLmMyODg2NjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMzQs
NiArMzQsNyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCiAj
aW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuaD4KICNpbmNsdWRlIDxp
bnNwZWN0b3IvSW5zcGVjdG9yRW52aXJvbm1lbnQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgpAQCAtNTksNyArNjAsNiBAQCBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0
b3JET01BZ2VudDsKIGNsYXNzIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ7CiBjbGFzcyBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudDsKLWNsYXNzIEluc3BlY3Rvck92ZXJsYXk7CiBjbGFzcyBJbnNw
ZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OwogY2xhc3MgSW5z
dHJ1bWVudGluZ0FnZW50czsKQEAgLTY3LDcgKzY3LDYgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFBh
Z2U7CiBjbGFzcyBQYWdlRGVidWdnZXJBZ2VudDsKIGNsYXNzIFdlYkluamVjdGVkU2NyaXB0TWFu
YWdlcjsKLXN0cnVjdCBIaWdobGlnaHQ7CiAKIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXIgZmlu
YWwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JFbnZpcm9ubWVudCB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yQ29udHJvbGxlcik7CkBAIC0xMDQsNyArMTAzLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBpbnNwZWN0KE5vZGUqKTsKICAgICB2b2lkIGRyYXdIaWdobGln
aHQoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0gICAgdm9pZCBnZXRIaWdobGlnaHQoSGlnaGxp
Z2h0KikgY29uc3Q7CisgICAgdm9pZCBnZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiwgSW5zcGVjdG9y
T3ZlcmxheTo6Q29vcmRpbmF0ZVN5c3RlbSkgY29uc3Q7CiAgICAgdm9pZCBoaWRlSGlnaGxpZ2h0
KCk7CiAgICAgTm9kZSogaGlnaGxpZ2h0ZWROb2RlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCA0MTQxYjcxLi5iODk5YzJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBA
IC0xMDAsMTYgKzEwMCwyMyBAQCB2b2lkIGRyYXdPdXRsaW5lZFF1YWQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBGbG9hdFF1YWQmIHF1YWQsIGNvbnN0IENvbAogICAgIGNvbnRleHQt
PmZpbGxQYXRoKHF1YWRQYXRoKTsKIH0KIAotc3RhdGljIHZvaWQgY29udGVudHNRdWFkVG9QYWdl
KGNvbnN0IEZyYW1lVmlldyogbWFpblZpZXcsIGNvbnN0IEZyYW1lVmlldyogdmlldywgRmxvYXRR
dWFkJiBxdWFkKQorc3RhdGljIHZvaWQgY29udGVudHNRdWFkVG9Db29yZGluYXRlU3lzdGVtKGNv
bnN0IEZyYW1lVmlldyogbWFpblZpZXcsIGNvbnN0IEZyYW1lVmlldyogdmlldywgRmxvYXRRdWFk
JiBxdWFkLCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0
ZW0pCiB7CiAgICAgcXVhZC5zZXRQMSh2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocm91bmRlZElu
dFBvaW50KHF1YWQucDEoKSkpKTsKICAgICBxdWFkLnNldFAyKHZpZXctPmNvbnRlbnRzVG9Sb290
Vmlldyhyb3VuZGVkSW50UG9pbnQocXVhZC5wMigpKSkpOwogICAgIHF1YWQuc2V0UDModmlldy0+
Y29udGVudHNUb1Jvb3RWaWV3KHJvdW5kZWRJbnRQb2ludChxdWFkLnAzKCkpKSk7CiAgICAgcXVh
ZC5zZXRQNCh2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocm91bmRlZEludFBvaW50KHF1YWQucDQo
KSkpKTsKLSAgICBxdWFkICs9IG1haW5WaWV3LT5zY3JvbGxPZmZzZXQoKTsKKworICAgIGlmIChj
b29yZGluYXRlU3lzdGVtID09IEluc3BlY3Rvck92ZXJsYXk6OkNvb3JkaW5hdGVTeXN0ZW06OlZp
ZXcpCisgICAgICAgIHF1YWQgKz0gbWFpblZpZXctPnNjcm9sbE9mZnNldCgpOworfQorCitzdGF0
aWMgdm9pZCBjb250ZW50c1F1YWRUb1BhZ2UoY29uc3QgRnJhbWVWaWV3KiBtYWluVmlldywgY29u
c3QgRnJhbWVWaWV3KiB2aWV3LCBGbG9hdFF1YWQmIHF1YWQpCit7CisgICAgY29udGVudHNRdWFk
VG9Db29yZGluYXRlU3lzdGVtKG1haW5WaWV3LCB2aWV3LCBxdWFkLCBJbnNwZWN0b3JPdmVybGF5
OjpDb29yZGluYXRlU3lzdGVtOjpWaWV3KTsKIH0KIAotc3RhdGljIHZvaWQgYnVpbGRSZW5kZXJl
ckhpZ2hsaWdodChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwg
Y29uc3QgSGlnaGxpZ2h0Q29uZmlnJiBoaWdobGlnaHRDb25maWcsIEhpZ2hsaWdodCogaGlnaGxp
Z2h0KQorc3RhdGljIHZvaWQgYnVpbGRSZW5kZXJlckhpZ2hsaWdodChSZW5kZXJPYmplY3QqIHJl
bmRlcmVyLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgY29uc3QgSGlnaGxpZ2h0Q29uZmlnJiBoaWdo
bGlnaHRDb25maWcsIEhpZ2hsaWdodCogaGlnaGxpZ2h0LCBJbnNwZWN0b3JPdmVybGF5OjpDb29y
ZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pCiB7CiAgICAgRnJhbWUqIGNvbnRhaW5pbmdG
cmFtZSA9IHJlbmRlcmVyLT5kb2N1bWVudCgpLmZyYW1lKCk7CiAgICAgaWYgKCFjb250YWluaW5n
RnJhbWUpCkBAIC0xMjYsNyArMTMzLDcgQEAgc3RhdGljIHZvaWQgYnVpbGRSZW5kZXJlckhpZ2hs
aWdodChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwKICAgICAg
ICAgaGlnaGxpZ2h0LT50eXBlID0gSGlnaGxpZ2h0VHlwZVJlY3RzOwogICAgICAgICByZW5kZXJl
ci0+YWJzb2x1dGVRdWFkcyhoaWdobGlnaHQtPnF1YWRzKTsKICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBoaWdobGlnaHQtPnF1YWRzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgY29u
dGVudHNRdWFkVG9QYWdlKG1haW5WaWV3LCBjb250YWluaW5nVmlldywgaGlnaGxpZ2h0LT5xdWFk
c1tpXSk7CisgICAgICAgICAgICBjb250ZW50c1F1YWRUb0Nvb3JkaW5hdGVTeXN0ZW0obWFpblZp
ZXcsIGNvbnRhaW5pbmdWaWV3LCBoaWdobGlnaHQtPnF1YWRzW2ldLCBjb29yZGluYXRlU3lzdGVt
KTsKICAgICB9IGVsc2UgaWYgKHJlbmRlcmVyLT5pc0JveCgpIHx8IHJlbmRlcmVyLT5pc1JlbmRl
cklubGluZSgpKSB7CiAgICAgICAgIExheW91dFJlY3QgY29udGVudEJveDsKICAgICAgICAgTGF5
b3V0UmVjdCBwYWRkaW5nQm94OwpAQCAtMjAyLDEwICsyMDksMTAgQEAgc3RhdGljIHZvaWQgYnVp
bGRSZW5kZXJlckhpZ2hsaWdodChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kZXJSZWdpb24q
IHJlZ2lvbiwKICAgICAgICAgICAgIGFic01hcmdpblF1YWQgPSByZW5kZXJlci0+bG9jYWxUb0Fi
c29sdXRlUXVhZChGbG9hdFJlY3QobWFyZ2luQm94KSk7CiAgICAgICAgIH0KIAotICAgICAgICBj
b250ZW50c1F1YWRUb1BhZ2UobWFpblZpZXcsIGNvbnRhaW5pbmdWaWV3LCBhYnNDb250ZW50UXVh
ZCk7Ci0gICAgICAgIGNvbnRlbnRzUXVhZFRvUGFnZShtYWluVmlldywgY29udGFpbmluZ1ZpZXcs
IGFic1BhZGRpbmdRdWFkKTsKLSAgICAgICAgY29udGVudHNRdWFkVG9QYWdlKG1haW5WaWV3LCBj
b250YWluaW5nVmlldywgYWJzQm9yZGVyUXVhZCk7Ci0gICAgICAgIGNvbnRlbnRzUXVhZFRvUGFn
ZShtYWluVmlldywgY29udGFpbmluZ1ZpZXcsIGFic01hcmdpblF1YWQpOworICAgICAgICBjb250
ZW50c1F1YWRUb0Nvb3JkaW5hdGVTeXN0ZW0obWFpblZpZXcsIGNvbnRhaW5pbmdWaWV3LCBhYnND
b250ZW50UXVhZCwgY29vcmRpbmF0ZVN5c3RlbSk7CisgICAgICAgIGNvbnRlbnRzUXVhZFRvQ29v
cmRpbmF0ZVN5c3RlbShtYWluVmlldywgY29udGFpbmluZ1ZpZXcsIGFic1BhZGRpbmdRdWFkLCBj
b29yZGluYXRlU3lzdGVtKTsKKyAgICAgICAgY29udGVudHNRdWFkVG9Db29yZGluYXRlU3lzdGVt
KG1haW5WaWV3LCBjb250YWluaW5nVmlldywgYWJzQm9yZGVyUXVhZCwgY29vcmRpbmF0ZVN5c3Rl
bSk7CisgICAgICAgIGNvbnRlbnRzUXVhZFRvQ29vcmRpbmF0ZVN5c3RlbShtYWluVmlldywgY29u
dGFpbmluZ1ZpZXcsIGFic01hcmdpblF1YWQsIGNvb3JkaW5hdGVTeXN0ZW0pOwogCiAgICAgICAg
IGhpZ2hsaWdodC0+dHlwZSA9IEhpZ2hsaWdodFR5cGVOb2RlOwogICAgICAgICBoaWdobGlnaHQt
PnF1YWRzLmFwcGVuZChhYnNNYXJnaW5RdWFkKTsKQEAgLTIxNSwxMiArMjIyLDEyIEBAIHN0YXRp
YyB2b2lkIGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgUmVu
ZGVyUmVnaW9uKiByZWdpb24sCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBidWlsZE5vZGVIaWdo
bGlnaHQoTm9kZSogbm9kZSwgUmVuZGVyUmVnaW9uKiByZWdpb24sIGNvbnN0IEhpZ2hsaWdodENv
bmZpZyYgaGlnaGxpZ2h0Q29uZmlnLCBIaWdobGlnaHQqIGhpZ2hsaWdodCkKK3N0YXRpYyB2b2lk
IGJ1aWxkTm9kZUhpZ2hsaWdodChOb2RlKiBub2RlLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgY29u
c3QgSGlnaGxpZ2h0Q29uZmlnJiBoaWdobGlnaHRDb25maWcsIEhpZ2hsaWdodCogaGlnaGxpZ2h0
LCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pCiB7
CiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgaWYg
KCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwotICAgIGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQo
cmVuZGVyZXIsIHJlZ2lvbiwgaGlnaGxpZ2h0Q29uZmlnLCBoaWdobGlnaHQpOworICAgIGJ1aWxk
UmVuZGVyZXJIaWdobGlnaHQocmVuZGVyZXIsIHJlZ2lvbiwgaGlnaGxpZ2h0Q29uZmlnLCBoaWdo
bGlnaHQsIGNvb3JkaW5hdGVTeXN0ZW0pOwogfQogCiBzdGF0aWMgdm9pZCBidWlsZFF1YWRIaWdo
bGlnaHQoY29uc3QgRmxvYXRRdWFkJiBxdWFkLCBjb25zdCBIaWdobGlnaHRDb25maWcmIGhpZ2hs
aWdodENvbmZpZywgSGlnaGxpZ2h0ICpoaWdobGlnaHQpCkBAIC0yNjAsMTQgKzI2NywxNCBAQCB2
b2lkIEluc3BlY3Rvck92ZXJsYXk6OmRyYXdPdXRsaW5lKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgTGF5b3V0UmVjdCYgcgogICAgIGRyYXdPdXRsaW5lZFF1YWQoY29udGV4dCwgb3V0
bGluZVJlY3QsIENvbG9yKCksIGNvbG9yKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JPdmVybGF5Ojpn
ZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiBoaWdobGlnaHQpIGNvbnN0Cit2b2lkIEluc3BlY3Rvck92
ZXJsYXk6OmdldEhpZ2hsaWdodChIaWdobGlnaHQqIGhpZ2hsaWdodCwgSW5zcGVjdG9yT3Zlcmxh
eTo6Q29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtKSBjb25zdAogewogICAgIGlmICgh
bV9oaWdobGlnaHROb2RlICYmICFtX2hpZ2hsaWdodFF1YWQpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGhpZ2hsaWdodC0+dHlwZSA9IEhpZ2hsaWdodFR5cGVSZWN0czsKICAgICBpZiAobV9oaWdo
bGlnaHROb2RlKQotICAgICAgICBidWlsZE5vZGVIaWdobGlnaHQobV9oaWdobGlnaHROb2RlLmdl
dCgpLCBudWxscHRyLCBtX25vZGVIaWdobGlnaHRDb25maWcsIGhpZ2hsaWdodCk7CisgICAgICAg
IGJ1aWxkTm9kZUhpZ2hsaWdodChtX2hpZ2hsaWdodE5vZGUuZ2V0KCksIG51bGxwdHIsIG1fbm9k
ZUhpZ2hsaWdodENvbmZpZywgaGlnaGxpZ2h0LCBjb29yZGluYXRlU3lzdGVtKTsKICAgICBlbHNl
CiAgICAgICAgIGJ1aWxkUXVhZEhpZ2hsaWdodCgqbV9oaWdobGlnaHRRdWFkLCBtX3F1YWRIaWdo
bGlnaHRDb25maWcsIGhpZ2hsaWdodCk7CiB9CkBAIC01MDgsNyArNTE1LDcgQEAgc3RhdGljIFBh
c3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGJ1aWxkT2JqZWN0Rm9yUmVuZGVyZXJGcmFnbWVudHMo
UmVuZGVyT2JqZWN0KgogICAgIFJlbmRlckZsb3dUaHJlYWQqIGNvbnRhaW5pbmdGbG93VGhyZWFk
ID0gcmVuZGVyZXItPmZsb3dUaHJlYWRDb250YWluaW5nQmxvY2soKTsKICAgICBpZiAoIWNvbnRh
aW5pbmdGbG93VGhyZWFkKSB7CiAgICAgICAgIEhpZ2hsaWdodCBoaWdobGlnaHQ7Ci0gICAgICAg
IGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQocmVuZGVyZXIsIG51bGxwdHIsIGNvbmZpZywgJmhpZ2hs
aWdodCk7CisgICAgICAgIGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQocmVuZGVyZXIsIG51bGxwdHIs
IGNvbmZpZywgJmhpZ2hsaWdodCwgSW5zcGVjdG9yT3ZlcmxheTo6Q29vcmRpbmF0ZVN5c3RlbTo6
Vmlldyk7CiAgICAgICAgIGZyYWdtZW50c0FycmF5LT5wdXNoT2JqZWN0KGJ1aWxkT2JqZWN0Rm9y
SGlnaGxpZ2h0KGhpZ2hsaWdodCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFJlbmRlclJlZ2lv
biogc3RhcnRSZWdpb24gPSBudWxscHRyOwpAQCAtNTI0LDcgKzUzMSw3IEBAIHN0YXRpYyBQYXNz
UmVmUHRyPEluc3BlY3RvckFycmF5PiBidWlsZE9iamVjdEZvclJlbmRlcmVyRnJhZ21lbnRzKFJl
bmRlck9iamVjdCoKICAgICAgICAgICAgIGlmIChyZWdpb24tPmlzVmFsaWQoKSkgewogICAgICAg
ICAgICAgICAgIC8vIENvbXB1dGUgdGhlIGhpZ2hsaWdodCBvZiB0aGUgZnJhZ21lbnQgaW5zaWRl
IHRoZSBjdXJyZW50IHJlZ2lvbi4KICAgICAgICAgICAgICAgICBIaWdobGlnaHQgaGlnaGxpZ2h0
OwotICAgICAgICAgICAgICAgIGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQocmVuZGVyZXIsIHJlZ2lv
biwgY29uZmlnLCAmaGlnaGxpZ2h0KTsKKyAgICAgICAgICAgICAgICBidWlsZFJlbmRlcmVySGln
aGxpZ2h0KHJlbmRlcmVyLCByZWdpb24sIGNvbmZpZywgJmhpZ2hsaWdodCwgSW5zcGVjdG9yT3Zl
cmxheTo6Q29vcmRpbmF0ZVN5c3RlbTo6Vmlldyk7CiAgICAgICAgICAgICAgICAgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gZnJhZ21lbnRPYmplY3QgPSBidWlsZE9iamVjdEZvckhpZ2hsaWdodCho
aWdobGlnaHQpOwogCiAgICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSB0aGUgY2xpcHBpbmcgYXJl
YSBvZiB0aGUgcmVnaW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvck92ZXJsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVy
bGF5LmgKaW5kZXggM2VjMDdkZi4uMTkzYWM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yT3ZlcmxheS5oCkBAIC03MCw2ICs3MCw3IEBAIGVudW0gSGlnaGxpZ2h0VHlw
ZSB7CiBzdHJ1Y3QgSGlnaGxpZ2h0IHsKICAgICBIaWdobGlnaHQoKQogICAgICAgICA6IHR5cGUo
SGlnaGxpZ2h0VHlwZU5vZGUpCisgICAgICAgICwgdXNlUGFnZUNvb3JkaW5hdGVzKHRydWUpCiAg
ICAgewogICAgIH0KIApAQCAtMTAyLDEwICsxMDMsMTUgQEAgcHVibGljOgogICAgIEluc3BlY3Rv
ck92ZXJsYXkoUGFnZSYsIEluc3BlY3RvckNsaWVudCopOwogICAgIH5JbnNwZWN0b3JPdmVybGF5
KCk7CiAKKyAgICBlbnVtIGNsYXNzIENvb3JkaW5hdGVTeXN0ZW0geworICAgICAgICBWaWV3LCAv
LyBBZGp1c3RzIGZvciB0aGUgbWFpbiBmcmFtZSdzIHNjcm9sbCBvZmZzZXQuCisgICAgICAgIERv
Y3VtZW50LCAvLyBEb2VzIG5vdCBhZGp1c3QgZm9yIHRoZSBtYWluIGZyYW1lJ3Mgc2Nyb2xsIG9m
ZnNldC4KKyAgICB9OworCiAgICAgdm9pZCB1cGRhdGUoKTsKICAgICB2b2lkIHBhaW50KEdyYXBo
aWNzQ29udGV4dCYpOwogICAgIHZvaWQgZHJhd091dGxpbmUoR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgTGF5b3V0UmVjdCYsIGNvbnN0IENvbG9yJik7Ci0gICAgdm9pZCBnZXRIaWdobGlnaHQoSGln
aGxpZ2h0KikgY29uc3Q7CisgICAgdm9pZCBnZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiwgQ29vcmRp
bmF0ZVN5c3RlbSkgY29uc3Q7CiAKICAgICB2b2lkIHNldFBhdXNlZEluRGVidWdnZXJNZXNzYWdl
KGNvbnN0IFN0cmluZyopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXgg
OTYzMTc1OTcuLmQwZTVkZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAg
LTcxNyw3ICs3MTcsNyBAQCBQYXNzUmVmUHRyPENsaWVudFJlY3RMaXN0PiBJbnRlcm5hbHM6Omlu
c3BlY3RvckhpZ2hsaWdodFJlY3RzKEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0KIAogICAgIEhp
Z2hsaWdodCBoaWdobGlnaHQ7Ci0gICAgZG9jdW1lbnQtPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpLmdldEhpZ2hsaWdodCgmaGlnaGxpZ2h0KTsKKyAgICBkb2N1bWVudC0+cGFnZSgpLT5p
bnNwZWN0b3JDb250cm9sbGVyKCkuZ2V0SGlnaGxpZ2h0KCZoaWdobGlnaHQsIEluc3BlY3Rvck92
ZXJsYXk6OkNvb3JkaW5hdGVTeXN0ZW06OlZpZXcpOwogICAgIHJldHVybiBDbGllbnRSZWN0TGlz
dDo6Y3JlYXRlKGhpZ2hsaWdodC5xdWFkcyk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShlYyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKaW5kZXggNDEzNzM5OC4uYmU0YTljNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDE0LTA2LTI0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgW2lPU106IFdLMiBJbnNwZWN0b3IgTm9kZSBIaWdobGlnaHRp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDI1
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
SW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHRWaWV3Lm1tOgorICAgICAgICAoLVtXZWJOb2RlSGln
aGxpZ2h0VmlldyBsYXlvdXRTdWJsYXllcnM6XSk6CisKIDIwMTQtMDYtMjQgIERhbiBCZXJuc3Rl
aW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXhlZCB0aGUgaU9TIGJ1aWxkIGFmdGVy
IHIxNzAzNTguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2Vi
Tm9kZUhpZ2hsaWdodFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2Vi
Tm9kZUhpZ2hsaWdodFZpZXcubW0KaW5kZXggMjVmZmMzOS4uZmJlN2JhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHRWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5t
bQpAQCAtMzE1LDcgKzMxNSw3IEBAIC0gKHZvaWQpbGF5b3V0U3VibGF5ZXJzOihDQUxheWVyICop
cGFyZW50TGF5ZXIKICAgICAgICAgcmV0dXJuOwogCiAgICAgSGlnaGxpZ2h0IGg7Ci0gICAgW193
ZWJOb2RlSGlnaGxpZ2h0IGluc3BlY3RvckNvbnRyb2xsZXJdLT5nZXRIaWdobGlnaHQoJmgpOwor
ICAgIFtfd2ViTm9kZUhpZ2hsaWdodCBpbnNwZWN0b3JDb250cm9sbGVyXS0+Z2V0SGlnaGxpZ2h0
KCZoLCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGluYXRlU3lzdGVtOjpWaWV3KTsKIAogICAgIGlm
IChoLnR5cGUgPT0gSGlnaGxpZ2h0VHlwZU5vZGUpCiAgICAgICAgIFtzZWxmIF9sYXlvdXRGb3JO
b2RlSGlnaGxpZ2h0OiZoIHBhcmVudDpwYXJlbnRMYXllcl07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjgxNGUx
NS4uYWU5YmM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTA2LTI0ICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU106IFdLMiBJ
bnNwZWN0b3IgTm9kZSBIaWdobGlnaHRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNDI1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5OgorICAgICAg
ICAoc3RydWN0X29yX2NsYXNzKToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxIaWdo
bGlnaHQ+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEhpZ2hsaWdodD46
OmRlY29kZSk6CisgICAgICAgIEFkZCBhIHdheSB0byBlbmNvZGUgYSBXZWJDb3JlOjpIaWdobGln
aHQgc3RydWN0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRl
cm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3Nob3dJbnNwZWN0b3JIaWdobGlnaHQ6V2ViQ29yZTo6XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfaGlkZUluc3BlY3RvckhpZ2hsaWdodF0pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpzaG93SW5zcGVjdG9ySGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OmhpZGVJbnNwZWN0b3JIaWdobGlnaHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNo
b3dJbnNwZWN0b3JIaWdobGlnaHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Omhp
ZGVJbnNwZWN0b3JIaWdobGlnaHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9y
Q2xpZW50OjpoaWdobGlnaHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JDbGllbnQ6
OmhpZGVIaWdobGlnaHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpzaG93SW5zcGVjdG9ySGlnaGxpZ2h0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6aGlkZUluc3BlY3RvckhpZ2hsaWdodCk6CisgICAgICAgIFNlbmQgd2Vi
IHByb2Nlc3MgaGlnaGxpZ2h0IC8gaGlkZUhpZ2hsaWdodCBtZXNzYWdlcyB1cCB0bworICAgICAg
ICB0aGUgVUlQcm9jZXNzIHNvIGl0IGNhbiBoaWdobGlnaHQgaW4gdGhlIFdLQ29udGVudFZpZXcu
CisgICAgICAgIFBhc3MgdXAgYSBXZWJDb3JlOjpIaWdobGlnaHQgaW4gRG9jdW1lbnQgY29vcmRp
bmF0ZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06CisgICAgICAgICgtW1dLSW5zcGVj
dG9ySGlnaGxpZ2h0VmlldyBpbml0V2l0aEZyYW1lOl0pOgorICAgICAgICAoLVtXS0luc3BlY3Rv
ckhpZ2hsaWdodFZpZXcgZGVhbGxvY10pOgorICAgICAgICAoLVtXS0luc3BlY3RvckhpZ2hsaWdo
dFZpZXcgX3JlbW92ZUFsbExheWVyc10pOgorICAgICAgICAoLVtXS0luc3BlY3RvckhpZ2hsaWdo
dFZpZXcgX2NyZWF0ZUxheWVyczpdKToKKyAgICAgICAgKGZpbmRJbnRlcnNlY3Rpb25PbkxpbmVC
ZXR3ZWVuUG9pbnRzKToKKyAgICAgICAgKHF1YWRJbnRlcnNlY3Rpb24pOgorICAgICAgICAobGF5
ZXJQYXRoV2l0aEhvbGUpOgorICAgICAgICAobGF5ZXJQYXRoKToKKyAgICAgICAgKC1bV0tJbnNw
ZWN0b3JIaWdobGlnaHRWaWV3IF9sYXlvdXRGb3JOb2RlSGlnaGxpZ2h0Ol0pOgorICAgICAgICAo
LVtXS0luc3BlY3RvckhpZ2hsaWdodFZpZXcgX2xheW91dEZvclJlY3RzSGlnaGxpZ2h0Ol0pOgor
ICAgICAgICAoLVtXS0luc3BlY3RvckhpZ2hsaWdodFZpZXcgdXBkYXRlOl0pOgorICAgICAgICBS
ZXVzZSB0aGUgV2ViS2l0MSBjb2RlIHRvIHR1cm4gaGlnaGxpZ2h0IGZsb2F0IHF1YWRzIGludG8g
Q0FTaGFwZUxheWVycy4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zaG93SW5zcGVjdG9y
SGlnaGxpZ2h0OldlYkNvcmU6Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9oaWRlSW5z
cGVjdG9ySGlnaGxpZ2h0XSk6CisgICAgICAgIFNob3cgYW5kIGhpZGUgdGhlIGhpZ2hsaWdodCB2
aWV3IHdpdGggdGhlIHJlc3BlY3RpdmUgV2ViQ29yZTo6SGlnaGxpZ2h0LgorCiAyMDE0LTA2LTI0
ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TIFdlYktp
dDJdIERpc2FibGUgc2NyZWVuIGZvbnQgc3Vic3RpdHV0aW9uIGJ5IGRlZmF1bHQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkgYi9Tb3VyY2Uv
V2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKaW5kZXggMTNhODY4OC4uNzMyZjRk
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQpAQCAtMTYy
LDYgKzE2Miw3IEBAIGRlZiBzdHJ1Y3Rfb3JfY2xhc3MobmFtZXNwYWNlLCB0eXBlKToKICAgICAg
ICAgJ1dlYkNvcmU6OkZsb2F0UG9pbnQzRCcsCiAgICAgICAgICdXZWJDb3JlOjpGaWxlQ2hvb3Nl
clNldHRpbmdzJywKICAgICAgICAgJ1dlYkNvcmU6OkdyYW1tYXJEZXRhaWwnLAorICAgICAgICAn
V2ViQ29yZTo6SGlnaGxpZ2h0JywKICAgICAgICAgJ1dlYkNvcmU6OklEQkRhdGFiYXNlTWV0YWRh
dGEnLAogICAgICAgICAnV2ViQ29yZTo6SURCR2V0UmVzdWx0JywKICAgICAgICAgJ1dlYkNvcmU6
OklEQkluZGV4TWV0YWRhdGEnLApAQCAtNDI4LDYgKzQyOSw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90
eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6S2V5ZnJhbWVWYWx1ZUxpc3QnOiBbJzxXZWJD
b3JlL0dyYXBoaWNzTGF5ZXIuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OktleXByZXNzQ29tbWFu
ZCc6IFsnPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Rmls
ZUNob29zZXJTZXR0aW5ncyc6IFsnPFdlYkNvcmUvRmlsZUNob29zZXIuaD4nXSwKKyAgICAgICAg
J1dlYkNvcmU6OkhpZ2hsaWdodCc6IFsnPFdlYkNvcmUvSW5zcGVjdG9yT3ZlcmxheS5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6UGx1Z2luSW5mbyc6IFsnPFdlYkNvcmUvUGx1Z2luRGF0YS5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6UGFzdGVib2FyZEltYWdlJzogWyc8V2ViQ29yZS9QYXN0ZWJv
YXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCc6IFsnPFdl
YkNvcmUvUGFzdGVib2FyZC5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBmOTBhYWM4Li5jNGQ2N2IxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtNzUsNiArNzUs
NyBAQAogCiAjaWYgUExBVEZPUk0oSU9TKQogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRRdWFkLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWxlY3Rpb25SZWN0Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTExOTYsNiArMTE5Nyw0MiBAQCBib29s
IEFyZ3VtZW50Q29kZXI8RGF0YWJhc2VEZXRhaWxzPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgRGF0YWJhc2VEZQogCiAjaWYgUExBVEZPUk0oSU9TKQogCit2b2lkIEFyZ3VtZW50
Q29kZXI8SGlnaGxpZ2h0Pjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
SGlnaGxpZ2h0JiBoaWdobGlnaHQpCit7CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50
MzJfdD4oaGlnaGxpZ2h0LnR5cGUpOworICAgIGVuY29kZXIgPDwgaGlnaGxpZ2h0LnVzZVBhZ2VD
b29yZGluYXRlczsKKyAgICBlbmNvZGVyIDw8IGhpZ2hsaWdodC5jb250ZW50Q29sb3I7CisgICAg
ZW5jb2RlciA8PCBoaWdobGlnaHQuY29udGVudE91dGxpbmVDb2xvcjsKKyAgICBlbmNvZGVyIDw8
IGhpZ2hsaWdodC5wYWRkaW5nQ29sb3I7CisgICAgZW5jb2RlciA8PCBoaWdobGlnaHQuYm9yZGVy
Q29sb3I7CisgICAgZW5jb2RlciA8PCBoaWdobGlnaHQubWFyZ2luQ29sb3I7CisgICAgZW5jb2Rl
ciA8PCBoaWdobGlnaHQucXVhZHM7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxIaWdobGlnaHQ+
OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBIaWdobGlnaHQmIGhpZ2hsaWdodCkK
K3sKKyAgICB1aW50MzJfdCB0eXBlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodHlwZSkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBoaWdobGlnaHQudHlwZSA9IChIaWdobGlnaHRUeXBl
KXR5cGU7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhpZ2hsaWdodC51c2VQYWdlQ29vcmRp
bmF0ZXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSho
aWdobGlnaHQuY29udGVudENvbG9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoaGlnaGxpZ2h0LmNvbnRlbnRPdXRsaW5lQ29sb3IpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoaWdobGlnaHQucGFkZGluZ0Nv
bG9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGln
aGxpZ2h0LmJvcmRlckNvbG9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoaGlnaGxpZ2h0Lm1hcmdpbkNvbG9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGlnaGxpZ2h0LnF1YWRzKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCiBzdGF0aWMgdm9pZCBlbmNvZGVTaGFy
ZWRCdWZmZXIoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBTaGFyZWRCdWZmZXIqIGJ1ZmZlcikK
IHsKICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggODY0YjZiNS4uMjg3NzdhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtOTgs
NiArOTgsNyBAQCBzdHJ1Y3QgS2V5cHJlc3NDb21tYW5kOwogbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgRmxvYXRRdWFkOwogY2xhc3MgU2VsZWN0aW9uUmVjdDsKK3N0cnVjdCBIaWdobGlnaHQ7
CiBzdHJ1Y3QgUGFzdGVib2FyZEltYWdlOwogc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50Owog
c3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOwpAQCAtMjg5LDYgKzI5MCwxMSBAQCB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlbGVjdGlvblJlY3Q+IHsKICAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6U2VsZWN0aW9uUmVjdCYp
OwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpIaWdobGln
aHQ+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6SGlnaGxpZ2h0Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYsIFdlYkNvcmU6OkhpZ2hsaWdodCYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudD4gewogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29u
dGVudCYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3Jl
OjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAwMjVkNmRjLi42MGExODljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtOTIsNiAr
OTIsNyBAQAogI2ltcG9ydCA8VUlLaXQvVUlXaW5kb3dfUHJpdmF0ZS5oPgogI2ltcG9ydCA8UXVh
cnR6Q29yZS9DQVJlbmRlclNlcnZlci5oPgogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3Jl
UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+CiAKIEBpbnRl
cmZhY2UgVUlTY3JvbGxWaWV3IChVSVNjcm9sbFZpZXdJbnRlcm5hbCkKIC0gKHZvaWQpX2FkanVz
dEZvckF1dG9tYXRpY0tleWJvYXJkSW5mbzooTlNEaWN0aW9uYXJ5KilpbmZvIGFuaW1hdGVkOihC
T09MKWFuaW1hdGVkIGxhc3RBZGp1c3RtZW50OihDR0Zsb2F0KilsYXN0QWRqdXN0bWVudDsKQEAg
LTYzOSw2ICs2NDAsMTYgQEAgLSAodm9pZClfZGlkSW52b2tlVUlTY3JvbGxWaWV3RGVsZWdhdGVD
YWxsYmFjawogICAgIH0KIH0KIAorLSAodm9pZClfc2hvd0luc3BlY3RvckhpZ2hsaWdodDooY29u
c3QgV2ViQ29yZTo6SGlnaGxpZ2h0JiloaWdobGlnaHQKK3sKKyAgICBbX2NvbnRlbnRWaWV3IF9z
aG93SW5zcGVjdG9ySGlnaGxpZ2h0OmhpZ2hsaWdodF07Cit9CisKKy0gKHZvaWQpX2hpZGVJbnNw
ZWN0b3JIaWdobGlnaHQKK3sKKyAgICBbX2NvbnRlbnRWaWV3IF9oaWRlSW5zcGVjdG9ySGlnaGxp
Z2h0XTsKK30KKwogc3RhdGljIENHRmxvYXQgY29udGVudFpvb21TY2FsZShXS1dlYlZpZXcqIHdl
YlZpZXcpCiB7CiAgICAgVUlWaWV3ICp6b29tVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCBiY2Q2OTRh
Li5kYzViZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBAIC00NSw2ICs0NSwxMCBAQAogI2RlZmluZSBXS19X
RUJfVklFV19QUk9UT0NPTFMKICNlbmRpZgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3Qg
SGlnaGxpZ2h0OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2VQcm94eTsK
IHN0cnVjdCBQcmludEluZm87CkBAIC04OSw2ICs5Myw5IEBAIHN0cnVjdCBWaWV3U25hcHNob3Q7
CiAtICh2b2lkKV93aWxsSW52b2tlVUlTY3JvbGxWaWV3RGVsZWdhdGVDYWxsYmFjazsKIC0gKHZv
aWQpX2RpZEludm9rZVVJU2Nyb2xsVmlld0RlbGVnYXRlQ2FsbGJhY2s7CiAKKy0gKHZvaWQpX3No
b3dJbnNwZWN0b3JIaWdobGlnaHQ6KGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdodCYpaGlnaGxpZ2h0
OworLSAodm9pZClfaGlkZUluc3BlY3RvckhpZ2hsaWdodDsKKwogLSAodm9pZClfdXBkYXRlVmlz
aWJsZUNvbnRlbnRSZWN0czsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSUVk
Z2VJbnNldHMgX2NvbXB1dGVkQ29udGVudEluc2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdl
Q2xpZW50LmgKaW5kZXggYWZiMTg3MS4uNGJmZjQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCkBAIC00OCw2ICs0OCw3IEBAIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRp
dmVzOwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ3Vyc29yOwogc3RydWN0IFZpZXdwb3J0
QXR0cmlidXRlczsKK3N0cnVjdCBIaWdobGlnaHQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtMjcwLDYgKzI3MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoRHJh
d2luZ1BhZ2VzVG9QREYoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJikgPSAwOwogCiAjaWYgRU5B
QkxFKElOU1BFQ1RPUikKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0luc3BlY3RvckhpZ2hsaWdodChj
b25zdCBXZWJDb3JlOjpIaWdobGlnaHQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGhpZGVJbnNw
ZWN0b3JIaWdobGlnaHQoKSA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0luc3BlY3Rvcklu
ZGljYXRpb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhpZGVJbnNwZWN0b3JJbmRpY2F0aW9u
KCkgPSAwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5k
ZXggOWYxZjY2ZC4uZWIzMWE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMTIwNyw2ICsxMjA3LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3BBc3Npc3Rp
bmdOb2RlKCk7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIHZvaWQgc2hvd0luc3BlY3Rv
ckhpZ2hsaWdodChjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmKTsKKyAgICB2b2lkIGhpZGVJbnNw
ZWN0b3JIaWdobGlnaHQoKTsKKwogICAgIHZvaWQgc2hvd0luc3BlY3RvckluZGljYXRpb24oKTsK
ICAgICB2b2lkIGhpZGVJbnNwZWN0b3JJbmRpY2F0aW9uKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDdkZTM3
MWEuLmFiOGRlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMzQxLDYgKzM0MSw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAgICAgTm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb24oKQogCiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKKyAgICBTaG93SW5zcGVjdG9ySGlnaGxpZ2h0KFdlYkNvcmU6OkhpZ2hsaWdodCBoaWdo
bGlnaHQpCisgICAgSGlkZUluc3BlY3RvckhpZ2hsaWdodCgpCisKICAgICBTaG93SW5zcGVjdG9y
SW5kaWNhdGlvbigpCiAgICAgSGlkZUluc3BlY3RvckluZGljYXRpb24oKQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXgg
MzlkMGZiYS4uZGRkYjRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTMyLDYgKzEzMiw5IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBXZWJDb3JlOjpGbG9hdFNpemUgY29udGVudHNTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIHZpcnR1YWwgdm9pZCBzaG93SW5zcGVjdG9ySGln
aGxpZ2h0KGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdodCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBoaWRlSW5zcGVjdG9ySGlnaGxpZ2h0KCkgb3ZlcnJpZGU7CisKICAgICB2aXJ0dWFsIHZv
aWQgc2hvd0luc3BlY3RvckluZGljYXRpb24oKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
aGlkZUluc3BlY3RvckluZGljYXRpb24oKSBvdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggOWUyY2Nl
Ni4uMWJmY2QxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLm1tCkBAIC00ODUsNiArNDg1LDE2IEBAIGJvb2wgUGFnZUNsaWVudEltcGw6
OmhhbmRsZVJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViT3Bl
blBhCiB9CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hv
d0luc3BlY3RvckhpZ2hsaWdodChjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmIGhpZ2hsaWdodCkK
K3sKKyAgICBbbV93ZWJWaWV3IF9zaG93SW5zcGVjdG9ySGlnaGxpZ2h0OmhpZ2hsaWdodF07Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmhpZGVJbnNwZWN0b3JIaWdobGlnaHQoKQoreworICAg
IFttX3dlYlZpZXcgX2hpZGVJbnNwZWN0b3JIaWdobGlnaHRdOworfQorCiB2b2lkIFBhZ2VDbGll
bnRJbXBsOjpzaG93SW5zcGVjdG9ySW5kaWNhdGlvbigpCiB7CiAgICAgW21fd2ViVmlldyBfc2hv
d0luc3BlY3RvckluZGljYXRpb25dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXcuaAppbmRleCA2YjM2ODE2Li45NTFkODJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaApAQCAtMzMsNiArMzMsMTAgQEAKIEBjbGFz
cyBXS0NvbnRlbnRWaWV3OwogQGNsYXNzIFdLV2ViVmlldzsKIAorbmFtZXNwYWNlIFdlYkNvcmUg
eworc3RydWN0IEhpZ2hsaWdodDsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBEcmF3
aW5nQXJlYVByb3h5OwogY2xhc3MgRmluZEluZGljYXRvcjsKQEAgLTc0LDYgKzc4LDkgQEAgc3Ry
dWN0IFdlYlBhZ2VDb25maWd1cmF0aW9uOwogLSAodm9pZClfZGlkUmVsYXVuY2hQcm9jZXNzOwog
LSAodm9pZClfc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RWaWV3OihVSVZpZXcgKilyb290
VmlldzsKIAorLSAodm9pZClfc2hvd0luc3BlY3RvckhpZ2hsaWdodDooY29uc3QgV2ViQ29yZTo6
SGlnaGxpZ2h0JiloaWdobGlnaHQ7CistICh2b2lkKV9oaWRlSW5zcGVjdG9ySGlnaGxpZ2h0Owor
CiAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lOwogLSAodm9pZClfZGlkQ29tbWl0
TGF5ZXJUcmVlOihjb25zdCBXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJilsYXll
clRyZWVUcmFuc2FjdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3Lm1tCmluZGV4IGNkZWM0NWMuLmQyODYzNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTMyLDIzICszMiwyNyBAQAogI2lt
cG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgogI2ltcG9ydCAiUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIgogI2ltcG9ydCAiU21hcnRNYWduaWZpY2F0aW9u
Q29udHJvbGxlci5oIgotI2ltcG9ydCAiV2ViS2l0MkluaXRpYWxpemUuaCIKICNpbXBvcnQgIldL
QnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5n
Q29udGV4dEdyb3VwUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tHZW9sb2NhdGlvblByb3ZpZGVySU9T
LmgiCiAjaW1wb3J0ICJXS1ByZWZlcmVuY2VzSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLUHJvY2Vz
c0dyb3VwUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tQcm9jZXNzUG9vbEludGVybmFsLmgiCi0jaW1w
b3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlv
bi5oIgorI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkNvbnRleHQu
aCIKICNpbXBvcnQgIldlYkZyYW1lUHJveHkuaCIKKyNpbXBvcnQgIldlYktpdDJJbml0aWFsaXpl
LmgiCisjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2VJT1MuaCIKICNpbXBvcnQgIldlYlBh
Z2VHcm91cC5oIgogI2ltcG9ydCAiV2ViU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0ICJXZWJL
aXRTeXN0ZW1JbnRlcmZhY2VJT1MuaCIKKyNpbXBvcnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhp
Y3MuaD4KKyNpbXBvcnQgPFVJS2l0L1VJV2luZG93X1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvRmxvYXRRdWFkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVmlldy5oPgorI2ltcG9ydCA8
V2ViQ29yZS9HZW9tZXRyeVV0aWxpdGllcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JP
dmVybGF5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0jaW1wb3J0IDxV
SUtpdC9VSVdpbmRvd19Qcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtMTY5LDEyICsxNzMsMjUyIEBAIC0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUKIAogQGVuZAogCisKK0BpbnRlcmZh
Y2UgV0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3IDogVUlWaWV3IHsKKyAgICBOU011dGFibGVBcnJh
eSAqX2xheWVyczsgLy8gQ0FTaGFwZUxheWVycy4KK30KKy0gKHZvaWQpdXBkYXRlOihjb25zdCBX
ZWJDb3JlOjpIaWdobGlnaHQmKWhpZ2hsaWdodDsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdL
SW5zcGVjdG9ySGlnaGxpZ2h0VmlldworCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZToo
Q0dSZWN0KWZyYW1lCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZy
YW1lXSkpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgX2xheWVycyA9IFtbTlNNdXRhYmxlQXJy
YXkgYWxsb2NdIGluaXRdOworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MK
K3sKKyAgICBbc2VsZiBfcmVtb3ZlQWxsTGF5ZXJzXTsKKyAgICBbX2xheWVycyByZWxlYXNlXTsK
KyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKHZvaWQpX3JlbW92ZUFsbExheWVycworewor
ICAgIGZvciAoQ0FTaGFwZUxheWVyICpsYXllciBpbiBfbGF5ZXJzKQorICAgICAgICBbbGF5ZXIg
cmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworICAgIFtfbGF5ZXJzIHJlbW92ZUFsbE9iamVjdHNdOwor
fQorCistICh2b2lkKV9jcmVhdGVMYXllcnM6KE5TVUludGVnZXIpbnVtTGF5ZXJzCit7CisgICAg
aWYgKFtfbGF5ZXJzIGNvdW50XSA9PSBudW1MYXllcnMpCisgICAgICAgIHJldHVybjsKKworICAg
IFtzZWxmIF9yZW1vdmVBbGxMYXllcnNdOworCisgICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwOyBp
IDwgbnVtTGF5ZXJzOyArK2kpIHsKKyAgICAgICAgQ0FTaGFwZUxheWVyICpsYXllciA9IFtbQ0FT
aGFwZUxheWVyIGFsbG9jXSBpbml0XTsKKyAgICAgICAgW19sYXllcnMgYWRkT2JqZWN0OmxheWVy
XTsKKyAgICAgICAgW3NlbGYubGF5ZXIgYWRkU3VibGF5ZXI6bGF5ZXJdOworICAgICAgICBbbGF5
ZXIgcmVsZWFzZV07CisgICAgfQorfQorCitzdGF0aWMgYm9vbCBmaW5kSW50ZXJzZWN0aW9uT25M
aW5lQmV0d2VlblBvaW50cyhjb25zdCBGbG9hdFBvaW50JiBwMSwgY29uc3QgRmxvYXRQb2ludCYg
cDIsIGNvbnN0IEZsb2F0UG9pbnQmIGQxLCBjb25zdCBGbG9hdFBvaW50JiBkMiwgRmxvYXRQb2lu
dCYgaW50ZXJzZWN0aW9uKSAKK3sKKyAgICAvLyBEbyB0aGUgbGluZXMgaW50ZXJzZWN0PworICAg
IEZsb2F0UG9pbnQgdGVtcG9yYXJ5SW50ZXJzZWN0aW9uUG9pbnQ7CisgICAgaWYgKCFmaW5kSW50
ZXJzZWN0aW9uKHAxLCBwMiwgZDEsIGQyLCB0ZW1wb3JhcnlJbnRlcnNlY3Rpb25Qb2ludCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIElzIHRoZSBpbnRlcnNlY3Rpb24gYmV0d2Vl
biB0aGUgdHdvIHBvaW50cyBvbiB0aGUgbGluZT8KKyAgICBpZiAocDEueCgpID49IHAyLngoKSkg
eworICAgICAgICBpZiAodGVtcG9yYXJ5SW50ZXJzZWN0aW9uUG9pbnQueCgpID4gcDEueCgpIHx8
IHRlbXBvcmFyeUludGVyc2VjdGlvblBvaW50LngoKSA8IHAyLngoKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAodGVtcG9yYXJ5SW50ZXJzZWN0
aW9uUG9pbnQueCgpID4gcDIueCgpIHx8IHRlbXBvcmFyeUludGVyc2VjdGlvblBvaW50LngoKSA8
IHAxLngoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKHAxLnko
KSA+PSBwMi55KCkpIHsKKyAgICAgICAgaWYgKHRlbXBvcmFyeUludGVyc2VjdGlvblBvaW50Lnko
KSA+IHAxLnkoKSB8fCB0ZW1wb3JhcnlJbnRlcnNlY3Rpb25Qb2ludC55KCkgPCBwMi55KCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHRlbXBv
cmFyeUludGVyc2VjdGlvblBvaW50LnkoKSA+IHAyLnkoKSB8fCB0ZW1wb3JhcnlJbnRlcnNlY3Rp
b25Qb2ludC55KCkgPCBwMS55KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CisgICAgaW50ZXJzZWN0aW9uID0gdGVtcG9yYXJ5SW50ZXJzZWN0aW9uUG9pbnQ7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKKy8vIFRoaXMgcXVhZCBpbnRlcnNlY3Rpb24gd29ya3MgYmVjYXVzZSB0
aGUgdHdvIHF1YWRzIGFyZSBrbm93biB0byBiZSBhdCB0aGUgc2FtZQorLy8gcm90YXRpb24gYW5k
IGNsb2Nrd2lzZS1uZXNzLgorc3RhdGljIEZsb2F0UXVhZCBxdWFkSW50ZXJzZWN0aW9uKEZsb2F0
UXVhZCBib3VuZHMsIEZsb2F0UXVhZCB0b0NsYW1wKQoreworICAgIC8vIFJlc3VsdGluZyBwb2lu
dHMuCisgICAgRmxvYXRQb2ludCBwMSwgcDIsIHAzLCBwNDsKKyAgICBib29sIGNvbnRhaW5zUG9p
bnQxID0gZmFsc2U7CisgICAgYm9vbCBjb250YWluc1BvaW50MiA9IGZhbHNlOworICAgIGJvb2wg
Y29udGFpbnNQb2ludDMgPSBmYWxzZTsKKyAgICBib29sIGNvbnRhaW5zUG9pbnQ0ID0gZmFsc2U7
CisgICAgYm9vbCBpbnRlcnNlY3RGb3JQb2ludDEgPSBmYWxzZTsKKyAgICBib29sIGludGVyc2Vj
dEZvclBvaW50MiA9IGZhbHNlOworICAgIGJvb2wgaW50ZXJzZWN0Rm9yUG9pbnQzID0gZmFsc2U7
CisgICAgYm9vbCBpbnRlcnNlY3RGb3JQb2ludDQgPSBmYWxzZTsKKworICAgIC8vIFRvcCAvIGJv
dHRvbSB2ZXJ0aWNhbCBjbGFtcGluZy4KKyAgICBpZiAoYm91bmRzLmNvbnRhaW5zUG9pbnQodG9D
bGFtcC5wMSgpKSkgeworICAgICAgICBjb250YWluc1BvaW50MSA9IHRydWU7CisgICAgICAgIHAx
ID0gdG9DbGFtcC5wMSgpOworICAgIH0gZWxzZSBpZiAoIShpbnRlcnNlY3RGb3JQb2ludDEgPSBm
aW5kSW50ZXJzZWN0aW9uT25MaW5lQmV0d2VlblBvaW50cyhib3VuZHMucDEoKSwgYm91bmRzLnAy
KCksIHRvQ2xhbXAucDEoKSwgdG9DbGFtcC5wNCgpLCBwMSkpKQorICAgICAgICBwMSA9IHRvQ2xh
bXAucDEoKTsKKworICAgIGlmIChib3VuZHMuY29udGFpbnNQb2ludCh0b0NsYW1wLnAyKCkpKSB7
CisgICAgICAgIGNvbnRhaW5zUG9pbnQyID0gdHJ1ZTsKKyAgICAgICAgcDIgPSB0b0NsYW1wLnAy
KCk7CisgICAgfSBlbHNlIGlmICghKGludGVyc2VjdEZvclBvaW50MiA9IGZpbmRJbnRlcnNlY3Rp
b25PbkxpbmVCZXR3ZWVuUG9pbnRzKGJvdW5kcy5wMSgpLCBib3VuZHMucDIoKSwgdG9DbGFtcC5w
MigpLCB0b0NsYW1wLnAzKCksIHAyKSkpCisgICAgICAgIHAyID0gdG9DbGFtcC5wMigpOworCisg
ICAgaWYgKGJvdW5kcy5jb250YWluc1BvaW50KHRvQ2xhbXAucDMoKSkpIHsKKyAgICAgICAgY29u
dGFpbnNQb2ludDMgPSB0cnVlOworICAgICAgICBwMyA9IHRvQ2xhbXAucDMoKTsKKyAgICB9IGVs
c2UgaWYgKCEoaW50ZXJzZWN0Rm9yUG9pbnQzID0gZmluZEludGVyc2VjdGlvbk9uTGluZUJldHdl
ZW5Qb2ludHMoYm91bmRzLnA0KCksIGJvdW5kcy5wMygpLCB0b0NsYW1wLnAyKCksIHRvQ2xhbXAu
cDMoKSwgcDMpKSkKKyAgICAgICAgcDMgPSB0b0NsYW1wLnAzKCk7CisKKyAgICBpZiAoYm91bmRz
LmNvbnRhaW5zUG9pbnQodG9DbGFtcC5wNCgpKSkgeworICAgICAgICBjb250YWluc1BvaW50NCA9
IHRydWU7CisgICAgICAgIHA0ID0gdG9DbGFtcC5wNCgpOworICAgIH0gZWxzZSBpZiAoIShpbnRl
cnNlY3RGb3JQb2ludDQgPSBmaW5kSW50ZXJzZWN0aW9uT25MaW5lQmV0d2VlblBvaW50cyhib3Vu
ZHMucDQoKSwgYm91bmRzLnAzKCksIHRvQ2xhbXAucDEoKSwgdG9DbGFtcC5wNCgpLCBwNCkpKQor
ICAgICAgICBwNCA9IHRvQ2xhbXAucDQoKTsKKworICAgIC8vIElmIG9ubHkgb25lIG9mIHRoZSBw
b2ludHMgaW50ZXJzZWN0ZWQgb24gZWl0aGVyIHRoZSB0b3Agb3IgYm90dG9tIGxpbmUgdGhlbiB3
ZQorICAgIC8vIGNhbiBjbGFtcCB0aGUgb3RoZXIgcG9pbnQgb24gdGhhdCBsaW5lIHRvIHRoZSBj
b3JuZXIgb2YgdGhlIGJvdW5kcy4KKyAgICBpZiAoIWNvbnRhaW5zUG9pbnQxICYmIGludGVyc2Vj
dEZvclBvaW50MiAmJiAhaW50ZXJzZWN0Rm9yUG9pbnQxKSB7CisgICAgICAgIGNvbnRhaW5zUG9p
bnQxID0gdHJ1ZTsKKyAgICAgICAgcDEgPSBib3VuZHMucDEoKTsKKyAgICB9IGVsc2UgaWYgKCFj
b250YWluc1BvaW50MiAmJiBpbnRlcnNlY3RGb3JQb2ludDEgJiYgIWludGVyc2VjdEZvclBvaW50
MikgeworICAgICAgICBjb250YWluc1BvaW50MiA9IHRydWU7CisgICAgICAgIHAyID0gYm91bmRz
LnAyKCk7CisgICAgfQorICAgIGlmICghY29udGFpbnNQb2ludDQgJiYgaW50ZXJzZWN0Rm9yUG9p
bnQzICYmICFpbnRlcnNlY3RGb3JQb2ludDQpIHsKKyAgICAgICAgY29udGFpbnNQb2ludDQgPSB0
cnVlOworICAgICAgICBwNCA9IGJvdW5kcy5wNCgpOworICAgIH0gZWxzZSBpZiAoIWNvbnRhaW5z
UG9pbnQzICYmIGludGVyc2VjdEZvclBvaW50NCAmJiAhaW50ZXJzZWN0Rm9yUG9pbnQzKSB7Cisg
ICAgICAgIGNvbnRhaW5zUG9pbnQzID0gdHJ1ZTsKKyAgICAgICAgcDMgPSBib3VuZHMucDMoKTsK
KyAgICB9CisKKyAgICAvLyBOb3cgd2Ugb25seSBuZWVkIHRvIHBlcmZvcm0gaG9yaXpvbnRhbCBj
bGFtcGluZyBmb3IgdW5hZGp1c3RlZCBwb2ludHMuCisgICAgaWYgKCFjb250YWluc1BvaW50MiAm
JiAhaW50ZXJzZWN0Rm9yUG9pbnQyKQorICAgICAgICBmaW5kSW50ZXJzZWN0aW9uT25MaW5lQmV0
d2VlblBvaW50cyhib3VuZHMucDIoKSwgYm91bmRzLnAzKCksIHAxLCBwMiwgcDIpOworICAgIGlm
ICghY29udGFpbnNQb2ludDMgJiYgIWludGVyc2VjdEZvclBvaW50MykKKyAgICAgICAgZmluZElu
dGVyc2VjdGlvbk9uTGluZUJldHdlZW5Qb2ludHMoYm91bmRzLnAyKCksIGJvdW5kcy5wMygpLCBw
NCwgcDMsIHAzKTsKKyAgICBpZiAoIWNvbnRhaW5zUG9pbnQxICYmICFpbnRlcnNlY3RGb3JQb2lu
dDEpCisgICAgICAgIGZpbmRJbnRlcnNlY3Rpb25PbkxpbmVCZXR3ZWVuUG9pbnRzKGJvdW5kcy5w
MSgpLCBib3VuZHMucDQoKSwgcDEsIHAyLCBwMSk7CisgICAgaWYgKCFjb250YWluc1BvaW50NCAm
JiAhaW50ZXJzZWN0Rm9yUG9pbnQ0KQorICAgICAgICBmaW5kSW50ZXJzZWN0aW9uT25MaW5lQmV0
d2VlblBvaW50cyhib3VuZHMucDEoKSwgYm91bmRzLnA0KCksIHA0LCBwMywgcDQpOworCisgICAg
cmV0dXJuIEZsb2F0UXVhZChwMSwgcDIsIHAzLCBwNCk7Cit9CisKK3N0YXRpYyB2b2lkIGxheWVy
UGF0aFdpdGhIb2xlKENBU2hhcGVMYXllciAqbGF5ZXIsIGNvbnN0IEZsb2F0UXVhZCYgb3V0ZXJR
dWFkLCBjb25zdCBGbG9hdFF1YWQmIGhvbGVRdWFkKQoreworICAgIC8vIE5vdGhpbmcgdG8gc2hv
dy4KKyAgICBpZiAob3V0ZXJRdWFkID09IGhvbGVRdWFkIHx8IGhvbGVRdWFkLmNvbnRhaW5zUXVh
ZChvdXRlclF1YWQpKSB7CisgICAgICAgIGxheWVyLnBhdGggPSBOVUxMOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgLy8gSWYgdGhlcmUgaXMgYSBuZWdhdGl2ZSBtYXJnaW4gLyBwYWRk
aW5nIHRoZW4gdGhlIG91dGVyIGJveCBtaWdodCBub3QKKyAgICAvLyBmdWxseSBjb250YWluIHRo
ZSBob2xlIGJveC4gSW4gc3VjaCBjYXNlcyB3ZSByZWNhbGN1bGF0ZSB0aGUgaG9sZSB0bworICAg
IC8vIGJlIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhlIHR3byBxdWFkcy4KKyAgICBGbG9hdFF1YWQg
aW5uZXJIb2xlOworICAgIGlmIChvdXRlclF1YWQuY29udGFpbnNRdWFkKGhvbGVRdWFkKSkKKyAg
ICAgICAgaW5uZXJIb2xlID0gaG9sZVF1YWQ7CisgICAgZWxzZQorICAgICAgICBpbm5lckhvbGUg
PSBxdWFkSW50ZXJzZWN0aW9uKG91dGVyUXVhZCwgaG9sZVF1YWQpOworCisgICAgLy8gQ2xvY2t3
aXNlIGluc2lkZSByZWN0IChob2xlKSwgQ291bnRlci1DbG9ja3dpc2Ugb3V0c2lkZSByZWN0IChm
aWxsKS4KKyAgICBDR011dGFibGVQYXRoUmVmIHBhdGggPSBDR1BhdGhDcmVhdGVNdXRhYmxlKCk7
CisgICAgQ0dQYXRoTW92ZVRvUG9pbnQocGF0aCwgMCwgaW5uZXJIb2xlLnAxKCkueCgpLCBpbm5l
ckhvbGUucDEoKS55KCkpOworICAgIENHUGF0aEFkZExpbmVUb1BvaW50KHBhdGgsIDAsIGlubmVy
SG9sZS5wMigpLngoKSwgaW5uZXJIb2xlLnAyKCkueSgpKTsKKyAgICBDR1BhdGhBZGRMaW5lVG9Q
b2ludChwYXRoLCAwLCBpbm5lckhvbGUucDMoKS54KCksIGlubmVySG9sZS5wMygpLnkoKSk7Cisg
ICAgQ0dQYXRoQWRkTGluZVRvUG9pbnQocGF0aCwgMCwgaW5uZXJIb2xlLnA0KCkueCgpLCBpbm5l
ckhvbGUucDQoKS55KCkpOworICAgIENHUGF0aE1vdmVUb1BvaW50KHBhdGgsIDAsIG91dGVyUXVh
ZC5wMSgpLngoKSwgb3V0ZXJRdWFkLnAxKCkueSgpKTsKKyAgICBDR1BhdGhBZGRMaW5lVG9Qb2lu
dChwYXRoLCAwLCBvdXRlclF1YWQucDQoKS54KCksIG91dGVyUXVhZC5wNCgpLnkoKSk7CisgICAg
Q0dQYXRoQWRkTGluZVRvUG9pbnQocGF0aCwgMCwgb3V0ZXJRdWFkLnAzKCkueCgpLCBvdXRlclF1
YWQucDMoKS55KCkpOworICAgIENHUGF0aEFkZExpbmVUb1BvaW50KHBhdGgsIDAsIG91dGVyUXVh
ZC5wMigpLngoKSwgb3V0ZXJRdWFkLnAyKCkueSgpKTsKKyAgICBsYXllci5wYXRoID0gcGF0aDsK
KyAgICBDR1BhdGhSZWxlYXNlKHBhdGgpOworfQorCitzdGF0aWMgdm9pZCBsYXllclBhdGgoQ0FT
aGFwZUxheWVyICpsYXllciwgY29uc3QgRmxvYXRRdWFkJiBvdXRlclF1YWQpCit7CisgICAgQ0dN
dXRhYmxlUGF0aFJlZiBwYXRoID0gQ0dQYXRoQ3JlYXRlTXV0YWJsZSgpOworICAgIENHUGF0aE1v
dmVUb1BvaW50KHBhdGgsIDAsIG91dGVyUXVhZC5wMSgpLngoKSwgb3V0ZXJRdWFkLnAxKCkueSgp
KTsKKyAgICBDR1BhdGhBZGRMaW5lVG9Qb2ludChwYXRoLCAwLCBvdXRlclF1YWQucDQoKS54KCks
IG91dGVyUXVhZC5wNCgpLnkoKSk7CisgICAgQ0dQYXRoQWRkTGluZVRvUG9pbnQocGF0aCwgMCwg
b3V0ZXJRdWFkLnAzKCkueCgpLCBvdXRlclF1YWQucDMoKS55KCkpOworICAgIENHUGF0aEFkZExp
bmVUb1BvaW50KHBhdGgsIDAsIG91dGVyUXVhZC5wMigpLngoKSwgb3V0ZXJRdWFkLnAyKCkueSgp
KTsKKyAgICBsYXllci5wYXRoID0gcGF0aDsKKyAgICBDR1BhdGhSZWxlYXNlKHBhdGgpOworfQor
CistICh2b2lkKV9sYXlvdXRGb3JOb2RlSGlnaGxpZ2h0Oihjb25zdCBIaWdobGlnaHQmKWhpZ2hs
aWdodAoreworICAgIFtzZWxmIF9jcmVhdGVMYXllcnM6NF07CisKKyAgICBDQVNoYXBlTGF5ZXIg
Km1hcmdpbkxheWVyID0gW19sYXllcnMgb2JqZWN0QXRJbmRleDowXTsKKyAgICBDQVNoYXBlTGF5
ZXIgKmJvcmRlckxheWVyID0gW19sYXllcnMgb2JqZWN0QXRJbmRleDoxXTsKKyAgICBDQVNoYXBl
TGF5ZXIgKnBhZGRpbmdMYXllciA9IFtfbGF5ZXJzIG9iamVjdEF0SW5kZXg6Ml07CisgICAgQ0FT
aGFwZUxheWVyICpjb250ZW50TGF5ZXIgPSBbX2xheWVycyBvYmplY3RBdEluZGV4OjNdOworCisg
ICAgRmxvYXRRdWFkIG1hcmdpblF1YWQgPSBoaWdobGlnaHQucXVhZHNbMF07CisgICAgRmxvYXRR
dWFkIGJvcmRlclF1YWQgPSBoaWdobGlnaHQucXVhZHNbMV07CisgICAgRmxvYXRRdWFkIHBhZGRp
bmdRdWFkID0gaGlnaGxpZ2h0LnF1YWRzWzJdOworICAgIEZsb2F0UXVhZCBjb250ZW50UXVhZCA9
IGhpZ2hsaWdodC5xdWFkc1szXTsKKworICAgIG1hcmdpbkxheWVyLmZpbGxDb2xvciA9IGNhY2hl
ZENHQ29sb3IoaGlnaGxpZ2h0Lm1hcmdpbkNvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAg
ICBib3JkZXJMYXllci5maWxsQ29sb3IgPSBjYWNoZWRDR0NvbG9yKGhpZ2hsaWdodC5ib3JkZXJD
b2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgcGFkZGluZ0xheWVyLmZpbGxDb2xvciA9
IGNhY2hlZENHQ29sb3IoaGlnaGxpZ2h0LnBhZGRpbmdDb2xvciwgQ29sb3JTcGFjZURldmljZVJH
Qik7CisgICAgY29udGVudExheWVyLmZpbGxDb2xvciA9IGNhY2hlZENHQ29sb3IoaGlnaGxpZ2h0
LmNvbnRlbnRDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CisKKyAgICBsYXllclBhdGhXaXRo
SG9sZShtYXJnaW5MYXllciwgbWFyZ2luUXVhZCwgYm9yZGVyUXVhZCk7CisgICAgbGF5ZXJQYXRo
V2l0aEhvbGUoYm9yZGVyTGF5ZXIsIGJvcmRlclF1YWQsIHBhZGRpbmdRdWFkKTsKKyAgICBsYXll
clBhdGhXaXRoSG9sZShwYWRkaW5nTGF5ZXIsIHBhZGRpbmdRdWFkLCBjb250ZW50UXVhZCk7Cisg
ICAgbGF5ZXJQYXRoKGNvbnRlbnRMYXllciwgY29udGVudFF1YWQpOworfQorCistICh2b2lkKV9s
YXlvdXRGb3JSZWN0c0hpZ2hsaWdodDooY29uc3QgSGlnaGxpZ2h0JiloaWdobGlnaHQKK3sKKyAg
ICBOU1VJbnRlZ2VyIG51bUxheWVycyA9IChOU1VJbnRlZ2VyKWhpZ2hsaWdodC5xdWFkcy5zaXpl
KCk7CisgICAgaWYgKCFudW1MYXllcnMpIHsKKyAgICAgICAgW3NlbGYgX3JlbW92ZUFsbExheWVy
c107CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbc2VsZiBfY3JlYXRlTGF5ZXJzOm51
bUxheWVyc107CisKKyAgICBDR0NvbG9yUmVmIGNvbnRlbnRDb2xvciA9IGNhY2hlZENHQ29sb3Io
aGlnaGxpZ2h0LmNvbnRlbnRDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgZm9yIChO
U1VJbnRlZ2VyIGkgPSAwOyBpIDwgbnVtTGF5ZXJzOyArK2kpIHsKKyAgICAgICAgQ0FTaGFwZUxh
eWVyICpsYXllciA9IFtfbGF5ZXJzIG9iamVjdEF0SW5kZXg6aV07CisgICAgICAgIGxheWVyLmZp
bGxDb2xvciA9IGNvbnRlbnRDb2xvcjsKKyAgICAgICAgbGF5ZXJQYXRoKGxheWVyLCBoaWdobGln
aHQucXVhZHNbaV0pOworICAgIH0KK30KKworLSAodm9pZCl1cGRhdGU6KGNvbnN0IEhpZ2hsaWdo
dCYpaGlnaGxpZ2h0Cit7CisgICAgaWYgKGhpZ2hsaWdodC50eXBlID09IEhpZ2hsaWdodFR5cGVO
b2RlKQorICAgICAgICBbc2VsZiBfbGF5b3V0Rm9yTm9kZUhpZ2hsaWdodDpoaWdobGlnaHRdOwor
ICAgIGVsc2UgaWYgKGhpZ2hsaWdodC50eXBlID09IEhpZ2hsaWdodFR5cGVSZWN0cykKKyAgICAg
ICAgW3NlbGYgX2xheW91dEZvclJlY3RzSGlnaGxpZ2h0OmhpZ2hsaWdodF07Cit9CisKK0BlbmQK
KworCiBAaW1wbGVtZW50YXRpb24gV0tDb250ZW50VmlldyB7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFBhZ2VDbGllbnRJbXBsPiBfcGFnZUNsaWVudDsKICAgICBSZXRhaW5QdHI8V0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyPiBfYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjsKIAogICAgIFJldGFp
blB0cjxVSVZpZXc+IF9yb290Q29udGVudFZpZXc7CiAgICAgUmV0YWluUHRyPFdLSW5zcGVjdG9y
SW5kaWNhdGlvblZpZXc+IF9pbnNwZWN0b3JJbmRpY2F0aW9uVmlldzsKKyAgICBSZXRhaW5QdHI8
V0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3PiBfaW5zcGVjdG9ySGlnaGxpZ2h0VmlldzsKIAogICAg
IEhpc3RvcmljYWxWZWxvY2l0eURhdGEgX2hpc3RvcmljYWxLaW5lbWF0aWNEYXRhOwogfQpAQCAt
MjcxLDYgKzUxNSwyNCBAQCAtIChCT09MKWlzQXNzaXN0aW5nTm9kZQogICAgIHJldHVybiBbc2Vs
ZiBpc0VkaXRhYmxlXTsKIH0KIAorLSAodm9pZClfc2hvd0luc3BlY3RvckhpZ2hsaWdodDooY29u
c3QgV2ViQ29yZTo6SGlnaGxpZ2h0JiloaWdobGlnaHQKK3sKKyAgICBpZiAoIV9pbnNwZWN0b3JI
aWdobGlnaHRWaWV3KSB7CisgICAgICAgIF9pbnNwZWN0b3JIaWdobGlnaHRWaWV3ID0gYWRvcHRO
UyhbW1dLSW5zcGVjdG9ySGlnaGxpZ2h0VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3Ra
ZXJvXSk7CisgICAgICAgIFtzZWxmIGluc2VydFN1YnZpZXc6X2luc3BlY3RvckhpZ2hsaWdodFZp
ZXcuZ2V0KCkgYWJvdmVTdWJ2aWV3Ol9yb290Q29udGVudFZpZXcuZ2V0KCldOworICAgIH0KKwor
ICAgIFtfaW5zcGVjdG9ySGlnaGxpZ2h0VmlldyB1cGRhdGU6aGlnaGxpZ2h0XTsKK30KKworLSAo
dm9pZClfaGlkZUluc3BlY3RvckhpZ2hsaWdodAoreworICAgIGlmIChfaW5zcGVjdG9ySGlnaGxp
Z2h0VmlldykgeworICAgICAgICBbX2luc3BlY3RvckhpZ2hsaWdodFZpZXcgcmVtb3ZlRnJvbVN1
cGVydmlld107CisgICAgICAgIF9pbnNwZWN0b3JIaWdobGlnaHRWaWV3ID0gbmlsOworICAgIH0K
K30KKwogLSAoQk9PTClpc1Nob3dpbmdJbnNwZWN0b3JJbmRpY2F0aW9uCiB7CiAgICAgcmV0dXJu
ICEhX2luc3BlY3RvckluZGljYXRpb25WaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAxOTFlYjMxLi4xM2IxNDgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtNjQ2
LDYgKzY0NiwxNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c3RvcEFzc2lzdGluZ05vZGUoKQogfQog
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzaG93SW5zcGVjdG9y
SGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdodCYgaGlnaGxpZ2h0KQoreworICAgIG1f
cGFnZUNsaWVudC5zaG93SW5zcGVjdG9ySGlnaGxpZ2h0KGhpZ2hsaWdodCk7Cit9CisKK3ZvaWQg
V2ViUGFnZVByb3h5OjpoaWRlSW5zcGVjdG9ySGlnaGxpZ2h0KCkKK3sKKyAgICBtX3BhZ2VDbGll
bnQuaGlkZUluc3BlY3RvckhpZ2hsaWdodCgpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2hv
d0luc3BlY3RvckluZGljYXRpb24oKQogewogICAgIG1fcGFnZUNsaWVudC5zaG93SW5zcGVjdG9y
SW5kaWNhdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCmluZGV4IGVhZTA0MzYu
LjZjZmM5MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKQEAgLTMzLDYgKzMzLDEw
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QYWdlLmg+CiAKKyNpZiBQTEFURk9STShJT1MpCisjaW5jbHVkZSA8V2ViQ29yZS9J
bnNwZWN0b3JPdmVybGF5Lmg+CisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjksNiArNzMsNyBAQCB2b2lkIFdlYkluc3BlY3RvckNs
aWVudDo6ZGlkUmVzaXplTWFpbkZyYW1lKEZyYW1lKikKIAogdm9pZCBXZWJJbnNwZWN0b3JDbGll
bnQ6OmhpZ2hsaWdodCgpCiB7CisjaWYgIVBMQVRGT1JNKElPUykKICAgICBpZiAoIW1faGlnaGxp
Z2h0T3ZlcmxheSkgewogICAgICAgICBSZWZQdHI8UGFnZU92ZXJsYXk+IGhpZ2hsaWdodE92ZXJs
YXkgPSBQYWdlT3ZlcmxheTo6Y3JlYXRlKHRoaXMpOwogICAgICAgICBtX2hpZ2hsaWdodE92ZXJs
YXkgPSBoaWdobGlnaHRPdmVybGF5LmdldCgpOwpAQCAtNzgsMTIgKzgzLDIxIEBAIHZvaWQgV2Vi
SW5zcGVjdG9yQ2xpZW50OjpoaWdobGlnaHQoKQogICAgICAgICBtX2hpZ2hsaWdodE92ZXJsYXkt
PnN0b3BGYWRlT3V0QW5pbWF0aW9uKCk7CiAgICAgICAgIG1faGlnaGxpZ2h0T3ZlcmxheS0+c2V0
TmVlZHNEaXNwbGF5KCk7CiAgICAgfQorI2Vsc2UKKyAgICBIaWdobGlnaHQgaGlnaGxpZ2h0Owor
ICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmdldEhpZ2hsaWdo
dCgmaGlnaGxpZ2h0LCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGluYXRlU3lzdGVtOjpEb2N1bWVu
dCk7CisgICAgbV9wYWdlLT5zaG93SW5zcGVjdG9ySGlnaGxpZ2h0KGhpZ2hsaWdodCk7CisjZW5k
aWYKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmhpZGVIaWdobGlnaHQoKQogeworI2lm
ICFQTEFURk9STShJT1MpCiAgICAgaWYgKG1faGlnaGxpZ2h0T3ZlcmxheSkKICAgICAgICAgbV9w
YWdlLT51bmluc3RhbGxQYWdlT3ZlcmxheShtX2hpZ2hsaWdodE92ZXJsYXksIFBhZ2VPdmVybGF5
OjpGYWRlTW9kZTo6RmFkZSk7CisjZWxzZQorICAgIG1fcGFnZS0+aGlkZUluc3BlY3RvckhpZ2hs
aWdodCgpOworI2VuZGlmCiB9CiAKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA3ZjMyOWRjLi5mOTY1NWZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEzMSw2ICsx
MzEsNyBAQCBjbGFzcyBTdWJzdGl0dXRlRGF0YTsKIGNsYXNzIFRleHRDaGVja2luZ1JlcXVlc3Q7
CiBjbGFzcyBVUkw7CiBjbGFzcyBWaXNpYmxlU2VsZWN0aW9uOworc3RydWN0IEhpZ2hsaWdodDsK
IHN0cnVjdCBLZXlwcmVzc0NvbW1hbmQ7CiBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0OwogfQpA
QCAtNTA3LDYgKzUwOCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoQXN5bmNocm9ub3Vz
VG91Y2hFdmVudHMoY29uc3QgVmVjdG9yPFdlYlRvdWNoRXZlbnQsIDE+JiBxdWV1ZSk7CiAgICAg
dm9pZCBjb250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hhbmdlKGNvbnN0IFN0cmluZyYpOwogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCisgICAgdm9pZCBzaG93SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdl
YkNvcmU6OkhpZ2hsaWdodCYpOworICAgIHZvaWQgaGlkZUluc3BlY3RvckhpZ2hsaWdodCgpOwor
CiAgICAgdm9pZCBzaG93SW5zcGVjdG9ySW5kaWNhdGlvbigpOwogICAgIHZvaWQgaGlkZUluc3Bl
Y3RvckluZGljYXRpb24oKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDQ0OTAwM2QuLmQ5ZDg4MmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KQEAgLTYxMiw2ICs2MTIsMTYgQEAgdm9pZCBXZWJQYWdlOjpzZXRBc3Npc3RlZE5vZGVT
ZWxlY3RlZEluZGV4KHVpbnQzMl90IGluZGV4LCBib29sIGFsbG93TXVsdGlwbGVTZWwKIH0KIAog
I2lmIEVOQUJMRShJTlNQRUNUT1IpCit2b2lkIFdlYlBhZ2U6OnNob3dJbnNwZWN0b3JIaWdobGln
aHQoY29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0JiBoaWdobGlnaHQpCit7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpTaG93SW5zcGVjdG9ySGlnaGxpZ2h0KGhpZ2hsaWdodCkpOwor
fQorCit2b2lkIFdlYlBhZ2U6OmhpZGVJbnNwZWN0b3JIaWdobGlnaHQoKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGlkZUluc3BlY3RvckhpZ2hsaWdodCgpKTsKK30KKwog
dm9pZCBXZWJQYWdlOjpzaG93SW5zcGVjdG9ySW5kaWNhdGlvbigpCiB7CiAgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpTaG93SW5zcGVjdG9ySW5kaWNhdGlvbigpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233739</attachid>
            <date>2014-06-24 14:17:07 -0700</date>
            <delta_ts>2014-06-24 14:57:19 -0700</delta_ts>
            <desc>[PATCH] For Windows Symbol</desc>
            <filename>windo1.patch</filename>
            <type>text/plain</type>
            <size>42248</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkMWJlMTU1Li5kMmMwYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTQtMDYtMjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbaU9TXTogV0syIEluc3BlY3RvciBOb2RlIEhpZ2hsaWdodGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MjU3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBjbGllbnRzIHdhbnQg
dG8gZ2V0IGhpZ2hsaWdodHMgd2l0aCB0aGUgc2Nyb2xsIGFwcGxpZWQsCisgICAgICAgIG90aGVy
cyBkbyBub3QuIFByb3ZpZGUgYSBDb29yZGluYXRlU3BhY2UgcGFyYW0gdG8gYmUgdXNlZCBmb3IK
KyAgICAgICAgZ2V0dGluZyBhIGhpZ2hsaWdodCAob25seSB1c2VkIG9uIGlPUykuCisKKyAgICAg
ICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpnZXRIaWdo
bGlnaHQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yT3ZlcmxheTo6Z2V0SGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
T2JqZWN0Rm9yUmVuZGVyZXJGcmFnbWVudHMpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JPdmVybGF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHQ6OkhpZ2hsaWdodCk6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjppbnNwZWN0b3JIaWdobGlnaHRSZWN0cyk6CisKIDIwMTQtMDYtMjQgIEVyaWMgQ2FybHNv
biAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBm
aXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGJlMDYwMGEuLjkwNmFkOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCkBAIC0xNzg1LDcgKzE3ODUsNyBAQCBfX1pOSzdXZWJDb3JlMTlBbmltYXRpb25D
b250cm9sbGVyMzNhbGxvd3NOZXdBbmltYXRpb25zV2hpbGVTdXNwZW5kZWRFdgogX19aTks3V2Vi
Q29yZTE5SFRNTE9wdEdyb3VwRWxlbWVudDE0Z3JvdXBMYWJlbFRleHRFdgogX19aTks3V2ViQ29y
ZTE5SFRNTFRleHRBcmVhRWxlbWVudDV2YWx1ZUV2CiBfX1pOSzdXZWJDb3JlMTlJREJEYXRhYmFz
ZU1ldGFkYXRhMTJpc29sYXRlZENvcHlFdgotX19aTks3V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJv
bGxlcjEyZ2V0SGlnaGxpZ2h0RVBOU185SGlnaGxpZ2h0RQorX19aTks3V2ViQ29yZTE5SW5zcGVj
dG9yQ29udHJvbGxlcjEyZ2V0SGlnaGxpZ2h0RVBOU185SGlnaGxpZ2h0RU5TXzE2SW5zcGVjdG9y
T3ZlcmxheTE2Q29vcmRpbmF0ZVN5c3RlbUUKIF9fWk5LN1dlYkNvcmUxOUluc3BlY3RvckNvbnRy
b2xsZXIyOWJ1aWxkT2JqZWN0Rm9ySGlnaGxpZ2h0ZWROb2RlRXYKIF9fWk5LN1dlYkNvcmUxOU1l
ZGlhU2Vzc2lvbk1hbmFnZXIzMGFwcGxpY2F0aW9uV2lsbEVudGVyQmFja2dyb3VuZEV2CiBfX1pO
SzdXZWJDb3JlMTlNZWRpYVNlc3Npb25NYW5hZ2VyMzBhcHBsaWNhdGlvbldpbGxFbnRlckZvcmVn
cm91bmRFdgpAQCAtMzE1Miw3ICszMTUyLDYgQEAgX19aTks3V2ViQ29yZTlET01XaW5kb3c4ZG9j
dW1lbnRFdgogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikgJiYgUExBVEZPUk0oSU9TKQogX19aTjdX
ZWJDb3JlMTZmaW5kSW50ZXJzZWN0aW9uRVJLTlNfMTBGbG9hdFBvaW50RVMyX1MyX1MyX1JTMF8K
LV9fWk5LN1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxMmdldEhpZ2hsaWdodEVQTlNfOUhp
Z2hsaWdodEUKIF9fWk5LN1dlYkNvcmU5RmxvYXRRdWFkMTJjb250YWluc1F1YWRFUktTMF8KIF9f
Wk5LN1dlYkNvcmU5RmxvYXRRdWFkMTNjb250YWluc1BvaW50RVJLTlNfMTBGbG9hdFBvaW50RQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKaW5kZXggM2JhZDk0Mi4uOGQxNTAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMzE4LDkgKzMxOCw5IEBAIHZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZHJhd0hpZ2hsaWdodChHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQpIGNvbnN0CiAgICAgbV9vdmVybGF5LT5wYWludChjb250ZXh0KTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JDb250cm9sbGVyOjpnZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiBoaWdobGlnaHQpIGNvbnN0
Cit2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmdldEhpZ2hsaWdodChIaWdobGlnaHQqIGhpZ2hs
aWdodCwgSW5zcGVjdG9yT3ZlcmxheTo6Q29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVt
KSBjb25zdAogewotICAgIG1fb3ZlcmxheS0+Z2V0SGlnaGxpZ2h0KGhpZ2hsaWdodCk7CisgICAg
bV9vdmVybGF5LT5nZXRIaWdobGlnaHQoaGlnaGxpZ2h0LCBjb29yZGluYXRlU3lzdGVtKTsKIH0K
IAogUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IEluc3BlY3RvckNvbnRyb2xsZXI6OmJ1aWxk
T2JqZWN0Rm9ySGlnaGxpZ2h0ZWROb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDk5MjgxZWUuLmMyODg2NjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMzQs
NiArMzQsNyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCiAj
aW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuaD4KICNpbmNsdWRlIDxp
bnNwZWN0b3IvSW5zcGVjdG9yRW52aXJvbm1lbnQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgpAQCAtNTksNyArNjAsNiBAQCBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0
b3JET01BZ2VudDsKIGNsYXNzIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ7CiBjbGFzcyBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudDsKLWNsYXNzIEluc3BlY3Rvck92ZXJsYXk7CiBjbGFzcyBJbnNw
ZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OwogY2xhc3MgSW5z
dHJ1bWVudGluZ0FnZW50czsKQEAgLTY3LDcgKzY3LDYgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFBh
Z2U7CiBjbGFzcyBQYWdlRGVidWdnZXJBZ2VudDsKIGNsYXNzIFdlYkluamVjdGVkU2NyaXB0TWFu
YWdlcjsKLXN0cnVjdCBIaWdobGlnaHQ7CiAKIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXIgZmlu
YWwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JFbnZpcm9ubWVudCB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yQ29udHJvbGxlcik7CkBAIC0xMDQsNyArMTAzLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBpbnNwZWN0KE5vZGUqKTsKICAgICB2b2lkIGRyYXdIaWdobGln
aHQoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0gICAgdm9pZCBnZXRIaWdobGlnaHQoSGlnaGxp
Z2h0KikgY29uc3Q7CisgICAgdm9pZCBnZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiwgSW5zcGVjdG9y
T3ZlcmxheTo6Q29vcmRpbmF0ZVN5c3RlbSkgY29uc3Q7CiAgICAgdm9pZCBoaWRlSGlnaGxpZ2h0
KCk7CiAgICAgTm9kZSogaGlnaGxpZ2h0ZWROb2RlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCA0MTQxYjcxLi5iODk5YzJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBA
IC0xMDAsMTYgKzEwMCwyMyBAQCB2b2lkIGRyYXdPdXRsaW5lZFF1YWQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBGbG9hdFF1YWQmIHF1YWQsIGNvbnN0IENvbAogICAgIGNvbnRleHQt
PmZpbGxQYXRoKHF1YWRQYXRoKTsKIH0KIAotc3RhdGljIHZvaWQgY29udGVudHNRdWFkVG9QYWdl
KGNvbnN0IEZyYW1lVmlldyogbWFpblZpZXcsIGNvbnN0IEZyYW1lVmlldyogdmlldywgRmxvYXRR
dWFkJiBxdWFkKQorc3RhdGljIHZvaWQgY29udGVudHNRdWFkVG9Db29yZGluYXRlU3lzdGVtKGNv
bnN0IEZyYW1lVmlldyogbWFpblZpZXcsIGNvbnN0IEZyYW1lVmlldyogdmlldywgRmxvYXRRdWFk
JiBxdWFkLCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0
ZW0pCiB7CiAgICAgcXVhZC5zZXRQMSh2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocm91bmRlZElu
dFBvaW50KHF1YWQucDEoKSkpKTsKICAgICBxdWFkLnNldFAyKHZpZXctPmNvbnRlbnRzVG9Sb290
Vmlldyhyb3VuZGVkSW50UG9pbnQocXVhZC5wMigpKSkpOwogICAgIHF1YWQuc2V0UDModmlldy0+
Y29udGVudHNUb1Jvb3RWaWV3KHJvdW5kZWRJbnRQb2ludChxdWFkLnAzKCkpKSk7CiAgICAgcXVh
ZC5zZXRQNCh2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocm91bmRlZEludFBvaW50KHF1YWQucDQo
KSkpKTsKLSAgICBxdWFkICs9IG1haW5WaWV3LT5zY3JvbGxPZmZzZXQoKTsKKworICAgIGlmIChj
b29yZGluYXRlU3lzdGVtID09IEluc3BlY3Rvck92ZXJsYXk6OkNvb3JkaW5hdGVTeXN0ZW06OlZp
ZXcpCisgICAgICAgIHF1YWQgKz0gbWFpblZpZXctPnNjcm9sbE9mZnNldCgpOworfQorCitzdGF0
aWMgdm9pZCBjb250ZW50c1F1YWRUb1BhZ2UoY29uc3QgRnJhbWVWaWV3KiBtYWluVmlldywgY29u
c3QgRnJhbWVWaWV3KiB2aWV3LCBGbG9hdFF1YWQmIHF1YWQpCit7CisgICAgY29udGVudHNRdWFk
VG9Db29yZGluYXRlU3lzdGVtKG1haW5WaWV3LCB2aWV3LCBxdWFkLCBJbnNwZWN0b3JPdmVybGF5
OjpDb29yZGluYXRlU3lzdGVtOjpWaWV3KTsKIH0KIAotc3RhdGljIHZvaWQgYnVpbGRSZW5kZXJl
ckhpZ2hsaWdodChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwg
Y29uc3QgSGlnaGxpZ2h0Q29uZmlnJiBoaWdobGlnaHRDb25maWcsIEhpZ2hsaWdodCogaGlnaGxp
Z2h0KQorc3RhdGljIHZvaWQgYnVpbGRSZW5kZXJlckhpZ2hsaWdodChSZW5kZXJPYmplY3QqIHJl
bmRlcmVyLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgY29uc3QgSGlnaGxpZ2h0Q29uZmlnJiBoaWdo
bGlnaHRDb25maWcsIEhpZ2hsaWdodCogaGlnaGxpZ2h0LCBJbnNwZWN0b3JPdmVybGF5OjpDb29y
ZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pCiB7CiAgICAgRnJhbWUqIGNvbnRhaW5pbmdG
cmFtZSA9IHJlbmRlcmVyLT5kb2N1bWVudCgpLmZyYW1lKCk7CiAgICAgaWYgKCFjb250YWluaW5n
RnJhbWUpCkBAIC0xMjYsNyArMTMzLDcgQEAgc3RhdGljIHZvaWQgYnVpbGRSZW5kZXJlckhpZ2hs
aWdodChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwKICAgICAg
ICAgaGlnaGxpZ2h0LT50eXBlID0gSGlnaGxpZ2h0VHlwZVJlY3RzOwogICAgICAgICByZW5kZXJl
ci0+YWJzb2x1dGVRdWFkcyhoaWdobGlnaHQtPnF1YWRzKTsKICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBoaWdobGlnaHQtPnF1YWRzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgY29u
dGVudHNRdWFkVG9QYWdlKG1haW5WaWV3LCBjb250YWluaW5nVmlldywgaGlnaGxpZ2h0LT5xdWFk
c1tpXSk7CisgICAgICAgICAgICBjb250ZW50c1F1YWRUb0Nvb3JkaW5hdGVTeXN0ZW0obWFpblZp
ZXcsIGNvbnRhaW5pbmdWaWV3LCBoaWdobGlnaHQtPnF1YWRzW2ldLCBjb29yZGluYXRlU3lzdGVt
KTsKICAgICB9IGVsc2UgaWYgKHJlbmRlcmVyLT5pc0JveCgpIHx8IHJlbmRlcmVyLT5pc1JlbmRl
cklubGluZSgpKSB7CiAgICAgICAgIExheW91dFJlY3QgY29udGVudEJveDsKICAgICAgICAgTGF5
b3V0UmVjdCBwYWRkaW5nQm94OwpAQCAtMjAyLDEwICsyMDksMTAgQEAgc3RhdGljIHZvaWQgYnVp
bGRSZW5kZXJlckhpZ2hsaWdodChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kZXJSZWdpb24q
IHJlZ2lvbiwKICAgICAgICAgICAgIGFic01hcmdpblF1YWQgPSByZW5kZXJlci0+bG9jYWxUb0Fi
c29sdXRlUXVhZChGbG9hdFJlY3QobWFyZ2luQm94KSk7CiAgICAgICAgIH0KIAotICAgICAgICBj
b250ZW50c1F1YWRUb1BhZ2UobWFpblZpZXcsIGNvbnRhaW5pbmdWaWV3LCBhYnNDb250ZW50UXVh
ZCk7Ci0gICAgICAgIGNvbnRlbnRzUXVhZFRvUGFnZShtYWluVmlldywgY29udGFpbmluZ1ZpZXcs
IGFic1BhZGRpbmdRdWFkKTsKLSAgICAgICAgY29udGVudHNRdWFkVG9QYWdlKG1haW5WaWV3LCBj
b250YWluaW5nVmlldywgYWJzQm9yZGVyUXVhZCk7Ci0gICAgICAgIGNvbnRlbnRzUXVhZFRvUGFn
ZShtYWluVmlldywgY29udGFpbmluZ1ZpZXcsIGFic01hcmdpblF1YWQpOworICAgICAgICBjb250
ZW50c1F1YWRUb0Nvb3JkaW5hdGVTeXN0ZW0obWFpblZpZXcsIGNvbnRhaW5pbmdWaWV3LCBhYnND
b250ZW50UXVhZCwgY29vcmRpbmF0ZVN5c3RlbSk7CisgICAgICAgIGNvbnRlbnRzUXVhZFRvQ29v
cmRpbmF0ZVN5c3RlbShtYWluVmlldywgY29udGFpbmluZ1ZpZXcsIGFic1BhZGRpbmdRdWFkLCBj
b29yZGluYXRlU3lzdGVtKTsKKyAgICAgICAgY29udGVudHNRdWFkVG9Db29yZGluYXRlU3lzdGVt
KG1haW5WaWV3LCBjb250YWluaW5nVmlldywgYWJzQm9yZGVyUXVhZCwgY29vcmRpbmF0ZVN5c3Rl
bSk7CisgICAgICAgIGNvbnRlbnRzUXVhZFRvQ29vcmRpbmF0ZVN5c3RlbShtYWluVmlldywgY29u
dGFpbmluZ1ZpZXcsIGFic01hcmdpblF1YWQsIGNvb3JkaW5hdGVTeXN0ZW0pOwogCiAgICAgICAg
IGhpZ2hsaWdodC0+dHlwZSA9IEhpZ2hsaWdodFR5cGVOb2RlOwogICAgICAgICBoaWdobGlnaHQt
PnF1YWRzLmFwcGVuZChhYnNNYXJnaW5RdWFkKTsKQEAgLTIxNSwxMiArMjIyLDEyIEBAIHN0YXRp
YyB2b2lkIGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgUmVu
ZGVyUmVnaW9uKiByZWdpb24sCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBidWlsZE5vZGVIaWdo
bGlnaHQoTm9kZSogbm9kZSwgUmVuZGVyUmVnaW9uKiByZWdpb24sIGNvbnN0IEhpZ2hsaWdodENv
bmZpZyYgaGlnaGxpZ2h0Q29uZmlnLCBIaWdobGlnaHQqIGhpZ2hsaWdodCkKK3N0YXRpYyB2b2lk
IGJ1aWxkTm9kZUhpZ2hsaWdodChOb2RlKiBub2RlLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgY29u
c3QgSGlnaGxpZ2h0Q29uZmlnJiBoaWdobGlnaHRDb25maWcsIEhpZ2hsaWdodCogaGlnaGxpZ2h0
LCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pCiB7
CiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgaWYg
KCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwotICAgIGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQo
cmVuZGVyZXIsIHJlZ2lvbiwgaGlnaGxpZ2h0Q29uZmlnLCBoaWdobGlnaHQpOworICAgIGJ1aWxk
UmVuZGVyZXJIaWdobGlnaHQocmVuZGVyZXIsIHJlZ2lvbiwgaGlnaGxpZ2h0Q29uZmlnLCBoaWdo
bGlnaHQsIGNvb3JkaW5hdGVTeXN0ZW0pOwogfQogCiBzdGF0aWMgdm9pZCBidWlsZFF1YWRIaWdo
bGlnaHQoY29uc3QgRmxvYXRRdWFkJiBxdWFkLCBjb25zdCBIaWdobGlnaHRDb25maWcmIGhpZ2hs
aWdodENvbmZpZywgSGlnaGxpZ2h0ICpoaWdobGlnaHQpCkBAIC0yNjAsMTQgKzI2NywxNCBAQCB2
b2lkIEluc3BlY3Rvck92ZXJsYXk6OmRyYXdPdXRsaW5lKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgTGF5b3V0UmVjdCYgcgogICAgIGRyYXdPdXRsaW5lZFF1YWQoY29udGV4dCwgb3V0
bGluZVJlY3QsIENvbG9yKCksIGNvbG9yKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JPdmVybGF5Ojpn
ZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiBoaWdobGlnaHQpIGNvbnN0Cit2b2lkIEluc3BlY3Rvck92
ZXJsYXk6OmdldEhpZ2hsaWdodChIaWdobGlnaHQqIGhpZ2hsaWdodCwgSW5zcGVjdG9yT3Zlcmxh
eTo6Q29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtKSBjb25zdAogewogICAgIGlmICgh
bV9oaWdobGlnaHROb2RlICYmICFtX2hpZ2hsaWdodFF1YWQpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGhpZ2hsaWdodC0+dHlwZSA9IEhpZ2hsaWdodFR5cGVSZWN0czsKICAgICBpZiAobV9oaWdo
bGlnaHROb2RlKQotICAgICAgICBidWlsZE5vZGVIaWdobGlnaHQobV9oaWdobGlnaHROb2RlLmdl
dCgpLCBudWxscHRyLCBtX25vZGVIaWdobGlnaHRDb25maWcsIGhpZ2hsaWdodCk7CisgICAgICAg
IGJ1aWxkTm9kZUhpZ2hsaWdodChtX2hpZ2hsaWdodE5vZGUuZ2V0KCksIG51bGxwdHIsIG1fbm9k
ZUhpZ2hsaWdodENvbmZpZywgaGlnaGxpZ2h0LCBjb29yZGluYXRlU3lzdGVtKTsKICAgICBlbHNl
CiAgICAgICAgIGJ1aWxkUXVhZEhpZ2hsaWdodCgqbV9oaWdobGlnaHRRdWFkLCBtX3F1YWRIaWdo
bGlnaHRDb25maWcsIGhpZ2hsaWdodCk7CiB9CkBAIC01MDgsNyArNTE1LDcgQEAgc3RhdGljIFBh
c3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGJ1aWxkT2JqZWN0Rm9yUmVuZGVyZXJGcmFnbWVudHMo
UmVuZGVyT2JqZWN0KgogICAgIFJlbmRlckZsb3dUaHJlYWQqIGNvbnRhaW5pbmdGbG93VGhyZWFk
ID0gcmVuZGVyZXItPmZsb3dUaHJlYWRDb250YWluaW5nQmxvY2soKTsKICAgICBpZiAoIWNvbnRh
aW5pbmdGbG93VGhyZWFkKSB7CiAgICAgICAgIEhpZ2hsaWdodCBoaWdobGlnaHQ7Ci0gICAgICAg
IGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQocmVuZGVyZXIsIG51bGxwdHIsIGNvbmZpZywgJmhpZ2hs
aWdodCk7CisgICAgICAgIGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQocmVuZGVyZXIsIG51bGxwdHIs
IGNvbmZpZywgJmhpZ2hsaWdodCwgSW5zcGVjdG9yT3ZlcmxheTo6Q29vcmRpbmF0ZVN5c3RlbTo6
Vmlldyk7CiAgICAgICAgIGZyYWdtZW50c0FycmF5LT5wdXNoT2JqZWN0KGJ1aWxkT2JqZWN0Rm9y
SGlnaGxpZ2h0KGhpZ2hsaWdodCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFJlbmRlclJlZ2lv
biogc3RhcnRSZWdpb24gPSBudWxscHRyOwpAQCAtNTI0LDcgKzUzMSw3IEBAIHN0YXRpYyBQYXNz
UmVmUHRyPEluc3BlY3RvckFycmF5PiBidWlsZE9iamVjdEZvclJlbmRlcmVyRnJhZ21lbnRzKFJl
bmRlck9iamVjdCoKICAgICAgICAgICAgIGlmIChyZWdpb24tPmlzVmFsaWQoKSkgewogICAgICAg
ICAgICAgICAgIC8vIENvbXB1dGUgdGhlIGhpZ2hsaWdodCBvZiB0aGUgZnJhZ21lbnQgaW5zaWRl
IHRoZSBjdXJyZW50IHJlZ2lvbi4KICAgICAgICAgICAgICAgICBIaWdobGlnaHQgaGlnaGxpZ2h0
OwotICAgICAgICAgICAgICAgIGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQocmVuZGVyZXIsIHJlZ2lv
biwgY29uZmlnLCAmaGlnaGxpZ2h0KTsKKyAgICAgICAgICAgICAgICBidWlsZFJlbmRlcmVySGln
aGxpZ2h0KHJlbmRlcmVyLCByZWdpb24sIGNvbmZpZywgJmhpZ2hsaWdodCwgSW5zcGVjdG9yT3Zl
cmxheTo6Q29vcmRpbmF0ZVN5c3RlbTo6Vmlldyk7CiAgICAgICAgICAgICAgICAgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gZnJhZ21lbnRPYmplY3QgPSBidWlsZE9iamVjdEZvckhpZ2hsaWdodCho
aWdobGlnaHQpOwogCiAgICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSB0aGUgY2xpcHBpbmcgYXJl
YSBvZiB0aGUgcmVnaW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvck92ZXJsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVy
bGF5LmgKaW5kZXggM2VjMDdkZi4uMTkzYWM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yT3ZlcmxheS5oCkBAIC03MCw2ICs3MCw3IEBAIGVudW0gSGlnaGxpZ2h0VHlw
ZSB7CiBzdHJ1Y3QgSGlnaGxpZ2h0IHsKICAgICBIaWdobGlnaHQoKQogICAgICAgICA6IHR5cGUo
SGlnaGxpZ2h0VHlwZU5vZGUpCisgICAgICAgICwgdXNlUGFnZUNvb3JkaW5hdGVzKHRydWUpCiAg
ICAgewogICAgIH0KIApAQCAtMTAyLDEwICsxMDMsMTUgQEAgcHVibGljOgogICAgIEluc3BlY3Rv
ck92ZXJsYXkoUGFnZSYsIEluc3BlY3RvckNsaWVudCopOwogICAgIH5JbnNwZWN0b3JPdmVybGF5
KCk7CiAKKyAgICBlbnVtIGNsYXNzIENvb3JkaW5hdGVTeXN0ZW0geworICAgICAgICBWaWV3LCAv
LyBBZGp1c3RzIGZvciB0aGUgbWFpbiBmcmFtZSdzIHNjcm9sbCBvZmZzZXQuCisgICAgICAgIERv
Y3VtZW50LCAvLyBEb2VzIG5vdCBhZGp1c3QgZm9yIHRoZSBtYWluIGZyYW1lJ3Mgc2Nyb2xsIG9m
ZnNldC4KKyAgICB9OworCiAgICAgdm9pZCB1cGRhdGUoKTsKICAgICB2b2lkIHBhaW50KEdyYXBo
aWNzQ29udGV4dCYpOwogICAgIHZvaWQgZHJhd091dGxpbmUoR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgTGF5b3V0UmVjdCYsIGNvbnN0IENvbG9yJik7Ci0gICAgdm9pZCBnZXRIaWdobGlnaHQoSGln
aGxpZ2h0KikgY29uc3Q7CisgICAgdm9pZCBnZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiwgQ29vcmRp
bmF0ZVN5c3RlbSkgY29uc3Q7CiAKICAgICB2b2lkIHNldFBhdXNlZEluRGVidWdnZXJNZXNzYWdl
KGNvbnN0IFN0cmluZyopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXgg
OTYzMTc1OTcuLmQwZTVkZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAg
LTcxNyw3ICs3MTcsNyBAQCBQYXNzUmVmUHRyPENsaWVudFJlY3RMaXN0PiBJbnRlcm5hbHM6Omlu
c3BlY3RvckhpZ2hsaWdodFJlY3RzKEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0KIAogICAgIEhp
Z2hsaWdodCBoaWdobGlnaHQ7Ci0gICAgZG9jdW1lbnQtPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpLmdldEhpZ2hsaWdodCgmaGlnaGxpZ2h0KTsKKyAgICBkb2N1bWVudC0+cGFnZSgpLT5p
bnNwZWN0b3JDb250cm9sbGVyKCkuZ2V0SGlnaGxpZ2h0KCZoaWdobGlnaHQsIEluc3BlY3Rvck92
ZXJsYXk6OkNvb3JkaW5hdGVTeXN0ZW06OlZpZXcpOwogICAgIHJldHVybiBDbGllbnRSZWN0TGlz
dDo6Y3JlYXRlKGhpZ2hsaWdodC5xdWFkcyk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShlYyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdl
bmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHBy
b2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCmluZGV4IGE4MTc0
NmMuLjAyYjA2NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2Vi
S2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVm
LmluCkBAIC0yMTAsNyArMjEwLDYgQEAgRVhQT1JUUwogICAgICAgICA/c2VsZWN0VGFnQEhUTUxO
YW1lc0BXZWJDb3JlQEAzVkhUTUxRdWFsaWZpZWROYW1lQDJAQgogI2lmIEVOQUJMRShJTlNQRUNU
T1IpCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9idWlsZE9iamVjdEZvckhpZ2hsaWdodGVk
Tm9kZUBJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFCRT9BVj8kUGFzc1JlZlB0ckBWSW5z
cGVjdG9yT2JqZWN0QEluc3BlY3RvckBAQFdURkBAWFosID9idWlsZE9iamVjdEZvckhpZ2hsaWdo
dGVkTm9kZUBJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFFQkE/QVY/JFBhc3NSZWZQdHJA
Vkluc3BlY3Rvck9iamVjdEBJbnNwZWN0b3JAQEBXVEZAQFhaKQotICAgICAgICBzeW1ib2xXaXRo
UG9pbnRlcig/Z2V0SGlnaGxpZ2h0QEluc3BlY3RvckNvbnRyb2xsZXJAV2ViQ29yZUBAUUJFWFBB
VUhpZ2hsaWdodEAyQEBaLCA/Z2V0SGlnaGxpZ2h0QEluc3BlY3RvckNvbnRyb2xsZXJAV2ViQ29y
ZUBAUUVCQVhQRUFVSGlnaGxpZ2h0QDJAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9p
bnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZUBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25AV2ViQ29y
ZUBAQ0FQQVZJbnN0cnVtZW50aW5nQWdlbnRzQDJAUEFWUGFnZUAyQEBaLCA/aW5zdHJ1bWVudGlu
Z0FnZW50c0ZvclBhZ2VASW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQFdlYkNvcmVAQENBUEVBVklu
c3RydW1lbnRpbmdBZ2VudHNAMkBQRUFWUGFnZUAyQEBaKQogICAgICAgICA/c19mcm9udGVuZENv
dW50ZXJASW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQFdlYkNvcmVAQDBIQQogICAgICAgICBzeW1i
b2xXaXRoUG9pbnRlcig/aXNVbmRlclRlc3RASW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbEBX
ZWJDb3JlQEBVQUVfTlhaLCA/aXNVbmRlclRlc3RASW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bEBXZWJDb3JlQEBVRUFBX05YWikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA0MTM3Mzk4Li5iZTRhOWM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDYtMjQgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXTogV0syIEluc3Bl
Y3RvciBOb2RlIEhpZ2hsaWdodGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM0MjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcubW06Cisg
ICAgICAgICgtW1dlYk5vZGVIaWdobGlnaHRWaWV3IGxheW91dFN1YmxheWVyczpdKToKKwogMjAx
NC0wNi0yNCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeGVk
IHRoZSBpT1MgYnVpbGQgYWZ0ZXIgcjE3MDM1OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbQppbmRleCAyNWZmYzM5Li5m
YmU3YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9k
ZUhpZ2hsaWdodFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9yL1dl
Yk5vZGVIaWdobGlnaHRWaWV3Lm1tCkBAIC0zMTUsNyArMzE1LDcgQEAgLSAodm9pZClsYXlvdXRT
dWJsYXllcnM6KENBTGF5ZXIgKilwYXJlbnRMYXllcgogICAgICAgICByZXR1cm47CiAKICAgICBI
aWdobGlnaHQgaDsKLSAgICBbX3dlYk5vZGVIaWdobGlnaHQgaW5zcGVjdG9yQ29udHJvbGxlcl0t
PmdldEhpZ2hsaWdodCgmaCk7CisgICAgW193ZWJOb2RlSGlnaGxpZ2h0IGluc3BlY3RvckNvbnRy
b2xsZXJdLT5nZXRIaWdobGlnaHQoJmgsIEluc3BlY3Rvck92ZXJsYXk6OkNvb3JkaW5hdGVTeXN0
ZW06OlZpZXcpOwogCiAgICAgaWYgKGgudHlwZSA9PSBIaWdobGlnaHRUeXBlTm9kZSkKICAgICAg
ICAgW3NlbGYgX2xheW91dEZvck5vZGVIaWdobGlnaHQ6JmggcGFyZW50OnBhcmVudExheWVyXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmODE0ZTE1Li5hZTliYzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMg
QEAKKzIwMTQtMDYtMjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbaU9TXTogV0syIEluc3BlY3RvciBOb2RlIEhpZ2hsaWdodGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MjU3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdDIv
bWVzc2FnZXMucHk6CisgICAgICAgIChzdHJ1Y3Rfb3JfY2xhc3MpOgorICAgICAgICAoaGVhZGVy
c19mb3JfdHlwZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgor
ICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEhpZ2hsaWdodD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8SGlnaGxpZ2h0Pjo6ZGVjb2RlKToKKyAgICAgICAgQWRkIGEgd2F5IHRvIGVuY29k
ZSBhIFdlYkNvcmU6OkhpZ2hsaWdodCBzdHJ1Y3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfc2hvd0luc3BlY3RvckhpZ2hs
aWdodDpXZWJDb3JlOjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9oaWRlSW5zcGVjdG9ySGln
aGxpZ2h0XSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNob3dJbnNwZWN0b3JIaWdobGlnaHQpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6aGlkZUluc3BlY3RvckhpZ2hsaWdodCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6c2hvd0luc3BlY3RvckhpZ2hsaWdodCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6aGlkZUluc3BlY3RvckhpZ2hsaWdodCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3JDbGllbnQ6OmhpZ2hsaWdodCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvckNsaWVudDo6aGlkZUhpZ2hsaWdodCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNob3dJbnNwZWN0b3JIaWdo
bGlnaHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpoaWRlSW5zcGVjdG9ySGlnaGxpZ2h0
KToKKyAgICAgICAgU2VuZCB3ZWIgcHJvY2VzcyBoaWdobGlnaHQgLyBoaWRlSGlnaGxpZ2h0IG1l
c3NhZ2VzIHVwIHRvCisgICAgICAgIHRoZSBVSVByb2Nlc3Mgc28gaXQgY2FuIGhpZ2hsaWdodCBp
biB0aGUgV0tDb250ZW50Vmlldy4KKyAgICAgICAgUGFzcyB1cCBhIFdlYkNvcmU6OkhpZ2hsaWdo
dCBpbiBEb2N1bWVudCBjb29yZGluYXRlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToK
KyAgICAgICAgKC1bV0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3IGluaXRXaXRoRnJhbWU6XSk6Cisg
ICAgICAgICgtW1dLSW5zcGVjdG9ySGlnaGxpZ2h0VmlldyBkZWFsbG9jXSk6CisgICAgICAgICgt
W1dLSW5zcGVjdG9ySGlnaGxpZ2h0VmlldyBfcmVtb3ZlQWxsTGF5ZXJzXSk6CisgICAgICAgICgt
W1dLSW5zcGVjdG9ySGlnaGxpZ2h0VmlldyBfY3JlYXRlTGF5ZXJzOl0pOgorICAgICAgICAoZmlu
ZEludGVyc2VjdGlvbk9uTGluZUJldHdlZW5Qb2ludHMpOgorICAgICAgICAocXVhZEludGVyc2Vj
dGlvbik6CisgICAgICAgIChsYXllclBhdGhXaXRoSG9sZSk6CisgICAgICAgIChsYXllclBhdGgp
OgorICAgICAgICAoLVtXS0luc3BlY3RvckhpZ2hsaWdodFZpZXcgX2xheW91dEZvck5vZGVIaWdo
bGlnaHQ6XSk6CisgICAgICAgICgtW1dLSW5zcGVjdG9ySGlnaGxpZ2h0VmlldyBfbGF5b3V0Rm9y
UmVjdHNIaWdobGlnaHQ6XSk6CisgICAgICAgICgtW1dLSW5zcGVjdG9ySGlnaGxpZ2h0VmlldyB1
cGRhdGU6XSk6CisgICAgICAgIFJldXNlIHRoZSBXZWJLaXQxIGNvZGUgdG8gdHVybiBoaWdobGln
aHQgZmxvYXQgcXVhZHMgaW50byBDQVNoYXBlTGF5ZXJzLgorCisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX3Nob3dJbnNwZWN0b3JIaWdobGlnaHQ6V2ViQ29yZTo6XSk6CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgX2hpZGVJbnNwZWN0b3JIaWdobGlnaHRdKToKKyAgICAgICAgU2hvdyBhbmQg
aGlkZSB0aGUgaGlnaGxpZ2h0IHZpZXcgd2l0aCB0aGUgcmVzcGVjdGl2ZSBXZWJDb3JlOjpIaWdo
bGlnaHQuCisKIDIwMTQtMDYtMjQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgog
CiAgICAgICAgIFtpT1MgV2ViS2l0Ml0gRGlzYWJsZSBzY3JlZW4gZm9udCBzdWJzdGl0dXRpb24g
YnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9t
ZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQpp
bmRleCAxM2E4Njg4Li43MzJmNGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRz
L3dlYmtpdDIvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQy
L21lc3NhZ2VzLnB5CkBAIC0xNjIsNiArMTYyLDcgQEAgZGVmIHN0cnVjdF9vcl9jbGFzcyhuYW1l
c3BhY2UsIHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6RmxvYXRQb2ludDNEJywKICAgICAgICAg
J1dlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MnLAogICAgICAgICAnV2ViQ29yZTo6R3JhbW1h
ckRldGFpbCcsCisgICAgICAgICdXZWJDb3JlOjpIaWdobGlnaHQnLAogICAgICAgICAnV2ViQ29y
ZTo6SURCRGF0YWJhc2VNZXRhZGF0YScsCiAgICAgICAgICdXZWJDb3JlOjpJREJHZXRSZXN1bHQn
LAogICAgICAgICAnV2ViQ29yZTo6SURCSW5kZXhNZXRhZGF0YScsCkBAIC00MjgsNiArNDI5LDcg
QEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpLZXlmcmFt
ZVZhbHVlTGlzdCc6IFsnPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6S2V5cHJlc3NDb21tYW5kJzogWyc8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJzogWyc8V2ViQ29yZS9GaWxlQ2hv
b3Nlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6SGlnaGxpZ2h0JzogWyc8V2ViQ29yZS9JbnNw
ZWN0b3JPdmVybGF5Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQbHVnaW5JbmZvJzogWyc8V2Vi
Q29yZS9QbHVnaW5EYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkSW1hZ2Un
OiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBhc3RlYm9h
cmRXZWJDb250ZW50JzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGY5MGFhYzguLmM0
ZDY3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAKICNpZiBQTEFURk9STShJT1MpCiAjaW5jbHVkZSA8
V2ViQ29yZS9GbG9hdFF1YWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3Rvck92ZXJsYXku
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
bGVjdGlvblJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgpAQCAtMTE5
Niw2ICsxMTk3LDQyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxEYXRhYmFzZURldGFpbHM+OjpkZWNv
ZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBEYXRhYmFzZURlCiAKICNpZiBQTEFURk9STShJ
T1MpCiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxIaWdobGlnaHQ+OjplbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBIaWdobGlnaHQmIGhpZ2hsaWdodCkKK3sKKyAgICBlbmNvZGVy
IDw8IHN0YXRpY19jYXN0PHVpbnQzMl90PihoaWdobGlnaHQudHlwZSk7CisgICAgZW5jb2RlciA8
PCBoaWdobGlnaHQudXNlUGFnZUNvb3JkaW5hdGVzOworICAgIGVuY29kZXIgPDwgaGlnaGxpZ2h0
LmNvbnRlbnRDb2xvcjsKKyAgICBlbmNvZGVyIDw8IGhpZ2hsaWdodC5jb250ZW50T3V0bGluZUNv
bG9yOworICAgIGVuY29kZXIgPDwgaGlnaGxpZ2h0LnBhZGRpbmdDb2xvcjsKKyAgICBlbmNvZGVy
IDw8IGhpZ2hsaWdodC5ib3JkZXJDb2xvcjsKKyAgICBlbmNvZGVyIDw8IGhpZ2hsaWdodC5tYXJn
aW5Db2xvcjsKKyAgICBlbmNvZGVyIDw8IGhpZ2hsaWdodC5xdWFkczsKK30KKworYm9vbCBBcmd1
bWVudENvZGVyPEhpZ2hsaWdodD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEhp
Z2hsaWdodCYgaGlnaGxpZ2h0KQoreworICAgIHVpbnQzMl90IHR5cGU7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZSh0eXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGhpZ2hsaWdodC50
eXBlID0gKEhpZ2hsaWdodFR5cGUpdHlwZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGln
aGxpZ2h0LnVzZVBhZ2VDb29yZGluYXRlcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGhpZ2hsaWdodC5jb250ZW50Q29sb3IpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoaWdobGlnaHQuY29udGVudE91dGxp
bmVDb2xvcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGhpZ2hsaWdodC5wYWRkaW5nQ29sb3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShoaWdobGlnaHQuYm9yZGVyQ29sb3IpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoaWdobGlnaHQubWFyZ2luQ29sb3IpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoaWdobGlnaHQu
cXVhZHMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHN0
YXRpYyB2b2lkIGVuY29kZVNoYXJlZEJ1ZmZlcihBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIFNo
YXJlZEJ1ZmZlciogYnVmZmVyKQogewogICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA4
NjRiNmI1Li4yODc3N2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCkBAIC05OCw2ICs5OCw3IEBAIHN0cnVjdCBLZXlwcmVzc0NvbW1hbmQ7CiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGbG9hdFF1YWQ7CiBjbGFzcyBTZWxlY3Rpb25SZWN0
Oworc3RydWN0IEhpZ2hsaWdodDsKIHN0cnVjdCBQYXN0ZWJvYXJkSW1hZ2U7CiBzdHJ1Y3QgUGFz
dGVib2FyZFdlYkNvbnRlbnQ7CiBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHM7CkBAIC0yODksNiAr
MjkwLDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2VsZWN0
aW9uUmVjdD4gewogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJD
b3JlOjpTZWxlY3Rpb25SZWN0Jik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OkhpZ2hsaWdodD4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVu
dEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmKTsKKyAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6SGlnaGxpZ2h0Jik7Cit9OworCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50
PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OlBhc3RlYm9hcmRXZWJDb250ZW50Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYsIFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDAyNWQ2ZGMu
LjYwYTE4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCkBAIC05Miw2ICs5Miw3IEBACiAjaW1wb3J0IDxVSUtpdC9VSVdpbmRvd19Qcml2
YXRlLmg+CiAjaW1wb3J0IDxRdWFydHpDb3JlL0NBUmVuZGVyU2VydmVyLmg+CiAjaW1wb3J0IDxR
dWFydHpDb3JlL1F1YXJ0ekNvcmVQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0luc3BlY3Rv
ck92ZXJsYXkuaD4KIAogQGludGVyZmFjZSBVSVNjcm9sbFZpZXcgKFVJU2Nyb2xsVmlld0ludGVy
bmFsKQogLSAodm9pZClfYWRqdXN0Rm9yQXV0b21hdGljS2V5Ym9hcmRJbmZvOihOU0RpY3Rpb25h
cnkqKWluZm8gYW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQgbGFzdEFkanVzdG1lbnQ6KENHRmxvYXQq
KWxhc3RBZGp1c3RtZW50OwpAQCAtNjM5LDYgKzY0MCwxNiBAQCAtICh2b2lkKV9kaWRJbnZva2VV
SVNjcm9sbFZpZXdEZWxlZ2F0ZUNhbGxiYWNrCiAgICAgfQogfQogCistICh2b2lkKV9zaG93SW5z
cGVjdG9ySGlnaGxpZ2h0Oihjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmKWhpZ2hsaWdodAorewor
ICAgIFtfY29udGVudFZpZXcgX3Nob3dJbnNwZWN0b3JIaWdobGlnaHQ6aGlnaGxpZ2h0XTsKK30K
KworLSAodm9pZClfaGlkZUluc3BlY3RvckhpZ2hsaWdodAoreworICAgIFtfY29udGVudFZpZXcg
X2hpZGVJbnNwZWN0b3JIaWdobGlnaHRdOworfQorCiBzdGF0aWMgQ0dGbG9hdCBjb250ZW50Wm9v
bVNjYWxlKFdLV2ViVmlldyogd2ViVmlldykKIHsKICAgICBVSVZpZXcgKnpvb21WaWV3OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRl
cm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRl
cm5hbC5oCmluZGV4IGJjZDY5NGEuLmRjNWJkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTQ1LDYgKzQ1
LDEwIEBACiAjZGVmaW5lIFdLX1dFQl9WSUVXX1BST1RPQ09MUwogI2VuZGlmCiAKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK3N0cnVjdCBIaWdobGlnaHQ7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
Y2xhc3MgV2ViUGFnZVByb3h5Owogc3RydWN0IFByaW50SW5mbzsKQEAgLTg5LDYgKzkzLDkgQEAg
c3RydWN0IFZpZXdTbmFwc2hvdDsKIC0gKHZvaWQpX3dpbGxJbnZva2VVSVNjcm9sbFZpZXdEZWxl
Z2F0ZUNhbGxiYWNrOwogLSAodm9pZClfZGlkSW52b2tlVUlTY3JvbGxWaWV3RGVsZWdhdGVDYWxs
YmFjazsKIAorLSAodm9pZClfc2hvd0luc3BlY3RvckhpZ2hsaWdodDooY29uc3QgV2ViQ29yZTo6
SGlnaGxpZ2h0JiloaWdobGlnaHQ7CistICh2b2lkKV9oaWRlSW5zcGVjdG9ySGlnaGxpZ2h0Owor
CiAtICh2b2lkKV91cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzOwogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIFVJRWRnZUluc2V0cyBfY29tcHV0ZWRDb250ZW50SW5zZXQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBhZmIxODcxLi40YmZmNDlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTQ4LDYgKzQ4LDcgQEAgT0JKQ19D
TEFTUyBOU1RleHRBbHRlcm5hdGl2ZXM7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDdXJz
b3I7CiBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzOworc3RydWN0IEhpZ2hsaWdodDsKIH0KIAog
bmFtZXNwYWNlIFdlYktpdCB7CkBAIC0yNzAsNiArMjcxLDkgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRGaW5pc2hEcmF3aW5nUGFnZXNUb1BERihjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmKSA9IDA7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIHZpcnR1YWwgdm9pZCBzaG93
SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdodCYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgaGlkZUluc3BlY3RvckhpZ2hsaWdodCgpID0gMDsKKwogICAgIHZpcnR1YWwg
dm9pZCBzaG93SW5zcGVjdG9ySW5kaWNhdGlvbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaGlk
ZUluc3BlY3RvckluZGljYXRpb24oKSA9IDA7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAppbmRleCA5ZjFmNjZkLi5lYjMxYTRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjA3LDYgKzEyMDcsOSBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc3RvcEFzc2lzdGluZ05vZGUoKTsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCisg
ICAgdm9pZCBzaG93SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdodCYp
OworICAgIHZvaWQgaGlkZUluc3BlY3RvckhpZ2hsaWdodCgpOworCiAgICAgdm9pZCBzaG93SW5z
cGVjdG9ySW5kaWNhdGlvbigpOwogICAgIHZvaWQgaGlkZUluc3BlY3RvckluZGljYXRpb24oKTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggN2RlMzcxYS4uYWI4ZGU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNDEsNiArMzQxLDkgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBOb3RpZnlSZXZlYWxlZFNlbGVjdGlvbigp
CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIFNob3dJbnNwZWN0b3JIaWdobGlnaHQoV2Vi
Q29yZTo6SGlnaGxpZ2h0IGhpZ2hsaWdodCkKKyAgICBIaWRlSW5zcGVjdG9ySGlnaGxpZ2h0KCkK
KwogICAgIFNob3dJbnNwZWN0b3JJbmRpY2F0aW9uKCkKICAgICBIaWRlSW5zcGVjdG9ySW5kaWNh
dGlvbigpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaAppbmRleCAzOWQwZmJhLi5kZGRiNGE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xMzIsNiArMTMyLDkg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0U2l6ZSBjb250ZW50c1NpemUo
KSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgdmlydHVhbCB2
b2lkIHNob3dJbnNwZWN0b3JIaWdobGlnaHQoY29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0Jikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGhpZGVJbnNwZWN0b3JIaWdobGlnaHQoKSBvdmVycmlk
ZTsKKwogICAgIHZpcnR1YWwgdm9pZCBzaG93SW5zcGVjdG9ySW5kaWNhdGlvbigpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBoaWRlSW5zcGVjdG9ySW5kaWNhdGlvbigpIG92ZXJyaWRlOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQppbmRleCA5ZTJjY2U2Li4xYmZjZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTQ4NSw2ICs0ODUsMTYgQEAg
Ym9vbCBQYWdlQ2xpZW50SW1wbDo6aGFuZGxlUnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdl
YkZyYW1lUHJveHkqLCBXZWJPcGVuUGEKIH0KIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpzaG93SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6Okhp
Z2hsaWdodCYgaGlnaGxpZ2h0KQoreworICAgIFttX3dlYlZpZXcgX3Nob3dJbnNwZWN0b3JIaWdo
bGlnaHQ6aGlnaGxpZ2h0XTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6aGlkZUluc3BlY3Rv
ckhpZ2hsaWdodCgpCit7CisgICAgW21fd2ViVmlldyBfaGlkZUluc3BlY3RvckhpZ2hsaWdodF07
Cit9CisKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNob3dJbnNwZWN0b3JJbmRpY2F0aW9uKCkKIHsK
ICAgICBbbV93ZWJWaWV3IF9zaG93SW5zcGVjdG9ySW5kaWNhdGlvbl07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCmluZGV4IDZiMzY4MTYuLjk1MWQ4MmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCkBAIC0z
Myw2ICszMywxMCBAQAogQGNsYXNzIFdLQ29udGVudFZpZXc7CiBAY2xhc3MgV0tXZWJWaWV3Owog
CituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgSGlnaGxpZ2h0OworfQorCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIERyYXdpbmdBcmVhUHJveHk7CiBjbGFzcyBGaW5kSW5kaWNhdG9yOwpA
QCAtNzQsNiArNzgsOSBAQCBzdHJ1Y3QgV2ViUGFnZUNvbmZpZ3VyYXRpb247CiAtICh2b2lkKV9k
aWRSZWxhdW5jaFByb2Nlc3M7CiAtICh2b2lkKV9zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9v
dFZpZXc6KFVJVmlldyAqKXJvb3RWaWV3OwogCistICh2b2lkKV9zaG93SW5zcGVjdG9ySGlnaGxp
Z2h0Oihjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmKWhpZ2hsaWdodDsKKy0gKHZvaWQpX2hpZGVJ
bnNwZWN0b3JIaWdobGlnaHQ7CisKIC0gKHZvaWQpX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWU7
CiAtICh2b2lkKV9kaWRDb21taXRMYXllclRyZWU6KGNvbnN0IFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb24mKWxheWVyVHJlZVRyYW5zYWN0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5kZXggY2RlYzQ1Yy4uZDI4NjM2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAt
MzIsMjMgKzMyLDI3IEBACiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
LmgiCiAjaW1wb3J0ICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgiCiAjaW1wb3J0
ICJTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmgiCi0jaW1wb3J0ICJXZWJLaXQySW5pdGlh
bGl6ZS5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIK
ICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0R3JvdXBQcml2YXRlLmgiCiAjaW1wb3J0ICJXS0dl
b2xvY2F0aW9uUHJvdmlkZXJJT1MuaCIKICNpbXBvcnQgIldLUHJlZmVyZW5jZXNJbnRlcm5hbC5o
IgogI2ltcG9ydCAiV0tQcm9jZXNzR3JvdXBQcml2YXRlLmgiCiAjaW1wb3J0ICJXS1Byb2Nlc3NQ
b29sSW50ZXJuYWwuaCIKLSNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCiAjaW1wb3J0ICJX
S1dlYlZpZXdDb25maWd1cmF0aW9uLmgiCisjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgog
I2ltcG9ydCAiV2ViQ29udGV4dC5oIgogI2ltcG9ydCAiV2ViRnJhbWVQcm94eS5oIgorI2ltcG9y
dCAiV2ViS2l0MkluaXRpYWxpemUuaCIKKyNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZUlP
Uy5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCiAjaW1wb3J0ICJXZWJTeXN0ZW1JbnRlcmZh
Y2UuaCIKLSNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZUlPUy5oIgorI2ltcG9ydCA8Q29y
ZUdyYXBoaWNzL0NvcmVHcmFwaGljcy5oPgorI2ltcG9ydCA8VUlLaXQvVUlXaW5kb3dfUHJpdmF0
ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFF1YWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJh
bWVWaWV3Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0dlb21ldHJ5VXRpbGl0aWVzLmg+CisjaW1wb3J0
IDxXZWJDb3JlL0luc3BlY3Rvck92ZXJsYXkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVt
ZW50ZWQuaD4KLSNpbXBvcnQgPFVJS2l0L1VJV2luZG93X1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0
Zi9DdXJyZW50VGltZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCkBAIC0xNjksMTIg
KzE3MywyNTIgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZQog
CiBAZW5kCiAKKworQGludGVyZmFjZSBXS0luc3BlY3RvckhpZ2hsaWdodFZpZXcgOiBVSVZpZXcg
eworICAgIE5TTXV0YWJsZUFycmF5ICpfbGF5ZXJzOyAvLyBDQVNoYXBlTGF5ZXJzLgorfQorLSAo
dm9pZCl1cGRhdGU6KGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdodCYpaGlnaGxpZ2h0OworQGVuZAor
CitAaW1wbGVtZW50YXRpb24gV0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3CisKKy0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1
cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBfbGF5
ZXJzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF07CisgICAgcmV0dXJuIHNlbGY7Cit9
CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIFtzZWxmIF9yZW1vdmVBbGxMYXllcnNdOworICAg
IFtfbGF5ZXJzIHJlbGVhc2VdOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAodm9pZClf
cmVtb3ZlQWxsTGF5ZXJzCit7CisgICAgZm9yIChDQVNoYXBlTGF5ZXIgKmxheWVyIGluIF9sYXll
cnMpCisgICAgICAgIFtsYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07CisgICAgW19sYXllcnMg
cmVtb3ZlQWxsT2JqZWN0c107Cit9CisKKy0gKHZvaWQpX2NyZWF0ZUxheWVyczooTlNVSW50ZWdl
ciludW1MYXllcnMKK3sKKyAgICBpZiAoW19sYXllcnMgY291bnRdID09IG51bUxheWVycykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgW3NlbGYgX3JlbW92ZUFsbExheWVyc107CisKKyAgICBmb3Ig
KE5TVUludGVnZXIgaSA9IDA7IGkgPCBudW1MYXllcnM7ICsraSkgeworICAgICAgICBDQVNoYXBl
TGF5ZXIgKmxheWVyID0gW1tDQVNoYXBlTGF5ZXIgYWxsb2NdIGluaXRdOworICAgICAgICBbX2xh
eWVycyBhZGRPYmplY3Q6bGF5ZXJdOworICAgICAgICBbc2VsZi5sYXllciBhZGRTdWJsYXllcjps
YXllcl07CisgICAgICAgIFtsYXllciByZWxlYXNlXTsKKyAgICB9Cit9CisKK3N0YXRpYyBib29s
IGZpbmRJbnRlcnNlY3Rpb25PbkxpbmVCZXR3ZWVuUG9pbnRzKGNvbnN0IEZsb2F0UG9pbnQmIHAx
LCBjb25zdCBGbG9hdFBvaW50JiBwMiwgY29uc3QgRmxvYXRQb2ludCYgZDEsIGNvbnN0IEZsb2F0
UG9pbnQmIGQyLCBGbG9hdFBvaW50JiBpbnRlcnNlY3Rpb24pIAoreworICAgIC8vIERvIHRoZSBs
aW5lcyBpbnRlcnNlY3Q/CisgICAgRmxvYXRQb2ludCB0ZW1wb3JhcnlJbnRlcnNlY3Rpb25Qb2lu
dDsKKyAgICBpZiAoIWZpbmRJbnRlcnNlY3Rpb24ocDEsIHAyLCBkMSwgZDIsIHRlbXBvcmFyeUlu
dGVyc2VjdGlvblBvaW50KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gSXMgdGhl
IGludGVyc2VjdGlvbiBiZXR3ZWVuIHRoZSB0d28gcG9pbnRzIG9uIHRoZSBsaW5lPworICAgIGlm
IChwMS54KCkgPj0gcDIueCgpKSB7CisgICAgICAgIGlmICh0ZW1wb3JhcnlJbnRlcnNlY3Rpb25Q
b2ludC54KCkgPiBwMS54KCkgfHwgdGVtcG9yYXJ5SW50ZXJzZWN0aW9uUG9pbnQueCgpIDwgcDIu
eCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIGlm
ICh0ZW1wb3JhcnlJbnRlcnNlY3Rpb25Qb2ludC54KCkgPiBwMi54KCkgfHwgdGVtcG9yYXJ5SW50
ZXJzZWN0aW9uUG9pbnQueCgpIDwgcDEueCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICBpZiAocDEueSgpID49IHAyLnkoKSkgeworICAgICAgICBpZiAodGVtcG9yYXJ5
SW50ZXJzZWN0aW9uUG9pbnQueSgpID4gcDEueSgpIHx8IHRlbXBvcmFyeUludGVyc2VjdGlvblBv
aW50LnkoKSA8IHAyLnkoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBpZiAodGVtcG9yYXJ5SW50ZXJzZWN0aW9uUG9pbnQueSgpID4gcDIueSgpIHx8
IHRlbXBvcmFyeUludGVyc2VjdGlvblBvaW50LnkoKSA8IHAxLnkoKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpbnRlcnNlY3Rpb24gPSB0ZW1wb3JhcnlJbnRlcnNl
Y3Rpb25Qb2ludDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworLy8gVGhpcyBxdWFkIGludGVyc2Vj
dGlvbiB3b3JrcyBiZWNhdXNlIHRoZSB0d28gcXVhZHMgYXJlIGtub3duIHRvIGJlIGF0IHRoZSBz
YW1lCisvLyByb3RhdGlvbiBhbmQgY2xvY2t3aXNlLW5lc3MuCitzdGF0aWMgRmxvYXRRdWFkIHF1
YWRJbnRlcnNlY3Rpb24oRmxvYXRRdWFkIGJvdW5kcywgRmxvYXRRdWFkIHRvQ2xhbXApCit7Cisg
ICAgLy8gUmVzdWx0aW5nIHBvaW50cy4KKyAgICBGbG9hdFBvaW50IHAxLCBwMiwgcDMsIHA0Owor
ICAgIGJvb2wgY29udGFpbnNQb2ludDEgPSBmYWxzZTsKKyAgICBib29sIGNvbnRhaW5zUG9pbnQy
ID0gZmFsc2U7CisgICAgYm9vbCBjb250YWluc1BvaW50MyA9IGZhbHNlOworICAgIGJvb2wgY29u
dGFpbnNQb2ludDQgPSBmYWxzZTsKKyAgICBib29sIGludGVyc2VjdEZvclBvaW50MSA9IGZhbHNl
OworICAgIGJvb2wgaW50ZXJzZWN0Rm9yUG9pbnQyID0gZmFsc2U7CisgICAgYm9vbCBpbnRlcnNl
Y3RGb3JQb2ludDMgPSBmYWxzZTsKKyAgICBib29sIGludGVyc2VjdEZvclBvaW50NCA9IGZhbHNl
OworCisgICAgLy8gVG9wIC8gYm90dG9tIHZlcnRpY2FsIGNsYW1waW5nLgorICAgIGlmIChib3Vu
ZHMuY29udGFpbnNQb2ludCh0b0NsYW1wLnAxKCkpKSB7CisgICAgICAgIGNvbnRhaW5zUG9pbnQx
ID0gdHJ1ZTsKKyAgICAgICAgcDEgPSB0b0NsYW1wLnAxKCk7CisgICAgfSBlbHNlIGlmICghKGlu
dGVyc2VjdEZvclBvaW50MSA9IGZpbmRJbnRlcnNlY3Rpb25PbkxpbmVCZXR3ZWVuUG9pbnRzKGJv
dW5kcy5wMSgpLCBib3VuZHMucDIoKSwgdG9DbGFtcC5wMSgpLCB0b0NsYW1wLnA0KCksIHAxKSkp
CisgICAgICAgIHAxID0gdG9DbGFtcC5wMSgpOworCisgICAgaWYgKGJvdW5kcy5jb250YWluc1Bv
aW50KHRvQ2xhbXAucDIoKSkpIHsKKyAgICAgICAgY29udGFpbnNQb2ludDIgPSB0cnVlOworICAg
ICAgICBwMiA9IHRvQ2xhbXAucDIoKTsKKyAgICB9IGVsc2UgaWYgKCEoaW50ZXJzZWN0Rm9yUG9p
bnQyID0gZmluZEludGVyc2VjdGlvbk9uTGluZUJldHdlZW5Qb2ludHMoYm91bmRzLnAxKCksIGJv
dW5kcy5wMigpLCB0b0NsYW1wLnAyKCksIHRvQ2xhbXAucDMoKSwgcDIpKSkKKyAgICAgICAgcDIg
PSB0b0NsYW1wLnAyKCk7CisKKyAgICBpZiAoYm91bmRzLmNvbnRhaW5zUG9pbnQodG9DbGFtcC5w
MygpKSkgeworICAgICAgICBjb250YWluc1BvaW50MyA9IHRydWU7CisgICAgICAgIHAzID0gdG9D
bGFtcC5wMygpOworICAgIH0gZWxzZSBpZiAoIShpbnRlcnNlY3RGb3JQb2ludDMgPSBmaW5kSW50
ZXJzZWN0aW9uT25MaW5lQmV0d2VlblBvaW50cyhib3VuZHMucDQoKSwgYm91bmRzLnAzKCksIHRv
Q2xhbXAucDIoKSwgdG9DbGFtcC5wMygpLCBwMykpKQorICAgICAgICBwMyA9IHRvQ2xhbXAucDMo
KTsKKworICAgIGlmIChib3VuZHMuY29udGFpbnNQb2ludCh0b0NsYW1wLnA0KCkpKSB7CisgICAg
ICAgIGNvbnRhaW5zUG9pbnQ0ID0gdHJ1ZTsKKyAgICAgICAgcDQgPSB0b0NsYW1wLnA0KCk7Cisg
ICAgfSBlbHNlIGlmICghKGludGVyc2VjdEZvclBvaW50NCA9IGZpbmRJbnRlcnNlY3Rpb25Pbkxp
bmVCZXR3ZWVuUG9pbnRzKGJvdW5kcy5wNCgpLCBib3VuZHMucDMoKSwgdG9DbGFtcC5wMSgpLCB0
b0NsYW1wLnA0KCksIHA0KSkpCisgICAgICAgIHA0ID0gdG9DbGFtcC5wNCgpOworCisgICAgLy8g
SWYgb25seSBvbmUgb2YgdGhlIHBvaW50cyBpbnRlcnNlY3RlZCBvbiBlaXRoZXIgdGhlIHRvcCBv
ciBib3R0b20gbGluZSB0aGVuIHdlCisgICAgLy8gY2FuIGNsYW1wIHRoZSBvdGhlciBwb2ludCBv
biB0aGF0IGxpbmUgdG8gdGhlIGNvcm5lciBvZiB0aGUgYm91bmRzLgorICAgIGlmICghY29udGFp
bnNQb2ludDEgJiYgaW50ZXJzZWN0Rm9yUG9pbnQyICYmICFpbnRlcnNlY3RGb3JQb2ludDEpIHsK
KyAgICAgICAgY29udGFpbnNQb2ludDEgPSB0cnVlOworICAgICAgICBwMSA9IGJvdW5kcy5wMSgp
OworICAgIH0gZWxzZSBpZiAoIWNvbnRhaW5zUG9pbnQyICYmIGludGVyc2VjdEZvclBvaW50MSAm
JiAhaW50ZXJzZWN0Rm9yUG9pbnQyKSB7CisgICAgICAgIGNvbnRhaW5zUG9pbnQyID0gdHJ1ZTsK
KyAgICAgICAgcDIgPSBib3VuZHMucDIoKTsKKyAgICB9CisgICAgaWYgKCFjb250YWluc1BvaW50
NCAmJiBpbnRlcnNlY3RGb3JQb2ludDMgJiYgIWludGVyc2VjdEZvclBvaW50NCkgeworICAgICAg
ICBjb250YWluc1BvaW50NCA9IHRydWU7CisgICAgICAgIHA0ID0gYm91bmRzLnA0KCk7CisgICAg
fSBlbHNlIGlmICghY29udGFpbnNQb2ludDMgJiYgaW50ZXJzZWN0Rm9yUG9pbnQ0ICYmICFpbnRl
cnNlY3RGb3JQb2ludDMpIHsKKyAgICAgICAgY29udGFpbnNQb2ludDMgPSB0cnVlOworICAgICAg
ICBwMyA9IGJvdW5kcy5wMygpOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBvbmx5IG5lZWQgdG8g
cGVyZm9ybSBob3Jpem9udGFsIGNsYW1waW5nIGZvciB1bmFkanVzdGVkIHBvaW50cy4KKyAgICBp
ZiAoIWNvbnRhaW5zUG9pbnQyICYmICFpbnRlcnNlY3RGb3JQb2ludDIpCisgICAgICAgIGZpbmRJ
bnRlcnNlY3Rpb25PbkxpbmVCZXR3ZWVuUG9pbnRzKGJvdW5kcy5wMigpLCBib3VuZHMucDMoKSwg
cDEsIHAyLCBwMik7CisgICAgaWYgKCFjb250YWluc1BvaW50MyAmJiAhaW50ZXJzZWN0Rm9yUG9p
bnQzKQorICAgICAgICBmaW5kSW50ZXJzZWN0aW9uT25MaW5lQmV0d2VlblBvaW50cyhib3VuZHMu
cDIoKSwgYm91bmRzLnAzKCksIHA0LCBwMywgcDMpOworICAgIGlmICghY29udGFpbnNQb2ludDEg
JiYgIWludGVyc2VjdEZvclBvaW50MSkKKyAgICAgICAgZmluZEludGVyc2VjdGlvbk9uTGluZUJl
dHdlZW5Qb2ludHMoYm91bmRzLnAxKCksIGJvdW5kcy5wNCgpLCBwMSwgcDIsIHAxKTsKKyAgICBp
ZiAoIWNvbnRhaW5zUG9pbnQ0ICYmICFpbnRlcnNlY3RGb3JQb2ludDQpCisgICAgICAgIGZpbmRJ
bnRlcnNlY3Rpb25PbkxpbmVCZXR3ZWVuUG9pbnRzKGJvdW5kcy5wMSgpLCBib3VuZHMucDQoKSwg
cDQsIHAzLCBwNCk7CisKKyAgICByZXR1cm4gRmxvYXRRdWFkKHAxLCBwMiwgcDMsIHA0KTsKK30K
Kworc3RhdGljIHZvaWQgbGF5ZXJQYXRoV2l0aEhvbGUoQ0FTaGFwZUxheWVyICpsYXllciwgY29u
c3QgRmxvYXRRdWFkJiBvdXRlclF1YWQsIGNvbnN0IEZsb2F0UXVhZCYgaG9sZVF1YWQpCit7Cisg
ICAgLy8gTm90aGluZyB0byBzaG93LgorICAgIGlmIChvdXRlclF1YWQgPT0gaG9sZVF1YWQgfHwg
aG9sZVF1YWQuY29udGFpbnNRdWFkKG91dGVyUXVhZCkpIHsKKyAgICAgICAgbGF5ZXIucGF0aCA9
IE5VTEw7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBJZiB0aGVyZSBpcyBhIG5l
Z2F0aXZlIG1hcmdpbiAvIHBhZGRpbmcgdGhlbiB0aGUgb3V0ZXIgYm94IG1pZ2h0IG5vdAorICAg
IC8vIGZ1bGx5IGNvbnRhaW4gdGhlIGhvbGUgYm94LiBJbiBzdWNoIGNhc2VzIHdlIHJlY2FsY3Vs
YXRlIHRoZSBob2xlIHRvCisgICAgLy8gYmUgdGhlIGludGVyc2VjdGlvbiBvZiB0aGUgdHdvIHF1
YWRzLgorICAgIEZsb2F0UXVhZCBpbm5lckhvbGU7CisgICAgaWYgKG91dGVyUXVhZC5jb250YWlu
c1F1YWQoaG9sZVF1YWQpKQorICAgICAgICBpbm5lckhvbGUgPSBob2xlUXVhZDsKKyAgICBlbHNl
CisgICAgICAgIGlubmVySG9sZSA9IHF1YWRJbnRlcnNlY3Rpb24ob3V0ZXJRdWFkLCBob2xlUXVh
ZCk7CisKKyAgICAvLyBDbG9ja3dpc2UgaW5zaWRlIHJlY3QgKGhvbGUpLCBDb3VudGVyLUNsb2Nr
d2lzZSBvdXRzaWRlIHJlY3QgKGZpbGwpLgorICAgIENHTXV0YWJsZVBhdGhSZWYgcGF0aCA9IENH
UGF0aENyZWF0ZU11dGFibGUoKTsKKyAgICBDR1BhdGhNb3ZlVG9Qb2ludChwYXRoLCAwLCBpbm5l
ckhvbGUucDEoKS54KCksIGlubmVySG9sZS5wMSgpLnkoKSk7CisgICAgQ0dQYXRoQWRkTGluZVRv
UG9pbnQocGF0aCwgMCwgaW5uZXJIb2xlLnAyKCkueCgpLCBpbm5lckhvbGUucDIoKS55KCkpOwor
ICAgIENHUGF0aEFkZExpbmVUb1BvaW50KHBhdGgsIDAsIGlubmVySG9sZS5wMygpLngoKSwgaW5u
ZXJIb2xlLnAzKCkueSgpKTsKKyAgICBDR1BhdGhBZGRMaW5lVG9Qb2ludChwYXRoLCAwLCBpbm5l
ckhvbGUucDQoKS54KCksIGlubmVySG9sZS5wNCgpLnkoKSk7CisgICAgQ0dQYXRoTW92ZVRvUG9p
bnQocGF0aCwgMCwgb3V0ZXJRdWFkLnAxKCkueCgpLCBvdXRlclF1YWQucDEoKS55KCkpOworICAg
IENHUGF0aEFkZExpbmVUb1BvaW50KHBhdGgsIDAsIG91dGVyUXVhZC5wNCgpLngoKSwgb3V0ZXJR
dWFkLnA0KCkueSgpKTsKKyAgICBDR1BhdGhBZGRMaW5lVG9Qb2ludChwYXRoLCAwLCBvdXRlclF1
YWQucDMoKS54KCksIG91dGVyUXVhZC5wMygpLnkoKSk7CisgICAgQ0dQYXRoQWRkTGluZVRvUG9p
bnQocGF0aCwgMCwgb3V0ZXJRdWFkLnAyKCkueCgpLCBvdXRlclF1YWQucDIoKS55KCkpOworICAg
IGxheWVyLnBhdGggPSBwYXRoOworICAgIENHUGF0aFJlbGVhc2UocGF0aCk7Cit9CisKK3N0YXRp
YyB2b2lkIGxheWVyUGF0aChDQVNoYXBlTGF5ZXIgKmxheWVyLCBjb25zdCBGbG9hdFF1YWQmIG91
dGVyUXVhZCkKK3sKKyAgICBDR011dGFibGVQYXRoUmVmIHBhdGggPSBDR1BhdGhDcmVhdGVNdXRh
YmxlKCk7CisgICAgQ0dQYXRoTW92ZVRvUG9pbnQocGF0aCwgMCwgb3V0ZXJRdWFkLnAxKCkueCgp
LCBvdXRlclF1YWQucDEoKS55KCkpOworICAgIENHUGF0aEFkZExpbmVUb1BvaW50KHBhdGgsIDAs
IG91dGVyUXVhZC5wNCgpLngoKSwgb3V0ZXJRdWFkLnA0KCkueSgpKTsKKyAgICBDR1BhdGhBZGRM
aW5lVG9Qb2ludChwYXRoLCAwLCBvdXRlclF1YWQucDMoKS54KCksIG91dGVyUXVhZC5wMygpLnko
KSk7CisgICAgQ0dQYXRoQWRkTGluZVRvUG9pbnQocGF0aCwgMCwgb3V0ZXJRdWFkLnAyKCkueCgp
LCBvdXRlclF1YWQucDIoKS55KCkpOworICAgIGxheWVyLnBhdGggPSBwYXRoOworICAgIENHUGF0
aFJlbGVhc2UocGF0aCk7Cit9CisKKy0gKHZvaWQpX2xheW91dEZvck5vZGVIaWdobGlnaHQ6KGNv
bnN0IEhpZ2hsaWdodCYpaGlnaGxpZ2h0Cit7CisgICAgW3NlbGYgX2NyZWF0ZUxheWVyczo0XTsK
KworICAgIENBU2hhcGVMYXllciAqbWFyZ2luTGF5ZXIgPSBbX2xheWVycyBvYmplY3RBdEluZGV4
OjBdOworICAgIENBU2hhcGVMYXllciAqYm9yZGVyTGF5ZXIgPSBbX2xheWVycyBvYmplY3RBdElu
ZGV4OjFdOworICAgIENBU2hhcGVMYXllciAqcGFkZGluZ0xheWVyID0gW19sYXllcnMgb2JqZWN0
QXRJbmRleDoyXTsKKyAgICBDQVNoYXBlTGF5ZXIgKmNvbnRlbnRMYXllciA9IFtfbGF5ZXJzIG9i
amVjdEF0SW5kZXg6M107CisKKyAgICBGbG9hdFF1YWQgbWFyZ2luUXVhZCA9IGhpZ2hsaWdodC5x
dWFkc1swXTsKKyAgICBGbG9hdFF1YWQgYm9yZGVyUXVhZCA9IGhpZ2hsaWdodC5xdWFkc1sxXTsK
KyAgICBGbG9hdFF1YWQgcGFkZGluZ1F1YWQgPSBoaWdobGlnaHQucXVhZHNbMl07CisgICAgRmxv
YXRRdWFkIGNvbnRlbnRRdWFkID0gaGlnaGxpZ2h0LnF1YWRzWzNdOworCisgICAgbWFyZ2luTGF5
ZXIuZmlsbENvbG9yID0gY2FjaGVkQ0dDb2xvcihoaWdobGlnaHQubWFyZ2luQ29sb3IsIENvbG9y
U3BhY2VEZXZpY2VSR0IpOworICAgIGJvcmRlckxheWVyLmZpbGxDb2xvciA9IGNhY2hlZENHQ29s
b3IoaGlnaGxpZ2h0LmJvcmRlckNvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICBwYWRk
aW5nTGF5ZXIuZmlsbENvbG9yID0gY2FjaGVkQ0dDb2xvcihoaWdobGlnaHQucGFkZGluZ0NvbG9y
LCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICBjb250ZW50TGF5ZXIuZmlsbENvbG9yID0gY2Fj
aGVkQ0dDb2xvcihoaWdobGlnaHQuY29udGVudENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsK
KworICAgIGxheWVyUGF0aFdpdGhIb2xlKG1hcmdpbkxheWVyLCBtYXJnaW5RdWFkLCBib3JkZXJR
dWFkKTsKKyAgICBsYXllclBhdGhXaXRoSG9sZShib3JkZXJMYXllciwgYm9yZGVyUXVhZCwgcGFk
ZGluZ1F1YWQpOworICAgIGxheWVyUGF0aFdpdGhIb2xlKHBhZGRpbmdMYXllciwgcGFkZGluZ1F1
YWQsIGNvbnRlbnRRdWFkKTsKKyAgICBsYXllclBhdGgoY29udGVudExheWVyLCBjb250ZW50UXVh
ZCk7Cit9CisKKy0gKHZvaWQpX2xheW91dEZvclJlY3RzSGlnaGxpZ2h0Oihjb25zdCBIaWdobGln
aHQmKWhpZ2hsaWdodAoreworICAgIE5TVUludGVnZXIgbnVtTGF5ZXJzID0gKE5TVUludGVnZXIp
aGlnaGxpZ2h0LnF1YWRzLnNpemUoKTsKKyAgICBpZiAoIW51bUxheWVycykgeworICAgICAgICBb
c2VsZiBfcmVtb3ZlQWxsTGF5ZXJzXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFtz
ZWxmIF9jcmVhdGVMYXllcnM6bnVtTGF5ZXJzXTsKKworICAgIENHQ29sb3JSZWYgY29udGVudENv
bG9yID0gY2FjaGVkQ0dDb2xvcihoaWdobGlnaHQuY29udGVudENvbG9yLCBDb2xvclNwYWNlRGV2
aWNlUkdCKTsKKyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDA7IGkgPCBudW1MYXllcnM7ICsraSkg
eworICAgICAgICBDQVNoYXBlTGF5ZXIgKmxheWVyID0gW19sYXllcnMgb2JqZWN0QXRJbmRleDpp
XTsKKyAgICAgICAgbGF5ZXIuZmlsbENvbG9yID0gY29udGVudENvbG9yOworICAgICAgICBsYXll
clBhdGgobGF5ZXIsIGhpZ2hsaWdodC5xdWFkc1tpXSk7CisgICAgfQorfQorCistICh2b2lkKXVw
ZGF0ZTooY29uc3QgSGlnaGxpZ2h0JiloaWdobGlnaHQKK3sKKyAgICBpZiAoaGlnaGxpZ2h0LnR5
cGUgPT0gSGlnaGxpZ2h0VHlwZU5vZGUpCisgICAgICAgIFtzZWxmIF9sYXlvdXRGb3JOb2RlSGln
aGxpZ2h0OmhpZ2hsaWdodF07CisgICAgZWxzZSBpZiAoaGlnaGxpZ2h0LnR5cGUgPT0gSGlnaGxp
Z2h0VHlwZVJlY3RzKQorICAgICAgICBbc2VsZiBfbGF5b3V0Rm9yUmVjdHNIaWdobGlnaHQ6aGln
aGxpZ2h0XTsKK30KKworQGVuZAorCisKIEBpbXBsZW1lbnRhdGlvbiBXS0NvbnRlbnRWaWV3IHsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZUNsaWVudEltcGw+IF9wYWdlQ2xpZW50OwogICAgIFJl
dGFpblB0cjxXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI+IF9icm93c2luZ0NvbnRleHRDb250
cm9sbGVyOwogCiAgICAgUmV0YWluUHRyPFVJVmlldz4gX3Jvb3RDb250ZW50VmlldzsKICAgICBS
ZXRhaW5QdHI8V0tJbnNwZWN0b3JJbmRpY2F0aW9uVmlldz4gX2luc3BlY3RvckluZGljYXRpb25W
aWV3OworICAgIFJldGFpblB0cjxXS0luc3BlY3RvckhpZ2hsaWdodFZpZXc+IF9pbnNwZWN0b3JI
aWdobGlnaHRWaWV3OwogCiAgICAgSGlzdG9yaWNhbFZlbG9jaXR5RGF0YSBfaGlzdG9yaWNhbEtp
bmVtYXRpY0RhdGE7CiB9CkBAIC0yNzEsNiArNTE1LDI0IEBAIC0gKEJPT0wpaXNBc3Npc3RpbmdO
b2RlCiAgICAgcmV0dXJuIFtzZWxmIGlzRWRpdGFibGVdOwogfQogCistICh2b2lkKV9zaG93SW5z
cGVjdG9ySGlnaGxpZ2h0Oihjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmKWhpZ2hsaWdodAorewor
ICAgIGlmICghX2luc3BlY3RvckhpZ2hsaWdodFZpZXcpIHsKKyAgICAgICAgX2luc3BlY3Rvckhp
Z2hsaWdodFZpZXcgPSBhZG9wdE5TKFtbV0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdFplcm9dKTsKKyAgICAgICAgW3NlbGYgaW5zZXJ0U3Vidmlldzpf
aW5zcGVjdG9ySGlnaGxpZ2h0Vmlldy5nZXQoKSBhYm92ZVN1YnZpZXc6X3Jvb3RDb250ZW50Vmll
dy5nZXQoKV07CisgICAgfQorCisgICAgW19pbnNwZWN0b3JIaWdobGlnaHRWaWV3IHVwZGF0ZTpo
aWdobGlnaHRdOworfQorCistICh2b2lkKV9oaWRlSW5zcGVjdG9ySGlnaGxpZ2h0Cit7CisgICAg
aWYgKF9pbnNwZWN0b3JIaWdobGlnaHRWaWV3KSB7CisgICAgICAgIFtfaW5zcGVjdG9ySGlnaGxp
Z2h0VmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKKyAgICAgICAgX2luc3BlY3RvckhpZ2hsaWdo
dFZpZXcgPSBuaWw7CisgICAgfQorfQorCiAtIChCT09MKWlzU2hvd2luZ0luc3BlY3RvckluZGlj
YXRpb24KIHsKICAgICByZXR1cm4gISFfaW5zcGVjdG9ySW5kaWNhdGlvblZpZXc7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDE5MWVi
MzEuLjEzYjE0ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tCkBAIC02NDYsNiArNjQ2LDE2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzdG9w
QXNzaXN0aW5nTm9kZSgpCiB9CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQordm9pZCBXZWJQYWdl
UHJveHk6OnNob3dJbnNwZWN0b3JIaWdobGlnaHQoY29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0JiBo
aWdobGlnaHQpCit7CisgICAgbV9wYWdlQ2xpZW50LnNob3dJbnNwZWN0b3JIaWdobGlnaHQoaGln
aGxpZ2h0KTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmhpZGVJbnNwZWN0b3JIaWdobGlnaHQo
KQoreworICAgIG1fcGFnZUNsaWVudC5oaWRlSW5zcGVjdG9ySGlnaGxpZ2h0KCk7Cit9CisKIHZv
aWQgV2ViUGFnZVByb3h5OjpzaG93SW5zcGVjdG9ySW5kaWNhdGlvbigpCiB7CiAgICAgbV9wYWdl
Q2xpZW50LnNob3dJbnNwZWN0b3JJbmRpY2F0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dC5jcHAKaW5kZXggZWFlMDQzNi4uNmNmYzkxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
LmNwcApAQCAtMzMsNiArMzMsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckNvbnRy
b2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KIAorI2lmIFBMQVRGT1JNKElPUykK
KyNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3Rvck92ZXJsYXkuaD4KKyNlbmRpZgorCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC02OSw2ICs3Myw3IEBA
IHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpkaWRSZXNpemVNYWluRnJhbWUoRnJhbWUqKQogCiB2
b2lkIFdlYkluc3BlY3RvckNsaWVudDo6aGlnaGxpZ2h0KCkKIHsKKyNpZiAhUExBVEZPUk0oSU9T
KQogICAgIGlmICghbV9oaWdobGlnaHRPdmVybGF5KSB7CiAgICAgICAgIFJlZlB0cjxQYWdlT3Zl
cmxheT4gaGlnaGxpZ2h0T3ZlcmxheSA9IFBhZ2VPdmVybGF5OjpjcmVhdGUodGhpcyk7CiAgICAg
ICAgIG1faGlnaGxpZ2h0T3ZlcmxheSA9IGhpZ2hsaWdodE92ZXJsYXkuZ2V0KCk7CkBAIC03OCwx
MiArODMsMjEgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmhpZ2hsaWdodCgpCiAgICAgICAg
IG1faGlnaGxpZ2h0T3ZlcmxheS0+c3RvcEZhZGVPdXRBbmltYXRpb24oKTsKICAgICAgICAgbV9o
aWdobGlnaHRPdmVybGF5LT5zZXROZWVkc0Rpc3BsYXkoKTsKICAgICB9CisjZWxzZQorICAgIEhp
Z2hsaWdodCBoaWdobGlnaHQ7CisgICAgbV9wYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250
cm9sbGVyKCkuZ2V0SGlnaGxpZ2h0KCZoaWdobGlnaHQsIEluc3BlY3Rvck92ZXJsYXk6OkNvb3Jk
aW5hdGVTeXN0ZW06OkRvY3VtZW50KTsKKyAgICBtX3BhZ2UtPnNob3dJbnNwZWN0b3JIaWdobGln
aHQoaGlnaGxpZ2h0KTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6aGlk
ZUhpZ2hsaWdodCgpCiB7CisjaWYgIVBMQVRGT1JNKElPUykKICAgICBpZiAobV9oaWdobGlnaHRP
dmVybGF5KQogICAgICAgICBtX3BhZ2UtPnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1faGlnaGxpZ2h0
T3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyNlbHNlCisgICAgbV9wYWdl
LT5oaWRlSW5zcGVjdG9ySGlnaGxpZ2h0KCk7CisjZW5kaWYKIH0KIAogI2lmIFBMQVRGT1JNKElP
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDdm
MzI5ZGMuLmY5NjU1ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaApAQCAtMTMxLDYgKzEzMSw3IEBAIGNsYXNzIFN1YnN0aXR1dGVEYXRhOwogY2xhc3Mg
VGV4dENoZWNraW5nUmVxdWVzdDsKIGNsYXNzIFVSTDsKIGNsYXNzIFZpc2libGVTZWxlY3Rpb247
CitzdHJ1Y3QgSGlnaGxpZ2h0Owogc3RydWN0IEtleXByZXNzQ29tbWFuZDsKIHN0cnVjdCBUZXh0
Q2hlY2tpbmdSZXN1bHQ7CiB9CkBAIC01MDcsNiArNTA4LDkgQEAgcHVibGljOgogICAgIHZvaWQg
ZGlzcGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhjb25zdCBWZWN0b3I8V2ViVG91Y2hFdmVu
dCwgMT4mIHF1ZXVlKTsKICAgICB2b2lkIGNvbnRlbnRTaXplQ2F0ZWdvcnlEaWRDaGFuZ2UoY29u
c3QgU3RyaW5nJik7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICB2b2lkIHNob3dJbnNwZWN0
b3JIaWdobGlnaHQoY29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0Jik7CisgICAgdm9pZCBoaWRlSW5z
cGVjdG9ySGlnaGxpZ2h0KCk7CisKICAgICB2b2lkIHNob3dJbnNwZWN0b3JJbmRpY2F0aW9uKCk7
CiAgICAgdm9pZCBoaWRlSW5zcGVjdG9ySW5kaWNhdGlvbigpOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXgg
NDQ5MDAzZC4uZDlkODgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNjEyLDYgKzYxMiwxNiBAQCB2b2lkIFdlYlBh
Z2U6OnNldEFzc2lzdGVkTm9kZVNlbGVjdGVkSW5kZXgodWludDMyX3QgaW5kZXgsIGJvb2wgYWxs
b3dNdWx0aXBsZVNlbAogfQogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKK3ZvaWQgV2ViUGFnZTo6
c2hvd0luc3BlY3RvckhpZ2hsaWdodChjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmIGhpZ2hsaWdo
dCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dJbnNwZWN0b3JIaWdo
bGlnaHQoaGlnaGxpZ2h0KSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6aGlkZUluc3BlY3RvckhpZ2hs
aWdodCgpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpIaWRlSW5zcGVjdG9y
SGlnaGxpZ2h0KCkpOworfQorCiB2b2lkIFdlYlBhZ2U6OnNob3dJbnNwZWN0b3JJbmRpY2F0aW9u
KCkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dJbnNwZWN0b3JJbmRp
Y2F0aW9uKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233744</attachid>
            <date>2014-06-24 14:57:19 -0700</date>
            <delta_ts>2014-06-24 16:50:37 -0700</delta_ts>
            <desc>[PATCH] With New Windows Symbol</desc>
            <filename>windo2.patch</filename>
            <type>text/plain</type>
            <size>42483</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkMWJlMTU1Li5kMmMwYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTQtMDYtMjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbaU9TXTogV0syIEluc3BlY3RvciBOb2RlIEhpZ2hsaWdodGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MjU3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBjbGllbnRzIHdhbnQg
dG8gZ2V0IGhpZ2hsaWdodHMgd2l0aCB0aGUgc2Nyb2xsIGFwcGxpZWQsCisgICAgICAgIG90aGVy
cyBkbyBub3QuIFByb3ZpZGUgYSBDb29yZGluYXRlU3BhY2UgcGFyYW0gdG8gYmUgdXNlZCBmb3IK
KyAgICAgICAgZ2V0dGluZyBhIGhpZ2hsaWdodCAob25seSB1c2VkIG9uIGlPUykuCisKKyAgICAg
ICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpnZXRIaWdo
bGlnaHQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yT3ZlcmxheTo6Z2V0SGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
T2JqZWN0Rm9yUmVuZGVyZXJGcmFnbWVudHMpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JPdmVybGF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHQ6OkhpZ2hsaWdodCk6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjppbnNwZWN0b3JIaWdobGlnaHRSZWN0cyk6CisKIDIwMTQtMDYtMjQgIEVyaWMgQ2FybHNv
biAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBm
aXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGJlMDYwMGEuLjkwNmFkOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCkBAIC0xNzg1LDcgKzE3ODUsNyBAQCBfX1pOSzdXZWJDb3JlMTlBbmltYXRpb25D
b250cm9sbGVyMzNhbGxvd3NOZXdBbmltYXRpb25zV2hpbGVTdXNwZW5kZWRFdgogX19aTks3V2Vi
Q29yZTE5SFRNTE9wdEdyb3VwRWxlbWVudDE0Z3JvdXBMYWJlbFRleHRFdgogX19aTks3V2ViQ29y
ZTE5SFRNTFRleHRBcmVhRWxlbWVudDV2YWx1ZUV2CiBfX1pOSzdXZWJDb3JlMTlJREJEYXRhYmFz
ZU1ldGFkYXRhMTJpc29sYXRlZENvcHlFdgotX19aTks3V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJv
bGxlcjEyZ2V0SGlnaGxpZ2h0RVBOU185SGlnaGxpZ2h0RQorX19aTks3V2ViQ29yZTE5SW5zcGVj
dG9yQ29udHJvbGxlcjEyZ2V0SGlnaGxpZ2h0RVBOU185SGlnaGxpZ2h0RU5TXzE2SW5zcGVjdG9y
T3ZlcmxheTE2Q29vcmRpbmF0ZVN5c3RlbUUKIF9fWk5LN1dlYkNvcmUxOUluc3BlY3RvckNvbnRy
b2xsZXIyOWJ1aWxkT2JqZWN0Rm9ySGlnaGxpZ2h0ZWROb2RlRXYKIF9fWk5LN1dlYkNvcmUxOU1l
ZGlhU2Vzc2lvbk1hbmFnZXIzMGFwcGxpY2F0aW9uV2lsbEVudGVyQmFja2dyb3VuZEV2CiBfX1pO
SzdXZWJDb3JlMTlNZWRpYVNlc3Npb25NYW5hZ2VyMzBhcHBsaWNhdGlvbldpbGxFbnRlckZvcmVn
cm91bmRFdgpAQCAtMzE1Miw3ICszMTUyLDYgQEAgX19aTks3V2ViQ29yZTlET01XaW5kb3c4ZG9j
dW1lbnRFdgogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikgJiYgUExBVEZPUk0oSU9TKQogX19aTjdX
ZWJDb3JlMTZmaW5kSW50ZXJzZWN0aW9uRVJLTlNfMTBGbG9hdFBvaW50RVMyX1MyX1MyX1JTMF8K
LV9fWk5LN1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxMmdldEhpZ2hsaWdodEVQTlNfOUhp
Z2hsaWdodEUKIF9fWk5LN1dlYkNvcmU5RmxvYXRRdWFkMTJjb250YWluc1F1YWRFUktTMF8KIF9f
Wk5LN1dlYkNvcmU5RmxvYXRRdWFkMTNjb250YWluc1BvaW50RVJLTlNfMTBGbG9hdFBvaW50RQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKaW5kZXggM2JhZDk0Mi4uOGQxNTAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMzE4LDkgKzMxOCw5IEBAIHZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZHJhd0hpZ2hsaWdodChHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQpIGNvbnN0CiAgICAgbV9vdmVybGF5LT5wYWludChjb250ZXh0KTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JDb250cm9sbGVyOjpnZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiBoaWdobGlnaHQpIGNvbnN0
Cit2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmdldEhpZ2hsaWdodChIaWdobGlnaHQqIGhpZ2hs
aWdodCwgSW5zcGVjdG9yT3ZlcmxheTo6Q29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVt
KSBjb25zdAogewotICAgIG1fb3ZlcmxheS0+Z2V0SGlnaGxpZ2h0KGhpZ2hsaWdodCk7CisgICAg
bV9vdmVybGF5LT5nZXRIaWdobGlnaHQoaGlnaGxpZ2h0LCBjb29yZGluYXRlU3lzdGVtKTsKIH0K
IAogUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IEluc3BlY3RvckNvbnRyb2xsZXI6OmJ1aWxk
T2JqZWN0Rm9ySGlnaGxpZ2h0ZWROb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDk5MjgxZWUuLmMyODg2NjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMzQs
NiArMzQsNyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCiAj
aW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50UmVnaXN0cnkuaD4KICNpbmNsdWRlIDxp
bnNwZWN0b3IvSW5zcGVjdG9yRW52aXJvbm1lbnQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgpAQCAtNTksNyArNjAsNiBAQCBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0
b3JET01BZ2VudDsKIGNsYXNzIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ7CiBjbGFzcyBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudDsKLWNsYXNzIEluc3BlY3Rvck92ZXJsYXk7CiBjbGFzcyBJbnNw
ZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OwogY2xhc3MgSW5z
dHJ1bWVudGluZ0FnZW50czsKQEAgLTY3LDcgKzY3LDYgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFBh
Z2U7CiBjbGFzcyBQYWdlRGVidWdnZXJBZ2VudDsKIGNsYXNzIFdlYkluamVjdGVkU2NyaXB0TWFu
YWdlcjsKLXN0cnVjdCBIaWdobGlnaHQ7CiAKIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXIgZmlu
YWwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JFbnZpcm9ubWVudCB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yQ29udHJvbGxlcik7CkBAIC0xMDQsNyArMTAzLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBpbnNwZWN0KE5vZGUqKTsKICAgICB2b2lkIGRyYXdIaWdobGln
aHQoR3JhcGhpY3NDb250ZXh0JikgY29uc3Q7Ci0gICAgdm9pZCBnZXRIaWdobGlnaHQoSGlnaGxp
Z2h0KikgY29uc3Q7CisgICAgdm9pZCBnZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiwgSW5zcGVjdG9y
T3ZlcmxheTo6Q29vcmRpbmF0ZVN5c3RlbSkgY29uc3Q7CiAgICAgdm9pZCBoaWRlSGlnaGxpZ2h0
KCk7CiAgICAgTm9kZSogaGlnaGxpZ2h0ZWROb2RlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCA0MTQxYjcxLi5iODk5YzJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBA
IC0xMDAsMTYgKzEwMCwyMyBAQCB2b2lkIGRyYXdPdXRsaW5lZFF1YWQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBGbG9hdFF1YWQmIHF1YWQsIGNvbnN0IENvbAogICAgIGNvbnRleHQt
PmZpbGxQYXRoKHF1YWRQYXRoKTsKIH0KIAotc3RhdGljIHZvaWQgY29udGVudHNRdWFkVG9QYWdl
KGNvbnN0IEZyYW1lVmlldyogbWFpblZpZXcsIGNvbnN0IEZyYW1lVmlldyogdmlldywgRmxvYXRR
dWFkJiBxdWFkKQorc3RhdGljIHZvaWQgY29udGVudHNRdWFkVG9Db29yZGluYXRlU3lzdGVtKGNv
bnN0IEZyYW1lVmlldyogbWFpblZpZXcsIGNvbnN0IEZyYW1lVmlldyogdmlldywgRmxvYXRRdWFk
JiBxdWFkLCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0
ZW0pCiB7CiAgICAgcXVhZC5zZXRQMSh2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocm91bmRlZElu
dFBvaW50KHF1YWQucDEoKSkpKTsKICAgICBxdWFkLnNldFAyKHZpZXctPmNvbnRlbnRzVG9Sb290
Vmlldyhyb3VuZGVkSW50UG9pbnQocXVhZC5wMigpKSkpOwogICAgIHF1YWQuc2V0UDModmlldy0+
Y29udGVudHNUb1Jvb3RWaWV3KHJvdW5kZWRJbnRQb2ludChxdWFkLnAzKCkpKSk7CiAgICAgcXVh
ZC5zZXRQNCh2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocm91bmRlZEludFBvaW50KHF1YWQucDQo
KSkpKTsKLSAgICBxdWFkICs9IG1haW5WaWV3LT5zY3JvbGxPZmZzZXQoKTsKKworICAgIGlmIChj
b29yZGluYXRlU3lzdGVtID09IEluc3BlY3Rvck92ZXJsYXk6OkNvb3JkaW5hdGVTeXN0ZW06OlZp
ZXcpCisgICAgICAgIHF1YWQgKz0gbWFpblZpZXctPnNjcm9sbE9mZnNldCgpOworfQorCitzdGF0
aWMgdm9pZCBjb250ZW50c1F1YWRUb1BhZ2UoY29uc3QgRnJhbWVWaWV3KiBtYWluVmlldywgY29u
c3QgRnJhbWVWaWV3KiB2aWV3LCBGbG9hdFF1YWQmIHF1YWQpCit7CisgICAgY29udGVudHNRdWFk
VG9Db29yZGluYXRlU3lzdGVtKG1haW5WaWV3LCB2aWV3LCBxdWFkLCBJbnNwZWN0b3JPdmVybGF5
OjpDb29yZGluYXRlU3lzdGVtOjpWaWV3KTsKIH0KIAotc3RhdGljIHZvaWQgYnVpbGRSZW5kZXJl
ckhpZ2hsaWdodChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwg
Y29uc3QgSGlnaGxpZ2h0Q29uZmlnJiBoaWdobGlnaHRDb25maWcsIEhpZ2hsaWdodCogaGlnaGxp
Z2h0KQorc3RhdGljIHZvaWQgYnVpbGRSZW5kZXJlckhpZ2hsaWdodChSZW5kZXJPYmplY3QqIHJl
bmRlcmVyLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgY29uc3QgSGlnaGxpZ2h0Q29uZmlnJiBoaWdo
bGlnaHRDb25maWcsIEhpZ2hsaWdodCogaGlnaGxpZ2h0LCBJbnNwZWN0b3JPdmVybGF5OjpDb29y
ZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pCiB7CiAgICAgRnJhbWUqIGNvbnRhaW5pbmdG
cmFtZSA9IHJlbmRlcmVyLT5kb2N1bWVudCgpLmZyYW1lKCk7CiAgICAgaWYgKCFjb250YWluaW5n
RnJhbWUpCkBAIC0xMjYsNyArMTMzLDcgQEAgc3RhdGljIHZvaWQgYnVpbGRSZW5kZXJlckhpZ2hs
aWdodChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwKICAgICAg
ICAgaGlnaGxpZ2h0LT50eXBlID0gSGlnaGxpZ2h0VHlwZVJlY3RzOwogICAgICAgICByZW5kZXJl
ci0+YWJzb2x1dGVRdWFkcyhoaWdobGlnaHQtPnF1YWRzKTsKICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBoaWdobGlnaHQtPnF1YWRzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgY29u
dGVudHNRdWFkVG9QYWdlKG1haW5WaWV3LCBjb250YWluaW5nVmlldywgaGlnaGxpZ2h0LT5xdWFk
c1tpXSk7CisgICAgICAgICAgICBjb250ZW50c1F1YWRUb0Nvb3JkaW5hdGVTeXN0ZW0obWFpblZp
ZXcsIGNvbnRhaW5pbmdWaWV3LCBoaWdobGlnaHQtPnF1YWRzW2ldLCBjb29yZGluYXRlU3lzdGVt
KTsKICAgICB9IGVsc2UgaWYgKHJlbmRlcmVyLT5pc0JveCgpIHx8IHJlbmRlcmVyLT5pc1JlbmRl
cklubGluZSgpKSB7CiAgICAgICAgIExheW91dFJlY3QgY29udGVudEJveDsKICAgICAgICAgTGF5
b3V0UmVjdCBwYWRkaW5nQm94OwpAQCAtMjAyLDEwICsyMDksMTAgQEAgc3RhdGljIHZvaWQgYnVp
bGRSZW5kZXJlckhpZ2hsaWdodChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBSZW5kZXJSZWdpb24q
IHJlZ2lvbiwKICAgICAgICAgICAgIGFic01hcmdpblF1YWQgPSByZW5kZXJlci0+bG9jYWxUb0Fi
c29sdXRlUXVhZChGbG9hdFJlY3QobWFyZ2luQm94KSk7CiAgICAgICAgIH0KIAotICAgICAgICBj
b250ZW50c1F1YWRUb1BhZ2UobWFpblZpZXcsIGNvbnRhaW5pbmdWaWV3LCBhYnNDb250ZW50UXVh
ZCk7Ci0gICAgICAgIGNvbnRlbnRzUXVhZFRvUGFnZShtYWluVmlldywgY29udGFpbmluZ1ZpZXcs
IGFic1BhZGRpbmdRdWFkKTsKLSAgICAgICAgY29udGVudHNRdWFkVG9QYWdlKG1haW5WaWV3LCBj
b250YWluaW5nVmlldywgYWJzQm9yZGVyUXVhZCk7Ci0gICAgICAgIGNvbnRlbnRzUXVhZFRvUGFn
ZShtYWluVmlldywgY29udGFpbmluZ1ZpZXcsIGFic01hcmdpblF1YWQpOworICAgICAgICBjb250
ZW50c1F1YWRUb0Nvb3JkaW5hdGVTeXN0ZW0obWFpblZpZXcsIGNvbnRhaW5pbmdWaWV3LCBhYnND
b250ZW50UXVhZCwgY29vcmRpbmF0ZVN5c3RlbSk7CisgICAgICAgIGNvbnRlbnRzUXVhZFRvQ29v
cmRpbmF0ZVN5c3RlbShtYWluVmlldywgY29udGFpbmluZ1ZpZXcsIGFic1BhZGRpbmdRdWFkLCBj
b29yZGluYXRlU3lzdGVtKTsKKyAgICAgICAgY29udGVudHNRdWFkVG9Db29yZGluYXRlU3lzdGVt
KG1haW5WaWV3LCBjb250YWluaW5nVmlldywgYWJzQm9yZGVyUXVhZCwgY29vcmRpbmF0ZVN5c3Rl
bSk7CisgICAgICAgIGNvbnRlbnRzUXVhZFRvQ29vcmRpbmF0ZVN5c3RlbShtYWluVmlldywgY29u
dGFpbmluZ1ZpZXcsIGFic01hcmdpblF1YWQsIGNvb3JkaW5hdGVTeXN0ZW0pOwogCiAgICAgICAg
IGhpZ2hsaWdodC0+dHlwZSA9IEhpZ2hsaWdodFR5cGVOb2RlOwogICAgICAgICBoaWdobGlnaHQt
PnF1YWRzLmFwcGVuZChhYnNNYXJnaW5RdWFkKTsKQEAgLTIxNSwxMiArMjIyLDEyIEBAIHN0YXRp
YyB2b2lkIGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgUmVu
ZGVyUmVnaW9uKiByZWdpb24sCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBidWlsZE5vZGVIaWdo
bGlnaHQoTm9kZSogbm9kZSwgUmVuZGVyUmVnaW9uKiByZWdpb24sIGNvbnN0IEhpZ2hsaWdodENv
bmZpZyYgaGlnaGxpZ2h0Q29uZmlnLCBIaWdobGlnaHQqIGhpZ2hsaWdodCkKK3N0YXRpYyB2b2lk
IGJ1aWxkTm9kZUhpZ2hsaWdodChOb2RlKiBub2RlLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgY29u
c3QgSGlnaGxpZ2h0Q29uZmlnJiBoaWdobGlnaHRDb25maWcsIEhpZ2hsaWdodCogaGlnaGxpZ2h0
LCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pCiB7
CiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgaWYg
KCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwotICAgIGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQo
cmVuZGVyZXIsIHJlZ2lvbiwgaGlnaGxpZ2h0Q29uZmlnLCBoaWdobGlnaHQpOworICAgIGJ1aWxk
UmVuZGVyZXJIaWdobGlnaHQocmVuZGVyZXIsIHJlZ2lvbiwgaGlnaGxpZ2h0Q29uZmlnLCBoaWdo
bGlnaHQsIGNvb3JkaW5hdGVTeXN0ZW0pOwogfQogCiBzdGF0aWMgdm9pZCBidWlsZFF1YWRIaWdo
bGlnaHQoY29uc3QgRmxvYXRRdWFkJiBxdWFkLCBjb25zdCBIaWdobGlnaHRDb25maWcmIGhpZ2hs
aWdodENvbmZpZywgSGlnaGxpZ2h0ICpoaWdobGlnaHQpCkBAIC0yNjAsMTQgKzI2NywxNCBAQCB2
b2lkIEluc3BlY3Rvck92ZXJsYXk6OmRyYXdPdXRsaW5lKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgTGF5b3V0UmVjdCYgcgogICAgIGRyYXdPdXRsaW5lZFF1YWQoY29udGV4dCwgb3V0
bGluZVJlY3QsIENvbG9yKCksIGNvbG9yKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JPdmVybGF5Ojpn
ZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiBoaWdobGlnaHQpIGNvbnN0Cit2b2lkIEluc3BlY3Rvck92
ZXJsYXk6OmdldEhpZ2hsaWdodChIaWdobGlnaHQqIGhpZ2hsaWdodCwgSW5zcGVjdG9yT3Zlcmxh
eTo6Q29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtKSBjb25zdAogewogICAgIGlmICgh
bV9oaWdobGlnaHROb2RlICYmICFtX2hpZ2hsaWdodFF1YWQpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGhpZ2hsaWdodC0+dHlwZSA9IEhpZ2hsaWdodFR5cGVSZWN0czsKICAgICBpZiAobV9oaWdo
bGlnaHROb2RlKQotICAgICAgICBidWlsZE5vZGVIaWdobGlnaHQobV9oaWdobGlnaHROb2RlLmdl
dCgpLCBudWxscHRyLCBtX25vZGVIaWdobGlnaHRDb25maWcsIGhpZ2hsaWdodCk7CisgICAgICAg
IGJ1aWxkTm9kZUhpZ2hsaWdodChtX2hpZ2hsaWdodE5vZGUuZ2V0KCksIG51bGxwdHIsIG1fbm9k
ZUhpZ2hsaWdodENvbmZpZywgaGlnaGxpZ2h0LCBjb29yZGluYXRlU3lzdGVtKTsKICAgICBlbHNl
CiAgICAgICAgIGJ1aWxkUXVhZEhpZ2hsaWdodCgqbV9oaWdobGlnaHRRdWFkLCBtX3F1YWRIaWdo
bGlnaHRDb25maWcsIGhpZ2hsaWdodCk7CiB9CkBAIC01MDgsNyArNTE1LDcgQEAgc3RhdGljIFBh
c3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGJ1aWxkT2JqZWN0Rm9yUmVuZGVyZXJGcmFnbWVudHMo
UmVuZGVyT2JqZWN0KgogICAgIFJlbmRlckZsb3dUaHJlYWQqIGNvbnRhaW5pbmdGbG93VGhyZWFk
ID0gcmVuZGVyZXItPmZsb3dUaHJlYWRDb250YWluaW5nQmxvY2soKTsKICAgICBpZiAoIWNvbnRh
aW5pbmdGbG93VGhyZWFkKSB7CiAgICAgICAgIEhpZ2hsaWdodCBoaWdobGlnaHQ7Ci0gICAgICAg
IGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQocmVuZGVyZXIsIG51bGxwdHIsIGNvbmZpZywgJmhpZ2hs
aWdodCk7CisgICAgICAgIGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQocmVuZGVyZXIsIG51bGxwdHIs
IGNvbmZpZywgJmhpZ2hsaWdodCwgSW5zcGVjdG9yT3ZlcmxheTo6Q29vcmRpbmF0ZVN5c3RlbTo6
Vmlldyk7CiAgICAgICAgIGZyYWdtZW50c0FycmF5LT5wdXNoT2JqZWN0KGJ1aWxkT2JqZWN0Rm9y
SGlnaGxpZ2h0KGhpZ2hsaWdodCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFJlbmRlclJlZ2lv
biogc3RhcnRSZWdpb24gPSBudWxscHRyOwpAQCAtNTI0LDcgKzUzMSw3IEBAIHN0YXRpYyBQYXNz
UmVmUHRyPEluc3BlY3RvckFycmF5PiBidWlsZE9iamVjdEZvclJlbmRlcmVyRnJhZ21lbnRzKFJl
bmRlck9iamVjdCoKICAgICAgICAgICAgIGlmIChyZWdpb24tPmlzVmFsaWQoKSkgewogICAgICAg
ICAgICAgICAgIC8vIENvbXB1dGUgdGhlIGhpZ2hsaWdodCBvZiB0aGUgZnJhZ21lbnQgaW5zaWRl
IHRoZSBjdXJyZW50IHJlZ2lvbi4KICAgICAgICAgICAgICAgICBIaWdobGlnaHQgaGlnaGxpZ2h0
OwotICAgICAgICAgICAgICAgIGJ1aWxkUmVuZGVyZXJIaWdobGlnaHQocmVuZGVyZXIsIHJlZ2lv
biwgY29uZmlnLCAmaGlnaGxpZ2h0KTsKKyAgICAgICAgICAgICAgICBidWlsZFJlbmRlcmVySGln
aGxpZ2h0KHJlbmRlcmVyLCByZWdpb24sIGNvbmZpZywgJmhpZ2hsaWdodCwgSW5zcGVjdG9yT3Zl
cmxheTo6Q29vcmRpbmF0ZVN5c3RlbTo6Vmlldyk7CiAgICAgICAgICAgICAgICAgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gZnJhZ21lbnRPYmplY3QgPSBidWlsZE9iamVjdEZvckhpZ2hsaWdodCho
aWdobGlnaHQpOwogCiAgICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSB0aGUgY2xpcHBpbmcgYXJl
YSBvZiB0aGUgcmVnaW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvck92ZXJsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVy
bGF5LmgKaW5kZXggM2VjMDdkZi4uMTkzYWM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yT3ZlcmxheS5oCkBAIC03MCw2ICs3MCw3IEBAIGVudW0gSGlnaGxpZ2h0VHlw
ZSB7CiBzdHJ1Y3QgSGlnaGxpZ2h0IHsKICAgICBIaWdobGlnaHQoKQogICAgICAgICA6IHR5cGUo
SGlnaGxpZ2h0VHlwZU5vZGUpCisgICAgICAgICwgdXNlUGFnZUNvb3JkaW5hdGVzKHRydWUpCiAg
ICAgewogICAgIH0KIApAQCAtMTAyLDEwICsxMDMsMTUgQEAgcHVibGljOgogICAgIEluc3BlY3Rv
ck92ZXJsYXkoUGFnZSYsIEluc3BlY3RvckNsaWVudCopOwogICAgIH5JbnNwZWN0b3JPdmVybGF5
KCk7CiAKKyAgICBlbnVtIGNsYXNzIENvb3JkaW5hdGVTeXN0ZW0geworICAgICAgICBWaWV3LCAv
LyBBZGp1c3RzIGZvciB0aGUgbWFpbiBmcmFtZSdzIHNjcm9sbCBvZmZzZXQuCisgICAgICAgIERv
Y3VtZW50LCAvLyBEb2VzIG5vdCBhZGp1c3QgZm9yIHRoZSBtYWluIGZyYW1lJ3Mgc2Nyb2xsIG9m
ZnNldC4KKyAgICB9OworCiAgICAgdm9pZCB1cGRhdGUoKTsKICAgICB2b2lkIHBhaW50KEdyYXBo
aWNzQ29udGV4dCYpOwogICAgIHZvaWQgZHJhd091dGxpbmUoR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgTGF5b3V0UmVjdCYsIGNvbnN0IENvbG9yJik7Ci0gICAgdm9pZCBnZXRIaWdobGlnaHQoSGln
aGxpZ2h0KikgY29uc3Q7CisgICAgdm9pZCBnZXRIaWdobGlnaHQoSGlnaGxpZ2h0KiwgQ29vcmRp
bmF0ZVN5c3RlbSkgY29uc3Q7CiAKICAgICB2b2lkIHNldFBhdXNlZEluRGVidWdnZXJNZXNzYWdl
KGNvbnN0IFN0cmluZyopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXgg
OTYzMTc1OTcuLmQwZTVkZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAg
LTcxNyw3ICs3MTcsNyBAQCBQYXNzUmVmUHRyPENsaWVudFJlY3RMaXN0PiBJbnRlcm5hbHM6Omlu
c3BlY3RvckhpZ2hsaWdodFJlY3RzKEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIH0KIAogICAgIEhp
Z2hsaWdodCBoaWdobGlnaHQ7Ci0gICAgZG9jdW1lbnQtPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpLmdldEhpZ2hsaWdodCgmaGlnaGxpZ2h0KTsKKyAgICBkb2N1bWVudC0+cGFnZSgpLT5p
bnNwZWN0b3JDb250cm9sbGVyKCkuZ2V0SGlnaGxpZ2h0KCZoaWdobGlnaHQsIEluc3BlY3Rvck92
ZXJsYXk6OkNvb3JkaW5hdGVTeXN0ZW06OlZpZXcpOwogICAgIHJldHVybiBDbGllbnRSZWN0TGlz
dDo6Y3JlYXRlKGhpZ2hsaWdodC5xdWFkcyk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShlYyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdl
bmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHBy
b2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCmluZGV4IGE4MTc0
NmMuLmQzOTMzYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2Vi
S2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVm
LmluCkBAIC0yMTAsNyArMjEwLDcgQEAgRVhQT1JUUwogICAgICAgICA/c2VsZWN0VGFnQEhUTUxO
YW1lc0BXZWJDb3JlQEAzVkhUTUxRdWFsaWZpZWROYW1lQDJAQgogI2lmIEVOQUJMRShJTlNQRUNU
T1IpCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9idWlsZE9iamVjdEZvckhpZ2hsaWdodGVk
Tm9kZUBJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFCRT9BVj8kUGFzc1JlZlB0ckBWSW5z
cGVjdG9yT2JqZWN0QEluc3BlY3RvckBAQFdURkBAWFosID9idWlsZE9iamVjdEZvckhpZ2hsaWdo
dGVkTm9kZUBJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFFQkE/QVY/JFBhc3NSZWZQdHJA
Vkluc3BlY3Rvck9iamVjdEBJbnNwZWN0b3JAQEBXVEZAQFhaKQotICAgICAgICBzeW1ib2xXaXRo
UG9pbnRlcig/Z2V0SGlnaGxpZ2h0QEluc3BlY3RvckNvbnRyb2xsZXJAV2ViQ29yZUBAUUJFWFBB
VUhpZ2hsaWdodEAyQEBaLCA/Z2V0SGlnaGxpZ2h0QEluc3BlY3RvckNvbnRyb2xsZXJAV2ViQ29y
ZUBAUUVCQVhQRUFVSGlnaGxpZ2h0QDJAQFopCisgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9n
ZXRIaWdobGlnaHRASW5zcGVjdG9yQ29udHJvbGxlckBXZWJDb3JlQEBRQkVYUEFVSGlnaGxpZ2h0
QDJAVzRDb29yZGluYXRlU3lzdGVtQEluc3BlY3Rvck92ZXJsYXlAMkBAWiwgP2dldEhpZ2hsaWdo
dEBJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFCRVhQQVVIaWdobGlnaHRAMkBXNENvb3Jk
aW5hdGVTeXN0ZW1ASW5zcGVjdG9yT3ZlcmxheUAyQEBaKQogICAgICAgICBzeW1ib2xXaXRoUG9p
bnRlcig/aW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2VASW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
QFdlYkNvcmVAQENBUEFWSW5zdHJ1bWVudGluZ0FnZW50c0AyQFBBVlBhZ2VAMkBAWiwgP2luc3Ry
dW1lbnRpbmdBZ2VudHNGb3JQYWdlQEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkBXZWJDb3JlQEBD
QVBFQVZJbnN0cnVtZW50aW5nQWdlbnRzQDJAUEVBVlBhZ2VAMkBAWikKICAgICAgICAgP3NfZnJv
bnRlbmRDb3VudGVyQEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkBXZWJDb3JlQEAwSEEKICAgICAg
ICAgc3ltYm9sV2l0aFBvaW50ZXIoP2lzVW5kZXJUZXN0QEluc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWxAV2ViQ29yZUBAVUFFX05YWiwgP2lzVW5kZXJUZXN0QEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWxAV2ViQ29yZUBAVUVBQV9OWFopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNDEzNzM5OC4u
YmU0YTljNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTA2LTI0ICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU106IFdL
MiBJbnNwZWN0b3IgTm9kZSBIaWdobGlnaHRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDI1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHRWaWV3
Lm1tOgorICAgICAgICAoLVtXZWJOb2RlSGlnaGxpZ2h0VmlldyBsYXlvdXRTdWJsYXllcnM6XSk6
CisKIDIwMTQtMDYtMjQgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBGaXhlZCB0aGUgaU9TIGJ1aWxkIGFmdGVyIHIxNzAzNTguCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodFZpZXcubW0KaW5kZXggMjVm
ZmMzOS4uZmJlN2JhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViSW5zcGVjdG9y
L1dlYk5vZGVIaWdobGlnaHRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkluc3Bl
Y3Rvci9XZWJOb2RlSGlnaGxpZ2h0Vmlldy5tbQpAQCAtMzE1LDcgKzMxNSw3IEBAIC0gKHZvaWQp
bGF5b3V0U3VibGF5ZXJzOihDQUxheWVyICopcGFyZW50TGF5ZXIKICAgICAgICAgcmV0dXJuOwog
CiAgICAgSGlnaGxpZ2h0IGg7Ci0gICAgW193ZWJOb2RlSGlnaGxpZ2h0IGluc3BlY3RvckNvbnRy
b2xsZXJdLT5nZXRIaWdobGlnaHQoJmgpOworICAgIFtfd2ViTm9kZUhpZ2hsaWdodCBpbnNwZWN0
b3JDb250cm9sbGVyXS0+Z2V0SGlnaGxpZ2h0KCZoLCBJbnNwZWN0b3JPdmVybGF5OjpDb29yZGlu
YXRlU3lzdGVtOjpWaWV3KTsKIAogICAgIGlmIChoLnR5cGUgPT0gSGlnaGxpZ2h0VHlwZU5vZGUp
CiAgICAgICAgIFtzZWxmIF9sYXlvdXRGb3JOb2RlSGlnaGxpZ2h0OiZoIHBhcmVudDpwYXJlbnRM
YXllcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjgxNGUxNS4uYWU5YmM1ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDYzIEBACisyMDE0LTA2LTI0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5j
b20+CisKKyAgICAgICAgW2lPU106IFdLMiBJbnNwZWN0b3IgTm9kZSBIaWdobGlnaHRpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDI1NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXQyL21lc3NhZ2VzLnB5OgorICAgICAgICAoc3RydWN0X29yX2NsYXNzKToKKyAgICAgICAg
KGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxIaWdobGlnaHQ+OjplbmNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEhpZ2hsaWdodD46OmRlY29kZSk6CisgICAgICAgIEFkZCBhIHdheSB0
byBlbmNvZGUgYSBXZWJDb3JlOjpIaWdobGlnaHQgc3RydWN0LgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nob3dJbnNwZWN0
b3JIaWdobGlnaHQ6V2ViQ29yZTo6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfaGlkZUluc3Bl
Y3RvckhpZ2hsaWdodF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzaG93SW5zcGVjdG9ySGlnaGxpZ2h0
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmhpZGVJbnNwZWN0b3JIaWdobGln
aHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3dJbnNwZWN0b3JIaWdobGlnaHQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhpZGVJbnNwZWN0b3JIaWdobGlnaHQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yQ2xpZW50OjpoaWdobGlnaHQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3JDbGllbnQ6OmhpZGVIaWdobGlnaHQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaG93SW5zcGVj
dG9ySGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aGlkZUluc3BlY3Rvckhp
Z2hsaWdodCk6CisgICAgICAgIFNlbmQgd2ViIHByb2Nlc3MgaGlnaGxpZ2h0IC8gaGlkZUhpZ2hs
aWdodCBtZXNzYWdlcyB1cCB0bworICAgICAgICB0aGUgVUlQcm9jZXNzIHNvIGl0IGNhbiBoaWdo
bGlnaHQgaW4gdGhlIFdLQ29udGVudFZpZXcuCisgICAgICAgIFBhc3MgdXAgYSBXZWJDb3JlOjpI
aWdobGlnaHQgaW4gRG9jdW1lbnQgY29vcmRpbmF0ZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXcubW06CisgICAgICAgICgtW1dLSW5zcGVjdG9ySGlnaGxpZ2h0VmlldyBpbml0V2l0aEZyYW1l
Ol0pOgorICAgICAgICAoLVtXS0luc3BlY3RvckhpZ2hsaWdodFZpZXcgZGVhbGxvY10pOgorICAg
ICAgICAoLVtXS0luc3BlY3RvckhpZ2hsaWdodFZpZXcgX3JlbW92ZUFsbExheWVyc10pOgorICAg
ICAgICAoLVtXS0luc3BlY3RvckhpZ2hsaWdodFZpZXcgX2NyZWF0ZUxheWVyczpdKToKKyAgICAg
ICAgKGZpbmRJbnRlcnNlY3Rpb25PbkxpbmVCZXR3ZWVuUG9pbnRzKToKKyAgICAgICAgKHF1YWRJ
bnRlcnNlY3Rpb24pOgorICAgICAgICAobGF5ZXJQYXRoV2l0aEhvbGUpOgorICAgICAgICAobGF5
ZXJQYXRoKToKKyAgICAgICAgKC1bV0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3IF9sYXlvdXRGb3JO
b2RlSGlnaGxpZ2h0Ol0pOgorICAgICAgICAoLVtXS0luc3BlY3RvckhpZ2hsaWdodFZpZXcgX2xh
eW91dEZvclJlY3RzSGlnaGxpZ2h0Ol0pOgorICAgICAgICAoLVtXS0luc3BlY3RvckhpZ2hsaWdo
dFZpZXcgdXBkYXRlOl0pOgorICAgICAgICBSZXVzZSB0aGUgV2ViS2l0MSBjb2RlIHRvIHR1cm4g
aGlnaGxpZ2h0IGZsb2F0IHF1YWRzIGludG8gQ0FTaGFwZUxheWVycy4KKworICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9zaG93SW5zcGVjdG9ySGlnaGxpZ2h0OldlYkNvcmU6Ol0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IF9oaWRlSW5zcGVjdG9ySGlnaGxpZ2h0XSk6CisgICAgICAgIFNo
b3cgYW5kIGhpZGUgdGhlIGhpZ2hsaWdodCB2aWV3IHdpdGggdGhlIHJlc3BlY3RpdmUgV2ViQ29y
ZTo6SGlnaGxpZ2h0LgorCiAyMDE0LTA2LTI0ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TIFdlYktpdDJdIERpc2FibGUgc2NyZWVuIGZvbnQgc3Vic3Rp
dHV0aW9uIGJ5IGRlZmF1bHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dl
YmtpdDIvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2Fn
ZXMucHkKaW5kZXggMTNhODY4OC4uNzMyZjRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMv
d2Via2l0Mi9tZXNzYWdlcy5weQpAQCAtMTYyLDYgKzE2Miw3IEBAIGRlZiBzdHJ1Y3Rfb3JfY2xh
c3MobmFtZXNwYWNlLCB0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OkZsb2F0UG9pbnQzRCcsCiAg
ICAgICAgICdXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJywKICAgICAgICAgJ1dlYkNvcmU6
OkdyYW1tYXJEZXRhaWwnLAorICAgICAgICAnV2ViQ29yZTo6SGlnaGxpZ2h0JywKICAgICAgICAg
J1dlYkNvcmU6OklEQkRhdGFiYXNlTWV0YWRhdGEnLAogICAgICAgICAnV2ViQ29yZTo6SURCR2V0
UmVzdWx0JywKICAgICAgICAgJ1dlYkNvcmU6OklEQkluZGV4TWV0YWRhdGEnLApAQCAtNDI4LDYg
KzQyOSw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6
S2V5ZnJhbWVWYWx1ZUxpc3QnOiBbJzxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4nXSwKICAgICAg
ICAgJ1dlYkNvcmU6OktleXByZXNzQ29tbWFuZCc6IFsnPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyc6IFsnPFdlYkNvcmUv
RmlsZUNob29zZXIuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OkhpZ2hsaWdodCc6IFsnPFdlYkNv
cmUvSW5zcGVjdG9yT3ZlcmxheS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UGx1Z2luSW5mbyc6
IFsnPFdlYkNvcmUvUGx1Z2luRGF0YS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UGFzdGVib2Fy
ZEltYWdlJzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQ
YXN0ZWJvYXJkV2ViQ29udGVudCc6IFsnPFdlYkNvcmUvUGFzdGVib2FyZC5oPiddLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBmOTBh
YWM4Li5jNGQ2N2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcApAQCAtNzUsNiArNzUsNyBAQAogCiAjaWYgUExBVEZPUk0oSU9TKQogI2lu
Y2x1ZGUgPFdlYkNvcmUvRmxvYXRRdWFkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JP
dmVybGF5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TZWxlY3Rpb25SZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4K
QEAgLTExOTYsNiArMTE5Nyw0MiBAQCBib29sIEFyZ3VtZW50Q29kZXI8RGF0YWJhc2VEZXRhaWxz
Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgRGF0YWJhc2VEZQogCiAjaWYgUExB
VEZPUk0oSU9TKQogCit2b2lkIEFyZ3VtZW50Q29kZXI8SGlnaGxpZ2h0Pjo6ZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgSGlnaGxpZ2h0JiBoaWdobGlnaHQpCit7CisgICAg
ZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oaGlnaGxpZ2h0LnR5cGUpOworICAgIGVu
Y29kZXIgPDwgaGlnaGxpZ2h0LnVzZVBhZ2VDb29yZGluYXRlczsKKyAgICBlbmNvZGVyIDw8IGhp
Z2hsaWdodC5jb250ZW50Q29sb3I7CisgICAgZW5jb2RlciA8PCBoaWdobGlnaHQuY29udGVudE91
dGxpbmVDb2xvcjsKKyAgICBlbmNvZGVyIDw8IGhpZ2hsaWdodC5wYWRkaW5nQ29sb3I7CisgICAg
ZW5jb2RlciA8PCBoaWdobGlnaHQuYm9yZGVyQ29sb3I7CisgICAgZW5jb2RlciA8PCBoaWdobGln
aHQubWFyZ2luQ29sb3I7CisgICAgZW5jb2RlciA8PCBoaWdobGlnaHQucXVhZHM7Cit9CisKK2Jv
b2wgQXJndW1lbnRDb2RlcjxIaWdobGlnaHQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBIaWdobGlnaHQmIGhpZ2hsaWdodCkKK3sKKyAgICB1aW50MzJfdCB0eXBlOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBoaWdo
bGlnaHQudHlwZSA9IChIaWdobGlnaHRUeXBlKXR5cGU7CisKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGhpZ2hsaWdodC51c2VQYWdlQ29vcmRpbmF0ZXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoaWdobGlnaHQuY29udGVudENvbG9yKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGlnaGxpZ2h0LmNvbnRl
bnRPdXRsaW5lQ29sb3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShoaWdobGlnaHQucGFkZGluZ0NvbG9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGlnaGxpZ2h0LmJvcmRlckNvbG9yKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGlnaGxpZ2h0Lm1hcmdpbkNv
bG9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGln
aGxpZ2h0LnF1YWRzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOwor
fQorCiBzdGF0aWMgdm9pZCBlbmNvZGVTaGFyZWRCdWZmZXIoQXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyLCBTaGFyZWRCdWZmZXIqIGJ1ZmZlcikKIHsKICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBo
YW5kbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgK
aW5kZXggODY0YjZiNS4uMjg3NzdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaApAQCAtOTgsNiArOTgsNyBAQCBzdHJ1Y3QgS2V5cHJlc3NDb21t
YW5kOwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRmxvYXRRdWFkOwogY2xhc3MgU2VsZWN0
aW9uUmVjdDsKK3N0cnVjdCBIaWdobGlnaHQ7CiBzdHJ1Y3QgUGFzdGVib2FyZEltYWdlOwogc3Ry
dWN0IFBhc3RlYm9hcmRXZWJDb250ZW50Owogc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOwpAQCAt
Mjg5LDYgKzI5MCwxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlNlbGVjdGlvblJlY3Q+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiwgV2ViQ29yZTo6U2VsZWN0aW9uUmVjdCYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpIaWdobGlnaHQ+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0Jik7CisgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OkhpZ2hsaWdodCYpOworfTsK
KwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXN0ZWJvYXJkV2Vi
Q29udGVudD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpOwogICAgIHN0YXRpYyBib29sIGRlY29k
ZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAw
MjVkNmRjLi42MGExODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQpAQCAtOTIsNiArOTIsNyBAQAogI2ltcG9ydCA8VUlLaXQvVUlXaW5k
b3dfUHJpdmF0ZS5oPgogI2ltcG9ydCA8UXVhcnR6Q29yZS9DQVJlbmRlclNlcnZlci5oPgogI2lt
cG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9J
bnNwZWN0b3JPdmVybGF5Lmg+CiAKIEBpbnRlcmZhY2UgVUlTY3JvbGxWaWV3IChVSVNjcm9sbFZp
ZXdJbnRlcm5hbCkKIC0gKHZvaWQpX2FkanVzdEZvckF1dG9tYXRpY0tleWJvYXJkSW5mbzooTlNE
aWN0aW9uYXJ5KilpbmZvIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkIGxhc3RBZGp1c3RtZW50OihD
R0Zsb2F0KilsYXN0QWRqdXN0bWVudDsKQEAgLTYzOSw2ICs2NDAsMTYgQEAgLSAodm9pZClfZGlk
SW52b2tlVUlTY3JvbGxWaWV3RGVsZWdhdGVDYWxsYmFjawogICAgIH0KIH0KIAorLSAodm9pZClf
c2hvd0luc3BlY3RvckhpZ2hsaWdodDooY29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0JiloaWdobGln
aHQKK3sKKyAgICBbX2NvbnRlbnRWaWV3IF9zaG93SW5zcGVjdG9ySGlnaGxpZ2h0OmhpZ2hsaWdo
dF07Cit9CisKKy0gKHZvaWQpX2hpZGVJbnNwZWN0b3JIaWdobGlnaHQKK3sKKyAgICBbX2NvbnRl
bnRWaWV3IF9oaWRlSW5zcGVjdG9ySGlnaGxpZ2h0XTsKK30KKwogc3RhdGljIENHRmxvYXQgY29u
dGVudFpvb21TY2FsZShXS1dlYlZpZXcqIHdlYlZpZXcpCiB7CiAgICAgVUlWaWV3ICp6b29tVmll
dzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3SW50ZXJuYWwuaAppbmRleCBiY2Q2OTRhLi5kYzViZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBAIC00
NSw2ICs0NSwxMCBAQAogI2RlZmluZSBXS19XRUJfVklFV19QUk9UT0NPTFMKICNlbmRpZgogCitu
YW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgSGlnaGxpZ2h0OworfQorCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIHN0cnVjdCBQcmludEluZm87CkBAIC04OSw2ICs5
Myw5IEBAIHN0cnVjdCBWaWV3U25hcHNob3Q7CiAtICh2b2lkKV93aWxsSW52b2tlVUlTY3JvbGxW
aWV3RGVsZWdhdGVDYWxsYmFjazsKIC0gKHZvaWQpX2RpZEludm9rZVVJU2Nyb2xsVmlld0RlbGVn
YXRlQ2FsbGJhY2s7CiAKKy0gKHZvaWQpX3Nob3dJbnNwZWN0b3JIaWdobGlnaHQ6KGNvbnN0IFdl
YkNvcmU6OkhpZ2hsaWdodCYpaGlnaGxpZ2h0OworLSAodm9pZClfaGlkZUluc3BlY3RvckhpZ2hs
aWdodDsKKwogLSAodm9pZClfdXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0czsKIAogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBVSUVkZ2VJbnNldHMgX2NvbXB1dGVkQ29udGVudEluc2V0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggYWZiMTg3MS4uNGJmZjQ5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC00OCw2ICs0OCw3IEBA
IE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVzOwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgQ3Vyc29yOwogc3RydWN0IFZpZXdwb3J0QXR0cmlidXRlczsKK3N0cnVjdCBIaWdobGlnaHQ7
CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMjcwLDYgKzI3MSw5IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoRHJhd2luZ1BhZ2VzVG9QREYoY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJikgPSAwOwogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICB2aXJ0dWFsIHZv
aWQgc2hvd0luc3BlY3RvckhpZ2hsaWdodChjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGhpZGVJbnNwZWN0b3JIaWdobGlnaHQoKSA9IDA7CisKICAgICB2
aXJ0dWFsIHZvaWQgc2hvd0luc3BlY3RvckluZGljYXRpb24oKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGhpZGVJbnNwZWN0b3JJbmRpY2F0aW9uKCkgPSAwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggOWYxZjY2ZC4uZWIzMWE0ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTIwNyw2ICsxMjA3LDkgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHN0b3BBc3Npc3RpbmdOb2RlKCk7CiAKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQorICAgIHZvaWQgc2hvd0luc3BlY3RvckhpZ2hsaWdodChjb25zdCBXZWJDb3JlOjpIaWdo
bGlnaHQmKTsKKyAgICB2b2lkIGhpZGVJbnNwZWN0b3JIaWdobGlnaHQoKTsKKwogICAgIHZvaWQg
c2hvd0luc3BlY3RvckluZGljYXRpb24oKTsKICAgICB2b2lkIGhpZGVJbnNwZWN0b3JJbmRpY2F0
aW9uKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDdkZTM3MWEuLmFiOGRlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzQxLDYgKzM0
MSw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgTm90aWZ5UmV2ZWFsZWRTZWxl
Y3Rpb24oKQogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBTaG93SW5zcGVjdG9ySGlnaGxp
Z2h0KFdlYkNvcmU6OkhpZ2hsaWdodCBoaWdobGlnaHQpCisgICAgSGlkZUluc3BlY3RvckhpZ2hs
aWdodCgpCisKICAgICBTaG93SW5zcGVjdG9ySW5kaWNhdGlvbigpCiAgICAgSGlkZUluc3BlY3Rv
ckluZGljYXRpb24oKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggMzlkMGZiYS4uZGRkYjRhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTMyLDYg
KzEzMiw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFNpemUgY29udGVu
dHNTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIHZp
cnR1YWwgdm9pZCBzaG93SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdo
dCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBoaWRlSW5zcGVjdG9ySGlnaGxpZ2h0KCkg
b3ZlcnJpZGU7CisKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0luc3BlY3RvckluZGljYXRpb24oKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZUluc3BlY3RvckluZGljYXRpb24oKSBvdmVy
cmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW0KaW5kZXggOWUyY2NlNi4uMWJmY2QxMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC00ODUsNiArNDg1
LDE2IEBAIGJvb2wgUGFnZUNsaWVudEltcGw6OmhhbmRsZVJ1bk9wZW5QYW5lbChXZWJQYWdlUHJv
eHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViT3BlblBhCiB9CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd0luc3BlY3RvckhpZ2hsaWdodChjb25zdCBXZWJD
b3JlOjpIaWdobGlnaHQmIGhpZ2hsaWdodCkKK3sKKyAgICBbbV93ZWJWaWV3IF9zaG93SW5zcGVj
dG9ySGlnaGxpZ2h0OmhpZ2hsaWdodF07Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmhpZGVJ
bnNwZWN0b3JIaWdobGlnaHQoKQoreworICAgIFttX3dlYlZpZXcgX2hpZGVJbnNwZWN0b3JIaWdo
bGlnaHRdOworfQorCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzaG93SW5zcGVjdG9ySW5kaWNhdGlv
bigpCiB7CiAgICAgW21fd2ViVmlldyBfc2hvd0luc3BlY3RvckluZGljYXRpb25dOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaAppbmRleCA2YjM2ODE2Li45
NTFkODJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
aApAQCAtMzMsNiArMzMsMTAgQEAKIEBjbGFzcyBXS0NvbnRlbnRWaWV3OwogQGNsYXNzIFdLV2Vi
VmlldzsKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IEhpZ2hsaWdodDsKK30KKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5OwogY2xhc3MgRmluZEluZGlj
YXRvcjsKQEAgLTc0LDYgKzc4LDkgQEAgc3RydWN0IFdlYlBhZ2VDb25maWd1cmF0aW9uOwogLSAo
dm9pZClfZGlkUmVsYXVuY2hQcm9jZXNzOwogLSAodm9pZClfc2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ1Jvb3RWaWV3OihVSVZpZXcgKilyb290VmlldzsKIAorLSAodm9pZClfc2hvd0luc3BlY3Rv
ckhpZ2hsaWdodDooY29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0JiloaWdobGlnaHQ7CistICh2b2lk
KV9oaWRlSW5zcGVjdG9ySGlnaGxpZ2h0OworCiAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFp
bkZyYW1lOwogLSAodm9pZClfZGlkQ29tbWl0TGF5ZXJUcmVlOihjb25zdCBXZWJLaXQ6OlJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uJilsYXllclRyZWVUcmFuc2FjdGlvbjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IGNkZWM0NWMuLmQy
ODYzNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
bW0KQEAgLTMyLDIzICszMiwyNyBAQAogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5oIgogI2ltcG9ydCAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIgog
I2ltcG9ydCAiU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5oIgotI2ltcG9ydCAiV2ViS2l0
MkluaXRpYWxpemUuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVy
bmFsLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dEdyb3VwUHJpdmF0ZS5oIgogI2ltcG9y
dCAiV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLmgiCiAjaW1wb3J0ICJXS1ByZWZlcmVuY2VzSW50
ZXJuYWwuaCIKICNpbXBvcnQgIldLUHJvY2Vzc0dyb3VwUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tQ
cm9jZXNzUG9vbEludGVybmFsLmgiCi0jaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2lt
cG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oIgorI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJu
YWwuaCIKICNpbXBvcnQgIldlYkNvbnRleHQuaCIKICNpbXBvcnQgIldlYkZyYW1lUHJveHkuaCIK
KyNpbXBvcnQgIldlYktpdDJJbml0aWFsaXplLmgiCisjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRl
cmZhY2VJT1MuaCIKICNpbXBvcnQgIldlYlBhZ2VHcm91cC5oIgogI2ltcG9ydCAiV2ViU3lzdGVt
SW50ZXJmYWNlLmgiCi0jaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2VJT1MuaCIKKyNpbXBv
cnQgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3MuaD4KKyNpbXBvcnQgPFVJS2l0L1VJV2luZG93
X1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRRdWFkLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0ZyYW1lVmlldy5oPgorI2ltcG9ydCA8V2ViQ29yZS9HZW9tZXRyeVV0aWxpdGllcy5oPgor
I2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+Ci0jaW1wb3J0IDxVSUtpdC9VSVdpbmRvd19Qcml2YXRlLmg+CiAjaW1w
b3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAt
MTY5LDEyICsxNzMsMjUyIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3Qp
ZnJhbWUKIAogQGVuZAogCisKK0BpbnRlcmZhY2UgV0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3IDog
VUlWaWV3IHsKKyAgICBOU011dGFibGVBcnJheSAqX2xheWVyczsgLy8gQ0FTaGFwZUxheWVycy4K
K30KKy0gKHZvaWQpdXBkYXRlOihjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmKWhpZ2hsaWdodDsK
K0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLSW5zcGVjdG9ySGlnaGxpZ2h0VmlldworCistIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lCit7CisgICAgaWYgKCEoc2Vs
ZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lXSkpCisgICAgICAgIHJldHVybiBuaWw7Cisg
ICAgX2xheWVycyA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdOworICAgIHJldHVybiBz
ZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbc2VsZiBfcmVtb3ZlQWxsTGF5ZXJz
XTsKKyAgICBbX2xheWVycyByZWxlYXNlXTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0g
KHZvaWQpX3JlbW92ZUFsbExheWVycworeworICAgIGZvciAoQ0FTaGFwZUxheWVyICpsYXllciBp
biBfbGF5ZXJzKQorICAgICAgICBbbGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworICAgIFtf
bGF5ZXJzIHJlbW92ZUFsbE9iamVjdHNdOworfQorCistICh2b2lkKV9jcmVhdGVMYXllcnM6KE5T
VUludGVnZXIpbnVtTGF5ZXJzCit7CisgICAgaWYgKFtfbGF5ZXJzIGNvdW50XSA9PSBudW1MYXll
cnMpCisgICAgICAgIHJldHVybjsKKworICAgIFtzZWxmIF9yZW1vdmVBbGxMYXllcnNdOworCisg
ICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwOyBpIDwgbnVtTGF5ZXJzOyArK2kpIHsKKyAgICAgICAg
Q0FTaGFwZUxheWVyICpsYXllciA9IFtbQ0FTaGFwZUxheWVyIGFsbG9jXSBpbml0XTsKKyAgICAg
ICAgW19sYXllcnMgYWRkT2JqZWN0OmxheWVyXTsKKyAgICAgICAgW3NlbGYubGF5ZXIgYWRkU3Vi
bGF5ZXI6bGF5ZXJdOworICAgICAgICBbbGF5ZXIgcmVsZWFzZV07CisgICAgfQorfQorCitzdGF0
aWMgYm9vbCBmaW5kSW50ZXJzZWN0aW9uT25MaW5lQmV0d2VlblBvaW50cyhjb25zdCBGbG9hdFBv
aW50JiBwMSwgY29uc3QgRmxvYXRQb2ludCYgcDIsIGNvbnN0IEZsb2F0UG9pbnQmIGQxLCBjb25z
dCBGbG9hdFBvaW50JiBkMiwgRmxvYXRQb2ludCYgaW50ZXJzZWN0aW9uKSAKK3sKKyAgICAvLyBE
byB0aGUgbGluZXMgaW50ZXJzZWN0PworICAgIEZsb2F0UG9pbnQgdGVtcG9yYXJ5SW50ZXJzZWN0
aW9uUG9pbnQ7CisgICAgaWYgKCFmaW5kSW50ZXJzZWN0aW9uKHAxLCBwMiwgZDEsIGQyLCB0ZW1w
b3JhcnlJbnRlcnNlY3Rpb25Qb2ludCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8v
IElzIHRoZSBpbnRlcnNlY3Rpb24gYmV0d2VlbiB0aGUgdHdvIHBvaW50cyBvbiB0aGUgbGluZT8K
KyAgICBpZiAocDEueCgpID49IHAyLngoKSkgeworICAgICAgICBpZiAodGVtcG9yYXJ5SW50ZXJz
ZWN0aW9uUG9pbnQueCgpID4gcDEueCgpIHx8IHRlbXBvcmFyeUludGVyc2VjdGlvblBvaW50Lngo
KSA8IHAyLngoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBpZiAodGVtcG9yYXJ5SW50ZXJzZWN0aW9uUG9pbnQueCgpID4gcDIueCgpIHx8IHRlbXBv
cmFyeUludGVyc2VjdGlvblBvaW50LngoKSA8IHAxLngoKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisgICAgaWYgKHAxLnkoKSA+PSBwMi55KCkpIHsKKyAgICAgICAgaWYgKHRl
bXBvcmFyeUludGVyc2VjdGlvblBvaW50LnkoKSA+IHAxLnkoKSB8fCB0ZW1wb3JhcnlJbnRlcnNl
Y3Rpb25Qb2ludC55KCkgPCBwMi55KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgaWYgKHRlbXBvcmFyeUludGVyc2VjdGlvblBvaW50LnkoKSA+IHAy
LnkoKSB8fCB0ZW1wb3JhcnlJbnRlcnNlY3Rpb25Qb2ludC55KCkgPCBwMS55KCkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaW50ZXJzZWN0aW9uID0gdGVtcG9yYXJ5
SW50ZXJzZWN0aW9uUG9pbnQ7CisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vIFRoaXMgcXVhZCBp
bnRlcnNlY3Rpb24gd29ya3MgYmVjYXVzZSB0aGUgdHdvIHF1YWRzIGFyZSBrbm93biB0byBiZSBh
dCB0aGUgc2FtZQorLy8gcm90YXRpb24gYW5kIGNsb2Nrd2lzZS1uZXNzLgorc3RhdGljIEZsb2F0
UXVhZCBxdWFkSW50ZXJzZWN0aW9uKEZsb2F0UXVhZCBib3VuZHMsIEZsb2F0UXVhZCB0b0NsYW1w
KQoreworICAgIC8vIFJlc3VsdGluZyBwb2ludHMuCisgICAgRmxvYXRQb2ludCBwMSwgcDIsIHAz
LCBwNDsKKyAgICBib29sIGNvbnRhaW5zUG9pbnQxID0gZmFsc2U7CisgICAgYm9vbCBjb250YWlu
c1BvaW50MiA9IGZhbHNlOworICAgIGJvb2wgY29udGFpbnNQb2ludDMgPSBmYWxzZTsKKyAgICBi
b29sIGNvbnRhaW5zUG9pbnQ0ID0gZmFsc2U7CisgICAgYm9vbCBpbnRlcnNlY3RGb3JQb2ludDEg
PSBmYWxzZTsKKyAgICBib29sIGludGVyc2VjdEZvclBvaW50MiA9IGZhbHNlOworICAgIGJvb2wg
aW50ZXJzZWN0Rm9yUG9pbnQzID0gZmFsc2U7CisgICAgYm9vbCBpbnRlcnNlY3RGb3JQb2ludDQg
PSBmYWxzZTsKKworICAgIC8vIFRvcCAvIGJvdHRvbSB2ZXJ0aWNhbCBjbGFtcGluZy4KKyAgICBp
ZiAoYm91bmRzLmNvbnRhaW5zUG9pbnQodG9DbGFtcC5wMSgpKSkgeworICAgICAgICBjb250YWlu
c1BvaW50MSA9IHRydWU7CisgICAgICAgIHAxID0gdG9DbGFtcC5wMSgpOworICAgIH0gZWxzZSBp
ZiAoIShpbnRlcnNlY3RGb3JQb2ludDEgPSBmaW5kSW50ZXJzZWN0aW9uT25MaW5lQmV0d2VlblBv
aW50cyhib3VuZHMucDEoKSwgYm91bmRzLnAyKCksIHRvQ2xhbXAucDEoKSwgdG9DbGFtcC5wNCgp
LCBwMSkpKQorICAgICAgICBwMSA9IHRvQ2xhbXAucDEoKTsKKworICAgIGlmIChib3VuZHMuY29u
dGFpbnNQb2ludCh0b0NsYW1wLnAyKCkpKSB7CisgICAgICAgIGNvbnRhaW5zUG9pbnQyID0gdHJ1
ZTsKKyAgICAgICAgcDIgPSB0b0NsYW1wLnAyKCk7CisgICAgfSBlbHNlIGlmICghKGludGVyc2Vj
dEZvclBvaW50MiA9IGZpbmRJbnRlcnNlY3Rpb25PbkxpbmVCZXR3ZWVuUG9pbnRzKGJvdW5kcy5w
MSgpLCBib3VuZHMucDIoKSwgdG9DbGFtcC5wMigpLCB0b0NsYW1wLnAzKCksIHAyKSkpCisgICAg
ICAgIHAyID0gdG9DbGFtcC5wMigpOworCisgICAgaWYgKGJvdW5kcy5jb250YWluc1BvaW50KHRv
Q2xhbXAucDMoKSkpIHsKKyAgICAgICAgY29udGFpbnNQb2ludDMgPSB0cnVlOworICAgICAgICBw
MyA9IHRvQ2xhbXAucDMoKTsKKyAgICB9IGVsc2UgaWYgKCEoaW50ZXJzZWN0Rm9yUG9pbnQzID0g
ZmluZEludGVyc2VjdGlvbk9uTGluZUJldHdlZW5Qb2ludHMoYm91bmRzLnA0KCksIGJvdW5kcy5w
MygpLCB0b0NsYW1wLnAyKCksIHRvQ2xhbXAucDMoKSwgcDMpKSkKKyAgICAgICAgcDMgPSB0b0Ns
YW1wLnAzKCk7CisKKyAgICBpZiAoYm91bmRzLmNvbnRhaW5zUG9pbnQodG9DbGFtcC5wNCgpKSkg
eworICAgICAgICBjb250YWluc1BvaW50NCA9IHRydWU7CisgICAgICAgIHA0ID0gdG9DbGFtcC5w
NCgpOworICAgIH0gZWxzZSBpZiAoIShpbnRlcnNlY3RGb3JQb2ludDQgPSBmaW5kSW50ZXJzZWN0
aW9uT25MaW5lQmV0d2VlblBvaW50cyhib3VuZHMucDQoKSwgYm91bmRzLnAzKCksIHRvQ2xhbXAu
cDEoKSwgdG9DbGFtcC5wNCgpLCBwNCkpKQorICAgICAgICBwNCA9IHRvQ2xhbXAucDQoKTsKKwor
ICAgIC8vIElmIG9ubHkgb25lIG9mIHRoZSBwb2ludHMgaW50ZXJzZWN0ZWQgb24gZWl0aGVyIHRo
ZSB0b3Agb3IgYm90dG9tIGxpbmUgdGhlbiB3ZQorICAgIC8vIGNhbiBjbGFtcCB0aGUgb3RoZXIg
cG9pbnQgb24gdGhhdCBsaW5lIHRvIHRoZSBjb3JuZXIgb2YgdGhlIGJvdW5kcy4KKyAgICBpZiAo
IWNvbnRhaW5zUG9pbnQxICYmIGludGVyc2VjdEZvclBvaW50MiAmJiAhaW50ZXJzZWN0Rm9yUG9p
bnQxKSB7CisgICAgICAgIGNvbnRhaW5zUG9pbnQxID0gdHJ1ZTsKKyAgICAgICAgcDEgPSBib3Vu
ZHMucDEoKTsKKyAgICB9IGVsc2UgaWYgKCFjb250YWluc1BvaW50MiAmJiBpbnRlcnNlY3RGb3JQ
b2ludDEgJiYgIWludGVyc2VjdEZvclBvaW50MikgeworICAgICAgICBjb250YWluc1BvaW50MiA9
IHRydWU7CisgICAgICAgIHAyID0gYm91bmRzLnAyKCk7CisgICAgfQorICAgIGlmICghY29udGFp
bnNQb2ludDQgJiYgaW50ZXJzZWN0Rm9yUG9pbnQzICYmICFpbnRlcnNlY3RGb3JQb2ludDQpIHsK
KyAgICAgICAgY29udGFpbnNQb2ludDQgPSB0cnVlOworICAgICAgICBwNCA9IGJvdW5kcy5wNCgp
OworICAgIH0gZWxzZSBpZiAoIWNvbnRhaW5zUG9pbnQzICYmIGludGVyc2VjdEZvclBvaW50NCAm
JiAhaW50ZXJzZWN0Rm9yUG9pbnQzKSB7CisgICAgICAgIGNvbnRhaW5zUG9pbnQzID0gdHJ1ZTsK
KyAgICAgICAgcDMgPSBib3VuZHMucDMoKTsKKyAgICB9CisKKyAgICAvLyBOb3cgd2Ugb25seSBu
ZWVkIHRvIHBlcmZvcm0gaG9yaXpvbnRhbCBjbGFtcGluZyBmb3IgdW5hZGp1c3RlZCBwb2ludHMu
CisgICAgaWYgKCFjb250YWluc1BvaW50MiAmJiAhaW50ZXJzZWN0Rm9yUG9pbnQyKQorICAgICAg
ICBmaW5kSW50ZXJzZWN0aW9uT25MaW5lQmV0d2VlblBvaW50cyhib3VuZHMucDIoKSwgYm91bmRz
LnAzKCksIHAxLCBwMiwgcDIpOworICAgIGlmICghY29udGFpbnNQb2ludDMgJiYgIWludGVyc2Vj
dEZvclBvaW50MykKKyAgICAgICAgZmluZEludGVyc2VjdGlvbk9uTGluZUJldHdlZW5Qb2ludHMo
Ym91bmRzLnAyKCksIGJvdW5kcy5wMygpLCBwNCwgcDMsIHAzKTsKKyAgICBpZiAoIWNvbnRhaW5z
UG9pbnQxICYmICFpbnRlcnNlY3RGb3JQb2ludDEpCisgICAgICAgIGZpbmRJbnRlcnNlY3Rpb25P
bkxpbmVCZXR3ZWVuUG9pbnRzKGJvdW5kcy5wMSgpLCBib3VuZHMucDQoKSwgcDEsIHAyLCBwMSk7
CisgICAgaWYgKCFjb250YWluc1BvaW50NCAmJiAhaW50ZXJzZWN0Rm9yUG9pbnQ0KQorICAgICAg
ICBmaW5kSW50ZXJzZWN0aW9uT25MaW5lQmV0d2VlblBvaW50cyhib3VuZHMucDEoKSwgYm91bmRz
LnA0KCksIHA0LCBwMywgcDQpOworCisgICAgcmV0dXJuIEZsb2F0UXVhZChwMSwgcDIsIHAzLCBw
NCk7Cit9CisKK3N0YXRpYyB2b2lkIGxheWVyUGF0aFdpdGhIb2xlKENBU2hhcGVMYXllciAqbGF5
ZXIsIGNvbnN0IEZsb2F0UXVhZCYgb3V0ZXJRdWFkLCBjb25zdCBGbG9hdFF1YWQmIGhvbGVRdWFk
KQoreworICAgIC8vIE5vdGhpbmcgdG8gc2hvdy4KKyAgICBpZiAob3V0ZXJRdWFkID09IGhvbGVR
dWFkIHx8IGhvbGVRdWFkLmNvbnRhaW5zUXVhZChvdXRlclF1YWQpKSB7CisgICAgICAgIGxheWVy
LnBhdGggPSBOVUxMOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gSWYgdGhlcmUg
aXMgYSBuZWdhdGl2ZSBtYXJnaW4gLyBwYWRkaW5nIHRoZW4gdGhlIG91dGVyIGJveCBtaWdodCBu
b3QKKyAgICAvLyBmdWxseSBjb250YWluIHRoZSBob2xlIGJveC4gSW4gc3VjaCBjYXNlcyB3ZSBy
ZWNhbGN1bGF0ZSB0aGUgaG9sZSB0bworICAgIC8vIGJlIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhl
IHR3byBxdWFkcy4KKyAgICBGbG9hdFF1YWQgaW5uZXJIb2xlOworICAgIGlmIChvdXRlclF1YWQu
Y29udGFpbnNRdWFkKGhvbGVRdWFkKSkKKyAgICAgICAgaW5uZXJIb2xlID0gaG9sZVF1YWQ7Cisg
ICAgZWxzZQorICAgICAgICBpbm5lckhvbGUgPSBxdWFkSW50ZXJzZWN0aW9uKG91dGVyUXVhZCwg
aG9sZVF1YWQpOworCisgICAgLy8gQ2xvY2t3aXNlIGluc2lkZSByZWN0IChob2xlKSwgQ291bnRl
ci1DbG9ja3dpc2Ugb3V0c2lkZSByZWN0IChmaWxsKS4KKyAgICBDR011dGFibGVQYXRoUmVmIHBh
dGggPSBDR1BhdGhDcmVhdGVNdXRhYmxlKCk7CisgICAgQ0dQYXRoTW92ZVRvUG9pbnQocGF0aCwg
MCwgaW5uZXJIb2xlLnAxKCkueCgpLCBpbm5lckhvbGUucDEoKS55KCkpOworICAgIENHUGF0aEFk
ZExpbmVUb1BvaW50KHBhdGgsIDAsIGlubmVySG9sZS5wMigpLngoKSwgaW5uZXJIb2xlLnAyKCku
eSgpKTsKKyAgICBDR1BhdGhBZGRMaW5lVG9Qb2ludChwYXRoLCAwLCBpbm5lckhvbGUucDMoKS54
KCksIGlubmVySG9sZS5wMygpLnkoKSk7CisgICAgQ0dQYXRoQWRkTGluZVRvUG9pbnQocGF0aCwg
MCwgaW5uZXJIb2xlLnA0KCkueCgpLCBpbm5lckhvbGUucDQoKS55KCkpOworICAgIENHUGF0aE1v
dmVUb1BvaW50KHBhdGgsIDAsIG91dGVyUXVhZC5wMSgpLngoKSwgb3V0ZXJRdWFkLnAxKCkueSgp
KTsKKyAgICBDR1BhdGhBZGRMaW5lVG9Qb2ludChwYXRoLCAwLCBvdXRlclF1YWQucDQoKS54KCks
IG91dGVyUXVhZC5wNCgpLnkoKSk7CisgICAgQ0dQYXRoQWRkTGluZVRvUG9pbnQocGF0aCwgMCwg
b3V0ZXJRdWFkLnAzKCkueCgpLCBvdXRlclF1YWQucDMoKS55KCkpOworICAgIENHUGF0aEFkZExp
bmVUb1BvaW50KHBhdGgsIDAsIG91dGVyUXVhZC5wMigpLngoKSwgb3V0ZXJRdWFkLnAyKCkueSgp
KTsKKyAgICBsYXllci5wYXRoID0gcGF0aDsKKyAgICBDR1BhdGhSZWxlYXNlKHBhdGgpOworfQor
CitzdGF0aWMgdm9pZCBsYXllclBhdGgoQ0FTaGFwZUxheWVyICpsYXllciwgY29uc3QgRmxvYXRR
dWFkJiBvdXRlclF1YWQpCit7CisgICAgQ0dNdXRhYmxlUGF0aFJlZiBwYXRoID0gQ0dQYXRoQ3Jl
YXRlTXV0YWJsZSgpOworICAgIENHUGF0aE1vdmVUb1BvaW50KHBhdGgsIDAsIG91dGVyUXVhZC5w
MSgpLngoKSwgb3V0ZXJRdWFkLnAxKCkueSgpKTsKKyAgICBDR1BhdGhBZGRMaW5lVG9Qb2ludChw
YXRoLCAwLCBvdXRlclF1YWQucDQoKS54KCksIG91dGVyUXVhZC5wNCgpLnkoKSk7CisgICAgQ0dQ
YXRoQWRkTGluZVRvUG9pbnQocGF0aCwgMCwgb3V0ZXJRdWFkLnAzKCkueCgpLCBvdXRlclF1YWQu
cDMoKS55KCkpOworICAgIENHUGF0aEFkZExpbmVUb1BvaW50KHBhdGgsIDAsIG91dGVyUXVhZC5w
MigpLngoKSwgb3V0ZXJRdWFkLnAyKCkueSgpKTsKKyAgICBsYXllci5wYXRoID0gcGF0aDsKKyAg
ICBDR1BhdGhSZWxlYXNlKHBhdGgpOworfQorCistICh2b2lkKV9sYXlvdXRGb3JOb2RlSGlnaGxp
Z2h0Oihjb25zdCBIaWdobGlnaHQmKWhpZ2hsaWdodAoreworICAgIFtzZWxmIF9jcmVhdGVMYXll
cnM6NF07CisKKyAgICBDQVNoYXBlTGF5ZXIgKm1hcmdpbkxheWVyID0gW19sYXllcnMgb2JqZWN0
QXRJbmRleDowXTsKKyAgICBDQVNoYXBlTGF5ZXIgKmJvcmRlckxheWVyID0gW19sYXllcnMgb2Jq
ZWN0QXRJbmRleDoxXTsKKyAgICBDQVNoYXBlTGF5ZXIgKnBhZGRpbmdMYXllciA9IFtfbGF5ZXJz
IG9iamVjdEF0SW5kZXg6Ml07CisgICAgQ0FTaGFwZUxheWVyICpjb250ZW50TGF5ZXIgPSBbX2xh
eWVycyBvYmplY3RBdEluZGV4OjNdOworCisgICAgRmxvYXRRdWFkIG1hcmdpblF1YWQgPSBoaWdo
bGlnaHQucXVhZHNbMF07CisgICAgRmxvYXRRdWFkIGJvcmRlclF1YWQgPSBoaWdobGlnaHQucXVh
ZHNbMV07CisgICAgRmxvYXRRdWFkIHBhZGRpbmdRdWFkID0gaGlnaGxpZ2h0LnF1YWRzWzJdOwor
ICAgIEZsb2F0UXVhZCBjb250ZW50UXVhZCA9IGhpZ2hsaWdodC5xdWFkc1szXTsKKworICAgIG1h
cmdpbkxheWVyLmZpbGxDb2xvciA9IGNhY2hlZENHQ29sb3IoaGlnaGxpZ2h0Lm1hcmdpbkNvbG9y
LCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICBib3JkZXJMYXllci5maWxsQ29sb3IgPSBjYWNo
ZWRDR0NvbG9yKGhpZ2hsaWdodC5ib3JkZXJDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7Cisg
ICAgcGFkZGluZ0xheWVyLmZpbGxDb2xvciA9IGNhY2hlZENHQ29sb3IoaGlnaGxpZ2h0LnBhZGRp
bmdDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgY29udGVudExheWVyLmZpbGxDb2xv
ciA9IGNhY2hlZENHQ29sb3IoaGlnaGxpZ2h0LmNvbnRlbnRDb2xvciwgQ29sb3JTcGFjZURldmlj
ZVJHQik7CisKKyAgICBsYXllclBhdGhXaXRoSG9sZShtYXJnaW5MYXllciwgbWFyZ2luUXVhZCwg
Ym9yZGVyUXVhZCk7CisgICAgbGF5ZXJQYXRoV2l0aEhvbGUoYm9yZGVyTGF5ZXIsIGJvcmRlclF1
YWQsIHBhZGRpbmdRdWFkKTsKKyAgICBsYXllclBhdGhXaXRoSG9sZShwYWRkaW5nTGF5ZXIsIHBh
ZGRpbmdRdWFkLCBjb250ZW50UXVhZCk7CisgICAgbGF5ZXJQYXRoKGNvbnRlbnRMYXllciwgY29u
dGVudFF1YWQpOworfQorCistICh2b2lkKV9sYXlvdXRGb3JSZWN0c0hpZ2hsaWdodDooY29uc3Qg
SGlnaGxpZ2h0JiloaWdobGlnaHQKK3sKKyAgICBOU1VJbnRlZ2VyIG51bUxheWVycyA9IChOU1VJ
bnRlZ2VyKWhpZ2hsaWdodC5xdWFkcy5zaXplKCk7CisgICAgaWYgKCFudW1MYXllcnMpIHsKKyAg
ICAgICAgW3NlbGYgX3JlbW92ZUFsbExheWVyc107CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBbc2VsZiBfY3JlYXRlTGF5ZXJzOm51bUxheWVyc107CisKKyAgICBDR0NvbG9yUmVmIGNv
bnRlbnRDb2xvciA9IGNhY2hlZENHQ29sb3IoaGlnaGxpZ2h0LmNvbnRlbnRDb2xvciwgQ29sb3JT
cGFjZURldmljZVJHQik7CisgICAgZm9yIChOU1VJbnRlZ2VyIGkgPSAwOyBpIDwgbnVtTGF5ZXJz
OyArK2kpIHsKKyAgICAgICAgQ0FTaGFwZUxheWVyICpsYXllciA9IFtfbGF5ZXJzIG9iamVjdEF0
SW5kZXg6aV07CisgICAgICAgIGxheWVyLmZpbGxDb2xvciA9IGNvbnRlbnRDb2xvcjsKKyAgICAg
ICAgbGF5ZXJQYXRoKGxheWVyLCBoaWdobGlnaHQucXVhZHNbaV0pOworICAgIH0KK30KKworLSAo
dm9pZCl1cGRhdGU6KGNvbnN0IEhpZ2hsaWdodCYpaGlnaGxpZ2h0Cit7CisgICAgaWYgKGhpZ2hs
aWdodC50eXBlID09IEhpZ2hsaWdodFR5cGVOb2RlKQorICAgICAgICBbc2VsZiBfbGF5b3V0Rm9y
Tm9kZUhpZ2hsaWdodDpoaWdobGlnaHRdOworICAgIGVsc2UgaWYgKGhpZ2hsaWdodC50eXBlID09
IEhpZ2hsaWdodFR5cGVSZWN0cykKKyAgICAgICAgW3NlbGYgX2xheW91dEZvclJlY3RzSGlnaGxp
Z2h0OmhpZ2hsaWdodF07Cit9CisKK0BlbmQKKworCiBAaW1wbGVtZW50YXRpb24gV0tDb250ZW50
VmlldyB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2VDbGllbnRJbXBsPiBfcGFnZUNsaWVudDsK
ICAgICBSZXRhaW5QdHI8V0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyPiBfYnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlcjsKIAogICAgIFJldGFpblB0cjxVSVZpZXc+IF9yb290Q29udGVudFZpZXc7
CiAgICAgUmV0YWluUHRyPFdLSW5zcGVjdG9ySW5kaWNhdGlvblZpZXc+IF9pbnNwZWN0b3JJbmRp
Y2F0aW9uVmlldzsKKyAgICBSZXRhaW5QdHI8V0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3PiBfaW5z
cGVjdG9ySGlnaGxpZ2h0VmlldzsKIAogICAgIEhpc3RvcmljYWxWZWxvY2l0eURhdGEgX2hpc3Rv
cmljYWxLaW5lbWF0aWNEYXRhOwogfQpAQCAtMjcxLDYgKzUxNSwyNCBAQCAtIChCT09MKWlzQXNz
aXN0aW5nTm9kZQogICAgIHJldHVybiBbc2VsZiBpc0VkaXRhYmxlXTsKIH0KIAorLSAodm9pZClf
c2hvd0luc3BlY3RvckhpZ2hsaWdodDooY29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0JiloaWdobGln
aHQKK3sKKyAgICBpZiAoIV9pbnNwZWN0b3JIaWdobGlnaHRWaWV3KSB7CisgICAgICAgIF9pbnNw
ZWN0b3JIaWdobGlnaHRWaWV3ID0gYWRvcHROUyhbW1dLSW5zcGVjdG9ySGlnaGxpZ2h0VmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvXSk7CisgICAgICAgIFtzZWxmIGluc2VydFN1
YnZpZXc6X2luc3BlY3RvckhpZ2hsaWdodFZpZXcuZ2V0KCkgYWJvdmVTdWJ2aWV3Ol9yb290Q29u
dGVudFZpZXcuZ2V0KCldOworICAgIH0KKworICAgIFtfaW5zcGVjdG9ySGlnaGxpZ2h0VmlldyB1
cGRhdGU6aGlnaGxpZ2h0XTsKK30KKworLSAodm9pZClfaGlkZUluc3BlY3RvckhpZ2hsaWdodAor
eworICAgIGlmIChfaW5zcGVjdG9ySGlnaGxpZ2h0VmlldykgeworICAgICAgICBbX2luc3BlY3Rv
ckhpZ2hsaWdodFZpZXcgcmVtb3ZlRnJvbVN1cGVydmlld107CisgICAgICAgIF9pbnNwZWN0b3JI
aWdobGlnaHRWaWV3ID0gbmlsOworICAgIH0KK30KKwogLSAoQk9PTClpc1Nob3dpbmdJbnNwZWN0
b3JJbmRpY2F0aW9uCiB7CiAgICAgcmV0dXJuICEhX2luc3BlY3RvckluZGljYXRpb25WaWV3Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRl
eCAxOTFlYjMxLi4xM2IxNDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtNjQ2LDYgKzY0NiwxNiBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6c3RvcEFzc2lzdGluZ05vZGUoKQogfQogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKK3ZvaWQg
V2ViUGFnZVByb3h5OjpzaG93SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6OkhpZ2hs
aWdodCYgaGlnaGxpZ2h0KQoreworICAgIG1fcGFnZUNsaWVudC5zaG93SW5zcGVjdG9ySGlnaGxp
Z2h0KGhpZ2hsaWdodCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpoaWRlSW5zcGVjdG9ySGln
aGxpZ2h0KCkKK3sKKyAgICBtX3BhZ2VDbGllbnQuaGlkZUluc3BlY3RvckhpZ2hsaWdodCgpOwor
fQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0luc3BlY3RvckluZGljYXRpb24oKQogewogICAg
IG1fcGFnZUNsaWVudC5zaG93SW5zcGVjdG9ySW5kaWNhdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnQuY3BwCmluZGV4IGVhZTA0MzYuLjZjZmM5MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3Rv
ckNsaWVudC5jcHAKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0
b3JDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAKKyNpZiBQTEFURk9S
TShJT1MpCisjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+CisjZW5kaWYKKwog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjksNiAr
NzMsNyBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6ZGlkUmVzaXplTWFpbkZyYW1lKEZyYW1l
KikKIAogdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmhpZ2hsaWdodCgpCiB7CisjaWYgIVBMQVRG
T1JNKElPUykKICAgICBpZiAoIW1faGlnaGxpZ2h0T3ZlcmxheSkgewogICAgICAgICBSZWZQdHI8
UGFnZU92ZXJsYXk+IGhpZ2hsaWdodE92ZXJsYXkgPSBQYWdlT3ZlcmxheTo6Y3JlYXRlKHRoaXMp
OwogICAgICAgICBtX2hpZ2hsaWdodE92ZXJsYXkgPSBoaWdobGlnaHRPdmVybGF5LmdldCgpOwpA
QCAtNzgsMTIgKzgzLDIxIEBAIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpoaWdobGlnaHQoKQog
ICAgICAgICBtX2hpZ2hsaWdodE92ZXJsYXktPnN0b3BGYWRlT3V0QW5pbWF0aW9uKCk7CiAgICAg
ICAgIG1faGlnaGxpZ2h0T3ZlcmxheS0+c2V0TmVlZHNEaXNwbGF5KCk7CiAgICAgfQorI2Vsc2UK
KyAgICBIaWdobGlnaHQgaGlnaGxpZ2h0OworICAgIG1fcGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLmdldEhpZ2hsaWdodCgmaGlnaGxpZ2h0LCBJbnNwZWN0b3JPdmVybGF5
OjpDb29yZGluYXRlU3lzdGVtOjpEb2N1bWVudCk7CisgICAgbV9wYWdlLT5zaG93SW5zcGVjdG9y
SGlnaGxpZ2h0KGhpZ2hsaWdodCk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JDbGll
bnQ6OmhpZGVIaWdobGlnaHQoKQogeworI2lmICFQTEFURk9STShJT1MpCiAgICAgaWYgKG1faGln
aGxpZ2h0T3ZlcmxheSkKICAgICAgICAgbV9wYWdlLT51bmluc3RhbGxQYWdlT3ZlcmxheShtX2hp
Z2hsaWdodE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CisjZWxzZQorICAg
IG1fcGFnZS0+aGlkZUluc3BlY3RvckhpZ2hsaWdodCgpOworI2VuZGlmCiB9CiAKICNpZiBQTEFU
Rk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCA3ZjMyOWRjLi5mOTY1NWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKQEAgLTEzMSw2ICsxMzEsNyBAQCBjbGFzcyBTdWJzdGl0dXRlRGF0YTsK
IGNsYXNzIFRleHRDaGVja2luZ1JlcXVlc3Q7CiBjbGFzcyBVUkw7CiBjbGFzcyBWaXNpYmxlU2Vs
ZWN0aW9uOworc3RydWN0IEhpZ2hsaWdodDsKIHN0cnVjdCBLZXlwcmVzc0NvbW1hbmQ7CiBzdHJ1
Y3QgVGV4dENoZWNraW5nUmVzdWx0OwogfQpAQCAtNTA3LDYgKzUwOCw5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpc3BhdGNoQXN5bmNocm9ub3VzVG91Y2hFdmVudHMoY29uc3QgVmVjdG9yPFdlYlRv
dWNoRXZlbnQsIDE+JiBxdWV1ZSk7CiAgICAgdm9pZCBjb250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hh
bmdlKGNvbnN0IFN0cmluZyYpOwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgdm9pZCBzaG93
SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdodCYpOworICAgIHZvaWQg
aGlkZUluc3BlY3RvckhpZ2hsaWdodCgpOworCiAgICAgdm9pZCBzaG93SW5zcGVjdG9ySW5kaWNh
dGlvbigpOwogICAgIHZvaWQgaGlkZUluc3BlY3RvckluZGljYXRpb24oKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CmluZGV4IDQ0OTAwM2QuLmQ5ZDg4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTYxMiw2ICs2MTIsMTYgQEAgdm9p
ZCBXZWJQYWdlOjpzZXRBc3Npc3RlZE5vZGVTZWxlY3RlZEluZGV4KHVpbnQzMl90IGluZGV4LCBi
b29sIGFsbG93TXVsdGlwbGVTZWwKIH0KIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCit2b2lkIFdl
YlBhZ2U6OnNob3dJbnNwZWN0b3JIaWdobGlnaHQoY29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0JiBo
aWdobGlnaHQpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93SW5zcGVj
dG9ySGlnaGxpZ2h0KGhpZ2hsaWdodCkpOworfQorCit2b2lkIFdlYlBhZ2U6OmhpZGVJbnNwZWN0
b3JIaWdobGlnaHQoKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SGlkZUlu
c3BlY3RvckhpZ2hsaWdodCgpKTsKK30KKwogdm9pZCBXZWJQYWdlOjpzaG93SW5zcGVjdG9ySW5k
aWNhdGlvbigpCiB7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93SW5zcGVj
dG9ySW5kaWNhdGlvbigpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>