<?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>185541</bug_id>
          
          <creation_ts>2018-05-10 22:49:15 -0700</creation_ts>
          <short_desc>[JSC] Tweak LiteralParser to improve lexing performance</short_desc>
          <delta_ts>2018-05-14 11:32:18 -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>RESOLVED</bug_status>
          <resolution>FIXED</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1423053</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-10 22:49:15 -0700</bug_when>
    <thetext>[JSC] Tweak LiteralParser to improve lexing performance</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423055</commentid>
    <comment_count>1</comment_count>
      <attachid>340172</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-10 22:54:58 -0700</bug_when>
    <thetext>Created attachment 340172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423638</commentid>
    <comment_count>2</comment_count>
      <attachid>340172</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-05-14 09:13:30 -0700</bug_when>
    <thetext>Comment on attachment 340172
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=340172&amp;action=review

r=me

&gt; Source/JavaScriptCore/runtime/LiteralParser.cpp:501
&gt; +        default:

Maybe add a debug assert of what the token types are here just for documentation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423650</commentid>
    <comment_count>3</comment_count>
      <attachid>340172</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-14 09:41:04 -0700</bug_when>
    <thetext>Comment on attachment 340172
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=340172&amp;action=review

Thanks!

&gt;&gt; Source/JavaScriptCore/runtime/LiteralParser.cpp:501
&gt;&gt; +        default:
&gt; 
&gt; Maybe add a debug assert of what the token types are here just for documentation?

This is everything else... I&apos;ve added them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423654</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-14 09:47:45 -0700</bug_when>
    <thetext>Committed r231761: &lt;https://trac.webkit.org/changeset/231761&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423655</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-14 09:48:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/40220708&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1423705</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-05-14 11:32:18 -0700</bug_when>
    <thetext>The effect seems a bit small compared to my local environment, but it seems improved :)
https://arewefastyet.com/#machine=29&amp;view=single&amp;suite=kraken&amp;subtest=parse-financial</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340172</attachid>
            <date>2018-05-10 22:54:58 -0700</date>
            <delta_ts>2018-05-14 09:13:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185541-20180511145457.patch</filename>
            <type>text/plain</type>
            <size>30469</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxNjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NTZlNTM5MzUwMzM0YTVlMzUzNzNjZjQyMTNhNWM1ZGY4MTY5MDU1Li5hNDkwZDkwYTFjMDY0Mjc3
