knitr::opts_chunk$set(
    echo = TRUE,
    message = FALSE,
    warning = FALSE
)
library(zoo)
library(tseries)
library(lmtest)
library(sandwich)
library(car)
rm(list=ls())
library(quantmod)
library(ggplot2)
library(dplyr)

1. Úvod a údaje

Cieľom tejto úlohy je analyzovať vzťahy medzi logaritmickými dennými výnosmi vybraného akciového titulu a výnosmi ďalších finančných aktív. Konkrétne sa zameriavame na spoločnosť Apple (AAPL) a skúmame, do akej miery sa jej denné výnosy dajú vysvetliť vývojom na trhu so zlatom (GLD), energetickým sektorom (XLE) a celkovým trhovým indexom S&P 500 (SPY).

Výber aktív umožňuje porovnať správanie technologickej akcie s rôznymi časťami finančného trhu — komoditami, sektorovými ETF a širokým trhovým benchmarkom. Použitím denných logaritmických výnosov eliminujeme vplyv úrovne cien a získavame časový rad vhodný na ekonometrickú analýzu. ## Úvod do problému a stanovenie hypotéz Denné výnosy akciových titulov reagujú na široké spektrum faktorov, ktoré zahŕňajú celkový trhový sentiment, vývoj v jednotlivých sektoroch aj pohyby alternatívnych aktív. Technologické spoločnosti, medzi ktoré patrí aj Apple (AAPL), bývajú typicky veľmi citlivé na zmeny vo výkonnosti celého trhu, ale ich správanie môže byť ovplyvnené aj špecifickými segmentmi, ako sú komodity alebo odvetvové ETF. V tejto úlohe preto analyzujeme, ako sa denné logaritmické výnosy spoločnosti Apple vyvíjajú v závislosti od výnosov troch ďalších aktív: indexu S&P 500 reprezentovaného ETF SPY, zlata prostredníctvom ETF GLD a energetického sektora cez ETF XLE. Cieľom je zistiť, či zmeny v týchto aktívach dokážu štatisticky významne vysvetliť správanie sa výnosov Apple a či má najväčší vplyv práve celkový trh, ako by naznačovala ekonomická intuícia.

Naša pracovná hypotéza predpokladá, že všetky tri vysvetľujúce premenné – výnosy indexu SPY, výnosy zlata (GLD) a výnosy energetického sektora (XLE) – majú štatisticky významný vplyv na denné logaritmické výnosy spoločnosti Apple (AAPL). Očakávame pritom, že výnosy trhu reprezentované ETF SPY budú mať pozitívny vplyv, keďže Apple je súčasťou indexu S&P 500 a jeho cena spravidla rastie v súlade s celkovým trhovým sentimentom.

V prípade výnosov zlata predpokladáme, že vplyv môže byť buď mierne negatívny, alebo veľmi slabý, keďže zlato často funguje ako bezpečné aktívum a jeho výnosy sa môžu pohybovať opačne než akciové trhy. Pri energetickom sektore očakávame, že jeho výnosy budú mať kladný vplyv na výnosy Apple, keďže rast energetického sektora býva spojený s lepším makroekonomickým prostredím, vyššou ekonomickou aktivitou a celkovo pozitívnym sentimentom investorov.

Pracovná hypotéza teda tvrdí, že všetky tri koeficienty v regresnom modeli sú štatisticky významné, pričom odhadovaný koeficient pri SPY by mal byť kladný, koeficient pri XLE taktiež kladný a koeficient pri GLD mierne záporný alebo blízko nule. Spoločná nulová hypotéza tvrdí, že žiadna z vysvetľujúcich premenných nevysvetľuje správanie výnosov Apple, čo znamená, že všetky koeficienty sú rovné nule; túto hypotézu testujeme F-testom v rámci lineárneho regresného modelu.

Budeme testovať hypotézu

\(H_0:\) model je správne špecifikovaný (\(\gamma_2 = \gamma_3 = 0\))

oproti

\(H_1:\) model je nesprávne špecifikovaný (\(\gamma_2 \ne 0 \quad \text{alebo} \quad \gamma_3 \ne 0\))

Import údajov

Na začiatok si importujeme údaje. Vybrala som si dáta o cene akcií spoločnosti Apple a ETF’s, ktoré opisujú vývoj trhu zlata (GLD), energetického sektora (XLE) a (SPY), ktoré kopíruje trh S&P 500. Dáta sú za obdobie 1.1.2024-1.1.2025. Údaje sú stiahnuté priamo z internetu, z databázy YahooFinance. Tieto hodnoty predstavujú vývoj cien, na ktorom budeme následne analyzovať logaritmické výnosnosti a vzájomné vzťahy medzi výnosnosťami daných aktív.

tickers <- c("AAPL", "GLD", "XLE", "SPY")   # Apple, Gold ETF, Energy ETF, S&P500 ETF
getSymbols(tickers, from = "2024-01-01", to = "2025-01-01")
[1] "AAPL" "GLD"  "XLE"  "SPY" 
data <- merge(Cl(AAPL), Cl(GLD), Cl(XLE), Cl(SPY))
colnames(data) <- tickers

ret <- na.omit(diff(log(data)))
colnames(ret) <- paste0(colnames(ret), "_ret")

ret_df <- na.omit(as.data.frame(ret))
head(ret_df)

Deskriptívna štatistika

V nasledujúcej časti vykonávame deskriptívnu štatistiku denných logaritmických výnosov štyroch finančných aktív, aby sme získali základný prehľad o ich rozdelení a volatilite.

summary(ret_df)
    AAPL_ret            GLD_ret              XLE_ret              SPY_ret         
 Min.   :-0.049366   Min.   :-0.0363355   Min.   :-3.276e-02   Min.   :-0.030257  
 1st Qu.:-0.006736   1st Qu.:-0.0042584   1st Qu.:-6.372e-03   1st Qu.:-0.003000  
 Median : 0.001595   Median : 0.0016010   Median : 1.543e-03   Median : 0.001093  
 Mean   : 0.001193   Mean   : 0.0009509   Mean   : 4.302e-05   Mean   : 0.000857  
 3rd Qu.: 0.009288   3rd Qu.: 0.0073401   3rd Qu.: 6.793e-03   3rd Qu.: 0.005756  
 Max.   : 0.070131   Max.   : 0.0221408   Max.   : 3.691e-02   Max.   : 0.024561  

Apple

Rozpätie výnosov sa pohybuje od –4,94 % po +7,01 %, čo z aktív robí najvolatilnejšie. Priemerný denný výnos (0,12 %) aj medián (0,16 %) sú pozitívne a naznačujú mierny rastový trend, zatiaľ čo bežné denné pohyby (IQR) sa pohybujú do ±1 %.

Gold

Výnosy zlata kolíšu medzi –3,63 % a +2,21 %, čo je menej ako pri AAPL. Priemer (0,095 %) aj medián (0,16 %) sú mierne pozitívne. Nižší IQR potvrdzuje stabilnejší charakter zlata ako defenzívneho aktíva.

XLE

Rozpätie od –3,28 % do +3,69 % naznačuje výraznejšiu volatilitu typickú pre energetický sektor. Priemerný výnos je takmer nulový, čo odráža neutrálne dlhodobé smerovanie. Medián (0,15 %) je pozitívny, no variabilita je vyššia ako pri SPY či GLD.

SPY

S&P 500 má najnižšie rozpätie výnosov (–3,02 % až +2,45 %) aj najmenšie medzikvartilové rozpätie, čo potvrdzuje jeho stabilitu. Priemerný denný výnos (0,085 %) aj medián (0,11 %) zostávajú pozitívne a zodpovedajú širokému diverzifikovanému portfóliu.

2. Lineárna regresia v základnom tvare

V tejto časti odhadujeme lineárny regresný model, ktorého cieľom je vysvetliť denné logaritmické výnosy spoločnosti Apple (AAPL) pomocou výnosov troch ďalších finančných aktív: zlata (GLD), energetického sektora (XLE) a indexu S&P 500 reprezentovaného ETF SPY. Ide o najjednoduchší špecifikačný variant modelu, v ktorom predpokladáme lineárny vzťah medzi výnosmi Apple a uvedenými vysvetľujúcimi premennými, pričom koeficienty predstavujú okamžitú citlivosť výnosu Apple na malé zmeny v jednotlivých aktívach. Odhad slúži ako východiskový krok pre testovanie stanovených hypotéz aj pre následnú diagnostiku modelu. Pôvodný regresný model:

\[AAPL\_ret = \beta_0 + \beta_1 \cdot GLD\_ret + \beta_2 \cdot XLE\_ret + \beta_3 \cdot SPY\_ret + u\]

modelA <- lm(AAPL_ret ~ GLD_ret + XLE_ret + SPY_ret, data = ret_df)
summary(modelA)

Call:
lm(formula = AAPL_ret ~ GLD_ret + XLE_ret + SPY_ret, data = ret_df)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.044288 -0.006673 -0.000362  0.005717  0.066928 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.0003073  0.0007477   0.411   0.6814    
GLD_ret      0.0028525  0.0818840   0.035   0.9722    
XLE_ret     -0.1950403  0.0705065  -2.766   0.0061 ** 
SPY_ret      1.0396059  0.1007431  10.319   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.01173 on 247 degrees of freedom
Multiple R-squared:  0.3122,    Adjusted R-squared:  0.3038 
F-statistic: 37.37 on 3 and 247 DF,  p-value: < 2.2e-16

Výsledky ukazujú, že najvýznamnejším faktorom ovplyvňujúcim denný výnos Apple je index SPY, ktorý má kladný a vysoko štatisticky významný koeficient. To znamená, že pohyb celého trhu je kľúčovým determinantnom správania ceny Apple, čo je v súlade s očakávaniami, keďže Apple tvorí významnú časť indexu S&P 500. Koeficient pri GLD je veľmi malý a neštatisticky významný, čo naznačuje, že výnosy zlata nemajú systematický vplyv na výnosy Apple. Premenná XLE je štatisticky významná na hladine 1 % a jej koeficient má záporné znamienko, čo naznačuje, že v analyzovanom období sa výnosy energetického sektora pohybovali často opačným smerom ako výnosy Apple. Celková štatistická významnosť modelu je potvrdená F-testom a približne 31 % variability výnosov Apple je vysvetlených zahrnutými premennými.

3 Autokorelácia rezíduí

Autokorelácia rezíduí predstavuje situáciu, keď sú chyby regresného modelu vzájomne časovo závislé, teda keď hodnota rezídua v jednom období súvisí s hodnotami rezíduí v predchádzajúcich obdobiach. V kontexte časových radov ide o bežný jav, ktorý však porušuje jeden zo základných predpokladov klasického lineárneho modelu – nezávislosť chýb. Ak sa v reziduách vyskytuje autokorelovaná štruktúra, môže to viesť k skresleniu odhadov smerodajných chýb, nesprávnym p-hodnotám a následne k chybným záverom pri testovaní hypotéz. Z tohto dôvodu je potrebné overiť, či reziduá z nášho modelu nevykazujú systematickú časovú závislosť.

Detekcia autokorelácie reziduí

V tejto časti sa zameriavame na vizuálnu kontrolu prítomnosti autokorelácie pomocou grafického porovnania empirických a fitted hodnôt. Ak medzi týmito dvoma priebehmi vidíme systematické obdobia nad- alebo podhodnotenia modelu, môže to naznačovať prítomnosť časovej závislosti v reziduách. Nasledujúca vizualizácia nám umožní identifikovať, či model zachytáva dynamiku dát dostatočne dobre, alebo či zostáva v reziduách nejaká štruktúra, ktorá by mala byť ďalej testovaná formálnymi štatistickými testami.

library(ggplot2)

# pridanie fitted values do dataframe
ret_df$fitted <- fitted(modelA)

