<?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>195501</bug_id>
          
          <creation_ts>2019-03-08 17:18:59 -0800</creation_ts>
          <short_desc>Make it clearer which data is protected by the two locks in ScrollingTree</short_desc>
          <delta_ts>2019-03-08 19:01:12 -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>InRadar</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>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1514277</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-08 17:18:59 -0800</bug_when>
    <thetext>Make it clearer which data is protected by the two locks in ScrollingTree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514282</commentid>
    <comment_count>1</comment_count>
      <attachid>364097</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-08 17:25:52 -0800</bug_when>
    <thetext>Created attachment 364097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514311</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-03-08 18:59:32 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/242670/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514314</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-08 19:01:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/48734245&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364097</attachid>
            <date>2019-03-08 17:25:52 -0800</date>
            <delta_ts>2019-03-08 17:33:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195501-20190308172552.patch</filename>
            <type>text/plain</type>
            <size>21903</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyNjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTcyMWVjNTNlZjJjMDli
ZjdmMWQ4MDhjZjIzMWMxYTkxYTIxMzczYi4uYTQ2YmVmNjlkYWMwMDc5MjZlZjQxNDlhMWFkMGFl
ZWVlMTE1NWU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE5LTAzLTA4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgaXQgY2xl
YXJlciB3aGljaCBkYXRhIGlzIHByb3RlY3RlZCBieSB0aGUgdHdvIGxvY2tzIGluIFNjcm9sbGlu
Z1RyZWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
NTUwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdh
dGhlciBTY3JvbGxpbmdUcmVlIG1lbWJlciB2YXJpYWJsZXMgaW50byB0d28gc3RydWN0cywgYW5k
IG5hbWUgdGhlIHN0cnVjdAorICAgICAgICBtZW1iZXJzIGFuZCB0aGUgbG9ja3MgdG8gbWFrZSBp
dCBjbGVhciB3aGljaCBkYXRhIGlzIHByb3RlY3RlZCBieSBlYWNoIGxvY2suCisgICAgICAgIAor
ICAgICAgICBXZSBvbmx5IG5lZWQgdG8gcHJvdGVjdCBkYXRhIHJlYWQgYnkgbXVsdGlwbGUgdGhy
ZWFkczsgdGhlc2UgYXJlIHRoZSBzY3JvbGxpbmcKKyAgICAgICAgdGhyZWFkLCB0aGUgZXZlbnQg
aGFuZGxpbmcgdGhyZWFkICh3aGljaCBydW5zIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6dHJ5VG9I
YW5kbGVXaGVlbEV2ZW50KCkpLAorICAgICAgICBhbmQgdGhlIG1haW4gdGhyZWFkLCB3aGljaCBw
b2tlcyB2YXJpb3VzIGJpdHMgb2YgcGluL3J1YmJlci1iYW5kaW5nIHN0YXRlLgorICAgICAgICBJ
ZGVhbGx5IHRoZSBtYWluIHRocmVhZCB3b3VsZCBhbHdheXMgcHVzaCBkYXRhIHRvIHRoZSBzY3Jv
bGxpbmcgdGhyZWFkIHZpYSBhIGNvbW1pdCwKKyAgICAgICAgYnV0IHRoYXQncyBub3Qgd2hhdCBo
YXBwZW5zIG5vdy4KKworICAgICAgICBTdXNwaWNpb3VzbHksIFNjcm9sbGluZ1RyZWU6OnNob3Vs
ZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KCkgdXNlcyB0aGUgcm9vdCBub2RlLAorICAg
ICAgICBzbyBzaG91bGQgcHJvYmFibHkgaG9sZCBhIGxvY2sgc2hhcmVkIHdpdGggdGhlIHNjcm9s
bGluZyB0aHJlYWQgKHdlYmtpdC5vcmcvYi8xOTU1MDIpLgorICAgICAgICAKKyAgICAgICAgKiBw
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWU6OnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmNvbW1pdFRyZWVTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRBc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGluZ0VuYWJs
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lU2Nyb2xs
UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6ZXZlbnRUcmFja2lu
Z1R5cGVGb3JQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjppc1J1YmJl
ckJhbmRJblByb2dyZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldE1h
aW5GcmFtZUlzUnViYmVyQmFuZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
Ojppc1Njcm9sbFNuYXBJblByb2dyZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWU6OnNldE1haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lUGluU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZTo6c2V0Q2FuUnViYmVyQmFuZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxQaW5uaW5nQmVoYXZpb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFydFN3aXBlR2VzdHVyZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpsYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpjbGVhckxhdGNoZWROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVBc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6dG91Y2hBY3Rpb25EYXRhQXRQb2ludCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjptYWluRnJhbWVTY3JvbGxQb3NpdGlvbik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjptYWluRnJhbWVMYXlvdXRWaWV3cG9ydCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0TGVm
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpydWJiZXJCYW5k
c0F0UmlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6cnVi
YmVyQmFuZHNBdEJvdHRvbSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlOjpydWJiZXJCYW5kc0F0VG9wKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYXNM
YXRjaGVkTm9kZSBjb25zdCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpzdHJldGNoQW1vdW50KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpG
bG9hdFBvaW50Ojppc1plcm8gY29uc3QpOgorCiAyMDE5LTAzLTA4ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNoYXJlIHNvbWUgY29kZSB0aGF0IHNl
dHMgQ0FMYXllciBwb3NpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZDI4Yzc3MjU2YzU1NThlYmRkYmI5YzU0ZTM1ODQ2NjBj
MGY3YjczMi4uZjBkNzFlMjRmNjNkMTA2MmFlNmNkODdiMTE3MjkyODcwYmRmZGYxYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTQ5
LDcgKzQ5LDcgQEAgU2Nyb2xsaW5nVHJlZTo6flNjcm9sbGluZ1RyZWUoKSA9IGRlZmF1bHQ7CiBi
b29sIFNjcm9sbGluZ1RyZWU6OnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKIHsKICAgICAvLyBUaGlzIG1ldGhv
ZCBpcyBpbnZva2VkIGJ5IHRoZSBldmVudCBoYW5kbGluZyB0aHJlYWQKLSAgICBMb2NrSG9sZGVy
IGxvY2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRlTXV0ZXgpOwog
CiAgICAgYm9vbCBzaG91bGRTZXRMYXRjaCA9IHdoZWVsRXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRj
aGluZygpOwogICAgIApAQCAtNTcsMTkgKzU3LDE5IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hv
dWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChzaG91bGRTZXRMYXRjaCkKLSAgICAg
ICAgbV9sYXRjaGVkTm9kZUlEID0gMDsKKyAgICAgICAgbV90cmVlU3RhdGUubGF0Y2hlZE5vZGVJ
RCA9IDA7CiAgICAgCi0gICAgaWYgKCFtX2V2ZW50VHJhY2tpbmdSZWdpb25zLmlzRW1wdHkoKSAm
JiBtX3Jvb3ROb2RlKSB7CisgICAgaWYgKCFtX3RyZWVTdGF0ZS5ldmVudFRyYWNraW5nUmVnaW9u
cy5pc0VtcHR5KCkgJiYgbV9yb290Tm9kZSkgewogICAgICAgICBhdXRvJiBmcmFtZVNjcm9sbGlu
Z05vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPigqbV9yb290
Tm9kZSk7CiAgICAgICAgIEZsb2F0UG9pbnQgcG9zaXRpb24gPSB3aGVlbEV2ZW50LnBvc2l0aW9u
KCk7Ci0gICAgICAgIHBvc2l0aW9uLm1vdmUoZnJhbWVTY3JvbGxpbmdOb2RlLnZpZXdUb0NvbnRl
bnRzT2Zmc2V0KG1fbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24pKTsKKyAgICAgICAgcG9zaXRpb24u
bW92ZShmcmFtZVNjcm9sbGluZ05vZGUudmlld1RvQ29udGVudHNPZmZzZXQobV90cmVlU3RhdGUu
bWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24pKTsKIAogICAgICAgICBjb25zdCBFdmVudE5hbWVzJiBu
YW1lcyA9IGV2ZW50TmFtZXMoKTsKICAgICAgICAgSW50UG9pbnQgcm91bmRlZFBvc2l0aW9uID0g
cm91bmRlZEludFBvaW50KHBvc2l0aW9uKTsKIAogICAgICAgICAvLyBFdmVudCByZWdpb25zIGFy
ZSBhZmZlY3RlZCBieSBwYWdlIHNjYWxlLCBzbyBubyBuZWVkIHRvIG1hcCB0aHJvdWdoIHNjYWxl
LgotICAgICAgICBib29sIGlzU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9IG1fZXZlbnRUcmFj
a2luZ1JlZ2lvbnMudHJhY2tpbmdUeXBlRm9yUG9pbnQobmFtZXMud2hlZWxFdmVudCwgcm91bmRl
ZFBvc2l0aW9uKSA9PSBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzCi0gICAgICAgICAgICB8fCBt
X2V2ZW50VHJhY2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KG5hbWVzLm1vdXNld2hl
ZWxFdmVudCwgcm91bmRlZFBvc2l0aW9uKSA9PSBUcmFja2luZ1R5cGU6OlN5bmNocm9ub3VzOwor
ICAgICAgICBib29sIGlzU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9IG1fdHJlZVN0YXRlLmV2
ZW50VHJhY2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KG5hbWVzLndoZWVsRXZlbnQs
IHJvdW5kZWRQb3NpdGlvbikgPT0gVHJhY2tpbmdUeXBlOjpTeW5jaHJvbm91cworICAgICAgICAg
ICAgfHwgbV90cmVlU3RhdGUuZXZlbnRUcmFja2luZ1JlZ2lvbnMudHJhY2tpbmdUeXBlRm9yUG9p
bnQobmFtZXMubW91c2V3aGVlbEV2ZW50LCByb3VuZGVkUG9zaXRpb24pID09IFRyYWNraW5nVHlw
ZTo6U3luY2hyb25vdXM7CiAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVh
bSA8PCAiU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHk6
IHdoZWVsRXZlbnQgYXQgIiA8PCB3aGVlbEV2ZW50LnBvc2l0aW9uKCkgPDwgIiBtYXBwZWQgdG8g
Y29udGVudCBwb2ludCAiIDw8IHBvc2l0aW9uIDw8ICIsIGluIG5vbi1mYXN0IHJlZ2lvbiAiIDw8
IGlzU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbik7CiAKICAgICAgICAgaWYgKGlzU3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbikKQEAgLTE1MCwxMyArMTUwLDEzIEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZTo6Y29tbWl0VHJlZVN0YXRlKHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IHNj
cm9sbGluCiAgICAgICAgICAgICB8fCByb290Tm9kZS0+aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9s
bGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpFdmVudFRyYWNraW5nUmVnaW9uKQogICAgICAg
ICAgICAgfHwgcm9vdE5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OlNjcm9sbGVkQ29udGVudHNMYXllcikKICAgICAgICAgICAgIHx8IHJvb3ROb2Rl
LT5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU6OkFz
eW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCkpKSB7Ci0gICAgICAgIExvY2tIb2xk
ZXIgbG9jayhtX211dGV4KTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRlTXV0
ZXgpOwogCiAgICAgICAgIGlmIChyb290U3RhdGVOb2RlQ2hhbmdlZCB8fCByb290Tm9kZS0+aGFz
Q2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsZWRDb250
ZW50c0xheWVyKSkKLSAgICAgICAgICAgIG1fbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24gPSBGbG9h
dFBvaW50KCk7CisgICAgICAgICAgICBtX3RyZWVTdGF0ZS5tYWluRnJhbWVTY3JvbGxQb3NpdGlv
biA9IHsgfTsKIAogICAgICAgICBpZiAocm9vdFN0YXRlTm9kZUNoYW5nZWQgfHwgcm9vdE5vZGUt
Pmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6RXZl
bnRUcmFja2luZ1JlZ2lvbikpCi0gICAgICAgICAgICBtX2V2ZW50VHJhY2tpbmdSZWdpb25zID0g
c2Nyb2xsaW5nU3RhdGVUcmVlLT5yb290U3RhdGVOb2RlKCktPmV2ZW50VHJhY2tpbmdSZWdpb25z
KCk7CisgICAgICAgICAgICBtX3RyZWVTdGF0ZS5ldmVudFRyYWNraW5nUmVnaW9ucyA9IHNjcm9s
bGluZ1N0YXRlVHJlZS0+cm9vdFN0YXRlTm9kZSgpLT5ldmVudFRyYWNraW5nUmVnaW9ucygpOwog
CiAgICAgICAgIGlmIChyb290U3RhdGVOb2RlQ2hhbmdlZCB8fCByb290Tm9kZS0+aGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlOjpBc3luY0ZyYW1lT3JP
dmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQpKQogICAgICAgICAgICAgbV9hc3luY0ZyYW1lT3JPdmVy
Zmxvd1Njcm9sbGluZ0VuYWJsZWQgPSBzY3JvbGxpbmdTdGF0ZVRyZWUtPnJvb3RTdGF0ZU5vZGUo
KS0+YXN5bmNGcmFtZU9yT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkKCk7CkBAIC0xNzYsNyArMTc2
LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpjb21taXRUcmVlU3RhdGUoc3RkOjp1bmlxdWVfcHRy
PFNjcm9sbGluZ1N0YXRlVHJlZT4gc2Nyb2xsaW4KICAgICB1cGRhdGVUcmVlRnJvbVN0YXRlTm9k
ZShyb290Tm9kZSwgb3JwaGFuTm9kZXMsIHVudmlzaXRlZE5vZGVzKTsKICAgICAKICAgICBmb3Ig
KGF1dG8gbm9kZUlEIDogdW52aXNpdGVkTm9kZXMpIHsKLSAgICAgICAgaWYgKG5vZGVJRCA9PSBt
X2xhdGNoZWROb2RlSUQpCisgICAgICAgIGlmIChub2RlSUQgPT0gbV90cmVlU3RhdGUubGF0Y2hl
ZE5vZGVJRCkKICAgICAgICAgICAgIGNsZWFyTGF0Y2hlZE5vZGUoKTsKICAgICAgICAgCiAgICAg
ICAgIExPRyhTY3JvbGxpbmcsICJTY3JvbGxpbmdUcmVlOjpjb21taXRUcmVlU3RhdGUgLSByZW1v
dmluZyB1bnZpc2l0ZWQgbm9kZSAlIiBQUkl1NjQsIG5vZGVJRCk7CkBAIC0yODcsMTEyICsyODcs
NjUgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpub3RpZnlSZWxhdGVkTm9kZXNSZWN1cnNpdmUoU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUmIGNoYW4KIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRB
c3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewotICAg
IExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKICAgICBtX2FzeW5jRnJhbWVPck92ZXJmbG93U2Ny
b2xsaW5nRW5hYmxlZCA9IGVuYWJsZWQ7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0TWFp
bkZyYW1lUGluU3RhdGUoYm9vbCBwaW5uZWRUb1RoZUxlZnQsIGJvb2wgcGlubmVkVG9UaGVSaWdo
dCwgYm9vbCBwaW5uZWRUb1RoZVRvcCwgYm9vbCBwaW5uZWRUb1RoZUJvdHRvbSkKLXsKLSAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7Ci0KLSAgICBtX21haW5GcmFtZVBp
bm5lZFRvVGhlTGVmdCA9IHBpbm5lZFRvVGhlTGVmdDsKLSAgICBtX21haW5GcmFtZVBpbm5lZFRv
VGhlUmlnaHQgPSBwaW5uZWRUb1RoZVJpZ2h0OwotICAgIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVU
b3AgPSBwaW5uZWRUb1RoZVRvcDsKLSAgICBtX21haW5GcmFtZVBpbm5lZFRvVGhlQm90dG9tID0g
cGlubmVkVG9UaGVCb3R0b207Ci19Ci0KLUZsb2F0UG9pbnQgU2Nyb2xsaW5nVHJlZTo6bWFpbkZy
YW1lU2Nyb2xsUG9zaXRpb24oKQotewotICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKLSAg
ICByZXR1cm4gbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbjsKLX0KLQotRmxvYXRSZWN0IFNjcm9s
bGluZ1RyZWU6Om1haW5GcmFtZUxheW91dFZpZXdwb3J0KCkKLXsKLSAgICBpZiAoIW1fcm9vdE5v
ZGUpCi0gICAgICAgIHJldHVybiB7IH07Ci0KLSAgICBhdXRvJiBmcmFtZVNjcm9sbGluZ05vZGUg
PSBkb3duY2FzdDxTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPigqbV9yb290Tm9kZSk7
Ci0gICAgcmV0dXJuIGZyYW1lU2Nyb2xsaW5nTm9kZS5sYXlvdXRWaWV3cG9ydCgpOwotfQotCiB2
b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQg
cG9zaXRpb24pCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwotICAgIG1fbWFpbkZy
YW1lU2Nyb2xsUG9zaXRpb24gPSBwb3NpdGlvbjsKKyAgICBMb2NrSG9sZGVyIGxvY2sobV90cmVl
U3RhdGVNdXRleCk7CisgICAgbV90cmVlU3RhdGUubWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24gPSBw
b3NpdGlvbjsKIH0KIAogVHJhY2tpbmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2ZW50VHJhY2tpbmdU
eXBlRm9yUG9pbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUsIEludFBvaW50IHApCiB7
Ci0gICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwotICAgIAotICAgIHJldHVybiBtX2V2ZW50
VHJhY2tpbmdSZWdpb25zLnRyYWNraW5nVHlwZUZvclBvaW50KGV2ZW50TmFtZSwgcCk7CisgICAg
TG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRlTXV0ZXgpOworICAgIHJldHVybiBtX3RyZWVTdGF0
ZS5ldmVudFRyYWNraW5nUmVnaW9ucy50cmFja2luZ1R5cGVGb3JQb2ludChldmVudE5hbWUsIHAp
OwogfQogCisvLyBDYW4gYmUgY2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkLgogYm9vbCBTY3Jv
bGxpbmdUcmVlOjppc1J1YmJlckJhbmRJblByb2dyZXNzKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxv
Y2sobV9tdXRleCk7ICAgIAotCi0gICAgcmV0dXJuIG1fbWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5n
OworICAgIExvY2tIb2xkZXIgbG9jayhtX3RyZWVTdGF0ZU11dGV4KTsKKyAgICByZXR1cm4gbV90
cmVlU3RhdGUubWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nOwogfQogCiB2b2lkIFNjcm9sbGluZ1Ry
ZWU6OnNldE1haW5GcmFtZUlzUnViYmVyQmFuZGluZyhib29sIGlzUnViYmVyQmFuZGluZykKIHsK
LSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKLQotICAgIG1fbWFpbkZyYW1lSXNSdWJi
ZXJCYW5kaW5nID0gaXNSdWJiZXJCYW5kaW5nOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJl
ZVN0YXRlTXV0ZXgpOworICAgIG1fdHJlZVN0YXRlLm1haW5GcmFtZUlzUnViYmVyQmFuZGluZyA9
IGlzUnViYmVyQmFuZGluZzsKIH0KIAorLy8gQ2FuIGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRo
cmVhZC4KIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpCiB7Ci0g
ICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOwotICAgIAotICAgIHJldHVybiBtX21haW5GcmFt
ZUlzU2Nyb2xsU25hcHBpbmc7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRlTXV0ZXgp
OworICAgIHJldHVybiBtX3RyZWVTdGF0ZS5tYWluRnJhbWVJc1Njcm9sbFNuYXBwaW5nOwogfQog
ICAgIAogdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJhbWVJc1Njcm9sbFNuYXBwaW5nKGJv
b2wgaXNTY3JvbGxTbmFwcGluZykKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsK
LSAgICAKLSAgICBtX21haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmcgPSBpc1Njcm9sbFNuYXBwaW5n
OworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJlZVN0YXRlTXV0ZXgpOworICAgIG1fdHJlZVN0
YXRlLm1haW5GcmFtZUlzU2Nyb2xsU25hcHBpbmcgPSBpc1Njcm9sbFNuYXBwaW5nOwogfQogCi12
b2lkIFNjcm9sbGluZ1RyZWU6OnNldENhblJ1YmJlckJhbmRTdGF0ZShib29sIGNhblJ1YmJlckJh
bmRBdExlZnQsIGJvb2wgY2FuUnViYmVyQmFuZEF0UmlnaHQsIGJvb2wgY2FuUnViYmVyQmFuZEF0
VG9wLCBib29sIGNhblJ1YmJlckJhbmRBdEJvdHRvbSkKK3ZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0
TWFpbkZyYW1lUGluU3RhdGUoYm9vbCBwaW5uZWRUb1RoZUxlZnQsIGJvb2wgcGlubmVkVG9UaGVS
aWdodCwgYm9vbCBwaW5uZWRUb1RoZVRvcCwgYm9vbCBwaW5uZWRUb1RoZUJvdHRvbSkKIHsKICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7CiAKLSAgICBtX3J1YmJlckJh
bmRzQXRMZWZ0ID0gY2FuUnViYmVyQmFuZEF0TGVmdDsKLSAgICBtX3J1YmJlckJhbmRzQXRSaWdo
dCA9IGNhblJ1YmJlckJhbmRBdFJpZ2h0OwotICAgIG1fcnViYmVyQmFuZHNBdFRvcCA9IGNhblJ1
YmJlckJhbmRBdFRvcDsKLSAgICBtX3J1YmJlckJhbmRzQXRCb3R0b20gPSBjYW5SdWJiZXJCYW5k
QXRCb3R0b207CisgICAgbV9zd2lwZVN0YXRlLm1haW5GcmFtZVBpbm5lZFRvVGhlTGVmdCA9IHBp
bm5lZFRvVGhlTGVmdDsKKyAgICBtX3N3aXBlU3RhdGUubWFpbkZyYW1lUGlubmVkVG9UaGVSaWdo
dCA9IHBpbm5lZFRvVGhlUmlnaHQ7CisgICAgbV9zd2lwZVN0YXRlLm1haW5GcmFtZVBpbm5lZFRv
VGhlVG9wID0gcGlubmVkVG9UaGVUb3A7CisgICAgbV9zd2lwZVN0YXRlLm1haW5GcmFtZVBpbm5l
ZFRvVGhlQm90dG9tID0gcGlubmVkVG9UaGVCb3R0b207CiB9CiAKLWJvb2wgU2Nyb2xsaW5nVHJl
ZTo6cnViYmVyQmFuZHNBdExlZnQoKQotewotICAgIExvY2tIb2xkZXIgbG9jayhtX3N3aXBlU3Rh
dGVNdXRleCk7Ci0KLSAgICByZXR1cm4gbV9ydWJiZXJCYW5kc0F0TGVmdDsKLX0KLQotYm9vbCBT
Y3JvbGxpbmdUcmVlOjpydWJiZXJCYW5kc0F0UmlnaHQoKQotewotICAgIExvY2tIb2xkZXIgbG9j
ayhtX3N3aXBlU3RhdGVNdXRleCk7Ci0KLSAgICByZXR1cm4gbV9ydWJiZXJCYW5kc0F0UmlnaHQ7
Ci19Ci0KLWJvb2wgU2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdEJvdHRvbSgpCi17Ci0gICAg
TG9ja0hvbGRlciBsb2NrKG1fc3dpcGVTdGF0ZU11dGV4KTsKLQotICAgIHJldHVybiBtX3J1YmJl
ckJhbmRzQXRCb3R0b207Ci19Ci0KLWJvb2wgU2Nyb2xsaW5nVHJlZTo6cnViYmVyQmFuZHNBdFRv
cCgpCit2b2lkIFNjcm9sbGluZ1RyZWU6OnNldENhblJ1YmJlckJhbmRTdGF0ZShib29sIGNhblJ1
YmJlckJhbmRBdExlZnQsIGJvb2wgY2FuUnViYmVyQmFuZEF0UmlnaHQsIGJvb2wgY2FuUnViYmVy
QmFuZEF0VG9wLCBib29sIGNhblJ1YmJlckJhbmRBdEJvdHRvbSkKIHsKLSAgICBMb2NrSG9sZGVy
IGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc3dpcGVT
dGF0ZU11dGV4KTsKIAotICAgIHJldHVybiBtX3J1YmJlckJhbmRzQXRUb3A7CisgICAgbV9zd2lw
ZVN0YXRlLnJ1YmJlckJhbmRzQXRMZWZ0ID0gY2FuUnViYmVyQmFuZEF0TGVmdDsKKyAgICBtX3N3
aXBlU3RhdGUucnViYmVyQmFuZHNBdFJpZ2h0ID0gY2FuUnViYmVyQmFuZEF0UmlnaHQ7CisgICAg
bV9zd2lwZVN0YXRlLnJ1YmJlckJhbmRzQXRUb3AgPSBjYW5SdWJiZXJCYW5kQXRUb3A7CisgICAg
bV9zd2lwZVN0YXRlLnJ1YmJlckJhbmRzQXRCb3R0b20gPSBjYW5SdWJiZXJCYW5kQXRCb3R0b207
CiB9CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6aXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgp
CkBAIC00MDAsMTggKzM1MywxOSBAQCBib29sIFNjcm9sbGluZ1RyZWU6OmlzSGFuZGxpbmdQcm9n
cmFtbWF0aWNTY3JvbGwoKQogICAgIHJldHVybiBtX2lzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3Jv
bGw7CiB9CiAKKy8vIENhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCiB2b2lkIFNj
cm9sbGluZ1RyZWU6OnNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihTY3JvbGxQaW5uaW5nQmVoYXZp
b3IgcGlubmluZykKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N3aXBlU3RhdGVNdXRleCk7
CiAgICAgCi0gICAgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3IgPSBwaW5uaW5nOworICAgIG1fc3dp
cGVTdGF0ZS5zY3JvbGxQaW5uaW5nQmVoYXZpb3IgPSBwaW5uaW5nOwogfQogCiBTY3JvbGxQaW5u
aW5nQmVoYXZpb3IgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsUGlubmluZ0JlaGF2aW9yKCkKIHsKICAg
ICBMb2NrSG9sZGVyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogICAgIAotICAgIHJldHVybiBt
X3Njcm9sbFBpbm5pbmdCZWhhdmlvcjsKKyAgICByZXR1cm4gbV9zd2lwZVN0YXRlLnNjcm9sbFBp
bm5pbmdCZWhhdmlvcjsKIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlOjp3aWxsV2hlZWxFdmVudFN0
YXJ0U3dpcGVHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKQEAg
LTQyMSwxMyArMzc1LDEzIEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6d2lsbFdoZWVsRXZlbnRTdGFy
dFN3aXBlR2VzdHVyZShjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoCiAKICAgICBMb2NrSG9s
ZGVyIGxvY2sobV9zd2lwZVN0YXRlTXV0ZXgpOwogCi0gICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFY
KCkgPiAwICYmIG1fbWFpbkZyYW1lUGlubmVkVG9UaGVMZWZ0ICYmICFtX3J1YmJlckJhbmRzQXRM
ZWZ0KQorICAgIGlmICh3aGVlbEV2ZW50LmRlbHRhWCgpID4gMCAmJiBtX3N3aXBlU3RhdGUubWFp
bkZyYW1lUGlubmVkVG9UaGVMZWZ0ICYmICFtX3N3aXBlU3RhdGUucnViYmVyQmFuZHNBdExlZnQp
CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmICh3aGVlbEV2ZW50LmRlbHRhWCgpIDwgMCAm
JiBtX21haW5GcmFtZVBpbm5lZFRvVGhlUmlnaHQgJiYgIW1fcnViYmVyQmFuZHNBdFJpZ2h0KQor
ICAgIGlmICh3aGVlbEV2ZW50LmRlbHRhWCgpIDwgMCAmJiBtX3N3aXBlU3RhdGUubWFpbkZyYW1l
UGlubmVkVG9UaGVSaWdodCAmJiAhbV9zd2lwZVN0YXRlLnJ1YmJlckJhbmRzQXRSaWdodCkKICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFZKCkgPiAwICYmIG1f
bWFpbkZyYW1lUGlubmVkVG9UaGVUb3AgJiYgIW1fcnViYmVyQmFuZHNBdFRvcCkKKyAgICBpZiAo
d2hlZWxFdmVudC5kZWx0YVkoKSA+IDAgJiYgbV9zd2lwZVN0YXRlLm1haW5GcmFtZVBpbm5lZFRv
VGhlVG9wICYmICFtX3N3aXBlU3RhdGUucnViYmVyQmFuZHNBdFRvcCkKICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFZKCkgPCAwICYmIG1fbWFpbkZyYW1lUGlu
bmVkVG9UaGVCb3R0b20gJiYgIW1fcnViYmVyQmFuZHNBdEJvdHRvbSkKKyAgICBpZiAod2hlZWxF
dmVudC5kZWx0YVkoKSA8IDAgJiYgbV9zd2lwZVN0YXRlLm1haW5GcmFtZVBpbm5lZFRvVGhlQm90
dG9tICYmICFtX3N3aXBlU3RhdGUucnViYmVyQmFuZHNBdEJvdHRvbSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC00NDUsMjAgKzM5OSwyMCBAQCBib29sIFNj
cm9sbGluZ1RyZWU6OnNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQoKQogCiBTY3Jv
bGxpbmdOb2RlSUQgU2Nyb2xsaW5nVHJlZTo6bGF0Y2hlZE5vZGUoKQogewotICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fbXV0ZXgpOwotICAgIHJldHVybiBtX2xhdGNoZWROb2RlSUQ7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV90cmVlU3RhdGVNdXRleCk7CisgICAgcmV0dXJuIG1fdHJlZVN0YXRl
LmxhdGNoZWROb2RlSUQ7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0TGF0Y2hlZE5vZGUo
U2Nyb2xsaW5nTm9kZUlEIG5vZGUpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7
Ci0gICAgbV9sYXRjaGVkTm9kZUlEID0gbm9kZTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Ry
ZWVTdGF0ZU11dGV4KTsKKyAgICBtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEID0gbm9kZTsKIH0K
IAogdm9pZCBTY3JvbGxpbmdUcmVlOjpjbGVhckxhdGNoZWROb2RlKCkKIHsKLSAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX211dGV4KTsKLSAgICBtX2xhdGNoZWROb2RlSUQgPSAwOworICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fdHJlZVN0YXRlTXV0ZXgpOworICAgIG1fdHJlZVN0YXRlLmxhdGNoZWRO
b2RlSUQgPSAwOwogfQogCiBTdHJpbmcgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZUFzVGV4
dCgpCkBAIC00NjcsMTkgKzQyMSwxOCBAQCBTdHJpbmcgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5n
VHJlZUFzVGV4dCgpCiAKICAgICBUZXh0U3RyZWFtOjpHcm91cFNjb3BlIHNjb3BlKHRzKTsKICAg
ICB0cyA8PCAic2Nyb2xsaW5nIHRyZWUiOwotICAgIAotICAgIGlmIChtX2xhdGNoZWROb2RlSUQp
Ci0gICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgibGF0Y2hlZCBub2RlIiwgbV9sYXRjaGVkTm9kZUlE
KTsKIAotICAgIGlmIChtX21haW5GcmFtZVNjcm9sbFBvc2l0aW9uICE9IEludFBvaW50KCkpCi0g
ICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgibWFpbiBmcmFtZSBzY3JvbGwgcG9zaXRpb24iLCBtX21h
aW5GcmFtZVNjcm9sbFBvc2l0aW9uKTsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVTdGF0
ZU11dGV4KTsKKworICAgIGlmIChtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEKQorICAgICAgICB0
cy5kdW1wUHJvcGVydHkoImxhdGNoZWQgbm9kZSIsIG1fdHJlZVN0YXRlLmxhdGNoZWROb2RlSUQp
OworCisgICAgaWYgKCFtX3RyZWVTdGF0ZS5tYWluRnJhbWVTY3JvbGxQb3NpdGlvbi5pc1plcm8o
KSkKKyAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJtYWluIGZyYW1lIHNjcm9sbCBwb3NpdGlvbiIs
IG1fdHJlZVN0YXRlLm1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKTsKICAgICAKLSAgICB7Ci0gICAg
ICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKLSAgICAgICAgaWYgKG1fcm9vdE5vZGUpIHsK
LSAgICAgICAgICAgIFRleHRTdHJlYW06Okdyb3VwU2NvcGUgc2NvcGUodHMpOwotICAgICAgICAg
ICAgbV9yb290Tm9kZS0+ZHVtcCh0cywgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJ
bmNsdWRlTGF5ZXJQb3NpdGlvbnMpOwotICAgICAgICB9CisgICAgaWYgKG1fcm9vdE5vZGUpIHsK
KyAgICAgICAgVGV4dFN0cmVhbTo6R3JvdXBTY29wZSBzY29wZSh0cyk7CisgICAgICAgIG1fcm9v
dE5vZGUtPmR1bXAodHMsIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZUxh
eWVyUG9zaXRpb25zKTsKICAgICB9CiAKICAgICByZXR1cm4gdHMucmVsZWFzZSgpOwpAQCAtNDg5
LDEyICs0NDIsMTIgQEAgU3RyaW5nIFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVBc1RleHQo
KQogT3B0aW9uYWw8VG91Y2hBY3Rpb25EYXRhPiBTY3JvbGxpbmdUcmVlOjp0b3VjaEFjdGlvbkRh
dGFBdFBvaW50KEludFBvaW50IHApIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBu
b3QgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZSByZWdpb25zIG1hdGNo
aW5nIHRoaXMgcG9pbnQuCi0gICAgZm9yIChhdXRvJiB0b3VjaEFjdGlvbkRhdGEgOiBtX2V2ZW50
VHJhY2tpbmdSZWdpb25zLnRvdWNoQWN0aW9uRGF0YSkgeworICAgIGZvciAoYXV0byYgdG91Y2hB
Y3Rpb25EYXRhIDogbV90cmVlU3RhdGUuZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25E
YXRhKSB7CiAgICAgICAgIGlmICh0b3VjaEFjdGlvbkRhdGEucmVnaW9uLmNvbnRhaW5zKHApKQog
ICAgICAgICAgICAgcmV0dXJuIHRvdWNoQWN0aW9uRGF0YTsKICAgICB9CiAKLSAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworICAgIHJldHVybiB7IH07CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDMzZjBkZmNlMGU3NzYy
MzJhYzdhMzYwZGI3MDIzZWJjYjdjYjYyNWEuLjVjZWY0ZWZkMTZmZTFlYzdiYTViNjA5YmFiMjky
ODU3OGI1MDE3ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmgKQEAgLTY5LDggKzY5LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBpbnZh
bGlkYXRlKCkgeyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNvbW1pdFRyZWVT
dGF0ZShzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nU3RhdGVUcmVlPik7CiAKLSAgICB2b2lkIHNl
dE1haW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBpbm5lZFRvVGhl
UmlnaHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9UaGVCb3R0b20pOwotCiAg
ICAgdmlydHVhbCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2Rl
KFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpID0gMDsKIAogICAgIC8vIENhbGxl
ZCBhZnRlciBhIHNjcm9sbGluZyB0cmVlIG5vZGUgaGFzIGhhbmRsZWQgYSBzY3JvbGwgYW5kIHVw
ZGF0ZWQgaXRzIGxheWVycy4KQEAgLTg5LDkgKzg3LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCByZXBvcnRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNDaGFuZ2VkKE1vbm90b25pY1Rp
bWUsIFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucykgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJl
cG9ydEV4cG9zZWRVbmZpbGxlZEFyZWEoTW9ub3RvbmljVGltZSwgdW5zaWduZWQgLyogdW5maWxs
ZWRBcmVhICovKSB7IH0KIAotICAgIEZsb2F0UG9pbnQgbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24o
KTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIEZsb2F0UmVjdCBtYWluRnJhbWVMYXlvdXRW
aWV3cG9ydCgpOwotCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5HZXN0dXJlKCkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlV2lsbFN0YXJ0U2Nyb2xsKCkgeyB9CkBAIC0xMTQsMTMgKzEw
OSwxMSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGN1cnJlbnRT
bmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpv
bnRhbCwgdW5zaWduZWQgdmVydGljYWwpID0gMDsKICNlbmRpZgogCisgICAgdm9pZCBzZXRNYWlu
RnJhbWVQaW5TdGF0ZShib29sIHBpbm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJpZ2h0
LCBib29sIHBpbm5lZFRvVGhlVG9wLCBib29sIHBpbm5lZFRvVGhlQm90dG9tKTsKKwogICAgIC8v
IENhbiBiZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFkLiBXaWxsIHVwZGF0ZSB3aGF0IGVkZ2VzIGFs
bG93IHJ1YmJlci1iYW5kaW5nLgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2FuUnViYmVy
QmFuZFN0YXRlKGJvb2wgY2FuUnViYmVyQmFuZEF0TGVmdCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRS
aWdodCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRUb3AsIGJvb2wgY2FuUnViYmVyQmFuZEF0Qm90dG9t
KTsKIAotICAgIGJvb2wgcnViYmVyQmFuZHNBdExlZnQoKTsKLSAgICBib29sIHJ1YmJlckJhbmRz
QXRSaWdodCgpOwotICAgIGJvb2wgcnViYmVyQmFuZHNBdFRvcCgpOwotICAgIGJvb2wgcnViYmVy
QmFuZHNBdEJvdHRvbSgpOwogICAgIGJvb2wgaXNIYW5kbGluZ1Byb2dyYW1tYXRpY1Njcm9sbCgp
OwogICAgIAogICAgIHZvaWQgc2V0U2Nyb2xsUGlubmluZ0JlaGF2aW9yKFNjcm9sbFBpbm5pbmdC
ZWhhdmlvcik7CkBAIC0xMzcsNyArMTMwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGF0Y2hl
ZE5vZGUoU2Nyb2xsaW5nTm9kZUlEKTsKICAgICB2b2lkIGNsZWFyTGF0Y2hlZE5vZGUoKTsKIAot
ICAgIGJvb2wgaGFzTGF0Y2hlZE5vZGUoKSBjb25zdCB7IHJldHVybiBtX2xhdGNoZWROb2RlSUQ7
IH0KKyAgICBib29sIGhhc0xhdGNoZWROb2RlKCkgY29uc3QgeyByZXR1cm4gbV90cmVlU3RhdGUu
bGF0Y2hlZE5vZGVJRDsgfQogICAgIHZvaWQgc2V0T3JDbGVhckxhdGNoZWROb2RlKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCk7CiAKICAgICBib29sIGhhc0ZpeGVk
T3JTdGlja3koKSBjb25zdCB7IHJldHVybiAhIW1fZml4ZWRPclN0aWNreU5vZGVDb3VudDsgfQpA
QCAtMTY4LDI2ICsxNjEsMzMgQEAgcHJpdmF0ZToKICAgICB1c2luZyBTY3JvbGxpbmdUcmVlTm9k
ZU1hcCA9IEhhc2hNYXA8U2Nyb2xsaW5nTm9kZUlELCBTY3JvbGxpbmdUcmVlTm9kZSo+OwogICAg
IFNjcm9sbGluZ1RyZWVOb2RlTWFwIG1fbm9kZU1hcDsKIAotICAgIExvY2sgbV9tdXRleDsKLSAg
ICBFdmVudFRyYWNraW5nUmVnaW9ucyBtX2V2ZW50VHJhY2tpbmdSZWdpb25zOwotICAgIEZsb2F0
UG9pbnQgbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbjsKKyAgICBzdHJ1Y3QgVHJlZVN0YXRlIHsK
KyAgICAgICAgU2Nyb2xsaW5nTm9kZUlEIGxhdGNoZWROb2RlSUQgeyAwIH07CisgICAgICAgIEV2
ZW50VHJhY2tpbmdSZWdpb25zIGV2ZW50VHJhY2tpbmdSZWdpb25zOworICAgICAgICBGbG9hdFBv
aW50IG1haW5GcmFtZVNjcm9sbFBvc2l0aW9uOworICAgICAgICBib29sIG1haW5GcmFtZUlzUnVi
YmVyQmFuZGluZyB7IGZhbHNlIH07CisgICAgICAgIGJvb2wgbWFpbkZyYW1lSXNTY3JvbGxTbmFw
cGluZyB7IGZhbHNlIH07CisgICAgfTsKKyAgICAKKyAgICBMb2NrIG1fdHJlZVN0YXRlTXV0ZXg7
CisgICAgVHJlZVN0YXRlIG1fdHJlZVN0YXRlOworCisgICAgc3RydWN0IFN3aXBlU3RhdGUgewor
ICAgICAgICBTY3JvbGxQaW5uaW5nQmVoYXZpb3Igc2Nyb2xsUGlubmluZ0JlaGF2aW9yIHsgRG9O
b3RQaW4gfTsKKyAgICAgICAgYm9vbCBydWJiZXJCYW5kc0F0TGVmdCB7IHRydWUgfTsKKyAgICAg
ICAgYm9vbCBydWJiZXJCYW5kc0F0UmlnaHQgeyB0cnVlIH07CisgICAgICAgIGJvb2wgcnViYmVy
QmFuZHNBdFRvcCB7IHRydWUgfTsKKyAgICAgICAgYm9vbCBydWJiZXJCYW5kc0F0Qm90dG9tIHsg
dHJ1ZSB9OworICAgICAgICBib29sIG1haW5GcmFtZVBpbm5lZFRvVGhlTGVmdCB7IHRydWUgfTsK
KyAgICAgICAgYm9vbCBtYWluRnJhbWVQaW5uZWRUb1RoZVJpZ2h0IHsgdHJ1ZSB9OworICAgICAg
ICBib29sIG1haW5GcmFtZVBpbm5lZFRvVGhlVG9wIHsgdHJ1ZSB9OworICAgICAgICBib29sIG1h
aW5GcmFtZVBpbm5lZFRvVGhlQm90dG9tIHsgdHJ1ZSB9OworICAgIH07CiAKICAgICBMb2NrIG1f
c3dpcGVTdGF0ZU11dGV4OwotICAgIFNjcm9sbFBpbm5pbmdCZWhhdmlvciBtX3Njcm9sbFBpbm5p
bmdCZWhhdmlvciB7IERvTm90UGluIH07Ci0gICAgU2Nyb2xsaW5nTm9kZUlEIG1fbGF0Y2hlZE5v
ZGVJRCB7IDAgfTsKKyAgICBTd2lwZVN0YXRlIG1fc3dpcGVTdGF0ZTsKIAogICAgIHVuc2lnbmVk
IG1fZml4ZWRPclN0aWNreU5vZGVDb3VudCB7IDAgfTsKLQotICAgIGJvb2wgbV9ydWJiZXJCYW5k
c0F0TGVmdCB7IHRydWUgfTsKLSAgICBib29sIG1fcnViYmVyQmFuZHNBdFJpZ2h0IHsgdHJ1ZSB9
OwotICAgIGJvb2wgbV9ydWJiZXJCYW5kc0F0VG9wIHsgdHJ1ZSB9OwotICAgIGJvb2wgbV9ydWJi
ZXJCYW5kc0F0Qm90dG9tIHsgdHJ1ZSB9OwotICAgIGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1Ro
ZUxlZnQgeyB0cnVlIH07Ci0gICAgYm9vbCBtX21haW5GcmFtZVBpbm5lZFRvVGhlUmlnaHQgeyB0
cnVlIH07Ci0gICAgYm9vbCBtX21haW5GcmFtZVBpbm5lZFRvVGhlVG9wIHsgdHJ1ZSB9OwotICAg
IGJvb2wgbV9tYWluRnJhbWVQaW5uZWRUb1RoZUJvdHRvbSB7IHRydWUgfTsKLSAgICBib29sIG1f
bWFpbkZyYW1lSXNSdWJiZXJCYW5kaW5nIHsgZmFsc2UgfTsKLSAgICBib29sIG1fbWFpbkZyYW1l
SXNTY3JvbGxTbmFwcGluZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Njcm9sbGluZ1BlcmZvcm1h
bmNlTG9nZ2luZ0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0hhbmRsaW5nUHJvZ3Jh
bW1hdGljU2Nyb2xsIHsgZmFsc2UgfTsKICAgICBib29sIG1fYXN5bmNGcmFtZU9yT3ZlcmZsb3dT
Y3JvbGxpbmdFbmFibGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVNYWMubW0KaW5kZXggNzI2N2U0ZGU0ODA4ZTJjM2I1ZjFkM2YxZjcyNTAw
MmM5OWE4YWY0Yi4uOWI2YTBjMDlkZTMwYWY2ZDI0M2FkYzgwNzRjMDZlNjMwZGU2MTllNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0KQEAgLTE3
OCw2ICsxNzgsNyBAQCBJbnRTaXplIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVN
YWM6OnN0cmV0Y2hBbW91bnQoKQogICAgIGVsc2UgaWYgKHNjcm9sbFBvc2l0aW9uLngoKSA+IG1h
eGltdW1TY3JvbGxQb3NpdGlvbigpLngoKSkKICAgICAgICAgc3RyZXRjaC5zZXRXaWR0aChzY3Jv
bGxQb3NpdGlvbi54KCkgLSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS54KCkpOwogCisgICAgLy8g
RklYTUU6IGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGhhdmUgdGhlc2Ugc2lkZS1l
ZmZlY3RzLgogICAgIGlmIChzY3JvbGxpbmdOb2RlKCkuaXNSb290Tm9kZSgpKSB7CiAgICAgICAg
IGlmIChzdHJldGNoLmlzWmVybygpKQogICAgICAgICAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldE1h
aW5GcmFtZUlzUnViYmVyQmFuZGluZyhmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFBvaW50LmgKaW5kZXggMTc5MjE4MDFkZWE5YjM3OTEzNjY3ZWYzY2I1
ODY0MmFiNjg0MTJmMS4uNzIwNDUzZDlmMDQ2ZDc5ZjQ4YTA5YjgxYWY3MDAwZjRkZTNiZTAyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaApAQCAt
NzAsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgRmxvYXRQb2ludChjb25zdCBGbG9h
dFNpemUmIHNpemUpIDogbV94KHNpemUud2lkdGgoKSksIG1feShzaXplLmhlaWdodCgpKSB7IH0K
IAogICAgIHN0YXRpYyBGbG9hdFBvaW50IHplcm8oKSB7IHJldHVybiBGbG9hdFBvaW50KCk7IH0K
KyAgICBib29sIGlzWmVybygpIGNvbnN0IHsgcmV0dXJuICFtX3ggJiYgIW1feTsgfQogCiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIEZsb2F0UG9pbnQgbmFycm93UHJlY2lzaW9uKGRvdWJsZSB4
LCBkb3VibGUgeSk7CiAK
</data>
<flag name="review"
          id="380643"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>