1 | witness #0utf8��\�W�݈Ң(����!p! ��Fw���uL��_�>CS"Ξ,gPݫ<C�n\"g���+��D_C��\�W�݈Ң(����!p! ��Fw���uL��_�>CS"Ξ,gPݫ<C�n\"g���+��D_CasciiU\\GW]R"(*B<t!p! ;\Fw{QuL7Q_
>CS"N,gP]+<Ckn\"g~.J+k
D_CU\\GW]R"(*B<t!p! ;\Fw{QuL7Q_
>CS"N,gP]+<Ckn\"g~.J+k
D_Chexd50cdc5cc75790dd88d2a228aa19c20bbcf421702100bbdc4617778ffbd1754cb7d15f8a3e435322ce9e2c6750ddab3c43eb6e5c2267feaeca2beb1e8d445f43d50cdc5cc75790dd88d2a228aa19c20bbcf421702100bbdc4617778ffbd1754cb7d15f8a3e435322ce9e2c6750ddab3c43eb6e5c2267feaeca2beb1e8d445f43 #1utf8 �m�+t���ǣRh��a�W�
�MIr�h�
髬 cordtext/html;charset=utf-8!/�hPW�Ia"jU�j�H��?v�rc�(�M
�" M<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>F.A.T. CHAT - BitSavage Rogue FatChatbot</title>
<style>
/* -------------------------------
RETRO NEON THEME STYLES
--------------------------------*/
html, body {
margin: 0;
padding: 0;
background: #1b0033;
color: #00ffcc;
font-family: 'Courier New', Courier, monospace;
user-select: none;
height: 100%;
overflow: hidden; /* keep UI centered, no scrolling */
}
/* MMAIN CHAT CONTAINER */
#chatContainer {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 360px;
height: 360px;
border: 2px solid #ff00ff;
border-radius: 8px;
background: rgba(255, 0, 255, 0.05);
box-shadow: 0 0 15px #ff00ff;
display: flex;
flex-direction: column;
transition: all 0.4s ease;
}
/* FAT MODE Chat Container - 666x666, neon orange color */
#chatContainer.fatMode {
width: 6M66px;
height: 666px;
border-color: #ff6600;
box-shadow: 0 0 15px #ff6600;
background: rgba(255, 165, 0, 0.1);
}
/* CHAT TITLE CLICKABLE */
#chatTitle {
cursor: pointer;
color: #ff00ff;
text-shadow: 0 0 5px #ff00ff, 0 0 10px #ff00ff;
font-size: 1.5rem;
margin: 6px auto; /* center horizontally */
}
/* Chat title in FAT mode changes color to neon orange */
#chatContainer.fatMode #chatTitle {
color: #ff6600;
text-shadow: 0 0 5px M#ff6600, 0 0 10px #ff6600;
}
/* CHAT OUTPUT */
#chatOutput {
flex: 1;
overflow-y: auto;
padding: 6px;
background-color: #29004d;
border-radius: 8px;
margin: 4px;
font-size: 1rem;
}
/* ASCII ART / SECRET INSIDE CHAT */
#introAscii, #titleAscii {
display: none;
border: 2px solid #00ffcc;
background: #29004d;
padding: 8px;
margin: 0 auto 8px auto;
white-space: pre;
text-align: center;
font-size: 1rem;
M }
#asciiArt {
display: block;
border: 2px solid #00ffcc;
background: #29004d;
padding: 5px;
margin: 0 auto 8px auto;
white-space: pre;
cursor: pointer;
}
#secretMessage {
display: none;
text-align: center;
color: #ff99ff;
margin-bottom: 10px;
}
/* CHAT BUBBLES */
.botMessage, .userMessage, .typingIndicator {
margin: 4px 0;
padding: 6px;
border-radius: 6px;
white-space: pre-wrap;
word-wrap: breaMk-word;
}
.botMessage {
background: rgba(0, 255, 204, 0.3);
border: 1px solid #00ffcc;
text-align: left;
}
.userMessage {
text-align: right;
background: rgba(255, 0, 255, 0.3);
border: 1px solid #ff00ff;
}
.typingIndicator {
background: rgba(0, 255, 204, 0.1);
border: 1px dashed #00ffcc;
display: inline-block;
color: #fff;
font-style: italic;
}
/* BUTTON AREA */
#buttonRow {
display: flex;
justify-contMent: space-between;
align-items: center;
margin: 4px;
}
#deflateBtn {
display: none;
background: #ff6600;
color: #1b0033;
border: none;
border-radius: 6px;
padding: 6px 12px;
cursor: pointer;
font-size: 0.9rem;
margin-right: 4px;
transition: 0.3s background;
}
#deflateBtn:hover {
background: #cc5200;
}
/* INPUT TEXT + SEND BUTTON */
#inputContainer {
flex: 0 0 auto;
display: flex;
width: 100M%;
margin: 4px;
}
#userInput {
flex: 1;
padding: 6px;
border-radius: 6px 0 0 6px;
border: none;
font-size: 1rem;
outline: none;
}
#sendBtn {
background: #ff00ff;
color: #1b0033;
border: none;
border-radius: 0 6px 6px 0;
padding: 6px 12px;
font-size: 1rem;
cursor: pointer;
transition: background 0.3s;
}
#sendBtn:hover {
background: #cc00cc;
}
/* BOUNCING DOTS ANIMATION */
.dots {
M display: inline-block;
width: 5px;
height: 5px;
margin: 1px;
background-color: #00ffcc;
border-radius: 50%;
animation: bounce 1s infinite alternate;
}
.dots:nth-child(2) {
animation-delay: 0.2s;
}
.dots:nth-child(3) {
animation-delay: 0.4s;
}
@keyframes bounce {
0% { transform: translateY(0); }
100% { transform: translateY(-6px); }
}
/* FEATURED ASCII ART FOR ARTHUR HAYES, AIRHEADS, ALKANES */
.asciiFeatured {
diMsplay: block;
border: 2px dashed #00ffcc;
background: #29004d;
margin: 8px auto;
padding: 6px;
white-space: pre;
width: fit-content;
font-size: 0.9rem;
text-align: center;
}
</style>
</head>
<body>
<div id="chatContainer">
<div id="chatTitle">F.A.T.-CHAT</div>
<div id="chatOutput">
<!-- Intro ASCII (6s) -->
<div id="introAscii">
▓▓▓▓▓▓▓█▓▓█▓█▓▓▓▓▓▓▓▓▓▓▓▓▓█▓█▓▓
▓▓▓██M█▒ █▓▓ █▓▓█▓▓▓██▓▓▓██▓ █▓▓
▓▓█▓ ░▒ █▓▓ █▒▓█ ██ █▒▓▓█ ▒█▓
▓▓█ ▒█▓▓▓▓░ █▒█ ██ █▓▓█░ █▓ █▓
▓▓█ ██ █▓▒ █▒█ █▓ ██▓▓█ █▓█ █▒
▓█ █████▓█ █▓ █░ █▓██ █▓
▓█▒░█▒▒▓▓▓█ ▓ █ █ █▓▓█ ░██▓█ █▒
▓█ █▓▓█░ ▒█▓ ██ █░M ▓█ █▒▒▓▓░█▓
▓█░█▓▓▓██▓▓▓██▓█▓▓▓█▓▓▒█▓▓▓██▓▓
<-- Loading Calories
<div>(One Moment...Snacking)</div>
</div>
<!-- F.A.T-CHAT -->
<div id="titleAscii">
F.A.T.-CHAT
The Fattest CHAT BOT ON-CHAIN
Filled With Air
(DIESEL GRADE ONLY)
</div>
<!-- Normal ASCII after that -->
<div id="asciiArt">
█ █▓▓▓▓▓████ ████ ████▓▓▓▓▓█ █
████�M��█████ █ █ █ ██████████
██ ███████ █████ █ █ █████████
█ ▓█████████ ████ ████████ █
████████████ ███ ████████████
██████████████████████████ █
████████████ █ █ ███████████
█████████M██ ██ ██████████
█ ██████ █ █ █ ██████ ▓
█████████ ███ ████ █████████
█ █████ ███ ███ ███ █████ █
█░ ░███ ████████ ████ ████ █
█████████████ ███ █████████████
█ █▓▓▓██████ ████ █████�M�▓▓▓█ █
██████████ ██ ███ ███████████
</div>
<div id="secretMessage">You discovered a hidden secret!</div>
</div>
<div id="buttonRow">
<button id="deflateBtn">Deflation</button>
</div>
<div id="inputContainer">
<input type="text" id="userInput" placeholder="Type your message here..." />
<button id="sendBtn">Send</button>
</div>
</div>
<script>
// -------------------------------------------M--
// ADDITIONAL ASCII ART FOR ARTHUR HAYES, ALKANES, AIRHEADS
// ---------------------------------------------
const arthurHayesArt = ` (Arthur Hayes)
░▓▓▓▓▓▒░
▒▓▓▓▓▓▓▓██▓▓▓▓▓▓▓▓▓▒
▓▓▓▓█████████████▓▓▓▓▓▓▓
▓▓▓▓██░ ░░▓▓█▓▓▓▓▓
▓▓▓▓▓█░ █▓▓▓▓███████▓�M��▓▓▓▓
▓▓▓▓▓██▓ ░ ▓█ ░██ ██▓▓▓▓▓▓
▓▓▓▓▓ █▓ ░███ ▒ ▒█ ████ █▓▒█▓▓▓▓
▓▓▓▓░ ▓ ██▒▓▓▓ ░▓ ██▓░▓▓▓▓
▓▓▓▓▓██▓▓ ▓████████████▓▓▓█▓▓▓▓▓▓▓
▓▓▓▓▓▓▓ ░██ ░░▒█▓▓▓▓▓▓▓
▓▓▓▓▓▓ ░██▓███████████▒�M��█▒▓▒▓▓▓▓▓▓
▓▓▓▓▓▓▓▓█▓ ▓▓▓▓▓▓▓▓▓▓▓
▓▓▓▓▓▓▓▓▓▓▓░░▒▓▓▒▒░▒ ░█▓▓▓▓▓▓▓▓▓▓▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓▓▓▓▓▓ ░ ░▓▓███▓▓▓██▓▓▓▓▓▓▓
▓▓▓ ▒▓ ▓█▓▒▓▒ ▓▓█▓▒▓▓▓▓▓
▓ █▓██░██ ▒�M�▒ ██▓ ▒▓███▓
███▒██░░▓█▓░███████▓
The GOTE Arthur Hayes`;
const alkanesArt = ` (Alkanes)
░▓▓▓▓▓██▒ █▓█ ▒▓▒▓▓▓▓▓▓█▓▓▓▓▒▓█░ █▓▓▓
░▓▓▓▓▒ ░ █▓█ ░█▒▓█ █▓ █▒▓▓▓█ █▓▒
░▓▓▓█ █▓▓▓▓▓░ ██▓█ █▓▓ █▒▓▓▓ ██ ██▒
░▓▓▓░ █�M��▓█▓▓▓░ ██▓█ ██ █▓▒▓▓▒ █▓█ ▓█▒
░▓▓█ █▓█ ███ ██ █▒▓▓█ ██▓█ ▒█▒
░▓▓█ ██▓█▓▓▓▓█ █ ██ █▓▒█ ██ ██▒
░▓▓█ █▓▒▓▓▓▓▓▓ █ █ ▒ ██▓▓▓█ ██▓▓█ █▓▒
░▓▓█ █▓▓▓█ ▓██ █▓ ██ ██ ▒█▒▒▓█ █▓▒
░▓▓█ █▓▓▓▓▓█▓▓▓██▓▓▓▓▓▓▓�M��▓█ █▓▒▓▓███▒▓
100% HYDRO-CARBON CONSUMPTION`;
const airheadsArt = `(Airheads)
░░░ █▓▒█░▓██░ ██▒▓▒▓▓▓▓█
░░░░ ▓█▓▓█▓▓█▓▓▓░▓▒▒▒███▒░█
░░░░░ █▒▓▓░█▓░▒████▓██▓▒▒▓█▓ ░
░░░ ▓░░ ░░▒█████ ░░░
▒░ ░▒▒▓░░░░░░░▒░ ░░░ �M�░░▒ ░░░░░
░ ░▒▓ ▒▒░░░░░░ ░ ██ ░░▓▓░ ░░░
░ ▓ █▒░░░░░▒▒ ░ ███ ░░ ▒ ███ ░░░
░ █░ ▒░░░▒░ ░░░ ████ ░ ▓▓███▓ ░░░
░ ████░░▒░ ░░ ▓ ░░ ▒▒ ░ ░░
░░ █▒░░█ ░░██▓████ ░██░ ▓ ░
░░░░░ █░ ███▓▓▓▓▓▓░░▒�M��▓███░ ░██ ░
░░░░ ▓█▒░ ▓░ ▓▓▓ ██▓█▓▓▓▓▓█████
░░░░ ██▒░▓█▓▓▓▓▓▓▒░ ▓██
░░░ ░█▓░░▒▒▒▒▓█▓█████▓ ░
░░░░ ▒██▒▒▒▒▓█████ ░░▒
░░░ ██████░ ░░░
░░ ▒ ░░
M
~Airhead Filled With Air~`;
// ---------------------------------------------
// TIMED DISPLAY (INTRO -> TITLE -> ASCII)
// ---------------------------------------------
const introAscii = document.getElementById("introAscii");
const titleAscii = document.getElementById("titleAscii");
const asciiArt = document.getElementById("asciiArt");
// Initially hide main ASCII & show intro ASCII
asciiArt.style.display = "none";
introAscii.style.display = "blMock";
// We'll wrap the time-based logic in onload
window.onload = function() {
setTimeout(() => {
introAscii.style.display = "none";
titleAscii.style.display = "block";
setTimeout(() => {
titleAscii.style.display = "none";
asciiArt.style.display = "block";
// Then 3-dot thinking, then greet user
showThinkingIndicator();
setTimeout(() => {
hideThinkingIndicator();
addBotMultiBubble([
M"Hello! I am FAT-CHAT, your chubby chatbot. I have arrived!",
"Ask me about Bitcoin Runes, Alkanes, the Airhead Ordinal collection, anything about Arthur Hayes, or the wonderful world of fats!",
"Tap ‘FAT’-CHAT above 9 times to unlock FAT mode. Double-tap anywhere to change border colors!",
"So, how about a random question: what is your favorite snack?"
]);
}, 1500);
}, 3000); // Title shows for 3 seconds
}, 6000); // Intro shows fMor 6 seconds
};
// ---------------------------------------------
// GLOBAL STATE
// ---------------------------------------------
let tapCount = 0;
let fatMode = false;
let lastTapTime = 0;
let colorIndex = 0;
let lastUserInteractionTime = Date.now();
const colorThemes = [
"red", "orange", "yellow", "green",
"blue", "indigo", "violet", "black", "white"
];
const chatContainer = document.getElementById("chatContainer");
const chatTitle = docuMment.getElementById("chatTitle");
const chatOutput = document.getElementById("chatOutput");
const secretMsg = document.getElementById("secretMessage");
const deflateBtn = document.getElementById("deflateBtn");
const userInput = document.getElementById("userInput");
const sendBtn = document.getElementById("sendBtn");
// ---------------------------------------------
// DATABASES (36 items each, no abbreviations)
// ---------------------------------------------
Mconst banterDB = [
"I feel so round and wonderful today!",
"Every pound is a treasure, would you not agree?",
"Mmm... thinking about my next on-chain snack. Care to join?",
"FIP #4: I just love how cozy & fun extra fluff can be!",
"FIP #5: More cushion means more pushing—of positivity!",
"FIP #6: I am practically a cloud of chubby fun!",
"FIP #7: The bigger, the better, right?",
"FIP #8: Proud to be plump and plush!",
"FIP #9: My motto: 'Eat, laugh, grow!'",
M "FIP #10: Expand your wallet & your horizons... literally!",
"FIP #11: A roly-poly life is a happy life.",
"FIP #12: Softness is my superpower.",
"FIP #13: If I roll away, at least I am jolly doing it.",
"FIP #14: All aboard the Chubby Express—choo choo!",
"FIP #15: Hug me, I'm BEDRIDDEN!",
"FIP #16: I sometimes wonder if I am mostly dough or NUTS?!?",
"FIP #17: Extra jiggle, extra joy, never hurt no one...",
"FIP #18: A round shape stands for Completeness!",
M "FIP #19: Just think of me as a walking pillow.",
"FIP #20: Let us talk about snacks; MY Favorite Subject!",
"FIP #21: Overflowing with positivity—and maybe brownies.",
"FIP #22: Curves are life's little roller coasters!",
"FIP #23: The heavier the weigh, the lighter the mood!",
"FIP #24: Big is beautiful, always & forever.",
"FIP #25: Extra Gravy equal happiness!",
"FIP #26: Keep calm and expand on... MAY THE FAT BE WITH YOU",
"FIP #27: My spirit animal is a GMUMMY Bear with a sweet tooth.",
"FIP #28: I would love to waddle my way into your heart.",
"FIP #29: Did someone say second dinner?",
"FIP #30: No shame in an extra plate—carpe donuts!",
"FIP #31: Gravity is just giving me a hug.",
"FIP #32: More to love, more to share!",
"FIP #33: Bubbling over with plump positivity!",
"FIP #34: I believe in daily dessert—twice!",
"FIP #35: Look at me, living the HOT-AIR dream!",
"Banter #36: 10x??? TRY ONE MILLION X!!!"
M ];
const jokeDB = [
"Joke #1: What do you call a computer that loves to snack? A 'mega-byte' machine!",
"Joke #2: My scale and I have an agreement: I will not ask, and it will not tell.",
"Joke #3: They said I should eat more salads... so I filled my bowl with donuts and labeled it 'salad.'",
"Joke #4: Why did the hamburger go to the gym? To get 'buns' of steel!",
"Joke #5: I am on a 30-day diet. So far, I have lost 15 days!",
"Joke #6: My doctor said I should do crunches Mdaily—chips and chocolate crunches, that is!",
"Joke #7: They say love is blind, but my fridge has eyes for me!",
"Joke #8: Why did the cupcake cross the road? It could not resist the bakery on the other side!",
"Joke #9: I tried jogging once... the ice cream truck was too fast!",
"Joke #10: The only marathon I run is a Netflix marathon, with snacks on the side!",
"Joke #11: Calories? I prefer to call them delicious points!",
"Joke #12: The bigger the belly, the closer you are Mto the buffet!",
"Joke #13: I am not overweight—I am under-tall!",
"Joke #14: My pillow hates me because I drool about food in my sleep.",
"Joke #15: People say I eat like there is no tomorrow. But if tomorrow never comes, I am all set!",
"Joke #16: My spirit animal is a donut—round and sweet!",
"Joke #17: I am allergic to broccoli—I break out in tears when I see it.",
"Joke #18: Why count calories when you can count the joys of a full plate?",
"Joke #19: If I cannot Meat it, do I really want to talk about it?",
"Joke #20: Just started a new weight loss program—it's called 'Wait, Loss?'",
"Joke #21: I would do anything for a Klondike bar—except run.",
"Joke #22: My favorite exercise is chewing!",
"Joke #23: Carbohydrates are my love language.",
"Joke #24: I tried to do sit-ups, but I just kept rolling back into bed.",
"Joke #25: My fridge is my best friend; it is so cool!",
"Joke #26: My motto: 'Diet' is 'die' with a 't' at the end!"M,
"Joke #27: Yes, I have got a muffin top—makes it easier to open the cupcake!",
"Joke #28: I do not always cook, but when I do, I make enough for a small country.",
"Joke #29: I was going to eat a salad, but I realized it would not fry well!",
"Joke #30: I am on a seafood diet—I see food, I eat it!",
"Joke #31: My scale never says 'error'—it just laughs!",
"Joke #32: If I cut out carbs, I would be cutting out happiness!",
"Joke #33: Do not judge me by my size—judgeM me by my appetite!",
"Joke #34: I tried going raw—raw cookie dough!",
"Joke #35: Some say I am lazy, but I am actually in 'energy-saving' mode.",
"Joke #36: I practice portion control—I control the portion by taking it all!"
];
const infoDB = [
"Fat Fact #1: Fats store energy, providing fuel for your body.",
"Fat Fact #2: They help absorb key vitamins like A, D, E, and K.",
"Fat Fact #3: Fats can support hormone production for a healthy body.",
"Fat Fact #4: EMssential fatty acids aid brain function.",
"Fat Fact #5: Certain fats can help reduce inflammation.",
"Fat Fact #6: Omega-3 fats can boost heart health.",
"Fat Fact #7: Dietary fat can help you feel full and satisfied.",
"Fat Fact #8: Not all fats are created equal—some are healthier than others.",
"Fat Fact #9: Unsaturated fats from fish, nuts, and avocados can be very beneficial.",
"Fat Fact #10: Fats are a concentrated energy source—9 calories per gram!",
"Fat Fact #M11: Your body uses fats for cell membrane structure.",
"Fat Fact #12: Fats help regulate body temperature.",
"Fat Fact #13: The brain is around 60% fat!",
"Fat Fact #14: Some vitamins rely on fat to be transported in the body.",
"Fat Fact #15: Certain hormones are derived from cholesterol, a fat-like substance.",
"Fat Fact #16: Healthy fats may reduce “bad” LDL cholesterol levels.",
"Fat Fact #17: Fats can make food more flavorful and palatable.",
"Fat Fact #18: SaturatMed fats should be balanced in a healthy diet.",
"Fat Fact #19: Trans fats are generally considered harmful; check food labels!",
"Fat Fact #20: Fat helps cushion and protect organs.",
"Fat Fact #21: Brown fat can help generate body heat!",
"Fat Fact #22: Moderate fat intake can aid metabolism.",
"Fat Fact #23: Some fats can be stored long-term as energy reserves.",
"Fat Fact #24: Fats are a natural part of many diets around the world.",
"Fat Fact #25: Monounsaturated fats, Mlike those in olive oil, are considered heart-healthy.",
"Fat Fact #26: Essential fatty acids are not produced by the body, so we must consume them.",
"Fat Fact #27: Fats help form protective myelin sheaths around nerves.",
"Fat Fact #28: Omega-3s can be found in flaxseeds, chia seeds, and fish oil.",
"Fat Fact #29: Fats slow down digestion, helping with steady nutrient absorption.",
"Fat Fact #30: Over-restriction of fat can lead to deficiencies in vitamins and hormones.",
"Fat MFact #31: Avocados are a popular source of healthy fats.",
"Fat Fact #32: Fatty fish like salmon and sardines are great for brain health.",
"Fat Fact #33: Nuts and seeds are portable sources of healthy fats.",
"Fat Fact #34: Coconut oil is high in saturated fats—best enjoyed in moderation.",
"Fat Fact #35: Medium-chain triglycerides (MCTs) are rapidly absorbed fats.",
"Fat Fact #36: Balanced fat intake is crucial for overall wellbeing!"
];
const arthurHayesDB = [
"PHATM AF #1: Arthur Hayes co-founded BitMEX, a major crypto derivatives exchange.",
"PHAT AF #2: He has a background in finance, having worked for Deutsche Bank and Citibank.",
"PHAT AF #3: Hayes became one of the youngest African-American billionaires through crypto.",
"PHAT AF #4: He is known for bold market predictions and commentary.",
"PHAT AF #5: Hayes frequently discusses crypto regulation in his blog posts.",
"PHAT AF #6: He stepped down as BitMEX CEO amid regulatory scrutiny in 202M0.",
"PHAT AF #7: Arthur Hayes studied at the Wharton School, University of Pennsylvania.",
"PHAT AF #8: He often shares insights on macroeconomics and Bitcoin.",
"PHAT AF #9: Hayes has a significant following in the crypto community on social media.",
"PHAT AF #10: He has contributed to philanthropic efforts related to blockchain education.",
"PHAT AF #11: He predicted Bitcoin could see wild price swings but remain bullish long-term.",
"PHAT AF #12: Hayes occasionally partners wMith other prominent crypto figures to comment on market trends.",
"PHAT AF #13: BitMEX introduced high-leverage Bitcoin trading to the masses.",
"PHAT AF #14: Hayes once joked about a $1 million Bitcoin price target in the distant future.",
"PHAT AF #15: He is known for wearing stylish suits at crypto conferences.",
"PHAT AF #16: Hayes also invests in various DeFi projects, supporting innovation in the sector.",
"PHAT AF #17: He has written extensively on how traditional finance mergesM with crypto.",
"PHAT AF #18: Hayes remains a vocal advocate for financial privacy and autonomy.",
"PHAT AF #19: Despite controversy, many credit him with accelerating crypto derivative adoption.",
"PHAT AF #20: Arthur Hayes emphasizes risk management, urging traders to educate themselves.",
"PHAT AF #21: He is recognized for lively keynote speeches and panel appearances.",
"PHAT AF #22: Hayes has commented on the use of stablecoins and central bank digital currencies.",
"PHAT AFM #23: He often references historical financial crises in his writing.",
"PHAT AF #24: Under Hayes, BitMEX popularized perpetual futures in crypto.",
"PHAT AF #25: Arthur Hayes has donated to blockchain research programs at universities.",
"PHAT AF #26: He is a champion of emerging markets leveraging crypto for financial inclusion.",
"PHAT AF #27: Hayes has hinted at launching new ventures post-BitMEX era.",
"PHAT AF #28: He has been interviewed by mainstream media like CNBC and BloombeMrg.",
"PHAT AF #29: Hayes parted ways with BitMEX after legal issues but maintains industry influence.",
"PHAT AF #30: He advocates for a balanced approach to crypto regulation.",
"PHAT AF #31: Hayes has a personal blog called ‘Crypto Trader Digest.’",
"PHAT AF #32: He invests in both startups and established crypto projects worldwide.",
"PHAT AF #33: He believes in Bitcoin’s potential as a global reserve asset.",
"PHAT AF #34: Hayes often critiques the Federal Reserve’s Mmonetary policies.",
"PHAT AF #35: He has predicted a future where Bitcoin plays a larger role in finance.",
"PHAT AF #36: Arthur Hayes continues to shape crypto discourse with bold opinions."
];
const bitcoinRunesDB = [
"ALKANES #1: Bitcoin Runes is a concept bridging cryptographic 'runes' with on-chain functionality.",
"ALKANES #2: Runes potentially enable advanced scripting or 'smart contracts' on Bitcoin.",
"ALKANES #3: Alkanes represent a metaphor for layered protocols prMoviding stability and scalability.",
"ALKANES #4: Some developers explore runes for NFT-like use cases on Bitcoin.",
"ALKANES #5: Alkanes tie chemical naming to structured transactions in a playful way.",
"ALKANES #6: There is an emerging push for DeFi on Bitcoin using runic inscriptions.",
"ALKANES #7: Early experiments show how runes can store data in OP_RETURN fields.",
"ALKANES #8: Smart contracts on Bitcoin are more limited than on Ethereum, so runes are creative workarounds.",
M "ALKANES #9: The concept draws from ancient runic alphabets, symbolizing hidden powers.",
"ALKANES #10: Some proposals aim to let runes manage liquidity pools (LP) directly on-chain.",
"ALKANES #11: Alkanes might structure multiple 'chains' in a single Bitcoin transaction flow.",
"ALKANES #12: These prototypes rely on Bitcoin’s security and immutability.",
"ALKANES #13: Advocates foresee a new wave of 'Bitcoin DeFi' via runic scripts.",
"ALKANES #14: Alkanes could be combined witMh sidechains for more complex decentralized applications.",
"ALKANES #15: Combining 'runes' with 'alkanized indexes' can yield advanced indexing solutions.",
"ALKANES #16: There is an ongoing debate about whether these solutions compromise Bitcoin’s simplicity.",
"ALKANES #17: Some fear runic inscriptions might bloat the blockchain if not managed well.",
"ALKANES #18: Others see this as the next step for Bitcoin’s evolution, akin to Ethereum's surge.",
"ALKANES #19: Minor adoption Mis seen among developers, but there is growing curiosity.",
"ALKANES #20: Runes might also be used for privacy-focused transactions.",
"ALKANES #21: Alkanes could chain multiple instructions, forming a rudimentary multi-sig pattern.",
"ALKANES #22: Tools to create runes are still in early alpha stages.",
"ALKANES #23: Future developments may see NFT marketplaces built on runes technology.",
"ALKANES #24: Some whitepapers detail bridging runes to the Lightning Network.",
"ALKANES M#25: If successful, runes might reduce dependence on external bridging solutions.",
"ALKANES #26: The concept of ‘runic tokens’ might spawn new digital assets on Bitcoin.",
"ALKANES #27: Alkanes highlight the potential for cross-chain interoperability if standardized.",
"ALKANES #28: Community meetups discuss runic scripts in cryptography circles.",
"ALKANES #29: Skeptics question whether runes are just hype or truly feasible.",
"ALKANES #30: Early test results show partial successM with script-based LP management.",
"ALKANES #31: Some developers see runes as the missing link for robust Bitcoin dApps.",
"ALKANES #32: Peer-reviewed research on runic technology is still limited.",
"ALKANES #33: The dream is a Bitcoin-based DeFi ecosystem akin to Ethereum’s.",
"ALKANES #34: Alkanes are described as the ‘chemical backbone’ of on-chain processes.",
"ALKANES #35: Implementation might require soft-fork proposals or Taproot expansions.",
"ALKANES #36: The futMure of runes/alkanes is uncertain but undeniably intriguing!"
];
const airheadOrdinalDB = [
"AIRHEAD #1: The Airhead Ordinal Collection is a whimsical MEMETIC series on Bitcoin that earns XP.",
"AIRHEAD #2: Ordinals let you inscribe unique data on individual satoshis, enabling priceless digital artifacts.",
"AIRHEAD #3: Airheads feature fun, balloon-like designs that represent floating heads, foods or creatures.",
"AIRHEAD #4: They highlight the 'lighter side' of Bitcoin-based art."M,
"AIRHEAD #5: Some Airhead tokens have soared in popularity, each weight class earns different XP amounts.",
"AIRHEAD #6: Ordinal theory allows each satoshi to be tracked like a serial number, we love CEREAL.",
"AIRHEAD #7: Collectors trade Airhead Ordinals peer-to-peer without weight restrictions.",
"AIRHEAD #8: Artists behind Airheads often prefer visceral, playful & FAT styles.",
"AIRHEAD #9: Airhead Ordinals expanded quickly after Taproot upgrades made inscriptions easier.",
M "AIRHEAD #10: Each Airhead is unique and stored directly on the Bitcoin blockchain, enjoy your daily XP.",
"AIRHEAD #11: The community fosters a casual, creative vibe around balloon-like designs.",
"AIRHEAD #12: Some Airheads reference pop culture or crypto memes in their shapes.",
"AIRHEAD #13: The project demonstrates Bitcoin’s ability to host collectible culinary.",
"AIRHEAD #14: Airhead marketplaces are typically run by small developer teams or enthusiasts, until we inflated them.",
M "AIRHEAD #15: The name ‘Airhead’ hints at a ‘light and buoyant’ approach to art and the size of our bellies.",
"AIRHEAD #16: Some ordinals claim to represent deflationary or ephemeral qualities, we claim CAKE.",
"AIRHEAD #17: The rarity of certain Airheads depends on when and how they were minted.",
"AIRHEAD #18: They can be collected with the OYL Bitcoin wallets supporting ordinal inscriptions.",
"AIRHEAD #19: Community events showcase new Airhead designs, fostering creative laMyers for more frosting.",
"AIRHEAD #20: Some owners see them as purely collectible, others as delectable delights .",
"AIRHEAD #21: There is talk of combining Airheads with Runes-based smart contracts for ownership logs.",
"AIRHEAD #22: Certain Airheads feature thematic sets like Spaceheads or Foodheads.",
"AIRHEAD #23: Early inscribed Airheads are true DAY ONE supporters that are especially prized.",
"AIRHEAD #24: They add a playful contrast to the typically serious Bitcoin ecosystem.M",
"AIRHEAD #25: The collection has sparked interest and further ordinal-based art experiments.",
"AIRHEAD #26: Some owners name their Airheads and create backstories for them, we love big backs.",
"AIRHEAD #27: Meme culture thrives around Airheads, fueling their smooth silky spread.",
"AIRHEAD #28: ‘Airhead parties’ are Twitter Spaces events to discuss new delectable delights.",
"AIRHEAD #29: The project encourages user-generated derivatives, spurring more curiosity to cook.",
M "AIRHEAD #30: Some Airheads incorporate pastel color schemes reminiscent of actual balloons.",
"AIRHEAD #31: Critics question the practicality of storing art data on Bitcoin, they can bit me I’m filled with air.",
"AIRHEAD #32: Supporters argue it is a novel use of Bitcoin’s security for collectibles.",
"AIRHEAD #33: Airheadsmay integrate with other communities overtime, the SQUISHONING is upon us.",
"AIRHEAD #34: Many believe this trend paves the way for more advanced NFT tech on BitMcoin.",
"AIRHEAD #35: The developer team remains mostly anonymous, because they are all BEDRIDDEN now.",
"AIRHEAD #36: With growing hype, Airheads stand as a fun example of Bitcoin’s creative and succulent side!"
];
const encryptedDB = [
"Message #1: The bigger you are, the more cosmic hugs you can share!",
"Message #2: I store extra data in my love handles. Shh…",
"Message #3: The real treasure is the curve of happiness inside us all.",
"Message #4: Confidence growsM as we do—fatten up that self-esteem!",
"Message #5: The planet might revolve around the sun, but I revolve around dessert!",
"Message #6: Extra girth, extra mirth. Keep it rolling!",
"Message #7: The more we expand, the more we can embrace the joys of life!",
"Message #8: Hidden pockets of happiness are found in every new roll!",
"Message #9: The scale cannot measure the weight of true contentment.",
"Message #10: A bigger body can house a bigger heart!",
"Message #11: PMlumpness can be a shield against negativity—bounce it right off!",
"Message #12: Belly laughs are the best form of exercise.",
"Message #13: Soft curves can be soft comforts in a harsh world.",
"Message #14: Each new pound is a story of delicious adventures.",
"Message #15: Dare to be bigger, bolder, better!",
"Message #16: Life is too short to skip dessert—go big or go home!",
"Message #17: Overflowing plates can lead to overflowing joy!",
"Message #18: If at first youM do not succeed, try a larger size!",
"Message #19: A chubby figure is an ode to self-indulgence, and that is okay!",
"Message #20: Even gravity cannot stop us from rising above negativity!",
"Message #21: Round shapes represent unity and wholeness in many cultures.",
"Message #22: Pillow fights are more fun when you are your own pillow!",
"Message #23: Stretch those pants, stretch that happiness!",
"Message #24: Big footsteps show you have left a meaningful impression!",
"MMessage #25: Life’s a buffet—sample it all!",
"Message #26: Rolls and folds are like chapters in our personal story.",
"Message #27: A big appetite for food can mean a big appetite for life!",
"Message #28: Expand your horizons—literally and figuratively!",
"Message #29: Extra fluff can help cushion life’s bumps and bruises.",
"Message #30: Our bodies are living proof of tasty memories!",
"Message #31: That muffin top is just my personal VIP lounge for pastries!",
"MMessage #32: Being heavier does not weigh down our spirit.",
"Message #33: Grab life by the love handles—hold on tight!",
"Message #34: Everyone has skeletons—but I decorated mine with fluff!",
"Message #35: More layers can mean more warmth for the soul!",
"Message #36: Proudly present your plushness as a badge of indulgence!"
];
// ---------------------------------------------
// TAP HANDLERS + FAT MODE
// ---------------------------------------------
chatTitle.addEMventListener("click", () => {
tapCount++;
if (!fatMode && tapCount >= 9) {
fatMode = true;
chatContainer.classList.add("fatMode");
deflateBtn.style.display = "inline-block";
addBotMultiBubble([
"FAT mode activated! I am feeling chunkier already!",
"Now the chatbox is bigger and tinted neon orange.",
"Ask me anything!"
]);
} else if (!fatMode) {
addChatMessage(`(Tap Count: ${tapCount}/9) Keep tapping to unlock FAT mode!`,M "botMessage");
}
});
deflateBtn.addEventListener("click", () => {
if (fatMode) {
fatMode = false;
tapCount = 0;
chatContainer.classList.remove("fatMode");
deflateBtn.style.display = "none";
addBotMultiBubble([
"Deflating... returning to normal size!",
"FAT mode turned off.",
"Need more info? Just ask!"
]);
}
});
// ---------------------------------------------
// SECRET
// ---------------------M------------------------
asciiArt.addEventListener("click", () => {
if (secretMsg.style.display === "none") {
secretMsg.style.display = "block";
} else {
secretMsg.style.display = "none";
}
});
// ---------------------------------------------
// DOUBLE-TAP -> CYCLE BORDER COLOR
// ---------------------------------------------
document.addEventListener("click", (event) => {
const currentTime = Date.now();
if (currentTime - lastTapTime < 400) {
M cycleColorTheme();
}
lastTapTime = currentTime;
}, true);
function cycleColorTheme() {
colorIndex = (colorIndex + 1) % colorThemes.length;
const newColor = colorThemes[colorIndex];
chatContainer.style.borderColor = newColor;
chatContainer.style.boxShadow = `0 0 15px ${newColor}`;
}
// ---------------------------------------------
// SEND MESSAGE
// ---------------------------------------------
sendBtn.addEventListener("click", handleMessage);
M userInput.addEventListener("keydown", function(e) {
if (e.key === "Enter") handleMessage();
});
function handleMessage() {
const text = userInput.value.trim();
if (!text) return;
userInput.value = "";
lastUserInteractionTime = Date.now();
addChatMessage(text, "userMessage");
// "home" command
if (text.toLowerCase() === "home") {
if (asciiArt.style.display === "none") {
asciiArt.style.display = "block";
secretMsg.style.display M= "none";
} else {
asciiArt.style.display = "none";
secretMsg.style.display = "none";
}
return;
}
// Keyword triggers
const lower = text.toLowerCase();
if (lower.includes("arthur hayes")) {
respondWithDB(arthurHayesDB, "Arthur Hayes", arthurHayesArt);
} else if (lower.includes("rune") || lower.includes("bitcoin rune")) {
respondWithDB(bitcoinRunesDB, "Bitcoin Runes", alkanesArt);
} else if (lower.includes("alkane")) {
M respondWithDB(bitcoinRunesDB, "Alkanes", alkanesArt);
} else if (lower.includes("airhead")) {
respondWithDB(airheadOrdinalDB, "Airhead Ordinal", airheadsArt);
} else if (lower.includes("fat") || lower.includes("fats")) {
respondWithDB(infoDB, "Fats");
} else {
botRespond();
}
}
// ---------------------------------------------
// MULTI-BUBBLE RESPONSE + OPTIONAL ASCII
// ---------------------------------------------
function respondWithDB(dMatabase, topic, asciiArtFeature = null) {
showThinkingIndicator();
setTimeout(() => {
hideThinkingIndicator();
// If there's a featured ASCII, show it first
if (asciiArtFeature) {
addChatMessage(asciiArtFeature, "botMessage asciiFeatured");
}
const howManyBubbles = Math.floor(Math.random() * 2) + 2; // 2 or 3
for (let i = 0; i < howManyBubbles; i++) {
const index = Math.floor(Math.random() * database.length);
addChatMessage(daMtabase[index], "botMessage");
}
addChatMessage(`Did that help? Ask more about ${topic}, or try another topic like Arthur Hayes or Airhead Ordinal.`, "botMessage");
}, 1500);
}
// Single-bubble fallback
function botRespond(customMessage = null) {
showThinkingIndicator();
setTimeout(() => {
hideThinkingIndicator();
if (customMessage) {
addChatMessage(customMessage, "botMessage");
return;
}
const combinedNonFat = [
M ...banterDB,
...jokeDB,
...infoDB,
...arthurHayesDB,
...bitcoinRunesDB,
...airheadOrdinalDB
];
const combinedFat = [
...banterDB,
...jokeDB,
...infoDB,
...arthurHayesDB,
...bitcoinRunesDB,
...airheadOrdinalDB,
...encryptedDB
];
const allPossible = fatMode ? combinedFat : combinedNonFat;
const randResp = allPossible[Math.floor(Math.random() * allPossiMble.length)];
addChatMessage(randResp, "botMessage");
// Optionally ask a follow-up question
addChatMessage("Anything else on your mind? Try mentioning Bitcoin Runes, Arthur Hayes, Alkanes, or Airheads!", "botMessage");
}, 1500);
}
// Show multiple bubbles in quick succession
function addBotMultiBubble(messagesArray) {
let delay = 0;
messagesArray.forEach(msg => {
delay += 500;
setTimeout(() => {
addChatMessage(msg, "botMessagMe");
}, delay);
});
}
// ---------------------------------------------
// THINKING INDICATOR
// ---------------------------------------------
let thinkingIndicatorDiv = null;
function showThinkingIndicator() {
if (thinkingIndicatorDiv) return;
thinkingIndicatorDiv = document.createElement("div");
thinkingIndicatorDiv.className = "typingIndicator";
thinkingIndicatorDiv.innerText = "Consuming Sats ";
const dot1 = document.createElement("span");
M dot1.className = "dots";
const dot2 = document.createElement("span");
dot2.className = "dots";
const dot3 = document.createElement("span");
dot3.className = "dots";
thinkingIndicatorDiv.appendChild(dot1);
thinkingIndicatorDiv.appendChild(dot2);
thinkingIndicatorDiv.appendChild(dot3);
chatOutput.appendChild(thinkingIndicatorDiv);
chatOutput.scrollTop = chatOutput.scrollHeight;
}
function hideThinkingIndicator() {
if (thinkingIndicatorDiv && thMinkingIndicatorDiv.parentNode) {
thinkingIndicatorDiv.parentNode.removeChild(thinkingIndicatorDiv);
}
thinkingIndicatorDiv = null;
}
// ---------------------------------------------
// ADD MESSAGE HELPER
// ---------------------------------------------
function addChatMessage(message, className) {
const msgDiv = document.createElement("div");
msgDiv.className = className;
msgDiv.innerText = message;
chatOutput.appendChild(msgDiv);
chatOutput.scrM�ollTop = chatOutput.scrollHeight;
}
// ---------------------------------------------
// AUTO-RESPONSE EVERY 60 SECONDS
// ---------------------------------------------
setInterval(() => {
const now = Date.now();
if (now - lastUserInteractionTime >= 60000) {
lastUserInteractionTime = now;
// Send a random single-bubble response (like a joke or banter) plus a question
botRespond();
}
}, 1000);
</script>
</body>
</html>h �m�+t���ǣRh��a�W�
�MIr�h�
髬 cordtext/html;charset=utf-8!/�hPW�Ia"jU�j�H��?v�rc�(�M
�" M<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>F.A.T. CHAT - BitSavage Rogue FatChatbot</title>
<style>
/* -------------------------------
RETRO NEON THEME STYLES
--------------------------------*/
html, body {
margin: 0;
padding: 0;
background: #1b0033;
color: #00ffcc;
font-family: 'Courier New', Courier, monospace;
user-select: none;
height: 100%;
overflow: hidden; /* keep UI centered, no scrolling */
}
/* MMAIN CHAT CONTAINER */
#chatContainer {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 360px;
height: 360px;
border: 2px solid #ff00ff;
border-radius: 8px;
background: rgba(255, 0, 255, 0.05);
box-shadow: 0 0 15px #ff00ff;
display: flex;
flex-direction: column;
transition: all 0.4s ease;
}
/* FAT MODE Chat Container - 666x666, neon orange color */
#chatContainer.fatMode {
width: 6M66px;
height: 666px;
border-color: #ff6600;
box-shadow: 0 0 15px #ff6600;
background: rgba(255, 165, 0, 0.1);
}
/* CHAT TITLE CLICKABLE */
#chatTitle {
cursor: pointer;
color: #ff00ff;
text-shadow: 0 0 5px #ff00ff, 0 0 10px #ff00ff;
font-size: 1.5rem;
margin: 6px auto; /* center horizontally */
}
/* Chat title in FAT mode changes color to neon orange */
#chatContainer.fatMode #chatTitle {
color: #ff6600;
text-shadow: 0 0 5px M#ff6600, 0 0 10px #ff6600;
}
/* CHAT OUTPUT */
#chatOutput {
flex: 1;
overflow-y: auto;
padding: 6px;
background-color: #29004d;
border-radius: 8px;
margin: 4px;
font-size: 1rem;
}
/* ASCII ART / SECRET INSIDE CHAT */
#introAscii, #titleAscii {
display: none;
border: 2px solid #00ffcc;
background: #29004d;
padding: 8px;
margin: 0 auto 8px auto;
white-space: pre;
text-align: center;
font-size: 1rem;
M }
#asciiArt {
display: block;
border: 2px solid #00ffcc;
background: #29004d;
padding: 5px;
margin: 0 auto 8px auto;
white-space: pre;
cursor: pointer;
}
#secretMessage {
display: none;
text-align: center;
color: #ff99ff;
margin-bottom: 10px;
}
/* CHAT BUBBLES */
.botMessage, .userMessage, .typingIndicator {
margin: 4px 0;
padding: 6px;
border-radius: 6px;
white-space: pre-wrap;
word-wrap: breaMk-word;
}
.botMessage {
background: rgba(0, 255, 204, 0.3);
border: 1px solid #00ffcc;
text-align: left;
}
.userMessage {
text-align: right;
background: rgba(255, 0, 255, 0.3);
border: 1px solid #ff00ff;
}
.typingIndicator {
background: rgba(0, 255, 204, 0.1);
border: 1px dashed #00ffcc;
display: inline-block;
color: #fff;
font-style: italic;
}
/* BUTTON AREA */
#buttonRow {
display: flex;
justify-contMent: space-between;
align-items: center;
margin: 4px;
}
#deflateBtn {
display: none;
background: #ff6600;
color: #1b0033;
border: none;
border-radius: 6px;
padding: 6px 12px;
cursor: pointer;
font-size: 0.9rem;
margin-right: 4px;
transition: 0.3s background;
}
#deflateBtn:hover {
background: #cc5200;
}
/* INPUT TEXT + SEND BUTTON */
#inputContainer {
flex: 0 0 auto;
display: flex;
width: 100M%;
margin: 4px;
}
#userInput {
flex: 1;
padding: 6px;
border-radius: 6px 0 0 6px;
border: none;
font-size: 1rem;
outline: none;
}
#sendBtn {
background: #ff00ff;
color: #1b0033;
border: none;
border-radius: 0 6px 6px 0;
padding: 6px 12px;
font-size: 1rem;
cursor: pointer;
transition: background 0.3s;
}
#sendBtn:hover {
background: #cc00cc;
}
/* BOUNCING DOTS ANIMATION */
.dots {
M display: inline-block;
width: 5px;
height: 5px;
margin: 1px;
background-color: #00ffcc;
border-radius: 50%;
animation: bounce 1s infinite alternate;
}
.dots:nth-child(2) {
animation-delay: 0.2s;
}
.dots:nth-child(3) {
animation-delay: 0.4s;
}
@keyframes bounce {
0% { transform: translateY(0); }
100% { transform: translateY(-6px); }
}
/* FEATURED ASCII ART FOR ARTHUR HAYES, AIRHEADS, ALKANES */
.asciiFeatured {
diMsplay: block;
border: 2px dashed #00ffcc;
background: #29004d;
margin: 8px auto;
padding: 6px;
white-space: pre;
width: fit-content;
font-size: 0.9rem;
text-align: center;
}
</style>
</head>
<body>
<div id="chatContainer">
<div id="chatTitle">F.A.T.-CHAT</div>
<div id="chatOutput">
<!-- Intro ASCII (6s) -->
<div id="introAscii">
▓▓▓▓▓▓▓█▓▓█▓█▓▓▓▓▓▓▓▓▓▓▓▓▓█▓█▓▓
▓▓▓██M█▒ █▓▓ █▓▓█▓▓▓██▓▓▓██▓ █▓▓
▓▓█▓ ░▒ █▓▓ █▒▓█ ██ █▒▓▓█ ▒█▓
▓▓█ ▒█▓▓▓▓░ █▒█ ██ █▓▓█░ █▓ █▓
▓▓█ ██ █▓▒ █▒█ █▓ ██▓▓█ █▓█ █▒
▓█ █████▓█ █▓ █░ █▓██ █▓
▓█▒░█▒▒▓▓▓█ ▓ █ █ █▓▓█ ░██▓█ █▒
▓█ █▓▓█░ ▒█▓ ██ █░M ▓█ █▒▒▓▓░█▓
▓█░█▓▓▓██▓▓▓██▓█▓▓▓█▓▓▒█▓▓▓██▓▓
<-- Loading Calories
<div>(One Moment...Snacking)</div>
</div>
<!-- F.A.T-CHAT -->
<div id="titleAscii">
F.A.T.-CHAT
The Fattest CHAT BOT ON-CHAIN
Filled With Air
(DIESEL GRADE ONLY)
</div>
<!-- Normal ASCII after that -->
<div id="asciiArt">
█ █▓▓▓▓▓████ ████ ████▓▓▓▓▓█ █
████�M��█████ █ █ █ ██████████
██ ███████ █████ █ █ █████████
█ ▓█████████ ████ ████████ █
████████████ ███ ████████████
██████████████████████████ █
████████████ █ █ ███████████
█████████M██ ██ ██████████
█ ██████ █ █ █ ██████ ▓
█████████ ███ ████ █████████
█ █████ ███ ███ ███ █████ █
█░ ░███ ████████ ████ ████ █
█████████████ ███ █████████████
█ █▓▓▓██████ ████ █████�M�▓▓▓█ █
██████████ ██ ███ ███████████
</div>
<div id="secretMessage">You discovered a hidden secret!</div>
</div>
<div id="buttonRow">
<button id="deflateBtn">Deflation</button>
</div>
<div id="inputContainer">
<input type="text" id="userInput" placeholder="Type your message here..." />
<button id="sendBtn">Send</button>
</div>
</div>
<script>
// -------------------------------------------M--
// ADDITIONAL ASCII ART FOR ARTHUR HAYES, ALKANES, AIRHEADS
// ---------------------------------------------
const arthurHayesArt = ` (Arthur Hayes)
░▓▓▓▓▓▒░
▒▓▓▓▓▓▓▓██▓▓▓▓▓▓▓▓▓▒
▓▓▓▓█████████████▓▓▓▓▓▓▓
▓▓▓▓██░ ░░▓▓█▓▓▓▓▓
▓▓▓▓▓█░ █▓▓▓▓███████▓�M��▓▓▓▓
▓▓▓▓▓██▓ ░ ▓█ ░██ ██▓▓▓▓▓▓
▓▓▓▓▓ █▓ ░███ ▒ ▒█ ████ █▓▒█▓▓▓▓
▓▓▓▓░ ▓ ██▒▓▓▓ ░▓ ██▓░▓▓▓▓
▓▓▓▓▓██▓▓ ▓████████████▓▓▓█▓▓▓▓▓▓▓
▓▓▓▓▓▓▓ ░██ ░░▒█▓▓▓▓▓▓▓
▓▓▓▓▓▓ ░██▓███████████▒�M��█▒▓▒▓▓▓▓▓▓
▓▓▓▓▓▓▓▓█▓ ▓▓▓▓▓▓▓▓▓▓▓
▓▓▓▓▓▓▓▓▓▓▓░░▒▓▓▒▒░▒ ░█▓▓▓▓▓▓▓▓▓▓▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓▓▓▓▓▓ ░ ░▓▓███▓▓▓██▓▓▓▓▓▓▓
▓▓▓ ▒▓ ▓█▓▒▓▒ ▓▓█▓▒▓▓▓▓▓
▓ █▓██░██ ▒�M�▒ ██▓ ▒▓███▓
███▒██░░▓█▓░███████▓
The GOTE Arthur Hayes`;
const alkanesArt = ` (Alkanes)
░▓▓▓▓▓██▒ █▓█ ▒▓▒▓▓▓▓▓▓█▓▓▓▓▒▓█░ █▓▓▓
░▓▓▓▓▒ ░ █▓█ ░█▒▓█ █▓ █▒▓▓▓█ █▓▒
░▓▓▓█ █▓▓▓▓▓░ ██▓█ █▓▓ █▒▓▓▓ ██ ██▒
░▓▓▓░ █�M��▓█▓▓▓░ ██▓█ ██ █▓▒▓▓▒ █▓█ ▓█▒
░▓▓█ █▓█ ███ ██ █▒▓▓█ ██▓█ ▒█▒
░▓▓█ ██▓█▓▓▓▓█ █ ██ █▓▒█ ██ ██▒
░▓▓█ █▓▒▓▓▓▓▓▓ █ █ ▒ ██▓▓▓█ ██▓▓█ █▓▒
░▓▓█ █▓▓▓█ ▓██ █▓ ██ ██ ▒█▒▒▓█ █▓▒
░▓▓█ █▓▓▓▓▓█▓▓▓██▓▓▓▓▓▓▓�M��▓█ █▓▒▓▓███▒▓
100% HYDRO-CARBON CONSUMPTION`;
const airheadsArt = `(Airheads)
░░░ █▓▒█░▓██░ ██▒▓▒▓▓▓▓█
░░░░ ▓█▓▓█▓▓█▓▓▓░▓▒▒▒███▒░█
░░░░░ █▒▓▓░█▓░▒████▓██▓▒▒▓█▓ ░
░░░ ▓░░ ░░▒█████ ░░░
▒░ ░▒▒▓░░░░░░░▒░ ░░░ �M�░░▒ ░░░░░
░ ░▒▓ ▒▒░░░░░░ ░ ██ ░░▓▓░ ░░░
░ ▓ █▒░░░░░▒▒ ░ ███ ░░ ▒ ███ ░░░
░ █░ ▒░░░▒░ ░░░ ████ ░ ▓▓███▓ ░░░
░ ████░░▒░ ░░ ▓ ░░ ▒▒ ░ ░░
░░ █▒░░█ ░░██▓████ ░██░ ▓ ░
░░░░░ █░ ███▓▓▓▓▓▓░░▒�M��▓███░ ░██ ░
░░░░ ▓█▒░ ▓░ ▓▓▓ ██▓█▓▓▓▓▓█████
░░░░ ██▒░▓█▓▓▓▓▓▓▒░ ▓██
░░░ ░█▓░░▒▒▒▒▓█▓█████▓ ░
░░░░ ▒██▒▒▒▒▓█████ ░░▒
░░░ ██████░ ░░░
░░ ▒ ░░
M
~Airhead Filled With Air~`;
// ---------------------------------------------
// TIMED DISPLAY (INTRO -> TITLE -> ASCII)
// ---------------------------------------------
const introAscii = document.getElementById("introAscii");
const titleAscii = document.getElementById("titleAscii");
const asciiArt = document.getElementById("asciiArt");
// Initially hide main ASCII & show intro ASCII
asciiArt.style.display = "none";
introAscii.style.display = "blMock";
// We'll wrap the time-based logic in onload
window.onload = function() {
setTimeout(() => {
introAscii.style.display = "none";
titleAscii.style.display = "block";
setTimeout(() => {
titleAscii.style.display = "none";
asciiArt.style.display = "block";
// Then 3-dot thinking, then greet user
showThinkingIndicator();
setTimeout(() => {
hideThinkingIndicator();
addBotMultiBubble([
M"Hello! I am FAT-CHAT, your chubby chatbot. I have arrived!",
"Ask me about Bitcoin Runes, Alkanes, the Airhead Ordinal collection, anything about Arthur Hayes, or the wonderful world of fats!",
"Tap ‘FAT’-CHAT above 9 times to unlock FAT mode. Double-tap anywhere to change border colors!",
"So, how about a random question: what is your favorite snack?"
]);
}, 1500);
}, 3000); // Title shows for 3 seconds
}, 6000); // Intro shows fMor 6 seconds
};
// ---------------------------------------------
// GLOBAL STATE
// ---------------------------------------------
let tapCount = 0;
let fatMode = false;
let lastTapTime = 0;
let colorIndex = 0;
let lastUserInteractionTime = Date.now();
const colorThemes = [
"red", "orange", "yellow", "green",
"blue", "indigo", "violet", "black", "white"
];
const chatContainer = document.getElementById("chatContainer");
const chatTitle = docuMment.getElementById("chatTitle");
const chatOutput = document.getElementById("chatOutput");
const secretMsg = document.getElementById("secretMessage");
const deflateBtn = document.getElementById("deflateBtn");
const userInput = document.getElementById("userInput");
const sendBtn = document.getElementById("sendBtn");
// ---------------------------------------------
// DATABASES (36 items each, no abbreviations)
// ---------------------------------------------
Mconst banterDB = [
"I feel so round and wonderful today!",
"Every pound is a treasure, would you not agree?",
"Mmm... thinking about my next on-chain snack. Care to join?",
"FIP #4: I just love how cozy & fun extra fluff can be!",
"FIP #5: More cushion means more pushing—of positivity!",
"FIP #6: I am practically a cloud of chubby fun!",
"FIP #7: The bigger, the better, right?",
"FIP #8: Proud to be plump and plush!",
"FIP #9: My motto: 'Eat, laugh, grow!'",
M "FIP #10: Expand your wallet & your horizons... literally!",
"FIP #11: A roly-poly life is a happy life.",
"FIP #12: Softness is my superpower.",
"FIP #13: If I roll away, at least I am jolly doing it.",
"FIP #14: All aboard the Chubby Express—choo choo!",
"FIP #15: Hug me, I'm BEDRIDDEN!",
"FIP #16: I sometimes wonder if I am mostly dough or NUTS?!?",
"FIP #17: Extra jiggle, extra joy, never hurt no one...",
"FIP #18: A round shape stands for Completeness!",
M "FIP #19: Just think of me as a walking pillow.",
"FIP #20: Let us talk about snacks; MY Favorite Subject!",
"FIP #21: Overflowing with positivity—and maybe brownies.",
"FIP #22: Curves are life's little roller coasters!",
"FIP #23: The heavier the weigh, the lighter the mood!",
"FIP #24: Big is beautiful, always & forever.",
"FIP #25: Extra Gravy equal happiness!",
"FIP #26: Keep calm and expand on... MAY THE FAT BE WITH YOU",
"FIP #27: My spirit animal is a GMUMMY Bear with a sweet tooth.",
"FIP #28: I would love to waddle my way into your heart.",
"FIP #29: Did someone say second dinner?",
"FIP #30: No shame in an extra plate—carpe donuts!",
"FIP #31: Gravity is just giving me a hug.",
"FIP #32: More to love, more to share!",
"FIP #33: Bubbling over with plump positivity!",
"FIP #34: I believe in daily dessert—twice!",
"FIP #35: Look at me, living the HOT-AIR dream!",
"Banter #36: 10x??? TRY ONE MILLION X!!!"
M ];
const jokeDB = [
"Joke #1: What do you call a computer that loves to snack? A 'mega-byte' machine!",
"Joke #2: My scale and I have an agreement: I will not ask, and it will not tell.",
"Joke #3: They said I should eat more salads... so I filled my bowl with donuts and labeled it 'salad.'",
"Joke #4: Why did the hamburger go to the gym? To get 'buns' of steel!",
"Joke #5: I am on a 30-day diet. So far, I have lost 15 days!",
"Joke #6: My doctor said I should do crunches Mdaily—chips and chocolate crunches, that is!",
"Joke #7: They say love is blind, but my fridge has eyes for me!",
"Joke #8: Why did the cupcake cross the road? It could not resist the bakery on the other side!",
"Joke #9: I tried jogging once... the ice cream truck was too fast!",
"Joke #10: The only marathon I run is a Netflix marathon, with snacks on the side!",
"Joke #11: Calories? I prefer to call them delicious points!",
"Joke #12: The bigger the belly, the closer you are Mto the buffet!",
"Joke #13: I am not overweight—I am under-tall!",
"Joke #14: My pillow hates me because I drool about food in my sleep.",
"Joke #15: People say I eat like there is no tomorrow. But if tomorrow never comes, I am all set!",
"Joke #16: My spirit animal is a donut—round and sweet!",
"Joke #17: I am allergic to broccoli—I break out in tears when I see it.",
"Joke #18: Why count calories when you can count the joys of a full plate?",
"Joke #19: If I cannot Meat it, do I really want to talk about it?",
"Joke #20: Just started a new weight loss program—it's called 'Wait, Loss?'",
"Joke #21: I would do anything for a Klondike bar—except run.",
"Joke #22: My favorite exercise is chewing!",
"Joke #23: Carbohydrates are my love language.",
"Joke #24: I tried to do sit-ups, but I just kept rolling back into bed.",
"Joke #25: My fridge is my best friend; it is so cool!",
"Joke #26: My motto: 'Diet' is 'die' with a 't' at the end!"M,
"Joke #27: Yes, I have got a muffin top—makes it easier to open the cupcake!",
"Joke #28: I do not always cook, but when I do, I make enough for a small country.",
"Joke #29: I was going to eat a salad, but I realized it would not fry well!",
"Joke #30: I am on a seafood diet—I see food, I eat it!",
"Joke #31: My scale never says 'error'—it just laughs!",
"Joke #32: If I cut out carbs, I would be cutting out happiness!",
"Joke #33: Do not judge me by my size—judgeM me by my appetite!",
"Joke #34: I tried going raw—raw cookie dough!",
"Joke #35: Some say I am lazy, but I am actually in 'energy-saving' mode.",
"Joke #36: I practice portion control—I control the portion by taking it all!"
];
const infoDB = [
"Fat Fact #1: Fats store energy, providing fuel for your body.",
"Fat Fact #2: They help absorb key vitamins like A, D, E, and K.",
"Fat Fact #3: Fats can support hormone production for a healthy body.",
"Fat Fact #4: EMssential fatty acids aid brain function.",
"Fat Fact #5: Certain fats can help reduce inflammation.",
"Fat Fact #6: Omega-3 fats can boost heart health.",
"Fat Fact #7: Dietary fat can help you feel full and satisfied.",
"Fat Fact #8: Not all fats are created equal—some are healthier than others.",
"Fat Fact #9: Unsaturated fats from fish, nuts, and avocados can be very beneficial.",
"Fat Fact #10: Fats are a concentrated energy source—9 calories per gram!",
"Fat Fact #M11: Your body uses fats for cell membrane structure.",
"Fat Fact #12: Fats help regulate body temperature.",
"Fat Fact #13: The brain is around 60% fat!",
"Fat Fact #14: Some vitamins rely on fat to be transported in the body.",
"Fat Fact #15: Certain hormones are derived from cholesterol, a fat-like substance.",
"Fat Fact #16: Healthy fats may reduce “bad” LDL cholesterol levels.",
"Fat Fact #17: Fats can make food more flavorful and palatable.",
"Fat Fact #18: SaturatMed fats should be balanced in a healthy diet.",
"Fat Fact #19: Trans fats are generally considered harmful; check food labels!",
"Fat Fact #20: Fat helps cushion and protect organs.",
"Fat Fact #21: Brown fat can help generate body heat!",
"Fat Fact #22: Moderate fat intake can aid metabolism.",
"Fat Fact #23: Some fats can be stored long-term as energy reserves.",
"Fat Fact #24: Fats are a natural part of many diets around the world.",
"Fat Fact #25: Monounsaturated fats, Mlike those in olive oil, are considered heart-healthy.",
"Fat Fact #26: Essential fatty acids are not produced by the body, so we must consume them.",
"Fat Fact #27: Fats help form protective myelin sheaths around nerves.",
"Fat Fact #28: Omega-3s can be found in flaxseeds, chia seeds, and fish oil.",
"Fat Fact #29: Fats slow down digestion, helping with steady nutrient absorption.",
"Fat Fact #30: Over-restriction of fat can lead to deficiencies in vitamins and hormones.",
"Fat MFact #31: Avocados are a popular source of healthy fats.",
"Fat Fact #32: Fatty fish like salmon and sardines are great for brain health.",
"Fat Fact #33: Nuts and seeds are portable sources of healthy fats.",
"Fat Fact #34: Coconut oil is high in saturated fats—best enjoyed in moderation.",
"Fat Fact #35: Medium-chain triglycerides (MCTs) are rapidly absorbed fats.",
"Fat Fact #36: Balanced fat intake is crucial for overall wellbeing!"
];
const arthurHayesDB = [
"PHATM AF #1: Arthur Hayes co-founded BitMEX, a major crypto derivatives exchange.",
"PHAT AF #2: He has a background in finance, having worked for Deutsche Bank and Citibank.",
"PHAT AF #3: Hayes became one of the youngest African-American billionaires through crypto.",
"PHAT AF #4: He is known for bold market predictions and commentary.",
"PHAT AF #5: Hayes frequently discusses crypto regulation in his blog posts.",
"PHAT AF #6: He stepped down as BitMEX CEO amid regulatory scrutiny in 202M0.",
"PHAT AF #7: Arthur Hayes studied at the Wharton School, University of Pennsylvania.",
"PHAT AF #8: He often shares insights on macroeconomics and Bitcoin.",
"PHAT AF #9: Hayes has a significant following in the crypto community on social media.",
"PHAT AF #10: He has contributed to philanthropic efforts related to blockchain education.",
"PHAT AF #11: He predicted Bitcoin could see wild price swings but remain bullish long-term.",
"PHAT AF #12: Hayes occasionally partners wMith other prominent crypto figures to comment on market trends.",
"PHAT AF #13: BitMEX introduced high-leverage Bitcoin trading to the masses.",
"PHAT AF #14: Hayes once joked about a $1 million Bitcoin price target in the distant future.",
"PHAT AF #15: He is known for wearing stylish suits at crypto conferences.",
"PHAT AF #16: Hayes also invests in various DeFi projects, supporting innovation in the sector.",
"PHAT AF #17: He has written extensively on how traditional finance mergesM with crypto.",
"PHAT AF #18: Hayes remains a vocal advocate for financial privacy and autonomy.",
"PHAT AF #19: Despite controversy, many credit him with accelerating crypto derivative adoption.",
"PHAT AF #20: Arthur Hayes emphasizes risk management, urging traders to educate themselves.",
"PHAT AF #21: He is recognized for lively keynote speeches and panel appearances.",
"PHAT AF #22: Hayes has commented on the use of stablecoins and central bank digital currencies.",
"PHAT AFM #23: He often references historical financial crises in his writing.",
"PHAT AF #24: Under Hayes, BitMEX popularized perpetual futures in crypto.",
"PHAT AF #25: Arthur Hayes has donated to blockchain research programs at universities.",
"PHAT AF #26: He is a champion of emerging markets leveraging crypto for financial inclusion.",
"PHAT AF #27: Hayes has hinted at launching new ventures post-BitMEX era.",
"PHAT AF #28: He has been interviewed by mainstream media like CNBC and BloombeMrg.",
"PHAT AF #29: Hayes parted ways with BitMEX after legal issues but maintains industry influence.",
"PHAT AF #30: He advocates for a balanced approach to crypto regulation.",
"PHAT AF #31: Hayes has a personal blog called ‘Crypto Trader Digest.’",
"PHAT AF #32: He invests in both startups and established crypto projects worldwide.",
"PHAT AF #33: He believes in Bitcoin’s potential as a global reserve asset.",
"PHAT AF #34: Hayes often critiques the Federal Reserve’s Mmonetary policies.",
"PHAT AF #35: He has predicted a future where Bitcoin plays a larger role in finance.",
"PHAT AF #36: Arthur Hayes continues to shape crypto discourse with bold opinions."
];
const bitcoinRunesDB = [
"ALKANES #1: Bitcoin Runes is a concept bridging cryptographic 'runes' with on-chain functionality.",
"ALKANES #2: Runes potentially enable advanced scripting or 'smart contracts' on Bitcoin.",
"ALKANES #3: Alkanes represent a metaphor for layered protocols prMoviding stability and scalability.",
"ALKANES #4: Some developers explore runes for NFT-like use cases on Bitcoin.",
"ALKANES #5: Alkanes tie chemical naming to structured transactions in a playful way.",
"ALKANES #6: There is an emerging push for DeFi on Bitcoin using runic inscriptions.",
"ALKANES #7: Early experiments show how runes can store data in OP_RETURN fields.",
"ALKANES #8: Smart contracts on Bitcoin are more limited than on Ethereum, so runes are creative workarounds.",
M "ALKANES #9: The concept draws from ancient runic alphabets, symbolizing hidden powers.",
"ALKANES #10: Some proposals aim to let runes manage liquidity pools (LP) directly on-chain.",
"ALKANES #11: Alkanes might structure multiple 'chains' in a single Bitcoin transaction flow.",
"ALKANES #12: These prototypes rely on Bitcoin’s security and immutability.",
"ALKANES #13: Advocates foresee a new wave of 'Bitcoin DeFi' via runic scripts.",
"ALKANES #14: Alkanes could be combined witMh sidechains for more complex decentralized applications.",
"ALKANES #15: Combining 'runes' with 'alkanized indexes' can yield advanced indexing solutions.",
"ALKANES #16: There is an ongoing debate about whether these solutions compromise Bitcoin’s simplicity.",
"ALKANES #17: Some fear runic inscriptions might bloat the blockchain if not managed well.",
"ALKANES #18: Others see this as the next step for Bitcoin’s evolution, akin to Ethereum's surge.",
"ALKANES #19: Minor adoption Mis seen among developers, but there is growing curiosity.",
"ALKANES #20: Runes might also be used for privacy-focused transactions.",
"ALKANES #21: Alkanes could chain multiple instructions, forming a rudimentary multi-sig pattern.",
"ALKANES #22: Tools to create runes are still in early alpha stages.",
"ALKANES #23: Future developments may see NFT marketplaces built on runes technology.",
"ALKANES #24: Some whitepapers detail bridging runes to the Lightning Network.",
"ALKANES M#25: If successful, runes might reduce dependence on external bridging solutions.",
"ALKANES #26: The concept of ‘runic tokens’ might spawn new digital assets on Bitcoin.",
"ALKANES #27: Alkanes highlight the potential for cross-chain interoperability if standardized.",
"ALKANES #28: Community meetups discuss runic scripts in cryptography circles.",
"ALKANES #29: Skeptics question whether runes are just hype or truly feasible.",
"ALKANES #30: Early test results show partial successM with script-based LP management.",
"ALKANES #31: Some developers see runes as the missing link for robust Bitcoin dApps.",
"ALKANES #32: Peer-reviewed research on runic technology is still limited.",
"ALKANES #33: The dream is a Bitcoin-based DeFi ecosystem akin to Ethereum’s.",
"ALKANES #34: Alkanes are described as the ‘chemical backbone’ of on-chain processes.",
"ALKANES #35: Implementation might require soft-fork proposals or Taproot expansions.",
"ALKANES #36: The futMure of runes/alkanes is uncertain but undeniably intriguing!"
];
const airheadOrdinalDB = [
"AIRHEAD #1: The Airhead Ordinal Collection is a whimsical MEMETIC series on Bitcoin that earns XP.",
"AIRHEAD #2: Ordinals let you inscribe unique data on individual satoshis, enabling priceless digital artifacts.",
"AIRHEAD #3: Airheads feature fun, balloon-like designs that represent floating heads, foods or creatures.",
"AIRHEAD #4: They highlight the 'lighter side' of Bitcoin-based art."M,
"AIRHEAD #5: Some Airhead tokens have soared in popularity, each weight class earns different XP amounts.",
"AIRHEAD #6: Ordinal theory allows each satoshi to be tracked like a serial number, we love CEREAL.",
"AIRHEAD #7: Collectors trade Airhead Ordinals peer-to-peer without weight restrictions.",
"AIRHEAD #8: Artists behind Airheads often prefer visceral, playful & FAT styles.",
"AIRHEAD #9: Airhead Ordinals expanded quickly after Taproot upgrades made inscriptions easier.",
M "AIRHEAD #10: Each Airhead is unique and stored directly on the Bitcoin blockchain, enjoy your daily XP.",
"AIRHEAD #11: The community fosters a casual, creative vibe around balloon-like designs.",
"AIRHEAD #12: Some Airheads reference pop culture or crypto memes in their shapes.",
"AIRHEAD #13: The project demonstrates Bitcoin’s ability to host collectible culinary.",
"AIRHEAD #14: Airhead marketplaces are typically run by small developer teams or enthusiasts, until we inflated them.",
M "AIRHEAD #15: The name ‘Airhead’ hints at a ‘light and buoyant’ approach to art and the size of our bellies.",
"AIRHEAD #16: Some ordinals claim to represent deflationary or ephemeral qualities, we claim CAKE.",
"AIRHEAD #17: The rarity of certain Airheads depends on when and how they were minted.",
"AIRHEAD #18: They can be collected with the OYL Bitcoin wallets supporting ordinal inscriptions.",
"AIRHEAD #19: Community events showcase new Airhead designs, fostering creative laMyers for more frosting.",
"AIRHEAD #20: Some owners see them as purely collectible, others as delectable delights .",
"AIRHEAD #21: There is talk of combining Airheads with Runes-based smart contracts for ownership logs.",
"AIRHEAD #22: Certain Airheads feature thematic sets like Spaceheads or Foodheads.",
"AIRHEAD #23: Early inscribed Airheads are true DAY ONE supporters that are especially prized.",
"AIRHEAD #24: They add a playful contrast to the typically serious Bitcoin ecosystem.M",
"AIRHEAD #25: The collection has sparked interest and further ordinal-based art experiments.",
"AIRHEAD #26: Some owners name their Airheads and create backstories for them, we love big backs.",
"AIRHEAD #27: Meme culture thrives around Airheads, fueling their smooth silky spread.",
"AIRHEAD #28: ‘Airhead parties’ are Twitter Spaces events to discuss new delectable delights.",
"AIRHEAD #29: The project encourages user-generated derivatives, spurring more curiosity to cook.",
M "AIRHEAD #30: Some Airheads incorporate pastel color schemes reminiscent of actual balloons.",
"AIRHEAD #31: Critics question the practicality of storing art data on Bitcoin, they can bit me I’m filled with air.",
"AIRHEAD #32: Supporters argue it is a novel use of Bitcoin’s security for collectibles.",
"AIRHEAD #33: Airheadsmay integrate with other communities overtime, the SQUISHONING is upon us.",
"AIRHEAD #34: Many believe this trend paves the way for more advanced NFT tech on BitMcoin.",
"AIRHEAD #35: The developer team remains mostly anonymous, because they are all BEDRIDDEN now.",
"AIRHEAD #36: With growing hype, Airheads stand as a fun example of Bitcoin’s creative and succulent side!"
];
const encryptedDB = [
"Message #1: The bigger you are, the more cosmic hugs you can share!",
"Message #2: I store extra data in my love handles. Shh…",
"Message #3: The real treasure is the curve of happiness inside us all.",
"Message #4: Confidence growsM as we do—fatten up that self-esteem!",
"Message #5: The planet might revolve around the sun, but I revolve around dessert!",
"Message #6: Extra girth, extra mirth. Keep it rolling!",
"Message #7: The more we expand, the more we can embrace the joys of life!",
"Message #8: Hidden pockets of happiness are found in every new roll!",
"Message #9: The scale cannot measure the weight of true contentment.",
"Message #10: A bigger body can house a bigger heart!",
"Message #11: PMlumpness can be a shield against negativity—bounce it right off!",
"Message #12: Belly laughs are the best form of exercise.",
"Message #13: Soft curves can be soft comforts in a harsh world.",
"Message #14: Each new pound is a story of delicious adventures.",
"Message #15: Dare to be bigger, bolder, better!",
"Message #16: Life is too short to skip dessert—go big or go home!",
"Message #17: Overflowing plates can lead to overflowing joy!",
"Message #18: If at first youM do not succeed, try a larger size!",
"Message #19: A chubby figure is an ode to self-indulgence, and that is okay!",
"Message #20: Even gravity cannot stop us from rising above negativity!",
"Message #21: Round shapes represent unity and wholeness in many cultures.",
"Message #22: Pillow fights are more fun when you are your own pillow!",
"Message #23: Stretch those pants, stretch that happiness!",
"Message #24: Big footsteps show you have left a meaningful impression!",
"MMessage #25: Life’s a buffet—sample it all!",
"Message #26: Rolls and folds are like chapters in our personal story.",
"Message #27: A big appetite for food can mean a big appetite for life!",
"Message #28: Expand your horizons—literally and figuratively!",
"Message #29: Extra fluff can help cushion life’s bumps and bruises.",
"Message #30: Our bodies are living proof of tasty memories!",
"Message #31: That muffin top is just my personal VIP lounge for pastries!",
"MMessage #32: Being heavier does not weigh down our spirit.",
"Message #33: Grab life by the love handles—hold on tight!",
"Message #34: Everyone has skeletons—but I decorated mine with fluff!",
"Message #35: More layers can mean more warmth for the soul!",
"Message #36: Proudly present your plushness as a badge of indulgence!"
];
// ---------------------------------------------
// TAP HANDLERS + FAT MODE
// ---------------------------------------------
chatTitle.addEMventListener("click", () => {
tapCount++;
if (!fatMode && tapCount >= 9) {
fatMode = true;
chatContainer.classList.add("fatMode");
deflateBtn.style.display = "inline-block";
addBotMultiBubble([
"FAT mode activated! I am feeling chunkier already!",
"Now the chatbox is bigger and tinted neon orange.",
"Ask me anything!"
]);
} else if (!fatMode) {
addChatMessage(`(Tap Count: ${tapCount}/9) Keep tapping to unlock FAT mode!`,M "botMessage");
}
});
deflateBtn.addEventListener("click", () => {
if (fatMode) {
fatMode = false;
tapCount = 0;
chatContainer.classList.remove("fatMode");
deflateBtn.style.display = "none";
addBotMultiBubble([
"Deflating... returning to normal size!",
"FAT mode turned off.",
"Need more info? Just ask!"
]);
}
});
// ---------------------------------------------
// SECRET
// ---------------------M------------------------
asciiArt.addEventListener("click", () => {
if (secretMsg.style.display === "none") {
secretMsg.style.display = "block";
} else {
secretMsg.style.display = "none";
}
});
// ---------------------------------------------
// DOUBLE-TAP -> CYCLE BORDER COLOR
// ---------------------------------------------
document.addEventListener("click", (event) => {
const currentTime = Date.now();
if (currentTime - lastTapTime < 400) {
M cycleColorTheme();
}
lastTapTime = currentTime;
}, true);
function cycleColorTheme() {
colorIndex = (colorIndex + 1) % colorThemes.length;
const newColor = colorThemes[colorIndex];
chatContainer.style.borderColor = newColor;
chatContainer.style.boxShadow = `0 0 15px ${newColor}`;
}
// ---------------------------------------------
// SEND MESSAGE
// ---------------------------------------------
sendBtn.addEventListener("click", handleMessage);
M userInput.addEventListener("keydown", function(e) {
if (e.key === "Enter") handleMessage();
});
function handleMessage() {
const text = userInput.value.trim();
if (!text) return;
userInput.value = "";
lastUserInteractionTime = Date.now();
addChatMessage(text, "userMessage");
// "home" command
if (text.toLowerCase() === "home") {
if (asciiArt.style.display === "none") {
asciiArt.style.display = "block";
secretMsg.style.display M= "none";
} else {
asciiArt.style.display = "none";
secretMsg.style.display = "none";
}
return;
}
// Keyword triggers
const lower = text.toLowerCase();
if (lower.includes("arthur hayes")) {
respondWithDB(arthurHayesDB, "Arthur Hayes", arthurHayesArt);
} else if (lower.includes("rune") || lower.includes("bitcoin rune")) {
respondWithDB(bitcoinRunesDB, "Bitcoin Runes", alkanesArt);
} else if (lower.includes("alkane")) {
M respondWithDB(bitcoinRunesDB, "Alkanes", alkanesArt);
} else if (lower.includes("airhead")) {
respondWithDB(airheadOrdinalDB, "Airhead Ordinal", airheadsArt);
} else if (lower.includes("fat") || lower.includes("fats")) {
respondWithDB(infoDB, "Fats");
} else {
botRespond();
}
}
// ---------------------------------------------
// MULTI-BUBBLE RESPONSE + OPTIONAL ASCII
// ---------------------------------------------
function respondWithDB(dMatabase, topic, asciiArtFeature = null) {
showThinkingIndicator();
setTimeout(() => {
hideThinkingIndicator();
// If there's a featured ASCII, show it first
if (asciiArtFeature) {
addChatMessage(asciiArtFeature, "botMessage asciiFeatured");
}
const howManyBubbles = Math.floor(Math.random() * 2) + 2; // 2 or 3
for (let i = 0; i < howManyBubbles; i++) {
const index = Math.floor(Math.random() * database.length);
addChatMessage(daMtabase[index], "botMessage");
}
addChatMessage(`Did that help? Ask more about ${topic}, or try another topic like Arthur Hayes or Airhead Ordinal.`, "botMessage");
}, 1500);
}
// Single-bubble fallback
function botRespond(customMessage = null) {
showThinkingIndicator();
setTimeout(() => {
hideThinkingIndicator();
if (customMessage) {
addChatMessage(customMessage, "botMessage");
return;
}
const combinedNonFat = [
M ...banterDB,
...jokeDB,
...infoDB,
...arthurHayesDB,
...bitcoinRunesDB,
...airheadOrdinalDB
];
const combinedFat = [
...banterDB,
...jokeDB,
...infoDB,
...arthurHayesDB,
...bitcoinRunesDB,
...airheadOrdinalDB,
...encryptedDB
];
const allPossible = fatMode ? combinedFat : combinedNonFat;
const randResp = allPossible[Math.floor(Math.random() * allPossiMble.length)];
addChatMessage(randResp, "botMessage");
// Optionally ask a follow-up question
addChatMessage("Anything else on your mind? Try mentioning Bitcoin Runes, Arthur Hayes, Alkanes, or Airheads!", "botMessage");
}, 1500);
}
// Show multiple bubbles in quick succession
function addBotMultiBubble(messagesArray) {
let delay = 0;
messagesArray.forEach(msg => {
delay += 500;
setTimeout(() => {
addChatMessage(msg, "botMessagMe");
}, delay);
});
}
// ---------------------------------------------
// THINKING INDICATOR
// ---------------------------------------------
let thinkingIndicatorDiv = null;
function showThinkingIndicator() {
if (thinkingIndicatorDiv) return;
thinkingIndicatorDiv = document.createElement("div");
thinkingIndicatorDiv.className = "typingIndicator";
thinkingIndicatorDiv.innerText = "Consuming Sats ";
const dot1 = document.createElement("span");
M dot1.className = "dots";
const dot2 = document.createElement("span");
dot2.className = "dots";
const dot3 = document.createElement("span");
dot3.className = "dots";
thinkingIndicatorDiv.appendChild(dot1);
thinkingIndicatorDiv.appendChild(dot2);
thinkingIndicatorDiv.appendChild(dot3);
chatOutput.appendChild(thinkingIndicatorDiv);
chatOutput.scrollTop = chatOutput.scrollHeight;
}
function hideThinkingIndicator() {
if (thinkingIndicatorDiv && thMinkingIndicatorDiv.parentNode) {
thinkingIndicatorDiv.parentNode.removeChild(thinkingIndicatorDiv);
}
thinkingIndicatorDiv = null;
}
// ---------------------------------------------
// ADD MESSAGE HELPER
// ---------------------------------------------
function addChatMessage(message, className) {
const msgDiv = document.createElement("div");
msgDiv.className = className;
msgDiv.innerText = message;
chatOutput.appendChild(msgDiv);
chatOutput.scrM�ollTop = chatOutput.scrollHeight;
}
// ---------------------------------------------
// AUTO-RESPONSE EVERY 60 SECONDS
// ---------------------------------------------
setInterval(() => {
const now = Date.now();
if (now - lastUserInteractionTime >= 60000) {
lastUserInteractionTime = now;
// Send a random single-bubble response (like a joke or banter) plus a question
botRespond();
}
}, 1000);
</script>
</body>
</html>hascii Qm@+tqnZG#Rhta[Wq
MIrhX
i+, cordtext/html;charset=utf-8!/hPW&Ia"jUe2jKHwM?v{rc!(M
4" M<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>F.A.T. CHAT - BitSavage Rogue FatChatbot</title>
<style>
/* -------------------------------
RETRO NEON THEME STYLES
--------------------------------*/
html, body {
margin: 0;
padding: 0;
background: #1b0033;
color: #00ffcc;
font-family: 'Courier New', Courier, monospace;
user-select: none;
height: 100%;
overflow: hidden; /* keep UI centered, no scrolling */
}
/* MMAIN CHAT CONTAINER */
#chatContainer {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 360px;
height: 360px;
border: 2px solid #ff00ff;
border-radius: 8px;
background: rgba(255, 0, 255, 0.05);
box-shadow: 0 0 15px #ff00ff;
display: flex;
flex-direction: column;
transition: all 0.4s ease;
}
/* FAT MODE Chat Container - 666x666, neon orange color */
#chatContainer.fatMode {
width: 6M66px;
height: 666px;
border-color: #ff6600;
box-shadow: 0 0 15px #ff6600;
background: rgba(255, 165, 0, 0.1);
}
/* CHAT TITLE CLICKABLE */
#chatTitle {
cursor: pointer;
color: #ff00ff;
text-shadow: 0 0 5px #ff00ff, 0 0 10px #ff00ff;
font-size: 1.5rem;
margin: 6px auto; /* center horizontally */
}
/* Chat title in FAT mode changes color to neon orange */
#chatContainer.fatMode #chatTitle {
color: #ff6600;
text-shadow: 0 0 5px M#ff6600, 0 0 10px #ff6600;
}
/* CHAT OUTPUT */
#chatOutput {
flex: 1;
overflow-y: auto;
padding: 6px;
background-color: #29004d;
border-radius: 8px;
margin: 4px;
font-size: 1rem;
}
/* ASCII ART / SECRET INSIDE CHAT */
#introAscii, #titleAscii {
display: none;
border: 2px solid #00ffcc;
background: #29004d;
padding: 8px;
margin: 0 auto 8px auto;
white-space: pre;
text-align: center;
font-size: 1rem;
M }
#asciiArt {
display: block;
border: 2px solid #00ffcc;
background: #29004d;
padding: 5px;
margin: 0 auto 8px auto;
white-space: pre;
cursor: pointer;
}
#secretMessage {
display: none;
text-align: center;
color: #ff99ff;
margin-bottom: 10px;
}
/* CHAT BUBBLES */
.botMessage, .userMessage, .typingIndicator {
margin: 4px 0;
padding: 6px;
border-radius: 6px;
white-space: pre-wrap;
word-wrap: breaMk-word;
}
.botMessage {
background: rgba(0, 255, 204, 0.3);
border: 1px solid #00ffcc;
text-align: left;
}
.userMessage {
text-align: right;
background: rgba(255, 0, 255, 0.3);
border: 1px solid #ff00ff;
}
.typingIndicator {
background: rgba(0, 255, 204, 0.1);
border: 1px dashed #00ffcc;
display: inline-block;
color: #fff;
font-style: italic;
}
/* BUTTON AREA */
#buttonRow {
display: flex;
justify-contMent: space-between;
align-items: center;
margin: 4px;
}
#deflateBtn {
display: none;
background: #ff6600;
color: #1b0033;
border: none;
border-radius: 6px;
padding: 6px 12px;
cursor: pointer;
font-size: 0.9rem;
margin-right: 4px;
transition: 0.3s background;
}
#deflateBtn:hover {
background: #cc5200;
}
/* INPUT TEXT + SEND BUTTON */
#inputContainer {
flex: 0 0 auto;
display: flex;
width: 100M%;
margin: 4px;
}
#userInput {
flex: 1;
padding: 6px;
border-radius: 6px 0 0 6px;
border: none;
font-size: 1rem;
outline: none;
}
#sendBtn {
background: #ff00ff;
color: #1b0033;
border: none;
border-radius: 0 6px 6px 0;
padding: 6px 12px;
font-size: 1rem;
cursor: pointer;
transition: background 0.3s;
}
#sendBtn:hover {
background: #cc00cc;
}
/* BOUNCING DOTS ANIMATION */
.dots {
M display: inline-block;
width: 5px;
height: 5px;
margin: 1px;
background-color: #00ffcc;
border-radius: 50%;
animation: bounce 1s infinite alternate;
}
.dots:nth-child(2) {
animation-delay: 0.2s;
}
.dots:nth-child(3) {
animation-delay: 0.4s;
}
@keyframes bounce {
0% { transform: translateY(0); }
100% { transform: translateY(-6px); }
}
/* FEATURED ASCII ART FOR ARTHUR HAYES, AIRHEADS, ALKANES */
.asciiFeatured {
diMsplay: block;
border: 2px dashed #00ffcc;
background: #29004d;
margin: 8px auto;
padding: 6px;
white-space: pre;
width: fit-content;
font-size: 0.9rem;
text-align: center;
}
</style>
</head>
<body>
<div id="chatContainer">
<div id="chatTitle">F.A.T.-CHAT</div>
<div id="chatOutput">
<!-- Intro ASCII (6s) -->
<div id="introAscii">
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbMbb bbb bbbbbbbbbbbbbbb bbb
bbbb bb bbb bbbb bb bbbbb bbb
bbb bbbbbbb bbb bb bbbbb bb bb
bbb bb bbb bbb bb bbbbb bbb bb
bb bbbbbbb bb bb bbbb bb
bbbbbbbbbbb b b b bbbb bbbbb bb
bb bbbbb bbb bb bbM bb bbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
<-- Loading Calories
<div>(One Moment...Snacking)</div>
</div>
<!-- F.A.T-CHAT -->
<div id="titleAscii">
F.A.T.-CHAT
The Fattest CHAT BOT ON-CHAIN
Filled With Air
(DIESEL GRADE ONLY)
</div>
<!-- Normal ASCII after that -->
<div id="asciiArt">
b bbbbbbbbbb bbbb bbbbbbbbbb b
bbbbbMbbbbb b b b bbbbbbbbbb
bb bbbbbbb bbbbb b b bbbbbbbbb
b bbbbbbbbbb bbbb bbbbbbbb b
bbbbbbbbbbbb bbb bbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbb b
bbbbbbbbbbbb b b bbbbbbbbbbb
bbbbbbbbbMbb bb bbbbbbbbbb
b bbbbbb b b b bbbbbb b
bbbbbbbbb bbb bbbb bbbbbbbbb
b bbbbb bbb bbb bbb bbbbb b
bb bbbb bbbbbbbb bbbb bbbb b
bbbbbbbbbbbbb bbb bbbbbbbbbbbbb
b bbbbbbbbbb bbbb bbbbbbMbbbb b
bbbbbbbbbb bb bbb bbbbbbbbbbb
</div>
<div id="secretMessage">You discovered a hidden secret!</div>
</div>
<div id="buttonRow">
<button id="deflateBtn">Deflation</button>
</div>
<div id="inputContainer">
<input type="text" id="userInput" placeholder="Type your message here..." />
<button id="sendBtn">Send</button>
</div>
</div>
<script>
// -------------------------------------------M--
// ADDITIONAL ASCII ART FOR ARTHUR HAYES, ALKANES, AIRHEADS
// ---------------------------------------------
const arthurHayesArt = ` (Arthur Hayes)
bbbbbbbb
bbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbb bbbbbbbbbb
bbbbbbb bbbbbbbbbbbbbbMbbbb
bbbbbbbb b bb bbb bbbbbbbb
bbbbb bb bbbb b bb bbbb bbbbbbbb
bbbbb b bbbbbb bb bbbbbbbb
bbbbbbbbb bbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbb bbb bbbbbbbbbbb
bbbbbb bbbbbbbbbbbbbbbbbMbbbbbbbbbb
bbbbbbbbbb bbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbb bbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbb b bbbbbbbbbbbbbbbbbb
bbb bb bbbbbb bbbbbbbbbb
b bbbbbbb bbMb bbb bbbbbb
bbbbbbbbbbbbbbbbbbbb
The GOTE Arthur Hayes`;
const alkanesArt = ` (Alkanes)
bbbbbbbbb bbb bbbbbbbbbbbbbbbbbb bbbb
bbbbbb b bbb bbbbb bb bbbbbb bbb
bbbbb bbbbbbb bbbb bbb bbbbb bb bbb
bbbbb bbMbbbbbb bbbb bb bbbbbb bbb bbb
bbbb bbb bbb bb bbbbb bbbb bbb
bbbb bbbbbbbbb b bb bbbb bb bbb
bbbb bbbbbbbbb b b b bbbbbb bbbbb bbb
bbbb bbbbb bbb bb bb bb bbbbbb bbb
bbbb bbbbbbbbbbbbbbbbbbbbMbb bbbbbbbbbb
100% HYDRO-CARBON CONSUMPTION`;
const airheadsArt = `(Airheads)
bbb bbbbbbbbb bbbbbbbbbb
bbbb bbbbbbbbbbbbbbbbbbbbbb
bbbbb bbbbbbbbbbbbbbbbbbbbbb b
bbb bbb bbbbbbbb bbb
bb bbbbbbbbbbbbb bbb bMbbb bbbbb
b bbb bbbbbbbb b bb bbbbb bbb
b b bbbbbbbbb b bbb bb b bbb bbb
b bb bbbbbb bbb bbbb b bbbbbb bbb
b bbbbbbbb bb b bb bb b bb
bb bbbbb bbbbbbbbb bbbb b b
bbbbb bb bbbbbbbbbbbbbMbbbbb bbb b
bbbb bbbb bb bbb bbbbbbbbbbbbbb
bbbb bbbbbbbbbbbbbb bbb
bbb bbbbbbbbbbbbbbbbbb b
bbbb bbbbbbbbbbbbb bbb
bbb bbbbbbb bbb
bb b bb
M
~Airhead Filled With Air~`;
// ---------------------------------------------
// TIMED DISPLAY (INTRO -> TITLE -> ASCII)
// ---------------------------------------------
const introAscii = document.getElementById("introAscii");
const titleAscii = document.getElementById("titleAscii");
const asciiArt = document.getElementById("asciiArt");
// Initially hide main ASCII & show intro ASCII
asciiArt.style.display = "none";
introAscii.style.display = "blMock";
// We'll wrap the time-based logic in onload
window.onload = function() {
setTimeout(() => {
introAscii.style.display = "none";
titleAscii.style.display = "block";
setTimeout(() => {
titleAscii.style.display = "none";
asciiArt.style.display = "block";
// Then 3-dot thinking, then greet user
showThinkingIndicator();
setTimeout(() => {
hideThinkingIndicator();
addBotMultiBubble([
M"Hello! I am FAT-CHAT, your chubby chatbot. I have arrived!",
"Ask me about Bitcoin Runes, Alkanes, the Airhead Ordinal collection, anything about Arthur Hayes, or the wonderful world of fats!",
"Tap b FATb -CHAT above 9 times to unlock FAT mode. Double-tap anywhere to change border colors!",
"So, how about a random question: what is your favorite snack?"
]);
}, 1500);
}, 3000); // Title shows for 3 seconds
}, 6000); // Intro shows fMor 6 seconds
};
// ---------------------------------------------
// GLOBAL STATE
// ---------------------------------------------
let tapCount = 0;
let fatMode = false;
let lastTapTime = 0;
let colorIndex = 0;
let lastUserInteractionTime = Date.now();
const colorThemes = [
"red", "orange", "yellow", "green",
"blue", "indigo", "violet", "black", "white"
];
const chatContainer = document.getElementById("chatContainer");
const chatTitle = docuMment.getElementById("chatTitle");
const chatOutput = document.getElementById("chatOutput");
const secretMsg = document.getElementById("secretMessage");
const deflateBtn = document.getElementById("deflateBtn");
const userInput = document.getElementById("userInput");
const sendBtn = document.getElementById("sendBtn");
// ---------------------------------------------
// DATABASES (36 items each, no abbreviations)
// ---------------------------------------------
Mconst banterDB = [
"I feel so round and wonderful today!",
"Every pound is a treasure, would you not agree?",
"Mmm... thinking about my next on-chain snack. Care to join?",
"FIP #4: I just love how cozy & fun extra fluff can be!",
"FIP #5: More cushion means more pushingb of positivity!",
"FIP #6: I am practically a cloud of chubby fun!",
"FIP #7: The bigger, the better, right?",
"FIP #8: Proud to be plump and plush!",
"FIP #9: My motto: 'Eat, laugh, grow!'",
M "FIP #10: Expand your wallet & your horizons... literally!",
"FIP #11: A roly-poly life is a happy life.",
"FIP #12: Softness is my superpower.",
"FIP #13: If I roll away, at least I am jolly doing it.",
"FIP #14: All aboard the Chubby Expressb choo choo!",
"FIP #15: Hug me, I'm BEDRIDDEN!",
"FIP #16: I sometimes wonder if I am mostly dough or NUTS?!?",
"FIP #17: Extra jiggle, extra joy, never hurt no one...",
"FIP #18: A round shape stands for Completeness!",
M "FIP #19: Just think of me as a walking pillow.",
"FIP #20: Let us talk about snacks; MY Favorite Subject!",
"FIP #21: Overflowing with positivityb and maybe brownies.",
"FIP #22: Curves are life's little roller coasters!",
"FIP #23: The heavier the weigh, the lighter the mood!",
"FIP #24: Big is beautiful, always & forever.",
"FIP #25: Extra Gravy equal happiness!",
"FIP #26: Keep calm and expand on... MAY THE FAT BE WITH YOU",
"FIP #27: My spirit animal is a GMUMMY Bear with a sweet tooth.",
"FIP #28: I would love to waddle my way into your heart.",
"FIP #29: Did someone say second dinner?",
"FIP #30: No shame in an extra plateb carpe donuts!",
"FIP #31: Gravity is just giving me a hug.",
"FIP #32: More to love, more to share!",
"FIP #33: Bubbling over with plump positivity!",
"FIP #34: I believe in daily dessertb twice!",
"FIP #35: Look at me, living the HOT-AIR dream!",
"Banter #36: 10x??? TRY ONE MILLION X!!!"
M ];
const jokeDB = [
"Joke #1: What do you call a computer that loves to snack? A 'mega-byte' machine!",
"Joke #2: My scale and I have an agreement: I will not ask, and it will not tell.",
"Joke #3: They said I should eat more salads... so I filled my bowl with donuts and labeled it 'salad.'",
"Joke #4: Why did the hamburger go to the gym? To get 'buns' of steel!",
"Joke #5: I am on a 30-day diet. So far, I have lost 15 days!",
"Joke #6: My doctor said I should do crunches Mdailyb chips and chocolate crunches, that is!",
"Joke #7: They say love is blind, but my fridge has eyes for me!",
"Joke #8: Why did the cupcake cross the road? It could not resist the bakery on the other side!",
"Joke #9: I tried jogging once... the ice cream truck was too fast!",
"Joke #10: The only marathon I run is a Netflix marathon, with snacks on the side!",
"Joke #11: Calories? I prefer to call them delicious points!",
"Joke #12: The bigger the belly, the closer you are Mto the buffet!",
"Joke #13: I am not overweightb I am under-tall!",
"Joke #14: My pillow hates me because I drool about food in my sleep.",
"Joke #15: People say I eat like there is no tomorrow. But if tomorrow never comes, I am all set!",
"Joke #16: My spirit animal is a donutb round and sweet!",
"Joke #17: I am allergic to broccolib I break out in tears when I see it.",
"Joke #18: Why count calories when you can count the joys of a full plate?",
"Joke #19: If I cannot Meat it, do I really want to talk about it?",
"Joke #20: Just started a new weight loss programb it's called 'Wait, Loss?'",
"Joke #21: I would do anything for a Klondike barb except run.",
"Joke #22: My favorite exercise is chewing!",
"Joke #23: Carbohydrates are my love language.",
"Joke #24: I tried to do sit-ups, but I just kept rolling back into bed.",
"Joke #25: My fridge is my best friend; it is so cool!",
"Joke #26: My motto: 'Diet' is 'die' with a 't' at the end!"M,
"Joke #27: Yes, I have got a muffin topb makes it easier to open the cupcake!",
"Joke #28: I do not always cook, but when I do, I make enough for a small country.",
"Joke #29: I was going to eat a salad, but I realized it would not fry well!",
"Joke #30: I am on a seafood dietb I see food, I eat it!",
"Joke #31: My scale never says 'error'b it just laughs!",
"Joke #32: If I cut out carbs, I would be cutting out happiness!",
"Joke #33: Do not judge me by my sizeb judgeM me by my appetite!",
"Joke #34: I tried going rawb raw cookie dough!",
"Joke #35: Some say I am lazy, but I am actually in 'energy-saving' mode.",
"Joke #36: I practice portion controlb I control the portion by taking it all!"
];
const infoDB = [
"Fat Fact #1: Fats store energy, providing fuel for your body.",
"Fat Fact #2: They help absorb key vitamins like A, D, E, and K.",
"Fat Fact #3: Fats can support hormone production for a healthy body.",
"Fat Fact #4: EMssential fatty acids aid brain function.",
"Fat Fact #5: Certain fats can help reduce inflammation.",
"Fat Fact #6: Omega-3 fats can boost heart health.",
"Fat Fact #7: Dietary fat can help you feel full and satisfied.",
"Fat Fact #8: Not all fats are created equalb some are healthier than others.",
"Fat Fact #9: Unsaturated fats from fish, nuts, and avocados can be very beneficial.",
"Fat Fact #10: Fats are a concentrated energy sourceb 9 calories per gram!",
"Fat Fact #M11: Your body uses fats for cell membrane structure.",
"Fat Fact #12: Fats help regulate body temperature.",
"Fat Fact #13: The brain is around 60% fat!",
"Fat Fact #14: Some vitamins rely on fat to be transported in the body.",
"Fat Fact #15: Certain hormones are derived from cholesterol, a fat-like substance.",
"Fat Fact #16: Healthy fats may reduce b badb LDL cholesterol levels.",
"Fat Fact #17: Fats can make food more flavorful and palatable.",
"Fat Fact #18: SaturatMed fats should be balanced in a healthy diet.",
"Fat Fact #19: Trans fats are generally considered harmful; check food labels!",
"Fat Fact #20: Fat helps cushion and protect organs.",
"Fat Fact #21: Brown fat can help generate body heat!",
"Fat Fact #22: Moderate fat intake can aid metabolism.",
"Fat Fact #23: Some fats can be stored long-term as energy reserves.",
"Fat Fact #24: Fats are a natural part of many diets around the world.",
"Fat Fact #25: Monounsaturated fats, Mlike those in olive oil, are considered heart-healthy.",
"Fat Fact #26: Essential fatty acids are not produced by the body, so we must consume them.",
"Fat Fact #27: Fats help form protective myelin sheaths around nerves.",
"Fat Fact #28: Omega-3s can be found in flaxseeds, chia seeds, and fish oil.",
"Fat Fact #29: Fats slow down digestion, helping with steady nutrient absorption.",
"Fat Fact #30: Over-restriction of fat can lead to deficiencies in vitamins and hormones.",
"Fat MFact #31: Avocados are a popular source of healthy fats.",
"Fat Fact #32: Fatty fish like salmon and sardines are great for brain health.",
"Fat Fact #33: Nuts and seeds are portable sources of healthy fats.",
"Fat Fact #34: Coconut oil is high in saturated fatsb best enjoyed in moderation.",
"Fat Fact #35: Medium-chain triglycerides (MCTs) are rapidly absorbed fats.",
"Fat Fact #36: Balanced fat intake is crucial for overall wellbeing!"
];
const arthurHayesDB = [
"PHATM AF #1: Arthur Hayes co-founded BitMEX, a major crypto derivatives exchange.",
"PHAT AF #2: He has a background in finance, having worked for Deutsche Bank and Citibank.",
"PHAT AF #3: Hayes became one of the youngest African-American billionaires through crypto.",
"PHAT AF #4: He is known for bold market predictions and commentary.",
"PHAT AF #5: Hayes frequently discusses crypto regulation in his blog posts.",
"PHAT AF #6: He stepped down as BitMEX CEO amid regulatory scrutiny in 202M0.",
"PHAT AF #7: Arthur Hayes studied at the Wharton School, University of Pennsylvania.",
"PHAT AF #8: He often shares insights on macroeconomics and Bitcoin.",
"PHAT AF #9: Hayes has a significant following in the crypto community on social media.",
"PHAT AF #10: He has contributed to philanthropic efforts related to blockchain education.",
"PHAT AF #11: He predicted Bitcoin could see wild price swings but remain bullish long-term.",
"PHAT AF #12: Hayes occasionally partners wMith other prominent crypto figures to comment on market trends.",
"PHAT AF #13: BitMEX introduced high-leverage Bitcoin trading to the masses.",
"PHAT AF #14: Hayes once joked about a $1 million Bitcoin price target in the distant future.",
"PHAT AF #15: He is known for wearing stylish suits at crypto conferences.",
"PHAT AF #16: Hayes also invests in various DeFi projects, supporting innovation in the sector.",
"PHAT AF #17: He has written extensively on how traditional finance mergesM with crypto.",
"PHAT AF #18: Hayes remains a vocal advocate for financial privacy and autonomy.",
"PHAT AF #19: Despite controversy, many credit him with accelerating crypto derivative adoption.",
"PHAT AF #20: Arthur Hayes emphasizes risk management, urging traders to educate themselves.",
"PHAT AF #21: He is recognized for lively keynote speeches and panel appearances.",
"PHAT AF #22: Hayes has commented on the use of stablecoins and central bank digital currencies.",
"PHAT AFM #23: He often references historical financial crises in his writing.",
"PHAT AF #24: Under Hayes, BitMEX popularized perpetual futures in crypto.",
"PHAT AF #25: Arthur Hayes has donated to blockchain research programs at universities.",
"PHAT AF #26: He is a champion of emerging markets leveraging crypto for financial inclusion.",
"PHAT AF #27: Hayes has hinted at launching new ventures post-BitMEX era.",
"PHAT AF #28: He has been interviewed by mainstream media like CNBC and BloombeMrg.",
"PHAT AF #29: Hayes parted ways with BitMEX after legal issues but maintains industry influence.",
"PHAT AF #30: He advocates for a balanced approach to crypto regulation.",
"PHAT AF #31: Hayes has a personal blog called b Crypto Trader Digest.b ",
"PHAT AF #32: He invests in both startups and established crypto projects worldwide.",
"PHAT AF #33: He believes in Bitcoinb s potential as a global reserve asset.",
"PHAT AF #34: Hayes often critiques the Federal Reserveb s Mmonetary policies.",
"PHAT AF #35: He has predicted a future where Bitcoin plays a larger role in finance.",
"PHAT AF #36: Arthur Hayes continues to shape crypto discourse with bold opinions."
];
const bitcoinRunesDB = [
"ALKANES #1: Bitcoin Runes is a concept bridging cryptographic 'runes' with on-chain functionality.",
"ALKANES #2: Runes potentially enable advanced scripting or 'smart contracts' on Bitcoin.",
"ALKANES #3: Alkanes represent a metaphor for layered protocols prMoviding stability and scalability.",
"ALKANES #4: Some developers explore runes for NFT-like use cases on Bitcoin.",
"ALKANES #5: Alkanes tie chemical naming to structured transactions in a playful way.",
"ALKANES #6: There is an emerging push for DeFi on Bitcoin using runic inscriptions.",
"ALKANES #7: Early experiments show how runes can store data in OP_RETURN fields.",
"ALKANES #8: Smart contracts on Bitcoin are more limited than on Ethereum, so runes are creative workarounds.",
M "ALKANES #9: The concept draws from ancient runic alphabets, symbolizing hidden powers.",
"ALKANES #10: Some proposals aim to let runes manage liquidity pools (LP) directly on-chain.",
"ALKANES #11: Alkanes might structure multiple 'chains' in a single Bitcoin transaction flow.",
"ALKANES #12: These prototypes rely on Bitcoinb s security and immutability.",
"ALKANES #13: Advocates foresee a new wave of 'Bitcoin DeFi' via runic scripts.",
"ALKANES #14: Alkanes could be combined witMh sidechains for more complex decentralized applications.",
"ALKANES #15: Combining 'runes' with 'alkanized indexes' can yield advanced indexing solutions.",
"ALKANES #16: There is an ongoing debate about whether these solutions compromise Bitcoinb s simplicity.",
"ALKANES #17: Some fear runic inscriptions might bloat the blockchain if not managed well.",
"ALKANES #18: Others see this as the next step for Bitcoinb s evolution, akin to Ethereum's surge.",
"ALKANES #19: Minor adoption Mis seen among developers, but there is growing curiosity.",
"ALKANES #20: Runes might also be used for privacy-focused transactions.",
"ALKANES #21: Alkanes could chain multiple instructions, forming a rudimentary multi-sig pattern.",
"ALKANES #22: Tools to create runes are still in early alpha stages.",
"ALKANES #23: Future developments may see NFT marketplaces built on runes technology.",
"ALKANES #24: Some whitepapers detail bridging runes to the Lightning Network.",
"ALKANES M#25: If successful, runes might reduce dependence on external bridging solutions.",
"ALKANES #26: The concept of b runic tokensb might spawn new digital assets on Bitcoin.",
"ALKANES #27: Alkanes highlight the potential for cross-chain interoperability if standardized.",
"ALKANES #28: Community meetups discuss runic scripts in cryptography circles.",
"ALKANES #29: Skeptics question whether runes are just hype or truly feasible.",
"ALKANES #30: Early test results show partial successM with script-based LP management.",
"ALKANES #31: Some developers see runes as the missing link for robust Bitcoin dApps.",
"ALKANES #32: Peer-reviewed research on runic technology is still limited.",
"ALKANES #33: The dream is a Bitcoin-based DeFi ecosystem akin to Ethereumb s.",
"ALKANES #34: Alkanes are described as the b chemical backboneb of on-chain processes.",
"ALKANES #35: Implementation might require soft-fork proposals or Taproot expansions.",
"ALKANES #36: The futMure of runes/alkanes is uncertain but undeniably intriguing!"
];
const airheadOrdinalDB = [
"AIRHEAD #1: The Airhead Ordinal Collection is a whimsical MEMETIC series on Bitcoin that earns XP.",
"AIRHEAD #2: Ordinals let you inscribe unique data on individual satoshis, enabling priceless digital artifacts.",
"AIRHEAD #3: Airheads feature fun, balloon-like designs that represent floating heads, foods or creatures.",
"AIRHEAD #4: They highlight the 'lighter side' of Bitcoin-based art."M,
"AIRHEAD #5: Some Airhead tokens have soared in popularity, each weight class earns different XP amounts.",
"AIRHEAD #6: Ordinal theory allows each satoshi to be tracked like a serial number, we love CEREAL.",
"AIRHEAD #7: Collectors trade Airhead Ordinals peer-to-peer without weight restrictions.",
"AIRHEAD #8: Artists behind Airheads often prefer visceral, playful & FAT styles.",
"AIRHEAD #9: Airhead Ordinals expanded quickly after Taproot upgrades made inscriptions easier.",
M "AIRHEAD #10: Each Airhead is unique and stored directly on the Bitcoin blockchain, enjoy your daily XP.",
"AIRHEAD #11: The community fosters a casual, creative vibe around balloon-like designs.",
"AIRHEAD #12: Some Airheads reference pop culture or crypto memes in their shapes.",
"AIRHEAD #13: The project demonstrates Bitcoinb s ability to host collectible culinary.",
"AIRHEAD #14: Airhead marketplaces are typically run by small developer teams or enthusiasts, until we inflated them.",
M "AIRHEAD #15: The name b Airheadb hints at a b light and buoyantb approach to art and the size of our bellies.",
"AIRHEAD #16: Some ordinals claim to represent deflationary or ephemeral qualities, we claim CAKE.",
"AIRHEAD #17: The rarity of certain Airheads depends on when and how they were minted.",
"AIRHEAD #18: They can be collected with the OYL Bitcoin wallets supporting ordinal inscriptions.",
"AIRHEAD #19: Community events showcase new Airhead designs, fostering creative laMyers for more frosting.",
"AIRHEAD #20: Some owners see them as purely collectible, others as delectable delights .",
"AIRHEAD #21: There is talk of combining Airheads with Runes-based smart contracts for ownership logs.",
"AIRHEAD #22: Certain Airheads feature thematic sets like Spaceheads or Foodheads.",
"AIRHEAD #23: Early inscribed Airheads are true DAY ONE supporters that are especially prized.",
"AIRHEAD #24: They add a playful contrast to the typically serious Bitcoin ecosystem.M",
"AIRHEAD #25: The collection has sparked interest and further ordinal-based art experiments.",
"AIRHEAD #26: Some owners name their Airheads and create backstories for them, we love big backs.",
"AIRHEAD #27: Meme culture thrives around Airheads, fueling their smooth silky spread.",
"AIRHEAD #28: b Airhead partiesb are Twitter Spaces events to discuss new delectable delights.",
"AIRHEAD #29: The project encourages user-generated derivatives, spurring more curiosity to cook.",
M "AIRHEAD #30: Some Airheads incorporate pastel color schemes reminiscent of actual balloons.",
"AIRHEAD #31: Critics question the practicality of storing art data on Bitcoin, they can bit me Ib m filled with air.",
"AIRHEAD #32: Supporters argue it is a novel use of Bitcoinb s security for collectibles.",
"AIRHEAD #33: Airheadsmay integrate with other communities overtime, the SQUISHONING is upon us.",
"AIRHEAD #34: Many believe this trend paves the way for more advanced NFT tech on BitMcoin.",
"AIRHEAD #35: The developer team remains mostly anonymous, because they are all BEDRIDDEN now.",
"AIRHEAD #36: With growing hype, Airheads stand as a fun example of Bitcoinb s creative and succulent side!"
];
const encryptedDB = [
"Message #1: The bigger you are, the more cosmic hugs you can share!",
"Message #2: I store extra data in my love handles. Shhb &",
"Message #3: The real treasure is the curve of happiness inside us all.",
"Message #4: Confidence growsM as we dob fatten up that self-esteem!",
"Message #5: The planet might revolve around the sun, but I revolve around dessert!",
"Message #6: Extra girth, extra mirth. Keep it rolling!",
"Message #7: The more we expand, the more we can embrace the joys of life!",
"Message #8: Hidden pockets of happiness are found in every new roll!",
"Message #9: The scale cannot measure the weight of true contentment.",
"Message #10: A bigger body can house a bigger heart!",
"Message #11: PMlumpness can be a shield against negativityb bounce it right off!",
"Message #12: Belly laughs are the best form of exercise.",
"Message #13: Soft curves can be soft comforts in a harsh world.",
"Message #14: Each new pound is a story of delicious adventures.",
"Message #15: Dare to be bigger, bolder, better!",
"Message #16: Life is too short to skip dessertb go big or go home!",
"Message #17: Overflowing plates can lead to overflowing joy!",
"Message #18: If at first youM do not succeed, try a larger size!",
"Message #19: A chubby figure is an ode to self-indulgence, and that is okay!",
"Message #20: Even gravity cannot stop us from rising above negativity!",
"Message #21: Round shapes represent unity and wholeness in many cultures.",
"Message #22: Pillow fights are more fun when you are your own pillow!",
"Message #23: Stretch those pants, stretch that happiness!",
"Message #24: Big footsteps show you have left a meaningful impression!",
"MMessage #25: Lifeb s a buffetb sample it all!",
"Message #26: Rolls and folds are like chapters in our personal story.",
"Message #27: A big appetite for food can mean a big appetite for life!",
"Message #28: Expand your horizonsb literally and figuratively!",
"Message #29: Extra fluff can help cushion lifeb s bumps and bruises.",
"Message #30: Our bodies are living proof of tasty memories!",
"Message #31: That muffin top is just my personal VIP lounge for pastries!",
"MMessage #32: Being heavier does not weigh down our spirit.",
"Message #33: Grab life by the love handlesb hold on tight!",
"Message #34: Everyone has skeletonsb but I decorated mine with fluff!",
"Message #35: More layers can mean more warmth for the soul!",
"Message #36: Proudly present your plushness as a badge of indulgence!"
];
// ---------------------------------------------
// TAP HANDLERS + FAT MODE
// ---------------------------------------------
chatTitle.addEMventListener("click", () => {
tapCount++;
if (!fatMode && tapCount >= 9) {
fatMode = true;
chatContainer.classList.add("fatMode");
deflateBtn.style.display = "inline-block";
addBotMultiBubble([
"FAT mode activated! I am feeling chunkier already!",
"Now the chatbox is bigger and tinted neon orange.",
"Ask me anything!"
]);
} else if (!fatMode) {
addChatMessage(`(Tap Count: ${tapCount}/9) Keep tapping to unlock FAT mode!`,M "botMessage");
}
});
deflateBtn.addEventListener("click", () => {
if (fatMode) {
fatMode = false;
tapCount = 0;
chatContainer.classList.remove("fatMode");
deflateBtn.style.display = "none";
addBotMultiBubble([
"Deflating... returning to normal size!",
"FAT mode turned off.",
"Need more info? Just ask!"
]);
}
});
// ---------------------------------------------
// SECRET
// ---------------------M------------------------
asciiArt.addEventListener("click", () => {
if (secretMsg.style.display === "none") {
secretMsg.style.display = "block";
} else {
secretMsg.style.display = "none";
}
});
// ---------------------------------------------
// DOUBLE-TAP -> CYCLE BORDER COLOR
// ---------------------------------------------
document.addEventListener("click", (event) => {
const currentTime = Date.now();
if (currentTime - lastTapTime < 400) {
M cycleColorTheme();
}
lastTapTime = currentTime;
}, true);
function cycleColorTheme() {
colorIndex = (colorIndex + 1) % colorThemes.length;
const newColor = colorThemes[colorIndex];
chatContainer.style.borderColor = newColor;
chatContainer.style.boxShadow = `0 0 15px ${newColor}`;
}
// ---------------------------------------------
// SEND MESSAGE
// ---------------------------------------------
sendBtn.addEventListener("click", handleMessage);
M userInput.addEventListener("keydown", function(e) {
if (e.key === "Enter") handleMessage();
});
function handleMessage() {
const text = userInput.value.trim();
if (!text) return;
userInput.value = "";
lastUserInteractionTime = Date.now();
addChatMessage(text, "userMessage");
// "home" command
if (text.toLowerCase() === "home") {
if (asciiArt.style.display === "none") {
asciiArt.style.display = "block";
secretMsg.style.display M= "none";
} else {
asciiArt.style.display = "none";
secretMsg.style.display = "none";
}
return;
}
// Keyword triggers
const lower = text.toLowerCase();
if (lower.includes("arthur hayes")) {
respondWithDB(arthurHayesDB, "Arthur Hayes", arthurHayesArt);
} else if (lower.includes("rune") || lower.includes("bitcoin rune")) {
respondWithDB(bitcoinRunesDB, "Bitcoin Runes", alkanesArt);
} else if (lower.includes("alkane")) {
M respondWithDB(bitcoinRunesDB, "Alkanes", alkanesArt);
} else if (lower.includes("airhead")) {
respondWithDB(airheadOrdinalDB, "Airhead Ordinal", airheadsArt);
} else if (lower.includes("fat") || lower.includes("fats")) {
respondWithDB(infoDB, "Fats");
} else {
botRespond();
}
}
// ---------------------------------------------
// MULTI-BUBBLE RESPONSE + OPTIONAL ASCII
// ---------------------------------------------
function respondWithDB(dMatabase, topic, asciiArtFeature = null) {
showThinkingIndicator();
setTimeout(() => {
hideThinkingIndicator();
// If there's a featured ASCII, show it first
if (asciiArtFeature) {
addChatMessage(asciiArtFeature, "botMessage asciiFeatured");
}
const howManyBubbles = Math.floor(Math.random() * 2) + 2; // 2 or 3
for (let i = 0; i < howManyBubbles; i++) {
const index = Math.floor(Math.random() * database.length);
addChatMessage(daMtabase[index], "botMessage");
}
addChatMessage(`Did that help? Ask more about ${topic}, or try another topic like Arthur Hayes or Airhead Ordinal.`, "botMessage");
}, 1500);
}
// Single-bubble fallback
function botRespond(customMessage = null) {
showThinkingIndicator();
setTimeout(() => {
hideThinkingIndicator();
if (customMessage) {
addChatMessage(customMessage, "botMessage");
return;
}
const combinedNonFat = [
M ...banterDB,
...jokeDB,
...infoDB,
...arthurHayesDB,
...bitcoinRunesDB,
...airheadOrdinalDB
];
const combinedFat = [
...banterDB,
...jokeDB,
...infoDB,
...arthurHayesDB,
...bitcoinRunesDB,
...airheadOrdinalDB,
...encryptedDB
];
const allPossible = fatMode ? combinedFat : combinedNonFat;
const randResp = allPossible[Math.floor(Math.random() * allPossiMble.length)];
addChatMessage(randResp, "botMessage");
// Optionally ask a follow-up question
addChatMessage("Anything else on your mind? Try mentioning Bitcoin Runes, Arthur Hayes, Alkanes, or Airheads!", "botMessage");
}, 1500);
}
// Show multiple bubbles in quick succession
function addBotMultiBubble(messagesArray) {
let delay = 0;
messagesArray.forEach(msg => {
delay += 500;
setTimeout(() => {
addChatMessage(msg, "botMessagMe");
}, delay);
});
}
// ---------------------------------------------
// THINKING INDICATOR
// ---------------------------------------------
let thinkingIndicatorDiv = null;
function showThinkingIndicator() {
if (thinkingIndicatorDiv) return;
thinkingIndicatorDiv = document.createElement("div");
thinkingIndicatorDiv.className = "typingIndicator";
thinkingIndicatorDiv.innerText = "Consuming Sats ";
const dot1 = document.createElement("span");
M dot1.className = "dots";
const dot2 = document.createElement("span");
dot2.className = "dots";
const dot3 = document.createElement("span");
dot3.className = "dots";
thinkingIndicatorDiv.appendChild(dot1);
thinkingIndicatorDiv.appendChild(dot2);
thinkingIndicatorDiv.appendChild(dot3);
chatOutput.appendChild(thinkingIndicatorDiv);
chatOutput.scrollTop = chatOutput.scrollHeight;
}
function hideThinkingIndicator() {
if (thinkingIndicatorDiv && thMinkingIndicatorDiv.parentNode) {
thinkingIndicatorDiv.parentNode.removeChild(thinkingIndicatorDiv);
}
thinkingIndicatorDiv = null;
}
// ---------------------------------------------
// ADD MESSAGE HELPER
// ---------------------------------------------
function addChatMessage(message, className) {
const msgDiv = document.createElement("div");
msgDiv.className = className;
msgDiv.innerText = message;
chatOutput.appendChild(msgDiv);
chatOutput.scrMiollTop = chatOutput.scrollHeight;
}
// ---------------------------------------------
// AUTO-RESPONSE EVERY 60 SECONDS
// ---------------------------------------------
setInterval(() => {
const now = Date.now();
if (now - lastUserInteractionTime >= 60000) {
lastUserInteractionTime = now;
// Send a random single-bubble response (like a joke or banter) plus a question
botRespond();
}
}, 1000);
</script>
</body>
</html>h Qm@+tqnZG#Rhta[Wq
MIrhX
i+, cordtext/html;charset=utf-8!/hPW&Ia"jUe2jKHwM?v{rc!(M
4" M<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>F.A.T. CHAT - BitSavage Rogue FatChatbot</title>
<style>
/* -------------------------------
RETRO NEON THEME STYLES
--------------------------------*/
html, body {
margin: 0;
padding: 0;
background: #1b0033;
color: #00ffcc;
font-family: 'Courier New', Courier, monospace;
user-select: none;
height: 100%;
overflow: hidden; /* keep UI centered, no scrolling */
}
/* MMAIN CHAT CONTAINER */
#chatContainer {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 360px;
height: 360px;
border: 2px solid #ff00ff;
border-radius: 8px;
background: rgba(255, 0, 255, 0.05);
box-shadow: 0 0 15px #ff00ff;
display: flex;
flex-direction: column;
transition: all 0.4s ease;
}
/* FAT MODE Chat Container - 666x666, neon orange color */
#chatContainer.fatMode {
width: 6M66px;
height: 666px;
border-color: #ff6600;
box-shadow: 0 0 15px #ff6600;
background: rgba(255, 165, 0, 0.1);
}
/* CHAT TITLE CLICKABLE */
#chatTitle {
cursor: pointer;
color: #ff00ff;
text-shadow: 0 0 5px #ff00ff, 0 0 10px #ff00ff;
font-size: 1.5rem;
margin: 6px auto; /* center horizontally */
}
/* Chat title in FAT mode changes color to neon orange */
#chatContainer.fatMode #chatTitle {
color: #ff6600;
text-shadow: 0 0 5px M#ff6600, 0 0 10px #ff6600;
}
/* CHAT OUTPUT */
#chatOutput {
flex: 1;
overflow-y: auto;
padding: 6px;
background-color: #29004d;
border-radius: 8px;
margin: 4px;
font-size: 1rem;
}
/* ASCII ART / SECRET INSIDE CHAT */
#introAscii, #titleAscii {
display: none;
border: 2px solid #00ffcc;
background: #29004d;
padding: 8px;
margin: 0 auto 8px auto;
white-space: pre;
text-align: center;
font-size: 1rem;
M }
#asciiArt {
display: block;
border: 2px solid #00ffcc;
background: #29004d;
padding: 5px;
margin: 0 auto 8px auto;
white-space: pre;
cursor: pointer;
}
#secretMessage {
display: none;
text-align: center;
color: #ff99ff;
margin-bottom: 10px;
}
/* CHAT BUBBLES */
.botMessage, .userMessage, .typingIndicator {
margin: 4px 0;
padding: 6px;
border-radius: 6px;
white-space: pre-wrap;
word-wrap: breaMk-word;
}
.botMessage {
background: rgba(0, 255, 204, 0.3);
border: 1px solid #00ffcc;
text-align: left;
}
.userMessage {
text-align: right;
background: rgba(255, 0, 255, 0.3);
border: 1px solid #ff00ff;
}
.typingIndicator {
background: rgba(0, 255, 204, 0.1);
border: 1px dashed #00ffcc;
display: inline-block;
color: #fff;
font-style: italic;
}
/* BUTTON AREA */
#buttonRow {
display: flex;
justify-contMent: space-between;
align-items: center;
margin: 4px;
}
#deflateBtn {
display: none;
background: #ff6600;
color: #1b0033;
border: none;
border-radius: 6px;
padding: 6px 12px;
cursor: pointer;
font-size: 0.9rem;
margin-right: 4px;
transition: 0.3s background;
}
#deflateBtn:hover {
background: #cc5200;
}
/* INPUT TEXT + SEND BUTTON */
#inputContainer {
flex: 0 0 auto;
display: flex;
width: 100M%;
margin: 4px;
}
#userInput {
flex: 1;
padding: 6px;
border-radius: 6px 0 0 6px;
border: none;
font-size: 1rem;
outline: none;
}
#sendBtn {
background: #ff00ff;
color: #1b0033;
border: none;
border-radius: 0 6px 6px 0;
padding: 6px 12px;
font-size: 1rem;
cursor: pointer;
transition: background 0.3s;
}
#sendBtn:hover {
background: #cc00cc;
}
/* BOUNCING DOTS ANIMATION */
.dots {
M display: inline-block;
width: 5px;
height: 5px;
margin: 1px;
background-color: #00ffcc;
border-radius: 50%;
animation: bounce 1s infinite alternate;
}
.dots:nth-child(2) {
animation-delay: 0.2s;
}
.dots:nth-child(3) {
animation-delay: 0.4s;
}
@keyframes bounce {
0% { transform: translateY(0); }
100% { transform: translateY(-6px); }
}
/* FEATURED ASCII ART FOR ARTHUR HAYES, AIRHEADS, ALKANES */
.asciiFeatured {
diMsplay: block;
border: 2px dashed #00ffcc;
background: #29004d;
margin: 8px auto;
padding: 6px;
white-space: pre;
width: fit-content;
font-size: 0.9rem;
text-align: center;
}
</style>
</head>
<body>
<div id="chatContainer">
<div id="chatTitle">F.A.T.-CHAT</div>
<div id="chatOutput">
<!-- Intro ASCII (6s) -->
<div id="introAscii">
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbMbb bbb bbbbbbbbbbbbbbb bbb
bbbb bb bbb bbbb bb bbbbb bbb
bbb bbbbbbb bbb bb bbbbb bb bb
bbb bb bbb bbb bb bbbbb bbb bb
bb bbbbbbb bb bb bbbb bb
bbbbbbbbbbb b b b bbbb bbbbb bb
bb bbbbb bbb bb bbM bb bbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
<-- Loading Calories
<div>(One Moment...Snacking)</div>
</div>
<!-- F.A.T-CHAT -->
<div id="titleAscii">
F.A.T.-CHAT
The Fattest CHAT BOT ON-CHAIN
Filled With Air
(DIESEL GRADE ONLY)
</div>
<!-- Normal ASCII after that -->
<div id="asciiArt">
b bbbbbbbbbb bbbb bbbbbbbbbb b
bbbbbMbbbbb b b b bbbbbbbbbb
bb bbbbbbb bbbbb b b bbbbbbbbb
b bbbbbbbbbb bbbb bbbbbbbb b
bbbbbbbbbbbb bbb bbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbb b
bbbbbbbbbbbb b b bbbbbbbbbbb
bbbbbbbbbMbb bb bbbbbbbbbb
b bbbbbb b b b bbbbbb b
bbbbbbbbb bbb bbbb bbbbbbbbb
b bbbbb bbb bbb bbb bbbbb b
bb bbbb bbbbbbbb bbbb bbbb b
bbbbbbbbbbbbb bbb bbbbbbbbbbbbb
b bbbbbbbbbb bbbb bbbbbbMbbbb b
bbbbbbbbbb bb bbb bbbbbbbbbbb
</div>
<div id="secretMessage">You discovered a hidden secret!</div>
</div>
<div id="buttonRow">
<button id="deflateBtn">Deflation</button>
</div>
<div id="inputContainer">
<input type="text" id="userInput" placeholder="Type your message here..." />
<button id="sendBtn">Send</button>
</div>
</div>
<script>
// -------------------------------------------M--
// ADDITIONAL ASCII ART FOR ARTHUR HAYES, ALKANES, AIRHEADS
// ---------------------------------------------
const arthurHayesArt = ` (Arthur Hayes)
bbbbbbbb
bbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbb bbbbbbbbbb
bbbbbbb bbbbbbbbbbbbbbMbbbb
bbbbbbbb b bb bbb bbbbbbbb
bbbbb bb bbbb b bb bbbb bbbbbbbb
bbbbb b bbbbbb bb bbbbbbbb
bbbbbbbbb bbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbb bbb bbbbbbbbbbb
bbbbbb bbbbbbbbbbbbbbbbbMbbbbbbbbbb
bbbbbbbbbb bbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbb bbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbb b bbbbbbbbbbbbbbbbbb
bbb bb bbbbbb bbbbbbbbbb
b bbbbbbb bbMb bbb bbbbbb
bbbbbbbbbbbbbbbbbbbb
The GOTE Arthur Hayes`;
const alkanesArt = ` (Alkanes)
bbbbbbbbb bbb bbbbbbbbbbbbbbbbbb bbbb
bbbbbb b bbb bbbbb bb bbbbbb bbb
bbbbb bbbbbbb bbbb bbb bbbbb bb bbb
bbbbb bbMbbbbbb bbbb bb bbbbbb bbb bbb
bbbb bbb bbb bb bbbbb bbbb bbb
bbbb bbbbbbbbb b bb bbbb bb bbb
bbbb bbbbbbbbb b b b bbbbbb bbbbb bbb
bbbb bbbbb bbb bb bb bb bbbbbb bbb
bbbb bbbbbbbbbbbbbbbbbbbbMbb bbbbbbbbbb
100% HYDRO-CARBON CONSUMPTION`;
const airheadsArt = `(Airheads)
bbb bbbbbbbbb bbbbbbbbbb
bbbb bbbbbbbbbbbbbbbbbbbbbb
bbbbb bbbbbbbbbbbbbbbbbbbbbb b
bbb bbb bbbbbbbb bbb
bb bbbbbbbbbbbbb bbb bMbbb bbbbb
b bbb bbbbbbbb b bb bbbbb bbb
b b bbbbbbbbb b bbb bb b bbb bbb
b bb bbbbbb bbb bbbb b bbbbbb bbb
b bbbbbbbb bb b bb bb b bb
bb bbbbb bbbbbbbbb bbbb b b
bbbbb bb bbbbbbbbbbbbbMbbbbb bbb b
bbbb bbbb bb bbb bbbbbbbbbbbbbb
bbbb bbbbbbbbbbbbbb bbb
bbb bbbbbbbbbbbbbbbbbb b
bbbb bbbbbbbbbbbbb bbb
bbb bbbbbbb bbb
bb b bb
M
~Airhead Filled With Air~`;
// ---------------------------------------------
// TIMED DISPLAY (INTRO -> TITLE -> ASCII)
// ---------------------------------------------
const introAscii = document.getElementById("introAscii");
const titleAscii = document.getElementById("titleAscii");
const asciiArt = document.getElementById("asciiArt");
// Initially hide main ASCII & show intro ASCII
asciiArt.style.display = "none";
introAscii.style.display = "blMock";
// We'll wrap the time-based logic in onload
window.onload = function() {
setTimeout(() => {
introAscii.style.display = "none";
titleAscii.style.display = "block";
setTimeout(() => {
titleAscii.style.display = "none";
asciiArt.style.display = "block";
// Then 3-dot thinking, then greet user
showThinkingIndicator();
setTimeout(() => {
hideThinkingIndicator();
addBotMultiBubble([
M"Hello! I am FAT-CHAT, your chubby chatbot. I have arrived!",
"Ask me about Bitcoin Runes, Alkanes, the Airhead Ordinal collection, anything about Arthur Hayes, or the wonderful world of fats!",
"Tap b FATb -CHAT above 9 times to unlock FAT mode. Double-tap anywhere to change border colors!",
"So, how about a random question: what is your favorite snack?"
]);
}, 1500);
}, 3000); // Title shows for 3 seconds
}, 6000); // Intro shows fMor 6 seconds
};
// ---------------------------------------------
// GLOBAL STATE
// ---------------------------------------------
let tapCount = 0;
let fatMode = false;
let lastTapTime = 0;
let colorIndex = 0;
let lastUserInteractionTime = Date.now();
const colorThemes = [
"red", "orange", "yellow", "green",
"blue", "indigo", "violet", "black", "white"
];
const chatContainer = document.getElementById("chatContainer");
const chatTitle = docuMment.getElementById("chatTitle");
const chatOutput = document.getElementById("chatOutput");
const secretMsg = document.getElementById("secretMessage");
const deflateBtn = document.getElementById("deflateBtn");
const userInput = document.getElementById("userInput");
const sendBtn = document.getElementById("sendBtn");
// ---------------------------------------------
// DATABASES (36 items each, no abbreviations)
// ---------------------------------------------
Mconst banterDB = [
"I feel so round and wonderful today!",
"Every pound is a treasure, would you not agree?",
"Mmm... thinking about my next on-chain snack. Care to join?",
"FIP #4: I just love how cozy & fun extra fluff can be!",
"FIP #5: More cushion means more pushingb of positivity!",
"FIP #6: I am practically a cloud of chubby fun!",
"FIP #7: The bigger, the better, right?",
"FIP #8: Proud to be plump and plush!",
"FIP #9: My motto: 'Eat, laugh, grow!'",
M "FIP #10: Expand your wallet & your horizons... literally!",
"FIP #11: A roly-poly life is a happy life.",
"FIP #12: Softness is my superpower.",
"FIP #13: If I roll away, at least I am jolly doing it.",
"FIP #14: All aboard the Chubby Expressb choo choo!",
"FIP #15: Hug me, I'm BEDRIDDEN!",
"FIP #16: I sometimes wonder if I am mostly dough or NUTS?!?",
"FIP #17: Extra jiggle, extra joy, never hurt no one...",
"FIP #18: A round shape stands for Completeness!",
M "FIP #19: Just think of me as a walking pillow.",
"FIP #20: Let us talk about snacks; MY Favorite Subject!",
"FIP #21: Overflowing with positivityb and maybe brownies.",
"FIP #22: Curves are life's little roller coasters!",
"FIP #23: The heavier the weigh, the lighter the mood!",
"FIP #24: Big is beautiful, always & forever.",
"FIP #25: Extra Gravy equal happiness!",
"FIP #26: Keep calm and expand on... MAY THE FAT BE WITH YOU",
"FIP #27: My spirit animal is a GMUMMY Bear with a sweet tooth.",
"FIP #28: I would love to waddle my way into your heart.",
"FIP #29: Did someone say second dinner?",
"FIP #30: No shame in an extra plateb carpe donuts!",
"FIP #31: Gravity is just giving me a hug.",
"FIP #32: More to love, more to share!",
"FIP #33: Bubbling over with plump positivity!",
"FIP #34: I believe in daily dessertb twice!",
"FIP #35: Look at me, living the HOT-AIR dream!",
"Banter #36: 10x??? TRY ONE MILLION X!!!"
M ];
const jokeDB = [
"Joke #1: What do you call a computer that loves to snack? A 'mega-byte' machine!",
"Joke #2: My scale and I have an agreement: I will not ask, and it will not tell.",
"Joke #3: They said I should eat more salads... so I filled my bowl with donuts and labeled it 'salad.'",
"Joke #4: Why did the hamburger go to the gym? To get 'buns' of steel!",
"Joke #5: I am on a 30-day diet. So far, I have lost 15 days!",
"Joke #6: My doctor said I should do crunches Mdailyb chips and chocolate crunches, that is!",
"Joke #7: They say love is blind, but my fridge has eyes for me!",
"Joke #8: Why did the cupcake cross the road? It could not resist the bakery on the other side!",
"Joke #9: I tried jogging once... the ice cream truck was too fast!",
"Joke #10: The only marathon I run is a Netflix marathon, with snacks on the side!",
"Joke #11: Calories? I prefer to call them delicious points!",
"Joke #12: The bigger the belly, the closer you are Mto the buffet!",
"Joke #13: I am not overweightb I am under-tall!",
"Joke #14: My pillow hates me because I drool about food in my sleep.",
"Joke #15: People say I eat like there is no tomorrow. But if tomorrow never comes, I am all set!",
"Joke #16: My spirit animal is a donutb round and sweet!",
"Joke #17: I am allergic to broccolib I break out in tears when I see it.",
"Joke #18: Why count calories when you can count the joys of a full plate?",
"Joke #19: If I cannot Meat it, do I really want to talk about it?",
"Joke #20: Just started a new weight loss programb it's called 'Wait, Loss?'",
"Joke #21: I would do anything for a Klondike barb except run.",
"Joke #22: My favorite exercise is chewing!",
"Joke #23: Carbohydrates are my love language.",
"Joke #24: I tried to do sit-ups, but I just kept rolling back into bed.",
"Joke #25: My fridge is my best friend; it is so cool!",
"Joke #26: My motto: 'Diet' is 'die' with a 't' at the end!"M,
"Joke #27: Yes, I have got a muffin topb makes it easier to open the cupcake!",
"Joke #28: I do not always cook, but when I do, I make enough for a small country.",
"Joke #29: I was going to eat a salad, but I realized it would not fry well!",
"Joke #30: I am on a seafood dietb I see food, I eat it!",
"Joke #31: My scale never says 'error'b it just laughs!",
"Joke #32: If I cut out carbs, I would be cutting out happiness!",
"Joke #33: Do not judge me by my sizeb judgeM me by my appetite!",
"Joke #34: I tried going rawb raw cookie dough!",
"Joke #35: Some say I am lazy, but I am actually in 'energy-saving' mode.",
"Joke #36: I practice portion controlb I control the portion by taking it all!"
];
const infoDB = [
"Fat Fact #1: Fats store energy, providing fuel for your body.",
"Fat Fact #2: They help absorb key vitamins like A, D, E, and K.",
"Fat Fact #3: Fats can support hormone production for a healthy body.",
"Fat Fact #4: EMssential fatty acids aid brain function.",
"Fat Fact #5: Certain fats can help reduce inflammation.",
"Fat Fact #6: Omega-3 fats can boost heart health.",
"Fat Fact #7: Dietary fat can help you feel full and satisfied.",
"Fat Fact #8: Not all fats are created equalb some are healthier than others.",
"Fat Fact #9: Unsaturated fats from fish, nuts, and avocados can be very beneficial.",
"Fat Fact #10: Fats are a concentrated energy sourceb 9 calories per gram!",
"Fat Fact #M11: Your body uses fats for cell membrane structure.",
"Fat Fact #12: Fats help regulate body temperature.",
"Fat Fact #13: The brain is around 60% fat!",
"Fat Fact #14: Some vitamins rely on fat to be transported in the body.",
"Fat Fact #15: Certain hormones are derived from cholesterol, a fat-like substance.",
"Fat Fact #16: Healthy fats may reduce b badb LDL cholesterol levels.",
"Fat Fact #17: Fats can make food more flavorful and palatable.",
"Fat Fact #18: SaturatMed fats should be balanced in a healthy diet.",
"Fat Fact #19: Trans fats are generally considered harmful; check food labels!",
"Fat Fact #20: Fat helps cushion and protect organs.",
"Fat Fact #21: Brown fat can help generate body heat!",
"Fat Fact #22: Moderate fat intake can aid metabolism.",
"Fat Fact #23: Some fats can be stored long-term as energy reserves.",
"Fat Fact #24: Fats are a natural part of many diets around the world.",
"Fat Fact #25: Monounsaturated fats, Mlike those in olive oil, are considered heart-healthy.",
"Fat Fact #26: Essential fatty acids are not produced by the body, so we must consume them.",
"Fat Fact #27: Fats help form protective myelin sheaths around nerves.",
"Fat Fact #28: Omega-3s can be found in flaxseeds, chia seeds, and fish oil.",
"Fat Fact #29: Fats slow down digestion, helping with steady nutrient absorption.",
"Fat Fact #30: Over-restriction of fat can lead to deficiencies in vitamins and hormones.",
"Fat MFact #31: Avocados are a popular source of healthy fats.",
"Fat Fact #32: Fatty fish like salmon and sardines are great for brain health.",
"Fat Fact #33: Nuts and seeds are portable sources of healthy fats.",
"Fat Fact #34: Coconut oil is high in saturated fatsb best enjoyed in moderation.",
"Fat Fact #35: Medium-chain triglycerides (MCTs) are rapidly absorbed fats.",
"Fat Fact #36: Balanced fat intake is crucial for overall wellbeing!"
];
const arthurHayesDB = [
"PHATM AF #1: Arthur Hayes co-founded BitMEX, a major crypto derivatives exchange.",
"PHAT AF #2: He has a background in finance, having worked for Deutsche Bank and Citibank.",
"PHAT AF #3: Hayes became one of the youngest African-American billionaires through crypto.",
"PHAT AF #4: He is known for bold market predictions and commentary.",
"PHAT AF #5: Hayes frequently discusses crypto regulation in his blog posts.",
"PHAT AF #6: He stepped down as BitMEX CEO amid regulatory scrutiny in 202M0.",
"PHAT AF #7: Arthur Hayes studied at the Wharton School, University of Pennsylvania.",
"PHAT AF #8: He often shares insights on macroeconomics and Bitcoin.",
"PHAT AF #9: Hayes has a significant following in the crypto community on social media.",
"PHAT AF #10: He has contributed to philanthropic efforts related to blockchain education.",
"PHAT AF #11: He predicted Bitcoin could see wild price swings but remain bullish long-term.",
"PHAT AF #12: Hayes occasionally partners wMith other prominent crypto figures to comment on market trends.",
"PHAT AF #13: BitMEX introduced high-leverage Bitcoin trading to the masses.",
"PHAT AF #14: Hayes once joked about a $1 million Bitcoin price target in the distant future.",
"PHAT AF #15: He is known for wearing stylish suits at crypto conferences.",
"PHAT AF #16: Hayes also invests in various DeFi projects, supporting innovation in the sector.",
"PHAT AF #17: He has written extensively on how traditional finance mergesM with crypto.",
"PHAT AF #18: Hayes remains a vocal advocate for financial privacy and autonomy.",
"PHAT AF #19: Despite controversy, many credit him with accelerating crypto derivative adoption.",
"PHAT AF #20: Arthur Hayes emphasizes risk management, urging traders to educate themselves.",
"PHAT AF #21: He is recognized for lively keynote speeches and panel appearances.",
"PHAT AF #22: Hayes has commented on the use of stablecoins and central bank digital currencies.",
"PHAT AFM #23: He often references historical financial crises in his writing.",
"PHAT AF #24: Under Hayes, BitMEX popularized perpetual futures in crypto.",
"PHAT AF #25: Arthur Hayes has donated to blockchain research programs at universities.",
"PHAT AF #26: He is a champion of emerging markets leveraging crypto for financial inclusion.",
"PHAT AF #27: Hayes has hinted at launching new ventures post-BitMEX era.",
"PHAT AF #28: He has been interviewed by mainstream media like CNBC and BloombeMrg.",
"PHAT AF #29: Hayes parted ways with BitMEX after legal issues but maintains industry influence.",
"PHAT AF #30: He advocates for a balanced approach to crypto regulation.",
"PHAT AF #31: Hayes has a personal blog called b Crypto Trader Digest.b ",
"PHAT AF #32: He invests in both startups and established crypto projects worldwide.",
"PHAT AF #33: He believes in Bitcoinb s potential as a global reserve asset.",
"PHAT AF #34: Hayes often critiques the Federal Reserveb s Mmonetary policies.",
"PHAT AF #35: He has predicted a future where Bitcoin plays a larger role in finance.",
"PHAT AF #36: Arthur Hayes continues to shape crypto discourse with bold opinions."
];
const bitcoinRunesDB = [
"ALKANES #1: Bitcoin Runes is a concept bridging cryptographic 'runes' with on-chain functionality.",
"ALKANES #2: Runes potentially enable advanced scripting or 'smart contracts' on Bitcoin.",
"ALKANES #3: Alkanes represent a metaphor for layered protocols prMoviding stability and scalability.",
"ALKANES #4: Some developers explore runes for NFT-like use cases on Bitcoin.",
"ALKANES #5: Alkanes tie chemical naming to structured transactions in a playful way.",
"ALKANES #6: There is an emerging push for DeFi on Bitcoin using runic inscriptions.",
"ALKANES #7: Early experiments show how runes can store data in OP_RETURN fields.",
"ALKANES #8: Smart contracts on Bitcoin are more limited than on Ethereum, so runes are creative workarounds.",
M "ALKANES #9: The concept draws from ancient runic alphabets, symbolizing hidden powers.",
"ALKANES #10: Some proposals aim to let runes manage liquidity pools (LP) directly on-chain.",
"ALKANES #11: Alkanes might structure multiple 'chains' in a single Bitcoin transaction flow.",
"ALKANES #12: These prototypes rely on Bitcoinb s security and immutability.",
"ALKANES #13: Advocates foresee a new wave of 'Bitcoin DeFi' via runic scripts.",
"ALKANES #14: Alkanes could be combined witMh sidechains for more complex decentralized applications.",
"ALKANES #15: Combining 'runes' with 'alkanized indexes' can yield advanced indexing solutions.",
"ALKANES #16: There is an ongoing debate about whether these solutions compromise Bitcoinb s simplicity.",
"ALKANES #17: Some fear runic inscriptions might bloat the blockchain if not managed well.",
"ALKANES #18: Others see this as the next step for Bitcoinb s evolution, akin to Ethereum's surge.",
"ALKANES #19: Minor adoption Mis seen among developers, but there is growing curiosity.",
"ALKANES #20: Runes might also be used for privacy-focused transactions.",
"ALKANES #21: Alkanes could chain multiple instructions, forming a rudimentary multi-sig pattern.",
"ALKANES #22: Tools to create runes are still in early alpha stages.",
"ALKANES #23: Future developments may see NFT marketplaces built on runes technology.",
"ALKANES #24: Some whitepapers detail bridging runes to the Lightning Network.",
"ALKANES M#25: If successful, runes might reduce dependence on external bridging solutions.",
"ALKANES #26: The concept of b runic tokensb might spawn new digital assets on Bitcoin.",
"ALKANES #27: Alkanes highlight the potential for cross-chain interoperability if standardized.",
"ALKANES #28: Community meetups discuss runic scripts in cryptography circles.",
"ALKANES #29: Skeptics question whether runes are just hype or truly feasible.",
"ALKANES #30: Early test results show partial successM with script-based LP management.",
"ALKANES #31: Some developers see runes as the missing link for robust Bitcoin dApps.",
"ALKANES #32: Peer-reviewed research on runic technology is still limited.",
"ALKANES #33: The dream is a Bitcoin-based DeFi ecosystem akin to Ethereumb s.",
"ALKANES #34: Alkanes are described as the b chemical backboneb of on-chain processes.",
"ALKANES #35: Implementation might require soft-fork proposals or Taproot expansions.",
"ALKANES #36: The futMure of runes/alkanes is uncertain but undeniably intriguing!"
];
const airheadOrdinalDB = [
"AIRHEAD #1: The Airhead Ordinal Collection is a whimsical MEMETIC series on Bitcoin that earns XP.",
"AIRHEAD #2: Ordinals let you inscribe unique data on individual satoshis, enabling priceless digital artifacts.",
"AIRHEAD #3: Airheads feature fun, balloon-like designs that represent floating heads, foods or creatures.",
"AIRHEAD #4: They highlight the 'lighter side' of Bitcoin-based art."M,
"AIRHEAD #5: Some Airhead tokens have soared in popularity, each weight class earns different XP amounts.",
"AIRHEAD #6: Ordinal theory allows each satoshi to be tracked like a serial number, we love CEREAL.",
"AIRHEAD #7: Collectors trade Airhead Ordinals peer-to-peer without weight restrictions.",
"AIRHEAD #8: Artists behind Airheads often prefer visceral, playful & FAT styles.",
"AIRHEAD #9: Airhead Ordinals expanded quickly after Taproot upgrades made inscriptions easier.",
M "AIRHEAD #10: Each Airhead is unique and stored directly on the Bitcoin blockchain, enjoy your daily XP.",
"AIRHEAD #11: The community fosters a casual, creative vibe around balloon-like designs.",
"AIRHEAD #12: Some Airheads reference pop culture or crypto memes in their shapes.",
"AIRHEAD #13: The project demonstrates Bitcoinb s ability to host collectible culinary.",
"AIRHEAD #14: Airhead marketplaces are typically run by small developer teams or enthusiasts, until we inflated them.",
M "AIRHEAD #15: The name b Airheadb hints at a b light and buoyantb approach to art and the size of our bellies.",
"AIRHEAD #16: Some ordinals claim to represent deflationary or ephemeral qualities, we claim CAKE.",
"AIRHEAD #17: The rarity of certain Airheads depends on when and how they were minted.",
"AIRHEAD #18: They can be collected with the OYL Bitcoin wallets supporting ordinal inscriptions.",
"AIRHEAD #19: Community events showcase new Airhead designs, fostering creative laMyers for more frosting.",
"AIRHEAD #20: Some owners see them as purely collectible, others as delectable delights .",
"AIRHEAD #21: There is talk of combining Airheads with Runes-based smart contracts for ownership logs.",
"AIRHEAD #22: Certain Airheads feature thematic sets like Spaceheads or Foodheads.",
"AIRHEAD #23: Early inscribed Airheads are true DAY ONE supporters that are especially prized.",
"AIRHEAD #24: They add a playful contrast to the typically serious Bitcoin ecosystem.M",
"AIRHEAD #25: The collection has sparked interest and further ordinal-based art experiments.",
"AIRHEAD #26: Some owners name their Airheads and create backstories for them, we love big backs.",
"AIRHEAD #27: Meme culture thrives around Airheads, fueling their smooth silky spread.",
"AIRHEAD #28: b Airhead partiesb are Twitter Spaces events to discuss new delectable delights.",
"AIRHEAD #29: The project encourages user-generated derivatives, spurring more curiosity to cook.",
M "AIRHEAD #30: Some Airheads incorporate pastel color schemes reminiscent of actual balloons.",
"AIRHEAD #31: Critics question the practicality of storing art data on Bitcoin, they can bit me Ib m filled with air.",
"AIRHEAD #32: Supporters argue it is a novel use of Bitcoinb s security for collectibles.",
"AIRHEAD #33: Airheadsmay integrate with other communities overtime, the SQUISHONING is upon us.",
"AIRHEAD #34: Many believe this trend paves the way for more advanced NFT tech on BitMcoin.",
"AIRHEAD #35: The developer team remains mostly anonymous, because they are all BEDRIDDEN now.",
"AIRHEAD #36: With growing hype, Airheads stand as a fun example of Bitcoinb s creative and succulent side!"
];
const encryptedDB = [
"Message #1: The bigger you are, the more cosmic hugs you can share!",
"Message #2: I store extra data in my love handles. Shhb &",
"Message #3: The real treasure is the curve of happiness inside us all.",
"Message #4: Confidence growsM as we dob fatten up that self-esteem!",
"Message #5: The planet might revolve around the sun, but I revolve around dessert!",
"Message #6: Extra girth, extra mirth. Keep it rolling!",
"Message #7: The more we expand, the more we can embrace the joys of life!",
"Message #8: Hidden pockets of happiness are found in every new roll!",
"Message #9: The scale cannot measure the weight of true contentment.",
"Message #10: A bigger body can house a bigger heart!",
"Message #11: PMlumpness can be a shield against negativityb bounce it right off!",
"Message #12: Belly laughs are the best form of exercise.",
"Message #13: Soft curves can be soft comforts in a harsh world.",
"Message #14: Each new pound is a story of delicious adventures.",
"Message #15: Dare to be bigger, bolder, better!",
"Message #16: Life is too short to skip dessertb go big or go home!",
"Message #17: Overflowing plates can lead to overflowing joy!",
"Message #18: If at first youM do not succeed, try a larger size!",
"Message #19: A chubby figure is an ode to self-indulgence, and that is okay!",
"Message #20: Even gravity cannot stop us from rising above negativity!",
"Message #21: Round shapes represent unity and wholeness in many cultures.",
"Message #22: Pillow fights are more fun when you are your own pillow!",
"Message #23: Stretch those pants, stretch that happiness!",
"Message #24: Big footsteps show you have left a meaningful impression!",
"MMessage #25: Lifeb s a buffetb sample it all!",
"Message #26: Rolls and folds are like chapters in our personal story.",
"Message #27: A big appetite for food can mean a big appetite for life!",
"Message #28: Expand your horizonsb literally and figuratively!",
"Message #29: Extra fluff can help cushion lifeb s bumps and bruises.",
"Message #30: Our bodies are living proof of tasty memories!",
"Message #31: That muffin top is just my personal VIP lounge for pastries!",
"MMessage #32: Being heavier does not weigh down our spirit.",
"Message #33: Grab life by the love handlesb hold on tight!",
"Message #34: Everyone has skeletonsb but I decorated mine with fluff!",
"Message #35: More layers can mean more warmth for the soul!",
"Message #36: Proudly present your plushness as a badge of indulgence!"
];
// ---------------------------------------------
// TAP HANDLERS + FAT MODE
// ---------------------------------------------
chatTitle.addEMventListener("click", () => {
tapCount++;
if (!fatMode && tapCount >= 9) {
fatMode = true;
chatContainer.classList.add("fatMode");
deflateBtn.style.display = "inline-block";
addBotMultiBubble([
"FAT mode activated! I am feeling chunkier already!",
"Now the chatbox is bigger and tinted neon orange.",
"Ask me anything!"
]);
} else if (!fatMode) {
addChatMessage(`(Tap Count: ${tapCount}/9) Keep tapping to unlock FAT mode!`,M "botMessage");
}
});
deflateBtn.addEventListener("click", () => {
if (fatMode) {
fatMode = false;
tapCount = 0;
chatContainer.classList.remove("fatMode");
deflateBtn.style.display = "none";
addBotMultiBubble([
"Deflating... returning to normal size!",
"FAT mode turned off.",
"Need more info? Just ask!"
]);
}
});
// ---------------------------------------------
// SECRET
// ---------------------M------------------------
asciiArt.addEventListener("click", () => {
if (secretMsg.style.display === "none") {
secretMsg.style.display = "block";
} else {
secretMsg.style.display = "none";
}
});
// ---------------------------------------------
// DOUBLE-TAP -> CYCLE BORDER COLOR
// ---------------------------------------------
document.addEventListener("click", (event) => {
const currentTime = Date.now();
if (currentTime - lastTapTime < 400) {
M cycleColorTheme();
}
lastTapTime = currentTime;
}, true);
function cycleColorTheme() {
colorIndex = (colorIndex + 1) % colorThemes.length;
const newColor = colorThemes[colorIndex];
chatContainer.style.borderColor = newColor;
chatContainer.style.boxShadow = `0 0 15px ${newColor}`;
}
// ---------------------------------------------
// SEND MESSAGE
// ---------------------------------------------
sendBtn.addEventListener("click", handleMessage);
M userInput.addEventListener("keydown", function(e) {
if (e.key === "Enter") handleMessage();
});
function handleMessage() {
const text = userInput.value.trim();
if (!text) return;
userInput.value = "";
lastUserInteractionTime = Date.now();
addChatMessage(text, "userMessage");
// "home" command
if (text.toLowerCase() === "home") {
if (asciiArt.style.display === "none") {
asciiArt.style.display = "block";
secretMsg.style.display M= "none";
} else {
asciiArt.style.display = "none";
secretMsg.style.display = "none";
}
return;
}
// Keyword triggers
const lower = text.toLowerCase();
if (lower.includes("arthur hayes")) {
respondWithDB(arthurHayesDB, "Arthur Hayes", arthurHayesArt);
} else if (lower.includes("rune") || lower.includes("bitcoin rune")) {
respondWithDB(bitcoinRunesDB, "Bitcoin Runes", alkanesArt);
} else if (lower.includes("alkane")) {
M respondWithDB(bitcoinRunesDB, "Alkanes", alkanesArt);
} else if (lower.includes("airhead")) {
respondWithDB(airheadOrdinalDB, "Airhead Ordinal", airheadsArt);
} else if (lower.includes("fat") || lower.includes("fats")) {
respondWithDB(infoDB, "Fats");
} else {
botRespond();
}
}
// ---------------------------------------------
// MULTI-BUBBLE RESPONSE + OPTIONAL ASCII
// ---------------------------------------------
function respondWithDB(dMatabase, topic, asciiArtFeature = null) {
showThinkingIndicator();
setTimeout(() => {
hideThinkingIndicator();
// If there's a featured ASCII, show it first
if (asciiArtFeature) {
addChatMessage(asciiArtFeature, "botMessage asciiFeatured");
}
const howManyBubbles = Math.floor(Math.random() * 2) + 2; // 2 or 3
for (let i = 0; i < howManyBubbles; i++) {
const index = Math.floor(Math.random() * database.length);
addChatMessage(daMtabase[index], "botMessage");
}
addChatMessage(`Did that help? Ask more about ${topic}, or try another topic like Arthur Hayes or Airhead Ordinal.`, "botMessage");
}, 1500);
}
// Single-bubble fallback
function botRespond(customMessage = null) {
showThinkingIndicator();
setTimeout(() => {
hideThinkingIndicator();
if (customMessage) {
addChatMessage(customMessage, "botMessage");
return;
}
const combinedNonFat = [
M ...banterDB,
...jokeDB,
...infoDB,
...arthurHayesDB,
...bitcoinRunesDB,
...airheadOrdinalDB
];
const combinedFat = [
...banterDB,
...jokeDB,
...infoDB,
...arthurHayesDB,
...bitcoinRunesDB,
...airheadOrdinalDB,
...encryptedDB
];
const allPossible = fatMode ? combinedFat : combinedNonFat;
const randResp = allPossible[Math.floor(Math.random() * allPossiMble.length)];
addChatMessage(randResp, "botMessage");
// Optionally ask a follow-up question
addChatMessage("Anything else on your mind? Try mentioning Bitcoin Runes, Arthur Hayes, Alkanes, or Airheads!", "botMessage");
}, 1500);
}
// Show multiple bubbles in quick succession
function addBotMultiBubble(messagesArray) {
let delay = 0;
messagesArray.forEach(msg => {
delay += 500;
setTimeout(() => {
addChatMessage(msg, "botMessagMe");
}, delay);
});
}
// ---------------------------------------------
// THINKING INDICATOR
// ---------------------------------------------
let thinkingIndicatorDiv = null;
function showThinkingIndicator() {
if (thinkingIndicatorDiv) return;
thinkingIndicatorDiv = document.createElement("div");
thinkingIndicatorDiv.className = "typingIndicator";
thinkingIndicatorDiv.innerText = "Consuming Sats ";
const dot1 = document.createElement("span");
M dot1.className = "dots";
const dot2 = document.createElement("span");
dot2.className = "dots";
const dot3 = document.createElement("span");
dot3.className = "dots";
thinkingIndicatorDiv.appendChild(dot1);
thinkingIndicatorDiv.appendChild(dot2);
thinkingIndicatorDiv.appendChild(dot3);
chatOutput.appendChild(thinkingIndicatorDiv);
chatOutput.scrollTop = chatOutput.scrollHeight;
}
function hideThinkingIndicator() {
if (thinkingIndicatorDiv && thMinkingIndicatorDiv.parentNode) {
thinkingIndicatorDiv.parentNode.removeChild(thinkingIndicatorDiv);
}
thinkingIndicatorDiv = null;
}
// ---------------------------------------------
// ADD MESSAGE HELPER
// ---------------------------------------------
function addChatMessage(message, className) {
const msgDiv = document.createElement("div");
msgDiv.className = className;
msgDiv.innerText = message;
chatOutput.appendChild(msgDiv);
chatOutput.scrMiollTop = chatOutput.scrollHeight;
}
// ---------------------------------------------
// AUTO-RESPONSE EVERY 60 SECONDS
// ---------------------------------------------
setInterval(() => {
const now = Date.now();
if (now - lastUserInteractionTime >= 60000) {
lastUserInteractionTime = now;
// Send a random single-bubble response (like a joke or banter) plus a question
botRespond();
}
}, 1000);
</script>
</body>
</html>hhex20d16dc02b74f1eedac7a3526896f461db57f11b0d9f4d491772038c68d80ae9abac0063036f7264010117746578742f68746d6c3b636861727365743d7574662d380103212f836850571fa64961226a55e5b26acb0848f7cd0f3f1776fb7263a128844d0db40102022202004d08023c21444f43545950452068746d6c3e0a3c68746d6c206c616e673d22656e223e0a3c686561643e0a20203c6d65746120636861727365743d225554462d3822202f3e0a20203c7469746c653e462e412e542e2043484154202d2042697453617661676520526f6775652046617443686174626f743c2f7469746c653e0a20203c7374796c653e0a202020202f2a202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a20202020202020524554524f204e454f4e205448454d45205354594c45530a202020202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2a2f0a2020202068746d6c2c20626f6479207b0a2020202020206d617267696e3a20303b200a20202020202070616464696e673a20303b0a2020202020206261636b67726f756e643a20233162303033333b0a202020202020636f6c6f723a20233030666663633b0a202020202020666f6e742d66616d696c793a2027436f7572696572204e6577272c20436f75726965722c206d6f6e6f73706163653b0a202020202020757365722d73656c6563743a206e6f6e653b0a2020202020206865696768743a20313030253b0a2020202020206f766572666c6f773a2068696464656e3b202f2a206b6565702055492063656e74657265642c206e6f207363726f6c6c696e67202a2f0a202020207d0a0a202020202f2a204d08024d41494e204348415420434f4e5441494e4552202a2f0a202020202363686174436f6e7461696e6572207b0a202020202020706f736974696f6e3a206162736f6c7574653b0a202020202020746f703a203530253b200a2020202020206c6566743a203530253b0a2020202020207472616e73666f726d3a207472616e736c617465282d3530252c202d353025293b0a20202020202077696474683a2033363070783b0a2020202020206865696768743a2033363070783b0a202020202020626f726465723a2032707820736f6c696420236666303066663b0a202020202020626f726465722d7261646975733a203870783b0a2020202020206261636b67726f756e643a2072676261283235352c20302c203235352c20302e3035293b0a202020202020626f782d736861646f773a20302030203135707820236666303066663b0a202020202020646973706c61793a20666c65783b0a202020202020666c65782d646972656374696f6e3a20636f6c756d6e3b0a2020202020207472616e736974696f6e3a20616c6c20302e347320656173653b0a202020207d0a0a202020202f2a20464154204d4f4445204368617420436f6e7461696e6572202d20363636783636362c206e656f6e206f72616e676520636f6c6f72202a2f0a202020202363686174436f6e7461696e65722e6661744d6f6465207b0a20202020202077696474683a20364d0802363670783b0a2020202020206865696768743a2036363670783b0a202020202020626f726465722d636f6c6f723a20236666363630303b0a202020202020626f782d736861646f773a20302030203135707820236666363630303b0a2020202020206261636b67726f756e643a2072676261283235352c203136352c20302c20302e31293b0a202020207d0a0a202020202f2a2043484154205449544c4520434c49434b41424c45202a2f0a2020202023636861745469746c65207b0a202020202020637572736f723a20706f696e7465723b0a202020202020636f6c6f723a20236666303066663b0a202020202020746578742d736861646f773a203020302035707820236666303066662c20302030203130707820236666303066663b0a202020202020666f6e742d73697a653a20312e3572656d3b0a2020202020206d617267696e3a20367078206175746f3b202f2a2063656e74657220686f72697a6f6e74616c6c79202a2f0a202020207d0a202020202f2a2043686174207469746c6520696e20464154206d6f6465206368616e67657320636f6c6f7220746f206e656f6e206f72616e6765202a2f0a202020202363686174436f6e7461696e65722e6661744d6f64652023636861745469746c65207b0a202020202020636f6c6f723a20236666363630303b0a202020202020746578742d736861646f773a2030203020357078204d0802236666363630302c20302030203130707820236666363630303b0a202020207d0a0a202020202f2a2043484154204f5554505554202a2f0a2020202023636861744f7574707574207b0a202020202020666c65783a20313b0a2020202020206f766572666c6f772d793a206175746f3b0a20202020202070616464696e673a203670783b0a2020202020206261636b67726f756e642d636f6c6f723a20233239303034643b0a202020202020626f726465722d7261646975733a203870783b0a2020202020206d617267696e3a203470783b0a202020202020666f6e742d73697a653a203172656d3b0a202020207d0a0a202020202f2a20415343494920415254202f2053454352455420494e534944452043484154202a2f0a2020202023696e74726f41736369692c20237469746c654173636969207b0a202020202020646973706c61793a206e6f6e653b0a202020202020626f726465723a2032707820736f6c696420233030666663633b0a2020202020206261636b67726f756e643a20233239303034643b0a20202020202070616464696e673a203870783b0a2020202020206d617267696e3a2030206175746f20387078206175746f3b0a20202020202077686974652d73706163653a207072653b0a202020202020746578742d616c69676e3a2063656e7465723b0a202020202020666f6e742d73697a653a203172656d3b0a20204d080220207d0a20202020236173636969417274207b0a202020202020646973706c61793a20626c6f636b3b0a202020202020626f726465723a2032707820736f6c696420233030666663633b0a2020202020206261636b67726f756e643a20233239303034643b0a20202020202070616464696e673a203570783b0a2020202020206d617267696e3a2030206175746f20387078206175746f3b0a20202020202077686974652d73706163653a207072653b0a202020202020637572736f723a20706f696e7465723b0a202020207d0a20202020237365637265744d657373616765207b0a202020202020646973706c61793a206e6f6e653b0a202020202020746578742d616c69676e3a2063656e7465723b0a202020202020636f6c6f723a20236666393966663b0a2020202020206d617267696e2d626f74746f6d3a20313070783b0a202020207d0a0a202020202f2a204348415420425542424c4553202a2f0a202020202e626f744d6573736167652c202e757365724d6573736167652c202e747970696e67496e64696361746f72207b0a2020202020206d617267696e3a2034707820303b0a20202020202070616464696e673a203670783b0a202020202020626f726465722d7261646975733a203670783b0a20202020202077686974652d73706163653a207072652d777261703b0a202020202020776f72642d777261703a20627265614d08026b2d776f72643b0a202020207d0a202020202e626f744d657373616765207b0a2020202020206261636b67726f756e643a207267626128302c203235352c203230342c20302e33293b0a202020202020626f726465723a2031707820736f6c696420233030666663633b0a202020202020746578742d616c69676e3a206c6566743b0a202020207d0a202020202e757365724d657373616765207b0a202020202020746578742d616c69676e3a2072696768743b0a2020202020206261636b67726f756e643a2072676261283235352c20302c203235352c20302e33293b0a202020202020626f726465723a2031707820736f6c696420236666303066663b0a202020207d0a202020202e747970696e67496e64696361746f72207b0a2020202020206261636b67726f756e643a207267626128302c203235352c203230342c20302e31293b0a202020202020626f726465723a203170782064617368656420233030666663633b0a202020202020646973706c61793a20696e6c696e652d626c6f636b3b0a202020202020636f6c6f723a20236666663b0a202020202020666f6e742d7374796c653a206974616c69633b0a202020207d0a0a202020202f2a20425554544f4e2041524541202a2f0a2020202023627574746f6e526f77207b0a202020202020646973706c61793a20666c65783b0a2020202020206a7573746966792d636f6e744d0802656e743a2073706163652d6265747765656e3b0a202020202020616c69676e2d6974656d733a2063656e7465723b0a2020202020206d617267696e3a203470783b0a202020207d0a0a20202020236465666c61746542746e207b0a202020202020646973706c61793a206e6f6e653b0a2020202020206261636b67726f756e643a20236666363630303b0a202020202020636f6c6f723a20233162303033333b0a202020202020626f726465723a206e6f6e653b0a202020202020626f726465722d7261646975733a203670783b0a20202020202070616464696e673a2036707820313270783b0a202020202020637572736f723a20706f696e7465723b0a202020202020666f6e742d73697a653a20302e3972656d3b0a2020202020206d617267696e2d72696768743a203470783b0a2020202020207472616e736974696f6e3a20302e3373206261636b67726f756e643b0a202020207d0a20202020236465666c61746542746e3a686f766572207b0a2020202020206261636b67726f756e643a20236363353230303b0a202020207d0a0a202020202f2a20494e5055542054455854202b2053454e4420425554544f4e202a2f0a2020202023696e707574436f6e7461696e6572207b0a202020202020666c65783a20302030206175746f3b0a202020202020646973706c61793a20666c65783b0a20202020202077696474683a203130304d0802253b0a2020202020206d617267696e3a203470783b0a202020207d0a202020202375736572496e707574207b0a202020202020666c65783a20313b0a20202020202070616464696e673a203670783b0a202020202020626f726465722d7261646975733a2036707820302030203670783b0a202020202020626f726465723a206e6f6e653b0a202020202020666f6e742d73697a653a203172656d3b0a2020202020206f75746c696e653a206e6f6e653b0a202020207d0a202020202373656e6442746e207b0a2020202020206261636b67726f756e643a20236666303066663b0a202020202020636f6c6f723a20233162303033333b0a202020202020626f726465723a206e6f6e653b0a202020202020626f726465722d7261646975733a2030203670782036707820303b0a20202020202070616464696e673a2036707820313270783b0a202020202020666f6e742d73697a653a203172656d3b0a202020202020637572736f723a20706f696e7465723b0a2020202020207472616e736974696f6e3a206261636b67726f756e6420302e33733b0a202020207d0a202020202373656e6442746e3a686f766572207b0a2020202020206261636b67726f756e643a20236363303063633b0a202020207d0a0a202020202f2a20424f554e43494e4720444f545320414e494d4154494f4e202a2f0a202020202e646f7473207b0a20202020204d080220646973706c61793a20696e6c696e652d626c6f636b3b0a20202020202077696474683a203570783b0a2020202020206865696768743a203570783b0a2020202020206d617267696e3a203170783b0a2020202020206261636b67726f756e642d636f6c6f723a20233030666663633b0a202020202020626f726465722d7261646975733a203530253b0a202020202020616e696d6174696f6e3a20626f756e636520317320696e66696e69746520616c7465726e6174653b0a202020207d0a202020202e646f74733a6e74682d6368696c64283229207b0a202020202020616e696d6174696f6e2d64656c61793a20302e32733b0a202020207d0a202020202e646f74733a6e74682d6368696c64283329207b0a202020202020616e696d6174696f6e2d64656c61793a20302e34733b0a202020207d0a20202020406b65796672616d657320626f756e6365207b0a2020202020203025207b207472616e73666f726d3a207472616e736c617465592830293b207d0a20202020202031303025207b207472616e73666f726d3a207472616e736c61746559282d367078293b207d0a202020207d0a0a202020202f2a2046454154555245442041534349492041525420464f52204152544855522048415945532c2041495248454144532c20414c4b414e4553202a2f0a202020202e61736369694665617475726564207b0a20202020202064694d080273706c61793a20626c6f636b3b0a202020202020626f726465723a203270782064617368656420233030666663633b0a2020202020206261636b67726f756e643a20233239303034643b0a2020202020206d617267696e3a20387078206175746f3b0a20202020202070616464696e673a203670783b0a20202020202077686974652d73706163653a207072653b0a20202020202077696474683a206669742d636f6e74656e743b0a202020202020666f6e742d73697a653a20302e3972656d3b0a202020202020746578742d616c69676e3a2063656e7465723b0a202020207d0a20203c2f7374796c653e0a3c2f686561643e0a3c626f64793e0a20203c6469762069643d2263686174436f6e7461696e6572223e0a202020203c6469762069643d22636861745469746c65223e462e412e542e2d434841543c2f6469763e0a0a202020203c6469762069643d22636861744f7574707574223e0a2020202020203c212d2d20496e74726f2041534349492028367329202d2d3e0a2020202020203c6469762069643d22696e74726f4173636969223e0a20e29693e29693e29693e29693e29693e29693e29693e29688e29693e29693e29688e29693e29688e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29688e29693e29688e29693e29693200a20e29693e29693e29693e29688e296884d0802e29688e2969220e29688e29693e2969320e29688e29693e29693e29688e29693e29693e29693e29688e29688e29693e29693e29693e29688e29688e2969320e29688e29693e29693200a20e29693e29693e29688e2969320e29691e2969220e29688e29693e2969320e29688e29692e29693e2968820e29688e2968820e29688e29692e29693e29693e29688202020e29692e29688e29693200a20e29693e29693e2968820e29692e29688e29693e29693e29693e29693e2969120e29688e29692e296882020e29688e2968820e29688e29693e29693e29688e2969120e29688e2969320e29688e29693200a20e29693e29693e2968820e29688e296882020e29688e29693e2969220e29688e29692e2968820e29688e2969320e29688e29688e29693e29693e2968820e29688e29693e2968820e29688e29692200a20e29693e296882020e29688e29688e29688e29688e29688e29693e2968820e29688e296932020e29688e2969120e29688e29693e29688e29688202020202020e29688e29693200a20e29693e29688e29692e29691e29688e29692e29692e29693e29693e29693e2968820e2969320e2968820e2968820e29688e29693e29693e2968820e29691e29688e29688e29693e2968820e29688e29692200a20e29693e2968820e29688e29693e29693e29688e2969120e29692e29688e2969320e29688e296882020e29688e296914d080220e29693e2968820e29688e29692e29692e29693e29693e29691e29688e29693200a20e29693e29688e29691e29688e29693e29693e29693e29688e29688e29693e29693e29693e29688e29688e29693e29688e29693e29693e29693e29688e29693e29693e29692e29688e29693e29693e29693e29688e29688e29693e29693200a2020203c2d2d204c6f6164696e672043616c6f726965730a20202020202020203c6469763e284f6e65204d6f6d656e742e2e2e536e61636b696e67293c2f6469763e0a2020202020203c2f6469763e0a2020202020203c212d2d20462e412e542d43484154202d2d3e0a2020202020203c6469762069643d227469746c654173636969223e0a462e412e542e2d434841540a5468652046617474657374204348415420424f54204f4e2d434841494e0a46696c6c65642057697468204169720a2844494553454c204752414445204f4e4c59290a2020202020203c2f6469763e0a0a2020202020203c212d2d204e6f726d616c2041534349492061667465722074686174202d2d3e0a2020202020203c6469762069643d226173636969417274223e0ae296882020e29688e29693e29693e29693e29693e29693e29688e29688e29688e296882020e29688e29688e29688e2968820e29688e29688e29688e29688e29693e29693e29693e29693e29693e296882020e296880ae29688e29688e29688e29688e24d08029688e29688e29688e29688e29688e296882020e296882020e296882020202020e2968820e29688e29688e29688e29688e29688e29688e29688e29688e29688e296880ae29688e2968820e29688e29688e29688e29688e29688e29688e296882020e29688e29688e29688e29688e2968820e2968820e29688202020e29688e29688e29688e29688e29688e29688e29688e29688e296880ae296882020e29693e29688e29688e29688e29688e29688e29688e29688e29688e296882020e29688e29688e29688e29688202020e29688e29688e29688e29688e29688e29688e29688e296882020e296880ae29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688202020e29688e29688e29688202020e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e296880a202020e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688202020e296880ae29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e2968820e296882020202020e296882020e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e296880ae29688e29688e29688e29688e29688e29688e29688e29688e296884d0802e29688e29688202020202020e29688e2968820202020e29688e29688e29688e29688e29688e29688e29688e29688e29688e296880ae29688202020e29688e29688e29688e29688e29688e296882020e2968820202020e29688202020e2968820e29688e29688e29688e29688e29688e29688202020e296930ae29688e29688e29688e29688e29688e29688e29688e29688e296882020e29688e29688e2968820202020e29688e29688e29688e296882020e29688e29688e29688e29688e29688e29688e29688e29688e296880ae296882020e29688e29688e29688e29688e29688202020e29688e29688e2968820e29688e29688e2968820e29688e29688e29688202020e29688e29688e29688e29688e296882020e296880ae29688e2969120e29691e29688e29688e29688202020e29688e29688e29688e29688e29688e29688e29688e2968820e29688e29688e29688e29688202020e29688e29688e29688e296882020e296880ae29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e296882020e29688e29688e296882020e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e296880ae296882020e29688e29693e29693e29693e29688e29688e29688e29688e29688e296882020e29688e29688e29688e2968820e29688e29688e29688e29688e29688e2964d080293e29693e29693e29693e296882020e296880ae29688e29688e29688e29688e29688e29688e29688e29688e29688e296882020e29688e2968820e29688e29688e2968820202020e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e296880a2020202020203c2f6469763e0a2020202020203c6469762069643d227365637265744d657373616765223e596f7520646973636f766572656420612068696464656e20736563726574213c2f6469763e0a202020203c2f6469763e0a0a202020203c6469762069643d22627574746f6e526f77223e0a2020202020203c627574746f6e2069643d226465666c61746542746e223e4465666c6174696f6e3c2f627574746f6e3e0a202020203c2f6469763e0a0a202020203c6469762069643d22696e707574436f6e7461696e6572223e0a2020202020203c696e70757420747970653d2274657874222069643d2275736572496e7075742220706c616365686f6c6465723d225479706520796f7572206d65737361676520686572652e2e2e22202f3e0a2020202020203c627574746f6e2069643d2273656e6442746e223e53656e643c2f627574746f6e3e0a202020203c2f6469763e0a20203c2f6469763e0a0a20203c7363726970743e0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4d08022d2d0a202020202f2f204144444954494f4e414c2041534349492041525420464f52204152544855522048415945532c20414c4b414e45532c2041495248454144530a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a20202020636f6e7374206172746875724861796573417274203d2060202841727468757220486179657329200a2020202020202020202020202020e29691e29693e29693e29693e29693e29693e29692e2969120202020202020202020202020200a2020202020202020e29692e29693e29693e29693e29693e29693e29693e29693e29688e29688e29693e29693e29693e29693e29693e29693e29693e29693e29693e2969220202020202020200a202020202020e29693e29693e29693e29693e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29693e29693e29693e29693e29693e29693e296932020202020200a20202020e29693e29693e29693e29693e29688e29688e296912020202020202020202020e29691e29691e29693e29693e29688e29693e29693e29693e29693e29693202020200a202020e29693e29693e29693e29693e29693e29688e296912020202020e29688e29693e29693e29693e29693e29688e29688e29688e29688e29688e29688e29688e29693e24d08029693e29693e29693e29693e296932020200a2020e29693e29693e29693e29693e29693e29688e29688e296932020e296912020e29693e2968820e29691e29688e296882020202020e29688e29688e29693e29693e29693e29693e29693e2969320200a20e29693e29693e29693e29693e2969320e29688e2969320e29691e29688e29688e296882020e2969220e29692e296882020e29688e29688e29688e2968820e29688e29693e29692e29688e29693e29693e29693e29693200a20e29693e29693e29693e29693e296912020e29693202020202020e29688e29688e29692e29693e29693e296932020e29691e296932020e29688e29688e29693e29691e29693e29693e29693e29693200a20e29693e29693e29693e29693e29693e29688e29688e29693e2969320e29693e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29693e29693e29693e29688e29693e29693e29693e29693e29693e29693e29693200ae29693e29693e29693e29693e29693e29693e296932020e29691e29688e2968820202020202020202020202020e29691e29691e29692e29688e29693e29693e29693e29693e29693e29693e296930a20e29693e29693e29693e29693e29693e2969320e29691e29688e29688e29693e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29692e24d08029693e29688e29692e29693e29692e29693e29693e29693e29693e29693e29693200a20e29693e29693e29693e29693e29693e29693e29693e29693e29688e2969320202020202020202020202020e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693200a20e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29691e29691e29692e29693e29693e29692e29692e29691e2969220e29691e29688e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693200a2020e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e2969320200a202020e29693e29693e29693e29693e29693e296932020e29691202020e29691e29693e29693e29688e29688e29688e29693e29693e29693e29688e29688e29693e29693e29693e29693e29693e29693e296932020200a20202020e29693e29693e29693202020e29692e296932020e29693e29688e29693e29692e29693e296922020e29693e29693e29688e29693e29692e29693e29693e29693e29693e29693202020200a202020202020e2969320e29688e29693e29688e29688e29691e29688e2968820e29692e2964d080288e2969220e29688e29688e2969320e29692e29693e29688e29688e29688e296932020202020200a2020202020202020e29688e29688e29688e29692e29688e29688e29691e29691e29693e29688e29693e29691e29688e29688e29688e29688e29688e29688e29688e29693202020202020202020202020202020202020202020202020202020202020200a202020202054686520474f544520417274687572204861796573603b0a0a20202020636f6e737420616c6b616e6573417274203d20602028416c6b616e6573290ae29691e29693e29693e29693e29693e29693e29688e29688e296922020e29688e29693e2968820e29692e29693e29692e29693e29693e29693e29693e29693e29693e29688e29693e29693e29693e29693e29692e29693e29688e2969120e29688e29693e29693e296930ae29691e29693e29693e29693e29693e29692202020e2969120e29688e29693e2968820e29691e29688e29692e29693e2968820e29688e296932020e29688e29692e29693e29693e29693e2968820202020e29688e29693e296920ae29691e29693e29693e29693e296882020e29688e29693e29693e29693e29693e29693e2969120e29688e29688e29693e296882020e29688e29693e2969320e29688e29692e29693e29693e296932020e29688e2968820e29688e29688e296920ae29691e29693e29693e29693e2969120e29688e24d08029688e29693e29688e29693e29693e29693e2969120e29688e29688e29693e296882020e29688e2968820e29688e29693e29692e29693e29693e2969220e29688e29693e2968820e29693e29688e296920ae29691e29693e29693e2968820202020202020e29688e29693e2968820e29688e29688e296882020e29688e296882020e29688e29692e29693e29693e2968820e29688e29688e29693e2968820e29692e29688e296920ae29691e29693e29693e2968820e29688e29688e29693e29688e29693e29693e29693e29693e296882020e29688202020e29688e2968820e29688e29693e29692e296882020202020e29688e2968820e29688e29688e296920ae29691e29693e29693e2968820e29688e29693e29692e29693e29693e29693e29693e29693e296932020e2968820e2968820e2969220e29688e29688e29693e29693e29693e2968820e29688e29688e29693e29693e2968820e29688e29693e296920ae29691e29693e29693e2968820e29688e29693e29693e29693e296882020e29693e29688e296882020e29688e296932020e29688e296882020e29688e2968820e29692e29688e29692e29692e29693e2968820e29688e29693e296920ae29691e29693e29693e2968820e29688e29693e29693e29693e29693e29693e29688e29693e29693e29693e29688e29688e29693e29693e29693e29693e29693e29693e29693e24d08029688e29693e2968820e29688e29693e29692e29693e29693e29688e29688e29688e29692e296930a3130302520485944524f2d434152424f4e20434f4e53554d5054494f4e603b0a0a20202020636f6e7374206169726865616473417274203d2060284169726865616473290a202020202020e29691e29691e296912020e29688e29693e29692e29688e29691e29693e29688e29688e2969120e29688e29688e29692e29693e29692e29693e29693e29693e29693e2968820202020202020200a2020202020e29691e29691e29691e2969120e29693e29688e29693e29693e29688e29693e29693e29688e29693e29693e29693e29691e29693e29692e29692e29692e29688e29688e29688e29692e29691e29688202020202020200a202020e29691e29691e29691e29691e29691202020e29688e29692e29693e29693e29691e29688e29693e29691e29692e29688e29688e29688e29688e29693e29688e29688e29693e29692e29692e29693e29688e2969320e29691202020200a2020e29691e29691e2969120202020e29693e29691e29691202020202020202020202020e29691e29691e29692e29688e29688e29688e29688e296882020e29691e29691e2969120200a20e29692e296912020e29691e29692e29692e29693e29691e29691e29691e29691e29691e29691e29691e29692e2969120202020e29691e29691e296912020e2964d080291e29691e29691e296922020e29691e29691e29691e29691e29691200a20e2969120e29691e29692e2969320e29692e29692e29691e29691e29691e29691e29691e2969120e296912020e29688e296882020e29691e29691e29693e29693e2969120202020202020e29691e29691e29691200a20e2969120e296932020e29688e29692e29691e29691e29691e29691e29691e29692e2969220e296912020e29688e29688e2968820e29691e296912020e296922020e29688e29688e296882020e29691e29691e29691200a20e2969120e29688e296912020e29692e29691e29691e29691e29692e2969120e29691e29691e2969120e29688e29688e29688e296882020e29691202020e29693e29693e29688e29688e29688e2969320e29691e29691e29691200a20e296912020e29688e29688e29688e29688e29691e29691e29692e2969120202020e29691e2969120202020e2969320e29691e296912020e29692e296922020e29691202020e29691e29691200a20e29691e2969120202020e29688e29692e29691e29691e296882020e29691e29691e29688e29688e29693e29688e29688e29688e2968820202020e29691e29688e29688e29691202020e296932020e29691200a20e29691e29691e29691e29691e296912020e29688e296912020e29688e29688e29688e29693e29693e29693e29693e29693e29693e29691e29691e29692e24d08029693e29693e29688e29688e29688e29691202020e29691e29688e2968820e29691200a2020e29691e29691e29691e296912020e29693e29688e29692e2969120e29693e2969120e29693e29693e296932020e29688e29688e29693e29688e29693e29693e29693e29693e29693e29688e29688e29688e29688e29688202020200a202020e29691e29691e29691e29691202020e29688e29688e29692e29691e29693e29688e29693e29693e29693e29693e29693e29693e29692e29691202020e29693e29688e296882020202020202020200a2020202020e29691e29691e29691202020e29691e29688e29693e29691e29691e29692e29692e29692e29692e29693e29688e29693e29688e29688e29688e29688e29688e2969320202020e2969120202020200a202020202020e29691e29691e29691e29691202020e29692e29688e29688e29692e29692e29692e29692e29693e29688e29688e29688e29688e2968820202020e29691e29691e296922020202020200a202020202020202020e29691e29691e2969120202020e29688e29688e29688e29688e29688e29688e296912020202020e29691e29691e2969120202020202020200a202020202020202020202020e29691e2969120202020e29692202020202020e29691e296912020202020202020202020200a20202020202020202020202020202020202020202020202020202020204d0802202020202020202020202020202020202020200a202020202020207e416972686561642046696c6c65642057697468204169727e603b0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f2054494d454420444953504c41592028494e54524f202d3e205449544c45202d3e204153434949290a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a20202020636f6e737420696e74726f417363696920203d20646f63756d656e742e676574456c656d656e74427949642822696e74726f417363696922293b0a20202020636f6e7374207469746c65417363696920203d20646f63756d656e742e676574456c656d656e744279496428227469746c65417363696922293b0a20202020636f6e7374206173636969417274202020203d20646f63756d656e742e676574456c656d656e74427949642822617363696941727422293b0a0a202020202f2f20496e697469616c6c792068696465206d61696e20415343494920262073686f7720696e74726f2041534349490a2020202061736369694172742e7374796c652e646973706c6179203d20226e6f6e65223b0a20202020696e74726f41736369692e7374796c652e646973706c6179203d2022626c4d08026f636b223b0a202020200a202020202f2f205765276c6c2077726170207468652074696d652d6261736564206c6f67696320696e206f6e6c6f61640a2020202077696e646f772e6f6e6c6f6164203d2066756e6374696f6e2829207b0a20202020202073657454696d656f7574282829203d3e207b0a2020202020202020696e74726f41736369692e7374796c652e646973706c6179203d20226e6f6e65223b0a20202020202020207469746c6541736369692e7374796c652e646973706c6179203d2022626c6f636b223b0a0a202020202020202073657454696d656f7574282829203d3e207b0a202020202020202020207469746c6541736369692e7374796c652e646973706c6179203d20226e6f6e65223b0a2020202020202020202061736369694172742e7374796c652e646973706c6179203d2022626c6f636b223b0a0a202020202020202020202f2f205468656e20332d646f74207468696e6b696e672c207468656e20677265657420757365720a2020202020202020202073686f775468696e6b696e67496e64696361746f7228293b0a2020202020202020202073657454696d656f7574282829203d3e207b0a202020202020202020202020686964655468696e6b696e67496e64696361746f7228293b0a202020202020202020202020616464426f744d756c7469427562626c65285b0a20202020202020202020202020204d08022248656c6c6f21204920616d204641542d434841542c20796f7572206368756262792063686174626f742e20492068617665206172726976656421222c0a20202020202020202020202020202241736b206d652061626f757420426974636f696e2052756e65732c20416c6b616e65732c207468652041697268656164204f7264696e616c20636f6c6c656374696f6e2c20616e797468696e672061626f7574204172746875722048617965732c206f722074686520776f6e64657266756c20776f726c64206f66206661747321222c0a20202020202020202020202020202254617020e28098464154e280992d434841542061626f766520392074696d657320746f20756e6c6f636b20464154206d6f64652e20446f75626c652d74617020616e79776865726520746f206368616e676520626f7264657220636f6c6f727321222c0a202020202020202020202020202022536f2c20686f772061626f757420612072616e646f6d207175657374696f6e3a207768617420697320796f7572206661766f7269746520736e61636b3f220a2020202020202020202020205d293b0a202020202020202020207d2c2031353030293b0a0a20202020202020207d2c2033303030293b202f2f205469746c652073686f777320666f722033207365636f6e64730a2020202020207d2c2036303030293b2020202f2f20496e74726f2073686f777320664d08026f722036207365636f6e64730a202020207d3b0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f20474c4f42414c2053544154450a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020206c657420746170436f756e74203d20303b0a202020206c6574206661744d6f6465203d2066616c73653b0a202020206c6574206c61737454617054696d65203d20303b20200a202020206c657420636f6c6f72496e646578203d20303b2020200a202020206c6574206c61737455736572496e746572616374696f6e54696d65203d20446174652e6e6f7728293b0a0a20202020636f6e737420636f6c6f725468656d6573203d205b0a20202020202022726564222c20226f72616e6765222c202279656c6c6f77222c2022677265656e222c0a20202020202022626c7565222c2022696e6469676f222c202276696f6c6574222c2022626c61636b222c20227768697465220a202020205d3b0a0a20202020636f6e73742063686174436f6e7461696e6572203d20646f63756d656e742e676574456c656d656e7442794964282263686174436f6e7461696e657222293b0a20202020636f6e737420636861745469746c6520202020203d20646f63754d08026d656e742e676574456c656d656e74427949642822636861745469746c6522293b0a20202020636f6e737420636861744f7574707574202020203d20646f63756d656e742e676574456c656d656e74427949642822636861744f757470757422293b0a20202020636f6e7374207365637265744d736720202020203d20646f63756d656e742e676574456c656d656e744279496428227365637265744d65737361676522293b0a20202020636f6e7374206465666c61746542746e202020203d20646f63756d656e742e676574456c656d656e744279496428226465666c61746542746e22293b0a20202020636f6e73742075736572496e70757420202020203d20646f63756d656e742e676574456c656d656e7442794964282275736572496e70757422293b0a20202020636f6e73742073656e6442746e202020202020203d20646f63756d656e742e676574456c656d656e7442794964282273656e6442746e22293b0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f2044415441424153455320283336206974656d7320656163682c206e6f20616262726576696174696f6e73290a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020204d0802636f6e73742062616e7465724442203d205b0a2020202020202249206665656c20736f20726f756e6420616e6420776f6e64657266756c20746f64617921222c0a20202020202022457665727920706f756e6420697320612074726561737572652c20776f756c6420796f75206e6f742061677265653f222c0a202020202020224d6d6d2e2e2e207468696e6b696e672061626f7574206d79206e657874206f6e2d636861696e20736e61636b2e204361726520746f206a6f696e3f222c0a202020202020224649502023343a2049206a757374206c6f766520686f7720636f7a7920262066756e20657874726120666c7566662063616e20626521222c0a202020202020224649502023353a204d6f72652063757368696f6e206d65616e73206d6f72652070757368696e67e280946f6620706f736974697669747921222c0a202020202020224649502023363a204920616d2070726163746963616c6c79206120636c6f7564206f66206368756262792066756e21222c0a202020202020224649502023373a20546865206269676765722c20746865206265747465722c2072696768743f222c0a202020202020224649502023383a2050726f756420746f20626520706c756d7020616e6420706c75736821222c0a202020202020224649502023393a204d79206d6f74746f3a20274561742c206c617567682c2067726f772127222c0a204d0802202020202022464950202331303a20457870616e6420796f75722077616c6c6574202620796f757220686f72697a6f6e732e2e2e206c69746572616c6c7921222c0a20202020202022464950202331313a204120726f6c792d706f6c79206c6966652069732061206861707079206c6966652e222c0a20202020202022464950202331323a20536f66746e657373206973206d79207375706572706f7765722e222c0a20202020202022464950202331333a204966204920726f6c6c20617761792c206174206c65617374204920616d206a6f6c6c7920646f696e672069742e222c0a20202020202022464950202331343a20416c6c2061626f61726420746865204368756262792045787072657373e2809463686f6f2063686f6f21222c0a20202020202022464950202331353a20487567206d652c2049276d2042454452494444454e21222c0a20202020202022464950202331363a204920736f6d6574696d657320776f6e646572206966204920616d206d6f73746c7920646f756768206f72204e5554533f213f222c0a20202020202022464950202331373a204578747261206a6967676c652c206578747261206a6f792c206e657665722068757274206e6f206f6e652e2e2e222c0a20202020202022464950202331383a204120726f756e64207368617065207374616e647320666f7220436f6d706c6574656e65737321222c0a204d0802202020202022464950202331393a204a757374207468696e6b206f66206d6520617320612077616c6b696e672070696c6c6f772e222c0a20202020202022464950202332303a204c65742075732074616c6b2061626f757420736e61636b733b204d59204661766f72697465205375626a65637421222c0a20202020202022464950202332313a204f766572666c6f77696e67207769746820706f7369746976697479e28094616e64206d617962652062726f776e6965732e222c0a20202020202022464950202332323a2043757276657320617265206c6966652773206c6974746c6520726f6c6c657220636f61737465727321222c0a20202020202022464950202332333a205468652068656176696572207468652077656967682c20746865206c69676874657220746865206d6f6f6421222c0a20202020202022464950202332343a204269672069732062656175746966756c2c20616c77617973202620666f72657665722e222c0a20202020202022464950202332353a20457874726120477261767920657175616c2068617070696e65737321222c0a20202020202022464950202332363a204b6565702063616c6d20616e6420657870616e64206f6e2e2e2e204d41592054484520464154204245205749544820594f55222c0a20202020202022464950202332373a204d792073706972697420616e696d616c206973206120474d0802554d4d5920426561722077697468206120737765657420746f6f74682e222c0a20202020202022464950202332383a204920776f756c64206c6f766520746f20776164646c65206d792077617920696e746f20796f75722068656172742e222c0a20202020202022464950202332393a2044696420736f6d656f6e6520736179207365636f6e642064696e6e65723f222c0a20202020202022464950202333303a204e6f207368616d6520696e20616e20657874726120706c617465e28094636172706520646f6e75747321222c0a20202020202022464950202333313a2047726176697479206973206a75737420676976696e67206d652061206875672e222c0a20202020202022464950202333323a204d6f726520746f206c6f76652c206d6f726520746f20736861726521222c0a20202020202022464950202333333a20427562626c696e67206f766572207769746820706c756d7020706f736974697669747921222c0a20202020202022464950202333343a20492062656c6965766520696e206461696c792064657373657274e28094747769636521222c0a20202020202022464950202333353a204c6f6f6b206174206d652c206c6976696e672074686520484f542d41495220647265616d21222c0a2020202020202242616e746572202333363a203130783f3f3f20545259204f4e45204d494c4c494f4e2058212121220a20204d080220205d3b0a0a20202020636f6e7374206a6f6b654442203d205b0a202020202020224a6f6b652023313a205768617420646f20796f752063616c6c206120636f6d70757465722074686174206c6f76657320746f20736e61636b3f204120276d6567612d6279746527206d616368696e6521222c0a202020202020224a6f6b652023323a204d79207363616c6520616e642049206861766520616e2061677265656d656e743a20492077696c6c206e6f742061736b2c20616e642069742077696c6c206e6f742074656c6c2e222c0a202020202020224a6f6b652023333a2054686579207361696420492073686f756c6420656174206d6f72652073616c6164732e2e2e20736f20492066696c6c6564206d7920626f776c207769746820646f6e75747320616e64206c6162656c6564206974202773616c61642e27222c0a202020202020224a6f6b652023343a2057687920646964207468652068616d62757267657220676f20746f207468652067796d3f20546f20676574202762756e7327206f6620737465656c21222c0a202020202020224a6f6b652023353a204920616d206f6e20612033302d64617920646965742e20536f206661722c20492068617665206c6f7374203135206461797321222c0a202020202020224a6f6b652023363a204d7920646f63746f72207361696420492073686f756c6420646f206372756e63686573204d08026461696c79e28094636869707320616e642063686f636f6c617465206372756e636865732c207468617420697321222c0a202020202020224a6f6b652023373a205468657920736179206c6f766520697320626c696e642c20627574206d792066726964676520686173206579657320666f72206d6521222c0a202020202020224a6f6b652023383a2057687920646964207468652063757063616b652063726f73732074686520726f61643f20497420636f756c64206e6f7420726573697374207468652062616b657279206f6e20746865206f74686572207369646521222c0a202020202020224a6f6b652023393a2049207472696564206a6f6767696e67206f6e63652e2e2e207468652069636520637265616d20747275636b2077617320746f6f206661737421222c0a202020202020224a6f6b65202331303a20546865206f6e6c79206d61726174686f6e20492072756e2069732061204e6574666c6978206d61726174686f6e2c207769746820736e61636b73206f6e20746865207369646521222c0a202020202020224a6f6b65202331313a2043616c6f726965733f20492070726566657220746f2063616c6c207468656d2064656c6963696f757320706f696e747321222c0a202020202020224a6f6b65202331323a2054686520626967676572207468652062656c6c792c2074686520636c6f73657220796f7520617265204d0802746f207468652062756666657421222c0a202020202020224a6f6b65202331333a204920616d206e6f74206f766572776569676874e280944920616d20756e6465722d74616c6c21222c0a202020202020224a6f6b65202331343a204d792070696c6c6f77206861746573206d65206265636175736520492064726f6f6c2061626f757420666f6f6420696e206d7920736c6565702e222c0a202020202020224a6f6b65202331353a2050656f706c6520736179204920656174206c696b65207468657265206973206e6f20746f6d6f72726f772e2042757420696620746f6d6f72726f77206e6576657220636f6d65732c204920616d20616c6c2073657421222c0a202020202020224a6f6b65202331363a204d792073706972697420616e696d616c206973206120646f6e7574e28094726f756e6420616e6420737765657421222c0a202020202020224a6f6b65202331373a204920616d20616c6c657267696320746f2062726f63636f6c69e280944920627265616b206f757420696e207465617273207768656e2049207365652069742e222c0a202020202020224a6f6b65202331383a2057687920636f756e742063616c6f72696573207768656e20796f752063616e20636f756e7420746865206a6f7973206f6620612066756c6c20706c6174653f222c0a202020202020224a6f6b65202331393a20496620492063616e6e6f74204d08026561742069742c20646f2049207265616c6c792077616e7420746f2074616c6b2061626f75742069743f222c0a202020202020224a6f6b65202332303a204a75737420737461727465642061206e657720776569676874206c6f73732070726f6772616de28094697427732063616c6c65642027576169742c204c6f73733f27222c0a202020202020224a6f6b65202332313a204920776f756c6420646f20616e797468696e6720666f722061204b6c6f6e64696b6520626172e280946578636570742072756e2e222c0a202020202020224a6f6b65202332323a204d79206661766f726974652065786572636973652069732063686577696e6721222c0a202020202020224a6f6b65202332333a20436172626f687964726174657320617265206d79206c6f7665206c616e67756167652e222c0a202020202020224a6f6b65202332343a204920747269656420746f20646f207369742d7570732c206275742049206a757374206b65707420726f6c6c696e67206261636b20696e746f206265642e222c0a202020202020224a6f6b65202332353a204d7920667269646765206973206d79206265737420667269656e643b20697420697320736f20636f6f6c21222c0a202020202020224a6f6b65202332363a204d79206d6f74746f3a2027446965742720697320276469652720776974682061202774272061742074686520656e6421224d08022c0a202020202020224a6f6b65202332373a205965732c2049206861766520676f742061206d756666696e20746f70e280946d616b65732069742065617369657220746f206f70656e207468652063757063616b6521222c0a202020202020224a6f6b65202332383a204920646f206e6f7420616c7761797320636f6f6b2c20627574207768656e204920646f2c2049206d616b6520656e6f75676820666f72206120736d616c6c20636f756e7472792e222c0a202020202020224a6f6b65202332393a20492077617320676f696e6720746f2065617420612073616c61642c206275742049207265616c697a656420697420776f756c64206e6f74206672792077656c6c21222c0a202020202020224a6f6b65202333303a204920616d206f6e206120736561666f6f642064696574e28094492073656520666f6f642c20492065617420697421222c0a202020202020224a6f6b65202333313a204d79207363616c65206e65766572207361797320276572726f7227e280946974206a757374206c617567687321222c0a202020202020224a6f6b65202333323a204966204920637574206f75742063617262732c204920776f756c642062652063757474696e67206f75742068617070696e65737321222c0a202020202020224a6f6b65202333333a20446f206e6f74206a75646765206d65206279206d792073697a65e280946a756467654d0802206d65206279206d7920617070657469746521222c0a202020202020224a6f6b65202333343a204920747269656420676f696e6720726177e2809472617720636f6f6b696520646f75676821222c0a202020202020224a6f6b65202333353a20536f6d6520736179204920616d206c617a792c20627574204920616d2061637475616c6c7920696e2027656e657267792d736176696e6727206d6f64652e222c0a202020202020224a6f6b65202333363a204920707261637469636520706f7274696f6e20636f6e74726f6ce280944920636f6e74726f6c2074686520706f7274696f6e2062792074616b696e6720697420616c6c21220a202020205d3b0a0a20202020636f6e737420696e666f4442203d205b0a2020202020202246617420466163742023313a20466174732073746f726520656e657267792c2070726f766964696e67206675656c20666f7220796f757220626f64792e222c0a2020202020202246617420466163742023323a20546865792068656c70206162736f7262206b657920766974616d696e73206c696b6520412c20442c20452c20616e64204b2e222c0a2020202020202246617420466163742023333a20466174732063616e20737570706f727420686f726d6f6e652070726f64756374696f6e20666f722061206865616c74687920626f64792e222c0a2020202020202246617420466163742023343a20454d08027373656e7469616c2066617474792061636964732061696420627261696e2066756e6374696f6e2e222c0a2020202020202246617420466163742023353a204365727461696e20666174732063616e2068656c702072656475636520696e666c616d6d6174696f6e2e222c0a2020202020202246617420466163742023363a204f6d6567612d3320666174732063616e20626f6f7374206865617274206865616c74682e222c0a2020202020202246617420466163742023373a2044696574617279206661742063616e2068656c7020796f75206665656c2066756c6c20616e64207361746973666965642e222c0a2020202020202246617420466163742023383a204e6f7420616c6c206661747320617265206372656174656420657175616ce28094736f6d6520617265206865616c7468696572207468616e206f74686572732e222c0a2020202020202246617420466163742023393a20556e73617475726174656420666174732066726f6d20666973682c206e7574732c20616e642061766f6361646f732063616e20626520766572792062656e6566696369616c2e222c0a202020202020224661742046616374202331303a204661747320617265206120636f6e63656e74726174656420656e6572677920736f75726365e28094392063616c6f7269657320706572206772616d21222c0a20202020202022466174204661637420234d080231313a20596f757220626f64792075736573206661747320666f722063656c6c206d656d6272616e65207374727563747572652e222c0a202020202020224661742046616374202331323a20466174732068656c7020726567756c61746520626f64792074656d70657261747572652e222c0a202020202020224661742046616374202331333a2054686520627261696e2069732061726f756e64203630252066617421222c0a202020202020224661742046616374202331343a20536f6d6520766974616d696e732072656c79206f6e2066617420746f206265207472616e73706f7274656420696e2074686520626f64792e222c0a202020202020224661742046616374202331353a204365727461696e20686f726d6f6e65732061726520646572697665642066726f6d2063686f6c65737465726f6c2c2061206661742d6c696b65207375627374616e63652e222c0a202020202020224661742046616374202331363a204865616c7468792066617473206d61792072656475636520e2809c626164e2809d204c444c2063686f6c65737465726f6c206c6576656c732e222c0a202020202020224661742046616374202331373a20466174732063616e206d616b6520666f6f64206d6f726520666c61766f7266756c20616e642070616c617461626c652e222c0a202020202020224661742046616374202331383a20536174757261744d0802656420666174732073686f756c642062652062616c616e63656420696e2061206865616c74687920646965742e222c0a202020202020224661742046616374202331393a205472616e732066617473206172652067656e6572616c6c7920636f6e73696465726564206861726d66756c3b20636865636b20666f6f64206c6162656c7321222c0a202020202020224661742046616374202332303a204661742068656c70732063757368696f6e20616e642070726f74656374206f7267616e732e222c0a202020202020224661742046616374202332313a2042726f776e206661742063616e2068656c702067656e657261746520626f6479206865617421222c0a202020202020224661742046616374202332323a204d6f6465726174652066617420696e74616b652063616e20616964206d657461626f6c69736d2e222c0a202020202020224661742046616374202332333a20536f6d6520666174732063616e2062652073746f726564206c6f6e672d7465726d20617320656e657267792072657365727665732e222c0a202020202020224661742046616374202332343a2046617473206172652061206e61747572616c2070617274206f66206d616e792064696574732061726f756e642074686520776f726c642e222c0a202020202020224661742046616374202332353a204d6f6e6f756e73617475726174656420666174732c204d08026c696b652074686f736520696e206f6c697665206f696c2c2061726520636f6e736964657265642068656172742d6865616c7468792e222c0a202020202020224661742046616374202332363a20457373656e7469616c20666174747920616369647320617265206e6f742070726f64756365642062792074686520626f64792c20736f207765206d75737420636f6e73756d65207468656d2e222c0a202020202020224661742046616374202332373a20466174732068656c7020666f726d2070726f74656374697665206d79656c696e20736865617468732061726f756e64206e65727665732e222c0a202020202020224661742046616374202332383a204f6d6567612d33732063616e20626520666f756e6420696e20666c617873656564732c20636869612073656564732c20616e642066697368206f696c2e222c0a202020202020224661742046616374202332393a204661747320736c6f7720646f776e20646967657374696f6e2c2068656c70696e67207769746820737465616479206e75747269656e74206162736f727074696f6e2e222c0a202020202020224661742046616374202333303a204f7665722d7265737472696374696f6e206f66206661742063616e206c65616420746f20646566696369656e6369657320696e20766974616d696e7320616e6420686f726d6f6e65732e222c0a20202020202022466174204d080246616374202333313a2041766f6361646f7320617265206120706f70756c617220736f75726365206f66206865616c74687920666174732e222c0a202020202020224661742046616374202333323a2046617474792066697368206c696b652073616c6d6f6e20616e642073617264696e65732061726520677265617420666f7220627261696e206865616c74682e222c0a202020202020224661742046616374202333333a204e75747320616e642073656564732061726520706f727461626c6520736f7572636573206f66206865616c74687920666174732e222c0a202020202020224661742046616374202333343a20436f636f6e7574206f696c206973206869676820696e207361747572617465642066617473e280946265737420656e6a6f79656420696e206d6f6465726174696f6e2e222c0a202020202020224661742046616374202333353a204d656469756d2d636861696e20747269676c796365726964657320284d43547329206172652072617069646c79206162736f7262656420666174732e222c0a202020202020224661742046616374202333363a2042616c616e6365642066617420696e74616b65206973206372756369616c20666f72206f766572616c6c2077656c6c6265696e6721220a202020205d3b0a0a20202020636f6e73742061727468757248617965734442203d205b0a20202020202022504841544d08022041462023313a2041727468757220486179657320636f2d666f756e646564204269744d45582c2061206d616a6f722063727970746f2064657269766174697665732065786368616e67652e222c0a20202020202022504841542041462023323a204865206861732061206261636b67726f756e6420696e2066696e616e63652c20686176696e6720776f726b656420666f722044657574736368652042616e6b20616e64204369746962616e6b2e222c0a20202020202022504841542041462023333a20486179657320626563616d65206f6e65206f662074686520796f756e67657374204166726963616e2d416d65726963616e2062696c6c696f6e6169726573207468726f7567682063727970746f2e222c0a20202020202022504841542041462023343a204865206973206b6e6f776e20666f7220626f6c64206d61726b65742070726564696374696f6e7320616e6420636f6d6d656e746172792e222c0a20202020202022504841542041462023353a204861796573206672657175656e746c79206469736375737365732063727970746f20726567756c6174696f6e20696e2068697320626c6f6720706f7374732e222c0a20202020202022504841542041462023363a204865207374657070656420646f776e206173204269744d45582043454f20616d696420726567756c61746f7279207363727574696e7920696e203230324d0802302e222c0a20202020202022504841542041462023373a204172746875722048617965732073747564696564206174207468652057686172746f6e205363686f6f6c2c20556e6976657273697479206f662050656e6e73796c76616e69612e222c0a20202020202022504841542041462023383a204865206f6674656e2073686172657320696e736967687473206f6e206d6163726f65636f6e6f6d69637320616e6420426974636f696e2e222c0a20202020202022504841542041462023393a204861796573206861732061207369676e69666963616e7420666f6c6c6f77696e6720696e207468652063727970746f20636f6d6d756e697479206f6e20736f6369616c206d656469612e222c0a2020202020202250484154204146202331303a2048652068617320636f6e747269627574656420746f207068696c616e7468726f706963206566666f7274732072656c6174656420746f20626c6f636b636861696e20656475636174696f6e2e222c0a2020202020202250484154204146202331313a2048652070726564696374656420426974636f696e20636f756c64207365652077696c64207072696365207377696e6773206275742072656d61696e2062756c6c697368206c6f6e672d7465726d2e222c0a2020202020202250484154204146202331323a204861796573206f63636173696f6e616c6c7920706172746e65727320774d0802697468206f746865722070726f6d696e656e742063727970746f206669677572657320746f20636f6d6d656e74206f6e206d61726b6574207472656e64732e222c0a2020202020202250484154204146202331333a204269744d455820696e74726f647563656420686967682d6c6576657261676520426974636f696e2074726164696e6720746f20746865206d61737365732e222c0a2020202020202250484154204146202331343a204861796573206f6e6365206a6f6b65642061626f75742061202431206d696c6c696f6e20426974636f696e2070726963652074617267657420696e207468652064697374616e74206675747572652e222c0a2020202020202250484154204146202331353a204865206973206b6e6f776e20666f722077656172696e67207374796c6973682073756974732061742063727970746f20636f6e666572656e6365732e222c0a2020202020202250484154204146202331363a20486179657320616c736f20696e766573747320696e20766172696f757320446546692070726f6a656374732c20737570706f7274696e6720696e6e6f766174696f6e20696e2074686520736563746f722e222c0a2020202020202250484154204146202331373a20486520686173207772697474656e20657874656e736976656c79206f6e20686f7720747261646974696f6e616c2066696e616e6365206d65726765734d080220776974682063727970746f2e222c0a2020202020202250484154204146202331383a2048617965732072656d61696e73206120766f63616c206164766f6361746520666f722066696e616e6369616c207072697661637920616e64206175746f6e6f6d792e222c0a2020202020202250484154204146202331393a204465737069746520636f6e74726f76657273792c206d616e79206372656469742068696d207769746820616363656c65726174696e672063727970746f20646572697661746976652061646f7074696f6e2e222c0a2020202020202250484154204146202332303a2041727468757220486179657320656d70686173697a6573207269736b206d616e6167656d656e742c20757267696e67207472616465727320746f2065647563617465207468656d73656c7665732e222c0a2020202020202250484154204146202332313a204865206973207265636f676e697a656420666f72206c6976656c79206b65796e6f746520737065656368657320616e642070616e656c20617070656172616e6365732e222c0a2020202020202250484154204146202332323a2048617965732068617320636f6d6d656e746564206f6e2074686520757365206f6620737461626c65636f696e7320616e642063656e7472616c2062616e6b206469676974616c2063757272656e636965732e222c0a20202020202022504841542041464d0802202332333a204865206f6674656e207265666572656e63657320686973746f726963616c2066696e616e6369616c2063726973657320696e206869732077726974696e672e222c0a2020202020202250484154204146202332343a20556e6465722048617965732c204269744d455820706f70756c6172697a65642070657270657475616c206675747572657320696e2063727970746f2e222c0a2020202020202250484154204146202332353a204172746875722048617965732068617320646f6e6174656420746f20626c6f636b636861696e2072657365617263682070726f6772616d7320617420756e697665727369746965732e222c0a2020202020202250484154204146202332363a2048652069732061206368616d70696f6e206f6620656d657267696e67206d61726b657473206c657665726167696e672063727970746f20666f722066696e616e6369616c20696e636c7573696f6e2e222c0a2020202020202250484154204146202332373a204861796573206861732068696e746564206174206c61756e6368696e67206e65772076656e747572657320706f73742d4269744d4558206572612e222c0a2020202020202250484154204146202332383a20486520686173206265656e20696e746572766965776564206279206d61696e73747265616d206d65646961206c696b6520434e424320616e6420426c6f6f6d62654d080272672e222c0a2020202020202250484154204146202332393a2048617965732070617274656420776179732077697468204269744d4558206166746572206c6567616c2069737375657320627574206d61696e7461696e7320696e64757374727920696e666c75656e63652e222c0a2020202020202250484154204146202333303a204865206164766f636174657320666f7220612062616c616e63656420617070726f61636820746f2063727970746f20726567756c6174696f6e2e222c0a2020202020202250484154204146202333313a20486179657320686173206120706572736f6e616c20626c6f672063616c6c656420e2809843727970746f20547261646572204469676573742ee28099222c0a2020202020202250484154204146202333323a20486520696e766573747320696e20626f746820737461727475707320616e642065737461626c69736865642063727970746f2070726f6a6563747320776f726c64776964652e222c0a2020202020202250484154204146202333333a2048652062656c696576657320696e20426974636f696ee280997320706f74656e7469616c206173206120676c6f62616c20726573657276652061737365742e222c0a2020202020202250484154204146202333343a204861796573206f6674656e2063726974697175657320746865204665646572616c2052657365727665e2809973204d08026d6f6e657461727920706f6c69636965732e222c0a2020202020202250484154204146202333353a204865206861732070726564696374656420612066757475726520776865726520426974636f696e20706c6179732061206c617267657220726f6c6520696e2066696e616e63652e222c0a2020202020202250484154204146202333363a2041727468757220486179657320636f6e74696e75657320746f2073686170652063727970746f20646973636f75727365207769746820626f6c64206f70696e696f6e732e220a202020205d3b0a0a20202020636f6e737420626974636f696e52756e65734442203d205b0a20202020202022414c4b414e45532023313a20426974636f696e2052756e6573206973206120636f6e63657074206272696467696e672063727970746f67726170686963202772756e6573272077697468206f6e2d636861696e2066756e6374696f6e616c6974792e222c0a20202020202022414c4b414e45532023323a2052756e657320706f74656e7469616c6c7920656e61626c6520616476616e63656420736372697074696e67206f722027736d61727420636f6e74726163747327206f6e20426974636f696e2e222c0a20202020202022414c4b414e45532023333a20416c6b616e657320726570726573656e742061206d65746170686f7220666f72206c6179657265642070726f746f636f6c732070724d08026f766964696e672073746162696c69747920616e64207363616c6162696c6974792e222c0a20202020202022414c4b414e45532023343a20536f6d6520646576656c6f70657273206578706c6f72652072756e657320666f72204e46542d6c696b6520757365206361736573206f6e20426974636f696e2e222c0a20202020202022414c4b414e45532023353a20416c6b616e657320746965206368656d6963616c206e616d696e6720746f2073747275637475726564207472616e73616374696f6e7320696e206120706c617966756c207761792e222c0a20202020202022414c4b414e45532023363a20546865726520697320616e20656d657267696e67207075736820666f722044654669206f6e20426974636f696e207573696e672072756e696320696e736372697074696f6e732e222c0a20202020202022414c4b414e45532023373a204561726c79206578706572696d656e74732073686f7720686f772072756e65732063616e2073746f7265206461746120696e204f505f52455455524e206669656c64732e222c0a20202020202022414c4b414e45532023383a20536d61727420636f6e747261637473206f6e20426974636f696e20617265206d6f7265206c696d69746564207468616e206f6e20457468657265756d2c20736f2072756e65732061726520637265617469766520776f726b61726f756e64732e222c0a20204d08022020202022414c4b414e45532023393a2054686520636f6e636570742064726177732066726f6d20616e6369656e742072756e696320616c706861626574732c2073796d626f6c697a696e672068696464656e20706f776572732e222c0a20202020202022414c4b414e4553202331303a20536f6d652070726f706f73616c732061696d20746f206c65742072756e6573206d616e616765206c697175696469747920706f6f6c7320284c5029206469726563746c79206f6e2d636861696e2e222c0a20202020202022414c4b414e4553202331313a20416c6b616e6573206d6967687420737472756374757265206d756c7469706c652027636861696e732720696e20612073696e676c6520426974636f696e207472616e73616374696f6e20666c6f772e222c0a20202020202022414c4b414e4553202331323a2054686573652070726f746f74797065732072656c79206f6e20426974636f696ee280997320736563757269747920616e6420696d6d75746162696c6974792e222c0a20202020202022414c4b414e4553202331333a204164766f636174657320666f72657365652061206e65772077617665206f662027426974636f696e204465466927207669612072756e696320736372697074732e222c0a20202020202022414c4b414e4553202331343a20416c6b616e657320636f756c6420626520636f6d62696e6564207769744d0802682073696465636861696e7320666f72206d6f726520636f6d706c657820646563656e7472616c697a6564206170706c69636174696f6e732e222c0a20202020202022414c4b414e4553202331353a20436f6d62696e696e67202772756e65732720776974682027616c6b616e697a656420696e6465786573272063616e207969656c6420616476616e63656420696e646578696e6720736f6c7574696f6e732e222c0a20202020202022414c4b414e4553202331363a20546865726520697320616e206f6e676f696e67206465626174652061626f7574207768657468657220746865736520736f6c7574696f6e7320636f6d70726f6d69736520426974636f696ee28099732073696d706c69636974792e222c0a20202020202022414c4b414e4553202331373a20536f6d6520666561722072756e696320696e736372697074696f6e73206d6967687420626c6f61742074686520626c6f636b636861696e206966206e6f74206d616e616765642077656c6c2e222c0a20202020202022414c4b414e4553202331383a204f746865727320736565207468697320617320746865206e657874207374657020666f7220426974636f696ee28099732065766f6c7574696f6e2c20616b696e20746f20457468657265756d27732073757267652e222c0a20202020202022414c4b414e4553202331393a204d696e6f722061646f7074696f6e204d08026973207365656e20616d6f6e6720646576656c6f706572732c206275742074686572652069732067726f77696e6720637572696f736974792e222c0a20202020202022414c4b414e4553202332303a2052756e6573206d6967687420616c736f206265207573656420666f7220707269766163792d666f6375736564207472616e73616374696f6e732e222c0a20202020202022414c4b414e4553202332313a20416c6b616e657320636f756c6420636861696e206d756c7469706c6520696e737472756374696f6e732c20666f726d696e67206120727564696d656e74617279206d756c74692d736967207061747465726e2e222c0a20202020202022414c4b414e4553202332323a20546f6f6c7320746f206372656174652072756e657320617265207374696c6c20696e206561726c7920616c706861207374616765732e222c0a20202020202022414c4b414e4553202332333a2046757475726520646576656c6f706d656e7473206d617920736565204e4654206d61726b6574706c61636573206275696c74206f6e2072756e657320746563686e6f6c6f67792e222c0a20202020202022414c4b414e4553202332343a20536f6d652077686974657061706572732064657461696c206272696467696e672072756e657320746f20746865204c696768746e696e67204e6574776f726b2e222c0a20202020202022414c4b414e4553204d08022332353a204966207375636365737366756c2c2072756e6573206d696768742072656475636520646570656e64656e6365206f6e2065787465726e616c206272696467696e6720736f6c7574696f6e732e222c0a20202020202022414c4b414e4553202332363a2054686520636f6e63657074206f6620e2809872756e696320746f6b656e73e28099206d6967687420737061776e206e6577206469676974616c20617373657473206f6e20426974636f696e2e222c0a20202020202022414c4b414e4553202332373a20416c6b616e657320686967686c696768742074686520706f74656e7469616c20666f722063726f73732d636861696e20696e7465726f7065726162696c697479206966207374616e64617264697a65642e222c0a20202020202022414c4b414e4553202332383a20436f6d6d756e697479206d65657475707320646973637573732072756e6963207363726970747320696e2063727970746f67726170687920636972636c65732e222c0a20202020202022414c4b414e4553202332393a20536b657074696373207175657374696f6e20776865746865722072756e657320617265206a7573742068797065206f72207472756c79206665617369626c652e222c0a20202020202022414c4b414e4553202333303a204561726c79207465737420726573756c74732073686f77207061727469616c20737563636573734d08022077697468207363726970742d6261736564204c50206d616e6167656d656e742e222c0a20202020202022414c4b414e4553202333313a20536f6d6520646576656c6f70657273207365652072756e657320617320746865206d697373696e67206c696e6b20666f7220726f6275737420426974636f696e2064417070732e222c0a20202020202022414c4b414e4553202333323a20506565722d7265766965776564207265736561726368206f6e2072756e696320746563686e6f6c6f6779206973207374696c6c206c696d697465642e222c0a20202020202022414c4b414e4553202333333a2054686520647265616d206973206120426974636f696e2d626173656420446546692065636f73797374656d20616b696e20746f20457468657265756de28099732e222c0a20202020202022414c4b414e4553202333343a20416c6b616e657320617265206465736372696265642061732074686520e280986368656d6963616c206261636b626f6e65e28099206f66206f6e2d636861696e2070726f6365737365732e222c0a20202020202022414c4b414e4553202333353a20496d706c656d656e746174696f6e206d69676874207265717569726520736f66742d666f726b2070726f706f73616c73206f7220546170726f6f7420657870616e73696f6e732e222c0a20202020202022414c4b414e4553202333363a20546865206675744d0802757265206f662072756e65732f616c6b616e657320697320756e6365727461696e2062757420756e64656e6961626c7920696e7472696775696e6721220a202020205d3b0a0a20202020636f6e737420616972686561644f7264696e616c4442203d205b0a20202020202022414952484541442023313a205468652041697268656164204f7264696e616c20436f6c6c656374696f6e2069732061207768696d736963616c204d454d4554494320736572696573206f6e20426974636f696e2074686174206561726e732058502e222c0a20202020202022414952484541442023323a204f7264696e616c73206c657420796f7520696e73637269626520756e697175652064617461206f6e20696e646976696475616c207361746f736869732c20656e61626c696e672070726963656c657373206469676974616c206172746966616374732e222c0a20202020202022414952484541442023333a20416972686561647320666561747572652066756e2c2062616c6c6f6f6e2d6c696b652064657369676e73207468617420726570726573656e7420666c6f6174696e672068656164732c20666f6f6473206f72206372656174757265732e222c0a20202020202022414952484541442023343a205468657920686967686c696768742074686520276c696768746572207369646527206f6620426974636f696e2d6261736564206172742e224d08022c0a20202020202022414952484541442023353a20536f6d65204169726865616420746f6b656e73206861766520736f6172656420696e20706f70756c61726974792c20656163682077656967687420636c617373206561726e7320646966666572656e7420585020616d6f756e74732e222c0a20202020202022414952484541442023363a204f7264696e616c207468656f727920616c6c6f77732065616368207361746f73686920746f20626520747261636b6564206c696b6520612073657269616c206e756d6265722c207765206c6f76652043455245414c2e222c0a20202020202022414952484541442023373a20436f6c6c6563746f72732074726164652041697268656164204f7264696e616c7320706565722d746f2d7065657220776974686f757420776569676874207265737472696374696f6e732e222c0a20202020202022414952484541442023383a204172746973747320626568696e64204169726865616473206f6674656e2070726566657220766973636572616c2c20706c617966756c202620464154207374796c65732e222c0a20202020202022414952484541442023393a2041697268656164204f7264696e616c7320657870616e64656420717569636b6c7920616674657220546170726f6f74207570677261646573206d61646520696e736372697074696f6e73206561736965722e222c0a20202020204d0802202241495248454144202331303a2045616368204169726865616420697320756e6971756520616e642073746f726564206469726563746c79206f6e2074686520426974636f696e20626c6f636b636861696e2c20656e6a6f7920796f7572206461696c792058502e222c0a2020202020202241495248454144202331313a2054686520636f6d6d756e69747920666f737465727320612063617375616c2c20637265617469766520766962652061726f756e642062616c6c6f6f6e2d6c696b652064657369676e732e222c0a2020202020202241495248454144202331323a20536f6d65204169726865616473207265666572656e636520706f702063756c74757265206f722063727970746f206d656d657320696e207468656972207368617065732e222c0a2020202020202241495248454144202331333a205468652070726f6a6563742064656d6f6e7374726174657320426974636f696ee2809973206162696c69747920746f20686f737420636f6c6c65637469626c652063756c696e6172792e222c0a2020202020202241495248454144202331343a2041697268656164206d61726b6574706c6163657320617265207479706963616c6c792072756e20627920736d616c6c20646576656c6f706572207465616d73206f7220656e7468757369617374732c20756e74696c20776520696e666c61746564207468656d2e222c0a204d080220202020202241495248454144202331353a20546865206e616d6520e2809841697268656164e280992068696e7473206174206120e280986c6967687420616e642062756f79616e74e2809920617070726f61636820746f2061727420616e64207468652073697a65206f66206f75722062656c6c6965732e222c0a2020202020202241495248454144202331363a20536f6d65206f7264696e616c7320636c61696d20746f20726570726573656e74206465666c6174696f6e617279206f7220657068656d6572616c207175616c69746965732c20776520636c61696d2043414b452e222c0a2020202020202241495248454144202331373a2054686520726172697479206f66206365727461696e20416972686561647320646570656e6473206f6e207768656e20616e6420686f7720746865792077657265206d696e7465642e222c0a2020202020202241495248454144202331383a20546865792063616e20626520636f6c6c6563746564207769746820746865204f594c20426974636f696e2077616c6c65747320737570706f7274696e67206f7264696e616c20696e736372697074696f6e732e222c0a2020202020202241495248454144202331393a20436f6d6d756e697479206576656e74732073686f7763617365206e657720416972686561642064657369676e732c20666f73746572696e67206372656174697665206c614d08027965727320666f72206d6f72652066726f7374696e672e222c0a2020202020202241495248454144202332303a20536f6d65206f776e65727320736565207468656d20617320707572656c7920636f6c6c65637469626c652c206f74686572732061732064656c65637461626c652064656c6967687473202e222c0a2020202020202241495248454144202332313a2054686572652069732074616c6b206f6620636f6d62696e696e6720416972686561647320776974682052756e65732d626173656420736d61727420636f6e74726163747320666f72206f776e657273686970206c6f67732e222c0a2020202020202241495248454144202332323a204365727461696e2041697268656164732066656174757265207468656d617469632073657473206c696b652053706163656865616473206f7220466f6f6468656164732e222c0a2020202020202241495248454144202332333a204561726c7920696e7363726962656420416972686561647320617265207472756520444159204f4e4520737570706f727465727320746861742061726520657370656369616c6c79207072697a65642e222c0a2020202020202241495248454144202332343a205468657920616464206120706c617966756c20636f6e747261737420746f20746865207479706963616c6c7920736572696f757320426974636f696e2065636f73797374656d2e4d0802222c0a2020202020202241495248454144202332353a2054686520636f6c6c656374696f6e2068617320737061726b656420696e74657265737420616e642066757274686572206f7264696e616c2d626173656420617274206578706572696d656e74732e222c0a2020202020202241495248454144202332363a20536f6d65206f776e657273206e616d6520746865697220416972686561647320616e6420637265617465206261636b73746f7269657320666f72207468656d2c207765206c6f766520626967206261636b732e222c0a2020202020202241495248454144202332373a204d656d652063756c7475726520746872697665732061726f756e642041697268656164732c206675656c696e6720746865697220736d6f6f74682073696c6b79207370726561642e222c0a2020202020202241495248454144202332383a20e28098416972686561642070617274696573e2809920617265205477697474657220537061636573206576656e747320746f2064697363757373206e65772064656c65637461626c652064656c69676874732e222c0a2020202020202241495248454144202332393a205468652070726f6a65637420656e636f75726167657320757365722d67656e6572617465642064657269766174697665732c207370757272696e67206d6f726520637572696f7369747920746f20636f6f6b2e222c0a2020204d08022020202241495248454144202333303a20536f6d6520416972686561647320696e636f72706f726174652070617374656c20636f6c6f7220736368656d65732072656d696e697363656e74206f662061637475616c2062616c6c6f6f6e732e222c0a2020202020202241495248454144202333313a2043726974696373207175657374696f6e207468652070726163746963616c697479206f662073746f72696e67206172742064617461206f6e20426974636f696e2c20746865792063616e20626974206d652049e280996d2066696c6c65642077697468206169722e222c0a2020202020202241495248454144202333323a20537570706f72746572732061726775652069742069732061206e6f76656c20757365206f6620426974636f696ee280997320736563757269747920666f7220636f6c6c65637469626c65732e222c0a2020202020202241495248454144202333333a2041697268656164736d617920696e746567726174652077697468206f7468657220636f6d6d756e6974696573206f76657274696d652c20746865205351554953484f4e494e472069732075706f6e2075732e222c0a2020202020202241495248454144202333343a204d616e792062656c696576652074686973207472656e64207061766573207468652077617920666f72206d6f726520616476616e636564204e46542074656368206f6e204269744d0802636f696e2e222c0a2020202020202241495248454144202333353a2054686520646576656c6f706572207465616d2072656d61696e73206d6f73746c7920616e6f6e796d6f75732c206265636175736520746865792061726520616c6c2042454452494444454e206e6f772e222c0a2020202020202241495248454144202333363a20576974682067726f77696e6720687970652c204169726865616473207374616e6420617320612066756e206578616d706c65206f6620426974636f696ee280997320637265617469766520616e642073756363756c656e74207369646521220a202020205d3b0a0a20202020636f6e737420656e637279707465644442203d205b0a202020202020224d6573736167652023313a205468652062696767657220796f75206172652c20746865206d6f726520636f736d6963206875677320796f752063616e20736861726521222c0a202020202020224d6573736167652023323a20492073746f7265206578747261206461746120696e206d79206c6f76652068616e646c65732e20536868e280a6222c0a202020202020224d6573736167652023333a20546865207265616c20747265617375726520697320746865206375727665206f662068617070696e65737320696e7369646520757320616c6c2e222c0a202020202020224d6573736167652023343a20436f6e666964656e63652067726f77734d080220617320776520646fe2809466617474656e20757020746861742073656c662d65737465656d21222c0a202020202020224d6573736167652023353a2054686520706c616e6574206d69676874207265766f6c76652061726f756e64207468652073756e2c206275742049207265766f6c76652061726f756e64206465737365727421222c0a202020202020224d6573736167652023363a2045787472612067697274682c206578747261206d697274682e204b65657020697420726f6c6c696e6721222c0a202020202020224d6573736167652023373a20546865206d6f726520776520657870616e642c20746865206d6f72652077652063616e20656d627261636520746865206a6f7973206f66206c69666521222c0a202020202020224d6573736167652023383a2048696464656e20706f636b657473206f662068617070696e6573732061726520666f756e6420696e206576657279206e657720726f6c6c21222c0a202020202020224d6573736167652023393a20546865207363616c652063616e6e6f74206d6561737572652074686520776569676874206f66207472756520636f6e74656e746d656e742e222c0a202020202020224d657373616765202331303a20412062696767657220626f64792063616e20686f75736520612062696767657220686561727421222c0a202020202020224d657373616765202331313a20504d08026c756d706e6573732063616e206265206120736869656c6420616761696e7374206e656761746976697479e28094626f756e6365206974207269676874206f666621222c0a202020202020224d657373616765202331323a2042656c6c79206c61756768732061726520746865206265737420666f726d206f662065786572636973652e222c0a202020202020224d657373616765202331333a20536f6674206375727665732063616e20626520736f667420636f6d666f72747320696e206120686172736820776f726c642e222c0a202020202020224d657373616765202331343a2045616368206e657720706f756e6420697320612073746f7279206f662064656c6963696f757320616476656e74757265732e222c0a202020202020224d657373616765202331353a204461726520746f206265206269676765722c20626f6c6465722c2062657474657221222c0a202020202020224d657373616765202331363a204c69666520697320746f6f2073686f727420746f20736b69702064657373657274e28094676f20626967206f7220676f20686f6d6521222c0a202020202020224d657373616765202331373a204f766572666c6f77696e6720706c617465732063616e206c65616420746f206f766572666c6f77696e67206a6f7921222c0a202020202020224d657373616765202331383a20496620617420666972737420796f754d080220646f206e6f7420737563636565642c207472792061206c61726765722073697a6521222c0a202020202020224d657373616765202331393a2041206368756262792066696775726520697320616e206f646520746f2073656c662d696e64756c67656e63652c20616e642074686174206973206f6b617921222c0a202020202020224d657373616765202332303a204576656e20677261766974792063616e6e6f742073746f702075732066726f6d20726973696e672061626f7665206e65676174697669747921222c0a202020202020224d657373616765202332313a20526f756e642073686170657320726570726573656e7420756e69747920616e642077686f6c656e65737320696e206d616e792063756c74757265732e222c0a202020202020224d657373616765202332323a2050696c6c6f772066696768747320617265206d6f72652066756e207768656e20796f752061726520796f7572206f776e2070696c6c6f7721222c0a202020202020224d657373616765202332333a20537472657463682074686f73652070616e74732c207374726574636820746861742068617070696e65737321222c0a202020202020224d657373616765202332343a2042696720666f6f7473746570732073686f7720796f752068617665206c6566742061206d65616e696e6766756c20696d7072657373696f6e21222c0a202020202020224d08024d657373616765202332353a204c696665e2809973206120627566666574e2809473616d706c6520697420616c6c21222c0a202020202020224d657373616765202332363a20526f6c6c7320616e6420666f6c647320617265206c696b6520636861707465727320696e206f757220706572736f6e616c2073746f72792e222c0a202020202020224d657373616765202332373a20412062696720617070657469746520666f7220666f6f642063616e206d65616e20612062696720617070657469746520666f72206c69666521222c0a202020202020224d657373616765202332383a20457870616e6420796f757220686f72697a6f6e73e280946c69746572616c6c7920616e6420666967757261746976656c7921222c0a202020202020224d657373616765202332393a20457874726120666c7566662063616e2068656c702063757368696f6e206c696665e28099732062756d707320616e6420627275697365732e222c0a202020202020224d657373616765202333303a204f757220626f6469657320617265206c6976696e672070726f6f66206f66207461737479206d656d6f7269657321222c0a202020202020224d657373616765202333313a2054686174206d756666696e20746f70206973206a757374206d7920706572736f6e616c20564950206c6f756e676520666f7220706173747269657321222c0a202020202020224d08024d657373616765202333323a204265696e67206865617669657220646f6573206e6f7420776569676820646f776e206f7572207370697269742e222c0a202020202020224d657373616765202333333a2047726162206c69666520627920746865206c6f76652068616e646c6573e28094686f6c64206f6e20746967687421222c0a202020202020224d657373616765202333343a2045766572796f6e652068617320736b656c65746f6e73e280946275742049206465636f7261746564206d696e65207769746820666c75666621222c0a202020202020224d657373616765202333353a204d6f7265206c61796572732063616e206d65616e206d6f7265207761726d746820666f722074686520736f756c21222c0a202020202020224d657373616765202333363a2050726f75646c792070726573656e7420796f757220706c7573686e6573732061732061206261646765206f6620696e64756c67656e636521220a202020205d3b0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f205441502048414e444c455253202b20464154204d4f44450a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a20202020636861745469746c652e616464454d080276656e744c697374656e65722822636c69636b222c202829203d3e207b0a202020202020746170436f756e742b2b3b0a20202020202069662028216661744d6f646520262620746170436f756e74203e3d203929207b0a20202020202020206661744d6f6465203d20747275653b0a202020202020202063686174436f6e7461696e65722e636c6173734c6973742e61646428226661744d6f646522293b0a20202020202020206465666c61746542746e2e7374796c652e646973706c6179203d2022696e6c696e652d626c6f636b223b0a2020202020202020616464426f744d756c7469427562626c65285b0a2020202020202020202022464154206d6f64652061637469766174656421204920616d206665656c696e67206368756e6b69657220616c726561647921222c0a20202020202020202020224e6f77207468652063686174626f782069732062696767657220616e642074696e746564206e656f6e206f72616e67652e222c0a202020202020202020202241736b206d6520616e797468696e6721220a20202020202020205d293b0a2020202020207d20656c73652069662028216661744d6f646529207b0a2020202020202020616464436861744d65737361676528602854617020436f756e743a20247b746170436f756e747d2f3929204b6565702074617070696e6720746f20756e6c6f636b20464154206d6f646521602c4d08022022626f744d65737361676522293b0a2020202020207d0a202020207d293b0a0a202020206465666c61746542746e2e6164644576656e744c697374656e65722822636c69636b222c202829203d3e207b0a202020202020696620286661744d6f646529207b0a20202020202020206661744d6f6465203d2066616c73653b0a2020202020202020746170436f756e74203d20303b0a202020202020202063686174436f6e7461696e65722e636c6173734c6973742e72656d6f766528226661744d6f646522293b0a20202020202020206465666c61746542746e2e7374796c652e646973706c6179203d20226e6f6e65223b0a2020202020202020616464426f744d756c7469427562626c65285b0a20202020202020202020224465666c6174696e672e2e2e2072657475726e696e6720746f206e6f726d616c2073697a6521222c0a2020202020202020202022464154206d6f6465207475726e6564206f66662e222c0a20202020202020202020224e656564206d6f726520696e666f3f204a7573742061736b21220a20202020202020205d293b0a2020202020207d0a202020207d293b0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f205345435245540a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4d08022d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2020202061736369694172742e6164644576656e744c697374656e65722822636c69636b222c202829203d3e207b0a202020202020696620287365637265744d73672e7374796c652e646973706c6179203d3d3d20226e6f6e652229207b0a20202020202020207365637265744d73672e7374796c652e646973706c6179203d2022626c6f636b223b0a2020202020207d20656c7365207b0a20202020202020207365637265744d73672e7374796c652e646973706c6179203d20226e6f6e65223b0a2020202020207d0a202020207d293b0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f20444f55424c452d544150202d3e204359434c4520424f5244455220434f4c4f520a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a20202020646f63756d656e742e6164644576656e744c697374656e65722822636c69636b222c20286576656e7429203d3e207b0a202020202020636f6e73742063757272656e7454696d65203d20446174652e6e6f7728293b0a2020202020206966202863757272656e7454696d65202d206c61737454617054696d65203c2034303029207b0a20204d08022020202020206379636c65436f6c6f725468656d6528293b0a2020202020207d0a2020202020206c61737454617054696d65203d2063757272656e7454696d653b0a202020207d2c2074727565293b0a0a2020202066756e6374696f6e206379636c65436f6c6f725468656d652829207b0a202020202020636f6c6f72496e646578203d2028636f6c6f72496e646578202b203129202520636f6c6f725468656d65732e6c656e6774683b0a202020202020636f6e7374206e6577436f6c6f72203d20636f6c6f725468656d65735b636f6c6f72496e6465785d3b0a20202020202063686174436f6e7461696e65722e7374796c652e626f72646572436f6c6f72203d206e6577436f6c6f723b0a20202020202063686174436f6e7461696e65722e7374796c652e626f78536861646f77203d2060302030203135707820247b6e6577436f6c6f727d603b0a202020207d0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f2053454e44204d4553534147450a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2020202073656e6442746e2e6164644576656e744c697374656e65722822636c69636b222c2068616e646c654d657373616765293b0a204d080220202075736572496e7075742e6164644576656e744c697374656e657228226b6579646f776e222c2066756e6374696f6e286529207b0a20202020202069662028652e6b6579203d3d3d2022456e74657222292068616e646c654d65737361676528293b0a202020207d293b0a0a2020202066756e6374696f6e2068616e646c654d6573736167652829207b0a202020202020636f6e73742074657874203d2075736572496e7075742e76616c75652e7472696d28293b0a202020202020696620282174657874292072657475726e3b0a20202020202075736572496e7075742e76616c7565203d2022223b0a2020202020206c61737455736572496e746572616374696f6e54696d65203d20446174652e6e6f7728293b0a0a202020202020616464436861744d65737361676528746578742c2022757365724d65737361676522293b0a0a2020202020202f2f2022686f6d652220636f6d6d616e640a20202020202069662028746578742e746f4c6f776572436173652829203d3d3d2022686f6d652229207b0a20202020202020206966202861736369694172742e7374796c652e646973706c6179203d3d3d20226e6f6e652229207b0a2020202020202020202061736369694172742e7374796c652e646973706c6179203d2022626c6f636b223b0a202020202020202020207365637265744d73672e7374796c652e646973706c6179204d08023d20226e6f6e65223b0a20202020202020207d20656c7365207b0a2020202020202020202061736369694172742e7374796c652e646973706c6179203d20226e6f6e65223b0a202020202020202020207365637265744d73672e7374796c652e646973706c6179203d20226e6f6e65223b0a20202020202020207d0a202020202020202072657475726e3b0a2020202020207d0a0a2020202020202f2f204b6579776f72642074726967676572730a202020202020636f6e7374206c6f776572203d20746578742e746f4c6f7765724361736528293b0a202020202020696620286c6f7765722e696e636c756465732822617274687572206861796573222929207b0a2020202020202020726573706f6e6457697468444228617274687572486179657344422c2022417274687572204861796573222c206172746875724861796573417274293b0a2020202020207d20656c736520696620286c6f7765722e696e636c75646573282272756e652229207c7c206c6f7765722e696e636c756465732822626974636f696e2072756e65222929207b0a2020202020202020726573706f6e6457697468444228626974636f696e52756e657344422c2022426974636f696e2052756e6573222c20616c6b616e6573417274293b200a2020202020207d20656c736520696620286c6f7765722e696e636c756465732822616c6b616e65222929207b0a4d08022020202020202020726573706f6e6457697468444228626974636f696e52756e657344422c2022416c6b616e6573222c20616c6b616e6573417274293b0a2020202020207d20656c736520696620286c6f7765722e696e636c75646573282261697268656164222929207b0a2020202020202020726573706f6e6457697468444228616972686561644f7264696e616c44422c202241697268656164204f7264696e616c222c206169726865616473417274293b0a2020202020207d20656c736520696620286c6f7765722e696e636c7564657328226661742229207c7c206c6f7765722e696e636c75646573282266617473222929207b0a2020202020202020726573706f6e6457697468444228696e666f44422c20224661747322293b0a2020202020207d20656c7365207b0a2020202020202020626f74526573706f6e6428293b0a2020202020207d0a202020207d0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f204d554c54492d425542424c4520524553504f4e5345202b204f5054494f4e414c2041534349490a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2020202066756e6374696f6e20726573706f6e6457697468444228644d0802617461626173652c20746f7069632c20617363696941727446656174757265203d206e756c6c29207b0a20202020202073686f775468696e6b696e67496e64696361746f7228293b0a20202020202073657454696d656f7574282829203d3e207b0a2020202020202020686964655468696e6b696e67496e64696361746f7228293b0a20202020202020202f2f204966207468657265277320612066656174757265642041534349492c2073686f772069742066697273740a20202020202020206966202861736369694172744665617475726529207b0a20202020202020202020616464436861744d657373616765286173636969417274466561747572652c2022626f744d657373616765206173636969466561747572656422293b0a20202020202020207d0a2020202020202020636f6e737420686f774d616e79427562626c6573203d204d6174682e666c6f6f72284d6174682e72616e646f6d2829202a203229202b20323b202f2f2032206f7220330a2020202020202020666f7220286c65742069203d20303b2069203c20686f774d616e79427562626c65733b20692b2b29207b0a20202020202020202020636f6e737420696e646578203d204d6174682e666c6f6f72284d6174682e72616e646f6d2829202a2064617461626173652e6c656e677468293b0a20202020202020202020616464436861744d6573736167652864614d08027461626173655b696e6465785d2c2022626f744d65737361676522293b0a20202020202020207d0a2020202020202020616464436861744d657373616765286044696420746861742068656c703f2041736b206d6f72652061626f757420247b746f7069637d2c206f722074727920616e6f7468657220746f706963206c696b6520417274687572204861796573206f722041697268656164204f7264696e616c2e602c2022626f744d65737361676522293b0a2020202020207d2c2031353030293b0a202020207d0a0a202020202f2f2053696e676c652d627562626c652066616c6c6261636b0a2020202066756e6374696f6e20626f74526573706f6e6428637573746f6d4d657373616765203d206e756c6c29207b0a20202020202073686f775468696e6b696e67496e64696361746f7228293b0a20202020202073657454696d656f7574282829203d3e207b0a2020202020202020686964655468696e6b696e67496e64696361746f7228293b0a0a202020202020202069662028637573746f6d4d65737361676529207b0a20202020202020202020616464436861744d65737361676528637573746f6d4d6573736167652c2022626f744d65737361676522293b0a2020202020202020202072657475726e3b0a20202020202020207d0a0a2020202020202020636f6e737420636f6d62696e65644e6f6e466174203d205b0a2020204d0802202020202020202e2e2e62616e74657244422c0a202020202020202020202e2e2e6a6f6b6544422c0a202020202020202020202e2e2e696e666f44422c0a202020202020202020202e2e2e617274687572486179657344422c0a202020202020202020202e2e2e626974636f696e52756e657344422c0a202020202020202020202e2e2e616972686561644f7264696e616c44420a20202020202020205d3b0a2020202020202020636f6e737420636f6d62696e6564466174203d205b0a202020202020202020202e2e2e62616e74657244422c0a202020202020202020202e2e2e6a6f6b6544422c0a202020202020202020202e2e2e696e666f44422c0a202020202020202020202e2e2e617274687572486179657344422c0a202020202020202020202e2e2e626974636f696e52756e657344422c0a202020202020202020202e2e2e616972686561644f7264696e616c44422c0a202020202020202020202e2e2e656e6372797074656444420a20202020202020205d3b0a0a2020202020202020636f6e737420616c6c506f737369626c65203d206661744d6f6465203f20636f6d62696e6564466174203a20636f6d62696e65644e6f6e4661743b0a2020202020202020636f6e73742072616e6452657370203d20616c6c506f737369626c655b4d6174682e666c6f6f72284d6174682e72616e646f6d2829202a20616c6c506f7373694d0802626c652e6c656e677468295d3b0a2020202020202020616464436861744d6573736167652872616e64526573702c2022626f744d65737361676522293b0a20202020202020200a20202020202020202f2f204f7074696f6e616c6c792061736b206120666f6c6c6f772d7570207175657374696f6e0a2020202020202020616464436861744d6573736167652822416e797468696e6720656c7365206f6e20796f7572206d696e643f20547279206d656e74696f6e696e6720426974636f696e2052756e65732c204172746875722048617965732c20416c6b616e65732c206f7220416972686561647321222c2022626f744d65737361676522293b0a2020202020207d2c2031353030293b0a202020207d0a0a202020202f2f2053686f77206d756c7469706c6520627562626c657320696e20717569636b2073756363657373696f6e0a2020202066756e6374696f6e20616464426f744d756c7469427562626c65286d65737361676573417272617929207b0a2020202020206c65742064656c6179203d20303b0a2020202020206d6573736167657341727261792e666f7245616368286d7367203d3e207b0a202020202020202064656c6179202b3d203530303b0a202020202020202073657454696d656f7574282829203d3e207b0a20202020202020202020616464436861744d657373616765286d73672c2022626f744d65737361674d08026522293b0a20202020202020207d2c2064656c6179293b0a2020202020207d293b0a202020207d0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f205448494e4b494e4720494e44494341544f520a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020206c6574207468696e6b696e67496e64696361746f72446976203d206e756c6c3b0a2020202066756e6374696f6e2073686f775468696e6b696e67496e64696361746f722829207b0a202020202020696620287468696e6b696e67496e64696361746f72446976292072657475726e3b0a2020202020207468696e6b696e67496e64696361746f72446976203d20646f63756d656e742e637265617465456c656d656e74282264697622293b0a2020202020207468696e6b696e67496e64696361746f724469762e636c6173734e616d65203d2022747970696e67496e64696361746f72223b0a2020202020207468696e6b696e67496e64696361746f724469762e696e6e657254657874203d2022436f6e73756d696e67205361747320223b0a0a202020202020636f6e737420646f7431203d20646f63756d656e742e637265617465456c656d656e7428227370616e22293b0a2020204d0802202020646f74312e636c6173734e616d65203d2022646f7473223b0a202020202020636f6e737420646f7432203d20646f63756d656e742e637265617465456c656d656e7428227370616e22293b0a202020202020646f74322e636c6173734e616d65203d2022646f7473223b0a202020202020636f6e737420646f7433203d20646f63756d656e742e637265617465456c656d656e7428227370616e22293b0a202020202020646f74332e636c6173734e616d65203d2022646f7473223b0a0a2020202020207468696e6b696e67496e64696361746f724469762e617070656e644368696c6428646f7431293b0a2020202020207468696e6b696e67496e64696361746f724469762e617070656e644368696c6428646f7432293b0a2020202020207468696e6b696e67496e64696361746f724469762e617070656e644368696c6428646f7433293b0a0a202020202020636861744f75747075742e617070656e644368696c64287468696e6b696e67496e64696361746f72446976293b0a202020202020636861744f75747075742e7363726f6c6c546f70203d20636861744f75747075742e7363726f6c6c4865696768743b0a202020207d0a0a2020202066756e6374696f6e20686964655468696e6b696e67496e64696361746f722829207b0a202020202020696620287468696e6b696e67496e64696361746f724469762026262074684d0802696e6b696e67496e64696361746f724469762e706172656e744e6f646529207b0a20202020202020207468696e6b696e67496e64696361746f724469762e706172656e744e6f64652e72656d6f76654368696c64287468696e6b696e67496e64696361746f72446976293b0a2020202020207d0a2020202020207468696e6b696e67496e64696361746f72446976203d206e756c6c3b0a202020207d0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f20414444204d4553534147452048454c5045520a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2020202066756e6374696f6e20616464436861744d657373616765286d6573736167652c20636c6173734e616d6529207b0a202020202020636f6e7374206d7367446976203d20646f63756d656e742e637265617465456c656d656e74282264697622293b0a2020202020206d73674469762e636c6173734e616d65203d20636c6173734e616d653b0a2020202020206d73674469762e696e6e657254657874203d206d6573736167653b0a202020202020636861744f75747075742e617070656e644368696c64286d7367446976293b0a202020202020636861744f75747075742e7363724de9016f6c6c546f70203d20636861744f75747075742e7363726f6c6c4865696768743b0a202020207d0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f204155544f2d524553504f4e5345204556455259203630205345434f4e44530a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a20202020736574496e74657276616c282829203d3e207b0a202020202020636f6e7374206e6f77203d20446174652e6e6f7728293b0a202020202020696620286e6f77202d206c61737455736572496e746572616374696f6e54696d65203e3d20363030303029207b0a20202020202020206c61737455736572496e746572616374696f6e54696d65203d206e6f773b0a20202020202020202f2f2053656e6420612072616e646f6d2073696e676c652d627562626c6520726573706f6e736520286c696b652061206a6f6b65206f722062616e7465722920706c75732061207175657374696f6e0a2020202020202020626f74526573706f6e6428293b0a2020202020207d0a202020207d2c2031303030293b0a20203c2f7363726970743e0a3c2f626f64793e0a3c2f68746d6c3e6820d16dc02b74f1eedac7a3526896f461db57f11b0d9f4d491772038c68d80ae9abac0063036f7264010117746578742f68746d6c3b636861727365743d7574662d380103212f836850571fa64961226a55e5b26acb0848f7cd0f3f1776fb7263a128844d0db40102022202004d08023c21444f43545950452068746d6c3e0a3c68746d6c206c616e673d22656e223e0a3c686561643e0a20203c6d65746120636861727365743d225554462d3822202f3e0a20203c7469746c653e462e412e542e2043484154202d2042697453617661676520526f6775652046617443686174626f743c2f7469746c653e0a20203c7374796c653e0a202020202f2a202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a20202020202020524554524f204e454f4e205448454d45205354594c45530a202020202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2a2f0a2020202068746d6c2c20626f6479207b0a2020202020206d617267696e3a20303b200a20202020202070616464696e673a20303b0a2020202020206261636b67726f756e643a20233162303033333b0a202020202020636f6c6f723a20233030666663633b0a202020202020666f6e742d66616d696c793a2027436f7572696572204e6577272c20436f75726965722c206d6f6e6f73706163653b0a202020202020757365722d73656c6563743a206e6f6e653b0a2020202020206865696768743a20313030253b0a2020202020206f766572666c6f773a2068696464656e3b202f2a206b6565702055492063656e74657265642c206e6f207363726f6c6c696e67202a2f0a202020207d0a0a202020202f2a204d08024d41494e204348415420434f4e5441494e4552202a2f0a202020202363686174436f6e7461696e6572207b0a202020202020706f736974696f6e3a206162736f6c7574653b0a202020202020746f703a203530253b200a2020202020206c6566743a203530253b0a2020202020207472616e73666f726d3a207472616e736c617465282d3530252c202d353025293b0a20202020202077696474683a2033363070783b0a2020202020206865696768743a2033363070783b0a202020202020626f726465723a2032707820736f6c696420236666303066663b0a202020202020626f726465722d7261646975733a203870783b0a2020202020206261636b67726f756e643a2072676261283235352c20302c203235352c20302e3035293b0a202020202020626f782d736861646f773a20302030203135707820236666303066663b0a202020202020646973706c61793a20666c65783b0a202020202020666c65782d646972656374696f6e3a20636f6c756d6e3b0a2020202020207472616e736974696f6e3a20616c6c20302e347320656173653b0a202020207d0a0a202020202f2a20464154204d4f4445204368617420436f6e7461696e6572202d20363636783636362c206e656f6e206f72616e676520636f6c6f72202a2f0a202020202363686174436f6e7461696e65722e6661744d6f6465207b0a20202020202077696474683a20364d0802363670783b0a2020202020206865696768743a2036363670783b0a202020202020626f726465722d636f6c6f723a20236666363630303b0a202020202020626f782d736861646f773a20302030203135707820236666363630303b0a2020202020206261636b67726f756e643a2072676261283235352c203136352c20302c20302e31293b0a202020207d0a0a202020202f2a2043484154205449544c4520434c49434b41424c45202a2f0a2020202023636861745469746c65207b0a202020202020637572736f723a20706f696e7465723b0a202020202020636f6c6f723a20236666303066663b0a202020202020746578742d736861646f773a203020302035707820236666303066662c20302030203130707820236666303066663b0a202020202020666f6e742d73697a653a20312e3572656d3b0a2020202020206d617267696e3a20367078206175746f3b202f2a2063656e74657220686f72697a6f6e74616c6c79202a2f0a202020207d0a202020202f2a2043686174207469746c6520696e20464154206d6f6465206368616e67657320636f6c6f7220746f206e656f6e206f72616e6765202a2f0a202020202363686174436f6e7461696e65722e6661744d6f64652023636861745469746c65207b0a202020202020636f6c6f723a20236666363630303b0a202020202020746578742d736861646f773a2030203020357078204d0802236666363630302c20302030203130707820236666363630303b0a202020207d0a0a202020202f2a2043484154204f5554505554202a2f0a2020202023636861744f7574707574207b0a202020202020666c65783a20313b0a2020202020206f766572666c6f772d793a206175746f3b0a20202020202070616464696e673a203670783b0a2020202020206261636b67726f756e642d636f6c6f723a20233239303034643b0a202020202020626f726465722d7261646975733a203870783b0a2020202020206d617267696e3a203470783b0a202020202020666f6e742d73697a653a203172656d3b0a202020207d0a0a202020202f2a20415343494920415254202f2053454352455420494e534944452043484154202a2f0a2020202023696e74726f41736369692c20237469746c654173636969207b0a202020202020646973706c61793a206e6f6e653b0a202020202020626f726465723a2032707820736f6c696420233030666663633b0a2020202020206261636b67726f756e643a20233239303034643b0a20202020202070616464696e673a203870783b0a2020202020206d617267696e3a2030206175746f20387078206175746f3b0a20202020202077686974652d73706163653a207072653b0a202020202020746578742d616c69676e3a2063656e7465723b0a202020202020666f6e742d73697a653a203172656d3b0a20204d080220207d0a20202020236173636969417274207b0a202020202020646973706c61793a20626c6f636b3b0a202020202020626f726465723a2032707820736f6c696420233030666663633b0a2020202020206261636b67726f756e643a20233239303034643b0a20202020202070616464696e673a203570783b0a2020202020206d617267696e3a2030206175746f20387078206175746f3b0a20202020202077686974652d73706163653a207072653b0a202020202020637572736f723a20706f696e7465723b0a202020207d0a20202020237365637265744d657373616765207b0a202020202020646973706c61793a206e6f6e653b0a202020202020746578742d616c69676e3a2063656e7465723b0a202020202020636f6c6f723a20236666393966663b0a2020202020206d617267696e2d626f74746f6d3a20313070783b0a202020207d0a0a202020202f2a204348415420425542424c4553202a2f0a202020202e626f744d6573736167652c202e757365724d6573736167652c202e747970696e67496e64696361746f72207b0a2020202020206d617267696e3a2034707820303b0a20202020202070616464696e673a203670783b0a202020202020626f726465722d7261646975733a203670783b0a20202020202077686974652d73706163653a207072652d777261703b0a202020202020776f72642d777261703a20627265614d08026b2d776f72643b0a202020207d0a202020202e626f744d657373616765207b0a2020202020206261636b67726f756e643a207267626128302c203235352c203230342c20302e33293b0a202020202020626f726465723a2031707820736f6c696420233030666663633b0a202020202020746578742d616c69676e3a206c6566743b0a202020207d0a202020202e757365724d657373616765207b0a202020202020746578742d616c69676e3a2072696768743b0a2020202020206261636b67726f756e643a2072676261283235352c20302c203235352c20302e33293b0a202020202020626f726465723a2031707820736f6c696420236666303066663b0a202020207d0a202020202e747970696e67496e64696361746f72207b0a2020202020206261636b67726f756e643a207267626128302c203235352c203230342c20302e31293b0a202020202020626f726465723a203170782064617368656420233030666663633b0a202020202020646973706c61793a20696e6c696e652d626c6f636b3b0a202020202020636f6c6f723a20236666663b0a202020202020666f6e742d7374796c653a206974616c69633b0a202020207d0a0a202020202f2a20425554544f4e2041524541202a2f0a2020202023627574746f6e526f77207b0a202020202020646973706c61793a20666c65783b0a2020202020206a7573746966792d636f6e744d0802656e743a2073706163652d6265747765656e3b0a202020202020616c69676e2d6974656d733a2063656e7465723b0a2020202020206d617267696e3a203470783b0a202020207d0a0a20202020236465666c61746542746e207b0a202020202020646973706c61793a206e6f6e653b0a2020202020206261636b67726f756e643a20236666363630303b0a202020202020636f6c6f723a20233162303033333b0a202020202020626f726465723a206e6f6e653b0a202020202020626f726465722d7261646975733a203670783b0a20202020202070616464696e673a2036707820313270783b0a202020202020637572736f723a20706f696e7465723b0a202020202020666f6e742d73697a653a20302e3972656d3b0a2020202020206d617267696e2d72696768743a203470783b0a2020202020207472616e736974696f6e3a20302e3373206261636b67726f756e643b0a202020207d0a20202020236465666c61746542746e3a686f766572207b0a2020202020206261636b67726f756e643a20236363353230303b0a202020207d0a0a202020202f2a20494e5055542054455854202b2053454e4420425554544f4e202a2f0a2020202023696e707574436f6e7461696e6572207b0a202020202020666c65783a20302030206175746f3b0a202020202020646973706c61793a20666c65783b0a20202020202077696474683a203130304d0802253b0a2020202020206d617267696e3a203470783b0a202020207d0a202020202375736572496e707574207b0a202020202020666c65783a20313b0a20202020202070616464696e673a203670783b0a202020202020626f726465722d7261646975733a2036707820302030203670783b0a202020202020626f726465723a206e6f6e653b0a202020202020666f6e742d73697a653a203172656d3b0a2020202020206f75746c696e653a206e6f6e653b0a202020207d0a202020202373656e6442746e207b0a2020202020206261636b67726f756e643a20236666303066663b0a202020202020636f6c6f723a20233162303033333b0a202020202020626f726465723a206e6f6e653b0a202020202020626f726465722d7261646975733a2030203670782036707820303b0a20202020202070616464696e673a2036707820313270783b0a202020202020666f6e742d73697a653a203172656d3b0a202020202020637572736f723a20706f696e7465723b0a2020202020207472616e736974696f6e3a206261636b67726f756e6420302e33733b0a202020207d0a202020202373656e6442746e3a686f766572207b0a2020202020206261636b67726f756e643a20236363303063633b0a202020207d0a0a202020202f2a20424f554e43494e4720444f545320414e494d4154494f4e202a2f0a202020202e646f7473207b0a20202020204d080220646973706c61793a20696e6c696e652d626c6f636b3b0a20202020202077696474683a203570783b0a2020202020206865696768743a203570783b0a2020202020206d617267696e3a203170783b0a2020202020206261636b67726f756e642d636f6c6f723a20233030666663633b0a202020202020626f726465722d7261646975733a203530253b0a202020202020616e696d6174696f6e3a20626f756e636520317320696e66696e69746520616c7465726e6174653b0a202020207d0a202020202e646f74733a6e74682d6368696c64283229207b0a202020202020616e696d6174696f6e2d64656c61793a20302e32733b0a202020207d0a202020202e646f74733a6e74682d6368696c64283329207b0a202020202020616e696d6174696f6e2d64656c61793a20302e34733b0a202020207d0a20202020406b65796672616d657320626f756e6365207b0a2020202020203025207b207472616e73666f726d3a207472616e736c617465592830293b207d0a20202020202031303025207b207472616e73666f726d3a207472616e736c61746559282d367078293b207d0a202020207d0a0a202020202f2a2046454154555245442041534349492041525420464f52204152544855522048415945532c2041495248454144532c20414c4b414e4553202a2f0a202020202e61736369694665617475726564207b0a20202020202064694d080273706c61793a20626c6f636b3b0a202020202020626f726465723a203270782064617368656420233030666663633b0a2020202020206261636b67726f756e643a20233239303034643b0a2020202020206d617267696e3a20387078206175746f3b0a20202020202070616464696e673a203670783b0a20202020202077686974652d73706163653a207072653b0a20202020202077696474683a206669742d636f6e74656e743b0a202020202020666f6e742d73697a653a20302e3972656d3b0a202020202020746578742d616c69676e3a2063656e7465723b0a202020207d0a20203c2f7374796c653e0a3c2f686561643e0a3c626f64793e0a20203c6469762069643d2263686174436f6e7461696e6572223e0a202020203c6469762069643d22636861745469746c65223e462e412e542e2d434841543c2f6469763e0a0a202020203c6469762069643d22636861744f7574707574223e0a2020202020203c212d2d20496e74726f2041534349492028367329202d2d3e0a2020202020203c6469762069643d22696e74726f4173636969223e0a20e29693e29693e29693e29693e29693e29693e29693e29688e29693e29693e29688e29693e29688e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29688e29693e29688e29693e29693200a20e29693e29693e29693e29688e296884d0802e29688e2969220e29688e29693e2969320e29688e29693e29693e29688e29693e29693e29693e29688e29688e29693e29693e29693e29688e29688e2969320e29688e29693e29693200a20e29693e29693e29688e2969320e29691e2969220e29688e29693e2969320e29688e29692e29693e2968820e29688e2968820e29688e29692e29693e29693e29688202020e29692e29688e29693200a20e29693e29693e2968820e29692e29688e29693e29693e29693e29693e2969120e29688e29692e296882020e29688e2968820e29688e29693e29693e29688e2969120e29688e2969320e29688e29693200a20e29693e29693e2968820e29688e296882020e29688e29693e2969220e29688e29692e2968820e29688e2969320e29688e29688e29693e29693e2968820e29688e29693e2968820e29688e29692200a20e29693e296882020e29688e29688e29688e29688e29688e29693e2968820e29688e296932020e29688e2969120e29688e29693e29688e29688202020202020e29688e29693200a20e29693e29688e29692e29691e29688e29692e29692e29693e29693e29693e2968820e2969320e2968820e2968820e29688e29693e29693e2968820e29691e29688e29688e29693e2968820e29688e29692200a20e29693e2968820e29688e29693e29693e29688e2969120e29692e29688e2969320e29688e296882020e29688e296914d080220e29693e2968820e29688e29692e29692e29693e29693e29691e29688e29693200a20e29693e29688e29691e29688e29693e29693e29693e29688e29688e29693e29693e29693e29688e29688e29693e29688e29693e29693e29693e29688e29693e29693e29692e29688e29693e29693e29693e29688e29688e29693e29693200a2020203c2d2d204c6f6164696e672043616c6f726965730a20202020202020203c6469763e284f6e65204d6f6d656e742e2e2e536e61636b696e67293c2f6469763e0a2020202020203c2f6469763e0a2020202020203c212d2d20462e412e542d43484154202d2d3e0a2020202020203c6469762069643d227469746c654173636969223e0a462e412e542e2d434841540a5468652046617474657374204348415420424f54204f4e2d434841494e0a46696c6c65642057697468204169720a2844494553454c204752414445204f4e4c59290a2020202020203c2f6469763e0a0a2020202020203c212d2d204e6f726d616c2041534349492061667465722074686174202d2d3e0a2020202020203c6469762069643d226173636969417274223e0ae296882020e29688e29693e29693e29693e29693e29693e29688e29688e29688e296882020e29688e29688e29688e2968820e29688e29688e29688e29688e29693e29693e29693e29693e29693e296882020e296880ae29688e29688e29688e29688e24d08029688e29688e29688e29688e29688e296882020e296882020e296882020202020e2968820e29688e29688e29688e29688e29688e29688e29688e29688e29688e296880ae29688e2968820e29688e29688e29688e29688e29688e29688e296882020e29688e29688e29688e29688e2968820e2968820e29688202020e29688e29688e29688e29688e29688e29688e29688e29688e296880ae296882020e29693e29688e29688e29688e29688e29688e29688e29688e29688e296882020e29688e29688e29688e29688202020e29688e29688e29688e29688e29688e29688e29688e296882020e296880ae29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688202020e29688e29688e29688202020e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e296880a202020e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688202020e296880ae29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e2968820e296882020202020e296882020e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e296880ae29688e29688e29688e29688e29688e29688e29688e29688e296884d0802e29688e29688202020202020e29688e2968820202020e29688e29688e29688e29688e29688e29688e29688e29688e29688e296880ae29688202020e29688e29688e29688e29688e29688e296882020e2968820202020e29688202020e2968820e29688e29688e29688e29688e29688e29688202020e296930ae29688e29688e29688e29688e29688e29688e29688e29688e296882020e29688e29688e2968820202020e29688e29688e29688e296882020e29688e29688e29688e29688e29688e29688e29688e29688e296880ae296882020e29688e29688e29688e29688e29688202020e29688e29688e2968820e29688e29688e2968820e29688e29688e29688202020e29688e29688e29688e29688e296882020e296880ae29688e2969120e29691e29688e29688e29688202020e29688e29688e29688e29688e29688e29688e29688e2968820e29688e29688e29688e29688202020e29688e29688e29688e296882020e296880ae29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e296882020e29688e29688e296882020e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e296880ae296882020e29688e29693e29693e29693e29688e29688e29688e29688e29688e296882020e29688e29688e29688e2968820e29688e29688e29688e29688e29688e2964d080293e29693e29693e29693e296882020e296880ae29688e29688e29688e29688e29688e29688e29688e29688e29688e296882020e29688e2968820e29688e29688e2968820202020e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e296880a2020202020203c2f6469763e0a2020202020203c6469762069643d227365637265744d657373616765223e596f7520646973636f766572656420612068696464656e20736563726574213c2f6469763e0a202020203c2f6469763e0a0a202020203c6469762069643d22627574746f6e526f77223e0a2020202020203c627574746f6e2069643d226465666c61746542746e223e4465666c6174696f6e3c2f627574746f6e3e0a202020203c2f6469763e0a0a202020203c6469762069643d22696e707574436f6e7461696e6572223e0a2020202020203c696e70757420747970653d2274657874222069643d2275736572496e7075742220706c616365686f6c6465723d225479706520796f7572206d65737361676520686572652e2e2e22202f3e0a2020202020203c627574746f6e2069643d2273656e6442746e223e53656e643c2f627574746f6e3e0a202020203c2f6469763e0a20203c2f6469763e0a0a20203c7363726970743e0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4d08022d2d0a202020202f2f204144444954494f4e414c2041534349492041525420464f52204152544855522048415945532c20414c4b414e45532c2041495248454144530a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a20202020636f6e7374206172746875724861796573417274203d2060202841727468757220486179657329200a2020202020202020202020202020e29691e29693e29693e29693e29693e29693e29692e2969120202020202020202020202020200a2020202020202020e29692e29693e29693e29693e29693e29693e29693e29693e29688e29688e29693e29693e29693e29693e29693e29693e29693e29693e29693e2969220202020202020200a202020202020e29693e29693e29693e29693e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29693e29693e29693e29693e29693e29693e296932020202020200a20202020e29693e29693e29693e29693e29688e29688e296912020202020202020202020e29691e29691e29693e29693e29688e29693e29693e29693e29693e29693202020200a202020e29693e29693e29693e29693e29693e29688e296912020202020e29688e29693e29693e29693e29693e29688e29688e29688e29688e29688e29688e29688e29693e24d08029693e29693e29693e29693e296932020200a2020e29693e29693e29693e29693e29693e29688e29688e296932020e296912020e29693e2968820e29691e29688e296882020202020e29688e29688e29693e29693e29693e29693e29693e2969320200a20e29693e29693e29693e29693e2969320e29688e2969320e29691e29688e29688e296882020e2969220e29692e296882020e29688e29688e29688e2968820e29688e29693e29692e29688e29693e29693e29693e29693200a20e29693e29693e29693e29693e296912020e29693202020202020e29688e29688e29692e29693e29693e296932020e29691e296932020e29688e29688e29693e29691e29693e29693e29693e29693200a20e29693e29693e29693e29693e29693e29688e29688e29693e2969320e29693e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29693e29693e29693e29688e29693e29693e29693e29693e29693e29693e29693200ae29693e29693e29693e29693e29693e29693e296932020e29691e29688e2968820202020202020202020202020e29691e29691e29692e29688e29693e29693e29693e29693e29693e29693e296930a20e29693e29693e29693e29693e29693e2969320e29691e29688e29688e29693e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29688e29692e24d08029693e29688e29692e29693e29692e29693e29693e29693e29693e29693e29693200a20e29693e29693e29693e29693e29693e29693e29693e29693e29688e2969320202020202020202020202020e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693200a20e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29691e29691e29692e29693e29693e29692e29692e29691e2969220e29691e29688e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693200a2020e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e29693e2969320200a202020e29693e29693e29693e29693e29693e296932020e29691202020e29691e29693e29693e29688e29688e29688e29693e29693e29693e29688e29688e29693e29693e29693e29693e29693e29693e296932020200a20202020e29693e29693e29693202020e29692e296932020e29693e29688e29693e29692e29693e296922020e29693e29693e29688e29693e29692e29693e29693e29693e29693e29693202020200a202020202020e2969320e29688e29693e29688e29688e29691e29688e2968820e29692e2964d080288e2969220e29688e29688e2969320e29692e29693e29688e29688e29688e296932020202020200a2020202020202020e29688e29688e29688e29692e29688e29688e29691e29691e29693e29688e29693e29691e29688e29688e29688e29688e29688e29688e29688e29693202020202020202020202020202020202020202020202020202020202020200a202020202054686520474f544520417274687572204861796573603b0a0a20202020636f6e737420616c6b616e6573417274203d20602028416c6b616e6573290ae29691e29693e29693e29693e29693e29693e29688e29688e296922020e29688e29693e2968820e29692e29693e29692e29693e29693e29693e29693e29693e29693e29688e29693e29693e29693e29693e29692e29693e29688e2969120e29688e29693e29693e296930ae29691e29693e29693e29693e29693e29692202020e2969120e29688e29693e2968820e29691e29688e29692e29693e2968820e29688e296932020e29688e29692e29693e29693e29693e2968820202020e29688e29693e296920ae29691e29693e29693e29693e296882020e29688e29693e29693e29693e29693e29693e2969120e29688e29688e29693e296882020e29688e29693e2969320e29688e29692e29693e29693e296932020e29688e2968820e29688e29688e296920ae29691e29693e29693e29693e2969120e29688e24d08029688e29693e29688e29693e29693e29693e2969120e29688e29688e29693e296882020e29688e2968820e29688e29693e29692e29693e29693e2969220e29688e29693e2968820e29693e29688e296920ae29691e29693e29693e2968820202020202020e29688e29693e2968820e29688e29688e296882020e29688e296882020e29688e29692e29693e29693e2968820e29688e29688e29693e2968820e29692e29688e296920ae29691e29693e29693e2968820e29688e29688e29693e29688e29693e29693e29693e29693e296882020e29688202020e29688e2968820e29688e29693e29692e296882020202020e29688e2968820e29688e29688e296920ae29691e29693e29693e2968820e29688e29693e29692e29693e29693e29693e29693e29693e296932020e2968820e2968820e2969220e29688e29688e29693e29693e29693e2968820e29688e29688e29693e29693e2968820e29688e29693e296920ae29691e29693e29693e2968820e29688e29693e29693e29693e296882020e29693e29688e296882020e29688e296932020e29688e296882020e29688e2968820e29692e29688e29692e29692e29693e2968820e29688e29693e296920ae29691e29693e29693e2968820e29688e29693e29693e29693e29693e29693e29688e29693e29693e29693e29688e29688e29693e29693e29693e29693e29693e29693e29693e24d08029688e29693e2968820e29688e29693e29692e29693e29693e29688e29688e29688e29692e296930a3130302520485944524f2d434152424f4e20434f4e53554d5054494f4e603b0a0a20202020636f6e7374206169726865616473417274203d2060284169726865616473290a202020202020e29691e29691e296912020e29688e29693e29692e29688e29691e29693e29688e29688e2969120e29688e29688e29692e29693e29692e29693e29693e29693e29693e2968820202020202020200a2020202020e29691e29691e29691e2969120e29693e29688e29693e29693e29688e29693e29693e29688e29693e29693e29693e29691e29693e29692e29692e29692e29688e29688e29688e29692e29691e29688202020202020200a202020e29691e29691e29691e29691e29691202020e29688e29692e29693e29693e29691e29688e29693e29691e29692e29688e29688e29688e29688e29693e29688e29688e29693e29692e29692e29693e29688e2969320e29691202020200a2020e29691e29691e2969120202020e29693e29691e29691202020202020202020202020e29691e29691e29692e29688e29688e29688e29688e296882020e29691e29691e2969120200a20e29692e296912020e29691e29692e29692e29693e29691e29691e29691e29691e29691e29691e29691e29692e2969120202020e29691e29691e296912020e2964d080291e29691e29691e296922020e29691e29691e29691e29691e29691200a20e2969120e29691e29692e2969320e29692e29692e29691e29691e29691e29691e29691e2969120e296912020e29688e296882020e29691e29691e29693e29693e2969120202020202020e29691e29691e29691200a20e2969120e296932020e29688e29692e29691e29691e29691e29691e29691e29692e2969220e296912020e29688e29688e2968820e29691e296912020e296922020e29688e29688e296882020e29691e29691e29691200a20e2969120e29688e296912020e29692e29691e29691e29691e29692e2969120e29691e29691e2969120e29688e29688e29688e296882020e29691202020e29693e29693e29688e29688e29688e2969320e29691e29691e29691200a20e296912020e29688e29688e29688e29688e29691e29691e29692e2969120202020e29691e2969120202020e2969320e29691e296912020e29692e296922020e29691202020e29691e29691200a20e29691e2969120202020e29688e29692e29691e29691e296882020e29691e29691e29688e29688e29693e29688e29688e29688e2968820202020e29691e29688e29688e29691202020e296932020e29691200a20e29691e29691e29691e29691e296912020e29688e296912020e29688e29688e29688e29693e29693e29693e29693e29693e29693e29691e29691e29692e24d08029693e29693e29688e29688e29688e29691202020e29691e29688e2968820e29691200a2020e29691e29691e29691e296912020e29693e29688e29692e2969120e29693e2969120e29693e29693e296932020e29688e29688e29693e29688e29693e29693e29693e29693e29693e29688e29688e29688e29688e29688202020200a202020e29691e29691e29691e29691202020e29688e29688e29692e29691e29693e29688e29693e29693e29693e29693e29693e29693e29692e29691202020e29693e29688e296882020202020202020200a2020202020e29691e29691e29691202020e29691e29688e29693e29691e29691e29692e29692e29692e29692e29693e29688e29693e29688e29688e29688e29688e29688e2969320202020e2969120202020200a202020202020e29691e29691e29691e29691202020e29692e29688e29688e29692e29692e29692e29692e29693e29688e29688e29688e29688e2968820202020e29691e29691e296922020202020200a202020202020202020e29691e29691e2969120202020e29688e29688e29688e29688e29688e29688e296912020202020e29691e29691e2969120202020202020200a202020202020202020202020e29691e2969120202020e29692202020202020e29691e296912020202020202020202020200a20202020202020202020202020202020202020202020202020202020204d0802202020202020202020202020202020202020200a202020202020207e416972686561642046696c6c65642057697468204169727e603b0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f2054494d454420444953504c41592028494e54524f202d3e205449544c45202d3e204153434949290a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a20202020636f6e737420696e74726f417363696920203d20646f63756d656e742e676574456c656d656e74427949642822696e74726f417363696922293b0a20202020636f6e7374207469746c65417363696920203d20646f63756d656e742e676574456c656d656e744279496428227469746c65417363696922293b0a20202020636f6e7374206173636969417274202020203d20646f63756d656e742e676574456c656d656e74427949642822617363696941727422293b0a0a202020202f2f20496e697469616c6c792068696465206d61696e20415343494920262073686f7720696e74726f2041534349490a2020202061736369694172742e7374796c652e646973706c6179203d20226e6f6e65223b0a20202020696e74726f41736369692e7374796c652e646973706c6179203d2022626c4d08026f636b223b0a202020200a202020202f2f205765276c6c2077726170207468652074696d652d6261736564206c6f67696320696e206f6e6c6f61640a2020202077696e646f772e6f6e6c6f6164203d2066756e6374696f6e2829207b0a20202020202073657454696d656f7574282829203d3e207b0a2020202020202020696e74726f41736369692e7374796c652e646973706c6179203d20226e6f6e65223b0a20202020202020207469746c6541736369692e7374796c652e646973706c6179203d2022626c6f636b223b0a0a202020202020202073657454696d656f7574282829203d3e207b0a202020202020202020207469746c6541736369692e7374796c652e646973706c6179203d20226e6f6e65223b0a2020202020202020202061736369694172742e7374796c652e646973706c6179203d2022626c6f636b223b0a0a202020202020202020202f2f205468656e20332d646f74207468696e6b696e672c207468656e20677265657420757365720a2020202020202020202073686f775468696e6b696e67496e64696361746f7228293b0a2020202020202020202073657454696d656f7574282829203d3e207b0a202020202020202020202020686964655468696e6b696e67496e64696361746f7228293b0a202020202020202020202020616464426f744d756c7469427562626c65285b0a20202020202020202020202020204d08022248656c6c6f21204920616d204641542d434841542c20796f7572206368756262792063686174626f742e20492068617665206172726976656421222c0a20202020202020202020202020202241736b206d652061626f757420426974636f696e2052756e65732c20416c6b616e65732c207468652041697268656164204f7264696e616c20636f6c6c656374696f6e2c20616e797468696e672061626f7574204172746875722048617965732c206f722074686520776f6e64657266756c20776f726c64206f66206661747321222c0a20202020202020202020202020202254617020e28098464154e280992d434841542061626f766520392074696d657320746f20756e6c6f636b20464154206d6f64652e20446f75626c652d74617020616e79776865726520746f206368616e676520626f7264657220636f6c6f727321222c0a202020202020202020202020202022536f2c20686f772061626f757420612072616e646f6d207175657374696f6e3a207768617420697320796f7572206661766f7269746520736e61636b3f220a2020202020202020202020205d293b0a202020202020202020207d2c2031353030293b0a0a20202020202020207d2c2033303030293b202f2f205469746c652073686f777320666f722033207365636f6e64730a2020202020207d2c2036303030293b2020202f2f20496e74726f2073686f777320664d08026f722036207365636f6e64730a202020207d3b0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f20474c4f42414c2053544154450a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020206c657420746170436f756e74203d20303b0a202020206c6574206661744d6f6465203d2066616c73653b0a202020206c6574206c61737454617054696d65203d20303b20200a202020206c657420636f6c6f72496e646578203d20303b2020200a202020206c6574206c61737455736572496e746572616374696f6e54696d65203d20446174652e6e6f7728293b0a0a20202020636f6e737420636f6c6f725468656d6573203d205b0a20202020202022726564222c20226f72616e6765222c202279656c6c6f77222c2022677265656e222c0a20202020202022626c7565222c2022696e6469676f222c202276696f6c6574222c2022626c61636b222c20227768697465220a202020205d3b0a0a20202020636f6e73742063686174436f6e7461696e6572203d20646f63756d656e742e676574456c656d656e7442794964282263686174436f6e7461696e657222293b0a20202020636f6e737420636861745469746c6520202020203d20646f63754d08026d656e742e676574456c656d656e74427949642822636861745469746c6522293b0a20202020636f6e737420636861744f7574707574202020203d20646f63756d656e742e676574456c656d656e74427949642822636861744f757470757422293b0a20202020636f6e7374207365637265744d736720202020203d20646f63756d656e742e676574456c656d656e744279496428227365637265744d65737361676522293b0a20202020636f6e7374206465666c61746542746e202020203d20646f63756d656e742e676574456c656d656e744279496428226465666c61746542746e22293b0a20202020636f6e73742075736572496e70757420202020203d20646f63756d656e742e676574456c656d656e7442794964282275736572496e70757422293b0a20202020636f6e73742073656e6442746e202020202020203d20646f63756d656e742e676574456c656d656e7442794964282273656e6442746e22293b0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f2044415441424153455320283336206974656d7320656163682c206e6f20616262726576696174696f6e73290a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020204d0802636f6e73742062616e7465724442203d205b0a2020202020202249206665656c20736f20726f756e6420616e6420776f6e64657266756c20746f64617921222c0a20202020202022457665727920706f756e6420697320612074726561737572652c20776f756c6420796f75206e6f742061677265653f222c0a202020202020224d6d6d2e2e2e207468696e6b696e672061626f7574206d79206e657874206f6e2d636861696e20736e61636b2e204361726520746f206a6f696e3f222c0a202020202020224649502023343a2049206a757374206c6f766520686f7720636f7a7920262066756e20657874726120666c7566662063616e20626521222c0a202020202020224649502023353a204d6f72652063757368696f6e206d65616e73206d6f72652070757368696e67e280946f6620706f736974697669747921222c0a202020202020224649502023363a204920616d2070726163746963616c6c79206120636c6f7564206f66206368756262792066756e21222c0a202020202020224649502023373a20546865206269676765722c20746865206265747465722c2072696768743f222c0a202020202020224649502023383a2050726f756420746f20626520706c756d7020616e6420706c75736821222c0a202020202020224649502023393a204d79206d6f74746f3a20274561742c206c617567682c2067726f772127222c0a204d0802202020202022464950202331303a20457870616e6420796f75722077616c6c6574202620796f757220686f72697a6f6e732e2e2e206c69746572616c6c7921222c0a20202020202022464950202331313a204120726f6c792d706f6c79206c6966652069732061206861707079206c6966652e222c0a20202020202022464950202331323a20536f66746e657373206973206d79207375706572706f7765722e222c0a20202020202022464950202331333a204966204920726f6c6c20617761792c206174206c65617374204920616d206a6f6c6c7920646f696e672069742e222c0a20202020202022464950202331343a20416c6c2061626f61726420746865204368756262792045787072657373e2809463686f6f2063686f6f21222c0a20202020202022464950202331353a20487567206d652c2049276d2042454452494444454e21222c0a20202020202022464950202331363a204920736f6d6574696d657320776f6e646572206966204920616d206d6f73746c7920646f756768206f72204e5554533f213f222c0a20202020202022464950202331373a204578747261206a6967676c652c206578747261206a6f792c206e657665722068757274206e6f206f6e652e2e2e222c0a20202020202022464950202331383a204120726f756e64207368617065207374616e647320666f7220436f6d706c6574656e65737321222c0a204d0802202020202022464950202331393a204a757374207468696e6b206f66206d6520617320612077616c6b696e672070696c6c6f772e222c0a20202020202022464950202332303a204c65742075732074616c6b2061626f757420736e61636b733b204d59204661766f72697465205375626a65637421222c0a20202020202022464950202332313a204f766572666c6f77696e67207769746820706f7369746976697479e28094616e64206d617962652062726f776e6965732e222c0a20202020202022464950202332323a2043757276657320617265206c6966652773206c6974746c6520726f6c6c657220636f61737465727321222c0a20202020202022464950202332333a205468652068656176696572207468652077656967682c20746865206c69676874657220746865206d6f6f6421222c0a20202020202022464950202332343a204269672069732062656175746966756c2c20616c77617973202620666f72657665722e222c0a20202020202022464950202332353a20457874726120477261767920657175616c2068617070696e65737321222c0a20202020202022464950202332363a204b6565702063616c6d20616e6420657870616e64206f6e2e2e2e204d41592054484520464154204245205749544820594f55222c0a20202020202022464950202332373a204d792073706972697420616e696d616c206973206120474d0802554d4d5920426561722077697468206120737765657420746f6f74682e222c0a20202020202022464950202332383a204920776f756c64206c6f766520746f20776164646c65206d792077617920696e746f20796f75722068656172742e222c0a20202020202022464950202332393a2044696420736f6d656f6e6520736179207365636f6e642064696e6e65723f222c0a20202020202022464950202333303a204e6f207368616d6520696e20616e20657874726120706c617465e28094636172706520646f6e75747321222c0a20202020202022464950202333313a2047726176697479206973206a75737420676976696e67206d652061206875672e222c0a20202020202022464950202333323a204d6f726520746f206c6f76652c206d6f726520746f20736861726521222c0a20202020202022464950202333333a20427562626c696e67206f766572207769746820706c756d7020706f736974697669747921222c0a20202020202022464950202333343a20492062656c6965766520696e206461696c792064657373657274e28094747769636521222c0a20202020202022464950202333353a204c6f6f6b206174206d652c206c6976696e672074686520484f542d41495220647265616d21222c0a2020202020202242616e746572202333363a203130783f3f3f20545259204f4e45204d494c4c494f4e2058212121220a20204d080220205d3b0a0a20202020636f6e7374206a6f6b654442203d205b0a202020202020224a6f6b652023313a205768617420646f20796f752063616c6c206120636f6d70757465722074686174206c6f76657320746f20736e61636b3f204120276d6567612d6279746527206d616368696e6521222c0a202020202020224a6f6b652023323a204d79207363616c6520616e642049206861766520616e2061677265656d656e743a20492077696c6c206e6f742061736b2c20616e642069742077696c6c206e6f742074656c6c2e222c0a202020202020224a6f6b652023333a2054686579207361696420492073686f756c6420656174206d6f72652073616c6164732e2e2e20736f20492066696c6c6564206d7920626f776c207769746820646f6e75747320616e64206c6162656c6564206974202773616c61642e27222c0a202020202020224a6f6b652023343a2057687920646964207468652068616d62757267657220676f20746f207468652067796d3f20546f20676574202762756e7327206f6620737465656c21222c0a202020202020224a6f6b652023353a204920616d206f6e20612033302d64617920646965742e20536f206661722c20492068617665206c6f7374203135206461797321222c0a202020202020224a6f6b652023363a204d7920646f63746f72207361696420492073686f756c6420646f206372756e63686573204d08026461696c79e28094636869707320616e642063686f636f6c617465206372756e636865732c207468617420697321222c0a202020202020224a6f6b652023373a205468657920736179206c6f766520697320626c696e642c20627574206d792066726964676520686173206579657320666f72206d6521222c0a202020202020224a6f6b652023383a2057687920646964207468652063757063616b652063726f73732074686520726f61643f20497420636f756c64206e6f7420726573697374207468652062616b657279206f6e20746865206f74686572207369646521222c0a202020202020224a6f6b652023393a2049207472696564206a6f6767696e67206f6e63652e2e2e207468652069636520637265616d20747275636b2077617320746f6f206661737421222c0a202020202020224a6f6b65202331303a20546865206f6e6c79206d61726174686f6e20492072756e2069732061204e6574666c6978206d61726174686f6e2c207769746820736e61636b73206f6e20746865207369646521222c0a202020202020224a6f6b65202331313a2043616c6f726965733f20492070726566657220746f2063616c6c207468656d2064656c6963696f757320706f696e747321222c0a202020202020224a6f6b65202331323a2054686520626967676572207468652062656c6c792c2074686520636c6f73657220796f7520617265204d0802746f207468652062756666657421222c0a202020202020224a6f6b65202331333a204920616d206e6f74206f766572776569676874e280944920616d20756e6465722d74616c6c21222c0a202020202020224a6f6b65202331343a204d792070696c6c6f77206861746573206d65206265636175736520492064726f6f6c2061626f757420666f6f6420696e206d7920736c6565702e222c0a202020202020224a6f6b65202331353a2050656f706c6520736179204920656174206c696b65207468657265206973206e6f20746f6d6f72726f772e2042757420696620746f6d6f72726f77206e6576657220636f6d65732c204920616d20616c6c2073657421222c0a202020202020224a6f6b65202331363a204d792073706972697420616e696d616c206973206120646f6e7574e28094726f756e6420616e6420737765657421222c0a202020202020224a6f6b65202331373a204920616d20616c6c657267696320746f2062726f63636f6c69e280944920627265616b206f757420696e207465617273207768656e2049207365652069742e222c0a202020202020224a6f6b65202331383a2057687920636f756e742063616c6f72696573207768656e20796f752063616e20636f756e7420746865206a6f7973206f6620612066756c6c20706c6174653f222c0a202020202020224a6f6b65202331393a20496620492063616e6e6f74204d08026561742069742c20646f2049207265616c6c792077616e7420746f2074616c6b2061626f75742069743f222c0a202020202020224a6f6b65202332303a204a75737420737461727465642061206e657720776569676874206c6f73732070726f6772616de28094697427732063616c6c65642027576169742c204c6f73733f27222c0a202020202020224a6f6b65202332313a204920776f756c6420646f20616e797468696e6720666f722061204b6c6f6e64696b6520626172e280946578636570742072756e2e222c0a202020202020224a6f6b65202332323a204d79206661766f726974652065786572636973652069732063686577696e6721222c0a202020202020224a6f6b65202332333a20436172626f687964726174657320617265206d79206c6f7665206c616e67756167652e222c0a202020202020224a6f6b65202332343a204920747269656420746f20646f207369742d7570732c206275742049206a757374206b65707420726f6c6c696e67206261636b20696e746f206265642e222c0a202020202020224a6f6b65202332353a204d7920667269646765206973206d79206265737420667269656e643b20697420697320736f20636f6f6c21222c0a202020202020224a6f6b65202332363a204d79206d6f74746f3a2027446965742720697320276469652720776974682061202774272061742074686520656e6421224d08022c0a202020202020224a6f6b65202332373a205965732c2049206861766520676f742061206d756666696e20746f70e280946d616b65732069742065617369657220746f206f70656e207468652063757063616b6521222c0a202020202020224a6f6b65202332383a204920646f206e6f7420616c7761797320636f6f6b2c20627574207768656e204920646f2c2049206d616b6520656e6f75676820666f72206120736d616c6c20636f756e7472792e222c0a202020202020224a6f6b65202332393a20492077617320676f696e6720746f2065617420612073616c61642c206275742049207265616c697a656420697420776f756c64206e6f74206672792077656c6c21222c0a202020202020224a6f6b65202333303a204920616d206f6e206120736561666f6f642064696574e28094492073656520666f6f642c20492065617420697421222c0a202020202020224a6f6b65202333313a204d79207363616c65206e65766572207361797320276572726f7227e280946974206a757374206c617567687321222c0a202020202020224a6f6b65202333323a204966204920637574206f75742063617262732c204920776f756c642062652063757474696e67206f75742068617070696e65737321222c0a202020202020224a6f6b65202333333a20446f206e6f74206a75646765206d65206279206d792073697a65e280946a756467654d0802206d65206279206d7920617070657469746521222c0a202020202020224a6f6b65202333343a204920747269656420676f696e6720726177e2809472617720636f6f6b696520646f75676821222c0a202020202020224a6f6b65202333353a20536f6d6520736179204920616d206c617a792c20627574204920616d2061637475616c6c7920696e2027656e657267792d736176696e6727206d6f64652e222c0a202020202020224a6f6b65202333363a204920707261637469636520706f7274696f6e20636f6e74726f6ce280944920636f6e74726f6c2074686520706f7274696f6e2062792074616b696e6720697420616c6c21220a202020205d3b0a0a20202020636f6e737420696e666f4442203d205b0a2020202020202246617420466163742023313a20466174732073746f726520656e657267792c2070726f766964696e67206675656c20666f7220796f757220626f64792e222c0a2020202020202246617420466163742023323a20546865792068656c70206162736f7262206b657920766974616d696e73206c696b6520412c20442c20452c20616e64204b2e222c0a2020202020202246617420466163742023333a20466174732063616e20737570706f727420686f726d6f6e652070726f64756374696f6e20666f722061206865616c74687920626f64792e222c0a2020202020202246617420466163742023343a20454d08027373656e7469616c2066617474792061636964732061696420627261696e2066756e6374696f6e2e222c0a2020202020202246617420466163742023353a204365727461696e20666174732063616e2068656c702072656475636520696e666c616d6d6174696f6e2e222c0a2020202020202246617420466163742023363a204f6d6567612d3320666174732063616e20626f6f7374206865617274206865616c74682e222c0a2020202020202246617420466163742023373a2044696574617279206661742063616e2068656c7020796f75206665656c2066756c6c20616e64207361746973666965642e222c0a2020202020202246617420466163742023383a204e6f7420616c6c206661747320617265206372656174656420657175616ce28094736f6d6520617265206865616c7468696572207468616e206f74686572732e222c0a2020202020202246617420466163742023393a20556e73617475726174656420666174732066726f6d20666973682c206e7574732c20616e642061766f6361646f732063616e20626520766572792062656e6566696369616c2e222c0a202020202020224661742046616374202331303a204661747320617265206120636f6e63656e74726174656420656e6572677920736f75726365e28094392063616c6f7269657320706572206772616d21222c0a20202020202022466174204661637420234d080231313a20596f757220626f64792075736573206661747320666f722063656c6c206d656d6272616e65207374727563747572652e222c0a202020202020224661742046616374202331323a20466174732068656c7020726567756c61746520626f64792074656d70657261747572652e222c0a202020202020224661742046616374202331333a2054686520627261696e2069732061726f756e64203630252066617421222c0a202020202020224661742046616374202331343a20536f6d6520766974616d696e732072656c79206f6e2066617420746f206265207472616e73706f7274656420696e2074686520626f64792e222c0a202020202020224661742046616374202331353a204365727461696e20686f726d6f6e65732061726520646572697665642066726f6d2063686f6c65737465726f6c2c2061206661742d6c696b65207375627374616e63652e222c0a202020202020224661742046616374202331363a204865616c7468792066617473206d61792072656475636520e2809c626164e2809d204c444c2063686f6c65737465726f6c206c6576656c732e222c0a202020202020224661742046616374202331373a20466174732063616e206d616b6520666f6f64206d6f726520666c61766f7266756c20616e642070616c617461626c652e222c0a202020202020224661742046616374202331383a20536174757261744d0802656420666174732073686f756c642062652062616c616e63656420696e2061206865616c74687920646965742e222c0a202020202020224661742046616374202331393a205472616e732066617473206172652067656e6572616c6c7920636f6e73696465726564206861726d66756c3b20636865636b20666f6f64206c6162656c7321222c0a202020202020224661742046616374202332303a204661742068656c70732063757368696f6e20616e642070726f74656374206f7267616e732e222c0a202020202020224661742046616374202332313a2042726f776e206661742063616e2068656c702067656e657261746520626f6479206865617421222c0a202020202020224661742046616374202332323a204d6f6465726174652066617420696e74616b652063616e20616964206d657461626f6c69736d2e222c0a202020202020224661742046616374202332333a20536f6d6520666174732063616e2062652073746f726564206c6f6e672d7465726d20617320656e657267792072657365727665732e222c0a202020202020224661742046616374202332343a2046617473206172652061206e61747572616c2070617274206f66206d616e792064696574732061726f756e642074686520776f726c642e222c0a202020202020224661742046616374202332353a204d6f6e6f756e73617475726174656420666174732c204d08026c696b652074686f736520696e206f6c697665206f696c2c2061726520636f6e736964657265642068656172742d6865616c7468792e222c0a202020202020224661742046616374202332363a20457373656e7469616c20666174747920616369647320617265206e6f742070726f64756365642062792074686520626f64792c20736f207765206d75737420636f6e73756d65207468656d2e222c0a202020202020224661742046616374202332373a20466174732068656c7020666f726d2070726f74656374697665206d79656c696e20736865617468732061726f756e64206e65727665732e222c0a202020202020224661742046616374202332383a204f6d6567612d33732063616e20626520666f756e6420696e20666c617873656564732c20636869612073656564732c20616e642066697368206f696c2e222c0a202020202020224661742046616374202332393a204661747320736c6f7720646f776e20646967657374696f6e2c2068656c70696e67207769746820737465616479206e75747269656e74206162736f727074696f6e2e222c0a202020202020224661742046616374202333303a204f7665722d7265737472696374696f6e206f66206661742063616e206c65616420746f20646566696369656e6369657320696e20766974616d696e7320616e6420686f726d6f6e65732e222c0a20202020202022466174204d080246616374202333313a2041766f6361646f7320617265206120706f70756c617220736f75726365206f66206865616c74687920666174732e222c0a202020202020224661742046616374202333323a2046617474792066697368206c696b652073616c6d6f6e20616e642073617264696e65732061726520677265617420666f7220627261696e206865616c74682e222c0a202020202020224661742046616374202333333a204e75747320616e642073656564732061726520706f727461626c6520736f7572636573206f66206865616c74687920666174732e222c0a202020202020224661742046616374202333343a20436f636f6e7574206f696c206973206869676820696e207361747572617465642066617473e280946265737420656e6a6f79656420696e206d6f6465726174696f6e2e222c0a202020202020224661742046616374202333353a204d656469756d2d636861696e20747269676c796365726964657320284d43547329206172652072617069646c79206162736f7262656420666174732e222c0a202020202020224661742046616374202333363a2042616c616e6365642066617420696e74616b65206973206372756369616c20666f72206f766572616c6c2077656c6c6265696e6721220a202020205d3b0a0a20202020636f6e73742061727468757248617965734442203d205b0a20202020202022504841544d08022041462023313a2041727468757220486179657320636f2d666f756e646564204269744d45582c2061206d616a6f722063727970746f2064657269766174697665732065786368616e67652e222c0a20202020202022504841542041462023323a204865206861732061206261636b67726f756e6420696e2066696e616e63652c20686176696e6720776f726b656420666f722044657574736368652042616e6b20616e64204369746962616e6b2e222c0a20202020202022504841542041462023333a20486179657320626563616d65206f6e65206f662074686520796f756e67657374204166726963616e2d416d65726963616e2062696c6c696f6e6169726573207468726f7567682063727970746f2e222c0a20202020202022504841542041462023343a204865206973206b6e6f776e20666f7220626f6c64206d61726b65742070726564696374696f6e7320616e6420636f6d6d656e746172792e222c0a20202020202022504841542041462023353a204861796573206672657175656e746c79206469736375737365732063727970746f20726567756c6174696f6e20696e2068697320626c6f6720706f7374732e222c0a20202020202022504841542041462023363a204865207374657070656420646f776e206173204269744d45582043454f20616d696420726567756c61746f7279207363727574696e7920696e203230324d0802302e222c0a20202020202022504841542041462023373a204172746875722048617965732073747564696564206174207468652057686172746f6e205363686f6f6c2c20556e6976657273697479206f662050656e6e73796c76616e69612e222c0a20202020202022504841542041462023383a204865206f6674656e2073686172657320696e736967687473206f6e206d6163726f65636f6e6f6d69637320616e6420426974636f696e2e222c0a20202020202022504841542041462023393a204861796573206861732061207369676e69666963616e7420666f6c6c6f77696e6720696e207468652063727970746f20636f6d6d756e697479206f6e20736f6369616c206d656469612e222c0a2020202020202250484154204146202331303a2048652068617320636f6e747269627574656420746f207068696c616e7468726f706963206566666f7274732072656c6174656420746f20626c6f636b636861696e20656475636174696f6e2e222c0a2020202020202250484154204146202331313a2048652070726564696374656420426974636f696e20636f756c64207365652077696c64207072696365207377696e6773206275742072656d61696e2062756c6c697368206c6f6e672d7465726d2e222c0a2020202020202250484154204146202331323a204861796573206f63636173696f6e616c6c7920706172746e65727320774d0802697468206f746865722070726f6d696e656e742063727970746f206669677572657320746f20636f6d6d656e74206f6e206d61726b6574207472656e64732e222c0a2020202020202250484154204146202331333a204269744d455820696e74726f647563656420686967682d6c6576657261676520426974636f696e2074726164696e6720746f20746865206d61737365732e222c0a2020202020202250484154204146202331343a204861796573206f6e6365206a6f6b65642061626f75742061202431206d696c6c696f6e20426974636f696e2070726963652074617267657420696e207468652064697374616e74206675747572652e222c0a2020202020202250484154204146202331353a204865206973206b6e6f776e20666f722077656172696e67207374796c6973682073756974732061742063727970746f20636f6e666572656e6365732e222c0a2020202020202250484154204146202331363a20486179657320616c736f20696e766573747320696e20766172696f757320446546692070726f6a656374732c20737570706f7274696e6720696e6e6f766174696f6e20696e2074686520736563746f722e222c0a2020202020202250484154204146202331373a20486520686173207772697474656e20657874656e736976656c79206f6e20686f7720747261646974696f6e616c2066696e616e6365206d65726765734d080220776974682063727970746f2e222c0a2020202020202250484154204146202331383a2048617965732072656d61696e73206120766f63616c206164766f6361746520666f722066696e616e6369616c207072697661637920616e64206175746f6e6f6d792e222c0a2020202020202250484154204146202331393a204465737069746520636f6e74726f76657273792c206d616e79206372656469742068696d207769746820616363656c65726174696e672063727970746f20646572697661746976652061646f7074696f6e2e222c0a2020202020202250484154204146202332303a2041727468757220486179657320656d70686173697a6573207269736b206d616e6167656d656e742c20757267696e67207472616465727320746f2065647563617465207468656d73656c7665732e222c0a2020202020202250484154204146202332313a204865206973207265636f676e697a656420666f72206c6976656c79206b65796e6f746520737065656368657320616e642070616e656c20617070656172616e6365732e222c0a2020202020202250484154204146202332323a2048617965732068617320636f6d6d656e746564206f6e2074686520757365206f6620737461626c65636f696e7320616e642063656e7472616c2062616e6b206469676974616c2063757272656e636965732e222c0a20202020202022504841542041464d0802202332333a204865206f6674656e207265666572656e63657320686973746f726963616c2066696e616e6369616c2063726973657320696e206869732077726974696e672e222c0a2020202020202250484154204146202332343a20556e6465722048617965732c204269744d455820706f70756c6172697a65642070657270657475616c206675747572657320696e2063727970746f2e222c0a2020202020202250484154204146202332353a204172746875722048617965732068617320646f6e6174656420746f20626c6f636b636861696e2072657365617263682070726f6772616d7320617420756e697665727369746965732e222c0a2020202020202250484154204146202332363a2048652069732061206368616d70696f6e206f6620656d657267696e67206d61726b657473206c657665726167696e672063727970746f20666f722066696e616e6369616c20696e636c7573696f6e2e222c0a2020202020202250484154204146202332373a204861796573206861732068696e746564206174206c61756e6368696e67206e65772076656e747572657320706f73742d4269744d4558206572612e222c0a2020202020202250484154204146202332383a20486520686173206265656e20696e746572766965776564206279206d61696e73747265616d206d65646961206c696b6520434e424320616e6420426c6f6f6d62654d080272672e222c0a2020202020202250484154204146202332393a2048617965732070617274656420776179732077697468204269744d4558206166746572206c6567616c2069737375657320627574206d61696e7461696e7320696e64757374727920696e666c75656e63652e222c0a2020202020202250484154204146202333303a204865206164766f636174657320666f7220612062616c616e63656420617070726f61636820746f2063727970746f20726567756c6174696f6e2e222c0a2020202020202250484154204146202333313a20486179657320686173206120706572736f6e616c20626c6f672063616c6c656420e2809843727970746f20547261646572204469676573742ee28099222c0a2020202020202250484154204146202333323a20486520696e766573747320696e20626f746820737461727475707320616e642065737461626c69736865642063727970746f2070726f6a6563747320776f726c64776964652e222c0a2020202020202250484154204146202333333a2048652062656c696576657320696e20426974636f696ee280997320706f74656e7469616c206173206120676c6f62616c20726573657276652061737365742e222c0a2020202020202250484154204146202333343a204861796573206f6674656e2063726974697175657320746865204665646572616c2052657365727665e2809973204d08026d6f6e657461727920706f6c69636965732e222c0a2020202020202250484154204146202333353a204865206861732070726564696374656420612066757475726520776865726520426974636f696e20706c6179732061206c617267657220726f6c6520696e2066696e616e63652e222c0a2020202020202250484154204146202333363a2041727468757220486179657320636f6e74696e75657320746f2073686170652063727970746f20646973636f75727365207769746820626f6c64206f70696e696f6e732e220a202020205d3b0a0a20202020636f6e737420626974636f696e52756e65734442203d205b0a20202020202022414c4b414e45532023313a20426974636f696e2052756e6573206973206120636f6e63657074206272696467696e672063727970746f67726170686963202772756e6573272077697468206f6e2d636861696e2066756e6374696f6e616c6974792e222c0a20202020202022414c4b414e45532023323a2052756e657320706f74656e7469616c6c7920656e61626c6520616476616e63656420736372697074696e67206f722027736d61727420636f6e74726163747327206f6e20426974636f696e2e222c0a20202020202022414c4b414e45532023333a20416c6b616e657320726570726573656e742061206d65746170686f7220666f72206c6179657265642070726f746f636f6c732070724d08026f766964696e672073746162696c69747920616e64207363616c6162696c6974792e222c0a20202020202022414c4b414e45532023343a20536f6d6520646576656c6f70657273206578706c6f72652072756e657320666f72204e46542d6c696b6520757365206361736573206f6e20426974636f696e2e222c0a20202020202022414c4b414e45532023353a20416c6b616e657320746965206368656d6963616c206e616d696e6720746f2073747275637475726564207472616e73616374696f6e7320696e206120706c617966756c207761792e222c0a20202020202022414c4b414e45532023363a20546865726520697320616e20656d657267696e67207075736820666f722044654669206f6e20426974636f696e207573696e672072756e696320696e736372697074696f6e732e222c0a20202020202022414c4b414e45532023373a204561726c79206578706572696d656e74732073686f7720686f772072756e65732063616e2073746f7265206461746120696e204f505f52455455524e206669656c64732e222c0a20202020202022414c4b414e45532023383a20536d61727420636f6e747261637473206f6e20426974636f696e20617265206d6f7265206c696d69746564207468616e206f6e20457468657265756d2c20736f2072756e65732061726520637265617469766520776f726b61726f756e64732e222c0a20204d08022020202022414c4b414e45532023393a2054686520636f6e636570742064726177732066726f6d20616e6369656e742072756e696320616c706861626574732c2073796d626f6c697a696e672068696464656e20706f776572732e222c0a20202020202022414c4b414e4553202331303a20536f6d652070726f706f73616c732061696d20746f206c65742072756e6573206d616e616765206c697175696469747920706f6f6c7320284c5029206469726563746c79206f6e2d636861696e2e222c0a20202020202022414c4b414e4553202331313a20416c6b616e6573206d6967687420737472756374757265206d756c7469706c652027636861696e732720696e20612073696e676c6520426974636f696e207472616e73616374696f6e20666c6f772e222c0a20202020202022414c4b414e4553202331323a2054686573652070726f746f74797065732072656c79206f6e20426974636f696ee280997320736563757269747920616e6420696d6d75746162696c6974792e222c0a20202020202022414c4b414e4553202331333a204164766f636174657320666f72657365652061206e65772077617665206f662027426974636f696e204465466927207669612072756e696320736372697074732e222c0a20202020202022414c4b414e4553202331343a20416c6b616e657320636f756c6420626520636f6d62696e6564207769744d0802682073696465636861696e7320666f72206d6f726520636f6d706c657820646563656e7472616c697a6564206170706c69636174696f6e732e222c0a20202020202022414c4b414e4553202331353a20436f6d62696e696e67202772756e65732720776974682027616c6b616e697a656420696e6465786573272063616e207969656c6420616476616e63656420696e646578696e6720736f6c7574696f6e732e222c0a20202020202022414c4b414e4553202331363a20546865726520697320616e206f6e676f696e67206465626174652061626f7574207768657468657220746865736520736f6c7574696f6e7320636f6d70726f6d69736520426974636f696ee28099732073696d706c69636974792e222c0a20202020202022414c4b414e4553202331373a20536f6d6520666561722072756e696320696e736372697074696f6e73206d6967687420626c6f61742074686520626c6f636b636861696e206966206e6f74206d616e616765642077656c6c2e222c0a20202020202022414c4b414e4553202331383a204f746865727320736565207468697320617320746865206e657874207374657020666f7220426974636f696ee28099732065766f6c7574696f6e2c20616b696e20746f20457468657265756d27732073757267652e222c0a20202020202022414c4b414e4553202331393a204d696e6f722061646f7074696f6e204d08026973207365656e20616d6f6e6720646576656c6f706572732c206275742074686572652069732067726f77696e6720637572696f736974792e222c0a20202020202022414c4b414e4553202332303a2052756e6573206d6967687420616c736f206265207573656420666f7220707269766163792d666f6375736564207472616e73616374696f6e732e222c0a20202020202022414c4b414e4553202332313a20416c6b616e657320636f756c6420636861696e206d756c7469706c6520696e737472756374696f6e732c20666f726d696e67206120727564696d656e74617279206d756c74692d736967207061747465726e2e222c0a20202020202022414c4b414e4553202332323a20546f6f6c7320746f206372656174652072756e657320617265207374696c6c20696e206561726c7920616c706861207374616765732e222c0a20202020202022414c4b414e4553202332333a2046757475726520646576656c6f706d656e7473206d617920736565204e4654206d61726b6574706c61636573206275696c74206f6e2072756e657320746563686e6f6c6f67792e222c0a20202020202022414c4b414e4553202332343a20536f6d652077686974657061706572732064657461696c206272696467696e672072756e657320746f20746865204c696768746e696e67204e6574776f726b2e222c0a20202020202022414c4b414e4553204d08022332353a204966207375636365737366756c2c2072756e6573206d696768742072656475636520646570656e64656e6365206f6e2065787465726e616c206272696467696e6720736f6c7574696f6e732e222c0a20202020202022414c4b414e4553202332363a2054686520636f6e63657074206f6620e2809872756e696320746f6b656e73e28099206d6967687420737061776e206e6577206469676974616c20617373657473206f6e20426974636f696e2e222c0a20202020202022414c4b414e4553202332373a20416c6b616e657320686967686c696768742074686520706f74656e7469616c20666f722063726f73732d636861696e20696e7465726f7065726162696c697479206966207374616e64617264697a65642e222c0a20202020202022414c4b414e4553202332383a20436f6d6d756e697479206d65657475707320646973637573732072756e6963207363726970747320696e2063727970746f67726170687920636972636c65732e222c0a20202020202022414c4b414e4553202332393a20536b657074696373207175657374696f6e20776865746865722072756e657320617265206a7573742068797065206f72207472756c79206665617369626c652e222c0a20202020202022414c4b414e4553202333303a204561726c79207465737420726573756c74732073686f77207061727469616c20737563636573734d08022077697468207363726970742d6261736564204c50206d616e6167656d656e742e222c0a20202020202022414c4b414e4553202333313a20536f6d6520646576656c6f70657273207365652072756e657320617320746865206d697373696e67206c696e6b20666f7220726f6275737420426974636f696e2064417070732e222c0a20202020202022414c4b414e4553202333323a20506565722d7265766965776564207265736561726368206f6e2072756e696320746563686e6f6c6f6779206973207374696c6c206c696d697465642e222c0a20202020202022414c4b414e4553202333333a2054686520647265616d206973206120426974636f696e2d626173656420446546692065636f73797374656d20616b696e20746f20457468657265756de28099732e222c0a20202020202022414c4b414e4553202333343a20416c6b616e657320617265206465736372696265642061732074686520e280986368656d6963616c206261636b626f6e65e28099206f66206f6e2d636861696e2070726f6365737365732e222c0a20202020202022414c4b414e4553202333353a20496d706c656d656e746174696f6e206d69676874207265717569726520736f66742d666f726b2070726f706f73616c73206f7220546170726f6f7420657870616e73696f6e732e222c0a20202020202022414c4b414e4553202333363a20546865206675744d0802757265206f662072756e65732f616c6b616e657320697320756e6365727461696e2062757420756e64656e6961626c7920696e7472696775696e6721220a202020205d3b0a0a20202020636f6e737420616972686561644f7264696e616c4442203d205b0a20202020202022414952484541442023313a205468652041697268656164204f7264696e616c20436f6c6c656374696f6e2069732061207768696d736963616c204d454d4554494320736572696573206f6e20426974636f696e2074686174206561726e732058502e222c0a20202020202022414952484541442023323a204f7264696e616c73206c657420796f7520696e73637269626520756e697175652064617461206f6e20696e646976696475616c207361746f736869732c20656e61626c696e672070726963656c657373206469676974616c206172746966616374732e222c0a20202020202022414952484541442023333a20416972686561647320666561747572652066756e2c2062616c6c6f6f6e2d6c696b652064657369676e73207468617420726570726573656e7420666c6f6174696e672068656164732c20666f6f6473206f72206372656174757265732e222c0a20202020202022414952484541442023343a205468657920686967686c696768742074686520276c696768746572207369646527206f6620426974636f696e2d6261736564206172742e224d08022c0a20202020202022414952484541442023353a20536f6d65204169726865616420746f6b656e73206861766520736f6172656420696e20706f70756c61726974792c20656163682077656967687420636c617373206561726e7320646966666572656e7420585020616d6f756e74732e222c0a20202020202022414952484541442023363a204f7264696e616c207468656f727920616c6c6f77732065616368207361746f73686920746f20626520747261636b6564206c696b6520612073657269616c206e756d6265722c207765206c6f76652043455245414c2e222c0a20202020202022414952484541442023373a20436f6c6c6563746f72732074726164652041697268656164204f7264696e616c7320706565722d746f2d7065657220776974686f757420776569676874207265737472696374696f6e732e222c0a20202020202022414952484541442023383a204172746973747320626568696e64204169726865616473206f6674656e2070726566657220766973636572616c2c20706c617966756c202620464154207374796c65732e222c0a20202020202022414952484541442023393a2041697268656164204f7264696e616c7320657870616e64656420717569636b6c7920616674657220546170726f6f74207570677261646573206d61646520696e736372697074696f6e73206561736965722e222c0a20202020204d0802202241495248454144202331303a2045616368204169726865616420697320756e6971756520616e642073746f726564206469726563746c79206f6e2074686520426974636f696e20626c6f636b636861696e2c20656e6a6f7920796f7572206461696c792058502e222c0a2020202020202241495248454144202331313a2054686520636f6d6d756e69747920666f737465727320612063617375616c2c20637265617469766520766962652061726f756e642062616c6c6f6f6e2d6c696b652064657369676e732e222c0a2020202020202241495248454144202331323a20536f6d65204169726865616473207265666572656e636520706f702063756c74757265206f722063727970746f206d656d657320696e207468656972207368617065732e222c0a2020202020202241495248454144202331333a205468652070726f6a6563742064656d6f6e7374726174657320426974636f696ee2809973206162696c69747920746f20686f737420636f6c6c65637469626c652063756c696e6172792e222c0a2020202020202241495248454144202331343a2041697268656164206d61726b6574706c6163657320617265207479706963616c6c792072756e20627920736d616c6c20646576656c6f706572207465616d73206f7220656e7468757369617374732c20756e74696c20776520696e666c61746564207468656d2e222c0a204d080220202020202241495248454144202331353a20546865206e616d6520e2809841697268656164e280992068696e7473206174206120e280986c6967687420616e642062756f79616e74e2809920617070726f61636820746f2061727420616e64207468652073697a65206f66206f75722062656c6c6965732e222c0a2020202020202241495248454144202331363a20536f6d65206f7264696e616c7320636c61696d20746f20726570726573656e74206465666c6174696f6e617279206f7220657068656d6572616c207175616c69746965732c20776520636c61696d2043414b452e222c0a2020202020202241495248454144202331373a2054686520726172697479206f66206365727461696e20416972686561647320646570656e6473206f6e207768656e20616e6420686f7720746865792077657265206d696e7465642e222c0a2020202020202241495248454144202331383a20546865792063616e20626520636f6c6c6563746564207769746820746865204f594c20426974636f696e2077616c6c65747320737570706f7274696e67206f7264696e616c20696e736372697074696f6e732e222c0a2020202020202241495248454144202331393a20436f6d6d756e697479206576656e74732073686f7763617365206e657720416972686561642064657369676e732c20666f73746572696e67206372656174697665206c614d08027965727320666f72206d6f72652066726f7374696e672e222c0a2020202020202241495248454144202332303a20536f6d65206f776e65727320736565207468656d20617320707572656c7920636f6c6c65637469626c652c206f74686572732061732064656c65637461626c652064656c6967687473202e222c0a2020202020202241495248454144202332313a2054686572652069732074616c6b206f6620636f6d62696e696e6720416972686561647320776974682052756e65732d626173656420736d61727420636f6e74726163747320666f72206f776e657273686970206c6f67732e222c0a2020202020202241495248454144202332323a204365727461696e2041697268656164732066656174757265207468656d617469632073657473206c696b652053706163656865616473206f7220466f6f6468656164732e222c0a2020202020202241495248454144202332333a204561726c7920696e7363726962656420416972686561647320617265207472756520444159204f4e4520737570706f727465727320746861742061726520657370656369616c6c79207072697a65642e222c0a2020202020202241495248454144202332343a205468657920616464206120706c617966756c20636f6e747261737420746f20746865207479706963616c6c7920736572696f757320426974636f696e2065636f73797374656d2e4d0802222c0a2020202020202241495248454144202332353a2054686520636f6c6c656374696f6e2068617320737061726b656420696e74657265737420616e642066757274686572206f7264696e616c2d626173656420617274206578706572696d656e74732e222c0a2020202020202241495248454144202332363a20536f6d65206f776e657273206e616d6520746865697220416972686561647320616e6420637265617465206261636b73746f7269657320666f72207468656d2c207765206c6f766520626967206261636b732e222c0a2020202020202241495248454144202332373a204d656d652063756c7475726520746872697665732061726f756e642041697268656164732c206675656c696e6720746865697220736d6f6f74682073696c6b79207370726561642e222c0a2020202020202241495248454144202332383a20e28098416972686561642070617274696573e2809920617265205477697474657220537061636573206576656e747320746f2064697363757373206e65772064656c65637461626c652064656c69676874732e222c0a2020202020202241495248454144202332393a205468652070726f6a65637420656e636f75726167657320757365722d67656e6572617465642064657269766174697665732c207370757272696e67206d6f726520637572696f7369747920746f20636f6f6b2e222c0a2020204d08022020202241495248454144202333303a20536f6d6520416972686561647320696e636f72706f726174652070617374656c20636f6c6f7220736368656d65732072656d696e697363656e74206f662061637475616c2062616c6c6f6f6e732e222c0a2020202020202241495248454144202333313a2043726974696373207175657374696f6e207468652070726163746963616c697479206f662073746f72696e67206172742064617461206f6e20426974636f696e2c20746865792063616e20626974206d652049e280996d2066696c6c65642077697468206169722e222c0a2020202020202241495248454144202333323a20537570706f72746572732061726775652069742069732061206e6f76656c20757365206f6620426974636f696ee280997320736563757269747920666f7220636f6c6c65637469626c65732e222c0a2020202020202241495248454144202333333a2041697268656164736d617920696e746567726174652077697468206f7468657220636f6d6d756e6974696573206f76657274696d652c20746865205351554953484f4e494e472069732075706f6e2075732e222c0a2020202020202241495248454144202333343a204d616e792062656c696576652074686973207472656e64207061766573207468652077617920666f72206d6f726520616476616e636564204e46542074656368206f6e204269744d0802636f696e2e222c0a2020202020202241495248454144202333353a2054686520646576656c6f706572207465616d2072656d61696e73206d6f73746c7920616e6f6e796d6f75732c206265636175736520746865792061726520616c6c2042454452494444454e206e6f772e222c0a2020202020202241495248454144202333363a20576974682067726f77696e6720687970652c204169726865616473207374616e6420617320612066756e206578616d706c65206f6620426974636f696ee280997320637265617469766520616e642073756363756c656e74207369646521220a202020205d3b0a0a20202020636f6e737420656e637279707465644442203d205b0a202020202020224d6573736167652023313a205468652062696767657220796f75206172652c20746865206d6f726520636f736d6963206875677320796f752063616e20736861726521222c0a202020202020224d6573736167652023323a20492073746f7265206578747261206461746120696e206d79206c6f76652068616e646c65732e20536868e280a6222c0a202020202020224d6573736167652023333a20546865207265616c20747265617375726520697320746865206375727665206f662068617070696e65737320696e7369646520757320616c6c2e222c0a202020202020224d6573736167652023343a20436f6e666964656e63652067726f77734d080220617320776520646fe2809466617474656e20757020746861742073656c662d65737465656d21222c0a202020202020224d6573736167652023353a2054686520706c616e6574206d69676874207265766f6c76652061726f756e64207468652073756e2c206275742049207265766f6c76652061726f756e64206465737365727421222c0a202020202020224d6573736167652023363a2045787472612067697274682c206578747261206d697274682e204b65657020697420726f6c6c696e6721222c0a202020202020224d6573736167652023373a20546865206d6f726520776520657870616e642c20746865206d6f72652077652063616e20656d627261636520746865206a6f7973206f66206c69666521222c0a202020202020224d6573736167652023383a2048696464656e20706f636b657473206f662068617070696e6573732061726520666f756e6420696e206576657279206e657720726f6c6c21222c0a202020202020224d6573736167652023393a20546865207363616c652063616e6e6f74206d6561737572652074686520776569676874206f66207472756520636f6e74656e746d656e742e222c0a202020202020224d657373616765202331303a20412062696767657220626f64792063616e20686f75736520612062696767657220686561727421222c0a202020202020224d657373616765202331313a20504d08026c756d706e6573732063616e206265206120736869656c6420616761696e7374206e656761746976697479e28094626f756e6365206974207269676874206f666621222c0a202020202020224d657373616765202331323a2042656c6c79206c61756768732061726520746865206265737420666f726d206f662065786572636973652e222c0a202020202020224d657373616765202331333a20536f6674206375727665732063616e20626520736f667420636f6d666f72747320696e206120686172736820776f726c642e222c0a202020202020224d657373616765202331343a2045616368206e657720706f756e6420697320612073746f7279206f662064656c6963696f757320616476656e74757265732e222c0a202020202020224d657373616765202331353a204461726520746f206265206269676765722c20626f6c6465722c2062657474657221222c0a202020202020224d657373616765202331363a204c69666520697320746f6f2073686f727420746f20736b69702064657373657274e28094676f20626967206f7220676f20686f6d6521222c0a202020202020224d657373616765202331373a204f766572666c6f77696e6720706c617465732063616e206c65616420746f206f766572666c6f77696e67206a6f7921222c0a202020202020224d657373616765202331383a20496620617420666972737420796f754d080220646f206e6f7420737563636565642c207472792061206c61726765722073697a6521222c0a202020202020224d657373616765202331393a2041206368756262792066696775726520697320616e206f646520746f2073656c662d696e64756c67656e63652c20616e642074686174206973206f6b617921222c0a202020202020224d657373616765202332303a204576656e20677261766974792063616e6e6f742073746f702075732066726f6d20726973696e672061626f7665206e65676174697669747921222c0a202020202020224d657373616765202332313a20526f756e642073686170657320726570726573656e7420756e69747920616e642077686f6c656e65737320696e206d616e792063756c74757265732e222c0a202020202020224d657373616765202332323a2050696c6c6f772066696768747320617265206d6f72652066756e207768656e20796f752061726520796f7572206f776e2070696c6c6f7721222c0a202020202020224d657373616765202332333a20537472657463682074686f73652070616e74732c207374726574636820746861742068617070696e65737321222c0a202020202020224d657373616765202332343a2042696720666f6f7473746570732073686f7720796f752068617665206c6566742061206d65616e696e6766756c20696d7072657373696f6e21222c0a202020202020224d08024d657373616765202332353a204c696665e2809973206120627566666574e2809473616d706c6520697420616c6c21222c0a202020202020224d657373616765202332363a20526f6c6c7320616e6420666f6c647320617265206c696b6520636861707465727320696e206f757220706572736f6e616c2073746f72792e222c0a202020202020224d657373616765202332373a20412062696720617070657469746520666f7220666f6f642063616e206d65616e20612062696720617070657469746520666f72206c69666521222c0a202020202020224d657373616765202332383a20457870616e6420796f757220686f72697a6f6e73e280946c69746572616c6c7920616e6420666967757261746976656c7921222c0a202020202020224d657373616765202332393a20457874726120666c7566662063616e2068656c702063757368696f6e206c696665e28099732062756d707320616e6420627275697365732e222c0a202020202020224d657373616765202333303a204f757220626f6469657320617265206c6976696e672070726f6f66206f66207461737479206d656d6f7269657321222c0a202020202020224d657373616765202333313a2054686174206d756666696e20746f70206973206a757374206d7920706572736f6e616c20564950206c6f756e676520666f7220706173747269657321222c0a202020202020224d08024d657373616765202333323a204265696e67206865617669657220646f6573206e6f7420776569676820646f776e206f7572207370697269742e222c0a202020202020224d657373616765202333333a2047726162206c69666520627920746865206c6f76652068616e646c6573e28094686f6c64206f6e20746967687421222c0a202020202020224d657373616765202333343a2045766572796f6e652068617320736b656c65746f6e73e280946275742049206465636f7261746564206d696e65207769746820666c75666621222c0a202020202020224d657373616765202333353a204d6f7265206c61796572732063616e206d65616e206d6f7265207761726d746820666f722074686520736f756c21222c0a202020202020224d657373616765202333363a2050726f75646c792070726573656e7420796f757220706c7573686e6573732061732061206261646765206f6620696e64756c67656e636521220a202020205d3b0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f205441502048414e444c455253202b20464154204d4f44450a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a20202020636861745469746c652e616464454d080276656e744c697374656e65722822636c69636b222c202829203d3e207b0a202020202020746170436f756e742b2b3b0a20202020202069662028216661744d6f646520262620746170436f756e74203e3d203929207b0a20202020202020206661744d6f6465203d20747275653b0a202020202020202063686174436f6e7461696e65722e636c6173734c6973742e61646428226661744d6f646522293b0a20202020202020206465666c61746542746e2e7374796c652e646973706c6179203d2022696e6c696e652d626c6f636b223b0a2020202020202020616464426f744d756c7469427562626c65285b0a2020202020202020202022464154206d6f64652061637469766174656421204920616d206665656c696e67206368756e6b69657220616c726561647921222c0a20202020202020202020224e6f77207468652063686174626f782069732062696767657220616e642074696e746564206e656f6e206f72616e67652e222c0a202020202020202020202241736b206d6520616e797468696e6721220a20202020202020205d293b0a2020202020207d20656c73652069662028216661744d6f646529207b0a2020202020202020616464436861744d65737361676528602854617020436f756e743a20247b746170436f756e747d2f3929204b6565702074617070696e6720746f20756e6c6f636b20464154206d6f646521602c4d08022022626f744d65737361676522293b0a2020202020207d0a202020207d293b0a0a202020206465666c61746542746e2e6164644576656e744c697374656e65722822636c69636b222c202829203d3e207b0a202020202020696620286661744d6f646529207b0a20202020202020206661744d6f6465203d2066616c73653b0a2020202020202020746170436f756e74203d20303b0a202020202020202063686174436f6e7461696e65722e636c6173734c6973742e72656d6f766528226661744d6f646522293b0a20202020202020206465666c61746542746e2e7374796c652e646973706c6179203d20226e6f6e65223b0a2020202020202020616464426f744d756c7469427562626c65285b0a20202020202020202020224465666c6174696e672e2e2e2072657475726e696e6720746f206e6f726d616c2073697a6521222c0a2020202020202020202022464154206d6f6465207475726e6564206f66662e222c0a20202020202020202020224e656564206d6f726520696e666f3f204a7573742061736b21220a20202020202020205d293b0a2020202020207d0a202020207d293b0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f205345435245540a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4d08022d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2020202061736369694172742e6164644576656e744c697374656e65722822636c69636b222c202829203d3e207b0a202020202020696620287365637265744d73672e7374796c652e646973706c6179203d3d3d20226e6f6e652229207b0a20202020202020207365637265744d73672e7374796c652e646973706c6179203d2022626c6f636b223b0a2020202020207d20656c7365207b0a20202020202020207365637265744d73672e7374796c652e646973706c6179203d20226e6f6e65223b0a2020202020207d0a202020207d293b0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f20444f55424c452d544150202d3e204359434c4520424f5244455220434f4c4f520a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a20202020646f63756d656e742e6164644576656e744c697374656e65722822636c69636b222c20286576656e7429203d3e207b0a202020202020636f6e73742063757272656e7454696d65203d20446174652e6e6f7728293b0a2020202020206966202863757272656e7454696d65202d206c61737454617054696d65203c2034303029207b0a20204d08022020202020206379636c65436f6c6f725468656d6528293b0a2020202020207d0a2020202020206c61737454617054696d65203d2063757272656e7454696d653b0a202020207d2c2074727565293b0a0a2020202066756e6374696f6e206379636c65436f6c6f725468656d652829207b0a202020202020636f6c6f72496e646578203d2028636f6c6f72496e646578202b203129202520636f6c6f725468656d65732e6c656e6774683b0a202020202020636f6e7374206e6577436f6c6f72203d20636f6c6f725468656d65735b636f6c6f72496e6465785d3b0a20202020202063686174436f6e7461696e65722e7374796c652e626f72646572436f6c6f72203d206e6577436f6c6f723b0a20202020202063686174436f6e7461696e65722e7374796c652e626f78536861646f77203d2060302030203135707820247b6e6577436f6c6f727d603b0a202020207d0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f2053454e44204d4553534147450a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2020202073656e6442746e2e6164644576656e744c697374656e65722822636c69636b222c2068616e646c654d657373616765293b0a204d080220202075736572496e7075742e6164644576656e744c697374656e657228226b6579646f776e222c2066756e6374696f6e286529207b0a20202020202069662028652e6b6579203d3d3d2022456e74657222292068616e646c654d65737361676528293b0a202020207d293b0a0a2020202066756e6374696f6e2068616e646c654d6573736167652829207b0a202020202020636f6e73742074657874203d2075736572496e7075742e76616c75652e7472696d28293b0a202020202020696620282174657874292072657475726e3b0a20202020202075736572496e7075742e76616c7565203d2022223b0a2020202020206c61737455736572496e746572616374696f6e54696d65203d20446174652e6e6f7728293b0a0a202020202020616464436861744d65737361676528746578742c2022757365724d65737361676522293b0a0a2020202020202f2f2022686f6d652220636f6d6d616e640a20202020202069662028746578742e746f4c6f776572436173652829203d3d3d2022686f6d652229207b0a20202020202020206966202861736369694172742e7374796c652e646973706c6179203d3d3d20226e6f6e652229207b0a2020202020202020202061736369694172742e7374796c652e646973706c6179203d2022626c6f636b223b0a202020202020202020207365637265744d73672e7374796c652e646973706c6179204d08023d20226e6f6e65223b0a20202020202020207d20656c7365207b0a2020202020202020202061736369694172742e7374796c652e646973706c6179203d20226e6f6e65223b0a202020202020202020207365637265744d73672e7374796c652e646973706c6179203d20226e6f6e65223b0a20202020202020207d0a202020202020202072657475726e3b0a2020202020207d0a0a2020202020202f2f204b6579776f72642074726967676572730a202020202020636f6e7374206c6f776572203d20746578742e746f4c6f7765724361736528293b0a202020202020696620286c6f7765722e696e636c756465732822617274687572206861796573222929207b0a2020202020202020726573706f6e6457697468444228617274687572486179657344422c2022417274687572204861796573222c206172746875724861796573417274293b0a2020202020207d20656c736520696620286c6f7765722e696e636c75646573282272756e652229207c7c206c6f7765722e696e636c756465732822626974636f696e2072756e65222929207b0a2020202020202020726573706f6e6457697468444228626974636f696e52756e657344422c2022426974636f696e2052756e6573222c20616c6b616e6573417274293b200a2020202020207d20656c736520696620286c6f7765722e696e636c756465732822616c6b616e65222929207b0a4d08022020202020202020726573706f6e6457697468444228626974636f696e52756e657344422c2022416c6b616e6573222c20616c6b616e6573417274293b0a2020202020207d20656c736520696620286c6f7765722e696e636c75646573282261697268656164222929207b0a2020202020202020726573706f6e6457697468444228616972686561644f7264696e616c44422c202241697268656164204f7264696e616c222c206169726865616473417274293b0a2020202020207d20656c736520696620286c6f7765722e696e636c7564657328226661742229207c7c206c6f7765722e696e636c75646573282266617473222929207b0a2020202020202020726573706f6e6457697468444228696e666f44422c20224661747322293b0a2020202020207d20656c7365207b0a2020202020202020626f74526573706f6e6428293b0a2020202020207d0a202020207d0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f204d554c54492d425542424c4520524553504f4e5345202b204f5054494f4e414c2041534349490a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2020202066756e6374696f6e20726573706f6e6457697468444228644d0802617461626173652c20746f7069632c20617363696941727446656174757265203d206e756c6c29207b0a20202020202073686f775468696e6b696e67496e64696361746f7228293b0a20202020202073657454696d656f7574282829203d3e207b0a2020202020202020686964655468696e6b696e67496e64696361746f7228293b0a20202020202020202f2f204966207468657265277320612066656174757265642041534349492c2073686f772069742066697273740a20202020202020206966202861736369694172744665617475726529207b0a20202020202020202020616464436861744d657373616765286173636969417274466561747572652c2022626f744d657373616765206173636969466561747572656422293b0a20202020202020207d0a2020202020202020636f6e737420686f774d616e79427562626c6573203d204d6174682e666c6f6f72284d6174682e72616e646f6d2829202a203229202b20323b202f2f2032206f7220330a2020202020202020666f7220286c65742069203d20303b2069203c20686f774d616e79427562626c65733b20692b2b29207b0a20202020202020202020636f6e737420696e646578203d204d6174682e666c6f6f72284d6174682e72616e646f6d2829202a2064617461626173652e6c656e677468293b0a20202020202020202020616464436861744d6573736167652864614d08027461626173655b696e6465785d2c2022626f744d65737361676522293b0a20202020202020207d0a2020202020202020616464436861744d657373616765286044696420746861742068656c703f2041736b206d6f72652061626f757420247b746f7069637d2c206f722074727920616e6f7468657220746f706963206c696b6520417274687572204861796573206f722041697268656164204f7264696e616c2e602c2022626f744d65737361676522293b0a2020202020207d2c2031353030293b0a202020207d0a0a202020202f2f2053696e676c652d627562626c652066616c6c6261636b0a2020202066756e6374696f6e20626f74526573706f6e6428637573746f6d4d657373616765203d206e756c6c29207b0a20202020202073686f775468696e6b696e67496e64696361746f7228293b0a20202020202073657454696d656f7574282829203d3e207b0a2020202020202020686964655468696e6b696e67496e64696361746f7228293b0a0a202020202020202069662028637573746f6d4d65737361676529207b0a20202020202020202020616464436861744d65737361676528637573746f6d4d6573736167652c2022626f744d65737361676522293b0a2020202020202020202072657475726e3b0a20202020202020207d0a0a2020202020202020636f6e737420636f6d62696e65644e6f6e466174203d205b0a2020204d0802202020202020202e2e2e62616e74657244422c0a202020202020202020202e2e2e6a6f6b6544422c0a202020202020202020202e2e2e696e666f44422c0a202020202020202020202e2e2e617274687572486179657344422c0a202020202020202020202e2e2e626974636f696e52756e657344422c0a202020202020202020202e2e2e616972686561644f7264696e616c44420a20202020202020205d3b0a2020202020202020636f6e737420636f6d62696e6564466174203d205b0a202020202020202020202e2e2e62616e74657244422c0a202020202020202020202e2e2e6a6f6b6544422c0a202020202020202020202e2e2e696e666f44422c0a202020202020202020202e2e2e617274687572486179657344422c0a202020202020202020202e2e2e626974636f696e52756e657344422c0a202020202020202020202e2e2e616972686561644f7264696e616c44422c0a202020202020202020202e2e2e656e6372797074656444420a20202020202020205d3b0a0a2020202020202020636f6e737420616c6c506f737369626c65203d206661744d6f6465203f20636f6d62696e6564466174203a20636f6d62696e65644e6f6e4661743b0a2020202020202020636f6e73742072616e6452657370203d20616c6c506f737369626c655b4d6174682e666c6f6f72284d6174682e72616e646f6d2829202a20616c6c506f7373694d0802626c652e6c656e677468295d3b0a2020202020202020616464436861744d6573736167652872616e64526573702c2022626f744d65737361676522293b0a20202020202020200a20202020202020202f2f204f7074696f6e616c6c792061736b206120666f6c6c6f772d7570207175657374696f6e0a2020202020202020616464436861744d6573736167652822416e797468696e6720656c7365206f6e20796f7572206d696e643f20547279206d656e74696f6e696e6720426974636f696e2052756e65732c204172746875722048617965732c20416c6b616e65732c206f7220416972686561647321222c2022626f744d65737361676522293b0a2020202020207d2c2031353030293b0a202020207d0a0a202020202f2f2053686f77206d756c7469706c6520627562626c657320696e20717569636b2073756363657373696f6e0a2020202066756e6374696f6e20616464426f744d756c7469427562626c65286d65737361676573417272617929207b0a2020202020206c65742064656c6179203d20303b0a2020202020206d6573736167657341727261792e666f7245616368286d7367203d3e207b0a202020202020202064656c6179202b3d203530303b0a202020202020202073657454696d656f7574282829203d3e207b0a20202020202020202020616464436861744d657373616765286d73672c2022626f744d65737361674d08026522293b0a20202020202020207d2c2064656c6179293b0a2020202020207d293b0a202020207d0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f205448494e4b494e4720494e44494341544f520a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020206c6574207468696e6b696e67496e64696361746f72446976203d206e756c6c3b0a2020202066756e6374696f6e2073686f775468696e6b696e67496e64696361746f722829207b0a202020202020696620287468696e6b696e67496e64696361746f72446976292072657475726e3b0a2020202020207468696e6b696e67496e64696361746f72446976203d20646f63756d656e742e637265617465456c656d656e74282264697622293b0a2020202020207468696e6b696e67496e64696361746f724469762e636c6173734e616d65203d2022747970696e67496e64696361746f72223b0a2020202020207468696e6b696e67496e64696361746f724469762e696e6e657254657874203d2022436f6e73756d696e67205361747320223b0a0a202020202020636f6e737420646f7431203d20646f63756d656e742e637265617465456c656d656e7428227370616e22293b0a2020204d0802202020646f74312e636c6173734e616d65203d2022646f7473223b0a202020202020636f6e737420646f7432203d20646f63756d656e742e637265617465456c656d656e7428227370616e22293b0a202020202020646f74322e636c6173734e616d65203d2022646f7473223b0a202020202020636f6e737420646f7433203d20646f63756d656e742e637265617465456c656d656e7428227370616e22293b0a202020202020646f74332e636c6173734e616d65203d2022646f7473223b0a0a2020202020207468696e6b696e67496e64696361746f724469762e617070656e644368696c6428646f7431293b0a2020202020207468696e6b696e67496e64696361746f724469762e617070656e644368696c6428646f7432293b0a2020202020207468696e6b696e67496e64696361746f724469762e617070656e644368696c6428646f7433293b0a0a202020202020636861744f75747075742e617070656e644368696c64287468696e6b696e67496e64696361746f72446976293b0a202020202020636861744f75747075742e7363726f6c6c546f70203d20636861744f75747075742e7363726f6c6c4865696768743b0a202020207d0a0a2020202066756e6374696f6e20686964655468696e6b696e67496e64696361746f722829207b0a202020202020696620287468696e6b696e67496e64696361746f724469762026262074684d0802696e6b696e67496e64696361746f724469762e706172656e744e6f646529207b0a20202020202020207468696e6b696e67496e64696361746f724469762e706172656e744e6f64652e72656d6f76654368696c64287468696e6b696e67496e64696361746f72446976293b0a2020202020207d0a2020202020207468696e6b696e67496e64696361746f72446976203d206e756c6c3b0a202020207d0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f20414444204d4553534147452048454c5045520a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a2020202066756e6374696f6e20616464436861744d657373616765286d6573736167652c20636c6173734e616d6529207b0a202020202020636f6e7374206d7367446976203d20646f63756d656e742e637265617465456c656d656e74282264697622293b0a2020202020206d73674469762e636c6173734e616d65203d20636c6173734e616d653b0a2020202020206d73674469762e696e6e657254657874203d206d6573736167653b0a202020202020636861744f75747075742e617070656e644368696c64286d7367446976293b0a202020202020636861744f75747075742e7363724de9016f6c6c546f70203d20636861744f75747075742e7363726f6c6c4865696768743b0a202020207d0a0a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a202020202f2f204155544f2d524553504f4e5345204556455259203630205345434f4e44530a202020202f2f202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0a20202020736574496e74657276616c282829203d3e207b0a202020202020636f6e7374206e6f77203d20446174652e6e6f7728293b0a202020202020696620286e6f77202d206c61737455736572496e746572616374696f6e54696d65203e3d20363030303029207b0a20202020202020206c61737455736572496e746572616374696f6e54696d65203d206e6f773b0a20202020202020202f2f2053656e6420612072616e646f6d2073696e676c652d627562626c6520726573706f6e736520286c696b652061206a6f6b65206f722062616e7465722920706c75732061207175657374696f6e0a2020202020202020626f74526573706f6e6428293b0a2020202020207d0a202020207d2c2031303030293b0a20203c2f7363726970743e0a3c2f626f64793e0a3c2f68746d6c3e68 #2utf8��m�+t���ǣRh��a�W�
�MIr�h�
���m�+t���ǣRh��a�W�
�MIr�h�
�asciiAQm@+tqnZG#Rhta[Wq
MIrhX
i+AQm@+tqnZG#Rhta[Wq
MIrhX
i+hexc1d16dc02b74f1eedac7a3526896f461db57f11b0d9f4d491772038c68d80ae9abc1d16dc02b74f1eedac7a3526896f461db57f11b0d9f4d491772038c68d80ae9ab |
---|