<?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>117861</bug_id>
          
          <creation_ts>2013-06-20 20:49:07 -0700</creation_ts>
          <short_desc>fourthTier: It should be possible to emit binary switches and this should be easy to do</short_desc>
          <delta_ts>2013-06-24 18:17:52 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>117967</dup_id>
          
          <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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>902417</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-06-20 20:49:07 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902419</commentid>
    <comment_count>1</comment_count>
      <attachid>205144</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-06-20 20:51:10 -0700</bug_when>
    <thetext>Created attachment 205144
work in progress

Just wrote the reusable BinarySwitch generator class.

We&apos;ll want to use this for:

- Switching on characters for string switches
- Integer switches that are too big for jump tables
- Character switches that are too big for jump tables</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903176</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-06-24 18:17:52 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 117967 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205144</attachid>
            <date>2013-06-20 20:51:10 -0700</date>
            <delta_ts>2013-06-20 20:51:10 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>11432</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmluYXJ5U3dpdGNoLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0JpbmFyeVN3aXRjaC5jcHAJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0JpbmFyeVN3aXRj
aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkRGR0JpbmFyeVN3aXRjaC5oIgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKK25hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKworQmluYXJ5U3dpdGNoOjpCaW5hcnlTd2l0Y2goR1BS
UmVnIHZhbHVlLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGNhc2VzLCBUeXBlIHR5cGUpCisgICAg
OiBtX3ZhbHVlKHZhbHVlKQorICAgICwgbV9pbmRleCgwKQorICAgICwgbV9jYXNlSW5kZXgoVUlO
VF9NQVgpCisgICAgLCBtX21lZGlhbkJpYXMoMCkKKyAgICAsIG1fdHlwZSh0eXBlKQoreworICAg
IGlmIChjYXNlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgY2FzZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fY2FzZXMuYXBw
ZW5kKENhc2UoY2FzZXNbaV0sIGkpKTsKKyAgICBzdGQ6OnNvcnQoY2FzZXMuYmVnaW4oKSwgY2Fz
ZXMuZW5kKCkpOworICAgIGJ1aWxkKDAsIGNhc2VzLnNpemUoKSk7Cit9CisKK2Jvb2wgQmluYXJ5
U3dpdGNoOjphZHZhbmNlKE1hY3JvQXNzZW1ibGVyJiBqaXQpCit7CisgICAgaWYgKG1fY2FzZXMu
aXNFbXB0eSgpKSB7CisgICAgICAgIG1fZmFsbFRocm91Z2guYXBwZW5kKGppdC5qdW1wKCkpOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIGlmIChtX2luZGV4ID09IG1f
YnJhbmNoZXMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgZm9yICg7
OykgeworICAgICAgICBjb25zdCBCcmFuY2hDb2RlJiBjb2RlID0gbV9icmFuY2hlc1ttX2luZGV4
KytdOworICAgICAgICBzd2l0Y2ggKGNvZGUua2luZCkgeworICAgICAgICBjYXNlIE5vdEVxdWFs
VG9GYWxsVGhyb3VnaDoKKyAgICAgICAgICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgICAgICAg
ICBjYXNlIEludDMyOgorICAgICAgICAgICAgICAgIG1fZmFsbFRocm91Z2guYXBwZW5kKGppdC5i
cmFuY2gzMigKKyAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBt
X3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SW1tMzIobV9jYXNl
c1tjb2RlLmluZGV4XS52YWx1ZSkpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgSW50UHRyOgorICAgICAgICAgICAgICAgIG1fZmFsbFRocm91Z2guYXBwZW5kKGpp
dC5icmFuY2hQdHIoCisgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVh
bCwgbV92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkltbVB0ciht
X2Nhc2VzW2NvZGUuaW5kZXhdLnZhbHVlKSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBJbnQ2NDoKKyAgICAgICAgICAgICAgICBtX2ZhbGxUaHJvdWdoLmFwcGVu
ZChqaXQuYnJhbmNoNjQoCisgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpOb3RF
cXVhbCwgbV92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkltbTY0
KG1fY2FzZXNbY29kZS5pbmRleF0udmFsdWUpKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb3RFcXVhbFRv
UHVzaDoKKyAgICAgICAgICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgICAgICAgICBjYXNlIElu
dDMyOgorICAgICAgICAgICAgICAgIG1fYnJhbmNoZXMuYXBwZW5kKGppdC5icmFuY2gzMigKKyAg
ICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBtX3ZhbHVlLAorICAg
ICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SW1tMzIobV9jYXNlc1tjb2RlLmluZGV4
XS52YWx1ZSkpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSW50
UHRyOgorICAgICAgICAgICAgICAgIG1fYnJhbmNoZXMuYXBwZW5kKGppdC5icmFuY2hQdHIoCisg
ICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgbV92YWx1ZSwKKyAg
ICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkltbVB0cihtX2Nhc2VzW2NvZGUuaW5k
ZXhdLnZhbHVlKSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJ
bnQ2NDoKKyAgICAgICAgICAgICAgICBtX2JyYW5jaGVzLmFwcGVuZChqaXQuYnJhbmNoNjQoCisg
ICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgbV92YWx1ZSwKKyAg
ICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkltbTY0KG1fY2FzZXNbY29kZS5pbmRl
eF0udmFsdWUpKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMZXNzVGhhblRvUHVzaDoKKyAgICAgICAgICAg
IHN3aXRjaCAobV90eXBlKSB7CisgICAgICAgICAgICBjYXNlIEludDMyOgorICAgICAgICAgICAg
ICAgIG1fYnJhbmNoZXMuYXBwZW5kKGppdC5icmFuY2gzMigKKyAgICAgICAgICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6Okxlc3NUaGFuLCBtX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6SW1tMzIobV9jYXNlc1tjb2RlLmluZGV4XS52YWx1ZSkpKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSW50UHRyOgorICAgICAgICAgICAg
ICAgIG1fYnJhbmNoZXMuYXBwZW5kKGppdC5icmFuY2hQdHIoCisgICAgICAgICAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpMZXNzVGhhbiwgbV92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkltbVB0cihtX2Nhc2VzW2NvZGUuaW5kZXhdLnZhbHVlKSkpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJbnQ2NDoKKyAgICAgICAgICAg
ICAgICBtX2JyYW5jaGVzLmFwcGVuZChqaXQuYnJhbmNoNjQoCisgICAgICAgICAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpMZXNzVGhhbiwgbV92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkltbTY0KG1fY2FzZXNbY29kZS5pbmRleF0udmFsdWUpKSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBQb3A6CisgICAgICAgICAgICBtX2JyYW5jaGVzLnRha2VMYXN0KCkubGluaygm
aml0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEV4ZWN1dGVDYXNlOgorICAg
ICAgICAgICAgbV9jYXNlSW5kZXggPSBjb2RlLmluZGV4OworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgQmluYXJ5U3dpdGNoOjpidWlsZCh1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgZW5kKQoreworICAgIHVuc2lnbmVkIHNpemUgPSBlbmQgLSBz
dGFydDsKKyAgICAKKyAgICBzd2l0Y2ggKHNpemUpIHsKKyAgICBjYXNlIDA6CisgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgICAgICAKKyAg
ICBjYXNlIDE6CisgICAgICAgIGlmIChzdGFydAorICAgICAgICAgICAgJiYgbV9jYXNlc1tzdGFy
dCAtIDFdLnZhbHVlID09IG1fY2FzZXNbc3RhcnRdLnZhbHVlIC0gMQorICAgICAgICAgICAgJiYg
c3RhcnQgKyAxIDwgbV9jYXNlcy5zaXplKCkKKyAgICAgICAgICAgICYmIG1fY2FzZXNbc3RhcnQg
KyAxXS52YWx1ZSA9PSBtX2Nhc2VzW3N0YXJ0XS52YWx1ZSArIDEpIHsKKyAgICAgICAgICAgIG1f
YnJhbmNoZXMuYXBwZW5kKEJyYW5jaENvZGUoRXhlY3V0ZUNhc2UsIHN0YXJ0KSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbV9icmFuY2hlcy5hcHBl
bmQoQnJhbmNoQ29kZShOb3RFcXVhbFRvRmFsbFRocm91Z2gsIHN0YXJ0KSk7CisgICAgICAgIG1f
YnJhbmNoZXMuYXBwZW5kKEJyYW5jaENvZGUoRXhlY3V0ZUNhc2UsIHN0YXJ0KSk7CisgICAgICAg
IGJyZWFrOworICAgICAgICAKKyAgICBjYXNlIDI6CisgICAgICAgIGlmIChtX2Nhc2VzW3N0YXJ0
XS52YWx1ZSArIDEgPT0gbV9jYXNlc1tzdGFydCArIDFdLnZhbHVlCisgICAgICAgICAgICAmJiBz
dGFydAorICAgICAgICAgICAgJiYgbV9jYXNlc1tzdGFydCAtIDFdLnZhbHVlID09IG1fY2FzZXNb
c3RhcnRdLnZhbHVlIC0gMQorICAgICAgICAgICAgJiYgc3RhcnQgKyAyIDwgbV9jYXNlcy5zaXpl
KCkKKyAgICAgICAgICAgICYmIG1fY2FzZXNbc3RhcnQgKyAyXS52YWx1ZSA9PSBtX2Nhc2VzW3N0
YXJ0ICsgMV0udmFsdWUgKyAxKSB7CisgICAgICAgICAgICBtX2JyYW5jaGVzLmFwcGVuZChCcmFu
Y2hDb2RlKE5vdEVxdWFsVG9QdXNoLCBzdGFydCkpOworICAgICAgICAgICAgbV9icmFuY2hlcy5h
cHBlbmQoQnJhbmNoQ29kZShFeGVjdXRlQ2FzZSwgc3RhcnQpKTsKKyAgICAgICAgICAgIG1fYnJh
bmNoZXMuYXBwZW5kKEJyYW5jaENvZGUoUG9wKSk7CisgICAgICAgICAgICBtX2JyYW5jaGVzLmFw
cGVuZChCcmFuY2hDb2RlKEV4ZWN1dGVDYXNlLCBzdGFydCArIDEpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBtX2JyYW5jaGVzLmFwcGVuZChCcmFu
Y2hDb2RlKE5vdEVxdWFsVG9QdXNoLCBzdGFydCkpOworICAgICAgICBtX2JyYW5jaGVzLmFwcGVu
ZChCcmFuY2hDb2RlKEV4ZWN1dGVDYXNlLCBzdGFydCkpOworICAgICAgICBtX2JyYW5jaGVzLmFw
cGVuZChCcmFuY2hDb2RlKFBvcCkpOworICAgICAgICBtX2JyYW5jaGVzLmFwcGVuZChCcmFuY2hD
b2RlKE5vdEVxdWFsVG9GYWxsVGhyb3VnaCwgc3RhcnQgKyAxKSk7CisgICAgICAgIG1fYnJhbmNo
ZXMuYXBwZW5kKEJyYW5jaENvZGUoRXhlY3V0ZUNhc2UsIHN0YXJ0ICsgMSkpOworICAgICAgICBi
cmVhazsKKyAgICAgICAgCisgICAgZGVmYXVsdDoKKyAgICAgICAgdW5zaWduZWQgbWVkaWFuSW5k
ZXggPSAoc3RhcnQgKyBlbmQpIC8gMjsKKyAgICAgICAgaWYgKCEoc2l6ZSAmIDEpKSB7CisgICAg
ICAgICAgICAvLyBCZWNhdXNlIGVuZCBpcyBleGNsdXNpdmUsIGluIHRoZSBldmVuIGNhc2UsIHRo
aXMgcm91bmRzIHVwIGJ5CisgICAgICAgICAgICAvLyBkZWZhdWx0LiBIZW5jZSBtZWRpYW4gYmlh
cyBzb21ldGltZXMgZmxpcHMgdG8gc3VidHJhY2luZyBvbmUKKyAgICAgICAgICAgIC8vIGluIG9y
ZGVyIHRvIGdldCByb3VuZC1kb3duIGJlaGF2aW9yLgorICAgICAgICAgICAgbWVkaWFuSW5kZXgg
LT0gbV9tZWRpYW5CaWFzOworICAgICAgICAgICAgbV9tZWRpYW5CaWFzIF49IDE7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1lZGlhbkluZGV4ID4gc3RhcnQp
OworICAgICAgICBSRUxFQVNFX0FTU0VSVChtZWRpYW5JbmRleCArIDEgPCBlbmQpOworICAgICAg
ICAKKyAgICAgICAgbV9icmFuY2hlcy5hcHBlbmQoQnJhbmNoQ29kZShMZXNzVGhhblRvUHVzaCwg
bWVkaWFuSW5kZXgpKTsKKyAgICAgICAgbV9icmFuY2hlcy5hcHBlbmQoQnJhbmNoQ29kZShOb3RF
cXVhbFRvUHVzaCwgbWVkaWFuSW5kZXgpKTsKKyAgICAgICAgbV9icmFuY2hlcy5hcHBlbmQoQnJh
bmNoQ29kZShFeGVjdXRlQ2FzZSwgbWVkaWFuSW5kZXgpKTsKKyAgICAgICAgCisgICAgICAgIG1f
YnJhbmNoZXMuYXBwZW5kKEJyYW5jaENvZGUoUG9wKSk7CisgICAgICAgIGJ1aWxkKG1lZGlhbklu
ZGV4ICsgMSwgZW5kKTsKKyAgICAgICAgCisgICAgICAgIG1fYnJhbmNoZXMuYXBwZW5kKEJyYW5j
aENvZGUoUG9wKSk7CisgICAgICAgIGJ1aWxkKHN0YXJ0LCBtZWRpYW5JbmRleCk7CisgICAgICAg
IGJyZWFrOworICAgIH0KK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYg
Ly8gRU5BQkxFKERGR19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QmluYXJ5U3dpdGNoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCaW5hcnlTd2l0Y2guaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQmluYXJ5U3dpdGNoLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBERkdC
aW5hcnlTd2l0Y2hfaAorI2RlZmluZSBERkdCaW5hcnlTd2l0Y2hfaAorCisjaW5jbHVkZSA8d3Rm
L1BsYXRmb3JtLmg+CisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgIk1hY3JvQXNz
ZW1ibGVyLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKworLy8gVXNlIHRo
aXMgbGlrZSBzbzoKKy8vCisvLyBCaW5hcnlTd2l0Y2ggc3dpdGNoKHZhbHVlUmVnLCBjYXNlc1Zl
Y3RvciwgQmluYXJ5U3dpdGNoOjpJbnQzMik7CisvLyB3aGlsZSAoc3dpdGNoLmFkdmFuY2Uoaml0
KSkgeworLy8gICAgIGludCB2YWx1ZSA9IHN3aXRjaC5jYXNlVmFsdWUoKTsKKy8vICAgICB1bnNp
Z25lZCBpbmRleCA9IHN3aXRjaC5jYXNlSW5kZXgoKTsgLy8gaW5kZXggaW50byBjYXNlc1ZlY3Rv
ciwgYWJvdmUKKy8vICAgICAuLi4gLy8gZ2VuZXJhdGUgY29kZSBmb3IgdGhpcyBjYXNlCisvLyB9
CisvLyBzd2l0Y2guZmFsbFRocm91Z2goKS5saW5rKCZqaXQpOworCitjbGFzcyBCaW5hcnlTd2l0
Y2ggeworcHVibGljOgorICAgIGVudW0gVHlwZSB7CisgICAgICAgIEludDMyLAorICAgICAgICBJ
bnRQdHIsCisgICAgICAgIEludDY0CisgICAgfTsKKyAgICAKKyAgICBCaW5hcnlTd2l0Y2goR1BS
UmVnIHZhbHVlLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGNhc2VzLCBUeXBlKTsKKyAgICAKKyAg
ICB1bnNpZ25lZCBjYXNlSW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2Nhc2VzW21fY2FzZUluZGV4
XS5pbmRleDsgfQorICAgIGludCBjYXNlVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2Nhc2VzW21f
Y2FzZUluZGV4XS52YWx1ZTsgfQorICAgIAorICAgIGJvb2wgYWR2YW5jZShNYWNyb0Fzc2VtYmxl
ciYpOworICAgIAorICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFsbFRocm91Z2goKSB7
IHJldHVybiBtX2ZhbGxUaHJvdWdoOyB9CisgICAgCitwcml2YXRlOgorICAgIHZvaWQgYnVpbGQo
dW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCk7CisgICAgCisgICAgR1BSUmVnIG1fdmFsdWU7
CisgICAgCisgICAgc3RydWN0IENhc2UgeworICAgICAgICBDYXNlKCkgeyB9CisKKyAgICAgICAg
Q2FzZShpbnQ2NF90IHZhbHVlLCB1bnNpZ25lZCBpbmRleCkKKyAgICAgICAgICAgIDogdmFsdWUo
dmFsdWUpCisgICAgICAgICAgICAsIGluZGV4KGluZGV4KQorICAgICAgICB7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IENhc2UmIG90aGVyKSBjb25z
dAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWUgPCBvdGhlci52YWx1ZTsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50NjRfdCB2YWx1ZTsKKyAgICAgICAgdW5zaWdu
ZWQgaW5kZXg7CisgICAgfTsKKyAgICAKKyAgICBWZWN0b3I8Q2FzZT4gbV9jYXNlczsKKyAgICAK
KyAgICBlbnVtIEJyYW5jaEtpbmQgeworICAgICAgICBOb3RFcXVhbFRvRmFsbFRocm91Z2gsCisg
ICAgICAgIE5vdEVxdWFsVG9QdXNoLAorICAgICAgICBMZXNzVGhhblRvUHVzaCwKKyAgICAgICAg
UG9wLAorICAgICAgICBFeGVjdXRlQ2FzZQorICAgIH07CisgICAgICAgIAorICAgIHN0cnVjdCBC
cmFuY2hDb2RlIHsKKyAgICAgICAgQnJhbmNoQ29kZSgpIHsgfQorICAgICAgICAKKyAgICAgICAg
QnJhbmNoQ29kZShCcmFuY2hLaW5kIGtpbmQsIHVuc2lnbmVkIGluZGV4ID0gVUlOVF9NQVgpCisg
ICAgICAgICAgICA6IGtpbmQoa2luZCkKKyAgICAgICAgICAgICwgaW5kZXgoaW5kZXgpCisgICAg
ICAgIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQnJhbmNoS2luZCBraW5kOworICAg
ICAgICB1bnNpZ25lZCBpbmRleDsKKyAgICB9OworICAgIAorICAgIFZlY3RvcjxCcmFuY2hDb2Rl
PiBtX2JyYW5jaGVzOworCisgICAgdW5zaWduZWQgbV9pbmRleDsKKyAgICB1bnNpZ25lZCBtX2Nh
c2VJbmRleDsKKyAgICBWZWN0b3I8TWFjcm9Bc3NlbWJsZXI6Okp1bXA+IG1fanVtcFN0YWNrOwor
ICAgIAorICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCBtX2ZhbGxUaHJvdWdoOworICAgIAor
ICAgIHVuc2lnbmVkIG1fbWVkaWFuQmlhczsKKyAgICAKKyAgICBUeXBlIG1fdHlwZTsKK307CisK
K30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQor
CisjZW5kaWYgLy8gREZHQmluYXJ5U3dpdGNoX2gKKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>