<?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>123767</bug_id>
          
          <creation_ts>2013-11-04 16:48:46 -0800</creation_ts>
          <short_desc>Implement base64url encoding from RFC 4648</short_desc>
          <delta_ts>2013-11-04 17:43:53 -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>Web Template Framework</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>
          
          <blocked>122679</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>946893</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-04 16:48:46 -0800</bug_when>
    <thetext>Because JOSE family of formats uses it (JWK, JWA, JWE, ...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946894</commentid>
    <comment_count>1</comment_count>
      <attachid>215970</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-04 16:50:58 -0800</bug_when>
    <thetext>Created attachment 215970
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946945</commentid>
    <comment_count>2</comment_count>
      <attachid>215970</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-04 17:43:51 -0800</bug_when>
    <thetext>Comment on attachment 215970
proposed patch

Clearing flags on attachment: 215970

Committed r158628: &lt;http://trac.webkit.org/changeset/158628&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946946</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-04 17:43:53 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215970</attachid>
            <date>2013-11-04 16:50:58 -0800</date>
            <delta_ts>2013-11-04 17:43:51 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>base64url.txt</filename>
            <type>text/plain</type>
            <size>11580</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNTg2MTcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEzLTExLTA0ICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBiYXNlNjR1cmwgZW5jb2Rpbmcg
ZnJvbSBSRkMgNDY0OAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTIzNzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTm8gdGVzdHMgeWV0LCB3aWxsIGJlIGNvdmVyZWQgYnkgSldLIHRlc3RzIGZvciBXZWJD
cnlwdG8uCisKKyAgICAgICAgKiB3dGYvdGV4dC9CYXNlNjQuY3BwOgorICAgICAgICAoV1RGOjpi
YXNlNjRFbmNvZGVJbnRlcm5hbCk6CisgICAgICAgIChXVEY6OmJhc2U2NEVuY29kZSk6CisgICAg
ICAgIChXVEY6OmJhc2U2NFVSTEVuY29kZSk6CisgICAgICAgIChXVEY6OmJhc2U2NERlY29kZUlu
dGVybmFsKToKKyAgICAgICAgKFdURjo6YmFzZTY0RGVjb2RlKToKKyAgICAgICAgKFdURjo6YmFz
ZTY0VVJMRGVjb2RlKToKKyAgICAgICAgKiB3dGYvdGV4dC9CYXNlNjQuaDoKKyAgICAgICAgKFdU
Rjo6YmFzZTY0VVJMRW5jb2RlKToKKwogMjAxMy0xMS0wNCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxn
aGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBVc2VyIFZlcnNpb25TdGFtcGVyIGZvciBv
ZmZpY2lhbCBidWlsZHMKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvQmFzZTY0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L0Jhc2U2NC5jcHAJKHJldmlzaW9uIDE1ODU4
MCkKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvQmFzZTY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw3ICsxLDcgQEAKIC8qCiAgICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEYXdpdCBBbGVtYXll
aHUgPGFkYXdpdEBrZGUub3JnPgogICAgQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3Vy
eWFrb3YgPGFwQHdlYmtpdC5vcmc+Ci0gICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgIENvcHlyaWdodCAoQykgMjAx
MCBQYXRyaWNrIEdhbnN0ZXJlciA8cGFyb2dhQHBhcm9nYS5jb20+CiAKICAgIFRoaXMgcHJvZ3Jh
bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5
CkBAIC02MCwxNCArNjAsMzcgQEAgc3RhdGljIGNvbnN0IGNoYXIgYmFzZTY0RGVjTWFwWzEyOF0g
PSB7CiAgICAgMHgzMSwgMHgzMiwgMHgzMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMAog
fTsKIAotU3RyaW5nIGJhc2U2NEVuY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5n
dGgsIEJhc2U2NEVuY29kZVBvbGljeSBwb2xpY3kpCi17Ci0gICAgVmVjdG9yPGNoYXI+IHJlc3Vs
dDsKLSAgICBiYXNlNjRFbmNvZGUoZGF0YSwgbGVuZ3RoLCByZXN1bHQsIHBvbGljeSk7Ci0gICAg
cmV0dXJuIFN0cmluZyhyZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKTsKLX0KK3N0YXRpYyBj
b25zdCBjaGFyIGJhc2U2NFVSTEVuY01hcFs2NF0gPSB7CisgICAgMHg0MSwgMHg0MiwgMHg0Mywg
MHg0NCwgMHg0NSwgMHg0NiwgMHg0NywgMHg0OCwKKyAgICAweDQ5LCAweDRBLCAweDRCLCAweDRD
LCAweDRELCAweDRFLCAweDRGLCAweDUwLAorICAgIDB4NTEsIDB4NTIsIDB4NTMsIDB4NTQsIDB4
NTUsIDB4NTYsIDB4NTcsIDB4NTgsCisgICAgMHg1OSwgMHg1QSwgMHg2MSwgMHg2MiwgMHg2Mywg
MHg2NCwgMHg2NSwgMHg2NiwKKyAgICAweDY3LCAweDY4LCAweDY5LCAweDZBLCAweDZCLCAweDZD
LCAweDZELCAweDZFLAorICAgIDB4NkYsIDB4NzAsIDB4NzEsIDB4NzIsIDB4NzMsIDB4NzQsIDB4
NzUsIDB4NzYsCisgICAgMHg3NywgMHg3OCwgMHg3OSwgMHg3QSwgMHgzMCwgMHgzMSwgMHgzMiwg
MHgzMywKKyAgICAweDM0LCAweDM1LCAweDM2LCAweDM3LCAweDM4LCAweDM5LCAweDJELCAweDVG
Cit9OwogCi12b2lkIGJhc2U2NEVuY29kZShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW4s
IFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjRFbmNvZGVQb2xpY3kgcG9saWN5KQorc3RhdGljIGNv
bnN0IGNoYXIgYmFzZTY0VVJMRGVjTWFwWzEyOF0gPSB7CisgICAgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwKKyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LCAweDAwLCAweDAwLAorICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4M0UsIDB4
MDAsIDB4MDAsCisgICAgMHgzNCwgMHgzNSwgMHgzNiwgMHgzNywgMHgzOCwgMHgzOSwgMHgzQSwg
MHgzQiwKKyAgICAweDNDLCAweDNELCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw
LAorICAgIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsIDB4MDYsCisg
ICAgMHgwNywgMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgwQywgMHgwRCwgMHgwRSwKKyAgICAw
eDBGLCAweDEwLCAweDExLCAweDEyLCAweDEzLCAweDE0LCAweDE1LCAweDE2LAorICAgIDB4MTcs
IDB4MTgsIDB4MTksIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4M0YsCisgICAgMHgwMCwgMHgx
QSwgMHgxQiwgMHgxQywgMHgxRCwgMHgxRSwgMHgxRiwgMHgyMCwKKyAgICAweDIxLCAweDIyLCAw
eDIzLCAweDI0LCAweDI1LCAweDI2LCAweDI3LCAweDI4LAorICAgIDB4MjksIDB4MkEsIDB4MkIs
IDB4MkMsIDB4MkQsIDB4MkUsIDB4MkYsIDB4MzAsCisgICAgMHgzMSwgMHgzMiwgMHgzMywgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMAorfTsKKworaW5saW5lIHZvaWQgYmFzZTY0RW5jb2Rl
SW50ZXJuYWwoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuLCBWZWN0b3I8Y2hhcj4mIG91
dCwgQmFzZTY0RW5jb2RlUG9saWN5IHBvbGljeSwgY29uc3QgY2hhciogZW5jb2RlTWFwKQogewog
ICAgIG91dC5jbGVhcigpOwogICAgIGlmICghbGVuKQpAQCAtMTAxLDEwICsxMjQsMTAgQEAgdm9p
ZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaQogICAgICAgICAgICAgICAgICAg
ICBvdXRbZGlkeCsrXSA9ICdcbic7CiAgICAgICAgICAgICAgICAgY291bnQgKz0gNDsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIG91dFtkaWR4KytdID0gYmFzZTY0RW5jTWFwWyhkYXRhW3Np
ZHhdID4+IDIpICYgMDc3XTsKLSAgICAgICAgICAgIG91dFtkaWR4KytdID0gYmFzZTY0RW5jTWFw
WygoZGF0YVtzaWR4ICsgMV0gPj4gNCkgJiAwMTcpIHwgKChkYXRhW3NpZHhdIDw8IDQpICYgMDc3
KV07Ci0gICAgICAgICAgICBvdXRbZGlkeCsrXSA9IGJhc2U2NEVuY01hcFsoKGRhdGFbc2lkeCAr
IDJdID4+IDYpICYgMDAzKSB8ICgoZGF0YVtzaWR4ICsgMV0gPDwgMikgJiAwNzcpXTsKLSAgICAg
ICAgICAgIG91dFtkaWR4KytdID0gYmFzZTY0RW5jTWFwW2RhdGFbc2lkeCArIDJdICYgMDc3XTsK
KyAgICAgICAgICAgIG91dFtkaWR4KytdID0gZW5jb2RlTWFwWyhkYXRhW3NpZHhdID4+IDIpICYg
MDc3XTsKKyAgICAgICAgICAgIG91dFtkaWR4KytdID0gZW5jb2RlTWFwWygoZGF0YVtzaWR4ICsg
MV0gPj4gNCkgJiAwMTcpIHwgKChkYXRhW3NpZHhdIDw8IDQpICYgMDc3KV07CisgICAgICAgICAg
ICBvdXRbZGlkeCsrXSA9IGVuY29kZU1hcFsoKGRhdGFbc2lkeCArIDJdID4+IDYpICYgMDAzKSB8
ICgoZGF0YVtzaWR4ICsgMV0gPDwgMikgJiAwNzcpXTsKKyAgICAgICAgICAgIG91dFtkaWR4Kytd
ID0gZW5jb2RlTWFwW2RhdGFbc2lkeCArIDJdICYgMDc3XTsKICAgICAgICAgICAgIHNpZHggKz0g
MzsKICAgICAgICAgfQogICAgIH0KQEAgLTExMywxMiArMTM2LDEyIEBAIHZvaWQgYmFzZTY0RW5j
b2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2kKICAgICAgICAgaWYgKGluc2VydExGcyAmJiAoY291
bnQgPiAwKSAmJiAhKGNvdW50ICUgNzYpKQogICAgICAgICAgICBvdXRbZGlkeCsrXSA9ICdcbic7
CiAKLSAgICAgICAgb3V0W2RpZHgrK10gPSBiYXNlNjRFbmNNYXBbKGRhdGFbc2lkeF0gPj4gMikg
JiAwNzddOworICAgICAgICBvdXRbZGlkeCsrXSA9IGVuY29kZU1hcFsoZGF0YVtzaWR4XSA+PiAy
KSAmIDA3N107CiAgICAgICAgIGlmIChzaWR4IDwgbGVuIC0gMSkgewotICAgICAgICAgICAgb3V0
W2RpZHgrK10gPSBiYXNlNjRFbmNNYXBbKChkYXRhW3NpZHggKyAxXSA+PiA0KSAmIDAxNykgfCAo
KGRhdGFbc2lkeF0gPDwgNCkgJiAwNzcpXTsKLSAgICAgICAgICAgIG91dFtkaWR4KytdID0gYmFz
ZTY0RW5jTWFwWyhkYXRhW3NpZHggKyAxXSA8PCAyKSAmIDA3N107CisgICAgICAgICAgICBvdXRb
ZGlkeCsrXSA9IGVuY29kZU1hcFsoKGRhdGFbc2lkeCArIDFdID4+IDQpICYgMDE3KSB8ICgoZGF0
YVtzaWR4XSA8PCA0KSAmIDA3NyldOworICAgICAgICAgICAgb3V0W2RpZHgrK10gPSBlbmNvZGVN
YXBbKGRhdGFbc2lkeCArIDFdIDw8IDIpICYgMDc3XTsKICAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICBvdXRbZGlkeCsrXSA9IGJhc2U2NEVuY01hcFsoZGF0YVtzaWR4XSA8PCA0KSAmIDA3N107
CisgICAgICAgICAgICBvdXRbZGlkeCsrXSA9IGVuY29kZU1hcFsoZGF0YVtzaWR4XSA8PCA0KSAm
IDA3N107CiAgICAgfQogCiAgICAgLy8gQWRkIHBhZGRpbmcKQEAgLTEyOCwxOSArMTUxLDMyIEBA
IHZvaWQgYmFzZTY0RW5jb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2kKICAgICB9CiB9CiAKLWJv
b2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4sIFZlY3RvcjxjaGFyPiYgb3V0
LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5KQorU3RyaW5nIGJhc2U2NEVuY29kZShjb25zdCBj
aGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIEJhc2U2NEVuY29kZVBvbGljeSBwb2xpY3kpCiB7
Ci0gICAgb3V0LmNsZWFyKCk7CisgICAgVmVjdG9yPGNoYXI+IHJlc3VsdDsKKyAgICBiYXNlNjRF
bmNvZGVJbnRlcm5hbChkYXRhLCBsZW5ndGgsIHJlc3VsdCwgcG9saWN5LCBiYXNlNjRFbmNNYXAp
OworICAgIHJldHVybiBTdHJpbmcocmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSk7Cit9CiAK
LSAgICAvLyBJZiB0aGUgaW5wdXQgc3RyaW5nIGlzIHBhdGhvbG9naWNhbGx5IGxhcmdlLCBqdXN0
IHJldHVybiBub3RoaW5nLgotICAgIGlmIChpbi5zaXplKCkgPiBVSU5UX01BWCkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwordm9pZCBiYXNlNjRFbmNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaWdu
ZWQgbGVuLCBWZWN0b3I8Y2hhcj4mIG91dCwgQmFzZTY0RW5jb2RlUG9saWN5IHBvbGljeSkKK3sK
KyAgICBiYXNlNjRFbmNvZGVJbnRlcm5hbChkYXRhLCBsZW4sIG91dCwgcG9saWN5LCBiYXNlNjRF
bmNNYXApOworfQorCitTdHJpbmcgYmFzZTY0VVJMRW5jb2RlKGNvbnN0IGNoYXIqIGRhdGEsIHVu
c2lnbmVkIGxlbmd0aCwgQmFzZTY0RW5jb2RlUG9saWN5IHBvbGljeSkKK3sKKyAgICBWZWN0b3I8
Y2hhcj4gcmVzdWx0OworICAgIGJhc2U2NEVuY29kZUludGVybmFsKGRhdGEsIGxlbmd0aCwgcmVz
dWx0LCBwb2xpY3ksIGJhc2U2NFVSTEVuY01hcCk7CisgICAgcmV0dXJuIFN0cmluZyhyZXN1bHQu
ZGF0YSgpLCByZXN1bHQuc2l6ZSgpKTsKK30KIAotICAgIHJldHVybiBiYXNlNjREZWNvZGUoaW4u
ZGF0YSgpLCBpbi5zaXplKCksIG91dCwgcG9saWN5KTsKK3ZvaWQgYmFzZTY0VVJMRW5jb2RlKGNv
bnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbiwgVmVjdG9yPGNoYXI+JiBvdXQsIEJhc2U2NEVu
Y29kZVBvbGljeSBwb2xpY3kpCit7CisgICAgYmFzZTY0RW5jb2RlSW50ZXJuYWwoZGF0YSwgbGVu
LCBvdXQsIHBvbGljeSwgYmFzZTY0VVJMRW5jTWFwKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUg
VD4KLXN0YXRpYyBpbmxpbmUgYm9vbCBiYXNlNjREZWNvZGVJbnRlcm5hbChjb25zdCBUKiBkYXRh
LCB1bnNpZ25lZCBsZW5ndGgsIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xpY3kg
cG9saWN5KQorc3RhdGljIGlubGluZSBib29sIGJhc2U2NERlY29kZUludGVybmFsKGNvbnN0IFQq
IGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgVmVjdG9yPGNoYXI+JiBvdXQsIEJhc2U2NERlY29kZVBv
bGljeSBwb2xpY3ksIGNvbnN0IGNoYXIqIGRlY29kZU1hcCkKIHsKICAgICBvdXQuY2xlYXIoKTsK
ICAgICBpZiAoIWxlbmd0aCkKQEAgLTE2MSw3ICsxOTcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
YmFzZTY0RGVjb2RlSW50ZXJuYWwoCiAgICAgICAgIH0gZWxzZSBpZiAoKCcwJyA8PSBjaCAmJiBj
aCA8PSAnOScpIHx8ICgnQScgPD0gY2ggJiYgY2ggPD0gJ1onKSB8fCAoJ2EnIDw9IGNoICYmIGNo
IDw9ICd6JykgfHwgY2ggPT0gJysnIHx8IGNoID09ICcvJykgewogICAgICAgICAgICAgaWYgKGVx
dWFsc1NpZ25Db3VudCkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAg
ICBvdXRbb3V0TGVuZ3RoXSA9IGJhc2U2NERlY01hcFtjaF07CisgICAgICAgICAgICBvdXRbb3V0
TGVuZ3RoXSA9IGRlY29kZU1hcFtjaF07CiAgICAgICAgICAgICArK291dExlbmd0aDsKICAgICAg
ICAgfSBlbHNlIGlmIChwb2xpY3kgPT0gQmFzZTY0RmFpbE9uSW52YWxpZENoYXJhY3Rlck9yRXhj
ZXNzUGFkZGluZyB8fCBwb2xpY3kgPT0gQmFzZTY0RmFpbE9uSW52YWxpZENoYXJhY3RlciB8fCAo
cG9saWN5ID09IEJhc2U2NElnbm9yZVdoaXRlc3BhY2UgJiYgIWlzU3BhY2VPck5ld2xpbmUoY2gp
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIwMywxNCArMjM5LDQ2IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBiYXNlNjREZWNvZGVJbnRlcm5hbCgKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAorYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgU3RyaW5nJiBpbiwgVmVjdG9yPGNoYXI+JiBvdXQs
IEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpCit7CisgICAgcmV0dXJuIGJhc2U2NERlY29kZUlu
dGVybmFsPFVDaGFyPihpbi5jaGFyYWN0ZXJzKCksIGluLmxlbmd0aCgpLCBvdXQsIHBvbGljeSwg
YmFzZTY0RGVjTWFwKTsKK30KKworYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgVmVjdG9yPGNoYXI+
JiBpbiwgVmVjdG9yPGNoYXI+JiBvdXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpCit7Cisg
ICAgb3V0LmNsZWFyKCk7CisKKyAgICAvLyBJZiB0aGUgaW5wdXQgc3RyaW5nIGlzIHBhdGhvbG9n
aWNhbGx5IGxhcmdlLCBqdXN0IHJldHVybiBub3RoaW5nLgorICAgIGlmIChpbi5zaXplKCkgPiBV
SU5UX01BWCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGJhc2U2NERlY29k
ZUludGVybmFsPGNoYXI+KGluLmRhdGEoKSwgaW4uc2l6ZSgpLCBvdXQsIHBvbGljeSwgYmFzZTY0
RGVjTWFwKTsKK30KKwogYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaWdu
ZWQgbGVuLCBWZWN0b3I8Y2hhcj4mIG91dCwgQmFzZTY0RGVjb2RlUG9saWN5IHBvbGljeSkKIHsK
LSAgICByZXR1cm4gYmFzZTY0RGVjb2RlSW50ZXJuYWw8Y2hhcj4oZGF0YSwgbGVuLCBvdXQsIHBv
bGljeSk7CisgICAgcmV0dXJuIGJhc2U2NERlY29kZUludGVybmFsPGNoYXI+KGRhdGEsIGxlbiwg
b3V0LCBwb2xpY3ksIGJhc2U2NERlY01hcCk7CiB9CiAKLWJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0
IFN0cmluZyYgaW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9saWN5
KQorYm9vbCBiYXNlNjRVUkxEZWNvZGUoY29uc3QgU3RyaW5nJiBpbiwgVmVjdG9yPGNoYXI+JiBv
dXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xpY3kpCit7CisgICAgcmV0dXJuIGJhc2U2NERlY29k
ZUludGVybmFsPFVDaGFyPihpbi5jaGFyYWN0ZXJzKCksIGluLmxlbmd0aCgpLCBvdXQsIHBvbGlj
eSwgYmFzZTY0VVJMRGVjTWFwKTsKK30KKworYm9vbCBiYXNlNjRVUkxEZWNvZGUoY29uc3QgVmVj
dG9yPGNoYXI+JiBpbiwgVmVjdG9yPGNoYXI+JiBvdXQsIEJhc2U2NERlY29kZVBvbGljeSBwb2xp
Y3kpCit7CisgICAgb3V0LmNsZWFyKCk7CisKKyAgICAvLyBJZiB0aGUgaW5wdXQgc3RyaW5nIGlz
IHBhdGhvbG9naWNhbGx5IGxhcmdlLCBqdXN0IHJldHVybiBub3RoaW5nLgorICAgIGlmIChpbi5z
aXplKCkgPiBVSU5UX01BWCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGJh
c2U2NERlY29kZUludGVybmFsPGNoYXI+KGluLmRhdGEoKSwgaW4uc2l6ZSgpLCBvdXQsIHBvbGlj
eSwgYmFzZTY0VVJMRGVjTWFwKTsKK30KKworYm9vbCBiYXNlNjRVUkxEZWNvZGUoY29uc3QgY2hh
ciogZGF0YSwgdW5zaWduZWQgbGVuLCBWZWN0b3I8Y2hhcj4mIG91dCwgQmFzZTY0RGVjb2RlUG9s
aWN5IHBvbGljeSkKIHsKLSAgICByZXR1cm4gYmFzZTY0RGVjb2RlSW50ZXJuYWw8VUNoYXI+KGlu
LmNoYXJhY3RlcnMoKSwgaW4ubGVuZ3RoKCksIG91dCwgcG9saWN5KTsKKyAgICByZXR1cm4gYmFz
ZTY0RGVjb2RlSW50ZXJuYWw8Y2hhcj4oZGF0YSwgbGVuLCBvdXQsIHBvbGljeSwgYmFzZTY0VVJM
RGVjTWFwKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90
ZXh0L0Jhc2U2NC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQvQmFzZTY0LmgJ
KHJldmlzaW9uIDE1ODU4MCkKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvQmFzZTY0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTc2LDYgKzc2LDQyIEBAIGlubGluZSBTdHJpbmcgYmFzZTY0RW5jb2RlKGNv
bnN0IENTdHJpbmcKICAgICByZXR1cm4gYmFzZTY0RW5jb2RlKGluLmRhdGEoKSwgaW4ubGVuZ3Ro
KCksIHBvbGljeSk7CiB9CiAKKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBB
bGwgdGhlIHNhbWUgZnVuY3Rpb25zIG1vZGlmaWVkIGZvciBiYXNlNjR1cmwsIGFzIGRlZmluZWQg
aW4gUkZDIDQ2NDguCisvLyBUaGlzIGZvcm1hdCB1c2VzICctJyBhbmQgJ18nIGluc3RlYWQgb2Yg
JysnIGFuZCAnLycgcmVzcGVjdGl2ZWx5LgorLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKworV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYmFzZTY0VVJMRW5jb2RlKGNvbnN0IGNoYXIq
LCB1bnNpZ25lZCwgVmVjdG9yPGNoYXI+JiwgQmFzZTY0RW5jb2RlUG9saWN5ID0gQmFzZTY0RG9O
b3RJbnNlcnRMRnMpOworV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYmFzZTY0VVJMRW5jb2RlKGNv
bnN0IFZlY3RvcjxjaGFyPiYsIFZlY3RvcjxjaGFyPiYsIEJhc2U2NEVuY29kZVBvbGljeSA9IEJh
c2U2NERvTm90SW5zZXJ0TEZzKTsKK1dURl9FWFBPUlRfUFJJVkFURSB2b2lkIGJhc2U2NFVSTEVu
Y29kZShjb25zdCBDU3RyaW5nJiwgVmVjdG9yPGNoYXI+JiwgQmFzZTY0RW5jb2RlUG9saWN5ID0g
QmFzZTY0RG9Ob3RJbnNlcnRMRnMpOworV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyBiYXNlNjRV
UkxFbmNvZGUoY29uc3QgY2hhciosIHVuc2lnbmVkLCBCYXNlNjRFbmNvZGVQb2xpY3kgPSBCYXNl
NjREb05vdEluc2VydExGcyk7CitXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGJhc2U2NFVSTEVu
Y29kZShjb25zdCBWZWN0b3I8Y2hhcj4mLCBCYXNlNjRFbmNvZGVQb2xpY3kgPSBCYXNlNjREb05v
dEluc2VydExGcyk7CitXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGJhc2U2NFVSTEVuY29kZShj
b25zdCBDU3RyaW5nJiwgQmFzZTY0RW5jb2RlUG9saWN5ID0gQmFzZTY0RG9Ob3RJbnNlcnRMRnMp
OworCitXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBiYXNlNjRVUkxEZWNvZGUoY29uc3QgU3RyaW5n
JiwgVmVjdG9yPGNoYXI+JiwgQmFzZTY0RGVjb2RlUG9saWN5ID0gQmFzZTY0RmFpbE9uSW52YWxp
ZENoYXJhY3Rlcik7CitXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBiYXNlNjRVUkxEZWNvZGUoY29u
c3QgVmVjdG9yPGNoYXI+JiwgVmVjdG9yPGNoYXI+JiwgQmFzZTY0RGVjb2RlUG9saWN5ID0gQmFz
ZTY0RmFpbE9uSW52YWxpZENoYXJhY3Rlcik7CitXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBiYXNl
NjRVUkxEZWNvZGUoY29uc3QgY2hhciosIHVuc2lnbmVkLCBWZWN0b3I8Y2hhcj4mLCBCYXNlNjRE
ZWNvZGVQb2xpY3kgPSBCYXNlNjRGYWlsT25JbnZhbGlkQ2hhcmFjdGVyKTsKKworaW5saW5lIHZv
aWQgYmFzZTY0VVJMRW5jb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4sIFZlY3RvcjxjaGFyPiYg
b3V0LCBCYXNlNjRFbmNvZGVQb2xpY3kgcG9saWN5KQoreworICAgIGJhc2U2NFVSTEVuY29kZShp
bi5kYXRhKCksIGluLnNpemUoKSwgb3V0LCBwb2xpY3kpOworfQorCitpbmxpbmUgdm9pZCBiYXNl
NjRVUkxFbmNvZGUoY29uc3QgQ1N0cmluZyYgaW4sIFZlY3RvcjxjaGFyPiYgb3V0LCBCYXNlNjRF
bmNvZGVQb2xpY3kgcG9saWN5KQoreworICAgIGJhc2U2NFVSTEVuY29kZShpbi5kYXRhKCksIGlu
Lmxlbmd0aCgpLCBvdXQsIHBvbGljeSk7Cit9CisKK2lubGluZSBTdHJpbmcgYmFzZTY0VVJMRW5j
b2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4sIEJhc2U2NEVuY29kZVBvbGljeSBwb2xpY3kpCit7
CisgICAgcmV0dXJuIGJhc2U2NFVSTEVuY29kZShpbi5kYXRhKCksIGluLnNpemUoKSwgcG9saWN5
KTsKK30KKworaW5saW5lIFN0cmluZyBiYXNlNjRVUkxFbmNvZGUoY29uc3QgQ1N0cmluZyYgaW4s
IEJhc2U2NEVuY29kZVBvbGljeSBwb2xpY3kpCit7CisgICAgcmV0dXJuIGJhc2U2NFVSTEVuY29k
ZShpbi5kYXRhKCksIGluLmxlbmd0aCgpLCBwb2xpY3kpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
VEYKIAogdXNpbmcgV1RGOjpCYXNlNjRFbmNvZGVQb2xpY3k7CkBAIC04OCw1ICsxMjQsNiBAQCB1
c2luZyBXVEY6OkJhc2U2NElnbm9yZVdoaXRlc3BhY2U7CiB1c2luZyBXVEY6OkJhc2U2NElnbm9y
ZUludmFsaWRDaGFyYWN0ZXJzOwogdXNpbmcgV1RGOjpiYXNlNjRFbmNvZGU7CiB1c2luZyBXVEY6
OmJhc2U2NERlY29kZTsKK3VzaW5nIFdURjo6YmFzZTY0VVJMRGVjb2RlOwogCiAjZW5kaWYgLy8g
QmFzZTY0X2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>