blob: ab9d57327348fc73fa0d728a22d0463cc4c3665c [file]
<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="tr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>ab - Apache HTTP sunucusu başarım &ouml;l&ccedil;me aracı - Apache HTTP Sunucusu S&uuml;r&uuml;m 2.5</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="../style/css/prettify.css">
<script src="../style/scripts/prettify.min.js">
</script>
<link href="../images/favicon.png" rel="shortcut icon"></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Mod&uuml;ller</a> | <a href="../mod/quickreference.html">Y&ouml;nergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p>
<p class="apache">Apache HTTP Sunucusu S&uuml;r&uuml;m 2.5</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="https://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="../">S&uuml;r&uuml;m 2.5</a> &gt; <a href="./">Programlar</a></div><div id="page-content"><div id="preamble"><h1>ab - Apache HTTP sunucusu başarım &ouml;l&ccedil;me aracı</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Mevcut Diller: </span><a href="../en/programs/ab.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/programs/ab.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ko/programs/ab.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/programs/ab.html" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div>
<div class="outofdate">Bu &ccedil;eviri g&uuml;ncel olmayabilir. Son değişiklikler i&ccedil;in İngilizce s&uuml;r&uuml;m ge&ccedil;erlidir.</div>
<p><code><strong>ab</strong></code> Apache Hiper Metin Aktarım Protokol&uuml;
(HTTP) sunucunuzun başarımını &ouml;l&ccedil;mek amacıyla kullanabileceğiniz bir
kıyaslama aracıdır. Mevcut Apache kurulumunuzun g&ouml;revini nasıl yerine
getirdiği hakkında bir izlenim edinmeniz i&ccedil;in tasarlanmıştır.
&Ouml;zellikle, Apache kurulumunuzun saniyede ka&ccedil; isteği sunma yeteneğinde
olduğunu g&ouml;sterir.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif"> <a href="#synopsis">Kullanım</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#options">Se&ccedil;enekler</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#output">&Ccedil;ıktı</a></li>
<li><img alt="" src="../images/down.gif"> <a href="#bugs">B&ouml;rt&uuml; b&ouml;cek</a></li>
</ul><h3>Ayrıca bakınız:</h3><ul class="seealso"><li><code class="program"><a href="../programs/httpd.html">httpd</a></code></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="synopsis">Kullanım <a title="Permanent link" href="#synopsis" class="permalink">&para;</a></h2>
<p><code><strong>ab</strong>
[ -<strong>A</strong> <var>yetkili-kullanıcı:parola</var> ]
[ -<strong>b</strong> <var>tampon-boyu</var> ]
[ -<strong>B</strong> <var>yerel-adres</var> ]
[ -<strong>c</strong> <var>bağlantı-sayısı</var> ]
[ -<strong>C</strong> <var>&ccedil;erez-ismi=değer</var> ]
[ -<strong>d</strong> ]
[ -<strong>e</strong> <var>csv-dosyası</var> ]
[ -<strong>f</strong> <var>protokol</var> ]
[ -<strong>g</strong> <var>gnuplot-dosyası</var> ]
[ -<strong>h</strong> ]
[ -<strong>H</strong> <var>&ouml;zel-başlık</var> ]
[ -<strong>i</strong> ]
[ -<strong>k</strong> ]
[ -<strong>n</strong> <var>istek-sayısı</var> ]
[ -<strong>p</strong> <var>POST-dosyası</var> ]
[ -<strong>P</strong> <var>vekil-yetkilisi:parola</var> ]
[ -<strong>q</strong> ]
[ -<strong>r</strong> ]
[ -<strong>s</strong> ]
[ -<strong>S</strong> ]
[ -<strong>t</strong> <var>saniye</var> ]
[ -<strong>T</strong> <var>i&ccedil;erik-t&uuml;r&uuml;</var> ]
[ -<strong>u</strong> <var>PUT-dosyası</var> ]
[ -<strong>v</strong> <var>ayrıntı-d&uuml;zeyi</var>]
[ -<strong>V</strong> ]
[ -<strong>w</strong> ]
[ -<strong>x</strong> <var>&lt;table&gt;-&ouml;znitelikleri</var> ]
[ -<strong>X</strong> <var>vekil</var>[:<var>port</var>] ]
[ -<strong>y</strong> <var>&lt;tr&gt;-&ouml;znitelikleri</var> ]
[ -<strong>z</strong> <var>&lt;td&gt;-&ouml;znitelikleri</var> ]
[ -<strong>Z</strong> <var>şifre-k&uuml;mesi</var> ]
[http[s]://]<var>konakadı</var>[:<var>port</var>]/<var>dizin</var>
</code></p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="options">Se&ccedil;enekler <a title="Permanent link" href="#options" class="permalink">&para;</a></h2>
<dl>
<dt><code><strong>-A</strong>
<var>yetkili-kullanıcı</var>:<var>parola</var></code></dt>
<dd>Sunucuya TEMEL Kimlik Doğrulamada kullanılmak &uuml;zere kanıt sağlar.
Kullanıcı adı ile parola arasına sadece <code>:</code> konur ve
sunucunun buna ihtiyacı olup olmadığına bakılmaksızın (yani, bir "401
kimlik doğrulaması gerekli" yanıtı beklenmeden) bağlantı &uuml;zerinden
base64 kodlu olarak sunucuya g&ouml;nderilir.</dd>
<dt><code><strong>-b</strong> <var>tampon-boyu</var></code></dt>
<dd>TCP g&ouml;nderme/alma tamponlarının bayt cinsinden uzunluğu.</dd>
<dt><code><strong>-B</strong> <var>yerel-adres</var></code></dt>
<dd>Uzak bağlantılar yaparken dinlenecek adres.</dd>
<dt><code><strong>-c</strong> <var>bağlantı-sayısı</var></code></dt>
<dd>Aynı anda işleme sokulacak bağlantı sayısı. Aynı anda bir bağlantı
&ouml;ntanımlı değerdir.</dd>
<dt><code><strong>-C</strong>
<var>&ccedil;erez-ismi</var>=<var>değer</var></code></dt>
<dd>İsteğe bir <code>Cookie:</code> satırı ekler. Arg&uuml;man olarak
genellikle bir <code><var>isim=değer</var></code> &ccedil;ifti kullanılır. Bu
&ccedil;iftler birden fazla olabilir.</dd>
<dt><code><strong>-d</strong></code></dt>
<dd>"percentage served within XX [ms] table" iletisi g&ouml;sterilmez. (Geriye
uyumluluk i&ccedil;in vardır).</dd>
<dt><code><strong>-e</strong> <var>csv-dosyası</var></code></dt>
<dd>Sunulan isteğin birim zamanda (milisaniye) ne kadarının (y&uuml;zde
cinsinden) sunulduğunu g&ouml;steren virg&uuml;l ayra&ccedil;lı değerler (CSV) dosyası.
Sonu&ccedil;lar 'bobin haline' getirilmiş olduğundan doğal olarak 'gnuplot'
dosyasından daha yararlıdır.</dd>
<dt><code><strong>-f</strong> <var>protokol</var></code></dt>
<dd>SSL/TLS protokol&uuml; belirtilir (SSL2, SSL3, TLS1 veya ALL).</dd>
<dt><code><strong>-g</strong> <var>gnuplot-dosyası</var></code></dt>
<dd>&Ouml;l&ccedil;&uuml;len değerler bir 'gnuplot' veya TSV (sekme ayra&ccedil;lı değerler)
dosyasına yazılır. Bu dosya, Gnuplot, IDL, Mathematica, Igor hatta
Excel tarafından veri dosyası olarak kabul edilir. Veri s&uuml;tunlarının
başlıkları dosyanın ilk satırında bulunur. </dd>
<dt><code><strong>-h</strong></code></dt>
<dd>Kullanım bilgisi g&ouml;sterir.</dd>
<dt><code><strong>-H</strong> <var>&ouml;zel-başlık</var></code></dt>
<dd>İsteğe fazladan başlık ekler. <var>&ouml;zel-başlık</var>, aralarında iki
nokta imi bulunan bir isim-değer &ccedil;ifti olarak belirtilir. &Ouml;rnek:
<code>"Accept-Encoding: zip/zop;8bit"</code></dd>
<dt><code><strong>-i</strong></code></dt>
<dd><code>GET</code> istekleri yerine <code>HEAD</code> istekleri
yapılır.</dd>
<dt><code><strong>-k</strong></code></dt>
<dd>HTTP KeepAlive (kalıcı bağlantı) &ouml;zelliğini etkinleştirir, yani tek
bir oturum i&ccedil;inde &ccedil;ok sayıda isteğe hizmet sunulabilir. &Ouml;zellik
&ouml;ntanımlı olarak kapalıdır.</dd>
<dt><code><strong>-n</strong> <var>istek-sayısı</var></code></dt>
<dd>Kıyaslama oturumu sırasında sunucuya uygulanacak istek sayısı.
&Ouml;ntanımlı olarak hi&ccedil;bir başarım &ouml;l&ccedil;&uuml;t&uuml; sağlamayan tek bir istek
yapılır.</dd>
<dt><code><strong>-p</strong> <var>POST-dosyası</var></code></dt>
<dd>POST isteği ile ilgili verileri i&ccedil;eren dosya. Ayrıca
<code><strong>-T</strong></code> se&ccedil;eneğini de belirtmeyi
unutmayın..</dd>
<dt><code><strong>-P</strong>
<var>vekil-yetkilisi</var>:<var>parola</var></code></dt>
<dd>Vekil sunucuya TEMEL Kimlik Doğrulamasında kullanılacak kanıtları
sağlar. Kullanıcı adı ile parola arasına sadece <code>:</code> konur ve
vekilin buna ihtiyacı olup olmadığına bakılmaksızın (yani, bir "407
vekilde kimlik doğrulaması gerekiyor" yanıtı beklenmeden) bağlantı
&uuml;zerinden base64 kodlu olarak sunucuya g&ouml;nderilir.</dd>
<dt><code><strong>-q</strong></code></dt>
<dd>İstek sayısı 150'den fazla olduğunda,
<code><strong>ab</strong></code> her 100 veya %10 istekte bir, standart
hataya bir işlenen istek sayacı &ccedil;ıktılar.
<code><strong>-q</strong></code> se&ccedil;eneği bu &ccedil;ıktının &uuml;retilmemesini
sağlar.</dd>
<dt><code><strong>-r</strong></code></dt>
<dd>Soket hata alsa bile program &ccedil;ıkmaz.</dd>
<dt><code><strong>-s</strong></code></dt>
<dd>Derlendiği takdirde (<code><strong>ab -h</strong></code> bunu
g&ouml;sterir) <code>http</code> protokol&uuml; yerine SSL korumalı
<code>https</code> protokol&uuml; kullanılır. Bu &ouml;zellik hen&uuml;z
<em>emekleme</em> aşamasında olup geliştirilmeye devam edilmektedir. Bu
bakımdan kullanımı &ouml;nerilmez.</dd>
<dt><code><strong>-S</strong></code></dt>
<dd>Ortalama ve ortanca değerler arasında bir veya iki standart sapmadan
fazlası varsa ne ortalama değer ne standart sapma değeri ne de
uyarı/hata iletileri g&ouml;sterilir. &Ouml;ntanımlı olarak,
asgari/ortalama/azami değerler g&ouml;sterilir. (Geriye uyumluluk).</dd>
<dt><code><strong>-t</strong> <var>saniye</var></code></dt>
<dd>&Ouml;l&ccedil;&uuml;mleme işleminin ne kadar s&uuml;reyle uygulanacağı belirtilir. Dahili
olarak <code><strong>-n 50000</strong></code> se&ccedil;eneği uygulanır. Bunu
belli bir s&uuml;reye g&ouml;re kıyaslama yapmak amacıyla kullanabilirsiniz.
&Ouml;ntanımlı olarak bir s&uuml;re kısıtlaması yoktur.</dd>
<dt><code><strong>-T</strong> <var>i&ccedil;erik-t&uuml;r&uuml;</var></code></dt>
<dd>POST/PUT verisi i&ccedil;in kullanılacak i&ccedil;erik t&uuml;r&uuml; belirtilir. &Ouml;rnek:
<code>application/x-www-form-urlencoded</code>.
&Ouml;ntanımlı değer: <code>text/plain</code>.</dd>
<dt><code><strong>-v</strong> <var>ayrıntı-d&uuml;zeyi</var></code></dt>
<dd>&Ccedil;ıktının ayrıntı d&uuml;zeyi belirtilir. <code>4</code> ve &uuml;st&uuml; ile
başlıklar hakkında bilgi, <code>3</code> ve &uuml;st&uuml; ile yanıt kodları
(404, 200, vb.), <code>2</code> ve &uuml;st&uuml; ile ise uyarı ve bilgi
iletileri g&ouml;sterilir.</dd>
<dt><code>-u <var>PUT-dosyası</var></code></dt>
<dd>PUT verisini i&ccedil;eren dosya. Ayrıca, <code>-T</code> se&ccedil;eneğini
belirtmeyi de unutmayın.</dd>
<dt><code><strong>-V</strong></code></dt>
<dd>S&uuml;r&uuml;m bilgilerini g&ouml;sterir ve &ccedil;ıkar.</dd>
<dt><code><strong>-w</strong></code></dt>
<dd>Sonu&ccedil;ları HTML tabloları olarak basar. &Ouml;ntanımlı tablo, beyaz
artalanlı ve iki s&uuml;tunludur.</dd>
<dt><code><strong>-x</strong>
<var>&lt;table&gt;-&ouml;znitelikleri</var></code></dt>
<dd><code>&lt;table&gt;</code> etiketinde kullanılacak &ouml;znitelikler
belirtilir. Belirtilen &ouml;znitelikler etiket i&ccedil;ine <code>&lt;table
<var>buraya</var> &gt;</code> bi&ccedil;eminde yerleştirilir.</dd>
<dt><code><strong>-X</strong>
<var>vekil</var>[:<var>port</var>]</code></dt>
<dd>İstekler i&ccedil;in bir vekil sunucu kullanılır.</dd>
<dt><code><strong>-y</strong>
<var>&lt;tr&gt;-&ouml;znitelikleri</var></code></dt>
<dd><code>&lt;tr&gt;</code> etiketinde kullanılacak &ouml;znitelikler
belirtilir.</dd>
<dt><code><strong>-z</strong>
<var>&lt;td&gt;-&ouml;znitelikleri</var></code></dt>
<dd><code>&lt;td&gt;</code> etiketinde kullanılacak &ouml;znitelikler
belirtilir.</dd>
<dt><code>-Z <var>şifre-k&uuml;mesi</var></code></dt>
<dd>SSL/TLS şifre k&uuml;mesi belirtilir
(<code><strong>openssl</strong></code>(1) şifrelerine bakınız).</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="output">&Ccedil;ıktı <a title="Permanent link" href="#output" class="permalink">&para;</a></h2>
<p>Aşağıda <code><strong>ab</strong></code> tarafından d&ouml;nd&uuml;r&uuml;len değerler
a&ccedil;ıklanmıştır:</p>
<dl>
<dt>Server Software</dt>
<dd>İlk başarılı yanıtın, varsa, <var>server</var> HTTP başlığında
d&ouml;nd&uuml;r&uuml;len değer. Bu başlıktaki başlangı&ccedil;tan 32 ondalık değerli
karaktere (genellikle boşluk veya CR/LF karakteri) kadar t&uuml;m
karakterleri i&ccedil;erir.</dd>
<dt>Server Hostname</dt>
<dd>Komut satırında belirtilen DNS veya IP adresi.</dd>
<dt>Server Port</dt>
<dd><code><strong>ab</strong></code>'nin bağlandığı port. Komut
satırında port belirtilmemişse, &ouml;ntanımlı olarak http i&ccedil;in 80, https
i&ccedil;in 443't&uuml;r.</dd>
<dt>SSL/TLS Protocol</dt>
<dd>İstemci le sunucu arasında uzlaşılmış protokol değerleri. Bu sadece
SSL kullanılıyorsa &ccedil;ıktılanır.</dd>
<dt>Document Path</dt>
<dd>Komut satırı dizgesinden &ccedil;&ouml;z&uuml;mlenen isteğin URI'si.</dd>
<dt>Document Length</dt>
<dd>Başarıyla d&ouml;nd&uuml;r&uuml;len ilk belgenin bayt cinsinden uzunluğu. Eğer
belge uzunluğu sınama sırasında değişirse yanıt bir hata
i&ccedil;erecektir.</dd>
<dt>Concurrency Level</dt>
<dd>Sınama sırasında kullanılan eşzamanlı istemcilerin sayısı.</dd>
<dt>Time taken for tests</dt>
<dd>İlk soket bağlantısının alındığı andan son yanıtın alındığı ana
kadar ge&ccedil;en s&uuml;re.</dd>
<dt>Complete requests</dt>
<dd>Alınan başarılı yanıtların sayısı.</dd>
<dt>Failed requests</dt>
<dd>Başarısızlık olarak addedilen isteklerin sayısı. Sayı sıfırdan
b&uuml;y&uuml;kse, diğer satırda, bağlanma, okuma, yanlış i&ccedil;erik uzunluğu,
istisnalar gibi sebeplerle başarısız olmuş istekler g&ouml;sterilir.</dd>
<dt>Write errors</dt>
<dd>Başarısız yazma hatalarının (kırık boru) sayısı.</dd>
<dt>Non-2xx responses</dt>
<dd>200 serisi yanıt kodları ile a&ccedil;ıklanamayan yanıtların sayısı. T&uuml;m
yanıtlar 200 olursa bu alan &ccedil;ıktılanmaz.</dd>
<dt>Keep-Alive requests</dt>
<dd>Keep-Alive isteklerinde sonu&ccedil;lanan bağlantı sayısı.</dd>
<dt>Total body sent</dt>
<dd>Sınamanın par&ccedil;ası olarak veri g&ouml;nderimi yapılandırılmışsa, bu
sınama sırasında g&ouml;nderilen toplam bayt sayısıdır. Sınama sırasında
g&ouml;vde g&ouml;nderilmiyorsa bu alan &ccedil;ıktılanmaz.</dd>
<dt>Total transferred</dt>
<dd>Sunucudan alınan toplam bayt sayısı. Bu sayı aslında hattan
g&ouml;nderilen bayt sayısıdır.</dd>
<dt>HTML transferred</dt>
<dd>Sunucudan alınan belge baytlarının sayısı. Bu sayı HTTP
başlıklarının bayt sayısını i&ccedil;ermez.</dd>
<dt>Requests per second</dt>
<dd>Saniyedeki istek sayısı. İstek sayısının toplam s&uuml;reye
oranıdır.</dd>
<dt>Time per request</dt>
<dd>İstek başına harcanan s&uuml;re. İlk değer <code>eşzamanlılık * s&uuml;re *
1000 / biten</code> form&uuml;l&uuml;yle hesaplanırken ikincisi i&ccedil;in
<code>s&uuml;re * 1000 / biten</code> form&uuml;l&uuml; kullanılır.</dd>
<dt>Transfer rate</dt>
<dd><code>okunantoplam / 1024 / s&uuml;re</code> form&uuml;l&uuml;yle hesaplanan
aktarım hızı.</dd>
</dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="section">
<h2 id="bugs">B&ouml;rt&uuml; b&ouml;cek <a title="Permanent link" href="#bugs" class="permalink">&para;</a></h2>
<p>Duruk bildirimli sabit uzunlukta &ccedil;eşitli tamponlar vardır.
Sunucudan gelen yanıt başlıkları ve diğer harici girdiler, komut satırı
arg&uuml;manları ile birlikte basit&ccedil;e &ccedil;&ouml;z&uuml;mlenir, bu size can sıkıcı
gelebilir.</p>
<p>HTTP/1.x protokol&uuml;n&uuml; tamamen ger&ccedil;eklemez; sadece yanıtların 'belli
başlı' bazı bi&ccedil;imlerini kabul eder. Aksi takdirde,
<code><strong>strstr</strong></code>(3) işlevinin yoğun kullanımı
nedeniyle sunucu yerine <code><strong>ab</strong></code>'nin başarımını
&ouml;l&ccedil;erdiniz.</p>
</div></div>
<div class="bottomlang">
<p><span>Mevcut Diller: </span><a href="../en/programs/ab.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/programs/ab.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="../ko/programs/ab.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/programs/ab.html" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br><a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> adı altında lisanslıdır.</p>
<p class="menu"><a href="../mod/">Mod&uuml;ller</a> | <a href="../mod/quickreference.html">Y&ouml;nergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Report a bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
document.body.appendChild(qv);
var qvBtn = document.createElement('button');
qvBtn.className = 'qv-toggle';
qvBtn.setAttribute('aria-label', 'Toggle page navigation');
qvBtn.innerHTML = '&#9776;';
document.body.appendChild(qvBtn);
qvBtn.addEventListener('click', function() {
var isOpen = qv.classList.toggle('open');
if (isOpen) {
qv.style.top = window.scrollY + 10 + 'px';
}
});
window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>