<?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>110158</bug_id>
          
          <creation_ts>2013-02-18 15:07:39 -0800</creation_ts>
          <short_desc>Shrank the SourceProvider cache</short_desc>
          <delta_ts>2013-02-18 17:40:45 -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>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>japhet</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>835774</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-02-18 15:07:39 -0800</bug_when>
    <thetext>Shrank the SourceProvider cache</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835795</commentid>
    <comment_count>1</comment_count>
      <attachid>188952</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-02-18 15:32:58 -0800</bug_when>
    <thetext>Created attachment 188952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835800</commentid>
    <comment_count>2</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-02-18 15:44:11 -0800</bug_when>
    <thetext>Badass!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835856</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-02-18 17:40:45 -0800</bug_when>
    <thetext>Committed r143279: &lt;http://trac.webkit.org/changeset/143279&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188952</attachid>
            <date>2013-02-18 15:32:58 -0800</date>
            <delta_ts>2013-02-18 15:37:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110158-20130218152921.patch</filename>
            <type>text/plain</type>
            <size>22805</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQzMjY3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY1IEBA
CisyMDEzLTAyLTE4ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgU2hyYW5rIHRoZSBTb3VyY2VQcm92aWRlciBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29kZUNhY2hlIGlzIG5vdyBvdXIgcHJpbWFyeSBz
b3VyY2UgY2FjaGUsIHNvIGEgbG9uZy1saXZlZCBTb3VyY2VQcm92aWRlcgorICAgICAgICBjYWNo
ZSBpcyBhIHdhc3RlLiBJIG1lYXN1cmVkIHRoaXMgYXMgYSAxME1CIE1lbWJ1c3RlciB3aW47IHdp
dGggbW9yZQorICAgICAgICBwcmVjaXNlIGluc3RydW1lbnRhdGlvbiwgQW5kcmVhcyBlc3RpbWF0
ZWQgaXQgYXMgdXAgdG8gMzBNQi4KKworICAgICAgICBJIGRpZG4ndCBlbGltaW5hdGUgdGhlIFNv
dXJjZVByb3ZpZGVyIGNhY2hlIGJlY2F1c2UgaXQncyBzdGlsbCB1c2VmdWwKKyAgICAgICAgaW4g
c3BlZWRpbmcgdXAgdW5jYWNoZWQgcGFyc2luZyBvZiBzY3JpcHRzIHdpdGggbGFyZ2UgbmVzdGVk
IGZ1bmN0aW9ucworICAgICAgICAoaS5lLiwgYWxsIHNjcmlwdHMpLgorCisgICAgICAgICogaGVh
cC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6Y29sbGVjdCk6IERpc2NhcmQgYWxsIHNv
dXJjZSBwcm92aWRlciBjYWNoZXMgYWZ0ZXIgR0MuIFRoaXMKKyAgICAgICAgaXMgYSBjb252ZW5p
ZW50IHBsYWNlIHRvIGRvIHNvIGJlY2F1c2UgaXQncyByZWFzb25hYmx5IHNvb24gYWZ0ZXIgaW5p
dGlhbAorICAgICAgICBwYXJzaW5nIHdpdGhvdXQgYmVpbmcgaW1tZWRpYXRlLgorCisgICAgICAg
ICogcGFyc2VyL1BhcnNlci5jcHA6CisgICAgICAgIChKU0M6Ojo6UGFyc2VyKTogVXBkYXRlZCBm
b3IgaW50ZXJmYWNlIGNoYW5nZTogVGhlIGhlYXAgbm93IG93bnMgdGhlCisgICAgICAgIHNvdXJj
ZSBwcm92aWRlciBjYWNoZSwgc2luY2UgbW9zdCBTb3VyY2VQcm92aWRlcnMgYXJlIG5vdCBleHBl
Y3RlZCB0bworICAgICAgICBoYXZlIG9uZSBieSBkZWZhdWx0LCBhbmQgdGhlIGhlYXAgaXMgcmVz
cG9uc2libGUgZm9yIHRocm93aW5nIHRoZW0gYXdheS4KKworICAgICAgICAoSlNDOjo6OnBhcnNl
SW5uZXIpOiBObyBuZWVkIHRvIHVwZGF0ZSBzdGF0aXN0aWNzIG9uIGNhY2hlIHNpemUsIHNpbmNl
CisgICAgICAgIHdlJ3JlIGdvaW5nIHRvIHRocm93IGl0IGF3YXkgbm8gbWF0dGVyIHdoYXQuCisK
KyAgICAgICAgKEpTQzo6OjpwYXJzZUZ1bmN0aW9uSW5mbyk6IFJlZHVjZWQgdGhlIG1pbmltdW0g
ZnVuY3Rpb24gc2l6ZSB0byAxNi4gVGhpcworICAgICAgICBpcyBhIDI3JSB3aW4gb24gYSBuZXcg
cGFyc2luZyBtaWNyby1iZW5jaG1hcmsgSSd2ZSBhZGRlZC4gTm93IHRoYXQgdGhlCisgICAgICAg
IGNhY2hlIGlzIHRlbXBvcmFyeSwgd2UgZG9uJ3QgaGF2ZSB0byB3b3JyeSBzbyBtdWNoIGFib3V0
IGl0cyBtZW1vcnkKKyAgICAgICAgZm9vdHByaW50LgorCisgICAgICAgICogcGFyc2VyL1BhcnNl
ci5oOgorICAgICAgICAoUGFyc2VyKTogVXBkYXRlZCBmb3IgaW50ZXJmYWNlIGNoYW5nZXMuCisK
KyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwOgorICAgICAgICAoSlNDOjpTb3Vy
Y2VQcm92aWRlcjo6U291cmNlUHJvdmlkZXIpOgorICAgICAgICAoSlNDOjpTb3VyY2VQcm92aWRl
cjo6flNvdXJjZVByb3ZpZGVyKToKKyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuaDoK
KyAgICAgICAgKEpTQyk6CisgICAgICAgIChTb3VyY2VQcm92aWRlcik6IFNvdXJjZVByb3ZpZGVy
IGRvZXNuJ3Qgb3duIGl0cyBjYWNoZSBhbnltb3JlIGJlY2F1c2UKKyAgICAgICAgdGhlIGNhY2hl
IGlzIHRlbXBvcmFyeS4KKworICAgICAgICAqIHBhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlLmNw
cDoKKyAgICAgICAgKEpTQzo6U291cmNlUHJvdmlkZXJDYWNoZTo6Y2xlYXIpOgorICAgICAgICAo
SlNDOjpTb3VyY2VQcm92aWRlckNhY2hlOjphZGQpOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VQ
cm92aWRlckNhY2hlLmg6CisgICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyQ2FjaGU6OlNvdXJj
ZVByb3ZpZGVyQ2FjaGUpOgorICAgICAgICAoU291cmNlUHJvdmlkZXJDYWNoZSk6CisgICAgICAg
ICogcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmg6CisgICAgICAgIChTb3VyY2VQcm92
aWRlckNhY2hlSXRlbSk6IE5vIG5lZWQgdG8gdXBkYXRlIHN0YXRpc3RpY3Mgb24gY2FjaGUgc2l6
ZSwKKyAgICAgICAgc2luY2Ugd2UncmUgZ29pbmcgdG8gdGhyb3cgaXQgYXdheSBubyBtYXR0ZXIg
d2hhdC4KKworICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNHbG9iYWxEYXRhOjphZGRTb3VyY2VQcm92aWRlckNhY2hlKToKKyAgICAgICAgKEpTQyk6
CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6Y2xlYXJTb3VyY2VQcm92aWRlckNhY2hlcyk6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuaDoKKyAgICAgICAgKEpTQyk6CisgICAg
ICAgIChKU0dsb2JhbERhdGEpOiBNb3ZlZCB0aGUgY2FjaGUgaGVyZSBzbyBpdCdzIGVhc2llciB0
byB0aHJvdyBhd2F5LgorCiAyMDEzLTAyLTE4ICBCYWxhenMgS2lsdmFkeSAgPGtpbHZhZHliQGhv
bWVqaW5uaS5jb20+CiAKICAgICAgICAgTUlQUyBERkcgaW1wbGVtZW50YXRpb24uCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMTQzMjY3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1MCw2ICs3
NTAsMTEgQEAgdm9pZCBIZWFwOjpjb2xsZWN0KFN3ZWVwVG9nZ2xlIHN3ZWVwVG9nZwogICAgICAg
ICBkZWxldGVVbm1hcmtlZENvbXBpbGVkQ29kZSgpOwogICAgIH0KIAorICAgIHsKKyAgICAgICAg
R0NQSEFTRShEZWxldGVTb3VyY2VQcm92aWRlckNhY2hlcyk7CisgICAgICAgIG1fZ2xvYmFsRGF0
YS0+Y2xlYXJTb3VyY2VQcm92aWRlckNhY2hlcygpOworICAgIH0KKwogICAgIGlmIChzd2VlcFRv
Z2dsZSA9PSBEb1N3ZWVwKSB7CiAgICAgICAgIFNhbXBsaW5nUmVnaW9uIHNhbXBsaW5nUmVnaW9u
KCJHYXJiYWdlIENvbGxlY3Rpb246IFN3ZWVwaW5nIik7CiAgICAgICAgIEdDUEhBU0UoU3dlZXBp
bmcpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkocmV2aXNp
b24gMTQzMjY3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBAIFBhcnNlcjxMZXhlclR5cGU+OjpQYXJzZXIo
SlNHbG9iYWxEYXRhKiAKICAgICBtX2FyZW5hID0gbV9nbG9iYWxEYXRhLT5wYXJzZXJBcmVuYS5n
ZXQoKTsKICAgICBtX2xleGVyLT5zZXRDb2RlKHNvdXJjZSwgbV9hcmVuYSk7CiAKLSAgICBtX2Z1
bmN0aW9uQ2FjaGUgPSBzb3VyY2UucHJvdmlkZXIoKS0+Y2FjaGUoKTsKKyAgICBtX2Z1bmN0aW9u
Q2FjaGUgPSBnbG9iYWxEYXRhLT5hZGRTb3VyY2VQcm92aWRlckNhY2hlKHNvdXJjZS5wcm92aWRl
cigpKTsKICAgICBTY29wZVJlZiBzY29wZSA9IHB1c2hTY29wZSgpOwogICAgIGlmIChwYXJzZXJN
b2RlID09IEpTUGFyc2VGdW5jdGlvbkNvZGUpCiAgICAgICAgIHNjb3BlLT5zZXRJc0Z1bmN0aW9u
KCk7CkBAIC0xMTAsNyArMTEwLDYgQEAgU3RyaW5nIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUlu
bmVyKCkKIHsKICAgICBTdHJpbmcgcGFyc2VFcnJvciA9IFN0cmluZygpOwogICAgIAotICAgIHVu
c2lnbmVkIG9sZEZ1bmN0aW9uQ2FjaGVTaXplID0gbV9mdW5jdGlvbkNhY2hlID8gbV9mdW5jdGlv
bkNhY2hlLT5ieXRlU2l6ZSgpIDogMDsKICAgICBBU1RCdWlsZGVyIGNvbnRleHQoY29uc3RfY2Fz
dDxKU0dsb2JhbERhdGEqPihtX2dsb2JhbERhdGEpLCBjb25zdF9jYXN0PFNvdXJjZUNvZGUqPiht
X3NvdXJjZSkpOwogICAgIGlmIChtX2xleGVyLT5pc1JlcGFyc2luZygpKQogICAgICAgICBtX3N0
YXRlbWVudERlcHRoLS07CkBAIC0xMjYsOSArMTI1LDYgQEAgU3RyaW5nIFBhcnNlcjxMZXhlclR5
cGU+OjpwYXJzZUlubmVyKCkKICAgICAgICAgZmVhdHVyZXMgfD0gU3RyaWN0TW9kZUZlYXR1cmU7
CiAgICAgaWYgKHNjb3BlLT5zaGFkb3dzQXJndW1lbnRzKCkpCiAgICAgICAgIGZlYXR1cmVzIHw9
IFNoYWRvd3NBcmd1bWVudHNGZWF0dXJlOwotICAgIHVuc2lnbmVkIGZ1bmN0aW9uQ2FjaGVTaXpl
ID0gbV9mdW5jdGlvbkNhY2hlID8gbV9mdW5jdGlvbkNhY2hlLT5ieXRlU2l6ZSgpIDogMDsKLSAg
ICBpZiAoZnVuY3Rpb25DYWNoZVNpemUgIT0gb2xkRnVuY3Rpb25DYWNoZVNpemUpCi0gICAgICAg
IG1fbGV4ZXItPnNvdXJjZVByb3ZpZGVyKCktPm5vdGlmeUNhY2hlU2l6ZUNoYW5nZWQoZnVuY3Rp
b25DYWNoZVNpemUgLSBvbGRGdW5jdGlvbkNhY2hlU2l6ZSk7CiAKICAgICBkaWRGaW5pc2hQYXJz
aW5nKHNvdXJjZUVsZW1lbnRzLCBjb250ZXh0LnZhckRlY2xhcmF0aW9ucygpLCBjb250ZXh0LmZ1
bmNEZWNsYXJhdGlvbnMoKSwgZmVhdHVyZXMsCiAgICAgICAgICAgICAgICAgICAgICBtX2xhc3RM
aW5lLCBjb250ZXh0Lm51bUNvbnN0YW50cygpLCBjYXB0dXJlZFZhcmlhYmxlcyk7CkBAIC04NjMs
NyArODU5LDcgQEAgdGVtcGxhdGUgPEZ1bmN0aW9uUmVxdWlyZW1lbnRzIHJlcXVpcmVtZQogICAg
IAogICAgIC8vIENhY2hlIHRoZSB0b2tlbml6ZXIgc3RhdGUgYW5kIHRoZSBmdW5jdGlvbiBzY29w
ZSB0aGUgZmlyc3QgdGltZSB0aGUgZnVuY3Rpb24gaXMgcGFyc2VkLgogICAgIC8vIEFueSBmdXR1
cmUgcmVwYXJzaW5nIGNhbiB0aGVuIHNraXAgdGhlIGZ1bmN0aW9uLgotICAgIHN0YXRpYyBjb25z
dCBpbnQgbWluaW11bUZ1bmN0aW9uTGVuZ3RoVG9DYWNoZSA9IDY0OworICAgIHN0YXRpYyBjb25z
dCBpbnQgbWluaW11bUZ1bmN0aW9uTGVuZ3RoVG9DYWNoZSA9IDE2OwogICAgIE93blB0cjxTb3Vy
Y2VQcm92aWRlckNhY2hlSXRlbT4gbmV3SW5mbzsKICAgICBpbnQgZnVuY3Rpb25MZW5ndGggPSBj
bG9zZUJyYWNlUG9zIC0gb3BlbkJyYWNlUG9zOwogICAgIGlmIChUcmVlQnVpbGRlcjo6Q2FuVXNl
RnVuY3Rpb25DYWNoZSAmJiBtX2Z1bmN0aW9uQ2FjaGUgJiYgZnVuY3Rpb25MZW5ndGggPiBtaW5p
bXVtRnVuY3Rpb25MZW5ndGhUb0NhY2hlKSB7CkBAIC04NzksMTAgKzg3NSw4IEBAIHRlbXBsYXRl
IDxGdW5jdGlvblJlcXVpcmVtZW50cyByZXF1aXJlbWUKICAgICBmYWlsSWZGYWxzZShwb3BTY29w
ZShmdW5jdGlvblNjb3BlLCBUcmVlQnVpbGRlcjo6TmVlZHNGcmVlVmFyaWFibGVJbmZvKSk7CiAg
ICAgbWF0Y2hPckZhaWwoQ0xPU0VCUkFDRSk7CiAgICAgCi0gICAgaWYgKG5ld0luZm8pIHsKLSAg
ICAgICAgdW5zaWduZWQgYXBwcm94aW1hdGVCeXRlU2l6ZSA9IG5ld0luZm8tPmFwcHJveGltYXRl
Qnl0ZVNpemUoKTsKLSAgICAgICAgbV9mdW5jdGlvbkNhY2hlLT5hZGQob3BlbkJyYWNlUG9zLCBu
ZXdJbmZvLnJlbGVhc2UoKSwgYXBwcm94aW1hdGVCeXRlU2l6ZSk7Ci0gICAgfQorICAgIGlmIChu
ZXdJbmZvKQorICAgICAgICBtX2Z1bmN0aW9uQ2FjaGUtPmFkZChvcGVuQnJhY2VQb3MsIG5ld0lu
Zm8ucmVsZWFzZSgpKTsKICAgICAKICAgICBuZXh0KCk7CiAgICAgcmV0dXJuIHRydWU7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgJKHJldmlzaW9uIDE0MzI2NykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTkwOCw3ICs5MDgsNyBAQCBwcml2YXRlOgogICAgIGludCBtX3N0YXRlbWVudERlcHRoOwogICAg
IGludCBtX25vblRyaXZpYWxFeHByZXNzaW9uQ291bnQ7CiAgICAgY29uc3QgSWRlbnRpZmllciog
bV9sYXN0SWRlbnRpZmllcjsKLSAgICBTb3VyY2VQcm92aWRlckNhY2hlKiBtX2Z1bmN0aW9uQ2Fj
aGU7CisgICAgUmVmUHRyPFNvdXJjZVByb3ZpZGVyQ2FjaGU+IG1fZnVuY3Rpb25DYWNoZTsKICAg
ICBTb3VyY2VFbGVtZW50cyogbV9zb3VyY2VFbGVtZW50czsKICAgICBQYXJzZXJBcmVuYURhdGE8
RGVjbGFyYXRpb25TdGFja3M6OlZhclN0YWNrPiogbV92YXJEZWNsYXJhdGlvbnM7CiAgICAgUGFy
c2VyQXJlbmFEYXRhPERlY2xhcmF0aW9uU3RhY2tzOjpGdW5jdGlvblN0YWNrPiogbV9mdW5jRGVj
bGFyYXRpb25zOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92
aWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3Vy
Y2VQcm92aWRlci5jcHAJKHJldmlzaW9uIDE0MzI2NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwyMyArMjYs
MTcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTb3VyY2VQcm92aWRlci5oIgog
Ci0jaW5jbHVkZSAiU291cmNlUHJvdmlkZXJDYWNoZS5oIgotCiBuYW1lc3BhY2UgSlNDIHsKIAot
U291cmNlUHJvdmlkZXI6OlNvdXJjZVByb3ZpZGVyKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBU
ZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyQ2FjaGUqIGNhY2hlKQor
U291cmNlUHJvdmlkZXI6OlNvdXJjZVByb3ZpZGVyKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBU
ZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24pCiAgICAgOiBtX3VybCh1cmwpCiAgICAgLCBtX3N0
YXJ0UG9zaXRpb24oc3RhcnRQb3NpdGlvbikKICAgICAsIG1fdmFsaWRhdGVkKGZhbHNlKQotICAg
ICwgbV9jYWNoZShjYWNoZSA/IGNhY2hlIDogbmV3IFNvdXJjZVByb3ZpZGVyQ2FjaGUpCi0gICAg
LCBtX2NhY2hlT3duZWQoIWNhY2hlKQogewogfQogCiBTb3VyY2VQcm92aWRlcjo6flNvdXJjZVBy
b3ZpZGVyKCkKIHsKLSAgICBpZiAobV9jYWNoZU93bmVkKQotICAgICAgICBkZWxldGUgbV9jYWNo
ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCShyZXZpc2lvbiAxNDMyNjcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDEzICszNywxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotICAgIGNsYXNzIFNvdXJjZVBy
b3ZpZGVyQ2FjaGU7Ci0KICAgICBjbGFzcyBTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFNvdXJjZVByb3ZpZGVyPiB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgY29uc3Qg
aW50cHRyX3QgbnVsbElEID0gMTsKICAgICAgICAgCi0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRF
IFNvdXJjZVByb3ZpZGVyKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0
YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyQ2FjaGUqID0gMCk7CisgICAgICAgIEpTX0VYUE9S
VF9QUklWQVRFIFNvdXJjZVByb3ZpZGVyKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBUZXh0UG9z
aXRpb24mIHN0YXJ0UG9zaXRpb24pOwogCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHZpcnR1
YWwgflNvdXJjZVByb3ZpZGVyKCk7CiAKQEAgLTY2LDE3ICs2NCwxMSBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV92YWxpZGF0ZWQ7IH0K
ICAgICAgICAgdm9pZCBzZXRWYWxpZCgpIHsgbV92YWxpZGF0ZWQgPSB0cnVlOyB9CiAKLSAgICAg
ICAgU291cmNlUHJvdmlkZXJDYWNoZSogY2FjaGUoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlOyB9
Ci0gICAgICAgIHZvaWQgbm90aWZ5Q2FjaGVTaXplQ2hhbmdlZChpbnQgZGVsdGEpIHsgaWYgKCFt
X2NhY2hlT3duZWQpIGNhY2hlU2l6ZUNoYW5nZWQoZGVsdGEpOyB9Ci0gICAgICAgIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjYWNoZVNpemVDaGFuZ2VkKGludCBkZWx0YSkg
eyBVTlVTRURfUEFSQU0oZGVsdGEpOyB9CiAKICAgICAgICAgU3RyaW5nIG1fdXJsOwogICAgICAg
ICBUZXh0UG9zaXRpb24gbV9zdGFydFBvc2l0aW9uOwogICAgICAgICBib29sIG1fdmFsaWRhdGVk
OwotICAgICAgICBTb3VyY2VQcm92aWRlckNhY2hlKiBtX2NhY2hlOwotICAgICAgICBib29sIG1f
Y2FjaGVPd25lZDsKICAgICB9OwogCiAgICAgY2xhc3MgU3RyaW5nU291cmNlUHJvdmlkZXIgOiBw
dWJsaWMgU291cmNlUHJvdmlkZXIgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Tb3VyY2VQcm92aWRlckNhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwCShyZXZpc2lvbiAxNDMyNjcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNiwxOCArMzYsMTEgQEAgU291cmNlUHJvdmlkZXJDYWNoZTo6flNv
dXJjZVByb3ZpZGVyQ2FjaAogdm9pZCBTb3VyY2VQcm92aWRlckNhY2hlOjpjbGVhcigpCiB7CiAg
ICAgbV9tYXAuY2xlYXIoKTsKLSAgICBtX2NvbnRlbnRCeXRlU2l6ZSA9IDA7CiB9CiAKLXVuc2ln
bmVkIFNvdXJjZVByb3ZpZGVyQ2FjaGU6OmJ5dGVTaXplKCkgY29uc3QKLXsgCi0gICAgcmV0dXJu
IG1fY29udGVudEJ5dGVTaXplICsgc2l6ZW9mKCp0aGlzKSArIG1fbWFwLmNhcGFjaXR5KCkgKiBz
aXplb2YoU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0qKTsKLX0KLQotdm9pZCBTb3VyY2VQcm92aWRl
ckNhY2hlOjphZGQoaW50IHNvdXJjZVBvc2l0aW9uLCBQYXNzT3duUHRyPFNvdXJjZVByb3ZpZGVy
Q2FjaGVJdGVtPiBpdGVtLCB1bnNpZ25lZCBzaXplKQordm9pZCBTb3VyY2VQcm92aWRlckNhY2hl
OjphZGQoaW50IHNvdXJjZVBvc2l0aW9uLCBQYXNzT3duUHRyPFNvdXJjZVByb3ZpZGVyQ2FjaGVJ
dGVtPiBpdGVtKQogewogICAgIG1fbWFwLmFkZChzb3VyY2VQb3NpdGlvbiwgaXRlbSk7Ci0gICAg
bV9jb250ZW50Qnl0ZVNpemUgKz0gc2l6ZTsKIH0KIAogfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlLmgJKHJldmlzaW9uIDE0
MzI2NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXJDYWNo
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwyMyArMzAsMjIgQEAKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCi1j
bGFzcyBTb3VyY2VQcm92aWRlckNhY2hlIHsKK2NsYXNzIFNvdXJjZVByb3ZpZGVyQ2FjaGUgOiBw
dWJsaWMgUmVmQ291bnRlZDxTb3VyY2VQcm92aWRlckNhY2hlPiB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU291cmNlUHJvdmlkZXJDYWNoZSgpIDogbV9jb250
ZW50Qnl0ZVNpemUoMCkge30KKyAgICBTb3VyY2VQcm92aWRlckNhY2hlKCkgeyB9CiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgflNvdXJjZVByb3ZpZGVyQ2FjaGUoKTsKIAogICAgIEpTX0VYUE9SVF9Q
UklWQVRFIHZvaWQgY2xlYXIoKTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCBieXRl
U2l6ZSgpIGNvbnN0OwotICAgIHZvaWQgYWRkKGludCBzb3VyY2VQb3NpdGlvbiwgUGFzc093blB0
cjxTb3VyY2VQcm92aWRlckNhY2hlSXRlbT4sIHVuc2lnbmVkIHNpemUpOworICAgIHZvaWQgYWRk
KGludCBzb3VyY2VQb3NpdGlvbiwgUGFzc093blB0cjxTb3VyY2VQcm92aWRlckNhY2hlSXRlbT4p
OwogICAgIGNvbnN0IFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtKiBnZXQoaW50IHNvdXJjZVBvc2l0
aW9uKSBjb25zdCB7IHJldHVybiBtX21hcC5nZXQoc291cmNlUG9zaXRpb24pOyB9CiAKIHByaXZh
dGU6CiAgICAgSGFzaE1hcDxpbnQsIE93blB0cjxTb3VyY2VQcm92aWRlckNhY2hlSXRlbT4gPiBt
X21hcDsKLSAgICB1bnNpZ25lZCBtX2NvbnRlbnRCeXRlU2l6ZTsKIH07CiAKIH0KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2Fj
aGVJdGVtLmgJKHJldmlzaW9uIDE0MzI2NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtNTUsMTUgKzU1
LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPFNvdXJjZVByb3ZpZGVyQ2FjaGVJ
dGVtPiBjcmVhdGUoY29uc3QgU291cmNlUHJvdmlkZXJDYWNoZUl0ZW1DcmVhdGlvblBhcmFtZXRl
cnMmKTsKICAgICB+U291cmNlUHJvdmlkZXJDYWNoZUl0ZW0oKTsKIAotICAgIHVuc2lnbmVkIGFw
cHJveGltYXRlQnl0ZVNpemUoKSBjb25zdAotICAgIHsKLSAgICAgICAgLy8gVGhlIGlkZW50aWZp
ZXJzIGFyZSB1bmlxdWVkIHN0cmluZ3Mgc28gbW9zdCBsaWtlbHkgdGhlcmUgYXJlIGZldyBuYW1l
cyB0aGF0IGFjdHVhbGx5IHVzZSBhbnkgYWRkaXRpb25hbCBtZW1vcnkuCi0gICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBhc3N1bWVkQXZlcmFnZUlkZW50aWZpZXJTaXplID0gc2l6ZW9mKFN0
cmluZ0ltcGwqKSArIDI7Ci0gICAgICAgIHVuc2lnbmVkIHNpemUgPSBzaXplb2YoKnRoaXMpOwot
ICAgICAgICBzaXplICs9IHVzZWRWYXJpYWJsZXNDb3VudCAqIGFzc3VtZWRBdmVyYWdlSWRlbnRp
ZmllclNpemU7Ci0gICAgICAgIHNpemUgKz0gd3JpdHRlblZhcmlhYmxlc0NvdW50ICogYXNzdW1l
ZEF2ZXJhZ2VJZGVudGlmaWVyU2l6ZTsKLSAgICAgICAgcmV0dXJuIHNpemU7Ci0gICAgfQogICAg
IEpTVG9rZW4gY2xvc2VCcmFjZVRva2VuKCkgY29uc3QgCiAgICAgewogICAgICAgICBKU1Rva2Vu
IHRva2VuOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRh
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bERhdGEuY3BwCShyZXZpc2lvbiAxNDMyNjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBACiAj
aW5jbHVkZSAiUGFyc2VyQXJlbmEuaCIKICNpbmNsdWRlICJSZWdFeHBDYWNoZS5oIgogI2luY2x1
ZGUgIlJlZ0V4cE9iamVjdC5oIgorI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyQ2FjaGUuaCIKICNp
bmNsdWRlICJTdHJpY3RFdmFsQWN0aXZhdGlvbi5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMu
aCIKICNpbmNsdWRlICJVbmxpbmtlZENvZGVCbG9jay5oIgpAQCAtNDU2LDYgKzQ1NywxOSBAQCB2
b2lkIEpTR2xvYmFsRGF0YTo6ZHVtcFNhbXBsZURhdGEoRXhlY1N0CiAjZW5kaWYKIH0KIAorU291
cmNlUHJvdmlkZXJDYWNoZSogSlNHbG9iYWxEYXRhOjphZGRTb3VyY2VQcm92aWRlckNhY2hlKFNv
dXJjZVByb3ZpZGVyKiBzb3VyY2VQcm92aWRlcikKK3sKKyAgICBTb3VyY2VQcm92aWRlckNhY2hl
TWFwOjpBZGRSZXN1bHQgYWRkUmVzdWx0ID0gc291cmNlUHJvdmlkZXJDYWNoZU1hcC5hZGQoc291
cmNlUHJvdmlkZXIsIDApOworICAgIGlmIChhZGRSZXN1bHQuaXNOZXdFbnRyeSkKKyAgICAgICAg
YWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IGFkb3B0UmVmKG5ldyBTb3VyY2VQcm92aWRlckNh
Y2hlKTsKKyAgICByZXR1cm4gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKK30KKwor
dm9pZCBKU0dsb2JhbERhdGE6OmNsZWFyU291cmNlUHJvdmlkZXJDYWNoZXMoKQoreworICAgIHNv
dXJjZVByb3ZpZGVyQ2FjaGVNYXAuY2xlYXIoKTsKK30KKwogc3RydWN0IFN0YWNrUHJlc2Vydmlu
Z1JlY29tcGlsZXIgOiBwdWJsaWMgTWFya2VkQmxvY2s6OlZvaWRGdW5jdG9yIHsKICAgICBIYXNo
U2V0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+IGN1cnJlbnRseUV4ZWN1dGluZ0Z1bmN0aW9uczsKICAg
ICB2b2lkIG9wZXJhdG9yKCkoSlNDZWxsKiBjZWxsKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgJKHJldmlzaW9uIDE0MzI2NykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBA
IC04Miw2ICs4Miw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIE5hdGl2ZUV4ZWN1dGFi
bGU7CiAgICAgY2xhc3MgUGFyc2VyQXJlbmE7CiAgICAgY2xhc3MgUmVnRXhwQ2FjaGU7CisgICAg
Y2xhc3MgU291cmNlUHJvdmlkZXI7CisgICAgY2xhc3MgU291cmNlUHJvdmlkZXJDYWNoZTsKICAg
ICBjbGFzcyBTdHJpbmdpZmllcjsKICAgICBjbGFzcyBTdHJ1Y3R1cmU7CiAjaWYgRU5BQkxFKFJF
R0VYUF9UUkFDSU5HKQpAQCAtMzAzLDkgKzMwNSwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgYm9vbCBjYW5Vc2VSZWdFeHBKSVQoKSB7IHJldHVybiBmYWxzZTsgfSAvLyBpbnRlcnByZXRl
ciBvbmx5CiAjZW5kaWYKIAorICAgICAgICBTb3VyY2VQcm92aWRlckNhY2hlKiBhZGRTb3VyY2VQ
cm92aWRlckNhY2hlKFNvdXJjZVByb3ZpZGVyKik7CisgICAgICAgIHZvaWQgY2xlYXJTb3VyY2VQ
cm92aWRlckNhY2hlcygpOworCiAgICAgICAgIFByb3RvdHlwZU1hcCBwcm90b3R5cGVNYXA7CiAK
ICAgICAgICAgT3duUHRyPFBhcnNlckFyZW5hPiBwYXJzZXJBcmVuYTsKKyAgICAgICAgdHlwZWRl
ZiBIYXNoTWFwPFJlZlB0cjxTb3VyY2VQcm92aWRlcj4sIFJlZlB0cjxTb3VyY2VQcm92aWRlckNh
Y2hlPiA+IFNvdXJjZVByb3ZpZGVyQ2FjaGVNYXA7CisgICAgICAgIFNvdXJjZVByb3ZpZGVyQ2Fj
aGVNYXAgc291cmNlUHJvdmlkZXJDYWNoZU1hcDsKICAgICAgICAgT3duUHRyPEtleXdvcmRzPiBr
ZXl3b3JkczsKICAgICAgICAgSW50ZXJwcmV0ZXIqIGludGVycHJldGVyOwogI2lmIEVOQUJMRShK
SVQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDMyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNiBAQAorMjAxMy0wMi0xOCAgR2Vv
ZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIFNocmFuayB0aGUgU291
cmNlUHJvdmlkZXIgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMDE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3Q6IGZhc3QvanMvcmVncmVzcy9uZXN0ZWQtZnVuY3Rpb24tcGFyc2luZy5o
dG1sCisKKyAgICAgICAgTm8gbmVlZCB0byBrZWVwIHN0YXRpc3RpY3Mgb24gY2FjaGUgc2l6ZSwg
c2luY2Ugd2UncmUgZ29pbmcgdG8gdGhyb3cgaXQKKyAgICAgICAgYXdheSBubyBtYXR0ZXIgd2hh
dC4KKworICAgICAgICAqIFdlYkNvcmUub3JkZXI6CisgICAgICAgICogYmluZGluZ3MvanMvQ2Fj
aGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaDoKKyAgICAgICAgKENhY2hlZFNjcmlwdFNvdXJjZVBy
b3ZpZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyOjpD
YWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlcik6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZFNjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTY3JpcHQ6OmRlc3Ryb3lEZWNv
ZGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNj
cmlwdDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRT
Y3JpcHQuaDoKKyAgICAgICAgKENhY2hlZFNjcmlwdCk6CisKIDIwMTMtMDItMTggIFN0ZXBoZW4g
Q2hlbm5leSAgPHNjaGVubmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBmZUZsb29kIGluY29y
cmVjdGx5IGFwcGxpZWQgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLm9yZGVyCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUub3JkZXIJKHJldmlzaW9uIDE0MzI2NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3Jk
ZXIJKHdvcmtpbmcgY29weSkKQEAgLTQwMDAsOCArNDAwMCw2IEBAIF9fWk43V2ViQ29yZTExTWVt
b3J5Q2FjaGUzMmluc2VydEluTGl2ZUQKIF9fWlRobjQwX043V2ViQ29yZTE4SFRNTERvY3VtZW50
UGFyc2VyMTlzdG9wV2F0Y2hpbmdGb3JMb2FkRVBOU18xNENhY2hlZFJlc291cmNlRQogX19aTjdX
ZWJDb3JlMTRDYWNoZWRSZXNvdXJjZTEycmVtb3ZlQ2xpZW50RVBOU18yMENhY2hlZFJlc291cmNl
Q2xpZW50RQogX19aTks3V2ViQ29yZTI2Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXI0ZGF0YUV2
Ci1fX1pON1dlYkNvcmUyNkNhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyMTZjYWNoZVNpemVDaGFu
Z2VkRWkKLV9fWk43V2ViQ29yZTEyQ2FjaGVkU2NyaXB0MzBzb3VyY2VQcm92aWRlckNhY2hlU2l6
ZUNoYW5nZWRFaQogX19aTjdXZWJDb3JlMTdDaGVja2JveElucHV0VHlwZTZjcmVhdGVFUE5TXzE2
SFRNTElucHV0RWxlbWVudEUKIF9fWk5LN1dlYkNvcmUxN0NoZWNrYm94SW5wdXRUeXBlMTVmb3Jt
Q29udHJvbFR5cGVFdgogX19aTjdXZWJDb3JlMTRJbnB1dFR5cGVOYW1lczhjaGVja2JveEV2Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlw
dFNvdXJjZVByb3ZpZGVyLmgJKHJldmlzaW9uIDE0MzI2NykKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ2LDE0ICs0Niw5IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29u
c3QgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQtPnNjcmlwdCgpOyB9CiAKLSAgICB2aXJ0dWFsIHZv
aWQgY2FjaGVTaXplQ2hhbmdlZChpbnQgZGVsdGEpCi0gICAgewotICAgICAgICBtX2NhY2hlZFNj
cmlwdC0+c291cmNlUHJvdmlkZXJDYWNoZVNpemVDaGFuZ2VkKGRlbHRhKTsKLSAgICB9Ci0KIHBy
aXZhdGU6CiAgICAgQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIoQ2FjaGVkU2NyaXB0KiBjYWNo
ZWRTY3JpcHQpCi0gICAgICAgIDogU291cmNlUHJvdmlkZXIoY2FjaGVkU2NyaXB0LT5yZXNwb25z
ZSgpLnVybCgpLCBUZXh0UG9zaXRpb246Om1pbmltdW1Qb3NpdGlvbigpLCBjYWNoZWRTY3JpcHQt
PnNvdXJjZVByb3ZpZGVyQ2FjaGUoKSkKKyAgICAgICAgOiBTb3VyY2VQcm92aWRlcihjYWNoZWRT
Y3JpcHQtPnJlc3BvbnNlKCkudXJsKCksIFRleHRQb3NpdGlvbjo6bWluaW11bVBvc2l0aW9uKCkp
CiAgICAgICAgICwgbV9jYWNoZWRTY3JpcHQoY2FjaGVkU2NyaXB0KQogICAgIHsKICAgICAgICAg
bV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCh0aGlzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCShyZXZpc2lvbiAxNDMyNjcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzcsMTEgKzM3LDYgQEAKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi0jaWYgVVNFKEpTQykgIAotI2luY2x1ZGUg
PHBhcnNlci9Tb3VyY2VQcm92aWRlci5oPgotI2luY2x1ZGUgPHBhcnNlci9Tb3VyY2VQcm92aWRl
ckNhY2hlLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBDYWNoZWRTY3JpcHQ6
OkNhY2hlZFNjcmlwdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29u
c3QgU3RyaW5nJiBjaGFyc2V0KQpAQCAtMTAxLDMyICs5NiwxMSBAQCB2b2lkIENhY2hlZFNjcmlw
dDo6ZGF0YShQYXNzUmVmUHRyPFJlc291CiB2b2lkIENhY2hlZFNjcmlwdDo6ZGVzdHJveURlY29k
ZWREYXRhKCkKIHsKICAgICBtX3NjcmlwdCA9IFN0cmluZygpOwotICAgIHVuc2lnbmVkIGV4dHJh
U2l6ZSA9IDA7Ci0jaWYgVVNFKEpTQykKLSAgICBpZiAobV9zb3VyY2VQcm92aWRlckNhY2hlICYm
IG1fY2xpZW50cy5pc0VtcHR5KCkpCi0gICAgICAgIG1fc291cmNlUHJvdmlkZXJDYWNoZS0+Y2xl
YXIoKTsKLQotICAgIGV4dHJhU2l6ZSA9IG1fc291cmNlUHJvdmlkZXJDYWNoZSA/IG1fc291cmNl
UHJvdmlkZXJDYWNoZS0+Ynl0ZVNpemUoKSA6IDA7Ci0jZW5kaWYKLSAgICBzZXREZWNvZGVkU2l6
ZShleHRyYVNpemUpOworICAgIHNldERlY29kZWRTaXplKDApOwogICAgIGlmICghTWVtb3J5Q2Fj
aGU6OnNob3VsZE1ha2VSZXNvdXJjZVB1cmdlYWJsZU9uRXZpY3Rpb24oKSAmJiBpc1NhZmVUb01h
a2VQdXJnZWFibGUoKSkKICAgICAgICAgbWFrZVB1cmdlYWJsZSh0cnVlKTsKIH0KIAotI2lmIFVT
RShKU0MpCi1KU0M6OlNvdXJjZVByb3ZpZGVyQ2FjaGUqIENhY2hlZFNjcmlwdDo6c291cmNlUHJv
dmlkZXJDYWNoZSgpIGNvbnN0Ci17ICAgCi0gICAgaWYgKCFtX3NvdXJjZVByb3ZpZGVyQ2FjaGUp
IAotICAgICAgICBtX3NvdXJjZVByb3ZpZGVyQ2FjaGUgPSBhZG9wdFB0cihuZXcgSlNDOjpTb3Vy
Y2VQcm92aWRlckNhY2hlKTsgCi0gICAgcmV0dXJuIG1fc291cmNlUHJvdmlkZXJDYWNoZS5nZXQo
KTsgCi19Ci0KLXZvaWQgQ2FjaGVkU2NyaXB0Ojpzb3VyY2VQcm92aWRlckNhY2hlU2l6ZUNoYW5n
ZWQoaW50IGRlbHRhKQotewotICAgIHNldERlY29kZWRTaXplKGRlY29kZWRTaXplKCkgKyBkZWx0
YSk7Ci19Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShOT1NOSUZGKQogYm9vbCBDYWNoZWRTY3JpcHQ6
Om1pbWVUeXBlQWxsb3dlZEJ5Tm9zbmlmZigpIGNvbnN0CiB7CkBAIC0xNDAsOSArMTE0LDYgQEAg
dm9pZCBDYWNoZWRTY3JpcHQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbQogICAgIENhY2hlZFJlc291
cmNlOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKICAgICBpbmZvLmFkZE1l
bWJlcihtX3NjcmlwdCwgInNjcmlwdCIpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fZGVjb2Rlciwg
ImRlY29kZXIiKTsKLSNpZiBVU0UoSlNDKQotICAgIGluZm8uYWRkTWVtYmVyKG1fc291cmNlUHJv
dmlkZXJDYWNoZSwgInNvdXJjZVByb3ZpZGVyQ2FjaGUiKTsKLSNlbmRpZgogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
U2NyaXB0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFNjcmlwdC5oCShyZXZpc2lvbiAxNDMyNjcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkU2NyaXB0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEyICsyOCw2IEBACiAKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgogCi0jaWYgVVNFKEpTQykKLW5hbWVzcGFjZSBKU0Mg
ewotICAgIGNsYXNzIFNvdXJjZVByb3ZpZGVyQ2FjaGU7Ci19Ci0jZW5kaWYKLQogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CkBAIC01MiwxMSAr
NDYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFN0cmluZyBtaW1lVHlwZSgpIGNv
bnN0OwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95RGVjb2RlZERhdGEoKTsKLSNpZiBV
U0UoSlNDKSAgICAgICAgCi0gICAgICAgIC8vIEFsbG93cyBKU0MgdG8gY2FjaGUgYWRkaXRpb25h
bCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc291cmNlLgotICAgICAgICBKU0M6OlNvdXJjZVByb3Zp
ZGVyQ2FjaGUqIHNvdXJjZVByb3ZpZGVyQ2FjaGUoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzb3Vy
Y2VQcm92aWRlckNhY2hlU2l6ZUNoYW5nZWQoaW50IGRlbHRhKTsKLSNlbmRpZgogI2lmIEVOQUJM
RShOT1NOSUZGKQogICAgICAgICBib29sIG1pbWVUeXBlQWxsb3dlZEJ5Tm9zbmlmZigpIGNvbnN0
OwogI2VuZGlmCkBAIC02OCw5ICs1Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAg
ICBTdHJpbmcgbV9zY3JpcHQ7CiAgICAgICAgIFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBt
X2RlY29kZXI7Ci0jaWYgVVNFKEpTQykgICAgICAgIAotICAgICAgICBtdXRhYmxlIE93blB0cjxK
U0M6OlNvdXJjZVByb3ZpZGVyQ2FjaGU+IG1fc291cmNlUHJvdmlkZXJDYWNoZTsKLSNlbmRpZgog
ICAgIH07CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MzI2NykKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTE4ICBHZW9m
ZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgU2hyYW5rIHRoZSBTb3Vy
Y2VQcm92aWRlciBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEwMTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTmV3IGJlbmNobWFyayB0byBzaG93IHRoYXQgYSBtaW5pbXVtIHNpemUgb2YgMTYg
aXMgYmV0dGVyIHRoYW4gNjQuCisKKyAgICAgICAgKiBmYXN0L2pzL3JlZ3Jlc3MvbmVzdGVkLWZ1
bmN0aW9uLXBhcnNpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3Jl
Z3Jlc3MvbmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9uZXN0ZWQtZnVuY3Rpb24tcGFyc2luZy5qczogQWRk
ZWQuCisKIDIwMTMtMDItMTggIFN0ZXBoZW4gQ2hlbm5leSAgPHNjaGVubmV5QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBmZUZsb29kIGluY29ycmVjdGx5IGFwcGxpZWQgY29sb3ItaW50ZXJwb2xh
dGlvbi1maWx0ZXJzCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3MvbmVzdGVkLWZ1
bmN0aW9uLXBhcnNpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvanMvcmVncmVzcy9uZXN0ZWQtZnVuY3Rpb24tcGFyc2luZy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlZ3Jlc3MvbmVzdGVkLWZ1bmN0aW9uLXBh
cnNpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jl
c3MvbmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmcKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVz
cy9uZXN0ZWQtZnVuY3Rpb24tcGFyc2luZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvanMvcmVncmVzcy9uZXN0ZWQtZnVuY3Rpb24tcGFyc2luZy5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9yZWdyZXNzL25lc3RlZC1mdW5jdGlvbi1wYXJzaW5n
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL25lc3RlZC1mdW5jdGlvbi1wYXJzaW5nLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMv
bmVzdGVkLWZ1bmN0aW9uLXBhcnNpbmcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9uZXN0ZWQtZnVuY3Rpb24tcGFyc2luZy5qcwkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvbmVz
dGVkLWZ1bmN0aW9uLXBhcnNpbmcuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKKyhm
dW5jdGlvbigpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwOyArK2kpIHsKKyAgICAgICAgdmFyIHByb2dyYW0gPSAiKGZ1bmN0aW9uIGYiICsgaSAr
ICIoKSB7XG4iOworICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDEwMDA7ICsraikgeworICAg
ICAgICAgICAgcHJvZ3JhbSArPSAiZnVuY3Rpb24gZiIgKyBqICsgIigpIHsgcmV0dXJuIDAgJiYg
MSAmJiAyICYmIDMgJiYgNCAmJiA1ICYmIDYgJiYgNyAmJiA4ICYmIDkgJiYgMTA7IH1cbiI7Cisg
ICAgICAgIH0KKyAgICAgICAgcHJvZ3JhbSArPSAifSkoKTtcbiI7CisgICAgICAgIHByb2dyYW0g
Kz0gInJldHVybiAwO1xuIjsKKworICAgICAgICByZXN1bHQgKz0gbmV3IEZ1bmN0aW9uKHByb2dy
YW0pKCk7CisgICAgfQorCisgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgIHByaW50KCJC
YWQgcmVzdWx0OiAiICsgcmVzdWx0KTsKKyAgICAgICAgdGhyb3cgIkVycm9yIjsKKyAgICB9Cit9
KSgpOwo=
</data>
<flag name="review"
          id="209210"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>