<?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>225814</bug_id>
          
          <creation_ts>2021-05-14 10:25:44 -0700</creation_ts>
          <short_desc>Add SmallFastBitVector and have IsoAlignedMemoryAllocator use it.</short_desc>
          <delta_ts>2021-05-21 10:26:19 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1760128</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-05-14 10:25:44 -0700</bug_when>
    <thetext>Add SmallFastBitVector and have IsoAlignedMemoryAllocator use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760129</commentid>
    <comment_count>1</comment_count>
      <attachid>428636</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-05-14 10:26:23 -0700</bug_when>
    <thetext>Created attachment 428636
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762473</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-21 10:26:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/78316691&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428636</attachid>
            <date>2021-05-14 10:26:23 -0700</date>
            <delta_ts>2021-05-14 10:26:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225814-20210514132622.patch</filename>
            <type>text/plain</type>
            <size>16437</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MjgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NWVlOTE0MTgxMTM3NWMzMzJkMDA0N2UwZmQ2ZWUzZjkyY2MxODc5Li4zMjViMjkzMDU3ZDg0Mzc3
NzU3YzUyZWRjMjQzMDNiYmNlMzI4MDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMS0wNS0xNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgU21hbGxGYXN0Qml0VmVjdG9yIGFuZCBoYXZlIElzb0FsaWdu
ZWRNZW1vcnlBbGxvY2F0b3IgdXNlIGl0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBoZWFwL0lzb0FsaWduZWRNZW1vcnlBbGxvY2F0b3IuaDoKKwog
MjAyMS0wNS0wOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIGNhbGxzIHRvIHRoZSBTdHJpbmc6OnRvSW50IGZhbWlseSBvZiBmdW5jdGlvbnMgZnJvbSBK
YXZhU2NyaXB0Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZwppbmRleCA5ZDc4YjQ0ZjYyZmNmMzI0NTM3NmYwMjllODZjZjQ2MWU2MWMy
MzQ0Li43MWM2NmFiNGQ3MmY2ZjFjYTg3MGQ1MjJlNjk1ZTlhNGJkNGUxYTVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDYwIEBACisyMDIxLTA1LTE0ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBTbWFsbEZhc3RCaXRWZWN0b3IgYW5kIGhhdmUgSXNvQWxpZ25l
ZE1lbW9yeUFsbG9jYXRvciB1c2UgaXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjU4MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHd0Zi9GYXN0Qml0VmVjdG9yLmNwcDoKKyAgICAgICAgKFdURjo6
RmFzdEJpdFZlY3RvcldvcmRPd25lcjo6cmVzaXplU2xvdyk6CisgICAgICAgIChXVEY6OkZhc3RC
aXRWZWN0b3JTbWFsbFdvcmRPd25lcjo6c2V0RXF1YWxzU2xvdyk6CisgICAgICAgIChXVEY6OkZh
c3RCaXRWZWN0b3JTbWFsbFdvcmRPd25lcjo6cmVzaXplU2xvdyk6CisgICAgICAgIChXVEY6OkZh
c3RCaXRWZWN0b3JJbXBsPEZhc3RCaXRWZWN0b3JXb3JkT3duZXI+OjpjbGVhclJhbmdlKToKKyAg
ICAgICAgKFdURjo6RmFzdEJpdFZlY3RvckltcGw8RmFzdEJpdFZlY3RvclNtYWxsV29yZE93bmVy
Pjo6Y2xlYXJSYW5nZSk6CisgICAgICAgIChXVEY6OkZhc3RCaXRWZWN0b3I6OmNsZWFyUmFuZ2Up
OiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9GYXN0Qml0VmVjdG9yLmg6CisgICAgICAgIChXVEY6
OkZhc3RCaXRWZWN0b3JTbWFsbFdvcmRPd25lcjo6RmFzdEJpdFZlY3RvclNtYWxsV29yZE93bmVy
KToKKyAgICAgICAgKFdURjo6RmFzdEJpdFZlY3RvclNtYWxsV29yZE93bmVyOjp+RmFzdEJpdFZl
Y3RvclNtYWxsV29yZE93bmVyKToKKyAgICAgICAgKFdURjo6RmFzdEJpdFZlY3RvclNtYWxsV29y
ZE93bmVyOjp2aWV3IGNvbnN0KToKKyAgICAgICAgKFdURjo6RmFzdEJpdFZlY3RvclNtYWxsV29y
ZE93bmVyOjpvcGVyYXRvcj0pOgorICAgICAgICAoV1RGOjpGYXN0Qml0VmVjdG9yU21hbGxXb3Jk
T3duZXI6OnNldEFsbCk6CisgICAgICAgIChXVEY6OkZhc3RCaXRWZWN0b3JTbWFsbFdvcmRPd25l
cjo6Y2xlYXJBbGwpOgorICAgICAgICAoV1RGOjpGYXN0Qml0VmVjdG9yU21hbGxXb3JkT3duZXI6
OnNldCk6CisgICAgICAgIChXVEY6OkZhc3RCaXRWZWN0b3JTbWFsbFdvcmRPd25lcjo6bnVtQml0
cyBjb25zdCk6CisgICAgICAgIChXVEY6OkZhc3RCaXRWZWN0b3JTbWFsbFdvcmRPd25lcjo6YXJy
YXlMZW5ndGggY29uc3QpOgorICAgICAgICAoV1RGOjpGYXN0Qml0VmVjdG9yU21hbGxXb3JkT3du
ZXI6OnJlc2l6ZSk6CisgICAgICAgIChXVEY6OkZhc3RCaXRWZWN0b3JTbWFsbFdvcmRPd25lcjo6
d29yZCBjb25zdCk6CisgICAgICAgIChXVEY6OkZhc3RCaXRWZWN0b3JTbWFsbFdvcmRPd25lcjo6
d29yZCk6CisgICAgICAgIChXVEY6OkZhc3RCaXRWZWN0b3JTbWFsbFdvcmRPd25lcjo6d29yZHMg
Y29uc3QpOgorICAgICAgICAoV1RGOjpGYXN0Qml0VmVjdG9yU21hbGxXb3JkT3duZXI6OndvcmRz
KToKKyAgICAgICAgKFdURjo6RmFzdEJpdFZlY3RvclNtYWxsV29yZE93bmVyOjppc1NtYWxsIGNv
bnN0KToKKyAgICAgICAgKFdURjo6RmFzdEJpdFJlZmVyZW5jZTo6RmFzdEJpdFJlZmVyZW5jZSk6
CisgICAgICAgIChXVEY6OkZhc3RCaXRSZWZlcmVuY2U6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgor
ICAgICAgICAoV1RGOjpGYXN0Qml0UmVmZXJlbmNlOjpvcGVyYXRvcj0pOgorICAgICAgICAoV1RG
OjpGYXN0Qml0UmVmZXJlbmNlOjpvcGVyYXRvcnw9KToKKyAgICAgICAgKFdURjo6RmFzdEJpdFJl
ZmVyZW5jZTo6b3BlcmF0b3ImPSk6CisgICAgICAgIChXVEY6OkZhc3RCaXRWZWN0b3JJbXBsOjpG
YXN0Qml0VmVjdG9ySW1wbCk6CisgICAgICAgIChXVEY6OkZhc3RCaXRWZWN0b3JJbXBsOjpvcGVy
YXRvcj0pOgorICAgICAgICAoV1RGOjpGYXN0Qml0VmVjdG9ySW1wbDo6dW5zYWZlV29yZHMgY29u
c3QpOgorICAgICAgICAoV1RGOjpGYXN0Qml0VmVjdG9ySW1wbDo6b3BlcmF0b3J8PSk6CisgICAg
ICAgIChXVEY6OkZhc3RCaXRWZWN0b3JJbXBsOjpvcGVyYXRvciY9KToKKyAgICAgICAgKFdURjo6
RmFzdEJpdFZlY3RvckltcGw6OmF0SW1wbCBjb25zdCk6CisgICAgICAgIChXVEY6OkZhc3RCaXRW
ZWN0b3I6OkZhc3RCaXRWZWN0b3IpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpGYXN0Qml0VmVj
dG9yOjpvcGVyYXRvcj0pOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpGYXN0Qml0VmVjdG9yOjpy
ZXNpemUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpGYXN0Qml0VmVjdG9yOjpzZXRBbGwpOiBE
ZWxldGVkLgorICAgICAgICAoV1RGOjpGYXN0Qml0VmVjdG9yOjpjbGVhckFsbCk6IERlbGV0ZWQu
CisgICAgICAgIChXVEY6OkZhc3RCaXRWZWN0b3I6OmZpbGwpOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpGYXN0Qml0VmVjdG9yOjpncm93KTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6RmFzdEJp
dFZlY3Rvcjo6c2V0QW5kQ2hlY2spOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpGYXN0Qml0VmVj
dG9yOjpvcGVyYXRvcnw9KTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6RmFzdEJpdFZlY3Rvcjo6
b3BlcmF0b3ImPSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkZhc3RCaXRWZWN0b3I6OmF0IGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6RmFzdEJpdFZlY3Rvcjo6b3BlcmF0b3JbXSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkZhc3RCaXRWZWN0b3I6OmF0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdURjo6RmFzdEJpdFZlY3Rvcjo6b3BlcmF0b3JbXSk6IERlbGV0ZWQuCisg
ICAgICAgIChXVEY6OkZhc3RCaXRWZWN0b3I6OmF0b21pY1NldEFuZENoZWNrKTogRGVsZXRlZC4K
KwogMjAyMS0wNS0xMCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIElt
cGxlbWVudCA8Zm9ybT4ucmVxdWVzdFN1Ym1pdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9Jc29BbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9Jc29BbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmgKaW5kZXggMDZiZWI1MjQ3
ZjI1YjZjZjUzYjNhODMyM2FjMjg3ODllOWQzYTAxYi4uZTQ5Mzk0ODZkNmY0MDgwMjZjZGMyNjQy
MGVkMmE2YjBiYmQ5NWMxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SXNvQWxpZ25lZE1lbW9yeUFsbG9jYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0lzb0FsaWduZWRNZW1vcnlBbGxvY2F0b3IuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRl
OgogI2Vsc2UKICAgICBWZWN0b3I8dm9pZCo+IG1fYmxvY2tzOwogICAgIEhhc2hNYXA8dm9pZCos
IHVuc2lnbmVkPiBtX2Jsb2NrSW5kaWNlczsKLSAgICBGYXN0Qml0VmVjdG9yIG1fY29tbWl0dGVk
OworICAgIFNtYWxsRmFzdEJpdFZlY3RvciBtX2NvbW1pdHRlZDsKICAgICB1bnNpZ25lZCBtX2Zp
cnN0VW5jb21taXR0ZWQgeyAwIH07CiAgICAgTG9jayBtX2xvY2s7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RCaXRWZWN0b3IuY3BwIGIvU291cmNlL1dURi93dGYvRmFz
dEJpdFZlY3Rvci5jcHAKaW5kZXggZDY0YTk4ODViNDMzYWU1ZDA4NGFkZGQxNzc1MmU4NTc3Mzg4
ODU4OS4uM2JiZTU2NjFkYTAzNTFlOTFkZWJkOGU3OWIwMDdmN2EwNjk3OGVhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvRmFzdEJpdFZlY3Rvci5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
RmFzdEJpdFZlY3Rvci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKIG5hbWVzcGFjZSBXVEYgewogCiBE
RUZJTkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKEZhc3RCaXRWZWN0b3IpOworREVG
SU5FX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihTbWFsbEZhc3RCaXRWZWN0b3IpOwog
CiB2b2lkIEZhc3RCaXRWZWN0b3JXb3JkT3duZXI6OnNldEVxdWFsc1Nsb3coY29uc3QgRmFzdEJp
dFZlY3RvcldvcmRPd25lciYgb3RoZXIpCiB7CkBAIC00OCwxMCArNDksMTAgQEAgdm9pZCBGYXN0
Qml0VmVjdG9yV29yZE93bmVyOjpyZXNpemVTbG93KHNpemVfdCBudW1CaXRzKQogICAgIHNpemVf
dCBuZXdMZW5ndGggPSBmYXN0Qml0VmVjdG9yQXJyYXlMZW5ndGgobnVtQml0cyk7CiAKICAgICBS
RUxFQVNFX0FTU0VSVChuZXdMZW5ndGggPj0gYXJyYXlMZW5ndGgoKSk7Ci0gICAgCisKICAgICAv
LyBVc2UgZmFzdENhbGxvYyBpbnN0ZWFkIG9mIGZhc3RSZWFsbG9jIGJlY2F1c2Ugd2UgZXhwZWN0
IHRoZSBjb21tb24KICAgICAvLyB1c2UgY2FzZSBmb3IgdGhpcyBtZXRob2QgdG8gYmUgaW5pdGlh
bGl6aW5nIHRoZSBzaXplIG9mIHRoZSBiaXR2ZWN0b3IuCi0gICAgCisKICAgICB1aW50MzJfdCog
bmV3QXJyYXkgPSBzdGF0aWNfY2FzdDx1aW50MzJfdCo+KEZhc3RCaXRWZWN0b3JNYWxsb2M6Onpl
cm9lZE1hbGxvYyhuZXdMZW5ndGggKiBzaXplb2YodWludDMyX3QpKSk7CiAgICAgbWVtY3B5KG5l
d0FycmF5LCBtX3dvcmRzLCBhcnJheUxlbmd0aCgpICogc2l6ZW9mKHVpbnQzMl90KSk7CiAgICAg
aWYgKG1fd29yZHMpCkBAIC01OSw3ICs2MCw0MiBAQCB2b2lkIEZhc3RCaXRWZWN0b3JXb3JkT3du
ZXI6OnJlc2l6ZVNsb3coc2l6ZV90IG51bUJpdHMpCiAgICAgbV93b3JkcyA9IG5ld0FycmF5Owog
fQogCi12b2lkIEZhc3RCaXRWZWN0b3I6OmNsZWFyUmFuZ2Uoc2l6ZV90IGJlZ2luLCBzaXplX3Qg
ZW5kKQordm9pZCBGYXN0Qml0VmVjdG9yU21hbGxXb3JkT3duZXI6OnNldEVxdWFsc1Nsb3coY29u
c3QgRmFzdEJpdFZlY3RvclNtYWxsV29yZE93bmVyJiBvdGhlcikKK3sKKyAgICBpZiAoIWlzU21h
bGwoKSkKKyAgICAgICAgRmFzdEJpdFZlY3Rvck1hbGxvYzo6ZnJlZSh3b3JkcygpKTsKKworICAg
IGlmIChvdGhlci5pc1NtYWxsKCkpIHsKKyAgICAgICAgbV93b3JkcyA9IG90aGVyLm1fd29yZHM7
CisgICAgICAgIG1fbnVtQml0cyA9IG90aGVyLm1fbnVtQml0czsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIHVpbnQzMl90KiBuZXdBcnJheSA9IHN0YXRpY19jYXN0PHVpbnQzMl90Kj4o
CisgICAgICAgIEZhc3RCaXRWZWN0b3JNYWxsb2M6Onplcm9lZE1hbGxvYyhvdGhlci5hcnJheUxl
bmd0aCgpICogc2l6ZW9mKHVpbnQzMl90KSkpOworICAgIG1lbWNweShuZXdBcnJheSwgb3RoZXIu
d29yZHMoKSwgb3RoZXIuYXJyYXlMZW5ndGgoKSAqIHNpemVvZih1aW50MzJfdCkpOworICAgIG1f
d29yZHMgPSByZWludGVycHJldF9jYXN0PHNpemVfdD4obmV3QXJyYXkpOworICAgIG1fbnVtQml0
cyA9IG90aGVyLm1fbnVtQml0czsKK30KKwordm9pZCBGYXN0Qml0VmVjdG9yU21hbGxXb3JkT3du
ZXI6OnJlc2l6ZVNsb3coc2l6ZV90IG51bUJpdHMpCit7CisgICAgc2l6ZV90IG5ld0xlbmd0aCA9
IGZhc3RCaXRWZWN0b3JBcnJheUxlbmd0aChudW1CaXRzKTsKKworICAgIFJFTEVBU0VfQVNTRVJU
KG5ld0xlbmd0aCA+PSBhcnJheUxlbmd0aCgpICYmIG5ld0xlbmd0aCA+IG1heFNtYWxsTnVtQml0
cyk7CisKKyAgICAvLyBVc2UgZmFzdENhbGxvYyBpbnN0ZWFkIG9mIGZhc3RSZWFsbG9jIGJlY2F1
c2Ugd2UgZXhwZWN0IHRoZSBjb21tb24KKyAgICAvLyB1c2UgY2FzZSBmb3IgdGhpcyBtZXRob2Qg
dG8gYmUgaW5pdGlhbGl6aW5nIHRoZSBzaXplIG9mIHRoZSBiaXR2ZWN0b3IuCisgICAgCisgICAg
dWludDMyX3QqIG5ld0FycmF5ID0gc3RhdGljX2Nhc3Q8dWludDMyX3QqPihGYXN0Qml0VmVjdG9y
TWFsbG9jOjp6ZXJvZWRNYWxsb2MobmV3TGVuZ3RoICogc2l6ZW9mKHVpbnQzMl90KSkpOworICAg
IG1lbWNweShuZXdBcnJheSwgd29yZHMoKSwgYXJyYXlMZW5ndGgoKSAqIHNpemVvZih1aW50MzJf
dCkpOworICAgIGlmICghaXNTbWFsbCgpKQorICAgICAgICBGYXN0Qml0VmVjdG9yTWFsbG9jOjpm
cmVlKHdvcmRzKCkpOworICAgIG1fd29yZHMgPSByZWludGVycHJldF9jYXN0PHNpemVfdD4obmV3
QXJyYXkpOworfQorCit0ZW1wbGF0ZTw+Cit2b2lkIEZhc3RCaXRWZWN0b3JJbXBsPEZhc3RCaXRW
ZWN0b3JXb3JkT3duZXI+OjpjbGVhclJhbmdlKHNpemVfdCBiZWdpbiwgc2l6ZV90IGVuZCkKIHsK
ICAgICBpZiAoZW5kIC0gYmVnaW4gPCAzMikgewogICAgICAgICBmb3IgKHNpemVfdCBpID0gYmVn
aW47IGkgPCBlbmQ7ICsraSkKQEAgLTc4LDUgKzExNCwyNSBAQCB2b2lkIEZhc3RCaXRWZWN0b3I6
OmNsZWFyUmFuZ2Uoc2l6ZV90IGJlZ2luLCBzaXplX3QgZW5kKQogICAgICAgICBtX3dvcmRzLndv
cmQoaSkgPSAwOwogfQogCit0ZW1wbGF0ZTw+Cit2b2lkIEZhc3RCaXRWZWN0b3JJbXBsPEZhc3RC
aXRWZWN0b3JTbWFsbFdvcmRPd25lcj46OmNsZWFyUmFuZ2Uoc2l6ZV90IGJlZ2luLCBzaXplX3Qg
ZW5kKQoreworICAgIGlmIChlbmQgLSBiZWdpbiA8IDMyKSB7CisgICAgICAgIGZvciAoc2l6ZV90
IGkgPSBiZWdpbjsgaSA8IGVuZDsgKytpKQorICAgICAgICAgICAgYXQoaSkgPSBmYWxzZTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNpemVfdCBlbmRCZWdpblNsb3AgPSAoYmVnaW4g
KyAzMSkgJiB+MzE7CisgICAgc2l6ZV90IGJlZ2luRW5kU2xvcCA9IGVuZCAmIH4zMTsKKworICAg
IGZvciAoc2l6ZV90IGkgPSBiZWdpbjsgaSA8IGVuZEJlZ2luU2xvcDsgKytpKQorICAgICAgICBh
dChpKSA9IGZhbHNlOworICAgIGZvciAoc2l6ZV90IGkgPSBiZWdpbkVuZFNsb3A7IGkgPCBlbmQ7
ICsraSkKKyAgICAgICAgYXQoaSkgPSBmYWxzZTsKKyAgICBmb3IgKHNpemVfdCBpID0gZW5kQmVn
aW5TbG9wIC8gMzI7IGkgPCBiZWdpbkVuZFNsb3AgLyAzMjsgKytpKQorICAgICAgICBtX3dvcmRz
LndvcmQoaSkgPSAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvRmFzdEJpdFZlY3Rvci5oIGIvU291cmNlL1dURi93dGYvRmFzdEJpdFZlY3Rv
ci5oCmluZGV4IDQzYjQ0MTA0NDdiODkxMDNlYjRjYWI1MDBkYjU0Yjc5MGIzZWY2MDYuLjgzNDkw
ZWYyMmY3MDNlYzc0NjkzNmZlZjY5N2U5NTE4ZjAzYzZkM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0Zhc3RCaXRWZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GYXN0Qml0VmVjdG9y
LmgKQEAgLTE2OCw2ICsxNjgsMTEwIEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IG1fbnVtQml0cyB7
IDAgfTsKIH07CiAKK2NsYXNzIEZhc3RCaXRWZWN0b3JTbWFsbFdvcmRPd25lciB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdHlwZWRlZiBGYXN0Qml0VmVjdG9y
V29yZFZpZXcgVmlld1R5cGU7CisKKyAgICBGYXN0Qml0VmVjdG9yU21hbGxXb3JkT3duZXIoKSA9
IGRlZmF1bHQ7CisKKyAgICBGYXN0Qml0VmVjdG9yU21hbGxXb3JkT3duZXIoRmFzdEJpdFZlY3Rv
clNtYWxsV29yZE93bmVyJiYgb3RoZXIpCisgICAgICAgIDogbV93b3JkcyhzdGQ6OmV4Y2hhbmdl
KG90aGVyLm1fd29yZHMsIDApKQorICAgICAgICAsIG1fbnVtQml0cyhzdGQ6OmV4Y2hhbmdlKG90
aGVyLm1fbnVtQml0cywgMCkpCisgICAgeworICAgIH0KKworICAgIEZhc3RCaXRWZWN0b3JTbWFs
bFdvcmRPd25lcihjb25zdCBGYXN0Qml0VmVjdG9yV29yZE93bmVyJiBvdGhlcikKKyAgICB7Cisg
ICAgICAgICp0aGlzID0gb3RoZXI7CisgICAgfQorCisgICAgfkZhc3RCaXRWZWN0b3JTbWFsbFdv
cmRPd25lcigpCisgICAgeworICAgICAgICBpZiAoIWlzU21hbGwoKSkKKyAgICAgICAgICAgIEZh
c3RCaXRWZWN0b3JNYWxsb2M6OmZyZWUod29yZHMoKSk7CisgICAgfQorCisgICAgRmFzdEJpdFZl
Y3RvcldvcmRWaWV3IHZpZXcoKSBjb25zdCB7IHJldHVybiBGYXN0Qml0VmVjdG9yV29yZFZpZXco
d29yZHMoKSwgbV9udW1CaXRzKTsgfQorCisgICAgRmFzdEJpdFZlY3RvclNtYWxsV29yZE93bmVy
JiBvcGVyYXRvcj0oY29uc3QgRmFzdEJpdFZlY3RvclNtYWxsV29yZE93bmVyJiBvdGhlcikKKyAg
ICB7CisgICAgICAgIGlmIChhcnJheUxlbmd0aCgpICE9IG90aGVyLmFycmF5TGVuZ3RoKCkpCisg
ICAgICAgICAgICBzZXRFcXVhbHNTbG93KG90aGVyKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICBtZW1jcHkod29yZHMoKSwgb3RoZXIud29yZHMoKSwgYXJyYXlMZW5ndGgoKSAqIHNpemVv
Zih1aW50MzJfdCkpOworICAgICAgICAgICAgbV9udW1CaXRzID0gb3RoZXIubV9udW1CaXRzOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBGYXN0Qml0VmVj
dG9yU21hbGxXb3JkT3duZXImIG9wZXJhdG9yPShGYXN0Qml0VmVjdG9yU21hbGxXb3JkT3duZXIm
JiBvdGhlcikKKyAgICB7CisgICAgICAgIHN0ZDo6c3dhcChtX3dvcmRzLCBvdGhlci5tX3dvcmRz
KTsKKyAgICAgICAgc3RkOjpzd2FwKG1fbnVtQml0cywgb3RoZXIubV9udW1CaXRzKTsKKyAgICAg
ICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIHZvaWQgc2V0QWxsKCkKKyAgICB7CisgICAg
ICAgIG1lbXNldCh3b3JkcygpLCAyNTUsIGFycmF5TGVuZ3RoKCkgKiBzaXplb2YodWludDMyX3Qp
KTsKKyAgICB9CisKKyAgICB2b2lkIGNsZWFyQWxsKCkKKyAgICB7CisgICAgICAgIG1lbXNldCh3
b3JkcygpLCAwLCBhcnJheUxlbmd0aCgpICogc2l6ZW9mKHVpbnQzMl90KSk7CisgICAgfQorCisg
ICAgdm9pZCBzZXQoY29uc3QgRmFzdEJpdFZlY3RvclNtYWxsV29yZE93bmVyJiBvdGhlcikKKyAg
ICB7CisgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG1fbnVtQml0cyA9
PSBvdGhlci5tX251bUJpdHMpOworICAgICAgICBtZW1jcHkod29yZHMoKSwgb3RoZXIud29yZHMo
KSwgYXJyYXlMZW5ndGgoKSAqIHNpemVvZih1aW50MzJfdCkpOworICAgIH0KKworICAgIHNpemVf
dCBudW1CaXRzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX251bUJpdHM7CisgICAg
fQorCisgICAgc2l6ZV90IGFycmF5TGVuZ3RoKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBmYXN0Qml0VmVjdG9yQXJyYXlMZW5ndGgobnVtQml0cygpKTsKKyAgICB9CisKKyAgICB2b2lk
IHJlc2l6ZShzaXplX3QgbnVtQml0cykKKyAgICB7CisgICAgICAgIHNpemVfdCBuZXdTaXplID0g
ZmFzdEJpdFZlY3RvckFycmF5TGVuZ3RoKG51bUJpdHMpOworICAgICAgICBpZiAoYXJyYXlMZW5n
dGgoKSAhPSBuZXdTaXplICYmIG5ld1NpemUgPiBtYXhTbWFsbE51bUJpdHMpCisgICAgICAgICAg
ICByZXNpemVTbG93KG51bUJpdHMpOworICAgICAgICBtX251bUJpdHMgPSBudW1CaXRzOworICAg
IH0KKworICAgIHVpbnQzMl90IHdvcmQoc2l6ZV90IGluZGV4KSBjb25zdAorICAgIHsKKyAgICAg
ICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaW5kZXggPCBhcnJheUxlbmd0aCgp
KTsKKyAgICAgICAgcmV0dXJuIHdvcmRzKClbaW5kZXhdOworICAgIH0KKworICAgIHVpbnQzMl90
JiB3b3JkKHNpemVfdCBpbmRleCkKKyAgICB7CisgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKGluZGV4IDwgYXJyYXlMZW5ndGgoKSk7CisgICAgICAgIHJldHVybiB3b3Jk
cygpW2luZGV4XTsKKyAgICB9CisKKyAgICBjb25zdCB1aW50MzJfdCogd29yZHMoKSBjb25zdCB7
IHJldHVybiBpc1NtYWxsKCkgPyByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQzMl90Kj4oJm1f
d29yZHMpIDogcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MzJfdCo+KG1fd29yZHMpOyB9Cisg
ICAgdWludDMyX3QqIHdvcmRzKCkgeyByZXR1cm4gaXNTbWFsbCgpID8gcmVpbnRlcnByZXRfY2Fz
dDx1aW50MzJfdCo+KCZtX3dvcmRzKSA6IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPihtX3dv
cmRzKTsgfQorCitwcml2YXRlOgorICAgIGJvb2wgaXNTbWFsbCgpIGNvbnN0IHsgcmV0dXJuIG1f
bnVtQml0cyA8PSBtYXhTbWFsbE51bUJpdHM7IH0KKyAgICBjb25zdCBzaXplX3QgbWF4U21hbGxO
dW1CaXRzID0gc2l6ZW9mKHNpemVfdCkgKiBDSEFSX0JJVDsKKworICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIHNldEVxdWFsc1Nsb3coY29uc3QgRmFzdEJpdFZlY3RvclNtYWxsV29yZE93bmVy
JiBvdGhlcik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVzaXplU2xvdyhzaXplX3Qg
bnVtQml0cyk7CisKKyAgICBzaXplX3QgbV93b3JkcyB7IDAgfTsKKyAgICBzaXplX3QgbV9udW1C
aXRzIHsgMCB9OworfTsKKwogdGVtcGxhdGU8dHlwZW5hbWUgTGVmdCwgdHlwZW5hbWUgUmlnaHQ+
CiBjbGFzcyBGYXN0Qml0VmVjdG9yQW5kV29yZHMgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwpAQCAtMjU1LDcgKzM1OSwzOCBAQCBwcml2YXRlOgogICAgIFZpZXcgbV92aWV3OwogfTsK
IAotY2xhc3MgRmFzdEJpdFZlY3RvcjsKK2NsYXNzIEZhc3RCaXRSZWZlcmVuY2UgeworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIEZhc3RCaXRSZWZlcmVuY2UoKSA9
IGRlZmF1bHQ7CisKKyAgICBGYXN0Qml0UmVmZXJlbmNlKHVpbnQzMl90KiB3b3JkLCB1aW50MzJf
dCBtYXNrKQorICAgICAgICA6IG1fd29yZCh3b3JkKQorICAgICAgICAsIG1fbWFzayhtYXNrKQor
ICAgIHsKKyAgICB9CisKKyAgICBvcGVyYXRvciBib29sKCkgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiAhISgqbV93b3JkICYgbV9tYXNrKTsKKyAgICB9CisKKyAgICBGYXN0Qml0UmVmZXJl
bmNlJiBvcGVyYXRvcj0oYm9vbCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSkKKyAg
ICAgICAgICAgICptX3dvcmQgfD0gbV9tYXNrOworICAgICAgICBlbHNlCisgICAgICAgICAgICAq
bV93b3JkICY9IH5tX21hc2s7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBG
YXN0Qml0UmVmZXJlbmNlJiBvcGVyYXRvcnw9KGJvb2wgdmFsdWUpIHsgcmV0dXJuIHZhbHVlID8g
KnRoaXMgPSB2YWx1ZSA6ICp0aGlzOyB9CisgICAgRmFzdEJpdFJlZmVyZW5jZSYgb3BlcmF0b3Im
PShib29sIHZhbHVlKSB7IHJldHVybiB2YWx1ZSA/ICp0aGlzIDogKnRoaXMgPSB2YWx1ZTsgfQor
Citwcml2YXRlOgorICAgIHVpbnQzMl90KiBtX3dvcmQgeyBudWxscHRyIH07CisgICAgdWludDMy
X3QgbV9tYXNrIHsgMCB9OworfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgV29yZHM+CiBjbGFzcyBG
YXN0Qml0VmVjdG9ySW1wbCB7CkBAIC0yNzYsNiArNDExLDIyIEBAIHB1YmxpYzoKICAgICB7CiAg
ICAgfQogCisgICAgZXhwbGljaXQgRmFzdEJpdFZlY3RvckltcGwoc2l6ZV90IG51bUJpdHMpCisg
ICAgeworICAgICAgICBncm93KG51bUJpdHMpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIE90aGVyV29yZHM+CisgICAgRmFzdEJpdFZlY3RvckltcGwmIG9wZXJhdG9yPShjb25zdCBG
YXN0Qml0VmVjdG9ySW1wbDxPdGhlcldvcmRzPiYgb3RoZXIpCisgICAgeworICAgICAgICBpZiAo
VU5MSUtFTFkobnVtQml0cygpICE9IG90aGVyLm51bUJpdHMoKSkpCisgICAgICAgICAgICByZXNp
emUob3RoZXIubnVtQml0cygpKTsKKworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBhcnJheUxl
bmd0aCgpOyBpLS07KQorICAgICAgICAgICAgbV93b3Jkcy53b3JkKGkpID0gb3RoZXIubV93b3Jk
cy53b3JkKGkpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCiAgICAgc2l6ZV90IG51
bUJpdHMoKSBjb25zdCB7IHJldHVybiBtX3dvcmRzLm51bUJpdHMoKTsgfQogICAgIHNpemVfdCBz
aXplKCkgY29uc3QgeyByZXR1cm4gbnVtQml0cygpOyB9CiAgICAgCkBAIC0yOTksMTYgKzQ1MCw2
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwogICAgIH0KICAg
ICAKLSAgICBib29sIGF0KHNpemVfdCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biBhdEltcGwoaW5kZXgpOwotICAgIH0KLSAgICAKLSAgICBib29sIG9wZXJhdG9yW10oc2l6ZV90
IGluZGV4KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGF0SW1wbChpbmRleCk7Ci0gICAg
fQotICAgIAogICAgIHNpemVfdCBiaXRDb3VudCgpIGNvbnN0CiAgICAgewogICAgICAgICBzaXpl
X3QgcmVzdWx0ID0gMDsKQEAgLTQyNiw4NCArNTY3LDcgQEAgcHVibGljOgogCiAgICAgV29yZHMm
IHVuc2FmZVdvcmRzKCkgeyByZXR1cm4gbV93b3JkczsgfQogICAgIGNvbnN0IFdvcmRzJiB1bnNh
ZmVXb3JkcygpIGNvbnN0IHsgcmV0dXJuIG1fd29yZHM7IH0KLSAgICAKLXByaXZhdGU6Ci0gICAg
Ly8gWW91J2QgdGhpbmsgdGhhdCB3ZSBjb3VsZCByZW1vdmUgdGhpcyBmcmllbmQgaWYgd2UgdXNl
ZCBwcm90ZWN0ZWQsIGJ1dCB5b3UnZCBiZSB3cm9uZywKLSAgICAvLyBiZWNhdXNlIHRlbXBsYXRl
cy4KLSAgICBmcmllbmQgY2xhc3MgRmFzdEJpdFZlY3RvcjsKLSAgICAKLSAgICBib29sIGF0SW1w
bChzaXplX3QgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTihpbmRleCA8IG51bUJpdHMoKSk7Ci0gICAgICAgIHJldHVybiAhIShtX3dv
cmRzLndvcmQoaW5kZXggPj4gNSkgJiAoMSA8PCAoaW5kZXggJiAzMSkpKTsKLSAgICB9Ci0gICAg
Ci0gICAgV29yZHMgbV93b3JkczsKLX07Ci0KLWNsYXNzIEZhc3RCaXRSZWZlcmVuY2UgewotICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIEZhc3RCaXRSZWZlcmVuY2Uo
KSA9IGRlZmF1bHQ7CiAKLSAgICBGYXN0Qml0UmVmZXJlbmNlKHVpbnQzMl90KiB3b3JkLCB1aW50
MzJfdCBtYXNrKQotICAgICAgICA6IG1fd29yZCh3b3JkKQotICAgICAgICAsIG1fbWFzayhtYXNr
KQotICAgIHsKLSAgICB9Ci0KLSAgICBvcGVyYXRvciBib29sKCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIHJldHVybiAhISgqbV93b3JkICYgbV9tYXNrKTsKLSAgICB9Ci0KLSAgICBGYXN0Qml0UmVm
ZXJlbmNlJiBvcGVyYXRvcj0oYm9vbCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZSkK
LSAgICAgICAgICAgICptX3dvcmQgfD0gbV9tYXNrOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAqbV93b3JkICY9IH5tX21hc2s7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAg
ICBGYXN0Qml0UmVmZXJlbmNlJiBvcGVyYXRvcnw9KGJvb2wgdmFsdWUpIHsgcmV0dXJuIHZhbHVl
ID8gKnRoaXMgPSB2YWx1ZSA6ICp0aGlzOyB9Ci0gICAgRmFzdEJpdFJlZmVyZW5jZSYgb3BlcmF0
b3ImPShib29sIHZhbHVlKSB7IHJldHVybiB2YWx1ZSA/ICp0aGlzIDogKnRoaXMgPSB2YWx1ZTsg
fQotCi1wcml2YXRlOgotICAgIHVpbnQzMl90KiBtX3dvcmQgeyBudWxscHRyIH07Ci0gICAgdWlu
dDMyX3QgbV9tYXNrIHsgMCB9OwotfTsKLQotCi0KLWNsYXNzIEZhc3RCaXRWZWN0b3IgOiBwdWJs
aWMgRmFzdEJpdFZlY3RvckltcGw8RmFzdEJpdFZlY3RvcldvcmRPd25lcj4gewotcHVibGljOgot
ICAgIEZhc3RCaXRWZWN0b3IoKSB7IH0KLSAgICBleHBsaWNpdCBGYXN0Qml0VmVjdG9yKHNpemVf
dCBudW1CaXRzKQotICAgIHsKLSAgICAgICAgZ3JvdyhudW1CaXRzKTsKLSAgICB9Ci0gICAgCi0g
ICAgRmFzdEJpdFZlY3Rvcihjb25zdCBGYXN0Qml0VmVjdG9yJikgPSBkZWZhdWx0OwotICAgIEZh
c3RCaXRWZWN0b3ImIG9wZXJhdG9yPShjb25zdCBGYXN0Qml0VmVjdG9yJikgPSBkZWZhdWx0Owot
ICAgIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIE90aGVyV29yZHM+Ci0gICAgRmFzdEJpdFZlY3Rv
cihjb25zdCBGYXN0Qml0VmVjdG9ySW1wbDxPdGhlcldvcmRzPiYgb3RoZXIpCi0gICAgewotICAg
ICAgICAqdGhpcyA9IG90aGVyOwotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBP
dGhlcldvcmRzPgotICAgIEZhc3RCaXRWZWN0b3ImIG9wZXJhdG9yPShjb25zdCBGYXN0Qml0VmVj
dG9ySW1wbDxPdGhlcldvcmRzPiYgb3RoZXIpCi0gICAgewotICAgICAgICBpZiAoVU5MSUtFTFko
bnVtQml0cygpICE9IG90aGVyLm51bUJpdHMoKSkpCi0gICAgICAgICAgICByZXNpemUob3RoZXIu
bnVtQml0cygpKTsKLSAgICAgICAgCi0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IGFycmF5TGVu
Z3RoKCk7IGktLTspCi0gICAgICAgICAgICBtX3dvcmRzLndvcmQoaSkgPSBvdGhlci5tX3dvcmRz
LndvcmQoaSk7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0gICAgCiAgICAgdm9pZCBy
ZXNpemUoc2l6ZV90IG51bUJpdHMpCiAgICAgewogICAgICAgICBtX3dvcmRzLnJlc2l6ZShudW1C
aXRzKTsKQEAgLTUzOSw3ICs2MDMsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIE90aGVyV29yZHM+Ci0gICAgRmFzdEJpdFZlY3RvciYgb3BlcmF0b3J8PShj
b25zdCBGYXN0Qml0VmVjdG9ySW1wbDxPdGhlcldvcmRzPiYgb3RoZXIpCisgICAgRmFzdEJpdFZl
Y3RvckltcGwmIG9wZXJhdG9yfD0oY29uc3QgRmFzdEJpdFZlY3RvckltcGw8T3RoZXJXb3Jkcz4m
IG90aGVyKQogICAgIHsKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
bnVtQml0cygpID09IG90aGVyLm51bUJpdHMoKSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IGFycmF5TGVuZ3RoKCk7IGktLTspCkBAIC01NDgsNyArNjEyLDcgQEAgcHVibGljOgogICAgIH0K
ICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPdGhlcldvcmRzPgotICAgIEZhc3RCaXRWZWN0
b3ImIG9wZXJhdG9yJj0oY29uc3QgRmFzdEJpdFZlY3RvckltcGw8T3RoZXJXb3Jkcz4mIG90aGVy
KQorICAgIEZhc3RCaXRWZWN0b3JJbXBsJiBvcGVyYXRvciY9KGNvbnN0IEZhc3RCaXRWZWN0b3JJ
bXBsPE90aGVyV29yZHM+JiBvdGhlcikKICAgICB7CiAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VS
SVRZX0lNUExJQ0FUSU9OKG51bUJpdHMoKSA9PSBvdGhlci5udW1CaXRzKCkpOwogICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSBhcnJheUxlbmd0aCgpOyBpLS07KQpAQCAtNTk4LDkgKzY2MiwyMiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9
CisKK3ByaXZhdGU6CisgICAgYm9vbCBhdEltcGwoc2l6ZV90IGluZGV4KSBjb25zdAorICAgIHsK
KyAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaW5kZXggPCBudW1CaXRz
KCkpOworICAgICAgICByZXR1cm4gISEobV93b3Jkcy53b3JkKGluZGV4ID4+IDUpICYgKDEgPDwg
KGluZGV4ICYgMzEpKSk7CisgICAgfQorCisgICAgV29yZHMgbV93b3JkczsKIH07CiAKK3VzaW5n
IEZhc3RCaXRWZWN0b3IgPSBGYXN0Qml0VmVjdG9ySW1wbDxGYXN0Qml0VmVjdG9yV29yZE93bmVy
PjsKK3VzaW5nIFNtYWxsRmFzdEJpdFZlY3RvciA9IEZhc3RCaXRWZWN0b3JJbXBsPEZhc3RCaXRW
ZWN0b3JTbWFsbFdvcmRPd25lcj47CisKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6
OkZhc3RCaXRSZWZlcmVuY2U7CiB1c2luZyBXVEY6OkZhc3RCaXRWZWN0b3I7Cit1c2luZyBXVEY6
OlNtYWxsRmFzdEJpdFZlY3RvcjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>