<?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>164694</bug_id>
          
          <creation_ts>2016-11-12 17:11:22 -0800</creation_ts>
          <short_desc>[iOS WK2] Share some code with Mac for post-async-scroll state reconciliation</short_desc>
          <delta_ts>2016-11-12 19:30:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jamesr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1250753</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-12 17:11:22 -0800</bug_when>
    <thetext>[iOS WK2] Share some code with Mac for post-async-scroll state reconciliation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250754</commentid>
    <comment_count>1</comment_count>
      <attachid>294644</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-12 17:21:00 -0800</bug_when>
    <thetext>Created attachment 294644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250755</commentid>
    <comment_count>2</comment_count>
      <attachid>294645</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-12 17:53:15 -0800</bug_when>
    <thetext>Created attachment 294645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250768</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-12 19:30:00 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/208662</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294644</attachid>
            <date>2016-11-12 17:21:00 -0800</date>
            <delta_ts>2016-11-12 17:32:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164694-20161112171644.patch</filename>
            <type>text/plain</type>
            <size>31374</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZlOTAwNTBkZWVjM2Rl
ZmUxM2MyZTk5NTRkNzRmOTJhOGIyOWNiNi4uMDc1NjliZDIwYzExNzBmNzQ1NDA4OGJjZmU3YjZl
OWMzNjU5MGRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE2LTExLTEyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgV0syXSBT
aGFyZSBzb21lIGNvZGUgd2l0aCBNYWMgZm9yIHBvc3QtYXN5bmMtc2Nyb2xsIHN0YXRlIHJlY29u
Y2lsaWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjQ2OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXaGVuIGFuIGFzeW5jIHNjcm9sbCBub3RpZmljYXRpb25zIGdldCBiYWNrIHRvIHRoZSBtYWlu
IHRocmVhZCBpbgorICAgICAgICBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3Jv
bGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoKSwgd2UgY2FsbCAKKyAgICAgICAgc3luY1ZpZXdw
b3J0Q29uc3RyYWluZWRMYXllclBvc2l0aW9ucygpIHRvIHBva2UgdGhlIG5ldyBsYXllciBwb3Np
dGlvbnMgb24gdGhlCisgICAgICAgIEdyYXBoaWNzTGF5ZXJzIHRvIG1hdGNoIHRoZSBjaGFuZ2Vz
IG1hZGUgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQuCisKKyAgICAgICAgSG93ZXZlciwgdGhpcyB3
YXMgbm90IGRvbmUgb24gaU9TLCB3aGljaCB3aWxsIGJlIHByb2JsZW1hdGljIGZvciBhIGZ1dHVy
ZSBwYXRjaAorICAgICAgICB3aGVyZSB3ZSByZXF1aXJlIEdyYXBoaWNzTGF5ZXIgcG9zaXRpb25z
IGFuZCB0aGUgY3VycmVudCBmaXhlZFBvc2l0aW9uVmlld3BvcnQgcmVjdAorICAgICAgICB0byBo
YXZlIGJlZW4gY29tcHV0ZWQgd2hlbiBpbiBhIGNvbnNpc3RlbnQgc3RhdGUuCisKKyAgICAgICAg
Rml4IGJ5IGZhY3RvcmluZyBzb21lIGNvZGUgaW50byByZWNvbmNpbGVTY3JvbGxpbmdTdGF0ZSgp
LCB3aGljaCBpcyBjYWxsZWQgb24gaU9TL1dLMgorICAgICAgICBmcm9tIFdlYlBhZ2U6OnVwZGF0
ZVZpc2libGVDb250ZW50UmVjdHMoKSByYXRoZXIgdGhhbiBzZXR0aW5nIHRoZSBGcmFtZVZpZXcn
cyBzY3JvbGwgb2Zmc2V0CisgICAgICAgIGRpcmVjdGx5LgorCisgICAgICAgIFRlc3Q6IHNjcm9s
bGluZ2Nvb3JkaW5hdG9yL2lvcy9zeW5jLWxheWVyLXBvc2l0aW9ucy1hZnRlci1zY3JvbGwuaHRt
bAorCisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2hlZWxFdmVudERlbHRhRmlsdGVyOjpmaWx0ZXJlZERlbHRhKToKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9u
QWZ0ZXJBc3luY1Njcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpyZWNvbmNpbGVTY3JvbGxpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzeW5jVmlld3BvcnRDb25zdHJhaW5lZExheWVyUG9zaXRp
b25zKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmND
aGlsZFBvc2l0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6
cmVjb25jaWxlU2Nyb2xsaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29v
cmRpbmF0b3I6OnN5bmNWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJQb3NpdGlvbnMpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNDaGlsZFBvc2l0aW9ucyk6IERl
bGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlOjpsYXlvdXRWaWV3cG9ydEZvclNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxPZmZzZXQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRpbGVDb250cm9sbGVyOjphZGp1c3RUaWxlQ292ZXJhZ2VSZWN0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVw
ZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJEb2N1bWVudFNjcm9sbCk6CisKIDIwMTYtMTEtMTAgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5mQGdtYWlsLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbVRy
YWNrIHNob3VsZCB1c2UgbW9yZSBSZWY8PiBhbmQgbGVzcyBSZWZQdHI8PgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDE5Y2M4MTIzY2E0MjUyOWRmZWMzOTViMGRmMTUyOTIzYWUxNzY1NDkuLjQ0OTY3Y2EzZmQ2NjYx
YzA3NmY3Nzc3YmNjNDMzZDIwMmUwNTJlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxNi0xMS0xMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAg
ICAgICBbaU9TIFdLMl0gU2hhcmUgc29tZSBjb2RlIHdpdGggTWFjIGZvciBwb3N0LWFzeW5jLXNj
cm9sbCBzdGF0ZSByZWNvbmNpbGlhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY0Njk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmF0aGVyIHRoYW4gY2FsbGluZyBGcmFtZVZpZXcgZGlyZWN0bHks
IGNhbGwgcmVjb25jaWxlU2Nyb2xsaW5nU3RhdGUoKSBvbiB0aGUgc2Nyb2xsaW5nCisgICAgICAg
IGNvb3JkaW5hdG9yLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJl
Y3RzKToKKwogMjAxNi0xMS0xMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0xpbnV4XSBNZW1vcnkgcHJvY2VzcyB2YWx1ZXMgc2hvd24gYnkg
dGhlIFdlYk1lbW9yeVNhbXBsZXIgaW4gbGludXggYXJlIHdyb25nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5jcHAKaW5kZXggNGQ3MGJiZmM2ODlhOTAxZTJm
YTRlZTFkNDgyY2IxODM0Yzk4OTBmOS4uMDBmMjYzZmY5NGQyYTMzOGU5OTEzOTg3YWMzMmRhMTVl
MjBmYzY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50RGVsdGFG
aWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVy
LmNwcApAQCAtNjAsNyArNjAsNiBAQCBib29sIFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6aXNGaWx0
ZXJpbmdEZWx0YXMoKSBjb25zdAogCiBGbG9hdFNpemUgV2hlZWxFdmVudERlbHRhRmlsdGVyOjpm
aWx0ZXJlZERlbHRhKCkgY29uc3QKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBz
dHJlYW0gPDwgIkJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyOjpmaWx0ZXJlZERlbHRhIHJldHVy
bmluZyAiIDw8IG1fY3VycmVudEZpbHRlcmVkRGVsdGEpOwogICAgIHJldHVybiBtX2N1cnJlbnRG
aWx0ZXJlZERlbHRhOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDI1NjZkZDI5Mzdm
MGE2ZTc1NTcyM2ZlZTdkYmZhMjY1YTEyOGIyMzYuLjFjNTc1ZDcwY2IyNjgyMzAwYmEyNzc5ZGY0
N2QzYjRjZmFmMmE0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC00NCw2ICs0NCw3IEBA
CiAjaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmgiCiAjaW5jbHVkZSAiU2Nyb2xs
aW5nU3RhdGVUcmVlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJUZXh0U3Ry
ZWFtLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTMwNyw3NCArMzA4LDEyIEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05vCiAg
ICAgaWYgKCFmcmFtZVZpZXdQdHIpCiAgICAgICAgIHJldHVybjsKIAorICAgIExPR19XSVRIX1NU
UkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBk
YXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsIG5vZGUgIiA8PCBzY3JvbGxpbmdOb2Rl
SUQgPDwgIiBzY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uIDw8IChzY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uID09IFNldFNjcm9sbGluZ0xheWVyUG9zaXRpb24gPyAiIHNldCIg
OiAiIHN5bmMiKSA8PCAiIGxheWVyIHBvc2l0aW9ucyIpOworCiAgICAgRnJhbWVWaWV3JiBmcmFt
ZVZpZXcgPSAqZnJhbWVWaWV3UHRyOwogCiAgICAgaWYgKHNjcm9sbGluZ05vZGVJRCA9PSBmcmFt
ZVZpZXcuc2Nyb2xsTGF5ZXJJRCgpKSB7Ci0gICAgICAgIGJvb2wgb2xkUHJvZ3JhbW1hdGljU2Ny
b2xsID0gZnJhbWVWaWV3LmluUHJvZ3JhbW1hdGljU2Nyb2xsKCk7Ci0gICAgICAgIGZyYW1lVmll
dy5zZXRJblByb2dyYW1tYXRpY1Njcm9sbChwcm9ncmFtbWF0aWNTY3JvbGwpOwotCi0gICAgICAg
IGlmIChsYXlvdXRWaWV3cG9ydE9yaWdpbikKLSAgICAgICAgICAgIGZyYW1lVmlldy5zZXRMYXlv
dXRWaWV3cG9ydE9yaWdpbihMYXlvdXRQb2ludChsYXlvdXRWaWV3cG9ydE9yaWdpbi52YWx1ZSgp
KSwgRnJhbWVWaWV3OjpUcmlnZ2VyTGF5b3V0T3JOb3Q6Ok5vKTsKLQotICAgICAgICBmcmFtZVZp
ZXcuc2V0Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UoZmFsc2UpOwotICAgICAgICBm
cmFtZVZpZXcubm90aWZ5U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHJvdW5kZWRJbnRQb2ludChzY3Jv
bGxQb3NpdGlvbikpOwotICAgICAgICBmcmFtZVZpZXcuc2V0Q29uc3RyYWluc1Njcm9sbGluZ1Rv
Q29udGVudEVkZ2UodHJ1ZSk7Ci0gICAgICAgIGZyYW1lVmlldy5zZXRJblByb2dyYW1tYXRpY1Nj
cm9sbChvbGRQcm9ncmFtbWF0aWNTY3JvbGwpOwotCi0gICAgICAgIGlmIChHcmFwaGljc0xheWVy
KiBzY3JvbGxMYXllciA9IHNjcm9sbExheWVyRm9yRnJhbWVWaWV3KGZyYW1lVmlldykpIHsKLSAg
ICAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGNvdW50ZXJTY3JvbGxpbmdMYXllciA9IGNvdW50ZXJT
Y3JvbGxpbmdMYXllckZvckZyYW1lVmlldyhmcmFtZVZpZXcpOwotICAgICAgICAgICAgR3JhcGhp
Y3NMYXllciogaW5zZXRDbGlwTGF5ZXIgPSBpbnNldENsaXBMYXllckZvckZyYW1lVmlldyhmcmFt
ZVZpZXcpOwotICAgICAgICAgICAgR3JhcGhpY3NMYXllciogY29udGVudFNoYWRvd0xheWVyID0g
Y29udGVudFNoYWRvd0xheWVyRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7Ci0gICAgICAgICAgICBH
cmFwaGljc0xheWVyKiBzY3JvbGxlZENvbnRlbnRzTGF5ZXIgPSByb290Q29udGVudExheWVyRm9y
RnJhbWVWaWV3KGZyYW1lVmlldyk7Ci0gICAgICAgICAgICBHcmFwaGljc0xheWVyKiBoZWFkZXJM
YXllciA9IGhlYWRlckxheWVyRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7Ci0gICAgICAgICAgICBH
cmFwaGljc0xheWVyKiBmb290ZXJMYXllciA9IGZvb3RlckxheWVyRm9yRnJhbWVWaWV3KGZyYW1l
Vmlldyk7Ci0KLSAgICAgICAgICAgIEFTU0VSVChmcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb24oKSA9
PSByb3VuZGVkSW50UG9pbnQoc2Nyb2xsUG9zaXRpb24pKTsKLSAgICAgICAgICAgIExheW91dFBv
aW50IHNjcm9sbFBvc2l0aW9uRm9yRml4ZWQgPSB2aXN1YWxWaWV3cG9ydEVuYWJsZWQoKSA/IGZy
YW1lVmlldy5sYXlvdXRWaWV3cG9ydE9yaWdpbigpIDogZnJhbWVWaWV3LnNjcm9sbFBvc2l0aW9u
Rm9yRml4ZWRQb3NpdGlvbigpOwotICAgICAgICAgICAgZmxvYXQgdG9wQ29udGVudEluc2V0ID0g
ZnJhbWVWaWV3LnRvcENvbnRlbnRJbnNldCgpOwotCi0gICAgICAgICAgICBGbG9hdFBvaW50IHBv
c2l0aW9uRm9ySW5zZXRDbGlwTGF5ZXI7Ci0gICAgICAgICAgICBpZiAoaW5zZXRDbGlwTGF5ZXIp
Ci0gICAgICAgICAgICAgICAgcG9zaXRpb25Gb3JJbnNldENsaXBMYXllciA9IEZsb2F0UG9pbnQo
aW5zZXRDbGlwTGF5ZXItPnBvc2l0aW9uKCkueCgpLCBGcmFtZVZpZXc6OnlQb3NpdGlvbkZvcklu
c2V0Q2xpcExheWVyKHNjcm9sbFBvc2l0aW9uLCB0b3BDb250ZW50SW5zZXQpKTsKLSAgICAgICAg
ICAgIEZsb2F0UG9pbnQgcG9zaXRpb25Gb3JDb250ZW50c0xheWVyID0gZnJhbWVWaWV3LnBvc2l0
aW9uRm9yUm9vdENvbnRlbnRMYXllcigpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBGbG9h
dFBvaW50IHBvc2l0aW9uRm9ySGVhZGVyTGF5ZXIgPSBGbG9hdFBvaW50KHNjcm9sbFBvc2l0aW9u
Rm9yRml4ZWQueCgpLCBGcmFtZVZpZXc6OnlQb3NpdGlvbkZvckhlYWRlckxheWVyKHNjcm9sbFBv
c2l0aW9uLCB0b3BDb250ZW50SW5zZXQpKTsKLSAgICAgICAgICAgIEZsb2F0UG9pbnQgcG9zaXRp
b25Gb3JGb290ZXJMYXllciA9IEZsb2F0UG9pbnQoc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZC54KCks
Ci0gICAgICAgICAgICAgICAgRnJhbWVWaWV3Ojp5UG9zaXRpb25Gb3JGb290ZXJMYXllcihzY3Jv
bGxQb3NpdGlvbiwgdG9wQ29udGVudEluc2V0LCBmcmFtZVZpZXcudG90YWxDb250ZW50c1NpemUo
KS5oZWlnaHQoKSwgZnJhbWVWaWV3LmZvb3RlckhlaWdodCgpKSk7Ci0KLSAgICAgICAgICAgIGlm
IChwcm9ncmFtbWF0aWNTY3JvbGwgfHwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9PSBT
ZXRTY3JvbGxpbmdMYXllclBvc2l0aW9uKSB7Ci0gICAgICAgICAgICAgICAgc2Nyb2xsTGF5ZXIt
PnNldFBvc2l0aW9uKC1mcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb24oKSk7Ci0gICAgICAgICAgICAg
ICAgaWYgKGNvdW50ZXJTY3JvbGxpbmdMYXllcikKLSAgICAgICAgICAgICAgICAgICAgY291bnRl
clNjcm9sbGluZ0xheWVyLT5zZXRQb3NpdGlvbihzY3JvbGxQb3NpdGlvbkZvckZpeGVkKTsKLSAg
ICAgICAgICAgICAgICBpZiAoaW5zZXRDbGlwTGF5ZXIpCi0gICAgICAgICAgICAgICAgICAgIGlu
c2V0Q2xpcExheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckluc2V0Q2xpcExheWVyKTsKLSAg
ICAgICAgICAgICAgICBpZiAoY29udGVudFNoYWRvd0xheWVyKQotICAgICAgICAgICAgICAgICAg
ICBjb250ZW50U2hhZG93TGF5ZXItPnNldFBvc2l0aW9uKHBvc2l0aW9uRm9yQ29udGVudHNMYXll
cik7Ci0gICAgICAgICAgICAgICAgaWYgKHNjcm9sbGVkQ29udGVudHNMYXllcikKLSAgICAgICAg
ICAgICAgICAgICAgc2Nyb2xsZWRDb250ZW50c0xheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZv
ckNvbnRlbnRzTGF5ZXIpOwotICAgICAgICAgICAgICAgIGlmIChoZWFkZXJMYXllcikKLSAgICAg
ICAgICAgICAgICAgICAgaGVhZGVyTGF5ZXItPnNldFBvc2l0aW9uKHBvc2l0aW9uRm9ySGVhZGVy
TGF5ZXIpOwotICAgICAgICAgICAgICAgIGlmIChmb290ZXJMYXllcikKLSAgICAgICAgICAgICAg
ICAgICAgZm9vdGVyTGF5ZXItPnNldFBvc2l0aW9uKHBvc2l0aW9uRm9yRm9vdGVyTGF5ZXIpOwot
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBzY3JvbGxMYXllci0+c3luY1Bv
c2l0aW9uKC1mcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb24oKSk7Ci0gICAgICAgICAgICAgICAgaWYg
KGNvdW50ZXJTY3JvbGxpbmdMYXllcikKLSAgICAgICAgICAgICAgICAgICAgY291bnRlclNjcm9s
bGluZ0xheWVyLT5zeW5jUG9zaXRpb24oc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZCk7Ci0gICAgICAg
ICAgICAgICAgaWYgKGluc2V0Q2xpcExheWVyKQotICAgICAgICAgICAgICAgICAgICBpbnNldENs
aXBMYXllci0+c3luY1Bvc2l0aW9uKHBvc2l0aW9uRm9ySW5zZXRDbGlwTGF5ZXIpOwotICAgICAg
ICAgICAgICAgIGlmIChjb250ZW50U2hhZG93TGF5ZXIpCi0gICAgICAgICAgICAgICAgICAgIGNv
bnRlbnRTaGFkb3dMYXllci0+c3luY1Bvc2l0aW9uKHBvc2l0aW9uRm9yQ29udGVudHNMYXllcik7
Ci0gICAgICAgICAgICAgICAgaWYgKHNjcm9sbGVkQ29udGVudHNMYXllcikKLSAgICAgICAgICAg
ICAgICAgICAgc2Nyb2xsZWRDb250ZW50c0xheWVyLT5zeW5jUG9zaXRpb24ocG9zaXRpb25Gb3JD
b250ZW50c0xheWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoaGVhZGVyTGF5ZXIpCi0gICAgICAg
ICAgICAgICAgICAgIGhlYWRlckxheWVyLT5zeW5jUG9zaXRpb24ocG9zaXRpb25Gb3JIZWFkZXJM
YXllcik7Ci0gICAgICAgICAgICAgICAgaWYgKGZvb3RlckxheWVyKQotICAgICAgICAgICAgICAg
ICAgICBmb290ZXJMYXllci0+c3luY1Bvc2l0aW9uKHBvc2l0aW9uRm9yRm9vdGVyTGF5ZXIpOwot
Ci0gICAgICAgICAgICAgICAgTGF5b3V0UmVjdCB2aWV3cG9ydFJlY3QgPSBmcmFtZVZpZXcucmVj
dEZvckZpeGVkUG9zaXRpb25MYXlvdXQoKTsKLSAgICAgICAgICAgICAgICBzeW5jQ2hpbGRQb3Np
dGlvbnModmlld3BvcnRSZWN0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICBy
ZWNvbmNpbGVTY3JvbGxpbmdTdGF0ZShmcmFtZVZpZXcsIHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRW
aWV3cG9ydE9yaWdpbiwgcHJvZ3JhbW1hdGljU2Nyb2xsLCBzY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAobV9wYWdlLT5leHBl
Y3RzV2hlZWxFdmVudFRyaWdnZXJzKCkpIHsKQEAgLTQwNSw2ICszNDQsODggQEAgdm9pZCBBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3Jv
bGwoU2Nyb2xsaW5nTm8KICAgICB9CiB9CiAKK3ZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjo6cmVjb25jaWxlU2Nyb2xsaW5nU3RhdGUoRnJhbWVWaWV3JiBmcmFtZVZpZXcsIGNvbnN0IEZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBMYXlvdXRWaWV3cG9ydE9yaWdpbk9yT3Zl
cnJpZGVSZWN0JiBsYXlvdXRWaWV3cG9ydE9yaWdpbk9yT3ZlcnJpZGVSZWN0LCBib29sIHByb2dy
YW1tYXRpY1Njcm9sbCwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiBzY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uKQoreworICAgIGJvb2wgb2xkUHJvZ3JhbW1hdGljU2Nyb2xsID0g
ZnJhbWVWaWV3LmluUHJvZ3JhbW1hdGljU2Nyb2xsKCk7CisgICAgZnJhbWVWaWV3LnNldEluUHJv
Z3JhbW1hdGljU2Nyb2xsKHByb2dyYW1tYXRpY1Njcm9sbCk7CisKKyAgICBXVEY6OnN3aXRjaE9u
KGxheW91dFZpZXdwb3J0T3JpZ2luT3JPdmVycmlkZVJlY3QsCisgICAgICAgIFsmZnJhbWVWaWV3
XShPcHRpb25hbDxGbG9hdFBvaW50PiBvcmlnaW4pIHsKKyAgICAgICAgICAgIGlmIChvcmlnaW4p
CisgICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldExheW91dFZpZXdwb3J0T3JpZ2luKExheW91
dFBvaW50KG9yaWdpbi52YWx1ZSgpKSwgRnJhbWVWaWV3OjpUcmlnZ2VyTGF5b3V0T3JOb3Q6Ok5v
KTsKKyAgICAgICAgfSwgWyZmcmFtZVZpZXddKE9wdGlvbmFsPEZsb2F0UmVjdD4gb3ZlcnJpZGVS
ZWN0KSB7CisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICAgICAgaWYgKG92ZXJyaWRlUmVjdCkK
KyAgICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJl
Y3QoZW5jbG9zaW5nSW50UmVjdChvdmVycmlkZVJlY3QudmFsdWUoKSkpOworI2Vsc2UKKyAgICAg
ICAgICAgIFVOVVNFRF9QQVJBTShvdmVycmlkZVJlY3QpOworI2VuZGlmCisgICAgICAgIH0KKyAg
ICApOworCisgICAgZnJhbWVWaWV3LnNldENvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdl
KGZhbHNlKTsKKyAgICBmcmFtZVZpZXcubm90aWZ5U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHJvdW5k
ZWRJbnRQb2ludChzY3JvbGxQb3NpdGlvbikpOworICAgIGZyYW1lVmlldy5zZXRDb25zdHJhaW5z
U2Nyb2xsaW5nVG9Db250ZW50RWRnZSh0cnVlKTsKKyAgICBmcmFtZVZpZXcuc2V0SW5Qcm9ncmFt
bWF0aWNTY3JvbGwob2xkUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKworICAgIGlmIChzY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uID09IFN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKQorICAgICAg
ICBzeW5jVmlld3BvcnRDb25zdHJhaW5lZExheWVyUG9zaXRpb25zKGZyYW1lVmlldy5yZWN0Rm9y
Rml4ZWRQb3NpdGlvbkxheW91dCgpKTsKKworICAgIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbExheWVy
ID0gc2Nyb2xsTGF5ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKKyAgICBpZiAoIXNjcm9sbExh
eWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0xheWVyKiBjb3VudGVyU2Nyb2xs
aW5nTGF5ZXIgPSBjb3VudGVyU2Nyb2xsaW5nTGF5ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsK
KyAgICBHcmFwaGljc0xheWVyKiBpbnNldENsaXBMYXllciA9IGluc2V0Q2xpcExheWVyRm9yRnJh
bWVWaWV3KGZyYW1lVmlldyk7CisgICAgR3JhcGhpY3NMYXllciogY29udGVudFNoYWRvd0xheWVy
ID0gY29udGVudFNoYWRvd0xheWVyRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7CisgICAgR3JhcGhp
Y3NMYXllciogc2Nyb2xsZWRDb250ZW50c0xheWVyID0gcm9vdENvbnRlbnRMYXllckZvckZyYW1l
VmlldyhmcmFtZVZpZXcpOworICAgIEdyYXBoaWNzTGF5ZXIqIGhlYWRlckxheWVyID0gaGVhZGVy
TGF5ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKKyAgICBHcmFwaGljc0xheWVyKiBmb290ZXJM
YXllciA9IGZvb3RlckxheWVyRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7CisKKyAgICBBU1NFUlQo
ZnJhbWVWaWV3LnNjcm9sbFBvc2l0aW9uKCkgPT0gcm91bmRlZEludFBvaW50KHNjcm9sbFBvc2l0
aW9uKSk7CisgICAgTGF5b3V0UG9pbnQgc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZCA9IHZpc3VhbFZp
ZXdwb3J0RW5hYmxlZCgpID8gZnJhbWVWaWV3LmxheW91dFZpZXdwb3J0T3JpZ2luKCkgOiBmcmFt
ZVZpZXcuc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0aW9uKCk7CisgICAgZmxvYXQgdG9wQ29u
dGVudEluc2V0ID0gZnJhbWVWaWV3LnRvcENvbnRlbnRJbnNldCgpOworCisgICAgRmxvYXRQb2lu
dCBwb3NpdGlvbkZvckluc2V0Q2xpcExheWVyOworICAgIGlmIChpbnNldENsaXBMYXllcikKKyAg
ICAgICAgcG9zaXRpb25Gb3JJbnNldENsaXBMYXllciA9IEZsb2F0UG9pbnQoaW5zZXRDbGlwTGF5
ZXItPnBvc2l0aW9uKCkueCgpLCBGcmFtZVZpZXc6OnlQb3NpdGlvbkZvckluc2V0Q2xpcExheWVy
KHNjcm9sbFBvc2l0aW9uLCB0b3BDb250ZW50SW5zZXQpKTsKKyAgICBGbG9hdFBvaW50IHBvc2l0
aW9uRm9yQ29udGVudHNMYXllciA9IGZyYW1lVmlldy5wb3NpdGlvbkZvclJvb3RDb250ZW50TGF5
ZXIoKTsKKyAgICAKKyAgICBGbG9hdFBvaW50IHBvc2l0aW9uRm9ySGVhZGVyTGF5ZXIgPSBGbG9h
dFBvaW50KHNjcm9sbFBvc2l0aW9uRm9yRml4ZWQueCgpLCBGcmFtZVZpZXc6OnlQb3NpdGlvbkZv
ckhlYWRlckxheWVyKHNjcm9sbFBvc2l0aW9uLCB0b3BDb250ZW50SW5zZXQpKTsKKyAgICBGbG9h
dFBvaW50IHBvc2l0aW9uRm9yRm9vdGVyTGF5ZXIgPSBGbG9hdFBvaW50KHNjcm9sbFBvc2l0aW9u
Rm9yRml4ZWQueCgpLAorICAgICAgICBGcmFtZVZpZXc6OnlQb3NpdGlvbkZvckZvb3RlckxheWVy
KHNjcm9sbFBvc2l0aW9uLCB0b3BDb250ZW50SW5zZXQsIGZyYW1lVmlldy50b3RhbENvbnRlbnRz
U2l6ZSgpLmhlaWdodCgpLCBmcmFtZVZpZXcuZm9vdGVySGVpZ2h0KCkpKTsKKworICAgIGlmIChw
cm9ncmFtbWF0aWNTY3JvbGwgfHwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9PSBTZXRT
Y3JvbGxpbmdMYXllclBvc2l0aW9uKSB7CisgICAgICAgIHNjcm9sbExheWVyLT5zZXRQb3NpdGlv
bigtZnJhbWVWaWV3LnNjcm9sbFBvc2l0aW9uKCkpOworICAgICAgICBpZiAoY291bnRlclNjcm9s
bGluZ0xheWVyKQorICAgICAgICAgICAgY291bnRlclNjcm9sbGluZ0xheWVyLT5zZXRQb3NpdGlv
bihzY3JvbGxQb3NpdGlvbkZvckZpeGVkKTsKKyAgICAgICAgaWYgKGluc2V0Q2xpcExheWVyKQor
ICAgICAgICAgICAgaW5zZXRDbGlwTGF5ZXItPnNldFBvc2l0aW9uKHBvc2l0aW9uRm9ySW5zZXRD
bGlwTGF5ZXIpOworICAgICAgICBpZiAoY29udGVudFNoYWRvd0xheWVyKQorICAgICAgICAgICAg
Y29udGVudFNoYWRvd0xheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckNvbnRlbnRzTGF5ZXIp
OworICAgICAgICBpZiAoc2Nyb2xsZWRDb250ZW50c0xheWVyKQorICAgICAgICAgICAgc2Nyb2xs
ZWRDb250ZW50c0xheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckNvbnRlbnRzTGF5ZXIpOwor
ICAgICAgICBpZiAoaGVhZGVyTGF5ZXIpCisgICAgICAgICAgICBoZWFkZXJMYXllci0+c2V0UG9z
aXRpb24ocG9zaXRpb25Gb3JIZWFkZXJMYXllcik7CisgICAgICAgIGlmIChmb290ZXJMYXllcikK
KyAgICAgICAgICAgIGZvb3RlckxheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckZvb3Rlckxh
eWVyKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzY3JvbGxMYXllci0+c3luY1Bvc2l0aW9uKC1m
cmFtZVZpZXcuc2Nyb2xsUG9zaXRpb24oKSk7CisgICAgICAgIGlmIChjb3VudGVyU2Nyb2xsaW5n
TGF5ZXIpCisgICAgICAgICAgICBjb3VudGVyU2Nyb2xsaW5nTGF5ZXItPnN5bmNQb3NpdGlvbihz
Y3JvbGxQb3NpdGlvbkZvckZpeGVkKTsKKyAgICAgICAgaWYgKGluc2V0Q2xpcExheWVyKQorICAg
ICAgICAgICAgaW5zZXRDbGlwTGF5ZXItPnN5bmNQb3NpdGlvbihwb3NpdGlvbkZvckluc2V0Q2xp
cExheWVyKTsKKyAgICAgICAgaWYgKGNvbnRlbnRTaGFkb3dMYXllcikKKyAgICAgICAgICAgIGNv
bnRlbnRTaGFkb3dMYXllci0+c3luY1Bvc2l0aW9uKHBvc2l0aW9uRm9yQ29udGVudHNMYXllcik7
CisgICAgICAgIGlmIChzY3JvbGxlZENvbnRlbnRzTGF5ZXIpCisgICAgICAgICAgICBzY3JvbGxl
ZENvbnRlbnRzTGF5ZXItPnN5bmNQb3NpdGlvbihwb3NpdGlvbkZvckNvbnRlbnRzTGF5ZXIpOwor
ICAgICAgICBpZiAoaGVhZGVyTGF5ZXIpCisgICAgICAgICAgICBoZWFkZXJMYXllci0+c3luY1Bv
c2l0aW9uKHBvc2l0aW9uRm9ySGVhZGVyTGF5ZXIpOworICAgICAgICBpZiAoZm9vdGVyTGF5ZXIp
CisgICAgICAgICAgICBmb290ZXJMYXllci0+c3luY1Bvc2l0aW9uKHBvc2l0aW9uRm9yRm9vdGVy
TGF5ZXIpOworICAgIH0KK30KKwogdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3Jv
bGxhYmxlQXJlYVNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxh
YmxlQXJlYSwgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKQEAgLTQzNCw3ICs0NTUsNyBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OmNsZWFyU3RhdGVUcmVlKCkKICAgICBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+
Y2xlYXIoKTsKIH0KIAotdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzeW5jQ2hpbGRQ
b3NpdGlvbnMoY29uc3QgTGF5b3V0UmVjdCYgdmlld3BvcnRSZWN0KQordm9pZCBBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yOjpzeW5jVmlld3BvcnRDb25zdHJhaW5lZExheWVyUG9zaXRpb25zKGNv
bnN0IExheW91dFJlY3QmIHZpZXdwb3J0UmVjdCkKIHsKICAgICBpZiAoIW1fc2Nyb2xsaW5nU3Rh
dGVUcmVlLT5yb290U3RhdGVOb2RlKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTQ0Myw2ICs0NjQs
OCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNDaGlsZFBvc2l0aW9ucyhj
b25zdCBMYXlvdXRSZWN0JiB2aWV3cG9ydFJlYwogICAgIGlmICghY2hpbGRyZW4pCiAgICAgICAg
IHJldHVybjsKIAorICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c3luY0NoaWxkUG9zaXRpb25zIGZvciB2aWV3cG9ydCBy
ZWN0ICIgPDwgdmlld3BvcnRSZWN0KTsKKwogICAgIC8vIEZJWE1FOiBXZSdsbCBoYXZlIHRvIHRy
YXZlcnNlIGRlZXBlciBpbnRvIHRoZSB0cmVlIGF0IHNvbWUgcG9pbnQuCiAgICAgZm9yIChhdXRv
JiBjaGlsZCA6ICpjaGlsZHJlbikKICAgICAgICAgY2hpbGQtPnN5bmNMYXllclBvc2l0aW9uRm9y
Vmlld3BvcnRSZWN0KHZpZXdwb3J0UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggM2NiYjRm
M2I2ZWNjMTgwZTY4N2M2ZjNhOTRlMDI3NzY0YWFkOTE2Yy4uNDk2YTFiYzRkZGVhMDI3MzQ5NDkw
ODNlMWYyNjQ0MmI5NzM5MDI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTAzLDYgKzEwMyw4
IEBAIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVGcmFtZVNjcm9sbGlu
Z05vZGUoU2Nyb2xsaW5nTm9kZUlELCBHcmFwaGljc0xheWVyKiBzY3JvbGxMYXllciwgR3JhcGhp
Y3NMYXllciogc2Nyb2xsZWRDb250ZW50c0xheWVyLCBHcmFwaGljc0xheWVyKiBjb3VudGVyU2Ny
b2xsaW5nTGF5ZXIsIEdyYXBoaWNzTGF5ZXIqIGluc2V0Q2xpcExheWVyLCBjb25zdCBTY3JvbGxp
bmdHZW9tZXRyeSogPSBudWxscHRyKSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHVwZGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdOb2RlSUQsIEdyYXBoaWNzTGF5
ZXIqIHNjcm9sbExheWVyLCBHcmFwaGljc0xheWVyKiBzY3JvbGxlZENvbnRlbnRzTGF5ZXIsIGNv
bnN0IFNjcm9sbGluZ0dlb21ldHJ5KiA9IG51bGxwdHIpIG92ZXJyaWRlOwogICAgIAorICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcmVjb25jaWxlU2Nyb2xsaW5nU3RhdGUoRnJhbWVWaWV3JiwgY29u
c3QgRmxvYXRQb2ludCYsIGNvbnN0IExheW91dFZpZXdwb3J0T3JpZ2luT3JPdmVycmlkZVJlY3Qm
LCBib29sIHByb2dyYW1tYXRpY1Njcm9sbCwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlv
bikgb3ZlcnJpZGU7CisKICAgICBib29sIGlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIHNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihTY3JvbGxQaW5uaW5n
QmVoYXZpb3IpIG92ZXJyaWRlOwogCkBAIC0xMTAsNyArMTEyLDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIGlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzeW5jQ2hpbGRQb3NpdGlvbnMoY29uc3QgTGF5b3V0UmVj
dCYgdmlld3BvcnRSZWN0KSBvdmVycmlkZTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN5bmNW
aWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJQb3NpdGlvbnMoY29uc3QgTGF5b3V0UmVjdCYgdmlld3Bv
cnRSZWN0KSBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcm9sbGFibGVBcmVh
U2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2UoU2Nyb2xsYWJsZUFyZWEmLCBTY3JvbGxiYXJPcmllbnRh
dGlvbikgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN5bmNocm9ub3Vz
U2Nyb2xsaW5nUmVhc29ucyhTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmgKaW5kZXggYzI0ZGJhNDQ2YjZkOGU3NTE2N2Y5MzhhMmMwNjY4NWY1OWRiZjdmNi4uNzJi
ZDU5NDZhMDI2NjlkNzAyOTU0MDdhYjFhM2MxNDk4Yzc5NGZlOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFk
U2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CisjaW5jbHVkZSA8
d3RmL1ZhcmlhbnQuaD4KIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KQEAgLTExNyw2ICsxMTgsOSBAQCBwdWJsaWM6CiAgICAgLy8gU2hvdWxk
IGJlIGNhbGxlZCB3aGVuZXZlciB0aGUgZ2l2ZW4gZnJhbWUgdmlldyBoYXMgYmVlbiBsYWlkIG91
dC4KICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVWaWV3TGF5b3V0VXBkYXRlZChGcmFtZVZpZXcmKSB7
IH0KIAorICAgIHVzaW5nIExheW91dFZpZXdwb3J0T3JpZ2luT3JPdmVycmlkZVJlY3QgPSBXVEY6
OlZhcmlhbnQ8T3B0aW9uYWw8RmxvYXRQb2ludD4sIE9wdGlvbmFsPEZsb2F0UmVjdD4+OworICAg
IHZpcnR1YWwgdm9pZCByZWNvbmNpbGVTY3JvbGxpbmdTdGF0ZShGcmFtZVZpZXcmLCBjb25zdCBG
bG9hdFBvaW50JiwgY29uc3QgTGF5b3V0Vmlld3BvcnRPcmlnaW5Pck92ZXJyaWRlUmVjdCYsIGJv
b2wgLyogcHJvZ3JhbW1hdGljU2Nyb2xsICovLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0
aW9uKSB7IH0KKwogICAgIC8vIFNob3VsZCBiZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIHNsb3cgcmVw
YWludCBvYmplY3RzIGNvdW50ZXIgY2hhbmdlcyBiZXR3ZWVuIHplcm8gYW5kIG9uZS4KICAgICB2
b2lkIGZyYW1lVmlld0hhc1Nsb3dSZXBhaW50T2JqZWN0c0RpZENoYW5nZShGcmFtZVZpZXcmKTsK
IApAQCAtMTcyLDcgKzE3Niw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVG
cmFtZVNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nTm9kZUlELCBHcmFwaGljc0xheWVyKiAvKnNjcm9s
bExheWVyKi8sIEdyYXBoaWNzTGF5ZXIqIC8qc2Nyb2xsZWRDb250ZW50c0xheWVyKi8sIEdyYXBo
aWNzTGF5ZXIqIC8qY291bnRlclNjcm9sbGluZ0xheWVyKi8sIEdyYXBoaWNzTGF5ZXIqIC8qaW5z
ZXRDbGlwTGF5ZXIqLywgY29uc3QgU2Nyb2xsaW5nR2VvbWV0cnkqID0gbnVsbHB0cikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdOb2Rl
SUQsIEdyYXBoaWNzTGF5ZXIqIC8qc2Nyb2xsTGF5ZXIqLywgR3JhcGhpY3NMYXllciogLypzY3Jv
bGxlZENvbnRlbnRzTGF5ZXIqLywgY29uc3QgU2Nyb2xsaW5nR2VvbWV0cnkqID0gbnVsbHB0cikg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIHN5bmNDaGlsZFBvc2l0aW9ucyhjb25zdCBMYXlvdXRSZWN0
JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHN5bmNWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJQb3Np
dGlvbnMoY29uc3QgTGF5b3V0UmVjdCYpIHsgfQogICAgIHZpcnR1YWwgU3RyaW5nIHNjcm9sbGlu
Z1N0YXRlVHJlZUFzVGV4dCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc1J1YmJlckJhbmRJ
blByb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNT
Y3JvbGxTbmFwSW5Qcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDg0NGZhNmVjNWE4ZDQ4OWE2MDEzZTU3NDk1Zjc3
NzMwZjA0NWU1MTMuLjYyZmIxYjYyZjk3YWUxMTUyMjVmMTIyZWQyZDM1NGI2ZjczZmVjZTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0xMjEsOCArMTIxLDggQEAgRmxv
YXRSZWN0IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU6OmxheW91dFZpZXdwb3J0Rm9y
U2Nyb2xsUG9zaXRpb24oY29uc3QKICAgICBMYXlvdXRQb2ludCBuZXdMb2NhdGlvbiA9IEZyYW1l
Vmlldzo6Y29tcHV0ZUxheW91dFZpZXdwb3J0T3JpZ2luKExheW91dFJlY3QodmlzdWFsVmlld3Bv
cnQpLCBMYXlvdXRQb2ludChtaW5MYXlvdXRWaWV3cG9ydE9yaWdpbigpKSwgTGF5b3V0UG9pbnQo
bWF4TGF5b3V0Vmlld3BvcnRPcmlnaW4oKSksIGxheW91dFZpZXdwb3J0KTsKIAogICAgIGlmIChs
YXlvdXRWaWV3cG9ydC5sb2NhdGlvbigpICE9IG5ld0xvY2F0aW9uKSB7Ci0gICAgICAgIExPR19X
SVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiIG5ldyBsYXlvdXRWaWV3cG9ydCAiIDw8
IGxheW91dFZpZXdwb3J0KTsKICAgICAgICAgbGF5b3V0Vmlld3BvcnQuc2V0TG9jYXRpb24obmV3
TG9jYXRpb24pOworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwg
IiBuZXcgbGF5b3V0Vmlld3BvcnQgIiA8PCBsYXlvdXRWaWV3cG9ydCk7CiAgICAgfQogCiAgICAg
cmV0dXJuIGxheW91dFZpZXdwb3J0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDRm
ZDVlNmM4ZDE2YjQwZWRlNDhmZGIxZjViZjc2ZDgxMmRlNWZjMDEuLjA0Y2Y3MTE2YjEyOTQ3NWIx
M2I3Y2YzMTFiYWYyMmJmZmVmYzBlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAg
LTc5LDYgKzc5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oU3RvcmFnZUFQSSkgXAog
ICAgIE0oU1ZHKSBcCiAgICAgTShUZXh0QXV0b3NpemluZykgXAorICAgIE0oVGlsaW5nKSBcCiAg
ICAgTShUaHJlYWRpbmcpIFwKICAgICBNKFVSTFBhcnNlcikgXAogICAgIE0oV2ViQXVkaW8pIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggYzM5MWRlYjMxYWUxMGU5
MzhkNTFlMDVhNzRmOTgzODYyZTFiYzVlYi4uYjRhYWY5NzFlMzNhYzc2MzIzZDlkZmM3MmNlZTgx
YWNiMmMyZWNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTQx
OCw3ICs0MTgsNyBAQCB2b2lkIFNjcm9sbFZpZXc6Om5vdGlmeVBhZ2VUaGF0Q29udGVudEFyZWFX
aWxsUGFpbnQoKSBjb25zdAogCiB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbE9mZnNldChjb25z
dCBTY3JvbGxPZmZzZXQmIG9mZnNldCkKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5n
LCBzdHJlYW0gPDwgIlNjcm9sbFZpZXc6OnNldFNjcm9sbE9mZnNldCAiIDw8IG9mZnNldCk7Cisg
ICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJcblNjcm9sbFZpZXc6OnNl
dFNjcm9sbE9mZnNldCAiIDw8IG9mZnNldCk7CiAKICAgICBJbnRQb2ludCBjb25zdHJhaW5lZE9m
ZnNldCA9IG9mZnNldDsKICAgICBpZiAoY29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2Uo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVD
b250cm9sbGVyLmNwcAppbmRleCBmN2Y1YWRmNzEzMDk5OGYwZDQ2Nzk5OTJlYzI0M2U5ZjA1ZmNh
YmVlLi40NTRiMDgzYWE3NzY4MDNkZjk4NGM1NzNiODJmYTk3ZDk3YTgwZjUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIu
Y3BwCkBAIC00NTEsNyArNDUxLDcgQEAgdm9pZCBUaWxlQ29udHJvbGxlcjo6YWRqdXN0VGlsZUNv
dmVyYWdlUmVjdChGbG9hdFJlY3QmIGNvdmVyYWdlUmVjdCwgY29uc3QgRmxvYXQKICAgICBGbG9h
dFJlY3QgY292ZXJhZ2VCb3VuZHMgPSBib3VuZHNGb3JTaXplKG5ld1NpemUpOwogICAgIAogICAg
IEZsb2F0UmVjdCBjb3ZlcmFnZSA9IGV4cGFuZFJlY3RXaXRoaW5SZWN0KHZpc2libGVSZWN0LCBj
b3ZlcmFnZVNpemUsIGNvdmVyYWdlQm91bmRzKTsKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xs
aW5nLCBzdHJlYW0gPDwgIlRpbGVDb250cm9sbGVyOjpjb21wdXRlVGlsZUNvdmVyYWdlUmVjdCBu
ZXdTaXplPSIgPDwgbmV3U2l6ZSA8PCAiIG1vZGUgIiA8PCBtX3RpbGVDb3ZlcmFnZSA8PCAiIGV4
cGFuZGVkIHRvICIgPDwgY292ZXJhZ2VTaXplIDw8ICIgYm91bmRzIHdpdGggbWFyZ2luICIgPDwg
Y292ZXJhZ2VCb3VuZHMgPDwgIiBjb3ZlcmFnZSAiIDw8IGNvdmVyYWdlKTsKKyAgICBMT0dfV0lU
SF9TVFJFQU0oVGlsaW5nLCBzdHJlYW0gPDwgIlRpbGVDb250cm9sbGVyOjpjb21wdXRlVGlsZUNv
dmVyYWdlUmVjdCBuZXdTaXplPSIgPDwgbmV3U2l6ZSA8PCAiIG1vZGUgIiA8PCBtX3RpbGVDb3Zl
cmFnZSA8PCAiIGV4cGFuZGVkIHRvICIgPDwgY292ZXJhZ2VTaXplIDw8ICIgYm91bmRzIHdpdGgg
bWFyZ2luICIgPDwgY292ZXJhZ2VCb3VuZHMgPDwgIiBjb3ZlcmFnZSAiIDw8IGNvdmVyYWdlKTsK
ICAgICBjb3ZlcmFnZVJlY3QudW5pdGUoY292ZXJhZ2UpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCAxZWMwZGE0YjIxOTA0MWU1NmFmZjVi
NzAwMDIzYzEzODUwYzYzYjk1Li45NGVjNjczYzQ3MjczZmU2ZDNjNDdmZWQxMWZhZjk4OTNlZDI1
NmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTgyNCw2
ICs4MjQsOCBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyRG9j
dW1lbnRTY3JvbGwoKQogewogICAgIEFTU0VSVCh0aGlzID09IHJlbmRlcmVyKCkudmlldygpLmxh
eWVyKCkpOwogCisgICAgTE9HKFNjcm9sbGluZywgIlJlbmRlckxheWVyOjp1cGRhdGVMYXllclBv
c2l0aW9uc0FmdGVyRG9jdW1lbnRTY3JvbGwiKTsKKwogICAgIFJlbmRlckdlb21ldHJ5TWFwIGdl
b21ldHJ5TWFwKFVzZVRyYW5zZm9ybXMpOwogICAgIHVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJT
Y3JvbGwoJmdlb21ldHJ5TWFwKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBhYTQ4NTdiMDNjZGUyYmE5ZjZkYThi
NTcxMTgzYjIxM2FiYTcyMGNhLi44ZjQwNDU0MjJmMDY5NjJkNjRkN2JiNGUwY2NiNDJjNTAzYTM5
ZDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCkBAIC0zMDUzLDkgKzMwNTMsMTIgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVW
aXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIHZp
c2kKICAgICBpZiAoIXZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaXNDaGFuZ2luZ09ic2N1
cmVkSW5zZXRzSW50ZXJhY3RpdmVseSgpKQogICAgICAgICBmcmFtZVZpZXcuc2V0Q3VzdG9tU2l6
ZUZvclJlc2l6ZUV2ZW50KGV4cGFuZGVkSW50U2l6ZSh2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvLnVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMoKS5zaXplKCkpKTsKIAot
ICAgIGZyYW1lVmlldy5zZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZShmYWxzZSk7
Ci0gICAgZnJhbWVWaWV3LnNldFNjcm9sbE9mZnNldChmcmFtZVZpZXcuc2Nyb2xsT2Zmc2V0RnJv
bVBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKSk7Ci0gICAgZnJhbWVWaWV3LnNldENvbnN0cmFpbnNT
Y3JvbGxpbmdUb0NvbnRlbnRFZGdlKHRydWUpOworICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRv
ciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKSB7
CisgICAgICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gY3VzdG9tRml4ZWRQb3NpdGlvblJlY3Q7Cisg
ICAgICAgIGlmIChtX2lzSW5TdGFibGVTdGF0ZSkKKyAgICAgICAgICAgIGN1c3RvbUZpeGVkUG9z
aXRpb25SZWN0ID0gdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jdXN0b21GaXhlZFBvc2l0
aW9uUmVjdCgpOworICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+cmVjb25jaWxlU2Nyb2xs
aW5nU3RhdGUoZnJhbWVWaWV3LCBzY3JvbGxQb3NpdGlvbiwgY3VzdG9tRml4ZWRQb3NpdGlvblJl
Y3QsIGZhbHNlLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uOjpTeW5jU2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbik7CisgICAgfQogfQogCiB2b2lkIFdlYlBhZ2U6OndpbGxTdGFydFVzZXJU
cmlnZ2VyZWRab29taW5nKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MTJhZjkwMzhlMjcyNzEyZjNhMTRkZmExMGNjYmI3
MzQxN2M1Y2VkLi4yNTFhNWYwMzNkODIwYWQ1NjY4OTNiYjk5MGMyMGI3MTBlZWIxNGE5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTYtMTEtMTIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPUyBXSzJdIFNoYXJlIHNvbWUgY29kZSB3aXRoIE1h
YyBmb3IgcG9zdC1hc3luYy1zY3JvbGwgc3RhdGUgcmVjb25jaWxpYXRpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDY5NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgdGhhdCBwYW5zIHRoZSBw
YWdlLCBhbmQgZHVtcHMgR3JhcGhpY3NMYXllcnMgYmVmb3JlIGxldHRpbmcgZ28uCisKKyAgICAg
ICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3It
d2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9z
L3N5bmMtbGF5ZXItcG9zaXRpb25zLWFmdGVyLXNjcm9sbC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9zeW5jLWxheWVyLXBvc2l0aW9ucy1h
ZnRlci1zY3JvbGwuaHRtbDogQWRkZWQuCisKIDIwMTYtMTEtMTAgIEFhcm9uIENodSAgPGFhcm9u
X2NodUBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQVhJOiBjbGFyaWZ5IGJ1
dHRvbiByb2xlcyAoZS5nLiB0b2dnbGUgb3IgcG9wdXAgYnV0dG9uKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggNTQ0OTVjNGU3MWEzODcxZGVjMGIzNDVkOTc4Y2UxNTcwMWUyMGE0Yi4uMzNmYTA3Y2I2
ZGU4ZWUwNjg1N2Y2MjNjY2Q0ODAxYzVjYjRkYTVlMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
Myw2ICsyMyw3IEBAIGZhc3Qvdmlld3BvcnQvaW9zIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9pb3Mg
WyBTa2lwIF0KIGZhc3QvZXZlbnRzL3RvdWNoL2lvcyBbIFNraXAgXQogZmFzdC9zY3JvbGxpbmcv
aW9zIFsgU2tpcCBdCitzY3JvbGxpbmdjb29yZGluYXRvci9pb3MgWyBTa2lwIF0KIGZhc3QvY29u
dGVudC1vYnNlcnZhdGlvbiBbIFNraXAgXQogbWVkaWEvbWFjIFsgU2tpcCBdCiBtZWRpYS9jb250
cm9scy9pcGFkIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mt
c2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
LXNpbXVsYXRvci13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2ZDAxYjA3MzY0MTMzYjkwNGM0
MjhmM2ViN2IyMWVhNTAzM2E0YmM1Li5iNzcxZTkyM2NhODY3OTI0MGFmZWZmMDMxZDhlYWEzZjNk
OWNkYjIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdr
Mi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0
b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTgsNiArOCw3IEBACiAKIGZhc3Qvc2Nyb2xsaW5n
L2lvcyBbIFBhc3MgXQogZmFzdC92aWV3cG9ydC9pb3MgWyBQYXNzIF0KK3Njcm9sbGluZ2Nvb3Jk
aW5hdG9yL2lvcyBbIFBhc3MgXQogZWRpdGluZy9zZWxlY3Rpb24vY2hhcmFjdGVyLWdyYW51bGFy
aXR5LXJlY3QuaHRtbCBbIFBhc3MgXQogCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9pb3Mvc3lu
Yy1sYXllci1wb3NpdGlvbnMtYWZ0ZXItc2Nyb2xsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9zeW5jLWxheWVyLXBvc2l0aW9ucy1hZnRlci1zY3Jv
bGwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiY2Y1YTEwM2UzMTNhZWEwM2NkNjcxMjFmMWE2
MjRhMGQwMjY1YmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29y
ZGluYXRvci9pb3Mvc3luYy1sYXllci1wb3NpdGlvbnMtYWZ0ZXItc2Nyb2xsLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE5IEBACit2aXNpYmxlUmVjdEFmdGVyU2Nyb2xsOiB7ImxlZnQiOjAsInRv
cCI6MTU2LjUsIndpZHRoIjo4MDAsImhlaWdodCI6NjAwfQorKEdyYXBoaWNzTGF5ZXIKKyAgKGFu
Y2hvciAwLjAwIDAuMDApCisgIChib3VuZHMgMTMwOC4wMCAyMDIxLjAwKQorICAoY2hpbGRyZW4g
MQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDEzMDguMDAgMjAyMS4wMCkKKyAg
ICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKEdyYXBo
aWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMTIuMDAgMTAuMDApCisgICAgICAgICAgKGJv
dW5kcyAxMDAuMDAgMTAwLjAwKQorICAgICAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAg
ICApCisgICAgICApCisgICAgKQorICApCispCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Nj
cm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9zeW5jLWxheWVyLXBvc2l0aW9ucy1hZnRlci1zY3JvbGwu
aHRtbCBiL0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9zeW5jLWxheWVyLXBv
c2l0aW9ucy1hZnRlci1zY3JvbGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODNmYmIxZDI1OGM2YjAzNWFm
ODE1MjJiY2FmZWMxOTdlMDNiMjQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc2Ny
b2xsaW5nY29vcmRpbmF0b3IvaW9zL3N5bmMtbGF5ZXItcG9zaXRpb25zLWFmdGVyLXNjcm9sbC5o
dG1sCkBAIC0wLDAgKzEsMTIwIEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4K
KyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgd2lkdGg6IDEzMDBweDsK
KyAgICAgICAgICAgIGhlaWdodDogMjAwMHB4OworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICAuZml4ZWQgeworICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOworICAgICAgICAgICAgdG9w
OiAxMHB4OworICAgICAgICAgICAgbGVmdDogMTJweDsKKyAgICAgICAgICAgIGhlaWdodDogMTAw
cHg7CisgICAgICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBibHVlOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBnZXREcmFnVUlTY3JpcHQoc3RhcnRYLCBzdGFydFksIGVu
ZFgsIGVuZFkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBgKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIHZhciBtb3ZlZEZpbmdlckRvd25TdHJlYW0gPSB7CisgICAgICAgICAg
ICAgICAgICAgIGV2ZW50cyA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGUgOiAiaGFuZCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGltZU9mZnNldCA6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dG91Y2hlcyA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImZpbmdlciIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaGFzZSA6ICJiZWdhbiIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA6IDEsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB4IDogJHtzdGFydFh9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgeSA6ICR7c3RhcnRZfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnRlcnBvbGF0ZSA6ICJsaW5lYXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRp
bWVzdGVwOiAwLjAyNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEV2ZW50IDog
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGUgOiAiaGFuZCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVPZmZzZXQgOiAwLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0b3VjaGVzIDogWworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlucHV0VHlwZSA6ICJmaW5nZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBoYXNlIDogIm1vdmVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZCA6IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eCA6ICR7c3RhcnRYfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5
IDogJHtzdGFydFl9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZEV2ZW50IDogeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGUgOiAiaGFuZCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRpbWVPZmZzZXQgOiAwLjE1LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0b3VjaGVzIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0VHlw
ZSA6ICJmaW5nZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBo
YXNlIDogIm1vdmVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZCA6IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCA6ICR7ZW5k
WH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA6ICR7ZW5kWX0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAg
IH07CisKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2VuZEV2ZW50U3RyZWFtKEpTT04u
c3RyaW5naWZ5KG1vdmVkRmluZ2VyRG93blN0cmVhbSksIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZShKU09OLnN0cmluZ2lmeSh1
aUNvbnRyb2xsZXIuY29udGVudFZpc2libGVSZWN0KSk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9KSgpO2A7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBnZXRGaW5n
ZXJVcFVJU2NyaXB0KHgsIHkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBgKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5saWZ0VXBBdFBvaW50KCR7eH0s
ICR7eX0sIDEsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIu
dWlTY3JpcHRDb21wbGV0ZSgnJyk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9
KSgpO2A7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgICAgICB7
CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAgICAg
ICAgcmV0dXJuCisKKyAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIHZhciB4UG9zID0gMTAwOworICAgICAgICAgICAgICAgIHZhciBzdGFy
dFkgPSAzMDA7CisgICAgICAgICAgICAgICAgdmFyIGVuZFkgPSAxMDA7CisgICAgICAgICAgICAg
ICAgLy8gU2VuZCB0b3VjaCBkb3duIGFuZCBtb3ZlcyAoa2VlcCB0aGUgZmluZ2VyIGRvd24pLgor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0RHJhZ1VJU2NyaXB0KHhQ
b3MsIHN0YXJ0WSwgeFBvcywgZW5kWSksIGZ1bmN0aW9uKHZpc2libGVSZWN0QWZ0ZXJTY3JvbGwp
IHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9ICd2aXNpYmxlUmVjdEFmdGVyU2Ny
b2xsOiAnICsgdmlzaWJsZVJlY3RBZnRlclNjcm9sbCArICdcbicgKyBpbnRlcm5hbHMubGF5ZXJU
cmVlQXNUZXh0KGRvY3VtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2xheWVycycpLnRleHRDb250ZW50ID0gcmVzdWx0OworICAgICAgICAgICAgICAg
ICAgICAvLyBOb3cgc2VuZCB0aGUgZmluZWwgdG91Y2ggdXAuCisgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0RmluZ2VyVXBVSVNjcmlwdCh4UG9zLCBlbmRZKSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9LCAwKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ2xvYWQnLCBkb1Rlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBjbGFzcz0iZml4ZWQiPjwvZGl2PgorPHByZSBpZD0ibGF5ZXJzIj48
L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="317310"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294645</attachid>
            <date>2016-11-12 17:53:15 -0800</date>
            <delta_ts>2016-11-12 17:53:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164694-20161112174859.patch</filename>
            <type>text/plain</type>
            <size>31397</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZlOTAwNTBkZWVjM2Rl
