PageSourceSearch

https://ttsmp3.com/text-to-speech/Brazilian%20Portuguese/

html ttsmp3.com collected 2026-10-02 09:57:26 UTC 32,912 bytes, 216 lines download raw bytes

1<!doctype html>
2<html lang="en" prefix="og: http://ogp.me/ns#">
3<head>
4	<meta charset="UTF-8">
5	<meta name="viewport" content="width=device-width, initial-scale=1.0">
6	<meta name="description" content="Easily convert text to natural Brazilian Portuguese voice and 50+ languages/accents for free. Listen online or download as MP3.">
7    <link rel="dns-prefetch" href="//pagead2.googlesyndication.com">
8    <link rel="dns-prefetch" href="//fundingchoicesmessages.google.com">
9    <link rel="preconnect" href="https://fonts.googleapis.com">
10	<title>Free Text-To-Speech for Brazilian Portuguese language & MP3 Download | ttsMP3.com</title>
11	
11<script async src="https://fundingchoicesmessages.google.com/i/pub-2908655618540976?ers=1" nonce="LP3K2orTPf9QrqsaLfOlSg"></script>
11<script nonce="LP3K2orTPf9QrqsaLfOlSg">(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();</script>
11
12
13	 
14
15	<meta property="og:title" content="Free Text-To-Speech for Brazilian Portuguese language & MP3 Download | ttsMP3.com" />
16	<meta property="og:image" content="https://ttsmp3.com/images/logo.png" />
17	<meta property="og:type" content="website" />
18	<meta property="og:url" content="https://ttsmp3.com/text-to-speech/Brazilian%20Portuguese/" />
19	
20
21	
22	 
23	<link rel="canonical" href="https://ttsmp3.com/text-to-speech/Brazilian Portuguese/" />
24		
25	<link rel="stylesheet" type="text/css" href="/css/style.css">
26	<link rel="stylesheet" type="text/css" href="/css/mobile.css" media="screen and (max-width : 568px)">
27	<link rel="icon" href="/images/favicon.ico" type="image/x-icon">
28	<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32.png">
29	<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16.png">
30	<link rel="icon" sizes="192x192" href="/images/icon-hd.png">
31	<link rel="icon" sizes="128x128" href="/images/icon.png">
32	<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png">
33</head>
34<body>
35
36
37
38	<div id="header">
39		<a class="logo" href="/"><img width="340" height="100" alt="ttsmp3.com LOGO" src="/images/logo.png"/></a>
40	</div>
41	
42	<div id="body">
43	<h1>Free Text-To-Speech and Text-to-MP3 for Brazilian Portuguese</h1>
44
45	<!-- TTSMP3 Rect -->
46	<div>
47		<ins class="adsbygoogle gadsunit"
48			 style="display:block"
49			 data-ad-client="ca-pub-2908655618540976"
50			 data-ad-slot="1961901246"
51			 data-ad-format="auto"
52			 data-full-width-responsive="true"></ins>
53		
53<script>
54		  (adsbygoogle = window.adsbygoogle || []).push({});
55		</script>
55
56	</div>
57	
58	<div id="introtext">
59	<p style="text-align:left;">Easily convert your <strong>Brazilian Portuguese</strong> text into professional speech for free. Perfect for e-learning, presentations, YouTube videos and increasing the accessibility of your website. Our voices pronounce your texts in their own language using a specific accent. Plus, these texts can be downloaded as MP3. In some languages, multiple speakers are available.
60			</p>
61
62	</div>
63
64
65		<div id="featured">
66
67			<form onsubmit="return dontsubmit();">
68			<div class="tabs">
69			  <button class="tab tabfocus">Regular Voices</button>
70			  <button class="tab" onclick="window.location.href='https://ttsmp3.com/ai';">AI Voices</button>
71			</div>	
72			
73			<textarea maxlength="3000" id="voicetext" placeholder="your text here" tabindex="1"></textarea>
74			<select id="sprachwahl" tabindex="4">
75			<option value='Zeina' >Arabic / Zeina</option><option value='Nicole' >Australian English / Nicole</option><option value='Russell' >Australian English / Russell</option><option value='Ricardo' selected>Brazilian Portuguese / Ricardo</option><option value='Camila' >Brazilian Portuguese / Camila</option><option value='Vitoria' >Brazilian Portuguese / Vitória</option><option value='Brian' >British English / Brian</option><option value='Amy' >British English / Amy</option><option value='Emma' >British English / Emma</option><option value='Chantal' >Canadian French / Chantal</option><option value='Enrique' >Castilian Spanish / Enrique</option><option value='Lucia' >Castilian Spanish / Lucia</option><option value='Conchita' >Castilian Spanish / Conchita</option><option value='Zhiyu' >Chinese Mandarin / Zhiyu</option><option value='Naja' >Danish / Naja</option><option value='Mads' >Danish / Mads</option><option value='Ruben' >Dutch / Ruben</option><option value='Lotte' >Dutch / Lotte</option><option value='Mathieu' >French / Mathieu</option><option value='Celine' >French / Céline</option><option value='Lea' >French / Léa</option><option value='Vicki' >German / Vicki</option><option value='Marlene' >German / Marlene</option><option value='Hans' >German / Hans</option><option value='Karl' >Icelandic / Karl</option><option value='Dora' >Icelandic / Dóra</option><option value='Aditi' >Indian English / Aditi</option><option value='Raveena' >Indian English / Raveena</option><option value='Giorgio' >Italian / Giorgio</option><option value='Carla' >Italian / Carla</option><option value='Bianca' >Italian / Bianca</option><option value='Takumi' >Japanese / Takumi</option><option value='Mizuki' >Japanese / Mizuki</option><option value='Seoyeon' >Korean / Seoyeon</option><option value='Mia' >Mexican Spanish / Mia</option><option value='Liv' >Norwegian / Liv</option><option value='Jan' >Polish / Jan</option><option value='Maja' >Polish / Maja</option><option value='Ewa' >Polish / Ewa</option><option value='Jacek' >Polish / Jacek</option><option value='Cristiano' >Portuguese / Cristiano</option><option value='Ines' >Portuguese / Inês</option><option value='Carmen' >Romanian / Carmen</option><option value='Tatyana' >Russian / Tatyana</option><option value='Maxim' >Russian / Maxim</option><option value='Astrid' >Swedish / Astrid</option><option value='Filiz' >Turkish / Filiz</option><option value='Kimberly' >US English / Kimberly</option><option value='Ivy' >US English / Ivy</option><option value='Kendra' >US English / Kendra</option><option value='Justin' >US English / Justin</option><option value='Joey' >US English / Joey</option><option value='Matthew' >US English / Matthew</option><option value='Salli' >US English / Salli</option><option value='Joanna' >US English / Joanna</option><option value='Penelope' >US Spanish / Penélope</option><option value='Lupe' >US Spanish / Lupe</option><option value='Miguel' >US Spanish / Miguel</option><option value='Gwyneth' >Welsh / Gwyneth</option><option value='Geraint' >Welsh English / Geraint</option>			</select>
76			<input id="vorlesenbutton" class="subbuttons" type="submit" tabindex="3" value="Read"/>
77			<input id="downloadenbutton" class="subbuttons" type="submit" tabindex="2" value="Download as MP3"/>
78			<div style="clear:both;"></div>
79			<p id="limitannounce"><!--<a target="_blank" href="https://ttsmp3.com/register?click=banner"><img style='width: 100% !important;' src='/images/BannerAdNew.jpg'/></a>--></p>
80			</form>
81			
82		</div>
83		
84		<div style='border: 2px solid #ccc; width: 350px; padding: 10px; display: none;' id='s3loader'>
85		<p style='font-weight: bold;'>Woah, that is quite some text... </p><p>Please give us a moment to process your request...</p><img style='border: none;' width='200' data-src='images/loader.gif'/>
86		</div>
87		<p>Input limit: 3,000 characters / Don't forget to turn on your speakers :-)</p><p> Hint: If you finish a sentence, leave a space after the dot before the next one starts for better pronunciation.</p>
88
89		
90		
91		<br/>
92		<div style="text-align: justify; width: 70%; padding: 30px; border: 2px solid #cecece; padding-top: 10px; margin-top: 5px;">
93<h3>Here are some features to use while generating speech:</h3>
94
95<h4>Add a break</h4>
96Mary had a little lamb &lt;break time="1s"/&gt; Whose fleece was white as snow.
97
98<h4>Emphasizing words</h4>
99I already told you I &lt;emphasis level="strong"&gt;really like &lt;/emphasis&gt; that person.
100
101<h4>Speed</h4>
102For dramatic purposes, you might wish to &lt;prosody rate="slow"&gt;slow down the speaking rate of your text.&lt;/prosody&gt;     <br/>
103Or if you are in a hurry &lt;prosody rate="fast"&gt;you may want to speed it up a bit.&lt;/prosody&gt;    
104
105<h4>Pitch</h4>
106Do you like sythesized speech &lt;prosody pitch="high"&gt;with a pitch that is higher than normal?&lt;/prosody&gt;    <br/>
107Or do you prefer your speech &lt;prosody pitch="-20%"&gt;with a somewhat lower pitch?&lt;/prosody&gt;
108
109<h4>Whisper</h4>
110&lt;amazon:effect name="whispered"&gt;If you make any noise, &lt;/amazon:effect&gt; she said, &lt;amazon:effect name="whispered"&gt;they will hear us.&lt;/amazon:effect&gt;
111
112<h4>Conversations</h4>
113It is possible to switch between speakers within the text. Just use the following format:<br/>
114[speaker:Brian] Hello Emma<br/>
115[speaker:Emma] Hey Brian<br/>
116[speaker:Brian] How are you doing?<br/>
117[speaker:Emma] I am fine. May i invite you to a cup of tea?<br/>
118<p>Please note: Remove any diacritical signs from the speakers names when using this, Léa = Lea, Penélope = Penelope</p>
119<br/><br/>
120<p><h4>Need more effects or customization? Please refer to the <a rel="nofollow" target="_blank" href="https://docs.aws.amazon.com/polly/latest/dg/supportedtags.html">Amazon SSML Tags for Amazon Polly</a></h4></p>
121</div>		<br/>
122				<div style="text-align: justify; width: 70%; padding: 30px; border: 2px solid #cecece; padding-top: 10px; margin-top: 5px;"><h3>Facts about the Brazilian Portuguese language:</h3><p><p>The Portuguese language is spoken by more than 220 million people and its one of the best Romance language globally. The Portuguese language is spoken mostly in Brazil and Portugal, but it's also a common language in Guinea-Bissau, Cape Verde, Macau, East Timor, Equatorial Guinea and Mozambique. There are other small groups of Portuguese speakers found in Malacca Malaysia, Goa, Diu in India and Daman.</p>
123
124<p>The Portuguese Language History</p>
125
126<p>The Portuguese language is a Latin descendant, and it was brought to Iberian Peninsula in 218BC by Roman soldiers, merchants, and settlers. In the 9th century AD, the first sigh of Portuguese word was recorded in a romance letter. And in 1920 king Denis decreed a change of Portuguese language that was known as the "Vulgar Language" to Portuguese language and pronounced it as an official language. Other languages that have influenced the Portuguese language include French, and this is due to the extensive infiltration of the French customs and manners in Portugal during the eleventh centuries. During that period the Frenchmen traveled to Portugal as scholars, state men, and courtiers.</p>
127
128<p>The Reformed Language</p>
129
130<p>The reformed Portuguese language was adopted in 1916, and the words spelled according to their pronunciation. And in Brazil, a slightly modified form was approved in 1943 and later revised to a more natural version in 1970 and 2009 a new orthography to unite the written Portuguese was adopted.</p>
131
132<p>The Portuguese vowels have a French pronunciation making it easy for those who know Spanish, French and Italian learn the language faster, and the alphabets do not have the K, W, and Y. </p></p></div>
133						<div style="text-align: justify; width: 70%; padding: 30px; border: 2px solid #cecece; padding-top: 10px; margin-top: 15px;">
134		<h3>Supported voice languages: </h3>
135		
136		<a href='/text-to-speech/Arabic/'><div class='langbox'>Arabic</div></a><a href='/text-to-speech/Australian%20English/'><div class='langbox'>Australian English</div></a><a href='/text-to-speech/Brazilian%20Portuguese/'><div class='langbox'>Brazilian Portuguese</div></a><a href='/text-to-speech/British%20English/'><div class='langbox'>British English</div></a><a href='/text-to-speech/Canadian%20French/'><div class='langbox'>Canadian French</div></a><a href='/text-to-speech/Castilian%20Spanish/'><div class='langbox'>Castilian Spanish</div></a><a href='/text-to-speech/Chinese%20Mandarin/'><div class='langbox'>Chinese Mandarin</div></a><a href='/text-to-speech/Danish/'><div class='langbox'>Danish</div></a><a href='/text-to-speech/Dutch/'><div class='langbox'>Dutch</div></a><a href='/text-to-speech/French/'><div class='langbox'>French</div></a><a href='/text-to-speech/German/'><div class='langbox'>German</div></a><a href='/text-to-speech/Icelandic/'><div class='langbox'>Icelandic</div></a><a href='/text-to-speech/Indian%20English/'><div class='langbox'>Indian English</div></a><a href='/text-to-speech/Italian/'><div class='langbox'>Italian</div></a><a href='/text-to-speech/Japanese/'><div class='langbox'>Japanese</div></a><a href='/text-to-speech/Korean/'><div class='langbox'>Korean</div></a><a href='/text-to-speech/Mexican%20Spanish/'><div class='langbox'>Mexican Spanish</div></a><a href='/text-to-speech/Norwegian/'><div class='langbox'>Norwegian</div></a><a href='/text-to-speech/Polish/'><div class='langbox'>Polish</div></a><a href='/text-to-speech/Portuguese/'><div class='langbox'>Portuguese</div></a><a href='/text-to-speech/Romanian/'><div class='langbox'>Romanian</div></a><a href='/text-to-speech/Russian/'><div class='langbox'>Russian</div></a><a href='/text-to-speech/Swedish/'><div class='langbox'>Swedish</div></a><a href='/text-to-speech/Turkish/'><div class='langbox'>Turkish</div></a><a href='/text-to-speech/US%20English/'><div class='langbox'>US English</div></a><a href='/text-to-speech/US%20Spanish/'><div class='langbox'>US Spanish</div></a><a href='/text-to-speech/Welsh/'><div class='langbox'>Welsh</div></a><a href='/text-to-speech/Welsh%20English/'><div class='langbox'>Welsh English</div></a>		</div>
137		
138		<div style="max-width:560px !important;width:auto !important;margin:15px auto 0 !important;padding:0 !important;border:none !important;">
139		<a target="_blank" href="https://convertspeech.com/?utm_source=ttsmp3&utm_medium=referral&utm_campaign=cross-promo" style="display:flex !important;align-items:center !important;gap:18px !important;width:auto !important;text-decoration:none !important;border:2px solid #cecece !important;border-radius:10px !important;padding:18px 22px !important;margin:0 !important;color:#333 !important;text-align:left !important;background:#fafafa !important;box-sizing:border-box !important;">
140		<img src="https://convertspeech.com/img/email-logo.png" alt="ConvertSpeech" width="56" height="56" style="flex:none !important;width:56px !important;height:56px !important;border:none !important;border-radius:10px !important;margin:0 !important;padding:0 !important;">
141		<span style="display:block !important;font-size:15px !important;line-height:1.55 !important;color:#333 !important;">
142		<strong style="color:#1a7a7b !important;font-size:17px !important;">Need the opposite &mdash; Speech&nbsp;to&nbsp;Text?</strong><br>
143		Upload any audio or video and get an accurate transcript in minutes.<br>
144		Free to try on our sister site <strong>ConvertSpeech.com</strong> &rarr;
145		</span>
146		</a>
147		</div>
148		
149		
150		<br/>
151		<p>Current Limit: ~375 words or 3,000 characters / day | Powered by AWS Polly</p>
152		<p>Get in touch? Mail us: <br/><img alt="mail contact" width="200" height="30" src="/images/mail.png"/></p>
153		<p>Need to convert more text to speech? <a href="/register?click=direct">Register here</a> for a 24 hour premium access.</p>
154	</div>
155
156
157		<div id="footer">
158		<div>
159			<p><a class="botlink" href="https://ttsmp3.com">&copy; 2026 ttsMP3.com</a> | <a class="botlink" href="/ai">AI Voices</a> | <a class="botlink" href="/faq">FAQ</a> | <a class="botlink" href="/privacypolicy">Privacy Policy</a> | <a class="botlink" href="/tos">Terms of Service</a> | <a class="botlink" href="/apidoc">API Documentation</a> </p>
160			
161		</div>
162	</div>
163	<link rel="stylesheet" type="text/css" href="/css/extra.css?v3">
164	
164<script>(function(){'use strict';function aa(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}var ba="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};
165function ea(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var fa=ea(this);function ha(a,b){if(b)a:{var c=fa;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&ba(c,a,{configurable:!0,writable:!0,value:b})}}
166var ia="function"==typeof Object.create?Object.create:function(a){function b(){}b.prototype=a;return new b},l;if("function"==typeof Object.setPrototypeOf)l=Object.setPrototypeOf;else{var m;a:{var ja={a:!0},ka={};try{ka.__proto__=ja;m=ka.a;break a}catch(a){}m=!1}l=m?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var la=l;
167function n(a,b){a.prototype=ia(b.prototype);a.prototype.constructor=a;if(la)la(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.A=b.prototype}function ma(){for(var a=Number(this),b=[],c=a;c<arguments.length;c++)b[c-a]=arguments[c];return b}
168var na="function"==typeof Object.assign?Object.assign:function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(a[e]=d[e])}return a};ha("Object.assign",function(a){return a||na});/*
169
170 Copyright The Closure Library Authors.
171 SPDX-License-Identifier: Apache-2.0
172*/
173var p=this||self;function q(a){return a};var t,u;a:{for(var oa=["CLOSURE_FLAGS"],v=p,x=0;x<oa.length;x++)if(v=v[oa[x]],null==v){u=null;break a}u=v}var pa=u&&u[610401301];t=null!=pa?pa:!1;var z,qa=p.navigator;z=qa?qa.userAgentData||null:null;function A(a){return t?z?z.brands.some(function(b){return(b=b.brand)&&-1!=b.indexOf(a)}):!1:!1}function B(a){var b;a:{if(b=p.navigator)if(b=b.userAgent)break a;b=""}return-1!=b.indexOf(a)};function C(){return t?!!z&&0<z.brands.length:!1}function D(){return C()?A("Chromium"):(B("Chrome")||B("CriOS"))&&!(C()?0:B("Edge"))||B("Silk")};var ra=C()?!1:B("Trident")||B("MSIE");!B("Android")||D();D();B("Safari")&&(D()||(C()?0:B("Coast"))||(C()?0:B("Opera"))||(C()?0:B("Edge"))||(C()?A("Microsoft Edge"):B("Edg/"))||C()&&A("Opera"));var sa={},E=null;var ta="undefined"!==typeof Uint8Array,ua=!ra&&"function"===typeof btoa;var F="function"===typeof Symbol&&"symbol"===typeof Symbol()?Symbol():void 0,G=F?function(a,b){a[F]|=b}:function(a,b){void 0!==a.g?a.g|=b:Object.defineProperties(a,{g:{value:b,configurable:!0,writable:!0,enumerable:!1}})};function va(a){var b=H(a);1!==(b&1)&&(Object.isFrozen(a)&&(a=Array.prototype.slice.call(a)),I(a,b|1))}
174var H=F?function(a){return a[F]|0}:function(a){return a.g|0},J=F?function(a){return a[F]}:function(a){return a.g},I=F?function(a,b){a[F]=b}:function(a,b){void 0!==a.g?a.g=b:Object.defineProperties(a,{g:{value:b,configurable:!0,writable:!0,enumerable:!1}})};function wa(){var a=[];G(a,1);return a}function xa(a,b){I(b,(a|0)&-99)}function K(a,b){I(b,(a|34)&-73)}function L(a){a=a>>11&1023;return 0===a?536870912:a};var M={};function N(a){return null!==a&&"object"===typeof a&&!Array.isArray(a)&&a.constructor===Object}var O,ya=[];I(ya,39);O=Object.freeze(ya);var P;function Q(a,b){P=b;a=new a(b);P=void 0;return a}
175function R(a,b,c){null==a&&(a=P);P=void 0;if(null==a){var d=96;c?(a=[c],d|=512):a=[];b&&(d=d&-2095105|(b&1023)<<11)}else{if(!Array.isArray(a))throw Error();d=H(a);if(d&64)return a;d|=64;if(c&&(d|=512,c!==a[0]))throw Error();a:{c=a;var e=c.length;if(e){var f=e-1,g=c[f];if(N(g)){d|=256;b=(d>>9&1)-1;e=f-b;1024<=e&&(za(c,b,g),e=1023);d=d&-2095105|(e&1023)<<11;break a}}b&&(g=(d>>9&1)-1,b=Math.max(b,e-g),1024<b&&(za(c,g,{}),d|=256,b=1023),d=d&-2095105|(b&1023)<<11)}}I(a,d);return a}
176function za(a,b,c){for(var d=1023+b,e=a.length,f=d;f<e;f++){var g=a[f];null!=g&&g!==c&&(c[f-b]=g)}a.length=d+1;a[d]=c};function Aa(a){switch(typeof a){case "number":return isFinite(a)?a:String(a);case "boolean":return a?1:0;case "object":if(a&&!Array.isArray(a)&&ta&&null!=a&&a instanceof Uint8Array){if(ua){for(var b="",c=0,d=a.length-10240;c<d;)b+=String.fromCharCode.apply(null,a.subarray(c,c+=10240));b+=String.fromCharCode.apply(null,c?a.subarray(c):a);a=btoa(b)}else{void 0===b&&(b=0);if(!E){E={};c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split("");d=["+/=","+/","-_=","-_.","-_"];for(var e=
1770;5>e;e++){var f=c.concat(d[e].split(""));sa[e]=f;for(var g=0;g<f.length;g++){var h=f[g];void 0===E[h]&&(E[h]=g)}}}b=sa[b];c=Array(Math.floor(a.length/3));d=b[64]||"";for(e=f=0;f<a.length-2;f+=3){var k=a[f],w=a[f+1];h=a[f+2];g=b[k>>2];k=b[(k&3)<<4|w>>4];w=b[(w&15)<<2|h>>6];h=b[h&63];c[e++]=g+k+w+h}g=0;h=d;switch(a.length-f){case 2:g=a[f+1],h=b[(g&15)<<2]||d;case 1:a=a[f],c[e]=b[a>>2]+b[(a&3)<<4|g>>4]+h+d}a=c.join("")}return a}}return a};function Ba(a,b,c){a=Array.prototype.slice.call(a);var d=a.length,e=b&256?a[d-1]:void 0;d+=e?-1:0;for(b=b&512?1:0;b<d;b++)a[b]=c(a[b]);if(e){b=a[b]={};for(var f in e)Object.prototype.hasOwnProperty.call(e,f)&&(b[f]=c(e[f]))}return a}
177function Da(a,b,c,d,e,f){if(null!=a){if(Array.isArray(a))a=e&&0==a.length&&H(a)&1?void 0:f&&H(a)&2?a:Ea(a,b,c,void 0!==d,e,f);else if(N(a)){var g={},h;for(h in a)Object.prototype.hasOwnProperty.call(a,h)&&(g[h]=Da(a[h],b,c,d,e,f));a=g}else a=b(a,d);return a}}
178function Ea(a,b,c,d,e,f){var g=d||c?H(a):0;d=d?!!(g&32):void 0;a=Array.prototype.slice.call(a);for(var h=0;h<a.length;h++)a[h]=Da(a[h],b,c,d,e,f);c&&c(g,a);return a}function Fa(a){return a.s===M?a.toJSON():Aa(a)};function Ga(a,b,c){c=void 0===c?K:c;if(null!=a){if(ta&&a instanceof Uint8Array)return b?a:new Uint8Array(a);if(Array.isArray(a)){var d=H(a);if(d&2)return a;if(b&&!(d&64)&&(d&32||0===d))return I(a,d|34),a;a=Ea(a,Ga,d&4?K:c,!0,!1,!0);b=H(a);b&4&&b&2&&Object.freeze(a);return a}a.s===M&&(b=a.h,c=J(b),a=c&2?a:Q(a.constructor,Ha(b,c,!0)));return a}}function Ha(a,b,c){var d=c||b&2?K:xa,e=!!(b&32);a=Ba(a,b,function(f){return Ga(f,e,d)});G(a,32|(c?2:0));return a};function Ia(a,b){a=a.h;return Ja(a,J(a),b)}function Ja(a,b,c,d){if(-1===c)return null;if(c>=L(b)){if(b&256)return a[a.length-1][c]}else{var e=a.length;
178if(d&&b&256&&(d=a[e-1][c],null!=d))return d;b=c+((b>>9&1)-1);if(b<e)return a[b]}}function Ka(a,b,c,d,e){var f=L(b);if(c>=f||e){e=b;if(b&256)f=a[a.length-1];else{if(null==d)return;f=a[f+((b>>9&1)-1)]={};e|=256}f[c]=d;e&=-1025;e!==b&&I(a,e)}else a[c+((b>>9&1)-1)]=d,b&256&&(d=a[a.length-1],c in d&&delete d[c]),b&1024&&I(a,b&-1025)}
179function La(a,b){var c=Ma;var d=void 0===d?!1:d;var e=a.h;var f=J(e),g=Ja(e,f,b,d);var h=!1;if(null==g||"object"!==typeof g||(h=Array.isArray(g))||g.s!==M)if(h){var k=h=H(g);0===k&&(k|=f&32);k|=f&2;k!==h&&I(g,k);c=new c(g)}else c=void 0;else c=g;c!==g&&null!=c&&Ka(e,f,b,c,d);e=c;if(null==e)return e;a=a.h;f=J(a);f&2||(g=e,c=g.h,h=J(c),g=h&2?Q(g.constructor,Ha(c,h,!1)):g,g!==e&&(e=g,Ka(a,f,b,e,d)));return e}function Na(a,b){a=Ia(a,b);return null==a||"string"===typeof a?a:void 0}
180function Oa(a,b){a=Ia(a,b);return null!=a?a:0}function S(a,b){a=Na(a,b);return null!=a?a:""};function T(a,b,c){this.h=R(a,b,c)}T.prototype.toJSON=function(){var a=Ea(this.h,Fa,void 0,void 0,!1,!1);return Pa(this,a,!0)};T.prototype.s=M;T.prototype.toString=function(){return Pa(this,this.h,!1).toString()};
181function Pa(a,b,c){var d=a.constructor.v,e=L(J(c?a.h:b)),f=!1;if(d){if(!c){b=Array.prototype.slice.call(b);var g;if(b.length&&N(g=b[b.length-1]))for(f=0;f<d.length;f++)if(d[f]>=e){Object.assign(b[b.length-1]={},g);break}f=!0}e=b;c=!c;g=J(a.h);a=L(g);g=(g>>9&1)-1;for(var h,k,w=0;w<d.length;w++)if(k=d[w],k<a){k+=g;var r=e[k];null==r?e[k]=c?O:wa():c&&r!==O&&va(r)}else h||(r=void 0,e.length&&N(r=e[e.length-1])?h=r:e.push(h={})),r=h[k],null==h[k]?h[k]=c?O:wa():c&&r!==O&&va(r)}d=b.length;if(!d)return b;
182var Ca;if(N(h=b[d-1])){a:{var y=h;e={};c=!1;for(var ca in y)Object.prototype.hasOwnProperty.call(y,ca)&&(a=y[ca],Array.isArray(a)&&a!=a&&(c=!0),null!=a?e[ca]=a:c=!0);if(c){for(var rb in e){y=e;break a}y=null}}y!=h&&(Ca=!0);d--}for(;0<d;d--){h=b[d-1];if(null!=h)break;var cb=!0}if(!Ca&&!cb)return b;var da;f?da=b:da=Array.prototype.slice.call(b,0,d);b=da;f&&(b.length=d);y&&b.push(y);return b};function Qa(a){return function(b){if(null==b||""==b)b=new a;else{b=JSON.parse(b);if(!Array.isArray(b))throw Error(void 0);G(b,32);b=Q(a,b)}return b}};function Ra(a){this.h=R(a)}n(Ra,T);var Sa=Qa(Ra);var U;function V(a){this.g=a}V.prototype.toString=function(){return this.g+""};var Ta={};function Ua(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)};function Va(a,b){b=String(b);"application/xhtml+xml"===a.contentType&&(b=b.toLowerCase());return a.createElement(b)}function Wa(a){this.g=a||p.document||document}Wa.prototype.appendChild=function(a,b){a.appendChild(b)};/*
183
184 SPDX-License-Identifier: Apache-2.0
185*/
186function Xa(a,b){a.src=b instanceof V&&b.constructor===V?b.g:"type_error:TrustedResourceUrl";var c,d;(c=(b=null==(d=(c=(a.ownerDocument&&a.ownerDocument.defaultView||window).document).querySelector)?void 0:d.call(c,"script[nonce]"))?b.nonce||b.getAttribute("nonce")||"":"")&&a.setAttribute("nonce",c)};function Ya(a){a=void 0===a?document:a;return a.createElement("script")};function Za(a,b,c,d,e,f){try{var g=a.g,h=Ya(g);h.async=!0;Xa(h,b);g.head.appendChild(h);h.addEventListener("load",function(){e();d&&g.head.removeChild(h)});h.addEventListener("error",function(){0<c?Za(a,b,c-1,d,e,f):(d&&g.head.removeChild(h),f())})}catch(k){f()}};var $a=p.atob("aHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2ljb25zL21hdGVyaWFsL3N5c3RlbS8xeC93YXJuaW5nX2FtYmVyXzI0ZHAucG5n"),ab=p.atob("WW91IGFyZSBzZWVpbmcgdGhpcyBtZXNzYWdlIGJlY2F1c2UgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlIGlzIGludGVyZmVyaW5nIHdpdGggdGhpcyBwYWdlLg=="),bb=p.atob("RGlzYWJsZSBhbnkgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlLCB0aGVuIHJlbG9hZCB0aGlzIHBhZ2Uu");function db(a,b,c){this.i=a;this.l=new Wa(this.i);this.g=null;this.j=[];this.m=!1;this.u=b;this.o=c}
187function eb(a){if(a.i.body&&!a.m){var b=function(){fb(a);p.setTimeout(function(){return gb(a,3)},50)};Za(a.l,a.u,2,!0,function(){p[a.o]||b()},b);a.m=!0}}
188function fb(a){for(var b=W(1,5),c=0;c<b;c++){var d=X(a);a.i.body.appendChild(d);a.j.push(d)}b=X(a);b.style.bottom="0";b.style.left="0";b.style.position="fixed";b.style.width=W(100,110).toString()+"%";b.style.zIndex=W(2147483544,2147483644).toString();b.style["background-color"]=hb(249,259,242,252,219,229);b.style["box-shadow"]="0 0 12px #888";b.style.color=hb(0,10,0,10,0,10);b.style.display="flex";b.style["justify-content"]="center";b.style["font-family"]="Roboto, Arial";c=X(a);c.style.width=W(80,
18985).toString()+"%";c.style.maxWidth=W(750,775).toString()+"px";c.style.margin="24px";c.style.display="flex";c.style["align-items"]="flex-start";c.style["justify-content"]="center";d=Va(a.l.g,"IMG");d.className=Ua();d.src=$a;d.alt="Warning icon";d.style.height="24px";d.style.width="24px";d.style["padding-right"]="16px";var e=X(a),f=X(a);f.style["font-weight"]="bold";f.textContent=ab;var g=X(a);g.textContent=bb;Y(a,e,f);Y(a,e,g);Y(a,c,d);Y(a,c,e);Y(a,b,c);a.g=b;a.i.body.appendChild(a.g);b=W(1,5);for(c=
1900;c<b;c++)d=X(a),a.i.body.appendChild(d),a.j.push(d)}function Y(a,b,c){for(var d=W(1,5),e=0;e<d;e++){var f=X(a);b.appendChild(f)}b.appendChild(c);c=W(1,5);for(d=0;d<c;d++)e=X(a),b.appendChild(e)}function W(a,b){return Math.floor(a+Math.random()*(b-a))}function hb(a,b,c,d,e,f){return"rgb("+W(Math.max(a,0),Math.min(b,255)).toString()+","+W(Math.max(c,0),Math.min(d,255)).toString()+","+W(Math.max(e,0),Math.min(f,255)).toString()+")"}function X(a){a=Va(a.l.g,"DIV");a.className=Ua();return a}
191function gb(a,b){0>=b||null!=a.g&&0!=a.g.offsetHeight&&0!=a.g.offsetWidth||(ib(a),fb(a),p.setTimeout(function(){return gb(a,b-1)},50))}
192function ib(a){var b=a.j;var c="undefined"!=typeof Symbol&&Symbol.iterator&&b[Symbol.iterator];if(c)b=c.call(b);else if("number"==typeof b.length)b={next:aa(b)};else throw Error(String(b)+" is not an iterable or ArrayLike");for(c=b.next();!c.done;c=b.next())(c=c.value)&&c.parentNode&&c.parentNode.removeChild(c);a.j=[];(b=a.g)&&b.parentNode&&b.parentNode.removeChild(b);a.g=null};function jb(a,b,c,d,e){function f(k){document.body?g(document.body):0<k?p.setTimeout(function(){f(k-1)},e):b()}function g(k){k.appendChild(h);p.setTimeout(function(){h?(0!==h.offsetHeight&&0!==h.offsetWidth?b():a(),h.parentNode&&h.parentNode.removeChild(h)):a()},d)}var h=kb(c);f(3)}function kb(a){var b=document.createElement("div");b.className=a;b.style.width="1px";b.style.height="1px";b.style.position="absolute";b.style.left="-10000px";b.style.top="-10000px";b.style.zIndex="-10000";return b};function Ma(a){this.h=R(a)}n(Ma,T);function lb(a){this.h=R(a)}n(lb,T);var mb=Qa(lb);function nb(a){a=Na(a,4)||"";if(void 0===U){var b=null;var c=p.trustedTypes;if(c&&c.createPolicy){try{b=c.createPolicy("goog#html",{createHTML:q,createScript:q,createScriptURL:q})}catch(d){p.console&&p.console.error(d.message)}U=b}else U=b}a=(b=U)?b.createScriptURL(a):a;return new V(a,Ta)};function ob(a,b){this.m=a;this.o=new Wa(a.document);this.g=b;this.j=S(this.g,1);this.u=nb(La(this.g,2));this.i=!1;b=nb(La(this.g,13));this.l=new db(a.document,b,S(this.g,12))}ob.prototype.start=function(){pb(this)};
193function pb(a){qb(a);Za(a.o,a.u,3,!1,function(){a:{var b=a.j;var c=p.btoa(b);
193if(c=p[c]){try{var d=Sa(p.atob(c))}catch(e){b=!1;break a}b=b===Na(d,1)}else b=!1}b?Z(a,S(a.g,14)):(Z(a,S(a.g,8)),eb(a.l))},function(){jb(function(){Z(a,S(a.g,7));eb(a.l)},function(){return Z(a,S(a.g,6))},S(a.g,9),Oa(a.g,10),Oa(a.g,11))})}function Z(a,b){a.i||(a.i=!0,a=new a.m.XMLHttpRequest,a.open("GET",b,!0),a.send())}function qb(a){var b=p.btoa(a.j);a.m[b]&&Z(a,S(a.g,5))};(function(a,b){p[a]=function(){var c=ma.apply(0,arguments);p[a]=function(){};b.apply(null,c)}})("__h82AlnkH6D91__",function(a){"function"===typeof window.atob&&(new ob(window,mb(window.atob(a)))).start()});}).call(this);
194
195window.__h82AlnkH6D91__("WyJwdWItMjkwODY1NTYxODU0MDk3NiIsW251bGwsbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9iL3B1Yi0yOTA4NjU1NjE4NTQwOTc2Il0sbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9lbC9BR1NLV3hVb211Q3YtM1ROTmZHVmdEXzZ0OEFuNjcyQWR5UXQxaWNkQ21PX2JiZGJ6eWNteWswZEVHdEV0UlVlRTRrelZxMm5PQmY1LVVnZjhwWVdsSnRweUJyb2lBXHUwMDNkXHUwMDNkP3RlXHUwMDNkVE9LRU5fRVhQT1NFRCIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFhNVlN4bnYzRXhrZFo2b0ZKQ25PdUNCdlM5VmxrcnQ5NzRzb3R2cU9ha2owT3ZiMmhybmtaRkFFbWJzRmhZbDczLThqaWtnQ3YtQ05mR2l2WUoyY0lHYUFcdTAwM2RcdTAwM2Q/YWJcdTAwM2QxXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFdkSWtZNDRvbFVONXhQc08xcW9kQzBtR0x5bnJqa3YycDlpSUxxS3RZWkNIWjdUT29WYnNoMWZJNFZsXzEzZnZGdVhHTFNzeGF2V3B6TjJOTXBCUmJwbVFcdTAwM2RcdTAwM2Q/YWJcdTAwM2QyXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFhYR2Y0QmZJSENGUFJiSWs1QUVQOFNrRzk3RUk4RFRJek5XTmU4TTEtTE1kOUd5NjVZQVM1RjVSWGZ4dlUtaVVCVEdRVTdnRVBsemVhWlJCMDJqdklzTXdcdTAwM2RcdTAwM2Q/c2JmXHUwMDNkMiIsImRpdi1ncHQtYWQiLDIwLDEwMCwiY0hWaUxUSTVNRGcyTlRVMk1UZzFOREE1TnpZXHUwMDNkIixbbnVsbCxudWxsLG51bGwsImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tLzBlbW4vZi9wL3B1Yi0yOTA4NjU1NjE4NTQwOTc2LmpzP3VzcXBcdTAwM2RDQWciXSwiaHR0cHM6Ly9mdW5kaW5nY2hvaWNlc21lc3NhZ2VzLmdvb2dsZS5jb20vZWwvQUdTS1d4WHJiMDV0aHFibkc3UXh3SndKTk5tLWI3cEJyRkJqdDNHeVpablA1aDJ3czVRYmFxdHVaYno2MFlkMDNwcVNleERpM2dzTjJab0JDMTlEQWJPdkZYektFd1x1MDAzZFx1MDAzZCJd");</script>
195	
196
197	<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 66 bytes, lines 197-198
197
198	<script async src="https://www.googletagmanager.com/gtag/js?id=
198G-H0XGBVF70F
vendor: 14 bytes, lines 198-199
198"></script>
199	
199<script>
200	  
vendor: 141 bytes, lines 200-204
200window.dataLayer = window.dataLayer || [];
201	  function gtag(){dataLayer.push(arguments);}
202	  gtag('js', new Date());
203
204	  gtag('config', '
204G-H0XGBVF70F
vendor: 6 bytes, lines 204-205
204');
205	
205</script>
205
206	
206<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2908655618540976"
207     crossorigin="anonymous"></script>
207
208	 
209	
209<script defer src="/js/main.js"></script>
209
210	
210<script async src="/js/FileSaver.min.js"></script>
210
211	
212<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"6d883c7367894b0c9c80bed3ac3e5f34","spa":2}' crossorigin="anonymous"></script>
212
213</body>
214
215
216</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.