# pridanie dátumu (riadky sa pôvodne volajú podľa dátumu)
ret_df$Date <- as.Date(rownames(ret_df))

# scatterplot + fitted line
ggplot(ret_df, aes(x = Date, y = AAPL_ret)) +
  geom_point(color = "steelblue", size = 2) +          # empirické dáta
  geom_line(aes(y = fitted), color = "red", size = 1) + # fitted values (červená)
  
  labs(
    title = "AAPL: Empirické dáta (modrá) vs. Fitted hodnoty (červená)",
    x = "Dátum",
    y = "Log-výnos AAPL"
  ) +
  theme_minimal()

Graf porovnáva empirické denné logaritmické výnosy akcie Apple, znázornené modrými bodmi, s fitted hodnotami modelu, ktoré sú zobrazené červenou spojnicou. Modré body vykazujú typickú volatilitu akciových výnosov, pričom sa pohybujú okolo nulovej osi s občasnými extrémnejšími pozitívnymi aj negatívnymi odchýlkami. Červená fitted čiara prebieha uprostred týchto bodov a zachytáva iba základný vzťah medzi výnosmi Apple a vysvetľujúcimi premennými modelu.

Z grafu je zrejmé, že fitted hodnoty nedokážu reprodukovať náhodné krátkodobé výkyvy vo výnosoch, pretože model predpokladá lineárnu štruktúru bez dynamických efektov. Napriek tomu je viditeľné, že fitted čiara sleduje všeobecný trend a drží sa v strede rozptylu empirických pozorovaní, čo naznačuje, že model približne vystihuje priemerné správanie výnosov Apple. Zároveň však rozdiely medzi modrými bodmi a červenou čiarou poukazujú na vysokú mieru nevysvetlenej variability, čo je pre denné akciové výnosy bežné.

Graf teda ukazuje, že lineárny model zachytáva základnú citlivosť AAPL na pohyby na trhu, no významná časť výkyvov zostáva náhodná alebo spôsobená faktormi, ktoré model neobsahuje.

Uloženie reziduí

Týmto príkazom si z nášho odhadnutého modelu modelA ukladáme reziduá do novej premennej res, aby sme ich následne mohli analyzovať a skontrolovať, či neobsahujú autokoreláciu alebo inú systematickú štruktúru.

res <- residuals(modelA)

AFC Graf

Po vizuálnej kontrole fitted a empirických hodnôt je ďalším krokom formálna analýza toho, či reziduá vykazujú časovú závislosť. Autokorelačná funkcia (ACF) umožňuje preskúmať, či je chyba v jednom období štatisticky prepojená s chybami v predchádzajúcich obdobiach. Ak by sa v reziduách objavila výrazná autokorelácia, znamenalo by to porušenie predpokladu nezávislosti chýb, čo by mohlo skresľovať testovanie hypotéz v rámci regresného modelu. Preto vypočítavame a zobrazujeme ACF rezíduí pre prvé štyri oneskorenia, aby sme overili, či sa v chybách nenachádza systematická štruktúra.

acf(res, lag.max = 4, main = "ACF rezíduí")

ACF graf zobrazuje autokorelačné koeficienty rezíduí pre oneskorenia od 1 do 4. Všetky zobrazené hodnoty ležia v rámci modrých hraníc štatistickej nevýznamnosti, čo znamená, že žiadne z rezíduí nie sú výrazne prepojené so svojimi minulými hodnotami. Inými slovami, reziduá sa správajú ako biely šum a neobsahujú systematickú autokoreláciu. Tento výsledok je priaznivý, pretože potvrdzuje splnenie predpokladu nezávislosti chýb v lineárnom regresnom modeli.

Durbin-Watson test

Durbin–Watson test používame na overenie, či sa reziduá modelu nenaviazali jedno na druhé v čase. Ide o rýchly spôsob, ako zistiť, či sú chyby v modeli náhodné, alebo či sa v nich objavuje nejaký pravidelný vzor. Ak by reziduá boli autokorelované, znamenalo by to, že model nie je úplne správne špecifikovaný. Preto si test overíme aj formálne týmto príkazom.

# Durbin–Watson test
dwtest(modelA)

    Durbin-Watson test

data:  modelA
DW = 2.0414, p-value = 0.6275
alternative hypothesis: true autocorrelation is greater than 0

V našom prípade Durbin–Watson štatistika nadobudla hodnotu približne 2.04, čo je veľmi blízko referenčnej hodnote 2 charakteristickej pre reziduá bez autokorelácie. P-hodnota testu je 0.6275, teda vysoko nad bežne používajúcimi hladinami významnosti, čo znamená, že nemáme dôvod zamietnuť nulovú hypotézu o absencii autokorelácie. Test teda potvrdzuje, že reziduá modelu neobsahujú štatisticky významnu autokoreláciu prvého rádu, čo je v súlade so závermi z vizuálnej a ACF analýzy.

Breusch–Godfrey test

Po vizuálnom preskúmaní rezíduí a po vykonaní Durbin–Watson testu dopĺňame analýzu aj o Breusch–Godfrey test, ktorý poskytuje robustnejšie overenie, či sa v reziduách nenachádza sériová korelácia zvoleného rádu. Keďže pracujeme s dennými finančnými časovými radmi, je vhodné overiť najmä autokoreláciu prvého rádu, ktorá by mohla naznačovať, že model nezachytil krátkodobú dynamiku vo vývoji výnosov. Breusch–Godfrey test umožňuje formálne overiť tento predpoklad priamo na reziduách nášho základného regresného modelu.

# Breusch–Godfrey test (order = 1)
bgtest(modelA, order = 1)

Výsledok testu ukazuje, že hodnota LM štatistiky je veľmi nízka (0.11285) a sprevádza ju vysoká p-hodnota (0.7369). Takýto výsledok naznačuje, že reziduá modelu neobsahujú žiadnu štatisticky významnú autokoreláciu prvého rádu. Nulová hypotéza o absencii sériovej korelácie preto nie je zamietnutá. Tento záver je v súlade s predchádzajúcimi zisteniami z ACF grafu aj z Durbin–Watson testu, čo posilňuje dôveru v to, že model pracuje s náhodnými a nezávislými reziduami. Na základe toho môžeme konštatovať, že model neporušuje predpoklad nezávislosti chýb a z tohto hľadiska je štatisticky špecifikovaný korektne.

Riešenie autokorelácie

Po odhade základného lineárneho modelu dopĺňame analýzu o Koyckov model, ktorý umožňuje zohľadniť oneskorený vplyv závislej premennej na svoj vlastný budúci vývoj. Do regresie preto pridávame jednu lagovanú hodnotu výnosu Apple, čím testujeme, či má minulé správanie výnosov Apple dodatočný vplyv na ich aktuálnu hodnotu. Táto špecifikácia je vhodná najmä pri časových radoch, kde sa môže predpokladať, že časová dynamika zohráva úlohu aj po zohľadnení ostatných vysvetľujúcich premenných.

# Koyckov model (oneskorená závislá premenná)
ret_df <- ret_df %>% mutate(AAPL_ret_lag1 = dplyr::lag(AAPL_ret))
model_koyck <- lm(AAPL_ret ~ GLD_ret + XLE_ret + SPY_ret + AAPL_ret_lag1, data = ret_df)
summary(model_koyck)

Call:
lm(formula = AAPL_ret ~ GLD_ret + XLE_ret + SPY_ret + AAPL_ret_lag1, 
    data = ret_df)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.044366 -0.006669 -0.000399  0.005762  0.067092 

Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
(Intercept)    0.0002801  0.0007547   0.371  0.71088    
GLD_ret        0.0033333  0.0828118   0.040  0.96793    
XLE_ret       -0.1971957  0.0716313  -2.753  0.00635 ** 
SPY_ret        1.0416997  0.1017896  10.234  < 2e-16 ***
AAPL_ret_lag1  0.0076346  0.0535808   0.142  0.88681    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.01178 on 245 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.3115,    Adjusted R-squared:  0.3003 
F-statistic: 27.71 on 4 and 245 DF,  p-value: < 2.2e-16

Výsledky Koyckovho modelu ukazujú, že zahrnutie oneskorenej premennej nezmenilo základný charakter modelu. Koeficient pri AAPL_ret_lag1 je veľmi malý a neštatisticky významný, čo naznačuje, že minulé denné výnosy Apple v tomto období nemajú dodatočný vysvetľujúci efekt nad rámec premenných, ktoré už v modeli sú. Naopak, štatisticky významne pôsobí výnos energetického sektora, ktorý si zachováva záporný vplyv podobne ako v základnom modeli. Najvýraznejším faktorom zostáva výnos indexu SPY, ktorý je opäť silne významný s kladným koeficientom, čo potvrdzuje, že pohyb celého trhu je najdôležitejším determinantom výnosov Apple.

Z pohľadu celkovej kvality modelu sa R-squared takmer nezmenilo (približne 31 %), čo znamená, že zahrnutie lagovanej premennej neprispelo k výraznému zvýšeniu vysvetlenej variability. F-test zostáva vysoko štatisticky významný, čo potvrdzuje, že model ako celok je vhodný, avšak pridaná oneskorená premenná nepriniesla dodatočnú výpovednú hodnotu.

Na základe týchto výsledkov možno konštatovať, že v rámci analyzovaného obdobia neexistuje významna krátkodobá zotrvačnosť vo výnosnostiach Apple, a ich dynamika je dostatočne vysvetlená aktuálnymi hodnotami vysvetľujúcich premenných.

Durbin-Watson pre Koyckov model

Po odhadnutí Koyckovho modelu je vhodné opätovne overiť, či sa po pridaní oneskorenej premennej nezmenila situácia v reziduách. Keďže Koyckov model pracuje s dynamickou štruktúrou, je prirodzené skontrolovať, či tento rozšírený model neviedol k vzniku alebo naopak k odstráneniu autokorelácie. Na tento účel opäť používame Durbin–Watson test, ktorý umožňuje rýchlo a priamo vyhodnotiť, či sú reziduá navzájom časovo závislé.

dwtest(model_koyck)

    Durbin-Watson test

data:  model_koyck
DW = 2.0484, p-value = 0.6481
alternative hypothesis: true autocorrelation is greater than 0

Hodnota Durbin–Watson štatistiky je 2.0484, čo je takmer totožné s výsledkom zo základného modelu a zároveň veľmi blízko referenčnej hodnote 2, ktorá zodpovedá absencii autokorelácie. P-hodnota 0.6481 je vysoká, takže nemáme dôvod zamietnuť nulovú hypotézu o nezávislosti rezíduí. Tento výsledok potvrdzuje, že ani po zahrnutí lagovanej premennej sa v reziduách neobjavila štatisticky významná autokorelácia. Z hľadiska diagnostiky teda rozšírený model neporušuje predpoklad nezávislosti chýb a z tohto pohľadu je špecifikovaný korektne.

Newey–West robustné štandardné chyby (pre základný model)

Keďže pri finančných časových radoch sa často vyskytuje heteroskedasticita alebo slabá forma autokorelácie, je vhodné overiť aj robustnosť odhadnutých smerodajných chýb. Na tento účel používame Newey–West štandardné chyby, ktoré korigujú štandardné chyby koeficientov tak, aby zostali konzistentné aj v prípade, ak reziduá modelu nie sú úplne homoskedastické alebo nezávislé. Odhad samotných koeficientov sa nemení, upravujú sa iba ich štandardné chyby a tým aj výsledné t-štatistiky a p-hodnoty. Týmto krokom získavame stabilnejší pohľad na štatistickú významnosť jednotlivých premenných.

coeftest(modelA, vcov = NeweyWest(modelA))

t test of coefficients:

               Estimate  Std. Error t value  Pr(>|t|)    