ZmUxM2MyZTk5NTRkNzRmOTJhOGIyOWNiNi4uMDc1NjliZDIwYzExNzBmNzQ1NDA4OGJjZmU3YjZl
OWMzNjU5MGRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE2LTExLTEyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgV0syXSBT
aGFyZSBzb21lIGNvZGUgd2l0aCBNYWMgZm9yIHBvc3QtYXN5bmMtc2Nyb2xsIHN0YXRlIHJlY29u
Y2lsaWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjQ2OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXaGVuIGFuIGFzeW5jIHNjcm9sbCBub3RpZmljYXRpb25zIGdldCBiYWNrIHRvIHRoZSBtYWlu
IHRocmVhZCBpbgorICAgICAgICBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3Jv
bGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoKSwgd2UgY2FsbCAKKyAgICAgICAgc3luY1ZpZXdw
b3J0Q29uc3RyYWluZWRMYXllclBvc2l0aW9ucygpIHRvIHBva2UgdGhlIG5ldyBsYXllciBwb3Np
dGlvbnMgb24gdGhlCisgICAgICAgIEdyYXBoaWNzTGF5ZXJzIHRvIG1hdGNoIHRoZSBjaGFuZ2Vz
IG1hZGUgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQuCisKKyAgICAgICAgSG93ZXZlciwgdGhpcyB3
YXMgbm90IGRvbmUgb24gaU9TLCB3aGljaCB3aWxsIGJlIHByb2JsZW1hdGljIGZvciBhIGZ1dHVy
ZSBwYXRjaAorICAgICAgICB3aGVyZSB3ZSByZXF1aXJlIEdyYXBoaWNzTGF5ZXIgcG9zaXRpb25z
IGFuZCB0aGUgY3VycmVudCBmaXhlZFBvc2l0aW9uVmlld3BvcnQgcmVjdAorICAgICAgICB0byBo
YXZlIGJlZW4gY29tcHV0ZWQgd2hlbiBpbiBhIGNvbnNpc3RlbnQgc3RhdGUuCisKKyAgICAgICAg
Rml4IGJ5IGZhY3RvcmluZyBzb21lIGNvZGUgaW50byByZWNvbmNpbGVTY3JvbGxpbmdTdGF0ZSgp
LCB3aGljaCBpcyBjYWxsZWQgb24gaU9TL1dLMgorICAgICAgICBmcm9tIFdlYlBhZ2U6OnVwZGF0
ZVZpc2libGVDb250ZW50UmVjdHMoKSByYXRoZXIgdGhhbiBzZXR0aW5nIHRoZSBGcmFtZVZpZXcn
cyBzY3JvbGwgb2Zmc2V0CisgICAgICAgIGRpcmVjdGx5LgorCisgICAgICAgIFRlc3Q6IHNjcm9s
bGluZ2Nvb3JkaW5hdG9yL2lvcy9zeW5jLWxheWVyLXBvc2l0aW9ucy1hZnRlci1zY3JvbGwuaHRt
bAorCisgICAgICAgICogcGFnZS9XaGVlbEV2ZW50RGVsdGFGaWx0ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2hlZWxFdmVudERlbHRhRmlsdGVyOjpmaWx0ZXJlZERlbHRhKToKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9u
QWZ0ZXJBc3luY1Njcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpyZWNvbmNpbGVTY3JvbGxpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzeW5jVmlld3BvcnRDb25zdHJhaW5lZExheWVyUG9zaXRp
b25zKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmND
aGlsZFBvc2l0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6
cmVjb25jaWxlU2Nyb2xsaW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29v
cmRpbmF0b3I6OnN5bmNWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJQb3NpdGlvbnMpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNDaGlsZFBvc2l0aW9ucyk6IERl
bGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlOjpsYXlvdXRWaWV3cG9ydEZvclNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxPZmZzZXQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRpbGVDb250cm9sbGVyOjphZGp1c3RUaWxlQ292ZXJhZ2VSZWN0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVw
ZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJEb2N1bWVudFNjcm9sbCk6CisKIDIwMTYtMTEtMTAgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5mQGdtYWlsLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbVRy
YWNrIHNob3VsZCB1c2UgbW9yZSBSZWY8PiBhbmQgbGVzcyBSZWZQdHI8PgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDE5Y2M4MTIzY2E0MjUyOWRmZWMzOTViMGRmMTUyOTIzYWUxNzY1NDkuLjQ0OTY3Y2EzZmQ2NjYx
YzA3NmY3Nzc3YmNjNDMzZDIwMmUwNTJlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxNi0xMS0xMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAg
ICAgICBbaU9TIFdLMl0gU2hhcmUgc29tZSBjb2RlIHdpdGggTWFjIGZvciBwb3N0LWFzeW5jLXNj
cm9sbCBzdGF0ZSByZWNvbmNpbGlhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY0Njk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmF0aGVyIHRoYW4gY2FsbGluZyBGcmFtZVZpZXcgZGlyZWN0bHks
IGNhbGwgcmVjb25jaWxlU2Nyb2xsaW5nU3RhdGUoKSBvbiB0aGUgc2Nyb2xsaW5nCisgICAgICAg
IGNvb3JkaW5hdG9yLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJl
Y3RzKToKKwogMjAxNi0xMS0xMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0xpbnV4XSBNZW1vcnkgcHJvY2VzcyB2YWx1ZXMgc2hvd24gYnkg
dGhlIFdlYk1lbW9yeVNhbXBsZXIgaW4gbGludXggYXJlIHdyb25nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5jcHAKaW5kZXggNGQ3MGJiZmM2ODlhOTAxZTJm
YTRlZTFkNDgyY2IxODM0Yzk4OTBmOS4uMDBmMjYzZmY5NGQyYTMzOGU5OTEzOTg3YWMzMmRhMTVl
MjBmYzY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50RGVsdGFG
aWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudERlbHRhRmlsdGVy
LmNwcApAQCAtNjAsNyArNjAsNiBAQCBib29sIFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6aXNGaWx0
ZXJpbmdEZWx0YXMoKSBjb25zdAogCiBGbG9hdFNpemUgV2hlZWxFdmVudERlbHRhRmlsdGVyOjpm
aWx0ZXJlZERlbHRhKCkgY29uc3QKIHsKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBz
dHJlYW0gPDwgIkJhc2ljV2hlZWxFdmVudERlbHRhRmlsdGVyOjpmaWx0ZXJlZERlbHRhIHJldHVy
bmluZyAiIDw8IG1fY3VycmVudEZpbHRlcmVkRGVsdGEpOwogICAgIHJldHVybiBtX2N1cnJlbnRG
aWx0ZXJlZERlbHRhOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDI1NjZkZDI5Mzdm
MGE2ZTc1NTcyM2ZlZTdkYmZhMjY1YTEyOGIyMzYuLjQ0NTc2OTI1ZWM0ODFkODJkNjM2YjgwOTlh
MmQ2MGFhYjkwMGQ1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC00NCw2ICs0NCw3IEBA
CiAjaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmgiCiAjaW5jbHVkZSAiU2Nyb2xs
aW5nU3RhdGVUcmVlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJUZXh0U3Ry
ZWFtLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTMwNyw3NCArMzA4LDEyIEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05vCiAg
ICAgaWYgKCFmcmFtZVZpZXdQdHIpCiAgICAgICAgIHJldHVybjsKIAorICAgIExPR19XSVRIX1NU
UkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBk
YXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsIG5vZGUgIiA8PCBzY3JvbGxpbmdOb2Rl
SUQgPDwgIiBzY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uIDw8IChzY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uID09IFNldFNjcm9sbGluZ0xheWVyUG9zaXRpb24gPyAiIHNldCIg
OiAiIHN5bmMiKSA8PCAiIGxheWVyIHBvc2l0aW9ucyIpOworCiAgICAgRnJhbWVWaWV3JiBmcmFt
ZVZpZXcgPSAqZnJhbWVWaWV3UHRyOwogCiAgICAgaWYgKHNjcm9sbGluZ05vZGVJRCA9PSBmcmFt
ZVZpZXcuc2Nyb2xsTGF5ZXJJRCgpKSB7Ci0gICAgICAgIGJvb2wgb2xkUHJvZ3JhbW1hdGljU2Ny
b2xsID0gZnJhbWVWaWV3LmluUHJvZ3JhbW1hdGljU2Nyb2xsKCk7Ci0gICAgICAgIGZyYW1lVmll
dy5zZXRJblByb2dyYW1tYXRpY1Njcm9sbChwcm9ncmFtbWF0aWNTY3JvbGwpOwotCi0gICAgICAg
IGlmIChsYXlvdXRWaWV3cG9ydE9yaWdpbikKLSAgICAgICAgICAgIGZyYW1lVmlldy5zZXRMYXlv
dXRWaWV3cG9ydE9yaWdpbihMYXlvdXRQb2ludChsYXlvdXRWaWV3cG9ydE9yaWdpbi52YWx1ZSgp
KSwgRnJhbWVWaWV3OjpUcmlnZ2VyTGF5b3V0T3JOb3Q6Ok5vKTsKLQotICAgICAgICBmcmFtZVZp
ZXcuc2V0Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UoZmFsc2UpOwotICAgICAgICBm
cmFtZVZpZXcubm90aWZ5U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHJvdW5kZWRJbnRQb2ludChzY3Jv
bGxQb3NpdGlvbikpOwotICAgICAgICBmcmFtZVZpZXcuc2V0Q29uc3RyYWluc1Njcm9sbGluZ1Rv
Q29udGVudEVkZ2UodHJ1ZSk7Ci0gICAgICAgIGZyYW1lVmlldy5zZXRJblByb2dyYW1tYXRpY1Nj
cm9sbChvbGRQcm9ncmFtbWF0aWNTY3JvbGwpOwotCi0gICAgICAgIGlmIChHcmFwaGljc0xheWVy
KiBzY3JvbGxMYXllciA9IHNjcm9sbExheWVyRm9yRnJhbWVWaWV3KGZyYW1lVmlldykpIHsKLSAg
ICAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGNvdW50ZXJTY3JvbGxpbmdMYXllciA9IGNvdW50ZXJT
Y3JvbGxpbmdMYXllckZvckZyYW1lVmlldyhmcmFtZVZpZXcpOwotICAgICAgICAgICAgR3JhcGhp
Y3NMYXllciogaW5zZXRDbGlwTGF5ZXIgPSBpbnNldENsaXBMYXllckZvckZyYW1lVmlldyhmcmFt
ZVZpZXcpOwotICAgICAgICAgICAgR3JhcGhpY3NMYXllciogY29udGVudFNoYWRvd0xheWVyID0g
Y29udGVudFNoYWRvd0xheWVyRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7Ci0gICAgICAgICAgICBH
cmFwaGljc0xheWVyKiBzY3JvbGxlZENvbnRlbnRzTGF5ZXIgPSByb290Q29udGVudExheWVyRm9y
RnJhbWVWaWV3KGZyYW1lVmlldyk7Ci0gICAgICAgICAgICBHcmFwaGljc0xheWVyKiBoZWFkZXJM
YXllciA9IGhlYWRlckxheWVyRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7Ci0gICAgICAgICAgICBH
cmFwaGljc0xheWVyKiBmb290ZXJMYXllciA9IGZvb3RlckxheWVyRm9yRnJhbWVWaWV3KGZyYW1l
Vmlldyk7Ci0KLSAgICAgICAgICAgIEFTU0VSVChmcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb24oKSA9
PSByb3VuZGVkSW50UG9pbnQoc2Nyb2xsUG9zaXRpb24pKTsKLSAgICAgICAgICAgIExheW91dFBv
aW50IHNjcm9sbFBvc2l0aW9uRm9yRml4ZWQgPSB2aXN1YWxWaWV3cG9ydEVuYWJsZWQoKSA/IGZy
YW1lVmlldy5sYXlvdXRWaWV3cG9ydE9yaWdpbigpIDogZnJhbWVWaWV3LnNjcm9sbFBvc2l0aW9u
Rm9yRml4ZWRQb3NpdGlvbigpOwotICAgICAgICAgICAgZmxvYXQgdG9wQ29udGVudEluc2V0ID0g
ZnJhbWVWaWV3LnRvcENvbnRlbnRJbnNldCgpOwotCi0gICAgICAgICAgICBGbG9hdFBvaW50IHBv
c2l0aW9uRm9ySW5zZXRDbGlwTGF5ZXI7Ci0gICAgICAgICAgICBpZiAoaW5zZXRDbGlwTGF5ZXIp
Ci0gICAgICAgICAgICAgICAgcG9zaXRpb25Gb3JJbnNldENsaXBMYXllciA9IEZsb2F0UG9pbnQo
aW5zZXRDbGlwTGF5ZXItPnBvc2l0aW9uKCkueCgpLCBGcmFtZVZpZXc6OnlQb3NpdGlvbkZvcklu
c2V0Q2xpcExheWVyKHNjcm9sbFBvc2l0aW9uLCB0b3BDb250ZW50SW5zZXQpKTsKLSAgICAgICAg
ICAgIEZsb2F0UG9pbnQgcG9zaXRpb25Gb3JDb250ZW50c0xheWVyID0gZnJhbWVWaWV3LnBvc2l0
aW9uRm9yUm9vdENvbnRlbnRMYXllcigpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBGbG9h
dFBvaW50IHBvc2l0aW9uRm9ySGVhZGVyTGF5ZXIgPSBGbG9hdFBvaW50KHNjcm9sbFBvc2l0aW9u
Rm9yRml4ZWQueCgpLCBGcmFtZVZpZXc6OnlQb3NpdGlvbkZvckhlYWRlckxheWVyKHNjcm9sbFBv
c2l0aW9uLCB0b3BDb250ZW50SW5zZXQpKTsKLSAgICAgICAgICAgIEZsb2F0UG9pbnQgcG9zaXRp
b25Gb3JGb290ZXJMYXllciA9IEZsb2F0UG9pbnQoc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZC54KCks
Ci0gICAgICAgICAgICAgICAgRnJhbWVWaWV3Ojp5UG9zaXRpb25Gb3JGb290ZXJMYXllcihzY3Jv
bGxQb3NpdGlvbiwgdG9wQ29udGVudEluc2V0LCBmcmFtZVZpZXcudG90YWxDb250ZW50c1NpemUo
KS5oZWlnaHQoKSwgZnJhbWVWaWV3LmZvb3RlckhlaWdodCgpKSk7Ci0KLSAgICAgICAgICAgIGlm
IChwcm9ncmFtbWF0aWNTY3JvbGwgfHwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9PSBT
ZXRTY3JvbGxpbmdMYXllclBvc2l0aW9uKSB7Ci0gICAgICAgICAgICAgICAgc2Nyb2xsTGF5ZXIt
PnNldFBvc2l0aW9uKC1mcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb24oKSk7Ci0gICAgICAgICAgICAg
ICAgaWYgKGNvdW50ZXJTY3JvbGxpbmdMYXllcikKLSAgICAgICAgICAgICAgICAgICAgY291bnRl
clNjcm9sbGluZ0xheWVyLT5zZXRQb3NpdGlvbihzY3JvbGxQb3NpdGlvbkZvckZpeGVkKTsKLSAg
ICAgICAgICAgICAgICBpZiAoaW5zZXRDbGlwTGF5ZXIpCi0gICAgICAgICAgICAgICAgICAgIGlu
c2V0Q2xpcExheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckluc2V0Q2xpcExheWVyKTsKLSAg
ICAgICAgICAgICAgICBpZiAoY29udGVudFNoYWRvd0xheWVyKQotICAgICAgICAgICAgICAgICAg
ICBjb250ZW50U2hhZG93TGF5ZXItPnNldFBvc2l0aW9uKHBvc2l0aW9uRm9yQ29udGVudHNMYXll
cik7Ci0gICAgICAgICAgICAgICAgaWYgKHNjcm9sbGVkQ29udGVudHNMYXllcikKLSAgICAgICAg
ICAgICAgICAgICAgc2Nyb2xsZWRDb250ZW50c0xheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZv
ckNvbnRlbnRzTGF5ZXIpOwotICAgICAgICAgICAgICAgIGlmIChoZWFkZXJMYXllcikKLSAgICAg
ICAgICAgICAgICAgICAgaGVhZGVyTGF5ZXItPnNldFBvc2l0aW9uKHBvc2l0aW9uRm9ySGVhZGVy
TGF5ZXIpOwotICAgICAgICAgICAgICAgIGlmIChmb290ZXJMYXllcikKLSAgICAgICAgICAgICAg
ICAgICAgZm9vdGVyTGF5ZXItPnNldFBvc2l0aW9uKHBvc2l0aW9uRm9yRm9vdGVyTGF5ZXIpOwot
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBzY3JvbGxMYXllci0+c3luY1Bv
c2l0aW9uKC1mcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb24oKSk7Ci0gICAgICAgICAgICAgICAgaWYg
KGNvdW50ZXJTY3JvbGxpbmdMYXllcikKLSAgICAgICAgICAgICAgICAgICAgY291bnRlclNjcm9s
bGluZ0xheWVyLT5zeW5jUG9zaXRpb24oc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZCk7Ci0gICAgICAg
ICAgICAgICAgaWYgKGluc2V0Q2xpcExheWVyKQotICAgICAgICAgICAgICAgICAgICBpbnNldENs
aXBMYXllci0+c3luY1Bvc2l0aW9uKHBvc2l0aW9uRm9ySW5zZXRDbGlwTGF5ZXIpOwotICAgICAg
ICAgICAgICAgIGlmIChjb250ZW50U2hhZG93TGF5ZXIpCi0gICAgICAgICAgICAgICAgICAgIGNv
bnRlbnRTaGFkb3dMYXllci0+c3luY1Bvc2l0aW9uKHBvc2l0aW9uRm9yQ29udGVudHNMYXllcik7
Ci0gICAgICAgICAgICAgICAgaWYgKHNjcm9sbGVkQ29udGVudHNMYXllcikKLSAgICAgICAgICAg
ICAgICAgICAgc2Nyb2xsZWRDb250ZW50c0xheWVyLT5zeW5jUG9zaXRpb24ocG9zaXRpb25Gb3JD
b250ZW50c0xheWVyKTsKLSAgICAgICAgICAgICAgICBpZiAoaGVhZGVyTGF5ZXIpCi0gICAgICAg
ICAgICAgICAgICAgIGhlYWRlckxheWVyLT5zeW5jUG9zaXRpb24ocG9zaXRpb25Gb3JIZWFkZXJM
YXllcik7Ci0gICAgICAgICAgICAgICAgaWYgKGZvb3RlckxheWVyKQotICAgICAgICAgICAgICAg
ICAgICBmb290ZXJMYXllci0+c3luY1Bvc2l0aW9uKHBvc2l0aW9uRm9yRm9vdGVyTGF5ZXIpOwot
Ci0gICAgICAgICAgICAgICAgTGF5b3V0UmVjdCB2aWV3cG9ydFJlY3QgPSBmcmFtZVZpZXcucmVj
dEZvckZpeGVkUG9zaXRpb25MYXlvdXQoKTsKLSAgICAgICAgICAgICAgICBzeW5jQ2hpbGRQb3Np
dGlvbnModmlld3BvcnRSZWN0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICBy
ZWNvbmNpbGVTY3JvbGxpbmdTdGF0ZShmcmFtZVZpZXcsIHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRW
aWV3cG9ydE9yaWdpbiwgcHJvZ3JhbW1hdGljU2Nyb2xsLCBzY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICBpZiAobV9wYWdlLT5leHBl
Y3RzV2hlZWxFdmVudFRyaWdnZXJzKCkpIHsKQEAgLTQwNSw2ICszNDQsODggQEAgdm9pZCBBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3Jv
bGwoU2Nyb2xsaW5nTm8KICAgICB9CiB9CiAKK3ZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjo6cmVjb25jaWxlU2Nyb2xsaW5nU3RhdGUoRnJhbWVWaWV3JiBmcmFtZVZpZXcsIGNvbnN0IEZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBMYXlvdXRWaWV3cG9ydE9yaWdpbk9yT3Zl
cnJpZGVSZWN0JiBsYXlvdXRWaWV3cG9ydE9yaWdpbk9yT3ZlcnJpZGVSZWN0LCBib29sIHByb2dy
YW1tYXRpY1Njcm9sbCwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiBzY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uKQoreworICAgIGJvb2wgb2xkUHJvZ3JhbW1hdGljU2Nyb2xsID0g
ZnJhbWVWaWV3LmluUHJvZ3JhbW1hdGljU2Nyb2xsKCk7CisgICAgZnJhbWVWaWV3LnNldEluUHJv
Z3JhbW1hdGljU2Nyb2xsKHByb2dyYW1tYXRpY1Njcm9sbCk7CisKKyAgICBXVEY6OnN3aXRjaE9u
KGxheW91dFZpZXdwb3J0T3JpZ2luT3JPdmVycmlkZVJlY3QsCisgICAgICAgIFsmZnJhbWVWaWV3
XShPcHRpb25hbDxGbG9hdFBvaW50PiBvcmlnaW4pIHsKKyAgICAgICAgICAgIGlmIChvcmlnaW4p
CisgICAgICAgICAgICAgICAgZnJhbWVWaWV3LnNldExheW91dFZpZXdwb3J0T3JpZ2luKExheW91
dFBvaW50KG9yaWdpbi52YWx1ZSgpKSwgRnJhbWVWaWV3OjpUcmlnZ2VyTGF5b3V0T3JOb3Q6Ok5v
KTsKKyAgICAgICAgfSwgWyZmcmFtZVZpZXddKE9wdGlvbmFsPEZsb2F0UmVjdD4gb3ZlcnJpZGVS
ZWN0KSB7CisjaWYgUExBVEZPUk0oSU9TKQorICAgICAgICAgICAgaWYgKG92ZXJyaWRlUmVjdCkK
KyAgICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJl
Y3QoZW5jbG9zaW5nSW50UmVjdChvdmVycmlkZVJlY3QudmFsdWUoKSkpOworI2Vsc2UKKyAgICAg
ICAgICAgIFVOVVNFRF9QQVJBTShvdmVycmlkZVJlY3QpOworI2VuZGlmCisgICAgICAgIH0KKyAg
ICApOworCisgICAgZnJhbWVWaWV3LnNldENvbnN0cmFpbnNTY3JvbGxpbmdUb0NvbnRlbnRFZGdl
KGZhbHNlKTsKKyAgICBmcmFtZVZpZXcubm90aWZ5U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHJvdW5k
ZWRJbnRQb2ludChzY3JvbGxQb3NpdGlvbikpOworICAgIGZyYW1lVmlldy5zZXRDb25zdHJhaW5z
U2Nyb2xsaW5nVG9Db250ZW50RWRnZSh0cnVlKTsKKyAgICBmcmFtZVZpZXcuc2V0SW5Qcm9ncmFt
bWF0aWNTY3JvbGwob2xkUHJvZ3JhbW1hdGljU2Nyb2xsKTsKKworICAgIGlmICghcHJvZ3JhbW1h
dGljU2Nyb2xsICYmIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPT0gU3luY1Njcm9sbGlu
Z0xheWVyUG9zaXRpb24pCisgICAgICAgIHN5bmNWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJQb3Np
dGlvbnMoZnJhbWVWaWV3LnJlY3RGb3JGaXhlZFBvc2l0aW9uTGF5b3V0KCkpOworCisgICAgR3Jh
cGhpY3NMYXllciogc2Nyb2xsTGF5ZXIgPSBzY3JvbGxMYXllckZvckZyYW1lVmlldyhmcmFtZVZp
ZXcpOworICAgIGlmICghc2Nyb2xsTGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIEdyYXBo
aWNzTGF5ZXIqIGNvdW50ZXJTY3JvbGxpbmdMYXllciA9IGNvdW50ZXJTY3JvbGxpbmdMYXllckZv
ckZyYW1lVmlldyhmcmFtZVZpZXcpOworICAgIEdyYXBoaWNzTGF5ZXIqIGluc2V0Q2xpcExheWVy
ID0gaW5zZXRDbGlwTGF5ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKKyAgICBHcmFwaGljc0xh
eWVyKiBjb250ZW50U2hhZG93TGF5ZXIgPSBjb250ZW50U2hhZG93TGF5ZXJGb3JGcmFtZVZpZXco
ZnJhbWVWaWV3KTsKKyAgICBHcmFwaGljc0xheWVyKiBzY3JvbGxlZENvbnRlbnRzTGF5ZXIgPSBy
b290Q29udGVudExheWVyRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7CisgICAgR3JhcGhpY3NMYXll
ciogaGVhZGVyTGF5ZXIgPSBoZWFkZXJMYXllckZvckZyYW1lVmlldyhmcmFtZVZpZXcpOworICAg
IEdyYXBoaWNzTGF5ZXIqIGZvb3RlckxheWVyID0gZm9vdGVyTGF5ZXJGb3JGcmFtZVZpZXcoZnJh
bWVWaWV3KTsKKworICAgIEFTU0VSVChmcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb24oKSA9PSByb3Vu
ZGVkSW50UG9pbnQoc2Nyb2xsUG9zaXRpb24pKTsKKyAgICBMYXlvdXRQb2ludCBzY3JvbGxQb3Np
dGlvbkZvckZpeGVkID0gdmlzdWFsVmlld3BvcnRFbmFibGVkKCkgPyBmcmFtZVZpZXcubGF5b3V0
Vmlld3BvcnRPcmlnaW4oKSA6IGZyYW1lVmlldy5zY3JvbGxQb3NpdGlvbkZvckZpeGVkUG9zaXRp
b24oKTsKKyAgICBmbG9hdCB0b3BDb250ZW50SW5zZXQgPSBmcmFtZVZpZXcudG9wQ29udGVudElu
c2V0KCk7CisKKyAgICBGbG9hdFBvaW50IHBvc2l0aW9uRm9ySW5zZXRDbGlwTGF5ZXI7CisgICAg
aWYgKGluc2V0Q2xpcExheWVyKQorICAgICAgICBwb3NpdGlvbkZvckluc2V0Q2xpcExheWVyID0g
RmxvYXRQb2ludChpbnNldENsaXBMYXllci0+cG9zaXRpb24oKS54KCksIEZyYW1lVmlldzo6eVBv
c2l0aW9uRm9ySW5zZXRDbGlwTGF5ZXIoc2Nyb2xsUG9zaXRpb24sIHRvcENvbnRlbnRJbnNldCkp
OworICAgIEZsb2F0UG9pbnQgcG9zaXRpb25Gb3JDb250ZW50c0xheWVyID0gZnJhbWVWaWV3LnBv
c2l0aW9uRm9yUm9vdENvbnRlbnRMYXllcigpOworICAgIAorICAgIEZsb2F0UG9pbnQgcG9zaXRp
b25Gb3JIZWFkZXJMYXllciA9IEZsb2F0UG9pbnQoc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZC54KCks
IEZyYW1lVmlldzo6eVBvc2l0aW9uRm9ySGVhZGVyTGF5ZXIoc2Nyb2xsUG9zaXRpb24sIHRvcENv
bnRlbnRJbnNldCkpOworICAgIEZsb2F0UG9pbnQgcG9zaXRpb25Gb3JGb290ZXJMYXllciA9IEZs
b2F0UG9pbnQoc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZC54KCksCisgICAgICAgIEZyYW1lVmlldzo6
eVBvc2l0aW9uRm9yRm9vdGVyTGF5ZXIoc2Nyb2xsUG9zaXRpb24sIHRvcENvbnRlbnRJbnNldCwg
ZnJhbWVWaWV3LnRvdGFsQ29udGVudHNTaXplKCkuaGVpZ2h0KCksIGZyYW1lVmlldy5mb290ZXJI
ZWlnaHQoKSkpOworCisgICAgaWYgKHByb2dyYW1tYXRpY1Njcm9sbCB8fCBzY3JvbGxpbmdMYXll
clBvc2l0aW9uQWN0aW9uID09IFNldFNjcm9sbGluZ0xheWVyUG9zaXRpb24pIHsKKyAgICAgICAg
c2Nyb2xsTGF5ZXItPnNldFBvc2l0aW9uKC1mcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb24oKSk7Cisg
ICAgICAgIGlmIChjb3VudGVyU2Nyb2xsaW5nTGF5ZXIpCisgICAgICAgICAgICBjb3VudGVyU2Ny
b2xsaW5nTGF5ZXItPnNldFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uRm9yRml4ZWQpOworICAgICAg
ICBpZiAoaW5zZXRDbGlwTGF5ZXIpCisgICAgICAgICAgICBpbnNldENsaXBMYXllci0+c2V0UG9z
aXRpb24ocG9zaXRpb25Gb3JJbnNldENsaXBMYXllcik7CisgICAgICAgIGlmIChjb250ZW50U2hh
ZG93TGF5ZXIpCisgICAgICAgICAgICBjb250ZW50U2hhZG93TGF5ZXItPnNldFBvc2l0aW9uKHBv
c2l0aW9uRm9yQ29udGVudHNMYXllcik7CisgICAgICAgIGlmIChzY3JvbGxlZENvbnRlbnRzTGF5
ZXIpCisgICAgICAgICAgICBzY3JvbGxlZENvbnRlbnRzTGF5ZXItPnNldFBvc2l0aW9uKHBvc2l0
aW9uRm9yQ29udGVudHNMYXllcik7CisgICAgICAgIGlmIChoZWFkZXJMYXllcikKKyAgICAgICAg
ICAgIGhlYWRlckxheWVyLT5zZXRQb3NpdGlvbihwb3NpdGlvbkZvckhlYWRlckxheWVyKTsKKyAg
ICAgICAgaWYgKGZvb3RlckxheWVyKQorICAgICAgICAgICAgZm9vdGVyTGF5ZXItPnNldFBvc2l0
aW9uKHBvc2l0aW9uRm9yRm9vdGVyTGF5ZXIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNjcm9s
bExheWVyLT5zeW5jUG9zaXRpb24oLWZyYW1lVmlldy5zY3JvbGxQb3NpdGlvbigpKTsKKyAgICAg
ICAgaWYgKGNvdW50ZXJTY3JvbGxpbmdMYXllcikKKyAgICAgICAgICAgIGNvdW50ZXJTY3JvbGxp
bmdMYXllci0+c3luY1Bvc2l0aW9uKHNjcm9sbFBvc2l0aW9uRm9yRml4ZWQpOworICAgICAgICBp
ZiAoaW5zZXRDbGlwTGF5ZXIpCisgICAgICAgICAgICBpbnNldENsaXBMYXllci0+c3luY1Bvc2l0
aW9uKHBvc2l0aW9uRm9ySW5zZXRDbGlwTGF5ZXIpOworICAgICAgICBpZiAoY29udGVudFNoYWRv
d0xheWVyKQorICAgICAgICAgICAgY29udGVudFNoYWRvd0xheWVyLT5zeW5jUG9zaXRpb24ocG9z
aXRpb25Gb3JDb250ZW50c0xheWVyKTsKKyAgICAgICAgaWYgKHNjcm9sbGVkQ29udGVudHNMYXll
cikKKyAgICAgICAgICAgIHNjcm9sbGVkQ29udGVudHNMYXllci0+c3luY1Bvc2l0aW9uKHBvc2l0
aW9uRm9yQ29udGVudHNMYXllcik7CisgICAgICAgIGlmIChoZWFkZXJMYXllcikKKyAgICAgICAg
ICAgIGhlYWRlckxheWVyLT5zeW5jUG9zaXRpb24ocG9zaXRpb25Gb3JIZWFkZXJMYXllcik7Cisg
ICAgICAgIGlmIChmb290ZXJMYXllcikKKyAgICAgICAgICAgIGZvb3RlckxheWVyLT5zeW5jUG9z
aXRpb24ocG9zaXRpb25Gb3JGb290ZXJMYXllcik7CisgICAgfQorfQorCiB2b2lkIEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbGFibGVBcmVhU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2Uo
U2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhLCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmll
bnRhdGlvbikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtNDM0LDcgKzQ1NSw3
IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6Y2xlYXJTdGF0ZVRyZWUoKQogICAg
IG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5jbGVhcigpOwogfQogCi12b2lkIEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnN5bmNDaGlsZFBvc2l0aW9ucyhjb25zdCBMYXlvdXRSZWN0JiB2aWV3cG9y
dFJlY3QpCit2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNWaWV3cG9ydENvbnN0
cmFpbmVkTGF5ZXJQb3NpdGlvbnMoY29uc3QgTGF5b3V0UmVjdCYgdmlld3BvcnRSZWN0KQogewog
ICAgIGlmICghbV9zY3JvbGxpbmdTdGF0ZVRyZWUtPnJvb3RTdGF0ZU5vZGUoKSkKICAgICAgICAg
cmV0dXJuOwpAQCAtNDQzLDYgKzQ2NCw4IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjo6c3luY0NoaWxkUG9zaXRpb25zKGNvbnN0IExheW91dFJlY3QmIHZpZXdwb3J0UmVjCiAgICAg
aWYgKCFjaGlsZHJlbikKICAgICAgICAgcmV0dXJuOwogCisgICAgTE9HX1dJVEhfU1RSRUFNKFNj
cm9sbGluZywgc3RyZWFtIDw8ICJBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzeW5jQ2hpbGRQ
b3NpdGlvbnMgZm9yIHZpZXdwb3J0IHJlY3QgIiA8PCB2aWV3cG9ydFJlY3QpOworCiAgICAgLy8g
RklYTUU6IFdlJ2xsIGhhdmUgdG8gdHJhdmVyc2UgZGVlcGVyIGludG8gdGhlIHRyZWUgYXQgc29t
ZSBwb2ludC4KICAgICBmb3IgKGF1dG8mIGNoaWxkIDogKmNoaWxkcmVuKQogICAgICAgICBjaGls
ZC0+c3luY0xheWVyUG9zaXRpb25Gb3JWaWV3cG9ydFJlY3Qodmlld3BvcnRSZWN0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuaAppbmRleCAzY2JiNGYzYjZlY2MxODBlNjg3YzZmM2E5NGUwMjc3NjRhYWQ5MTZj
Li40OTZhMWJjNGRkZWEwMjczNDk0OTA4M2UxZjI2NDQyYjk3MzkwMjk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5oCkBAIC0xMDMsNiArMTAzLDggQEAgcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHVwZGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdOb2RlSUQsIEdyYXBoaWNzTGF5
ZXIqIHNjcm9sbExheWVyLCBHcmFwaGljc0xheWVyKiBzY3JvbGxlZENvbnRlbnRzTGF5ZXIsIEdy
YXBoaWNzTGF5ZXIqIGNvdW50ZXJTY3JvbGxpbmdMYXllciwgR3JhcGhpY3NMYXllciogaW5zZXRD
bGlwTGF5ZXIsIGNvbnN0IFNjcm9sbGluZ0dlb21ldHJ5KiA9IG51bGxwdHIpIG92ZXJyaWRlOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlKFNjcm9s
bGluZ05vZGVJRCwgR3JhcGhpY3NMYXllciogc2Nyb2xsTGF5ZXIsIEdyYXBoaWNzTGF5ZXIqIHNj
cm9sbGVkQ29udGVudHNMYXllciwgY29uc3QgU2Nyb2xsaW5nR2VvbWV0cnkqID0gbnVsbHB0cikg
b3ZlcnJpZGU7CiAgICAgCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWNvbmNpbGVTY3JvbGxp
bmdTdGF0ZShGcmFtZVZpZXcmLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgTGF5b3V0Vmlld3Bv
cnRPcmlnaW5Pck92ZXJyaWRlUmVjdCYsIGJvb2wgcHJvZ3JhbW1hdGljU2Nyb2xsLCBTZXRPclN5
bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKSBvdmVycmlkZTsKKwogICAgIGJvb2wgaXNSdWJiZXJC
YW5kSW5Qcm9ncmVzcygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0U2Nyb2xsUGlubmlu
Z0JlaGF2aW9yKFNjcm9sbFBpbm5pbmdCZWhhdmlvcikgb3ZlcnJpZGU7CiAKQEAgLTExMCw3ICsx
MTIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpIGNvbnN0
IG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN5bmNDaGlsZFBv
c2l0aW9ucyhjb25zdCBMYXlvdXRSZWN0JiB2aWV3cG9ydFJlY3QpIG92ZXJyaWRlOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc3luY1ZpZXdwb3J0Q29uc3RyYWluZWRMYXllclBvc2l0aW9ucyhj
b25zdCBMYXlvdXRSZWN0JiB2aWV3cG9ydFJlY3QpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2Nyb2xsYWJsZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZShTY3JvbGxhYmxl
QXJlYSYsIFNjcm9sbGJhck9yaWVudGF0aW9uKSBvdmVycmlkZTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKFN5bmNocm9ub3VzU2Nyb2xs
aW5nUmVhc29ucykgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCBjMjRkYmE0NDZiNmQ4ZTc1MTY3Zjkz
OGEyYzA2Njg1ZjU5ZGJmN2Y2Li43MmJkNTk0NmEwMjY2OWQ3MDI5NTQwN2FiMWEzYzE0OThjNzk0
ZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9U
eXBlQ2FzdHMuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiAjaWYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtMTE3LDYgKzExOCw5IEBA
IHB1YmxpYzoKICAgICAvLyBTaG91bGQgYmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBnaXZlbiBmcmFt
ZSB2aWV3IGhhcyBiZWVuIGxhaWQgb3V0LgogICAgIHZpcnR1YWwgdm9pZCBmcmFtZVZpZXdMYXlv
dXRVcGRhdGVkKEZyYW1lVmlldyYpIHsgfQogCisgICAgdXNpbmcgTGF5b3V0Vmlld3BvcnRPcmln
aW5Pck92ZXJyaWRlUmVjdCA9IFdURjo6VmFyaWFudDxPcHRpb25hbDxGbG9hdFBvaW50PiwgT3B0
aW9uYWw8RmxvYXRSZWN0Pj47CisgICAgdmlydHVhbCB2b2lkIHJlY29uY2lsZVNjcm9sbGluZ1N0
YXRlKEZyYW1lVmlldyYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBMYXlvdXRWaWV3cG9ydE9y
aWdpbk9yT3ZlcnJpZGVSZWN0JiwgYm9vbCAvKiBwcm9ncmFtbWF0aWNTY3JvbGwgKi8sIFNldE9y
U3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pIHsgfQorCiAgICAgLy8gU2hvdWxkIGJlIGNhbGxl
ZCB3aGVuZXZlciB0aGUgc2xvdyByZXBhaW50IG9iamVjdHMgY291bnRlciBjaGFuZ2VzIGJldHdl
ZW4gemVybyBhbmQgb25lLgogICAgIHZvaWQgZnJhbWVWaWV3SGFzU2xvd1JlcGFpbnRPYmplY3Rz
RGlkQ2hhbmdlKEZyYW1lVmlldyYpOwogCkBAIC0xNzIsNyArMTc2LDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdOb2RlSUQs
IEdyYXBoaWNzTGF5ZXIqIC8qc2Nyb2xsTGF5ZXIqLywgR3JhcGhpY3NMYXllciogLypzY3JvbGxl
ZENvbnRlbnRzTGF5ZXIqLywgR3JhcGhpY3NMYXllciogLypjb3VudGVyU2Nyb2xsaW5nTGF5ZXIq
LywgR3JhcGhpY3NMYXllciogLyppbnNldENsaXBMYXllciovLCBjb25zdCBTY3JvbGxpbmdHZW9t
ZXRyeSogPSBudWxscHRyKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlKFNjcm9sbGluZ05vZGVJRCwgR3JhcGhpY3NMYXllciogLypzY3JvbGxMYXllciov
LCBHcmFwaGljc0xheWVyKiAvKnNjcm9sbGVkQ29udGVudHNMYXllciovLCBjb25zdCBTY3JvbGxp
bmdHZW9tZXRyeSogPSBudWxscHRyKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc3luY0NoaWxkUG9z
aXRpb25zKGNvbnN0IExheW91dFJlY3QmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3luY1ZpZXdw
b3J0Q29uc3RyYWluZWRMYXllclBvc2l0aW9ucyhjb25zdCBMYXlvdXRSZWN0JikgeyB9CiAgICAg
dmlydHVhbCBTdHJpbmcgc2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0KCkgY29uc3Q7CiAgICAgdmly
dHVhbCBib29sIGlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc1Njcm9sbFNuYXBJblByb2dyZXNzKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggODQ0ZmE2
ZWM1YThkNDg5YTYwMTNlNTc0OTVmNzc3MzBmMDQ1ZTUxMy4uNjJmYjFiNjJmOTdhZTExNTIyNWYx
MjJlZDJkMzU0YjZmNzNmZWNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAK
QEAgLTEyMSw4ICsxMjEsOCBAQCBGbG9hdFJlY3QgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZTo6bGF5b3V0Vmlld3BvcnRGb3JTY3JvbGxQb3NpdGlvbihjb25zdAogICAgIExheW91dFBv
aW50IG5ld0xvY2F0aW9uID0gRnJhbWVWaWV3Ojpjb21wdXRlTGF5b3V0Vmlld3BvcnRPcmlnaW4o
TGF5b3V0UmVjdCh2aXN1YWxWaWV3cG9ydCksIExheW91dFBvaW50KG1pbkxheW91dFZpZXdwb3J0
T3JpZ2luKCkpLCBMYXlvdXRQb2ludChtYXhMYXlvdXRWaWV3cG9ydE9yaWdpbigpKSwgbGF5b3V0
Vmlld3BvcnQpOwogCiAgICAgaWYgKGxheW91dFZpZXdwb3J0LmxvY2F0aW9uKCkgIT0gbmV3TG9j
YXRpb24pIHsKLSAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICIg
bmV3IGxheW91dFZpZXdwb3J0ICIgPDwgbGF5b3V0Vmlld3BvcnQpOwogICAgICAgICBsYXlvdXRW
aWV3cG9ydC5zZXRMb2NhdGlvbihuZXdMb2NhdGlvbik7CisgICAgICAgIExPR19XSVRIX1NUUkVB
TShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiIG5ldyBsYXlvdXRWaWV3cG9ydCAiIDw8IGxheW91dFZp
ZXdwb3J0KTsKICAgICB9CiAKICAgICByZXR1cm4gbGF5b3V0Vmlld3BvcnQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2dnaW5nLmgKaW5kZXggNGZkNWU2YzhkMTZiNDBlZGU0OGZkYjFmNWJmNzZkODEyZGU1
ZmMwMS4uMDRjZjcxMTZiMTI5NDc1YjEzYjdjZjMxMWJhZjIyYmZmZWZjMGU1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvZ2dpbmcuaApAQCAtNzksNiArNzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgTShTdG9yYWdlQVBJKSBcCiAgICAgTShTVkcpIFwKICAgICBNKFRleHRBdXRvc2l6aW5n
KSBcCisgICAgTShUaWxpbmcpIFwKICAgICBNKFRocmVhZGluZykgXAogICAgIE0oVVJMUGFyc2Vy
KSBcCiAgICAgTShXZWJBdWRpbykgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNw
cAppbmRleCBjMzkxZGViMzFhZTEwZTkzOGQ1MWUwNWE3NGY5ODM4NjJlMWJjNWViLi5iNGFhZjk3
MWUzM2FjNzYzMjNkOWRmYzcyY2VlODFhY2IyYzJlY2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmNwcApAQCAtNDE4LDcgKzQxOCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6bm90
aWZ5UGFnZVRoYXRDb250ZW50QXJlYVdpbGxQYWludCgpIGNvbnN0CiAKIHZvaWQgU2Nyb2xsVmll
dzo6c2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogewotICAgIExP
R19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsVmlldzo6c2V0U2Nyb2xs
T2Zmc2V0ICIgPDwgb2Zmc2V0KTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJl
YW0gPDwgIlxuU2Nyb2xsVmlldzo6c2V0U2Nyb2xsT2Zmc2V0ICIgPDwgb2Zmc2V0KTsKIAogICAg
IEludFBvaW50IGNvbnN0cmFpbmVkT2Zmc2V0ID0gb2Zmc2V0OwogICAgIGlmIChjb25zdHJhaW5z
U2Nyb2xsaW5nVG9Db250ZW50RWRnZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvbnRyb2xsZXIuY3BwCmluZGV4IGY3ZjVhZGY3MTMwOTk4
ZjBkNDY3OTk5MmVjMjQzZTlmMDVmY2FiZWUuLjQ1NGIwODNhYTc3NjgwM2RmOTg0YzU3M2I4MmZh
OTdkOTdhODBmNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL1RpbGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9UaWxlQ29udHJvbGxlci5jcHAKQEAgLTQ1MSw3ICs0NTEsNyBAQCB2b2lkIFRpbGVD
b250cm9sbGVyOjphZGp1c3RUaWxlQ292ZXJhZ2VSZWN0KEZsb2F0UmVjdCYgY292ZXJhZ2VSZWN0
LCBjb25zdCBGbG9hdAogICAgIEZsb2F0UmVjdCBjb3ZlcmFnZUJvdW5kcyA9IGJvdW5kc0ZvclNp
emUobmV3U2l6ZSk7CiAgICAgCiAgICAgRmxvYXRSZWN0IGNvdmVyYWdlID0gZXhwYW5kUmVjdFdp
dGhpblJlY3QodmlzaWJsZVJlY3QsIGNvdmVyYWdlU2l6ZSwgY292ZXJhZ2VCb3VuZHMpOwotICAg
IExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiVGlsZUNvbnRyb2xsZXI6OmNv
bXB1dGVUaWxlQ292ZXJhZ2VSZWN0IG5ld1NpemU9IiA8PCBuZXdTaXplIDw8ICIgbW9kZSAiIDw8
IG1fdGlsZUNvdmVyYWdlIDw8ICIgZXhwYW5kZWQgdG8gIiA8PCBjb3ZlcmFnZVNpemUgPDwgIiBi
b3VuZHMgd2l0aCBtYXJnaW4gIiA8PCBjb3ZlcmFnZUJvdW5kcyA8PCAiIGNvdmVyYWdlICIgPDwg
Y292ZXJhZ2UpOworICAgIExPR19XSVRIX1NUUkVBTShUaWxpbmcsIHN0cmVhbSA8PCAiVGlsZUNv
bnRyb2xsZXI6OmNvbXB1dGVUaWxlQ292ZXJhZ2VSZWN0IG5ld1NpemU9IiA8PCBuZXdTaXplIDw8
ICIgbW9kZSAiIDw8IG1fdGlsZUNvdmVyYWdlIDw8ICIgZXhwYW5kZWQgdG8gIiA8PCBjb3ZlcmFn
ZVNpemUgPDwgIiBib3VuZHMgd2l0aCBtYXJnaW4gIiA8PCBjb3ZlcmFnZUJvdW5kcyA8PCAiIGNv
dmVyYWdlICIgPDwgY292ZXJhZ2UpOwogICAgIGNvdmVyYWdlUmVjdC51bml0ZShjb3ZlcmFnZSk7
CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4
IDFlYzBkYTRiMjE5MDQxZTU2YWZmNWI3MDAwMjNjMTM4NTBjNjNiOTUuLjk0ZWM2NzNjNDcyNzNm
ZTZkM2M0N2ZlZDExZmFmOTg5M2VkMjU2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcApAQCAtODI0LDYgKzgyNCw4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0
ZUxheWVyUG9zaXRpb25zQWZ0ZXJEb2N1bWVudFNjcm9sbCgpCiB7CiAgICAgQVNTRVJUKHRoaXMg
PT0gcmVuZGVyZXIoKS52aWV3KCkubGF5ZXIoKSk7CiAKKyAgICBMT0coU2Nyb2xsaW5nLCAiUmVu
ZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJEb2N1bWVudFNjcm9sbCIpOworCiAg
ICAgUmVuZGVyR2VvbWV0cnlNYXAgZ2VvbWV0cnlNYXAoVXNlVHJhbnNmb3Jtcyk7CiAgICAgdXBk
YXRlTGF5ZXJQb3NpdGlvbnNBZnRlclNjcm9sbCgmZ2VvbWV0cnlNYXApOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4
IGFhNDg1N2IwM2NkZTJiYTlmNmRhOGI1NzExODNiMjEzYWJhNzIwY2EuLjhmNDA0NTQyMmYwNjk2
MmQ2NGQ3YmI0ZTBjY2I0MmM1MDNhMzlkMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTMwNTMsOSArMzA1MywxMiBA
QCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3QgVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mbyYgdmlzaQogICAgIGlmICghdmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mby5pc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5KCkpCiAgICAgICAg
IGZyYW1lVmlldy5zZXRDdXN0b21TaXplRm9yUmVzaXplRXZlbnQoZXhwYW5kZWRJbnRTaXplKHZp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8udW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29y
ZGluYXRlcygpLnNpemUoKSkpOwogCi0gICAgZnJhbWVWaWV3LnNldENvbnN0cmFpbnNTY3JvbGxp
bmdUb0NvbnRlbnRFZGdlKGZhbHNlKTsKLSAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsT2Zmc2V0KGZy
YW1lVmlldy5zY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pKTsKLSAgICBm
cmFtZVZpZXcuc2V0Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UodHJ1ZSk7CisgICAg
aWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNj
cm9sbGluZ0Nvb3JkaW5hdG9yKCkpIHsKKyAgICAgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBjdXN0
b21GaXhlZFBvc2l0aW9uUmVjdDsKKyAgICAgICAgaWYgKG1faXNJblN0YWJsZVN0YXRlKQorICAg
ICAgICAgICAgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QgPSB2aXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvLmN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KCk7CisgICAgICAgIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLT5yZWNvbmNpbGVTY3JvbGxpbmdTdGF0ZShmcmFtZVZpZXcsIHNjcm9sbFBvc2l0aW9u
LCBjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCwgZmFsc2UsIFNldE9yU3luY1Njcm9sbGluZ0xheWVy
UG9zaXRpb246OlN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKTsKKyAgICB9CiB9CiAKIHZvaWQg
V2ViUGFnZTo6d2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpvb21pbmcoKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDcxMmFmOTAz
OGUyNzI3MTJmM2ExNGRmYTEwY2NiYjczNDE3YzVjZWQuLjI1MWE1ZjAzM2Q4MjBhZDU2Njg5M2Ji
OTkwYzIwYjcxMGVlYjE0YTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNi0xMS0xMiAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TIFdLMl0g
U2hhcmUgc29tZSBjb2RlIHdpdGggTWFjIGZvciBwb3N0LWFzeW5jLXNjcm9sbCBzdGF0ZSByZWNv
bmNpbGlhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY0Njk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdCB0aGF0IHBhbnMgdGhlIHBhZ2UsIGFuZCBkdW1wcyBHcmFwaGljc0xheWVycyBiZWZv
cmUgbGV0dGluZyBnby4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
cGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBz
Y3JvbGxpbmdjb29yZGluYXRvci9pb3Mvc3luYy1sYXllci1wb3NpdGlvbnMtYWZ0ZXItc2Nyb2xs
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9z
L3N5bmMtbGF5ZXItcG9zaXRpb25zLWFmdGVyLXNjcm9sbC5odG1sOiBBZGRlZC4KKwogMjAxNi0x
MS0xMCAgQWFyb24gQ2h1ICA8YWFyb25fY2h1QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBBWEk6IGNsYXJpZnkgYnV0dG9uIHJvbGVzIChlLmcuIHRvZ2dsZSBvciBwb3B1cCBi
dXR0b24pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1NDQ5NWM0ZTcxYTM4NzFkZWMwYjM0NWQ5Nzhj
ZTE1NzAxZTIwYTRiLi4zM2ZhMDdjYjZkZThlZTA2ODU3ZjYyM2NjZDQ4MDFjNWNiNGRhNWUyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIzLDYgKzIzLDcgQEAgZmFzdC92aWV3cG9ydC9pb3MgWyBT
a2lwIF0KIGZhc3QvZXZlbnRzL2lvcyBbIFNraXAgXQogZmFzdC9ldmVudHMvdG91Y2gvaW9zIFsg
U2tpcCBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBTa2lwIF0KK3Njcm9sbGluZ2Nvb3JkaW5hdG9y
L2lvcyBbIFNraXAgXQogZmFzdC9jb250ZW50LW9ic2VydmF0aW9uIFsgU2tpcCBdCiBtZWRpYS9t
YWMgWyBTa2lwIF0KIG1lZGlhL2NvbnRyb2xzL2lwYWQgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDZkMDFiMDczNjQxMzNiOTA0YzQyOGYzZWI3YjIxZWE1MDMzYTRiYzUuLmI3NzFlOTIzY2E4
Njc5MjQwYWZlZmYwMzFkOGVhYTNmM2Q5Y2RiMjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy1zaW11bGF0b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOCw2ICs4
LDcgQEAKIAogZmFzdC9zY3JvbGxpbmcvaW9zIFsgUGFzcyBdCiBmYXN0L3ZpZXdwb3J0L2lvcyBb
IFBhc3MgXQorc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zIFsgUGFzcyBdCiBlZGl0aW5nL3NlbGVj
dGlvbi9jaGFyYWN0ZXItZ3JhbnVsYXJpdHktcmVjdC5odG1sIFsgUGFzcyBdCiAKICMvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Njcm9s
bGluZ2Nvb3JkaW5hdG9yL2lvcy9zeW5jLWxheWVyLXBvc2l0aW9ucy1hZnRlci1zY3JvbGwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL3N5bmMtbGF5
ZXItcG9zaXRpb25zLWFmdGVyLXNjcm9sbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJjZjVh
MTAzZTMxM2FlYTAzY2Q2NzEyMWYxYTYyNGEwZDAyNjViYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9zeW5jLWxheWVyLXBvc2l0aW9ucy1h
ZnRlci1zY3JvbGwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKK3Zpc2libGVSZWN0QWZ0
ZXJTY3JvbGw6IHsibGVmdCI6MCwidG9wIjoxNTYuNSwid2lkdGgiOjgwMCwiaGVpZ2h0Ijo2MDB9
CisoR3JhcGhpY3NMYXllcgorICAoYW5jaG9yIDAuMDAgMC4wMCkKKyAgKGJvdW5kcyAxMzA4LjAw
IDIwMjEuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3Vu
ZHMgMTMwOC4wMCAyMDIxLjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAoY2hp
bGRyZW4gMQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxMi4w
MCAxMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDEwMC4wMCAxMDAuMDApCisgICAgICAgICAgKGNv
bnRlbnRzT3BhcXVlIDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL3N5bmMtbGF5ZXIt
cG9zaXRpb25zLWFmdGVyLXNjcm9sbC5odG1sIGIvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRp
bmF0b3IvaW9zL3N5bmMtbGF5ZXItcG9zaXRpb25zLWFmdGVyLXNjcm9sbC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM4M2ZiYjFkMjU4YzZiMDM1YWY4MTUyMmJjYWZlYzE5N2UwM2IyNDIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9pb3Mvc3luYy1sYXllci1w
b3NpdGlvbnMtYWZ0ZXItc2Nyb2xsLmh0bWwKQEAgLTAsMCArMSwxMjAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAg
ICAgICAgICB3aWR0aDogMTMwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAyMDAwcHg7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIC5maXhlZCB7CisgICAgICAgICAgICBwb3NpdGlvbjog
Zml4ZWQ7CisgICAgICAgICAgICB0b3A6IDEwcHg7CisgICAgICAgICAgICBsZWZ0OiAxMnB4Owor
ICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgIH0KKyAgICA8L3N0eWxl
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldERyYWdVSVNj
cmlwdChzdGFydFgsIHN0YXJ0WSwgZW5kWCwgZW5kWSkKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuIGAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdmFyIG1vdmVkRmluZ2VyRG93
blN0cmVhbSA9IHsKKyAgICAgICAgICAgICAgICAgICAgZXZlbnRzIDogWworICAgICAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0VHlwZSA6ICJo
YW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lT2Zmc2V0IDogMCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0b3VjaGVzIDogWworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFR5
cGUgOiAiZmluZ2VyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoYXNl
IDogImJlZ2FuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkIDogMSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHggOiAke3N0YXJ0WH0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5IDogJHtzdGFydFl9CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCisg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludGVycG9sYXRlIDogImxpbmVhciIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGltZXN0ZXA6IDAuMDI1LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXJ0RXZlbnQgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlucHV0VHlwZSA6ICJoYW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlt
ZU9mZnNldCA6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdWNoZXMgOiBb
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImZpbmdlciIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhhc2UgOiAibW92ZWQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkIDogMSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB4IDogJHtzdGFydFh9LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHkgOiAke3N0YXJ0WX0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW5kRXZlbnQgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0VHlwZSA6
ICJoYW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZU9mZnNldCA6IDAu
MTUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdWNoZXMgOiBbCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImZpbmdlciIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGhhc2UgOiAibW92ZWQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlkIDogMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB4IDogJHtlbmRYfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB5IDogJHtlbmRZfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICBdCisgICAgICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxl
ci5zZW5kRXZlbnRTdHJlYW0oSlNPTi5zdHJpbmdpZnkobW92ZWRGaW5nZXJEb3duU3RyZWFtKSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENv
bXBsZXRlKEpTT04uc3RyaW5naWZ5KHVpQ29udHJvbGxlci5jb250ZW50VmlzaWJsZVJlY3QpKTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YDsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIGdldEZpbmdlclVwVUlTY3JpcHQoeCwgeSkKKyAgICAgICAgeworICAg
ICAgICAgICAgcmV0dXJuIGAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9s
bGVyLmxpZnRVcEF0UG9pbnQoJHt4fSwgJHt5fSwgMSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCcnKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YDsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIGRvVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5V
SVNjcmlwdCkKKyAgICAgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAgICAgd2luZG93LnNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdmFyIHhQb3MgPSAxMDA7Cisg
ICAgICAgICAgICAgICAgdmFyIHN0YXJ0WSA9IDMwMDsKKyAgICAgICAgICAgICAgICB2YXIgZW5k
WSA9IDEwMDsKKyAgICAgICAgICAgICAgICAvLyBTZW5kIHRvdWNoIGRvd24gYW5kIG1vdmVzIChr
ZWVwIHRoZSBmaW5nZXIgZG93bikuCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNj
cmlwdChnZXREcmFnVUlTY3JpcHQoeFBvcywgc3RhcnRZLCB4UG9zLCBlbmRZKSwgZnVuY3Rpb24o
dmlzaWJsZVJlY3RBZnRlclNjcm9sbCkgeworICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0
ID0gJ3Zpc2libGVSZWN0QWZ0ZXJTY3JvbGw6ICcgKyB2aXNpYmxlUmVjdEFmdGVyU2Nyb2xsICsg
J1xuJyArIGludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQpOworICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF5ZXJzJykudGV4dENvbnRlbnQgPSBy
ZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIC8vIE5vdyBzZW5kIHRoZSBmaW5lbCB0b3VjaCB1
cC4KKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChnZXRGaW5nZXJV
cFVJU2NyaXB0KHhQb3MsIGVuZFkpLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sIDApOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2Up
OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJmaXhlZCI+PC9k
aXY+Cis8cHJlIGlkPSJsYXllcnMiPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>