<?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>114094</bug_id>
          
          <creation_ts>2013-04-06 11:09:50 -0700</creation_ts>
          <short_desc>Rolled out 147820 and 147818 because they caused plugins tests to ASSERT</short_desc>
          <delta_ts>2013-04-06 11:22:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>870319</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-04-06 11:09:50 -0700</bug_when>
    <thetext>Rolled out 147820 and 147818 because they caused plugins tests to ASSERT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870320</commentid>
    <comment_count>1</comment_count>
      <attachid>196746</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-04-06 11:10:34 -0700</bug_when>
    <thetext>Created attachment 196746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>870326</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-04-06 11:22:57 -0700</bug_when>
    <thetext>Committed r147846: &lt;http://trac.webkit.org/changeset/147846&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196746</attachid>
            <date>2013-04-06 11:10:34 -0700</date>
            <delta_ts>2013-04-06 11:10:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114094-20130406111020.patch</filename>
            <type>text/plain</type>
            <size>27099</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ3ODQyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDEzLTA0LTA2ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUm9sbGVkIG91dCAxNDc4MjAgYW5kIDE0NzgxOCBiZWNhdXNlIHRoZXkgY2F1c2VkIHBsdWdp
bnMgdGVzdHMgdG8gQVNTRVJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTQwOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIEFQSS9KU0NvbnRleHRSZWYuY3BwOgorICAgICAgICAoSlNDb250ZXh0Q3Jl
YXRlQmFja3RyYWNlKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERlYnVnSG9vayk6Cisg
ICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDKToKKyAg
ICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmR1bXBSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpJ
bnRlcnByZXRlcjo6dW53aW5kQ2FsbEZyYW1lKToKKyAgICAgICAgKEpTQzo6Z2V0TGluZU51bWJl
ckZvckNhbGxGcmFtZSk6CisgICAgICAgIChKU0M6OmdldENhbGxlckluZm8pOgorICAgICAgICAo
SlNDOjpJbnRlcnByZXRlcjo6Z2V0U3RhY2tUcmFjZSk6CisgICAgICAgIChKU0M6OkludGVycHJl
dGVyOjphZGRTdGFja1RyYWNlSWZOZWNlc3NhcnkpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRl
cjo6cmV0cmlldmVDYWxsZXJGcm9tVk1Db2RlKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRl
cnByZXRlci5oOgorICAgICAgICAoU3RhY2tGcmFtZSk6CisgICAgICAgIChKU0M6OlN0YWNrRnJh
bWU6OnRvU3RyaW5nKToKKyAgICAgICAgKEpTQzo6U3RhY2tGcmFtZTo6ZnJpZW5kbHlMaW5lTnVt
YmVyKToKKyAgICAgICAgKEludGVycHJldGVyKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yLmNw
cDoKKyAgICAgICAgKEpTQzo6dGhyb3dFcnJvcik6CisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bERhdGEuaDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU0dsb2JhbERhdGEpOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpEeW5hbWljR2xv
YmFsT2JqZWN0U2NvcGU6OkR5bmFtaWNHbG9iYWxPYmplY3RTY29wZSk6CisKIDIwMTMtMDQtMDYg
IFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjE0NjkzMi4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDb250ZXh0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ29udGV4dFJlZi5jcHAJKHJldmlzaW9uIDE0NzgzOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyAr
MzYsNiBAQAogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNPYmplY3Qu
aCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCi0jaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIK
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nSGFzaC5oPgogCkBAIC0xNzYsMzggKzE3NSw1MSBAQCBKU1N0cmluZ1JlZiBKU0NvbnRl
eHRDcmVhdGVCYWNrdHJhY2UoSlNDCiB7CiAgICAgRXhlY1N0YXRlKiBleGVjID0gdG9KUyhjdHgp
OwogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwotICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKLSAgICBWZWN0b3I8U3RhY2tGcmFtZT4gc3RhY2tUcmFjZTsKLSAgICBJbnRlcnByZXRlcjo6
Z2V0U3RhY2tUcmFjZSgmZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdGFja1RyYWNlLCBtYXhTdGFja1Np
emUpOwogCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGFja1RyYWNlLnNpemUoKTsgaSsr
KSB7CisgICAgdW5zaWduZWQgY291bnQgPSAwOworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
KyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IGV4ZWM7CisgICAgU3RyaW5nIGZ1bmN0aW9uTmFt
ZTsKKyAgICBpZiAoZXhlYy0+Y2FsbGVlKCkpIHsKKyAgICAgICAgaWYgKGFzT2JqZWN0KGV4ZWMt
PmNhbGxlZSgpKS0+aW5oZXJpdHMoJkludGVybmFsRnVuY3Rpb246OnNfaW5mbykpIHsKKyAgICAg
ICAgICAgIGZ1bmN0aW9uTmFtZSA9IGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUoKSkt
Pm5hbWUoZXhlYyk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiMwICIpOwor
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKCkgIik7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAg
ICB9CisgICAgfQorICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGNh
bGxGcmFtZSk7CisgICAgICAgIGludCBzaWduZWRMaW5lTnVtYmVyOworICAgICAgICBpbnRwdHJf
dCBzb3VyY2VJRDsKICAgICAgICAgU3RyaW5nIHVybFN0cmluZzsKLSAgICAgICAgU3RyaW5nIGZ1
bmN0aW9uTmFtZTsKLSAgICAgICAgU3RhY2tGcmFtZSYgZnJhbWUgPSBzdGFja1RyYWNlW2ldOwot
ICAgICAgICBKU1ZhbHVlIGZ1bmN0aW9uID0gZnJhbWUuY2FsbGVlLmdldCgpOwotICAgICAgICBp
ZiAoZnJhbWUuY2FsbGVlKQotICAgICAgICAgICAgZnVuY3Rpb25OYW1lID0gZnJhbWUuZnJpZW5k
bHlGdW5jdGlvbk5hbWUoZXhlYyk7CisgICAgICAgIEpTVmFsdWUgZnVuY3Rpb247CisKKyAgICAg
ICAgZXhlYy0+aW50ZXJwcmV0ZXIoKS0+cmV0cmlldmVMYXN0Q2FsbGVyKGNhbGxGcmFtZSwgc2ln
bmVkTGluZU51bWJlciwgc291cmNlSUQsIHVybFN0cmluZywgZnVuY3Rpb24pOworCisgICAgICAg
IGlmIChmdW5jdGlvbikKKyAgICAgICAgICAgIGZ1bmN0aW9uTmFtZSA9IGpzQ2FzdDxKU0Z1bmN0
aW9uKj4oZnVuY3Rpb24pLT5uYW1lKGV4ZWMpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
IC8vIENhbGxlciBpcyB1bmtub3duLCBidXQgaWYgZnJhbWUgaXMgZW1wdHkgd2Ugc2hvdWxkIHN0
aWxsIGFkZCB0aGUgZnJhbWUsIGJlY2F1c2UKICAgICAgICAgICAgIC8vIHNvbWV0aGluZyBjYWxs
ZWQgdXMsIGFuZCBnYXZlIHVzIGFyZ3VtZW50cy4KLSAgICAgICAgICAgIGlmIChpKQorICAgICAg
ICAgICAgaWYgKGNvdW50KQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAg
ICAgIHVuc2lnbmVkIGxpbmVOdW1iZXIgPSBmcmFtZS5saW5lKCk7CisgICAgICAgIHVuc2lnbmVk
IGxpbmVOdW1iZXIgPSBzaWduZWRMaW5lTnVtYmVyID49IDAgPyBzaWduZWRMaW5lTnVtYmVyIDog
MDsKICAgICAgICAgaWYgKCFidWlsZGVyLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCdcbicpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnIycpOwotICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoY291bnQp
OwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChm
dW5jdGlvbk5hbWUpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIigpIGF0ICIpOwog
ICAgICAgICBidWlsZGVyLmFwcGVuZCh1cmxTdHJpbmcpOwotICAgICAgICBpZiAoZnJhbWUuY29k
ZVR5cGUgIT0gU3RhY2tGcmFtZU5hdGl2ZUNvZGUpIHsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCc6Jyk7Ci0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihsaW5lTnVtYmVyKTsK
LSAgICAgICAgfQotICAgICAgICBpZiAoIWZ1bmN0aW9uKQorICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnOicpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihsaW5lTnVtYmVyKTsKKyAgICAg
ICAgaWYgKCFmdW5jdGlvbiB8fCArK2NvdW50ID09IG1heFN0YWNrU2l6ZSkKICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYWxsRnJhbWUgPSBjYWxsRnJhbWUtPmNhbGxlckZyYW1lKCk7CiAg
ICAgfQogICAgIHJldHVybiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGJ1aWxkZXIudG9TdHJpbmco
KSkubGVha1JlZigpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDE0NzgzOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDU1LDcgKzIwNTUsNiBAQCB2b2lkIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0RGVidWdIb29rKERlCiAgICAgaWYgKCFtX3Nob3VsZEVtaXREZWJ1Z0hvb2tz
KQogICAgICAgICByZXR1cm47CiAjZW5kaWYKLSAgICBlbWl0RXhwcmVzc2lvbkluZm8oY2hhclBv
c2l0aW9uLCAwLCAwKTsKICAgICBlbWl0T3Bjb2RlKG9wX2RlYnVnKTsKICAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQoZGVidWdIb29rSUQpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChmaXJz
dExpbmUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
SW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiAxNDc4MzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTksNyAr
MTk5LDcgQEAgSW50ZXJwcmV0ZXI6OlN0YWNrUG9saWN5OjpTdGFja1BvbGljeShJbgogfQogCiAK
LXN0YXRpYyBDYWxsRnJhbWUqIGdldENhbGxlckluZm8oSlNHbG9iYWxEYXRhKiwgQ2FsbEZyYW1l
KiwgdW5zaWduZWQmIGJ5dGVjb2RlT2Zmc2V0LCBDb2RlQmxvY2sqJiBjYWxsZXJPdXQpOworc3Rh
dGljIENhbGxGcmFtZSogZ2V0Q2FsbGVySW5mbyhKU0dsb2JhbERhdGEqLCBDYWxsRnJhbWUqLCBp
bnQmIGxpbmVOdW1iZXIsIHVuc2lnbmVkJiBieXRlY29kZU9mZnNldCwgQ29kZUJsb2NrKiYgY2Fs
bGVyT3V0KTsKIAogLy8gUmV0dXJucyB0aGUgZGVwdGggb2YgdGhlIHNjb3BlIGNoYWluIHdpdGhp
biBhIGdpdmVuIGNhbGwgZnJhbWUuCiBzdGF0aWMgaW50IGRlcHRoKENvZGVCbG9jayogY29kZUJs
b2NrLCBKU1Njb3BlKiBzYykKQEAgLTQyMiw5ICs0MjIsOCBAQCB2b2lkIEludGVycHJldGVyOjpk
dW1wUmVnaXN0ZXJzKENhbGxGcmFtCiAjZW5kaWYKICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNl
dCA9IDA7CiAgICAgaW50IGxpbmUgPSAwOwotICAgIENvZGVCbG9jayogY2FsbGVyQ29kZUJsb2Nr
ID0gMDsKLSAgICBnZXRDYWxsZXJJbmZvKCZjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgY2FsbEZy
YW1lLCBieXRlY29kZU9mZnNldCwgY2FsbGVyQ29kZUJsb2NrKTsKLSAgICBsaW5lID0gY2FsbGVy
Q29kZUJsb2NrLT5saW5lTnVtYmVyRm9yQnl0ZWNvZGVPZmZzZXQoYnl0ZWNvZGVPZmZzZXQpOwor
ICAgIENvZGVCbG9jayogdW51c2VkQ2FsbGVyQ29kZUJsb2NrID0gMDsKKyAgICBnZXRDYWxsZXJJ
bmZvKCZjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgY2FsbEZyYW1lLCBsaW5lLCBieXRlY29kZU9m
ZnNldCwgdW51c2VkQ2FsbGVyQ29kZUJsb2NrKTsKICAgICBkYXRhTG9nRigiW1JldHVyblZQQ10g
ICAgICAgICAgICAgICAgfCAlMTBwIHwgJWQgKGxpbmUgJWQpXG4iLCBpdCwgYnl0ZWNvZGVPZmZz
ZXQsIGxpbmUpOwogICAgICsraXQ7CiAgICAgZGF0YUxvZ0YoIltDb2RlQmxvY2tdICAgICAgICAg
ICAgICAgIHwgJTEwcCB8ICVwIFxuIiwgaXQsIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCkpOwpAQCAt
NTA4LDcgKzUwNyw4IEBAIE5FVkVSX0lOTElORSBib29sIEludGVycHJldGVyOjp1bndpbmRDYWwK
ICAgICBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS50b3BDYWxsRnJhbWUgPSBjYWxsZXJGcmFtZTsK
ICAgICBpZiAoY2FsbGVyRnJhbWUtPmhhc0hvc3RDYWxsRnJhbWVGbGFnKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBjYWxsRnJhbWUgPSBnZXRDYWxsZXJJbmZvKCZjYWxsRnJhbWUtPmds
b2JhbERhdGEoKSwgY2FsbEZyYW1lLCBieXRlY29kZU9mZnNldCwgY29kZUJsb2NrKTsKKyAgICBp
bnQgdW51c2VkTGluZU51bWJlciA9IDA7CisgICAgY2FsbEZyYW1lID0gZ2V0Q2FsbGVySW5mbygm
Y2FsbEZyYW1lLT5nbG9iYWxEYXRhKCksIGNhbGxGcmFtZSwgdW51c2VkTGluZU51bWJlciwgYnl0
ZWNvZGVPZmZzZXQsIGNvZGVCbG9jayk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTU2NCwy
NSArNTY0LDI3IEBAIHN0YXRpYyB2b2lkIGFwcGVuZFNvdXJjZVRvRXJyb3IoQ2FsbEZyYW0KICAg
ICBleGNlcHRpb24tPnB1dERpcmVjdCgqZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS0+cHJvcGVydHlO
YW1lcy0+bWVzc2FnZSwganNTdHJpbmcoZ2xvYmFsRGF0YSwgbWVzc2FnZSkpOwogfQogCi1zdGF0
aWMgdW5zaWduZWQgZ2V0Qnl0ZWNvZGVPZmZzZXRGb3JDYWxsRnJhbWUoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitzdGF0aWMgaW50IGdldExpbmVOdW1iZXJGb3JDYWxsRnJhbWUoSlNHbG9iYWxEYXRh
KiBnbG9iYWxEYXRhLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKKyAgICBVTlVTRURfUEFSQU0o
Z2xvYmFsRGF0YSk7CiAgICAgY2FsbEZyYW1lID0gY2FsbEZyYW1lLT5yZW1vdmVIb3N0Q2FsbEZy
YW1lRmxhZygpOwogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxv
Y2soKTsKICAgICBpZiAoIWNvZGVCbG9jaykKLSAgICAgICAgcmV0dXJuIDA7Ci0jaWYgRU5BQkxF
KEpJVCkKKyAgICAgICAgcmV0dXJuIC0xOworI2lmIEVOQUJMRShKSVQpIHx8IEVOQUJMRShMTElO
VCkKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICBpZiAoY29kZUJsb2NrLT5nZXRKSVRUeXBlKCkg
PT0gSklUQ29kZTo6REZHSklUKQotICAgICAgICByZXR1cm4gY29kZUJsb2NrLT5jb2RlT3JpZ2lu
KGNhbGxGcmFtZS0+Y29kZU9yaWdpbkluZGV4Rm9yREZHKCkpLmJ5dGVjb2RlSW5kZXg7CisgICAg
ICAgIHJldHVybiBjb2RlQmxvY2stPmxpbmVOdW1iZXJGb3JCeXRlY29kZU9mZnNldChjb2RlQmxv
Y2stPmNvZGVPcmlnaW4oY2FsbEZyYW1lLT5jb2RlT3JpZ2luSW5kZXhGb3JERkcoKSkuYnl0ZWNv
ZGVJbmRleCk7CiAjZW5kaWYKLSAgICByZXR1cm4gY2FsbEZyYW1lLT5ieXRlY29kZU9mZnNldEZv
ck5vbkRGR0NvZGUoKTsKKyAgICByZXR1cm4gY29kZUJsb2NrLT5saW5lTnVtYmVyRm9yQnl0ZWNv
ZGVPZmZzZXQoY2FsbEZyYW1lLT5ieXRlY29kZU9mZnNldEZvck5vbkRGR0NvZGUoKSk7CiAjZW5k
aWYKIH0KIAotc3RhdGljIENhbGxGcmFtZSogZ2V0Q2FsbGVySW5mbyhKU0dsb2JhbERhdGEqIGds
b2JhbERhdGEsIENhbGxGcmFtZSogY2FsbEZyYW1lLCB1bnNpZ25lZCYgYnl0ZWNvZGVPZmZzZXQs
IENvZGVCbG9jayomIGNhbGxlcikKK3N0YXRpYyBDYWxsRnJhbWUqIGdldENhbGxlckluZm8oSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgaW50JiBsaW5lTnVt
YmVyLCB1bnNpZ25lZCYgYnl0ZWNvZGVPZmZzZXQsIENvZGVCbG9jayomIGNhbGxlcikKIHsKICAg
ICBBU1NFUlRfVU5VU0VEKGdsb2JhbERhdGEsIGdsb2JhbERhdGEpOwogICAgIGJ5dGVjb2RlT2Zm
c2V0ID0gMDsKKyAgICBsaW5lTnVtYmVyID0gLTE7CiAgICAgQVNTRVJUKCFjYWxsRnJhbWUtPmhh
c0hvc3RDYWxsRnJhbWVGbGFnKCkpOwogICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUgPSBjYWxs
RnJhbWUtPmNvZGVCbG9jaygpID8gY2FsbEZyYW1lLT50cnVlQ2FsbGVyRnJhbWUoKSA6IGNhbGxG
cmFtZS0+Y2FsbGVyRnJhbWUoKS0+cmVtb3ZlSG9zdENhbGxGcmFtZUZsYWcoKTsKICAgICBib29s
IGNhbGxmcmFtZUlzSG9zdCA9IGNhbGxlckZyYW1lLT5hZGRIb3N0Q2FsbEZyYW1lRmxhZygpID09
IGNhbGxGcmFtZS0+Y2FsbGVyRnJhbWUoKTsKQEAgLTY1Miw2ICs2NTQsNyBAQCBzdGF0aWMgQ2Fs
bEZyYW1lKiBnZXRDYWxsZXJJbmZvKEpTR2xvYmFsCiAKICAgICBSRUxFQVNFX0FTU0VSVChjYWxs
ZXJDb2RlQmxvY2spOwogICAgIGNhbGxlciA9IGNhbGxlckNvZGVCbG9jazsKKyAgICBsaW5lTnVt
YmVyID0gY2FsbGVyQ29kZUJsb2NrLT5saW5lTnVtYmVyRm9yQnl0ZWNvZGVPZmZzZXQoYnl0ZWNv
ZGVPZmZzZXQpOwogICAgIHJldHVybiBjYWxsZXJGcmFtZTsKIH0KIApAQCAtNjc3LDk3ICs2ODAs
NTEgQEAgc3RhdGljIFN0YWNrRnJhbWVDb2RlVHlwZSBnZXRTdGFja0ZyYW1lQwogICAgIHJldHVy
biBTdGFja0ZyYW1lR2xvYmFsQ29kZTsKIH0KIAotdW5zaWduZWQgU3RhY2tGcmFtZTo6bGluZSgp
Ci17Ci0gICAgcmV0dXJuIGNvZGVCbG9jayA/IGNvZGVCbG9jay0+bGluZU51bWJlckZvckJ5dGVj
b2RlT2Zmc2V0KGJ5dGVjb2RlT2Zmc2V0KSArIGxpbmVPZmZzZXQgOiAwOwotfQotCi11bnNpZ25l
ZCBTdGFja0ZyYW1lOjpjb2x1bW4oKQotewotICAgIGlmICghY29kZSkKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgaW50IGRpdm90ID0gMDsKLSAgICBpbnQgdW51c2VkU3RhcnRPZmZzZXQgPSAwOwot
ICAgIGludCB1bnVzZWRFbmRPZmZzZXQgPSAwOwotICAgIGV4cHJlc3Npb25JbmZvKGRpdm90LCB1
bnVzZWRTdGFydE9mZnNldCwgdW51c2VkRW5kT2Zmc2V0KTsKLSAgICByZXR1cm4gY29kZS0+Y2hh
clBvc2l0aW9uVG9Db2x1bW5OdW1iZXIoZGl2b3QpOwotfQotCi12b2lkIFN0YWNrRnJhbWU6OmV4
cHJlc3Npb25JbmZvKGludCYgZGl2b3QsIGludCYgc3RhcnRPZmZzZXQsIGludCYgZW5kT2Zmc2V0
KQotewotICAgIGNvZGVCbG9jay0+ZXhwcmVzc2lvblJhbmdlRm9yQnl0ZWNvZGVPZmZzZXQoYnl0
ZWNvZGVPZmZzZXQsIGRpdm90LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKLSAgICBkaXZvdCAr
PSBzdGFydE9mZnNldDsKLX0KLQotU3RyaW5nIFN0YWNrRnJhbWU6OnRvU3RyaW5nKENhbGxGcmFt
ZSogY2FsbEZyYW1lKQotewotICAgIFN0cmluZ0J1aWxkZXIgdHJhY2VCdWlsZDsKLSAgICBTdHJp
bmcgZnVuY3Rpb25OYW1lID0gZnJpZW5kbHlGdW5jdGlvbk5hbWUoY2FsbEZyYW1lKTsKLSAgICBT
dHJpbmcgc291cmNlVVJMID0gZnJpZW5kbHlTb3VyY2VVUkwoKTsKLSAgICB0cmFjZUJ1aWxkLmFw
cGVuZChmdW5jdGlvbk5hbWUpOwotICAgIGlmICghc291cmNlVVJMLmlzRW1wdHkoKSkgewotICAg
ICAgICBpZiAoIWZ1bmN0aW9uTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICB0cmFjZUJ1aWxk
LmFwcGVuZCgnQCcpOwotICAgICAgICB0cmFjZUJ1aWxkLmFwcGVuZChzb3VyY2VVUkwpOwotICAg
ICAgICBpZiAoY29kZVR5cGUgIT0gU3RhY2tGcmFtZU5hdGl2ZUNvZGUpIHsKLSAgICAgICAgICAg
IHRyYWNlQnVpbGQuYXBwZW5kKCc6Jyk7Ci0gICAgICAgICAgICB0cmFjZUJ1aWxkLmFwcGVuZE51
bWJlcihsaW5lKCkpOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiB0cmFjZUJ1aWxkLnRv
U3RyaW5nKCkuaW1wbCgpOwotfQotCi12b2lkIEludGVycHJldGVyOjpnZXRTdGFja1RyYWNlKEpT
R2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgVmVjdG9yPFN0YWNrRnJhbWU+JiByZXN1bHRzLCBzaXpl
X3QgbWF4U3RhY2tTaXplKQordm9pZCBJbnRlcnByZXRlcjo6Z2V0U3RhY2tUcmFjZShKU0dsb2Jh
bERhdGEqIGdsb2JhbERhdGEsIFZlY3RvcjxTdGFja0ZyYW1lPiYgcmVzdWx0cykKIHsKICAgICBD
YWxsRnJhbWUqIGNhbGxGcmFtZSA9IGdsb2JhbERhdGEtPnRvcENhbGxGcmFtZS0+cmVtb3ZlSG9z
dENhbGxGcmFtZUZsYWcoKTsKICAgICBpZiAoIWNhbGxGcmFtZSB8fCBjYWxsRnJhbWUgPT0gQ2Fs
bEZyYW1lOjpub0NhbGxlcigpKSAKICAgICAgICAgcmV0dXJuOwotICAgIHVuc2lnbmVkIGJ5dGVj
b2RlT2Zmc2V0ID0gZ2V0Qnl0ZWNvZGVPZmZzZXRGb3JDYWxsRnJhbWUoY2FsbEZyYW1lKTsKKyAg
ICBpbnQgbGluZSA9IGdldExpbmVOdW1iZXJGb3JDYWxsRnJhbWUoZ2xvYmFsRGF0YSwgY2FsbEZy
YW1lKTsKKwogICAgIGNhbGxGcmFtZSA9IGNhbGxGcmFtZS0+dHJ1ZUNhbGxGcmFtZUZyb21WTUNv
ZGUoKTsKICAgICBpZiAoIWNhbGxGcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgIENvZGVCbG9j
ayogY2FsbGVyQ29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKIAotICAgIHdoaWxl
IChjYWxsRnJhbWUgJiYgY2FsbEZyYW1lICE9IENhbGxGcmFtZTo6bm9DYWxsZXIoKSAmJiBtYXhT
dGFja1NpemUtLSkgeworICAgIHdoaWxlIChjYWxsRnJhbWUgJiYgY2FsbEZyYW1lICE9IENhbGxG
cmFtZTo6bm9DYWxsZXIoKSkgewogICAgICAgICBTdHJpbmcgc291cmNlVVJMOwotICAgICAgICBp
ZiAoY2FsbGVyQ29kZUJsb2NrKSB7CisgICAgICAgIGlmIChjYWxsRnJhbWUtPmNvZGVCbG9jaygp
KSB7CiAgICAgICAgICAgICBzb3VyY2VVUkwgPSBnZXRTb3VyY2VVUkxGcm9tQ2FsbEZyYW1lKGNh
bGxGcmFtZSk7Ci0gICAgICAgICAgICBTdGFja0ZyYW1lIHMgPSB7Ci0gICAgICAgICAgICAgICAg
U3Ryb25nPEpTT2JqZWN0PigqZ2xvYmFsRGF0YSwgY2FsbEZyYW1lLT5jYWxsZWUoKSksCi0gICAg
ICAgICAgICAgICAgZ2V0U3RhY2tGcmFtZUNvZGVUeXBlKGNhbGxGcmFtZSksCi0gICAgICAgICAg
ICAgICAgU3Ryb25nPEV4ZWN1dGFibGVCYXNlPigqZ2xvYmFsRGF0YSwgY2FsbGVyQ29kZUJsb2Nr
LT5vd25lckV4ZWN1dGFibGUoKSksCi0gICAgICAgICAgICAgICAgU3Ryb25nPFVubGlua2VkQ29k
ZUJsb2NrPigqZ2xvYmFsRGF0YSwgY2FsbGVyQ29kZUJsb2NrLT51bmxpbmtlZENvZGVCbG9jaygp
KSwKLSAgICAgICAgICAgICAgICBjYWxsZXJDb2RlQmxvY2stPnNvdXJjZSgpLAotICAgICAgICAg
ICAgICAgIGNhbGxlckNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCktPmxpbmVObygpLAotICAg
ICAgICAgICAgICAgIGNhbGxlckNvZGVCbG9jay0+c291cmNlT2Zmc2V0KCksCi0gICAgICAgICAg
ICAgICAgYnl0ZWNvZGVPZmZzZXQsCi0gICAgICAgICAgICAgICAgc291cmNlVVJMCi0gICAgICAg
ICAgICB9OworICAgICAgICAgICAgU3RhY2tGcmFtZSBzID0geyBTdHJvbmc8SlNPYmplY3Q+KCpn
bG9iYWxEYXRhLCBjYWxsRnJhbWUtPmNhbGxlZSgpKSwgZ2V0U3RhY2tGcmFtZUNvZGVUeXBlKGNh
bGxGcmFtZSksIFN0cm9uZzxFeGVjdXRhYmxlQmFzZT4oKmdsb2JhbERhdGEsIGNhbGxGcmFtZS0+
Y29kZUJsb2NrKCktPm93bmVyRXhlY3V0YWJsZSgpKSwgbGluZSwgc291cmNlVVJMfTsKICAgICAg
ICAgICAgIHJlc3VsdHMuYXBwZW5kKHMpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
U3RhY2tGcmFtZSBzID0geyBTdHJvbmc8SlNPYmplY3Q+KCpnbG9iYWxEYXRhLCBjYWxsRnJhbWUt
PmNhbGxlZSgpKSwgU3RhY2tGcmFtZU5hdGl2ZUNvZGUsIFN0cm9uZzxFeGVjdXRhYmxlQmFzZT4o
KSwgU3Ryb25nPFVubGlua2VkQ29kZUJsb2NrPigpLCAwLCAwLCAwLCAwLCBTdHJpbmcoKX07Cisg
ICAgICAgICAgICBTdGFja0ZyYW1lIHMgPSB7IFN0cm9uZzxKU09iamVjdD4oKmdsb2JhbERhdGEs
IGNhbGxGcmFtZS0+Y2FsbGVlKCkpLCBTdGFja0ZyYW1lTmF0aXZlQ29kZSwgU3Ryb25nPEV4ZWN1
dGFibGVCYXNlPigpLCAtMSwgU3RyaW5nKCl9OwogICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQo
cyk7CiAgICAgICAgIH0KLSAgICAgICAgY2FsbEZyYW1lID0gZ2V0Q2FsbGVySW5mbyhnbG9iYWxE
YXRhLCBjYWxsRnJhbWUsIGJ5dGVjb2RlT2Zmc2V0LCBjYWxsZXJDb2RlQmxvY2spOworICAgICAg
ICB1bnNpZ25lZCB1bnVzZWRCeXRlY29kZU9mZnNldCA9IDA7CisgICAgICAgIENvZGVCbG9jayog
dW51c2VkQ2FsbGVyQ29kZUJsb2NrID0gMDsKKyAgICAgICAgY2FsbEZyYW1lID0gZ2V0Q2FsbGVy
SW5mbyhnbG9iYWxEYXRhLCBjYWxsRnJhbWUsIGxpbmUsIHVudXNlZEJ5dGVjb2RlT2Zmc2V0LCB1
bnVzZWRDYWxsZXJDb2RlQmxvY2spOwogICAgIH0KIH0KIAotdm9pZCBJbnRlcnByZXRlcjo6YWRk
U3RhY2tUcmFjZUlmTmVjZXNzYXJ5KENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlIGVycm9y
KQordm9pZCBJbnRlcnByZXRlcjo6YWRkU3RhY2tUcmFjZUlmTmVjZXNzYXJ5KENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBKU09iamVjdCogZXJyb3IpCiB7CiAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxE
YXRhID0gJmNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpOwogICAgIEFTU0VSVChjYWxsRnJhbWUgPT0g
Z2xvYmFsRGF0YS0+dG9wQ2FsbEZyYW1lIHx8IGNhbGxGcmFtZSA9PSBjYWxsRnJhbWUtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpIHx8IGNhbGxGcmFtZSA9PSBjYWxsRnJhbWUt
PmR5bmFtaWNHbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpKTsKKyAgICBpZiAoZXJyb3ItPmhh
c1Byb3BlcnR5KGNhbGxGcmFtZSwgZ2xvYmFsRGF0YS0+cHJvcGVydHlOYW1lcy0+c3RhY2spKQor
ICAgICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8U3RhY2tGcmFtZT4gc3RhY2tUcmFjZTsKICAg
ICBnZXRTdGFja1RyYWNlKCZjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgc3RhY2tUcmFjZSk7CiAg
ICAgCi0gICAgaWYgKHN0YWNrVHJhY2UuaXNFbXB0eSgpIHx8ICFlcnJvci5pc09iamVjdCgpKQor
ICAgIGlmIChzdGFja1RyYWNlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwotICAgIEpTT2Jq
ZWN0KiBlcnJvck9iamVjdCA9IGFzT2JqZWN0KGVycm9yKTsKKyAgICAKICAgICBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0ID0gMDsKICAgICBpZiAoaXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhj
ZXB0aW9uKGVycm9yKSB8fCBpc0ludGVycnVwdGVkRXhlY3V0aW9uRXhjZXB0aW9uKGVycm9yKSkK
ICAgICAgICAgZ2xvYmFsT2JqZWN0ID0gZ2xvYmFsRGF0YS0+ZHluYW1pY0dsb2JhbE9iamVjdDsK
ICAgICBlbHNlCi0gICAgICAgIGdsb2JhbE9iamVjdCA9IGVycm9yT2JqZWN0LT5nbG9iYWxPYmpl
Y3QoKTsKKyAgICAgICAgZ2xvYmFsT2JqZWN0ID0gZXJyb3ItPmdsb2JhbE9iamVjdCgpOwogCiAg
ICAgLy8gRklYTUU6IEpTU3RyaW5nSm9pbmVyIGNvdWxkIGJlIG1vcmUgZWZmaWNpZW50IHRoYW4g
U3RyaW5nQnVpbGRlciBoZXJlLgogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKQEAgLTc3Niwx
MCArNzMzLDggQEAgdm9pZCBJbnRlcnByZXRlcjo6YWRkU3RhY2tUcmFjZUlmTmVjZXNzYQogICAg
ICAgICBpZiAoaSAhPSBzdGFja1RyYWNlLnNpemUoKSAtIDEpCiAgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCgnXG4nKTsKICAgICB9Ci0KLSAgICBpZiAoZXJyb3JPYmplY3QtPmhhc1Byb3BlcnR5
KGNhbGxGcmFtZSwgZ2xvYmFsRGF0YS0+cHJvcGVydHlOYW1lcy0+c3RhY2spKQotICAgICAgICBy
ZXR1cm47Ci0gICAgZXJyb3JPYmplY3QtPnB1dERpcmVjdCgqZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0
YS0+cHJvcGVydHlOYW1lcy0+c3RhY2ssIGpzU3RyaW5nKGdsb2JhbERhdGEsIGJ1aWxkZXIudG9T
dHJpbmcoKSksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSk7CisgICAgCisgICAgZXJyb3ItPnB1dERp
cmVjdCgqZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS0+cHJvcGVydHlOYW1lcy0+c3RhY2ssIGpzU3Ry
aW5nKGdsb2JhbERhdGEsIGJ1aWxkZXIudG9TdHJpbmcoKSksIFJlYWRPbmx5IHwgRG9udERlbGV0
ZSk7CiB9CiAKIE5FVkVSX0lOTElORSBIYW5kbGVySW5mbyogSW50ZXJwcmV0ZXI6OnRocm93RXhj
ZXB0aW9uKENhbGxGcmFtZSomIGNhbGxGcmFtZSwgSlNWYWx1ZSYgZXhjZXB0aW9uVmFsdWUsIHVu
c2lnbmVkIGJ5dGVjb2RlT2Zmc2V0KQpAQCAtMTQyMiw5ICsxMzc3LDEwIEBAIEpTVmFsdWUgSW50
ZXJwcmV0ZXI6OnJldHJpZXZlQ2FsbGVyRnJvbVYKICAgICBpZiAoIWZ1bmN0aW9uQ2FsbEZyYW1l
KQogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAgICAgCisgICAgaW50IGxpbmVOdW1iZXI7CiAg
ICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQ7CiAgICAgQ29kZUJsb2NrKiB1bnVzZWRDYWxsZXJD
b2RlQmxvY2sgPSAwOwotICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUgPSBnZXRDYWxsZXJJbmZv
KCZjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgZnVuY3Rpb25DYWxsRnJhbWUsIGJ5dGVjb2RlT2Zm
c2V0LCB1bnVzZWRDYWxsZXJDb2RlQmxvY2spOworICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUg
PSBnZXRDYWxsZXJJbmZvKCZjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgZnVuY3Rpb25DYWxsRnJh
bWUsIGxpbmVOdW1iZXIsIGJ5dGVjb2RlT2Zmc2V0LCB1bnVzZWRDYWxsZXJDb2RlQmxvY2spOwog
ICAgIGlmICghY2FsbGVyRnJhbWUpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKICAgICBKU1Zh
bHVlIGNhbGxlciA9IGNhbGxlckZyYW1lLT5jYWxsZWUoKTsKQEAgLTE0MzQsNyArMTM5MCw3IEBA
IEpTVmFsdWUgSW50ZXJwcmV0ZXI6OnJldHJpZXZlQ2FsbGVyRnJvbVYKICAgICAvLyBTa2lwIG92
ZXIgZnVuY3Rpb24gYmluZGluZ3MuCiAgICAgQVNTRVJUKGNhbGxlci5pc09iamVjdCgpKTsKICAg
ICB3aGlsZSAoYXNPYmplY3QoY2FsbGVyKS0+aW5oZXJpdHMoJkpTQm91bmRGdW5jdGlvbjo6c19p
bmZvKSkgewotICAgICAgICBjYWxsZXJGcmFtZSA9IGdldENhbGxlckluZm8oJmNhbGxGcmFtZS0+
Z2xvYmFsRGF0YSgpLCBjYWxsZXJGcmFtZSwgYnl0ZWNvZGVPZmZzZXQsIHVudXNlZENhbGxlckNv
ZGVCbG9jayk7CisgICAgICAgIGNhbGxlckZyYW1lID0gZ2V0Q2FsbGVySW5mbygmY2FsbEZyYW1l
LT5nbG9iYWxEYXRhKCksIGNhbGxlckZyYW1lLCBsaW5lTnVtYmVyLCBieXRlY29kZU9mZnNldCwg
dW51c2VkQ2FsbGVyQ29kZUJsb2NrKTsKICAgICAgICAgaWYgKCFjYWxsZXJGcmFtZSkKICAgICAg
ICAgICAgIHJldHVybiBqc051bGwoKTsKICAgICAgICAgY2FsbGVyID0gY2FsbGVyRnJhbWUtPmNh
bGxlZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0lu
dGVycHJldGVyLmgJKHJldmlzaW9uIDE0NzgzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9JbnRlcnByZXRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSwxMyArNzksMjUg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFN0cm9uZzxKU09iamVjdD4gY2FsbGVlOwogICAg
ICAgICBTdGFja0ZyYW1lQ29kZVR5cGUgY29kZVR5cGU7CiAgICAgICAgIFN0cm9uZzxFeGVjdXRh
YmxlQmFzZT4gZXhlY3V0YWJsZTsKLSAgICAgICAgU3Ryb25nPFVubGlua2VkQ29kZUJsb2NrPiBj
b2RlQmxvY2s7Ci0gICAgICAgIFJlZlB0cjxTb3VyY2VQcm92aWRlcj4gY29kZTsKLSAgICAgICAg
aW50IGxpbmVPZmZzZXQ7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXJhY3Rlck9mZnNldDsKLSAgICAg
ICAgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQ7CisgICAgICAgIGludCBsaW5lOwogICAgICAgICBT
dHJpbmcgc291cmNlVVJMOwotICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgdG9TdHJp
bmcoQ2FsbEZyYW1lKik7CisgICAgICAgIFN0cmluZyB0b1N0cmluZyhDYWxsRnJhbWUqIGNhbGxG
cmFtZSkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nQnVpbGRlciB0cmFjZUJ1
aWxkOworICAgICAgICAgICAgU3RyaW5nIGZ1bmN0aW9uTmFtZSA9IGZyaWVuZGx5RnVuY3Rpb25O
YW1lKGNhbGxGcmFtZSk7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlVVJMID0gZnJpZW5kbHlT
b3VyY2VVUkwoKTsKKyAgICAgICAgICAgIHRyYWNlQnVpbGQuYXBwZW5kKGZ1bmN0aW9uTmFtZSk7
CisgICAgICAgICAgICBpZiAoIXNvdXJjZVVSTC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIWZ1bmN0aW9uTmFtZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgIHRyYWNl
QnVpbGQuYXBwZW5kKCdAJyk7CisgICAgICAgICAgICAgICAgdHJhY2VCdWlsZC5hcHBlbmQoc291
cmNlVVJMKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZSA+IC0xKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRyYWNlQnVpbGQuYXBwZW5kKCc6Jyk7CisgICAgICAgICAgICAgICAgICAgIHRyYWNl
QnVpbGQuYXBwZW5kTnVtYmVyKGxpbmUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHJldHVybiB0cmFjZUJ1aWxkLnRvU3RyaW5nKCkuaW1wbCgpOworICAg
ICAgICB9CiAgICAgICAgIFN0cmluZyBmcmllbmRseVNvdXJjZVVSTCgpIGNvbnN0CiAgICAgICAg
IHsKICAgICAgICAgICAgIFN0cmluZyB0cmFjZUxpbmU7CkBAIC0xMjUsOSArMTM3LDEwIEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHRyYWNlTGlu
ZS5pc051bGwoKSA/IGVtcHR5U3RyaW5nKCkgOiB0cmFjZUxpbmU7CiAgICAgICAgIH0KLSAgICAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgdW5zaWduZWQgbGluZSgpOwotICAgICAgICBKU19FWFBPUlRf
UFJJVkFURSB1bnNpZ25lZCBjb2x1bW4oKTsKLSAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBleHByZXNzaW9uSW5mbyhpbnQmIGRpdm90LCBpbnQmIHN0YXJ0T2Zmc2V0LCBpbnQmIGVuZE9m
ZnNldCk7CisgICAgICAgIHVuc2lnbmVkIGZyaWVuZGx5TGluZU51bWJlcigpIGNvbnN0CisgICAg
ICAgIHsKKyAgICAgICAgICAgIHJldHVybiBsaW5lID4gLTEgPyBsaW5lIDogMDsKKyAgICAgICAg
fQogICAgIH07CiAKICAgICBjbGFzcyBUb3BDYWxsRnJhbWVTZXR0ZXIgewpAQCAtMjE5LDggKzIz
Miw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBORVZFUl9JTkxJTkUgSGFuZGxlckluZm8q
IHRocm93RXhjZXB0aW9uKENhbGxGcmFtZSomLCBKU1ZhbHVlJiwgdW5zaWduZWQgYnl0ZWNvZGVP
ZmZzZXQpOwogICAgICAgICBORVZFUl9JTkxJTkUgdm9pZCBkZWJ1ZyhDYWxsRnJhbWUqLCBEZWJ1
Z0hvb2tJRCwgaW50IGZpcnN0TGluZSwgaW50IGxhc3RMaW5lLCBpbnQgY29sdW1uKTsKICAgICAg
ICAgc3RhdGljIGNvbnN0IFN0cmluZyBnZXRUcmFjZUxpbmUoQ2FsbEZyYW1lKiwgU3RhY2tGcmFt
ZUNvZGVUeXBlLCBjb25zdCBTdHJpbmcmLCBpbnQpOwotICAgICAgICBKU19FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgdm9pZCBnZXRTdGFja1RyYWNlKEpTR2xvYmFsRGF0YSosIFZlY3RvcjxTdGFja0Zy
YW1lPiYgcmVzdWx0cywgc2l6ZV90IG1heFN0YWNrU2l6ZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8
c2l6ZV90Pjo6bWF4KCkpOwotICAgICAgICBzdGF0aWMgdm9pZCBhZGRTdGFja1RyYWNlSWZOZWNl
c3NhcnkoQ2FsbEZyYW1lKiwgSlNWYWx1ZSBlcnJvcik7CisgICAgICAgIEpTX0VYUE9SVF9QUklW
QVRFIHN0YXRpYyB2b2lkIGdldFN0YWNrVHJhY2UoSlNHbG9iYWxEYXRhKiwgVmVjdG9yPFN0YWNr
RnJhbWU+JiByZXN1bHRzKTsKKyAgICAgICAgc3RhdGljIHZvaWQgYWRkU3RhY2tUcmFjZUlmTmVj
ZXNzYXJ5KENhbGxGcmFtZSosIEpTT2JqZWN0KiBlcnJvcik7CiAKICAgICAgICAgdm9pZCBkdW1w
U2FtcGxlRGF0YShFeGVjU3RhdGUqIGV4ZWMpOwogICAgICAgICB2b2lkIHN0YXJ0U2FtcGxpbmco
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAJKHJldmlzaW9u
IDE0NzgzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTU1LDcgKzE1NSw4IEBAIGJvb2wgaGFzRXJyb3JJbmZvKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmoKIAogSlNWYWx1ZSB0aHJvd0Vycm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBlcnJvcikKIHsKLSAgICBJbnRlcnByZXRlcjo6YWRkU3RhY2tUcmFjZUlmTmVjZXNzYXJ5
KGV4ZWMsIGVycm9yKTsKKyAgICBpZiAoZXJyb3IuaXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoZXhlYywgYXNPYmplY3QoZXJyb3IpKTsKICAgICBleGVjLT5nbG9iYWxEYXRh
KCkuZXhjZXB0aW9uID0gZXJyb3I7CiAgICAgcmV0dXJuIGVycm9yOwogfQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgJKHJldmlzaW9uIDE0Nzgz
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NCw3ICs1NCw2IEBACiAjaW5jbHVkZSA8d3RmL0J1bXBQb2ludGVyQWxs
b2NhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvU2lt
cGxlU3RhdHMuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KQEAgLTgyLDcgKzgxLDYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgY2xhc3MgUmVnRXhwQ2FjaGU7CiAgICAgY2xhc3MgU291cmNlUHJvdmlkZXI7CiAg
ICAgY2xhc3MgU291cmNlUHJvdmlkZXJDYWNoZTsKLSAgICBzdHJ1Y3QgU3RhY2tGcmFtZTsKICAg
ICBjbGFzcyBTdHJpbmdpZmllcjsKICAgICBjbGFzcyBTdHJ1Y3R1cmU7CiAjaWYgRU5BQkxFKFJF
R0VYUF9UUkFDSU5HKQpAQCAtMzMwLDcgKzMyOCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBUZXJtaW5hdG9yIHRlcm1pbmF0b3I7CiAKICAgICAgICAgSlNWYWx1ZSBleGNlcHRpb247Ci0g
ICAgICAgIFJlZkNvdW50ZWRBcnJheTxTdGFja0ZyYW1lPiBleGNlcHRpb25TdGFjazsKIAogICAg
ICAgICBjb25zdCBDbGFzc0luZm8qIGNvbnN0IGpzQXJyYXlDbGFzc0luZm87CiAgICAgICAgIGNv
bnN0IENsYXNzSW5mbyogY29uc3QganNGaW5hbE9iamVjdENsYXNzSW5mbzsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlz
aW9uIDE0NzgzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTk3LDggKzU5Nyw2IEBAIER5bmFtaWNHbG9iYWxP
YmplY3RTY29wZTo6RHluYW1pY0dsb2JhbE8KICAgICAgICAgLy8gdG8gb2JzZXJ2ZSB0aW1lIHpv
bmUgY2hhbmdlcy4KICAgICAgICAgZ2xvYmFsRGF0YS5yZXNldERhdGVDYWNoZSgpOwogICAgIH0K
LSAgICAvLyBDbGVhciB0aGUgZXhjZXB0aW9uIHN0YWNrIGJldHdlZW4gZW50cmllcwotICAgIGds
b2JhbERhdGEuZXhjZXB0aW9uU3RhY2sgPSBSZWZDb3VudGVkQXJyYXk8U3RhY2tGcmFtZT4oKTsK
IH0KIAogdm9pZCBzbG93VmFsaWRhdGVDZWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDc4NDIpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxMy0wNC0wNiAgR2VvZmZy
ZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJvbGxlZCBvdXQgMTQ3ODIw
IGFuZCAxNDc4MTggYmVjYXVzZSB0aGV5IGNhdXNlZCBwbHVnaW5zIHRlc3RzIHRvIEFTU0VSVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0MDk0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0
b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVNjcmlwdENhbGxTdGFjayk6CisgICAg
ICAgICogaW5zcGVjdG9yL1NjcmlwdENhbGxGcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRDYWxsRnJhbWU6OmlzRXF1YWwpOgorICAgICAgICAqIGluc3BlY3Rvci9TY3JpcHRDYWxs
RnJhbWUuaDoKKyAgICAgICAgKFNjcmlwdENhbGxGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRDYWxsRnJhbWU6OmxpbmVOdW1iZXIpOgorCiAyMDEzLTA0LTA2ICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQW5vdGhlciBidWlsZCBmaXguCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3Rh
Y2tGYWN0b3J5LmNwcAkocmV2aXNpb24gMTQ3ODM5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDE1
ICs1OCwxOCBAQCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0CiAgICAg
VmVjdG9yPFNjcmlwdENhbGxGcmFtZT4gZnJhbWVzOwogICAgIGlmIChKU0M6OkV4ZWNTdGF0ZSog
ZXhlYyA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCkpIHsKICAgICAgICAg
VmVjdG9yPFN0YWNrRnJhbWU+IHN0YWNrVHJhY2U7Ci0gICAgICAgIEludGVycHJldGVyOjpnZXRT
dGFja1RyYWNlKCZleGVjLT5nbG9iYWxEYXRhKCksIHN0YWNrVHJhY2UsIG1heFN0YWNrU2l6ZSk7
Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RhY2tUcmFjZS5zaXplKCk7IGkrKykK
LSAgICAgICAgICAgIGZyYW1lcy5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKHN0YWNrVHJhY2VbaV0u
ZnJpZW5kbHlGdW5jdGlvbk5hbWUoZXhlYyksIHN0YWNrVHJhY2VbaV0uZnJpZW5kbHlTb3VyY2VV
UkwoKSwgc3RhY2tUcmFjZVtpXS5saW5lKCksIHN0YWNrVHJhY2VbaV0uY29sdW1uKCkpKTsKKyAg
ICAgICAgSW50ZXJwcmV0ZXI6OmdldFN0YWNrVHJhY2UoJmV4ZWMtPmdsb2JhbERhdGEoKSwgc3Rh
Y2tUcmFjZSk7CisgICAgICAgIGZvciAoVmVjdG9yPFN0YWNrRnJhbWU+Ojpjb25zdF9pdGVyYXRv
ciBpdGVyID0gc3RhY2tUcmFjZS5iZWdpbigpOyBpdGVyIDwgc3RhY2tUcmFjZS5lbmQoKTsgaXRl
cisrKSB7CisgICAgICAgICAgICBmcmFtZXMuYXBwZW5kKFNjcmlwdENhbGxGcmFtZShpdGVyLT5m
cmllbmRseUZ1bmN0aW9uTmFtZShleGVjKSwgaXRlci0+ZnJpZW5kbHlTb3VyY2VVUkwoKSwgaXRl
ci0+ZnJpZW5kbHlMaW5lTnVtYmVyKCkpKTsKKyAgICAgICAgICAgIGlmIChmcmFtZXMuc2l6ZSgp
ID49IG1heFN0YWNrU2l6ZSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAg
IH0KICAgICBpZiAoZnJhbWVzLmlzRW1wdHkoKSAmJiAhZW1wdHlJc0FsbG93ZWQpIHsKICAgICAg
ICAgLy8gTm8gZnJhbWVzIGZvdW5kLiBJdCBtYXkgaGFwcGVuIGluIHRoZSBjYXNlIHdoZXJlCiAg
ICAgICAgIC8vIGEgYm91bmQgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gbmF0aXZlIGNvZGUgZm9y
IGV4YW1wbGUuCiAgICAgICAgIC8vIEZhbGxiYWNrIHRvIHNldHRpbmcgbGluZU51bWJlciB0byAw
LCBhbmQgc291cmNlIGFuZCBmdW5jdGlvbiBuYW1lIHRvICJ1bmRlZmluZWQiLgotICAgICAgICBm
cmFtZXMuYXBwZW5kKFNjcmlwdENhbGxGcmFtZSgidW5kZWZpbmVkIiwgInVuZGVmaW5lZCIsIDAs
IDApKTsKKyAgICAgICAgZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoInVuZGVmaW5lZCIs
ICJ1bmRlZmluZWQiLCAwKSk7CiAgICAgfQogICAgIHJldHVybiBTY3JpcHRDYWxsU3RhY2s6OmNy
ZWF0ZShmcmFtZXMpOwogfQpAQCAtNzQsMTggKzc3LDMwIEBAIFBhc3NSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPiBjcmVhdGVTY3JpcHQKIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVT
Y3JpcHRDYWxsU3RhY2soSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIHNpemVfdCBtYXhTdGFja1NpemUp
CiB7CiAgICAgVmVjdG9yPFNjcmlwdENhbGxGcmFtZT4gZnJhbWVzOwotICAgIFZlY3RvcjxTdGFj
a0ZyYW1lPiBzdGFja1RyYWNlOwotICAgIEludGVycHJldGVyOjpnZXRTdGFja1RyYWNlKCZleGVj
LT5nbG9iYWxEYXRhKCksIHN0YWNrVHJhY2UsIG1heFN0YWNrU2l6ZSArIDEpOwotICAgIGZvciAo
c2l6ZV90IGkgPSAxOyBpIDwgc3RhY2tUcmFjZS5zaXplKCk7IGkrKykgewotICAgICAgICAvLyBU
aGlzIGVhcmx5IGV4aXQgaXMgbmVjZXNzYXJ5IHRvIG1haW50YWluIG91ciBvbGQgYmVoYXZpb3Vy
Ci0gICAgICAgIC8vIGJ1dCB0aGUgc3RhY2sgdHJhY2Ugd2UgcHJvZHVjZSBub3cgaXMgY29tcGxl
dGUgYW5kIGhhbmRsZXMgYWxsCi0gICAgICAgIC8vIHdheXMgaW4gd2hpY2ggY29kZSBtYXkgYmUg
cnVubmluZwotICAgICAgICBpZiAoIXN0YWNrVHJhY2VbaV0uY2FsbGVlICYmIGZyYW1lcy5zaXpl
KCkpCisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBleGVjOworICAgIHdoaWxlICh0cnVlKSB7
CisgICAgICAgIEFTU0VSVChjYWxsRnJhbWUpOworICAgICAgICBpbnQgc2lnbmVkTGluZU51bWJl
cjsKKyAgICAgICAgaW50cHRyX3Qgc291cmNlSUQ7CisgICAgICAgIFN0cmluZyB1cmxTdHJpbmc7
CisgICAgICAgIEpTVmFsdWUgZnVuY3Rpb247CisKKyAgICAgICAgZXhlYy0+aW50ZXJwcmV0ZXIo
KS0+cmV0cmlldmVMYXN0Q2FsbGVyKGNhbGxGcmFtZSwgc2lnbmVkTGluZU51bWJlciwgc291cmNl
SUQsIHVybFN0cmluZywgZnVuY3Rpb24pOworICAgICAgICBTdHJpbmcgZnVuY3Rpb25OYW1lOwor
ICAgICAgICBpZiAoZnVuY3Rpb24pCisgICAgICAgICAgICBmdW5jdGlvbk5hbWUgPSBqc0Nhc3Q8
SlNGdW5jdGlvbio+KGZ1bmN0aW9uKS0+bmFtZShleGVjKTsKKyAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAvLyBDYWxsZXIgaXMgdW5rbm93biwgYnV0IGlmIGZyYW1lcyBpcyBlbXB0eSB3ZSBz
aG91bGQgc3RpbGwgYWRkIHRoZSBmcmFtZSwgYmVjYXVzZQorICAgICAgICAgICAgLy8gc29tZXRo
aW5nIGNhbGxlZCB1cywgYW5kIGdhdmUgdXMgYXJndW1lbnRzLgorICAgICAgICAgICAgaWYgKCFm
cmFtZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIHVuc2lnbmVkIGxpbmVOdW1iZXIgPSBzaWduZWRMaW5lTnVtYmVyID49IDAgPyBzaWduZWRM
aW5lTnVtYmVyIDogMDsKKyAgICAgICAgZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoZnVu
Y3Rpb25OYW1lLCB1cmxTdHJpbmcsIGxpbmVOdW1iZXIpKTsKKyAgICAgICAgaWYgKCFmdW5jdGlv
biB8fCBmcmFtZXMuc2l6ZSgpID09IG1heFN0YWNrU2l6ZSkKICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBTdHJpbmcgZnVuY3Rpb25OYW1lID0gc3RhY2tUcmFjZVtpXS5mcmllbmRseUZ1bmN0
aW9uTmFtZShleGVjKTsKLSAgICAgICAgZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoZnVu
Y3Rpb25OYW1lLCBzdGFja1RyYWNlW2ldLnNvdXJjZVVSTCwgc3RhY2tUcmFjZVtpXS5saW5lKCks
IHN0YWNrVHJhY2VbaV0uY29sdW1uKCkpKTsKKyAgICAgICAgY2FsbEZyYW1lID0gY2FsbEZyYW1l
LT5jYWxsZXJGcmFtZSgpOwogICAgIH0KLQogICAgIHJldHVybiBTY3JpcHRDYWxsU3RhY2s6OmNy
ZWF0ZShmcmFtZXMpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0
Q2FsbEZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2Ny
aXB0Q2FsbEZyYW1lLmNwcAkocmV2aXNpb24gMTQ3ODM5KQorKysgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1NjcmlwdENhbGxGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDggKzUzLDcg
QEAgYm9vbCBTY3JpcHRDYWxsRnJhbWU6OmlzRXF1YWwoY29uc3QgU2NyaQogewogICAgIHJldHVy
biBtX2Z1bmN0aW9uTmFtZSA9PSBvLm1fZnVuY3Rpb25OYW1lCiAgICAgICAgICYmIG1fc2NyaXB0
TmFtZSA9PSBvLm1fc2NyaXB0TmFtZQotICAgICAgICAmJiBtX2xpbmVOdW1iZXIgPT0gby5tX2xp
bmVOdW1iZXIKLSAgICAgICAgJiYgbV9jb2x1bW4gPT0gby5tX2NvbHVtbjsKKyAgICAgICAgJiYg
bV9saW5lTnVtYmVyID09IG8ubV9saW5lTnVtYmVyOwogfQogCiAjaWYgRU5BQkxFKElOU1BFQ1RP
UikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsRnJhbWUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbEZyYW1lLmgJKHJl
dmlzaW9uIDE0NzgzOSkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsRnJh
bWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTMgKzQ0LDEyIEBAIGNsYXNzIEluc3BlY3Rvck9i
amVjdDsKIAogY2xhc3MgU2NyaXB0Q2FsbEZyYW1lICB7CiBwdWJsaWM6Ci0gICAgU2NyaXB0Q2Fs
bEZyYW1lKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5h
bWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbik7CisgICAgU2NyaXB0Q2Fs
bEZyYW1lKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5h
bWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbiA9IDApOwogICAgIH5TY3Jp
cHRDYWxsRnJhbWUoKTsKIAogICAgIGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9mdW5jdGlvbk5hbWU7IH0KICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCgp
IGNvbnN0IHsgcmV0dXJuIG1fc2NyaXB0TmFtZTsgfQogICAgIHVuc2lnbmVkIGxpbmVOdW1iZXIo
KSBjb25zdCB7IHJldHVybiBtX2xpbmVOdW1iZXI7IH0KLSAgICB1bnNpZ25lZCBjb2x1bW5OdW1i
ZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbHVtbjsgfQogCiAgICAgYm9vbCBpc0VxdWFsKGNvbnN0
IFNjcmlwdENhbGxGcmFtZSYpIGNvbnN0OwogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDc4NDIpCisrKyBUb29scy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wNC0wNiAgR2VvZmZy
ZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJvbGxlZCBvdXQgMTQ3ODIw
IGFuZCAxNDc4MTggYmVjYXVzZSB0aGV5IGNhdXNlZCBwbHVnaW5zIHRlc3RzIHRvIEFTU0VSVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0MDk0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L3J1bi1qc2M6CisKIDIwMTMtMDQtMDUgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBNb3ZlIHRoZSBmbGFraW5lc3MgZGFzaGJvYXJkIHRvIHRoZSBuZXcgaW5zdGFu
Y2UgYXQgd2Via2l0LXRlc3QtcmVzdWx0cy5hcHBzcG90LmNvbQpJbmRleDogVG9vbHMvU2NyaXB0
cy9ydW4tanNjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvcnVuLWpzYwkocmV2aXNpb24g
MTQ3ODM5KQorKysgVG9vbHMvU2NyaXB0cy9ydW4tanNjCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2
ICs0Miw3IEBAIG15ICRjb3VudCA9IDE7CiBteSAkdmVyYm9zZSA9IDA7CiBHZXRPcHRpb25zKCJj
b3VudHxjPWkiID0+IFwkY291bnQsCiAgICAgICAgICAgICJ2ZXJib3NlfHYiID0+IFwkdmVyYm9z
ZSk7CitkaWUgIiR1c2FnZVxuIiBpZiAoQEFSR1YgPCAxKTsKIAogbXkgJGpzYyA9IGpzY1Byb2R1
Y3REaXIoKSAuICIvanNjIEBBUkdWIjsKICRqc2MgLj0gIiAyPiAiIC4gRmlsZTo6U3BlYy0+ZGV2
bnVsbCgpIHVubGVzcyAkdmVyYm9zZTsK
</data>
<flag name="review"
          id="218884"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>