NDI4ZGVjNDEzZjllZmQwNzEyYTA1N2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MyBAQAorMjAxOC0wNS0xMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBUd2VhayBMaXRlcmFsUGFyc2VyIHRvIGltcHJvdmUgbGV4
aW5nIHBlcmZvcm1hbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODU1NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIHBhdGNoIGF0dGVtcHMgdG8gaW1wcm92ZSBMaXRlcmFsUGFyc2VyIHBlcmZv
cm1hbmNlLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wcm92ZXMgS3Jha2VuL2pzb24tcGFyc2Ut
ZmluYW5jaWFsIGJ5IHJvdWdobHkgfjEwJS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBiYXNlbGluZSAgICAgICAgICAgICAgICAgIHBhdGNoZWQKKworICAgICAg
ICAgICAganNvbi1wYXJzZS1maW5hbmNpYWwgICAgICAgIDY1LjgxMCstMS41OTEgICAgICBeICAg
ICAgNTkuOTQzKy0xLjc4NCAgICAgICAgIF4gZGVmaW5pdGVseSAxLjA5Nzl4IGZhc3RlcgorCisg
ICAgICAgICogcGFyc2VyL0xleGVyLmNwcDoKKyAgICAgICAgKEpTQzo6TGV4ZXI8VD46OkxleGVy
KToKKyAgICAgICAgKiBydW50aW1lL0FyZ0xpc3QuaDoKKyAgICAgICAgKEpTQzo6TWFya2VkQXJn
dW1lbnRCdWZmZXI6OnRha2VMYXN0KToKKyAgICAgICAgQWRkIHRha2VMYXN0KCkgZm9yIGlkaW9t
YXRpYyBsYXN0KCkgKyByZW1vdmVMYXN0KCkgY2FsbHMuCisKKyAgICAgICAgKiBydW50aW1lL0xp
dGVyYWxQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpMaXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6
TGV4ZXI6OmxleCk6CisgICAgICAgIERvIG5vdCBoYXZlIG1vZGUgaW4gaXRzIHRlbXBsYXRlIHBh
cmFtZXRlci4gV2hpbGUgbGV4IGZ1bmN0aW9uIGlzIGxhcmdlLCB0aGlzIG1vZGUgaXMgbm90IHVz
ZWQgaW4gYSBjcml0aWNhbCBwYXRoLgorICAgICAgICBXZSBzaG91bGQgbm90IGluY2x1ZGUgdGhp
cyBtb2RlIGluIGl0cyB0ZW1wbGF0ZSBwYXJhbWV0ZXIgdG8gcmVkdWNlIHRoZSBjb2RlIHNpemUu
CisgICAgICAgIEFuZCB3ZSBkbyBub3QgdXNlIHRlbXBsYXRlIHBhcmFtZXRlciBmb3IgYSB0ZXJt
aW5hdG9yIHNpbmNlIGR1cGxpY2F0aW5nICcgYW5kICIgY29kZSBmb3IgbGV4U3RyaW5nIGlzIG5v
dCBnb29kLgorICAgICAgICBBbHNvLCB3ZSBjb25zdHJ1Y3QgVG9rZW5UeXBlIHRhYmxlIHRvIHJl
bW92ZSBidW5jaCBvZiB1bm5lY2Vzc2FyeSBzd2l0Y2ggY2FzZXMuCisKKyAgICAgICAgKEpTQzo6
TGl0ZXJhbFBhcnNlcjxDaGFyVHlwZT46OkxleGVyOjpuZXh0KToKKyAgICAgICAgKEpTQzo6aXNT
YWZlU3RyaW5nQ2hhcmFjdGVyKToKKyAgICAgICAgVGFrZSBtb2RlIGluIGl0cyB0ZW1wbGF0ZSBw
YXJhbWV0ZXIuIEJ1dCBkbyBub3QgdGFrZSB0ZXJtaW5hdG9yIGNoYXJhY3RlciBpbiBpdHMgdGVt
cGxhdGUgcGFyYW1ldGVyLgorCisgICAgICAgIChKU0M6OkxpdGVyYWxQYXJzZXI8Q2hhclR5cGU+
OjpMZXhlcjo6bGV4U3RyaW5nKToKKyAgICAgICAgKEpTQzo6TGl0ZXJhbFBhcnNlcjxDaGFyVHlw
ZT46OkxleGVyOjpsZXhTdHJpbmdTbG93KToKKyAgICAgICAgRHVwbGljYXRlIHdoaWxlIHN0YXRl
bWVudHMgbWFudWFsbHkgc2luY2UgdGhpcyBpcyBhIGNyaXRpY2FsIHBhdGguCisKKyAgICAgICAg
KEpTQzo6TGl0ZXJhbFBhcnNlcjxDaGFyVHlwZT46OnBhcnNlKToKKyAgICAgICAgVXNlIHRha2VM
YXN0KCkuCisKKyAgICAgICAgKiBydW50aW1lL0xpdGVyYWxQYXJzZXIuaDoKKwogMjAxOC0wNS0x
MCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbSlND
XSBNYWtlIHJldHVybiB0eXBlcyBvZiBjb25zdHJ1Y3Rpb24gZnVuY3Rpb25zIHRpZ2h0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCmluZGV4IDdiOGU5N2U0YmVjZWYwYWM4MDY2
ZjUwNmEwODllYTBiNDNlY2I2OTMuLjI0MDA2NzljM2U5MGFlZTZiYTljNWFkNjUyZGExNTAyNWQw
MjY0OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCkBAIC05NCw3ICs5
NCw3IEBAIGVudW0gQ2hhcmFjdGVyVHlwZSB7CiB9OwogCiAvLyAyNTYgTGF0aW4tMSBjb2Rlcwot
c3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IHR5cGVzT2ZMYXRpbjFDaGFyYWN0ZXJzWzI1Nl0g
PSB7CitzdGF0aWMgY29uc3RleHByIGNvbnN0IHVuc2lnbmVkIHNob3J0IHR5cGVzT2ZMYXRpbjFD
aGFyYWN0ZXJzWzI1Nl0gPSB7CiAvKiAgIDAgLSBOdWxsICAgICAgICAgICAgICAgKi8gQ2hhcmFj
dGVySW52YWxpZCwKIC8qICAgMSAtIFN0YXJ0IG9mIEhlYWRpbmcgICAqLyBDaGFyYWN0ZXJJbnZh
bGlkLAogLyogICAyIC0gU3RhcnQgb2YgVGV4dCAgICAgICovIENoYXJhY3RlckludmFsaWQsCkBA
IC0zNTUsNyArMzU1LDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IHR5cGVzT2ZMYXRp
bjFDaGFyYWN0ZXJzWzI1Nl0gPSB7CiAKIC8vIFRoaXMgdGFibGUgcHJvdmlkZXMgdGhlIGNoYXJh
Y3RlciB0aGF0IHJlc3VsdHMgZnJvbSBcWCB3aGVyZSBYIGlzIHRoZSBpbmRleCBpbiB0aGUgdGFi
bGUgYmVnaW5uaW5nCiAvLyB3aXRoIFNQQUNFLiBBIHRhYmxlIHZhbHVlIG9mIDAgbWVhbnMgdGhh
dCBtb3JlIHByb2Nlc3NpbmcgbmVlZHMgdG8gYmUgZG9uZS4KLXN0YXRpYyBjb25zdCBMQ2hhciBz
aW5nbGVDaGFyYWN0ZXJFc2NhcGVWYWx1ZXNGb3JBU0NJSVsxMjhdID0geworc3RhdGljIGNvbnN0
ZXhwciBjb25zdCBMQ2hhciBzaW5nbGVDaGFyYWN0ZXJFc2NhcGVWYWx1ZXNGb3JBU0NJSVsxMjhd
ID0gewogLyogICAwIC0gTnVsbCAgICAgICAgICAgICAgICovIDAsCiAvKiAgIDEgLSBTdGFydCBv
ZiBIZWFkaW5nICAgKi8gMCwKIC8qICAgMiAtIFN0YXJ0IG9mIFRleHQgICAgICAqLyAwLApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJnTGlzdC5oCmluZGV4IDg2ZmRkYmNhZjQ3N2VlMTQ0
MWYzMTRmYTFiZTNkM2I3NzA1ODYzYTkuLmZmNGRhYTZkOTQxOGE0M2U5Mzg2ODE3MjNmMzk4MDUx
M2QzOTgxYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ0xp
c3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcmdMaXN0LmgKQEAgLTEx
MCw2ICsxMTAsMTMgQEAgY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXIgOiBwdWJsaWMgUmVjb3Jk
T3ZlcmZsb3cgewogICAgICAgICBBU1NFUlQobV9zaXplKTsKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmRlY29kZShzbG90Rm9yKG1fc2l6ZSAtIDEpKTsKICAgICB9CisKKyAgICBKU1ZhbHVlIHRh
a2VMYXN0KCkKKyAgICB7CisgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gbGFzdCgpOworICAgICAg
ICByZW1vdmVMYXN0KCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQogICAgICAgICAK
ICAgICBzdGF0aWMgdm9pZCBtYXJrTGlzdHMoU2xvdFZpc2l0b3ImLCBMaXN0U2V0Jik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJzZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAKaW5kZXgg
ZjAwZmUwNzMzNjg4ZTBmMjJiODBlNzQwODc0MzRjNmZkYTdiZTMzNi4uOTE4YzlmZDMwNjM4YTQw
ZWQ4NDRjNTA4ZmMxZTVkMjk5M2JlZjNhMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAKQEAgLTE3Miw4ICsxNzIsMjY4IEBAIEFMV0FZU19J
TkxJTkUgY29uc3QgSWRlbnRpZmllciBMaXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6bWFrZUlkZW50
aWZpZXIoY29uc3QgVUNoCiAgICAgcmV0dXJuIG1fcmVjZW50SWRlbnRpZmllcnNbY2hhcmFjdGVy
c1swXV07CiB9CiAKKy8vIDI1NiBMYXRpbi0xIGNvZGVzCitzdGF0aWMgY29uc3RleHByIGNvbnN0
IFRva2VuVHlwZSBUb2tlblR5cGVzT2ZMYXRpbjFDaGFyYWN0ZXJzWzI1Nl0gPSB7CisvKiAgIDAg
LSBOdWxsICAgICAgICAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAgIDEgLSBTdGFydCBvZiBIZWFk
aW5nICAgKi8gVG9rRXJyb3IsCisvKiAgIDIgLSBTdGFydCBvZiBUZXh0ICAgICAgKi8gVG9rRXJy
b3IsCisvKiAgIDMgLSBFbmQgb2YgVGV4dCAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAgIDQgLSBF
bmQgb2YgVHJhbnNtLiAgICAgKi8gVG9rRXJyb3IsCisvKiAgIDUgLSBFbnF1aXJ5ICAgICAgICAg
ICAgKi8gVG9rRXJyb3IsCisvKiAgIDYgLSBBY2tub3dsZWRnbWVudCAgICAgKi8gVG9rRXJyb3Is
CisvKiAgIDcgLSBCZWxsICAgICAgICAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAgIDggLSBCYWNr
IFNwYWNlICAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAgIDkgLSBIb3Jpem9udGFsIFRhYiAgICAg
Ki8gVG9rRXJyb3IsCisvKiAgMTAgLSBMaW5lIEZlZWQgICAgICAgICAgKi8gVG9rRXJyb3IsCisv
KiAgMTEgLSBWZXJ0aWNhbCBUYWIgICAgICAgKi8gVG9rRXJyb3IsCisvKiAgMTIgLSBGb3JtIEZl
ZWQgICAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAgMTMgLSBDYXJyaWFnZSBSZXR1cm4gICAgKi8g
VG9rRXJyb3IsCisvKiAgMTQgLSBTaGlmdCBPdXQgICAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAg
MTUgLSBTaGlmdCBJbiAgICAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAgMTYgLSBEYXRhIExpbmUg
RXNjYXBlICAgKi8gVG9rRXJyb3IsCisvKiAgMTcgLSBEZXZpY2UgQ29udHJvbCAxICAgKi8gVG9r
RXJyb3IsCisvKiAgMTggLSBEZXZpY2UgQ29udHJvbCAyICAgKi8gVG9rRXJyb3IsCisvKiAgMTkg
LSBEZXZpY2UgQ29udHJvbCAzICAgKi8gVG9rRXJyb3IsCisvKiAgMjAgLSBEZXZpY2UgQ29udHJv
bCA0ICAgKi8gVG9rRXJyb3IsCisvKiAgMjEgLSBOZWdhdGl2ZSBBY2suICAgICAgKi8gVG9rRXJy
b3IsCisvKiAgMjIgLSBTeW5jaHJvbm91cyBJZGxlICAgKi8gVG9rRXJyb3IsCisvKiAgMjMgLSBF
bmQgb2YgVHJhbnNtaXQgICAgKi8gVG9rRXJyb3IsCisvKiAgMjQgLSBDYW5jZWwgICAgICAgICAg
ICAgKi8gVG9rRXJyb3IsCisvKiAgMjUgLSBFbmQgb2YgTWVkaXVtICAgICAgKi8gVG9rRXJyb3Is
CisvKiAgMjYgLSBTdWJzdGl0dXRlICAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAgMjcgLSBFc2Nh
cGUgICAgICAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAgMjggLSBGaWxlIFNlcGFyYXRvciAgICAg
Ki8gVG9rRXJyb3IsCisvKiAgMjkgLSBHcm91cCBTZXBhcmF0b3IgICAgKi8gVG9rRXJyb3IsCisv
KiAgMzAgLSBSZWNvcmQgU2VwYXJhdG9yICAgKi8gVG9rRXJyb3IsCisvKiAgMzEgLSBVbml0IFNl
cGFyYXRvciAgICAgKi8gVG9rRXJyb3IsCisvKiAgMzIgLSBTcGFjZSAgICAgICAgICAgICAgKi8g
VG9rRXJyb3IsCisvKiAgMzMgLSAhICAgICAgICAgICAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAg
MzQgLSAiICAgICAgICAgICAgICAgICAgKi8gVG9rU3RyaW5nLAorLyogIDM1IC0gIyAgICAgICAg
ICAgICAgICAgICovIFRva0Vycm9yLAorLyogIDM2IC0gJCAgICAgICAgICAgICAgICAgICovIFRv
a0lkZW50aWZpZXIsCisvKiAgMzcgLSAlICAgICAgICAgICAgICAgICAgKi8gVG9rRXJyb3IsCisv
KiAgMzggLSAmICAgICAgICAgICAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAgMzkgLSAnICAgICAg
ICAgICAgICAgICAgKi8gVG9rU3RyaW5nLAorLyogIDQwIC0gKCAgICAgICAgICAgICAgICAgICov
IFRva0xQYXJlbiwKKy8qICA0MSAtICkgICAgICAgICAgICAgICAgICAqLyBUb2tSUGFyZW4sCisv
KiAgNDIgLSAqICAgICAgICAgICAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAgNDMgLSArICAgICAg
ICAgICAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAgNDQgLSAsICAgICAgICAgICAgICAgICAgKi8g
VG9rQ29tbWEsCisvKiAgNDUgLSAtICAgICAgICAgICAgICAgICAgKi8gVG9rTnVtYmVyLAorLyog
IDQ2IC0gLiAgICAgICAgICAgICAgICAgICovIFRva0RvdCwKKy8qICA0NyAtIC8gICAgICAgICAg
ICAgICAgICAqLyBUb2tFcnJvciwKKy8qICA0OCAtIDAgICAgICAgICAgICAgICAgICAqLyBUb2tO
dW1iZXIsCisvKiAgNDkgLSAxICAgICAgICAgICAgICAgICAgKi8gVG9rTnVtYmVyLAorLyogIDUw
IC0gMiAgICAgICAgICAgICAgICAgICovIFRva051bWJlciwKKy8qICA1MSAtIDMgICAgICAgICAg
ICAgICAgICAqLyBUb2tOdW1iZXIsCisvKiAgNTIgLSA0ICAgICAgICAgICAgICAgICAgKi8gVG9r
TnVtYmVyLAorLyogIDUzIC0gNSAgICAgICAgICAgICAgICAgICovIFRva051bWJlciwKKy8qICA1
NCAtIDYgICAgICAgICAgICAgICAgICAqLyBUb2tOdW1iZXIsCisvKiAgNTUgLSA3ICAgICAgICAg
ICAgICAgICAgKi8gVG9rTnVtYmVyLAorLyogIDU2IC0gOCAgICAgICAgICAgICAgICAgICovIFRv
a051bWJlciwKKy8qICA1NyAtIDkgICAgICAgICAgICAgICAgICAqLyBUb2tOdW1iZXIsCisvKiAg
NTggLSA6ICAgICAgICAgICAgICAgICAgKi8gVG9rQ29sb24sCisvKiAgNTkgLSA7ICAgICAgICAg
ICAgICAgICAgKi8gVG9rU2VtaSwKKy8qICA2MCAtIDwgICAgICAgICAgICAgICAgICAqLyBUb2tF
cnJvciwKKy8qICA2MSAtID0gICAgICAgICAgICAgICAgICAqLyBUb2tBc3NpZ24sCisvKiAgNjIg
LSA+ICAgICAgICAgICAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAgNjMgLSA/ICAgICAgICAgICAg
ICAgICAgKi8gVG9rRXJyb3IsCisvKiAgNjQgLSBAICAgICAgICAgICAgICAgICAgKi8gVG9rRXJy
b3IsCisvKiAgNjUgLSBBICAgICAgICAgICAgICAgICAgKi8gVG9rSWRlbnRpZmllciwKKy8qICA2
NiAtIEIgICAgICAgICAgICAgICAgICAqLyBUb2tJZGVudGlmaWVyLAorLyogIDY3IC0gQyAgICAg
ICAgICAgICAgICAgICovIFRva0lkZW50aWZpZXIsCisvKiAgNjggLSBEICAgICAgICAgICAgICAg
ICAgKi8gVG9rSWRlbnRpZmllciwKKy8qICA2OSAtIEUgICAgICAgICAgICAgICAgICAqLyBUb2tJ
ZGVudGlmaWVyLAorLyogIDcwIC0gRiAgICAgICAgICAgICAgICAgICovIFRva0lkZW50aWZpZXIs
CisvKiAgNzEgLSBHICAgICAgICAgICAgICAgICAgKi8gVG9rSWRlbnRpZmllciwKKy8qICA3MiAt
IEggICAgICAgICAgICAgICAgICAqLyBUb2tJZGVudGlmaWVyLAorLyogIDczIC0gSSAgICAgICAg
ICAgICAgICAgICovIFRva0lkZW50aWZpZXIsCisvKiAgNzQgLSBKICAgICAgICAgICAgICAgICAg
Ki8gVG9rSWRlbnRpZmllciwKKy8qICA3NSAtIEsgICAgICAgICAgICAgICAgICAqLyBUb2tJZGVu
dGlmaWVyLAorLyogIDc2IC0gTCAgICAgICAgICAgICAgICAgICovIFRva0lkZW50aWZpZXIsCisv
KiAgNzcgLSBNICAgICAgICAgICAgICAgICAgKi8gVG9rSWRlbnRpZmllciwKKy8qICA3OCAtIE4g
ICAgICAgICAgICAgICAgICAqLyBUb2tJZGVudGlmaWVyLAorLyogIDc5IC0gTyAgICAgICAgICAg
ICAgICAgICovIFRva0lkZW50aWZpZXIsCisvKiAgODAgLSBQICAgICAgICAgICAgICAgICAgKi8g
VG9rSWRlbnRpZmllciwKKy8qICA4MSAtIFEgICAgICAgICAgICAgICAgICAqLyBUb2tJZGVudGlm
aWVyLAorLyogIDgyIC0gUiAgICAgICAgICAgICAgICAgICovIFRva0lkZW50aWZpZXIsCisvKiAg
ODMgLSBTICAgICAgICAgICAgICAgICAgKi8gVG9rSWRlbnRpZmllciwKKy8qICA4NCAtIFQgICAg
ICAgICAgICAgICAgICAqLyBUb2tJZGVudGlmaWVyLAorLyogIDg1IC0gVSAgICAgICAgICAgICAg
ICAgICovIFRva0lkZW50aWZpZXIsCisvKiAgODYgLSBWICAgICAgICAgICAgICAgICAgKi8gVG9r
SWRlbnRpZmllciwKKy8qICA4NyAtIFcgICAgICAgICAgICAgICAgICAqLyBUb2tJZGVudGlmaWVy
LAorLyogIDg4IC0gWCAgICAgICAgICAgICAgICAgICovIFRva0lkZW50aWZpZXIsCisvKiAgODkg
LSBZICAgICAgICAgICAgICAgICAgKi8gVG9rSWRlbnRpZmllciwKKy8qICA5MCAtIFogICAgICAg
ICAgICAgICAgICAqLyBUb2tJZGVudGlmaWVyLAorLyogIDkxIC0gWyAgICAgICAgICAgICAgICAg
ICovIFRva0xCcmFja2V0LAorLyogIDkyIC0gXCAgICAgICAgICAgICAgICAgICovIFRva0Vycm9y
LAorLyogIDkzIC0gXSAgICAgICAgICAgICAgICAgICovIFRva1JCcmFja2V0LAorLyogIDk0IC0g
XiAgICAgICAgICAgICAgICAgICovIFRva0Vycm9yLAorLyogIDk1IC0gXyAgICAgICAgICAgICAg
ICAgICovIFRva0lkZW50aWZpZXIsCisvKiAgOTYgLSBgICAgICAgICAgICAgICAgICAgKi8gVG9r
RXJyb3IsCisvKiAgOTcgLSBhICAgICAgICAgICAgICAgICAgKi8gVG9rSWRlbnRpZmllciwKKy8q
ICA5OCAtIGIgICAgICAgICAgICAgICAgICAqLyBUb2tJZGVudGlmaWVyLAorLyogIDk5IC0gYyAg
ICAgICAgICAgICAgICAgICovIFRva0lkZW50aWZpZXIsCisvKiAxMDAgLSBkICAgICAgICAgICAg
ICAgICAgKi8gVG9rSWRlbnRpZmllciwKKy8qIDEwMSAtIGUgICAgICAgICAgICAgICAgICAqLyBU
b2tJZGVudGlmaWVyLAorLyogMTAyIC0gZiAgICAgICAgICAgICAgICAgICovIFRva0lkZW50aWZp
ZXIsCisvKiAxMDMgLSBnICAgICAgICAgICAgICAgICAgKi8gVG9rSWRlbnRpZmllciwKKy8qIDEw
NCAtIGggICAgICAgICAgICAgICAgICAqLyBUb2tJZGVudGlmaWVyLAorLyogMTA1IC0gaSAgICAg
ICAgICAgICAgICAgICovIFRva0lkZW50aWZpZXIsCisvKiAxMDYgLSBqICAgICAgICAgICAgICAg
ICAgKi8gVG9rSWRlbnRpZmllciwKKy8qIDEwNyAtIGsgICAgICAgICAgICAgICAgICAqLyBUb2tJ
ZGVudGlmaWVyLAorLyogMTA4IC0gbCAgICAgICAgICAgICAgICAgICovIFRva0lkZW50aWZpZXIs
CisvKiAxMDkgLSBtICAgICAgICAgICAgICAgICAgKi8gVG9rSWRlbnRpZmllciwKKy8qIDExMCAt
IG4gICAgICAgICAgICAgICAgICAqLyBUb2tJZGVudGlmaWVyLAorLyogMTExIC0gbyAgICAgICAg
ICAgICAgICAgICovIFRva0lkZW50aWZpZXIsCisvKiAxMTIgLSBwICAgICAgICAgICAgICAgICAg
Ki8gVG9rSWRlbnRpZmllciwKKy8qIDExMyAtIHEgICAgICAgICAgICAgICAgICAqLyBUb2tJZGVu
dGlmaWVyLAorLyogMTE0IC0gciAgICAgICAgICAgICAgICAgICovIFRva0lkZW50aWZpZXIsCisv
KiAxMTUgLSBzICAgICAgICAgICAgICAgICAgKi8gVG9rSWRlbnRpZmllciwKKy8qIDExNiAtIHQg
ICAgICAgICAgICAgICAgICAqLyBUb2tJZGVudGlmaWVyLAorLyogMTE3IC0gdSAgICAgICAgICAg
ICAgICAgICovIFRva0lkZW50aWZpZXIsCisvKiAxMTggLSB2ICAgICAgICAgICAgICAgICAgKi8g
VG9rSWRlbnRpZmllciwKKy8qIDExOSAtIHcgICAgICAgICAgICAgICAgICAqLyBUb2tJZGVudGlm
aWVyLAorLyogMTIwIC0geCAgICAgICAgICAgICAgICAgICovIFRva0lkZW50aWZpZXIsCisvKiAx
MjEgLSB5ICAgICAgICAgICAgICAgICAgKi8gVG9rSWRlbnRpZmllciwKKy8qIDEyMiAtIHogICAg
ICAgICAgICAgICAgICAqLyBUb2tJZGVudGlmaWVyLAorLyogMTIzIC0geyAgICAgICAgICAgICAg
ICAgICovIFRva0xCcmFjZSwKKy8qIDEyNCAtIHwgICAgICAgICAgICAgICAgICAqLyBUb2tFcnJv
ciwKKy8qIDEyNSAtIH0gICAgICAgICAgICAgICAgICAqLyBUb2tSQnJhY2UsCisvKiAxMjYgLSB+
ICAgICAgICAgICAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxMjcgLSBEZWxldGUgICAgICAgICAg
ICAgKi8gVG9rRXJyb3IsCisvKiAxMjggLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3Is
CisvKiAxMjkgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxMzAgLSBDYyBj
YXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxMzEgLSBDYyBjYXRlZ29yeSAgICAgICAg
Ki8gVG9rRXJyb3IsCisvKiAxMzIgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisv
KiAxMzMgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxMzQgLSBDYyBjYXRl
Z29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxMzUgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8g
VG9rRXJyb3IsCisvKiAxMzYgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAx
MzcgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxMzggLSBDYyBjYXRlZ29y
eSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxMzkgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9r
RXJyb3IsCisvKiAxNDAgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNDEg
LSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNDIgLSBDYyBjYXRlZ29yeSAg
ICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNDMgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJy
b3IsCisvKiAxNDQgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNDUgLSBD
YyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNDYgLSBDYyBjYXRlZ29yeSAgICAg
ICAgKi8gVG9rRXJyb3IsCisvKiAxNDcgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3Is
CisvKiAxNDggLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNDkgLSBDYyBj
YXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNTAgLSBDYyBjYXRlZ29yeSAgICAgICAg
Ki8gVG9rRXJyb3IsCisvKiAxNTEgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisv
KiAxNTIgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNTMgLSBDYyBjYXRl
Z29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNTQgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8g
VG9rRXJyb3IsCisvKiAxNTUgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAx
NTYgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNTcgLSBDYyBjYXRlZ29y
eSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNTggLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9r
RXJyb3IsCisvKiAxNTkgLSBDYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNjAg
LSBacyBjYXRlZ29yeSAobmJzcCkgKi8gVG9rRXJyb3IsCisvKiAxNjEgLSBQbyBjYXRlZ29yeSAg
ICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNjIgLSBTYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJy
b3IsCisvKiAxNjMgLSBTYyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNjQgLSBT
YyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNjUgLSBTYyBjYXRlZ29yeSAgICAg
ICAgKi8gVG9rRXJyb3IsCisvKiAxNjYgLSBTbyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3Is
CisvKiAxNjcgLSBTbyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNjggLSBTayBj
YXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNjkgLSBTbyBjYXRlZ29yeSAgICAgICAg
Ki8gVG9rRXJyb3IsCisvKiAxNzAgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisv
KiAxNzEgLSBQaSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNzIgLSBTbSBjYXRl
Z29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNzMgLSBDZiBjYXRlZ29yeSAgICAgICAgKi8g
VG9rRXJyb3IsCisvKiAxNzQgLSBTbyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAx
NzUgLSBTayBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNzYgLSBTbyBjYXRlZ29y
eSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNzcgLSBTbSBjYXRlZ29yeSAgICAgICAgKi8gVG9r
RXJyb3IsCisvKiAxNzggLSBObyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxNzkg
LSBObyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxODAgLSBTayBjYXRlZ29yeSAg
ICAgICAgKi8gVG9rRXJyb3IsCisvKiAxODEgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJy
b3IsCisvKiAxODIgLSBTbyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxODMgLSBQ
byBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxODQgLSBTayBjYXRlZ29yeSAgICAg
ICAgKi8gVG9rRXJyb3IsCisvKiAxODUgLSBObyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3Is
CisvKiAxODYgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxODcgLSBQZiBj
YXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxODggLSBObyBjYXRlZ29yeSAgICAgICAg
Ki8gVG9rRXJyb3IsCisvKiAxODkgLSBObyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisv
KiAxOTAgLSBObyBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxOTEgLSBQbyBjYXRl
Z29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxOTIgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8g
VG9rRXJyb3IsCisvKiAxOTMgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAx
OTQgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxOTUgLSBMdSBjYXRlZ29y
eSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxOTYgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9r
RXJyb3IsCisvKiAxOTcgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxOTgg
LSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAxOTkgLSBMdSBjYXRlZ29yeSAg
ICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMDAgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJy
b3IsCisvKiAyMDEgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMDIgLSBM
dSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMDMgLSBMdSBjYXRlZ29yeSAgICAg
ICAgKi8gVG9rRXJyb3IsCisvKiAyMDQgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3Is
CisvKiAyMDUgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMDYgLSBMdSBj
YXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMDcgLSBMdSBjYXRlZ29yeSAgICAgICAg
Ki8gVG9rRXJyb3IsCisvKiAyMDggLSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisv
KiAyMDkgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMTAgLSBMdSBjYXRl
Z29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMTEgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8g
VG9rRXJyb3IsCisvKiAyMTIgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAy
MTMgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMTQgLSBMdSBjYXRlZ29y
eSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMTUgLSBTbSBjYXRlZ29yeSAgICAgICAgKi8gVG9r
RXJyb3IsCisvKiAyMTYgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMTcg
LSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMTggLSBMdSBjYXRlZ29yeSAg
ICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMTkgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJy
b3IsCisvKiAyMjAgLSBMdSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMjEgLSBM
dSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMjIgLSBMdSBjYXRlZ29yeSAgICAg
ICAgKi8gVG9rRXJyb3IsCisvKiAyMjMgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3Is
CisvKiAyMjQgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMjUgLSBMbCBj
YXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMjYgLSBMbCBjYXRlZ29yeSAgICAgICAg
Ki8gVG9rRXJyb3IsCisvKiAyMjcgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisv
KiAyMjggLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMjkgLSBMbCBjYXRl
Z29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMzAgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8g
VG9rRXJyb3IsCisvKiAyMzEgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAy
MzIgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMzMgLSBMbCBjYXRlZ29y
eSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMzQgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9r
RXJyb3IsCisvKiAyMzUgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMzYg
LSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMzcgLSBMbCBjYXRlZ29yeSAg
ICAgICAgKi8gVG9rRXJyb3IsCisvKiAyMzggLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJy
b3IsCisvKiAyMzkgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyNDAgLSBM
bCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyNDEgLSBMbCBjYXRlZ29yeSAgICAg
ICAgKi8gVG9rRXJyb3IsCisvKiAyNDIgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3Is
CisvKiAyNDMgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyNDQgLSBMbCBj
YXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyNDUgLSBMbCBjYXRlZ29yeSAgICAgICAg
Ki8gVG9rRXJyb3IsCisvKiAyNDYgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisv
KiAyNDcgLSBTbSBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyNDggLSBMbCBjYXRl
Z29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyNDkgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8g
VG9rRXJyb3IsCisvKiAyNTAgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAy
NTEgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyNTIgLSBMbCBjYXRlZ29y
eSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyNTMgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9r
RXJyb3IsCisvKiAyNTQgLSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IsCisvKiAyNTUg
LSBMbCBjYXRlZ29yeSAgICAgICAgKi8gVG9rRXJyb3IKK307CisKIHRlbXBsYXRlIDx0eXBlbmFt
ZSBDaGFyVHlwZT4KLXRlbXBsYXRlIDxQYXJzZXJNb2RlIG1vZGU+IFRva2VuVHlwZSBMaXRlcmFs
UGFyc2VyPENoYXJUeXBlPjo6TGV4ZXI6OmxleChMaXRlcmFsUGFyc2VyVG9rZW48Q2hhclR5cGU+
JiB0b2tlbikKK0FMV0FZU19JTkxJTkUgVG9rZW5UeXBlIExpdGVyYWxQYXJzZXI8Q2hhclR5cGU+
OjpMZXhlcjo6bGV4KExpdGVyYWxQYXJzZXJUb2tlbjxDaGFyVHlwZT4mIHRva2VuKQogewogI2lm
ICFBU1NFUlRfRElTQUJMRUQKICAgICBtX2N1cnJlbnRUb2tlbklEKys7CkBAIC0xODMsMTA5ICs0
NDMsNjUgQEAgdGVtcGxhdGUgPFBhcnNlck1vZGUgbW9kZT4gVG9rZW5UeXBlIExpdGVyYWxQYXJz
ZXI8Q2hhclR5cGU+OjpMZXhlcjo6bGV4KExpdGVyYWwKICAgICAgICAgKyttX3B0cjsKIAogICAg
IEFTU0VSVChtX3B0ciA8PSBtX2VuZCk7Ci0gICAgaWYgKG1fcHRyID49IG1fZW5kKSB7CisgICAg
aWYgKG1fcHRyID09IG1fZW5kKSB7CiAgICAgICAgIHRva2VuLnR5cGUgPSBUb2tFbmQ7CiAgICAg
ICAgIHRva2VuLnN0YXJ0ID0gdG9rZW4uZW5kID0gbV9wdHI7CiAgICAgICAgIHJldHVybiBUb2tF
bmQ7CiAgICAgfQorICAgIEFTU0VSVChtX3B0ciA8IG1fZW5kKTsKICAgICB0b2tlbi50eXBlID0g
VG9rRXJyb3I7CiAgICAgdG9rZW4uc3RhcnQgPSBtX3B0cjsKLSAgICBzd2l0Y2ggKCptX3B0cikg
ewotICAgICAgICBjYXNlICdbJzoKLSAgICAgICAgICAgIHRva2VuLnR5cGUgPSBUb2tMQnJhY2tl
dDsKLSAgICAgICAgICAgIHRva2VuLmVuZCA9ICsrbV9wdHI7Ci0gICAgICAgICAgICByZXR1cm4g
VG9rTEJyYWNrZXQ7Ci0gICAgICAgIGNhc2UgJ10nOgotICAgICAgICAgICAgdG9rZW4udHlwZSA9
IFRva1JCcmFja2V0OwotICAgICAgICAgICAgdG9rZW4uZW5kID0gKyttX3B0cjsKLSAgICAgICAg
ICAgIHJldHVybiBUb2tSQnJhY2tldDsKLSAgICAgICAgY2FzZSAnKCc6Ci0gICAgICAgICAgICB0
b2tlbi50eXBlID0gVG9rTFBhcmVuOwotICAgICAgICAgICAgdG9rZW4uZW5kID0gKyttX3B0cjsK
LSAgICAgICAgICAgIHJldHVybiBUb2tMUGFyZW47Ci0gICAgICAgIGNhc2UgJyknOgotICAgICAg
ICAgICAgdG9rZW4udHlwZSA9IFRva1JQYXJlbjsKLSAgICAgICAgICAgIHRva2VuLmVuZCA9ICsr
bV9wdHI7Ci0gICAgICAgICAgICByZXR1cm4gVG9rUlBhcmVuOwotICAgICAgICBjYXNlICd7JzoK
LSAgICAgICAgICAgIHRva2VuLnR5cGUgPSBUb2tMQnJhY2U7Ci0gICAgICAgICAgICB0b2tlbi5l
bmQgPSArK21fcHRyOwotICAgICAgICAgICAgcmV0dXJuIFRva0xCcmFjZTsKLSAgICAgICAgY2Fz
ZSAnfSc6Ci0gICAgICAgICAgICB0b2tlbi50eXBlID0gVG9rUkJyYWNlOwotICAgICAgICAgICAg
dG9rZW4uZW5kID0gKyttX3B0cjsKLSAgICAgICAgICAgIHJldHVybiBUb2tSQnJhY2U7Ci0gICAg
ICAgIGNhc2UgJywnOgotICAgICAgICAgICAgdG9rZW4udHlwZSA9IFRva0NvbW1hOwotICAgICAg
ICAgICAgdG9rZW4uZW5kID0gKyttX3B0cjsKLSAgICAgICAgICAgIHJldHVybiBUb2tDb21tYTsK
LSAgICAgICAgY2FzZSAnOic6Ci0gICAgICAgICAgICB0b2tlbi50eXBlID0gVG9rQ29sb247Ci0g
ICAgICAgICAgICB0b2tlbi5lbmQgPSArK21fcHRyOwotICAgICAgICAgICAgcmV0dXJuIFRva0Nv
bG9uOwotICAgICAgICBjYXNlICciJzoKLSAgICAgICAgICAgIHJldHVybiBsZXhTdHJpbmc8bW9k
ZSwgJyInPih0b2tlbik7Ci0gICAgICAgIGNhc2UgJ3QnOgotICAgICAgICAgICAgaWYgKG1fZW5k
IC0gbV9wdHIgPj0gNCAmJiBtX3B0clsxXSA9PSAncicgJiYgbV9wdHJbMl0gPT0gJ3UnICYmIG1f
cHRyWzNdID09ICdlJykgewotICAgICAgICAgICAgICAgIG1fcHRyICs9IDQ7Ci0gICAgICAgICAg
ICAgICAgdG9rZW4udHlwZSA9IFRva1RydWU7Ci0gICAgICAgICAgICAgICAgdG9rZW4uZW5kID0g
bV9wdHI7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRva1RydWU7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAnZic6Ci0gICAgICAgICAgICBpZiAobV9l
bmQgLSBtX3B0ciA+PSA1ICYmIG1fcHRyWzFdID09ICdhJyAmJiBtX3B0clsyXSA9PSAnbCcgJiYg
bV9wdHJbM10gPT0gJ3MnICYmIG1fcHRyWzRdID09ICdlJykgewotICAgICAgICAgICAgICAgIG1f
cHRyICs9IDU7Ci0gICAgICAgICAgICAgICAgdG9rZW4udHlwZSA9IFRva0ZhbHNlOwotICAgICAg
ICAgICAgICAgIHRva2VuLmVuZCA9IG1fcHRyOwotICAgICAgICAgICAgICAgIHJldHVybiBUb2tG
YWxzZTsKKyAgICBDaGFyVHlwZSBjaGFyYWN0ZXIgPSAqbV9wdHI7CisgICAgaWYgKExJS0VMWShj
aGFyYWN0ZXIgPCAyNTYpKSB7CisgICAgICAgIFRva2VuVHlwZSB0b2tlblR5cGUgPSBUb2tlblR5
cGVzT2ZMYXRpbjFDaGFyYWN0ZXJzW2NoYXJhY3Rlcl07CisgICAgICAgIHN3aXRjaCAodG9rZW5U
eXBlKSB7CisgICAgICAgIGNhc2UgVG9rU3RyaW5nOgorICAgICAgICAgICAgaWYgKGNoYXJhY3Rl
ciA9PSAnXCcnICYmIG1fbW9kZSA9PSBTdHJpY3RKU09OKSB7CisgICAgICAgICAgICAgICAgbV9s
ZXhFcnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlNpbmdsZSBxdW90ZXMgKFwnKSBhcmUgbm90
IGFsbG93ZWQgaW4gSlNPTiIpOworICAgICAgICAgICAgICAgIHJldHVybiBUb2tFcnJvcjsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICduJzoKLSAgICAg
ICAgICAgIGlmIChtX2VuZCAtIG1fcHRyID49IDQgJiYgbV9wdHJbMV0gPT0gJ3UnICYmIG1fcHRy
WzJdID09ICdsJyAmJiBtX3B0clszXSA9PSAnbCcpIHsKLSAgICAgICAgICAgICAgICBtX3B0ciAr
PSA0OwotICAgICAgICAgICAgICAgIHRva2VuLnR5cGUgPSBUb2tOdWxsOwotICAgICAgICAgICAg
ICAgIHRva2VuLmVuZCA9IG1fcHRyOwotICAgICAgICAgICAgICAgIHJldHVybiBUb2tOdWxsOwor
ICAgICAgICAgICAgcmV0dXJuIGxleFN0cmluZyh0b2tlbiwgY2hhcmFjdGVyKTsKKworICAgICAg
ICBjYXNlIFRva0lkZW50aWZpZXI6IHsKKyAgICAgICAgICAgIHN3aXRjaCAoY2hhcmFjdGVyKSB7
CisgICAgICAgICAgICBjYXNlICd0JzoKKyAgICAgICAgICAgICAgICBpZiAobV9lbmQgLSBtX3B0
ciA+PSA0ICYmIG1fcHRyWzFdID09ICdyJyAmJiBtX3B0clsyXSA9PSAndScgJiYgbV9wdHJbM10g
PT0gJ2UnKSB7CisgICAgICAgICAgICAgICAgICAgIG1fcHRyICs9IDQ7CisgICAgICAgICAgICAg
ICAgICAgIHRva2VuLnR5cGUgPSBUb2tUcnVlOworICAgICAgICAgICAgICAgICAgICB0b2tlbi5l
bmQgPSBtX3B0cjsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRva1RydWU7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnZic6
CisgICAgICAgICAgICAgICAgaWYgKG1fZW5kIC0gbV9wdHIgPj0gNSAmJiBtX3B0clsxXSA9PSAn
YScgJiYgbV9wdHJbMl0gPT0gJ2wnICYmIG1fcHRyWzNdID09ICdzJyAmJiBtX3B0cls0XSA9PSAn
ZScpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9wdHIgKz0gNTsKKyAgICAgICAgICAgICAgICAg
ICAgdG9rZW4udHlwZSA9IFRva0ZhbHNlOworICAgICAgICAgICAgICAgICAgICB0b2tlbi5lbmQg
PSBtX3B0cjsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRva0ZhbHNlOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ24nOgor
ICAgICAgICAgICAgICAgIGlmIChtX2VuZCAtIG1fcHRyID49IDQgJiYgbV9wdHJbMV0gPT0gJ3Un
ICYmIG1fcHRyWzJdID09ICdsJyAmJiBtX3B0clszXSA9PSAnbCcpIHsKKyAgICAgICAgICAgICAg
ICAgICAgbV9wdHIgKz0gNDsKKyAgICAgICAgICAgICAgICAgICAgdG9rZW4udHlwZSA9IFRva051
bGw7CisgICAgICAgICAgICAgICAgICAgIHRva2VuLmVuZCA9IG1fcHRyOworICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gVG9rTnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSAnLSc6Ci0gICAgICAgIGNhc2UgJzAnOgotICAgICAgICBjYXNlICcxJzoKLSAgICAgICAgY2Fz
ZSAnMic6Ci0gICAgICAgIGNhc2UgJzMnOgotICAgICAgICBjYXNlICc0JzoKLSAgICAgICAgY2Fz
ZSAnNSc6Ci0gICAgICAgIGNhc2UgJzYnOgotICAgICAgICBjYXNlICc3JzoKLSAgICAgICAgY2Fz
ZSAnOCc6Ci0gICAgICAgIGNhc2UgJzknOgotICAgICAgICAgICAgcmV0dXJuIGxleE51bWJlcih0
b2tlbik7Ci0gICAgfQotICAgIGlmIChtX3B0ciA8IG1fZW5kKSB7Ci0gICAgICAgIGlmICgqbV9w
dHIgPT0gJy4nKSB7Ci0gICAgICAgICAgICB0b2tlbi50eXBlID0gVG9rRG90OwotICAgICAgICAg
ICAgdG9rZW4uZW5kID0gKyttX3B0cjsKLSAgICAgICAgICAgIHJldHVybiBUb2tEb3Q7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKCptX3B0ciA9PSAnPScpIHsKLSAgICAgICAgICAgIHRva2VuLnR5
cGUgPSBUb2tBc3NpZ247Ci0gICAgICAgICAgICB0b2tlbi5lbmQgPSArK21fcHRyOwotICAgICAg
ICAgICAgcmV0dXJuIFRva0Fzc2lnbjsKKyAgICAgICAgICAgIHJldHVybiBsZXhJZGVudGlmaWVy
KHRva2VuKTsKICAgICAgICAgfQotICAgICAgICBpZiAoKm1fcHRyID09ICc7JykgewotICAgICAg
ICAgICAgdG9rZW4udHlwZSA9IFRva1NlbWk7CisKKyAgICAgICAgY2FzZSBUb2tOdW1iZXI6Cisg
ICAgICAgICAgICByZXR1cm4gbGV4TnVtYmVyKHRva2VuKTsKKworICAgICAgICBjYXNlIFRva0Vy
cm9yOgorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHRva2VuLnR5cGUgPSB0b2tlblR5cGU7CiAgICAgICAgICAgICB0b2tlbi5lbmQgPSArK21fcHRy
OwotICAgICAgICAgICAgcmV0dXJuIFRva1NlbWk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGlz
QVNDSUlBbHBoYSgqbV9wdHIpIHx8ICptX3B0ciA9PSAnXycgfHwgKm1fcHRyID09ICckJykKLSAg
ICAgICAgICAgIHJldHVybiBsZXhJZGVudGlmaWVyKHRva2VuKTsKLSAgICAgICAgaWYgKCptX3B0
ciA9PSAnXCcnKSB7Ci0gICAgICAgICAgICBpZiAobW9kZSA9PSBTdHJpY3RKU09OKSB7Ci0gICAg
ICAgICAgICAgICAgbV9sZXhFcnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlNpbmdsZSBxdW90
ZXMgKFwnKSBhcmUgbm90IGFsbG93ZWQgaW4gSlNPTiIpOwotICAgICAgICAgICAgICAgIHJldHVy
biBUb2tFcnJvcjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBsZXhTdHJpbmc8
bW9kZSwgJ1wnJz4odG9rZW4pOworICAgICAgICAgICAgcmV0dXJuIHRva2VuVHlwZTsKICAgICAg
ICAgfQogICAgIH0KICAgICBtX2xleEVycm9yTWVzc2FnZSA9IFN0cmluZzo6Zm9ybWF0KCJVbnJl
Y29nbml6ZWQgdG9rZW4gJyVjJyIsICptX3B0cik7CkBAIC0zMjEsMTMgKzUzNyw3IEBAIEFMV0FZ
U19JTkxJTkUgVG9rZW5UeXBlIExpdGVyYWxQYXJzZXI8VUNoYXI+OjpMZXhlcjo6bGV4SWRlbnRp
ZmllcihMaXRlcmFsUGFyc2VyCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+CiBUb2tlblR5
cGUgTGl0ZXJhbFBhcnNlcjxDaGFyVHlwZT46OkxleGVyOjpuZXh0KCkKIHsKLSAgICBUb2tlblR5
cGUgcmVzdWx0OwotICAgIGlmIChtX21vZGUgPT0gTm9uU3RyaWN0SlNPTikKLSAgICAgICAgcmVz
dWx0ID0gbGV4PE5vblN0cmljdEpTT04+KG1fY3VycmVudFRva2VuKTsKLSAgICBlbHNlIGlmICht
X21vZGUgPT0gSlNPTlApCi0gICAgICAgIHJlc3VsdCA9IGxleDxKU09OUD4obV9jdXJyZW50VG9r
ZW4pOwotICAgIGVsc2UKLSAgICAgICAgcmVzdWx0ID0gbGV4PFN0cmljdEpTT04+KG1fY3VycmVu
dFRva2VuKTsKKyAgICBUb2tlblR5cGUgcmVzdWx0ID0gbGV4KG1fY3VycmVudFRva2VuKTsKICAg
ICBBU1NFUlQobV9jdXJyZW50VG9rZW4udHlwZSA9PSByZXN1bHQpOwogICAgIHJldHVybiByZXN1
bHQ7CiB9CkBAIC0zNDYsMjMgKzU1NiwzNCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0UGFyc2Vy
VG9rZW5TdHJpbmc8VUNoYXI+KExpdGVyYWxQYXJzZXJUb2tlbjxVQ2hhcj4mIHRva2VuLAogICAg
IHRva2VuLnN0cmluZ1Rva2VuMTYgPSBzdHJpbmc7CiB9CiAKLXRlbXBsYXRlIDxQYXJzZXJNb2Rl
IG1vZGUsIHR5cGVuYW1lIENoYXJUeXBlLCBMQ2hhciB0ZXJtaW5hdG9yPiBzdGF0aWMgQUxXQVlT
X0lOTElORSBib29sIGlzU2FmZVN0cmluZ0NoYXJhY3RlcihMQ2hhciBjKQorZW51bSBjbGFzcyBT
YWZlU3RyaW5nQ2hhcmFjdGVyU2V0IHsgU3RyaWN0LCBOb25TdHJpY3QgfTsKKwordGVtcGxhdGUg
PFNhZmVTdHJpbmdDaGFyYWN0ZXJTZXQgc2V0Pgorc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBp
c1NhZmVTdHJpbmdDaGFyYWN0ZXIoTENoYXIgYywgTENoYXIgdGVybWluYXRvcikKIHsKLSAgICBy
ZXR1cm4gKGMgPj0gJyAnICYmIGMgIT0gJ1xcJyAmJiBjICE9IHRlcm1pbmF0b3IpIHx8IChjID09
ICdcdCcgJiYgbW9kZSAhPSBTdHJpY3RKU09OKTsKKyAgICByZXR1cm4gKGMgPj0gJyAnICYmIGMg
IT0gJ1xcJyAmJiBjICE9IHRlcm1pbmF0b3IpIHx8IChjID09ICdcdCcgJiYgc2V0ICE9IFNhZmVT
dHJpbmdDaGFyYWN0ZXJTZXQ6OlN0cmljdCk7CiB9CiAKLXRlbXBsYXRlIDxQYXJzZXJNb2RlIG1v
ZGUsIHR5cGVuYW1lIENoYXJUeXBlLCBVQ2hhciB0ZXJtaW5hdG9yPiBzdGF0aWMgQUxXQVlTX0lO
TElORSBib29sIGlzU2FmZVN0cmluZ0NoYXJhY3RlcihVQ2hhciBjKQordGVtcGxhdGUgPFNhZmVT
dHJpbmdDaGFyYWN0ZXJTZXQgc2V0Pgorc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBpc1NhZmVT
dHJpbmdDaGFyYWN0ZXIoVUNoYXIgYywgVUNoYXIgdGVybWluYXRvcikKIHsKLSAgICByZXR1cm4g
KGMgPj0gJyAnICYmIChtb2RlID09IFN0cmljdEpTT04gfHwgYyA8PSAweGZmKSAmJiBjICE9ICdc
XCcgJiYgYyAhPSB0ZXJtaW5hdG9yKSB8fCAoYyA9PSAnXHQnICYmIG1vZGUgIT0gU3RyaWN0SlNP
Tik7CisgICAgcmV0dXJuIChjID49ICcgJyAmJiAoc2V0ID09IFNhZmVTdHJpbmdDaGFyYWN0ZXJT
ZXQ6OlN0cmljdCB8fCBjIDw9IDB4ZmYpICYmIGMgIT0gJ1xcJyAmJiBjICE9IHRlcm1pbmF0b3Ip
IHx8IChjID09ICdcdCcgJiYgc2V0ICE9IFNhZmVTdHJpbmdDaGFyYWN0ZXJTZXQ6OlN0cmljdCk7
CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KLXRlbXBsYXRlIDxQYXJzZXJNb2Rl
IG1vZGUsIGNoYXIgdGVybWluYXRvcj4gQUxXQVlTX0lOTElORSBUb2tlblR5cGUgTGl0ZXJhbFBh
cnNlcjxDaGFyVHlwZT46OkxleGVyOjpsZXhTdHJpbmcoTGl0ZXJhbFBhcnNlclRva2VuPENoYXJU
eXBlPiYgdG9rZW4pCitBTFdBWVNfSU5MSU5FIFRva2VuVHlwZSBMaXRlcmFsUGFyc2VyPENoYXJU
eXBlPjo6TGV4ZXI6OmxleFN0cmluZyhMaXRlcmFsUGFyc2VyVG9rZW48Q2hhclR5cGU+JiB0b2tl
biwgQ2hhclR5cGUgdGVybWluYXRvcikKIHsKICAgICArK21fcHRyOwogICAgIGNvbnN0IENoYXJU
eXBlKiBydW5TdGFydCA9IG1fcHRyOwotICAgIHdoaWxlIChtX3B0ciA8IG1fZW5kICYmIGlzU2Fm
ZVN0cmluZ0NoYXJhY3Rlcjxtb2RlLCBDaGFyVHlwZSwgdGVybWluYXRvcj4oKm1fcHRyKSkKLSAg
ICAgICAgKyttX3B0cjsKKworICAgIGlmIChtX21vZGUgPT0gU3RyaWN0SlNPTikgeworICAgICAg
ICB3aGlsZSAobV9wdHIgPCBtX2VuZCAmJiBpc1NhZmVTdHJpbmdDaGFyYWN0ZXI8U2FmZVN0cmlu
Z0NoYXJhY3RlclNldDo6U3RyaWN0PigqbV9wdHIsIHRlcm1pbmF0b3IpKQorICAgICAgICAgICAg
KyttX3B0cjsKKyAgICB9IGVsc2UgeworICAgICAgICB3aGlsZSAobV9wdHIgPCBtX2VuZCAmJiBp
c1NhZmVTdHJpbmdDaGFyYWN0ZXI8U2FmZVN0cmluZ0NoYXJhY3RlclNldDo6Tm9uU3RyaWN0Pigq
bV9wdHIsIHRlcm1pbmF0b3IpKQorICAgICAgICAgICAgKyttX3B0cjsKKyAgICB9CisKICAgICBp
ZiAoTElLRUxZKG1fcHRyIDwgbV9lbmQgJiYgKm1fcHRyID09IHRlcm1pbmF0b3IpKSB7CiAgICAg
ICAgIHNldFBhcnNlclRva2VuU3RyaW5nPENoYXJUeXBlPih0b2tlbiwgcnVuU3RhcnQpOwogICAg
ICAgICB0b2tlbi5zdHJpbmdMZW5ndGggPSBtX3B0ciAtIHJ1blN0YXJ0OwpAQCAtMzcwLDIzICs1
OTEsMjkgQEAgdGVtcGxhdGUgPFBhcnNlck1vZGUgbW9kZSwgY2hhciB0ZXJtaW5hdG9yPiBBTFdB
WVNfSU5MSU5FIFRva2VuVHlwZSBMaXRlcmFsUGFyc2UKICAgICAgICAgdG9rZW4uZW5kID0gKytt
X3B0cjsKICAgICAgICAgcmV0dXJuIFRva1N0cmluZzsKICAgICB9Ci0gICAgcmV0dXJuIGxleFN0
cmluZ1Nsb3c8bW9kZSwgdGVybWluYXRvcj4odG9rZW4sIHJ1blN0YXJ0KTsKKyAgICByZXR1cm4g
bGV4U3RyaW5nU2xvdyh0b2tlbiwgcnVuU3RhcnQsIHRlcm1pbmF0b3IpOwogfQogCiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgQ2hhclR5cGU+Ci10ZW1wbGF0ZSA8UGFyc2VyTW9kZSBtb2RlLCBjaGFyIHRl
cm1pbmF0b3I+IFRva2VuVHlwZSBMaXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6TGV4ZXI6OmxleFN0
cmluZ1Nsb3coTGl0ZXJhbFBhcnNlclRva2VuPENoYXJUeXBlPiYgdG9rZW4sIGNvbnN0IENoYXJU
eXBlKiBydW5TdGFydCkKK1Rva2VuVHlwZSBMaXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6TGV4ZXI6
OmxleFN0cmluZ1Nsb3coTGl0ZXJhbFBhcnNlclRva2VuPENoYXJUeXBlPiYgdG9rZW4sIGNvbnN0
IENoYXJUeXBlKiBydW5TdGFydCwgQ2hhclR5cGUgdGVybWluYXRvcikKIHsKICAgICBtX2J1aWxk
ZXIuY2xlYXIoKTsKICAgICBnb3RvIHNsb3dQYXRoQmVnaW47CiAgICAgZG8gewogICAgICAgICBy
dW5TdGFydCA9IG1fcHRyOwotICAgICAgICB3aGlsZSAobV9wdHIgPCBtX2VuZCAmJiBpc1NhZmVT
dHJpbmdDaGFyYWN0ZXI8bW9kZSwgQ2hhclR5cGUsIHRlcm1pbmF0b3I+KCptX3B0cikpCi0gICAg
ICAgICAgICArK21fcHRyOworICAgICAgICBpZiAobV9tb2RlID09IFN0cmljdEpTT04pIHsKKyAg
ICAgICAgICAgIHdoaWxlIChtX3B0ciA8IG1fZW5kICYmIGlzU2FmZVN0cmluZ0NoYXJhY3RlcjxT
YWZlU3RyaW5nQ2hhcmFjdGVyU2V0OjpTdHJpY3Q+KCptX3B0ciwgdGVybWluYXRvcikpCisgICAg
ICAgICAgICAgICAgKyttX3B0cjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHdoaWxl
IChtX3B0ciA8IG1fZW5kICYmIGlzU2FmZVN0cmluZ0NoYXJhY3RlcjxTYWZlU3RyaW5nQ2hhcmFj
dGVyU2V0OjpOb25TdHJpY3Q+KCptX3B0ciwgdGVybWluYXRvcikpCisgICAgICAgICAgICAgICAg
KyttX3B0cjsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICghbV9idWlsZGVyLmlzRW1wdHkoKSkK
ICAgICAgICAgICAgIG1fYnVpbGRlci5hcHBlbmQocnVuU3RhcnQsIG1fcHRyIC0gcnVuU3RhcnQp
OwogCiBzbG93UGF0aEJlZ2luOgotICAgICAgICBpZiAoKG1vZGUgIT0gTm9uU3RyaWN0SlNPTikg
JiYgbV9wdHIgPCBtX2VuZCAmJiAqbV9wdHIgPT0gJ1xcJykgeworICAgICAgICBpZiAoKG1fbW9k
ZSAhPSBOb25TdHJpY3RKU09OKSAmJiBtX3B0ciA8IG1fZW5kICYmICptX3B0ciA9PSAnXFwnKSB7
CiAgICAgICAgICAgICBpZiAobV9idWlsZGVyLmlzRW1wdHkoKSAmJiBydW5TdGFydCA8IG1fcHRy
KQogICAgICAgICAgICAgICAgIG1fYnVpbGRlci5hcHBlbmQocnVuU3RhcnQsIG1fcHRyIC0gcnVu
U3RhcnQpOwogICAgICAgICAgICAgKyttX3B0cjsKQEAgLTQ0NCw3ICs2NzEsNyBAQCB0ZW1wbGF0
ZSA8UGFyc2VyTW9kZSBtb2RlLCBjaGFyIHRlcm1pbmF0b3I+IFRva2VuVHlwZSBMaXRlcmFsUGFy
c2VyPENoYXJUeXBlPjo6TAogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIGlmICgqbV9wdHIgPT0gJ1wnJyAm
JiBtb2RlICE9IFN0cmljdEpTT04pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCptX3B0ciA9
PSAnXCcnICYmIG1fbW9kZSAhPSBTdHJpY3RKU09OKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBtX2J1aWxkZXIuYXBwZW5kKCdcJycpOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9wdHIr
KzsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDUzLDcgKzY4MCw3IEBAIHRl
bXBsYXRlIDxQYXJzZXJNb2RlIG1vZGUsIGNoYXIgdGVybWluYXRvcj4gVG9rZW5UeXBlIExpdGVy
YWxQYXJzZXI8Q2hhclR5cGU+OjpMCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUb2tFcnJv
cjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgIH0gd2hpbGUgKChtb2RlICE9IE5vblN0
cmljdEpTT04pICYmIG1fcHRyICE9IHJ1blN0YXJ0ICYmIChtX3B0ciA8IG1fZW5kKSAmJiAqbV9w
dHIgIT0gdGVybWluYXRvcik7CisgICAgfSB3aGlsZSAoKG1fbW9kZSAhPSBOb25TdHJpY3RKU09O
KSAmJiBtX3B0ciAhPSBydW5TdGFydCAmJiAobV9wdHIgPCBtX2VuZCkgJiYgKm1fcHRyICE9IHRl
cm1pbmF0b3IpOwogCiAgICAgaWYgKG1fcHRyID49IG1fZW5kIHx8ICptX3B0ciAhPSB0ZXJtaW5h
dG9yKSB7CiAgICAgICAgIG1fbGV4RXJyb3JNZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJVbnRlcm1p
bmF0ZWQgc3RyaW5nIik7CkBAIC02MDUsOCArODMyLDcgQEAgSlNWYWx1ZSBMaXRlcmFsUGFyc2Vy
PENoYXJUeXBlPjo6cGFyc2UoUGFyc2VyU3RhdGUgaW5pdGlhbFN0YXRlKQogICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICBtX2xleGVyLm5leHQoKTsKLSAgICAgICAgICAgICAgICAgICAgbGFz
dFZhbHVlID0gb2JqZWN0U3RhY2subGFzdCgpOwotICAgICAgICAgICAgICAgICAgICBvYmplY3RT
dGFjay5yZW1vdmVMYXN0KCk7CisgICAgICAgICAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG9iamVj
dFN0YWNrLnRha2VMYXN0KCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIH0KIApAQCAtNjI3LDggKzg1Myw3IEBAIEpTVmFsdWUgTGl0ZXJhbFBhcnNlcjxDaGFy
VHlwZT46OnBhcnNlKFBhcnNlclN0YXRlIGluaXRpYWxTdGF0ZSkKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgbV9sZXhlci5uZXh0KCk7Ci0gICAg
ICAgICAgICAgICAgbGFzdFZhbHVlID0gb2JqZWN0U3RhY2subGFzdCgpOwotICAgICAgICAgICAg
ICAgIG9iamVjdFN0YWNrLnJlbW92ZUxhc3QoKTsKKyAgICAgICAgICAgICAgICBsYXN0VmFsdWUg
PSBvYmplY3RTdGFjay50YWtlTGFzdCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgc3RhcnRQYXJzZU9iamVjdDoKQEAgLTY1OSw4ICs4ODQsNyBA
QCBKU1ZhbHVlIExpdGVyYWxQYXJzZXI8Q2hhclR5cGU+OjpwYXJzZShQYXJzZXJTdGF0ZSBpbml0
aWFsU3RhdGUpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIG1fbGV4ZXIubmV4dCgpOwotICAgICAgICAgICAg
ICAgIGxhc3RWYWx1ZSA9IG9iamVjdFN0YWNrLmxhc3QoKTsKLSAgICAgICAgICAgICAgICBvYmpl
Y3RTdGFjay5yZW1vdmVMYXN0KCk7CisgICAgICAgICAgICAgICAgbGFzdFZhbHVlID0gb2JqZWN0
U3RhY2sudGFrZUxhc3QoKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGRvUGFyc2VPYmplY3RTdGFydEV4cHJlc3Npb246CkBAIC02ODksNyArOTEz
LDcgQEAgSlNWYWx1ZSBMaXRlcmFsUGFyc2VyPENoYXJUeXBlPjo6cGFyc2UoUGFyc2VyU3RhdGUg
aW5pdGlhbFN0YXRlKQogICAgICAgICAgICAgY2FzZSBEb1BhcnNlT2JqZWN0RW5kRXhwcmVzc2lv
bjoKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNP
YmplY3Qob2JqZWN0U3RhY2subGFzdCgpKTsKLSAgICAgICAgICAgICAgICBQcm9wZXJ0eU5hbWUg
aWRlbnQgPSBpZGVudGlmaWVyU3RhY2subGFzdCgpOworICAgICAgICAgICAgICAgIElkZW50aWZp
ZXIgaWRlbnQgPSBpZGVudGlmaWVyU3RhY2sudGFrZUxhc3QoKTsKICAgICAgICAgICAgICAgICBp
ZiAobV9tb2RlICE9IFN0cmljdEpTT04gJiYgaWRlbnQgPT0gdm0ucHJvcGVydHlOYW1lcy0+dW5k
ZXJzY29yZVByb3RvKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghdmlzaXRlZFVuZGVyc2Nv
cmVQcm90by5hZGQob2JqZWN0KS5pc05ld0VudHJ5KSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3BhcnNlRXJyb3JNZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJBdHRlbXB0ZWQgdG8gcmVkZWZp
bmUgX19wcm90b19fIHByb3BlcnR5Iik7CkBAIC03MDUsNyArOTI5LDYgQEAgSlNWYWx1ZSBMaXRl
cmFsUGFyc2VyPENoYXJUeXBlPjo6cGFyc2UoUGFyc2VyU3RhdGUgaW5pdGlhbFN0YXRlKQogICAg
ICAgICAgICAgICAgICAgICAgICAgb2JqZWN0LT5wdXREaXJlY3Qodm0sIGlkZW50LCBsYXN0VmFs
dWUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgICAgICAgICAgICAgIGlkZW50aWZpZXJTdGFjay5y
ZW1vdmVMYXN0KCk7CiAgICAgICAgICAgICAgICAgaWYgKG1fbGV4ZXIuY3VycmVudFRva2VuKCkt
PnR5cGUgPT0gVG9rQ29tbWEpCiAgICAgICAgICAgICAgICAgICAgIGdvdG8gZG9QYXJzZU9iamVj
dFN0YXJ0RXhwcmVzc2lvbjsKICAgICAgICAgICAgICAgICBpZiAobV9sZXhlci5jdXJyZW50VG9r
ZW4oKS0+dHlwZSAhPSBUb2tSQnJhY2UpIHsKQEAgLTcxMyw4ICs5MzYsNyBAQCBKU1ZhbHVlIExp
dGVyYWxQYXJzZXI8Q2hhclR5cGU+OjpwYXJzZShQYXJzZXJTdGF0ZSBpbml0aWFsU3RhdGUpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIG1fbGV4ZXIubmV4dCgpOwotICAgICAgICAgICAgICAgIGxhc3RWYWx1
ZSA9IG9iamVjdFN0YWNrLmxhc3QoKTsKLSAgICAgICAgICAgICAgICBvYmplY3RTdGFjay5yZW1v
dmVMYXN0KCk7CisgICAgICAgICAgICAgICAgbGFzdFZhbHVlID0gb2JqZWN0U3RhY2sudGFrZUxh
c3QoKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IHN0YXJ0UGFyc2VFeHByZXNzaW9uOgpAQCAtODczLDggKzEwOTUsNyBAQCBKU1ZhbHVlIExpdGVy
YWxQYXJzZXI8Q2hhclR5cGU+OjpwYXJzZShQYXJzZXJTdGF0ZSBpbml0aWFsU3RhdGUpCiAgICAg
ICAgIH0KICAgICAgICAgaWYgKHN0YXRlU3RhY2suaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0
dXJuIGxhc3RWYWx1ZTsKLSAgICAgICAgc3RhdGUgPSBzdGF0ZVN0YWNrLmxhc3QoKTsKLSAgICAg
ICAgc3RhdGVTdGFjay5yZW1vdmVMYXN0KCk7CisgICAgICAgIHN0YXRlID0gc3RhdGVTdGFjay50
YWtlTGFzdCgpOwogICAgICAgICBjb250aW51ZTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9MaXRlcmFsUGFyc2VyLmgKaW5kZXggYmNiOWYyODcwNzI5N2I5MmY3
Y2NlZjI5ZTY2YzU5NGNlNDQ2ODdiNi4uMWYwZmJhZjFmZTQ2YTVmYTMzMjA3OWNlMTk0ZTlmODEy
NGI0MGNmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTGl0ZXJh
bFBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xpdGVyYWxQYXJz
ZXIuaApAQCAtMTcyLDEwICsxNzIsMTAgQEAgY2xhc3MgTGl0ZXJhbFBhcnNlciB7CiAgICAgICAg
IAogICAgIHByaXZhdGU6CiAgICAgICAgIFN0cmluZyBtX2xleEVycm9yTWVzc2FnZTsKLSAgICAg
ICAgdGVtcGxhdGUgPFBhcnNlck1vZGUgbW9kZT4gVG9rZW5UeXBlIGxleChMaXRlcmFsUGFyc2Vy
VG9rZW48Q2hhclR5cGU+Jik7CisgICAgICAgIFRva2VuVHlwZSBsZXgoTGl0ZXJhbFBhcnNlclRv
a2VuPENoYXJUeXBlPiYpOwogICAgICAgICBBTFdBWVNfSU5MSU5FIFRva2VuVHlwZSBsZXhJZGVu
dGlmaWVyKExpdGVyYWxQYXJzZXJUb2tlbjxDaGFyVHlwZT4mKTsKLSAgICAgICAgdGVtcGxhdGUg
PFBhcnNlck1vZGUgbW9kZSwgY2hhciB0ZXJtaW5hdG9yPiBBTFdBWVNfSU5MSU5FIFRva2VuVHlw
ZSBsZXhTdHJpbmcoTGl0ZXJhbFBhcnNlclRva2VuPENoYXJUeXBlPiYpOwotICAgICAgICB0ZW1w
bGF0ZSA8UGFyc2VyTW9kZSBtb2RlLCBjaGFyIHRlcm1pbmF0b3I+IFRva2VuVHlwZSBsZXhTdHJp
bmdTbG93KExpdGVyYWxQYXJzZXJUb2tlbjxDaGFyVHlwZT4mLCBjb25zdCBDaGFyVHlwZSogcnVu
U3RhcnQpOworICAgICAgICBBTFdBWVNfSU5MSU5FIFRva2VuVHlwZSBsZXhTdHJpbmcoTGl0ZXJh
bFBhcnNlclRva2VuPENoYXJUeXBlPiYsIENoYXJUeXBlIHRlcm1pbmF0b3IpOworICAgICAgICBU
b2tlblR5cGUgbGV4U3RyaW5nU2xvdyhMaXRlcmFsUGFyc2VyVG9rZW48Q2hhclR5cGU+JiwgY29u
c3QgQ2hhclR5cGUqIHJ1blN0YXJ0LCBDaGFyVHlwZSB0ZXJtaW5hdG9yKTsKICAgICAgICAgQUxX
QVlTX0lOTElORSBUb2tlblR5cGUgbGV4TnVtYmVyKExpdGVyYWxQYXJzZXJUb2tlbjxDaGFyVHlw
ZT4mKTsKICAgICAgICAgTGl0ZXJhbFBhcnNlclRva2VuPENoYXJUeXBlPiBtX2N1cnJlbnRUb2tl
bjsKICAgICAgICAgUGFyc2VyTW9kZSBtX21vZGU7Cg==
</data>
<flag name="review"
          id="358420"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>