(Intercept)  0.00030731  0.00068327  0.4498  0.653274    
GLD_ret      0.00285249  0.10022043  0.0285  0.977317    
XLE_ret     -0.19504030  0.06008348 -3.2462  0.001332 ** 
SPY_ret      1.03960592  0.10109779 10.2832 < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Po aplikovaní Newey–West korekcie sa ukazuje, že štruktúra významnosti v modeli zostáva veľmi podobná ako pri klasických štandardných chybách. Premenná GLD_ret je aj naďalej neštatisticky významná, čo potvrdzuje, že výnosy zlata nevysvetľujú výnosy Apple v analyzovanom období. Premenná XLE_ret si zachováva štatistickú významnosť na približne rovnakej úrovni a jej koeficient zostáva záporný, čo poukazuje na negatívny súvis medzi energetickým sektorom a výnosmi Apple. Najvýraznejším faktorom modelu zostáva SPY_ret, ktorý je aj po robustnej korekcii vysoko štatisticky významný, s veľmi silným pozitívnym vplyvom.

Robustné smerodajné chyby teda nemenia celkové závery a potvrdzujú, že výsledky základného modelu sú stabilné aj po zohľadnení možného porušenia klasických predpokladov. Model poskytuje konzistentne interpretovateľné výsledky a identifikované vzťahy medzi premennými sú robustné voči týmto korekciám.

Záver

Výsledky analýzy ukazujú, že reziduá odhadnutého modelu nevykazujú žiadnu štatisticky významnú autokoreláciu. Vizualizácia fitted hodnôt v porovnaní s empirickými dátami neodhalila žiadne pravidelné vzorce, ktoré by naznačovali časovú závislosť chýb. ACF graf potvrdil, že všetky hodnoty autokorelácie pri oneskoreniach 1 až 4 sa nachádzajú v rámci hraníc štatistickej nevýznamnosti, takže reziduá sa správajú ako náhodný, časovo nezávislý proces.

Tento záver ďalej podporujú oba formálne testy. Durbin–Watson štatistika bola v oboch modeloch veľmi blízko hodnote 2 a p-hodnoty boli vysoké, čo znamená, že nemáme dôvod predpokladať pozitívnu autokoreláciu prvého rádu. Rovnako aj Breusch–Godfrey test poskytol vysokú p-hodnotu, čím potvrdil absenciu sériovej korelácie. Po rozšírení modelu o oneskorenú hodnotu závislej premennej sa situácia nezmenila a reziduá zostali bez autokorelačnej štruktúry.

Z výsledkov teda vyplýva, že model je z hľadiska autokorelácie štatisticky v poriadku. Reziduá sú nezávislé, nepodobajú sa na systematický časový vzor a všetky použité diagnostické nástroje vedú k rovnakému záveru. Model je teda vhodne špecifikovaný, aspoň z hľadiska tohto predpokladu, a autokorelace nepredstavuje problém v interpretácii jeho výsledkov.

