<?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>165067</bug_id>
          
          <creation_ts>2016-11-24 13:31:24 -0800</creation_ts>
          <short_desc>Fix exception scope verification failures in runtime/String* files.</short_desc>
          <delta_ts>2016-11-28 14:36:41 -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>JavaScriptCore</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>162351</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1253612</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-24 13:31:24 -0800</bug_when>
    <thetext>Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253613</commentid>
    <comment_count>1</comment_count>
      <attachid>295417</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-24 13:34:34 -0800</bug_when>
    <thetext>Created attachment 295417
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254026</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-28 14:36:41 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r209022: &lt;http://trac.webkit.org/r209022&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295417</attachid>
            <date>2016-11-24 13:34:34 -0800</date>
            <delta_ts>2016-11-28 14:06:44 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-165067.patch</filename>
            <type>text/plain</type>
            <size>20261</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA4OTc0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDE2LTExLTI0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggZXhjZXB0aW9uIHNjb3BlIHZlcmlmaWNhdGlvbiBmYWlsdXJlcyBpbiBydW50aW1lL1N0cmlu
ZyogZmlsZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjUwNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpzdHJpbmdG
cm9tQ29kZVBvaW50KToKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVj
dG9yKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5jcHA6CisgICAgICAgIChKU0M6
OlN0cmluZ09iamVjdDo6cHV0KToKKyAgICAgICAgKEpTQzo6U3RyaW5nT2JqZWN0OjpwdXRCeUlu
ZGV4KToKKyAgICAgICAgKEpTQzo6U3RyaW5nT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSk6Cisg
ICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpqc1Nw
bGljZVN1YnN0cmluZ3MpOgorICAgICAgICAoSlNDOjpqc1NwbGljZVN1YnN0cmluZ3NXaXRoU2Vw
YXJhdG9ycyk6CisgICAgICAgIChKU0M6OnJlcGxhY2VVc2luZ1JlZ0V4cFNlYXJjaCk6CisgICAg
ICAgIChKU0M6OnJlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaCk6CisgICAgICAgIChKU0M6OnJlcGVh
dENoYXJhY3Rlcik6CisgICAgICAgIChKU0M6OnJlcGxhY2UpOgorICAgICAgICAoSlNDOjpzdHJp
bmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2gpOgorICAgICAgICAoSlNDOjpzdHJp
bmdQcm90b0Z1bmNDaGFyQXQpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNDb2RlUG9p
bnRBdCk6CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0NvbmNhdCk6CisgICAgICAgIChK
U0M6OnN0cmluZ1Byb3RvRnVuY0luZGV4T2YpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1
bmNMYXN0SW5kZXhPZik6CisgICAgICAgIChKU0M6OnNwbGl0U3RyaW5nQnlPbmVDaGFyYWN0ZXJJ
bXBsKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KToKKyAgICAgICAg
KEpTQzo6c3RyaW5nUHJvdG9GdW5jU3Vic3RyaW5nKToKKyAgICAgICAgKEpTQzo6c3RyaW5nUHJv
dG9GdW5jVG9Mb3dlckNhc2UpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNUb1VwcGVy
Q2FzZSk6CisgICAgICAgIChKU0M6OnRvTG9jYWxlQ2FzZSk6CisgICAgICAgIChKU0M6OnRyaW1T
dHJpbmcpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNJbmNsdWRlcyk6CisgICAgICAg
IChKU0M6OmJ1aWx0aW5TdHJpbmdJbmNsdWRlc0ludGVybmFsKToKKyAgICAgICAgKEpTQzo6c3Ry
aW5nUHJvdG9GdW5jSXRlcmF0b3IpOgorICAgICAgICAoSlNDOjpub3JtYWxpemUpOgorICAgICAg
ICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNOb3JtYWxpemUpOgorCiAyMDE2LTExLTIzICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW1vdmUgRU5BQkxFX0FT
U0VNQkxFUl9XWF9FWENMVVNJVkUgY29kZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMjA4OTcwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTQsNiArMTE0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaQogICAgICAgICB9CiAgICAgfQogCisgICAgc2NvcGUucmVsZWFzZSgp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgYnVpbGRlci50b1N0
cmluZygpKSk7CiB9CiAKQEAgLTEyOCw3ICsxMjksOSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zCiAKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50Q291bnQoKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShTdHJpbmdPYmplY3Q6OmNyZWF0ZSh2bSwgc3Ry
dWN0dXJlKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShTdHJpbmdPYmplY3Q6OmNyZWF0
ZSh2bSwgc3RydWN0dXJlLCBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS50b1N0cmluZyhleGVj
KSkpOworICAgIEpTU3RyaW5nKiBzdHIgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS50b1N0
cmluZyhleGVjKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFN0cmluZ09iamVjdDo6Y3JlYXRlKHZt
LCBzdHJ1Y3R1cmUsIHN0cikpOwogfQogCiBDb25zdHJ1Y3RUeXBlIFN0cmluZ0NvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5j
cHAJKHJldmlzaW9uIDIwODk3MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3LDEzICs2NywxOCBAQCBib29sIFN0
cmluZ09iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlCiAKICAgICBTdHJpbmdPYmplY3QqIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8U3RyaW5nT2JqZWN0Kj4oY2VsbCk7CiAKLSAgICBpZiAoVU5MSUtF
TFkoaXNUaGlzVmFsdWVBbHRlcmVkKHNsb3QsIHRoaXNPYmplY3QpKSkKKyAgICBpZiAoVU5MSUtF
TFkoaXNUaGlzVmFsdWVBbHRlcmVkKHNsb3QsIHRoaXNPYmplY3QpKSkgeworICAgICAgICBzY29w
ZS5yZWxlYXNlKCk7CiAgICAgICAgIHJldHVybiBvcmRpbmFyeVNldFNsb3coZXhlYywgdGhpc09i
amVjdCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdC50aGlzVmFsdWUoKSwgc2xvdC5pc1N0cmlj
dE1vZGUoKSk7CisgICAgfQogCiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5h
bWVzLT5sZW5ndGgpCiAgICAgICAgIHJldHVybiB0eXBlRXJyb3IoZXhlYywgc2NvcGUsIHNsb3Qu
aXNTdHJpY3RNb2RlKCksIEFTQ0lJTGl0ZXJhbChSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcikp
OwotICAgIGlmIChPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5
TmFtZSkpCisgICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHBhcnNlSW5kZXgocHJv
cGVydHlOYW1lKSkgeworICAgICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgICAgIHJldHVybiBw
dXRCeUluZGV4KGNlbGwsIGV4ZWMsIGluZGV4LnZhbHVlKCksIHZhbHVlLCBzbG90LmlzU3RyaWN0
TW9kZSgpKTsKKyAgICB9CisgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJldHVybiBKU09iamVj
dDo6cHV0KGNlbGwsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCkBAIC04
NSw2ICs5MCw3IEBAIGJvb2wgU3RyaW5nT2JqZWN0OjpwdXRCeUluZGV4KEpTQ2VsbCogY2UKICAg
ICBTdHJpbmdPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8U3RyaW5nT2JqZWN0Kj4oY2VsbCk7
CiAgICAgaWYgKHRoaXNPYmplY3QtPmludGVybmFsVmFsdWUoKS0+Y2FuR2V0SW5kZXgocHJvcGVy
dHlOYW1lKSkKICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihleGVjLCBzY29wZSwgc2hvdWxkVGhy
b3csIEFTQ0lJTGl0ZXJhbChSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcikpOworICAgIHNjb3Bl
LnJlbGVhc2UoKTsKICAgICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgZXhlYywg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCkBAIC0xMTYsOSArMTIyLDEx
IEBAIGJvb2wgU3RyaW5nT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShKU08KICAgICAgICAgQVNT
RVJUKGlzQ3VycmVudERlZmluZWQpOwogICAgICAgICBib29sIGlzRXh0ZW5zaWJsZSA9IHRoaXNP
YmplY3QtPmlzRXh0ZW5zaWJsZShleGVjKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgZmFsc2UpOworICAgICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgICAgIHJldHVybiB2
YWxpZGF0ZUFuZEFwcGx5UHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIG51bGxwdHIsIHByb3BlcnR5
TmFtZSwgaXNFeHRlbnNpYmxlLCBkZXNjcmlwdG9yLCBpc0N1cnJlbnREZWZpbmVkLCBjdXJyZW50
LCB0aHJvd0V4Y2VwdGlvbik7CiAgICAgfQogCisgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJl
dHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
ZGVzY3JpcHRvciwgdGhyb3dFeGNlcHRpb24pOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAJKHJldmlzaW9uIDIwODk3
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5Nyw2ICsyOTcsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBK
U1ZhbHVlIGpzU3BsaWNlU3ViCiAgICAgICAgIGlmIChwb3NpdGlvbiA8PSAwICYmIGxlbmd0aCA+
PSBzb3VyY2VTaXplKQogICAgICAgICAgICAgcmV0dXJuIHNvdXJjZVZhbDsKICAgICAgICAgLy8g
V2UgY291bGQgY2FsbCBTdHJpbmc6OnN1YnN0cmluZ1NoYXJpbmdJbXBsKCksIGJ1dCB0aGlzIHdv
dWxkIHJlc3VsdCBpbiByZWR1bmRhbnQgY2hlY2tzLgorICAgICAgICBzY29wZS5yZWxlYXNlKCk7
CiAgICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBTdHJpbmdJbXBsOjpjcmVhdGVTdWJzdHJp
bmdTaGFyaW5nSW1wbCgqc291cmNlLmltcGwoKSwgc3RkOjptYXgoMCwgcG9zaXRpb24pLCBzdGQ6
Om1pbihzb3VyY2VTaXplLCBsZW5ndGgpKSk7CiAgICAgfQogCkBAIC0zMjIsNiArMzIzLDcgQEAg
c3RhdGljIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc1NwbGljZVN1YgogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKKyAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICByZXR1cm4ganNT
dHJpbmcoZXhlYywgV1RGTW92ZShpbXBsKSk7CiAgICAgfQogCkBAIC0zNDAsNiArMzQyLDcgQEAg
c3RhdGljIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBqc1NwbGljZVN1YgogICAgICAgICB9CiAgICAg
fQogCisgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBXVEZN
b3ZlKGltcGwpKTsKIH0KIApAQCAtMzU1LDYgKzM1OCw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5F
IEpTVmFsdWUganNTcGxpY2VTdWIKICAgICAgICAgaWYgKHBvc2l0aW9uIDw9IDAgJiYgbGVuZ3Ro
ID49IHNvdXJjZVNpemUpCiAgICAgICAgICAgICByZXR1cm4gc291cmNlVmFsOwogICAgICAgICAv
LyBXZSBjb3VsZCBjYWxsIFN0cmluZzo6c3Vic3RyaW5nU2hhcmluZ0ltcGwoKSwgYnV0IHRoaXMg
d291bGQgcmVzdWx0IGluIHJlZHVuZGFudCBjaGVja3MuCisgICAgICAgIHNjb3BlLnJlbGVhc2Uo
KTsKICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIFN0cmluZ0ltcGw6OmNyZWF0ZVN1YnN0
cmluZ1NoYXJpbmdJbXBsKCpzb3VyY2UuaW1wbCgpLCBzdGQ6Om1heCgwLCBwb3NpdGlvbiksIHN0
ZDo6bWluKHNvdXJjZVNpemUsIGxlbmd0aCkpKTsKICAgICB9CiAKQEAgLTM5OCw2ICs0MDIsNyBA
QCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGpzU3BsaWNlU3ViCiAgICAgICAgICAgICB9
CiAgICAgICAgIH0gICAgICAgIAogCisgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAgICAg
cmV0dXJuIGpzU3RyaW5nKGV4ZWMsIFdURk1vdmUoaW1wbCkpOwogICAgIH0KIApAQCAtNDI5LDYg
KzQzNCw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpTVmFsdWUganNTcGxpY2VTdWIKICAgICAg
ICAgfQogICAgIH0KIAorICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICByZXR1cm4ganNTdHJpbmco
ZXhlYywgV1RGTW92ZShpbXBsKSk7CiB9CiAKQEAgLTYyNyw5ICs2MzMsMTEgQEAgc3RhdGljIEFM
V0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgcmVwbAogICAgICAgICAgICAgICAgIGFyZ3MuYXBw
ZW5kKGpzTnVtYmVyKHJlc3VsdC5zdGFydCkpOwogICAgICAgICAgICAgICAgIGFyZ3MuYXBwZW5k
KHN0cmluZyk7CiAKLSAgICAgICAgICAgICAgICBKU1ZhbHVlIHZhbHVlID0gY2FsbChleGVjLCBy
ZXBsYWNlVmFsdWUsIGNhbGxUeXBlLCBjYWxsRGF0YSwganNVbmRlZmluZWQoKSwgYXJncyk7Cisg
ICAgICAgICAgICAgICAgSlNWYWx1ZSByZXBsYWNlbWVudCA9IGNhbGwoZXhlYywgcmVwbGFjZVZh
bHVlLCBjYWxsVHlwZSwgY2FsbERhdGEsIGpzVW5kZWZpbmVkKCksIGFyZ3MpOwogICAgICAgICAg
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAg
ICAgICAgICAgICAgIHJlcGxhY2VtZW50cy5hcHBlbmQodmFsdWUudG9TdHJpbmcoZXhlYyktPnZh
bHVlKGV4ZWMpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmVwbGFjZW1lbnRTdHJpbmcgPSBy
ZXBsYWNlbWVudC50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CisgICAgICAgICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgICAgICAg
ICAgICAgcmVwbGFjZW1lbnRzLmFwcGVuZChyZXBsYWNlbWVudFN0cmluZyk7CiAgICAgICAgICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGludCByZXBsTGVuID0gcmVwbGFjZW1l
bnRTdHJpbmcubGVuZ3RoKCk7CkBAIC02NjMsNiArNjcxLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJ
TkUgRW5jb2RlZEpTVmFsdWUgcmVwbAogICAgICAgICBpZiAoVU5MSUtFTFkoIXNvdXJjZVJhbmdl
cy50cnlDb25zdHJ1Y3RBbmRBcHBlbmQobGFzdEluZGV4LCBzb3VyY2VMZW4gLSBsYXN0SW5kZXgp
KSkKICAgICAgICAgICAgIE9VVF9PRl9NRU1PUlkoZXhlYywgc2NvcGUpOwogICAgIH0KKyAgICBz
Y29wZS5yZWxlYXNlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1NwbGljZVN1YnN0
cmluZ3NXaXRoU2VwYXJhdG9ycyhleGVjLCBzdHJpbmcsIHNvdXJjZSwgc291cmNlUmFuZ2VzLmRh
dGEoKSwgc291cmNlUmFuZ2VzLnNpemUoKSwgcmVwbGFjZW1lbnRzLmRhdGEoKSwgcmVwbGFjZW1l
bnRzLnNpemUoKSkpOwogfQogCkBAIC03NTQsNiArNzYzLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJ
TkUgRW5jb2RlZEpTVmFsdWUgcmVwbAogCiAgICAgc2l6ZV90IGxlZnRMZW5ndGggPSBzdHJpbmdJ
bXBsLT5sZW5ndGgoKSAtIG1hdGNoRW5kOwogICAgIFN0cmluZyByaWdodFBhcnQoU3RyaW5nSW1w
bDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoKnN0cmluZ0ltcGwsIG1hdGNoRW5kLCBsZWZ0
TGVuZ3RoKSk7CisgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNDOjpqc1N0cmluZyhleGVjLCBsZWZ0UGFydCwgbWlkZGxlUGFydCwgcmlnaHRQYXJ0KSk7
CiB9CiAKQEAgLTc4Niw2ICs3OTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTU3RyaW5nKiByZXBlYXRD
aGFyYWN0ZXIoCiAKICAgICBzdGQ6OmZpbGxfbihidWZmZXIsIHJlcGVhdENvdW50LCBjaGFyYWN0
ZXIpOwogCisgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJldHVybiBqc1N0cmluZygmZXhlYywg
V1RGTW92ZShpbXBsKSk7CiB9CiAKQEAgLTgzOSw2ICs4NTAsNyBAQCBBTFdBWVNfSU5MSU5FIEVu
Y29kZWRKU1ZhbHVlIHJlcGxhY2UoCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIHNjb3BlKTsKICAgICBKU1N0cmluZyogc3RyaW5nID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4
ZWMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwor
ICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICByZXR1cm4gcmVwbGFjZSh2bSwgZXhlYywgc3RyaW5n
LCBzZWFyY2hWYWx1ZSwgcmVwbGFjZVZhbHVlKTsKIH0KIApAQCAtODY2LDYgKzg3OCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG8KICAgICBKU1N0cmluZyogc3Ry
aW5nID0gZXhlYy0+dGhpc1ZhbHVlKCkudG9TdHJpbmcoZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKKyAgICBzY29wZS5yZWxlYXNlKCk7
CiAgICAgcmV0dXJuIHJlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaCh2bSwgZXhlYywgc3RyaW5nLCBl
eGVjLT5hcmd1bWVudCgwKSwgZXhlYy0+YXJndW1lbnQoMSkpOwogfQogCkBAIC05MDksNiArOTIy
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90bwogICAgIGF1dG8g
dmlld1dpdGhTdHJpbmcgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyktPnZpZXdXaXRoVW5kZXJs
eWluZ1N0cmluZygqZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2Rl
ZEpTVmFsdWUoKSk7CiAgICAgU3RyaW5nVmlldyB2aWV3ID0gdmlld1dpdGhTdHJpbmcudmlldzsK
KyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBK
U1ZhbHVlIGEwID0gZXhlYy0+YXJndW1lbnQoMCk7CiAgICAgaWYgKGEwLmlzVUludDMyKCkpIHsK
ICAgICAgICAgdWludDMyX3QgaSA9IGEwLmFzVUludDMyKCk7CkBAIC05NjYsNiArOTgwLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90bwogICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAKICAgICBTdHJpbmcgc3RyaW5nID0gdGhp
c1ZhbHVlLnRvV1RGU3RyaW5nKGV4ZWMpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIHVuc2lnbmVkIGxlbmd0aCA9IHN0cmluZy5sZW5ndGgo
KTsKIAogICAgIEpTVmFsdWUgYXJndW1lbnQwID0gZXhlYy0+YXJndW1lbnQoMCk7CkBAIC05Nzks
NiArOTk0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90bwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogCiAgICAgZG91
YmxlIGRvdWJsZVBvc2l0aW9uID0gYXJndW1lbnQwLnRvSW50ZWdlcihleGVjKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBpZiAoZG91Ymxl
UG9zaXRpb24gPj0gMCAmJiBkb3VibGVQb3NpdGlvbiA8IGxlbmd0aCkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihjb2RlUG9pbnRBdChzdHJpbmcsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihkb3VibGVQb3NpdGlvbiksIGxlbmd0aCkpKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtOTkwLDExICsxMDA2LDE2IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG8KICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNW
YWx1ZSgpOwotICAgIGlmICh0aGlzVmFsdWUuaXNTdHJpbmcoKSAmJiBleGVjLT5hcmd1bWVudENv
dW50KCkgPT0gMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVj
LCBhc1N0cmluZyh0aGlzVmFsdWUpLCBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS50b1N0cmlu
ZyhleGVjKSkpOworICAgIGlmICh0aGlzVmFsdWUuaXNTdHJpbmcoKSAmJiBleGVjLT5hcmd1bWVu
dENvdW50KCkgPT0gMSkgeworICAgICAgICBKU1N0cmluZyogc3RyID0gZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgICAgICBzY29wZS5yZWxlYXNlKCk7CisgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgYXNTdHJpbmcodGhpc1Zh
bHVlKSwgc3RyKSk7CisgICAgfQogCiAgICAgaWYgKCFjaGVja09iamVjdENvZXJjaWJsZSh0aGlz
VmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7Cisg
ICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmdG
cm9tQXJndW1lbnRzKGV4ZWMsIHRoaXNWYWx1ZSkpOwogfQogCkBAIC0xMDExLDcgKzEwMzIsOSBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiAgICAgSlNWYWx1ZSBh
MSA9IGV4ZWMtPmFyZ3VtZW50KDEpOwogCiAgICAgSlNTdHJpbmcqIHRoaXNKU1N0cmluZyA9IHRo
aXNWYWx1ZS50b1N0cmluZyhleGVjKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBl
bmNvZGVkSlNWYWx1ZSgpKTsKICAgICBKU1N0cmluZyogb3RoZXJKU1N0cmluZyA9IGEwLnRvU3Ry
aW5nKGV4ZWMpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVl
KCkpOwogCiAgICAgdW5zaWduZWQgcG9zID0gMDsKICAgICBpZiAoIWExLmlzVW5kZWZpbmVkKCkp
IHsKQEAgLTEwNTUsOCArMTA3OCwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ1Byb3RvCiAgICAgSlNWYWx1ZSBhMSA9IGV4ZWMtPmFyZ3VtZW50KDEpOwogCiAgICAgSlNT
dHJpbmcqIHRoaXNKU1N0cmluZyA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICB1bnNpZ25lZCBs
ZW4gPSB0aGlzSlNTdHJpbmctPmxlbmd0aCgpOwogICAgIEpTU3RyaW5nKiBvdGhlckpTU3RyaW5n
ID0gYTAudG9TdHJpbmcoZXhlYyk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5j
b2RlZEpTVmFsdWUoKSk7CiAKICAgICBkb3VibGUgZHBvcyA9IGExLnRvSW50ZWdlclByZXNlcnZl
TmFOKGV4ZWMpOwogICAgIHVuc2lnbmVkIHN0YXJ0UG9zaXRpb247CkBAIC0xMTE5LDYgKzExNDQs
OSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgogc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBzcGxpdFN0
cmluZ0J5T25lQ2hhcmFjdGVySW1wbChFeGVjU3RhdGUqIGV4ZWMsIEpTQXJyYXkqIHJlc3VsdCwg
SlNWYWx1ZSBvcmlnaW5hbFZhbHVlLCBjb25zdCBTdHJpbmcmIGlucHV0LCBTdHJpbmdJbXBsKiBz
dHJpbmcsIFVDaGFyIHNlcGFyYXRvckNoYXJhY3Rlciwgc2l6ZV90JiBwb3NpdGlvbiwgdW5zaWdu
ZWQmIHJlc3VsdExlbmd0aCwgdW5zaWduZWQgbGltaXRMZW5ndGgpCiB7CisgICAgVk0mIHZtID0g
ZXhlYy0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisK
ICAgICAvLyAxMi4gTGV0IHEgPSBwLgogICAgIHNpemVfdCBtYXRjaFBvc2l0aW9uOwogICAgIGNv
bnN0IENoYXJhY3RlclR5cGUqIGNoYXJhY3RlcnMgPSBzdHJpbmctPmNoYXJhY3RlcnM8Q2hhcmFj
dGVyVHlwZT4oKTsKQEAgLTExMzIsNiArMTE2MCw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIGJv
b2wgc3BsaXRTdHJpbmdCeU8KICAgICAgICAgLy8gMi4gQ2FsbCB0aGUgW1tEZWZpbmVPd25Qcm9w
ZXJ0eV1dIGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzIFRvU3RyaW5nKGxlbmd0
aEEpLAogICAgICAgICAvLyAgICBQcm9wZXJ0eSBEZXNjcmlwdG9yIHtbW1ZhbHVlXV06IFQsIFtb
V3JpdGFibGVdXTogdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06
IHRydWV9LCBhbmQgZmFsc2UuCiAgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0SW5kZXgoZXhlYywg
cmVzdWx0TGVuZ3RoLCBqc1N1YnN0cmluZyhleGVjLCBvcmlnaW5hbFZhbHVlLCBpbnB1dCwgcG9z
aXRpb24sIG1hdGNoUG9zaXRpb24gLSBwb3NpdGlvbikpOworICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgICAgIC8vIDMuIEluY3JlbWVudCBsZW5ndGhBIGJ5
IDEuCiAgICAgICAgIC8vIDQuIElmIGxlbmd0aEEgPT0gbGltLCByZXR1cm4gQS4KICAgICAgICAg
aWYgKCsrcmVzdWx0TGVuZ3RoID09IGxpbWl0TGVuZ3RoKQpAQCAtMTE4Niw2ICsxMjE1LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90bwogICAgIC8vIDExLiBJZiBz
ZXBhcmF0b3IgaXMgdW5kZWZpbmVkLCB0aGVuCiAgICAgaWYgKHNlcGFyYXRvclZhbHVlLmlzVW5k
ZWZpbmVkKCkpIHsKICAgICAgICAgLy8gYS4gQ2FsbCB0aGUgW1tEZWZpbmVPd25Qcm9wZXJ0eV1d
IGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzICIwIiwKKyAgICAgICAgc2NvcGUu
cmVsZWFzZSgpOwogICAgICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGV4ZWMsIDAsIGpzU3Ry
aW5nV2l0aFJldXNlKGV4ZWMsIHRoaXNWYWx1ZSwgaW5wdXQpKTsKICAgICAgICAgLy8gYi4gUmV0
dXJuIEEuCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKQEAgLTExOTcs
OCArMTIyNywxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiAg
ICAgICAgIC8vIGIuIElmIHogaXMgbm90IGZhbHNlLCByZXR1cm4gQS4KICAgICAgICAgLy8gYy4g
Q2FsbCBDcmVhdGVEYXRhUHJvcGVydHkoQSwgIjAiLCBTKS4KICAgICAgICAgLy8gZC4gUmV0dXJu
IEEuCi0gICAgICAgIGlmICghc2VwYXJhdG9yLmlzRW1wdHkoKSkKKyAgICAgICAgaWYgKCFzZXBh
cmF0b3IuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgICAg
ICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGV4ZWMsIDAsIGpzU3RyaW5nV2l0aFJldXNlKGV4
ZWMsIHRoaXNWYWx1ZSwgaW5wdXQpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHJlc3VsdCk7CiAgICAgfQogCkBAIC0xMjEwLDYgKzEyNDIsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiAKICAgICAgICAgZG8gewogICAgICAg
ICAgICAgcmVzdWx0LT5wdXREaXJlY3RJbmRleChleGVjLCBwb3NpdGlvbiwganNTaW5nbGVDaGFy
YWN0ZXJTdHJpbmcoZXhlYywgaW5wdXRbcG9zaXRpb25dKSk7CisgICAgICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICAgICAgfSB3aGlsZSAo
Kytwb3NpdGlvbiA8IGxpbWl0KTsKIAogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdCk7CkBAIC0xMjMxLDEyICsxMjY0LDE3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG8KICAgICAgICAgICAgIHNlcGFyYXRvckNoYXJhY3RlciA9IHNlcGFyYXRv
ckltcGwtPmNoYXJhY3RlcnMxNigpWzBdOwogCiAgICAgICAgIGlmIChzdHJpbmdJbXBsLT5pczhC
aXQoKSkgewotICAgICAgICAgICAgaWYgKHNwbGl0U3RyaW5nQnlPbmVDaGFyYWN0ZXJJbXBsPExD
aGFyPihleGVjLCByZXN1bHQsIHRoaXNWYWx1ZSwgaW5wdXQsIHN0cmluZ0ltcGwsIHNlcGFyYXRv
ckNoYXJhY3RlciwgcG9zaXRpb24sIHJlc3VsdExlbmd0aCwgbGltaXQpKQorICAgICAgICAgICAg
aWYgKHNwbGl0U3RyaW5nQnlPbmVDaGFyYWN0ZXJJbXBsPExDaGFyPihleGVjLCByZXN1bHQsIHRo
aXNWYWx1ZSwgaW5wdXQsIHN0cmluZ0ltcGwsIHNlcGFyYXRvckNoYXJhY3RlciwgcG9zaXRpb24s
IHJlc3VsdExlbmd0aCwgbGltaXQpKSB7CisgICAgICAgICAgICAgICAgc2NvcGUucmVsZWFzZSgp
OwogICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChzcGxpdFN0cmluZ0J5
T25lQ2hhcmFjdGVySW1wbDxVQ2hhcj4oZXhlYywgcmVzdWx0LCB0aGlzVmFsdWUsIGlucHV0LCBz
dHJpbmdJbXBsLCBzZXBhcmF0b3JDaGFyYWN0ZXIsIHBvc2l0aW9uLCByZXN1bHRMZW5ndGgsIGxp
bWl0KSkKKyAgICAgICAgICAgIGlmIChzcGxpdFN0cmluZ0J5T25lQ2hhcmFjdGVySW1wbDxVQ2hh
cj4oZXhlYywgcmVzdWx0LCB0aGlzVmFsdWUsIGlucHV0LCBzdHJpbmdJbXBsLCBzZXBhcmF0b3JD
aGFyYWN0ZXIsIHBvc2l0aW9uLCByZXN1bHRMZW5ndGgsIGxpbWl0KSkgeworICAgICAgICAgICAg
ICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgLy8gMTMuIExldCBxID0gcC4KICAgICAgICAgc2l6ZV90IG1hdGNoUG9zaXRpb247CkBAIC0x
MjQ5LDYgKzEyODcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3Rv
CiAgICAgICAgICAgICAvLyAgICB0aHJvdWdoIHEgKGV4Y2x1c2l2ZSkuCiAgICAgICAgICAgICAv
LyAyLiBDYWxsIENyZWF0ZURhdGFQcm9wZXJ0eShBLCBUb1N0cmluZyhsZW5ndGhBKSwgVCkuCiAg
ICAgICAgICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGV4ZWMsIHJlc3VsdExlbmd0aCwganNT
dWJzdHJpbmcoZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCwgcG9zaXRpb24sIG1hdGNoUG9zaXRpb24g
LSBwb3NpdGlvbikpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5j
b2RlZEpTVmFsdWUoKSk7CiAgICAgICAgICAgICAvLyAzLiBJbmNyZW1lbnQgbGVuZ3RoQSBieSAx
LgogICAgICAgICAgICAgLy8gNC4gSWYgbGVuZ3RoQSA9PSBsaW0sIHJldHVybiBBLgogICAgICAg
ICAgICAgaWYgKCsrcmVzdWx0TGVuZ3RoID09IGxpbWl0KQpAQCAtMTI2Myw2ICsxMzAyLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90bwogICAgIC8vIDE1LiBMZXQg
VCBiZSBhIFN0cmluZyB2YWx1ZSBlcXVhbCB0byB0aGUgc3Vic3RyaW5nIG9mIFMgY29uc2lzdGlu
ZyBvZiB0aGUgY2hhcmFjdGVycyBhdCBwb3NpdGlvbnMgcCAoaW5jbHVzaXZlKQogICAgIC8vICAg
ICB0aHJvdWdoIHMgKGV4Y2x1c2l2ZSkuCiAgICAgLy8gMTYuIENhbGwgQ3JlYXRlRGF0YVByb3Bl
cnR5KEEsIFRvU3RyaW5nKGxlbmd0aEEpLCBUKS4KKyAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAg
cmVzdWx0LT5wdXREaXJlY3RJbmRleChleGVjLCByZXN1bHRMZW5ndGgrKywganNTdWJzdHJpbmco
ZXhlYywgdGhpc1ZhbHVlLCBpbnB1dCwgcG9zaXRpb24sIGlucHV0Lmxlbmd0aCgpIC0gcG9zaXRp
b24pKTsKIAogICAgIC8vIDE3LiBSZXR1cm4gQS4KQEAgLTEzNDUsNiArMTM4NSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG8KICAgICBSRUxFQVNFX0FTU0VSVChs
ZW4gPj0gMCk7CiAKICAgICBkb3VibGUgc3RhcnQgPSBhMC50b051bWJlcihleGVjKTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBkb3VibGUg
ZW5kOwogICAgIGlmICghKHN0YXJ0ID49IDApKSAvLyBjaGVjayBmb3IgbmVnYXRpdmUgdmFsdWVz
IG9yIE5hTgogICAgICAgICBzdGFydCA9IDA7CkBAIC0xMzU0LDYgKzEzOTUsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiAgICAgICAgIGVuZCA9IGxlbjsKICAg
ICBlbHNlIHsgCiAgICAgICAgIGVuZCA9IGExLnRvTnVtYmVyKGV4ZWMpOworICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICAgICAgaWYgKCEo
ZW5kID49IDApKSAvLyBjaGVjayBmb3IgbmVnYXRpdmUgdmFsdWVzIG9yIE5hTgogICAgICAgICAg
ICAgZW5kID0gMDsKICAgICAgICAgZWxzZSBpZiAoZW5kID4gbGVuKQpAQCAtMTM3OCwxMCArMTQy
MCwxMiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiAgICAgaWYg
KCFjaGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihleGVjLCBzY29wZSk7CiAgICAgSlNTdHJpbmcqIHNWYWwgPSB0aGlzVmFsdWUu
dG9TdHJpbmcoZXhlYyk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpT
VmFsdWUoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBzID0gc1ZhbC0+dmFsdWUoZXhlYyk7CiAgICAg
U3RyaW5nIGxvd2VyY2FzZWRTdHJpbmcgPSBzLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2Nh
bGUoKTsKICAgICBpZiAobG93ZXJjYXNlZFN0cmluZy5pbXBsKCkgPT0gcy5pbXBsKCkpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc1ZhbCk7CisgICAgc2NvcGUucmVsZWFzZSgpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhlYywgbG93ZXJjYXNlZFN0cmlu
ZykpOwogfQogCkBAIC0xMzk0LDEwICsxNDM4LDEyIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3RyaW5nUHJvdG8KICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1
ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKICAgICBK
U1N0cmluZyogc1ZhbCA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKTsKKyAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBjb25zdCBTdHJpbmcmIHMg
PSBzVmFsLT52YWx1ZShleGVjKTsKICAgICBTdHJpbmcgdXBwZXJjYXNlZFN0cmluZyA9IHMuY29u
dmVydFRvVXBwZXJjYXNlV2l0aG91dExvY2FsZSgpOwogICAgIGlmICh1cHBlcmNhc2VkU3RyaW5n
LmltcGwoKSA9PSBzLmltcGwoKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzVmFs
KTsKKyAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0
cmluZyhleGVjLCB1cHBlcmNhc2VkU3RyaW5nKSk7CiB9CiAKQEAgLTE0MzEsNiArMTQ3Nyw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSB0b0xvY2FsZUNhc2UoRXhlY1MKIAogICAgIC8vIDIuIExl
dCBTIGJlIFRvU3RyaW5nKE8pLgogICAgIEpTU3RyaW5nKiBzVmFsID0gdGhpc1ZhbHVlLnRvU3Ry
aW5nKHN0YXRlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKICAgICBjb25zdCBTdHJpbmcmIHMgPSBzVmFsLT52YWx1ZShzdGF0ZSk7CiAKICAgICAv
LyAzLiBSZXR1cm5JZkFicnVwdChTKS4KQEAgLTE0OTksNiArMTU0Niw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSB0b0xvY2FsZUNhc2UoRXhlY1MKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3Ioc3RhdGUsIHNjb3BlLCB1X2Vycm9yTmFtZShlcnJvcikpOwogCiAgICAgLy8gMTguIFJl
dHVybiBMLgorICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzU3RyaW5nKHN0YXRlLCBsb3dlcikpOwogfQogCkBAIC0xNzkzLDcgKzE4NDEsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUgdHJpbVN0cmluZyhFeGVjU3RhCiAgICAgaWYgKCFjaGVja09iamVj
dENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhl
Yywgc2NvcGUpOwogICAgIFN0cmluZyBzdHIgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyktPnZh
bHVlKGV4ZWMpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIHVuc2lnbmVkIGxlZnQg
PSAwOwogICAgIGlmICh0cmltS2luZCAmIFRyaW1MZWZ0KSB7CkBAIC0xODEwLDYgKzE4NTgsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUgdHJpbVN0cmluZyhFeGVjU3RhCiAgICAgaWYgKGxlZnQg
PT0gMCAmJiByaWdodCA9PSBzdHIubGVuZ3RoKCkgJiYgdGhpc1ZhbHVlLmlzU3RyaW5nKCkpCiAg
ICAgICAgIHJldHVybiB0aGlzVmFsdWU7CiAKKyAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgcmV0
dXJuIGpzU3RyaW5nKGV4ZWMsIHN0ci5zdWJzdHJpbmdTaGFyaW5nSW1wbChsZWZ0LCByaWdodCAt
IGxlZnQpKTsKIH0KIApAQCAtMTk0Nyw2ICsxOTk2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdQcm90bwogCiAgICAgSlNWYWx1ZSBwb3NpdGlvbkFyZyA9IGV4ZWMtPmFy
Z3VtZW50KDEpOwogCisgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJldHVybiBzdHJpbmdJbmNs
dWRlc0ltcGwodm0sIGV4ZWMsIHN0cmluZ1RvU2VhcmNoSW4sIHNlYXJjaFN0cmluZywgcG9zaXRp
b25BcmcpOwogfQogCkBAIC0xOTY3LDYgKzIwMTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGJ1aWx0aW5TdHJpCiAKICAgICBKU1ZhbHVlIHBvc2l0aW9uQXJnID0gZXhlYy0+YXJn
dW1lbnQoMSk7CiAKKyAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgcmV0dXJuIHN0cmluZ0luY2x1
ZGVzSW1wbCh2bSwgZXhlYywgc3RyaW5nVG9TZWFyY2hJbiwgc2VhcmNoU3RyaW5nLCBwb3NpdGlv
bkFyZyk7CiB9CiAKQEAgLTE5NzksNiArMjAzMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3RyaW5nUHJvdG8KICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1
ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKICAgICBK
U1N0cmluZyogc3RyaW5nID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpOworICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNTdHJpbmdJdGVyYXRvcjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmNhbGxlZSgpLT5n
bG9iYWxPYmplY3QoKS0+c3RyaW5nSXRlcmF0b3JTdHJ1Y3R1cmUoKSwgc3RyaW5nKSk7CiB9CiAK
QEAgLTIwMDYsNiArMjA1OCw3IEBAIHN0YXRpYyBKU1ZhbHVlIG5vcm1hbGl6ZShFeGVjU3RhdGUq
IGV4ZWMKICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpCiAgICAgICAgIHJldHVybiB0aHJvd1R5
cGVFcnJvcihleGVjLCBzY29wZSk7CiAKKyAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgcmV0dXJu
IGpzU3RyaW5nKGV4ZWMsIFdURk1vdmUoaW1wbCkpOwogfQogCkBAIC0yMDM5LDYgKzIwOTIsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiAgICAgICAgICAgICBy
ZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsIEFT
Q0lJTGl0ZXJhbCgiYXJndW1lbnQgZG9lcyBub3QgbWF0Y2ggYW55IG5vcm1hbGl6YXRpb24gZm9y
bSIpKSk7CiAgICAgfQogCisgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUobm9ybWFsaXplKGV4ZWMsIHZpZXcudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHZp
ZXcubGVuZ3RoKCksIGZvcm0pKTsKIH0KIAo=
</data>
<flag name="review"
          id="318004"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>