[web-php] master: Add PHP 8.1 release page (#450)
| From: | Roman Pronskiy via GitHub | Date: | Thu, 25 Nov 2021 18:04:17 +0000 |
| Subject: | [web-php] master: Add PHP 8.1 release page (#450) | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-29730@lists.php.net to get a copy of this message | ||
Author: Roman Pronskiy (pronskiy)
Committer: GitHub (web-flow)
Pusher: saundefined
Date: 2021-11-25T21:05:01+03:00
Commit: https://github.com/php/web-php/commit/7ce6ff5971e5540d671820705089b8bc8613f69d
Raw diff: https://github.com/php/web-php/commit/7ce6ff5971e5540d671820705089b8bc8613f69d.diff
Add PHP 8.1 release page (#450)
Co-authored-by: Niklas Keller <me@kelunik.com>
Co-authored-by: Alexander Makarov <sam@rmcreative.ru>
Co-authored-by: Sergey Panteleev <sergey@php.net>
Co-authored-by: Alexey Pyltsyn <lex61rus@gmail.com>
Co-authored-by: Nikita Popov <nikita.ppv@googlemail.com>
Co-authored-by: Peter Cowburn <petercowburn@gmail.com>
Co-authored-by: Máté Kocsis <kocsismate@woohoolabs.com>
Changed paths:
A images/php8/logo_php8_1.svg
A images/php8/php81_performance.svg
A images/php8/php_8_1_released.png
A releases/8.1/common.php
A releases/8.1/en.php
A releases/8.1/index.php
A releases/8.1/languages/en.php
A releases/8.1/languages/ru.php
A releases/8.1/release.inc
A releases/8.1/ru.php
M styles/php8.css
Diff:
diff --git a/images/php8/logo_php8_1.svg b/images/php8/logo_php8_1.svg
new file mode 100644
index 0000000000..b8dcd0fcd6
--- /dev/null
+++ b/images/php8/logo_php8_1.svg
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.3..2, SVG Export Plug-In . SVG Version: 6.00 Build 0)
-->
+<svg version="1.1" id="Слой_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px"
+ viewBox="0 0 417 126" style="enable-background:new 0 0 417 126;"
xml:space="preserve">
+<style type="text/css">
+ .st0{fill:none;}
+ ..st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
+ .st2{fill:#FFFFFF;}
+ .st3{fill:#0F0F0F;}
+</style>
+<g>
+ <rect y="0" class="st0" width="417" height="126"/>
+ <path class="st1"
d="M21.4,125.4h-21l18.7-96.2h40.3c12.1,0,21,3.2,26.5,9.5c5.6,6.4,7.2,15.2,5,26.7c-0.9,4.7-2.5,9-4.6,12.9
+ c-2.2,3.9-5,7.5-8.5,10.7c-4.2,3.9-8.8,6.7-13.9,8.4s-11.6,2.5-19.6,2.5h-18L21.4,125.4z
M67.4,48.8c-2.7-2.9-8-4.4-15.9-4.4H37.1
+ l-7.8,40.3H42c8.4,0,14.7-1.6,18.9-4.8c4.1-3.2,6.9-8.5,8.4-15.9C70.7,56.8,70,51.8,67.4,48.8z"/>
+ <path class="st2"
d="M106.3,3.6h20.8l-5,25.6h18.5c11.7,0,19.7,2,24.1,6.1c4.4,4.1,5.8,10.7,4,19.8L160,99.9h-21.1l8.3-42.6
+ c0.9-4.8,0.6-8.1-1-9.9c-1.6-1.8-5.1-2.6-10.4-2..6h-16.6l-10.7,55.1H87.6L106.3,3.6z"/>
+ <path class="st1"
d="M184.9,125.4h-21l18.7-96.2H223c12.1,0,21,3.2,26.5,9.5c5.6,6.4,7.2,15.2,5,26.7c-0..9,4.7-2.5,9-4.6,12.9
+ c-2.2,3.9-5,7.5-8.5,10.7c-4.2,3.9-8.8,6.7-13..9,8.4s-11.6,2.5-19.6,2.5h-18L184.9,125.4z
M231,48.8c-2.7-2.9-8-4.4-15.9-4.4h-14.4
+ l-7.8,40.3h12.7c8.4,0,14.7-1.6,18.9-4.8c4.1-3.2,6.9-8.5,8.4-15.9C234.2,56.8,233.6,51.8,231,48.8z"/>
+ <path class="st2"
d="M317.4,48c-5.7-13.6-10.5-25.4-5.8-33.6c1.8-2.5,3.8-3.8,6-3.8c4.5,0,8.6,4.9,8.6,4.9l5.7,6.9l-3.6-8.2
+ C328.1,13.9,322,0,311,0c-3.8,0-7.8,1.7-11.7,5.1l-0.1,0.1c-9.5,11-0.2,31.8,8.1,50.1l6.1,14.2c0,0,0.6,0.5,0,0
+ c2.8,7.3,5.6,16,3.9,22.4c-2.6,10-11.5,16.8-11.6,16.9l-5.7,4.4l6.9-2.2c0.7-0.2,16-5.2,19.7-18.5c2.3-10.9-0.6-21.8-3.5-30.2
+ c0.4-0.3-0.4,0.3,0,0l-5.3-13.7"/>
+ <path class="st3"
d="M334.3,9.4l-7.1-7.8l5.1,9.3c0.1,0.1,6.3,11.7-1.6,25.2c-2.9,4.2-7.4,8.4-13.1,12.6l-10.4,6.7
+ c-0.1-0.2-0.1-0.1,0,0l-0.4,0.3h0.1h-0.1c-11.5,6.6-22.2,10.6-22.4,10.7c-15.9,7.1-25.9,18.1-27.3,30.3
+ c-1.1,9.2,3.2,18.2,11.6,24.5l0.1,0.1c5.3,3.2,11,4.8,17,4.8c15.7,0,28-10.9,28.5-11.4l7.7-6.9l-9.1,4.8c-0.1,0-7.7,4-15.6,4
+ c-7.1,0-12.1-3.1-15.1-9.4c-3.8-13.4,9.5-22.6,24.8-33.2c2-1.4,4.1-2.9,6.2-4.3l0.1-0.1l9.1-6.8c0.1-0.2,0.4-0.4,0.4-0.4
+ c7.5-6.2,17.4-15.9,19.7-29.5C344.4,20.6,334.7,9.9,334.3,9.4z"/>
+ <path class="st2" d="M347.4,81.3h19.9l-6.5,22.8h-19.9L347.4,81.3z"/>
+ <path class="st2"
d="M390.9,47L379,50.5V33.9l20.5-6.8h15l-15.2,77.1h-19.4L390.9,47z"/>
+</g>
+</svg>
diff --git a/images/php8/php81_performance.svg b/images/php8/php81_performance.svg
new file mode 100644
index 0000000000..28131054f4
--- /dev/null
+++ b/images/php8/php81_performance.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg"
id="Слой_2" data-name="Слой 2" viewBox="1.52 5.95 672.63
198.38"><g opacity="0.7"><path
d="M586.83649,16.24953v-6.27h-1.96778V9.16947h1.00782a1.20808,1.20808,0,0,0,.92089-.35693,1.32272,1.32272,0,0,0,.333-.96289h.70215v8.3999Z"/><path
d="M590.15485,16.24953V14.9297h1.31933v1.31983Z"/><path
d="M593.98,15.88039a3.27285,3.27285,0,0,1-1.14258-1.458,5.60377,5.60377,0,0,1-.40234-2.21094,6.32064,6.32064,0,0,1,.41406-2..38476,3.54264,3.54264,0,0,1,1.1582-1.57227,2.79306,2.79306,0,0,1,1.70313-.54883,3.49074,3.49074,0,0,1,1.71387.42578,2.49786,2.49786,0,0,1,1.125,1.3501h-.9961a1.6382,1.6382,0,0,0-.69922-.62695,2.34332,2.34332,0,0,0-1.08886-.249,2.03741,2.03741,0,0,0-1.19727.37207,2.51475,2.51475,0,0,0-.84863,1.17285,5.611,5.611,0,0,0-.32422,2.0249,2.30693,2.30693,0,0,1,.957-1.13379,2.9319,2.9319,0,0,1,1.58106-.41992,2.875,2.875,0,0,1,1.46093.375,2.68308,2.68308,0,0,1,1.01953,1.03516,2.96986,2.96986,0,0,1,.36914,1.47557,2.7853,2.7853,0,0,1-1.5,2.51123,3.28332,3.28332,0,0,1-1.57226.375A2.96369,2.96369,0,0,1,593.98,15.88039Zm2.79883-.64209a1.83855,1.83855,0,0,0,.71387-.708,2.137,2.137,0,0,0-.00586-2.0459,1.91763,1.91763,0,0,0-.72852-.72265,2.08311,2.08311,0,0,0-1.04785-.26416,2.05471,2.05471,0,0,0-1.03418.26074,1.89061,1.89061,0,0,0-..7207.72021,2.0347,2.0347,0,0,0-.26075,1.02295,1.99516,1.99516,0,0,0,.26368,1.023,1.87641,1.87641,0,0,0,.73535.71094,2.1645,2.1645,0,0,0,1.05859.2583A2.06,2.06,0,0,0,596.77887,15.2383Z"/><path
d="M601.858,15.88039a3.27285,3..27285,0,0,1-1.14258-1.458,5.60377,5.60377,0,0,1-.40234-2.21094,6.32064,6.32064,0,0,1,.41406-2.38476,3.54264,3.54264,0,0,1,1.1582-1.57227,2.79306,2.79306,0,0,1,1.70313-.54883,3.49074,3.49074,0,0,1,1.71387.42578,2.49786,2.49786,0,0,1,1.125,1.3501h-.9961a1.63855,1.63855,0,0,0-.69922-.62695,2.34332,2.34332,0,0,0-1.08886-.249,2.03741,2.03741,0,0,0-1.19727.37207,2.51475,2.51475,0,0,0-.84863,1.17285,5.611,5.611,0,0,0-.32422,2.0249,2.30693,2.30693,0,0,1,.957-1.13379,2.93189,2.93189,0,0,1,1.58105-.41992,2.875,2.875,0,0,1,1.46094.375,2.68308,2.68308,0,0,1,1.01953,1.03516,2.96986,2.96986,0,0,1,.36914,1.47557,2.7853,2.7853,0,0,1-1.5,2.51123,3.28332,3.28332,0,0,1-1.57226.375A2.96369,2.96369,0,0,1,601.858,15.88039Zm2.79883-.64209a1.83869,1.83869,0,0,0,.71387-.708,2.137,2.137,0,0,0-.00586-2.0459,1.91763,1.91763,0,0,0-.72852-.72265,2.08313,2.08313,0,0,0-1.04785-.26416,2.05471,2.05471,0,0,0-1.03418.26074,1.89116,1.89116,0,0,0-.7207.72021,2.0347,2.0347,0,0,0-.26075,1.02295,1.99516,1.99516,0,0,0,.26368,1.023,1.87641,1.87641,0,0,0,.73535.71094,2.1645,2.1645,0,0,0,1.05859.2583A2.06,2.06,0,0,0,604.6568,15.2383Z"/><path
d="M612..95172,8.24269a3.28132,3.28132,0,0,1,1.14356,1.458,5.62123,5.62123,0,0,1,.40136,2.21094,6.32064,6.32064,0,0,1-.41406,2.38476,3.54269,3.54269,0,0,1-1.1582,1.57227,2.79306,2.79306,0,0,1-1.70313.54883,3.48814,3.48814,0,0,1-1.71387-.42578,2.49786,2.49786,0,0,1-1.125-1.3501h.9961a1.63838,1.63838,0,0,0,.69922.627,2.34345,2.34345,0,0,0,1.08886.249,2.03539,2.03539,0,0,0,1.19727-.37207,2.50793,2.50793,0,0,0,.84863-1.17285,5.611,5.611,0,0,0,.32422-2.0249,2..30484,2.30484,0,0,1-.957,1.13379,2.93206,2.93206,0,0,1-1.58105.41992,2.875,2.875,0,0,1-1.46094-.375,2.6836,2.6836,0,0,1-1.01953-1.03515,2.97006,2.97006,0,0,1-.36914-1.47559,2.78534,2.78534,0,0,1,1.5-2.51124,3.28355,3.28355,0,0,1,1.57226-.375A2.96381,2.96381,0,0,1,612.95172,8.24269Zm-2.79883.6416a1.84559,1.84559,0,0,0-.71386.708,2.138,2.138,0,0,0,.00585,2.04639,1.9177,1.9177,0,0,0,.72852.72265,2.083,2.083,0,0,0,1.04785.26416,2.05466,2.05466,0,0,0,1.03418-.26074,1.88428,1.88428,0,0,0,.7207-.72021,2.03491,2.03491,0,0,0,.26075-1.023,1.99507,1.99507,0,0,0-.26367-1.02295,1.88273,1.88273,0,0,0-.73536-.71094,2.1645,2.1645,0,0,0-1.05859-.2583A2.06485,2.06485,0,0,0,610.15289,8.88429Z"/></g><g
opacity="0.7"><path
d="M485.27434,109.30422v-6.27h-1.96777v-.81006h1.00775a1.20807,1.20807,0,0,0,.9209-.35693,1.32275,1.32275,0,0,0,.333-.96289h.70215v8.39992Z"/><path
d="M488.59264,109.30422v-1.31983H489.912v1.31983Z"/><path
d="M491.41881,109.30422v-.86377l3.44922-3.22217a3.68942,3.68942,0,0,0,.76562-.9419,2.03952,2.03952,0,0,0,.23633-.96,1.63835,1.63835,0,0,0-.22168-.8584,1.51647,1.51647,0,0,0-.62109-.57861,1.95593,1.95593,0,0,0-.915-.207,2.04164,2.04164,0,0,0-.98633.23388,1.69584,1.69584,0,0,0-.67871.65381,1.8816,1.8816,0,0,0-.24316.96h-1.00782a2.65672,2.65672,0,0,1,.38379-1.40967,2.71717,2.71717,0,0,1,1.05664-.99023,3.11212,3.11212,0,0,1,1.49415-.35987,3.06185,3.06185,0,0,1,1.41308.32373,2.51332,2.51332,0,0,1,.99512.89112,2.30312,2.30312,0,0,1,.36328,1.269,2.68933,2.68933,0,0,1-.35352,1.3169,5.85461,5.85461,0,0,1-1.13476,1.37109l-2.59766,2.4419h4.332v.93017Z"/><path
d="M498.62486,109.30422l3.72559-7.47608h-4.42773v-.92383h5.53222v.8877l-3.68457,7.51221Z"/><path
d="M504.54088,109.30422l3.72559-7.47608h-4.42774v-.92383H509.371v.8877l-3.68457,7.51221Z"/></g><g
opacity="0.7"><path
d="M480.83965,156.04152V149.771h-1.96777v-.80957h1.00781a1.20841,1.20841,0,0,0,.9209-.35742,1.321,1.321,0,0,0,.333-.96289h.70215v8.40039Z"/><path
d="M484.158,156.04152v-1.32031h1.31934v1.32031Z"/><path
d="M486.98418,156.04152v-.86426l3.44922-3.22168a3.691,3.691,0,0,0,.76563-.94238,2.03868,2.03868,0,0,0,.23633-.96,1.63856,1.63856,0,0,0-.22168-.8584,1.51848,1.51848,0,0,0-.6211-.57812,1.94987,1.94987,0,0,0-.915-.207,2.04136,2.04136,0,0,0-..98632.23339,1.697,1.697,0,0,0-.67871.6543,1.88086,1.88086,0,0,0-.24317.96h-1.00781a2.65831,2.65831,0,0,1,.38379-1.41015,2.71706,2.71706,0,0,1,1.05664-.99024,3.11714,3.11714,0,0,1,1.49414-.35937,3.06143,3.06143,0,0,1,1.41309.32324,2.51793,2.51793,0,0,1,.99511.8916,2.30162,2.30162,0,0,1,.36328,1.26855,2.69124,2.69124,0,0,1-.35351,1.31739,5.87638,5.87638,0,0,1-1.13477,1.37109l-2.59765,2.44141h4.332v.93066Z"/><path
d="M495.75274,155.89989a2.80125,2.80125,0,0,1-1.04688-.78223,2.29694,2.29694,0,0,1-.5039-1.11621h1.02051a1.43682,1.43682,0,0,0,.35937.65723,1.9555,1.9555,0,0,0,.6875.46777,2.28645,2.28645,0,0,0,.89063.1709,2.00983,2.00983,0,0,0,1.02343-.25488,1.753,1.753,0,0,0,.6836-.7168,2.45568,2.45568,0,0,0,0-2.13086,1.72844,1.72844,0,0,0-.68653-.71387,2.14044,2.14044,0,0,0-2.36718.23145,1.59028,1.59028,0,0,0-.38086.44043h-.96l.17969-4.51172h4.99225v.91211h-4.12207l-.10254,2.66406a1.95778,1.95778,0,0,1,.81934-.63574,2.66968,2.66968,0,0,1,1.10058-.24023,2.832,2.832,0,0,1,1.44336.36914,2.61373,2.61373,0,0,1,.999,1.02539,3.05234,3.05234,0,0,1,.36035,1.49121,3.09881,3.09881,0,0,1-.375,1.53613,2.65115,2.65115,0,0,1-1..05371,1.04688,3.15411,3.15411,0,0,1-1.55371.375A3.41324,3.41324,0,0,1,495.75274,155.89989Z"/><path
d="M503.21465,155.86089a2.56933,2.56933,0,0,1-1.10449-.83985,2.09272,2.09272,0,0,1,.43555-2.90036,2.33087,2.33087,0,0,1,.9082-.42382,1.79915,1.79915,0,0,1-.76465-.38379,1.93017,1.93017,0,0,1-.51562-..68653,2.09871,2.09871,0,0,1-.1836-.873,1.94222,1.94222,0,0,1,.36329-1.16114,2.386,2.386,0,0,1,1.00488-.78906,3.9185,3.9185,0,0,1,2.91308-.00293,2.33093,2.33093,0,0,1,.999.78906,1.966,1.966,0,0,1,.36035,1.16407,2.12676,2.12676,0,0,1-.18067.873,1.91925,1.91925,0,0,1-.50683.68653,1.7506,1.7506,0,0,1-.75293.38379,2.25348,2.25348,0,0,1,.89453.418,2.11789,2.11789,0,0,1,.60547.73144,2.0251,2.0251,0,0,1,.21582.92676,2.05725,2.05725,0,0,1-.39551,1.24512,2.5588,2.5588,0,0,1-1.09863.84277,4.022,4.022,0,0,1-1.5957.30078A4.06535,4.06535,0,0,1,503.21465,155.86089Zm2.66407-.75879a1.69205,1.69205,0,0,0,.73144-.55176,1.33488,1.33488,0,0,0,.26465-.81348,1.35343,1.35343,0,0,0-.26465-.82128,1.71256,1.71256,0,0,0-.73144-.5586,2.9652,2.9652,0,0,0-2.127,0,1.72856,1.72856,0,0,0-.73828.5586,1.34231,1.34231,0,0,0-.2666.82128,1.3239,1.3239,0,0,0,.2666.81348,1.70845,1.70845,0,0,0,.73828.55176A2.99306,2.99306,0,0,0,505.87872,155.1021Zm-.14454-3.94824a1.49676,1.49676,0,0,0,.63575-.53028,1.38341,1.38341,0,0,0,.22851-.78613,1.29385,1.29385,0,0,0-.22851-.75586,1.48453,1.48453,0,0,0-.63575-.51367,2.23246,2.23246,0,0,0-.918-.18262,2.25654,2.25654,0,0,0-.92089.18262,1.502,1.502,0,0,0-.64161.51367,1.28294,1.28294,0,0,0-.23144.75586,1.37076,1.37076,0,0,0,.23144.78613,1.51434,1.51434,0,0,0,.64161.53028,2.1809,2.1809,0,0,0,.92089.18945,2.15822,2.15822,0,0,0,.918-.18942Z"/></g><g
opacity="0.7"><path
d="M76.78948,7.0132h3.14258c1.89453,0,3.1416,1.00781,3.1416,2.6626v.02392c0,1.811-1.51074,2.74659-3.29785,2.74659H77.73675v2.9624h-.94728ZM79.81194,11.583c1.39064,0,2.30275-.74365,2.30275-1.84716V9.71192c0-1.19921-.89943-1.82324-2.2549-1.82324h-2.123V11.583Z"/><path
d="M84.80511,7.0132h.94726v3.73h4.8457v-3.73h.94727v8.39551h-.94727V11.63088h-4.8457v3.77784h-.94726Z"/><path
d="M93.92522,7.0132H97.0678c1.89453,0,3.1416,1.00781,3.1416,2.6626v.02392c0,1.811-1.51074,2.74659-3.29785,2..74659H94.87249v2.9624h-.94727ZM96.94768,11.583c1.39063,0,2.30274-.74365,2.30274-1.84716V9.71192c0-1.19921-.89942-1.82324-2.25488-1.82324H94.87249V11.583Z"/><path
d="M109.78557,7.877h-4.61718V7.0132h5.69726v.70752l-3.81446,7.688h-1.05468Z"/><path
d="M111.21624,14.14943h1.10351v1.25928h-1.10351Z"/><path
d="M118.4135,13.418h-4.4248l-.24023-.6836,4.749-5.78125h.82812v5.67334h1.30762V13.418h-1.30762v1.99073h-.91211Zm0-.79151V8.2964l-3.52539,4.33008Z"/></g><g
opacity="0.7"><path
d="M74.894,54.45461h3.14258c1.89453,0,3.1416,1.00781,3.1416,2.66259v.02393c0,1.811-1.51075,2.74658-3.29785,2.74658H75.84124v2.96241H74.894Zm3.02246,4.56982c1.39063,0,2.30274-.74365,2.30274-1.84717v-.02392c0-1.19922-.89942-1.82326-2.25488-1.82326H75.84124v3.69434Z"/><path
d="M82.9096,54.45461h.94726v3.73h4.84571v-3.73h.94726v8.39551h-.94726V59.07228H83.85686v3.77784H82.9096Z"/><path
d="M92.02972,54.45461h3.14257c1.89453,0,3.1416,1.00781,3.1416,2.66259v.02393c0,1.811-1.51074,2.74658-3.29785,2.74658H92.977v2.96241h-.94726Zm3.02246,4.56982c1.39061,0,2.30272-.74365,2.30272-1.84717v-.02392c0-1.19922-.8994-1.82326-2.25488-1.82326H92.977v3.69434Z"/><path
d="M103.08147,60.59523v-.02392a2.261,2.261,0,0,1,1..72657-2.063,2.13739,2.13739,0,0,1-1.43946-1.93066v-.02393c0-1.29541,1.332-2.21875,2.86718-2.21875s2.86621.92334,2.86621,2.21875v.02393a2.13739,2.13739,0,0,1-1.43945,1.93066,2.27621,2.27621,0,0,1,1.72754,2.05127v.02393c0,1.42724-1.36719,2.38672-3.1543,2.38672S103.08147,61.99855,103.08147,60.59523Zm5..34864-.02392v-.02393c0-.93555-.97168-1.59521-2.19435-1.59521-1.22363,0-2.19531.65965-2.19531,1.59521v.02393c0,.85156.81543,1.57127,2.19531,1.57127C107.61468,62.1426,108.43011,61.42288,108.43011,60.57131Zm-.27539-3.9336v-.02392c0-.82764-.82814-1.45166-1.919-1.45166-1.09179,0-1.91895.61181-1.91895,1.45166v.02392c0,.91114.85157,1.53516,1.91895,1.53516S108.15472,57.54888,108.15472,56.63771Z"/><path
d="M110.92815,61.59088h1.10352v1.25928h-1.10352Z"/><path
d="M113.44768,58.67629v-.02393c0-2.35058,1.40332-4.34131,3.5625-4..34131s3.52636,1.9668,3.52636,4.31739v.02392c0,2.35059-1.3916,4.3418-3.55078,4.3418C114.81585,62.99416,113.44768,61.02689,113.44768,58.67629Zm6.10547,0v-.02393c0-1.835-1.00782-3.478-2.56739-3.478-1.57031,0-2.55468,1.60694-2.55468,3.45411v.02392c0,1.835,1.00781,3.478,2.5791,3.478S119.55315,60.51125,119.55315,58.67629Z"/></g><g
opacity="0.7"><path
d="M79.53753,100.78029h3.14258c1.89453,0,3.1416,1.00781,3.1416,2.6626v.02392c0,1.811-1.51074,2.7466-3.29785,2.7466H80.48479v2.9624h-.94726ZM82.56,105.35012c1.39061,0,2.30272-.74366,2.30272-1.84716V103.479c0-1.19922-.8994-1.82325-2.25488-1.82325h-2.123v3.69434Z"/><path
d="M87.55315,100.78029h.94727v3.73h4.8457v-3.73h.94728v8.39551h-.94728V105.398h-4.8457v3.77783h-.94727Z"/><path
d="M96.67327,100.78029h3.14258c1.89453,0,3.1416,1.00781,3.1416,2.6626v.02392c0,1.811-1.51074,2.7466-3.29785,2.7466H97.62054v2.9624h-.94728Zm3.02246,4.56983c1.39063,0,2.30274-.74366,2.30274-1.84716V103.479c0-1.19922-.89942-1.82325-2.25489-1.82325h-2.123v3.69434Z"/><path
d="M107.725,106.92089V106.897a2.26214,2.26214,0,0,1,1.72656-2.063,2.1374,2.1374,0,0,1-1.43945-1.93067v-.02392c0-1.29541,1.332-2.21875,2.86718-2.21875s2.86622.92334,2.86622,2.21875v.02392a2.13743,2.13743,0,0,1-1.43946,1.93067,2.2762,2.2762,0,0,1,1.72753,2.05127v.02392c0,1.42725-1.36815,2.38672-3.15429,2.38672C109.09222,109.29589,107.725,108..32424,107.725,106.92089Zm5.34863-.02393V106.873c0-.93554-.97168-1.59521-2.19434-1.59521-1.22364,0-2.19531.65967-2.19531,1.59521v.02393c0,.85156.81542,1.57129,2.19531,1.57129,1.37894,0,2.19437-.7197,2.19437-1.57126Zm-.27539-3..93359v-.02393c0-.82764-.82813-1.45166-1.919-1.45166-1.09179,0-1.91894.61182-1.91894,1.45166v.02393c0,.91113.85156,1.53515,1.91894,1.53515s1.919-.624,1.919-1.53512Z"/><path
d="M115.57171,107.91652h1.10351v1.25928h-1.10351Z"/><path
d="M119.13518,101.70412l-1.583.4917-.22754-.76758,2.05078-.708h.69531v8.45556h-.93554Z"/></g><g
opacity="0.7"><path
d="M47.88225,145.98976h3.14258c1.89453,0,3.14161,1.00782,3.14161,2.66211v.02442c0,1.81054-1.51074,2.74609-3.29786,2.74609H48.82952v2.96289h-.94727Zm3.02247,4.56934c1.39062,0,2.30273-.74316,2.30273-1.84668V148.688c0-1.19921-.89941-1.82325-2.25488-1.82325h-2.123v3.69434Z"/><path
d="M55.89788,145.98976h.94726v3.72951h4.84571v-3.72951h.94726v8.39551h-.94726V150.607H56.84514v3.77832h-.94726Z"/><path
d="M65.018,145.98976h3.14257c1.89454,0,3.14161,1.00782,3.14161,2.66211v.02442c0,1.81054-1.51075,2.74609-3.29786,2.74609H65.96526v2.96289H65.018Zm3.02246,4.56934c1.39062,0,2.30273-.74316,2.30273-1.84668V148.688c0-1.19921-.89941-1.82325-2.25489-1.82325h-2.123v3.69434Z"/><path
d="M76.06975,152..13039V152.106a2.26046,2.26046,0,0,1,1.72657-2.0625,2.13789,2.13789,0,0,1-1..43946-1.93066v-.02441c0-1.29494,1.332-2.21875,2.86718-2.21875s2.86622.92381,2.86622,2.21875v.02441a2.1379,2.1379,0,0,1-1.43946,1.93066,2.27616,2.27616,0,0,1,1.72754,2.05079v.02441c0,1.42676-1.36719,2.38672-3.1543,2.38672S76.06975,153.53371,76.06975,152.13039Zm5.34864-.02442v-.02343c0-.93555-.97168-1.59571-2.19435-1.59571-1.22363,0-2.19531.66016-2.19531,1.59571v.02343c0,.85157.81543,1.57129,2.19531,1.57129C80.603,153.67726,81.41839,152.95754,81.41839,152.106Zm-.27539-3.93359v-.02344c0-.82812-.82813-1.45215-1.919-1.45215-1.09179,0-1.91893.61231-1.91893,1.45215v.02344c0,.91113.85156,1.53516,1.91893,1.53516S81.143,149.08351,81.143,148.17238Z"/><path
d="M83.91643,153.12551H85.02v1.25976H83.91643Z"/><path
d="M87.47991,146.91359l-1.583.49121-..22754-.76758,2.05078-.708h.69532v8.456h-.93554Z"/><path
d="M94.04436,150..94289a5.75784,5.75784,0,0,1,3.32227-5.13281l.39551.61131a5.06511,5.06511,0,0,0,0,9.043l-.39551.61133A5.75783,5.75783,0,0,1,94.04436,150.94289Z"/><path
d="M98.62835,153.01808l.68359-.58789a2.16131,2.16131,0,0,0,1.919,1.19922c.94725,0,1.64257-.68359,1.64257-2.01465v-5.625h.96V151.603a3.02816,3.02816,0,0,1-.76757,2.20606,2.57415,2.57415,0,0,1-1.84766.69629A2.87418,2.87418,0,0,1,98.62835,153.01808Z"/><path
d="M106.1635,145.98976h.94727v8.39551h-..94727Z"/><path
d="M111.75432,146.86476h-2.83007v-.875h6.60839v.875h-2.83105v7.52051h-.94727Z"/><path
d="M116.74847,155.46437a5.06513,5.06513,0,0,0,0-9.043l.3955-.61131a5.62616,5.62616,0,0,1,0,10.26561Z"/></g><g
opacity="0.7"><path
d="M1.516,193.98976H4.65862c1.89453,0,3.1416,1.00782,3.1416,2.66309v.02344c0,1.81152-1.51074,2.74707-3.29785,2.74707H2.46331v2.96191H1.516Zm3.0225,4.57032c1.39063,0,2.30274-.74414,2.30274-1.84766V196.689c0-1.19922-.89942-1.82324-2.25488-1.82324h-2.123v3.69434Z"/><path
d="M9.53167,193.98976h.94726v3.73047h4.84571v-3.73047h.94726v8.39551h-.94726v-3.77734H10.47893v3.77734H9.53167Z"/><path
d="M18.65179,193.98976h3.14257c1.89453,0,3.14161,1.00782,3.14161,2.66309v.02344c0,1.81152-1.51075,2.74707-3.29786,2..74707H19.599v2.96191h-.94726Zm3.02246,4.57032c1.39062,0,2.30273-.74414,2.30273-1.84766V196.689c0-1.19922-.89941-1.82324-2.25488-1.82324H19.599v3.69434Z"/><path
d="M29.70354,200.13039V200.107a2.26273,2.26273,0,0,1,1.72657-2..06348,2.13686,2.13686,0,0,1-1.43946-1.93066v-.02344c0-1.2959,1.332-2.21875,2.86719-2.21875s2.86621.92285,2.86621,2.21875v.02344a2.13685,2.13685,0,0,1-1.43945,1.93066,2.27632,2.27632,0,0,1,1.72754,2.05176v.02344c0,1.42773-1.36817,2.38672-3.1543,2.38672C31.07073,202.50539,29.70354,201.53371,29.70354,200.13039Zm5.34864-.02344v-.02441c0-.93555-.97168-1.59473-2.19434-1.59473-1..22363,0-2.19531.65918-2.19531,1.59473v.02441c0,.85156.81543,1.57129,2.19531,1.57129C34.23675,201.67824,35.05218,200.95851,35.05218,200.107Zm-.27539-3..93359v-.02442c0-.82715-.82813-1.45117-1.91895-1.45117-1.0918,0-1.919.61133-1.919,1.45117v.02442c0,.91113.85157,1.53515,1.919,1.53515S34.77679,197.08449,34.77679,196.17336Z"/><path
d="M37.55022,201.12648h1.10352v1.25879H37.55022Z"/><path
d="M41.1137,194.91359l-1.583.49219-.22754-.76758,2.05078-.708h.69532v8.45508H41.1137Z"/><path
d="M47.67815,198.9439a5.75918,5.75918,0,0,1,3.32227-5.13379l.39551.6123a5.06512,5.06512,0,0,0,0,9.043l-.39551.61133A5.75894,5.75894,0,0,1,47.67815,198.9439Z"/><path
d="M53.102,196.18508h.92383v1.24707a2.78863,2.78863,0,0,1,2.375-1.37891,3.02415,3.02415,0,0,1,2..96738,3.07986q-.00126.06706-.00547.134v.02441a3.0351,3.0351,0,0,1-2.83782,3.22031q-.062.00388-.12409.00528a2.796,2.796,0,0,1-2.375-1.31934v3.10645H53..102Zm5.31348,3.11816v-.02435a2.2329,2.2329,0,0,0-2.06075-2.3927q-.06084-.00453-.12187-.00574a2.31254,2.31254,0,0,0-2.24338,2.37967l.00022.007v.02441A2.30824,2.30824,0,0,0,56.205,201.6891l.02782.00092a2.18817,2.18817,0,0,0,2.19163-2.18469q.00015-.10122-.009-.20209Z"/><path
d="M61.06975,196.18508h.92383v1.61914a2.65643,2.65643,0,0,1,2.53028-1.72754v.99609h-.07129c-1.35547,0-2.459.9707-2.459,2.8418v2.4707h-.92383Z"/><path
d="M65.28264,199.30324v-.02435a3.05883,3.05883,0,0,1,2.88645-3.222q.04406-.00243.08816-.00357c1.835,0,2.89063,1.46289,2.89063,3.27442a2.28469,2.28469,0,0,1-.0127.2998h-4.917a2.16527,2.16527,0,0,0,2.18261,2.09863,2.56488,2.56488,0,0,0,1.95508-.876l..57617.51562a3.20053,3.20053,0,0,1-2.55468,1.16406,3.08259,3.08259,0,0,1-3.09805-3.067Q65.27892,199.383,65.28264,199.30324Zm4.92969-.35937a2.04228,2.04228,0,0,0-1.97111-2.11106l-.00839-.00027a2.13773,2.13773,0,0,0-2.01464,2.11133Z"/><path
d="M72.85393,193.63039h.92383v8.75488h-.92383Z"/><path
d="M75.54241,199.315v-.02344a3.23245,3.23245,0,0,1,6.46484-.02441v.02441a3.22,3.22,0,0,1-3.20152,3.23837q-.02424.00015-.04848-.00009a3.17731,3.17731,0,0,1-3.21484-3.13934Q75.542,199.35274,75.54241,199.315Zm5.51758,0v-.02344a2.34655,2.34655,0,0,0-2.26855-2.422l-.03419-.00085a2.28848,2.28848,0,0,0-2.27014,2.30667q.00036.04591.00257.09177v.02441a2.32593,2.32593,0,0,0,2.23987,2.40888l.05113.00128a2.28792,2.28792,0,0,0,2.28145-2.29438Q81.062,199.36112,81.06,199.315Z"/><path
d="M83.21038,200.58644V200.563c0-1.30762,1.08008-2.00293,2.65039-2.00293a6.57309,6.57309,0,0,1,1.90723.26367v-.21582c0-1.11524-.6836-1.69141-1.84668-1.69141a4.3187,4.3187,0,0,0-1.88282.45606l-.27636-.75586a5.12509,5.12509,0,0,1,2.25488-.51563,2.7193,2.7193,0,0,1,2.00293.6836,2.44681,2.44681,0,0,1,.63574,1.81054v3.79H87.768v-.93555a2.7153,2.7153,0,0,1-2.24317,1.06739,2.08829,2.08829,0,0,1-2.30664-1.84424Q83.21339,200.62972,83.21038,200.58644Zm4.56934-.47949v-.59961a6.46686,6.46686,0,0,0-1.82227-.26367c-1.16406,0-1.81152.50293-1.81152,1.2832v.02344c0,.78027.71972,1.23535,1.55957,1.23535a1.8742,1.8742,0,0,0,2.07155-1.65344Z"/><path
d="M90.267,199.30324v-.02435a3.042,3.042,0,0,1,2.8519-3.22089q.055-.00334.11-.0047a2.796,2.796,0,0,1,2.375,1.31934v-3.74219h.92383v8.75488H95.6039v-1.24707a2.78868,2.78868,0,0,1-2.375,1.37891,3.02358,3.02358,0,0,1-2.96742-3.07871Q90.26272,199.37081,90.267,199.30324Zm5.373-.01172v-.02441a2.305,2.305,0,0,0-2.221-2.386l-.02215-.0007a2.18817,2.18817,0,0,0-2.19164,2.18469q-.00015.10116.009..202v.02441a2.2329,2.2329,0,0,0,2.06073,2.3927q.06084.00453.12188.00574a2.31571,2.31571,0,0,0,2.24367-2.38559l-.00043-.01285Z"/><path
d="M98.61858,193.81008h1.05469v1.01953H98.61858Zm.05957,2.375H99.602v6.20019h-.92383Z"/><path
d="M101.75042,196.18508h.92383v1.0791a2.34705,2.34705,0,0,1,2.123-1.21094,2.26418,2.26418,0,0,1,2.374,2.48242v3.84961h-.92285V198.7632a1.6532,1..6532,0,0,0-1.71583-1.87109,1.82445,1.82445,0,0,0-1.8619,1.78622q-.00164.0786.00351.15714v3.5498h-.92383Z"/><path
d="M109.06975,203.46535l.41993-.71973a3.96417,3.96417,0,0,0,2.38671.791,2.03773,2.03773,0,0,0,2.25489-2.20606v-.73242a2.93811,2.93811,0,0,1-2.43457,1.30762,2.8666,2.8666,0,0,1-2.9139-2..81848q-.0007-.04194-.00017-.08387V198.979a2.93554,2.93554,0,0,1,5.33692-1.67871v-1.1152h.92383v5.12109a2.98472,2.98472,0,0,1-.792,2.19434,3.25936,3.25936,0,0,1-2.3623.82812A4.867,4.867,0,0,1,109.06975,203.46535Zm5.08594-4.47363v-.02442a2.17243,2.17243,0,0,0-2.24232-2.10016l-.037.00153a2.05066,2.05066,0,0,0-2.14459,1.95221q-.00315.06734-.00189.1347v.02344a2.09848,2.09848,0,0,0,2.085,2.11185q.03075.00018.0615-.00052a2.18835,2.18835,0,0,0,2.2791-2.09369Z"/><path
d="M116.75042,203.46535a5.06512,5.06512,0,0,0,0-9.043l.39551-.6123a5.62692,5.62692,0,0,1,0,10.2666Z"/></g><g
opacity="0.7"><path
d="M482.413,195.24758l-1.583.49121-.22754-.76758,2.05078-.707h.69532v8.45508H482.413Z"/><path
d="M485.4735,201.45949H486.577v1.25977H485.4735Z"/><path
d="M488.06529,201.98781l3.04688-2.68652c1.2832-1.15137,1.751-1.79883,1.751-2.63867a1.60469,1.60469,0,0,0-1.59955-1.60978q-.046-.00014-.09186.00235a2.69453,2.69453,0,0,0-2.25488,1.43946l-.69532-.50391a3.32552,3.32552,0,0,1,3.02247-1.78711,2.4181,2.4181,0,0,1,2.59576,2.22626q.00567.07425.00677.14874v.02441c0,1.22266-.64746,1.97852-2.123,3.26172l-2.24219,1.99121h4.44922v.86329h-5.86524Z"/><path
d="M499.96764,195.187h-4.61725v-.86328h5.69727v..708l-3.81446,7.6875h-1.05469Z"/><path
d="M502.19029,198.54543V198.522c0-2.35156,1.40332-4.3418,3.5625-4.3418s3.52637,1.9668,3.52637,4.31739v.02441c0,2.35059-1.3916,4.34082-3.55078,4.34082C503.55748,202.86281,502.19029,200.896,502.19029,198.54543Zm6.10547,0V198.522c0-1.835-1.00781-3.47852-2.56738-3.47852-1.57031,0-2.55371,1.60743-2.55371,3.45411v.02441c0,1.835,1.00684,3.47754,2.57812,3.47754S508.29576,200.38039,508.29576,198.54543Z"/></g><rect
x="134.5" y="192.30488" width="332.75834" height="12"
fill="#505c90"/><rect x="134.5" y="145.71738"
width="329.73486" height="12" fill="#505c90"/><rect
x="134.5" y="99.12988" width="334.65522" height="12"
fill="#505c90"/><rect x="134.5" y="52.54238"
width="434.5532" height="12" fill="#505c90"/><rect
x="134.5" y="5.95488" width="437.5138" height="12"
fill="#505c90"/><g opacity="0.7"><path
d="M585.9248,63.0132V56.67726h-1.96191v-.72607H585.001a1.14518,1.14518,0,0,0,.87011-.333,1.23436,1.23436,0,0,0,.3125-.90283l.00586-.102h.62989v8.3999Z"/><path
d="M589.23633,63.0132v-1.23h1.23633v1.23Z"/><path
d="M593.00488,62.647a3.20815,3.20815,0,0,1-1.12207-1.44873,5.67494,5.67494,0,0,1-.38965-2.187,6.56836,6.56836,0,0,1,.4043-2.40918,3.53893,3.53893,0,0,1,1.14063-1.58106,2.73663,2.73663,0,0,1,1.68847-.55175,3.33654,3.33654,0,0,1,1.68946.43505,2..47049,2.47049,0,0,1,1.09472,1.34082h-.90039a1.67214,1.67214,0,0,0-.71387-.69287,2.294,2.294,0,0,0-1.12207-.27295,2.022,2.022,0,0,0-1.23535.39893,2.65634,2.65634,0,0,0-.8584,1.24219,6.148,6.148,0,0,0-.32421,2.1206,2.356,2.356,0,0,1,.54882-.86084,2.52328,2.52328,0,0,1,.88868-.56982,3.08045,3.08045,0,0,1,1.125-.20117,2.84756,2.84756,0,0,1,1.45214.375,2.69875,2.69875,0,0,1,1.01661,1.03222,2.94185,2.94185,0,0,1,.36914,1.4668,2.78437,2.78437,0,0,1-1.4795,2.499,3.20392,3.20392,0,0,1-1.55078.375A2.93333,2.93333,0,0,1,593.00488,62.647Zm2.81641-.56689a1.92355,1.92355,0,0,0,.73828-.73487,2.21428,2.21428,0,0,0-.00586-2.12109,1.9766,1.9766,0,0,0-.75293-.75,2.14431,2.14431,0,0,0-1.08008-.273,2.10327,2.10327,0,0,0-1.06836.273,1.97778,1.97778,0,0,0-.74316..74707,2.08912,2.08912,0,0,0-.27051,1.05615,2.06577,2.06577,0,0,0,.27637,1.062,1.95145,1.95145,0,0,0,.75879.74073,2.20989,2.20989,0,0,0,1.08887.26709A2.10527,2.10527,0,0,0,595.82129,62.0801Z"/><path
d="M600.94238,62.875a2.73821,2.73821,0,0,1-1.041-.78272,2.26944,2.26944,0,0,1-.49512-1.125h.918a1.52655,1.52655,0,0,0,.36914.708,1.982,1.982,0,0,0,.7168.501,2.37663,2.37663,0,0,0,.93652.1831,2.09851,2.09851,0,0,0,1.06152-.26416,1.80687,1.80687,0,0,0,.71387-.74121,2.54474,2.54474,0,0,0,0-2.208,1.79477,1.79477,0,0,0-.71094-.73779,2.10586,2.10586,0,0,0-1.05859-.26123,2.13339,2.13339,0,0,0-.77734.14111,2.168,2.168,0,0,0-.627.36621,1.62718,1.62718,0,0,0-.39551.47706h-.86425l..1914-4.51807h4.93848v.82178H600.666l-.12012,2.832a2.06593,2.06593,0,0,1,.834-.66309,2.63987,2.63987,0,0,1,1.12793-.25488,2.85,2.85,0,0,1,1.44336.36621,2.57845,2.57845,0,0,1,.9961,1.01709,3.03251,3.03251,0,0,1,.35742,1.48486,3.088,3.088,0,0,1-.37207,1.52686,2.63055,2.63055,0,0,1-1.04395,1.041,3.13332,3.13332,0,0,1-1.542.37207A3.42432,3.42432,0,0,1,600.94238,62.875Z"/><path
d="M608.42676,62.83644a2.5405,2.5405,0,0,1-1.0918-.8374,2.11831,2.11831,0,0,1-.1709-2.17187,2.07533,2.07533,0,0,1,.624-.7378,2.36107,2.36107,0,0,1,..92968-.41406,1.85915,1.85915,0,0,1-.7832-.38428,1.96275,1.96275,0,0,1-.52734-.687,2.05313,2.05313,0,0,1-.18946-.8789,1.97926,1.97926,0,0,1,.35743-1.16407,2.30484,2.30484,0,0,1,.99316-.78906,3.89566,3.89566,0,0,1,2.89453,0,2.3073,2.3073,0,0,1,.98731.78613,1.99315,1.99315,0,0,1,.35351,1.167,2.13049,2..13049,0,0,1-.18262.88232,1.87,1.87,0,0,1-.51953.68652,1.8451,1.8451,0,0,1-..77344.38135,2.25459,2.25459,0,0,1,.918.40772,2.10453,2.10453,0,0,1,.61524.73535,2.14188,2.14188,0,0,1-.1709,2.1748,2.54469,2.54469,0,0,1-1.08691.83985,3.9605,3.9605,0,0,1-1.584.30029A4.04385,4.04385,0,0,1,608.42676,62.83644Zm2.69726-.687a1.757,1.757,0,0,0,.75879-.57617,1.46423,1.46423,0,0,0,0-1.7041,1.757,1.757,0,0,0-.75879-.57617,2.83694,2.83694,0,0,0-1.10449-.20362,2.87008,2.87008,0,0,0-1.1123.20362,1.78446,1.78446,0,0,0-.76563.57617,1.45127,1..45127,0,0,0,0,1.70117,1.81071,1.81071,0,0,0,.76563.57568,3.09448,3.09448,0,0,0,2.21679.00342Zm-.14062-3.9873a1.55467,1.55467,0,0,0,.65918-.54883,1.4202,1.4202,0,0,0,.2373-.81006,1.38241,1.38241,0,0,0-.2373-.79785,1.55065,1.55065,0,0,0-.65918-.54,2.31087,2.31087,0,0,0-.96387-.19238,2.35013,2.35013,0,0,0-.96875.19238,1.568,1.568,0,0,0-.66894.54,1.37035,1.37035,0,0,0-.24024.79785,1.40768,1.40768,0,0,0,.24024.81006,1.57159,1.57159,0,0,0,.66894.54883,2.31973,2.31973,0,0,0,.96875.19531A2.281,2.281,0,0,0,610.9834,58.16213Z"/></g><g
opacity="0.7"><path
d="M628.23535,17.71584a5.08448,5.08448,0,0,1-1.00488-1.332,7.32291,7.32291,0,0,1-.66016-1.75537,8.38911,8.38911,0,0,1,0-3.90577,7.31128,7.31128,0,0,1,.66016-1.75488,5.06811,5.06811,0,0,1,1.00488-1.332h.9541a5.977,5.977,0,0,0-1.04394,1.416,7.77464,7.77464,0,0,0-.68653,1..75781,7.29236,7.29236,0,0,0,0,3.73486,7.61692,7.61692,0,0,0,.68946,1.7583,6.06263,6.06263,0,0,0,1.04687,1.41309Z"/><path
d="M633.18555,12.2256l1.62011-.00586v.71973l-1.62011.00635v1.69775h-.71973V12.94582l-1.67969.00586v-.72022l1.67969-.00586v-1.71h.71973Z"/><path
d="M638.31934,15.65187a3.3426,3.3426,0,0,1-1.13184-1.50634,6.10642,6.10642,0,0,1-.39551-2.29786,6.17409,6..17409,0,0,1,.39551-2.31005,3.36165,3.36165,0,0,1,1.13184-1.51514,3.06727,3..06727,0,0,1,3.44921,0,3.35305,3.35305,0,0,1,1.13086,1.51514,6.154,6.154,0,0,1,.39649,2.31005,6.08653,6.08653,0,0,1-.39649,2.29786,3.334,3.334,0,0,1-1..13086,1.50634,3.08136,3.08136,0,0,1-3.44921,0Zm2.90332-.79541a2.59727,2.59727,0,0,0,.77148-1.18457,5.55456,5.55456,0,0,0,.26953-1.82422,5.60152,5.60152,0,0,0-.26953-1.833,2.6375,2.6375,0,0,0-.77148-1.19385,1.87959,1.87959,0,0,0-2.35743-.00293,2.60928,2.60928,0,0,0-.77148,1.188,5.57186,5.57186,0,0,0-.26953,1.82959,5.57492,5.57492,0,0,0,.26953,1.83007,2.60928,2.60928,0,0,0,..77148,1.188,1.89,1.89,0,0,0,2.35743.00293Z"/><path
d="M644.25684,16.03566V14.71584h1.31933v1.31982Z"/><path
d="M648.08105,15.66652a3.27278,3.27278,0,0,1-1.14257-1.458,5.60369,5.60369,0,0,1-.40235-2.21093,6.32,6.32,0,0,1,..41407-2.38477,3.54291,3.54291,0,0,1,1.1582-1.57227,2.793,2.793,0,0,1,1.70312-.54882,3.49071,3.49071,0,0,1,1.71387.42578,2.4978,2.4978,0,0,1,1.125,1.3501h-.99609a1.63846,1.63846,0,0,0-.69922-.627,2.34368,2.34368,0,0,0-1.08887-.249,2.03748,2.03748,0,0,0-1.19726.37207,2.51472,2.51472,0,0,0-.84864,1.17285,5.61125,5.61125,0,0,0-.32422,2.0249,2.307,2.307,0,0,1,.957-1.13379,2.93207,2.93207,0,0,1,1.58106-.41992,2.87488,2.87488,0,0,1,1.46094.375,2.68351,2.68351,0,0,1,1.01953,1.03516,2.96985,2.96985,0,0,1,.36914,1.47558,2.78534,2.78534,0,0,1-1.5,2.51123,3.28338,3.28338,0,0,1-1.57227.375A2.9638,2.9638,0,0,1,648.08105,15.66652Zm2.79883-.64209a1.83893,1.83893,0,0,0,.71387-.708,2..13707,2.13707,0,0,0-.00586-2.04589,1.91755,1.91755,0,0,0-.72851-.72266,2.08314,2.08314,0,0,0-1.04786-.26416,2.05471,2.05471,0,0,0-1.03418.26074,1.891,1.891,0,0,0-.7207.72022,2.03469,2.03469,0,0,0-.26074,1.02295,1.99529,1.99529,0,0,0,.26367,1.02294,1.87628,1.87628,0,0,0,.73535.71094,2.16448,2.16448,0,0,0,1.0586.2583A2.05992,2.05992,0,0,0,650.87988,15.02443Z"/><path
d="M655.99316,15.85549a2.57683,2.57683,0,0,1-1.10449-.83985,2.111,2.111,0,0,1-.17676-2.166,2.12978,2.12978,0,0,1,.61231-.73487,2.33016,2.33016,0,0,1,.9082-..42334,1.81041,1.81041,0,0,1-.76465-.38379,1.932,1.932,0,0,1-.51562-.687,2.09474,2.09474,0,0,1-.1836-.873,1.944,1.944,0,0,1,.36329-1.16114,2.38082,2.38082,0,0,1,1.00488-.78857,3.92167,3.92167,0,0,1,2.91308-.00342,2.33425,2.33425,0,0,1,.999.78906,1.96813,1.96813,0,0,1,.36035,1.16407,2.12387,2.12387,0,0,1-.18066.873,1.921,1.921,0,0,1-.50684.687,1.76115,1.76115,0,0,1-.75293.38379,2.25276,2.25276,0,0,1,.89453.41748,2.12427,2.12427,0,0,1,.60547.73194,2.0232,2.0232,0,0,1,.21582.92676,2.05943,2.05943,0,0,1-.39551,1.24511,2.56619,2.56619,0,0,1-1.09863.84278,4.02218,4.02218,0,0,1-1.5957.30029A4.06516,4..06516,0,0,1,655.99316,15.85549Zm2.66407-.75879a1.69329,1.69329,0,0,0,.73144-.55225,1.33326,1.33326,0,0,0,.26465-.813,1.35584,1.35584,0,0,0-.26465-.82177,1.70776,1.70776,0,0,0-.73144-.55811,2.95852,2.95852,0,0,0-2.127,0,1.72367,1.72367,0,0,0-.73828.55811,1.345,1.345,0,0,0-.2666.82177,1.32263,1.32263,0,0,0,.2666.813,1.70927,1.70927,0,0,0,.73828.55225,3.00006,3.00006,0,0,0,2..127,0Zm-.14453-3.94825a1.49437,1.49437,0,0,0,.63574-.53076,1.38138,1.38138,0,0,0,.22851-.78613,1.29638,1.29638,0,0,0-.22851-.75586,1.48712,1.48712,0,0,0-.63574-.51318,2.22477,2.22477,0,0,0-.918-.18262,2.24846,2.24846,0,0,0-.9209.18262,1.50477,1.50477,0,0,0-.6416.51318,1.28478,1.28478,0,0,0-.23145.75586,1.36869,1.36869,0,0,0,.23145.78613,1.51144,1.51144,0,0,0,.6416.53076,2..18076,2.18076,0,0,0,.9209.189A2.15788,2.15788,0,0,0,658.5127,11.14845Z"/><path
d="M663.15723,11.24465a1.81784,1.81784,0,0,1-.70508-.71094,2.24142,2..24142,0,0,1,0-2.07617,1.821,1.821,0,0,1,.70508-.71094,2.03106,2.03106,0,0,1,1.01953-.25488,2.06547,2.06547,0,0,1,1.02929.25488,1.82183,1.82183,0,0,1,..708.71094,2.24134,2.24134,0,0,1,0,2.07617,1.81867,1.81867,0,0,1-.708.71094,2.06547,2.06547,0,0,1-1.02929.25488A2.03106,2.03106,0,0,1,663.15723,11.24465Zm.37207,4.791h-.91211l6.26367-8.3999h.91211Zm1.23828-5.48388a1.06772,1.06772,0,0,0,.40527-.43213,1.428,1.428,0,0,0,0-1.248,1.07074,1.07074,0,0,0-.40527-.43213,1.129,1.129,0,0,0-.59082-.15576,1.10267,1.10267,0,0,0-.582.15576,1.08387,1.08387,0,0,0-.40235.43213,1.42812,1.42812,0,0,0,0,1.248,1.08075,1.08075,0,0,0,.40235.43213,1.10267,1.10267,0,0,0,.582.15576A1.129,1.129,0,0,0,664.76758,10.55178Zm2.457,5.373a1.82739,1.82739,0,0,1-.70508-.71094,2.24142,2.24142,0,0,1,0-2.07617,1.82419,1.82419,0,0,1,.70508-.71093,2.03464,2.03464,0,0,1,1.02051-.25489,2.09376,2.09376,0,0,1,1.03808.25489,1.81315,1.81315,0,0,1,.71094.71093,2.24142,2.24142,0,0,1,0,2.07617,1.8163,1.8163,0,0,1-.71094.71094,2.09386,2.09386,0,0,1-1.03808.25488A2.03473,2.03473,0,0,1,667.22461,15.92482Zm1.61426-.69336a1.087,1.087,0,0,0,.41113-.43164,1.40243,1.40243,0,0,0,0-1.248,1.0882,1.0882,0,0,0-.41113-.43213,1.14442,1.14442,0,0,0-.59375-.15577,1.10258,1.10258,0,0,0-.582.15577,1.074,1.074,0,0,0-.40235.43213,1.4281,1.4281,0,0,0,0,1.248,1.0727,1.0727,0,0,0,.40235.43164,1.09855,1.09855,0,0,0,.582.15625A1.1402,1.1402,0,0,0,668.83887,15.23146Z"/><path
d="M671.28613,17.71584a6.03521,6.03521,0,0,0,1.04688-1.41309,7.61875,7.61875,0,0,0,.69043-1.7583,7.29236,7.29236,0,0,0,0-3.73486,7.82039,7.82039,0,0,0-.68653-1.75781,6.00368,6.00368,0,0,0-1.04394-1.416h.95312a5.0496,5.0496,0,0,1,1..00586,1.332,7.30934,7.30934,0,0,1,.65918,1.75488,8.35457,8.35457,0,0,1,0,3..90577,7.321,7.321,0,0,1-.65918,1.75537,5.06585,5.06585,0,0,1-1.00586,1.332Z"/></g><g
opacity="0.7"><path
d="M524.07129,110.08644a5.08415,5.08415,0,0,1-1.00488-1.332,7.32232,7.32232,0,0,1-.66016-1.75537,8.38907,8.38907,0,0,1,0-3.90576,7.3107,7.3107,0,0,1,.66016-1.75488,5.068,5.068,0,0,1,1.00488-1.332h.9541a5.97669,5.97669,0,0,0-1.04394,1.416,7.77436,7.77436,0,0,0-.68653,1.75781,7.2924,7.2924,0,0,0,0,3.73487,7.6162,7.6162,0,0,0,.68946,1.7583,6..06235,6.06235,0,0,0,1.04687,1.41308Z"/><path
d="M526.47168,105.38234v-.83984h4.02051v.83984Z"/><path
d="M532.27441,108.40627v-.86377l3.44922-3.22217a3.6905,3.6905,0,0,0,.76563-.94189,2.04005,2.04005,0,0,0,.23633-.96,1.6387,1.6387,0,0,0-.22168-.85839,1.5165,1.5165,0,0,0-.6211-.57862,1.956,1.956,0,0,0-.915-.207,2.04154,2.04154,0,0,0-.98632.23389,1.69577,1.69577,0,0,0-.67872.65381,1.88171,1.88171,0,0,0-.24316.96h-1.00781a2.65644,2.65644,0,0,1,.38379-1.40967,2.71692,2.71692,0,0,1,1.05664-.99023,3.112,3.112,0,0,1,1.49414-.35987,3.06189,3.06189,0,0,1,1.41308.32373,2.51338,2.51338,0,0,1,.99512.89112,2.30305,2.30305,0,0,1,.36328,1.269,2.68973,2.68973,0,0,1-.35351,1.31689,5.85573,5.85573,0,0,1-1.13477,1.3711l-2.59765,2.44189h4.332v.93018Z"/><path
d="M539.38477,108.40627v-.86377l3.44921-3.22217a3.69029,3.69029,0,0,0,..76563-.94189,2.03994,2.03994,0,0,0,.23633-.96,1.63861,1.63861,0,0,0-.22168-.85839,1.51644,1.51644,0,0,0-.6211-.57862,1.956,1.956,0,0,0-.915-.207,2.04154,2.04154,0,0,0-.98632.23389,1.69574,1.69574,0,0,0-.67871.65381,1.88172,1..88172,0,0,0-.24317.96h-1.00781a2.65644,2.65644,0,0,1,.38379-1.40967,2.71692,2.71692,0,0,1,1.05664-.99023,3.112,3.112,0,0,1,1.49414-.35987,3.062,3.062,0,0,1,1.41309.32373,2.51342,2.51342,0,0,1,.99511.89112,2.30305,2.30305,0,0,1,.36328,1.269,2.68973,2.68973,0,0,1-.35351,1.31689,5.85573,5.85573,0,0,1-1.13477,1.3711l-2.59765,2.44189h4.332v.93018Z"/><path
d="M546.53711,108.40627v-1.31983h1.31934v1.31983Z"/><path
d="M553.57812,100.39943a3.28134,3.28134,0,0,1,1.14356,1.458,5.6216,5.6216,0,0,1,.40137,2.21094,6.31993,6.31993,0,0,1-.41407,2.38476,3.54286,3.54286,0,0,1-1.1582,1.57227,2.793,2.793,0,0,1-1.70312.54883,3.48793,3.48793,0,0,1-1.71387-.42579,2.49778,2.49778,0,0,1-1.125-1.35009h.99609a1.6385,1.6385,0,0,0,.69922.62695,2.34355,2.34355,0,0,0,1.08887.249,2.03533,2.03533,0,0,0,1.19726-.37207,2.508,2.508,0,0,0,.84864-1.17285,5.61121,5.61121,0,0,0,.32422-2.0249,2.30487,2.30487,0,0,1-.957,1.13379,2.932,2.932,0,0,1-1.58105.41992,2.87488,2.87488,0,0,1-1.46094-.375,2.68344,2.68344,0,0,1-1.01953-1.03516,2.96985,2.96985,0,0,1-.36914-1.47558,2.78534,2.78534,0,0,1,1.5-2.51123,3.28338,3.28338,0,0,1,1.57227-.375A2.96382,2..96382,0,0,1,553.57812,100.39943Zm-2.79882.6416a1.84554,1.84554,0,0,0-.71387.708,2.13805,2.13805,0,0,0,.00586,2.04639,1.9176,1.9176,0,0,0,.72851.72265,2.08314,2.08314,0,0,0,1.04786.26416,2.05471,2.05471,0,0,0,1.03418-.26074,1..88421,1.88421,0,0,0,.7207-.72021,2.03474,2.03474,0,0,0,.26074-1.02295,1.99533,1.99533,0,0,0-.26367-1.02295,1.88287,1.88287,0,0,0-.73535-.71094,2.16459,2.16459,0,0,0-1.0586-.2583A2.06478,2.06478,0,0,0,550.7793,101.041Z"/><path
d="M561.45605,100.39943a3.28134,3.28134,0,0,1,1.14356,1.458,5.6216,5.6216,0,0,1,.40137,2.21094,6.31993,6.31993,0,0,1-.41407,2.38476,3.54293,3.54293,0,0,1-1.1582,1.57227,2.793,2.793,0,0,1-1.70312.54883,3.48793,3.48793,0,0,1-1.71387-.42579,2.49778,2.49778,0,0,1-1.125-1.35009h.99609a1.6385,1.6385,0,0,0,.69922.62695,2.34355,2.34355,0,0,0,1.08887.249,2.03533,2.03533,0,0,0,1..19726-.37207,2.508,2.508,0,0,0,.84864-1.17285,5.61121,5.61121,0,0,0,.32422-2.0249,2.30487,2.30487,0,0,1-.957,1.13379,2.932,2.932,0,0,1-1.58105.41992,2.87488,2.87488,0,0,1-1.46094-.375,2.68344,2.68344,0,0,1-1.01953-1.03516,2.96985,2.96985,0,0,1-.36914-1.47558,2.78534,2.78534,0,0,1,1.5-2.51123,3.28338,3.28338,0,0,1,1.57227-.375A2.96382,2.96382,0,0,1,561.45605,100.39943Zm-2.79882.6416a1.84554,1.84554,0,0,0-.71387.708,2.13805,2.13805,0,0,0,.00586,2.04639,1.9176,1.9176,0,0,0,.72851.72265,2.08314,2.08314,0,0,0,1.04786.26416,2.05471,2.05471,0,0,0,1.03418-.26074,1.88421,1.88421,0,0,0,.7207-.72021,2.03474,2.03474,0,0,0,.26074-1.02295,1.99533,1.99533,0,0,0-.26367-1.02295,1.88287,1.88287,0,0,0-.73535-.71094,2.16459,2.16459,0,0,0-1.0586-.2583A2.06478,2.06478,0,0,0,558.65723,101.041Z"/><path
d="M565.39551,103.61525a1.81777,1.81777,0,0,1-.70508-.71094,2.24142,2.24142,0,0,1,0-2.07617,1.82106,1.82106,0,0,1,.70508-.71094,2.03106,2.03106,0,0,1,1.01953-.25488,2.06553,2.06553,0,0,1,1.0293.25488,1.82193,1.82193,0,0,1,.708.71094,2.24134,2.24134,0,0,1,0,2.07617,1.81865,1.81865,0,0,1-.708.71094,2.06553,2.06553,0,0,1-1.0293.25488A2.03106,2.03106,0,0,1,565.39551,103.61525Zm.37207,4.791h-.91211l6.26367-8.3999h.91211Zm1.23828-5.48389a1.06765,1.06765,0,0,0,.40527-.43213,1.428,1.428,0,0,0,0-1.24805,1.07072,1.07072,0,0,0-.40527-.43212,1.12893,1.12893,0,0,0-.59082-.15577,1.10258,1.10258,0,0,0-.582.15577,1.08384,1.08384,0,0,0-.40235.43212,1.42812,1.42812,0,0,0,0,1.24805,1.08068,1.08068,0,0,0,.40235.43213,1.10267,1.10267,0,0,0,.582.15576A1.129,1.129,0,0,0,567.00586,102.92238Zm2.457,5.373a1.82753,1.82753,0,0,1-.70508-.71094,2.24142,2.24142,0,0,1,0-2.07617,1.82428,1.82428,0,0,1,.70508-.71094,2.03479,2.03479,0,0,1,1.02051-.25488,2.09386,2.09386,0,0,1,1.03808.25488,1.81311,1.81311,0,0,1,.71094.71094,2.24142,2.24142,0,0,1,0,2.07617,1.8163,1.8163,0,0,1-.71094.71094,2.09386,2.09386,0,0,1-1.03808.25488A2.03479,2.03479,0,0,1,569.46289,108.29543Zm1.61426-.69336a1.087,1.087,0,0,0,.41113-.43164,1.40237,1.40237,0,0,0,0-1.248,1.08833,1.08833,0,0,0-.41113-.43213,1.14451,1.14451,0,0,0-.59375-.15576,1.10267,1.10267,0,0,0-.582.15576,1.07407,1.07407,0,0,0-.40235.43213,1.42812,1.42812,0,0,0,0,1.248,1.07276,1.07276,0,0,0,.40235.43164,1.09855,1.09855,0,0,0,.582.15625A1.1402,1.1402,0,0,0,571.07715,107.60207Z"/><path
d="M573.52441,110.08644a6.03494,6.03494,0,0,0,1.04688-1.41308,7.61893,7.61893,0,0,0,.69043-1.7583,7.2924,7.2924,0,0,0,0-3.73487,7.821,7.821,0,0,0-.68652-1.75781,6.00393,6.00393,0,0,0-1.04395-1.416h.95313a5.04963,5.04963,0,0,1,1.00585,1.332,7.30918,7.30918,0,0,1,.65918,1.75488,8.35452,8.35452,0,0,1,0,3.90576,7.3208,7.3208,0,0,1-.65918,1.75537,5.06571,5.06571,0,0,1-1.00585,1.332Z"/></g><g
opacity="0.7"><path
d="M523.77637,156.66359a5.09254,5.09254,0,0,1-1.00489-1..332,7.31841,7.31841,0,0,1-.66015-1.75586,8.387,8.387,0,0,1,0-3.90527,7.29529,7.29529,0,0,1,.66015-1.75489,5.06046,5.06046,0,0,1,1.00489-1.332h.9541a5..967,5.967,0,0,0-1.04395,1.416A7.77433,7.77433,0,0,0,523,149.75734a7.29052,7.29052,0,0,0,0,3.73438,7.61176,7.61176,0,0,0,.68945,1.75879,6.07262,6.07262,0,0,0,1.04688,1.41308Z"/><path
d="M526.17676,151.95949v-.83984h4.02051v..83984Z"/><path
d="M531.97949,154.98293v-.86328l3.44922-3.22266a3.68887,3..68887,0,0,0,.76563-.94141,2.04141,2.04141,0,0,0,.23632-.96,1.63864,1.63864,0,0,0-.22168-.8584,1.51443,1.51443,0,0,0-.62109-.5791,1.962,1.962,0,0,0-.915-.207,2.04184,2.04184,0,0,0-.98633.23438,1.69456,1.69456,0,0,0-.67871.65332,1.883,1.883,0,0,0-.24316.96h-1.00781a2.65481,2.65481,0,0,1,.38378-1.40918,2.717,2.717,0,0,1,1.05665-.99024,3.1068,3.1068,0,0,1,1.49414-.36035,3.06216,3.06216,0,0,1,1.41308.32422,2.50859,2.50859,0,0,1,.99512.89063,2.30466,2..30466,0,0,1,.36328,1.26953,2.68793,2.68793,0,0,1-.35351,1.3164,5.836,5.836,0,0,1-1.13477,1.3711l-2.59766,2.44238h4.332v.92969Z"/><path
d="M543.75781,146.58351v5.42969h1.30762v.90039h-1.30762v2.06934h-.98437v-2.06934h-4.25977v-.90039l4.25391-5.42969Zm-.98437,1.28321-3.22754,4.14648h3.22754Z"/><path
d="M546.24219,154.98293v-1.31934h1.31933v1.31934Z"/><path
d="M550.39355,154.98293V148.7134h-1.96777v-.81055h1.00781a1.20782,1.20782,0,0,0,.9209-..35645,1.32417,1.32417,0,0,0,.333-.96289h.70215v8.39942Z"/><path
d="M553.66992,154.98293v-.86328l3.44922-3.22266a3.68887,3.68887,0,0,0,.76563-.94141,2.04141,2.04141,0,0,0,.23632-.96,1.63864,1.63864,0,0,0-.22168-.8584,1.51443,1.51443,0,0,0-.62109-.5791,1.962,1.962,0,0,0-.915-.207,2.04184,2.04184,0,0,0-.98633.23438,1.69456,1.69456,0,0,0-.67871.65332,1.883,1.883,0,0,0-.24316.96h-1.00781a2.65481,2.65481,0,0,1,.38378-1.40918,2.717,2.717,0,0,1,1.05665-.99024,3.1068,3.1068,0,0,1,1.49414-.36035,3.06216,3.06216,0,0,1,1.41308.32422,2.50859,2.50859,0,0,1,.99512.89063,2.30466,2.30466,0,0,1,.36328,1.26953,2.68784,2.68784,0,0,1-.35352,1.3164,5.83571,5.83571,0,0,1-1.13476,1.3711l-2.59766,2.44238h4.332v.92969Z"/><path
d="M561.65625,150.19191a1.81456,1.81456,0,0,1-.70508-.71094,2.24142,2.24142,0,0,1,0-2.07617,1.821,1.821,0,0,1,.70508-.71093,2.031,2.031,0,0,1,1.01953-.25489,2.06543,2.06543,0,0,1,1.0293.25489,1.82187,1.82187,0,0,1,.708.71093,2.24142,2.24142,0,0,1,0,2.07617,1.81546,1.81546,0,0,1-.708.71094,2.06553,2.06553,0,0,1-1.0293.25488A2.03106,2..03106,0,0,1,561.65625,150.19191Zm.37207,4.791h-.91211l6.26367-8.39942h.91211Zm1.23828-5.4834a1.069,1.069,0,0,0,.40528-.43262,1.4281,1.4281,0,0,0,0-1.248,1.07268,1.07268,0,0,0-.40528-.43165,1.12478,1.12478,0,0,0-.59082-.15625,1.09855,1.09855,0,0,0-.582.15625,1.08582,1.08582,0,0,0-.40234.43165,1.428,1.428,0,0,0,0,1.248,1.08206,1.08206,0,0,0,.40234.43262,1.10683,1.10683,0,0,0,.582.15527A1.13329,1.13329,0,0,0,563.2666,149.49953Zm2.457,5.37305a1.82766,1.82766,0,0,1-.70508-.71094,2.24142,2.24142,0,0,1,0-2.07617,1.82111,1.82111,0,0,1,.70508-.71094,2.03479,2.03479,0,0,1,1.02051-.25488,2.0939,2.0939,0,0,1,1.03809.25488,1.81,1.81,0,0,1,.71093.71094,2.24134,2.24134,0,0,1,0,2.07617,1.8164,1.8164,0,0,1-.71093.71094,2.0939,2.0939,0,0,1-1.03809.25488A2.03479,2.03479,0,0,1,565.72363,154.87258Zm1.61426-.69336a1.09345,1.09345,0,0,0,.41113-.43164,1.40237,1.40237,0,0,0,0-1.24805,1.08956,1.08956,0,0,0-.41113-.43262,1.14884,1.14884,0,0,0-.59375-.15527,1.10683,1.10683,0,0,0-.582.15527,1.07523,1.07523,0,0,0-.40234.43262,1.428,1.428,0,0,0,0,1.24805,1.079,1.079,0,0,0,.40234.43164,1.09855,1.09855,0,0,0,.582.15625A1.14018,1.14018,0,0,0,567.33789,154.17922Z"/><path
d="M569.78516,156.66359a6.04533,6.04533,0,0,0,1.04687-1.41308,7.614,7.614,0,0,0,.69043-1.75879,7.29052,7.29052,0,0,0,0-3.73438,7.82056,7.82056,0,0,0-.68652-1.75781,5.99388,5.99388,0,0,0-1.04395-1.416h.95313a5.04219,5.04219,0,0,1,1.00586,1.332,7.29423,7.29423,0,0,1,.65918,1.75489,8.35281,8.35281,0,0,1,0,3.90527,7.31733,7.31733,0,0,1-.65918,1..75586,5.074,5.074,0,0,1-1.00586,1.332Z"/></g><g
opacity="0.7"><path
d="M523.669,203.85207a5.0927,5.0927,0,0,1-1.00489-1.332,7.31841,7.31841,0,0,1-.66015-1.75586,8.387,8.387,0,0,1,0-3.90528,7.29521,7.29521,0,0,1,.66015-1.75488,5.06029,5.06029,0,0,1,1.00489-1.332h.9541a5.96683,5.96683,0,0,0-1.04395,1.416,7.77415,7.77415,0,0,0-.68652,1.75781,7.29019,7.29019,0,0,0,0,3.73437,7.61158,7.61158,0,0,0,.68945,1.75879,6.07269,6.07269,0,0,0,1.04688,1.41309Z"/><path
d="M526.06934,199.148v-.83985h4.0205v.83985Z"/><path
d="M531.87207,202.1714v-.86328l3.44922-3.22265a3.68876,3.68876,0,0,0,.76562-.94141,2.04133,2.04133,0,0,0,.23633-.96,1.63864,1.63864,0,0,0-.22168-.8584,1.5143,1.5143,0,0,0-.62109-.5791,1.96187,1.96187,0,0,0-.915-.207,2.04181,2.04181,0,0,0-.98633.23437,1.69469,1.69469,0,0,0-.67871.65332,1.883,1.883,0,0,0-.24316.96h-1.00782a2.65475,2.65475,0,0,1,.38379-1.40918,2.717,2.717,0,0,1,1.05664-.99023,3.10685,3.10685,0,0,1,1.49414-.36035,3.06217,3.06217,0,0,1,1.41309.32422,2.50857,2.50857,0,0,1,.99512.89062,2.30468,2.30468,0,0,1,.36328,1..26953,2.688,2.688,0,0,1-.35352,1.31641,5.83573,5.83573,0,0,1-1.13476,1.37109l-2.59766,2.44239h4.332v.92968Z"/><path
d="M541.87988,196.982a3.13751,3..13751,0,0,1,1.41895.38379,2.54285,2.54285,0,0,1,.96875.93848,2.58108,2.58108,0,0,1,.34863,1.335,2.5192,2.5192,0,0,1-.38769,1.38379,2.62618,2.62618,0,0,1-1.07325.95019,3.70178,3.70178,0,0,1-3.05761.02442,2.68269,2.68269,0,0,1-1.07032-.88477,2.31261,2.31261,0,0,1-.42382-1.28125h1.0205a1.54346,1.54346,0,0,0,.29688.82813,1.80749,1.80749,0,0,0,.71094.57324,2.29107,2.29107,0,0,0,.97851.207,2.19554,2.19554,0,0,0,1.01953-.23145,1.71445,1.71445,0,0,0,.9541-1.56933,1.73608,1.73608,0,0,0-.96289-1.58985,2.20626,2.20626,0,0,0-1.02343-.23339H540.71v-.83985l2.39356-2.3164H539.084v-.8877h5.23243v.85156Z"/><path
d="M545.75684,202.1714v-1.31933h1.31933v1.31933Z"/><path
d="M552.83105,193.772v5.42969h1.30762v.90039h-1.30762v2.06933h-.98437v-2.06933h-4.25977v-.90039l4.25391-5.42969Zm-.98437,1.2832-3.22754,4.14649h3.22754Z"/><path
d="M555.45312,202.1714v-.86328l3.44922-3.22265a3.68883,3.68883,0,0,0,.76563-.94141,2.04133,2.04133,0,0,0,.23633-.96,1.63874,1.63874,0,0,0-.22168-.8584,1.51433,1.51433,0,0,0-.6211-.5791,1.96184,1.96184,0,0,0-.915-.207,2.04177,2.04177,0,0,0-.98632.23437,1.69463,1.69463,0,0,0-.67871.65332,1.883,1.883,0,0,0-.24317.96h-1.00781a2.65475,2.65475,0,0,1,.38379-1.40918,2.71692,2.71692,0,0,1,1.05664-.99023,3.1068,3.1068,0,0,1,1.49414-.36035,3.06216,3.06216,0,0,1,1.41308.32422,2.50857,2.50857,0,0,1,.99512.89062,2.30468,2.30468,0,0,1,.36328,1.26953,2.688,2.688,0,0,1-.35351,1.31641,5.8358,5.8358,0,0,1-1.13477,1.37109l-2.59765,2.44239h4.332v.92968Z"/><path
d="M563.43945,197.38039a1.81454,1.81454,0,0,1-.70507-.71094,2.24134,2.24134,0,0,1,0-2.07617,1.821,1.821,0,0,1,.70507-.71094,2.03108,2.03108,0,0,1,1.01953-.25488,2.0655,2.0655,0,0,1,1.0293.25488,1.82183,1.82183,0,0,1,.708.71094,2.24142,2.24142,0,0,1,0,2.07617,1.8154,1.8154,0,0,1-.708.71094,2.0655,2.0655,0,0,1-1.0293.25488A2.03108,2.03108,0,0,1,563.43945,197.38039Zm.37207,4.791h-.91211l6.26368-8..39941h.91211Zm1.23828-5.48339a1.069,1.069,0,0,0,.40528-.43262,1.42812,1.42812,0,0,0,0-1.24805,1.07259,1.07259,0,0,0-.40528-.43164,1.12475,1.12475,0,0,0-.59082-.15625,1.09857,1.09857,0,0,0-.582.15625,1.08579,1.08579,0,0,0-.40234.43164,1.428,1.428,0,0,0,0,1.24805,1.08212,1.08212,0,0,0,.40234.43262,1.10685,1.10685,0,0,0,.582.15527A1.13326,1.13326,0,0,0,565.0498,196.688Zm2.457,5.373a1.82744,1.82744,0,0,1-.70508-.71093,2.24144,2.24144,0,0,1,0-2.07618,1.821,1.821,0,0,1,.70508-.71093,2.03462,2.03462,0,0,1,1.0205-.25489,2.0938,2.0938,0,0,1,1.03809.25489,1.81,1.81,0,0,1,.71094.71093,2.24144,2.24144,0,0,1,0,2.07618,1.81634,1.81634,0,0,1-.71094.71093,2.0939,2.0939,0,0,1-1.03809.25489A2.03473,2.03473,0,0,1,567.50684,202.06105Zm1.61425-.69336a1.09334,1..09334,0,0,0,.41114-.43164,1.40243,1.40243,0,0,0,0-1.248,1.08959,1.08959,0,0,0-.41114-.43262,1.14875,1.14875,0,0,0-.59375-.15527,1.10676,1.10676,0,0,0-.582.15527,1.0753,1.0753,0,0,0-.40234.43262,1.428,1.428,0,0,0,0,1.248,1.07891,1.07891,0,0,0,.40234.43164,1.09848,1.09848,0,0,0,.582.15625A1.14008,1.14008,0,0,0,569.12109,201.36769Z"/><path
d="M571.56836,203.85207a6.0454,6.0454,0,0,0,1.04687-1.41309,7.61387,7.61387,0,0,0,.69043-1.75879,7.29019,7.29019,0,0,0,0-3.73437,7.82037,7.82037,0,0,0-.68652-1.75781,5.99364,5.99364,0,0,0-1.04394-1.416h.95312a5.0416,5.0416,0,0,1,1.00586,1.332,7.29373,7.29373,0,0,1,.65918,1.75488,8.35285,8.35285,0,0,1,0,3.90528,7.31691,7.31691,0,0,1-.65918,1.75586,5.07376,5.07376,0,0,1-1.00586,1.332Z"/></g></svg>
\ No newline at end of file
diff --git a/images/php8/php_8_1_released.png b/images/php8/php_8_1_released.png
new file mode 100644
index 0000000000..ec540a532e
Binary files /dev/null and b/images/php8/php_8_1_released.png differ
diff --git a/releases/8.1/common.php b/releases/8.1/common.php
new file mode 100644
index 0000000000..c048f8a1c9
--- /dev/null
+++ b/releases/8.1/common.php
@@ -0,0 +1,75 @@
+<?php declare(strict_types=1);
+
+namespace releases\php81;
+
+include_once __DIR__ . '/../../include/prepend.inc';
+
+function language_redirect(string $currentLang): void {
+ // We don't use the general language selection of php.net,
+ // so soldier on with this one.
+ return;
+}
+
+function common_header(string $description): void {
+ global $MYSITE;
+
+ $meta_image_path = \htmlspecialchars(
+ \filter_var($MYSITE . 'images/php8/php_8_1_released.png', \FILTER_VALIDATE_URL));
+ $meta_description = \htmlspecialchars($description);
+
+ \site_header("PHP 8..1.0 Release Announcement", [
+ 'current' => 'php8',
+ 'css' => ['php8.css'],
+ 'meta_tags' => <<<META
+<meta name="twitter:card" content="summary_large_image" />
+<meta name="twitter:site" content="@official_php" />
+<meta name="twitter:title" content="PHP 8.1 Released" />
+<meta name="twitter:description" content="{$meta_description}" />
+<meta name="twitter:creator" content="@official_php" />
+<meta name="twitter:image:src" content="{$meta_image_path}" />
+
+<meta itemprop="name" content="PHP 8.1 Released" />
+<meta itemprop="description" content="{$meta_description}" />
+<meta itemprop="image" content="{$meta_image_path}" />
+
+<meta property="og:image" content="{$meta_image_path}" />
+<meta property="og:description" content="{$meta_description}" />
+META
+ ]);
+}
+
+function language_chooser(string $currentLang): void {
+ $LANGUAGES = [
+ 'en' => 'English',
+ 'ru' => 'Русский',
+ ];
+
+ // Print out the form with all the options
+ echo '
+ <form action="" method="get" id="changelang"
name="changelang">
+ <fieldset>
+ <label for="changelang-langs">Change language:</label>
+ <select onchange="location = this.value + \'.php\'"
name="lang" id="changelang-langs">
+';
+
+ $tab = ' ';
+ foreach ($LANGUAGES as $lang => $text) {
+ $selected = ($lang === $currentLang) ? ' selected="selected"' :
'';
+ echo $tab, "<option
value='$lang'$selected>$text</option>\n";
+ }
+
+ echo ' </select>
+ </fieldset>
+ </form>
+';
+}
+
+function message($code, $language = 'en')
+{
+ $original = require __DIR__ . '/languages/en.php';
+ if (($language !== 'en') && file_exists(__DIR__ . '/languages/' .
$language . '.php')) {
+ $translation = require __DIR__ . '/languages/' . $language . '.php';
+ }
+
+ return $translation[$code] ?? $original[$code] ?? $code;
+}
\ No newline at end of file
diff --git a/releases/8..1/en.php b/releases/8.1/en.php
new file mode 100644
index 0000000000..aa9133cd7a
--- /dev/null
+++ b/releases/8.1/en.php
@@ -0,0 +1,5 @@
+<?php
+
+$lang = 'en';
+
+include_once __DIR__ . '/release.inc';
\ No newline at end of file
diff --git a/releases/8.1/index.php b/releases/8.1/index.php
new file mode 100644
index 0000000000..f7c7549fab
--- /dev/null
+++ b/releases/8.1/index.php
@@ -0,0 +1,5 @@
+<?php
+ $_SERVER['BASE_PAGE'] = 'releases/8.1/index.php';
+include(__DIR__ . '/../../include/site.inc');
+
+mirror_redirect('/releases/8.1/en.php');
diff --git a/releases/8.1/languages/en.php b/releases/8.1/languages/en.php
new file mode 100644
index 0000000000..01ba53075e
--- /dev/null
+++ b/releases/8.1/languages/en.php
@@ -0,0 +1,91 @@
+<?php
+
+return [
+ 'common_header' => 'PHP 8.1 is a major update of the PHP language. Enums,
readonly properties, first-class callable syntax, fibers, intersection types, performance
improvements and more.',
+ 'main_title' => 'Released!',
+ 'main_subtitle' => 'PHP 8.1 is a major update of the PHP language.<br
class="display-none-md"> It contains many new features, including enums,
readonly properties, first-class callable syntax, fibers,
intersection types, performance improvements and more.',
+ 'upgrade_now' => 'Upgrade to PHP 8.1 now!',
+ 'documentation' => 'Doc',
+
+ 'enumerations_title' => 'Enumerations',
+ 'enumerations_content' => 'Use enum instead of a set of constants and get
validation out of the box.',
+
+ 'readonly_properties_title' => 'Readonly Properties',
+ 'readonly_properties_content' => '<p>Readonly properties cannot be
changed after initialization, i.e. after a value is assigned to them.<br>They are a great way
to model value objects and data-transfer objects.</p>',
+
+ 'first_class_callable_syntax_title' => 'First-class Callable Syntax',
+ 'first_class_callable_syntax_content' => '<p>It is now possible to get
a reference to any function – this is called first-class callable syntax.</p>',
+
+ 'new_in_initializers_title' => 'New in initializers',
+ 'new_in_initializers_content' => '<p>Objects can now be used as default
parameter values, static variables, and global constants, as well as in attribute
arguments.</p>
+ <p>This effectively makes it possible to use <strong>nested
attributes</strong>.</p>',
+
+ 'pure_intersection_types_title' => 'Pure Intersection Types',
+ 'pure_intersection_types_content' => '<p>Use intersection types when
you need to require a value to satisfy multiple type constraints at the same time.</p>
+ <p>It is not currently possible to mix intersection and union types together such
as <code>A&B|C</code>.</p>',
+
+ 'never_return_type_title' => 'Never return type',
+ 'never_return_type_content' => '<p>A function or method declared with
the <code>never</code> type indicates that it will not return a value and will either
throw an exception or end the script’s execution with a call of <code>die()</code>,
<code>exit()</code>, <code>trigger_error()</code>, or something
similar.</p>',
+
+ 'final_class_constants_title' => 'Final class constants',
+ 'final_class_constants_content' => '<p>It is possible to declare final
class constants, so that they cannot be overridden in child classes.</p>',
+
+ 'octal_numeral_notation_title' => 'Explicit Octal numeral notation',
+ 'octal_numeral_notation_content' => '<p>It is now possible to write
octal numbers with the explicit <code>0o</code> prefix.</p>',
+
+ 'fibers_title' => 'Fibers',
+ 'fibers_content' => '<p>Fibers are primitives for implementing
lightweight cooperative concurrency. They are a means of creating code blocks that can be paused and
resumed like Generators, but from anywhere in the stack. Fibers themselves don\'t magically
provide concurrency, there still needs to be an event loop. However, they allow blocking and
non-blocking implementations to share the same API.</p><p>Fibers allow getting rid of
the boilerplate code previously seen with <code>Promise::then()</code> or Generator
based coroutines. Libraries will generally build further abstractions around Fibers, so
there\'s no need to interact with them directly.</p>',
+
+ 'array_unpacking_title' => 'Array unpacking support for string-keyed
arrays',
+ 'array_unpacking_content' => '<p>PHP supported unpacking inside arrays
through the spread operator before, but only if the arrays had integer keys. Now it is possible to
unpack arrays with string keys too.</p>',
+
+ 'performance_title' => 'Performance Improvements',
+ 'performance_chart' => '<strong>Symfony Demo App request
time</strong><br>
+ 25 consecutive runs, 250 requests (sec)<br>
+ (less is better)<br>',
+ 'performance_results_title' => 'The result (relative to PHP 8.0):',
+ 'performance_results_symfony' => '23.0% Symfony Demo speedup',
+ 'performance_results_wordpress' => '3.5% WordPress speedup',
+ 'performance_related_functions_title' => 'Performance related features in PHP
8.1:',
+ 'performance_jit_arm64' => 'JIT backend for ARM64 (AArch64)',
+ 'performance_inheritance_cache' => 'Inheritance cache (avoid relinking
classes in each request)',
+ 'performance_fast_class_name_resolution' => 'Fast class name resolution
(avoid lowercasing and hash lookup)',
+ 'performance_timelib_date_improvements' => 'timelib and ext/date performance
improvements',
+ 'performance_spl' => 'SPL file-system iterators improvements',
+ 'performance_serialize_unserialize' => 'serialize/unserialize
optimizations',
+ 'performance_internal_functions' => 'Some internal functions optimization
(get_declared_classes(), explode(), strtr(), strnatcmp(), dechex())',
+ 'performance_jit' => 'JIT improvements and fixes',
+
+ 'other_new_title' => 'New Classes, Interfaces, and Functions',
+ 'other_new_returntypewillchange' => 'New
<code>#[ReturnTypeWillChange]</code> attribute.',
+ 'other_new_fsync_fdatasync' => 'New <code>fsync</code> and
<code>fdatasync</code> functions.',
+ 'other_new_array_is_list' => 'New <code>array_is_list</code>
function.',
+ 'other_new_sodium_xchacha20' => 'New Sodium XChaCha20 functions.',
+
+ 'bc_title' => 'Deprecations and backward compatibility breaks',
+ 'bc_null_to_not_nullable' => 'Passing null to non-nullable internal function
parameters is deprecated.',
+ 'bc_return_types' => 'Tentative return types in PHP built-in class
methods',
+ 'bc_serializable_deprecated' => '<code>Serializable</code>
interface deprecated.',
+ 'bc_html_entity_encode_decode' => 'HTML entity en/decode functions process
single quotes and substitute by default.',
+ 'bc_globals_restrictions' => '<code>$GLOBALS</code> variable
restrictions.',
+ 'bc_mysqli_exceptions' => 'MySQLi: Default error mode set to
exceptions.',
+ 'bc_float_to_int_conversion' => 'Implicit incompatible float to int
conversion is deprecated.',
+ 'bc_finfo_objects' => 'finfo Extension: <code>file_info</code>
resources migrated to existing finfo objects.',
+ 'bc_imap_objects' => 'IMAP: imap resources migrated to
<code>IMAP\Connection</code> class objects.',
+ 'bc_ftp_objects' => 'FTP Extension: Connection resources migrated to
<code>FTP\Connection</code> class objects.',
+ 'bc_gd_objects' => 'GD Extension: Font identifiers migrated to
<code>GdFont</code> class objects.',
+ 'bc_ldap_objects' => 'LDAP: resources migrated to
<code>LDAP\Connection</code>, <code>LDAP\Result</code>, and
<code>LDAP\ResultEntry</code> objects.',
+ 'bc_postgresql_objects' => 'PostgreSQL: resources migrated to
<code>PgSql\Connection</code>, <code>PgSql\Result</code>, and
<code>PgSql\Lob</code> objects.',
+ 'bc_pspell_objects' => 'Pspell: pspell, pspell config resources migrated to
<code>PSpell\Dictionary</code>, <code>PSpell\Config</code> class
objects.',
+
+ 'footer_title' => 'Better performance, better syntax, improved type
safety.',
+ 'footer_content' => '<p>
+ For source downloads of PHP 8.1 please visit the <a href="https://www.php.net/downloads">downloads</a>
page.
+ Windows binaries can be found on the <a href="https://windows.php.net/download">PHP for
Windows</a> site.
+ The list of changes is recorded in the <a href="https://www.php.net/ChangeLog-8.php#PHP_8_1">ChangeLog</a>.
+ </p>
+ <p>
+ The <a href="/manual/en/migration81.php">migration guide</a> is
available in the PHP Manual. Please
+ consult it for a detailed list of new features and backward-incompatible changes.
+ </p>',
+];
\ No newline at end of file
diff --git a/releases/8.1/languages/ru.php b/releases/8.1/languages/ru.php
new file mode 100644
index 0000000000..7c26902b21
--- /dev/null
+++ b/releases/8.1/languages/ru.php
@@ -0,0 +1,97 @@
+<?php
+
+/**
+ * En-revision: 20b1bbed844a4609f3400ef0cd4e6be6fea323af
+ */
+
+return [
+ 'common_header' => 'PHP 8.1 — большое обновление
языка PHP: перечисления, readonly-свойства, callback-функции как
объекты первого класса, файберы, пересечение типов,
улучшения производительности и многое другое.',
+ 'main_title' => 'релизнут!',
+ 'main_subtitle' => 'PHP 8.1 — большое обновление
языка PHP.<br class="display-none-md"> Оно содержит
множество новых возможностей, включая перечисления,
readonly-свойства, callback-функции как объекты первого
класса, файберы, пересечение типов, улучшения
производительности и многое другое.',
+ 'upgrade_now' => 'Переходите на PHP 8.1!',
+ 'documentation' => 'Документация',
+
+ 'enumerations_title' => 'Перечисления',
+ 'enumerations_content' => 'Используйте перечисления
вместо набора констант, чтобы валидировать их
автоматически во время выполнения кода.',
+
+ 'readonly_properties_title' => 'Readonly-свойства',
+ 'readonly_properties_content' => '<p>Readonly-свойства
нельзя изменить после инициализации (т.е. когда им было
присвоено значение).<br>Они будут крайне полезны при
реализации объектов типа <abbr
title="Объект-значение">VO</abbr> и <abbr
title="Объект передачи данных">DTO</abbr>.</p>',
+
+ 'first_class_callable_syntax_title' => 'Callback-функции как
объекты первого класса',
+ 'first_class_callable_syntax_content' => '<p>С помощью
нового синтаксиса любая функция может выступать в
качестве объекта первого класса. Тем самым она будет
рассматриваться как обычное значение, которое можно,
например, сохранить в переменную.</p>',
+
+ 'new_in_initializers_title' => 'Расширенная
инициализация объектов ',
+ 'new_in_initializers_content' => '<p>Объекты теперь
можно использовать в качестве значений параметров по
умолчанию, статических переменных и глобальных
констант, а также в аргументах атрибутов.</p>
+ <p>Таким образом появилась возможность
использования <strong>вложенных
атрибутов</strong>.</p>',
+
+ 'pure_intersection_types_title' => 'Пересечение типов',
+ 'pure_intersection_types_content' => '<p>Теперь в
объявлении типов параметров можно указать, что
значение должно относиться к нескольким типам
одновременно.</p>
+ <p>В данный момент пересечения типов нельзя
использовать вместе с объединёнными типами, например,
<code>A&B|C</code>.</p>',
+
+ 'never_return_type_title' => 'Тип возвращаемого
значения never',
+ 'never_return_type_content' => '<p>Функция или метод,
объявленные с типом <code>never</code>, указывают на то,
что они не вернут значение и либо выбросят исключение,
либо завершат выполнение скрипта с помощью вызова
функции <code>die()</code>, <code>exit()</code>,
<code>trigger_error()</code> или чем-то подобным.</p>',
+
+ 'final_class_constants_title' => 'Окончательные
константы класса',
+ 'final_class_constants_content' => '<p>Теперь константы
класса можно объявить как окончательные (final), чтобы их
нельзя было переопределить в дочерних
классах.</p>',
+
+ 'octal_numeral_notation_title' => 'Явное восьмеричное
числовое обозначение',
+ 'octal_numeral_notation_content' => '<p>Теперь можно
записывать восьмеричные числа с явным префиксом
<code>0o</code>.</p>',
+
+ 'fibers_title' => 'Файберы',
+ 'fibers_content' => '<p>Файберы — это примитивы
для реализации облегчённой невытесняющей
конкурентности. Они являются средством создания
блоков кода, которые можно приостанавливать и
возобновлять, как генераторы, но из любой точки стека.
Файберы сами по себе не предоставляют возможностей
асинхронного выполнения задач, всё равно должен быть
цикл обработки событий. Однако они позволяют
блокирующим и неблокирующим реализациям использовать
один и тот же API.</p>
+ <p>Файберы позволяют избавиться от шаблонного
кода, который ранее использовался с помощью
<code>Promise::then()</code> или корутин на основе
генератора. Библиотеки обычно создают дополнительные
абстракции вокруг файберов, поэтому нет необходимости
взаимодействовать с ними напрямую.</p>',
+
+ 'array_unpacking_title' => 'Поддержка распаковки
массивов со строковыми ключами',
+ 'array_unpacking_content' => '<p>PHP раньше
поддерживал распаковку массивов с помощью оператора
<code>...</code>, но только если массивы были с
целочисленными ключами. Теперь можно также
распаковывать массивы со строковыми ключами.</p>',
+
+ 'performance_title' => 'Улучшения
производительности',
+ 'performance_chart' => '<strong>Время запроса
демо-приложения Symfony</strong><br>
+ 25 последовательных прогонов, 250 запросов
(сек)<br>
+ (чем меньше тем лучше)<br>',
+ 'performance_results_title' => 'Результат (относительно
PHP 8.0):',
+ 'performance_results_symfony' => 'Ускорение
демо-приложения Symfony на 23.0%',
+ 'performance_results_wordpress' => 'Ускорение WordPress на
3.5%',
+ 'performance_related_functions_title' => 'Функциональность с
улучшенной производительностью в PHP 8.1:',
+ 'performance_jit_arm64' => 'Бэкенд JIT для ARM64 (AArch64).',
+ 'performance_inheritance_cache' => 'Кеш наследования
(избегайте повторного связывания классов в каждом
запросе).',
+ 'performance_fast_class_name_resolution' => 'Быстрое
разрешение имени класса (избегайте строчных букв и
поиска по хешу).',
+ 'performance_timelib_date_improvements' => 'Улучшения
производительности <code>timelib</code> и
<code>ext/date</code>.',
+ 'performance_spl' => 'Улучшения итераторов
файловой системы SPL.',
+ 'performance_serialize_unserialize' => 'Оптимизация функций
<code>serialize()</code>/<code>unserialize()</code>.',
+ 'performance_internal_functions' => 'Оптимизация
некоторых внутренних функций
(<code>get_declared_classes()</code>, <code>explode()</code>,
+ <code>strtr()</code>, <code>strnatcmp()</code>,
<code>dechex()</code>).',
+ 'performance_jit' => 'Улучшения и исправления
JIT.',
+
+ 'other_new_title' => 'Новые классы, интерфейсы и
функции',
+ 'other_new_returntypewillchange' => 'Добавлен новый
атрибут <code>#[ReturnTypeWillChange]</code>.',
+ 'other_new_fsync_fdatasync' => 'Добавлены функции
<code>fsync</code> и <code>fdatasync</code>.',
+ 'other_new_array_is_list' => 'Добавлена новая функция
<code>array_is_list</code>.',
+ 'other_new_sodium_xchacha20' => 'Новые функции Sodium
XChaCha20.',
+
+ 'bc_title' => 'Устаревшая функциональность и
изменения в обратной совместимости',
+ 'bc_null_to_not_nullable' => 'Передача значения
<code>NULL</code> параметрам встроенных функций, не
допускающим значение <code>NULL</code>, объявлена
устаревшей.',
+ 'bc_return_types' => 'Предварительные типы
возвращаемых значений во встроенных методах классов
PHP',
+ 'bc_serializable_deprecated' => 'Интерфейс
<code>Serializable</code> объявлен устаревшим.',
+ 'bc_html_entity_encode_decode' => 'Функции по
кодированию/декодированию HTML-сущностей преобразуют
одинарные кавычки и заменяют недопустимые символы на
символ замены Юникода.',
+ 'bc_globals_restrictions' => 'Ограничения
использования переменной <code>$GLOBALS</code>.',
+ 'bc_mysqli_exceptions' => 'MySQLi: Режим ошибок по
умолчанию установлен на выбрасывание исключения.',
+ 'bc_float_to_int_conversion' => 'Неявное несовместимое
преобразование числа с плавающей точкой к целому
числу объявлено устаревшим.',
+ 'bc_finfo_objects' => 'Модуль finfo: ресурсы
<code>file_info</code> теперь представлены как объекты
<code>finfo</code>.',
+ 'bc_imap_objects' => 'IMAP: ресурсы <code>imap</code>
теперь представлены как объекты
<code>IMAP\Connection</code>.',
+ 'bc_ftp_objects' => 'Модуль FTP: ресурсы
<code>Connection</code> теперь представлены как объекты
<code>FTP\Connection</code>.',
+ 'bc_gd_objects' => 'Модуль GD: <code>Font
identifiers</code> теперь представлены как объекты
<code>GdFont</code>.',
+ 'bc_ldap_objects' => 'LDAP: ресурсы теперь
представлены как объекты <code>LDAP\Connection</code>,
<code>LDAP\Result</code> и <code>LDAP\ResultEntry</code>.',
+ 'bc_postgresql_objects' => 'PostgreSQL: ресурсы теперь
представлены как объекты <code>PgSql\Connection</code>,
<code>PgSql\Result</code> и <code>PgSql\Lob</code>.',
+ 'bc_pspell_objects' => 'Pspell: ресурсы
<code>pspell</code>, <code>pspell config</code> теперь
представлены как объекты <code>PSpell\Dictionary</code>,
<code>PSpell\Config</code>.',
+
+ 'footer_title' => 'Выше производительность, лучше
синтаксис, надёжнее система типов.',
+ 'footer_content' => '<p>
+ Для загрузки исходного кода PHP 8.1 посетите
страницу <a href="https://www.php.net/downloads">Downloads</a>.
+ Бинарные файлы Windows находятся на сайте <a href="https://windows.php.net/download">PHP for
Windows</a>.
+ Список изменений перечислен на странице <a
href="https://www.php.net/ChangeLog-8.php#PHP_8_1">ChangeLog</a>.
+ </p>
+ <p>
+ <a href="/manual/ru/migration81.php">Руководство по
миграции</a> доступно в разделе документации.
+ Ознакомьтесь с ним, чтобы узнать обо всех новых
возможностях и изменений, затрагивающих обратную
совместимость.
+ </p>',
+];
\ No newline at end of file
diff --git a/releases/8.1/release.inc b/releases/8.1/release.inc
new file mode 100644
index 0000000000..495741a99e
--- /dev/null
+++ b/releases/8.1/release.inc
@@ -0,0 +1,618 @@
+<?php
+
+use function releases\php81\common_header;
+use function releases\php81\language_chooser;
+use function releases\php81\language_redirect;
+use function releases\php81\message;
+
+if (!isset($lang)) {
+ $lang = 'en';
+}
+
+$_SERVER['BASE_PAGE'] = 'releases/8.1/' . $lang . '.php';
+
+include_once __DIR__ . '/common.php';
+
+language_redirect($lang);
+
+common_header(message('common_header', $lang));
+
+?>
+<section class="php8-section php8-section_dark php8-section_header center">
+ <div class="page-tools">
+ <div class="change-language">
+ <?php language_chooser($lang); ?>
+ </div>
+ </div>
+ <div class="php8-section__content">
+ <div class="php8-logo">
+ <img src="/images/php8/logo_php8_1.svg" alt="php8.1"
height="126" width="343">
+ </div>
+ <div class="php8-title"><?= message('main_title', $lang)
?></div>
+ <div class="php8-subtitle"><?= message('main_subtitle', $lang)
?></div>
+ <div class="php8-button-wrapper center">
+ <a class="php8-button php8-button_light"
href="/downloads"><?= message('upgrade_now', $lang) ?></a>
+ </div>
+ </div>
+</section>
+
+<section class="php8-section center">
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="enumerations">
+ <?= message('enumerations_title', $lang) ?>
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/enumerations">RFC</a>
<a class="php8-rfc" href="/manual/<?= $lang
?>/language.enumerations.php"><?= message('documentation', $lang)
?></a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP ≤8.0</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+class Status
+{
+ const DRAFT = 'draft';
+ const PUBLISHED = 'published';
+ const ARCHIVED = 'archived';
+}
+acceptStatus(string $status) {...}
+PHP
+
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP
8.1</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+enum Status
+{
+ case draft;
+ case published;
+ case archived;
+}
+acceptStatus(Status $status) {...}
+PHP
+
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <?= message('enumerations_content', $lang) ?>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="readonly_properties">
+ <?= message('readonly_properties_title', $lang) ?>
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/readonly_properties_v2">RFC</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP ≤8.0</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+class BlogData
+{
+ private Status $status;
+
+ public function __construct(Status $status)
+ {
+ $this->status = $status;
+ }
+
+ public function getStatus(): Status
+ {
+ return $this->status;
+ }
+}
+PHP
+
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP
8.1</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+class BlogData
+{
+ public readonly Status $status;
+
+ public function __construct(Status $status)
+ {
+ $this->status = $status;
+ }
+}
+PHP
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <?= message('readonly_properties_content', $lang) ?>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="first_class_callable_syntax">
+ <?= message('first_class_callable_syntax_title', $lang) ?>
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/first_class_callable_syntax">RFC</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP ≤8.0</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+$foo = [$this, 'foo'];
+
+$fn = Closure::fromCallable('strlen');
+PHP
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP
8.1</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+$foo = $this->foo(....);
+
+$fn = strlen(...);
+PHP
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <?= message('first_class_callable_syntax_content', $lang) ?>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="new_in_initializers">
+ <?= message('new_in_initializers_title', $lang) ?>
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/new_in_initializers">RFC</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP ≤8.0</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+class Service
+{
+ private Logger $logger;
+
+ public function __construct(
+ ?Logger $logger = null,
+ ) {
+ $this->logger = $logger ?? new NullLogger();
+ }
+}
+PHP
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP
8.1</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+class Service
+{
+ private Logger $logger;
+
+ public function __construct(
+ Logger $logger = new NullLogger(),
+ ) {
+ $this->logger = $logger;
+ }
+}
+PHP
+ );?>
+ </div>
+ </div>
+ </div>
+
+ <div class="php8-compare__content">
+ <?= message('new_in_initializers_content', $lang) ?>
+ </div>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP ≤8.0</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+class User
+{
+ /**
+ * @Assert\All({
+ * @Assert\NotNull,
+ * @Assert\Length(min=5)
+ * })
+ */
+ public string $name = '';
+}
+PHP
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP
8.1</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+class User
+{
+ #[\Assert\All(
+ new \Assert\NotNull,
+ new \Assert\Length(min: 6))
+ ]
+ public string $name = '';
+}
+PHP
+ );?>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="pure_intersection_types">
+ <?= message('pure_intersection_types_title', $lang) ?>
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/pure-intersection-types">RFC</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP ≤8.0</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+function count_and_iterate(Iterator $value) {
+ if (!($value instanceof Countable)) {
+ throw new TypeError('value must be Countable');
+ }
+
+ foreach($value as $val) {
+ echo $val;
+ }
+
+ count($value);
+}
+PHP
+
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP
8.1</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+function count_and_iterate(Iterator&Countable $value) {
+ foreach($value as $val) {
+ echo $val;
+ }
+
+ count($value);
+}
+PHP
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <?= message('pure_intersection_types_content', $lang) ?>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="never_return_type">
+ <?= message('never_return_type_title', $lang) ?>
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/noreturn_type">RFC</a>
<a class="php8-rfc" href="/manual/<?= $lang
?>/language.types.declarations.php#language.types.declarations.never"><?=
message('documentation', $lang) ?></a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP ≤8.0</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+function redirect(string $uri) {
+ header('Location: ' . $uri);
+ exit();
+}
+
+function redirectToLoginPage() {
+ redirect('/login');
+ echo 'Hello'; // <- dead code
+}
+PHP
+
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP
8.1</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+function redirect(string $uri): never {
+ header('Location: ' . $uri);
+ exit();
+}
+
+function redirectToLoginPage(): never {
+ redirect('/login');
+ echo 'Hello'; // <- dead code detected by static analysis
+}
+PHP
+
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <?= message('never_return_type_content', $lang) ?>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="final_class_constants">
+ <?= message('final_class_constants_title', $lang) ?>
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/final_class_const">RFC</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP ≤8.0</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+class Foo
+{
+ public const XX = "foo";
+}
+
+class Bar extends Foo
+{
+ public const XX = "bar"; // No error
+}
+PHP
+
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP
8.1</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+class Foo
+{
+ final public const XX = "foo";
+}
+
+class Bar extends Foo
+{
+ public const XX = "bar"; // Fatal error
+}
+PHP
+
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <?= message('final_class_constants_content', $lang) ?>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="explicit_octal_numeral_notation">
+ <?= message('octal_numeral_notation_title', $lang) ?>
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/explicit_octal_notation">RFC</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP ≤8.0</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+016 === 16; // false because
016 is octal for 14 and it's confusing
+016 === 14; // true
+PHP
+
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP
8.1</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+0o16 === 16; // false — not confusing with explicit notation
+0o16 === 14; // true
+PHP
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <?= message('octal_numeral_notation_content', $lang) ?>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2" id="fibers">
+ <?= message('fibers_title', $lang) ?>
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/fibers">RFC</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP ≤8.0</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+$httpClient->request('https://example.com/')
+ ->then(function (Response $response) {
+ return $response->getBody()->buffer();
+ })
+ ->then(function (string $responseBody) {
+ print json_decode($responseBody)['code'];
+ });
+PHP
+
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP
8.1</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+$response = $httpClient->request('https://example.com/');
+print json_decode($response->getBody()->buffer())['code'];
+PHP
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <?= message('fibers_content', $lang) ?>
+ </div>
+ </div>
+
+ <div class="php8-compare">
+ <h2 class="php8-h2"
id="array_unpacking_support_for_string_keyed_arrays">
+ <?= message('array_unpacking_title', $lang) ?>
+ <a class="php8-rfc" href="https://wiki.php.net/rfc/array_unpacking_string_keys">RFC</a>
+ </h2>
+ <div class="php8-compare__main">
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label">PHP ≤8.0</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+$arrayA = ['a' => 1];
+$arrayB = ['b' => 2];
+
+$result = array_merge(['a' => 0], $arrayA, $arrayB);
+
+// ['a' => 1, 'b' => 2]
+PHP
+ );?>
+ </div>
+ </div>
+ <div class="php8-compare__arrow"></div>
+ <div class="php8-compare__block example-contents">
+ <div class="php8-compare__label php8-compare__label_new">PHP
8.1</div>
+ <div class="php8-code phpcode">
+ <?php highlight_php_trimmed(
+ <<<'PHP'
+$arrayA = ['a' => 1];
+$arrayB = ['b' => 2];
+
+$result = ['a' => 0, ...$arrayA, ...$arrayB];
+
+// ['a' => 1, 'b' => 2]
+PHP
+ );?>
+ </div>
+ </div>
+ </div>
+ <div class="php8-compare__content">
+ <?= message('array_unpacking_content', $lang) ?>
+ </div>
+ </div>
+</section>
+
+<section class="php8-section center php8-section_light php8-columns">
+ <div class="php8-column">
+ <h2 class="php8-h2" id="performance_improvements"><?=
message('performance_title', $lang) ?></h2>
+ <div class="php8-compare__content">
+ <div class="center">
+ <?= message('performance_chart', $lang) ?>
+ <div class="php8-chart__table">
+ <img src="/images/php8/php81_performance.svg" alt="">
+ </div>
+ </div>
+ <h3 class="php8-h3"><?=
message('performance_results_title', $lang) ?></h3>
+ <ul>
+ <li><?= message('performance_results_symfony', $lang)
?></li>
+ <li><?= message('performance_results_wordpress', $lang)
?></li>
+ </ul>
+ <h3 class="php8-h3"><?=
message('performance_related_functions_title', $lang) ?></h3>
+ <ul>
+ <li><?= message('performance_jit_arm64', $lang) ?></li>
+ <li><?= message('performance_inheritance_cache', $lang)
?></li>
+ <li><?= message('performance_fast_class_name_resolution', $lang)
?></li>
+ <li><?= message('performance_timelib_date_improvements', $lang)
?></li>
+ <li><?= message('performance_spl', $lang) ?></li>
+ <li><?= message('performance_serialize_unserialize', $lang)
?></li>
+ <li><?= message('performance_internal_functions', $lang)
?></li>
+ <li><?= message('performance_jit', $lang) ?></li>
+ </ul>
+ </div>
+ </div>
+
+ <div class="php8-column">
+ <h2 class="php8-h2" id="other_new_things"><?=
message('other_new_title', $lang) ?></h2>
+ <div class="php8-compare__content">
+ <ul>
+ <li><?= message('other_new_returntypewillchange', $lang)
?></li>
+ <li><?= message('other_new_fsync_fdatasync', $lang)
?></li>
+ <li><?= message('other_new_array_is_list', $lang)
?></li>
+ <li><?= message('other_new_sodium_xchacha20', $lang)
?></li>
+ </ul>
+ </div>
+ <h2 class="php8-h2 php8-h2_margin-top"
id="deprecations_and_bc_breaks"><?= message('bc_title', $lang)
?></h2>
+ <div class="php8-compare__content">
+ <ul>
+ <li><?= message('bc_null_to_not_nullable', $lang)
?></li>
+ <li><?= message('bc_return_types', $lang) ?></li>
+ <li><?= message('bc_serializable_deprecated', $lang)
?></li>
+ <li><?= message('bc_html_entity_encode_decode', $lang)
?></li>
+ <li><?= message('bc_globals_restrictions', $lang)
?></li>
+ <li><?= message('bc_mysqli_exceptions', $lang) ?></li>
+ <li><?= message('bc_float_to_int_conversion', $lang)
?></li>
+ <li><?= message('bc_finfo_objects', $lang) ?></li>
+ <li><?= message('bc_imap_objects', $lang) ?></li>
+ <li><?= message('bc_ftp_objects', $lang) ?></li>
+ <li><?= message('bc_gd_objects', $lang) ?></li>
+ <li><?= message('bc_ldap_objects', $lang) ?></li>
+ <li><?= message('bc_postgresql_objects', $lang) ?></li>
+ <li><?= message('bc_pspell_objects', $lang) ?></li>
+ </ul>
+ </div>
+ </div>
+</section>
+
+<section class="php8-section php8-section_dark php8-section_footer php8-footer">
+ <div class="php8-section__content">
+ <h2 class="php8-h2 center"><?= message('footer_title', $lang)
?></h2>
+ <div class="php8-button-wrapper center">
+ <a class="php8-button php8-button_light"
href="/downloads"><?= message('upgrade_now', $lang) ?></a>
+ </div>
+ <div class="php8-footer__content">
+ <?= message('footer_content', $lang) ?>
+ </div>
+ </div>
+</section>
+
+<?php
+
+site_footer();
diff --git a/releases/8.1/ru.php b/releases/8.1/ru.php
new file mode 100644
index 0000000000..e1ce7dae16
--- /dev/null
+++ b/releases/8.1/ru.php
@@ -0,0 +1,5 @@
+<?php
+
+$lang = 'ru';
+
+include_once __DIR__ . '/release.inc';
\ No newline at end of file
diff --git a/styles/php8.css b/styles/php8.css
index f079cf09b5..6eb826cc1b 100644
--- a/styles/php8.css
+++ b/styles/php8.css
@@ -278,6 +278,14 @@
}
}
+.php8-compare__content code {
+ color: rgba(39, 40, 44, 0.7);
+ background-color: rgba(39, 40, 44, 0.05);
+ padding: .2em .4em;
+ font-size: 85%;
+ border-radius: 6px;
+}
+
.php8-code {
display: -webkit-box;
display: -ms-flexbox;
@@ -361,6 +369,10 @@
display: block;
}
+.php8-chart__table {
+ margin: 16px 0;
+}
+
.page-tools {
position: absolute;
top: 28px;