LS0tCnRpdGxlOiAiRGV2aWF0YSDDumxvaGEiCmF1dGhvcjogJyBNaXJvc2xhdmEgTWVkdmVja8OhICA8YnI+JwpkYXRlOiAiU2VwdGVtYmVyIDIwMjUiCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdG9jOiB0cnVlCiAgICB0b2NfZmxvYXQ6IHRydWUKICAgIHRoZW1lOiB1bml0ZWQKICAgIGhpZ2hsaWdodDogdGFuZ28KICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB0cnVlCiAgICBkZl9wcmludDogcGFnZWQKZWRpdG9yX29wdGlvbnM6CiAgbWFya2Rvd246CiAgICB3cmFwOiA3MgotLS0KYGBge3J9CmtuaXRyOjpvcHRzX2NodW5rJHNldCgKICAgIGVjaG8gPSBUUlVFLAogICAgbWVzc2FnZSA9IEZBTFNFLAogICAgd2FybmluZyA9IEZBTFNFCikKYGBgCgo8c3R5bGU+Ci8qIENlbGtvdsOpIHBvemFkaWUgKi8KYm9keSB7CiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2YzZThmZiwgI2U5ZDVmZiwgI2VkZTlmZSk7CiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgY29sb3I6ICMyZTA4NTQ7CiAgbGluZS1oZWlnaHQ6IDEuNzsKICBwYWRkaW5nOiAyNXB4Owp9CgovKiBIbGF2bsOpIG5hZHBpc3kgKi8KaDEsIGgyLCBoMyB7CiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogIGNvbG9yOiAjNGIwMDgyOyAvKiB0bWF2b2ZpYWxvdsOhICovCiAgdGV4dC1zaGFkb3c6IDBweCAxcHggMnB4ICNlOWQ1ZmY7Cn0KPC9zdHlsZT4KCmBgYHtyfQpsaWJyYXJ5KHpvbykKbGlicmFyeSh0c2VyaWVzKQpsaWJyYXJ5KGxtdGVzdCkKbGlicmFyeShzYW5kd2ljaCkKbGlicmFyeShjYXIpCnJtKGxpc3Q9bHMoKSkKbGlicmFyeShxdWFudG1vZCkKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KGRwbHlyKQpgYGAKIyAxLiDDmnZvZCBhIMO6ZGFqZSAKQ2llxL5vbSB0ZWp0byDDumxvaHkgamUgYW5hbHl6b3ZhxaUgdnrFpWFoeSBtZWR6aSBsb2dhcml0bWlja8O9bWkgZGVubsO9bWkgdsO9bm9zbWkgdnlicmFuw6lobyBha2Npb3bDqWhvIHRpdHVsdSBhIHbDvW5vc21pIMSPYWzFocOtY2ggZmluYW7EjW7DvWNoIGFrdMOtdi4gS29ua3LDqXRuZSBzYSB6YW1lcmlhdmFtZSBuYSBzcG9sb8SNbm9zxaUgQXBwbGUgKEFBUEwpIGEgc2vDum1hbWUsIGRvIGFrZWogbWllcnkgc2EgamVqIGRlbm7DqSB2w71ub3N5IGRhasO6IHZ5c3ZldGxpxaUgdsO9dm9qb20gbmEgdHJodSBzbyB6bGF0b20gKEdMRCksIGVuZXJnZXRpY2vDvW0gc2VrdG9yb20gKFhMRSkgYSBjZWxrb3bDvW0gdHJob3bDvW0gaW5kZXhvbSBTJlAgNTAwIChTUFkpLgoKVsO9YmVyIGFrdMOtdiB1bW/FvsWIdWplIHBvcm92bmHFpSBzcHLDoXZhbmllIHRlY2hub2xvZ2lja2VqIGFrY2llIHMgcsO0em55bWkgxI1hc8WlYW1pIGZpbmFuxI1uw6lobyB0cmh1IOKAlCBrb21vZGl0YW1pLCBzZWt0b3JvdsO9bWkgRVRGIGEgxaFpcm9rw71tIHRyaG92w71tIGJlbmNobWFya29tLiBQb3XFvml0w61tIGRlbm7DvWNoIGxvZ2FyaXRtaWNrw71jaCB2w71ub3NvdiBlbGltaW51amVtZSB2cGx5diDDunJvdm5lIGNpZW4gYSB6w61za2F2YW1lIMSNYXNvdsO9IHJhZCB2aG9kbsO9IG5hIGVrb25vbWV0cmlja8O6IGFuYWzDvXp1LgojIyDDmnZvZCBkbyBwcm9ibMOpbXUgYSBzdGFub3ZlbmllIGh5cG90w6l6IApEZW5uw6kgdsO9bm9zeSBha2Npb3bDvWNoIHRpdHVsb3YgcmVhZ3Vqw7ogbmEgxaFpcm9rw6kgc3Bla3RydW0gZmFrdG9yb3YsIGt0b3LDqSB6YWjFlcWIYWrDuiBjZWxrb3bDvSB0cmhvdsO9IHNlbnRpbWVudCwgdsO9dm9qIHYgamVkbm90bGl2w71jaCBzZWt0b3JvY2ggYWogcG9oeWJ5IGFsdGVybmF0w612bnljaCBha3TDrXYuIFRlY2hub2xvZ2lja8OpIHNwb2xvxI1ub3N0aSwgbWVkemkga3RvcsOpIHBhdHLDrSBhaiBBcHBsZSAoQUFQTCksIGLDvXZhasO6IHR5cGlja3kgdmXEvm1pIGNpdGxpdsOpIG5hIHptZW55IHZvIHbDvWtvbm5vc3RpIGNlbMOpaG8gdHJodSwgYWxlIGljaCBzcHLDoXZhbmllIG3DtMW+ZSBiecWlIG92cGx5dm5lbsOpIGFqIMWhcGVjaWZpY2vDvW1pIHNlZ21lbnRtaSwgYWtvIHPDuiBrb21vZGl0eSBhbGVibyBvZHZldHZvdsOpIEVURi4gViB0ZWp0byDDumxvaGUgcHJldG8gYW5hbHl6dWplbWUsIGFrbyBzYSBkZW5uw6kgbG9nYXJpdG1pY2vDqSB2w71ub3N5IHNwb2xvxI1ub3N0aSBBcHBsZSB2eXbDrWphasO6IHYgesOhdmlzbG9zdGkgb2QgdsO9bm9zb3YgdHJvY2ggxI9hbMWhw61jaCBha3TDrXY6IGluZGV4dSBTJlAgNTAwIHJlcHJlemVudG92YW7DqWhvIEVURiBTUFksIHpsYXRhIHByb3N0cmVkbsOtY3R2b20gRVRGIEdMRCBhIGVuZXJnZXRpY2vDqWhvIHNla3RvcmEgY2V6IEVURiBYTEUuIENpZcS+b20gamUgemlzdGnFpSwgxI1pIHptZW55IHYgdMO9Y2h0byBha3TDrXZhY2ggZG9rw6HFvnUgxaF0YXRpc3RpY2t5IHbDvXpuYW1uZSB2eXN2ZXRsacWlIHNwcsOhdmFuaWUgc2EgdsO9bm9zb3YgQXBwbGUgYSDEjWkgbcOhIG5hanbDpMSNxaHDrSB2cGx5diBwcsOhdmUgY2Vsa292w70gdHJoLCBha28gYnkgbmF6bmHEjW92YWxhIGVrb25vbWlja8OhIGludHXDrWNpYS4KCk5hxaFhIHByYWNvdm7DoSBoeXBvdMOpemEgcHJlZHBva2xhZMOhLCDFvmUgdsWhZXRreSB0cmkgdnlzdmV0xL51asO6Y2UgcHJlbWVubsOpIOKAkyB2w71ub3N5IGluZGV4dSBTUFksIHbDvW5vc3kgemxhdGEgKEdMRCkgYSB2w71ub3N5IGVuZXJnZXRpY2vDqWhvIHNla3RvcmEgKFhMRSkg4oCTIG1hasO6IMWhdGF0aXN0aWNreSB2w716bmFtbsO9IHZwbHl2IG5hIGRlbm7DqSBsb2dhcml0bWlja8OpIHbDvW5vc3kgc3BvbG/EjW5vc3RpIEFwcGxlIChBQVBMKS4gT8SNYWvDoXZhbWUgcHJpdG9tLCDFvmUgdsO9bm9zeSB0cmh1IHJlcHJlemVudG92YW7DqSBFVEYgU1BZIGJ1ZMO6IG1hxaUgcG96aXTDrXZueSB2cGx5diwga2XEj8W+ZSBBcHBsZSBqZSBzw7rEjWFzxaVvdSBpbmRleHUgUyZQIDUwMCBhIGplaG8gY2VuYSBzcHJhdmlkbGEgcmFzdGllIHYgc8O6bGFkZSBzIGNlbGtvdsO9bSB0cmhvdsO9bSBzZW50aW1lbnRvbS4KClYgcHLDrXBhZGUgdsO9bm9zb3YgemxhdGEgcHJlZHBva2xhZMOhbWUsIMW+ZSB2cGx5diBtw7TFvmUgYnnFpSBidcSPIG1pZXJuZSBuZWdhdMOtdm55LCBhbGVibyB2ZcS+bWkgc2xhYsO9LCBrZcSPxb5lIHpsYXRvIMSNYXN0byBmdW5ndWplIGFrbyBiZXpwZcSNbsOpIGFrdMOtdnVtIGEgamVobyB2w71ub3N5IHNhIG3DtMW+dSBwb2h5Ym92YcWlIG9wYcSNbmUgbmXFviBha2Npb3bDqSB0cmh5LiBQcmkgZW5lcmdldGlja29tIHNla3RvcmUgb8SNYWvDoXZhbWUsIMW+ZSBqZWhvIHbDvW5vc3kgYnVkw7ogbWHFpSBrbGFkbsO9IHZwbHl2IG5hIHbDvW5vc3kgQXBwbGUsIGtlxI/FvmUgcmFzdCBlbmVyZ2V0aWNrw6lobyBzZWt0b3JhIGLDvXZhIHNwb2plbsO9IHMgbGVwxaHDrW0gbWFrcm9la29ub21pY2vDvW0gcHJvc3RyZWTDrW0sIHZ5xaHFoW91IGVrb25vbWlja291IGFrdGl2aXRvdSBhIGNlbGtvdm8gcG96aXTDrXZueW0gc2VudGltZW50b20gaW52ZXN0b3Jvdi4KClByYWNvdm7DoSBoeXBvdMOpemEgdGVkYSB0dnJkw60sIMW+ZSB2xaFldGt5IHRyaSBrb2VmaWNpZW50eSB2IHJlZ3Jlc25vbSBtb2RlbGkgc8O6IMWhdGF0aXN0aWNreSB2w716bmFtbsOpLCBwcmnEjW9tIG9kaGFkb3ZhbsO9IGtvZWZpY2llbnQgcHJpIFNQWSBieSBtYWwgYnnFpSBrbGFkbsO9LCBrb2VmaWNpZW50IHByaSBYTEUgdGFrdGllxb4ga2xhZG7DvSBhIGtvZWZpY2llbnQgcHJpIEdMRCBtaWVybmUgesOhcG9ybsO9IGFsZWJvIGJsw616a28gbnVsZS4gU3BvbG/EjW7DoSBudWxvdsOhIGh5cG90w6l6YSB0dnJkw60sIMW+ZSDFvmlhZG5hIHogdnlzdmV0xL51asO6Y2ljaCBwcmVtZW5uw71jaCBuZXZ5c3ZldMS+dWplIHNwcsOhdmFuaWUgdsO9bm9zb3YgQXBwbGUsIMSNbyB6bmFtZW7DoSwgxb5lIHbFoWV0a3kga29lZmljaWVudHkgc8O6IHJvdm7DqSBudWxlOyB0w7p0byBoeXBvdMOpenUgdGVzdHVqZW1lIEYtdGVzdG9tIHYgcsOhbWNpIGxpbmXDoXJuZWhvIHJlZ3Jlc27DqWhvIG1vZGVsdS4KCkJ1ZGVtZSB0ZXN0b3ZhxaUgaHlwb3TDqXp1IAoKJEhfMDokIG1vZGVsIGplIHNwcsOhdm5lIMWhcGVjaWZpa292YW7DvSAoJFxnYW1tYV8yID0gXGdhbW1hXzMgPSAwJCkKCm9wcm90aQoKJEhfMTokIG1vZGVsIGplIG5lc3Byw6F2bmUgxaFwZWNpZmlrb3ZhbsO9ICgkXGdhbW1hXzIgXG5lIDAgIFxxdWFkIFx0ZXh0e2FsZWJvfSAgXHF1YWQgXGdhbW1hXzMgXG5lIDAkKQoKIyMgSW1wb3J0IMO6ZGFqb3YgICAgICAKTmEgemHEjWlhdG9rIHNpIGltcG9ydHVqZW1lIMO6ZGFqZS4gVnlicmFsYSBzb20gc2kgZMOhdGEgbyBjZW5lIGFrY2nDrSBzcG9sb8SNbm9zdGkgQXBwbGUgYSBFVEYncywga3RvcsOpIG9waXN1asO6IHbDvXZvaiB0cmh1IHpsYXRhIChHTEQpLCBlbmVyZ2V0aWNrw6lobyBzZWt0b3JhIChYTEUpIGEgKFNQWSksIGt0b3LDqSBrb3DDrXJ1amUgdHJoIFMmUCA1MDAuIETDoXRhIHPDuiB6YSBvYmRvYmllIDEuMS4yMDI0LTEuMS4yMDI1LiDDmmRhamUgc8O6IHN0aWFobnV0w6kgcHJpYW1vIHogaW50ZXJuZXR1LCB6IGRhdGFiw6F6eSBZYWhvb0ZpbmFuY2UuIFRpZXRvIGhvZG5vdHkgcHJlZHN0YXZ1asO6IHbDvXZvaiBjaWVuLCBuYSBrdG9yb20gYnVkZW1lIG7DoXNsZWRuZSBhbmFseXpvdmHFpSBsb2dhcml0bWlja8OpIHbDvW5vc25vc3RpIGEgdnrDoWpvbW7DqSB2esWlYWh5IG1lZHppIHbDvW5vc25vc8WlYW1pIGRhbsO9Y2ggYWt0w612LgpgYGB7cn0KdGlja2VycyA8LSBjKCJBQVBMIiwgIkdMRCIsICJYTEUiLCAiU1BZIikgICAjIEFwcGxlLCBHb2xkIEVURiwgRW5lcmd5IEVURiwgUyZQNTAwIEVURgpnZXRTeW1ib2xzKHRpY2tlcnMsIGZyb20gPSAiMjAyNC0wMS0wMSIsIHRvID0gIjIwMjUtMDEtMDEiKQoKZGF0YSA8LSBtZXJnZShDbChBQVBMKSwgQ2woR0xEKSwgQ2woWExFKSwgQ2woU1BZKSkKY29sbmFtZXMoZGF0YSkgPC0gdGlja2VycwoKcmV0IDwtIG5hLm9taXQoZGlmZihsb2coZGF0YSkpKQpjb2xuYW1lcyhyZXQpIDwtIHBhc3RlMChjb2xuYW1lcyhyZXQpLCAiX3JldCIpCgpyZXRfZGYgPC0gbmEub21pdChhcy5kYXRhLmZyYW1lKHJldCkpCmhlYWQocmV0X2RmKQpgYGAKCiMjIERlc2tyaXB0w612bmEgxaF0YXRpc3Rpa2EgCgpWIG5hc2xlZHVqw7pjZWogxI1hc3RpIHZ5a29uw6F2YW1lIGRlc2tyaXB0w612bnUgxaF0YXRpc3Rpa3UgZGVubsO9Y2ggbG9nYXJpdG1pY2vDvWNoIHbDvW5vc292IMWhdHlyb2NoIGZpbmFuxI1uw71jaCBha3TDrXYsIGFieSBzbWUgesOtc2thbGkgesOha2xhZG7DvSBwcmVoxL5hZCBvIGljaCByb3pkZWxlbsOtIGEgdm9sYXRpbGl0ZS4KCmBgYHtyfQpzdW1tYXJ5KHJldF9kZikKYGBgCgojIyMgKkFwcGxlKiAgICAKUm96cMOkdGllIHbDvW5vc292IHNhIHBvaHlidWplIG9kIOKAkzQsOTQgJSBwbyArNywwMSAlLCDEjW8geiBha3TDrXYgcm9iw60gbmFqdm9sYXRpbG5lasWhaWUuIFByaWVtZXJuw70gZGVubsO9IHbDvW5vcyAoMCwxMiAlKSBhaiBtZWRpw6FuICgwLDE2ICUpIHPDuiBwb3ppdMOtdm5lIGEgbmF6bmHEjXVqw7ogbWllcm55IHJhc3RvdsO9IHRyZW5kLCB6YXRpYcS+IMSNbyBiZcW+bsOpIGRlbm7DqSBwb2h5YnkgKElRUikgc2EgcG9oeWJ1asO6IGRvIMKxMSAlLiAgCgojIyMgKkdvbGQqICAgICAKVsO9bm9zeSB6bGF0YSBrb2zDrcWhdSBtZWR6aSDigJMzLDYzICUgYSArMiwyMSAlLCDEjW8gamUgbWVuZWogYWtvIHByaSBBQVBMLiBQcmllbWVyICgwLDA5NSAlKSBhaiBtZWRpw6FuICgwLDE2ICUpIHPDuiBtaWVybmUgcG96aXTDrXZuZS4gTmnFvsWhw60gSVFSIHBvdHZyZHp1amUgc3RhYmlsbmVqxaHDrSBjaGFyYWt0ZXIgemxhdGEgYWtvIGRlZmVuesOtdm5laG8gYWt0w612YS4gICAgIAoKIyMjICpYTEUqICAgICAKUm96cMOkdGllIG9kIOKAkzMsMjggJSBkbyArMyw2OSAlIG5hem5hxI11amUgdsO9cmF6bmVqxaFpdSB2b2xhdGlsaXR1IHR5cGlja8O6IHByZSBlbmVyZ2V0aWNrw70gc2VrdG9yLiBQcmllbWVybsO9IHbDvW5vcyBqZSB0YWttZXIgbnVsb3bDvSwgxI1vIG9kcsOhxb5hIG5ldXRyw6FsbmUgZGxob2RvYsOpIHNtZXJvdmFuaWUuIE1lZGnDoW4gKDAsMTUgJSkgamUgcG96aXTDrXZueSwgbm8gdmFyaWFiaWxpdGEgamUgdnnFocWhaWEgYWtvIHByaSBTUFkgxI1pIEdMRC4gICAKCiMjIyAqU1BZKiAgICAgClMmUCA1MDAgbcOhIG5ham5pxb7FoWllIHJvenDDpHRpZSB2w71ub3NvdiAo4oCTMywwMiAlIGHFviArMiw0NSAlKSBhaiBuYWptZW7FoWllIG1lZHppa3ZhcnRpbG92w6kgcm96cMOkdGllLCDEjW8gcG90dnJkenVqZSBqZWhvIHN0YWJpbGl0dS4gUHJpZW1lcm7DvSBkZW5uw70gdsO9bm9zICgwLDA4NSAlKSBhaiBtZWRpw6FuICgwLDExICUpIHpvc3TDoXZhasO6IHBveml0w612bmUgYSB6b2Rwb3ZlZGFqw7ogxaFpcm9rw6ltdSBkaXZlcnppZmlrb3ZhbsOpbXUgcG9ydGbDs2xpdS4gIAoKIyAyLiBMaW5lw6FybmEgcmVncmVzaWEgdiB6w6FrbGFkbm9tIHR2YXJlCgpWIHRlanRvIMSNYXN0aSBvZGhhZHVqZW1lIGxpbmXDoXJueSByZWdyZXNuw70gbW9kZWwsIGt0b3LDqWhvIGNpZcS+b20gamUgdnlzdmV0bGnFpSBkZW5uw6kgbG9nYXJpdG1pY2vDqSB2w71ub3N5IHNwb2xvxI1ub3N0aSBBcHBsZSAoQUFQTCkgcG9tb2NvdSB2w71ub3NvdiB0cm9jaCDEj2FsxaHDrWNoIGZpbmFuxI1uw71jaCBha3TDrXY6IHpsYXRhIChHTEQpLCBlbmVyZ2V0aWNrw6lobyBzZWt0b3JhIChYTEUpIGEgaW5kZXh1IFMmUCA1MDAgcmVwcmV6ZW50b3ZhbsOpaG8gRVRGIFNQWS4gSWRlIG8gbmFqamVkbm9kdWNoxaHDrSDFoXBlY2lmaWthxI1uw70gdmFyaWFudCBtb2RlbHUsIHYga3Rvcm9tIHByZWRwb2tsYWTDoW1lIGxpbmXDoXJueSB2esWlYWggbWVkemkgdsO9bm9zbWkgQXBwbGUgYSB1dmVkZW7DvW1pIHZ5c3ZldMS+dWrDumNpbWkgcHJlbWVubsO9bWksIHByacSNb20ga29lZmljaWVudHkgcHJlZHN0YXZ1asO6IG9rYW3Fvml0w7ogY2l0bGl2b3PFpSB2w71ub3N1IEFwcGxlIG5hIG1hbMOpIHptZW55IHYgamVkbm90bGl2w71jaCBha3TDrXZhY2guIE9kaGFkIHNsw7rFvmkgYWtvIHbDvWNob2Rpc2tvdsO9IGtyb2sgcHJlIHRlc3RvdmFuaWUgc3Rhbm92ZW7DvWNoIGh5cG90w6l6IGFqIHByZSBuw6FzbGVkbsO6IGRpYWdub3N0aWt1IG1vZGVsdS4gUMO0dm9kbsO9IHJlZ3Jlc27DvSBtb2RlbDoKClxbQUFQTFxfcmV0ID0gXGJldGFfMCArIFxiZXRhXzEgXGNkb3QgR0xEXF9yZXQgKyBcYmV0YV8yIFxjZG90IFhMRVxfcmV0ICsgXGJldGFfMyBcY2RvdCBTUFlcX3JldCArIHVcXQoKYGBge3J9Cm1vZGVsQSA8LSBsbShBQVBMX3JldCB+IEdMRF9yZXQgKyBYTEVfcmV0ICsgU1BZX3JldCwgZGF0YSA9IHJldF9kZikKc3VtbWFyeShtb2RlbEEpCgpgYGAKVsO9c2xlZGt5IHVrYXp1asO6LCDFvmUgbmFqdsO9em5hbW5lasWhw61tIGZha3Rvcm9tIG92cGx5dsWIdWrDumNpbSBkZW5uw70gdsO9bm9zIEFwcGxlIGplIGluZGV4IFNQWSwga3RvcsO9IG3DoSBrbGFkbsO9IGEgdnlzb2tvIMWhdGF0aXN0aWNreSB2w716bmFtbsO9IGtvZWZpY2llbnQuIFRvIHpuYW1lbsOhLCDFvmUgcG9oeWIgY2Vsw6lobyB0cmh1IGplIGvEvsO6xI1vdsO9bSBkZXRlcm1pbmFudG5vbSBzcHLDoXZhbmlhIGNlbnkgQXBwbGUsIMSNbyBqZSB2IHPDumxhZGUgcyBvxI1ha8OhdmFuaWFtaSwga2XEj8W+ZSBBcHBsZSB0dm9yw60gdsO9em5hbW7DuiDEjWFzxaUgaW5kZXh1IFMmUCA1MDAuIEtvZWZpY2llbnQgcHJpIEdMRCBqZSB2ZcS+bWkgbWFsw70gYSBuZcWhdGF0aXN0aWNreSB2w716bmFtbsO9LCDEjW8gbmF6bmHEjXVqZSwgxb5lIHbDvW5vc3kgemxhdGEgbmVtYWrDuiBzeXN0ZW1hdGlja8O9IHZwbHl2IG5hIHbDvW5vc3kgQXBwbGUuIFByZW1lbm7DoSBYTEUgamUgxaF0YXRpc3RpY2t5IHbDvXpuYW1uw6EgbmEgaGxhZGluZSAxICUgYSBqZWoga29lZmljaWVudCBtw6EgesOhcG9ybsOpIHpuYW1pZW5rbywgxI1vIG5hem5hxI11amUsIMW+ZSB2IGFuYWx5em92YW5vbSBvYmRvYsOtIHNhIHbDvW5vc3kgZW5lcmdldGlja8OpaG8gc2VrdG9yYSBwb2h5Ym92YWxpIMSNYXN0byBvcGHEjW7DvW0gc21lcm9tIGFrbyB2w71ub3N5IEFwcGxlLiBDZWxrb3bDoSDFoXRhdGlzdGlja8OhIHbDvXpuYW1ub3PFpSBtb2RlbHUgamUgcG90dnJkZW7DoSBGLXRlc3RvbSBhIHByaWJsacW+bmUgMzEgJSB2YXJpYWJpbGl0eSB2w71ub3NvdiBBcHBsZSBqZSB2eXN2ZXRsZW7DvWNoIHphaHJudXTDvW1pIHByZW1lbm7DvW1pLgoKIyAzIEF1dG9rb3JlbMOhY2lhIHJlesOtZHXDrQoKQXV0b2tvcmVsw6FjaWEgcmV6w61kdcOtIHByZWRzdGF2dWplIHNpdHXDoWNpdSwga2XEjyBzw7ogY2h5YnkgcmVncmVzbsOpaG8gbW9kZWx1IHZ6w6Fqb21uZSDEjWFzb3ZvIHrDoXZpc2zDqSwgdGVkYSBrZcSPIGhvZG5vdGEgcmV6w61kdWEgdiBqZWRub20gb2Jkb2LDrSBzw7p2aXPDrSBzIGhvZG5vdGFtaSByZXrDrWR1w60gdiBwcmVkY2jDoWR6YWrDumNpY2ggb2Jkb2JpYWNoLiBWIGtvbnRleHRlIMSNYXNvdsO9Y2ggcmFkb3YgaWRlIG8gYmXFvm7DvSBqYXYsIGt0b3LDvSB2xaFhayBwb3J1xaF1amUgamVkZW4gem8gesOha2xhZG7DvWNoIHByZWRwb2tsYWRvdiBrbGFzaWNrw6lobyBsaW5lw6FybmVobyBtb2RlbHUg4oCTIG5lesOhdmlzbG9zxaUgY2jDvWIuIEFrIHNhIHYgcmV6aWR1w6FjaCB2eXNreXR1amUgYXV0b2tvcmVsb3ZhbsOhIMWhdHJ1a3TDunJhLCBtw7TFvmUgdG8gdmllc8WlIGsgc2tyZXNsZW5pdSBvZGhhZG92IHNtZXJvZGFqbsO9Y2ggY2jDvWIsIG5lc3Byw6F2bnltIHAtaG9kbm90w6FtIGEgbsOhc2xlZG5lIGsgY2h5Ym7DvW0gesOhdmVyb20gcHJpIHRlc3RvdmFuw60gaHlwb3TDqXouIFogdG9odG8gZMO0dm9kdSBqZSBwb3RyZWJuw6kgb3ZlcmnFpSwgxI1pIHJlemlkdcOhIHogbsOhxaFobyBtb2RlbHUgbmV2eWthenVqw7ogc3lzdGVtYXRpY2vDuiDEjWFzb3bDuiB6w6F2aXNsb3PFpS4KCiMjIERldGVrY2lhIGF1dG9rb3JlbMOhY2llIHJlemlkdcOtIAoKViB0ZWp0byDEjWFzdGkgc2EgemFtZXJpYXZhbWUgbmEgdml6dcOhbG51IGtvbnRyb2x1IHByw610b21ub3N0aSBhdXRva29yZWzDoWNpZSBwb21vY291IGdyYWZpY2vDqWhvIHBvcm92bmFuaWEgZW1waXJpY2vDvWNoIGEgZml0dGVkIGhvZG7DtHQuIEFrIG1lZHppIHTDvW1pdG8gZHZvbWEgcHJpZWJlaG1pIHZpZMOtbWUgc3lzdGVtYXRpY2vDqSBvYmRvYmlhIG5hZC0gYWxlYm8gcG9kaG9kbm90ZW5pYSBtb2RlbHUsIG3DtMW+ZSB0byBuYXpuYcSNb3ZhxaUgcHLDrXRvbW5vc8WlIMSNYXNvdmVqIHrDoXZpc2xvc3RpIHYgcmV6aWR1w6FjaC4gTmFzbGVkdWrDumNhIHZpenVhbGl6w6FjaWEgbsOhbSB1bW/Fvm7DrSBpZGVudGlmaWtvdmHFpSwgxI1pIG1vZGVsIHphY2h5dMOhdmEgZHluYW1pa3UgZMOhdCBkb3N0YXRvxI1uZSBkb2JyZSwgYWxlYm8gxI1pIHpvc3TDoXZhIHYgcmV6aWR1w6FjaCBuZWpha8OhIMWhdHJ1a3TDunJhLCBrdG9yw6EgYnkgbWFsYSBiecWlIMSPYWxlaiB0ZXN0b3ZhbsOhIGZvcm3DoWxueW1pIMWhdGF0aXN0aWNrw71taSB0ZXN0YW1pLgoKYGBge3J9CmxpYnJhcnkoZ2dwbG90MikKCiMgcHJpZGFuaWUgZml0dGVkIHZhbHVlcyBkbyBkYXRhZnJhbWUKcmV0X2RmJGZpdHRlZCA8LSBmaXR0ZWQobW9kZWxBKQoKIyBwcmlkYW5pZSBkw6F0dW11IChyaWFka3kgc2EgcMO0dm9kbmUgdm9sYWrDuiBwb2TEvmEgZMOhdHVtdSkKcmV0X2RmJERhdGUgPC0gYXMuRGF0ZShyb3duYW1lcyhyZXRfZGYpKQoKIyBzY2F0dGVycGxvdCArIGZpdHRlZCBsaW5lCmdncGxvdChyZXRfZGYsIGFlcyh4ID0gRGF0ZSwgeSA9IEFBUExfcmV0KSkgKwogIGdlb21fcG9pbnQoY29sb3IgPSAic3RlZWxibHVlIiwgc2l6ZSA9IDIpICsgICAgICAgICAgIyBlbXBpcmlja8OpIGTDoXRhCiAgZ2VvbV9saW5lKGFlcyh5ID0gZml0dGVkKSwgY29sb3IgPSAicmVkIiwgc2l6ZSA9IDEpICsgIyBmaXR0ZWQgdmFsdWVzICjEjWVydmVuw6EpCiAgCiAgbGFicygKICAgIHRpdGxlID0gIkFBUEw6IEVtcGlyaWNrw6kgZMOhdGEgKG1vZHLDoSkgdnMuIEZpdHRlZCBob2Rub3R5ICjEjWVydmVuw6EpIiwKICAgIHggPSAiRMOhdHVtIiwKICAgIHkgPSAiTG9nLXbDvW5vcyBBQVBMIgogICkgKwogIHRoZW1lX21pbmltYWwoKQoKYGBgCgpHcmFmIHBvcm92bsOhdmEgZW1waXJpY2vDqSBkZW5uw6kgbG9nYXJpdG1pY2vDqSB2w71ub3N5IGFrY2llIEFwcGxlLCB6bsOhem9ybmVuw6kgbW9kcsO9bWkgYm9kbWksIHMgZml0dGVkIGhvZG5vdGFtaSBtb2RlbHUsIGt0b3LDqSBzw7ogem9icmF6ZW7DqSDEjWVydmVub3Ugc3Bvam5pY291LiBNb2Ryw6kgYm9keSB2eWthenVqw7ogdHlwaWNrw7ogdm9sYXRpbGl0dSBha2Npb3bDvWNoIHbDvW5vc292LCBwcmnEjW9tIHNhIHBvaHlidWrDuiBva29sbyBudWxvdmVqIG9zaSBzIG9ixI1hc27DvW1pIGV4dHLDqW1uZWrFocOtbWkgcG96aXTDrXZueW1pIGFqIG5lZ2F0w612bnltaSBvZGNow71sa2FtaS4gxIxlcnZlbsOhIGZpdHRlZCDEjWlhcmEgcHJlYmllaGEgdXByb3N0cmVkIHTDvWNodG8gYm9kb3YgYSB6YWNoeXTDoXZhIGliYSB6w6FrbGFkbsO9IHZ6xaVhaCBtZWR6aSB2w71ub3NtaSBBcHBsZSBhIHZ5c3ZldMS+dWrDumNpbWkgcHJlbWVubsO9bWkgbW9kZWx1LgoKWiBncmFmdSBqZSB6cmVqbcOpLCDFvmUgZml0dGVkIGhvZG5vdHkgbmVkb2vDocW+dSByZXByb2R1a292YcWlIG7DoWhvZG7DqSBrcsOhdGtvZG9iw6kgdsO9a3l2eSB2byB2w71ub3NvY2gsIHByZXRvxb5lIG1vZGVsIHByZWRwb2tsYWTDoSBsaW5lw6FybnUgxaF0cnVrdMO6cnUgYmV6IGR5bmFtaWNrw71jaCBlZmVrdG92LiBOYXByaWVrIHRvbXUgamUgdmlkaXRlxL5uw6ksIMW+ZSBmaXR0ZWQgxI1pYXJhIHNsZWR1amUgdsWhZW9iZWNuw70gdHJlbmQgYSBkcsW+w60gc2EgdiBzdHJlZGUgcm96cHR5bHUgZW1waXJpY2vDvWNoIHBvem9yb3ZhbsOtLCDEjW8gbmF6bmHEjXVqZSwgxb5lIG1vZGVsIHByaWJsacW+bmUgdnlzdGlodWplIHByaWVtZXJuw6kgc3Byw6F2YW5pZSB2w71ub3NvdiBBcHBsZS4gWsOhcm92ZcWIIHbFoWFrIHJvemRpZWx5IG1lZHppIG1vZHLDvW1pIGJvZG1pIGEgxI1lcnZlbm91IMSNaWFyb3UgcG91a2F6dWrDuiBuYSB2eXNva8O6IG1pZXJ1IG5ldnlzdmV0bGVuZWogdmFyaWFiaWxpdHksIMSNbyBqZSBwcmUgZGVubsOpIGFrY2lvdsOpIHbDvW5vc3kgYmXFvm7DqS4KCkdyYWYgdGVkYSB1a2F6dWplLCDFvmUgbGluZcOhcm55IG1vZGVsIHphY2h5dMOhdmEgesOha2xhZG7DuiBjaXRsaXZvc8WlIEFBUEwgbmEgcG9oeWJ5IG5hIHRyaHUsIG5vIHbDvXpuYW1uw6EgxI1hc8WlIHbDvWt5dm92IHpvc3TDoXZhIG7DoWhvZG7DoSBhbGVibyBzcMO0c29iZW7DoSBmYWt0b3JtaSwga3RvcsOpIG1vZGVsIG5lb2JzYWh1amUuCgojIyMgVWxvxb5lbmllIHJlemlkdcOtCgpUw71tdG8gcHLDrWthem9tIHNpIHogbsOhxaFobyBvZGhhZG51dMOpaG8gbW9kZWx1IG1vZGVsQSB1a2xhZMOhbWUgcmV6aWR1w6EgZG8gbm92ZWogcHJlbWVubmVqIHJlcywgYWJ5IHNtZSBpY2ggbsOhc2xlZG5lIG1vaGxpIGFuYWx5em92YcWlIGEgc2tvbnRyb2xvdmHFpSwgxI1pIG5lb2JzYWh1asO6IGF1dG9rb3JlbMOhY2l1IGFsZWJvIGluw7ogc3lzdGVtYXRpY2vDuiDFoXRydWt0w7pydS4KYGBge3J9CnJlcyA8LSByZXNpZHVhbHMobW9kZWxBKQpgYGAKCiMjIEFGQyBHcmFmIAoKUG8gdml6dcOhbG5laiBrb250cm9sZSBmaXR0ZWQgYSBlbXBpcmlja8O9Y2ggaG9kbsO0dCBqZSDEj2FsxaHDrW0ga3Jva29tIGZvcm3DoWxuYSBhbmFsw716YSB0b2hvLCDEjWkgcmV6aWR1w6EgdnlrYXp1asO6IMSNYXNvdsO6IHrDoXZpc2xvc8WlLiBBdXRva29yZWxhxI1uw6EgZnVua2NpYSAoQUNGKSB1bW/FvsWIdWplIHByZXNrw7ptYcWlLCDEjWkgamUgY2h5YmEgdiBqZWRub20gb2Jkb2LDrSDFoXRhdGlzdGlja3kgcHJlcG9qZW7DoSBzIGNoeWJhbWkgdiBwcmVkY2jDoWR6YWrDumNpY2ggb2Jkb2JpYWNoLiBBayBieSBzYSB2IHJlemlkdcOhY2ggb2JqYXZpbGEgdsO9cmF6bsOhIGF1dG9rb3JlbMOhY2lhLCB6bmFtZW5hbG8gYnkgdG8gcG9ydcWhZW5pZSBwcmVkcG9rbGFkdSBuZXrDoXZpc2xvc3RpIGNow71iLCDEjW8gYnkgbW9obG8gc2tyZXPEvm92YcWlIHRlc3RvdmFuaWUgaHlwb3TDqXogdiByw6FtY2kgcmVncmVzbsOpaG8gbW9kZWx1LiBQcmV0byB2eXBvxI3DrXRhdmFtZSBhIHpvYnJhenVqZW1lIEFDRiByZXrDrWR1w60gcHJlIHBydsOpIMWhdHlyaSBvbmVza29yZW5pYSwgYWJ5IHNtZSBvdmVyaWxpLCDEjWkgc2EgdiBjaHliw6FjaCBuZW5hY2jDoWR6YSBzeXN0ZW1hdGlja8OhIMWhdHJ1a3TDunJhLgoKYGBge3J9CmFjZihyZXMsIGxhZy5tYXggPSA0LCBtYWluID0gIkFDRiByZXrDrWR1w60iKQoKYGBgCgpBQ0YgZ3JhZiB6b2JyYXp1amUgYXV0b2tvcmVsYcSNbsOpIGtvZWZpY2llbnR5IHJlesOtZHXDrSBwcmUgb25lc2tvcmVuaWEgb2QgMSBkbyA0LiBWxaFldGt5IHpvYnJhemVuw6kgaG9kbm90eSBsZcW+aWEgdiByw6FtY2kgbW9kcsO9Y2ggaHJhbsOtYyDFoXRhdGlzdGlja2VqIG5ldsO9em5hbW5vc3RpLCDEjW8gem5hbWVuw6EsIMW+ZSDFvmlhZG5lIHogcmV6w61kdcOtIG5pZSBzw7ogdsO9cmF6bmUgcHJlcG9qZW7DqSBzbyBzdm9qaW1pIG1pbnVsw71taSBob2Rub3RhbWkuIEluw71taSBzbG92YW1pLCByZXppZHXDoSBzYSBzcHLDoXZhasO6IGFrbyBiaWVseSDFoXVtIGEgbmVvYnNhaHVqw7ogc3lzdGVtYXRpY2vDuiBhdXRva29yZWzDoWNpdS4gVGVudG8gdsO9c2xlZG9rIGplIHByaWF6bml2w70sIHByZXRvxb5lIHBvdHZyZHp1amUgc3BsbmVuaWUgcHJlZHBva2xhZHUgbmV6w6F2aXNsb3N0aSBjaMO9YiB2IGxpbmXDoXJub20gcmVncmVzbm9tIG1vZGVsaS4KCiMjIER1cmJpbi1XYXRzb24gdGVzdCAKCkR1cmJpbuKAk1dhdHNvbiB0ZXN0IHBvdcW+w612YW1lIG5hIG92ZXJlbmllLCDEjWkgc2EgcmV6aWR1w6EgbW9kZWx1IG5lbmF2aWF6YWxpIGplZG5vIG5hIGRydWjDqSB2IMSNYXNlLiBJZGUgbyByw71jaGx5IHNww7Rzb2IsIGFrbyB6aXN0acWlLCDEjWkgc8O6IGNoeWJ5IHYgbW9kZWxpIG7DoWhvZG7DqSwgYWxlYm8gxI1pIHNhIHYgbmljaCBvYmphdnVqZSBuZWpha8O9IHByYXZpZGVsbsO9IHZ6b3IuIEFrIGJ5IHJlemlkdcOhIGJvbGkgYXV0b2tvcmVsb3ZhbsOpLCB6bmFtZW5hbG8gYnkgdG8sIMW+ZSBtb2RlbCBuaWUgamUgw7pwbG5lIHNwcsOhdm5lIMWhcGVjaWZpa292YW7DvS4gUHJldG8gc2kgdGVzdCBvdmVyw61tZSBhaiBmb3Jtw6FsbmUgdMO9bXRvIHByw61rYXpvbS4KCmBgYHtyfQojIER1cmJpbuKAk1dhdHNvbiB0ZXN0CmR3dGVzdChtb2RlbEEpCgpgYGAKClYgbmHFoW9tIHByw61wYWRlIER1cmJpbuKAk1dhdHNvbiDFoXRhdGlzdGlrYSBuYWRvYnVkbGEgaG9kbm90dSBwcmlibGnFvm5lIDIuMDQsIMSNbyBqZSB2ZcS+bWkgYmzDrXprbyByZWZlcmVuxI1uZWogaG9kbm90ZSAyIGNoYXJha3RlcmlzdGlja2VqIHByZSByZXppZHXDoSBiZXogYXV0b2tvcmVsw6FjaWUuIFAtaG9kbm90YSB0ZXN0dSBqZSAwLjYyNzUsIHRlZGEgdnlzb2tvIG5hZCBiZcW+bmUgcG91xb7DrXZhasO6Y2ltaSBobGFkaW5hbWkgdsO9em5hbW5vc3RpLCDEjW8gem5hbWVuw6EsIMW+ZSBuZW3DoW1lIGTDtHZvZCB6YW1pZXRudcWlIG51bG92w7ogaHlwb3TDqXp1IG8gYWJzZW5jaWkgYXV0b2tvcmVsw6FjaWUuIFRlc3QgdGVkYSBwb3R2cmR6dWplLCDFvmUgcmV6aWR1w6EgbW9kZWx1IG5lb2JzYWh1asO6IMWhdGF0aXN0aWNreSB2w716bmFtbnUgYXV0b2tvcmVsw6FjaXUgcHJ2w6lobyByw6FkdSwgxI1vIGplIHYgc8O6bGFkZSBzbyB6w6F2ZXJtaSB6IHZpenXDoWxuZWogYSBBQ0YgYW5hbMO9enkuCgojIyBCcmV1c2No4oCTR29kZnJleSB0ZXN0ClBvIHZpenXDoWxub20gcHJlc2vDum1hbsOtIHJlesOtZHXDrSBhIHBvIHZ5a29uYW7DrSBEdXJiaW7igJNXYXRzb24gdGVzdHUgZG9wxLrFiGFtZSBhbmFsw716dSBhaiBvIEJyZXVzY2jigJNHb2RmcmV5IHRlc3QsIGt0b3LDvSBwb3NreXR1amUgcm9idXN0bmVqxaFpZSBvdmVyZW5pZSwgxI1pIHNhIHYgcmV6aWR1w6FjaCBuZW5hY2jDoWR6YSBzw6lyaW92w6Ega29yZWzDoWNpYSB6dm9sZW7DqWhvIHLDoWR1LiBLZcSPxb5lIHByYWN1amVtZSBzIGRlbm7DvW1pIGZpbmFuxI1uw71taSDEjWFzb3bDvW1pIHJhZG1pLCBqZSB2aG9kbsOpIG92ZXJpxaUgbmFqbcOkIGF1dG9rb3JlbMOhY2l1IHBydsOpaG8gcsOhZHUsIGt0b3LDoSBieSBtb2hsYSBuYXpuYcSNb3ZhxaUsIMW+ZSBtb2RlbCBuZXphY2h5dGlsIGtyw6F0a29kb2LDuiBkeW5hbWlrdSB2byB2w712b2ppIHbDvW5vc292LiBCcmV1c2No4oCTR29kZnJleSB0ZXN0IHVtb8W+xYh1amUgZm9ybcOhbG5lIG92ZXJpxaUgdGVudG8gcHJlZHBva2xhZCBwcmlhbW8gbmEgcmV6aWR1w6FjaCBuw6HFoWhvIHrDoWtsYWRuw6lobyByZWdyZXNuw6lobyBtb2RlbHUuCgpgYGB7cn0KIyBCcmV1c2No4oCTR29kZnJleSB0ZXN0IChvcmRlciA9IDEpCmJndGVzdChtb2RlbEEsIG9yZGVyID0gMSkKCmBgYAoKVsO9c2xlZG9rIHRlc3R1IHVrYXp1amUsIMW+ZSBob2Rub3RhIExNIMWhdGF0aXN0aWt5IGplIHZlxL5taSBuw616a2EgKDAuMTEyODUpIGEgc3ByZXbDoWR6YSBqdSB2eXNva8OhIHAtaG9kbm90YSAoMC43MzY5KS4gVGFrw710byB2w71zbGVkb2sgbmF6bmHEjXVqZSwgxb5lIHJlemlkdcOhIG1vZGVsdSBuZW9ic2FodWrDuiDFvmlhZG51IMWhdGF0aXN0aWNreSB2w716bmFtbsO6IGF1dG9rb3JlbMOhY2l1IHBydsOpaG8gcsOhZHUuIE51bG92w6EgaHlwb3TDqXphIG8gYWJzZW5jaWkgc8OpcmlvdmVqIGtvcmVsw6FjaWUgcHJldG8gbmllIGplIHphbWlldG51dMOhLiBUZW50byB6w6F2ZXIgamUgdiBzw7psYWRlIHMgcHJlZGNow6FkemFqw7pjaW1pIHppc3RlbmlhbWkgeiBBQ0YgZ3JhZnUgYWogeiBEdXJiaW7igJNXYXRzb24gdGVzdHUsIMSNbyBwb3NpbMWIdWplIGTDtHZlcnUgdiB0bywgxb5lIG1vZGVsIHByYWN1amUgcyBuw6Fob2Ruw71taSBhIG5lesOhdmlzbMO9bWkgcmV6aWR1YW1pLiBOYSB6w6FrbGFkZSB0b2hvIG3DtMW+ZW1lIGtvbsWhdGF0b3ZhxaUsIMW+ZSBtb2RlbCBuZXBvcnXFoXVqZSBwcmVkcG9rbGFkIG5lesOhdmlzbG9zdGkgY2jDvWIgYSB6IHRvaHRvIGjEvmFkaXNrYSBqZSDFoXRhdGlzdGlja3kgxaFwZWNpZmlrb3ZhbsO9IGtvcmVrdG5lLgoKIyBSaWXFoWVuaWUgYXV0b2tvcmVsw6FjaWUgCgpQbyBvZGhhZGUgesOha2xhZG7DqWhvIGxpbmXDoXJuZWhvIG1vZGVsdSBkb3DEusWIYW1lIGFuYWzDvXp1IG8gS295Y2tvdiBtb2RlbCwga3RvcsO9IHVtb8W+xYh1amUgem9oxL5hZG5pxaUgb25lc2tvcmVuw70gdnBseXYgesOhdmlzbGVqIHByZW1lbm5laiBuYSBzdm9qIHZsYXN0bsO9IGJ1ZMO6Y2kgdsO9dm9qLiBEbyByZWdyZXNpZSBwcmV0byBwcmlkw6F2YW1lIGplZG51IGxhZ292YW7DuiBob2Rub3R1IHbDvW5vc3UgQXBwbGUsIMSNw61tIHRlc3R1amVtZSwgxI1pIG3DoSBtaW51bMOpIHNwcsOhdmFuaWUgdsO9bm9zb3YgQXBwbGUgZG9kYXRvxI1uw70gdnBseXYgbmEgaWNoIGFrdHXDoWxudSBob2Rub3R1LiBUw6F0byDFoXBlY2lmaWvDoWNpYSBqZSB2aG9kbsOhIG5ham3DpCBwcmkgxI1hc292w71jaCByYWRvY2gsIGtkZSBzYSBtw7TFvmUgcHJlZHBva2xhZGHFpSwgxb5lIMSNYXNvdsOhIGR5bmFtaWthIHpvaHLDoXZhIMO6bG9odSBhaiBwbyB6b2jEvmFkbmVuw60gb3N0YXRuw71jaCB2eXN2ZXTEvnVqw7pjaWNoIHByZW1lbm7DvWNoLgoKYGBge3J9CiMgS295Y2tvdiBtb2RlbCAob25lc2tvcmVuw6EgesOhdmlzbMOhIHByZW1lbm7DoSkKcmV0X2RmIDwtIHJldF9kZiAlPiUgbXV0YXRlKEFBUExfcmV0X2xhZzEgPSBkcGx5cjo6bGFnKEFBUExfcmV0KSkKbW9kZWxfa295Y2sgPC0gbG0oQUFQTF9yZXQgfiBHTERfcmV0ICsgWExFX3JldCArIFNQWV9yZXQgKyBBQVBMX3JldF9sYWcxLCBkYXRhID0gcmV0X2RmKQpzdW1tYXJ5KG1vZGVsX2tveWNrKQoKYGBgCgpWw71zbGVka3kgS295Y2tvdmhvIG1vZGVsdSB1a2F6dWrDuiwgxb5lIHphaHJudXRpZSBvbmVza29yZW5laiBwcmVtZW5uZWogbmV6bWVuaWxvIHrDoWtsYWRuw70gY2hhcmFrdGVyIG1vZGVsdS4gS29lZmljaWVudCBwcmkgQUFQTF9yZXRfbGFnMSBqZSB2ZcS+bWkgbWFsw70gYSBuZcWhdGF0aXN0aWNreSB2w716bmFtbsO9LCDEjW8gbmF6bmHEjXVqZSwgxb5lIG1pbnVsw6kgZGVubsOpIHbDvW5vc3kgQXBwbGUgdiB0b210byBvYmRvYsOtIG5lbWFqw7ogZG9kYXRvxI1uw70gdnlzdmV0xL51asO6Y2kgZWZla3QgbmFkIHLDoW1lYyBwcmVtZW5uw71jaCwga3RvcsOpIHXFviB2IG1vZGVsaSBzw7ouIE5hb3BhaywgxaF0YXRpc3RpY2t5IHbDvXpuYW1uZSBww7Rzb2LDrSB2w71ub3MgZW5lcmdldGlja8OpaG8gc2VrdG9yYSwga3RvcsO9IHNpIHphY2hvdsOhdmEgesOhcG9ybsO9IHZwbHl2IHBvZG9ibmUgYWtvIHYgesOha2xhZG5vbSBtb2RlbGkuIE5hanbDvXJhem5lasWhw61tIGZha3Rvcm9tIHpvc3TDoXZhIHbDvW5vcyBpbmRleHUgU1BZLCBrdG9yw70gamUgb3DDpMWlIHNpbG5lIHbDvXpuYW1uw70gcyBrbGFkbsO9bSBrb2VmaWNpZW50b20sIMSNbyBwb3R2cmR6dWplLCDFvmUgcG9oeWIgY2Vsw6lobyB0cmh1IGplIG5hamTDtGxlxb5pdGVqxaHDrW0gZGV0ZXJtaW5hbnRvbSB2w71ub3NvdiBBcHBsZS4KClogcG9oxL5hZHUgY2Vsa292ZWoga3ZhbGl0eSBtb2RlbHUgc2EgUi1zcXVhcmVkIHRha21lciBuZXptZW5pbG8gKHByaWJsacW+bmUgMzEgJSksIMSNbyB6bmFtZW7DoSwgxb5lIHphaHJudXRpZSBsYWdvdmFuZWogcHJlbWVubmVqIG5lcHJpc3BlbG8gayB2w71yYXpuw6ltdSB6dsO9xaFlbml1IHZ5c3ZldGxlbmVqIHZhcmlhYmlsaXR5LiBGLXRlc3Qgem9zdMOhdmEgdnlzb2tvIMWhdGF0aXN0aWNreSB2w716bmFtbsO9LCDEjW8gcG90dnJkenVqZSwgxb5lIG1vZGVsIGFrbyBjZWxvayBqZSB2aG9kbsO9LCBhdsWhYWsgcHJpZGFuw6Egb25lc2tvcmVuw6EgcHJlbWVubsOhIG5lcHJpbmllc2xhIGRvZGF0b8SNbsO6IHbDvXBvdmVkbsO6IGhvZG5vdHUuCgpOYSB6w6FrbGFkZSB0w71jaHRvIHbDvXNsZWRrb3YgbW/Fvm5vIGtvbsWhdGF0b3ZhxaUsIMW+ZSB2IHLDoW1jaSBhbmFseXpvdmFuw6lobyBvYmRvYmlhIG5lZXhpc3R1amUgdsO9em5hbW5hIGtyw6F0a29kb2LDoSB6b3RydmHEjW5vc8WlIHZvIHbDvW5vc25vc3RpYWNoIEFwcGxlLCBhIGljaCBkeW5hbWlrYSBqZSBkb3N0YXRvxI1uZSB2eXN2ZXRsZW7DoSBha3R1w6FsbnltaSBob2Rub3RhbWkgdnlzdmV0xL51asO6Y2ljaCBwcmVtZW5uw71jaC4KCiMjIER1cmJpbi1XYXRzb24gcHJlIEtveWNrb3YgbW9kZWwgCgpQbyBvZGhhZG51dMOtIEtveWNrb3ZobyBtb2RlbHUgamUgdmhvZG7DqSBvcMOkdG92bmUgb3ZlcmnFpSwgxI1pIHNhIHBvIHByaWRhbsOtIG9uZXNrb3JlbmVqIHByZW1lbm5laiBuZXptZW5pbGEgc2l0dcOhY2lhIHYgcmV6aWR1w6FjaC4gS2XEj8W+ZSBLb3lja292IG1vZGVsIHByYWN1amUgcyBkeW5hbWlja291IMWhdHJ1a3TDunJvdSwgamUgcHJpcm9kemVuw6kgc2tvbnRyb2xvdmHFpSwgxI1pIHRlbnRvIHJvesWhw61yZW7DvSBtb2RlbCBuZXZpZWRvbCBrIHZ6bmlrdSBhbGVibyBuYW9wYWsgayBvZHN0csOhbmVuaXUgYXV0b2tvcmVsw6FjaWUuIE5hIHRlbnRvIMO6xI1lbCBvcMOkxaUgcG91xb7DrXZhbWUgRHVyYmlu4oCTV2F0c29uIHRlc3QsIGt0b3LDvSB1bW/FvsWIdWplIHLDvWNobG8gYSBwcmlhbW8gdnlob2Rub3RpxaUsIMSNaSBzw7ogcmV6aWR1w6EgbmF2esOham9tIMSNYXNvdm8gesOhdmlzbMOpLgoKYGBge3J9CmR3dGVzdChtb2RlbF9rb3ljaykKYGBgCgpIb2Rub3RhIER1cmJpbuKAk1dhdHNvbiDFoXRhdGlzdGlreSBqZSAyLjA0ODQsIMSNbyBqZSB0YWttZXIgdG90b8W+bsOpIHMgdsO9c2xlZGtvbSB6byB6w6FrbGFkbsOpaG8gbW9kZWx1IGEgesOhcm92ZcWIIHZlxL5taSBibMOtemtvIHJlZmVyZW7EjW5laiBob2Rub3RlIDIsIGt0b3LDoSB6b2Rwb3ZlZMOhIGFic2VuY2lpIGF1dG9rb3JlbMOhY2llLiBQLWhvZG5vdGEgMC42NDgxIGplIHZ5c29rw6EsIHRha8W+ZSBuZW3DoW1lIGTDtHZvZCB6YW1pZXRudcWlIG51bG92w7ogaHlwb3TDqXp1IG8gbmV6w6F2aXNsb3N0aSByZXrDrWR1w60uIFRlbnRvIHbDvXNsZWRvayBwb3R2cmR6dWplLCDFvmUgYW5pIHBvIHphaHJudXTDrSBsYWdvdmFuZWogcHJlbWVubmVqIHNhIHYgcmV6aWR1w6FjaCBuZW9iamF2aWxhIMWhdGF0aXN0aWNreSB2w716bmFtbsOhIGF1dG9rb3JlbMOhY2lhLiBaIGjEvmFkaXNrYSBkaWFnbm9zdGlreSB0ZWRhIHJvesWhw61yZW7DvSBtb2RlbCBuZXBvcnXFoXVqZSBwcmVkcG9rbGFkIG5lesOhdmlzbG9zdGkgY2jDvWIgYSB6IHRvaHRvIHBvaMS+YWR1IGplIMWhcGVjaWZpa292YW7DvSBrb3Jla3RuZS4KCiMjIE5ld2V54oCTV2VzdCByb2J1c3Ruw6kgxaF0YW5kYXJkbsOpIGNoeWJ5IChwcmUgesOha2xhZG7DvSBtb2RlbCkKCktlxI/FvmUgcHJpIGZpbmFuxI1uw71jaCDEjWFzb3bDvWNoIHJhZG9jaCBzYSDEjWFzdG8gdnlza3l0dWplIGhldGVyb3NrZWRhc3RpY2l0YSBhbGVibyBzbGFiw6EgZm9ybWEgYXV0b2tvcmVsw6FjaWUsIGplIHZob2Ruw6kgb3ZlcmnFpSBhaiByb2J1c3Rub3PFpSBvZGhhZG51dMO9Y2ggc21lcm9kYWpuw71jaCBjaMO9Yi4gTmEgdGVudG8gw7rEjWVsIHBvdcW+w612YW1lIE5ld2V54oCTV2VzdCDFoXRhbmRhcmRuw6kgY2h5YnksIGt0b3LDqSBrb3JpZ3Vqw7ogxaF0YW5kYXJkbsOpIGNoeWJ5IGtvZWZpY2llbnRvdiB0YWssIGFieSB6b3N0YWxpIGtvbnppc3RlbnRuw6kgYWogdiBwcsOtcGFkZSwgYWsgcmV6aWR1w6EgbW9kZWx1IG5pZSBzw7ogw7pwbG5lIGhvbW9za2VkYXN0aWNrw6kgYWxlYm8gbmV6w6F2aXNsw6kuIE9kaGFkIHNhbW90bsO9Y2gga29lZmljaWVudG92IHNhIG5lbWVuw60sIHVwcmF2dWrDuiBzYSBpYmEgaWNoIMWhdGFuZGFyZG7DqSBjaHlieSBhIHTDvW0gYWogdsO9c2xlZG7DqSB0LcWhdGF0aXN0aWt5IGEgcC1ob2Rub3R5LiBUw71tdG8ga3Jva29tIHrDrXNrYXZhbWUgc3RhYmlsbmVqxaHDrSBwb2jEvmFkIG5hIMWhdGF0aXN0aWNrw7ogdsO9em5hbW5vc8WlIGplZG5vdGxpdsO9Y2ggcHJlbWVubsO9Y2guCgpgYGB7cn0KY29lZnRlc3QobW9kZWxBLCB2Y292ID0gTmV3ZXlXZXN0KG1vZGVsQSkpCgpgYGAKClBvIGFwbGlrb3ZhbsOtIE5ld2V54oCTV2VzdCBrb3Jla2NpZSBzYSB1a2F6dWplLCDFvmUgxaF0cnVrdMO6cmEgdsO9em5hbW5vc3RpIHYgbW9kZWxpIHpvc3TDoXZhIHZlxL5taSBwb2RvYm7DoSBha28gcHJpIGtsYXNpY2vDvWNoIMWhdGFuZGFyZG7DvWNoIGNoeWLDoWNoLiBQcmVtZW5uw6EgR0xEX3JldCBqZSBhaiBuYcSPYWxlaiBuZcWhdGF0aXN0aWNreSB2w716bmFtbsOhLCDEjW8gcG90dnJkenVqZSwgxb5lIHbDvW5vc3kgemxhdGEgbmV2eXN2ZXTEvnVqw7ogdsO9bm9zeSBBcHBsZSB2IGFuYWx5em92YW5vbSBvYmRvYsOtLiBQcmVtZW5uw6EgWExFX3JldCBzaSB6YWNob3bDoXZhIMWhdGF0aXN0aWNrw7ogdsO9em5hbW5vc8WlIG5hIHByaWJsacW+bmUgcm92bmFrZWogw7pyb3ZuaSBhIGplaiBrb2VmaWNpZW50IHpvc3TDoXZhIHrDoXBvcm7DvSwgxI1vIHBvdWthenVqZSBuYSBuZWdhdMOtdm55IHPDunZpcyBtZWR6aSBlbmVyZ2V0aWNrw71tIHNla3Rvcm9tIGEgdsO9bm9zbWkgQXBwbGUuIE5hanbDvXJhem5lasWhw61tIGZha3Rvcm9tIG1vZGVsdSB6b3N0w6F2YSBTUFlfcmV0LCBrdG9yw70gamUgYWogcG8gcm9idXN0bmVqIGtvcmVrY2lpIHZ5c29rbyDFoXRhdGlzdGlja3kgdsO9em5hbW7DvSwgcyB2ZcS+bWkgc2lsbsO9bSBwb3ppdMOtdm55bSB2cGx5dm9tLgoKUm9idXN0bsOpIHNtZXJvZGFqbsOpIGNoeWJ5IHRlZGEgbmVtZW5pYSBjZWxrb3bDqSB6w6F2ZXJ5IGEgcG90dnJkenVqw7osIMW+ZSB2w71zbGVka3kgesOha2xhZG7DqWhvIG1vZGVsdSBzw7ogc3RhYmlsbsOpIGFqIHBvIHpvaMS+YWRuZW7DrSBtb8W+bsOpaG8gcG9ydcWhZW5pYSBrbGFzaWNrw71jaCBwcmVkcG9rbGFkb3YuIE1vZGVsIHBvc2t5dHVqZSBrb256aXN0ZW50bmUgaW50ZXJwcmV0b3ZhdGXEvm7DqSB2w71zbGVka3kgYSBpZGVudGlmaWtvdmFuw6kgdnrFpWFoeSBtZWR6aSBwcmVtZW5uw71taSBzw7ogcm9idXN0bsOpIHZvxI1pIHTDvW10byBrb3Jla2Npw6FtLgoKIyBaw6F2ZXIgClbDvXNsZWRreSBhbmFsw716eSB1a2F6dWrDuiwgxb5lIHJlemlkdcOhIG9kaGFkbnV0w6lobyBtb2RlbHUgbmV2eWthenVqw7ogxb5pYWRudSDFoXRhdGlzdGlja3kgdsO9em5hbW7DuiBhdXRva29yZWzDoWNpdS4gVml6dWFsaXrDoWNpYSBmaXR0ZWQgaG9kbsO0dCB2IHBvcm92bmFuw60gcyBlbXBpcmlja8O9bWkgZMOhdGFtaSBuZW9kaGFsaWxhIMW+aWFkbmUgcHJhdmlkZWxuw6kgdnpvcmNlLCBrdG9yw6kgYnkgbmF6bmHEjW92YWxpIMSNYXNvdsO6IHrDoXZpc2xvc8WlIGNow71iLiBBQ0YgZ3JhZiBwb3R2cmRpbCwgxb5lIHbFoWV0a3kgaG9kbm90eSBhdXRva29yZWzDoWNpZSBwcmkgb25lc2tvcmVuaWFjaCAxIGHFviA0IHNhIG5hY2jDoWR6YWrDuiB2IHLDoW1jaSBocmFuw61jIMWhdGF0aXN0aWNrZWogbmV2w716bmFtbm9zdGksIHRha8W+ZSByZXppZHXDoSBzYSBzcHLDoXZhasO6IGFrbyBuw6Fob2Ruw70sIMSNYXNvdm8gbmV6w6F2aXNsw70gcHJvY2VzLgoKVGVudG8gesOhdmVyIMSPYWxlaiBwb2Rwb3J1asO6IG9iYSBmb3Jtw6FsbmUgdGVzdHkuIER1cmJpbuKAk1dhdHNvbiDFoXRhdGlzdGlrYSBib2xhIHYgb2JvY2ggbW9kZWxvY2ggdmXEvm1pIGJsw616a28gaG9kbm90ZSAyIGEgcC1ob2Rub3R5IGJvbGkgdnlzb2vDqSwgxI1vIHpuYW1lbsOhLCDFvmUgbmVtw6FtZSBkw7R2b2QgcHJlZHBva2xhZGHFpSBwb3ppdMOtdm51IGF1dG9rb3JlbMOhY2l1IHBydsOpaG8gcsOhZHUuIFJvdm5ha28gYWogQnJldXNjaOKAk0dvZGZyZXkgdGVzdCBwb3NreXRvbCB2eXNva8O6IHAtaG9kbm90dSwgxI3DrW0gcG90dnJkaWwgYWJzZW5jaXUgc8OpcmlvdmVqIGtvcmVsw6FjaWUuIFBvIHJvesWhw61yZW7DrSBtb2RlbHUgbyBvbmVza29yZW7DuiBob2Rub3R1IHrDoXZpc2xlaiBwcmVtZW5uZWogc2Egc2l0dcOhY2lhIG5lem1lbmlsYSBhIHJlemlkdcOhIHpvc3RhbGkgYmV6IGF1dG9rb3JlbGHEjW5laiDFoXRydWt0w7pyeS4KClogdsO9c2xlZGtvdiB0ZWRhIHZ5cGzDvXZhLCDFvmUgbW9kZWwgamUgeiBoxL5hZGlza2EgYXV0b2tvcmVsw6FjaWUgxaF0YXRpc3RpY2t5IHYgcG9yaWFka3UuIFJlemlkdcOhIHPDuiBuZXrDoXZpc2zDqSwgbmVwb2RvYmFqw7ogc2EgbmEgc3lzdGVtYXRpY2vDvSDEjWFzb3bDvSB2em9yIGEgdsWhZXRreSBwb3XFvml0w6kgZGlhZ25vc3RpY2vDqSBuw6FzdHJvamUgdmVkw7ogayByb3ZuYWvDqW11IHrDoXZlcnUuIE1vZGVsIGplIHRlZGEgdmhvZG5lIMWhcGVjaWZpa292YW7DvSwgYXNwb8WIIHogaMS+YWRpc2thIHRvaHRvIHByZWRwb2tsYWR1LCBhIGF1dG9rb3JlbGFjZSBuZXByZWRzdGF2dWplIHByb2Jsw6ltIHYgaW50ZXJwcmV0w6FjaWkgamVobyB2w71zbGVka292Lgo=