holotz-castle-1.3.14-src/0000755000175000001440000000000011177007633014157 5ustar jacobusersholotz-castle-1.3.14-src/src/0000755000175000001440000000000011177007634014747 5ustar jacobusersholotz-castle-1.3.14-src/src/HCScriptBlock.cpp0000644000175000001440000000504511177007633020110 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Execution block for Holotz's Castle's script engine. * @file HCScriptBlock.cpp * @author Juan Carlos Seijo Prez * @date 03/07/2004 * @version 0.0.1 - 03/07/2004 - Primera versin. */ #include bool HCScriptBlock::Finished() { bool finished = true; for (s32 i = 0; finished && i < numActions; ++i) { finished = actions[i]->Finished(); } return finished; } s32 HCScriptBlock::Update() { s32 ret = 0; for (s32 i = 0; i < numActions; ++i) { if (!actions[i]->Finished()) { ret |= actions[i]->Update(); } } return ret; } bool HCScriptBlock::Load(JTextFile &f) { // Find the beginning of the block if (f.FindNext("{")) { s8 * start = f.GetPos(); // Find the end of the block if (f.FindNext("}")) { s8 * end = f.GetPos(); f.SetPos(start); JDELETE_POINTER_ARRAY(actions, numActions); numActions = 0; // Counts the number of actions in the block while (f.FindNext("[") && f.GetPos() < end) { f.SkipNextWord(); ++numActions; } f.SetPos(start); if (numActions == 0) { fprintf(stderr, "No actions in block!\n"); return false; } // Creates the action array actions = new HCScriptAction* [numActions]; for (s32 i = 0; i < numActions; ++i) { f.FindNext("["); actions[i] = HCScriptAction::Load(f); } } else { fprintf(stderr, "Mismatched block brace!\n"); } } else { fprintf(stderr, "No block to load!\n"); } return false; } void HCScriptBlock::Skip() { for (s32 i = 0; i < numActions; ++i) { if (actions[i]->type == HCSAT_DIALOG) { actions[i]->Skip(); } } } void HCScriptBlock::Current() { for (s32 i = 0; i < numActions; ++i) { actions[i]->Current(); } } holotz-castle-1.3.14-src/src/HCCharacter.h0000644000175000001440000002613411177007633017234 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Holotz's Castle character definition file. * @file HCCharacter.h * @author Juan Carlos Seijo Prez * @date 30/04/2004 * @version 0.0.1 - 30/04/2004 - First version. */ #ifndef _HCCHARACTER_INCLUDED #define _HCCHARACTER_INCLUDED #include #include #include #include #include #include #include #include #include class HCed; enum HCCharacterState { HCCS_STOP = 0, /**< Stopped state. */ HCCS_RIGHT, /**< Walk-right state. */ HCCS_LEFT, /**< Walk-left state. */ HCCS_UP, /**< Up state. */ HCCS_DOWN, /**< Down state. */ HCCS_SLIDE, /**< Slide state. */ HCCS_JUMP, /**< Jump left state. */ HCCS_JUMPLEFT, /**< Jump left state. */ HCCS_JUMPRIGHT, /**< Jump right state. */ HCCS_FALL, /**< Fall state. */ HCCS_DIE, /**< Die state. */ HCCS_HANG, /**< Hang state. */ HCCS_COUNT, /**< State count. */ }; // Requested actions for the character #define HCCA_STOP 0x00 #define HCCA_UP 0x01 #define HCCA_DOWN 0x02 #define HCCA_LEFT 0x04 #define HCCA_RIGHT 0x08 #define HCCA_JUMP 0x10 class HCCharacter : public JDrawable { friend class HCed; protected: JImageSprite states[HCCS_COUNT]; /**< Table of state drawables. */ HCCharacterState state; /**< Current state of the character. */ u32 lastAction; /**< Last action of the character. */ u32 actions; /**< Actions requested for the character. */ HCMap *map; /**< Map for this character. */ JVector v; /**< Veloccity. */ JVector a; /**< Acceleration. */ JVector vMax; /**< Maximum veloccity. */ JVector aMax; /**< Maximum acceleration. */ JVector vJumpMax; /**< Maximum veloccity for jumps. */ JTimer timer; /**< Timer for jumps. */ s32 startJumpRow; /**< Row at where jump took place. */ s32 maxFallRows; /**< Max. number of cells to free fall if not reached floor or a rope yet. */ s32 maxJumpRows; /**< Max. number of cells in vertical it can jump. */ s32 maxJumpCols; /**< Max. number of cells in horizontal it can jump. */ s32 breakRow; /**< Row starting break floor, -1 if none. */ s32 breakCol; /**< Column starting break floor. */ s32 hangCheckYOffset; /**< Offset within character for hanging cheks. */ s32 hangCheckSize; /**< Size of the square side centered at the offset for hanging cheks. */ JString name; /**< Name of the character. */ s32 subtype; /**< Subtype within the theme. */ HCRope **ropes; /**< Ropes to check. */ s32 numRopes; /**< Number of ropes to check. */ HCRope *trackRope; /**< Rope to track when hanging. */ HCText *dialog; /**< Dialog to say. */ public: /** Creates the character. Init must be called before starting to use it. */ HCCharacter(); /** Initializes the character. * @param sprites Sprites for this character. * @param _map Map for this character. * @param _ropes Ropes this character must check. * @param nRopes Number of ropes this character must check. * @return true if everything goes well, false otherwise. */ virtual bool Init(JImageSprite *sprites, HCMap *_map, HCRope **_ropes = 0, s32 nRopes = 0); /** Draws the character. */ virtual void Draw(); /** Updates the character. The general character's update pipeline is: *
	 * 1. Update sprite
	 * 2. If hanging, do nothing (return)
	 * 3. Update vellocity.
	 * 4. Update collisions with the map
	 * 6. Update their dialog
	 * 
* @return Return value of the associated drawable's update. */ virtual s32 Update(); /** Updates the veloccity of the character based upon the character's acceleration and the map's gravity. */ virtual void UpdateVeloccity(); /** Updates collisions with the map and modifies the veloccity according to the result of the collision tests. */ virtual void UpdateCollisions(); /** Updates this character's speech dialog. */ virtual void UpdateDialog(); /** Check if the character must fall upon a broken floor and changes its state if so. */ virtual void CheckBrokenFloor(); /** Check if the character must hang of a rope. */ virtual void CheckHang(); /** Updates the character in the Stop state. * @return Return value of the associated drawable's update. */ virtual s32 UpdateStop(); /** Updates the character in the Right state. * @return Return value of the associated drawable's update. */ virtual s32 UpdateRight(); /** Updates the character in the Left state. * @return Return value of the associated drawable's update. */ virtual s32 UpdateLeft(); /** Updates the character in the Up state. * @return Return value of the associated drawable's update. */ virtual s32 UpdateUp(); /** Updates the character in the Down state. * @return Return value of the associated drawable's update. */ virtual s32 UpdateDown(); /** Updates the character in the Slide state. * @return Return value of the associated drawable's update. */ virtual s32 UpdateSlide(); /** Updates the character in the Jump state. * @return Return value of the associated drawable's update. */ virtual s32 UpdateJump(); /** Updates the character in the JumpLeft state. * @return Return value of the associated drawable's update. */ virtual s32 UpdateJumpLeft(); /** Updates the character in the JumpRight state. * @return Return value of the associated drawable's update. */ virtual s32 UpdateJumpRight(); /** Updates the character in the Fall state. * @return Return value of the associated drawable's update. */ virtual s32 UpdateFall(); /** Updates the character in the Die state. * @return Return value of the associated drawable's update. */ virtual s32 UpdateDie(); /** Updates the character in the Hang state. * @return Return value of the associated drawable's update. */ virtual s32 UpdateHang(); /** Set this character's position. * @param x New X coordinate. * @param y New Y coordinate. */ virtual void Pos(float x, float y); /** Gets this character's position. * @return Character's position. */ virtual const JVector & Pos() {return pos;} /** Gets the current row. * @return The row this character is at. */ s32 Row(); /** Gets the current column. * @return The column this character is at. */ s32 Col(); /** Fix the character position to the actual row and col. * @param col Column to be fixed at. * @param row Row to be fixed at. */ void FixPos(s32 col, s32 row); /** Fix the character's x position to the actual col. * @param col Column to be fixed at. */ void FixX(s32 col); /** Fix the character's y position to the actual row. * @param row Row to be fixed at. */ void FixY(s32 row); /** Changes the state of the character. * @param newState New state for this character. */ void State(HCCharacterState newState); /** Returns the state of the character. * @return the state of the character. */ HCCharacterState State() {return state;} /** Returns the name of this character. */ const JString& Name() {return name;} /** Sets the name of this character. The name will be the base directory * from where to load its resources. */ void Name(const JString &_name) {name = _name;} /** Gets the subtype of this character. * @return Subtype of this character. */ s32 Subtype() {return subtype;} /** Sets the subtype of this character. * @param newSubtype New type of this character. */ void Subtype(s32 newSubtype) {subtype = newSubtype;} /** Gets the dialog of this character. * @return Dialog of this character. */ HCText * Dialog() {return dialog;} /** Sets the dialog for this character. * @param newDialog New type of this character. */ void Dialog(HCText *newDialog) {dialog = newDialog;} /** Returns the current image sprite used. * @return Current image sprite used. */ JImageSprite *CurSprite() {return &states[state];} /** Tries to put the character in the given state. * @param st State to try to reach. * @return true if the state could be changed, false otherwise. */ bool Try(HCCharacterState st); /** Sets the actions this character must perform. * @param act Actions requested as a bitmask. * @return true if the state could be changed, false otherwise. */ bool Act(u32 act); /** Returns the maximum veloccity vector for this character. */ JVector & MaxVeloccity() {return vMax;} /** Returns the maximum jump veloccity vector for this character. */ JVector & JumpMaxVeloccity() {return vJumpMax;} /** Returns the veloccity vector for this character. */ JVector & Veloccity() {return v;} /** Returns the acceleration vector for this character. */ JVector & Acceleration() {return a;} /** Returns the maximum jump rows parameter for this character. */ s32 MaxJumpRows() {return maxJumpRows;} /** Sets the maximum jump rows parameter for this character. Computes the * maximum jump y veloccity of the character, also. */ void MaxJumpRows(s32 newMaxJumpRows); /** Loads the character. * @param file File opened and positioned already. * @return 0 if it succeeds, 1 if there is an I/O error, 2 if integrity error. */ u32 Load(JRW &file); /** Saves the character. The file must be opened and positioned already. * @param file File opened and positioned already. * @return 0 if it succeeds, 1 if there is an I/O error, 2 if integrity error. */ u32 Save(JRW &file); /** Destroys the character. */ void Destroy(); /** Destroys the character. */ virtual ~HCCharacter() {Destroy();} }; #endif // _HCCHARACTER_INCLUDED holotz-castle-1.3.14-src/src/HCObject.h0000644000175000001440000000776011177007633016552 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Object definition file. * @file HCObject.h * @author Juan Carlos Seijo Prez * @date 30/04/2004 * @version 0.0.1 - 30/04/2004 - First version. */ #ifndef _HCOBJECT_INCLUDED #define _HCOBJECT_INCLUDED #include #include #include #include /** Object state. */ typedef enum { HCOBJECTSTATE_NONE = 0, /**< Non visible state. */ HCOBJECTSTATE_NORMAL, /**< Normal, visible state. */ HCOBJECTSTATE_ACQUIRED, /**< Acquired, visible state. */ } HCObjectState; /** Object class. Defines an object of the game and its behaviour. */ class HCObject : public JDrawable { protected: HCObjectState state; /**< Object state. */ JImageSprite normal; /**< Normal sprite to show for the object. */ JImageSprite acquired; /**< Sprite to show when the object is obtained. */ s32 subtype; /**< Subtype (appearance) of this object. */ public: /** Creates a new object in the HCOBJECTSTATE_NORMAL state. */ HCObject() : state(HCOBJECTSTATE_NORMAL), subtype(0) {} /** Initializes the object according to the given theme and the current subtype. * @param theme Theme to use. * @return true if successfull, false otherwise. */ bool Init(HCTheme *theme); /** Updates the object. * @return 0 If the object is in HCOBJECTSTATE_NORMAL, 1 if in HCOBJECTSTATE_ACQUIRED state, * -1 if in HCOBJECTSTATE_NONE state. Any of the two last mean that the object has been * acquired. */ virtual s32 Update(); /** Draws the object. */ virtual void Draw(); /** Places this object in the acquired state. */ void Acquire() {state = HCOBJECTSTATE_ACQUIRED;} /** Returns the state of this object. * @return The state of this object. */ HCObjectState State() {return state;} /** Loads the object. * @param file File opened and positioned already. * @return 0 if it succeeds, 1 if there is an I/O error, 2 if integrity error. */ u32 Load(JRW &file); /** Saves the object. * @param file File opened and positioned already. * @return 0 if it succeeds, 1 if there is an I/O error, 2 if integrity error. */ u32 Save(JRW &file); /** Gets the subtype of this object. * @return Subtype of this object. */ s32 Subtype() {return subtype;} /** Sets the subtype of this object. * @param newSubtype New type of this object. */ void Subtype(s32 newSubtype) {subtype = newSubtype;} /** Positions this object. * @param xPos New x coordinate. * @param yPos New y coordinate. */ virtual void Pos(float xPos, float yPos) {normal.Pos(xPos, yPos); acquired.Pos(xPos, yPos); pos.x = xPos; pos.y = yPos;} /** Gets this object's position. * @return Object's position. */ virtual const JVector & Pos() {return pos;} /** Returns the normal sprite. * @return The normal sprite. */ JImageSprite & Normal() {return normal;} /** Returns the acquired sprite. * @return The acquired sprite. */ JImageSprite & Acquired() {return acquired;} /** Destroys the object. */ virtual ~HCObject() {} }; #endif // _HCOBJECT_INCLUDED holotz-castle-1.3.14-src/src/HCBreak.h0000644000175000001440000000634511177007633016366 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Break Floor floor definition file. * @file HCBreak.h * @author Juan Carlos Seijo Prez * @date 30/04/2004 * @version 0.0.1 - 30/04/2004 - First version. */ #ifndef _HCBREAK_INCLUDED #define _HCBREAK_INCLUDED #include #include #include /** Object state. */ typedef enum { HCBREAKSTATE_NORMAL = 0, /**< Normal, visible state. */ HCBREAKSTATE_BREAKING, /**< Breaking, visible state. */ HCBREAKSTATE_BROKEN, /**< Non visible state. */ } HCBreakState; /** Break Floor class. Defines an break floor of the game and its behaviour. */ class HCBreak : public HCCell { protected: HCBreakState state; /**< Break Floor state. */ JImageSprite *cur; /**< Current sprite for this break floor. */ JImageSprite normal; /**< Normal sprite to show for the break. */ JImageSprite breaking; /**< Sprite to show when the floor is breaking. */ JImageSprite broken; /**< Sprite to show when the floor is broken. */ HCBreak *prev; /**< Previous break floor, 0 if no more. */ HCBreak *next; /**< Next break floor, 0 if no more. */ public: /** Creates a new break floor in the HCBREAKSTATE_NORMAL state. */ HCBreak(JImageSprite *states, HCBreak *_prev = 0) : HCCell(HCCELLTYPE_BREAK, 0), state(HCBREAKSTATE_NORMAL), cur(0), prev(_prev), next(0) { normal.Ref(states[HCBREAKSTATE_NORMAL]); breaking.Ref(states[HCBREAKSTATE_BREAKING]); broken.Ref(states[HCBREAKSTATE_BROKEN]); if (prev) { prev->next = this; } cur = &normal; } /** Updates the break floor. * @return 0 If it's in HCBREAKSTATE_NORMAL, 1 if in HCBREAKSTATE_BREAKING, * -1 if in HCBREAKSTATE_NONE state, which means that the break floor has been broken. */ virtual s32 Update(); /** Draws the break floor. */ virtual void Draw(); /** Places this break floor in the breaking state. */ void Break(); /** Positions this cell. * @param xPos New x coordinate. * @param yPos New y coordinate. */ virtual void Pos(float xPos, float yPos); /** Returns the state of this break floor. * @return The state of this break floor. */ HCBreakState State() {return state;} /** Destroys the break. */ virtual ~HCBreak() {} }; #endif // _HCBREAK_INCLUDED holotz-castle-1.3.14-src/src/HCEnemy.h0000644000175000001440000001034111177007633016406 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Definition of a generic enemy. * @file HCEnemy.h * @author Juan Carlos Seijo Prez * @date 27/05/2004 * @version 0.0.1 - 27/05/2004 - First version. */ #ifndef _HCENEMY_INCLUDED #define _HCENEMY_INCLUDED #include #include #define HCENEMY_MIN_MAX_V 1.0f /** Type of enemy. */ enum HCEnemyType { HCENEMYTYPE_BALL = 0, /**< Rebounding ball. */ HCENEMYTYPE_RANDOM, /**< Random movement enemy. */ HCENEMYTYPE_STATIC, /**< Static enemy. */ HCENEMYTYPE_MAKER, /**< Enemy maker. */ HCENEMYTYPE_CHASER, /**< Chaser enemy. */ HCENEMYTYPE_COUNT, /**< Number of different enemy types. */ }; /** Encapsulates a generic enemy. An enemy is a character * that moves by its own. */ class HCEnemy : public HCCharacter { protected: HCEnemyType type; /**< Type of enemy. */ s32 param1; /**< Behaviour param 1. */ s32 param2; /**< Behaviour param 2. */ static float maxXVeloccity; /**< Maximum veloccity in x direction. */ static float maxYVeloccity; /**< Maximum veloccity in y direction. */ public: /** Creates an empty enemy. */ HCEnemy(HCEnemyType _type) : HCCharacter(), type(_type), param1(0), param2(0) {} /** Initializes this enemy. * @param sprites Sprites for this enemy. * @param _map Map for this enemy. * @param _ropes Ropes this enemy must check. * @param nRopes Number of ropes this enemy must check. * @return true if everything goes well, false otherwise. */ virtual bool Init(JImageSprite *sprites, HCMap *_map, HCRope **_ropes = 0, s32 nRopes = 0); /** Returns the type of enemy. * @return Type of enemy. */ HCEnemyType Type() {return type;} /** Returns the behaviour param 1. * @return Behaviour param 1. */ s32 Param1() {return param1;} /** Returns the behaviour param 2. * @return Behaviour param 2. */ s32 Param2() {return param2;} /** Sets the behaviour param 1. * @param newParam New behaviour param 1. */ void Param1(s32 newParam) {param1 = newParam;} /** Sets the behaviour param 2. * @param newParam New behaviour param 2. */ void Param2(s32 newParam) {param2 = newParam;} /** Updates the enemy. * @return Return value of the associated drawable's update. */ virtual s32 Update(); /** Loads the enemy. * @param file File opened and positioned already. * @param theme The theme to use. * @param _map The level to use. * @return 0 if it succeeds, 1 if there is an I/O error, 2 if integrity error. */ u32 Load(JRW &file, HCTheme &theme, HCMap *_map); /** Stablishes the maximum global X veloccity for an enemy. * @param mvx Maximum X veloccity for any enemy. */ static void MaxXVeloccity(float mvx) {maxXVeloccity = JMax(1.0f, mvx);} /** Stablishes the maximum global Y veloccity for an enemy. * @param mvy Maximum Y veloccity for any enemy. */ static void MaxYVeloccity(float mvy) {maxYVeloccity = JMax(0.1f, mvy);} /** Saves the enemy. The file must be opened and positioned already. * @param file File opened and positioned already. * @return 0 if it succeeds, 1 if there is an I/O error, 2 if integrity error. */ u32 Save(JRW &file); /** Destroys this enemy and allows scalar destruction. */ virtual ~HCEnemy() {} }; #endif // _HCENEMY_INCLUDED holotz-castle-1.3.14-src/src/HCPreferences.cpp0000644000175000001440000001256311177007633020135 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Preferences file for Holotz's Castle. * @file HCPreferences.cpp * @author Juan Carlos Seijo Prez * @date 24/08/2004 * @version 0.0.1 - 24/08/2004 - First version. */ #include #ifndef HC_DATA_DIR #define HC_DATA_DIR "res/" #endif #ifndef _WIN32 #include #include #endif HCPreferences * HCPreferences::instance; HCPreferences::HCPreferences() { langs = 0; langCodes = 0; numLangs = 0; numVideoModes = 0; videoModes = 0; sound = 0; difficulty = 0; instance = this; Reset(); } void HCPreferences::Reset() { curLang = HCPREFERENCES_DEFLANGUAGE; videoMode = HCPREFERENCES_DEFVIDEOMODE; bpp = HCPREFERENCES_DEFBPP; fullscreen = HCPREFERENCES_DEFFULLSCREEN; sound = HCPREFERENCES_DEFSOUND; difficulty = HCPREFERENCES_DEFDIFFICULTY; } void HCPreferences::BPP(s32 newBPP) { bpp = newBPP; if (bpp != 8 && bpp != 16 && bpp != 24 && bpp != 32) bpp = HCPREFERENCES_DEFBPP; } s32 HCPreferences::Load(const char *filename) { Destroy(); s32 ret = 0; // Loads the available video modes videoModes = JListVideoModes(&numVideoModes, bpp); if (!videoModes) { fprintf(stderr, "No fullscreen video modes found, forcing to windowed.\n"); ret |= 1; } // Loads the available languages JTextFile fLang; if (fLang.Load(HC_DATA_DIR HCPREFERENCES_LANGFILE, "rb")) { std::vector vL, vC; char strLang[64]; char strCode[8]; while (2 == sscanf(fLang.GetPos(), "%[^;];%[a-z]", strLang, strCode)) { vL.push_back(strdup(strLang)); vC.push_back(strdup(strCode)); fLang.NextLine(); } numLangs = vC.size(); langs = new char *[numLangs]; langCodes = new char *[numLangs]; for (s32 i = 0; i < numLangs; ++i) { langs[i] = vL[i]; langCodes[i] = vC[i]; } } else { ret |= 2; return ret; } const char *fname; char name[256]; if (filename != 0) fname = filename; else { #ifndef _WIN32 char *home; home = getenv("HOME"); if (home != NULL) { snprintf(name, sizeof(name), "%s/.holotz-castle/" HCPREFERENCES_DEFFILENAME, home); fname = name; } else fname = HC_DATA_DIR HCPREFERENCES_DEFFILENAME; #else fname = HC_DATA_DIR HCPREFERENCES_DEFFILENAME; #endif } JTextFile f; if (!f.Load(fname, "rb")) { // Error opening // Overrides the default video mode with one that fits into the desktop, this prevents that the first time one plays // and exit without changing the video size, the next time they play the video was bigger than the desktop, // not allowing to see all the window, even the menu if (videoModes) { // Conservative first guess... videoMode = numVideoModes/2; // ...but tries to put in a boundary of 640x480 for (s32 vmd = 0; vmd < numVideoModes; ++vmd) { if (videoModes[vmd].w <= 640 && videoModes[vmd].h <= 480) { videoMode = vmd; break; } } } return 4; } // Loads the preferences s32 fs, snd; if (6 != sscanf(f.GetPos(), "language=%d video=%d bpp=%d fullscreen=%d audio=%d difficulty=%d", &curLang, &videoMode, &bpp, &fs, &snd, &difficulty)) { // Incorrect file return 8; } fullscreen = (fs != 0) ? true : false; sound = (snd != 0) ? true : false; BPP(bpp); fullscreen = (fullscreen != 0) ? true : false; sound = (sound != 0) ? true : false; JClamp(difficulty, HCPREFERENCES_HARD, HCPREFERENCES_TOY); return 0; } s32 HCPreferences::Save(const char *filename) { const char *fname; char name[256]; if (filename != 0) fname = filename; else { #ifndef _WIN32 char *home; home = getenv("HOME"); if (home != NULL) { snprintf(name, sizeof(name), "%s/.holotz-castle", home); mkdir(name, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); snprintf(name, sizeof(name), "%s/.holotz-castle/" HCPREFERENCES_DEFFILENAME, home); fname = name; } else fname = HC_DATA_DIR HCPREFERENCES_DEFFILENAME; #else fname = HC_DATA_DIR HCPREFERENCES_DEFFILENAME; #endif } JTextFile f; if (!f.Open(fname, "wb")) { // Error opening return 1; } // Saves the preferences if (0 > f.Printf("language=%d\nvideo=%d\nbpp=%d\nfullscreen=%d\naudio=%d\ndifficulty=%d", curLang, videoMode, bpp, fullscreen ? 1 : 0, sound ? 1 : 0, difficulty)) { // Incorrect file return 2; } return 0; } void HCPreferences::Destroy() { if (langs != 0) { for (s32 i = 0; i < numLangs; ++i) { if (langs[i] != 0) { free(langs[i]); } } delete[] langs; } if (langCodes != 0) { for (s32 i = 0; i < numLangs; ++i) { if (langCodes[i] != 0) { free(langCodes[i]); } } delete[] langCodes; } numLangs = 0; JDELETE_ARRAY(videoModes); } holotz-castle-1.3.14-src/src/HCEnemyBall.cpp0000644000175000001440000000655711177007633017552 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Defines an enemy ball. * @file HCEnemyBall.cpp * @author Juan Carlos Seijo Prez * @date 27/05/2004 * @version 0.0.1 - 27/05/2004 - First version. */ #include HCEnemyBall::HCEnemyBall() : HCEnemy(HCENEMYTYPE_BALL) { // Depende de param1 o param2 actions = (param1 % 2 ? HCCA_LEFT : HCCA_RIGHT); v.x = (float)(param1 % 2 ? -(param1 + 1) : (param1 + 1)); vMax.x = v.x; state = HCCS_LEFT; } void HCEnemyBall::UpdateCollisions() { s32 row = map->ToRow((s32)pos.y), col = map->ToCol((s32)pos.x), newCol = map->ToCol((s32)(pos.x + v.x)); // Side collisions switch (map->Cell(row, newCol)->Type()) { case HCCELLTYPE_FLOOR: case HCCELLTYPE_CONTFLOOR: v.x = -v.x; if (actions & HCCA_RIGHT) { actions &= ~HCCA_RIGHT; actions |= HCCA_LEFT; } else { actions &= ~HCCA_LEFT; actions |= HCCA_RIGHT; } break; case HCCELLTYPE_BREAK: if (((HCBreak *)map->Cell(row, newCol))->State() == HCBREAKSTATE_NORMAL) { v.x = -v.x; if (actions & HCCA_RIGHT) { actions &= ~HCCA_RIGHT; actions |= HCCA_LEFT; } else { actions &= ~HCCA_LEFT; actions |= HCCA_RIGHT; } } break; default: col = newCol; break; } s32 newRow = map->ToRow((s32)(pos.y + v.y)); // Updown collisions switch (map->Cell(newRow, col)->Type()) { case HCCELLTYPE_LADDER: case HCCELLTYPE_BAR: // New cell is a ladder or a bar switch (state) { case HCCS_UP: case HCCS_DOWN: case HCCS_SLIDE: // In this states do nothing break; case HCCS_JUMPLEFT: case HCCS_JUMPRIGHT: case HCCS_JUMP: if (newRow > row && map->Cell(row, col)->Type() == HCCELLTYPE_BLANK) { // Falls over a ladder or bar, must stop v.y = 0.0f; if (actions & HCCA_RIGHT) { actions &= ~HCCA_RIGHT; actions |= HCCA_LEFT; } else { actions &= ~HCCA_LEFT; actions |= HCCA_RIGHT; } } break; default: // In any other state, stops the character v.y = 0.0f; break; } break; default: if ((map->Cell(newRow, col)->Actions() & HCACTION_FALL) == 0) { v.y = 0.0f; switch (state) { // If jumping, must stop case HCCS_JUMPLEFT: case HCCS_JUMPRIGHT: case HCCS_JUMP: if (newRow > row) { actions &= ~HCCA_JUMP; } break; case HCCS_DOWN: case HCCS_SLIDE: actions &= ~HCCA_DOWN; break; default: break; } } else { if (newRow > row && state != HCCS_JUMP && state != HCCS_JUMPLEFT && state != HCCS_JUMPRIGHT) { actions &= ~HCCA_JUMP; } } break; } } holotz-castle-1.3.14-src/src/HCContFloor.cpp0000644000175000001440000001353711177007633017603 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Continuous floor cell. * @file HCContFloor.cpp * @author Juan Carlos Seijo Prez * @date 02/06/2004 * @version 0.0.1 - 02/06/2004 - First version. */ #include void HCContFloor::Build(JImage *parts, bool n7, bool n8, bool n9, bool n4, bool n6, bool n1, bool n2, bool n3) { s32 cw = parts[HCFDT_C1].Width(); s32 ch = parts[HCFDT_C1].Height(); s32 iw = parts[HCFDT_I].Width(); s32 ih = parts[HCFDT_I].Height(); JImage *img; drawable.Create((cw * 2) + iw, (ch * 2) + ih, 32); img = &drawable; // UL Corner if (n7) { if (n4) { if (n8) { // The three exist (*) around us (X): // // ** // *X img->Paste(&parts[HCFDT_C], 0, 0, cw, ch, 0, 0); } else { // * // *X img->Paste(&parts[HCFDT_CU], 0, 0, cw, ch, 0, 0); } } else { if (n8) { // ** // X img->Paste(&parts[HCFDT_CL], 0, 0, cw, ch, 0, 0); } else { // * // X img->Paste(&parts[HCFDT_C7], 0, 0, cw, ch, 0, 0); } } } else { if (n4) { if (n8) { // * // *X img->Paste(&parts[HCFDT_C7UL], 0, 0, cw, ch, 0, 0); } else { // // *X img->Paste(&parts[HCFDT_CU], 0, 0, cw, ch, 0, 0); } } else { if (n8) { // * // X img->Paste(&parts[HCFDT_CL], 0, 0, cw, ch, 0, 0); } else { // // X img->Paste(&parts[HCFDT_C7], 0, 0, cw, ch, 0, 0); } } } // UR Corner if (n9) { if (n6) { if (n8) { // ** // X* img->Paste(&parts[HCFDT_C], 0, 0, cw, ch, cw + iw, 0); } else { // * // X* img->Paste(&parts[HCFDT_CU], 0, 0, cw, ch, cw + iw, 0); } } else { if (n8) { // ** // X img->Paste(&parts[HCFDT_CR], 0, 0, cw, ch, cw + iw, 0); } else { // * // X img->Paste(&parts[HCFDT_C9], 0, 0, cw, ch, cw + iw, 0); } } } else { if (n6) { if (n8) { // * // X* img->Paste(&parts[HCFDT_C9UR], 0, 0, cw, ch, cw + iw, 0); } else { // // X* img->Paste(&parts[HCFDT_CU], 0, 0, cw, ch, cw + iw, 0); } } else { if (n8) { // * // X img->Paste(&parts[HCFDT_CR], 0, 0, cw, ch, cw + iw, 0); } else { // // X img->Paste(&parts[HCFDT_C9], 0, 0, cw, ch, cw + iw, 0); } } } // DL Corner if (n1) { if (n4) { if (n2) { // *X // ** img->Paste(&parts[HCFDT_C], 0, 0, cw, ch, 0, ch + ih); } else { // *X // * img->Paste(&parts[HCFDT_C1DL], 0, 0, cw, ch, 0, ch + ih); } } else { if (n2) { // X // ** img->Paste(&parts[HCFDT_CL], 0, 0, cw, ch, 0, ch + ih); } else { // X // * img->Paste(&parts[HCFDT_C1], 0, 0, cw, ch, 0, ch + ih); } } } else { if (n4) { if (n2) { // *X // * img->Paste(&parts[HCFDT_C1DL], 0, 0, cw, ch, 0, ch + ih); } else { // *X // img->Paste(&parts[HCFDT_CD], 0, 0, cw, ch, 0, ch + ih); } } else { if (n2) { // X // * img->Paste(&parts[HCFDT_CL], 0, 0, cw, ch, 0, ch + ih); } else { // X // img->Paste(&parts[HCFDT_C1], 0, 0, cw, ch, 0, ch + ih); } } } // DR Corner if (n3) { if (n6) { if (n2) { // X* // ** img->Paste(&parts[HCFDT_C], 0, 0, cw, ch, cw + iw, ch + ih); } else { // X* // * img->Paste(&parts[HCFDT_CD], 0, 0, cw, ch, cw + iw, ch + ih); } } else { if (n2) { // X // ** img->Paste(&parts[HCFDT_CR], 0, 0, cw, ch, cw + iw, ch + ih); } else { // X // * img->Paste(&parts[HCFDT_C3], 0, 0, cw, ch, cw + iw, ch + ih); } } } else { if (n6) { if (n2) { // X* // * img->Paste(&parts[HCFDT_C3DR], 0, 0, cw, ch, cw + iw, ch + ih); } else { // X* // img->Paste(&parts[HCFDT_CD], 0, 0, cw, ch, cw + iw, ch + ih); } } else { if (n2) { // X // * img->Paste(&parts[HCFDT_CR], 0, 0, cw, ch, cw + iw, ch + ih); } else { // X // img->Paste(&parts[HCFDT_C3], 0, 0, cw, ch, cw + iw, ch + ih); } } } // U Side if (n8) { // * // X img->Paste(&parts[HCFDT_SV], 0, 0, iw, ch, cw, 0); } else { // // X img->Paste(&parts[HCFDT_S8], 0, 0, iw, ch, cw, 0); } // D Side if (n2) { // X // * img->Paste(&parts[HCFDT_SV], 0, 0, iw, ch, cw, ch + ih); } else { // X // img->Paste(&parts[HCFDT_S2], 0, 0, iw, ch, cw, ch + ih); } // L Side if (n4) { // // *X img->Paste(&parts[HCFDT_SH], 0, 0, cw, ih, 0, ch); } else { // // X img->Paste(&parts[HCFDT_S4], 0, 0, cw, ih, 0, ch); } // R Side if (n6) { // // X* img->Paste(&parts[HCFDT_SH], 0, 0, cw, ih, cw + iw, ch); } else { // // X img->Paste(&parts[HCFDT_S6], 0, 0, cw, ih, cw + iw, ch); } // The center cannot change img->Paste(&parts[HCFDT_I], 0, 0, iw, ih, cw, ch); } holotz-castle-1.3.14-src/src/HCExit.h0000644000175000001440000001025711177007633016250 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Exit gadget for Holtz's castle game. * @file HCExit.h * @author Juan Carlos Seijo Prez * @date 17/08/2004 * @version 0.0.1 - 17/08/2004 - First version. */ #ifndef _HCEXIT_INCLUDED #define _HCEXIT_INCLUDED #include #include #include #include #include #include /** State of this exit object. */ typedef enum { HCEXITSTATE_LOCKED = 0, /**< The exit is closed. */ HCEXITSTATE_UNLOCKED, /**< The exit is opened. */ HCEXITSTATE_SWALLOWING, /**< The exit is swallowing a character. */ HCEXITSTATE_SWALLOWED /**< The exit has just swallowed the character. */ } HCExitState; /** A spark. */ struct HCExitSpark { float x0, y0, x, y; /**< Position of this spark. */ float vx, vy; /**< Veloccity of this spark. */ SDL_Color c; /**< Color of this spark. */ u8 dc; /**< Color variation rate. */ }; /** Exit for a level. The character must be aligned with it to reach it. */ class HCExit : public JDrawable { protected: HCMap *map; /**< Map for this exit. */ HCExitState state; /**< Current state. */ float x1; /**< X of lower right box for sparkles. */ float y1; /**< Y of lower right box for sparkles. */ JTimer timer; /**< Timer for FPS count. */ HCExitSpark *sparks; /**< Sparks. */ s32 numSparks; /**< Number of sparkles. */ HCCharacter *character; /**< Character to swallow. */ JImage *imgCharacter; /**< Frame of the character being swallowed. */ public: /** Creates the exit. Init must be called before starting to use it. */ HCExit(); /** Initializes the exit. * @param _map Map for this exit. * @return true if everything goes well, false otherwise. */ virtual bool Init(HCMap *_map, s32 nSparks, s32 w = 0); /** Draws the exit. */ virtual void Draw(); /** Updates the exit. * @return Return value of the associated drawable's update. */ virtual s32 Update(); /** Returns the state of the exit. Must use one of Lock(), Unlock() or Swallow() to change the state. * @return the state of the exit. */ HCExitState State() {return state;} /** Returns the number of sparks. * @return the number of sparks. */ s32 NumSparks() {return numSparks;} /** Returns the lower right x coordinate of the exit. * @return the lower right x coordinate of the exit. */ float X1() {return x1;} /** Returns the lower right y coordinate of the exit. * @return the lower right y coordinate of the exit. */ float Y1() {return y1;} /** Locks the exit. */ void Lock() {state = HCEXITSTATE_LOCKED;} /** Unlocks the exit. */ void Unlock(); /** Swallows the character. * @param ch Character to swallow. */ void Swallow(HCCharacter *ch); /** Positions this object. * @param xPos New x coordinate. * @param yPos New y coordinate. */ virtual void Pos(float xPos, float yPos); /** Destroys this exit. */ void Destroy(); /** Destroys this exit. Allows scalar destruction. */ virtual ~HCExit(); }; #endif // _HCEXIT_INCLUDED holotz-castle-1.3.14-src/src/HCed.h0000644000175000001440000005216311177007633015731 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Level editor for Holotz's Castle. * @file HCed.h * @author Juan Carlos Seijo Prez * @date 30/05/2004 * @version 0.0.1 - 30/05/2004 - First version */ #ifndef _HCED_INCLUDED #define _HCED_INCLUDED #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define HCED_MARGIN 48 /**< Margin for menus. */ #define HCED_REFAPPWIDTH 800 /**< Referential app width, overridable with -f option of JApp. */ #define HCED_REFAPPHEIGHT 600 /**< Referential app height, overridable with -f option of JApp. */ #define HCED_INPUT_STORY 1 /**< Input new story name. */ #define HCED_INPUT_THEME 2 /**< Input theme. */ /** State of the application. */ enum HCedState { HCEDSTATE_FLOOR = 0, HCEDSTATE_CONTFLOOR, HCEDSTATE_LADDER, HCEDSTATE_BAR, HCEDSTATE_BREAK, HCEDSTATE_OBJECT, HCEDSTATE_ROPE, HCEDSTATE_START, HCEDSTATE_EXIT, HCEDSTATE_ENEMY, HCEDSTATE_SAVE, HCEDSTATE_OPENSTORY, HCEDSTATE_APPEXIT, HCEDSTATE_COUNT, }; /** Level editor for Holotz's Castle. */ class HCed : public JApp { HCedState state; /**< State of the app. */ JImage imgMenu[HCEDSTATE_COUNT]; /**< Main menu images. */ JImage imgMenuOver[HCEDSTATE_COUNT]; /**< Main menu over images. */ JImage imgEnemy[HCENEMYTYPE_COUNT]; /**< Enemy type menu images. */ JImage imgEnemyOver[HCENEMYTYPE_COUNT]; /**< Enemy type menu images. */ JImage imgCredits; /**< Credits image. */ JImage * imgMouse; /**< Current state image. */ // Application menus JImageMenu *menuMain; /**< Application menu. */ JImageMenu *menuEnemyType; /**< Enemy type menu. */ JTextMenu *menuEnemyParam1; /**< Enemy param 1 menu. */ JTextMenu *menuEnemyParam2; /**< Enemy param 2 menu. */ JTextMenu *menuRopePeriod; /**< Rope period menu. */ JTextMenu *menuOpenStory; /**< Open story menu. */ JTextMenu *menuTheme; /**< Theme menu. */ s32 inputNewStory; /**< New story input flag 0 no input, 1 story name, 2 theme select. */ JString strNewStoryName; /**< New story input string. */ JImage *imgNewStory; /**< New story image. */ JString storyDir; /**< Stories directory. */ // These application menus depend on the level // 'Types' are applied in different ways depending on the action // 'Subtypes' define the representation (in dirs 1, 2, etc.) JImageMenu *menuMainSubtype; /**< Main character subtype menu. */ JImageMenu *menuBreakSubtype; /**< Break subtype menu. */ JImageMenu *menuObjectSubtype; /**< Object subtype menu. */ JImageMenu *menuEnemySubtype[HCENEMYTYPE_COUNT]; /**< Enemy subtype menus. */ JImageMenu *menuFloorSubtype; /**< Floor subtype menu. */ JImageMenu *menuContFloorSubtype; /**< Continuous floor subtype menu. */ JImageMenu *menuBarSubtype; /**< Bar subtype menu. */ JImageMenu *menuLadderSubtype; /**< Ladder subtype menu. */ JImageMenu *menuRopeSubtype; /**< Rope subtype menu. */ u32 appBackColor; /**< Application back color. */ JImage imgBackground; /**< Background image. */ HCMap map; /**< Holotz's castle map. */ HCLevel level; /**< Holotz's castle level. */ JString storyName; /**< Name of the story to load/save */ JString filename; /**< Full-path name of the file to load/save */ JString themeName; /**< Theme name */ s32 defRows; /**< Default number of rows. */ s32 defCols; /**< Default number of columns. */ s32 levelNumber; /**< Level number. */ HCEnemyType enemyType; /**< Current enemy type. */ s32 enemySubtype; /**< Current enemy subtype. */ s32 enemyParam1; /**< Current enemy param 1. */ s32 enemyParam2; /**< Current enemy param 2. */ s32 floorSubtype; /**< Current floor subtype. */ s32 contFloorSubtype; /**< Current continuous floor subtype. */ s32 breakSubtype; /**< Current break subtype. */ s32 barSubtype; /**< Current bar subtype. */ s32 ladderSubtype; /**< Current ladder subtype. */ s32 objectSubtype; /**< Current object subtype. */ s32 ropeSubtype; /**< Current rope subtype. */ float ropePeriod; /**< Current rope period. */ HCObject *curObject; /**< Current edited object. */ HCRope *curRope; /**< Current edited rope. */ HCEnemy *curEnemy; /**< Current edited enemy. */ JFont fontSmall; /**< Small font. */ JFont fontNormal; /**< Normal font. */ JFont fontLarge; /**< Large font. */ JImage *imgGravity; /**< Map's gravity image. */ JImage *imgCharVx; /**< Main character's x veloccity. */ JImage *imgCharVy; /**< Main character's y veloccity. */ JImage *imgCharJumpRows; /**< Main character's maximum jump rows. */ JImage *imgMapSize; /**< Map size image. */ public: /** Creates the editor. Init() must be called in order to use the object. */ HCed(); /** Initializes the application. * @param argc Argument count from the command line, as in main(). * @param argv Argument list from the command line, as in main(). * @return true if initialization succeeded, false otherwise. */ bool Init(int argc, char **argv); /** Initializes a default level. * @return true if initialization succeeded, false otherwise. */ bool InitDefaultLevel(); /** Initializes a loaded level. * @return true if initialization succeeded, false otherwise. */ bool InitLoadedLevel(); /** Initializes the level dependant menus. * @return 0 if initialization succeeded, -1 otherwise. */ s32 InitLevelMenus(); /** Destroy the level dependant menus. */ void DestroyLevelMenus(); /** Initializes the main menu. * @return true if initialization succeeded, false otherwise. */ bool InitMainMenu(); /** Initializes the main character subtype menu. * @return true if initialization succeeded, false otherwise. */ bool InitMainSubtypeMenu(); /** Initializes the floor subtype menu. * @return true if initialization succeeded, false otherwise. */ bool InitFloorSubtypeMenu(); /** Initializes the continuous floor subtype menu. * @return true if initialization succeeded, false otherwise. */ bool InitContFloorSubtypeMenu(); /** Initializes the break subtype menu. * @return true if initialization succeeded, false otherwise. */ bool InitBreakSubtypeMenu(); /** Initializes the bar subtype menu. * @return true if initialization succeeded, false otherwise. */ bool InitBarSubtypeMenu(); /** Initializes the ladder subtype menu. * @return true if initialization succeeded, false otherwise. */ bool InitLadderSubtypeMenu(); /** Initializes the object subtype menu. * @return true if initialization succeeded, false otherwise. */ bool InitObjectSubtypeMenu(); /** Initializes the rope period menu. * @return true if initialization succeeded, false otherwise. */ bool InitRopePeriodMenu(); /** Initializes the rope subtype menu. * @return true if initialization succeeded, false otherwise. */ bool InitRopeSubtypeMenu(); /** Initializes the enemy type menu. * @return true if initialization succeeded, false otherwise. */ bool InitEnemyTypeMenu(); /** Initializes the enemy subtype menu. * @return true if initialization succeeded, false otherwise. */ bool InitEnemySubtypeMenu(); /** Initializes the enemy param 1 menu. * @return true if initialization succeeded, false otherwise. */ bool InitEnemyParam1Menu(); /** Initializes the enemy param 2 menu. * @return true if initialization succeeded, false otherwise. */ bool InitEnemyParam2Menu(); /** Initializes the open story menu. * @return true if initialization succeeded, false otherwise. */ bool InitOpenStoryMenu(); /** Initializes the theme menu. * @return true if initialization succeeded, false otherwise. */ bool InitThemeMenu(); /** Destroys the main character subtype menu. */ void DestroyMainSubtypeMenu(); /** Destroys the break subtype menu. */ void DestroyBreakSubtypeMenu(); /** Destroys the object subtype menu. */ void DestroyObjectSubtypeMenu(); /** Destroys the enemy subtype menu. */ void DestroyEnemySubtypeMenu(); /** Draws the application. * @return true if drawing succeeded, false otherwise. */ bool Draw(); /** Draws the application in the FLOOR state. * @return true if drawing succeeded, false otherwise. */ bool DrawFloor(); /** Draws the application in the CONTFLOOR state. * @return true if drawing succeeded, false otherwise. */ bool DrawContFloor(); /** Draws the application in the LADDER state. * @return true if drawing succeeded, false otherwise. */ bool DrawLadder(); /** Draws the application in the BAR state. * @return true if drawing succeeded, false otherwise. */ bool DrawBar(); /** Draws the application in the BREAK state. * @return true if drawing succeeded, false otherwise. */ bool DrawBreak(); /** Draws the application in the OBJECT state. * @return true if drawing succeeded, false otherwise. */ bool DrawObject(); /** Draws the application in the ROPE state. * @return true if drawing succeeded, false otherwise. */ bool DrawRope(); /** Draws the application in the START state. * @return true if drawing succeeded, false otherwise. */ bool DrawStart(); /** Draws the application in the EXIT state. * @return true if drawing succeeded, false otherwise. */ bool DrawExit(); /** Draws the application in the ENEMY state. * @return true if drawing succeeded, false otherwise. */ bool DrawEnemy(); /** Draws the application in the SAVE state. * @return true if drawing succeeded, false otherwise. */ bool DrawSave(); /** Draws the application in the OPENSTORY state. * @return true if drawing succeeded, false otherwise. */ bool DrawOpenStory(); /** Draws the application in the APPEXIT state. * @return true if drawing succeeded, false otherwise. */ bool DrawAppExit(); /** Updates the application. * @return true if update succeeded, false otherwise. */ bool Update(); /** Checks for floor erasing. */ void UpdateEraseFloor(); /** Updates the application in the FLOOR state. * @return true if update succeeded, false otherwise. */ bool UpdateFloor(); /** Updates the application in the CONTFLOOR state. * @return true if update succeeded, false otherwise. */ bool UpdateContFloor(); /** Updates the application in the LADDER state. * @return true if update succeeded, false otherwise. */ bool UpdateLadder(); /** Updates the application in the BAR state. * @return true if update succeeded, false otherwise. */ bool UpdateBar(); /** Updates the application in the BREAK state. * @return true if update succeeded, false otherwise. */ bool UpdateBreak(); /** Updates the application in the OBJECT state. * @return true if update succeeded, false otherwise. */ bool UpdateObject(); /** Updates the application in the ROPE state. * @return true if update succeeded, false otherwise. */ bool UpdateRope(); /** Updates the application in the START state. * @return true if update succeeded, false otherwise. */ bool UpdateStart(); /** Updates the application in the EXIT state. * @return true if update succeeded, false otherwise. */ bool UpdateExit(); /** Updates the application in the ENEMY state. * @return true if update succeeded, false otherwise. */ bool UpdateEnemy(); /** Updates the application in the SAVE state. * @return true if update succeeded, false otherwise. */ bool UpdateSave(); /** Updates the application in the OPENSTORY state. * @return true if update succeeded, false otherwise. */ bool UpdateOpenStory(); /** Updates the application in the APPEXIT state. * @return true if update succeeded, false otherwise. */ bool UpdateAppExit(); /** Process key down events. * @param key Key released. */ static void OnKeyDown(SDL_keysym key); /** Process key up events. * @param key Key released. */ static void OnKeyUp(SDL_keysym key); /** Process mouse up events. * @param bt Released button mask. * @param x X position of the release. * @param y Y position of the release. */ static void OnMouseUp(s32 bt, s32 x, s32 y); /** Process mouse down events. * @param bt Pressed button mask. * @param x X position of the press. * @param y Y position of the press. */ static void OnMouseDown(s32 bt, s32 x, s32 y); /** Updates the window title. */ void OnFilenameChange(); /** Updates the gravity image. */ static void OnGravityChange(); /** Updates the character' Vx image. */ static void OnCharVxChange(); /** Updates the character' Vy image. */ static void OnCharVyChange(); /** Updates the character' jump rows image. */ static void OnCharJumpRowsChange(); /** Updates the map size image. */ static void OnMapSizeChange(); /** Floor action. * @param data Additional data. */ static void OnFloor(void *data); /** Continuous floor action. * @param data Additional data. */ static void OnContFloor(void *data); /** Ladder action. * @param data Additional data. */ static void OnLadder(void *data); /** Bar action. * @param data Additional data. */ static void OnBar(void *data); /** Break action. * @param data Additional data. */ static void OnBreak(void *data); /** Object action. * @param data Additional data. */ static void OnObject(void *data); /** Rope action. * @param data Additional data. */ static void OnRope(void *data); /** Start action. * @param data Additional data. */ static void OnStart(void *data); /** Exit action. * @param data Additional data. */ static void OnExit(void *data); /** Enemy action. * @param data Additional data. */ static void OnEnemy(void *data); /** Save action. * @param data Additional data. */ static void OnSave(void *data); /** OpenStory action. * @param data Additional data. */ static void OnOpenStory(void *data); /** Story selection action. * @param data Additional data. */ static void OnSelectStory(void *data); /** Theme selection action. * @param data Additional data. */ static void OnSelectTheme(void *data); /** AppExit action. * @param data Additional data. */ static void OnAppExit(void *data); /** Main subtype selection method. * @param data Main subtype casted. */ static void OnMainSubtype(void *data); /** Floor subtype selection method. * @param data Floor subtype casted. */ static void OnFloorSubtype(void *data); /** Continuous floor subtype selection method. * @param data Floor subtype casted. */ static void OnContFloorSubtype(void *data); /** Bar subtype selection method. * @param data Bar subtype casted. */ static void OnBarSubtype(void *data); /** Ladder subtype selection method. * @param data Ladder subtype casted. */ static void OnLadderSubtype(void *data); /** Break subtype selection method. * @param data Break subtype casted. */ static void OnBreakSubtype(void *data); /** Rope subtype selection method. * @param data Rope type casted. */ static void OnRopeSubtype(void *data); /** Rope period selection method. * @param data Period casted. */ static void OnRopePeriod(void *data); /** Object subtype selection method. * @param data Subtype casted. */ static void OnObjectSubtype(void *data); /** Enemy subtype selection method. * @param data Enemy type casted. */ static void OnEnemySubtype(void *data); /** Enemy type selection method. * @param data Enemy type casted. */ static void OnEnemyType(void *data); /** Enemy param 1 selection method. * @param data Enemy param 1 casted. */ static void OnEnemyParam1(void *data); /** Enemy param 2 selection method. * @param data Enemy param 2 casted. */ static void OnEnemyParam2(void *data); /** Builds the continuous floor at the specified cell. Not performs * update of the surrounding continuous floors. * @param row Row of the continuous floor. * @param col Col of the continuous floor. */ void BuildContFloorOnce(s32 row, s32 col); /** Builds the continuous floor at the specified cell and updates * the surrounding continuous floors. * @param row Row of the continuous floor. * @param col Col of the continuous floor. */ void BuildContFloor(s32 row, s32 col); /** Determines whether the mouse is over the map or not. * @return true if the mouse is over, false if not. */ inline bool MouseOverMap(); /** Adds a new object to the level at the given position. * Sets it as the current edited object. */ void AddObject(s32 x, s32 y); /** Adds a new rope to the level hanging from the given position. * Sets it as the current edited rope. */ void AddRope(s32 x, s32 y); /** Adds a new enemy to the level in the given position. * Sets it as the current edited enemy. */ void AddEnemy(s32 x, s32 y); /** Deletes the current object. */ void DeleteObject(); /** Deletes the current rope. */ void DeleteRope(); /** Deletes the current enemy. */ void DeleteEnemy(); /** Returns the enmy corresponding to the given type and subtype * @param t Type of enemy. * @param s Subtype of enemy. * @return requested sprites or 0 if they don't exist. */ JImageSprite * GetEnemySprites(HCEnemyType t, s32 s); /** Returns the number of enemy subtypes corresponding to the given type. * @param t Type of enemy. * @return The number of subtypes. */ s32 GetNumEnemySprites(HCEnemyType t); /** Parses argument. * @param args Command line arguments. * @return Number of parameters used. */ virtual int ParseArg(char *args[], int argc); /** Parses the application arguments. * @param argc Command line argument count. * @param argv Command line arguments. */ void ParseArgs(s32 argc, char **argv); /** Shows the usage string. */ virtual void PrintUsage(char *program); /** Loads the level pointed by filename. If it doesn't exist, creates it with the default values. * @return 0 if it was succesfully loaded, -1 if there was an error or 1 if the current level is the first. */ s32 LoadLevel(); /** Loads the next level within the story. If it doesn't exist, creates it with the default values. * @return 0 if it was succesfully loaded, -1 if there was an error. */ s32 NextLevel(); /** Loads the previous level within the story. If it doesn't exist, creates it with the default values. * @return 0 if it was succesfully loaded, -1 if there was an error or 1 if the current level is the first. */ s32 PrevLevel(); /** Loads the level indicated by the member 'filename'. * @return 0 if it was succesfully loaded, -1 if there was an error. */ s32 NewLevel(); /** Destroys the app. Allows scalar destruction. */ virtual ~HCed(); }; #endif // _HCED_INCLUDED holotz-castle-1.3.14-src/src/Makefile0000644000175000001440000000537311177007633016416 0ustar jacobusers# Makefile Para Holotz's Castle. (C) Juan Carlos Seijo Pérez - 2004. # Makefile for Holotz's Castle. ifndef SDL_CONFIG SDL_CONFIG = sdl-config endif # Uncomment these lines if you don't want to install the game. Then # you'll only be able to execute it from the directory it is in. # Also comment lines bellow. # Descomenta estas l�neas si no quieres instalar el juego. S�lo # podr�s ejecutarlo desde el directorio donde est�. # Comenta las l�neas m�s abajo. ifdef I486_BUILD HC_DATA = res/ HCED_DATA = HCedHome/res/ endif # Edit these lines to change the data and game installation dirs or # comment out these lines to not install the game (also uncomment lines above) # Edita estas l�neas para cambiar el directorio de instalaci�n de datos y del juego o bien # comenta estas l�neas si no quieres instalar el juego (y descomenta las de arriba) ifndef I486_BUILD HC_BASE = /usr/share/games/holotz-castle/ HC_DATA = $(HC_BASE)game/ HCED_DATA = $(HC_BASE)editor/ HC_BIN_DIR = /usr/local/bin/ endif DEFINES = -DHC_DATA_DIR=\"$(HC_DATA)\" -DHCED_DATA_DIR=\"$(HCED_DATA)\" all: JLib HC HCed HC_OBJ_MAIN=HolotzCastle.o HC_OBJS=HCUtil.o HCTimer.o HCLoadSaveSlot.o HCPlaylist.o HCPreferences.o HCTheme.o HCText.o \ HCBreak.o HCRope.o HCContFloor.o HCObject.o HCMap.o HCExit.o HCCharacter.o \ HCEnemy.o HCEnemyBall.o HCEnemyChaser.o HCEnemyMaker.o HCEnemyRandom.o \ HCEnemyStatic.o HCScriptAction.o HCScriptBlock.o HCScript.o HCLevel.o HCED_OBJ_MAIN=HCed.o # Definir -D_JLIB_DEBUG para debug con JLib. Ponerlo también en el Makefile de JLib. # Define -D_JLIB_DEBUG for JLib debug mode. Put it also in JLib's Makefile. CFLAGS=-fno-strict-aliasing -I. -I../JLib `$(SDL_CONFIG) --cflags` -I/usr/local/include/ -I/usr/local/include/SDL -O3 -Wall -Werror -Wshadow $(CPU_OPTS) -ffast-math -c LDFLAGS=-L. -ffast-math -lSDL_image -lSDL_ttf -lSDL_mixer `$(SDL_CONFIG) --libs` JLib: $(MAKE) -C ../JLib; %.o: %.cpp %.h g++ $(CFLAGS) $(DEFINES) $< -o $@ HC: $(HC_OBJS) $(HC_OBJ_MAIN) ../JLib/libJLib.a g++ $(LDFLAGS) $? -o $@;\ mv HC ../holotz-castle # HCed (Holotz's Castle editor). HCed: $(HC_OBJS) $(HCED_OBJ_MAIN) ../JLib/libJLib.a g++ $(LDFLAGS) $? -o $@;\ mv HCed ../holotz-castle-editor install: mkdir -p $(HC_DATA);\ mkdir -p $(HCED_DATA);\ chmod -R a+rx $(HC_DATA) $(HCED_DATA);\ mkdir -p $(HC_BIN_DIR);\ cp -r ../res/[^H]* $(HC_DATA) && cp -r ../HCedHome/res/* $(HCED_DATA);\ chmod -R a+x ../holotz-castle ../holotz-castle-editor;\ cp ../holotz-castle ../holotz-castle-editor $(HC_BIN_DIR);\ chmod -R a+r $(HC_DATA) $(HCED_DATA); uninstall: rm -rf $(HC_BASE);\ rm -f $(HC_BIN_DIR)holotz-castle $(HC_BIN_DIR)holotz-castle-editor;\ .PHONY: clean clean: rm -f ../holotz-castle;\ rm -f ../holotz-castle-editor;\ rm -f *\.o;\ $(MAKE) -C ../JLib clean holotz-castle-1.3.14-src/src/HolotzCastle.cpp0000644000175000001440000012514511177007633020075 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Pérez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Pérez * jacob@mainreactor.net */ /** The game of Holotz's Castle. * @file HolotzCastle.cpp * @author Juan Carlos Seijo Pérez * @date 27/04/2004 * @version 0.0.1 - 27/04/2004 - First version. * @version 0.0.2 - 02/01/2005 - Debian package adaptation, Miriam Ruiz. */ #include #ifndef HC_DATA_DIR #define HC_DATA_DIR "res/" #endif /** This application. */ HCApp *theApp; void HCApp::OnKeyUp(SDL_keysym key) { switch (theApp->state) { case HCS_PLAYING: switch (key.sym) { case SDLK_ESCAPE: theApp->State(HCS_MENU); theApp->ProcessStateChange(); break; case SDLK_p: theApp->State(HCS_PAUSED); theApp->ProcessStateChange(); break; case SDLK_F1: theApp->State(HCS_PAUSED); theApp->ProcessStateChange(); theApp->InitHelp(); break; default: break; } // switch (key) break; case HCS_ENDLEVEL: break; case HCS_GAMEOVER: switch (key.sym) { // Skip game over screen case SDLK_RETURN: theApp->State(HCS_PLAYING); theApp->ProcessStateChange(); break; // Goes to main menu case SDLK_ESCAPE: theApp->State(HCS_MENU); theApp->ProcessStateChange(); break; default: break; } break; case HCS_SCRIPT: switch (key.sym) { // Skip script case SDLK_RETURN: theApp->State(HCS_ENDLEVEL); theApp->ProcessStateChange(); break; case SDLK_SPACE: // Skip current dialog actions in the script { theApp->script.Skip(); } break; case SDLK_ESCAPE: theApp->State(HCS_MENU); theApp->ProcessStateChange(); break; case SDLK_p: theApp->State(HCS_PAUSED); theApp->ProcessStateChange(); break; default: break; } break; case HCS_PAUSED: switch (key.sym) { case SDLK_ESCAPE: case SDLK_F1: case SDLK_p: if (theApp->imgHelp) { theApp->DestroyHelp(); } theApp->State(theApp->lastState); theApp->ProcessStateChange(); break; default: break; } // switch (key) break; case HCS_MENU: if (theApp->imgHelp) { switch (key.sym) { case SDLK_ESCAPE: case SDLK_F1: case SDLK_p: theApp->DestroyHelp(); break; default: break; } } else { theApp->menu->TrackKeyboard(key); } break; default: case HCS_INTRO: case HCS_CREDITS: theApp->State(HCS_MENU); theApp->ProcessStateChange(); break; } // switch (appState) } HCApp::HCApp() : JApp("Holotz's Castle", 640, 480, false, 16, SDL_HWSURFACE | SDL_DOUBLEBUF) { theApp = this; doInput = true; levelNumber = 1; SetOnKeyUp(&OnKeyUp); imgBack = 0; textBack = 0; imgHelp = 0; imgIntro = 0; textIntro = 0; menu = 0; imgMenu = 0; state = lastState = HCS_INTRO; memset(imgCredits, 0, sizeof(imgCredits)); memset(textCredits, 0, sizeof(textCredits)); fps = 25; playlistName = 0; stateChanged = false; } bool HCApp::Init(s32 argc, char **argv) { // Loads fonts if (!InitFonts()) { fprintf(stderr, "Couldn't load fonts.\n"); return false; } // Tries to get the current preferences if (0 != preferences.Load()) { // Generates a new preferences file if it doesn't exist if (0 != preferences.Save()) { fprintf(stderr, "Couldn't write preferences file. Check the manual.\n"); } } else { depth = preferences.BPP(); fullScreen = preferences.Fullscreen(); if (preferences.VideoModes()) { width = preferences.VideoModes()[preferences.VideoMode()].w; height = preferences.VideoModes()[preferences.VideoMode()].h; } } // Sets the icon image name Icon(HC_DATA_DIR "icon/icon.bmp"); ParseArgs(argc, argv); // Tries to get the current playlist if (!playlist.Load(playlistName)) { fprintf(stderr, "Couldn't load playlist file. Check the manual.\n"); return false; } if (!JApp::Init()) { return false; } if (!InitSound()) { fprintf(stderr, "Failed to init sound. Check the manual.\n"); } else { SoundEnabled(preferences.Sound()); } // Quitamos el cursor del ratón MouseCursor(false); State(HCS_INTRO); ProcessStateChange(); return true; } bool HCApp::InitSound() { // Initializes the sound return (0 == mixer.Init()); } bool HCApp::InitFonts() { fontSmall.Destroy(); fontMedium.Destroy(); fontLarge.Destroy(); // Loads the fonts according to the resolution if (!JFile::Exists(HC_DATA_DIR "font/font.ttf")) { fprintf(stderr, "Could not find data directory.\n\n" "Posible solutions are:\n" " - Open folder JLib-1.3.1/Games/HolotzCastle and double.\n" " click 'holotz-castle' application icon.\n" " - Maybe you did 'make' but didn't do 'make install'.\n" " - Else, try to reinstall the game.\n"); return false; } if (JFont::Init() && fontSmall.Open(HC_DATA_DIR "font/font.ttf", (long)JMax(11, height/35)) && fontMedium.Open(HC_DATA_DIR "font/font.ttf", (long)JMax(12, height/30)) && fontLarge.Open(HC_DATA_DIR "font/font.ttf", (long)JMax(13, height/25))) { level.SetTimerFont(&fontLarge); return true; } return false; } bool HCApp::InitMenu() { // Reflects changes in resolution if (!InitFonts()) { fprintf(stderr, "Couldn't load fonts.\n"); return false; } // Load game slots if (!InitSlots()) { fprintf(stderr, "Couldn't load game slots.\n"); return false; } imgMenu = new JImage; if (!imgMenu->Load(HC_DATA_DIR "main/main.tga")) { return false; } if (imgMenu->Height() > Height()) { float h = float(imgMenu->Height()); do { h /= 1.5f; } while (h > Height()); JImage *tmp = imgMenu; imgMenu = imgMenu->Scale(h/float(imgMenu->Height()), h/float(imgMenu->Height())); if (imgMenu) delete tmp; else imgMenu = tmp; } imgMenu->Pos((width - imgMenu->Width())/2, (height - imgMenu->Height())/8); JDELETE(menu); menu = new JTextMenu; // Reads the menu file in the correct language char str[256]; snprintf(str, sizeof(str), HC_DATA_DIR "menu/%s/menu.txt", preferences.LangCodes()[preferences.CurLang()]); JTextFile f; if (!f.Load(str, "rb")) { return false; } // Adds the options JTree::Iterator *it = menu->Menu(); if (f.ReadLine(str)) it->Data(new JTextMenuEntry(str, &OnContinue, 0)); else return false; // Continue game if (f.ReadLine(str)) it->AddNodeGo(new JTextMenuEntry(str, 0, 0)); else return false; // Play { if (playlist.Size() > 0) it->AddBranchGo(new JTextMenuEntry(playlist[0], &OnNew, 0)); else return false;// Story 1 for (s32 sn = 1; sn < playlist.Size(); ++sn) { it->AddNodeGo(new JTextMenuEntry(playlist[sn], &OnNew, JCAST_S32_TO_VOIDPTR(sn))); // Story N } it->Parent(); } if (f.ReadLine(str)) it->AddNodeGo(new JTextMenuEntry(str, &OnHelp, 0)); else return false; // Help if (f.ReadLine(str)) it->AddNodeGo(new JTextMenuEntry(str, 0, 0)); else return false; // Options { if (f.ReadLine(str)) it->AddBranchGo(new JTextMenuEntry(str, 0, 0)); else return false; // Video { if (f.ReadLine(str)) it->AddBranchGo(new JTextMenuEntry(str, 0, 0)); else return false; // Size { // Shows all the supported modes in the current depth if (preferences.NumVideoModes() > 0) { snprintf(str, 128, "%dx%d", preferences.VideoModes()[0].w, preferences.VideoModes()[0].h); it->AddBranchGo(new JTextMenuEntry(str, &OnVideoMode, (void *)0)); // Modes // Adds the rest of video modes found for (s32 i = 1; i < preferences.NumVideoModes(); ++i) { snprintf(str, 128, "%dx%d", preferences.VideoModes()[i].w, preferences.VideoModes()[i].h); it->AddNodeGo(new JTextMenuEntry(str, &OnVideoMode, JCAST_S32_TO_VOIDPTR(i))); // Modes } it->Parent(); } } if (f.ReadLine(str)) it->AddNodeGo(new JTextMenuEntry(str, 0, 0)); else return false; // BPP { it->AddBranchGo(new JTextMenuEntry("32", &OnBPP, (void *)32)); // 32 it->AddNodeGo(new JTextMenuEntry("24", &OnBPP, (void *)24)); // 24 it->AddNodeGo(new JTextMenuEntry("16", &OnBPP, (void *)16)); // 16 it->AddNodeGo(new JTextMenuEntry("8", &OnBPP, (void *)8)); // 8 it->Parent(); } if (f.ReadLine(str)) it->AddNodeGo(new JTextMenuEntry(str, 0, 0)); else return false; // Window { if (f.ReadLine(str)) // Windowed it->AddBranchGo(new JTextMenuEntry(str, &OnWindowMode, (void *)0)); else return false; if (f.ReadLine(str)) // Fullscreen it->AddNodeGo(new JTextMenuEntry(str, &OnWindowMode, (void *)1)); else return false; it->Parent(); } if (f.ReadLine(str)) it->AddNodeGo(new JTextMenuEntry(str, &OnDefaults)); else return false; // Defaults it->Parent(); } if (f.ReadLine(str)) it->AddNodeGo(new JTextMenuEntry(str, 0, 0)); else return false; // Sound { if (f.ReadLine(str)) it->AddBranchGo(new JTextMenuEntry(str, &OnSound, (void*)1)); else return false;// On if (f.ReadLine(str)) it->AddNodeGo(new JTextMenuEntry(str, &OnSound, (void*)0)); else return false; // Off it->Parent(); } if (f.ReadLine(str)) it->AddNodeGo(new JTextMenuEntry(str, 0, 0)); else return false; // Difficulty { if (f.ReadLine(str)) // Easy it->AddBranchGo(new JTextMenuEntry(str, &OnDifficulty, (void*)HCPREFERENCES_TOY)); else return false; if (f.ReadLine(str)) // Easy it->AddNodeGo(new JTextMenuEntry(str, &OnDifficulty, (void*)HCPREFERENCES_EASY)); else return false; if (f.ReadLine(str)) // Medium it->AddNodeGo(new JTextMenuEntry(str, &OnDifficulty, (void*)HCPREFERENCES_NORMAL)); else return false; if (f.ReadLine(str)) // Hard it->AddNodeGo(new JTextMenuEntry(str, &OnDifficulty, (void*)HCPREFERENCES_HARD)); else return false; it->Parent(); } if (f.ReadLine(str)) it->AddNodeGo(new JTextMenuEntry(str, 0, 0)); else return false; // Language { if (preferences.NumLangs() > 0) { it->AddBranchGo(new JTextMenuEntry(preferences.Langs()[0], &OnLanguage, (void *)0)); // Available langs for (s32 c = 1; c < preferences.NumLangs(); ++c) { it->AddNodeGo(new JTextMenuEntry(preferences.Langs()[c], &OnLanguage, JCAST_S32_TO_VOIDPTR(c))); // Available langs } it->Parent(); } } it->Parent(); } char strLev[64]; if (f.ReadLine(str)) it->AddNodeGo(new JTextMenuEntry(str, 0, 0)); else return false; // Load { if (strlen(saveData[0].Story()) == 0) { // Empty slot it->AddBranchGo(new JTextMenuEntry("< ******* >", 0, 0)); // Slot 0 } else { snprintf(strLev, sizeof(strLev), "< %s - %d >", saveData[0].Story(), saveData[0].Level()); it->AddBranchGo(new JTextMenuEntry(strLev, &OnLoad, (void *)0)); // Slot 0 } for (s32 i = 1; i < HC_NUM_SLOTS; ++i) { if (strlen(saveData[i].Story()) == 0) { // Empty slot it->AddNodeGo(new JTextMenuEntry("< ******* >", 0, 0)); // ... } else { snprintf(strLev, sizeof(strLev), "< %s - %d >", saveData[i].Story(), saveData[i].Level()); it->AddNodeGo(new JTextMenuEntry(strLev, &OnLoad, JCAST_S32_TO_VOIDPTR(i))); // Slot N } } it->Parent(); } if (f.ReadLine(str)) it->AddNodeGo(new JTextMenuEntry(str, 0, 0)); else return false; // Save { if (strlen(saveData[0].Story()) == 0) { // Empty slot it->AddBranchGo(new JTextMenuEntry("< ******* >", &OnSave, (void *)0)); // Slot 0 } else { snprintf(strLev, sizeof(strLev), "< %s - %d >", saveData[0].Story(), saveData[0].Level()); it->AddBranchGo(new JTextMenuEntry(strLev, &OnSave, (void *)0)); // Slot 0 } for (s32 i = 1; i < HC_NUM_SLOTS; ++i) { if (strlen(saveData[i].Story()) == 0) { // Empty slot it->AddNodeGo(new JTextMenuEntry("< ******* >", &OnSave, JCAST_S32_TO_VOIDPTR(i))); // ... } else { snprintf(strLev, sizeof(strLev), "< %s - %d >", saveData[i].Story(), saveData[i].Level()); it->AddNodeGo(new JTextMenuEntry(strLev, &OnSave, JCAST_S32_TO_VOIDPTR(i))); // Slot N } } it->Parent(); } if (f.ReadLine(str)) it->AddNodeGo(new JTextMenuEntry(str, &OnCredits, this)); else return false; // Credits if (f.ReadLine(str)) it->AddNodeGo(new JTextMenuEntry(str, &OnExit, this)); else return false; // Exit it->Root(); JTextMenuConfig cfg; memset(&cfg, 0, sizeof(cfg)); cfg.renderMode = JTEXTMENU_BLENDED; cfg.layout = JTEXTMENU_RIGHT; cfg.layoutV = JTEXTMENU_DOWN; cfg.trackKeyboard = true; cfg.autoEnter = true; cfg.lineDistance = 0; cfg.font = &fontLarge; cfg.hiColor.r = cfg.hiColor.g = cfg.hiColor.b = 255; cfg.color.b = 255; cfg.color.r = cfg.color.g = 128; menu->Pos(width, height); if (!menu->Init(cfg)) { return false; } menu->Menu()->Root(); // Loads the main title's sounds if (musicMainTitle.LoadWave(HC_DATA_DIR "sound/HCMainTitle.wav")) { if (SoundEnabled()) { musicMainTitle.FadeIn(1000, -1, -1); } } imgMenu->Alpha(0); return true; } bool HCApp::InitIntro() { SDL_Color fg = {0xff, 0xcc, 0x00, 0x00}, bg = {0x00, 0x00, 0x00, 0x00}; imgIntro = new JImage; imgFatalFun = new JImage; char str[256]; snprintf(str, sizeof(str) - 1, HC_DATA_DIR "intro/%s/intro.txt", preferences.LangCodes()[preferences.CurLang()]); JTextFile f; if (!f.Load(str)) { strcpy(str, "Proudly presents..."); } else { f.ReadWord(str); } if (imgIntro->Load(HC_DATA_DIR "intro/intro.tga", true) && imgFatalFun->Load(HC_DATA_DIR "intro/ff.tga", true, 0x0000ffff) && 0 != (textIntro = fontMedium.RenderTextShaded(str, fg, bg))) { if (imgIntro->Width() > width) { float w = float(imgIntro->Width()); do { w /= 1.5f; } while (w > Width()); JImage *tmp = imgIntro; imgIntro = imgIntro->Scale(w/float(imgIntro->Width()), w/float(imgIntro->Width())); if (imgIntro) delete tmp; else imgIntro = tmp; } if (imgFatalFun->Width() > width) { float w = float(imgFatalFun->Width()); do { w /= 1.5f; } while (w > Width()); JImage *tmp = imgFatalFun; imgFatalFun = imgFatalFun->Scale(w/float(imgFatalFun->Width()), w/float(imgFatalFun->Width())); if (imgFatalFun) delete tmp; else imgFatalFun = tmp; } imgIntro->Alpha(0); imgFatalFun->Alpha(0); textIntro->Alpha(0); imgIntro->Pos(((width - imgIntro->Width())/2), ((height - imgIntro->Height())/2)); imgFatalFun->Pos(((width - imgFatalFun->Width())/2), ((height - imgFatalFun->Height())/2)); textIntro->Pos(((width - textIntro->Width())/2), ((imgIntro->Y() + imgIntro->Height()) + (height - (imgIntro->Y() + imgIntro->Height()) - textIntro->Height())/2)); timerGeneral.Start(1000); return true; } fprintf(stderr, "Error loading intro. Switching to game menu.\n"); return false; } bool HCApp::InitPaused() { // Pauses the level level.Pause(true); // Copies the scene as is JImage img(screen); JDELETE(imgBack); imgBack = new JImage(img.Width(), img.Height()); imgBack->Paste(&img, 0, 0, img.Width(), img.Height()); imgBack->Alpha(255); JDELETE(textBack); // Reads the pause file in the correct language char str[256]; snprintf(str, sizeof(str), HC_DATA_DIR "messages/%s/messages.txt", preferences.LangCodes()[preferences.CurLang()]); JTextFile f; if (!f.Load(str, "rb")) { snprintf(str, sizeof(str), "... ZzZzZz ..."); } else { f.NextLine(); f.ReadLine(str); } textBack = new HCText; textBack->Init(HCTEXTTYPE_NARRATIVE, str, &level.Theme(), &fontLarge, JFONTALIGN_CENTER, false, 0); textBack->Pos((Width() - textBack->Image().Width())/2, (Height() - textBack->Image().Height())/2); return true; } bool HCApp::InitPlaying() { if (SoundEnabled()) { musicMainTitle.FadeOut(3000); } // Loads the world map and character switch (LoadWorld()) { // Error case 0: fprintf(stderr, "Error loading the world.\n"); return false; // Game end case -1: State(HCS_CREDITS); ProcessStateChange(); return true; } // Checks for an existing script JString str; str.Format("%s%s/script/%s/level%03d.hcs", playlist.StoryDir(), playlist.StoryName(), preferences.LangCodes()[preferences.CurLang()], levelNumber); if (JFile::Exists(str)) { if (!script.Load(str)) { fprintf(stderr, "Error loading the level script %s.\n", str.Str()); return false; } else { level.Scripted(true); State(HCS_SCRIPT); ProcessStateChange(); } } else { level.Scripted(false); // Loads the start-of-level music if (SoundEnabled() && musicBeginLevel.LoadWave(HC_DATA_DIR "sound/HCBeginLevel.wav")) { musicBeginLevel.Play(); } // Starts the level timer level.Start(); } return true; } bool HCApp::InitGameOver() { timerGeneral.Start(); // Loads the game over music if (SoundEnabled() && musicGameOver.LoadWave(HC_DATA_DIR "sound/HCGameOver.wav")) { musicGameOver.FadeIn(5000, -1, 0); } return true; } bool HCApp::InitEndLevel() { // Copies the scene as is JImage img(screen); JDELETE(imgBack); imgBack = new JImage(img.Width(), img.Height()); imgBack->Paste(&img, 0, 0, img.Width(), img.Height()); return true; } bool HCApp::InitCredits() { const char *files[HCCREDITS_IMAGE_COUNT] = {HC_DATA_DIR "credits/programming.tga", HC_DATA_DIR "credits/story.tga", HC_DATA_DIR "credits/drawing0.tga", HC_DATA_DIR "credits/drawing1.tga", HC_DATA_DIR "credits/drawing2.tga", HC_DATA_DIR "credits/animation0.tga", HC_DATA_DIR "credits/animation1.tga", HC_DATA_DIR "credits/animation2.tga", HC_DATA_DIR "credits/animation3.tga", HC_DATA_DIR "credits/music.tga", HC_DATA_DIR "main/main.tga", HC_DATA_DIR "intro/intro.tga"}; const char *strings[HCCREDITS_TEXT_COUNT] = {"Programming\nJuan Carlos Seijo Pérez", "Story\nJuan Carlos Seijo Pérez", "Graphics\nJuan Carlos Seijo Pérez", "Animation\nJuan Carlos Seijo Pérez", "Music\nJuan Carlos Seijo Pérez", "Thanks for playing!\nCheck for more games at\nwww.mainreactor.net\n&\nwww.FatalFun.com", "Holotz's Castle\n(C) Juan Carlos Seijo Pérez 2004-2009", ACKNOWLEDGEMENTS}; bool ok; ok = true; for (s32 i = 0; ok && i < HCCREDITS_IMAGE_COUNT; ++i) { JDELETE(imgCredits[i]); imgCredits[i] = new JImage(); ok = imgCredits[i]->Load(files[i]); } if (!ok) { return false; } // Adjusts main and intro images so they fit on the screen if (width < imgCredits[HCCREDITS_HOLOTZCASTLE]->Width()) { JImage *tmp; float factor = 0.8f * width/imgCredits[HCCREDITS_HOLOTZCASTLE]->Width(); if ((tmp = imgCredits[HCCREDITS_HOLOTZCASTLE]->Scale(factor, factor))) { JDELETE(imgCredits[HCCREDITS_HOLOTZCASTLE]); imgCredits[HCCREDITS_HOLOTZCASTLE] = tmp; } else { return false; } } if (width < imgCredits[HCCREDITS_LOGO]->Width()) { JImage *tmp; float factor = 0.8f * width/imgCredits[HCCREDITS_LOGO]->Width(); if ((tmp = imgCredits[HCCREDITS_LOGO]->Scale(factor, factor))) { JDELETE(imgCredits[HCCREDITS_LOGO]); imgCredits[HCCREDITS_LOGO] = tmp; } else { return false; } } SDL_Color fg; fg.b = 255; fg.r = fg.g = 128; SDL_Color bg; bg.r = bg.g = bg.b = 0; s8 dr = 128/(HCCREDITS_TEXT_COUNT - 1), dg = -(fg.g - 0xcc)/(HCCREDITS_TEXT_COUNT - 1), db = -255/(HCCREDITS_TEXT_COUNT - 1); ok = true; for (s32 i = 0; ok && i < HCCREDITS_TEXT_COUNT; ++i, fg.r += dr, fg.g += dg, fg.b += db) { JDELETE(textCredits[i]); textCredits[i] = fontLarge.PrintfShaded(JFONTALIGN_CENTER, fg, bg, strings[i]); ok = (textCredits[i] != 0); } if (!ok) { return false; } // Initializes positions // Adjusts initial Y textCredits[HCCREDITS_ACK_TEXT]->Y(height); imgCredits[HCCREDITS_PROGRAMMING]->Y(textCredits[HCCREDITS_ACK_TEXT]->Y() + textCredits[HCCREDITS_ACK_TEXT]->Height() + Height()/2); textCredits[HCCREDITS_PROGRAMMING_TEXT]->Y(imgCredits[HCCREDITS_PROGRAMMING]->Y() + imgCredits[HCCREDITS_PROGRAMMING]->Height()); imgCredits[HCCREDITS_STORY]->Y(imgCredits[HCCREDITS_PROGRAMMING]->Y() + (2 * imgCredits[HCCREDITS_PROGRAMMING]->Height())); textCredits[HCCREDITS_STORY_TEXT]->Y(imgCredits[HCCREDITS_STORY]->Y() + imgCredits[HCCREDITS_STORY]->Height()); imgCredits[HCCREDITS_DRAWING0]->Y(imgCredits[HCCREDITS_STORY]->Y() + (2 * imgCredits[HCCREDITS_STORY]->Height())); imgCredits[HCCREDITS_DRAWING1]->Y(imgCredits[HCCREDITS_STORY]->Y() + (2 * imgCredits[HCCREDITS_STORY]->Height())); imgCredits[HCCREDITS_DRAWING2]->Y(imgCredits[HCCREDITS_STORY]->Y() + (2 * imgCredits[HCCREDITS_STORY]->Height())); textCredits[HCCREDITS_DRAWING_TEXT]->Y(imgCredits[HCCREDITS_DRAWING0]->Y() + imgCredits[HCCREDITS_DRAWING0]->Height()); imgCredits[HCCREDITS_ANIMATION0]->Y(imgCredits[HCCREDITS_DRAWING0]->Y() + (2 * imgCredits[HCCREDITS_DRAWING0]->Height())); imgCredits[HCCREDITS_ANIMATION1]->Y(imgCredits[HCCREDITS_DRAWING0]->Y() + (2 * imgCredits[HCCREDITS_DRAWING0]->Height())); imgCredits[HCCREDITS_ANIMATION2]->Y(imgCredits[HCCREDITS_DRAWING0]->Y() + (2 * imgCredits[HCCREDITS_DRAWING0]->Height())); imgCredits[HCCREDITS_ANIMATION3]->Y(imgCredits[HCCREDITS_DRAWING0]->Y() + (2 * imgCredits[HCCREDITS_DRAWING0]->Height())); textCredits[HCCREDITS_ANIMATION_TEXT]->Y(imgCredits[HCCREDITS_ANIMATION0]->Y() + imgCredits[HCCREDITS_ANIMATION0]->Height()); imgCredits[HCCREDITS_MUSIC]->Y(imgCredits[HCCREDITS_ANIMATION0]->Y() + (2 * imgCredits[HCCREDITS_ANIMATION0]->Height())); textCredits[HCCREDITS_MUSIC_TEXT]->Y(imgCredits[HCCREDITS_MUSIC]->Y() + imgCredits[HCCREDITS_MUSIC]->Height()); imgCredits[HCCREDITS_HOLOTZCASTLE]->Y(imgCredits[HCCREDITS_MUSIC]->Y() + (2 * imgCredits[HCCREDITS_MUSIC]->Height())); textCredits[HCCREDITS_HOLOTZCASTLE_TEXT]->Y(imgCredits[HCCREDITS_HOLOTZCASTLE]->Y() + imgCredits[HCCREDITS_HOLOTZCASTLE]->Height()); imgCredits[HCCREDITS_LOGO]->Y(imgCredits[HCCREDITS_HOLOTZCASTLE]->Y() + (2 * imgCredits[HCCREDITS_HOLOTZCASTLE]->Height())); textCredits[HCCREDITS_LOGO_TEXT]->Y(imgCredits[HCCREDITS_LOGO]->Y() + imgCredits[HCCREDITS_LOGO]->Height()); // Adjusts initial X textCredits[HCCREDITS_ACK_TEXT]->X((float)(width - textCredits[HCCREDITS_ACK_TEXT]->Width())/2); imgCredits[HCCREDITS_PROGRAMMING]->X(float(width) * 0.3f); textCredits[HCCREDITS_PROGRAMMING_TEXT]->X((float)(width - textCredits[HCCREDITS_PROGRAMMING_TEXT]->Width())/2); imgCredits[HCCREDITS_STORY]->X(float(width) * 0.5f); textCredits[HCCREDITS_STORY_TEXT]->X((float)(width - textCredits[HCCREDITS_STORY_TEXT]->Width())/2); imgCredits[HCCREDITS_DRAWING0]->X(float(width) * 0.2f); imgCredits[HCCREDITS_DRAWING1]->X(float(width) * 0.2f); imgCredits[HCCREDITS_DRAWING2]->X(float(width) * 0.2f); textCredits[HCCREDITS_DRAWING_TEXT]->X((float)(width - textCredits[HCCREDITS_DRAWING_TEXT]->Width())/2); imgCredits[HCCREDITS_ANIMATION0]->X(float(width) * 0.6f); imgCredits[HCCREDITS_ANIMATION1]->X(float(width) * 0.6f); imgCredits[HCCREDITS_ANIMATION2]->X(float(width) * 0.6f); imgCredits[HCCREDITS_ANIMATION3]->X(float(width) * 0.6f); textCredits[HCCREDITS_ANIMATION_TEXT]->X((float)(width - textCredits[HCCREDITS_ANIMATION_TEXT]->Width())/2); imgCredits[HCCREDITS_MUSIC]->X(float(width) * 0.4f); textCredits[HCCREDITS_MUSIC_TEXT]->X((float)(width - textCredits[HCCREDITS_MUSIC_TEXT]->Width())/2); imgCredits[HCCREDITS_HOLOTZCASTLE]->X((float)(width - imgCredits[HCCREDITS_HOLOTZCASTLE]->Width())/2); textCredits[HCCREDITS_HOLOTZCASTLE_TEXT]->X((float)(width - textCredits[HCCREDITS_HOLOTZCASTLE_TEXT]->Width())/2); imgCredits[HCCREDITS_LOGO]->X((float)(width - imgCredits[HCCREDITS_LOGO]->Width())/2); textCredits[HCCREDITS_LOGO_TEXT]->X((float)(width - textCredits[HCCREDITS_LOGO_TEXT]->Width())/2); // Adjust alpha values and control variables for drawing and animation credits imgCredits[HCCREDITS_DRAWING1]->Alpha(0); imgCredits[HCCREDITS_DRAWING2]->Alpha(0); imgCredits[HCCREDITS_ANIMATION1]->Alpha(0); imgCredits[HCCREDITS_ANIMATION2]->Alpha(0); imgCredits[HCCREDITS_ANIMATION3]->Alpha(0); outDrawing = 0; inDrawing = 1; outAnimation = 0; inAnimation = 1; // Loads the credits' sounds if (musicCredits.LoadWave(HC_DATA_DIR "sound/HCCredits.wav")) { musicCredits.FadeIn(1000, -1, -1); } return true; } bool HCApp::InitHelp() { JDELETE(imgHelp); JTextFile f; char str[256]; snprintf(str, sizeof(str), HC_DATA_DIR "help/%s/help.txt", preferences.LangCodes()[preferences.CurLang()]); if (!f.Load(str, "rt")) { fprintf(stderr, "Couldn't load help file %s. Check manual.\n", str); return false; } s32 sz = f.BufferSize(); char *strText = new char[sz + 1]; memcpy(strText, f.Buffer(), sz); strText[sz] = '\0'; SDL_Color fg = {0xff, 0xcc, 0x00, 0xff}; SDL_Color bg = {0x00, 0x00, 0x33, 0xff}; imgHelp = fontLarge.PrintfShaded(JFONTALIGN_CENTER, fg, bg, strText); if (!imgHelp) { fprintf(stderr, "Couldn't create help image, out of memory. Check manual.\n"); JDELETE_ARRAY(strText); return false; } JDELETE_ARRAY(strText); imgHelp->Pos((Width() - imgHelp->Width())/2, (Height() - imgHelp->Height())/2); imgHelp->Alpha(128); return true; } void HCApp::DestroyHelp() { JDELETE(imgHelp); } bool HCApp::InitSlots() { bool ok = true; for (s32 i = 0; i < HC_NUM_SLOTS && ok; ++i) { // Loads an existing slot saveData[i].Load(i); } return ok; } void HCApp::OnExit(void *data) { ((HCApp*)data)->Exit(); } void HCApp::OnCredits(void *data) { ((HCApp*)data)->State(HCS_CREDITS); } void HCApp::OnDifficulty(void *data) { HCPreferences::Prefs()->Difficulty((long)data); HCPreferences::Prefs()->Save(); theApp->menu->Menu()->Root(); } void HCApp::OnSound(void *data) { HCApp *a = (HCApp *)App(); a->SoundEnabled(0 != (long)data); if (0 != (long)data) { if (a->SoundEnabled()) { a->Mixer().Volume(-1, MIX_MAX_VOLUME); // Sound successfully enabled a->preferences.Sound(true); a->preferences.Save(); if (!a->musicMainTitle.IsPlaying()) { a->musicMainTitle.FadeIn(1000, -1, -1); } } } else { a->musicMainTitle.Halt(); a->preferences.Sound(false); a->preferences.Save(); } } void HCApp::OnNew(void *data) { if (theApp->playlist.GoTo(theApp->playlist[JCAST_VOIDPTR_TO_S32(data)])) { theApp->levelNumber = 1; theApp->State(HCS_PLAYING); } } void HCApp::OnContinue(void *data) { // Just play, at the story it was theApp->State(HCS_PLAYING); } void HCApp::OnHelp(void *data) { theApp->InitHelp(); } void HCApp::OnVideoMode(void *data) { HCApp *a = (HCApp *)App(); a->preferences.VideoMode(JCAST_VOIDPTR_TO_S32(data)); a->preferences.Save(); App()->Resize(a->preferences.VideoModes()[JCAST_VOIDPTR_TO_S32(data)].w, a->preferences.VideoModes()[JCAST_VOIDPTR_TO_S32(data)].h, a->preferences.Fullscreen()); a->State(HCS_MENU); } void HCApp::OnBPP(void *data) { HCApp *a = (HCApp *)App(); a->preferences.BPP(JCAST_VOIDPTR_TO_S32(data)); a->preferences.Save(); a->depth = JCAST_VOIDPTR_TO_S32(data); App()->Resize(a->preferences.VideoModes()[a->preferences.VideoMode()].w, a->preferences.VideoModes()[a->preferences.VideoMode()].h, a->preferences.Fullscreen()); a->State(HCS_MENU); } void HCApp::OnWindowMode(void *data) { HCApp *a = (HCApp *)App(); a->preferences.Fullscreen(JCAST_VOIDPTR_TO_S32(data)); a->preferences.Save(); App()->Resize(a->preferences.VideoModes()[a->preferences.VideoMode()].w, a->preferences.VideoModes()[a->preferences.VideoMode()].h, a->preferences.Fullscreen()); a->State(HCS_MENU); } void HCApp::OnLanguage(void *data) { HCApp *a = (HCApp *)App(); a->preferences.CurLang(JCAST_VOIDPTR_TO_S32(data)); a->preferences.Save(); a->State(HCS_MENU); } void HCApp::OnDefaults(void *data) { HCApp *a = (HCApp *)App(); a->preferences.Reset(); a->preferences.Save(); App()->Resize(a->preferences.VideoModes()[JCAST_VOIDPTR_TO_S32(data)].w, a->preferences.VideoModes()[JCAST_VOIDPTR_TO_S32(data)].h, a->preferences.Fullscreen()); a->State(HCS_MENU); } void HCApp::OnLoad(void *data) { HCApp *app = (HCApp *)App(); if (app->playlist.GoTo(app->saveData[JCAST_VOIDPTR_TO_S32(data)].Story())) { app->levelNumber = app->saveData[JCAST_VOIDPTR_TO_S32(data)].Level(); app->State(HCS_PLAYING); } } void HCApp::OnSave(void *data) { HCApp *app = (HCApp *)App(); if (app->saveData[JCAST_VOIDPTR_TO_S32(data)].Save(JCAST_VOIDPTR_TO_S32(data), app->playlist.StoryName(), app->levelNumber)) { app->State(HCS_MENU); } } bool HCApp::DrawMenu() { SDL_FillRect(screen, 0, 0); imgMenu->Draw(); if (imgHelp) { imgHelp->Draw(); } else { menu->Draw(); } Flip(); return true; } bool HCApp::DrawPlaying() { //static s32 index = 0; //s32 t; //t = AppTime(); SDL_FillRect(screen, 0, 0); // Draws game elements level.Draw(); Flip(); //t = AppTime() - t; //printf("%3.3f FPS\n", 1000.0f/float(t)); return true; } bool HCApp::DrawPaused() { SDL_FillRect(screen, 0, 0); imgBack->Draw(); // If help requested, show help instead if (imgHelp) { imgHelp->Draw(); } else { textBack->Draw(); } Flip(); return true; } bool HCApp::DrawIntro() { if (timerGeneral.TotalLap() < 6000) { SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 255, 255, 255)); imgFatalFun->Draw(); } else if (timerGeneral.TotalLap() < 7000) { int a = 255 - ((timerGeneral.TotalLap()-6000)*255)/1000; SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, a, a, a)); } else { SDL_FillRect(screen, 0, 0); imgIntro->Draw(); textIntro->Draw(); } Flip(); return true; } bool HCApp::DrawCredits() { SDL_FillRect(screen, 0, 0); for (s32 i = 0; i < HCCREDITS_IMAGE_COUNT; ++i) { if (imgCredits[i]->Y() < height && imgCredits[i]->Y() + imgCredits[i]->Height() > 0) imgCredits[i]->Draw(); } for (s32 i = 0; i < HCCREDITS_TEXT_COUNT; ++i) { if (textCredits[i]->Y() < height && textCredits[i]->Y() + textCredits[i]->Height() > 0) textCredits[i]->Draw(); } Flip(); return true; } bool HCApp::DrawScript() { SDL_FillRect(screen, 0, 0); // Draws game elements level.Draw(); Flip(); return true; } bool HCApp::DrawEndLevel() { SDL_FillRect(screen, 0, 0); imgBack->Draw(); Flip(); return true; } bool HCApp::DrawGameOver() { SDL_FillRect(screen, 0, 0); if (imgBack) { imgBack->Draw(); textBack->Draw(); } else { level.Draw(); } Flip(); return true; } bool HCApp::Draw() { switch (state) { default: case HCS_MENU: DrawMenu(); break; case HCS_PLAYING: return DrawPlaying(); case HCS_PAUSED: return DrawPaused(); case HCS_INTRO: DrawIntro(); break; case HCS_CREDITS: return DrawCredits(); case HCS_SCRIPT: DrawScript(); break; case HCS_GAMEOVER: return DrawGameOver(); case HCS_ENDLEVEL: return DrawEndLevel(); } /* static s32 i = 0; char str[32]; sprintf(str, "video%05d.bmp", i++); SDL_SaveBMP(screen, str); */ return true; } bool HCApp::UpdateMenu() { // Make a fade-in if (imgMenu->Alpha() < 255) imgMenu->Alpha(imgMenu->Alpha() + 15); return true; } bool HCApp::UpdatePlaying() { u32 actions = 0; if (level.LevelExit()->State() < HCEXITSTATE_SWALLOWING) { if (Keys()[SDLK_LEFT] || JoystickX() < -3000) { actions |= HCCA_LEFT; } else if (Keys()[SDLK_RIGHT] || JoystickX() > 3000) { actions |= HCCA_RIGHT; } if (Keys()[SDLK_UP] || JoystickY() < -3000) { actions |= HCCA_UP; } else if (Keys()[SDLK_DOWN] || JoystickY() > 3000) { actions |= HCCA_DOWN; } if (Keys()[SDLK_SPACE] || JoystickButton()) { actions |= HCCA_JUMP; } level.ProcessInput(actions); } // Updates game elements switch (level.Update()) { // Player died case 1: State(HCS_GAMEOVER); ProcessStateChange(); break; // Level ended case 2: State(HCS_ENDLEVEL); ProcessStateChange(); break; // Nothing happened case 0: default: break; } return true; } bool HCApp::UpdatePaused() { // If help requested, don't update back text if (imgHelp) { return true; } if (textBack->Update() == 2) { // Disappeared, show it again! textBack->Reset(); } return true; } bool HCApp::UpdateIntro() { if (timerGeneral.TotalLap() > 10000) { if (imgIntro->Alpha() > 0) { // Fades out imgIntro->Alpha(imgIntro->Alpha() - 15); textIntro->Alpha(textIntro->Alpha() - 15); return true; } else { // Done, show menu State(HCS_MENU); ProcessStateChange(); return true; } } else if (timerGeneral.TotalLap() > 7000) { if (imgIntro->Alpha() < 255) { // Fades in the intro image imgIntro->Alpha(imgIntro->Alpha() + 15); } else { if (timerGeneral.TotalLap() > 8000) { if (textIntro->Alpha() < 255) { // Fades in the intro text textIntro->Alpha(textIntro->Alpha() + 15); } } } } else if (timerGeneral.TotalLap() > 5000) { if (imgFatalFun->Alpha() > 0) { // Fades out imgFatalFun->Alpha(imgFatalFun->Alpha() - 15); return true; } } else { if (imgFatalFun->Alpha() < 255) { // Fades in the intro image imgFatalFun->Alpha(imgFatalFun->Alpha() + 15); } } return true; } bool HCApp::UpdateCredits() { for (s32 i = 0; i < HCCREDITS_IMAGE_COUNT; ++i) { imgCredits[i]->Y(imgCredits[i]->Y() - 1.0f); } for (s32 i = 0; i < HCCREDITS_TEXT_COUNT; ++i) { textCredits[i]->Y(textCredits[i]->Y() - 1.0f); } // Updates fade-in's u8 alpha = imgCredits[HCCREDITS_DRAWING0 + outDrawing]->Alpha(); if (alpha > 0) { imgCredits[HCCREDITS_DRAWING0 + outDrawing]->Alpha(alpha - 5); imgCredits[HCCREDITS_DRAWING0 + inDrawing]->Alpha(imgCredits[HCCREDITS_DRAWING0 + inDrawing]->Alpha() + 5); } else { outDrawing = inDrawing; inDrawing = inDrawing < 2 ? inDrawing + 1 : 0; } alpha = imgCredits[HCCREDITS_ANIMATION0 + outAnimation]->Alpha(); if (alpha > 0) { imgCredits[HCCREDITS_ANIMATION0 + outAnimation]->Alpha(alpha - 5); imgCredits[HCCREDITS_ANIMATION0 + inAnimation]->Alpha(imgCredits[HCCREDITS_ANIMATION0 + inAnimation]->Alpha() + 5); } else { outAnimation = inAnimation; inAnimation = inAnimation < 3 ? inAnimation + 1 : 0; } if (imgCredits[HCCREDITS_LOGO]->Y() <= (height - imgCredits[HCCREDITS_LOGO]->Height())/2) { if (SoundEnabled() && !musicCredits.Fading()) { musicCredits.FadeOut(3000); } // Fade out logo if (imgCredits[HCCREDITS_LOGO]->Alpha() > 0) { imgCredits[HCCREDITS_LOGO]->Alpha(imgCredits[HCCREDITS_LOGO]->Alpha() - 5); if (imgCredits[HCCREDITS_LOGO]->Alpha() < 85) { textCredits[HCCREDITS_LOGO_TEXT]->Alpha(textCredits[HCCREDITS_LOGO_TEXT]->Alpha() - 15); } } else { // Done with the credits State(HCS_MENU); ProcessStateChange(); } } return true; } bool HCApp::UpdateScript() { // Updates script elements script.Update(); level.Update(); if (script.Finished()) { State(HCS_ENDLEVEL); ProcessStateChange(); } return true; } bool HCApp::UpdateEndLevel() { if (imgBack->Alpha() > 0) { // Fades out imgBack->Alpha(imgBack->Alpha() - 15); } else { // Next level ++levelNumber; State(HCS_PLAYING); ProcessStateChange(); } return true; } bool HCApp::UpdateGameOver() { if (timerGeneral.TotalLap() > 4000) { if (!imgBack) { // Copies the scene as is JImage img(screen); imgBack = new JImage(img.Width(), img.Height()); imgBack->Paste(&img, 0, 0, img.Width(), img.Height()); imgBack->Alpha(255); // Reads the pause file in the correct language char str[256]; snprintf(str, sizeof(str), HC_DATA_DIR "messages/%s/messages.txt", preferences.LangCodes()[preferences.CurLang()]); JTextFile f; if (!f.Load(str, "rb")) { snprintf(str, sizeof(str), "Game Over"); } else { f.ReadLine(str); } textBack = new HCText; if (!textBack->Init(HCTEXTTYPE_NARRATIVE, str, &level.Theme(), &fontLarge, JFONTALIGN_CENTER, false, 0)) { return false; } textBack->Pos((Width() - textBack->Image().Width())/2, (Height() - textBack->Image().Height())/2); textBack->Image().Alpha(0); } if (imgBack->Alpha() > 0) { // Fades out back image and fades in the text imgBack->Alpha(imgBack->Alpha() - 15); textBack->Image().Alpha(textBack->Image().Alpha() + 15); } else { if (timerGeneral.TotalLap() > 8000) { if (textBack->Image().Alpha() > 0) { // Fades out GAME OVER text textBack->Image().Alpha(textBack->Image().Alpha() - 15); } else { State(HCS_PLAYING); ProcessStateChange(); } } } } else { level.Update(); } return true; } bool HCApp::Update() { bool ret = false; UpdateEvents(); if (stateChanged) { ProcessStateChange(); } switch (state) { case HCS_MENU: ret = UpdateMenu(); break; case HCS_PLAYING: ret = UpdatePlaying(); break; case HCS_PAUSED: ret = UpdatePaused(); break; case HCS_INTRO: ret = UpdateIntro(); break; case HCS_CREDITS: ret = UpdateCredits(); break; case HCS_SCRIPT: ret = UpdateScript(); break; case HCS_GAMEOVER: ret = UpdateGameOver(); break; case HCS_ENDLEVEL: ret = UpdateEndLevel(); break; default: return false; } return ret; } s32 HCApp::LoadWorld() { JString str; str.Format("%s%s/level%03d.hlv", playlist.StoryDir(), playlist.StoryName(), levelNumber); if (!JFile::Exists(str)) { // Goes to the next story if (playlist.NextStory()) { levelNumber = 1; return LoadWorld(); } else { // Game end, start from the beggining playlist.Reset(); levelNumber = 1; return -1; } } JRW f; if (!f.Create(str, "rb") || 0 != level.Load(f, str)) { fprintf(stderr, "Error loading the level %s.\n", str.Str()); return 0; } // Centers the map within the screen level.Pos((width - level.Map().Width())/2, (height - level.Map().Height())/2); return 1; } HCState HCApp::State() { return state; } void HCApp::State(HCState newState) { lastState = state; state = newState; stateChanged = true; } void HCApp::ProcessStateChange() { stateChanged = false; switch (lastState) { case HCS_PLAYING: if (state != HCS_ENDLEVEL && state != HCS_SCRIPT && state != HCS_PAUSED && state != HCS_GAMEOVER) { // Frees allocated resources if not a script, paused or game over Destroy(); } break; case HCS_SCRIPT: if (state != HCS_ENDLEVEL && state != HCS_PAUSED && state != HCS_GAMEOVER) { // Frees allocated resources if not paused or game over Destroy(); } break; case HCS_GAMEOVER: case HCS_ENDLEVEL: case HCS_INTRO: case HCS_MENU: case HCS_CREDITS: // Frees allocated resources Destroy(); break; case HCS_PAUSED: level.Pause(false); JDELETE(imgBack); JDELETE(textBack); return; default: break; } switch(state) { case HCS_INTRO: if (!InitIntro()) { fprintf(stderr, "Failed to init intro. Check the manual.\n"); State(HCS_MENU); ProcessStateChange(); } break; case HCS_MENU: if (!InitMenu()) { fprintf(stderr, "Failed to init application menu. Check the manual.\n"); Destroy(); Exit(); } break; // Play! case HCS_PLAYING: if (!InitPlaying()) { fprintf(stderr, "Failed to init game. Check the manual.\n"); Destroy(); Exit(); } break; case HCS_PAUSED: if (!InitPaused()) { fprintf(stderr, "Failed to init pause. Check the manual.\n"); State(HCS_PLAYING); ProcessStateChange(); } break; case HCS_GAMEOVER: if (!InitGameOver()) { fprintf(stderr, "Failed to init game over. Check the manual.\n"); State(HCS_PLAYING); ProcessStateChange(); } break; case HCS_ENDLEVEL: if (!InitEndLevel()) { fprintf(stderr, "Failed to init end of level. Check the manual.\n"); State(HCS_PLAYING); ProcessStateChange(); } break; case HCS_CREDITS: if (!InitCredits()) { fprintf(stderr, "Failed to init credits. Check the manual.\n"); State(HCS_MENU); ProcessStateChange(); } break; default: break; } } void HCApp::Destroy() { JDELETE(imgBack); JDELETE(textBack); JDELETE(imgHelp); JDELETE(imgIntro); JDELETE(textIntro); JDELETE(imgMenu); JDELETE(menu); script.Destroy(); level.Destroy(); musicMainTitle.Destroy(); musicCredits.Destroy(); musicGameOver.Destroy(); if (SoundEnabled()) { mixer.Volume(-1, MIX_MAX_VOLUME); } for (s32 i = 0; i < HCCREDITS_IMAGE_COUNT; ++i) { JDELETE(imgCredits[i]); } for (s32 i = 0; i < HCCREDITS_TEXT_COUNT; ++i) { JDELETE(textCredits[i]); } HCUtil::Destroy(); } // Main function int main(int argc, char **argv) { HCApp app; if (app.Init(argc, argv)) { return app.MainLoop(); } fprintf(stderr, "There was an error initializing the App.\n"); return -1; } void HCApp::PrintUsage(char *program) { fprintf(stderr, "Holotz's Castle v1.3.7 (C) Juan Carlos Seijo Pérez - 2004.\n\n"); fprintf(stderr, "Usage: %s [-p playlist]", program); fprintf(stderr, " [-f]ullscreen [-w]indowed [--fps nnn] [-mWxHxBPP]\n"); fprintf(stderr, "\n"); exit(0); } int HCApp::ParseArg(char *args[], int argc) { if (args[0][0]!='-') return -1; switch (args[0][1]) { // '-p playlist' case 'p': if (argc<1) return -2; playlistName = args[1]; return 1; // 1 argument used } return JApp::ParseArg(args, argc); } holotz-castle-1.3.14-src/src/HCUtil.h0000644000175000001440000000726511177007633016261 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Utility functions for Holotz's Castle. * @file HCUtil.h * @author Juan Carlos Seijo Prez * @date 05/02/2005 * @version 0.0.1 - 05/02/2005 - First version. */ #ifndef _HCUTIL_INCLUDED #define _HCUTIL_INCLUDED #ifndef HC_DATA_DIR #define HC_DATA_DIR "res/" #endif #ifndef FILESYS_BAR #ifdef _WIN32 #define FILESYS_BAR '\\' #else #define FILESYS_BAR '/' #endif // _WIN32 #endif // FILESYS_BAR #include #include #include #include #include #include class HCUtil { static const char *curDir; static const char *installHCDir; static const char *installHCedDir; static char homeDir[4096]; static char lastFile[4096]; static const char *lastPath; static std::vector themes; static std::vector stories; public: /** Searchs the given file or directory within the standard dirs: * - Current dir * - Installation dir * - Home dir * @return true if found, false otherwise. */ static bool FindFile(const char *filename); /** Returns the last queried file. If none, returns an empty string. * @return Last queried file, with its full resolved path preceding it. */ static const char* File() {return lastFile;} /** Returns the last queried file's path, 0 if it wasn't found. * @return Last queried file, with its full resolved path preceding it. */ static const char* Path() {return lastPath;} /** Searchs for themes within the standard dirs: * - Current dir * - Installation dir (si onlyEdit es false, por defecto) * - Home dir * @param onlyEdit Indica si se debe buscar en el directorio de instalacin (protegido) o no. * @return true if any found, false otherwise. */ static bool FindThemes(bool onlyEdit = false); /** Searchs for stories within the standard dirs: * - Current dir * - Installation dir (si onlyEdit es false, por defecto) * - Home dir * @param onlyEdit Indica si se debe buscar en el directorio de instalacin (protegido) o no. * @return true if any found, false otherwise. */ static bool FindStories(bool onlyEdit = false); /** Returns the found themes. */ static std::vector & Themes() {return themes;} /** Returns the found stories. */ static std::vector & Stories() {return stories;} /** Creates a new story in the first stories directory found in the standard path: * - Current dir * - Installation dir * - Home dir * @return 0 if stories dir found and there was no other story with the same name, 1 if a story with the same name existed, * 2 if the stories directory couldn't be found and 3 if there was an error creating the story's directory. */ static s32 CreateStory(const char *story); /** Frees allocated resources and invalidates the themes and stories. */ static void Destroy(); }; #endif // _HCUTIL_INCLUDED holotz-castle-1.3.14-src/src/HCEnemyChaser.h0000644000175000001440000001125311177007633017537 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Defines a chaser enemy. * @file HCEnemyChaser.h * @author Juan Carlos Seijo Prez * @date 27/05/2004 * @version 0.0.1 - 27/05/2004 - First version. */ #ifndef _HCENEMYCHASER_INCLUDED #define _HCENEMYCHASER_INCLUDED #include #include #include #define HCCHASECELL_CLOSED HCCA_UP | HCCA_DOWN | HCCA_LEFT | HCCA_RIGHT /** Chase path element. */ struct HCChasePath { s32 row; /**< Row of the cell. */ s32 col; /**< Column of the cell. */ u32 action; /**< Action to perform in this cell. */ }; /** Cell for chase calculations. */ struct HCChaseCell { HCChasePath path; /**< Path info. */ u32 tried; /**< Tried actions. */ bool visited; /**< Flag controlling whether it belongs to the current path or not. */ s32 numJumpedRows; /**< Number of rows jumped. */ s32 depth; /**< Search depth reached. */ HCCell *cur; /**< This chase cell into the map. */ HCChaseCell *prev; /**< Previous cell in the search path. */ }; /** Enemy with the logic of a chaser. Goes everywhere * (even jumping or sliding) to reach Ybelle. */ class HCEnemyChaser : public HCEnemy { HCCharacter *chased; /**< Chased character. */ HCChaseCell **cells; /**< Matrix of chasing cells. */ HCChasePath *chasePath; /**< Chase path. */ u32 chasePathNumCells; /**< Number of cells in the chase path. */ s32 chaseIndex; /**< Index within the search path. */ HCChasePath *tmpPath; /**< Temporary path. */ u32 tmpPathNumCells; /**< Number of cells in the temporary path. */ s32 searchDepth; /**< Maximum number of chase steps. */ s32 finalRow; /**< Final row to reach. */ s32 finalCol; /**< Final column to reach. */ s32 nextRow; /**< Next row to reach. */ s32 nextCol; /**< Next column to reach. */ /** Resets chase cells for a new search. */ void ResetChaseMap(); /** Goes to the given cell. The cell must be in the same row or in the same column. * @param row Row to reach. * @param col Column to reach. * @return 0 if it's reachable, 1 if reached, -1 if not reachable. */ s32 GoToSimple(s32 row, s32 col); /** Goes to the given cell using GoToSimple() sequences. * @return 0 if going, 1 if reached, 2 before leaving it (at the edge), -1 if not reachable. */ s32 GoTo(s32 row, s32 col); public: /** Creates a chaser enemy. */ HCEnemyChaser(); /** Initializes this enemy. * @param sprites Sprites for this enemy. * @param _map Map for this enemy. * @param _ropes Ropes this enemy must check. * @param nRopes Number of ropes this enemy must check. * @return true if everything goes well, false otherwise. */ virtual bool Init(JImageSprite *sprites, HCMap *_map, HCRope **_ropes = 0, s32 nRopes = 0); /** Updates the chase. * @return Return value of the associated drawable's update. */ s32 UpdateChase(); /** Updates the character. * @return Return value of the associated drawable's update. */ virtual s32 Update(); /** Makes this enemy chase the given character. * @param character Character to chase, 0 for none */ void Chase(HCCharacter *character) {chased = character;} /** Checks whether the temporary path is best than the actual path and updates it if so. */ void CheckBestPath(); /** Destroys the object and allows scalar destruction. */ void Destroy(); /** Destroys the object and allows scalar destruction. */ virtual ~HCEnemyChaser() {Destroy();} }; #endif // _HCENEMYCHASER_INCLUDED holotz-castle-1.3.14-src/src/HCEnemyBall.h0000644000175000001440000000306211177007633017203 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Defines an enemy ball. * @file HCEnemyBall.h * @author Juan Carlos Seijo Prez * @date 27/05/2004 * @version 0.0.1 - 27/05/2004 - First version. */ #ifndef _HCENEMYBALL_INCLUDED #define _HCENEMYBALL_INCLUDED #include #include /** Enemy with the logic of a ball. Only falls, goes left or * right. */ class HCEnemyBall : public HCEnemy { public: /** Creates an enemy ball. */ HCEnemyBall(); /** Updates collisions with the map and modifies the state and veloccity according * to the result of the collision tests. */ virtual void UpdateCollisions(); /** Destroys the object and allows scalar destruction. */ virtual ~HCEnemyBall() {} }; #endif // _HCENEMYBALL_INCLUDED holotz-castle-1.3.14-src/src/HCLevel.h0000644000175000001440000001715711177007633016414 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Game level. Includes a map and its enemies. * @file HCLevel.h * @author Juan Carlos Seijo Prez * @date 29/05/2004 * @version 0.0.1 - 29/05/2004 - First version */ #ifndef _HCLEVEL_INCLUDED #define _HCLEVEL_INCLUDED #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class HCLevel : public JDrawable { // Allows the editor to modify it at pleasure. friend class HCed; protected: HCMap map; /**< Level map. */ HCTheme theme; /**< Level theme. */ HCExit levelExit; /**< Level exit. */ JImage bg; /**< Level background. */ HCCharacter character; /**< Main character. */ s32 numEnemies; /**< Number of enemies. */ HCEnemy **enemies; /**< Array of enemies. */ s32 numRopes; /**< Number of ropes. */ HCRope **ropes; /**< Array of ropes. */ s32 remainingObjects; /**< Number of objects remaining to unlock the exit. */ s32 numObjects; /**< Number of objects. */ HCObject **objects; /**< Array of objects. */ bool scripted; /**< Determines whether it has a script or not. */ HCText *narrative; /**< Narrative to be shown. */ bool wideMap; /**< Indicates wherther the map is wider than the movement window or not. */ bool highMap; /**< Indicates wherther the map is higher than the movement window or not. */ JVector spot; /**< Viewing spot. The level tries always to make it visible. */ s32 viewRadius; /**< Radius of the viewing spot. */ s32 maxTime; /**< Maximum time to complete the level. */ HCTimer levelTimer; /**< Level timer. */ JFont *timerFont; /**< Level timer font. */ JChunk soundObjectAcquired; /**< Sound for object acquired. */ JChunk musicEndLevel; /**< End level screen music. */ JChunk soundExitUnlocked; /**< Exit unlocked sound. */ public: /** Creates an empty level. One must Load() or call Init and manipulate * directly it (if editing). */ HCLevel(); /** Initializes the level. Creates an empty background for it. * @return true if successful, false otherwise. */ bool Init(); /** Updates the level. * @return 0 if no important event took place, 1 if player died, 2 if player went through the exit. */ s32 Update(); /** Draws the level. */ void Draw(); /** Process game input. * @param input Action mask. */ void ProcessInput(u32 input) {character.Act(input);} /** Loads the level. * @param file File opened and positioned already. * @param filename name of the file opened. * @return 0 if it succeeds, 1 if there is an I/O error, 2 if integrity error. */ u32 Load(JRW &file, const char *filename); /** Saves the level. The file must be opened and positioned already. * @param file File opened and positioned already. * @return 0 if it succeeds, 1 if there is an I/O error, 2 if integrity error. */ u32 Save(JRW &file); /** Returns this level's map. * @return Map. */ HCMap & Map() {return map;} /** Returns the number of enemies. * @return Number of enemies. */ s32 NumEnemies() {return numEnemies;} /** Returns the number of ropes. * @return Number of ropes. */ s32 NumRopes() {return numRopes;} /** Returns the number of objects. * @return Number of objects. */ s32 NumObjects() {return numObjects;} /** Returns the main character. * @return Main character. */ HCCharacter *Character() {return &character;} /** Returns the enemies. * @return enemies. */ HCEnemy ** Enemies() {return enemies;} /** Returns the ropes. * @return ropes. */ HCRope ** Ropes() {return ropes;} /** Returns the objects. * @return objects. */ HCObject ** Objects() {return objects;} /** Returns the current narrative object. * @return current narrative object. */ HCText *Narrative() {return narrative;} /** Sets the current narrative object. * @param Current narrative object to be shown. */ void Narrative(HCText *newNarrative) {narrative = newNarrative;} /** Returns the exit object. * @return exit object. */ HCExit *LevelExit() {return &levelExit;} /** Returns the theme. * @return This level's theme. */ HCTheme & Theme() {return theme;} /** Positions this level. The background is centered respect to the map. * @param xPos New x coordinate of either the background or the map, the widest. * @param yPos New y coordinate of either the background or the map, the highest. */ virtual void Pos(float xPos, float yPos); /** Checks if the character is over any object. */ void CheckObjects(); /** Updates the number of objects to be acquired to end the level. */ void ObjectAcquired(HCObject *object); /** Returns whether exit is unlocked or not. Unlocked, means that all * the objects had been collected from the map. * @return true if the exit is unlocked and the character can go * to the next level, false if not. */ bool IsExitUnlocked() {return remainingObjects == 0;} /** Sets the scripted flag. * @param newState New value for the flag. */ void Scripted(bool newState) {scripted = newState;} /** Gets the scripted flag. * @return Whether it has an script or not. */ bool Scripted() {return scripted;} /** Tests if the given characters overlap or not. * @param c1 First character to test. * @param c2 Second character to test. * @return Whether they overlap or not. */ bool Collide(HCCharacter *c1, HCCharacter *c2); /** Sets the font to render the timer. * @param f Font to use to render the timer. */ void SetTimerFont(JFont *f) {timerFont = f;} /** Destroys the level, frees resources. */ void Destroy(); /** Pauses or continues the level timer. */ void Pause(bool pause) {pause ? levelTimer.Pause() : levelTimer.Continue();} /** Starts the timer. */ void Start() {levelTimer.Start();} /** Destroys the level, frees resources, allows scalar destruction. */ virtual ~HCLevel() {Destroy();} }; #endif // _HCLEVEL_INCLUDED holotz-castle-1.3.14-src/src/HCRope.h0000644000175000001440000001056411177007633016245 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Definiton of a rope. * @file HCRope.h * @author Juan Carlos Seijo Prez * @date 05/06/2004 * @version 0.0.1 - 05/06/2004 - First version. */ #ifndef _HCROPE_INCLUDED #define _HCROPE_INCLUDED #include #include #include #include #include /** Encapsulates a rope for Holotz's Castle. * Consists of three base images (top, middle and edge of the rope). * The length of the rope refers to the number of middle parts. */ class HCRope : public JDrawable { protected: float w; /**< Angular veloccity of the edge. */ float period; /**< Period of the edge. */ s32 amplitude; /**< Rope's amplitude. */ s32 length; /**< Rope's length. */ JImage top; /**< Top image. */ JImage *middle; /**< Middle images. */ JImage edge; /**< Edge image. */ JTimer timer; /**< Timer. */ s32 subtype; /**< Theme subtype. */ s32 direction; /**< Direction of movement (left/right). */ /** Loads the rope. * @param file File opened and positioned already. * @return 0 if it succeeds, 1 if there is an I/O error, 2 if integrity error. */ u32 Load(JRW &file); public: /** Creates an empty rope. Init must be called in order to use it. */ HCRope() : w(0), period(0), amplitude(0), length(5), middle(0), subtype(0) {} /** Initializes the rope with the given parameters. * @param p Complete period of the rope in seconds (the time the edge needs to go * from left to right and return). * @param a Half the amplitude of movement in the horizontal direction. * @param l Length of the rope, in middle image units. * @param theme Theme to use. */ bool Init(float p, s32 a, u32 l, HCTheme &theme); /** Draws the rope. */ void Draw(); /** Updates the rope. * @return 0 if not changed, 1 if so. */ s32 Update(); /** Sets the position of the top of the rope. * @param newX New x position. * @param newY New y position. */ void Pos(float x, float y); /** Gets the period of this rope. * @return Period of this rope. */ float Period() {return period;} /** Gets the amplitude of this rope. * @return Amplitude of this rope. */ s32 Amplitude() {return amplitude;} /** Gets the length of this rope. * @return Length of this rope. */ s32 Length() {return length;} /** Returns the edge image. * @return Edge image. */ JImage & Edge() {return edge;} /** Loads the rope using the given theme. * @param file File opened and positioned already. * @param theme Theme to use for the graphics. * @return 0 if it succeeds, 1 if there is an I/O error, 2 if integrity error. */ u32 Load(JRW &file, HCTheme &theme); /** Saves the rope. The file must be opened and positioned already. * @param file File opened and positioned already. * @return 0 if it succeeds, 1 if there is an I/O error, 2 if integrity error. */ u32 Save(JRW &file); /** Gets the subtype of this rope. * @return Subtype of this rope. */ s32 Subtype() {return subtype;} /** Sets the subtype of this rope. * @param newSubtype New type of this rope. */ void Subtype(s32 newSubtype) {subtype = newSubtype;} /** Returns the direction of movement. * @return 0 if stopped, > 0 if moving right, < 0 if moving left */ s32 Direction() {return direction;} /** Destroys the object, frees resources and allows scalar destruction. */ virtual ~HCRope(); }; #endif // _HCROPE_INCLUDED holotz-castle-1.3.14-src/src/HCTimer.cpp0000644000175000001440000000343211177007633016747 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Level timer for holotz's castle. * @file HCTimer.cpp * @author Juan Carlos Seijo Prez * @date 04/10/2004 * @version 0.0.1 - 4/10/2004 - First version. */ #include bool HCTimer::Build(u16 t, u8 r, u8 g, u8 b) { char str[32]; sprintf(str, "%d", t); SDL_Color c = {r, g, b, 0}; Destroy(); if ((img = font->RenderTextBlended(str, c))) { return true; } return false; } bool HCTimer::Init(u16 t, JFont *f) { if (!f) { fprintf(stderr, "HCTimer: No hay fuente\n"); return false; } cycleTime = 1000; maxTime = t * 1000; font = f; return Build(t, 255, 255, 255); } void HCTimer::Draw() { img->Draw((s32)pos.x, (s32)pos.y); } s32 HCTimer::Update() { s32 t = TimeRemaining(); if (Changed() > 0) { // Turns red as time goes by u8 r = 255; u8 g = 255 * t/maxTime; u8 b = 255 * t/maxTime; if (t < 0) { t = 0; Pause(); } else { t /= 1000; } Build(t, r, g, b); } return t; } holotz-castle-1.3.14-src/src/HCLevel.cpp0000644000175000001440000004256011177007633016743 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Game level. Includes a map and its enemies. * @file HCLevel.cpp * @author Juan Carlos Seijo Prez * @date 29/05/2004 * @version 0.0.1 - 29/05/2004 - First version */ #include #ifndef HC_DATA_DIR #define HC_DATA_DIR "res/" #endif HCLevel::HCLevel() : numEnemies(0), enemies(0), numRopes(0), ropes(0), remainingObjects(0), numObjects(0), objects(0), scripted(false), narrative(0), wideMap(false), highMap(false), maxTime(1), timerFont(0) { } bool HCLevel::Init() { // Initializes the character character.Init(theme.MainChar(character.Subtype()), &map, ropes, numRopes); character.State(HCCS_STOP); // Creates an empty background bg.Destroy(); if (!bg.Create(1, 1, 0)) { fprintf(stderr, "Error creating empty level background.\n"); return false; } // Loads sounds soundObjectAcquired.Destroy(); musicEndLevel.Destroy(); if (JApp::App()->SoundEnabled() && (!soundObjectAcquired.LoadWave(HC_DATA_DIR "sound/HCObjectAcquired.wav") || !musicEndLevel.LoadWave(HC_DATA_DIR "sound/HCEndLevel.wav") || !soundExitUnlocked.LoadWave(HC_DATA_DIR "sound/HCExitUnlocked.wav"))) { fprintf(stderr, "Error loading sounds, check installation.\n"); } // Initializes the exit levelExit.Lock(); levelExit.Init(&map, 100); // Initializes the timer levelTimer.Init(maxTime, timerFont); levelTimer.Pos(0, 0); return true; } s32 HCLevel::Update() { s32 ret = 0; s32 i; // Updates the map map.Update(); // Updates the ropes for (i = 0; i < numRopes; ++i) { ropes[i]->Update(); } // Updates the character unless it's exiting the level if (!scripted) { switch (LevelExit()->State()) { default: case HCEXITSTATE_LOCKED: { if (IsExitUnlocked()) { LevelExit()->Unlock(); if (JApp::App()->SoundEnabled()) { soundExitUnlocked.Play(); } } character.Update(); } break; case HCEXITSTATE_UNLOCKED: { character.Update(); // Checks if the character is in the exit sight and swallows it if so if (Character()->X() >= LevelExit()->X() && Character()->X() <= LevelExit()->X1() && Character()->Y() >= LevelExit()->Y() && Character()->Y() <= LevelExit()->Y1()) { // Time stops levelTimer.Pause(); // Inside, swallow it! LevelExit()->Swallow(Character()); if (JApp::App()->SoundEnabled()) { musicEndLevel.Play(); } for (i = 0; i < NumEnemies(); ++i) { Enemies()[i]->State(HCCS_DIE); } } } break; case HCEXITSTATE_SWALLOWED: { // Level achieved!! if (!JApp::App()->SoundEnabled() || !musicEndLevel.IsPlaying()) { ret = 2; } } break; case HCEXITSTATE_SWALLOWING: break; } } else { character.Update(); } // Updates the objects for (i = 0; i < numObjects; ++i) { objects[i]->Update(); } // Checks for objects to pick up CheckObjects(); // Positions the level according to the character position so it's always visible // but it can be overriden if any script exists spot = character.Pos(); // Updates the enemies if (scripted) { for (i = 0; i < numEnemies; ++i) { // Updates the enemies as if they were normal characters enemies[i]->HCCharacter::Update(); } } else { bool collide = false; for (i = 0; !collide && i < numEnemies; ++i) { enemies[i]->Update(); if (HCPreferences::Prefs()->Difficulty() != HCPREFERENCES_TOY) { // Checks collisions with enemies, except in toy mode if (!collide && Collide(&character, enemies[i])) { character.State(HCCS_DIE); collide = true; ret = 1; } } } // Updates the time remaining, except in toy mode if (levelTimer.Update() <= 0) { if (HCPreferences::Prefs()->Difficulty() != HCPREFERENCES_TOY) { // Time up! (Except in toy mode) character.State(HCCS_DIE); ret = 1; } } } if (narrative) { narrative->Update(); } if (!scripted) { levelExit.Update(); } // Updates the level position according to the spot position s32 x = (s32)pos.x, y = (s32)pos.y; if (wideMap) { s32 w2 = JApp::App()->Width()/2; if (spot.x < (w2 - viewRadius)) { // Spot outside viewing spot, moves towards the spot s32 vx = (s32)JMin((w2 - viewRadius - spot.x)/4, map.CellWidth()); if (vx <= 1) vx = 1; x += vx; } else if (spot.x > (w2 + viewRadius)) { // Spot outside viewing spot, moves towards the spot s32 vx = (s32)JMin((spot.x - (w2 + viewRadius))/4, map.CellWidth()); if (vx <= 1) vx = 1; x -= vx; } } if (highMap) { s32 h2 = JApp::App()->Height()/2; if (spot.y < (h2 - viewRadius)) { // Spot outside viewing spot, moves towards the spot s32 vy = (s32)JMin((h2 - viewRadius - spot.y)/5, map.CellHeight()); if (vy <= 1) vy = 1; y += vy; } else if (spot.y > (h2 + viewRadius)) { // Spot outside viewing spot, moves towards the spot s32 vy = (s32)JMin((spot.y - (h2 + viewRadius))/5, map.CellHeight()); if (vy <= 1) vy = 1; y -= vy; } } if (wideMap || highMap) { Pos(x, y); } return ret; } void HCLevel::Draw() { s32 i; // Draws the background bg.Draw(); // Draws the map map.Draw(); // Draws the objects for (i = 0; i < numObjects; ++i) { objects[i]->Draw(); } // Draws the enemies for (i = 0; i < numEnemies; ++i) { enemies[i]->Draw(); } // Draws the ropes for (i = 0; i < numRopes; ++i) { ropes[i]->Draw(); } // Draws the main character character.Draw(); if (narrative) { narrative->Draw(); } if (!scripted) { levelExit.Draw(); if (HCPreferences::Prefs()->Difficulty() != HCPREFERENCES_TOY) { // Draws the time remaining levelTimer.Draw(); } // Draws the remaining objects to complete the level float qw = float(JApp::App()->Width())/4.0f, dx = qw/float(numObjects + 1); for (i = 0; i < numObjects; ++i) { objects[i]->Draw(); if (objects[i]->State() == HCOBJECTSTATE_NORMAL) { ((JImage *)objects[i]->Normal().Frame(0))->Draw(s32(qw * 3.0f + dx * float(i)), 0); } } } } u32 HCLevel::Load(JRW &file, const char *filename) { Destroy(); // Maximum time to complete the level, 0 means no timed if (0 == file.ReadLE32(&maxTime)) { fprintf(stderr, "Error reading the level completion time.\n"); perror(""); return 1; } // Adjusts max time according to the level of difficulty (x1, x2, x3) maxTime *= HCPreferences::Prefs()->Difficulty(); // Theme name JString str; if (0 != str.Load(file)) { fprintf(stderr, "Error loading the theme name.\n"); return 2; } // Loads the theme if (!theme.Load(str)) { fprintf(stderr, "Error loading the theme %s.\n", theme.Name()); return 2; } // Initializes and loads the map if (!map.Init(theme) || 0 != map.Load(file)) { fprintf(stderr, "Error loading the level map.\n"); return 2; } // Main character if (0 != character.Load(file)) { fprintf(stderr, "Error loading main character.\n"); return 1; } // Initializes enemie's maximum global veloccities HCEnemy::MaxXVeloccity(character.MaxVeloccity().x); HCEnemy::MaxYVeloccity(character.MaxVeloccity().y); // Loads the enemies if (0 == file.ReadLE32(&numEnemies)) { fprintf(stderr, "Error reading the number of enemies.\n"); return 1; } if (numEnemies > 0) { enemies = new HCEnemy *[numEnemies]; s32 enemyType; for (s32 i = 0; i < numEnemies; ++i) { if (0 != file.ReadLE32((s32 *)&enemyType)) { // Lets the file at ist original position file.Seek(-4, SEEK_CUR); // Peeps the type of enemy switch (enemyType) { default: case HCENEMYTYPE_BALL: enemies[i] = new HCEnemyBall; break; case HCENEMYTYPE_RANDOM: enemies[i] = new HCEnemyRandom; break; case HCENEMYTYPE_STATIC: enemies[i] = new HCEnemyStatic; break; case HCENEMYTYPE_MAKER: enemies[i] = new HCEnemyMaker; break; case HCENEMYTYPE_CHASER: enemies[i] = new HCEnemyChaser; break; } if (0 != enemies[i]->Load(file, theme, &map)) { Destroy(); fprintf(stderr, "Error loading the enemies.\n"); return 2; } } } } // Loads the objects if (0 == file.ReadLE32(&numObjects)) { fprintf(stderr, "Error reading the number of objects.\n"); return 1; } if (numObjects > 0) { remainingObjects = numObjects; objects = new HCObject *[numObjects]; for (s32 i = 0; i < numObjects; ++i) { objects[i] = new HCObject; if (0 != objects[i]->Load(file)) { Destroy(); fprintf(stderr, "Error loading the objects.\n"); return 2; } objects[i]->Init(&theme); } } // Loads the ropes if (0 == file.ReadLE32(&numRopes)) { fprintf(stderr, "Error reading the number of ropes.\n"); return 1; } if (numRopes > 0) { ropes = new HCRope *[numRopes]; for (s32 i = 0; i < numRopes; ++i) { ropes[i] = new HCRope(); if (0 != ropes[i]->Load(file, theme)) { Destroy(); fprintf(stderr, "Error loading the ropes.\n"); return 2; } } } if (!Init()) { fprintf(stderr, "Error initializing the level.\n"); return 2; } // Checks if a background named as the file and ended in '.tga' exists str.Format("%s.tga", filename); if (JFile::Exists(str)) { bg.Destroy(); if (!bg.Load(str)) { fprintf(stderr, "Error loading level background %s.\n", str.Str()); return 1; } bg.Pos(0, 0); } else { // Creates an empty background if (!bg.Create(1, 1, 0)) { fprintf(stderr, "Error creating empty level background.\n"); return 2; } } // Checks for chaser enemies in the level for (s32 i = 0; i < numEnemies; ++i) { if (enemies[i]->Type() == HCENEMYTYPE_CHASER) { ((HCEnemyChaser *)enemies[i])->Chase(&character); } } // Initializes the viewing parameters s32 x = 0, y = 0; viewRadius = 0; if (map.Width() > JApp::App()->Width()) { wideMap = true; // Defaults the viewing square size to a quarter of the application width viewRadius = JApp::App()->Width()/8; } else { x = (JApp::App()->Width() - map.Width())/2; wideMap = false; } if (map.Height() > JApp::App()->Height()) { highMap = true; // Defaults the viewing square size to a quarter of the application height or // the viewRadius, the greatest if (viewRadius != 0) { viewRadius = (s32)JMin(JApp::App()->Height()/6, viewRadius); } else { viewRadius = JApp::App()->Height()/6; } } else { y = (JApp::App()->Height() - map.Height())/2; highMap = false; } Pos(x, y); return 0; } u32 HCLevel::Save(JRW &file) { s32 x, y; // Time to complete the level if (0 == file.WriteLE32(&maxTime)) { fprintf(stderr, "Error writing the completion time.\n"); return 1; } // Theme name JString str; str = theme.Name(); if (0 != str.Save(file)) { fprintf(stderr, "Error saving the theme name.\n"); return 2; } if (0 != map.Save(file)) { fprintf(stderr, "Error saving the level map.\n"); return 2; } // Main character x = (s32)character.X(); y = (s32)character.Y(); character.Pos(x - (s32)map.X(), y - (s32)map.Y()); if (0 != character.Save(file)) { fprintf(stderr, "Error saving main character.\n"); return 1; } character.Pos(x, y); // Stores the objects, enemies, ropes relative to the map top-left corner if (0 == file.WriteLE32(&numEnemies)) { fprintf(stderr, "Error writing the number of enemies.\n"); return 1; } for (s32 i = 0; i < numEnemies; ++i) { x = (s32)enemies[i]->X(); y = (s32)enemies[i]->Y(); enemies[i]->Pos(x - (s32)map.X(), y - (s32)map.Y()); if (0 != enemies[i]->Save(file)) { fprintf(stderr, "Error saving the enemies.\n"); return 2; } enemies[i]->Pos(x, y); } if (0 == file.WriteLE32(&numObjects)) { fprintf(stderr, "Error writing the number of objects.\n"); return 1; } for (s32 i = 0; i < numObjects; ++i) { x = (s32)objects[i]->X(); y = (s32)objects[i]->Y(); objects[i]->Pos(x - (s32)map.X(), y - (s32)map.Y()); if (0 != objects[i]->Save(file)) { fprintf(stderr, "Error saving the objects.\n"); return 2; } objects[i]->Pos(x, y); } if (0 == file.WriteLE32(&numRopes)) { fprintf(stderr, "Error writing the number of ropes.\n"); return 1; } for (s32 i = 0; i < numRopes; ++i) { x = (s32)ropes[i]->X(); y = (s32)ropes[i]->Y(); ropes[i]->Pos(x - (s32)map.X(), y - (s32)map.Y()); if (0 != ropes[i]->Save(file)) { fprintf(stderr, "Error saving the ropes.\n"); return 2; } ropes[i]->Pos(x, y); } return 0; } void HCLevel::Pos(float xPos, float yPos) { float xMap, yMap, xBg, yBg, dx, dy; float xMapOrg = map.X(); float yMapOrg = map.Y(); pos.x = xPos; pos.y = yPos; if (map.Width() > bg.Width()) { xMap = xPos; xBg = xPos + ((map.Width() - bg.Width())/2); } else { xBg = xPos; xMap = xPos + ((bg.Width() - map.Width())/2); } if (map.Height() > bg.Height()) { yMap = yPos; yBg = yPos + ((map.Height() - bg.Height())/2); } else { yBg = yPos; yMap = yPos + ((bg.Height() - map.Height())/2); } map.Pos(xMap, yMap); bg.Pos(xBg, yBg); dx = xMap - xMapOrg; dy = yMap - yMapOrg; // Now move the objects float t1, t2; for (s32 i = 0; i < numObjects; ++i) { t1 = objects[i]->X(); t2 = objects[i]->Y(); objects[i]->Pos(objects[i]->X() + (s32)dx, objects[i]->Y() + (s32)dy); } // Now move the ropes for (s32 i = 0; i < numRopes; ++i) { ropes[i]->Pos(ropes[i]->X() + (s32)dx, ropes[i]->Y() + (s32)dy); } // Now move the enemies for (s32 i = 0; i < numEnemies; ++i) { enemies[i]->Pos(enemies[i]->X() + (s32)dx, enemies[i]->Y() + (s32)dy); } // Move the level exit levelExit.Pos(levelExit.X() + (s32)dx, (s32)levelExit.Y() + (s32)dy); // And finally the main character character.Pos(character.X() + (s32)dx, character.Y() + (s32)dy); } void HCLevel::CheckObjects() { JVector vc, vo; vc = character.Pos(); // Y Offset of the center of the character JImage * img = (JImage *)character.CurSprite()->Frame(character.CurSprite()->CurFrame()); vc.y += img->Pos().y + (img->Width()/2); for (s32 i = 0; i < numObjects; ++i) { if (objects[i]->State() == HCOBJECTSTATE_NORMAL) { vo = objects[i]->Pos(); // Y Offset of the center of the character img = (JImage *)objects[i]->Normal().Frame(objects[i]->Normal().CurFrame()); vo.y += img->Pos().y + (img->Width()/2); if (vo == vc) { // 0 length case ObjectAcquired(objects[i]); if (JApp::App()->SoundEnabled()) { soundObjectAcquired.Play(); } } else { if ((vo - vc).Length() < (0.9f * character.CurSprite()->MaxW())) { ObjectAcquired(objects[i]); if (JApp::App()->SoundEnabled()) { soundObjectAcquired.Play(); } } } } } } void HCLevel::ObjectAcquired(HCObject *object) { if (object) { --remainingObjects; object->Acquire(); } } bool HCLevel::Collide(HCCharacter *c1, HCCharacter *c2) { float px1, py1, px2, py2, pw, ph; float ex1, ey1, ex2, ey2, ew, eh; JImage *cfp, *cfe; float difficulty = 0.75; cfp = (JImage *)c1->CurSprite()->Frame(c1->CurSprite()->CurFrame()); cfe = (JImage *)c2->CurSprite()->Frame(c2->CurSprite()->CurFrame()); pw = cfp->Width() * difficulty; ph = cfp->Height() * difficulty; px1 = c1->CurSprite()->Pos().x + cfp->X() + (cfp->Width()/2) - (pw/2); px2 = px1 + pw; py1 = c1->CurSprite()->Pos().y + cfp->Y() + (cfp->Height()/2) - (ph/2); py2 = py1 + ph; ew = cfe->Width() * difficulty; eh = cfe->Height() * difficulty; ex1 = c2->CurSprite()->Pos().x + cfe->X() + (cfe->Width()/2) - (ew/2); ex2 = ex1 + ew; ey1 = c2->CurSprite()->Pos().y + cfe->Y() + (cfe->Height()/2) - (eh/2); ey2 = ey1 + eh; // SDL_Rect rcp = {px1, py1, pw, ph}; // SDL_Rect rce = {ex1, ey1, ew, eh}; // SDL_FillRect(SDL_GetVideoSurface(), &rce, 0xffffffff); // SDL_FillRect(SDL_GetVideoSurface(), &rcp, 0xffffffff); // SDL_Flip(SDL_GetVideoSurface()); // Approximate collisions using half the width and height, centered of the characters if ((px1 > ex1 && px1 < ex2) || (px2 > ex1 && px2 < ex2) || (px1 < ex1 && px2 > ex2) || (px1 > ex1 && px2 < ex2)) { if ((py1 > ey1 && py1 < ey2) || (py2 > ey1 && py2 < ey2) || (py1 < ey1 && py2 > ey2) || (py1 > ey1 && py2 < ey2)) { // Collide! return true; } } return false; } void HCLevel::Destroy() { JDELETE_POINTER_ARRAY(enemies, numEnemies); numEnemies = 0; JDELETE_POINTER_ARRAY(ropes, numRopes); numRopes = 0; JDELETE_POINTER_ARRAY(objects, numObjects); numObjects = 0; map.Destroy(); theme.Destroy(); levelExit.Destroy(); bg.Destroy(); character.Destroy(); narrative = 0; levelTimer.Destroy(); soundObjectAcquired.Destroy(); musicEndLevel.Destroy(); } holotz-castle-1.3.14-src/src/HCTimer.h0000644000175000001440000000461611177007633016421 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Level timer for holotz's castle. * @file HCTimer.h * @author Juan Carlos Seijo Prez * @date 04/10/2004 * @version 0.0.1 - 4/10/2004 - First version. */ #ifndef _HCTIMER_INCLUDED #define _HCTIMER_INCLUDED #include #include #include /** Tracks the time elapsed within the level and updates the marker. */ class HCTimer : public JDrawable, public JTimer { protected: JImage *img; /**< Image to draw the time remaining to. */ s32 maxTime; /**< Maximum time. */ JFont *font; /**< Font to use. */ /** Build the given time's image. * @param t Seconds to show. * @return true if succedded, false otherwise. */ bool Build(u16 t, u8 r, u8 g, u8 b); public: /** Creates an empty timer. */ HCTimer() : img(0), maxTime(0), font(0) {} /** Initializes the timer. * @param t Seconds to count. * @param f Font to use to render the text. * @return true if succedded, false otherwise. */ bool Init(u16 t, JFont *f); /** Checks whether the time has elapsed or not. * @return Milliseconds remaining to end (note: <= 0 if finished). */ s32 TimeRemaining() {return maxTime - TotalLap();} /** Draws the timer. */ virtual void Draw(); /** Updates the timer. * @return 0 if not finished, -1 if so. */ virtual s32 Update(); /** Destroys the associated image. */ void Destroy() {JDELETE(img);} /** Destroys the object. */ virtual ~HCTimer() {Destroy();} }; #endif // _HCTIMER_INCLUDED holotz-castle-1.3.14-src/src/HCPlaylist.h0000644000175000001440000000575711177007633017151 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Playlist for Holotz's castle. * @file HCPlaylist.h * @author Juan Carlos Seijo Prez * @date 25/08/2004 * @version 0.0.1 - 25/08/2004 - First version. */ #ifndef _HCPLAYLIST_INCLUDED #define _HCPLAYLIST_INCLUDED #include #include #include #include #include #include #ifndef HC_DATA_DIR #define HC_DATA_DIR "res/" #endif #define HCPLAYLIST_DEFFILENAME "playlist.txt" class HCPlaylist { protected: std::vector stories; /**< Playlist with the stories ordered. */ s32 curStory; /**< Current story playing. */ char storyDir[4096]; public: /** Creates an empty playlist object. Load must be called before using it. */ HCPlaylist() : curStory(0) { strncpy(storyDir, HC_DATA_DIR, sizeof(storyDir)); } /** Return the current story directory. */ const char * StoryDir() { return storyDir;} /** Return the current story name. */ const char * StoryName() {return stories[curStory];} /** Advances to the next story. * @return if there was another story, false otherwise. */ bool NextStory(); /** Loads the playlist from the specified file. * @param file Name of the file with the playlist. * @return true if succeeded, falseotherwise. */ bool Load(const char *file = HCPLAYLIST_DEFFILENAME); /** Goes to the first story. */ void Reset() {curStory = 0;} /** Goes to the given story. * @param _storyName Name of the story to go to. * @return true if the story exists, false otherwise. */ bool GoTo(const char *_storyName); /** Destroys the object. */ void Destroy(); /** Returns the size of the playlist. * @return Size of the playlist. */ s32 Size() {return stories.size();} /** Returns the element at position index. * @param index Position of the element to retrieve. * @return Element at position index. */ char * operator[](s32 index) {return stories[index];} /** Orders alphabetically the stories. */ void OrderStories(); /** Destroys the object. */ ~HCPlaylist() {Destroy();} }; #endif // _HCPLAYLIST_INCLUDED holotz-castle-1.3.14-src/src/HCEnemyMaker.h0000644000175000001440000000264211177007633017373 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Defines an enemy maker. * @file HCEnemyMaker.h * @author Juan Carlos Seijo Prez * @date 27/05/2004 * @version 0.0.1 - 27/05/2004 - First version. */ #ifndef _HCENEMYMAKER_INCLUDED #define _HCENEMYMAKER_INCLUDED #include #include /** Enemy with the logic of a maker. Can create enemies and move * around limitedly. */ class HCEnemyMaker : public HCEnemy { public: /** Creates an enemy maker. */ HCEnemyMaker(); /** Destroys the object and allows scalar destruction. */ virtual ~HCEnemyMaker() {} }; #endif // _HCENEMYMAKER_INCLUDED holotz-castle-1.3.14-src/src/Makefile.win320000600000175000001440000000305411177007633017341 0ustar jacobusers# Makefile Para Holotz's Castle. (C) Juan Carlos Seijo Prez - 2004. # Makefile for Holotz's Castle. HC_DATA = res/ HCED_DATA = HCedHome/res/ DEFINES = -DHC_DATA_DIR=\"$(HC_DATA)\" -DHCED_DATA_DIR=\"$(HCED_DATA)\" all: JLib HC HCed HC_OBJ_MAIN=HolotzCastle.o HC_OBJS=HCUtil.o HCTimer.o HCLoadSaveSlot.o HCPlaylist.o HCPreferences.o HCTheme.o HCText.o \ HCBreak.o HCRope.o HCContFloor.o HCObject.o HCMap.o HCExit.o HCCharacter.o \ HCEnemy.o HCEnemyBall.o HCEnemyChaser.o HCEnemyMaker.o HCEnemyRandom.o \ HCEnemyStatic.o HCScriptAction.o HCScriptBlock.o HCScript.o HCLevel.o HCED_OBJ_MAIN=HCed.o # Definir -D_JLIB_DEBUG para debug con JLib. Ponerlo tambin en el Makefile de JLib. # Define -D_JLIB_DEBUG for JLib debug mode. Put it also in JLib's Makefile. CFLAGS=-O3 -Wshadow -ffast-math -c -I/mingw/include/SDL -I../JLib -I. -I/mingw/include -I/usr/local/include -I/usr/include $(shell sdl-config --cflags) -D_WIN32 -DWIN32 LDFLAGS=-s -L/mingw/lib -L/usr/lib -L/usr/local/lib -mwindows -ffast-math -lglu32 -lopengl32 -lgdi32 -lcomctl32 -lwsock32 -lmingw32 -lSDLmain -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf -lzdll JLib: make -C ../JLib -f Makefile.win32; %.o: %.cpp %.h g++ $(CFLAGS) $(DEFINES) $< -o $@ HC: $(HC_OBJS) $(HC_OBJ_MAIN) ../JLib/libJLib.a g++ $? -o $@ $(LDFLAGS);\ mv $@.exe ../holotz-castle.exe # HCed (Holotz's Castle editor). HCed: $(HC_OBJS) $(HCED_OBJ_MAIN) ../JLib/libJLib.a g++ $? -o $@ $(LDFLAGS);\ mv $@.exe ../holotz-castle-editor.exe .PHONY: clean clean: rm *.o rm ../holotz-castle.exe rm ../holotz-castle-editor.exe holotz-castle-1.3.14-src/src/HCBreak.cpp0000644000175000001440000000437511177007633016722 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Break floor definition file. * @file HCBreak.cpp * @author Juan Carlos Seijo Prez * @date 30/04/2004 * @version 0.0.1 - 30/04/2004 - First version. */ #include s32 HCBreak::Update() { switch (state) { case HCBREAKSTATE_NORMAL: normal.Update(); return 0; case HCBREAKSTATE_BREAKING: if (-1 == breaking.Update()) { // If the breaking state has ended, places it in a non-drawable state state = HCBREAKSTATE_BROKEN; // and let the characters fall through it actionMask |= HCACTION_FALL | HCACTION_LEFT | HCACTION_RIGHT; } return 1; case HCBREAKSTATE_BROKEN: default: // Finished with this break return -1; } } void HCBreak::Draw() { switch (state) { case HCBREAKSTATE_NORMAL: normal.Draw(); break; case HCBREAKSTATE_BREAKING: breaking.Draw(); break; default: break; } } void HCBreak::Break() { state = HCBREAKSTATE_BREAKING; breaking.Pos(pos.x, pos.y); if (prev && prev->State() == HCBREAKSTATE_NORMAL) { prev->Break(); } if (next && next->State() == HCBREAKSTATE_NORMAL) { next->Break(); } } void HCBreak::Pos(float xPos, float yPos) { pos.x = xPos; pos.y = yPos; switch (state) { case HCBREAKSTATE_NORMAL: normal.Pos(xPos, yPos); break; case HCBREAKSTATE_BREAKING: breaking.Pos(xPos, yPos); break; case HCBREAKSTATE_BROKEN: default: broken.Pos(xPos, yPos); break; } } holotz-castle-1.3.14-src/src/HCTheme.h0000644000175000001440000003721211177007633016401 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Theme for Holotz's castle. Loads several resources as floors * breaks, ladders, bars and characters. * @file HCTheme.h * @author Juan Carlos Seijo Prez * @date 01/06/2004 * @version 0.0.1 - 01/06/2004 - First version. */ #ifndef _HCTHEME_INCLUDED #define _HCTHEME_INCLUDED #include #include #include #include #include /** Type of floor image. Used to build dinamically the map. */ enum HCFloorDrawType { HCFDT_C = 0, /**< Corner with 3 neighbours. */ HCFDT_C1, /**< DL corner. */ HCFDT_C1DL, /**< DL corner with DL neighbours. */ HCFDT_C3, /**< DR corner. */ HCFDT_C3DR, /**< DR corner with DL neighbours. */ HCFDT_C7, /**< UL corner. */ HCFDT_C7UL, /**< UL corner with UR neighbours. */ HCFDT_C9, /**< UR corner. */ HCFDT_C9UR, /**< UR corner with UR neighbours. */ HCFDT_CU, /**< C7 or C9 with U neighbour. */ HCFDT_CD, /**< C1 or C3 with D neighbour. */ HCFDT_CL, /**< C1 or C7 with L neighbour. */ HCFDT_CR, /**< C3 or C9 with R neighbour. */ HCFDT_S2, /**< D side. */ HCFDT_S4, /**< L side. */ HCFDT_S6, /**< R side. */ HCFDT_S8, /**< U side. */ HCFDT_SH, /**< U or D sides with U or D neighbour, respectively*/ HCFDT_SV, /**< L or R sides with L or R neighbour, respectively*/ HCFDT_I, /**< Inner part of the cell. */ HCFDT_COUNT, /**< Number of floor part types. */ }; /** Break sprite types. */ enum HCBreakDrawType { HCBDT_NORMAL = 0, HCBDT_BREAKING, HCBDT_BROKEN, HCBDT_COUNT, }; /** Object sprite types. */ enum HCObjectDrawType { HCODT_NORMAL = 0, HCODT_ACQUIRED, HCODT_COUNT, }; /** Rope image types. */ enum HCRopeDrawType { HCRDT_TOP = 0, HCRDT_MIDDLE, HCRDT_EDGE, HCRDT_COUNT, }; /** Character sprite types. Must be the same as * HCCharacterState but is placed here to avoid circular references between * the files. */ enum HCCharacterDrawType { HCCDT_STOP = 0, /**< Stopped state. */ HCCDT_RIGHT, /**< Walk-right state. */ HCCDT_LEFT, /**< Walk-left state. */ HCCDT_UP, /**< Up state. */ HCCDT_DOWN, /**< Down state. */ HCCDT_SLIDE, /**< Slide state. */ HCCDT_JUMP, /**< Jump left state. */ HCCDT_JUMPLEFT, /**< Jump left state. */ HCCDT_JUMPRIGHT, /**< Jump right state. */ HCCDT_FALL, /**< Fall state. */ HCCDT_DIE, /**< Die state. */ HCCDT_HANG, /**< Hang state. */ HCCDT_COUNT, /**< State count. */ }; /** Text image types. */ enum HCTextDrawType { HCTDT_1 = 0, /**< Lower left corner */ HCTDT_2, /**< Lower side */ HCTDT_3, /**< Lower right corner */ HCTDT_4, /**< Left side */ HCTDT_5, /**< Center */ HCTDT_6, /**< Right corner */ HCTDT_7, /**< Upper left corner */ HCTDT_8, /**< Up side */ HCTDT_9, /**< Upper right corner */ HCTDT_LEFT, /**< Lower left peak (only in dialogs) */ HCTDT_RIGHT, /**< Lower right peak (only in dialogs) */ }; /** Theme for Holotz's Castle. */ class HCTheme { protected: JImage *imgFloor; /**< Floor images. */ s32 numFloors; /**< Number of Floor variants. */ JImage **imgContFloor; /**< Continuous floor images. */ s32 numContFloors; /**< Number of Continuous Floor variants. */ JImageSprite **sprBreak; /**< Break sprites. */ s32 numBreaks; /**< Number of Break variants. */ JImageSprite **sprObject; /**< Object sprites. */ s32 numObjects; /**< Number of Object variants. */ JImage *imgBar; /**< Bar images. */ s32 numBars; /**< Number of Bar variants. */ JImage *imgLadder; /**< Ladder images. */ s32 numLadders; /**< Number of Ladder variants. */ JImage **imgRope; /**< Rope images. */ s32 numRopes; /**< Number of Rope variants. */ JImageSprite **sprMain; /**< Main character sprites. */ s32 numMains; /**< Number of Main character variants. */ JImageSprite **sprGuest; /**< Guest sprites. */ s32 numGuests; /**< Number of guest variants. */ JImageSprite **sprBall; /**< Ball enemy sprites. */ s32 numBalls; /**< Number of Ball variants. */ JImageSprite **sprRandom; /**< Random enemy sprites. */ s32 numRandoms; /**< Number of Random variants. */ JImageSprite **sprStatic; /**< Static enemy sprites. */ s32 numStatics; /**< Number of Static variants. */ JImageSprite **sprMaker; /**< Maker enemy sprites. */ s32 numMakers; /**< Number of Maker variants. */ JImageSprite **sprChaser; /**< Chaser enemy sprites. */ s32 numChasers; /**< Number of Chaser variants. */ JImage **imgDialog; /**< Dialog images. */ s32 numDialogs; /**< Number of Dialog variants. */ JImage **imgNarrative; /**< Narrative images. */ s32 numNarratives; /**< Number of Narrative variants. */ char name[256]; /**< Theme's name. */ /** Count the number of correlative dirs starting from 1 in the cwd. * @return Number of correlative dirs starting from 1 in the cwd. */ s32 CountDirs(); /** Load floor resources. * @return true if succeeded, false if not. */ bool LoadFloors(); /** Load continuous floor resources. * @return true if succeeded, false if not. */ bool LoadContFloors(); /** Load break resources. * @return true if succeeded, false if not. */ bool LoadBreaks(); /** Load bar resources. * @return true if succeeded, false if not. */ bool LoadBars(); /** Load ladder resources. * @return true if succeeded, false if not. */ bool LoadLadders(); /** Load decorative resources. * @return true if succeeded, false if not. */ bool LoadDecos(); /** Load object resources. * @return true if succeeded, false if not. */ bool LoadObjects(); /** Load rope resources. * @return true if succeeded, false if not. */ bool LoadRopes(); /** Load main character's resources. * @return true if succeeded, false if not. */ bool LoadChar(const char *directory, JImageSprite ** &sprArr, s32 &num); /** Load character resources. * @return true if succeeded, false if not. */ bool LoadCharacters(); /** Load dialog resources. * @return true if succeeded, false if not. */ bool LoadDialogs(); /** Load narrative resources. * @return true if succeeded, false if not. */ bool LoadNarratives(); public: /** Creates an empty theme. Load() must be called in order to use it. */ HCTheme(); /** Returns the Floor image. * @param index Element to retrieve. * @return &The Floor image. */ JImage & Floor(s32 index) {return imgFloor[index];} /** Returns the continuous Floor images. * @param index Element to retrieve. * @return &The continuous Floor images. */ JImage * ContFloor(s32 index) {return imgContFloor[index];} /** Returns the Break sprites. * @param index Element to retrieve. * @return &The Break sprites. */ JImageSprite * Break(s32 index) {return sprBreak[index];} /** Returns the Object sprites. index 0 is the key. * @param index Element to retrieve. * @return &The Object sprites. */ JImageSprite * Object(s32 index) {return sprObject[index];} /** Returns the Bar image. * @param index Element to retrieve. * @return &The Bar image. */ JImage & Bar(s32 index) {return imgBar[index];} /** Returns the Ladder image. * @param index Element to retrieve. * @return &The Ladder image. */ JImage & Ladder(s32 index) {return imgLadder[index];} /** Returns the Rope images. * @param index Element to retrieve. * @return &The Rope images. */ JImage * Rope(s32 index) {return imgRope[index];} /** Returns the Main character sprites. * @param index Element to retrieve. * @return The Main character sprites. */ JImageSprite * MainChar(s32 index) {return sprMain[index];} /** Returns the Guest sprites. * @param index Element to retrieve. * @return The Guest sprites. */ JImageSprite * Guest(s32 index) {return sprGuest[index];} /** Returns the Ball enemy sprites. * @param index Element to retrieve. * @return The Ball enemy sprites. */ JImageSprite * Ball(s32 index) {return sprBall[index];} /** Returns the Random enemy sprites. * @param index Element to retrieve. * @return The Random enemy sprites. */ JImageSprite * Random(s32 index) {return sprRandom[index];} /** Returns the Static enemy sprites. * @param index Element to retrieve. * @return The Static enemy sprites. */ JImageSprite * Static(s32 index) {return sprStatic[index];} /** Returns the Maker enemy sprites. * @param index Element to retrieve. * @return The Maker enemy sprites. */ JImageSprite * Maker(s32 index) {return sprMaker[index];} /** Returns the Chaser enemy sprites. * @param index Element to retrieve. * @return The Chaser enemy sprites. */ JImageSprite * Chaser(s32 index) {return sprChaser[index];} /** Returns the Dialog image. * @param index Element to retrieve. * @return &The Dialog image. */ JImage * Dialog(s32 index) {return imgDialog[index];} /** Returns the Narrative image. * @param index Element to retrieve. * @return &The Narrative image. */ JImage * Narrative(s32 index) {return imgNarrative[index];} /** Loads the theme. The name of the theme is the name of the directory * containing it. The structure is: *
	 * themeName1
	 *  `-  1
	 *    `- contfloor - Floor cell parts (corner, sides, interiors)
   *      `  1       
   *      ` [2]
	 *      ` ...
	 *    `- break     - Break cell sprites
   *      `  1
   *      ` [2]
	 *      ` ...
	 *    `- ladder    - Ladder cell image
   *      `  1
   *      ` [2]
	 *      ` ...
	 *    `- bar       - Bar cell image
   *      `  1
   *      ` [2]
	 *      ` ...
	 *    `- object    - Objects (keys, powerups, etc.)
   *      `  1
   *      ` [2]
	 *      ` ...
	 *    `- deco      - Decorative images/effects
   *      `  1
   *      ` [2]
	 *      ` ...
	 *    `- rope      - Rope images (edge, top, middle)
   *      `  1
   *      ` [2]
	 *      ` ...
	 *    `- char      - Sprites for characters
	 *       `- main     - Sprites of main character
   *         `  1
   *         ` [2]
	 *         ` ...
	 *       `- ball     - Sprites of ball-like enemies
   *         `  1
   *         ` [2]
	 *         ` ...
	 *       `- random   - Sprites of random movement enemies
   *         `  1
   *         ` [2]
	 *         ` ...
	 *       `- static   - Sprites of static enemies
   *         `  1
   *         ` [2]
	 *         ` ...
	 *       `- maker    - Sprites of maker enemies
   *         `  1
   *         ` [2]
	 *         ` ...
	 *       `- chaser   - Sprites of chaser enemies
   *         `  1
   *         ` [2]
	 *         ` ...
	 *       `- char1    - Sprites of spare character 1
   *         `  1
   *         ` [2]
	 *         ` ...
	 *       `- char2    - Sprites of spare character 2
   *         `  1
   *         ` [2]
	 *         ` ...
	 *       `- char3    - Sprites of spare character 3
   *         `  1
   *         ` [2]
	 *         ` ...
	 *       `- char4    - Sprites of spare character 4
   *         `  1
   *         ` [2]
	 *         ` ...
	 *       `- char5    - Sprites of spare character 5
   *         `  1
   *         ` [2]
	 *         ` ...
	 *  `- [themeName2]
	 *  `- ...
	 *
	 * 
* @param themeName This theme's name. * @return true if succeeded, false if not. */ bool Load(const char *themeName); /** Returns the theme name (directory containing it). * @return Theme name (directory containing it). */ const char * Name() {return name;} /** Destroys the theme. Frees resources. */ void Destroy(); /** Number of Floor variants. * @return The requested quantity. */ s32 NumFloors() {return numFloors;} /** Number of Continuous Floor variants. * @return The requested quantity. */ s32 NumContFloors() {return numContFloors;} /** Number of Break variants. * @return The requested quantity. */ s32 NumBreaks() {return numBreaks;} /** Number of Object variants. * @return The requested quantity. */ s32 NumObjects() {return numObjects;} /** Number of Bar variants. * @return The requested quantity. */ s32 NumBars() {return numBars;} /** Number of Ladder variants. * @return The requested quantity. */ s32 NumLadders() {return numLadders;} /** Number of Rope variants. * @return The requested quantity. */ s32 NumRopes() {return numRopes;} /** Number of MainChar variants. * @return Number of MainChar variants. */ s32 NumMainChars() {return numMains;} /** Number of Guest variants. * @return number of Guest variants. */ s32 NumGuests() {return numGuests;} /** Number of Ball variants. * @return number of Ball variants. */ s32 NumBalls() {return numBalls;} /** Number of Random variants. * @return number of Random variants. */ s32 NumRandoms() {return numRandoms;} /** Number of Static variants. * @return number of Static variants. */ s32 NumStatics() {return numStatics;} /** Number of Maker variants. * @return number of Maker variants. */ s32 NumMakers() {return numMakers;} /** Number of Chaser variants. * @return number of Chaser variants. */ s32 NumChasers() {return numChasers;} /** Number of Dialog variants. * @return number of Dialog variants. */ s32 NumDialogs() {return numDialogs;} /** Number of Narrative variants. * @return number of Narrative variants. */ s32 NumNarratives() {return numNarratives;} /** Destroys the theme. Frees resources. Allows scalar destruction. */ virtual ~HCTheme() {Destroy();} }; #endif // _HCTHEME_INCLUDED holotz-castle-1.3.14-src/src/HCEnemyChaser.cpp0000644000175000001440000003761011177007633020077 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Defines a chaser enemy. * @file HCEnemyChaser.cpp * @author Juan Carlos Seijo Prez * @date 27/05/2004 * @version 0.0.1 - 27/05/2004 - First version. */ #include HCEnemyChaser::HCEnemyChaser() : HCEnemy(HCENEMYTYPE_CHASER) { chased = 0; state = HCCS_LEFT; cells = 0; chasePath = 0; tmpPath = 0; chaseIndex = 0; } bool HCEnemyChaser::Init(JImageSprite *sprites, HCMap *_map, HCRope **_ropes, s32 nRopes) { if (HCEnemy::Init(sprites, _map, _ropes, nRopes)) { // Uses param2 to set search depth for this enemy. // Param2 represents the percentage of the map covered by the search in the greates direction (H or V). searchDepth = (s32)JMax(param2 * (map->Rows() + map->Cols())/10, 3); ResetChaseMap(); chasePath = new HCChasePath[searchDepth + 2]; tmpPath = new HCChasePath[searchDepth + 2]; return true; } return false; } void HCEnemyChaser::ResetChaseMap() { if (!cells) { // Creates the cell array from the map cells = new HCChaseCell *[map->Rows()]; for (s32 j = 0; j < map->Rows(); ++j) { cells[j] = new HCChaseCell[map->Cols()]; for (s32 i = 0; i < map->Cols(); ++i) { cells[j][i].cur = map->Cell(j, i); cells[j][i].prev = 0; cells[j][i].tried = 0; cells[j][i].path.row = j; cells[j][i].path.col = i; cells[j][i].path.action = 0; cells[j][i].visited = false; cells[j][i].depth = 0; cells[j][i].numJumpedRows = 0; } } } else { // Only zeroes the chase map for (s32 j = 0; j < map->Rows(); ++j) { for (s32 i = 0; i < map->Cols(); ++i) { cells[j][i].prev = 0; // Search optimization switch (map->Cell(j, i)->Type()) { case HCCELLTYPE_FLOOR: case HCCELLTYPE_CONTFLOOR: // Blocks this cell and boundary cells towards this cell cells[j][i].tried = HCCHASECELL_CLOSED; if (j > 0) cells[j - 1][i].tried |= HCCA_DOWN; if (i > 0) cells[j][i - 1].tried |= HCCA_RIGHT; if (j < map->Rows()) cells[j + 1][i].tried |= HCCA_UP; if (i < map->Cols()) cells[j][i + 1].tried |= HCCA_LEFT; break; case HCCELLTYPE_LADDER: if (map->Cell(j + 1, i - 1)->Type() == HCCELLTYPE_BLANK) { // Can't go left while climbing because there's no floor bellow-left (limitation) cells[j][i].tried |= HCCA_LEFT; } if (map->Cell(j + 1, i - 1)->Type() == HCCELLTYPE_BLANK) { // Can't go right while climbing because there's no floor bellow-right (limitation) cells[j][i].tried |= HCCA_LEFT; } break; case HCCELLTYPE_BAR: // Cannot go left or right while sliding cells[j][i].tried |= HCCA_LEFT | HCCA_RIGHT; break; case HCCELLTYPE_BREAK: if (((HCBreak *)map->Cell(j, i))->State() == HCBREAKSTATE_NORMAL) { // Treats it as a floor if (j > 0) cells[j - 1][i].tried |= HCCA_DOWN; if (i > 0) cells[j][i - 1].tried |= HCCA_RIGHT; if (j < map->Rows()) cells[j + 1][i].tried |= HCCA_UP; if (i < map->Cols()) cells[j][i + 1].tried |= HCCA_LEFT; break; } break; default: break; } cells[j][i].path.row = j; cells[j][i].path.col = i; cells[j][i].path.action = 0; cells[j][i].visited = false; cells[j][i].depth = 0; cells[j][i].numJumpedRows = 0; } } } } /** Goes to the given cell. The cell must be in the same row or in the same column. * @return 0 if going, 1 if reached, 2 before leaving it (at the edge), -1 if unreachable by simple means. */ s32 HCEnemyChaser::GoToSimple(s32 row, s32 col) { s32 curRow = map->ToRow((s32)pos.y), curCol = map->ToCol((s32)pos.x); if (row != curRow && col != curCol) { return -1; } if (row != curRow) { if (row > curRow) { // Going down, test the cells between for (s32 i = curRow; i <= row; ++i) { if (!(map->Cell(i, curCol)->Actions() & HCACTION_DOWN) && !(map->Cell(i, curCol)->Actions() & HCACTION_FALL)) { return -1; } } actions = HCCA_DOWN; } else { // Going up, test the cells between for (s32 i = curRow; i >= row; --i) { if (!(map->Cell(i, curCol)->Actions() & HCACTION_UP)) { return -1; } } actions = HCCA_UP; } } else if (col != curCol) { if (col > curCol) { // Going right, test the cells between for (s32 i = curCol; i <= col; ++i) { if (!(map->Cell(curRow, i)->Actions() & HCACTION_RIGHT)) { return -1; } } actions = HCCA_RIGHT; } else { // Going left, test the cells between for (s32 i = curCol; i >= col; --i) { if (!(map->Cell(curRow, i)->Actions() & HCACTION_LEFT)) { return -1; } } actions = HCCA_LEFT; } } else { // Reached return 1; } nextRow = row; nextCol = col; return 0; } void HCEnemyChaser::CheckBestPath() { // Compares the length of each path if (chasePathNumCells > tmpPathNumCells) { //fprintf(stderr, "Mejor path con %d celdas frente a %d\n", tmpPathNumCells, chasePathNumCells); // Tmp path is shorter memcpy(chasePath, tmpPath, (searchDepth + 1) * sizeof(HCChasePath)); chasePathNumCells = tmpPathNumCells; } } s32 HCEnemyChaser::GoTo(s32 row, s32 col) { if (finalRow != row || finalCol != col || chasePathNumCells == (u32)-1) { s32 curRow = Row(), curCol = Col(); // New final target cell, computes the best path ResetChaseMap(); HCChaseCell *cc = &cells[curRow][curCol]; // Current chase cell HCChaseCell *sc = cc; // Search cell HCChaseCell *tc = &cells[row][col]; // Target cell if (sc == tc) { return 0; } HCChaseCell *tmp; // Temporary cell HCCell *c, bellow; // Current map cell and cell bellow sc->visited = true; s32 index = 0; // Index into the search path chasePathNumCells = (u32)-1; // Init to greatest u32 so it's always worse tmpPathNumCells = 0; s32 pathNum = 0; while (1) { c = sc->cur; // SDL_Rect rc; // rc.x = map->ToX(sc->path.col) - 2; // rc.y = map->ToY(sc->path.row) - (map->CellHeight()/2 - 2); // rc.w = 2; // rc.h = 2; // SDL_FillRect(SDL_GetVideoSurface(), &rc, 0xffffffff); // SDL_UpdateRect(SDL_GetVideoSurface(), rc.x, rc.y, rc.w, rc.h); // fprintf(stderr, "Path %d: Estoy en %d %d index es %d searchDepth es %d ", pathNum, sc->path.row, sc->path.col, index, searchDepth); // fprintf(stderr, // "ACCIONES PROBADAS: %s %s %s %s (%s)\n", // (sc->tried & HCCA_LEFT) ? "L" : " ", // (sc->tried & HCCA_RIGHT) ? "R" : " ", // (sc->tried & HCCA_UP) ? "U" : " ", // (sc->tried & HCCA_DOWN) ? "D" : " ", // sc->visited ? "*** VISITED! ***" : "not visited"); // getchar(); if (sc->depth > searchDepth) { // Maximum reachable search depth reached!, stop searching in this cell sc->tried = HCCHASECELL_CLOSED; } if (map->Cell(sc->path.row + 1, sc->path.col)->Type() == HCCELLTYPE_BLANK && sc->prev && !(sc->prev->path.action & HCCA_JUMP)) { // Only go by floor, don't jump or fall off in ladders sc->tried |= (HCCA_LEFT | HCCA_RIGHT); } if (!(sc->tried & HCCA_DOWN)) { // Goes to the neighbour bellow sc->tried |= HCCA_DOWN; tmp = &cells[sc->path.row + 1][sc->path.col]; if (sc->path.row < map->Rows() && ((c->Actions() & HCACTION_DOWN) || (c->Actions() & HCACTION_FALL) || (map->Cell(sc->path.row + 1, sc->path.col)->Actions() & HCACTION_DOWN)) && !tmp->visited) { tmp->prev = sc; tmpPath[index].row = sc->path.row; tmpPath[index].col = sc->path.col; tmpPath[index].action = HCCA_DOWN; ++index; sc->visited = true; tmp->depth = sc->depth + 1; sc = tmp; sc->tried |= HCCA_UP; } } else if (!(sc->tried & HCCA_LEFT)) { // Goes to the left neighbour sc->tried |= HCCA_LEFT; tmp = &cells[sc->path.row][sc->path.col - 1]; if ((c->Actions() & HCACTION_LEFT) && sc->path.col > 0 && !tmp->visited) { tmp->prev = sc; tmpPath[index].row = sc->path.row; tmpPath[index].col = sc->path.col; tmpPath[index].action = HCCA_LEFT; ++index; sc->visited = true; tmp->depth = sc->depth + 1; sc = tmp; sc->tried |= HCCA_RIGHT; } } else if (!(sc->tried & HCCA_RIGHT)) { // Goes to the right neighbour sc->tried |= HCCA_RIGHT; tmp = &cells[sc->path.row][sc->path.col + 1]; if ((c->Actions() & HCACTION_RIGHT) && sc->path.col < map->Cols() && !tmp->visited) { tmp->prev = sc; tmpPath[index].row = sc->path.row; tmpPath[index].col = sc->path.col; tmpPath[index].action = HCCA_RIGHT; ++index; sc->visited = true; tmp->depth = sc->depth + 1; sc = tmp; sc->tried |= HCCA_LEFT; } } else if (!(sc->tried & HCCA_UP)) { // Goes to the upper neighbour sc->tried |= HCCA_UP; tmp = &cells[sc->path.row - 1][sc->path.col]; /* bool cellBellow = sc->path.row < map->Rows(); HCCell *lower = 0; if (cellBellow) { //lower = map->Cell(sc->path.row + 1, sc->path.col); lower = map->Cell(sc->path.row, sc->path.col); }*/ if (sc->path.row > 0 && !tmp->visited) { // Tests up if ((c->Actions() & HCACTION_UP)/* || // Current cell allows going up or (cellBellow && (lower->Actions() & HCACTION_UP))*/) // lower allows going up (since sprite's hotspot for up is above) { tmp->prev = sc; sc->visited = true; tmpPath[index].row = sc->path.row; tmpPath[index].col = sc->path.col; tmpPath[index].action = HCCA_UP; ++index; tmp->depth = sc->depth + 1; sc = tmp; sc->tried |= HCCA_DOWN; } } } /* else if (!(sc->tried & HCCA_JUMP)) { // Goes to the upper neighbour sc->tried |= HCCA_JUMP; tmp = &cells[sc->path.row - 1][sc->path.col]; bool cellBellow = sc->path.row < map->Rows(); HCCell *lower = 0; if (cellBellow) { lower = map->Cell(sc->path.row + 1, sc->path.col); } if (sc->path.row > 0 && !tmp->visited) { // Tests jump if ((c->Actions() & HCACTION_FALL) && // current allows jumping and, or ((cellBellow && !(lower->Actions() & HCACTION_FALL)) || // there is floor bellow, or (sc->prev && (sc->prev->action & HCCA_JUMP) && sc->numJumpedRows < maxJumpRows))) // previous action was jump and not reached yet // the jump limit (phew!) { fprintf(stderr, "Salto funciona %d saltadas %d max\n", sc->numJumpedRows, maxJumpRows); getchar(); tmp->prev = sc; sc->visited = true; tmpPath[index].row = sc->path.row; tmpPath[index].col = sc->path.col; tmpPath[index].action = HCCA_JUMP; ++index; tmp->depth = sc->depth + 1; sc = tmp; sc->tried |= HCCA_DOWN; if (sc->prev) { sc->numJumpedRows = sc->prev->numJumpedRows + 1; } else { sc->numJumpedRows = 1; } } } }*/ else { // rc.x = map->ToX(sc->path.col) - 2; // rc.y = map->ToY(sc->path.row) - (map->CellHeight()/2 - 2); // rc.w = 2; // rc.h = 2; // SDL_FillRect(SDL_GetVideoSurface(), &rc, 0x00000000); // SDL_UpdateRect(SDL_GetVideoSurface(), rc.x, rc.y, rc.w, rc.h); // getchar(); // Closed cell sc->tried = 0; sc->visited = false; sc->depth = 0; sc->numJumpedRows = 0; sc = sc->prev; if (index > 0) --index; if (sc) { sc->visited = false; } else { // Starting cell closed, done //fprintf(stderr, "CLOSED!\n"); break; } } if (sc == tc) { // The map now contains the search path //fprintf(stderr, "Encontrado, index es %d searchDepth es %d!\n", index, searchDepth); if (sc) { sc->visited = false; if (sc->prev) { tmpPath[index].row = sc->path.row; tmpPath[index].col = sc->path.col; tmpPath[index].action = sc->path.action; } finalRow = row; finalCol = col; ++pathNum; tmpPathNumCells = index + 1; CheckBestPath(); // Continue searching paths sc->visited = false; sc->depth = 0; sc->numJumpedRows = 0; sc = sc->prev; if (sc) { sc->visited = false; } if (index > 0) --index; // Searchs ends after param2 successfull paths have been tried if (pathNum > param2) { break; } } else { break; } } } if (pathNum != 0) { chaseIndex = 0; return 0; } else { //fprintf(stderr, "NO PATH FOUND!\n"); return -1; } } // OK, going return 0; } s32 HCEnemyChaser::UpdateChase() { if (chased == 0) { return 0; } actions = 0; s32 r = map->ToRow((s32)chased->Y()), c = map->ToCol((s32)chased->X()); s32 curRow = Row(), curCol = Col(); if (chased->State() == HCCS_JUMP || chased->State() == HCCS_JUMPLEFT || chased->State() == HCCS_JUMPRIGHT || chased->State() == HCCS_HANG || (abs(curRow - r) + abs(curCol - c) <= searchDepth && 0 == GoTo(r, c))) { if (chasePath[chaseIndex].col != curCol || chasePath[chaseIndex].row != curRow && chaseIndex < searchDepth - 1) { // Updates the chase index within the path when the row or column changes ++chaseIndex; } if (chasePath[chaseIndex].col == curCol && chasePath[chaseIndex].row == curRow) { // OK, path hasn't been lost actions = chasePath[chaseIndex].action; // Resets idle movement nextRow = curRow; nextCol = curCol; return 0; } else { // Path lost chasePathNumCells = (u32)-1; } } // No path to target, moves-simple to the randomly generated cell; if reached, select another one if (-1 == GoToSimple(nextRow, nextCol)) { // Selects a random cell within the search depth square and tries to simple move over there, // when the chased character is not reachable s32 sign; switch (rand()%4) { case 0: case 1: case 3: sign = (rand()%2) == 0 ? 1 : -1; r = sign * ((rand()%searchDepth) + 1); if (0 != GoToSimple(curRow + r, curCol)) { c = sign * ((rand()%searchDepth) + 1); return GoToSimple(curRow, curCol + c); } break; case 2: sign = (rand()%2) == 0 ? 1 : -1; c = sign * (rand()%searchDepth) + 1; if (0 != GoToSimple(curRow, curCol + c)) { r = sign * ((rand()%searchDepth) + 1); return GoToSimple(curRow + r, curCol); } break; } } return 0; } s32 HCEnemyChaser::Update() { states[state].Update(); UpdateChase(); Act(actions); if (state == HCCS_HANG) { UpdateHang(); } else { UpdateVeloccity(); // OJITO, igual se hace pesado!! CheckHang(); } // Collisions UpdateCollisions(); Pos(pos.x + v.x, pos.y + v.y); // Updates dialogs UpdateDialog(); return 0; } void HCEnemyChaser::Destroy() { if (cells) { for (s32 j = 0; j < map->Rows(); ++j) { JDELETE_ARRAY(cells[j]); } // Creates the cell array from the map delete[] cells; } JDELETE_ARRAY(chasePath); JDELETE_ARRAY(tmpPath); } holotz-castle-1.3.14-src/src/HCRope.cpp0000644000175000001440000000777511177007633016612 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Definiton of a rope. * @file HCRope.h * @author Juan Carlos Seijo Prez * @date 05/06/2004 * @version 0.0.1 - 05/06/2004 - First version. */ #include bool HCRope::Init(float p, s32 a, u32 l, HCTheme &theme) { // Creates references of the images and places the rope in its original position top.Ref(theme.Rope(subtype)[HCRDT_TOP]); top.Pos(pos.x, pos.y); period = p >= 1.0f ? p : 1.0f; w = 6.2831853/period; length = l > 0 ? l : 5; amplitude = abs(a) < length * theme.Rope(subtype)[HCRDT_MIDDLE].Height() ? abs(a) : length * theme.Rope(subtype)[HCRDT_MIDDLE].Height(); s32 i; float y; JDELETE_ARRAY(middle); middle = new JImage [length]; if (middle == 0) return false; for (i = 0; i < length; ++i) { middle[i].Ref(theme.Rope(subtype)[HCRDT_MIDDLE]); y = top.Y() + top.Height() + (i * middle[i].Height()); middle[i].Pos(top.X() + (top.Width()/2) - (middle[i].Width()/2), pos.y); } edge.Ref(theme.Rope(subtype)[HCRDT_EDGE]); y = top.Y() + top.Height() + (i * middle[0].Height()); edge.Pos(top.X() + (top.Width()/2) - (edge.Width()/2), pos.y); // 25 fps resolution timer.Start(40); return true; } void HCRope::Draw() { top.Draw(); for (s32 i = 0; i < length; ++i) { middle[i].Draw(); } edge.Draw(); } s32 HCRope::Update() { float t = float(timer.TotalLap())/1000.0f; edge.X((top.X() + top.Width()/2) - (edge.Width()/2) + (amplitude * cos(w * t))); float alpha = asin((float(amplitude) * cos(w * t))/float(length * middle[0].Height())); float newY = length * middle[0].Height() * cos(alpha); edge.Y(top.Y() + top.Height() + newY); float dx = ((edge.X() + edge.Width()/2) - (top.X() + top.Width()/2))/float(length); float dy = ((edge.Y() + edge.Height()/2) - (top.Y() + top.Height()))/float(length); for (s32 i = 0; i < length; ++i) { middle[i].X((top.X() + top.Width()/2) + (i * dx) - (middle[i].Width()/2)); middle[i].Y((top.Y() + top.Height()) + (i * dy)); } direction = (s32)(10.0f * dx); return 0; } void HCRope::Pos(float x, float y) { float dx, dy; dx = x - pos.x; dy = y - pos.y; pos.x = x; pos.y = y; for (s32 i = 0; i < length; ++i) { middle[i].X(middle[i].X() + dx); middle[i].Y(middle[i].Y() + dy); } edge.X(edge.X() + dx); edge.Y(edge.Y() + dy); top.X(x); top.Y(y); } u32 HCRope::Load(JRW &file) { if (0 == file.ReadLE32((u32 *)&period) || 0 == file.ReadLE32(&litude) || 0 == file.ReadLE32(&length) || 0 == file.ReadLE32(&subtype) || 0 == file.ReadLE32((u32 *)&pos.x) || 0 == file.ReadLE32((u32 *)&pos.y)) { fprintf(stderr, "Error reading rope parameters.\n"); return 1; } return 0; } u32 HCRope::Load(JRW &file, HCTheme &theme) { if (0 != Load(file)) { return 1; } if (!Init(period, amplitude, length, theme)) { return 2; } Pos(pos.x, pos.y); return 0; } u32 HCRope::Save(JRW &file) { if (0 == file.WriteLE32((u32 *)&period) || 0 == file.WriteLE32(&litude) || 0 == file.WriteLE32(&length) || 0 == file.WriteLE32(&subtype) || 0 == file.WriteLE32((u32 *)&pos.x) || 0 == file.WriteLE32((u32 *)&pos.y)) { fprintf(stderr, "Error writing rope parameters.\n"); return 1; } return 0; } HCRope::~HCRope() { JDELETE_ARRAY(middle); } holotz-castle-1.3.14-src/src/HCUtil.cpp0000600000175000001440000001242211177007633016573 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Utility functions for Holotz's Castle. * @file HCUtil.cpp * @author Juan Carlos Seijo Prez * @date 05/02/2005 * @version 0.0.1 - 05/02/2005 - First version. */ #include const char * HCUtil::curDir = ""; const char * HCUtil::installHCDir = HC_DATA_DIR; const char * HCUtil::installHCedDir = HCED_DATA_DIR; char HCUtil::homeDir[4096]; char HCUtil::lastFile[4096]; const char *HCUtil::lastPath; std::vector HCUtil::themes; std::vector HCUtil::stories; bool HCUtil::FindFile(const char *filename) { char *str; #ifndef _WIN32 if (strstr(filename, "holotzcastle") == 0 && 0 != (str = getenv("HOME"))) { snprintf(homeDir, sizeof(homeDir), "%s/.holotz-castle/", str); } else { homeDir[0] = 0; } lastFile[0] = 0; if (homeDir[0] != 0) { // Searchs in the home dir snprintf(lastFile, sizeof(lastFile), "%s%s", homeDir, filename); if (JFile::Exists(lastFile)) { lastPath = homeDir; return true; } } #endif // _WIN32 // Searchs in the current dir if (JFile::Exists(filename)) { strncpy(lastFile, filename, sizeof(lastFile)); lastPath = curDir; return true; } // Searchs in the HC installation dir snprintf(lastFile, sizeof(lastFile), "%s%s", installHCDir, filename); if (JFile::Exists(lastFile)) { lastPath = installHCDir; return true; } // Searchs in the HCED installation dir snprintf(lastFile, sizeof(lastFile), "%s%s", installHCedDir, filename); if (JFile::Exists(lastFile)) { lastPath = installHCedDir; return true; } lastFile[0] = 0; lastPath = 0; return false; } bool HCUtil::FindThemes(bool onlyEdit) { char *str; #ifndef _WIN32 if (0 != (str = getenv("HOME"))) { snprintf(homeDir, sizeof(homeDir), "%s/.holotz-castle/", str); } else { homeDir[0] = 0; } const char *dirs[] = {homeDir, curDir, installHCDir, installHCedDir}; #else const char *dirs[] = {0, curDir, installHCDir, installHCedDir}; #endif // _WIN32 #ifndef _WIN32 if (onlyEdit) { dirs[2] = dirs[3] = 0; } #endif // _WIN32 DIR *dp; struct dirent *ep; char themesDir[4096]; // Starts with a new set themes.clear(); for (s32 i = 0; i < 4; ++i) { if (dirs[i]) { snprintf(themesDir, sizeof(themesDir), "%stheme", dirs[i]); dp = opendir(themesDir); if (dp != 0) { while ((ep = readdir(dp))) { if (0 != strcmp(ep->d_name, ".") && 0 != strcmp(ep->d_name, "..")) { u32 j; for (j = 0; j < themes.size(); ++j) { if (themes[j] == ep->d_name) break; } if (j == themes.size()) { themes.push_back(ep->d_name); } } } closedir(dp); } } } return themes.size() > 0; } bool HCUtil::FindStories(bool onlyEdit) { char *str; #ifndef _WIN32 if (0 != (str = getenv("HOME"))) { snprintf(homeDir, sizeof(homeDir), "%s/.holotz-castle/", str); } else { homeDir[0] = 0; } const char *dirs[] = {homeDir, curDir, installHCDir, installHCedDir}; #else const char *dirs[] = {0, curDir, installHCDir, installHCedDir}; #endif // _WIN32 #ifndef _WIN32 if (onlyEdit) { dirs[2] = dirs[3] = 0; } #endif // _WIN32 DIR *dp; struct dirent *ep; char storiesDir[4096]; // Starts with a new set stories.clear(); for (s32 i = 0; i < 4; ++i) { if (dirs[i]) { snprintf(storiesDir, sizeof(storiesDir), "%sstories", dirs[i]); dp = opendir(storiesDir); if (dp != 0) { while ((ep = readdir(dp))) { if (0 != strcmp(ep->d_name, ".") && 0 != strcmp(ep->d_name, "..")) { u32 j; for (j = 0; j < stories.size(); ++j) { if (stories[j] == ep->d_name) break; } if (j == stories.size()) { stories.push_back(ep->d_name); } } } closedir(dp); } } } return stories.size() > 0; } s32 HCUtil::CreateStory(const char *story) { if (FindFile("stories")) { // Directory 'stories' found char name[4096]; snprintf(name, sizeof(name), "%s%c%s", lastFile, FILESYS_BAR, story); if (!FindFile(name)) { // The story does not exist, creates its directory #ifndef _WIN32 if (0 != mkdir(name, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)) #else if (0 != mkdir(name)) #endif //_WIN32 { // Can't create new dir return 3; } else { // Ok! return 0; } } else { // Story already exists return 1; } } else { // Stories directory not found return 2; } } void HCUtil::Destroy() { themes.clear(); stories.clear(); } holotz-castle-1.3.14-src/src/HCScriptAction.h0000644000175000001440000002477111177007633017747 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Definition of script actions. * @file HCScriptAction.h * @author Juan Carlos Seijo Prez * @date 03/07/2004 * @version 0.0.1 - 03/07/2004 - Primera versin. */ #ifndef _HCSCRIPTACTION_INCLUDED #define _HCSCRIPTACTION_INCLUDED #include #include #include #include #include #include #include class HCApp; /** Types of action. */ enum HCScriptActionType { HCSAT_NOP = 0, /**< No operation. */ HCSAT_MOVE, /**< Moves a character. */ HCSAT_DIALOG, /**< Makes a character to talk. */ HCSAT_NARRATIVE, /**< Shows a narrative text. */ HCSAT_SOUND, /**< Plays a sound. */ HCSAT_WAIT, /**< Waits. */ }; /** Basic action. */ class HCScriptAction { public: HCScriptActionType type; /**< Type of this action. */ bool finished; /**< Indicates whether it has finished or not. */ /** Creates a script action. */ HCScriptAction(HCScriptActionType _type = HCSAT_NOP) : type(_type), finished(false) {} /** Checks if it has finished. * @return true if it has finished, false otherwise. */ bool Finished() {return finished;} /** Loads the action from the file. If the method encounters '[ MOVE ball 2 4 5 ]', it will * create and return a new HCScriptActionMove* (MOVE) casted to a HCScriptAction* of * the third (2) ball enemy of the level to move left (4) five cells (5). * @param f File Opened an positioned in the begin of the action (just after character '['). * @return A new action corresponding to the one found or 0 if an error occurred. */ static HCScriptAction * Load(JTextFile &f); /** Returns the appropiate character based upon its name and index. * @param name Character name. Must be one of "main", "enemy" or "guest". * @index index Index of the character in the array. */ HCCharacter * Character(const char *name, s32 index); /** Skips this action. Must be implemented in the children classes, if possible. */ virtual void Skip() {} /** Updates the action. * @return 0 if it didn't need update, 1 otherwise. */ virtual s32 Update(); /** Prepares the action for execution. The block calls this method when its time * to execute the action. The action prepares its data to be executed (init timers, etc.). */ virtual void Current() {} /** Destroys the object. */ virtual ~HCScriptAction() {} }; /** For unifying the actions' hierarchy. */ typedef HCScriptAction HCScriptActionNop; class HCScriptActionMove : public HCScriptAction { protected: HCCharacter *character; /**< Character to move. */ s32 direction; /**< Direction to follow. */ s32 totalAmount; /**< Amount of cells to displace. */ s32 curAmount; /**< Current amount of cells. */ s32 orgRow; /**< Original row. */ s32 orgCol; /**< Original column. */ s32 lastRow; /**< Last visited row. */ s32 lastCol; /**< Last visited column. */ public: /** Creates an empty Move Action. Init must be called in order to use it. */ HCScriptActionMove() : HCScriptAction(HCSAT_MOVE), character(0) {} /** Initializes this action. * @param _character Character to move. * @param dir Movement direction (one of 2, 4, 6 or 8). * @param amount Movement amount in cells. * @return true if initialization succeeded, false otherwise. */ bool Init(HCCharacter *_character, s32 dir, s32 amount); /** Loads the action from the file. * @param f File Opened an positioned in the begin of the action (just after character '['). * @return true if loading succeeded, false otherwise. */ bool Load(JTextFile &f); /** Updates the action. * @return 0 if it didn't need update, 1 otherwise. */ virtual s32 Update(); /** Sets the character state. */ virtual void Current(); /** Destroys the object. */ virtual ~HCScriptActionMove() {} }; class HCScriptActionDialog : public HCScriptAction { protected: HCCharacter *character; /**< Character who talks. */ HCText dialog; /**< Dialog to show. */ public: /** Creates an empty Dialog Action. Init must be called in order to use it. */ HCScriptActionDialog() : HCScriptAction(HCSAT_DIALOG), character(0) {} /** Initializes this action. * @param _character Character to talk. * @param text Text of the dialog. * @param theme Theme to use. * @param font Font to use. * @param align Alignment of text. * @param left Whether the peak must face to the left or to the right. * @param subtype Subtype within the theme. * @param r Color red component. * @param g Color green component. * @param b Color blue component. * @return true if initialization succeeded, false otherwise. */ bool Init(HCCharacter *_character, const char *text, HCTheme *theme, JFont *font, JFontAlign align, bool left, s32 subtype, u8 r, u8 g, u8 b); /** Loads the action from the file. * @param f File Opened an positioned in the begin of the action (just after character '['). * @return true if loading succeeded, false otherwise. */ bool Load(JTextFile &f); /** Updates the action. * @return 0 if it didn't need update, 1 otherwise. */ virtual s32 Update(); /** Skips this action. */ virtual void Skip() {dialog.Skip();} /** Sets the character's dialog and inits the timer. */ virtual void Current(); /** Destroys the object. */ virtual ~HCScriptActionDialog() {} }; class HCScriptActionNarrative : public HCScriptAction { protected: HCText narrative; /**< Narrative to show. */ public: /** Creates an empty Narrative Action. Init must be called in order to use it. */ HCScriptActionNarrative() : HCScriptAction(HCSAT_NARRATIVE) {} /** Initializes this action. * @param s32 Frame alignment within screen. * @param text Text of the narrative. * @param theme Theme to use. * @param font Font to use. * @param align Alignment of text. * @param left Whether the peak must face to the left or to the right. * @param subtype Subtype within the theme. * @param r Color red component. * @param g Color green component. * @param b Color blue component. * @return true if initialization succeeded, false otherwise. */ bool Init(s32 alignment, const char *text, HCTheme *theme, JFont *font, JFontAlign align, s32 subtype, u8 r, u8 g, u8 b); /** Loads the action from the file. * @param f File Opened an positioned in the begin of the action (just after character '['). * @return true if loading succeeded, false otherwise. */ bool Load(JTextFile &f); /** Updates the action. * @return 0 if it didn't need update, 1 otherwise. */ virtual s32 Update(); /** Prepares for execution. */ virtual void Current(); /** Destroys the object. */ virtual ~HCScriptActionNarrative() {} }; class HCScriptActionSound : public HCScriptAction { protected: JChunk sound; /**< Sound to play. */ s32 numLoops; /**< Number of loops, -1 means play forever, 0 means once, 1 means 2 times, and so on. */ public: /** Creates an empty Sound Action. Init must be called in order to use it. */ HCScriptActionSound() : HCScriptAction(HCSAT_SOUND) {} /** Initializes this action. * @param filename File name of the sound. * @param loops Number of loops, -1 means forever. * @param waitToEnd Must end to considere it is finished? * @return true if initialization succeeded, false otherwise. */ bool Init(const char *filename, s32 loops, bool waitToEnd); /** Loads the action from the file. * @param f File Opened an positioned in the begin of the action (just after character '['). * @return true if loading succeeded, false otherwise. */ bool Load(JTextFile &f); /** Updates the action. * @return 0 if it didn't need update, 1 otherwise. */ virtual s32 Update(); /** Prepares the action for execution. The block calls this method when its time * to execute the action. The action prepares its data to be executed (init timers, etc.). */ virtual void Current(); /** Destroys the object. */ virtual ~HCScriptActionSound() {} }; class HCScriptActionWait : public HCScriptAction { protected: JTimer timer; /**< Timer. */ s32 ms; /**< Millisecond to wait. */ public: /** Creates an empty Wait Action. Init must be called in order to use it. */ HCScriptActionWait() : HCScriptAction(HCSAT_WAIT) {} /** Initializes this action. * @param loops Number of milliseconds to wait. * @return true if initialization succeeded, false otherwise. */ bool Init(s32 millis = 1000); /** Loads the action from the file. * @param f File Opened an positioned in the begin of the action (just after character '['). * @return true if loading succeeded, false otherwise. */ bool Load(JTextFile &f); /** Updates the action. * @return 0 if it didn't need update, 1 otherwise. */ virtual s32 Update(); /** Prepares the action for execution. The block calls this method when its time * to execute the action. The action prepares its data to be executed (init timers, etc.). */ virtual void Current(); /** Destroys the object. */ virtual ~HCScriptActionWait() {} }; #endif // _HCSCRIPTACTION_INCLUDED holotz-castle-1.3.14-src/src/HCMap.cpp0000644000175000001440000002315411177007633016407 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Map definition file for Holotz's Castle. * @file HCMap.cpp * @author Juan Carlos Seijo Prez * @date 29/04/2004 * @version 0.0.1 - 29/04/2004 - First version. */ #include HCMap::HCMap() { cells = 0; rows = cols = cellWidth = cellHeight = 0; width = height = 0; exitRow = exitCol = 0; linkCells = 0; //gravity = 0.7f; gravity = 0.9f; } bool HCMap::Init(HCTheme &_theme) { cells = 0; rows = cols = 0; width = height = 0; exitRow = exitCol = 0; theme = &_theme; // Inits common parameters cellWidth = theme->Floor(0).Width(); cellHeight = theme->Floor(0).Height(); Pos(0, 0); return true; } s32 HCMap::Update() { HCMapCell *mc = linkCells; while (mc) { mc->cell->Update(); mc = mc->next; } return 1; } void HCMap::Draw() { HCMapCell *mc = linkCells; while (mc) { mc->cell->Draw(); mc = mc->next; } } void HCMap::Pos(float xPos, float yPos) { pos.x = xPos; pos.y = yPos; for (s32 j = 0; j < rows; ++j) { for (s32 i = 0; i < cols; ++i) { cells[j][i]->Pos(xPos + (i * cellWidth), yPos + (j * cellHeight)); } } } void HCMap::ScreenToMap(s32 &xPos, s32 &yPos) { xPos = ToCol(xPos); yPos = ToRow(yPos); } void HCMap::MapToScreen(s32 &col, s32 &row) { col = ToX(col); row = ToY(row); // Adds the map offset and the distance to the baseline's mid-point col += (s32)pos.x + cellWidth/2; row += (s32)Y() + cellHeight - 1; } s32 HCMap::ToCol(s32 xx) { // Removes map offsets xx -= (s32)pos.x; if (xx < 0) { return 0; } xx /= cellWidth; return (xx > cols-1 ? cols-1 : xx); } s32 HCMap::ToRow(s32 yy) { // Removes map offsets yy -= (s32)pos.y; if (yy < 0) { return 0; } yy /= cellHeight; return (yy > rows-1 ? rows-1 : yy); } s32 HCMap::ToX(s32 col) { col *= cellWidth; // Adds the map offset and the distance to the baseline's mid-point col += (s32)pos.x + cellWidth/2; return col; } s32 HCMap::ToY(s32 row) { row *= cellHeight; // Adds the map offset and the distance to the baseline's mid-point row += (s32)pos.y + cellHeight - 1; return row; } void HCMap::Resize(s32 newRows, s32 newCols, bool growRight, bool growDown) { if (newRows == 0 || newCols == 0) { // Only destroys the cells Destroy(); return; } HCCell ***newCells; // Creates the map cells newCells = new HCCell **[newRows]; for (s32 j = 0; j < newRows; ++j) { newCells[j] = new HCCell *[newCols]; memset(newCells[j], 0, sizeof(HCCell*) * newCols); } if (cells != 0) { s32 maxRows = rows > newRows ? newRows : rows; s32 maxCols = cols > newCols ? newCols : cols; // Copies the existing cells, reducing, if necessary from the top right // corner. Defaults the rest of the cells, in case of enlargement, to blank for (s32 row = 0; row < newRows; ++row) { for (s32 col = 0; col < newCols; ++col) { if (row < maxRows && col < maxCols) { // while reducing if (growDown) { if (growRight) { newCells[row][col] = cells[row][col]; cells[row][col] = 0; } else { newCells[row][newCols - 1 - col] = cells[row][cols - col - 1]; cells[row][cols - col - 1] = 0; } } else { if (growRight) { newCells[newRows - 1 - row][col] = cells[rows - row - 1][col]; cells[rows - row - 1][col] = 0; } else { newCells[newRows - 1 - row][newCols - 1 - col] = cells[rows - row - 1][cols - col - 1]; cells[rows - row - 1][cols - col - 1] = 0; } } } else { // If enlarging if (growDown) { if (growRight) { newCells[row][col] = new HCCell; // Grows down-right } else { newCells[row][newCols - 1 - col] = new HCCell; // Grows down-left } } else { if (growRight) { newCells[newRows - 1 - row][col] = new HCCell; // Grows up-left } else { newCells[newRows - 1 - row][newCols - 1 - col] = new HCCell; // Grows up-right } } } } } // Destroy the rest of the original cells if reducing Destroy(); } else { // Initializes the map to empty cells for (s32 row = 0; row < newRows; ++row) { for (s32 col = 0; col < newCols; ++col) { newCells[row][col] = new HCCell; } } } cells = newCells; rows = newRows; cols = newCols; width = cellWidth * cols; height = cellHeight * rows; Pos(pos.x, pos.y); BuildCellLinkList(); } void HCMap::Destroy() { if (0 != cells) { for (s32 row = 0; row < rows; ++row) { for (s32 col = 0; col < cols; ++col) { JDELETE(cells[row][col]); } delete[] cells[row]; cells[row] = 0; } delete[] cells; cells = 0; } DestroyCellLinkList(); } void HCMap::BuildContFloorOnce(s32 row, s32 col) { if (cells[row][col]->Type() == HCCELLTYPE_CONTFLOOR) { ((HCContFloor *)cells[row][col])->Build(theme->ContFloor(cells[row][col]->Subtype()), cells[row-1][col-1]->Type() == HCCELLTYPE_CONTFLOOR, cells[row-1][col]->Type() == HCCELLTYPE_CONTFLOOR, cells[row-1][col+1]->Type() == HCCELLTYPE_CONTFLOOR, cells[row][col-1]->Type() == HCCELLTYPE_CONTFLOOR, cells[row][col+1]->Type() == HCCELLTYPE_CONTFLOOR, cells[row+1][col-1]->Type() == HCCELLTYPE_CONTFLOOR, cells[row+1][col]->Type() == HCCELLTYPE_CONTFLOOR, cells[row+1][col+1]->Type() == HCCELLTYPE_CONTFLOOR); } } void HCMap::BuildContFloor(s32 row, s32 col) { BuildContFloorOnce(row - 1, col - 1); BuildContFloorOnce(row - 1, col); BuildContFloorOnce(row - 1, col + 1); BuildContFloorOnce(row, col - 1); BuildContFloorOnce(row, col); BuildContFloorOnce(row, col + 1); BuildContFloorOnce(row + 1, col - 1); BuildContFloorOnce(row + 1, col); BuildContFloorOnce(row + 1, col + 1); } void HCMap::BuildCellLinkList() { DestroyCellLinkList(); HCMapCell *mc = 0, *mcOld = 0; for (s32 row = 0; row < rows; ++row) { for (s32 col = 0; col < cols; ++col) { if (cells[row][col]->Type() != HCCELLTYPE_BLANK) { mc = new HCMapCell; mc->cell = cells[row][col]; if (mcOld) { mcOld->next = mc; } if (!linkCells) { linkCells = mc; } mcOld = mc; } } } if (mc) { mc->next = 0; } } void HCMap::DestroyCellLinkList() { if (0 != linkCells) { HCMapCell *mc = linkCells, *tmp; while (mc) { tmp = mc->next; delete mc; mc = tmp; } linkCells = 0; } } u32 HCMap::Load(JRW &f) { Destroy(); // Loads the number of rows and cols, etc. if (0 == f.ReadLE32((u32 *)&gravity) || 0 == f.ReadLE32(&rows) || 0 == f.ReadLE32(&cols) || 0 == f.ReadLE32(&exitRow) || 0 == f.ReadLE32(&exitCol)) { return 1; } Resize(rows, cols); // Loads the cells s32 ret = 1; s32 t, subt; HCBreak *prevBreak = 0; for (s32 row = 0; ret != 0 && row < rows; ++row) { for (s32 col = 0; ret != 0 && col < cols; ++col) { ret = f.ReadLE32(&t); ret = f.ReadLE32(&subt); if (t != HCCELLTYPE_BREAK) { prevBreak = 0; } JDELETE(cells[row][col]); switch (t) { case HCCELLTYPE_FLOOR: cells[row][col] = new HCFloorCell(&(theme->Floor(subt))); cells[row][col]->Subtype(subt); break; case HCCELLTYPE_CONTFLOOR: cells[row][col] = new HCContFloor; cells[row][col]->Subtype(subt); break; case HCCELLTYPE_BAR: cells[row][col] = new HCBarCell(&(theme->Bar(subt))); cells[row][col]->Subtype(subt); break; case HCCELLTYPE_LADDER: cells[row][col] = new HCLadderCell(&(theme->Ladder(subt))); cells[row][col]->Subtype(subt); break; case HCCELLTYPE_BREAK: cells[row][col] = prevBreak = new HCBreak(theme->Break(subt), prevBreak); cells[row][col]->Subtype(subt); break; case HCCELLTYPE_BLANK: default: cells[row][col] = new HCCell; cells[row][col]->Subtype(subt); break; } t = cells[row][col]->Type(); } } for (s32 row = 1; ret != 0 && row < rows - 1; ++row) { for (s32 col = 1; ret != 0 && col < cols - 1; ++col) { if (cells[row][col]->Type() == HCCELLTYPE_CONTFLOOR) BuildContFloor(row, col); } } BuildCellLinkList(); return 0; } u32 HCMap::Save(JRW &f) { // Saves the number of rows and cols, etc. if (0 == f.WriteLE32((u32 *)&gravity) || 0 == f.WriteLE32(&rows) || 0 == f.WriteLE32(&cols) || 0 == f.WriteLE32(&exitRow) || 0 == f.WriteLE32(&exitCol)) { return 1; } // Saves the cells s32 ret = 1; s32 data, index; for (s32 row = 0; ret != 0 && row < rows; ++row) { for (s32 col = 0; ret != 0 && col < cols; ++col) { data = cells[row][col]->Type(); index = cells[row][col]->Subtype(); ret = f.WriteLE32(&data); ret = f.WriteLE32(&index); } } return 0; } holotz-castle-1.3.14-src/src/HCCell.h0000644000175000001440000001217111177007633016213 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Cell definition file. * @file HCCell.h * @author Juan Carlos Seijo Prez * @date 30/04/2004 * @version 0.0.1 - 30/04/2004 - First version. */ #ifndef _HCCELL_INCLUDED #define _HCCELL_INCLUDED #include #include #include #include /** Cell types. */ typedef enum { HCCELLTYPE_BLANK = 0, /**< Blank cell. */ HCCELLTYPE_FLOOR, /**< Floor cell. */ HCCELLTYPE_CONTFLOOR, /**< Continuous floor cell. */ HCCELLTYPE_LADDER, /**< Ladder cell. */ HCCELLTYPE_BAR, /**< Firefighter bar cell. */ HCCELLTYPE_BREAK, /**< Breakable floor cell. */ } HCCellType; /** Actions allowed in a cell. */ typedef enum { HCACTION_UP = 1, /**< Go up. */ HCACTION_DOWN = 2, /**< Go down. */ HCACTION_LEFT = 4, /**< Go left. */ HCACTION_RIGHT = 8, /**< Go right. */ HCACTION_FALL = 16, /**< Fall. */ HCACTION_SLIDE = 32, /**< Slide. */ } HCAction; /** Generic 2D blank cell. */ class HCCell : public JDrawable { protected: HCCellType type; /**< Type of this cell. */ s32 subtype; /**< Subtype of this cell. */ u32 actionMask; /**< Mask of allowed actions within this cell. */ public: /** Creates an empty cell of type HCCELLTYPE_BLANK by default and * movement to the sides, down and falling as actions allowed. */ HCCell(HCCellType t = HCCELLTYPE_BLANK, u32 actions = HCACTION_FALL | HCACTION_LEFT | HCACTION_RIGHT) : type(t), subtype(0), actionMask(actions) {} /** Returns the mask of allowed actions for this cell. * @return the mask of allowed actions for this cell. */ u32 Actions() { return actionMask; } /** Enables the specified actions over this cell. * @param actions OR'ed combination of the actions to allow for this cell. */ void Enable(u32 actions) { actionMask |= actions; } /**Disables the specified actions over this cell. * @param actions OR'ed combination of the actions to allow for this cell. */ void Disable(u32 actions) { actionMask &= ~(actions); } /** Gets the type of this cell. * @return Type of this cell. */ const HCCellType & Type() {return type;} /** Sets the type of this cell. * @param newType New type of this cell. */ void Type(const HCCellType &newType) {type = newType;} /** Gets the subtype of this cell. * @return Subtype of this cell. */ s32 Subtype() {return subtype;} /** Sets the subtype of this cell. * @param newSubtype New type of this cell. */ void Subtype(s32 newSubtype) {subtype = newSubtype;} /** Destroys the object. */ virtual ~HCCell() {} }; class HCDrawableCell : public HCCell { protected: JImage drawable; /**< Graphical representation of the cell. */ public: /** Creates the cell. */ HCDrawableCell(HCCellType t, JImage *d, u32 actions = HCACTION_LEFT | HCACTION_RIGHT) : HCCell(t, actions) { if (d) drawable.Ref(*d); } /** Draws the cell. */ virtual void Draw() {drawable.Draw();} /** Positions this cell. * @param xPos New x coordinate. * @param yPos New y coordinate. */ virtual void Pos(float xPos, float yPos) {pos.x = xPos; pos.y = yPos; drawable.Pos(xPos, yPos);} /** Destroys the cell. */ virtual ~HCDrawableCell() {} }; /** Represents a simple floor or wall */ class HCFloorCell : public HCDrawableCell { public: HCFloorCell(JImage *d, u32 actions = 0) : HCDrawableCell(HCCELLTYPE_FLOOR, d, actions) {} virtual ~HCFloorCell() {} }; /** Represents a bar */ class HCBarCell : public HCDrawableCell { public: HCBarCell(JImage *d, u32 actions = HCACTION_SLIDE | HCACTION_DOWN | HCACTION_LEFT | HCACTION_RIGHT) : HCDrawableCell(HCCELLTYPE_BAR, d, actions) {} virtual ~HCBarCell() {} }; /** Represents a ladder */ class HCLadderCell : public HCDrawableCell { public: HCLadderCell(JImage *d, u32 actions = HCACTION_UP | HCACTION_DOWN | HCACTION_LEFT | HCACTION_RIGHT) : HCDrawableCell(HCCELLTYPE_LADDER, d, actions) {} virtual ~HCLadderCell() {} }; #endif // _HCCELL_INCLUDED holotz-castle-1.3.14-src/src/HCEnemyMaker.cpp0000644000175000001440000000212711177007633017724 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Defines an enemy maker. * @file HCEnemyMaker.cpp * @author Juan Carlos Seijo Prez * @date 27/05/2004 * @version 0.0.1 - 27/05/2004 - First version. */ #include HCEnemyMaker::HCEnemyMaker() : HCEnemy(HCENEMYTYPE_MAKER) {} holotz-castle-1.3.14-src/src/HCExit.cpp0000644000175000001440000001621711177007633016605 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Exit gadget for Holtz's castle game. * @file HCExit.cpp * @author Juan Carlos Seijo Prez * @date 17/08/2004 * @version 0.0.1 - 17/08/2004 - First version. */ #include HCExit::HCExit() : map(0), state(HCEXITSTATE_LOCKED), x1(0), y1(0), sparks(0), numSparks(0), character(0), imgCharacter(0) { } bool HCExit::Init(HCMap *_map, s32 nSparks, s32 w) { if (!_map) return false; map = _map; if (nSparks <= 0) { nSparks = 1; } Destroy(); numSparks = nSparks; sparks = new HCExitSpark[numSparks]; // Hangs from the ceiling of the cell pos.x = map->ToX(map->ExitCol()) - (map->CellWidth()/2); pos.y = map->ToY(map->ExitRow()) - (map->CellHeight() - 1); float x0 = pos.x, y0 = pos.y; x1 = x0 + (w == 0 ? map->CellWidth() : w); // Computes the height of the exit box s32 i, j; bool end = false; for (j = map->ExitRow() + 1, i = map->ExitCol(); !end && j < map->Rows(); ++j) { if (map->Cell(j, i)->Type() != HCCELLTYPE_BLANK) { end = true; } } y1 = map->ToY((j > 0 ? j - 2: 1)); // Randomly initializes the sparks into the exit box srand(time(0)); for (s32 k = 0; k < numSparks; ++k) { sparks[k].c.r = 255;//128 + (rand()%127); sparks[k].c.g = 255;//128 + (rand()%127); sparks[k].c.b = 255;//128 + (rand()%127); sparks[k].y = y0; sparks[k].vy = -(1.7 + (float(rand()%50)/50.0f)); sparks[k].c.g = sparks[k].c.r = 0; sparks[k].x = x0 + (rand()%s32(x1 - x0)); sparks[k].y = y0 + (rand()%s32(y1 - y0)); sparks[k].vy = -(0.1 + (float(rand()%50)/500.0f)); sparks[k].vx = -sparks[k].vy * (((x1 - x0)/2) - (sparks[k].x - x0))/(y1 - y0); sparks[k].dc = 255 - (u8)(255.0f * (float(y1 - sparks[k].y)/(y1 - y0))); } // Sets the timer to 25 FPS timer.Start(1000/25); // By default, the exit is locked Lock(); return true; } void HCExit::Draw() { switch (state) { default: case HCEXITSTATE_LOCKED: { JImage img(SDL_GetVideoSurface()); if (0 == img.Lock()) { for (s32 k = 0; k < numSparks; ++k) { if (sparks[k].x > 0 && sparks[k].x < JApp::App()->Width() && sparks[k].y > 0 && sparks[k].y < JApp::App()->Height()) { img.PutPixel((s32)sparks[k].x, (s32)sparks[k].y, SDL_MapRGB(img.Format(), sparks[k].c.r, sparks[k].c.g, sparks[k].c.b)); } } img.Unlock(); } } break; case HCEXITSTATE_SWALLOWING: case HCEXITSTATE_UNLOCKED: { JImage img(SDL_GetVideoSurface()); if (0 == img.Lock()) { for (s32 k = 0; k < numSparks; ++k) { if (sparks[k].x > 0 && sparks[k].x < JApp::App()->Width() && sparks[k].y > 0 && sparks[k].y < JApp::App()->Height() - 3) { for (s32 i = 0; i < 3; ++i) { img.PutPixel((s32)sparks[k].x, (s32)sparks[k].y + i, SDL_MapRGB(img.Format(), (sparks[k].c.r/(i+1)), (sparks[k].c.g/(i+1)), (sparks[k].c.b))); } } } img.Unlock(); } } break; } } s32 HCExit::Update() { if (!timer.Changed()) return 0; float x0 = pos.x, y0 = pos.y; switch (state) { default: case HCEXITSTATE_LOCKED: for (s32 k = 0; k < numSparks; ++k) { if (sparks[k].y < pos.y) { sparks[k].vy = -(1.7 + (float(rand()%50)/50.0f)); sparks[k].c.g = sparks[k].c.r = 0; sparks[k].x = x0 + (rand()%s32(x1 - x0)); sparks[k].y = y0 + (rand()%s32(y1 - y0)); sparks[k].vy = -(0.1 + (float(rand()%50)/500.0f)); sparks[k].vx = -sparks[k].vy * (((x1 - x0)/2) - (sparks[k].x - x0))/(y1 - y0); sparks[k].dc = 255 - (u8)(255.0f * (float(y1 - sparks[k].y)/(y1 - y0))); } sparks[k].c.r += sparks[k].dc; sparks[k].c.g += sparks[k].dc; sparks[k].x += sparks[k].vx; sparks[k].y += sparks[k].vy; } break; case HCEXITSTATE_UNLOCKED: for (s32 k = 0; k < numSparks; ++k) { if (sparks[k].y <= y0) { sparks[k].c.g = sparks[k].c.r = 0; sparks[k].x = x0 + (rand()%s32(x1 - x0)); sparks[k].y = y0 + (rand()%s32(y1 - y0)); sparks[k].vy = -(4.7 + (float(rand()%10)/5.0f)); sparks[k].vx = -sparks[k].vy * 0.1f * (((x1 - x0)/2) - (sparks[k].x - x0))/(x1 - x0); sparks[k].vx = -sparks[k].vy * (((x1 - x0)/2) - (sparks[k].x - x0))/(y1 - y0); sparks[k].dc = 255 - (u8)(255.0f * (float(y1 - sparks[k].y)/(y1 - y0))); } sparks[k].c.g += sparks[k].dc; sparks[k].c.r += sparks[k].dc; sparks[k].x += sparks[k].vx; sparks[k].y += sparks[k].vy; } break; case HCEXITSTATE_SWALLOWING: for (s32 k = 0; k < numSparks; ++k) { if (sparks[k].y <= y0) { // Faster, from top to the character's feet sparks[k].c.g = sparks[k].c.r = 0; sparks[k].x = x0 + (rand()%s32(x1 - x0)); sparks[k].y = character->Y();//y0 + (rand()%s32(character->Y() - y0 + 5)); sparks[k].vy = -(6.7 + (float(rand()%10)/2.0f)); sparks[k].vx = -sparks[k].vy * 0.1f * (((x1 - x0)/2) - (sparks[k].x - x0))/(x1 - x0); sparks[k].vx = -sparks[k].vy * (((x1 - x0)/2) - (sparks[k].x - x0))/(y1 - y0); sparks[k].dc = 255 - (u8)(255.0f * (float(y1 - sparks[k].y)/(y1 - y0))); } sparks[k].c.g += sparks[k].dc; sparks[k].c.r += sparks[k].dc; sparks[k].x += sparks[k].vx; sparks[k].y += sparks[k].vy; } if (character->Y() <= (y0 + map->CellHeight())) { // Done swallowing state = HCEXITSTATE_SWALLOWED; } else { character->Pos(character->X(), character->Y() + character->Veloccity().y); } break; case HCEXITSTATE_SWALLOWED: break; } return 1; } void HCExit::Unlock() { // Suddenly accelerates the sparks state = HCEXITSTATE_UNLOCKED; for (s32 k = 0; k < numSparks; ++k) { sparks[k].vy = -(1.7 + (float(rand()%10)/5.0f)); } } void HCExit::Swallow(HCCharacter *ch) { state = HCEXITSTATE_SWALLOWING; character = ch; character->State(HCCS_STOP); character->Veloccity().y = -5.0f; // Calculates the veloccity to end in the midpoint of the ceiling character->Veloccity().x = character->Veloccity().y * (((character->X() - pos.x) - (x1 - pos.x)/2))/(y1 - pos.y); } void HCExit::Pos(float xPos, float yPos) { float dx = xPos - pos.x, dy = yPos - pos.y; pos.x = xPos; pos.y = yPos; x1 += dx; y1 += dy; for (s32 k = 0; k < numSparks; ++k) { sparks[k].x += dx; sparks[k].y += dy; } } void HCExit::Destroy() { JDELETE_ARRAY(sparks); JDELETE(imgCharacter); } HCExit::~HCExit() { Destroy(); } holotz-castle-1.3.14-src/src/HCScriptBlock.h0000644000175000001440000000464211177007633017557 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Execution block for Holotz's Castle's script engine. * @file HCScriptBlock.h * @author Juan Carlos Seijo Prez * @date 03/07/2004 * @version 0.0.1 - 03/07/2004 - Primera versin. */ #ifndef _HCSCRIPTBLOCK_INCLUDED #define _HCSCRIPTBLOCK_INCLUDED #include #include class HCScriptAction; class HCScriptBlock { protected: HCScriptAction **actions; /**< Actions of this block. */ s32 numActions; /**< Number of actions of this block. */ public: /** Creates an empty block of actions. */ HCScriptBlock() : actions(0), numActions(0) {} /** Checks if the block has finished its execution. * @return true if it has finished, false otherwise. */ bool Finished(); /** Updates the actions of this block; * @return 0 if no changes had been made, 1 otherwise. */ s32 Update(); /** Loads the block from the file. If the method encounters '{ ... }', it will * search for valid actions in the '...' section. * @param f File already opened and positioned before the block to read. * @return true if successfull, false otherwise. */ bool Load(JTextFile &f); /** Skips the dialog actions in this block. */ void Skip(); /** Prepares the block for execution. The script calls this method when its time * to execute the block. The block prepares its actions to be executed. */ virtual void Current(); /** Destroys the block and frees resources. */ virtual ~HCScriptBlock() {JDELETE_POINTER_ARRAY(actions, numActions);} }; #endif // _HCSCRIPTBLOCK_INCLUDED holotz-castle-1.3.14-src/src/HCEnemyStatic.h0000644000175000001440000000302411177007633017556 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Defines a static enemy. * @file HCEnemyStatic.h * @author Juan Carlos Seijo Prez * @date 27/05/2004 * @version 0.0.1 - 27/05/2004 - First version. */ #ifndef _HCENEMYSTATIC_INCLUDED #define _HCENEMYSTATIC_INCLUDED #include #include /** Static enemy. Only stays (kind of trap). */ class HCEnemyStatic : public HCEnemy { public: /** Creates an enemy static. */ HCEnemyStatic(); /** Updates the enemy. * @return Return value of the associated drawable's update. */ virtual s32 Update() {return states[state].Update();} /** Destroys the object and allows scalar destruction. */ virtual ~HCEnemyStatic() {} }; #endif // _HCENEMYSTATIC_INCLUDED holotz-castle-1.3.14-src/src/HCCharacter.cpp0000644000175000001440000004167611177007633017577 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Holotz's Castle main character definition file. * @file HCCharacter.cpp * @author Juan Carlos Seijo Prez * @date 30/04/2004 * @version 0.0.1 - 30/04/2004 - First version. */ #include HCCharacter::HCCharacter() { state = HCCS_STOP; actions = 0; lastAction = 0; maxFallRows = 2; startJumpRow = -1; maxJumpRows = 0; maxJumpCols = 0; v.x = v.y = 0.0f; a.x = a.y = 0.0f; vMax.x = 5.0f; vMax.y = 9.0f; vJumpMax.x = vMax.x; vJumpMax.y = 0.0f; aMax.x = vMax.x; aMax.y = vMax.y; breakRow = -1; trackRope = 0; dialog = 0; subtype = 0; } bool HCCharacter::Init(JImageSprite *sprites, HCMap *_map, HCRope **_ropes, s32 nRopes) { if (0 == sprites) { fprintf(stderr, "No sprites for character.\n"); return false; } if (0 == _map) { fprintf(stderr, "No map for character.\n"); return false; } // References the themes' sprites for (s32 i = 0; i < HCCS_COUNT; ++i) { states[i].Ref(sprites[i]); } a.x = v.x = a.y = v.y = 0.0f; map = _map; ropes = _ropes; numRopes = nRopes; // Sets the number of rows for jump and computes the jump velocitty MaxJumpRows(maxJumpRows); // Sets hanging parameters depending on the largest frame of the jump left sprites // Sets the hang hotspot at the middle of the largest frame, the width and height // are half the maximun of either the width or the height s32 max = 0; for (u32 i = 0; i < sprites[HCCS_JUMPLEFT].NumFrames(); ++i) { max = (s32)JMax(max, ((JImage *)sprites[HCCS_JUMPLEFT].Frame(i))->Width()); max = (s32)JMax(max, ((JImage *)sprites[HCCS_JUMPLEFT].Frame(i))->Height()); } hangCheckYOffset = max/2; hangCheckSize = max/2; return true; } void HCCharacter::MaxJumpRows(s32 newMaxJumpRows) { maxJumpRows = newMaxJumpRows; JClamp(maxJumpRows, 0, map->Rows()); // Simulates a jump to determine the veloccity in Y. s32 curJumpRows = 0; vJumpMax.y = 0.0f; float vx = vJumpMax.x, x = 0.0f, firstVy = 0.0f, lastVy = 0.0f, dy = float(map->CellHeight())/200.0f; bool first = true; while (curJumpRows <= maxJumpRows) { vJumpMax.y += dy; float vy = -vJumpMax.y, y = 0.0f; vx = vJumpMax.x; x = 0.0f; maxJumpCols = curJumpRows = 0; while (y <= 0.0f) { vy += map->Gravity(); if (vy > vJumpMax.y) { vy = vJumpMax.y; } x += vx; y += vy; curJumpRows = (s32)JMax(curJumpRows, -y/map->CellHeight()); } // Check the first and last v.y's that allow a vertical jump of maxJumpRows cells. if (curJumpRows == maxJumpRows) { if (first) { first = false; firstVy = vJumpMax.y; } lastVy = vJumpMax.y; } } vJumpMax.y = firstVy + ((lastVy - firstVy)/2.0f); // This is only informative for, perhaps, the child classes but includes it also maxJumpCols = (s32)x/map->CellWidth(); // This is the maximum number of rows before starting to fall (and before the player // has no control over the character, except if it hangs to a rope during the fall). // If falling and the floor is reached, the character dies. maxFallRows = maxJumpCols * 2; } void HCCharacter::Draw() { states[state].Draw(); if (dialog != 0) { dialog->Draw(); } // SDL_Rect rc; // rc.x = map->ToX(map->ToCol((s32)pos.x)) - 1; // rc.y = map->ToY(map->ToRow((s32)pos.y)) - (map->CellHeight()/2 - 1); // rc.w = 3; // rc.h = 3; // SDL_FillRect(SDL_GetVideoSurface(), &rc, 0xffffffff); } s32 HCCharacter::Update() { states[state].Update(); if (state == HCCS_HANG) { UpdateHang(); } else { UpdateVeloccity(); CheckHang(); } // Collisions UpdateCollisions(); CheckBrokenFloor(); Pos(pos.x + v.x, pos.y + v.y); // Updates dialogs UpdateDialog(); return 0; } void HCCharacter::UpdateVeloccity() { v.x += a.x; v.y += a.y + map->Gravity(); if (v.x > vMax.x) { v.x = vMax.x; } else if (v.x < -vMax.x) { v.x = -vMax.x; } switch (state) { case HCCS_JUMPLEFT: case HCCS_JUMPRIGHT: case HCCS_JUMP: // Falling veloccity limited to the cell height - 1 if (v.y > 0.0f) { if (v.y > map->CellHeight() - 1) { v.y = map->CellHeight() - 1; } } else if (v.y < -vJumpMax.y) { v.y = -vJumpMax.y; } break; case HCCS_DIE: v.x = a.x = 0.0f; if (v.y > vMax.y) { v.y = vMax.y; } else if (v.y < -vMax.y) { v.y = -vMax.y; } break; default: if (v.y > vMax.y) { v.y = vMax.y; } else if (v.y < -vMax.y) { v.y = -vMax.y; } break; } } void HCCharacter::UpdateCollisions() { float newX = pos.x + v.x; float newY = pos.y + v.y; s32 row = map->ToRow((s32)pos.y), col = map->ToCol((s32)pos.x); s32 newCol = map->ToCol((s32)(newX)); s32 newRow = map->ToRow((s32)(newY)); switch (map->Cell(row, newCol)->Type()) { case HCCELLTYPE_FLOOR: case HCCELLTYPE_CONTFLOOR: v.x = 0.0f; break; case HCCELLTYPE_BREAK: if (((HCBreak *)map->Cell(row, newCol))->State() == HCBREAKSTATE_NORMAL) { v.x = 0.0f; } break; default: col = newCol; break; } switch (map->Cell(newRow, col)->Type()) { case HCCELLTYPE_LADDER: case HCCELLTYPE_BAR: // New cell is a ladder or a bar switch (state) { case HCCS_UP: case HCCS_DOWN: case HCCS_SLIDE: // In this states do nothing break; case HCCS_JUMPLEFT: case HCCS_JUMPRIGHT: case HCCS_JUMP: if (newRow > row && map->Cell(row, col)->Type() == HCCELLTYPE_BLANK) { // Falls over a ladder or bar, must stop v.y = 0.0f; state = HCCS_STOP; FixY(row); } break; case HCCS_DIE: if (newRow > row && map->Cell(row, col)->Type() == HCCELLTYPE_BLANK) { // Falls over a ladder or bar, must stop v.y = 0.0f; } break; default: // In any other state, stops the character v.y = 0.0f; break; } break; default: if ((map->Cell(newRow, col)->Actions() & HCACTION_FALL) == 0) { v.y = 0.0f; switch (state) { // If jumping, must stop case HCCS_JUMPLEFT: case HCCS_JUMPRIGHT: case HCCS_JUMP: if (newRow > row) { // Stands over the floor state = HCCS_STOP; FixY(row); } else if (newRow == row) { // Stands over the floor above state = HCCS_STOP; FixY(row - 1); } break; case HCCS_DOWN: case HCCS_SLIDE: state = HCCS_STOP; FixY(row); break; case HCCS_DIE: if (newRow > row) { // Stands over the floor FixY(row); } break; default: break; } } else { if (newRow > row && state != HCCS_JUMP && state != HCCS_JUMPLEFT && state != HCCS_JUMPRIGHT && state != HCCS_DIE) { State(HCCS_JUMP); } } break; } } void HCCharacter::UpdateDialog() { if (dialog != 0) { dialog->Update(); } } void HCCharacter::CheckBrokenFloor() { // Checks for broken floor if (breakRow != -1) { s32 row = map->ToRow((s32)pos.y + map->CellHeight()/2); s32 col = map->ToCol((s32)pos.x); // Inside a break, got out? if (map->Cell(row, col)->Type() != HCCELLTYPE_BREAK || ((HCBreak *)map->Cell(row, col))->State() != HCBREAKSTATE_NORMAL) { // Got out! ((HCBreak *)map->Cell(breakRow, breakCol))->Break(); breakRow = -1; } } else { s32 row = map->ToRow((s32)pos.y + map->CellHeight()/2); s32 col = map->ToCol((s32)pos.x); if (state == HCCS_STOP || state == HCCS_LEFT || state == HCCS_RIGHT) { // Outside a break, got in? if (row < map->Rows() - 1 && map->Cell(row, col)->Type() == HCCELLTYPE_BREAK && ((HCBreak *)map->Cell(row, col))->State() == HCBREAKSTATE_NORMAL) { // Got in! breakRow = row; breakCol = col; } } } } void HCCharacter::CheckHang() { if (ropes == 0) return; if (state != HCCS_HANG && state != HCCS_DIE) { JImage *edge; for (s32 i = 0; i < numRopes; ++i) { edge = &ropes[i]->Edge(); s32 cx = (s32)edge->X() + (edge->Width()/2); s32 cy = (s32)edge->Y() + (edge->Height()/2); if (cx > pos.x - hangCheckSize && cx < pos.x + hangCheckSize && cy > pos.y - hangCheckYOffset - hangCheckSize && cy < pos.y - hangCheckYOffset + hangCheckSize) { state = HCCS_HANG; v.x = v.y = a.x = 0.0f; a.y = -map->Gravity(); trackRope = ropes[i]; Pos(trackRope->Edge().X(), trackRope->Edge().Y()); break; } } } } s32 HCCharacter::UpdateStop() { return 0; } s32 HCCharacter::UpdateRight() { return 0; } s32 HCCharacter::UpdateLeft() { return 0; } s32 HCCharacter::UpdateUp() { return 0; } s32 HCCharacter::UpdateDown() { return 0; } s32 HCCharacter::UpdateSlide() { return 0; } s32 HCCharacter::UpdateJump() { return 0; } s32 HCCharacter::UpdateJumpLeft() { return 0; } s32 HCCharacter::UpdateJumpRight() { return 0; } s32 HCCharacter::UpdateFall() { return 0; } s32 HCCharacter::UpdateDie() { return 0; } s32 HCCharacter::UpdateHang() { // Move with the rope! Pos(trackRope->Edge().X() + trackRope->Edge().Width()/2, trackRope->Edge().Y() + trackRope->Edge().Height()); return 0; } void HCCharacter::Pos(float x, float y) { // fprintf(stderr, "En Pos() antes pos.x: %f pos.y: %f v.x: %f v.y: %f x:%f y:%f px+vx:%f py+vy:%f\n", pos.x, pos.y, v.x, v.y, x, y, pos.x + v.x, pos.y + v.y); pos.x = x; pos.y = y; // fprintf(stderr, "En Pos() despus pos.x: %f pos.y: %f v.x: %f v.y: %f x:%f y:%f\n", pos.x, pos.y, v.x, v.y, x, y); states[state].Pos(x, y); } s32 HCCharacter::Row() { return map->ToRow((s32)pos.y); } s32 HCCharacter::Col() { return map->ToCol((s32)pos.x); } void HCCharacter::FixPos(s32 col, s32 row) { Pos(map->ToX(col), map->ToY(row)); } void HCCharacter::FixX(s32 col) { Pos(map->ToX(col), (s32)pos.y); } void HCCharacter::FixY(s32 row) { Pos(pos.x, map->ToY(row)); } bool HCCharacter::Act(u32 act) { lastAction = actions; actions = act; s32 row = map->ToRow((s32)pos.y); s32 col = map->ToCol((s32)pos.x); if (state == HCCS_DIE) { return false; } // Nothing if (actions == 0) { // Stop moving aside v.x = a.x = 0.0f; switch (state) { case HCCS_JUMP: case HCCS_JUMPLEFT: case HCCS_JUMPRIGHT: { // Vertical jump State(HCCS_JUMP); if (v.y < 0.0f) { // Stop going up but not down v.y = 0.0f; } } break; case HCCS_UP: case HCCS_DOWN: { v.y = 0.0f; a.y = -map->Gravity(); states[state].Paused(true); } break; case HCCS_SLIDE: break; case HCCS_LEFT: case HCCS_RIGHT: State(HCCS_STOP); break; default: break; } return true; } ///////////////////////////////////////////////////////////////////// // Side movement if ((actions & HCCA_LEFT) && (map->Cell(row, col)->Actions() & HCACTION_LEFT)) { // Goes left a.x = -aMax.x; if (actions & HCCA_JUMP) { a.y = 0.0f; // Jump requested if (state != HCCS_JUMP && state != HCCS_JUMPLEFT && state != HCCS_JUMPRIGHT) { // Not jumping, make it jump v.y = -vJumpMax.y; } // Jumps facing left State(HCCS_JUMPLEFT); // Jump processed, clean it from the pending actions actions &= ~HCCA_JUMP; } else { a.y = 0.0f; // Jump not requested if (state == HCCS_JUMPLEFT || state == HCCS_JUMPRIGHT || state == HCCS_JUMP) { State(HCCS_JUMPLEFT); } else if (state != HCCS_HANG) { if (map->Cell(row + 1, col)->Actions() & HCACTION_FALL) { // Falls facing right if not climbing or hanging State(HCCS_JUMPLEFT); v.y = 0.0f; } else { // Walks facing right if not climbing or hanging State(HCCS_LEFT); } } } } else if ((actions & HCCA_RIGHT) && (map->Cell(row, col)->Actions() & HCACTION_RIGHT)) { // Goes right a.x = aMax.x; if (actions & HCCA_JUMP) { a.y = 0.0f; // Jump requested if (state != HCCS_JUMP && state != HCCS_JUMPLEFT && state != HCCS_JUMPRIGHT) { // Not jumping, make it jump v.y = -vJumpMax.y; } // Jumps facing right State(HCCS_JUMPRIGHT); // Jump processed, clean it from the pending actions actions &= ~HCCA_JUMP; } else { a.y = 0.0f; if (state == HCCS_JUMPLEFT || state == HCCS_JUMPRIGHT || state == HCCS_JUMP) { State(HCCS_JUMPRIGHT); } else // Jump not requested if (state != HCCS_HANG) { if (map->Cell(row + 1, col)->Actions() & HCACTION_FALL) { // Falls facing right if not climbing or hanging State(HCCS_JUMPRIGHT); v.y = 0.0f; } else { // Walks facing right if not climbing or hanging State(HCCS_RIGHT); } } } } else { v.x = a.x = 0.0f; } ///////////////////////////////////////////////////////////////////// // Vertical movement if (actions & HCCA_UP && state != HCCS_HANG) { // Up requested if (map->Cell(row, col)->Actions() & HCACTION_UP != 0) { State(HCCS_UP); // Can go up in the current cell if (map->Cell(row - 1, col)->Actions() & HCACTION_UP || map->Cell(row - 1, col)->Actions() & HCACTION_FALL) { // Can go up in the upper cell or cell above empty, continue a.y = -map->Gravity() - aMax.y; states[state].Paused(false); FixX(col); } else { // Cannot go up in the upper cell, stops a.y = -map->Gravity(); v.y = 0.0f; states[state].Paused(true); } } else { a.y = 0.0f; if (state == HCCS_UP) { // Cannot go up, wait State(HCCS_STOP); v.y = 0.0f; } } } else if (actions & HCCA_DOWN) { // Down requested if (state == HCCS_HANG) { // If hanging, falls v.x = v.y = a.y = 0.0f; state = HCCS_JUMP; trackRope = 0; Pos(pos.x, pos.y + states[state].MaxH()); } else if (map->Cell(row + 1, col)->Actions() & HCACTION_SLIDE) { // Bar like object bellow a.y = -map->Gravity() + aMax.y; state = HCCS_SLIDE; FixX(col); } else if (map->Cell(row + 1, col)->Actions() & HCACTION_DOWN) { // Ladder like object bellow a.y = -map->Gravity() + aMax.y; state = HCCS_DOWN; states[state].Paused(false); FixX(col); } else { // Not a ladder or a bar bellow if (map->Cell(row, col)->Actions() & HCACTION_DOWN || map->Cell(row, col)->Actions() & HCACTION_SLIDE) { // If still over the ladder or bar, keep going on a.y = -map->Gravity() + aMax.y; states[state].Paused(false); } else if (map->Cell(row + 1, col)->Actions() & HCACTION_FALL) { // There is no bar or ladder either in the current cell or the cell bellow // and the cell bellow is empty if (state != HCCS_JUMP && state != HCCS_JUMPLEFT && state != HCCS_JUMPRIGHT && !(actions & HCCA_JUMP)) { // Jump not requested, normal fall v.y = a.y = 0.0f; State(HCCS_JUMP); } } else { a.y = 0.0f; if (state == HCCS_DOWN) { // Cannot go down, wait state = HCCS_STOP; FixY(row); } } } } // Jumps only if not sliding and the current cell and the cell above are empty or // it's hanging if ((actions & HCCA_JUMP) && state != HCCS_SLIDE && (!(map->Cell(row + 1, col)->Actions() & HCACTION_FALL) || //!(map->Cell(row, col)->Actions() & HCACTION_FALL) || state == HCCS_HANG)) { // Cell bellow or this cell are not empty or the character is hanging v.x = a.x = 0.0f; if (state != HCCS_JUMP && state != HCCS_JUMPLEFT && state != HCCS_JUMPRIGHT) { a.y = 0.0f; v.y = -vJumpMax.y; State(HCCS_JUMP); } } return true; } void HCCharacter::State(HCCharacterState newState) { // Gets the current row and col state = newState; states[state].Pos(pos.x, pos.y); } u32 HCCharacter::Load(JRW &file) { if (0 == file.ReadLE32(&subtype) || 0 == file.ReadLE32((u32 *)&pos.x) || 0 == file.ReadLE32((u32 *)&pos.y) || 0 == file.ReadLE32((u32 *)&vMax.x) || 0 == file.ReadLE32((u32 *)&vMax.y) || 0 == file.ReadLE32(&maxJumpRows)) { fprintf(stderr, "Error reading character's common parameters.\n"); return 1; } Pos(pos.x, pos.y); return 0; } u32 HCCharacter::Save(JRW &file) { if (0 == file.WriteLE32(&subtype) || 0 == file.WriteLE32((u32 *)&pos.x) || 0 == file.WriteLE32((u32 *)&pos.y) || 0 == file.WriteLE32((u32 *)&vMax.x) || 0 == file.WriteLE32((u32 *)&vMax.y) || 0 == file.WriteLE32(&maxJumpRows)) { fprintf(stderr, "Error writing character's common parameters.\n"); return 1; } return 0; } void HCCharacter::Destroy() { for (s32 i = 0; i < HCCS_COUNT; ++i) { states[i].Destroy(); } dialog = 0; breakCol = breakRow = -1; } holotz-castle-1.3.14-src/src/HCLoadSaveSlot.cpp0000644000175000001440000000511311177007633020225 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Game data slot for save and load. * @file HCLoadSaveSlot.cpp * @author Juan Carlos Seijo Prez * @date 14/09/2004 * @version 0.0.1 - 14/09/2004 - Primera versin. */ #include #include #ifndef _WIN32 #include #endif bool HCLoadSaveSlot::Load(s32 slot) { // Loads the name of the story and the level number JRW f; char name[256]; #ifndef _WIN32 char *home; home = getenv("HOME"); if (home != NULL) snprintf(name, sizeof(name), "%s/.holotz-castle/slot%02d", home, slot); else snprintf(name, sizeof(name), HC_DATA_DIR "savedata/slot%02d", slot); #else snprintf(name, sizeof(name), HC_DATA_DIR "savedata/slot%02d", slot); #endif if (f.Create(name, "rb") && 0 == story.Load(f) && 0 != f.ReadLE32(&level)) { return true; } return false; } bool HCLoadSaveSlot::Save(s32 slot, const JString& s, s32 levelNumber) { level = levelNumber; story = s; JRW f; char name[256]; #ifndef _WIN32 char *home; home = getenv("HOME"); snprintf(name, sizeof(name), "%s/.holotz-castle", home); mkdir(name, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); if (home != NULL) snprintf(name, sizeof(name), "%s/.holotz-castle/slot%02d", home, slot); else snprintf(name, sizeof(name), HC_DATA_DIR "savedata/slot%02d", slot); #else snprintf(name, sizeof(name), HC_DATA_DIR "savedata/slot%02d", slot); #endif // Saves the name of the story and the level number if (f.Create(name, "wb")) { if (0 == story.Save(f)) { if (0 != f.WriteLE32(&level)) { return true; } else { fprintf(stderr, "Error saving level %d\n", level); } } else { fprintf(stderr, "Error saving story %s\n", story.Str()); } } else { fprintf(stderr, "Error opening %s\n", name); } return false; } holotz-castle-1.3.14-src/src/HCContFloor.h0000644000175000001440000000456711177007633017253 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Continuous floor cell. * @file HCContFloor.h * @author Juan Carlos Seijo Prez * @date 02/06/2004 * @version 0.0.1 - 02/06/2004 - First version. */ #ifndef _HCCONTFLOOR_INCLUDED #define _HCCONTFLOOR_INCLUDED #include #include class HCContFloor : public HCDrawableCell { public: HCContFloor() : HCDrawableCell(HCCELLTYPE_CONTFLOOR, 0, 0) {} /** Builds the image for this floor. * @param parts Array of parts of this floor (corners, sides, etc.) * Tipically it is retrieved from HCTheme::ContFloor(). * @param n7 Neighbour at position 7 (as in the keypad from your keyboard). false for none. * @param n8 Neighbour at position 8 (as in the keypad from your keyboard). false for none. * @param n9 Neighbour at position 9 (as in the keypad from your keyboard). false for none. * @param n4 Neighbour at position 4 (as in the keypad from your keyboard). false for none. * @param n6 Neighbour at position 6 (as in the keypad from your keyboard). false for none. * @param n1 Neighbour at position 1 (as in the keypad from your keyboard). false for none. * @param n2 Neighbour at position 2 (as in the keypad from your keyboard). false for none. * @param n3 Neighbour at position 3 (as in the keypad from your keyboard). false for none. */ void Build(JImage *parts, bool n7, bool n8, bool n9, bool n4, bool n6, bool n1, bool n2, bool n3); /** Allows scalar destruction. */ virtual ~HCContFloor() {} }; #endif // _HCCONTFLOOR_INCLUDED holotz-castle-1.3.14-src/src/HCEnemyRandom.cpp0000644000175000001440000001305511177007633020107 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Defines a random enemy. * @file HCEnemyRandom.cpp * @author Juan Carlos Seijo Prez * @date 27/05/2004 * @version 0.0.1 - 27/05/2004 - First version. */ #include HCEnemyRandom::HCEnemyRandom() : HCEnemy(HCENEMYTYPE_RANDOM) { lastCol = lastRow = 0; } s32 HCEnemyRandom::Update() { s32 ret = HCEnemy::Update(); s32 col = map->ToCol((s32)pos.x); s32 row = map->ToRow((s32)pos.y); if (state == HCCS_STOP || actions == 0 || states[state].Paused()) { s32 rnd = rand() % 4; u32 guess[4]; for (s32 i = 0; i < 4; ++i) { guess[i] = 1 << ((rnd + i)% 4); } if (map->Cell(row, col - 1)->Actions() & guess[0]) { actions = guess[0]; } else if (map->Cell(row, col + 1)->Actions() & guess[1]) { actions = guess[1]; } else if (map->Cell(row, col)->Actions() & guess[2]) { actions = guess[2]; } else if (map->Cell(row + 1, col)->Actions() & guess[3]) { actions = guess[3]; } } else { if (lastCol != col || lastRow != row) { lastCol = col; lastRow = row; s32 random = rand() % 10; // Only if it has moved 1 cell or more switch (state) { // If walking and a ladder or bar is nearby, decide to use it or not case HCCS_LEFT: case HCCS_RIGHT: switch (random) { default: // Current cell if (map->Cell(row, col)->Type() == HCCELLTYPE_LADDER) { actions = HCCA_UP; } break; case 0: case 1: // Lower cell if (map->Cell(row+1, col)->Type() == HCCELLTYPE_BAR || map->Cell(row+1, col)->Type() == HCCELLTYPE_LADDER) { actions = HCCA_DOWN; } else // Current cell if (map->Cell(row, col)->Type() == HCCELLTYPE_LADDER) { actions = HCCA_UP; } break; } break; // If going up or down, checks for floor at the sides case HCCS_UP: case HCCS_DOWN: switch (random) { default: // Lower left cell if (!(map->Cell(row + 1, col - 1)->Actions() & HCACTION_FALL)) { actions = HCCA_LEFT; break; } break; case 0: case 1: case 2: case 3: // Lower right cell if (!(map->Cell(row + 1, col + 1)->Actions() & HCACTION_FALL)) { actions = HCCA_RIGHT; break; } break; } break; default: break; } } } return ret; } void HCEnemyRandom::UpdateCollisions() { float newX = pos.x + v.x; float newY = pos.y + v.y; s32 row = map->ToRow((s32)pos.y), col = map->ToCol((s32)pos.x); s32 newCol = map->ToCol((s32)(newX)); s32 newRow = map->ToRow((s32)(newY)); // Side collisions switch (map->Cell(row, newCol)->Type()) { case HCCELLTYPE_FLOOR: case HCCELLTYPE_CONTFLOOR: v.x = a.x = 0; actions = 0; state = HCCS_STOP; break; case HCCELLTYPE_BREAK: if (((HCBreak *)map->Cell(row, newCol))->State() == HCBREAKSTATE_NORMAL) { v.x = a.x = 0; actions = 0; state = HCCS_STOP; } break; default: col = newCol; break; } // Updown collisions switch (map->Cell(newRow, col)->Type()) { case HCCELLTYPE_LADDER: case HCCELLTYPE_BAR: // New cell is a ladder or a bar switch (state) { case HCCS_UP: case HCCS_DOWN: case HCCS_SLIDE: // In this states do nothing break; case HCCS_JUMPLEFT: case HCCS_JUMPRIGHT: case HCCS_JUMP: if (newRow > row && map->Cell(row, col)->Type() == HCCELLTYPE_BLANK) { // Falls over a ladder or bar, must stop v.y = 0.0f; state = HCCS_STOP; FixY(row); if (actions & HCCA_RIGHT) { actions &= ~HCCA_RIGHT; actions |= HCCA_LEFT; } else { actions &= ~HCCA_LEFT; actions |= HCCA_RIGHT; } } break; case HCCS_DIE: if (newRow > row && map->Cell(row, col)->Type() == HCCELLTYPE_BLANK) { // Falls over a ladder or bar, must stop v.y = 0.0f; } break; default: // In any other state, stops the character v.y = 0.0f; break; } break; default: if ((map->Cell(newRow, col)->Actions() & HCACTION_FALL) == 0) { v.y = 0.0f; switch (state) { // If jumping, must stop case HCCS_JUMPLEFT: case HCCS_JUMPRIGHT: case HCCS_JUMP: if (newRow > row) { actions &= ~HCCA_JUMP; // Stands over the floor state = HCCS_STOP; FixY(row); } break; case HCCS_DOWN: case HCCS_SLIDE: actions &= ~HCCA_DOWN; // Stands over the floor state = HCCS_STOP; FixY(row); break; case HCCS_DIE: if (newRow > row) { // Stands over the floor FixY(row); } break; default: break; } } else { if (newRow > row && state != HCCS_JUMP && state != HCCS_JUMPLEFT && state != HCCS_JUMPRIGHT) { actions &= ~HCCA_JUMP; State(HCCS_JUMP); } } break; } } holotz-castle-1.3.14-src/src/HCLoadSaveSlot.h0000644000175000001440000000427011177007633017675 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Game data slot for save and load. * @file HCLoadSaveSlot.h * @author Juan Carlos Seijo Prez * @date 14/09/2004 * @version 0.0.1 - 14/09/2004 - Primera versin. */ #ifndef _HCLOADSAVESLOT_INCLUDED #define _HCLOADSAVESLOT_INCLUDED #include #include /** Game data slot for save and load. */ class HCLoadSaveSlot { JString story; /**< Story name. */ s32 level; /**< Level number within the story. */ public: /** Creates an empty slot, Init() must be called before. */ HCLoadSaveSlot() : level(1) {} /** Loads this slot. * @param slot Slot number to load. * @return true if succeeded, false otherwise. */ bool Load(s32 slot); /** Saves this slot with the given parameters. * @param s Name of the story. * @param levelNumber Ordinal of the level to save. * @param image Image to be stored. * @param f File already opened and positioned. * @return 0 if succeeded, 1 if there was an I/O error, 2 if an integrity error. */ bool Save(s32 slot, const JString& s, s32 levelNumber); /** Returns the story name. * @return story name. */ const char * Story() {return story.Str();} /** Returns the level number. * @return level number. */ s32 Level() {return level;} }; #endif // _HCLOADSAVESLOT_INCLUDED holotz-castle-1.3.14-src/src/HCed.cpp0000644000175000001440000022166511177007633016271 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Level editor for Holotz's Castle. * @file HCed.cpp * @author Juan Carlos Seijo Prez * @date 30/05/2004 * @version 0.0.1 - 30/05/2004 - First version * @version 0.0.2 - 30/05/2004 - Install support, Miriam Ruiz (Debian package). Load/Create story support. */ #include #ifndef _WIN32 #include #endif #ifndef HC_DATA_DIR #define HC_DATA_DIR "res/" #endif #ifndef HCED_DATA_DIR #define HCED_DATA_DIR "HCedHome/res/" #endif /** This application. */ HCed *theApp; HCPreferences prefs; void HCed::PrintUsage(char *program) { fprintf(stderr, "HCed v1.3. (C) Juan Carlos Seijo Prez - 2004.\n\n"); fprintf(stderr, "Usage: %s [-t themeName] [story name] [levelToLoad]", program); fprintf(stderr, " [-h] [-r numRows] [-c numColumns]"); fprintf(stderr, " [-f]ullscreen [-w]indowed [--fps nnn] [-mWxHxBPP]\n"); fprintf(stderr, "\n"); exit(0); } void HCed::OnKeyUp(SDL_keysym key) { if (theApp->state == HCEDSTATE_OPENSTORY) { if (key.sym == SDLK_ESCAPE) { // Ends opening/creating the a story theApp->OnFloor(0); theApp->inputNewStory = 0; } if (HCED_INPUT_STORY == theApp->inputNewStory) { bool upd = false; if ((key.sym >= SDLK_0 && key.sym <= SDLK_9) || (key.sym >= SDLK_a && key.sym <= SDLK_z) || key.sym == SDLK_MINUS) { if (key.sym == SDLK_MINUS && (theApp->KeyMods() & KMOD_SHIFT)) { theApp->strNewStoryName += '_'; } else { if ((theApp->KeyMods() & KMOD_SHIFT)) { theApp->strNewStoryName += toupper(key.sym); } else { theApp->strNewStoryName += key.sym; } } upd = true; } else if (key.sym == SDLK_DELETE || key.sym == SDLK_BACKSPACE) { // Deletes last character if (theApp->strNewStoryName.Length() > 0) { JString str(theApp->strNewStoryName, 0, theApp->strNewStoryName.Length() - 1); theApp->strNewStoryName = str; upd = true; } } else if (key.sym == SDLK_RETURN || key.sym == SDLK_KP_ENTER) { theApp->inputNewStory = HCED_INPUT_THEME; // Updates the input string JDELETE(theApp->imgNewStory); SDL_Color fg = {0xff, 0xcc, 0x00, 0x00}; SDL_Color bg = {0x00, 0x00, 0x00, 0x00}; theApp->imgNewStory = theApp->fontLarge.RenderTextShaded("Select a theme", fg, bg); } if (upd) { // Updates the input string JDELETE(theApp->imgNewStory); SDL_Color fg = {0xff, 0xcc, 0x00, 0x00}; SDL_Color bg = {0x00, 0x00, 0x00, 0x00}; theApp->imgNewStory = theApp->fontLarge.RenderTextShaded((const char *)(JString("Name: ") + theApp->strNewStoryName), fg, bg); } } else if (HCED_INPUT_THEME == theApp->inputNewStory) { theApp->menuTheme->TrackKeyboard(key); } else { theApp->menuOpenStory->TrackKeyboard(key); } return; } switch (key.sym) { case SDLK_1: OnFloor(0); break; case SDLK_2: OnContFloor(0); break; case SDLK_3: OnLadder(0); break; case SDLK_4: OnBar(0); break; case SDLK_5: OnBreak(0); break; case SDLK_6: OnObject(0); break; case SDLK_7: OnRope(0); break; case SDLK_8: OnStart(0); break; case SDLK_9: OnExit(0); break; case SDLK_0: OnEnemy(0); break; case SDLK_s: OnSave(0); break; case SDLK_PAGEUP: switch (theApp->PrevLevel()) { case -1: fprintf(stderr, "HCed: Error going to previous level.\n"); break; case 1: fprintf(stderr, "HCed: This is the first level.\n"); break; case 0: default: break; } break; case SDLK_PAGEDOWN: if (theApp->NextLevel() < 0) { fprintf(stderr, "HCed: Error going to next level.\n"); } break; case SDLK_q: if (theApp->KeyMods() & KMOD_CTRL) { theApp->Exit(); } break; default: break; } } void HCed::OnKeyDown(SDL_keysym key) { switch (key.sym) { // Scrolls down the map case SDLK_UP: { HCMap *map = &theApp->level.Map(); if (map->Y() < HCED_MARGIN) { theApp->level.Pos((s32)map->X(), (s32)map->Y() + map->CellHeight()); } else if (map->Y() > HCED_MARGIN && map->Height() > float(theApp->Height() - HCED_MARGIN)) { theApp->level.Pos((s32)map->X(), HCED_MARGIN); } } break; // Scrolls up the map case SDLK_DOWN: { HCMap *map = &theApp->level.Map(); if (map->Y() + map->Height() > theApp->Height()) { theApp->level.Pos((s32)map->X(), (s32)map->Y() - map->CellHeight()); } else if (map->Y() + map->Height() > theApp->Height() && map->Height() > theApp->Height() - HCED_MARGIN) { theApp->level.Pos((s32)map->X(), HCED_MARGIN); } } break; // Scrolls right the map case SDLK_LEFT: { HCMap *map = &theApp->level.Map(); if (map->X() < HCED_MARGIN) { theApp->level.Pos((s32)map->X() + map->CellWidth(), (s32)map->Y()); } else if (map->X() > HCED_MARGIN && map->Width() > float(theApp->Width() - HCED_MARGIN)) { theApp->level.Pos(HCED_MARGIN, (s32)map->Y()); } } break; // Scrolls left the map case SDLK_RIGHT: { HCMap *map = &theApp->level.Map(); if (map->X() + map->Width() > theApp->Width()) { theApp->level.Pos((s32)map->X() - map->CellWidth(), (s32)map->Y()); } else if (map->X() + map->Width() > theApp->Width() && map->Width() > theApp->Width() - HCED_MARGIN) { theApp->level.Pos(HCED_MARGIN, (s32)map->Y()); } } break; case SDLK_KP_PLUS: { // Time to complete level up theApp->level.maxTime += 1; if (theApp->level.maxTime > 0xffff) { theApp->level.maxTime = 0xffff; } theApp->level.levelTimer.Init(theApp->level.maxTime, &theApp->fontNormal); } break; case SDLK_KP_MINUS: { // Time to complete level down theApp->level.maxTime -= 1; if (theApp->level.maxTime == 0) { theApp->level.maxTime = 1; } theApp->level.levelTimer.Init(theApp->level.maxTime, &theApp->fontNormal); } break; case SDLK_g: { if ((SDL_GetModState() & KMOD_SHIFT)) { // Map gravity down theApp->level.map.Gravity(theApp->level.map.Gravity() - 0.1f); } else { // Map gravity up theApp->level.map.Gravity(theApp->level.map.Gravity() + 0.1f); } OnGravityChange(); } break; case SDLK_x: { if ((SDL_GetModState() & KMOD_SHIFT)) { // Main character's Vx down theApp->level.character.MaxVeloccity().x -= 0.1f; } else { // Main character's Vx up theApp->level.character.MaxVeloccity().x += 0.1f; } OnCharVxChange(); } break; case SDLK_y: { if ((SDL_GetModState() & KMOD_SHIFT)) { // Main character's Vy down theApp->level.character.MaxVeloccity().y -= 0.1f; } else { // Main character's Vy up theApp->level.character.MaxVeloccity().y += 0.1f; } OnCharVyChange(); } break; case SDLK_j: { if ((SDL_GetModState() & KMOD_SHIFT)) { // Main character's max jump rows down theApp->level.character.MaxJumpRows(theApp->level.character.MaxJumpRows() - 1); } else { // Main character's max jump rows up theApp->level.character.MaxJumpRows(theApp->level.character.MaxJumpRows() + 1); } OnCharJumpRowsChange(); } break; case SDLK_r: { if ((SDL_GetModState() & KMOD_SHIFT)) { if ((SDL_GetModState() & KMOD_CTRL)) { // Decrease number of rows from the top theApp->level.map.Resize(theApp->level.map.Rows() - 1, theApp->level.map.Cols(), true, false); } else { // Decrease number of rows from the bottom theApp->level.map.Resize(theApp->level.map.Rows() - 1, theApp->level.map.Cols()); } } else { if ((SDL_GetModState() & KMOD_CTRL)) { // Increase number of rows from the top theApp->level.map.Resize(theApp->level.map.Rows() + 1, theApp->level.map.Cols(), true, false); } else { // Increase number of rows from the bottom theApp->level.map.Resize(theApp->level.map.Rows() + 1, theApp->level.map.Cols()); } } OnMapSizeChange(); } break; case SDLK_c: { if ((SDL_GetModState() & KMOD_SHIFT)) { if ((SDL_GetModState() & KMOD_CTRL)) { // Decrease number of columns from the left theApp->level.map.Resize(theApp->level.map.Rows(), theApp->level.map.Cols() - 1, false); } else { // Decrease number of columns from the right theApp->level.map.Resize(theApp->level.map.Rows(), theApp->level.map.Cols() - 1); } } else { if ((SDL_GetModState() & KMOD_CTRL)) { // Increase number of columns from the left theApp->level.map.Resize(theApp->level.map.Rows(), theApp->level.map.Cols() + 1, false); } else { // Increase number of columns from the right theApp->level.map.Resize(theApp->level.map.Rows(), theApp->level.map.Cols() + 1); } } OnMapSizeChange(); } break; default: break; } } void HCed::OnMouseUp(s32 bt, s32 x, s32 y) { switch (theApp->state) { case HCEDSTATE_FLOOR: theApp->menuFloorSubtype->TrackMouse(bt, x, y); break; case HCEDSTATE_CONTFLOOR: theApp->menuContFloorSubtype->TrackMouse(bt, x, y); break; case HCEDSTATE_LADDER: theApp->menuLadderSubtype->TrackMouse(bt, x, y); break; case HCEDSTATE_BAR: theApp->menuBarSubtype->TrackMouse(bt, x, y); break; case HCEDSTATE_BREAK: theApp->menuBreakSubtype->TrackMouse(bt, x, y); break; case HCEDSTATE_OBJECT: theApp->curObject = 0; theApp->menuObjectSubtype->TrackMouse(bt, x, y); break; case HCEDSTATE_ROPE: theApp->curRope = 0; theApp->menuRopePeriod->TrackMouse(bt, x, y); theApp->menuRopeSubtype->TrackMouse(bt, x, y); break; case HCEDSTATE_START: theApp->menuMainSubtype->TrackMouse(bt, x, y); break; case HCEDSTATE_EXIT: break; case HCEDSTATE_ENEMY: theApp->curEnemy = 0; theApp->menuEnemyType->TrackMouse(bt, x, y); theApp->menuEnemySubtype[theApp->enemyType]->TrackMouse(bt, x, y); theApp->menuEnemyParam1->TrackMouse(bt, x, y); theApp->menuEnemyParam2->TrackMouse(bt, x, y); break; case HCEDSTATE_SAVE: break; case HCEDSTATE_OPENSTORY: switch (theApp->inputNewStory) { case 0: theApp->menuOpenStory->TrackMouse(bt, x, y); break; case HCED_INPUT_THEME: theApp->menuTheme->TrackMouse(bt, x, y); break; default: break; } break; case HCEDSTATE_APPEXIT: break; default: break; } theApp->menuMain->TrackMouse(bt, x, y); } void HCed::OnMouseDown(s32 bt, s32 x, s32 y) { switch (theApp->state) { case HCEDSTATE_OBJECT: theApp->curObject = 0; HCObject *obj; // Checks for objects bellow the mouse cursor for (s32 i = 0; i < theApp->level.numObjects; ++i) { obj = theApp->level.objects[i]; if (theApp->MouseX() > obj->X() - obj->Normal().MaxW()/2 && theApp->MouseX() < obj->X() + obj->Normal().MaxW()/2 && theApp->MouseY() > obj->Y() - obj->Normal().MaxH() && theApp->MouseY() < obj->Y()) { theApp->curObject = theApp->level.objects[i]; } } break; case HCEDSTATE_ROPE: theApp->curRope = 0; // Checks for ropes bellow the mouse cursor for (s32 i = 0; i < theApp->level.numRopes; ++i) { if (theApp->MouseX() > (theApp->level.ropes[i])->X() - theApp->level.Map().CellWidth()/2 && theApp->MouseX() < (theApp->level.ropes[i])->X() + theApp->level.Map().CellWidth()/2 && theApp->MouseY() > (theApp->level.ropes[i])->Y() && theApp->MouseY() < (theApp->level.ropes[i])->Y() + theApp->level.Map().CellHeight()) { theApp->curRope = theApp->level.ropes[i]; } } if (theApp->curRope) { // Sets the period if (theApp->ropePeriod != theApp->curRope->Period()) { theApp->curRope->Init(theApp->ropePeriod, theApp->curRope->Amplitude(), theApp->curRope->Length(), theApp->level.Theme()); } } break; case HCEDSTATE_ENEMY: theApp->curEnemy = 0; // Checks for enemies bellow the mouse cursor for (s32 i = 0; i < theApp->level.numEnemies; ++i) { if (theApp->MouseX() > (theApp->level.enemies[i])->X() - (theApp->level.enemies[i]->states[HCCS_STOP].MaxW()/2) && theApp->MouseX() < (theApp->level.enemies[i])->X() + (theApp->level.enemies[i]->states[HCCS_STOP].MaxW()/2) && theApp->MouseY() > (theApp->level.enemies[i])->Y() - (theApp->level.enemies[i]->states[HCCS_STOP].MaxH()/2) && theApp->MouseY() < (theApp->level.enemies[i])->Y()) { theApp->curEnemy = theApp->level.enemies[i]; } } break; default: break; } } int HCed::ParseArg(char *args[], int argc) { printf("Parsing %d args %s\n", argc, args[0]); if (args[0][0] != '-') { // Argument without score, treat it as the story name storyName = args[0]; if (argc < 2) { levelNumber = 1; return 0; // no aditional arguments needed } levelNumber = atoi(args[1]); if (levelNumber <= 0) { levelNumber = 1; fprintf(stderr, "HCed: The level number must be greater than 0, defaulting to 1.\n"); } return 1; // 1 aditional argument used } switch (args[0][1]) { // '-t themeName' option case 't': if (argc<2) return -2; themeName = args[1]; return 1; // '-r numRows' option case 'r': if (argc<2) return -2; defRows = atoi(args[1]); if (defRows <= 0) { defRows = 10; } return 1; // '-c numCols' option case 'c': if (argc<2) return -2; defCols = atoi(args[1]); if (defCols <= 0) { defCols = 10; } return 1; } return JApp::ParseArg(args, argc); } void HCed::ParseArgs(s32 argc, char **argv) { JApp::ParseArgs(argc, argv); char str[4096]; #ifndef _WIN32 char *home; home = getenv("HOME"); if (home != NULL) { snprintf(str, sizeof(str), "%s/.holotz-castle", home); mkdir(str, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); snprintf(str, sizeof(str), "%s/.holotz-castle/stories", home); mkdir(str, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); snprintf(str, sizeof(str), "%s/.holotz-castle/stories/%s", home, storyName.Str()); mkdir(str, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); } #endif if (!HCUtil::FindFile("stories")) { fprintf(stderr, "Directory 'stories' not found. Check manual.\n"); exit(-1); } else { // Assigns this directory as the default working directory storyDir = HCUtil::File(); storyDir += "/"; } if (levelNumber == -1) { // Selects the next file name from the requested story levelNumber = 1; snprintf(str, sizeof(str), "%s%s/level%03d.hlv", storyDir.Str(), storyName.Str(), levelNumber); while (JFile::Exists(str)) { snprintf(str, sizeof(str), "%s%s/level%03d.hlv", storyDir.Str(), storyName.Str(), ++levelNumber); } filename = str; } else { // Sets the name of the requested story and level number. snprintf(str, sizeof(str), "%s%s/level%03d.hlv", storyDir.Str(), storyName.Str(), levelNumber); filename = str; } OnFilenameChange(); } HCed::HCed() : JApp("HCed v1.1", HCED_REFAPPWIDTH, HCED_REFAPPHEIGHT, false) { state = HCEDSTATE_FLOOR; SetOnMouseUp(&OnMouseUp); SetOnMouseDown(&OnMouseDown); SetOnKeyUp(&OnKeyUp); SetOnKeyDown(&OnKeyDown); doInput = true; curObject = 0; curRope = 0; curEnemy = 0; defRows = defCols = 10; enemyParam1 = 1; enemyParam2 = 1; imgNewStory = 0; imgGravity = 0; imgCharVx = 0; imgCharVy = 0; imgCharJumpRows = 0; imgMapSize = 0; levelNumber = -1; menuMain = 0; menuEnemyType = 0; menuEnemyParam1 = 0; menuEnemyParam2 = 0; menuOpenStory = 0; menuTheme = 0; menuRopePeriod = 0; menuMainSubtype = 0; menuBreakSubtype = 0; menuObjectSubtype = 0; menuFloorSubtype = 0; menuContFloorSubtype = 0; menuBarSubtype = 0; menuLadderSubtype = 0; menuRopeSubtype = 0; appBackColor = 0; for (s32 i = 0; i < HCENEMYTYPE_COUNT; ++i) { menuEnemySubtype[i] = 0; } storyName = "unknown"; themeName = "default"; inputNewStory = 0; } s32 HCed::LoadLevel() { // If the level exists, loads it bool ok = false; // Sets the timer font level.SetTimerFont(&fontNormal); if (JFile::Exists(filename)) { JRW f; if (f.Create(filename, "rb")) { if (0 == level.Load(f, filename)) { if (InitLoadedLevel()) { ok = true; } else { fprintf(stderr, "Could not init the loaded level.\n"); } } else { fprintf(stderr, "Could not load level from %s.\n", filename.Str()); } } else { fprintf(stderr, "Could not open file %s for reading.\n", filename.Str()); } } else { fprintf(stderr, "HCed: File %s doesn't exist, creating a new level.\n", filename.Str()); } // If an error occurred or the file didn't exist, tries to load the default level/theme if (!ok) { if (!InitDefaultLevel()) { fprintf(stderr, "Could not init default level.\n"); return -1; } } // Places the level level.Pos(HCED_MARGIN, HCED_MARGIN); // Prepares the current gravity and main character's parameters to be shown OnGravityChange(); OnCharVxChange(); OnCharVyChange(); OnCharJumpRowsChange(); OnMapSizeChange(); // Types and theme subtypes enemyType = HCENEMYTYPE_BALL; enemySubtype = 0; floorSubtype = 0; contFloorSubtype = 0; breakSubtype = 0; barSubtype = 0; ladderSubtype = 0; objectSubtype = 0; ropeSubtype = 0; ropePeriod = 0; // Re-initializes level/theme dependant menus return InitLevelMenus(); } s32 HCed::InitLevelMenus() { imgMouse = 0; // Inits the main character subtype menu if (!InitMainSubtypeMenu()) { fprintf(stderr, "Failed to init main character's subtype menu.\n"); return -1; } // Inits the break subtypes menu if (!InitBreakSubtypeMenu()) { fprintf(stderr, "Failed to init break subtypes menu.\n"); return -1; } // Inits the object subtypes menu if (!InitObjectSubtypeMenu()) { fprintf(stderr, "Failed to init object subtypes menu.\n"); return -1; } // Inits the enemy representations menu if (!InitEnemySubtypeMenu()) { fprintf(stderr, "Failed to init enemy subtypes menu.\n"); return -1; } // Inits the floor subtypes menu if (!InitFloorSubtypeMenu()) { fprintf(stderr, "Failed to init floor subtypes menu.\n"); return false; } // Inits the continuous floor subtypes menu if (!InitContFloorSubtypeMenu()) { fprintf(stderr, "Failed to init floor subtypes menu.\n"); return false; } // Inits the bar subtypes menu if (!InitBarSubtypeMenu()) { fprintf(stderr, "Failed to init bar subtypes menu.\n"); return false; } // Inits the ladder subtypes menu if (!InitLadderSubtypeMenu()) { fprintf(stderr, "Failed to init ladder subtypes menu.\n"); return false; } // Inits the rope subtypes menu if (!InitRopeSubtypeMenu()) { fprintf(stderr, "Failed to init rope subtypes menu.\n"); return false; } // Inits the open story menu if (!InitOpenStoryMenu()) { fprintf(stderr, "Failed to init stories menu.\n"); return false; } // Inits the theme subtypes menu if (!InitThemeMenu()) { fprintf(stderr, "Failed to init stories menu.\n"); return false; } return 0; } s32 HCed::NextLevel() { char str[256]; // Sets the name of the story with the next level number. snprintf(str, sizeof(str), "%s%s/level%03d.hlv", storyDir.Str(), storyName.Str(), ++levelNumber); filename = str; if (0 == LoadLevel()) { themeName = level.Theme().Name(); OnFilenameChange(); if (0 == InitLevelMenus()) { OnFloor(this); return 0; } } return -1; } s32 HCed::PrevLevel() { if (levelNumber > 1) { char str[256]; // Sets the name of the story with the next level number. snprintf(str, sizeof(str), "%s%s/level%03d.hlv", storyDir.Str(), storyName.Str(), --levelNumber); filename = str; if (0 == LoadLevel()) { OnFilenameChange(); if (0 == InitLevelMenus()) { OnFloor(this); return 0; } } return -1; } // No more levels before return 1; } s32 HCed::NewLevel() { if (0 == LoadLevel()) { OnFilenameChange(); if (0 == InitLevelMenus()) { OnFloor(this); return 0; } } return -1; } bool HCed::Init(int argc, char **argv) { // Parse standard JApp args and HCed args ParseArgs(argc, argv); // Inits base system if (!JApp::Init()) { fprintf(stderr, "Failed to init base system. Check manual.\n"); return false; } // Loads preferences // if (0 != prefs.Load()) // { // fprintf(stderr, "Error loading preferences. Check manual.\n"); // } // In edition mode the time must be that of the highest level of difficulty prefs.Difficulty(HCPREFERENCES_HARD); // Initializes fonts if (!JFile::Exists(HC_DATA_DIR "font/font.ttf")) { fprintf(stderr, "Could not find data directory.\n\n" "Posible solutions are:\n" " - Open folder JLib-1.3.1/Games/HolotzCastle and double.\n" " click 'holotz-castle' application icon.\n" " - Maybe you did 'make' but didn't do 'make install'.\n" " - Else, try to reinstall the game.\n"); return false; } if (!fontSmall.Open(HC_DATA_DIR "font/font.ttf", 12) || !fontNormal.Open(HC_DATA_DIR "font/font.ttf", 18) || !fontLarge.Open(HC_DATA_DIR "font/font.ttf", 24)) { fprintf(stderr, "Couldn't open fonts. Check manual.\n"); return false; } // Loads the level if (0 != LoadLevel()) { fprintf(stderr, "Couldn't load level. Check manual.\n"); return false; } // Inits the main menu if (!InitMainMenu()) { fprintf(stderr, "Failed to init main menu.\n"); return false; } // Inits the level dependant menus if (0 != InitLevelMenus()) { fprintf(stderr, "Failed to init level menus.\n"); return false; } // Inits the rope periods menu if (!InitRopePeriodMenu()) { fprintf(stderr, "Failed to init rope periods menu.\n"); return false; } // Inits the enemy types menu if (!InitEnemyTypeMenu()) { fprintf(stderr, "Failed to init enemy types menu.\n"); return false; } // Inits the enemy param 1 menu if (!InitEnemyParam1Menu()) { fprintf(stderr, "Failed to init enemy param 1 menu.\n"); return false; } // Inits the enemy param 2 menu if (!InitEnemyParam2Menu()) { fprintf(stderr, "Failed to init enemy param 2 menu.\n"); return false; } appBackColor = SDL_MapRGB(screen->format, 0x00, 0x00, 0x07); OnFloor(this); return true; } bool HCed::InitLoadedLevel() { // Nothing for the moment return true; } bool HCed::InitDefaultLevel() { // Destroy a previous level level.Destroy(); // Sets the timer font level.SetTimerFont(&fontNormal); // Loads the theme printf("Using theme %s\n", themeName.Str()); if (!level.Theme().Load(themeName.Str())) { fprintf(stderr, "Error loading theme.\n"); return false; } // Initializes the map level.Map().Init(level.Theme()); level.Map().Resize(defRows, defCols); level.Map().CellWidth(level.Theme().Floor(0).Width()); level.Map().CellHeight(level.Theme().Floor(0).Height()); // Initializes the character level.character.Pos(20, 20); if (!level.Init()) { fprintf(stderr, "Error initializing level.\n"); return false; } return true; } bool HCed::InitMainMenu() { JDELETE(menuMain); menuMain = new JImageMenu; char str[256]; for (s32 i = 0; i < HCEDSTATE_COUNT; ++i) { snprintf(str, sizeof(str), HCED_DATA_DIR "MainMenu/%d.tga", i); //fprintf(stderr, "Loading UI Item " HCED_DATA_DIR "MainMenu/%d.tga\n", i); if (!imgMenu[i].Load(str)) { return false; } snprintf(str, sizeof(str), HCED_DATA_DIR "MainMenu/%d_hi.tga", i); //fprintf(stderr, "Loading UI Item " HCED_DATA_DIR "MainMenu/%d_hi.tga\n", i); if (!imgMenuOver[i].Load(str)) { return false; } } // Adds the options JTree::Iterator *it = menuMain->Menu(); it->Data(new JImageMenuEntry(&imgMenu[HCEDSTATE_FLOOR], &imgMenuOver[HCEDSTATE_FLOOR], &OnFloor, this)); it->AddNodeGo(new JImageMenuEntry(&imgMenu[HCEDSTATE_CONTFLOOR], &imgMenuOver[HCEDSTATE_CONTFLOOR], &OnContFloor, this)); it->AddNodeGo(new JImageMenuEntry(&imgMenu[HCEDSTATE_LADDER], &imgMenuOver[HCEDSTATE_LADDER], &OnLadder, this)); it->AddNodeGo(new JImageMenuEntry(&imgMenu[HCEDSTATE_BAR], &imgMenuOver[HCEDSTATE_BAR], &OnBar, this)); it->AddNodeGo(new JImageMenuEntry(&imgMenu[HCEDSTATE_BREAK], &imgMenuOver[HCEDSTATE_BREAK], &OnBreak, this)); it->AddNodeGo(new JImageMenuEntry(&imgMenu[HCEDSTATE_OBJECT], &imgMenuOver[HCEDSTATE_OBJECT], &OnObject, this)); it->AddNodeGo(new JImageMenuEntry(&imgMenu[HCEDSTATE_ROPE], &imgMenuOver[HCEDSTATE_ROPE], &OnRope, this)); it->AddNodeGo(new JImageMenuEntry(&imgMenu[HCEDSTATE_START], &imgMenuOver[HCEDSTATE_START], &OnStart, this)); it->AddNodeGo(new JImageMenuEntry(&imgMenu[HCEDSTATE_EXIT], &imgMenuOver[HCEDSTATE_EXIT], &OnExit, this)); it->AddNodeGo(new JImageMenuEntry(&imgMenu[HCEDSTATE_ENEMY], &imgMenuOver[HCEDSTATE_ENEMY], &OnEnemy, this)); it->AddNodeGo(new JImageMenuEntry(&imgMenu[HCEDSTATE_SAVE], &imgMenuOver[HCEDSTATE_SAVE], &OnSave, this)); it->AddNodeGo(new JImageMenuEntry(&imgMenu[HCEDSTATE_OPENSTORY], &imgMenuOver[HCEDSTATE_OPENSTORY], &OnOpenStory, this)); it->AddNodeGo(new JImageMenuEntry(&imgMenu[HCEDSTATE_APPEXIT], &imgMenuOver[HCEDSTATE_APPEXIT], &OnAppExit, this)); it->Root(); JImageMenuConfig cfg; cfg.layout = JIMAGEMENU_LEFT; cfg.trackMouse = true; cfg.trackKeyboard = false; cfg.autoEnter = false; if (!menuMain->Init(cfg)) { return false; } menuMain->Pos(0, 0); menuMain->Menu()->Root(); return true; } bool HCed::InitMainSubtypeMenu() { DestroyMainSubtypeMenu(); menuMainSubtype = new JImageMenu; // Adds the options JTree::Iterator *it = menuMainSubtype->Menu(); it->Root(); it->Data(new JImageMenuEntry(new JImage(*((JImage*)level.theme.MainChar(0)[HCCDT_STOP].Frame(0))), new JImage(*((JImage*)level.theme.MainChar(0)[HCCDT_LEFT].Frame(0))), &OnMainSubtype, (void *)0)); // Adds the subtypes for (s32 i = 1; i < level.theme.NumMainChars(); ++i) { it->AddNodeGo(new JImageMenuEntry(new JImage(*((JImage*)level.theme.MainChar(i)[HCCDT_STOP].Frame(0))), new JImage(*((JImage*)level.theme.MainChar(i)[HCCDT_LEFT].Frame(0))), &OnMainSubtype, JCAST_S32_TO_VOIDPTR(i))); } it->Root(); JImageMenuConfig cfg; cfg.layout = JIMAGEMENU_SAMELINE; cfg.trackMouse = true; cfg.trackKeyboard = false; cfg.autoEnter = false; menuMainSubtype->Pos(HCED_MARGIN, 0); if (!menuMainSubtype->Init(cfg)) { return false; } menuMainSubtype->Menu()->Root(); return true; } bool HCed::InitFloorSubtypeMenu() { JDELETE(menuFloorSubtype); menuFloorSubtype = new JImageMenu; // Adds the options JTree::Iterator *it = menuFloorSubtype->Menu(); // At least we must have this it->Data(new JImageMenuEntry(&level.Theme().Floor(0), &level.Theme().Floor(0), &OnFloorSubtype, (void *)0)); // Adds the rest of subtypes for (s32 i = 1; i < level.Theme().NumFloors(); ++i) { it->AddNodeGo(new JImageMenuEntry(&level.Theme().Floor(i), &level.Theme().Floor(i), &OnFloorSubtype, JCAST_S32_TO_VOIDPTR(i))); } it->Root(); JImageMenuConfig cfg; cfg.layout = JIMAGEMENU_SAMELINE; cfg.trackMouse = true; cfg.trackKeyboard = false; cfg.autoEnter = false; if (!menuFloorSubtype->Init(cfg)) { fprintf(stderr, "Error\n"); return false; } menuFloorSubtype->Pos(HCED_MARGIN, 0); menuFloorSubtype->Menu()->Root(); return true; } bool HCed::InitContFloorSubtypeMenu() { JDELETE(menuContFloorSubtype); menuContFloorSubtype = new JImageMenu; // Adds the options JTree::Iterator *it = menuContFloorSubtype->Menu(); // At least we must have this it->Data(new JImageMenuEntry(&level.Theme().ContFloor(0)[HCFDT_I], &level.Theme().ContFloor(0)[HCFDT_I], &OnContFloorSubtype, (void *)0)); // Adds the rest of subtypes for (s32 i = 1; i < level.Theme().NumContFloors(); ++i) { it->AddNodeGo(new JImageMenuEntry(&level.Theme().ContFloor(i)[HCFDT_I], &level.Theme().ContFloor(i)[HCFDT_I], &OnContFloorSubtype, JCAST_S32_TO_VOIDPTR(i))); } it->Root(); JImageMenuConfig cfg; cfg.layout = JIMAGEMENU_SAMELINE; cfg.trackMouse = true; cfg.trackKeyboard = false; cfg.autoEnter = false; if (!menuContFloorSubtype->Init(cfg)) { fprintf(stderr, "Error\n"); return false; } menuContFloorSubtype->Pos(HCED_MARGIN, 0); menuContFloorSubtype->Menu()->Root(); return true; } bool HCed::InitBreakSubtypeMenu() { DestroyBreakSubtypeMenu(); menuBreakSubtype = new JImageMenu; // Adds the options JTree::Iterator *it = menuBreakSubtype->Menu(); it->Root(); // At least we must have this it->Data(new JImageMenuEntry(new JImage(*((JImage*)level.Theme().Break(0)[HCBDT_NORMAL].Frame(0))), new JImage(*((JImage*)level.Theme().Break(0)[HCBDT_NORMAL].Frame(0))), &OnBreakSubtype, (void *)0)); // Adds the rest of subtypes for (s32 i = 1; i < level.Theme().NumBreaks(); ++i) { it->AddNodeGo(new JImageMenuEntry(new JImage(*((JImage*)level.Theme().Break(i)[HCBDT_NORMAL].Frame(0))), new JImage(*((JImage*)level.Theme().Break(i)[HCBDT_NORMAL].Frame(0))), &OnBreakSubtype, JCAST_S32_TO_VOIDPTR(i))); } it->Root(); JImageMenuConfig cfg; cfg.layout = JIMAGEMENU_SAMELINE; cfg.trackMouse = true; cfg.trackKeyboard = false; cfg.autoEnter = false; menuBreakSubtype->Pos(HCED_MARGIN, 0); if (!menuBreakSubtype->Init(cfg)) { return false; } menuBreakSubtype->Menu()->Root(); return true; } bool HCed::InitBarSubtypeMenu() { JDELETE(menuBarSubtype); menuBarSubtype = new JImageMenu; // Adds the options JTree::Iterator *it = menuBarSubtype->Menu(); // At least we must have this it->Data(new JImageMenuEntry(&level.Theme().Bar(0), &level.Theme().Bar(0), &OnBarSubtype, (void *)0)); // Adds the rest of subtypes for (s32 i = 1; i < level.Theme().NumBars(); ++i) { it->AddNodeGo(new JImageMenuEntry(&level.Theme().Bar(i), &level.Theme().Bar(i), &OnBarSubtype, JCAST_S32_TO_VOIDPTR(i))); } it->Root(); JImageMenuConfig cfg; cfg.layout = JIMAGEMENU_SAMELINE; cfg.trackMouse = true; cfg.trackKeyboard = false; cfg.autoEnter = false; menuBarSubtype->Pos(HCED_MARGIN, 0); if (!menuBarSubtype->Init(cfg)) { return false; } menuBarSubtype->Menu()->Root(); return true; } bool HCed::InitLadderSubtypeMenu() { JDELETE(menuLadderSubtype); menuLadderSubtype = new JImageMenu; // Adds the options JTree::Iterator *it = menuLadderSubtype->Menu(); // At least we must have this it->Data(new JImageMenuEntry(&level.Theme().Ladder(0), &level.Theme().Ladder(0), &OnLadderSubtype, (void *)0)); // Adds the rest of subtypes for (s32 i = 1; i < level.Theme().NumLadders(); ++i) { it->AddNodeGo(new JImageMenuEntry(&level.Theme().Ladder(i), &level.Theme().Ladder(i), &OnLadderSubtype, JCAST_S32_TO_VOIDPTR(i))); } it->Root(); JImageMenuConfig cfg; cfg.layout = JIMAGEMENU_SAMELINE; cfg.trackMouse = true; cfg.trackKeyboard = false; cfg.autoEnter = false; menuLadderSubtype->Pos(HCED_MARGIN, 0); if (!menuLadderSubtype->Init(cfg)) { return false; } menuLadderSubtype->Menu()->Root(); return true; } bool HCed::InitObjectSubtypeMenu() { DestroyObjectSubtypeMenu(); menuObjectSubtype = new JImageMenu; // Adds the options JTree::Iterator *it = menuObjectSubtype->Menu(); it->Root(); // At least we must have this it->Data(new JImageMenuEntry(new JImage(*((JImage*)level.Theme().Object(0)[HCODT_NORMAL].Frame(0))), new JImage(*((JImage*)level.Theme().Object(0)[HCODT_ACQUIRED].Frame(0))), &OnObjectSubtype, (void *)0)); // Adds the rest of subtypes for (s32 i = 1; i < level.Theme().NumObjects(); ++i) { it->AddNodeGo(new JImageMenuEntry(new JImage(*((JImage*)level.Theme().Object(i)[HCODT_NORMAL].Frame(0))), new JImage(*((JImage*)level.Theme().Object(i)[HCODT_ACQUIRED].Frame(0))), &OnObjectSubtype, JCAST_S32_TO_VOIDPTR(i))); } it->Root(); JImageMenuConfig cfg; cfg.layout = JIMAGEMENU_SAMELINE; cfg.trackMouse = true; cfg.trackKeyboard = false; cfg.autoEnter = false; menuObjectSubtype->Pos(HCED_MARGIN, 0); if (!menuObjectSubtype->Init(cfg)) { return false; } menuObjectSubtype->Menu()->Root(); return true; } bool HCed::InitRopeSubtypeMenu() { JDELETE(menuRopeSubtype); menuRopeSubtype = new JImageMenu; // Adds the options JTree::Iterator *it = menuRopeSubtype->Menu(); // At least we must have this it->Data(new JImageMenuEntry(&level.Theme().Rope(0)[HCRDT_TOP], &level.Theme().Rope(0)[HCRDT_TOP], &OnRopeSubtype, (void *)0)); // Adds the rest of subtypes for (s32 i = 1; i < level.Theme().NumRopes(); ++i) { it->AddNodeGo(new JImageMenuEntry(&level.Theme().Rope(i)[HCRDT_TOP], &level.Theme().Rope(i)[HCRDT_TOP], &OnRopeSubtype, JCAST_S32_TO_VOIDPTR(i))); } it->Root(); JImageMenuConfig cfg; cfg.layout = JIMAGEMENU_SAMELINE; cfg.trackMouse = true; cfg.trackKeyboard = false; cfg.autoEnter = false; menuRopeSubtype->Pos(HCED_MARGIN, 0); if (!menuRopeSubtype->Init(cfg)) { return false; } menuRopeSubtype->Menu()->Root(); return true; } bool HCed::InitRopePeriodMenu() { JDELETE(menuRopePeriod); menuRopePeriod = new JTextMenu; // Crea el men JTree::Iterator *it = menuRopePeriod->Menu(); it->Data(new JTextMenuEntry("1", &OnRopePeriod, (void *)1)); it->AddNodeGo(new JTextMenuEntry("2", &OnRopePeriod, (void *)2)); it->AddNodeGo(new JTextMenuEntry("3", &OnRopePeriod, (void *)3)); it->AddNodeGo(new JTextMenuEntry("4", &OnRopePeriod, (void *)4)); it->AddNodeGo(new JTextMenuEntry("5", &OnRopePeriod, (void *)5)); it->AddNodeGo(new JTextMenuEntry("6", &OnRopePeriod, (void *)6)); it->AddNodeGo(new JTextMenuEntry("7", &OnRopePeriod, (void *)7)); it->AddNodeGo(new JTextMenuEntry("8", &OnRopePeriod, (void *)8)); it->AddNodeGo(new JTextMenuEntry("9", &OnRopePeriod, (void *)9)); it->AddNodeGo(new JTextMenuEntry("10", &OnRopePeriod, (void *)10)); it->Root(); JTextMenuConfig cfg; cfg.font = &fontSmall; cfg.color.r = 0x00; cfg.color.g = 0x00; cfg.color.b = 0x00; cfg.backColor.r = 0xff; cfg.backColor.g = 0xcc; cfg.backColor.b = 0x00; cfg.hiColor.r = 0xff; cfg.hiColor.g = 0xff; cfg.hiColor.b = 0xff; cfg.hiBackColor.r = 0xff; cfg.hiBackColor.g = 0xdd; cfg.hiBackColor.b = 0x00; cfg.renderMode = JTEXTMENU_SHADED; cfg.layout = JTEXTMENU_SAMELINE; cfg.trackKeyboard = true; cfg.trackMouse = true; cfg.autoEnter = true; if (!menuRopePeriod->Init(cfg)) { return false; } menuRopePeriod->Pos(Width() - (12 * HCED_MARGIN), 0); menuRopePeriod->Menu()->Root(); return true; } bool HCed::InitEnemySubtypeMenu() { DestroyEnemySubtypeMenu(); for (s32 n = 0; n < HCENEMYTYPE_COUNT; ++n) { menuEnemySubtype[n] = new JImageMenu; // Adds the options JTree::Iterator *it = menuEnemySubtype[n]->Menu(); it->Root(); it->Data(new JImageMenuEntry(new JImage(*((JImage*)GetEnemySprites((HCEnemyType)n, 0)[HCCDT_STOP].Frame(0))), new JImage(*((JImage*)GetEnemySprites((HCEnemyType)n, 0)[HCCDT_STOP].Frame(0))), &OnEnemySubtype, (void *)0)); // Adds the subtypes for (s32 i = 1; i < GetNumEnemySprites((HCEnemyType)n); ++i) { // Scales the normal and highlighted images to fit 20 and 32 pixels, respectively it->AddNodeGo(new JImageMenuEntry(new JImage(*((JImage*)GetEnemySprites((HCEnemyType)n, i)[HCCDT_STOP].Frame(0))), new JImage(*((JImage*)GetEnemySprites((HCEnemyType)n, i)[HCCDT_STOP].Frame(0))), &OnEnemySubtype, JCAST_S32_TO_VOIDPTR(i))); } it->Root(); JImageMenuConfig cfg; cfg.layout = JIMAGEMENU_SAMELINE; cfg.trackMouse = true; cfg.trackKeyboard = false; cfg.autoEnter = false; menuEnemySubtype[n]->Pos(HCED_MARGIN, 0); if (!menuEnemySubtype[n]->Init(cfg)) { return false; } menuEnemySubtype[n]->Menu()->Root(); } return true; } bool HCed::InitEnemyTypeMenu() { char str[256]; if (!menuEnemyType) { for (s32 i = 0; i < HCENEMYTYPE_COUNT; ++i) { snprintf(str, sizeof(str), HCED_DATA_DIR "EnemyMenu/%d.tga", i); //fprintf(stderr, "Loading UI Item " HCED_DATA_DIR "EnemyMenu/%d.tga\n", i); if (!imgEnemy[i].Load(str)) { return false; } snprintf(str, sizeof(str), HCED_DATA_DIR "EnemyMenu/%d_hi.tga", i); //fprintf(stderr, "Loading UI Item " HCED_DATA_DIR "EnemyMenu/%d_hi.tga\n", i); if (!imgEnemyOver[i].Load(str)) { return false; } } } JDELETE(menuEnemyType); menuEnemyType = new JImageMenu; // Adds the options JTree::Iterator *it = menuEnemyType->Menu(); it->Data(new JImageMenuEntry(&imgEnemy[HCENEMYTYPE_BALL], &imgEnemyOver[HCENEMYTYPE_BALL], &OnEnemyType, (void *)HCENEMYTYPE_BALL)); it->AddNodeGo(new JImageMenuEntry(&imgEnemy[HCENEMYTYPE_RANDOM], &imgEnemyOver[HCENEMYTYPE_RANDOM], &OnEnemyType, (void *)HCENEMYTYPE_RANDOM)); it->AddNodeGo(new JImageMenuEntry(&imgEnemy[HCENEMYTYPE_STATIC], &imgEnemyOver[HCENEMYTYPE_STATIC], &OnEnemyType, (void *)HCENEMYTYPE_STATIC)); it->AddNodeGo(new JImageMenuEntry(&imgEnemy[HCENEMYTYPE_MAKER], &imgEnemyOver[HCENEMYTYPE_MAKER], &OnEnemyType, (void *)HCENEMYTYPE_MAKER)); it->AddNodeGo(new JImageMenuEntry(&imgEnemy[HCENEMYTYPE_CHASER], &imgEnemyOver[HCENEMYTYPE_CHASER], &OnEnemyType, (void *)HCENEMYTYPE_CHASER)); it->Root(); JImageMenuConfig cfg; cfg.layout = JIMAGEMENU_SAMELINE; cfg.trackMouse = true; cfg.trackKeyboard = false; cfg.autoEnter = false; menuEnemyType->Pos(Width() - (5 * HCED_MARGIN), 0); if (!menuEnemyType->Init(cfg)) { return false; } menuEnemyType->Menu()->Root(); return true; } bool HCed::InitEnemyParam1Menu() { JDELETE(menuEnemyParam1); menuEnemyParam1 = new JTextMenu; // Crea el men JTree::Iterator *it = menuEnemyParam1->Menu(); it->Data(new JTextMenuEntry(" 1 ", &OnEnemyParam1, (void *)1)); it->AddNodeGo(new JTextMenuEntry(" 2 ", &OnEnemyParam1, (void *)2)); it->AddNodeGo(new JTextMenuEntry(" 3 ", &OnEnemyParam1, (void *)3)); it->AddNodeGo(new JTextMenuEntry(" 4 ", &OnEnemyParam1, (void *)4)); it->AddNodeGo(new JTextMenuEntry(" 5 ", &OnEnemyParam1, (void *)5)); it->AddNodeGo(new JTextMenuEntry(" 6 ", &OnEnemyParam1, (void *)6)); it->AddNodeGo(new JTextMenuEntry(" 7 ", &OnEnemyParam1, (void *)7)); it->AddNodeGo(new JTextMenuEntry(" 8 ", &OnEnemyParam1, (void *)8)); it->AddNodeGo(new JTextMenuEntry(" 9 ", &OnEnemyParam1, (void *)9)); it->AddNodeGo(new JTextMenuEntry(" 10 ", &OnEnemyParam1, (void *)10)); it->Root(); JTextMenuConfig cfg; cfg.font = &fontSmall; cfg.color.r = 0x00; cfg.color.g = 0x00; cfg.color.b = 0x00; cfg.backColor.r = 0x00; cfg.backColor.g = 0x00; cfg.backColor.b = 0xcc; cfg.hiColor.r = 0xff; cfg.hiColor.g = 0xff; cfg.hiColor.b = 0xff; cfg.hiBackColor.r = 0x00; cfg.hiBackColor.g = 0x00; cfg.hiBackColor.b = 0xcc; cfg.renderMode = JTEXTMENU_SHADED; cfg.layout = JTEXTMENU_SAMELINE; cfg.trackKeyboard = true; cfg.trackMouse = true; cfg.autoEnter = true; if (!menuEnemyParam1->Init(cfg)) { return false; } menuEnemyParam1->Pos(Width() - (20 * 20), 32); menuEnemyParam1->Menu()->Root(); return true; } bool HCed::InitEnemyParam2Menu() { JDELETE(menuEnemyParam2); menuEnemyParam2 = new JTextMenu; // Crea el men JTree::Iterator *it = menuEnemyParam2->Menu(); it->Data(new JTextMenuEntry(" 1 ", &OnEnemyParam2, (void *)1)); it->AddNodeGo(new JTextMenuEntry(" 2 ", &OnEnemyParam2, (void *)2)); it->AddNodeGo(new JTextMenuEntry(" 3 ", &OnEnemyParam2, (void *)3)); it->AddNodeGo(new JTextMenuEntry(" 4 ", &OnEnemyParam2, (void *)4)); it->AddNodeGo(new JTextMenuEntry(" 5 ", &OnEnemyParam2, (void *)5)); it->AddNodeGo(new JTextMenuEntry(" 6 ", &OnEnemyParam2, (void *)6)); it->AddNodeGo(new JTextMenuEntry(" 7 ", &OnEnemyParam2, (void *)7)); it->AddNodeGo(new JTextMenuEntry(" 8 ", &OnEnemyParam2, (void *)8)); it->AddNodeGo(new JTextMenuEntry(" 9 ", &OnEnemyParam2, (void *)9)); it->AddNodeGo(new JTextMenuEntry(" 10 ", &OnEnemyParam2, (void *)10)); it->Root(); JTextMenuConfig cfg; cfg.font = &fontSmall; cfg.color.r = 0x00; cfg.color.g = 0x00; cfg.color.b = 0x00; cfg.backColor.r = 0x00; cfg.backColor.g = 0xcc; cfg.backColor.b = 0x00; cfg.hiColor.r = 0xff; cfg.hiColor.g = 0xff; cfg.hiColor.b = 0xff; cfg.hiBackColor.r = 0x00; cfg.hiBackColor.g = 0xcc; cfg.hiBackColor.b = 0x00; cfg.renderMode = JTEXTMENU_SHADED; cfg.layout = JTEXTMENU_SAMELINE; cfg.trackKeyboard = true; cfg.trackMouse = true; cfg.autoEnter = true; if (!menuEnemyParam2->Init(cfg)) { return false; } menuEnemyParam2->Pos(Width() - (10 * 20), 32); menuEnemyParam2->Menu()->Root(); return true; } bool HCed::InitOpenStoryMenu() { HCUtil::FindStories(true); JDELETE(menuOpenStory); menuOpenStory = new JTextMenu; // Crea el men JTree::Iterator *it = menuOpenStory->Menu(); if (HCUtil::Stories().size() > 0) { it->Data(new JTextMenuEntry(HCUtil::Stories()[0], &OnSelectStory, (void *)0)); for (u32 i = 1; i < HCUtil::Stories().size(); ++i) { it->AddNodeGo(new JTextMenuEntry(HCUtil::Stories()[i], &OnSelectStory, JCAST_S32_TO_VOIDPTR(i))); } it->AddNodeGo(new JTextMenuEntry("<------>", &OnSelectStory, (void *)-1)); } else { it->Data(new JTextMenuEntry("<------>", &OnSelectStory, (void *)-1)); } it->Root(); JTextMenuConfig cfg; cfg.font = &fontSmall; cfg.lineDistance = 3; cfg.color.r = 0xff; cfg.color.g = 0xcc; cfg.color.b = 0x00; cfg.backColor.r = 0x00; cfg.backColor.g = 0x00; cfg.backColor.b = 0x00; cfg.hiColor.r = 0xff; cfg.hiColor.g = 0xff; cfg.hiColor.b = 0xff; cfg.hiBackColor.r = 0x00; cfg.hiBackColor.g = 0x00; cfg.hiBackColor.b = 0x00; cfg.renderMode = JTEXTMENU_BLENDED; cfg.layout = JTEXTMENU_CENTER; cfg.layoutV = JTEXTMENU_CENTER; cfg.trackKeyboard = true; cfg.trackMouse = true; cfg.autoEnter = false; if (!menuOpenStory->Init(cfg)) { return false; } menuOpenStory->Pos(Width()/2, Height()/2); menuOpenStory->Menu()->Root(); return true; } bool HCed::InitThemeMenu() { if (HCUtil::FindThemes()) { JDELETE(menuTheme); menuTheme = new JTextMenu; // Crea el men JTree::Iterator *it = menuTheme->Menu(); it->Data(new JTextMenuEntry(HCUtil::Themes()[0], &OnSelectTheme, 0)); for (u32 i = 1; i < HCUtil::Themes().size(); ++i) { it->AddNodeGo(new JTextMenuEntry(HCUtil::Themes()[i], &OnSelectTheme, JCAST_S32_TO_VOIDPTR(i))); } it->Root(); JTextMenuConfig cfg; cfg.font = &fontSmall; cfg.lineDistance = 3; cfg.color.r = 0xff; cfg.color.g = 0xcc; cfg.color.b = 0x00; cfg.backColor.r = 0x00; cfg.backColor.g = 0x00; cfg.backColor.b = 0x00; cfg.hiColor.r = 0xff; cfg.hiColor.g = 0xff; cfg.hiColor.b = 0xff; cfg.hiBackColor.r = 0x00; cfg.hiBackColor.g = 0x00; cfg.hiBackColor.b = 0x00; cfg.renderMode = JTEXTMENU_BLENDED; cfg.layout = JTEXTMENU_CENTER; cfg.layoutV = JTEXTMENU_CENTER; cfg.trackKeyboard = true; cfg.trackMouse = true; cfg.autoEnter = false; if (!menuTheme->Init(cfg)) { return false; } menuTheme->Pos(Width()/2, Height()/2); menuTheme->Menu()->Root(); return true; } return false; } bool HCed::Draw() { bool ret = true; SDL_FillRect(screen, 0, appBackColor); level.Draw(); menuMain->Draw(); // Draws the mouse cursor imgMouse->Draw(MouseX() + imgMouse->Width(), MouseY() + imgMouse->Height()); switch (state) { case HCEDSTATE_FLOOR: ret = DrawFloor(); break; case HCEDSTATE_CONTFLOOR: ret = DrawContFloor(); break; case HCEDSTATE_LADDER: ret = DrawLadder(); break; case HCEDSTATE_BAR: ret = DrawBar(); break; case HCEDSTATE_BREAK: ret = DrawBreak(); break; case HCEDSTATE_OBJECT: ret = DrawObject(); break; case HCEDSTATE_ROPE: ret = DrawRope(); break; case HCEDSTATE_START: ret = DrawStart(); break; case HCEDSTATE_EXIT: ret = DrawExit(); break; case HCEDSTATE_ENEMY: ret = DrawEnemy(); break; case HCEDSTATE_SAVE: ret = DrawSave(); break; case HCEDSTATE_OPENSTORY: ret = DrawOpenStory(); break; case HCEDSTATE_APPEXIT: ret = DrawAppExit(); break; default: break; } level.levelTimer.Y(13 * 32); level.levelTimer.Draw(); imgGravity->Y(14 * 32); imgGravity->Draw(); imgCharVx->Y(15 * 32); imgCharVx->Draw(); imgCharVy->Y(16 * 32); imgCharVy->Draw(); imgCharJumpRows->Y(17 * 32); imgCharJumpRows->Draw(); imgMapSize->Y(18 * 32); imgMapSize->Draw(); // Swaps buffers! Flip(); return ret; } bool HCed::DrawFloor() { menuFloorSubtype->Draw(); return true; } bool HCed::DrawContFloor() { menuContFloorSubtype->Draw(); return true; } bool HCed::DrawLadder() { menuLadderSubtype->Draw(); return true; } bool HCed::DrawBar() { menuBarSubtype->Draw(); return true; } bool HCed::DrawBreak() { menuBreakSubtype->Draw(); return true; } bool HCed::DrawObject() { menuObjectSubtype->Draw(); return true; } bool HCed::DrawRope() { menuRopeSubtype->Draw(); menuRopePeriod->Draw(); return true; } bool HCed::DrawStart() { menuMainSubtype->Draw(); return true; } bool HCed::DrawExit() { return true; } bool HCed::DrawEnemy() { menuEnemyType->Draw(); menuEnemySubtype[enemyType]->Draw(); menuEnemyParam1->Draw(); menuEnemyParam2->Draw(); return true; } bool HCed::DrawSave() { return true; } bool HCed::DrawOpenStory() { switch (inputNewStory) { case 0: // Selecting story menuOpenStory->Draw(); break; case HCED_INPUT_STORY: // Input of new story name if (imgNewStory) { imgNewStory->Draw(); } break; case HCED_INPUT_THEME: // Selection of theme if (imgNewStory) { imgNewStory->Draw(); } menuTheme->Draw(); break; } return true; } bool HCed::DrawAppExit() { return true; } bool HCed::Update() { menuMain->Update(); // Updates the objects for (s32 i = 0; i < level.numObjects; ++i) { level.objects[i]->Update(); } // Updates the ropes for (s32 i = 0; i < level.numRopes; ++i) { level.ropes[i]->Update(); } // Updates the enemies //for (s32 i = 0; i < level.numEnemies; ++i) //{ // level.enemies[i]->Update(); //} // Updates the exit level.levelExit.Update(); switch (state) { case HCEDSTATE_FLOOR: return UpdateFloor(); case HCEDSTATE_CONTFLOOR: return UpdateContFloor(); case HCEDSTATE_LADDER: return UpdateLadder(); case HCEDSTATE_BAR: return UpdateBar(); case HCEDSTATE_BREAK: return UpdateBreak(); case HCEDSTATE_OBJECT: return UpdateObject(); case HCEDSTATE_ROPE: return UpdateRope(); case HCEDSTATE_START: return UpdateStart(); case HCEDSTATE_EXIT: return UpdateExit(); case HCEDSTATE_ENEMY: return UpdateEnemy(); case HCEDSTATE_SAVE: return UpdateSave(); case HCEDSTATE_OPENSTORY: return UpdateOpenStory(); case HCEDSTATE_APPEXIT: return UpdateAppExit(); default: break; } return true; } void HCed::UpdateEraseFloor() { if (MouseBt() & SDL_BUTTON_RIGHT) { s32 row = level.Map().ToRow(MouseY()), col = level.Map().ToCol(MouseX()); // Put a blank cell border around the map, do no let edit those cells if (row > 0 && col > 0 && row < level.Map().Rows() - 1 && col < level.Map().Cols() - 1) { HCCell ***cells = level.Map().Cells(); float x = cells[row][col]->X(), y = cells[row][col]->Y(); // Erases the floor JDELETE(cells[row][col]); cells[row][col] = new HCCell; level.Map().BuildContFloor(row, col); cells[row][col]->Subtype(0); cells[row][col]->Pos((s32)x, (s32)y); level.Map().BuildCellLinkList(); } } } bool HCed::UpdateFloor() { // Button down if (MouseOverMap()) { if (MouseBt() & SDL_BUTTON_LEFT) { s32 row = level.Map().ToRow(MouseY()), col = level.Map().ToCol(MouseX()); // Put a blank cell border around the map, do no let edit those cells if (row > 0 && col > 0 && row < level.Map().Rows() - 1 && col < level.Map().Cols() - 1) { HCCell ***cells = level.Map().Cells(); float x = cells[row][col]->X(), y = cells[row][col]->Y(); if (cells[row][col]->Type() != HCCELLTYPE_FLOOR || cells[row][col]->Subtype() != floorSubtype) { // Substitutes the floor JDELETE(cells[row][col]); cells[row][col] = new HCFloorCell(&level.Theme().Floor(floorSubtype)); cells[row][col]->Subtype(floorSubtype); cells[row][col]->Pos((s32)x, (s32)y); } level.Map().BuildContFloor(row, col); level.Map().BuildCellLinkList(); } } else { UpdateEraseFloor(); } } return true; } bool HCed::UpdateContFloor() { // Button down if (MouseOverMap()) { if (MouseBt() & SDL_BUTTON_LEFT) { s32 row = level.Map().ToRow(MouseY()), col = level.Map().ToCol(MouseX()); // Put a blank cell border around the map, do no let edit those cells if (row > 0 && col > 0 && row < level.Map().Rows() - 1 && col < level.Map().Cols() - 1) { HCCell ***cells = level.Map().Cells(); float x = cells[row][col]->X(), y = cells[row][col]->Y(); if (cells[row][col]->Type() != HCCELLTYPE_CONTFLOOR || cells[row][col]->Subtype() != contFloorSubtype) { // Substitutes the floor JDELETE(cells[row][col]); cells[row][col] = new HCContFloor; cells[row][col]->Subtype(contFloorSubtype); level.Map().BuildContFloor(row, col); cells[row][col]->Pos((s32)x, (s32)y); level.Map().BuildCellLinkList(); } } } else { UpdateEraseFloor(); } } return true; } bool HCed::UpdateLadder() { // Button down if (MouseOverMap()) { if (MouseBt() & SDL_BUTTON_LEFT) { s32 row = level.Map().ToRow(MouseY()), col = level.Map().ToCol(MouseX()); // Put a blank cell border around the map, do no let edit those cells if (row > 0 && col > 0 && row < level.Map().Rows() - 1 && col < level.Map().Cols() - 1) { HCCell ***cells = level.Map().Cells(); float x = cells[row][col]->X(), y = cells[row][col]->Y(); if (cells[row][col]->Type() != HCCELLTYPE_LADDER || cells[row][col]->Subtype() != ladderSubtype) { // Substitutes the ladder JDELETE(cells[row][col]); cells[row][col] = new HCLadderCell(&level.Theme().Ladder(ladderSubtype)); cells[row][col]->Subtype(ladderSubtype); cells[row][col]->Pos((s32)x, (s32)y); level.Map().BuildCellLinkList(); } level.Map().BuildContFloor(row, col); } } else { UpdateEraseFloor(); } } return true; } bool HCed::UpdateBar() { // Button down if (MouseOverMap()) { if (MouseBt() & SDL_BUTTON_LEFT) { s32 row = level.Map().ToRow(MouseY()), col = level.Map().ToCol(MouseX()); // Put a blank cell border around the map, do no let edit those cells if (row > 0 && col > 0 && row < level.Map().Rows() - 1 && col < level.Map().Cols() - 1) { HCCell ***cells = level.Map().Cells(); float x = cells[row][col]->X(), y = cells[row][col]->Y(); if (cells[row][col]->Type() != HCCELLTYPE_BAR || cells[row][col]->Subtype() != barSubtype) { // Substitutes the bar JDELETE(cells[row][col]); cells[row][col] = new HCBarCell(&level.Theme().Bar(barSubtype)); cells[row][col]->Subtype(barSubtype); cells[row][col]->Pos((s32)x, (s32)y); } level.Map().BuildContFloor(row, col); level.Map().BuildCellLinkList(); } } else { UpdateEraseFloor(); } } return true; } bool HCed::UpdateBreak() { // Button down if (MouseOverMap()) { if (MouseBt() & SDL_BUTTON_LEFT) { s32 row = level.Map().ToRow(MouseY()), col = level.Map().ToCol(MouseX()); // Put a blank cell border around the map, do no let edit those cells if (row > 0 && col > 0 && row < level.Map().Rows() - 1 && col < level.Map().Cols() - 1) { HCCell ***cells = level.Map().Cells(); float x = cells[row][col]->X(), y = cells[row][col]->Y(); if (cells[row][col]->Type() != HCCELLTYPE_BREAK || cells[row][col]->Subtype() != breakSubtype) { // Substitutes the cell JDELETE(cells[row][col]); cells[row][col] = new HCBreak(level.Theme().Break(breakSubtype)); cells[row][col]->Subtype(breakSubtype); cells[row][col]->Pos((s32)x, (s32)y); } level.Map().BuildContFloor(row, col); level.Map().BuildCellLinkList(); } } else { UpdateEraseFloor(); } } return true; } bool HCed::UpdateObject() { // Button down if (MouseOverMap()) { if (MouseBt() & SDL_BUTTON_LEFT) { if (curObject != 0) { // An object is selected if (KeyMods() & KMOD_CTRL) { // Adjust to map cell s32 row = level.Map().ToRow(MouseY()), col = level.Map().ToCol(MouseX()); curObject->Pos(level.Map().ToX(col), level.Map().ToY(row)); } else { // Place the object right bellow the mouse cursor curObject->Pos(MouseX(), MouseY()); } } else { // No selected object, create it AddObject(MouseX(), MouseY()); } } else // Erase object if (MouseBt() & SDL_BUTTON_RIGHT) { // Delete the current object DeleteObject(); } } return true; } bool HCed::UpdateRope() { // Button down if (MouseOverMap()) { if (MouseBt() & SDL_BUTTON_LEFT) { if (curRope != 0) { // A rope is selected if (KeyMods() & KMOD_CTRL) { // Adjust to map cell ('ceiling') s32 row = level.Map().ToRow(MouseY()), col = level.Map().ToCol(MouseX()); curRope->Pos(level.Map().ToX(col) - level.Map().CellWidth()/2, level.Map().ToY(row) - level.Map().CellHeight() + 1); } else if (KeyMods() & KMOD_SHIFT) { // Adjust the amplitude s32 amplitude = abs(MouseX() - (s32)curRope->X()); curRope->Init(ropePeriod, amplitude, curRope->Length(), level.Theme()); } else if (KeyMods() & KMOD_ALT) { // Adjust the length s32 length = abs(MouseY() - (s32)curRope->Y()); curRope->Init(ropePeriod, curRope->Amplitude(), length, level.Theme()); } else { // Place the rope right bellow the mouse cursor curRope->Pos(MouseX(), MouseY()); } } else { // No selected rope, create it AddRope(MouseX(), MouseY()); } } else // Erase rope if (MouseBt() & SDL_BUTTON_RIGHT) { // Delete the current rope DeleteRope(); } } return true; } bool HCed::UpdateStart() { if (MouseOverMap()) { if (MouseBt() & SDL_BUTTON_LEFT) { HCMap *m = &level.Map(); if ((KeyMods() & KMOD_CTRL)) { s32 row = m->ToRow(MouseY()), col = m->ToCol(MouseX()); level.character.Pos(m->ToX(col), m->ToY(row)); } else { level.character.Pos(MouseX(), MouseY()); } } } return true; } bool HCed::UpdateExit() { if (MouseOverMap()) { if (MouseBt() & SDL_BUTTON_LEFT) { HCMap *m = &level.Map(); s32 row = m->ToRow(MouseY()), col = m->ToCol(MouseX()); if (m->ExitRow() != row || m->ExitCol() != col) { m->ExitRow(row); m->ExitCol(col); level.levelExit.Init(m, 100); } } } return true; } bool HCed::UpdateEnemy() { // Button down if (MouseOverMap()) { if (MouseBt() & SDL_BUTTON_LEFT) { if (curEnemy != 0) { // An enemy is selected if (KeyMods() & KMOD_CTRL) { // Adjust to map cell s32 row = level.Map().ToRow(MouseY()), col = level.Map().ToCol(MouseX()); curEnemy->Pos(level.Map().ToX(col), level.Map().ToY(row)); } else { // Place the enemy right bellow the mouse cursor curEnemy->Pos(MouseX(), MouseY()); } curEnemy->Param1(enemyParam1); curEnemy->Param2(enemyParam2); } else { // No selected enemy, create it AddEnemy(MouseX(), MouseY()); } } else // Erase enemy if (MouseBt() & SDL_BUTTON_RIGHT) { // Delete the current enemy DeleteEnemy(); } } return true; } bool HCed::UpdateSave() { return true; } bool HCed::UpdateOpenStory() { switch (inputNewStory) { case 0: // Only updates if not waiting for user input on new story menuOpenStory->Update(); break; case 2: menuTheme->Update(); break; default: break; } return true; } bool HCed::UpdateAppExit() { return true; } void HCed::OnFilenameChange() { JString strTitle; strTitle.Format("%s - HCed v1.0", filename.Str()); Title(strTitle); } void HCed::OnGravityChange() { SDL_Color c; float maxG = theApp->level.Map().CellHeight()/5.0f; // Forces the gravity value to be between maxG and -maxG float g = theApp->level.Map().Gravity(); JClamp(g, -maxG, maxG); theApp->level.Map().Gravity(g); // Positive values tend to green, negative ones tend to red. c.unused = 255; c.b = 0; c.g = (u8)(255 * ((g + maxG)/(2.0f * maxG))); c.r = 255 - c.g; JDELETE(theApp->imgGravity); theApp->imgGravity = theApp->fontSmall.PrintfBlended(JFONTALIGN_LEFT, c, "g: %1.1f", theApp->level.Map().Gravity()); } void HCed::OnCharVxChange() { SDL_Color c; float maxVx = theApp->level.Map().CellWidth() - 1; // Forces the Vx value to be between maxVx and 0 float v = theApp->level.character.MaxVeloccity().x; JClamp(v, 0.0f, maxVx); theApp->level.character.MaxVeloccity().x = v; // Greater values tend to yellow, small ones tend to grey. c.unused = 255; c.b = 127 + (u8)(255 * (v/(2.0f * maxVx))); c.r = c.g; c.g = 127; JDELETE(theApp->imgCharVx); theApp->imgCharVx = theApp->fontSmall.PrintfBlended(JFONTALIGN_LEFT, c, "vX:%1.1f", theApp->level.character.MaxVeloccity().x); } void HCed::OnCharVyChange() { SDL_Color c; float maxVy = theApp->level.Map().CellWidth() - 1; // Forces the Vy value to be between maxVy and 0 float v = theApp->level.character.MaxVeloccity().y; JClamp(v, 0.0f, maxVy); theApp->level.character.MaxVeloccity().y = v; // Greater values tend to yellow, small ones tend to grey. c.unused = 255; c.g = 127 + (u8)(255 * (v/(2.0f * maxVy))); c.r = c.g; c.b = 127; JDELETE(theApp->imgCharVy); theApp->imgCharVy = theApp->fontSmall.PrintfBlended(JFONTALIGN_LEFT, c, "vY:%1.1f", theApp->level.character.MaxVeloccity().y); } void HCed::OnCharJumpRowsChange() { SDL_Color c; s32 maxJ = theApp->level.Map().Rows(); // Forces the jump value to be between maxJ and 0 s32 j = theApp->level.character.MaxJumpRows(); JClamp(j, 0, maxJ); theApp->level.character.MaxJumpRows(j); // Greater values tend to light blue, small ones tend to dark blue. c.unused = 255; c.b = 127 + (u8)(255 * (j/(2.0f * maxJ))); c.r = c.b/2; c.g = 127; JDELETE(theApp->imgCharJumpRows); theApp->imgCharJumpRows = theApp->fontSmall.PrintfBlended(JFONTALIGN_LEFT, c, "Jump:%d", theApp->level.character.MaxJumpRows()); } void HCed::OnMapSizeChange() { SDL_Color c; c.unused = 255; c.r = 0xff; c.b = 0xcc; c.g = 0x00; JDELETE(theApp->imgMapSize); theApp->imgMapSize = theApp->fontSmall.PrintfBlended(JFONTALIGN_LEFT, c, "Map: %dx%d", theApp->level.map.Rows(), theApp->level.map.Cols()); } void HCed::OnFloor(void *data) { theApp->state = HCEDSTATE_FLOOR; theApp->imgMouse = &theApp->level.Theme().Floor(theApp->floorSubtype); } void HCed::OnContFloor(void *data) { theApp->state = HCEDSTATE_CONTFLOOR; theApp->imgMouse = &theApp->imgMenu[theApp->state]; } void HCed::OnLadder(void *data) { theApp->state = HCEDSTATE_LADDER; theApp->imgMouse = &theApp->imgMenu[theApp->state]; } void HCed::OnBar(void *data) { theApp->state = HCEDSTATE_BAR; theApp->imgMouse = &theApp->imgMenu[theApp->state]; } void HCed::OnBreak(void *data) { theApp->state = HCEDSTATE_BREAK; theApp->imgMouse = &theApp->imgMenu[theApp->state]; } void HCed::OnObject(void *data) { theApp->state = HCEDSTATE_OBJECT; theApp->imgMouse = &theApp->imgMenu[theApp->state]; } void HCed::OnRope(void *data) { theApp->state = HCEDSTATE_ROPE; theApp->imgMouse = &theApp->imgMenu[theApp->state]; } void HCed::OnStart(void *data) { theApp->state = HCEDSTATE_START; theApp->imgMouse = &theApp->imgMenu[theApp->state]; } void HCed::OnExit(void *data) { theApp->state = HCEDSTATE_EXIT; theApp->imgMouse = &theApp->imgMenu[theApp->state]; } void HCed::OnEnemy(void *data) { theApp->state = HCEDSTATE_ENEMY; theApp->imgMouse = &theApp->imgMenu[theApp->state]; } void HCed::OnSave(void *data) { HCedState old = theApp->state; theApp->state = HCEDSTATE_SAVE; theApp->imgMouse = &theApp->imgMenu[theApp->state]; theApp->Draw(); // Save in the command line-given file. JRW file; if (file.Create(theApp->filename, "wb")) { fprintf(stderr, "Saving the level to %s.\n", theApp->filename.Str()); if (0 != theApp->level.Save(file)) { fprintf(stderr, "Could not save the level to %s.\n", theApp->filename.Str()); } file.Close(); } else { fprintf(stderr, "Could not open file %s.\n", theApp->filename.Str()); } // Return to the old state theApp->state = old; theApp->imgMouse = &theApp->imgMenu[theApp->state]; } void HCed::OnOpenStory(void *data) { theApp->state = HCEDSTATE_OPENSTORY; theApp->imgMouse = &theApp->imgMenu[theApp->state]; theApp->strNewStoryName = ""; } void HCed::OnSelectStory(void *data) { if ((long)data < 0) { theApp->inputNewStory = HCED_INPUT_STORY; // Updates the input string JDELETE(theApp->imgNewStory); SDL_Color fg = {0xff, 0xcc, 0x00, 0x00}; SDL_Color bg = {0x00, 0x00, 0x00, 0x00}; theApp->imgNewStory = theApp->fontLarge.RenderTextShaded("Name: ", fg, bg); } else { theApp->OnFloor(0); theApp->filename = JString(theApp->storyDir) + JString(HCUtil::Stories()[(long)data]) + "/level001.hlv"; if (0 != theApp->NewLevel()) { fprintf(stderr, "Error loading %s\n", theApp->filename.Str()); return; } theApp->storyName = HCUtil::Stories()[(long)data]; theApp->levelNumber = 1; } } void HCed::OnSelectTheme(void *data) { s32 rt = HCUtil::CreateStory(theApp->strNewStoryName); switch (rt) { case 0: { // Creates new story JString oldName = theApp->filename; JString oldTheme = theApp->themeName; s32 oldLevel = theApp->levelNumber; theApp->filename = JString(theApp->storyDir) + JString(theApp->strNewStoryName) + JString("/level001.hlv"); theApp->themeName = HCUtil::Themes()[(long)data]; theApp->levelNumber = 1; if (0 != theApp->NewLevel()) { fprintf(stderr, "Error initializing new level %s\n", (const char *)theApp->filename); theApp->filename = oldName; theApp->themeName = oldTheme; theApp->levelNumber = oldLevel; } else { // All went right JDELETE(theApp->imgNewStory); theApp->storyName = theApp->strNewStoryName; theApp->inputNewStory = 0; } } break; case 1: fprintf(stderr, "Story %s already exists, give it a different name, please.\n", (const char *)theApp->strNewStoryName); break; case 2: fprintf(stderr, "Directory 'stories' could not be found, check installation.\n"); break; case 3: fprintf(stderr, "Couldn't create story. Check permissions for %s.\n", (const char *)theApp->strNewStoryName); break; default: break; } } void HCed::OnAppExit(void *data) { theApp->state = HCEDSTATE_APPEXIT; theApp->imgMouse = &theApp->imgMenu[theApp->state]; theApp->Exit(); } void HCed::OnMainSubtype(void *data) { theApp->level.character.subtype = (long)data; theApp->level.character.Init(theApp->level.theme.MainChar((long)data), &theApp->level.map); } void HCed::OnFloorSubtype(void *data) { theApp->floorSubtype = (long)data; theApp->imgMouse = &(theApp->level.Theme().Floor(theApp->floorSubtype)); } void HCed::OnContFloorSubtype(void *data) { theApp->contFloorSubtype = (long)data; theApp->imgMouse = &(theApp->level.Theme().ContFloor(theApp->contFloorSubtype)[HCFDT_I]); } void HCed::OnBarSubtype(void *data) { theApp->barSubtype = (long)data; theApp->imgMouse = &(theApp->level.Theme().Bar(theApp->barSubtype)); } void HCed::OnLadderSubtype(void *data) { theApp->ladderSubtype = (long)data; theApp->imgMouse = &(theApp->level.Theme().Ladder(theApp->ladderSubtype)); } void HCed::OnBreakSubtype(void *data) { theApp->breakSubtype = (long)data; theApp->imgMouse = (JImage *)(theApp->level.Theme().Break(theApp->breakSubtype)[HCBDT_NORMAL].Frame(0)); } void HCed::OnObjectSubtype(void *data) { theApp->objectSubtype = (long)data; theApp->imgMouse = (JImage *)(theApp->level.Theme().Object(theApp->objectSubtype)[HCODT_NORMAL].Frame(0)); } void HCed::OnRopeSubtype(void *data) { theApp->ropeSubtype = (long)data; theApp->imgMouse = &(theApp->level.Theme().Rope(theApp->ropeSubtype)[HCRDT_TOP]); } void HCed::OnRopePeriod(void *data) { theApp->ropePeriod = 0.5f + (0.25f * float((long)data)); } void HCed::OnEnemySubtype(void *data) { theApp->enemySubtype = (long)data; theApp->imgMouse = (JImage *)(theApp->GetEnemySprites(theApp->enemyType, theApp->enemySubtype)[HCCDT_STOP].Frame(0)); } void HCed::OnEnemyType(void *data) { // 0 always is a valid subtype so init to that theApp->enemySubtype = 0; theApp->enemyType = (HCEnemyType)(long)data; theApp->imgMouse = (JImage *)(theApp->GetEnemySprites(theApp->enemyType, theApp->enemySubtype)[HCCDT_STOP].Frame(0)); } void HCed::OnEnemyParam1(void *data) { theApp->enemyParam1 = (long)data; } void HCed::OnEnemyParam2(void *data) { theApp->enemyParam2 = (long)data; } bool HCed::MouseOverMap() { return (MouseX() > HCED_MARGIN && MouseX() < (level.Map().X() + (level.Map().Cols() * level.Map().CellWidth())) && MouseY() > HCED_MARGIN && MouseY() < (level.Map().Y() + (level.Map().Rows() * level.Map().CellHeight()))); } void HCed::AddObject(s32 x, s32 y) { curObject = new HCObject; // Update the level objects HCObject **tmp = level.objects; level.objects = new HCObject *[level.numObjects + 1]; // Copies the old elements s32 i = 0; for (i = 0; i < level.numObjects; ++i) { level.objects[i] = tmp[i]; } // New and last element level.objects[i] = curObject; ++level.numObjects; curObject->Subtype(objectSubtype); curObject->Init(&level.Theme()); curObject->Pos(x, y); // If it exists, deletes the old array of pointers (not the pointers inside) JDELETE_ARRAY(tmp); } void HCed::AddRope(s32 x, s32 y) { curRope = new HCRope(); curRope->Init(ropePeriod, 0, 0, level.Theme()); curRope->Subtype(ropeSubtype); // Update the level ropes HCRope **tmp = level.ropes; level.ropes = new HCRope *[level.numRopes + 1]; // Copies the old elements s32 i = 0; for (i = 0; i < level.numRopes; ++i) { level.ropes[i] = tmp[i]; } // New and last element level.ropes[i] = curRope; ++level.numRopes; curRope->Pos(x, y); // If it exists, deletes the old array of pointers (not the pointers inside) JDELETE_ARRAY(tmp); } void HCed::AddEnemy(s32 x, s32 y) { switch (enemyType) { default: case HCENEMYTYPE_BALL: curEnemy = new HCEnemyBall(); curEnemy->Init(level.Theme().Ball(enemySubtype), &level.Map()); break; case HCENEMYTYPE_RANDOM: curEnemy = new HCEnemyRandom(); curEnemy->Init(level.Theme().Random(enemySubtype), &level.Map()); break; case HCENEMYTYPE_STATIC: curEnemy = new HCEnemyStatic(); curEnemy->Init(level.Theme().Static(enemySubtype), &level.Map()); break; case HCENEMYTYPE_MAKER: curEnemy = new HCEnemyMaker(); curEnemy->Init(level.Theme().Maker(enemySubtype), &level.Map()); break; case HCENEMYTYPE_CHASER: curEnemy = new HCEnemyChaser(); curEnemy->Init(level.Theme().Chaser(enemySubtype), &level.Map()); break; } curEnemy->Subtype(enemySubtype); curEnemy->Param1(enemyParam1); curEnemy->Param2(enemyParam2); // Update the level enemies HCEnemy **tmp = level.enemies; level.enemies = new HCEnemy *[level.numEnemies + 1]; // Copies the old elements s32 i = 0; for (i = 0; i < level.numEnemies; ++i) { level.enemies[i] = tmp[i]; } // New and last element level.enemies[i] = curEnemy; ++level.numEnemies; curEnemy->Pos(x, y); // If it exists, deletes the old array of pointers (not the pointers inside) JDELETE_ARRAY(tmp); } void HCed::DeleteObject() { if (curObject) { // Update the level objects HCObject **tmp = level.objects; level.objects = new HCObject *[level.numObjects - 1]; // Copies all but the selected object for (s32 i = 0, newI = 0; i < level.numObjects; ++i, ++newI) { if (tmp[i] != curObject) { level.objects[newI] = tmp[i]; } else { // Note that tmp is 1 element larger than level.objects // we have to delay 1 its index after curObject has been found inside of it --newI; } } --level.numObjects; // If it exists, deletes the old array of pointers (not the pointers inside) JDELETE_ARRAY(tmp); delete curObject; curObject = 0; } } void HCed::DeleteRope() { if (curRope) { // Update the level ropes HCRope **tmp = level.ropes; level.ropes = new HCRope *[level.numRopes - 1]; // Copies all but the selected rope for (s32 i = 0, newI = 0; i < level.numRopes; ++i, ++newI) { if (tmp[i] != curRope) { level.ropes[newI] = tmp[i]; } else { // Note that tmp is 1 element larger than level.ropes // we have to delay 1 its index after curRope has been found inside of it --newI; } } --level.numRopes; // If it exists, deletes the old array of pointers (not the pointers inside) JDELETE_ARRAY(tmp); delete curRope; curRope = 0; } } void HCed::DeleteEnemy() { if (curEnemy) { // Update the level enemies HCEnemy **tmp = level.enemies; level.enemies = new HCEnemy *[level.numEnemies - 1]; // Copies all but the selected enemy for (s32 i = 0, newI = 0; i < level.numEnemies; ++i, ++newI) { if (tmp[i] != curEnemy) { level.enemies[newI] = tmp[i]; } else { // Note that tmp is 1 element larger than level.enemies // we have to delay 1 its index after curEnemy has been found inside of it --newI; } } --level.numEnemies; // If it exists, deletes the old array of pointers (not the pointers inside) JDELETE_ARRAY(tmp); delete curEnemy; curEnemy = 0; } } JImageSprite * HCed::GetEnemySprites(HCEnemyType t, s32 s) { switch (t) { case HCENEMYTYPE_BALL: return level.theme.Ball(s); case HCENEMYTYPE_STATIC: return level.theme.Static(s); case HCENEMYTYPE_MAKER: return level.theme.Maker(s); case HCENEMYTYPE_RANDOM: return level.theme.Random(s); case HCENEMYTYPE_CHASER: return level.theme.Chaser(s); default: break; } return 0; } s32 HCed::GetNumEnemySprites(HCEnemyType t) { switch (t) { case HCENEMYTYPE_BALL: return level.theme.NumBalls(); case HCENEMYTYPE_STATIC: return level.theme.NumStatics(); case HCENEMYTYPE_MAKER: return level.theme.NumMakers(); case HCENEMYTYPE_RANDOM: return level.theme.NumRandoms(); case HCENEMYTYPE_CHASER: return level.theme.NumChasers(); default: break; } return 0; } void HCed::DestroyMainSubtypeMenu() { if (menuMainSubtype) { JImage *img; JTree::Iterator *it; it = menuMainSubtype->Menu(); it->Root(); do { if (it->Data()) { img = it->Data()->Image(); JDELETE(img); img = it->Data()->HiImage(); JDELETE(img); } } while (it->Next()); delete menuMainSubtype; } } void HCed::DestroyBreakSubtypeMenu() { if (menuBreakSubtype) { JImage *img; JTree::Iterator *it; it = menuBreakSubtype->Menu(); it->Root(); do { if (it->Data()) { img = it->Data()->Image(); JDELETE(img); img = it->Data()->HiImage(); JDELETE(img); } } while (it->Next()); delete menuBreakSubtype; } } void HCed::DestroyObjectSubtypeMenu() { if (menuObjectSubtype) { JImage *img; JTree::Iterator *it; it = menuObjectSubtype->Menu(); it->Root(); do { if (it->Data()) { img = it->Data()->Image(); JDELETE(img); img = it->Data()->HiImage(); JDELETE(img); } } while (it->Next()); delete menuObjectSubtype; } } void HCed::DestroyEnemySubtypeMenu() { JImage *img; JTree::Iterator *it; for (s32 n = 0; n < HCENEMYTYPE_COUNT; ++n) { if (menuEnemySubtype[n]) { it = menuEnemySubtype[n]->Menu(); it->Root(); do { if (it->Data()) { img = it->Data()->Image(); JDELETE(img); img = it->Data()->HiImage(); JDELETE(img); } } while (it->Next()); delete menuEnemySubtype[n]; } } } void HCed::DestroyLevelMenus() { DestroyMainSubtypeMenu(); DestroyBreakSubtypeMenu(); DestroyObjectSubtypeMenu(); DestroyEnemySubtypeMenu(); } HCed::~HCed() { JDELETE(menuMain); JDELETE(menuEnemyType); JDELETE(menuEnemyParam1); JDELETE(menuEnemyParam2); JDELETE(menuRopePeriod); JDELETE(menuFloorSubtype); JDELETE(menuContFloorSubtype); JDELETE(menuBarSubtype); JDELETE(menuLadderSubtype); JDELETE(menuRopeSubtype); JDELETE(menuOpenStory); JDELETE(menuTheme); DestroyLevelMenus(); JDELETE(imgGravity); JDELETE(imgCharVx); JDELETE(imgCharVy); JDELETE(imgCharJumpRows); JDELETE(imgMapSize); } int main(s32 argc, char **argv) { HCed editor; theApp = &editor; if (!editor.Init(argc, argv)) { fprintf(stderr, "Error launching the editor.\n"); return -1; } return editor.MainLoop(); } holotz-castle-1.3.14-src/src/HCText.h0000644000175000001440000001202611177007633016257 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Text messages for Holotz's Castle. Base class. * @file HCText.h * @author Juan Carlos Seijo Prez * @date 25/06/2004 * @version 0.0.1 - 25/06/2004 - Primera versin. */ #ifndef _HCTEXT_INCLUDED #define _HCTEXT_INCLUDED #include #include #include #include typedef enum HCTextType { HCTEXTTYPE_DIALOG, /**< Dialog balloon. */ HCTEXTTYPE_NARRATIVE, /**< Narrative frame. */ HCTEXTTYPE_COUNT, /**< Number of different types. */ }; /** Encapsulates a generic text message. */ class HCText : public JDrawable { protected: JFont *font; /**< Font to render the text with. */ JImage text; /**< Rendered text. */ HCTheme *theme; /**< Theme of the text object. */ HCTextType type; /**< Type of text object. */ s32 subtype; /**< Subtype within the theme. */ bool left; /**< Peak direction. */ float *trackX; /**< Tracked x position. */ float *trackY; /**< Tracked y position. */ JTimer timer; /**< Timer for fades. */ static s32 textSpeed; /**< Text duration factor [1-10]. */ static s32 minDelay; /**< Minimum delay for text. */ static s32 maxAlpha; /**< Maximum alpha value. */ public: /** Creates an empty text object. Init must be called before using it. */ HCText() : font(0), theme(0), type(HCTEXTTYPE_DIALOG), subtype(0), left(true), trackX(&pos.x), trackY(&pos.y) {} /** Initializes the object. * @param _type The type of text object. * @param _text Text to draw. * @param _theme Theme from where to load the images. * @param _font Font to use to render the text. * @param a The Alignment of the text. * @param _left Peak direction (only for dialog frames). * @return true if successful, false if not. */ bool Init(HCTextType _type, const char *_text, HCTheme *_theme, JFont *_font, JFontAlign a, bool _left = true, s32 _subtype = 0, u8 r = 255, u8 g = 255, u8 b = 255); /** Gets the type of this text. * @return Type of this text. */ const HCTextType & Type() {return type;} /** Sets the type of this text. * @param newType New type of this text. */ void Type(const HCTextType &newType) {type = newType;} /** Gets the subtype of this text. * @return Subtype of this text. */ s32 Subtype() {return subtype;} /** Sets the subtype of this text. * @param newSubtype New type of this text. */ void Subtype(s32 newSubtype) {subtype = newSubtype;} /** Positions this object. * @param x New x coordinate. * @param y New y coordinate. */ virtual void Pos(float x, float y) {pos.x = x; pos.y = y; text.Pos(x, y); } /** Draws the object. */ virtual void Draw(); /** Updates the object. * @return 2 if disappeared, 1 if following something, 0 otherwise. */ virtual s32 Update(); /** Follows the given coordinates such that every time the coordinates change, * this text moves. If 0 is passed, the no tracking is made. * @param xTrack Pointer to the x position to track. * @param yTrack Pointer to the y position to track. */ void Track(float *x = 0, float *y = 0); /** Chechs whether this text is visible or not. * @return true if it's visible, false otherwise. */ bool Visible() {return text.Alpha() > 0;} /** Gets this text's image. * @return This text's image. */ JImage& Image() {return text;} /** Sets the text speed. The value varies from 1 (slow) to 10 (fast). * @param speed New value for speed. */ static void Speed(s32 speed) {textSpeed = speed;} /** Gets the text speed. The value varies from 1 (slow) to 10 (fast). * @return speed New value for speed. */ static s32 Speed() {return textSpeed;} /** Prepares the text to be displayed. */ void Reset(); /** Skips the text. */ void Skip() {timer.Start(1);} /** Frees resources. */ void Destroy(); /** Destroys the object. */ virtual ~HCText() {Destroy();} }; #endif // _HCTEXT_INCLUDED holotz-castle-1.3.14-src/src/HCMap.h0000644000175000001440000002054511177007633016055 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Map definition file for Holotz's Castle. * @file HCMap.h * @author Juan Carlos Seijo Prez * @date 29/04/2004 * @version 0.0.1 - 29/04/2004 - First version. */ #ifndef _HCMAP_INCLUDED #define _HCMAP_INCLUDED #include #include #include #include #include #include #include #include #include #include /** Linked list of cells to be drawn/positioned/updated. */ struct HCMapCell { HCCell *cell; HCMapCell *next; }; /** Holotz's Castle map. Consists of a matrix of cells. */ class HCMap : public JDrawable { private: s32 width; /**< Physical width of the map (in pixels). */ s32 height; /**< Physical height of the map (in pixels). */ protected: s32 rows; /**< Map rows (logical height). */ s32 cols; /**< Map columns (logical width). */ s32 cellWidth; /**< Cell width in pixels. */ s32 cellHeight; /**< Cell height in pixels. */ HCCell ***cells; /**< Matrix of cells. */ HCTheme *theme; /**< Theme to be used. */ s32 level; /**< Level within the world. */ s32 exitRow; /**< Exit row. */ s32 exitCol; /**< Exit column. */ float gravity; /**< Gravity of the map. */ HCMapCell *linkCells; /**< Linked list of cells to be drawn/updated/positioned. */ /** Sets allowed actions for every cell in the map. */ void SetActions(); /** Builds only the continuous cell at the given position based upon its neighbours. * @param row Row of the cell to build. * @param col Column of the cell to build. */ void BuildContFloorOnce(s32 row, s32 col); public: /** Creates an empty map. Init() must be called before starting to use it.. */ HCMap(); /** Returns the number of rows. * @return number of rows. */ s32 Rows() { return rows; } /** Returns the number of cols. * @return number of cols. */ s32 Cols() { return cols; } /** Returns the width of a cell. * @return the width of a cell. */ s32 CellWidth() { return cellWidth; } /** Returns the height of a cell. * @return the height of a cell. */ s32 CellHeight() { return cellHeight; } /** Sets the width of a cell. * @param w The width of a cell. */ void CellWidth(s32 w) { cellWidth = w; } /** Sets the height of a cell. * @param h The height of a cell. */ void CellHeight(s32 h) { cellHeight = h; } /** Returns the width of the map. * @return the width of the map. */ s32 Width() { return width; } /** Returns the height of the map. * @return the height of the map. */ s32 Height() { return height; } /** Initializes this map. * @param _theme Loaded theme to use. * @return true if it was loaded successfully, false if not. */ bool Init(HCTheme &_theme); /** Converts from physical (screen) to logical (map) coords. * The result is put in the same variables passed. * @param xPos X coordinate of the pixel and the column after the call. * @param yPos Y coordinate of the pixel and the row after the call. */ void ScreenToMap(s32 &xPos, s32 &yPos); /** Converts from logical (map) to physical (screen) coords. * The result is put in the same variables passed. * @param col Column of the cell and the x position of the cell's baseline mid-point. * @param row Row of the cell and the y position of the cell's baseline mid-point. */ void MapToScreen(s32 &col, s32 &row); /** Converts from physical (screen) to logical (map) coords. * @param xx X coordinate of the pixel. * @return the column corresponding to that x. */ s32 ToCol(s32 xx); /** Converts from physical (screen) to logical (map) coords. * @param yy Y coordinate of the pixel. * @return the row corresponding to that y. */ s32 ToRow(s32 yy); /** Converts from logical (map) to physical (screen) coords. * @param col Column of the cell. * @return the x coordinate of the mid-point of the baseline of the cell. */ s32 ToX(s32 col); /** Converts from logical (map) to physical (screen) coords. * @param row Row of the cell. * @return the y coordinate of the mid-point of the baseline of the cell. */ s32 ToY(s32 row); /** Updates the map. * @return 0 if successful, != 0 if not. */ s32 Update(); /** Draws the map. */ virtual void Draw(); /** Positions this map. * @param xPos New x coordinate. * @param yPos New y coordinate. */ virtual void Pos(float xPos, float yPos); /** Returns the cells at the row and column specified. * It doesn't check if row and col are valid. * @param row Cell's row. * @param col Cell's column. * @return The requested cell. */ HCCell *Cell(s32 row, s32 col) {return cells[row >= rows ? rows - 1 : row][col >= cols ? cols - 1 : col];} /** Returns all the cells. * @return The map's cells. */ HCCell ***Cells() {return cells;} /** Returns the exit column for the main character. * @return the exit column for the main character. */ s32 ExitCol() {return exitCol;} /** Returns the exit row for the main character. * @return the exit row for the main character. */ s32 ExitRow() {return exitRow;} /** Returns the exit column for the main character. * @param col The exit column for the main character. */ void ExitCol(s32 col) {exitCol = col;} /** Returns the exit row for the main character. * @param row The exit row for the main character. */ void ExitRow(s32 row) {exitRow = row;} /** Loads the map. * @param f The file from where to load, already positioned. * @return 0 if succeeded, 1 if I/O error or 2 if integrity error. */ u32 Load(JRW &f); /** Saves the map. * @param f The file where to save, already positioned. * @return 0 if succeeded, 1 if I/O error or 2 if integrity error. */ u32 Save(JRW &f); /** Destroys the object and free its associated resources. */ void Destroy(); /** Resizes the map. If enlarged, the old cells are pasted from the * bottom-left corner of the original map to the same corner of the new map. * @param newRows New number of rows. * @param newCols New number of cols. * @param growRight Indicates whether it must grow to the right (true, by default) or to the left. * @param growDown Indicates whether it must grow down (true, by default) or upwards. */ void Resize(s32 newRows, s32 newCols, bool growRight = true, bool growDown = true); /** Builds the continuous cell at the given position and its neighbours. * @param row Row of the cell to build. * @param col Column of the cell to build. */ void BuildContFloor(s32 row, s32 col); /** (Re)Builds the linked list of cells. */ void BuildCellLinkList(); /** Destroys the linked list of cells. */ void DestroyCellLinkList(); /** Sets the gravity for this map. * @param g New gravity for this map. */ void Gravity(float g) {gravity = g;} /** Gets the gravity for this map. * @return Gravity for this map. */ float Gravity() {return gravity;} /** Destroys this object. */ virtual ~HCMap() {Destroy();} }; #endif // _HCMAP_INCLUDED holotz-castle-1.3.14-src/src/HCText.cpp0000644000175000001440000001456011177007633016617 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Text messages for Holotz's Castle. Base class. * @file HCText.cpp * @author Juan Carlos Seijo Prez * @date 25/06/2004 * @version 0.0.1 - 25/06/2004 - Primera versin. */ #include s32 HCText::textSpeed = 5; s32 HCText::minDelay = 2000; s32 HCText::maxAlpha = 180; bool HCText::Init(HCTextType _type, const char *_text, HCTheme *_theme, JFont *_font, JFontAlign a, bool _left, s32 _subtype, u8 r, u8 g, u8 b) { if (!_text || !_theme || !_font) { return false; } theme = _theme; font = _font; left = _left; subtype = _subtype; type = _type; JImage *img; switch (type) { case HCTEXTTYPE_DIALOG: img = theme->Dialog(subtype); break; default: case HCTEXTTYPE_NARRATIVE: img = theme->Narrative(subtype); break; } // Builds the text JImage *textImg; SDL_Color fg = {r, g, b, 0}; textImg = font->PrintfBlended(a, fg, _text); // Builds the frame s32 rows = 0, cols = 0, x = 0, y = 0; cols = (s32)floor(textImg->Width()/img[HCTDT_5].Width()) + 2; rows = (s32)floor(textImg->Height()/img[HCTDT_5].Height()) + 2; if (rows < 2) rows = 2; if (cols < 2) cols = 2; s32 w = cols * img[HCTDT_5].Width(), h = rows * img[HCTDT_5].Height(); // Makes space for the peak, if necessary if (type == HCTEXTTYPE_DIALOG) { text.Create(w, h + img[HCTDT_5].Height(), SDL_GetVideoSurface()->format->BitsPerPixel); } else { text.Create(w, h, SDL_GetVideoSurface()->format->BitsPerPixel); } // Upper left corner text.Paste(&img[HCTDT_7], 0, 0, img[HCTDT_7].Width(), img[HCTDT_7].Height(), x, y); x += img[HCTDT_7].Width(); // Upper side for (s32 i = 1; i < cols - 1; ++i) { text.Paste(&img[HCTDT_8], 0, 0, img[HCTDT_8].Width(), img[HCTDT_8].Height(), x, y); x += img[HCTDT_8].Width(); } // Upper right corner text.Paste(&img[HCTDT_9], 0, 0, img[HCTDT_9].Width(), img[HCTDT_9].Height(), x, y); x += img[HCTDT_9].Width(); y += img[HCTDT_5].Height(); for (s32 j = 1; j < rows - 1; ++j) { x = 0; // Left side text.Paste(&img[HCTDT_4], 0, 0, img[HCTDT_4].Width(), img[HCTDT_4].Height(), x, y); x += img[HCTDT_4].Width(); // Middle for (s32 i = 1; i < cols - 1; ++i) { text.Paste(&img[HCTDT_5], 0, 0, img[HCTDT_5].Width(), img[HCTDT_5].Height(), x, y); x += img[HCTDT_5].Width(); } // Right side text.Paste(&img[HCTDT_6], 0, 0, img[HCTDT_6].Width(), img[HCTDT_6].Height(), x, y); x += img[HCTDT_6].Width(); y += img[HCTDT_5].Height(); } // Lower left corner x = 0; text.Paste(&img[HCTDT_1], 0, 0, img[HCTDT_1].Width(), img[HCTDT_1].Height(), x, y); x += img[HCTDT_1].Width(); // Lower side for (s32 i = 1; i < cols - 1; ++i) { text.Paste(&img[HCTDT_2], 0, 0, img[HCTDT_2].Width(), img[HCTDT_2].Height(), x, y); x += img[HCTDT_2].Width(); } // Lower right corner text.Paste(&img[HCTDT_3], 0, 0, img[HCTDT_3].Width(), img[HCTDT_3].Height(), x, y); if (type == HCTEXTTYPE_DIALOG) { y += img[HCTDT_5].Height() - (img[HCTDT_LEFT].Height() - img[HCTDT_5].Height()); // The peak is placed in the middle point of the two first or last // frame-squares (depending on the left parameter). // If the image y N pixels high than the full square (HCTDT_5) then // it is placed N pixels up than a normal square (to adjust it to the frame). if (left) { // Places the peak facing left x = img[HCTDT_1].Width()/2; text.Paste(&img[HCTDT_LEFT], 0, 0, img[HCTDT_LEFT].Width(), img[HCTDT_LEFT].Height(), x, y); } else { // Places the peak facing rigth x = w - img[HCTDT_RIGHT].Width() - img[HCTDT_1].Width()/2; text.Paste(&img[HCTDT_RIGHT], 0, 0, img[HCTDT_RIGHT].Width(), img[HCTDT_RIGHT].Height(), x, y); } } switch (a) { case JFONTALIGN_LEFT: x = img[HCTDT_7].Width()/2; break; case JFONTALIGN_RIGHT: x = text.Width() - textImg->Width() - img[HCTDT_7].Width(); break; case JFONTALIGN_CENTER: x = (text.Width() - textImg->Width())/2; break; } y = (h - textImg->Height())/2; // Pega el texto text.Paste(textImg, 0, 0, textImg->Width(), textImg->Height(), x, y); text.ColorKey(0); delete textImg; // Initializes the fading timer if (textSpeed < 1) textSpeed = 1; if (textSpeed > 10) textSpeed = 10; if (minDelay < 1000) minDelay = 1000; if (maxAlpha > 255) maxAlpha = 255; if (maxAlpha < 0) maxAlpha = 180; // Must be a multiple of 15 maxAlpha -= (maxAlpha % 15); float delay; delay = 500.0f * float(strlen(_text))/float(textSpeed); if (delay < minDelay) delay = minDelay; timer.Start((s32)delay); return true; } s32 HCText::Update() { if (text.Alpha() > 0) { // Checks for fade-in if (timer.Cycles() == 0 && text.Alpha() < maxAlpha) { // make it appear text.Alpha(text.Alpha() + 15); } else if (timer.Cycles() > 0 && text.Alpha() > 0) { // make it disappear text.Alpha(text.Alpha() - 15); } // Updates the pos refered to the peak, if following something, else // let it as is if (trackX != &pos.x) { if (left) { text.X((s32)*trackX - theme->Dialog(subtype)[HCTDT_1].Width()/2 + pos.x); } else { text.X((s32)*trackX - text.Width() + theme->Dialog(subtype)[HCTDT_1].Width()/2 + pos.x); } text.Y((s32)*trackY - text.Height() + pos.y); return 1; } } else { return 2; } return 0; } void HCText::Draw() { text.Draw(); } void HCText::Track(float *x, float *y) { trackX = x ? x : &pos.x; trackY = y ? y : &pos.y; } void HCText::Reset() { timer.Start(timer.CycleTime()); text.Alpha(15); } void HCText::Destroy() { text.Destroy(); } holotz-castle-1.3.14-src/src/HCTheme.cpp0000644000175000001440000003314111177007633016731 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Theme for Holotz's castle. Loads several resources as floors * breaks, ladders and bars. * @file HCTheme.cpp * @author Juan Carlos Seijo Prez * @date 01/06/2004 * @version 0.0.1 - 01/06/2004 - First version. */ #include #ifndef HC_DATA_DIR #define HC_DATA_DIR "res/" #endif HCTheme::HCTheme() : imgFloor(0), numFloors(0), imgContFloor(0), numContFloors(0), sprBreak(0), numBreaks(0), sprObject(0), numObjects(0), imgBar(0), numBars(0), imgLadder(0), numLadders(0), imgRope(0), numRopes(0), sprMain(0), numMains(0), sprGuest(0), numGuests(0), sprBall(0), numBalls(0), sprRandom(0), numRandoms(0), sprStatic(0), numStatics(0), sprMaker(0), numMakers(0), sprChaser(0), numChasers(0), imgDialog(0), numDialogs(0), imgNarrative(0), numNarratives(0) { memset(name, 0, sizeof(name)); } s32 HCTheme::CountDirs() { char str[256]; s32 num = 0; bool cont = true; char cwd[2048]; getcwd(cwd, 2048); do { sprintf(str, "%d", num + 1); if (JFile::Exists(str)) { ++num; } else { cont = false; } } while (cont); return num; } bool HCTheme::LoadFloors() { if (0 != chdir("floor")) { return false; } numFloors = CountDirs(); if (0 == numFloors) { return false; } char strDir[5]; memset(strDir, 0, sizeof(strDir)); s32 i = 1; bool ret = true; // Creates the array imgFloor = new JImage[numFloors]; for (i = 1; ret && i <= numFloors; ++i) { sprintf(strDir, "%d", i); if (0 == chdir(strDir)) { if (!imgFloor[i-1].Load("floor.tga")) { fprintf(stderr, "HCTheme: Couldn't load floor.\n"); ret = false; } chdir(".."); } } chdir(".."); return ret; } bool HCTheme::LoadContFloors() { if (0 != chdir("contfloor")) { return false; } numContFloors = CountDirs(); if (0 == numContFloors) { return false; } char strDir[5]; memset(strDir, 0, sizeof(strDir)); s32 i = 1; bool ret = true; // Creates the array imgContFloor = new JImage* [numContFloors]; for (s32 c = 0; c < numContFloors; ++c) { imgContFloor[c] = new JImage[HCFDT_COUNT]; } for (i = 1; ret && i <= numContFloors; ++i) { sprintf(strDir, "%d", i); if (0 == chdir(strDir)) { // Load floor resources if (!imgContFloor[i-1][HCFDT_C].Load("c.tga") || !imgContFloor[i-1][HCFDT_C1].Load("c1.tga") || !imgContFloor[i-1][HCFDT_C1DL].Load("cdl.tga") || !imgContFloor[i-1][HCFDT_C3].Load("c3.tga") || !imgContFloor[i-1][HCFDT_C3DR].Load("cdr.tga") || !imgContFloor[i-1][HCFDT_C7].Load("c7.tga") || !imgContFloor[i-1][HCFDT_C7UL].Load("cul.tga") || !imgContFloor[i-1][HCFDT_C9].Load("c9.tga") || !imgContFloor[i-1][HCFDT_C9UR].Load("cur.tga") || !imgContFloor[i-1][HCFDT_CU].Load("cu.tga") || !imgContFloor[i-1][HCFDT_CD].Load("cd.tga") || !imgContFloor[i-1][HCFDT_CL].Load("cl.tga") || !imgContFloor[i-1][HCFDT_CR].Load("cr.tga") || !imgContFloor[i-1][HCFDT_S2].Load("s2.tga") || !imgContFloor[i-1][HCFDT_S4].Load("s4.tga") || !imgContFloor[i-1][HCFDT_S6].Load("s6.tga") || !imgContFloor[i-1][HCFDT_S8].Load("s8.tga") || !imgContFloor[i-1][HCFDT_SH].Load("sh.tga") || !imgContFloor[i-1][HCFDT_SV].Load("sv.tga") || !imgContFloor[i-1][HCFDT_I].Load("i.tga")) { fprintf(stderr, "HCTheme: Couldn't load continuous floor.\n"); ret = false; } chdir(".."); } else { fprintf(stderr, "HCTheme: Couldn't load continuous floor.\n"); } } chdir(".."); return ret; } bool HCTheme::LoadBreaks() { if (0 != chdir("break")) { return false; } numBreaks = CountDirs(); if (0 == numBreaks) { return false; } JRW f; char strDir[5]; memset(strDir, 0, sizeof(strDir)); s32 i = 1; bool ret = true; // Creates the array sprBreak = new JImageSprite*[numBreaks]; for (int c = 0; c < numBreaks; ++c) { sprBreak[c] = new JImageSprite[HCBDT_COUNT]; } for (i = 1; ret && i <= numBreaks; ++i) { sprintf(strDir, "%d", i); if (0 == chdir(strDir)) { if (!f.Create("normal.spr","rb") || (0 != sprBreak[i-1][HCBDT_NORMAL].Load(f)) || !f.Create("breaking.spr","rb") || (0 != sprBreak[i-1][HCBDT_BREAKING].Load(f)) || !f.Create("broken.spr","rb") || (0 != sprBreak[i-1][HCBDT_BROKEN].Load(f))) { fprintf(stderr, "HCTheme: Couldn't load break.\n"); ret = false; } chdir(".."); } } chdir(".."); return ret; } bool HCTheme::LoadBars() { if (0 != chdir("bar")) { return false; } numBars = CountDirs(); if (0 == numBars) { return false; } char strDir[5]; memset(strDir, 0, sizeof(strDir)); s32 i = 1; bool ret = true; // Creates the array imgBar = new JImage[numBars]; for (i = 1; ret && i <= numBars; ++i) { sprintf(strDir, "%d", i); if (0 == chdir(strDir)) { if (!imgBar[i-1].Load("bar.tga")) { fprintf(stderr, "HCTheme: Couldn't load bar.\n"); ret = false; } chdir(".."); } } chdir(".."); return ret; } bool HCTheme::LoadLadders() { if (0 != chdir("ladder")) { return false; } numLadders = CountDirs(); if (0 == numLadders) { return false; } char strDir[5]; memset(strDir, 0, sizeof(strDir)); s32 i = 1; bool ret = true; // Creates the array imgLadder = new JImage[numLadders]; for (i = 1; ret && i <= numLadders; ++i) { sprintf(strDir, "%d", i); if (0 == chdir(strDir)) { if (!imgLadder[i-1].Load("ladder.tga")) { fprintf(stderr, "HCTheme: Couldn't load ladder.\n"); ret = false; } chdir(".."); } } chdir(".."); return ret; } bool HCTheme::LoadDecos() { /**< @todo: load several decos */ return true; } bool HCTheme::LoadObjects() { if (0 != chdir("object")) { return false; } numObjects = CountDirs(); if (0 == numObjects) { return false; } JRW f; char strDir[5]; memset(strDir, 0, sizeof(strDir)); s32 i = 1; bool ret = true; // Creates the array sprObject = new JImageSprite*[numObjects]; for (int c = 0; c < numObjects; ++c) { sprObject[c] = new JImageSprite[HCODT_COUNT]; } for (i = 1; ret && i <= numObjects; ++i) { sprintf(strDir, "%d", i); if (0 == chdir(strDir)) { if (!f.Create("normal.spr","rb") || 0 != sprObject[i-1][HCODT_NORMAL].Load(f) || !f.Create("acquired.spr","rb") || 0 != sprObject[i-1][HCODT_ACQUIRED].Load(f)) { fprintf(stderr, "HCTheme: Couldn't load object.\n"); ret = false; } chdir(".."); } } chdir(".."); return ret; } bool HCTheme::LoadRopes() { if (0 != chdir("rope")) { return false; } numRopes = CountDirs(); if (0 == numRopes) { return false; } char strDir[5]; memset(strDir, 0, sizeof(strDir)); s32 i = 1; bool ret = true; // Creates the array imgRope = new JImage*[numRopes]; for (int c = 0; c < numRopes; ++c) { imgRope[c] = new JImage[HCRDT_COUNT]; } for (i = 1; ret && i <= numRopes; ++i) { sprintf(strDir, "%d", i); if (0 == chdir(strDir)) { if (!imgRope[i-1][HCRDT_EDGE].Load("edge.tga") || !imgRope[i-1][HCRDT_TOP].Load("top.tga") || !imgRope[i-1][HCRDT_MIDDLE].Load("middle.tga")) { fprintf(stderr, "HCTheme: Couldn't load rope.\n"); ret = false; } chdir(".."); } } chdir(".."); return ret; } bool HCTheme::LoadChar(const char *directory, JImageSprite ** &sprArr, s32 &num) { if (0 != chdir(directory)) { return false; } const char *files[] = {"stop.spr", "right.spr", "left.spr", "up.spr", "down.spr", "slide.spr", "jump.spr", "jumpleft.spr", "jumpright.spr", "fall.spr", "dead.spr", "hang.spr"}; JRW f; num = CountDirs(); if (0 == num) { return false; } char strDir[5]; memset(strDir, 0, sizeof(strDir)); s32 i = 1; bool ret = true; // Creates the array sprArr = new JImageSprite*[num]; for (s32 c = 0; c < num; ++c) { sprArr[c] = new JImageSprite[HCCDT_COUNT]; } // For each numbered dir loads each character's state for (s32 k = 1; ret && k <= num; ++k) { sprintf(strDir, "%d", k); if (0 == chdir(strDir)) { for (i = 0; i < HCCDT_COUNT; ++i) { if (JFile::Exists(files[i])) { if (f.Create(files[i],"rb")) { if (0 != sprArr[k - 1][i].Load(f)) { fprintf(stderr, "Error loading character sprite file %s\n", files[i]); return false; } } } // if res/char exists else { fprintf(stderr, "File %s does not exist.\n", files[i]); } } // for every state chdir(".."); } // if chdir() } chdir("../.."); return true; } bool HCTheme::LoadCharacters() { if (LoadChar("char/main", sprMain, numMains) && LoadChar("char/ball", sprBall, numBalls) && LoadChar("char/random", sprRandom, numRandoms) && LoadChar("char/static", sprStatic, numStatics) && LoadChar("char/maker", sprMaker, numMakers) && LoadChar("char/chaser", sprChaser, numChasers) && LoadChar("char/guest", sprGuest, numGuests)) { return true; } return false; } bool HCTheme::LoadDialogs() { if (0 != chdir("dialog")) { return false; } numDialogs = CountDirs(); if (0 == numDialogs) { return false; } char strDir[5]; memset(strDir, 0, sizeof(strDir)); s32 i = 1; bool ret = true; // Creates the array imgDialog = new JImage* [numDialogs]; for (s32 k = 0; k < numDialogs; ++k) { imgDialog[k] = new JImage[11]; } for (i = 1; ret && i <= numDialogs; ++i) { sprintf(strDir, "%d", i); if (0 == chdir(strDir)) { if (!imgDialog[i-1][HCTDT_1].Load("1.tga") || !imgDialog[i-1][HCTDT_2].Load("2.tga") || !imgDialog[i-1][HCTDT_3].Load("3.tga") || !imgDialog[i-1][HCTDT_4].Load("4.tga") || !imgDialog[i-1][HCTDT_5].Load("5.tga") || !imgDialog[i-1][HCTDT_6].Load("6.tga") || !imgDialog[i-1][HCTDT_7].Load("7.tga") || !imgDialog[i-1][HCTDT_8].Load("8.tga") || !imgDialog[i-1][HCTDT_9].Load("9.tga") || !imgDialog[i-1][HCTDT_LEFT].Load("left.tga") || !imgDialog[i-1][HCTDT_RIGHT].Load("right.tga")) { char strcwd[256]; getcwd(strcwd, 256); perror("error"); fprintf(stderr, "HCTheme: Couldn't load dialog. %s en dir %s\n", SDL_GetError(), strcwd); ret = false; } chdir(".."); } } chdir(".."); return ret; } bool HCTheme::LoadNarratives() { if (0 != chdir("narrative")) { return false; } numNarratives = CountDirs(); if (0 == numNarratives) { return false; } char strDir[5]; memset(strDir, 0, sizeof(strDir)); s32 i = 1; bool ret = true; // Creates the array imgNarrative = new JImage *[numNarratives]; for (s32 k = 0; k < numNarratives; ++k) { imgNarrative[k] = new JImage[9]; } for (i = 1; ret && i <= numNarratives; ++i) { sprintf(strDir, "%d", i); if (0 == chdir(strDir)) { if (!imgNarrative[i-1][HCTDT_1].Load("1.tga") || !imgNarrative[i-1][HCTDT_2].Load("2.tga") || !imgNarrative[i-1][HCTDT_3].Load("3.tga") || !imgNarrative[i-1][HCTDT_4].Load("4.tga") || !imgNarrative[i-1][HCTDT_5].Load("5.tga") || !imgNarrative[i-1][HCTDT_6].Load("6.tga") || !imgNarrative[i-1][HCTDT_7].Load("7.tga") || !imgNarrative[i-1][HCTDT_8].Load("8.tga") || !imgNarrative[i-1][HCTDT_9].Load("9.tga")) { fprintf(stderr, "HCTheme: Couldn't load narrative.\n"); ret = false; } chdir(".."); } } chdir(".."); return ret; } bool HCTheme::Load(const char *themeName) { Destroy(); char themeDir[PATH_MAX]; char curDir[PATH_MAX]; getcwd(curDir, PATH_MAX); // Checks for the theme in any of: // - installation directory // - current directory // - home directory strncpy(name, themeName, sizeof(name)); snprintf(themeDir, sizeof(themeDir), "theme/%s", name); if (!HCUtil::FindFile(themeDir)) { fprintf(stderr, "Couldn't find the theme %s\n", themeDir); return false; } if (0 != chdir(HCUtil::File())) { fprintf(stderr, "Couldn't find the theme %s\n", HCUtil::File()); } if (!LoadFloors() || !LoadContFloors() || !LoadDecos() || !LoadBars() || !LoadBreaks() || !LoadLadders() || !LoadObjects() || !LoadRopes() || !LoadCharacters() || !LoadDialogs() || !LoadNarratives()) { fprintf(stderr, "HCTheme: Couldn't load resources.\n"); chdir(curDir); return false; } chdir(curDir); return true; } void HCTheme::Destroy() { JDELETE_ARRAY(imgFloor); JDELETE_ARRAY_ARRAY(imgContFloor, numContFloors); JDELETE_ARRAY_ARRAY(sprBreak, numBreaks); JDELETE_ARRAY(imgBar); JDELETE_ARRAY(imgLadder); JDELETE_ARRAY_ARRAY(sprObject, numObjects); JDELETE_ARRAY_ARRAY(imgRope, numRopes); JDELETE_ARRAY_ARRAY(sprMain, numMains); JDELETE_ARRAY_ARRAY(sprBall, numBalls); JDELETE_ARRAY_ARRAY(sprRandom, numRandoms); JDELETE_ARRAY_ARRAY(sprStatic, numStatics); JDELETE_ARRAY_ARRAY(sprMaker, numMakers); JDELETE_ARRAY_ARRAY(sprChaser, numChasers); JDELETE_ARRAY_ARRAY(sprGuest, numGuests); JDELETE_ARRAY_ARRAY(imgDialog, numDialogs); JDELETE_ARRAY_ARRAY(imgNarrative, numNarratives); } holotz-castle-1.3.14-src/src/HCScript.h0000644000175000001440000000521111177007633016575 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Script engine for Holotz's Castle. * @file HCScript.h * @author Juan Carlos Seijo Prez * @date 03/07/2004 * @version 0.0.1 - 03/07/2004 - Primera versin. */ #ifndef _HCSCRIPT_INCLUDED #define _HCSCRIPT_INCLUDED #include #include #include class HCScriptBlock; class HCScript { protected: HCScriptBlock *blocks; /**< Execution blocks. */ s32 numBlocks; /**< Number of execution blocks. */ s32 curBlock; /**< Current block index. */ HCLevel *level; /**< Level for this script. */ public: /** Creates an empty script. Init and Load must be called in order to begin to use it. */ HCScript() : blocks(0), numBlocks(0), curBlock(0), level(0) {} /** Initializes this script. * @param _level Associated level. * @return true if succeeded, false if not. */ bool Init(HCLevel *_level); /** Loads a script. * @param filename Name of the file containing the script. * @return true if succeeded, false otherwise. */ bool Load(const char *filename); /** Skips the dialog actions in the current block. */ void Skip() {if (blocks) blocks[curBlock].Skip();} /** Updates this script. Checks for block termination and procceeds with * the next block if so. * @return 0 if the execution block hasn't changed, 1 if changed, -1 if the * script has finished. */ s32 Update(); /** Checks if the script has finished its execution. * @return true if it has finished, false otherwise. */ bool Finished(); /** Destroys the object. */ void Destroy() {JDELETE_ARRAY(blocks); numBlocks = curBlock = 0; level = 0;} /** Destroys the object. */ virtual ~HCScript() {Destroy();} }; #endif // _HCSCRIPT_INCLUDED holotz-castle-1.3.14-src/src/HCEnemyRandom.h0000644000175000001440000000351411177007633017553 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Defines a random enemy. * @file HCEnemyRandom.h * @author Juan Carlos Seijo Prez * @date 27/05/2004 * @version 0.0.1 - 27/05/2004 - First version. */ #ifndef _HCENEMYRANDOM_INCLUDED #define _HCENEMYRANDOM_INCLUDED #include #include /** Enemy that moves pseudo-randomly. Behaves like a ball but can go up and down too. */ class HCEnemyRandom : public HCEnemy { s32 lastRow; /**< Last visited row. */ s32 lastCol; /**< Last visited col. */ public: /** Creates an enemy random. */ HCEnemyRandom(); /** Updates the character. * @return Return value of the associated drawable's update. */ virtual s32 Update(); /** Updates collisions with the map and modifies the state and veloccity according * to the result of the collision tests. */ virtual void UpdateCollisions(); /** Destroys the object and allows scalar destruction. */ virtual ~HCEnemyRandom() {} }; #endif // _HCENEMYRANDOM_INCLUDED holotz-castle-1.3.14-src/src/HCScript.cpp0000644000175000001440000000441611177007633017136 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Script engine for Holotz's Castle. * @file HCScript.cpp * @author Juan Carlos Seijo Prez * @date 03/07/2004 * @version 0.0.1 - 03/07/2004 - Primera versin. */ #include bool HCScript::Init(HCLevel *_level) { if (!_level) { return false; } level = _level; return true; } bool HCScript::Load(const char *filename) { JTextFile f; if (!f.Load(filename, "rt")) { return false; } // Creates the necessary blocks numBlocks = f.CountString("{"); if (numBlocks == 0) { fprintf(stderr, "HCScript error: No execution blocks.\n"); return false; } f.StartOfDocument(); if (numBlocks != (s32)f.CountString("}")) { fprintf(stderr, "HCScript error: Mismatched braces!\n"); return false; } blocks = new HCScriptBlock[numBlocks]; // Process each block s8 *begin, *end; f.StartOfDocument(); for (s32 i = 0; i < numBlocks; ++i) { f.FindNext("{"); begin = f.GetPos(); f.FindNext("}"); end = f.GetPos(); f.SetPos(begin); // Load the blocks blocks[i].Load(f); } // Start! blocks[0].Current(); return true; } s32 HCScript::Update() { if (curBlock == numBlocks) { return -1; } s32 ret = blocks[curBlock].Update(); if (blocks[curBlock].Finished()) { ++curBlock; if (curBlock == numBlocks) { return -1; } // Prepares the block for execution blocks[curBlock].Current(); } return ret; } bool HCScript::Finished() { return curBlock == numBlocks; } holotz-castle-1.3.14-src/src/HCObject.cpp0000644000175000001440000000453311177007633017100 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Object definition file. * @file HCObject.cpp * @author Juan Carlos Seijo Prez * @date 30/04/2004 * @version 0.0.1 - 30/04/2004 - First version. */ #include s32 HCObject::Update() { switch (state) { case HCOBJECTSTATE_NORMAL: normal.Update(); return 0; case HCOBJECTSTATE_ACQUIRED: if (-1 == acquired.Update()) { // If the acquired state has ended, places it in a non-drawable state state = HCOBJECTSTATE_NONE; acquired.FirstFrame(); } return 1; case HCOBJECTSTATE_NONE: default: // Finished with this object return -1; } } void HCObject::Draw() { switch (state) { case HCOBJECTSTATE_NORMAL: normal.Draw(); return; case HCOBJECTSTATE_ACQUIRED: acquired.Draw(); return; case HCOBJECTSTATE_NONE: default: return; } } bool HCObject::Init(HCTheme *theme) { normal.Destroy(); acquired.Destroy(); normal.Ref(theme->Object(subtype)[HCODT_NORMAL]); acquired.Ref(theme->Object(subtype)[HCODT_ACQUIRED]); return true; } u32 HCObject::Load(JRW &file) { if (0 == file.ReadLE32(&subtype) || 0 == file.ReadLE32((u32 *)&pos.x) || 0 == file.ReadLE32((u32 *)&pos.y)) { fprintf(stderr, "Error loading the object.\n"); return 2; } Pos(pos.x, pos.y); return 0; } u32 HCObject::Save(JRW &file) { if (0 == file.WriteLE32(&subtype) || 0 == file.WriteLE32((u32 *)&pos.x) || 0 == file.WriteLE32((u32 *)&pos.y)) { fprintf(stderr, "Error saving the object.\n"); return 2; } return 0; } holotz-castle-1.3.14-src/src/HCScriptAction.cpp0000644000175000001440000003162511177007633020276 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Definition of script actions. * @file HCScriptAction.cpp * @author Juan Carlos Seijo Prez * @date 03/07/2004 * @version 0.0.1 - 03/07/2004 - Primera versin. */ #include #include s32 HCScriptAction::Update() { finished = true; return 0; } HCCharacter * HCScriptAction::Character(const char *name, s32 index) { HCApp *app = (HCApp *)JApp::App(); if (0 == strcmp(name, "main")) { return app->Level()->Character(); } else if (0 == strcmp(name, "enemy")) { if (index >= app->Level()->NumEnemies()) { fprintf(stderr, "No such enemy: %d\n", index); } return app->Level()->Enemies()[index]; } else { fprintf(stderr, "HCScriptAction: Unknown character %s!\n" "Available are main and enemy\n", name); } return 0; } HCScriptAction * HCScriptAction::Load(JTextFile &f) { char str[1024]; if (f.FindNext("[")) { s8 * start = f.GetPos(); if (f.SkipNextWord()) { if (f.ReadWord(str)) { if (strcmp(str, "MOVE") == 0) { // Move action HCScriptActionMove *action = new HCScriptActionMove; f.SetPos(start); if (action->Load(f)) { f.FindNext("]"); return action; } } else if (strcmp(str, "DIALOG") == 0) { // Dialog action HCScriptActionDialog *action = new HCScriptActionDialog; f.SetPos(start); if (action->Load(f)) { f.FindNext("]"); return action; } } else if (strcmp(str, "NARRATIVE") == 0) { // Narrative action HCScriptActionNarrative *action = new HCScriptActionNarrative; f.SetPos(start); if (action->Load(f)) { f.FindNext("]"); return action; } } else if (strcmp(str, "SOUND") == 0) { // Sound action HCScriptActionSound *action = new HCScriptActionSound; f.SetPos(start); if (action->Load(f)) { f.FindNext("]"); return action; } } else if (strcmp(str, "WAIT") == 0) { // Wait action HCScriptActionWait *action = new HCScriptActionWait; f.SetPos(start); if (action->Load(f)) { f.FindNext("]"); return action; } } else { // Unknown action fprintf(stderr, "Unknown action found!\n"); return 0; } } } } else { fprintf(stderr, "HCScriptAction: No action found!\n"); } return 0; } bool HCScriptActionMove::Init(HCCharacter *_character, s32 dir, s32 amount) { if (0 == _character) { return false; } character = _character; totalAmount = amount; direction = dir; return true; } bool HCScriptActionMove::Load(JTextFile &f) { char charName[32]; s32 index; if (4 == sscanf(f.GetPos(), "[ MOVE %[A-Za-z] ( %d ) dir=%d amount=%d ]", charName, &index, &direction, &totalAmount)) { HCCharacter *tmpChar; tmpChar = Character(charName, index); if (0 == tmpChar) { return false; } if (direction != 2 && (direction < 4 || direction > 9)) { fprintf(stderr, "HCScriptActionMove: Direction must be one of 2 or 4 to 9!\n"); return false; } return Init(tmpChar, direction, totalAmount); } fprintf(stderr, "HCScriptActionMove: Failed to load!\n"); return false; } s32 HCScriptActionMove::Update() { if (finished) { return 0; } // Finished if not moving leftright or updown. switch (direction) { case 2: character->Act(HCCA_DOWN); if (character->State() != HCCS_DOWN) { character->State(HCCS_STOP); character->Veloccity().y = 0; finished = true; return 0; } break; case 4: character->Act(HCCA_LEFT); if (character->Acceleration().x > -0.001f/* || character->State() != HCCS_LEFT*/) { character->Veloccity().x = character->Acceleration().x = 0; character->State(HCCS_STOP); finished = true; return 0; } break; case 5: character->Act(HCCA_JUMP); if (character->Veloccity().y > 0.0f || character->State() != HCCS_JUMP) { finished = true; return 0; } break; case 6: character->Act(HCCA_RIGHT); if (character->Acceleration().x < 0.001f /*|| character->State() != HCCS_RIGHT*/) { character->Veloccity().x = character->Acceleration().x = 0; character->State(HCCS_STOP); finished = true; return 0; } break; case 7: character->Act(HCCA_JUMP | HCCA_LEFT); if (character->Acceleration().x > -0.001f || character->State() != HCCS_JUMPLEFT) { finished = true; return 0; } break; case 8: character->Act(HCCA_UP); if (character->State() != HCCS_UP) { character->Veloccity().y = 0; character->State(HCCS_STOP); finished = true; return 0; } break; case 9: character->Act(HCCA_JUMP | HCCA_RIGHT); if (character->Acceleration().x < 0.001f || character->State() != HCCS_JUMPRIGHT) { finished = true; return 0; } break; default: character->Veloccity().y = 0; character->Veloccity().x = character->Acceleration().x = 0; character->Act(HCCA_STOP); break; } s32 row = character->Row(); s32 col = character->Col(); // Cell changed? if (row != lastRow) { lastRow = row; switch (direction) { // Only counts for up and down actions case 8: case 2: ++curAmount; break; default: break; } } if (col != lastCol) { // This governs also the jumpxxx actions lastCol = col; ++curAmount; } // Travelled the specified amount of cells if (curAmount >= totalAmount) { finished = true; } if (finished) { switch (direction) { case 5: character->Act(HCCA_JUMP); break; default: character->Act(HCCA_STOP); break; } direction = 0; return 0; } return 1; } void HCScriptActionMove::Current() { lastRow = orgRow = character->Row(); lastCol = orgCol = character->Col(); curAmount = 0; } bool HCScriptActionDialog::Init(HCCharacter *_character, const char *text, HCTheme *theme, JFont *font, JFontAlign align, bool left, s32 subtype, u8 r, u8 g, u8 b) { if (0 == _character || 0 == theme || 0 == font) { return false; } character = _character; if (!dialog.Init(HCTEXTTYPE_DIALOG, text, theme, font, align, left, subtype, r, g, b)) { fprintf(stderr, "Couldn't initialize dialog action.\n"); return false; } float *x = (float*)&((character->JDrawable::Pos()).x); float *y = (float*)&((character->JDrawable::Pos()).y); dialog.Track(x, y); if (left) dialog.Pos(character->CurSprite()->MaxW()/2, -character->CurSprite()->MaxH()/2); else dialog.Pos(-character->CurSprite()->MaxH()/2, -character->CurSprite()->MaxH()/2); return true; } bool HCScriptActionDialog::Load(JTextFile &f) { char charName[32]; char text[256]; s32 index, left, speed, r, g, b, size, txtAlign, st; JFontAlign fontAlign; memset(text, 0, sizeof(text)); memset(charName, 0, sizeof(charName)); if (11 == sscanf(f.GetPos(), "[ DIALOG %[A-Za-z](%d) text=\"%[^\"]\" txtAlign=%d speed=%d size=%d align=%d r=%d g=%d b=%d subtype=%d ]", charName, &index, text, &txtAlign, &speed, &size, &left, &r, &g, &b, &st)) { HCApp *app = (HCApp*)JApp::App(); HCCharacter *tmpChar = Character(charName, index); JClamp(size, 1, 3); JFont *fnt; switch (size) { default: case 1: fnt = app->FontSmall(); break; case 2: fnt = app->FontMedium(); break; case 3: fnt = app->FontLarge(); break; } s32 oldSpeed = HCText::Speed(); switch (txtAlign % 3) { case 0: fontAlign = JFONTALIGN_RIGHT; break; default: case 1: fontAlign = JFONTALIGN_LEFT; break; case 2: fontAlign = JFONTALIGN_CENTER; break; } Init(tmpChar, text, &app->Level()->Theme(), fnt, fontAlign, left != 0, st, r, g, b); HCText::Speed(oldSpeed); } else { fprintf(stderr, "HCScriptActionDialog: Failed to load!\n"); return false; } return true; } s32 HCScriptActionDialog::Update() { if (!finished) { if (!dialog.Visible()) { finished = true; } return 1; } return 0; } void HCScriptActionDialog::Current() { dialog.Reset(); character->Dialog(&dialog); } bool HCScriptActionNarrative::Init(s32 alignment, const char *text, HCTheme *theme, JFont *font, JFontAlign align, s32 subtype, u8 r, u8 g, u8 b) { if (0 == theme || 0 == font) { return false; } if (!narrative.Init(HCTEXTTYPE_NARRATIVE, text, theme, font, align, false, subtype, r, g, b)) { fprintf(stderr, "Couldn't initialize narrative action.\n"); return false; } // Aligns the frame within the screen s32 x, y; switch (alignment) { case 1: x = 0; y = JApp::App()->Height() - narrative.Image().Height(); break; case 2: x = (JApp::App()->Width() - narrative.Image().Width())/2; y = JApp::App()->Height() - narrative.Image().Height(); break; case 3: x = JApp::App()->Width() - narrative.Image().Width(); y = JApp::App()->Height() - narrative.Image().Height(); break; case 4: x = 0; y = (JApp::App()->Height() - narrative.Image().Height())/2; break; case 5: x = (JApp::App()->Width() - narrative.Image().Width())/2; y = (JApp::App()->Height() - narrative.Image().Height())/2; break; case 6: x = JApp::App()->Width() - narrative.Image().Width(); y = (JApp::App()->Height() - narrative.Image().Height())/2; break; default: case 7: x = 0; y = 0; break; case 8: x = (JApp::App()->Width() - narrative.Image().Width())/2; y = 0; break; case 9: x = JApp::App()->Width() - narrative.Image().Width(); y = 0; break; } narrative.Pos(x, y); return true; } bool HCScriptActionNarrative::Load(JTextFile &f) { char text[256]; s32 align, speed, r, g, b, size, txtAlign, st; JFontAlign fontAlign; memset(text, 0, sizeof(text)); if (9 == sscanf(f.GetPos(), "[ NARRATIVE text=\"%[^\"]\" txtAlign=%d speed=%d size=%d align=%d r=%d g=%d b=%d subtype=%d ]", text, &txtAlign, &speed, &size, &align, &r, &g, &b, &st)) { HCApp *app = (HCApp*)JApp::App(); JClamp(size, 1, 3); JFont *fnt; switch (size) { default: case 1: fnt = app->FontSmall(); break; case 2: fnt = app->FontMedium(); break; case 3: fnt = app->FontLarge(); break; } s32 oldSpeed = HCText::Speed(); switch (txtAlign % 3) { case 0: fontAlign = JFONTALIGN_RIGHT; break; default: case 1: fontAlign = JFONTALIGN_LEFT; break; case 2: fontAlign = JFONTALIGN_CENTER; break; } Init(align, text, &app->Level()->Theme(), fnt, fontAlign, st, r, g, b); HCText::Speed(oldSpeed); } else { fprintf(stderr, "HCScriptActionNarrative: Failed to load!\n"); return false; } return true; } s32 HCScriptActionNarrative::Update() { if (!finished) { if (!narrative.Visible()) { finished = true; } return 1; } return 0; } void HCScriptActionNarrative::Current() { narrative.Reset(); ((HCApp*)JApp::App())->Level()->Narrative(&narrative); } bool HCScriptActionSound::Init(const char *filename, s32 loops, bool waitToEnd) { numLoops = loops; if (!waitToEnd) { finished = true; } if (JApp::App()->SoundEnabled()) { return (sound.LoadWave(filename)); } else { return true; } return false; } void HCScriptActionSound::Current() { if (JApp::App()->SoundEnabled()) { sound.Play(-1, numLoops); } } bool HCScriptActionSound::Load(JTextFile &f) { s32 waitToEnd, loops; char file[1024]; if (3 == sscanf(f.GetPos(), "[ SOUND file=\"%[^\"]\" loops=%d waitToEnd=%d ]", file, &loops, &waitToEnd)) { char filename[1024]; snprintf(filename, sizeof(filename), "%s%s", HC_DATA_DIR, file); return Init(filename, loops, waitToEnd != 0); } return false; } s32 HCScriptActionSound::Update() { if (!finished) { if (!sound.IsPlaying()) { finished = true; } } return 0; } void HCScriptActionWait::Current() { timer.Start(ms); } bool HCScriptActionWait::Init(s32 millis) { ms = millis; return true; } bool HCScriptActionWait::Load(JTextFile &f) { s32 millis; if (1 == sscanf(f.GetPos(), "[ WAIT millis=%d ]", &millis)) { return Init(millis); } return false; } s32 HCScriptActionWait::Update() { if (!finished) { if (timer.Changed()) { finished = true; } } return 0; } holotz-castle-1.3.14-src/src/HCPreferences.h0000644000175000001440000001430111177007633017572 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Preferences file for Holotz's Castle. * @file HCPreferences.h * @author Juan Carlos Seijo Prez * @date 24/08/2004 * @version 0.0.1 - 24/08/2004 - First version. */ #ifndef _HCPREFERENCES_INCLUDED #define _HCPREFERENCES_INCLUDED #include #include #include #include #define HCPREFERENCES_TOY 5 // Toy difficulty level #define HCPREFERENCES_EASY 4 // Easy difficulty level #define HCPREFERENCES_NORMAL 2 // Normal difficulty level #define HCPREFERENCES_HARD 1 // Hard difficulty level #define HCPREFERENCES_DEFFILENAME "preferences.txt" #define HCPREFERENCES_DEFLANGUAGE 0 #define HCPREFERENCES_DEFVIDEOMODE 0 #define HCPREFERENCES_DEFBPP 16 #define HCPREFERENCES_DEFFULLSCREEN false #define HCPREFERENCES_DEFSOUND true #define HCPREFERENCES_LANGFILE "languages.txt" #define HCPREFERENCES_DEFDIFFICULTY HCPREFERENCES_NORMAL class HCPreferences { protected: char **langs; /**< Available languages strings. */ char **langCodes; /**< Country codes strings for available languages (es, en, de, etc.). */ s32 numLangs; /**< Number of different languages. */ s32 curLang; /**< Current language index/country code. */ s32 videoMode; /**< Video mode from the list of video modes supported. */ JVideoMode *videoModes; /**< Available video modes. */ s32 numVideoModes; /**< Number of available video modes. */ s32 bpp; /**< Color depth in bits per pixel. */ bool fullscreen; /**< Fullscreen/windowed flag. */ bool sound; /**< Sound on/off flag. */ s32 difficulty; /**< Level of difficulty (Easy/Medium/Hard). */ static HCPreferences *instance; /**< Unique instance of the object. */ public: /** Creates an empty preferences object. */ HCPreferences(); /** Returns the instance of this preference object. * @return Instance ob this object. */ static HCPreferences * Prefs() {return instance;} /** Sets the language. * @param lang Index of the available languages to use. */ void CurLang(s32 curLanguage) {curLang = curLanguage; JClamp(curLang, 0, numLangs);} /** Gets the current language index. * @return Current language index. */ s32 CurLang() {return curLang;} /** Gets the available languages strings. * @return Available languages strings. */ char **Langs() {return langs;} /** Gets the available language country codes. * @return Available language country codes. */ char **LangCodes() {return langCodes;} /** Gets the number of available languages. * @return Number of available languages. */ s32 NumLangs() {return numLangs;} /** Gets the number of available video modes. * @return Number of available video modes. */ s32 NumVideoModes() {return numVideoModes;} /** Gets the available video modes. * @return Available video modes or 0 if none exist. */ JVideoMode * VideoModes() {return videoModes;} /** Sets the video mode number. * @param Ordinal of the video mode to use, based upon the available modes. */ void VideoMode(s32 mode) {videoMode = mode;} /** Gets the video mode number. * @return Video mode number. */ s32 VideoMode() {return videoMode;} /** Sets color depth. * @param New color depth. Supports 8, 16, 24 and 32 bits. */ void BPP(s32 newBPP); /** Gets the color depth. * @return Color depth. */ s32 BPP() {return bpp;} /** Sets windowed or fullscreen mode. * @param true to use fullscreen mode, false for windowed mode. */ void Fullscreen(bool fs) {fullscreen = fs;} /** Gets the playing mode (windowed or full screen). * @return true if fullscreen mode, false if windowed mode. */ bool Fullscreen() {return fullscreen;} /** Sets sound mode. * @param true activates sound, false deactivates it. */ void Sound(bool fs) {sound = fs;} /** Gets the sound mode. * @return true if sound is active, false if not. */ bool Sound() {return sound;} /** Sets the level of difficulty. * @param Level of difficulty, one of HCPREFERENCES_EASY, HCPREFERENCES_NORMAL, HCPREFERENCES_HARD. */ void Difficulty(s32 newDiff) {difficulty = newDiff; JClamp(difficulty, HCPREFERENCES_HARD, HCPREFERENCES_TOY);} /** Gets the level of difficulty. * @return Current level of difficulty, one of HCPREFERENCES_EASY, HCPREFERENCES_NORMAL, HCPREFERENCES_HARD. */ s32 Difficulty() {return difficulty;} /** Resets to defaults. */ void Reset(); /** Load the preferences file. * @param filename Name of the file to use or 0 (the default) to use the default file name. * @return 0 if loading succeeded, 1 if I/O error, 2 if integrity error. */ s32 Load(const char *filename = 0); /** Saves the preferences file. * @param filename Name of the file to use or 0 (the default) to use the default file name. * @return 0 if saving succeeded, 1 if I/O error, 2 if integrity error. */ s32 Save(const char *filename = 0); /** Destroys this object. */ void Destroy(); /** Destroys this object. */ virtual ~HCPreferences() {Destroy();} }; #endif // _HCPREFERENCES_INCLUDED holotz-castle-1.3.14-src/src/HCPlaylist.cpp0000644000175000001440000000642711177007634017500 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Playlist for Holotz's castle. * @file HCPlaylist.cpp * @author Juan Carlos Seijo Prez * @date 25/08/2004 * @version 0.0.1 - 25/08/2004 - First version. */ #include #include #ifdef _WIN32 #define FILESYS_BAR '\\' #else #define FILESYS_BAR '/' #endif bool HCPlaylist::Load(const char *file) { if (file == 0) { if (!HCUtil::FindStories()) { fprintf(stderr, "No stories found. Check manual.\n"); return false; } Destroy(); for (u32 i = 0; i < HCUtil::Stories().size(); ++i) { stories.push_back(strdup(HCUtil::Stories().at(i).Str())); } OrderStories(); GoTo(stories[0]); return true; } if (!HCUtil::FindFile(file)) { fprintf(stderr, "Couldn't find playlist file %s. Check manual.\n", file); } JTextFile f; if (!f.Load(HCUtil::File())) { return false; } Destroy(); JString strFile; char str[4096]; // Fills the playlist with each line in the file while (f.ReadLine(str)) { strFile = "stories/"; strFile += str; if (HCUtil::FindFile(strFile)) { stories.push_back(strdup(str)); } else { fprintf(stderr, "Playlist entry not found: %s. Check manual.\n", str); } } if (stories.size() > 0) { OrderStories(); GoTo(stories[0]); } return stories.size() > 0; } bool HCPlaylist::NextStory() { if (curStory + 1 >= (s32)stories.size()) { return false; } ++curStory; if (!HCUtil::FindFile(JString("stories/") + stories[curStory])) { --curStory; return false; } strncpy(storyDir, HCUtil::Path(), sizeof(storyDir)); strncat(storyDir, "stories/", sizeof(storyDir)); return true; } bool HCPlaylist::GoTo(const char *_storyName) { bool found = false; for (u32 i = 0; !found && i < stories.size(); ++i) { if (strcmp(stories[i], _storyName) == 0) { curStory = i; found = true; } } if (found) { if (!HCUtil::FindFile(JString("stories/") + stories[curStory])) { return false; } strncpy(storyDir, HCUtil::Path(), sizeof(storyDir)); strncat(storyDir, "stories/", sizeof(storyDir)); } return found; } void HCPlaylist::OrderStories() { char *tmp; for (u32 i = 0; i < stories.size() - 1; ++i) { for (u32 j = 0; j < stories.size() - 1 - i; ++j) { if (strcmp(stories[j+1], stories[j]) < 0) { tmp = stories[j]; stories[j] = stories[j+1]; stories[j+1] = tmp; } } } } void HCPlaylist::Destroy() { for (u32 i = 0; i < stories.size(); ++i) { free(stories[i]); } stories.clear(); } holotz-castle-1.3.14-src/src/HolotzCastle.h0000644000175000001440000003522711177007634017544 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Pérez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Pérez * jacob@mainreactor.net */ /** The game of Holotz's Castle. * @file HolotzCastle.h * @author Juan Carlos Seijo Pérez * @date 27/04/2004 * @version 0.0.1 - 27/04/2004 - First version. */ #ifndef _HOLOTZ_INCLUDED #define _HOLOTZ_INCLUDED #include #include #include #include #include #include #include #include #include #include class HCScript; class HCScriptAction; class HCEnemy; class HCEnemyChaser; #define ACKNOWLEDGEMENTS \ "Special thanks go to:\n"\ " \n"\ "Martinica (the best beta-tester mother),\n"\ "Bebo, Ampis & Roberto & Oscar, Padre, Cris &\n"\ "Rafa & Lucía & Paula & Rafael\n"\ "Quique & Marga & Jorge & Javier,\n"\ "Carlos & Julia & Jorge & Jose\n"\ "Ana & Nathan & María & Marco,\n"\ "Jorge & Amelia & Alejandro,\n"\ "Carlos & Vero & Álvaro & Irene, Edu & Vero,\n"\ "Alex, Chily, Santos & Rocío & África, Félix &\n"\ "Carmen, Ossuna's, Jose & Gloria, Ori &\n"\ "Loli, Diana & David, Luis,\n"\ "Ángel, Celia, Íñigo,\n"\ "Markus Rath/Ronny Standtke (German translation),\n"\ "Milan Babuškov (Add-on levels),\n"\ "Miriam Ruiz (Debian package),\n"\ "Nicolas Elie (French translation),\n"\ "Вячеслав Диконов \n(Vyacheslav Dikonov - Russian translation),\n"\ "3ARRANO Euskalgintza (Euskara translation),\n"\ "Andreas Jochens (AMD64 Patches),\n"\ "Maksim Mokriyev (Ukranian translation)\n"\ "Filip (Triple T) Bártek (Czech translation)\n"\ "Pierre-Paul Lavoie (FreeBSD porting)\n"\ "Filipe Silva (Portuguese translation)\n"\ "Ben Wong (English translation, patches)\n"\ "Federico 'hs1' Tolomei (Italian translation)\n"\ "Jarno van der Kolk (Dutch translation/Joystick)\n"\ "Jason Woofenden (PPC Patches)\n"\ "Syltbullen (Swedish translation)\n"\ "Nikola Smolenski (Serbian translation)\n"\ "...and you for playing!" /** Possible states of the game. */ typedef enum { HCS_MENU = 1, /**< Showing main menu. */ HCS_PLAYING, /**< Playing. */ HCS_PAUSED, /**< Paused. */ HCS_INTRO, /**< Intro. */ HCS_CREDITS, /**< Game Credits. */ HCS_SCRIPT, /**< Scripted level. */ HCS_ENDLEVEL, /**< Level ends. */ HCS_GAMEOVER, /**< Game over. */ HCS_HELP, /**< Help. */ } HCState; typedef enum { HCCREDITS_PROGRAMMING = 0, /**< Programming image. */ HCCREDITS_STORY, /**< Story image. */ HCCREDITS_DRAWING0, /**< Drawing 1st image. */ HCCREDITS_DRAWING1, /**< Drawing 2nd image. */ HCCREDITS_DRAWING2, /**< Drawing 3rd image. */ HCCREDITS_ANIMATION0, /**< Animation 1st image. */ HCCREDITS_ANIMATION1, /**< Animation 2nd image. */ HCCREDITS_ANIMATION2, /**< Animation 3rd image. */ HCCREDITS_ANIMATION3, /**< Animation 4th image. */ HCCREDITS_MUSIC, /**< Music image. */ HCCREDITS_HOLOTZCASTLE, /**< Holotz's castle image. */ HCCREDITS_LOGO, /**< Mainrector image. */ HCCREDITS_IMAGE_COUNT /**< Number of images. */ } HCCreditsImageType; typedef enum { HCCREDITS_PROGRAMMING_TEXT = 0, /**< Programming text. */ HCCREDITS_STORY_TEXT, /**< Story text. */ HCCREDITS_DRAWING_TEXT, /**< Drawing 1st text. */ HCCREDITS_ANIMATION_TEXT, /**< Animation 1st text. */ HCCREDITS_MUSIC_TEXT, /**< Music text. */ HCCREDITS_HOLOTZCASTLE_TEXT, /**< Holotz's castle text. */ HCCREDITS_LOGO_TEXT, /**< Holotz's castle text. */ HCCREDITS_ACK_TEXT, /**< Acknowledgements text. */ HCCREDITS_TEXT_COUNT /**< Number of texts. */ } HCCreditsTextType; #define HC_NUM_SLOTS 5 /**< Number of slots to save and load. */ /** Application class. */ class HCApp : public JApp { protected: HCState lastState; /**< Last state of the game. */ HCState state; /**< Current state of the game. */ JImage *imgMenu; /**< Main title background. */ JTextMenu *menu; /**< Application menu. */ JImage *imgCredits[HCCREDITS_IMAGE_COUNT]; /**< Credits images. */ JImage *textCredits[HCCREDITS_TEXT_COUNT]; /**< Credits texts. */ s32 inDrawing; /**< Current drawing fading in. */ s32 outDrawing; /**< Current drawing fading out. */ s32 inAnimation; /**< Current animation fading in. */ s32 outAnimation; /**< Current animation fading out. */ HCPreferences preferences; /**< Preferences for the game. */ HCPlaylist playlist; /**< Playlist with the story order. */ char *playlistName; /**< Name of the playlist. */ JTimer timerGeneral; /**< Timer for general use. */ JImage *imgIntro; /**< Intro image (MainReactor). */ JImage *imgFatalFun; /**< Intro image (Fatalfun). */ JImage *textIntro; /**< Intro text (Presents...). */ HCLevel level; /**< Game level. */ HCScript script; /**< Level script. */ s32 levelNumber; /**< Current level within the current world. */ JChunk musicMainTitle; /**< Main title screen music. */ JChunk musicCredits; /**< Credits screen music. */ JChunk musicGameOver; /**< Game over screen music. */ JChunk musicBeginLevel; /**< Start-of-level music. */ JFont fontSmall; /**< Small font. */ JFont fontMedium; /**< Medium font. */ JFont fontLarge; /**< Large font. */ JImage *imgBack; /**< Image for background storing. */ HCText *textBack; /**< General purpouse text message. */ JImage *imgHelp; /**< Help text message. */ HCLoadSaveSlot saveData[HC_NUM_SLOTS];/**< Slots for loading and saving. */ bool stateChanged; /**< App state change flag */ /** Initializes the menu state. * @return true if initialization succeeded, false if not. */ bool InitMenu(); /** Initializes the intro state. * @return true if initialization succeeded, false if not. */ bool InitIntro(); /** Initializes the paused state. * @return true if initialization succeeded, false if not. */ bool InitPaused(); /** Initializes the playing state. * @return true if initialization succeeded, false if not. */ bool InitPlaying(); /** Initializes the game over state. * @return true if initialization succeeded, false if not. */ bool InitGameOver(); /** Initializes the end level state. * @return true if initialization succeeded, false if not. */ bool InitEndLevel(); /** Initializes the credits state. * @return true if initialization succeeded, false if not. */ bool InitCredits(); /** Initializes the help text. * @return true if initialization succeeded, false if not. */ bool InitHelp(); /** Destroys the help text. */ void DestroyHelp(); /** Initializes the data slot for loading and saving. * @return true if initialization succeeded, false if not. */ bool InitSlots(); /** Initializes the sound. * @return true if initialization succeeded, false if not. */ bool InitSound(); /** (Re)initializes the fonts. * @return true if initialization succeeded, false if not. */ bool InitFonts(); /** Callback: App exit. * @param data App. */ static void OnExit(void *data); /** Callback: Credits. * @param data App. */ static void OnCredits(void *data); /** Callback: Difficulty level select. * @param data Value casted to s32, HCPREFERENCES_EASY or HCPREFERENCES_NORMAL or HCPREFERENCES_HARD. */ static void OnDifficulty(void *data); /** Callback: Sound select. * @param data Value casted to s32, 0 to turn off and 1 to turn on. */ static void OnSound(void *data); /** Callback: New game. */ static void OnNew(void *data); /** Callback: Continue game. */ static void OnContinue(void *data); /** Callback: Help. */ static void OnHelp(void *data); /** Callback: video mode select. * @param data Mode number according to preferences casted to a s32. */ static void OnVideoMode(void *data); /** Callback: Color depth select. * @param data BPP casted to a s32. */ static void OnBPP(void *data); /** Callback: Window mode select. * @param data Window mode casted to s32. */ static void OnWindowMode(void *data); /** Callback: Language select. * @param data Language index according to preferences casted to a s32. */ static void OnLanguage(void *data); /** Callback: Restore defaults. * @param data Null. */ static void OnDefaults(void *data); /** Callback: Load game. * @param data Slot number to load from. */ static void OnLoad(void *data); /** Callback: Save game. * @param data Slot number to save to. */ static void OnSave(void *data); /** Draws the menu. * @return true if drawing succeeded, false if not. */ bool DrawMenu(); /** Draws the game. * @return true if drawing succeeded, false if not. */ bool DrawPlaying(); /** Draws the game paused. * @return true if drawing succeeded, false if not. */ bool DrawPaused(); /** Draws the game in the ending level state. * @return true if drawing succeeded, false if not. */ bool DrawEndLevel(); /** Draws the game in the game over state. * @return true if drawing succeeded, false if not. */ bool DrawGameOver(); /** Draws the hall of fame. * @return true if drawing succeeded, false if not. */ bool DrawIntro(); /** Draws the credits. * @return true if drawing succeeded, false if not. */ bool DrawCredits(); /** Draws the load state. * @return true if drawing succeeded, false if not. */ bool DrawLoad(); /** Draws the save state. * @return true if drawing succeeded, false if not. */ bool DrawSave(); /** Draws the scripted level. * @return true if drawing succeeded, false if not. */ bool DrawScript(); /** Updates the menu. * @return true if updating succeeded, false if not. */ bool UpdateMenu(); /** Updates the game. * @return true if updating succeeded, false if not. */ bool UpdatePlaying(); /** Updates the game paused. * @return true if updating succeeded, false if not. */ bool UpdatePaused(); /** Updates the game in the ending level state. * @return true if updateing succeeded, false if not. */ bool UpdateEndLevel(); /** Updates the game in the game over state. * @return true if updateing succeeded, false if not. */ bool UpdateGameOver(); /** Updates the hall of fame. * @return true if updating succeeded, false if not. */ bool UpdateIntro(); /** Updates the credits. * @return true if updating succeeded, false if not. */ bool UpdateCredits(); /** Updates the load state. * @return true if updating succeeded, false if not. */ bool UpdateLoad(); /** Updates the save state. * @return true if updating succeeded, false if not. */ bool UpdateSave(); /** Updates the script. * @return true if updating succeeded, false if not. */ bool UpdateScript(); /** Loads the current world/level. * @return 1 if loading succeeded, 0 if not, -1 if game ended. */ s32 LoadWorld(); /** Process key up events. */ static void OnKeyUp(SDL_keysym key); /** Process key down events. */ static void OnKeyDown(SDL_keysym key); /** Process the state change of the app. */ void ProcessStateChange(); public: /** Creates the application object. */ HCApp(); /** Initializes the application. * @param argc Argument count from the command line, as in main(). * @param argv Argument list from the command line, as in main(). * @return true if initialization is ok, false if not. */ bool Init(s32 argc = 0, char **argv = 0); /** Draws the application. * @return true if drawing succeeded, false if not. */ bool Draw(); /** Updates the application. * @return true if update succeeded, false if not. */ bool Update(); /** Returns the state of the app. * @return State of the app. */ inline HCState State(); /** Changes the state of the app. * @param newState New state of the app. */ void State(HCState newState); /** Process user input. */ void ProcessInput(); /** Returns the current level. * @return Current level. */ HCLevel *Level() {return &level;} /** Returns the small font. * @return Small font. */ JFont *FontSmall() {return &fontSmall;} /** Returns the medium font. * @return Medium font. */ JFont *FontMedium() {return &fontMedium;} /** Returns the large font. * @return Large font. */ JFont *FontLarge() {return &fontLarge;} /** Parses argument. * @param args Command line arguments. * @param argc Arguments left. * @return Number of parameters used. */ virtual int ParseArg(char *args[], int argc); /** Shows the usage string. */ virtual void PrintUsage(char *program); /** Frees the allocated resources. */ void Destroy(); /** Destroys the application object. */ virtual ~HCApp() {Destroy();} friend void OnKeyUp(SDL_keysym key); }; #endif // _HOLOTZ_INCLUDED holotz-castle-1.3.14-src/src/HCEnemy.cpp0000644000175000001440000000776011177007634016755 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Definition of a generic enemy. * @file HCEnemy.h * @author Juan Carlos Seijo Prez * @date 27/05/2004 * @version 0.0.1 - 27/05/2004 - First version. */ #include float HCEnemy::maxXVeloccity = 3.0f; float HCEnemy::maxYVeloccity = 3.0f; bool HCEnemy::Init(JImageSprite *sprites, HCMap *_map, HCRope **_ropes, s32 nRopes) { if (HCCharacter::Init(sprites, _map, _ropes, nRopes)) { v.x = 0; // Uses param1 to set veloccities for this enemy, depends also on difficulty // Easy - from 0 to 62.5% MaxV stepping (62.5% MaxV)/10 (10 is the number of possible param1) // Normal - from 0 to 87.5% MaxV stepping (87.5% MaxV)/10 // Hard - from 0 to MaxV stepping MaxV/10 // i.e.: if maxXVeloccity is 5 and param1 is 1, enemy at EASY level moves with vx = 0.325 pels/sec, at HARD with vx=0.5 float delta, percent; percent = 1.0f - (float(HCPreferences::Prefs()->Difficulty() - HCPREFERENCES_HARD)/(2.0f * float(HCPREFERENCES_EASY))); delta = (maxXVeloccity * percent)/10.0f; vMax.x = JMax(HCENEMY_MIN_MAX_V, delta * float(param1)); aMax.x = vMax.x; delta = (maxYVeloccity * percent)/10.0f; aMax.y = vMax.y = JMax(HCENEMY_MIN_MAX_V, delta * float(param1)); return true; } return false; } s32 HCEnemy::Update() { Act(actions); s32 ret = states[state].Update(); UpdateVeloccity(); UpdateCollisions(); // Only enters here if the sprite has changed switch (state) { case HCCS_STOP: UpdateStop(); break; case HCCS_RIGHT: UpdateRight(); break; case HCCS_LEFT: UpdateLeft(); break; case HCCS_UP: UpdateUp(); break; case HCCS_SLIDE: UpdateSlide(); break; case HCCS_DOWN: UpdateDown(); break; case HCCS_JUMPLEFT: UpdateJumpLeft(); break; case HCCS_JUMPRIGHT: UpdateJumpRight(); break; case HCCS_FALL: UpdateFall(); break; case HCCS_JUMP: UpdateJump(); break; case HCCS_DIE: UpdateDie(); break; case HCCS_HANG: UpdateHang(); break; default: break; } Pos(pos.x + v.x, pos.y + v.y); return ret; } u32 HCEnemy::Load(JRW &file, HCTheme &theme, HCMap *_map) { if (0 == file.ReadLE32((s32 *)&type) || 0 == file.ReadLE32(¶m1) || 0 == file.ReadLE32(¶m2) || 0 != HCCharacter::Load(file)) { fprintf(stderr, "Error reading enemy's common parameters.\n"); return 1; } bool ret = false; switch (type) { default: case HCENEMYTYPE_BALL: ret = Init(theme.Ball(subtype), _map); break; case HCENEMYTYPE_RANDOM: ret = Init(theme.Random(subtype), _map); break; case HCENEMYTYPE_STATIC: ret = Init(theme.Static(subtype), _map); break; case HCENEMYTYPE_MAKER: ret = Init(theme.Maker(subtype), _map); break; case HCENEMYTYPE_CHASER: ret = Init(theme.Chaser(subtype), _map); break; } if (!ret) { return 2; } // Adjusts the sprite's framerate according to 1st param for (s32 i = 0; i < HCCS_COUNT; ++i) { states[i].FPS(states[i].FPS() + param1 - 5); } return 0; } u32 HCEnemy::Save(JRW &file) { if (0 == file.WriteLE32((s32 *)&type) || 0 == file.WriteLE32(¶m1) || 0 == file.WriteLE32(¶m2) || 0 != HCCharacter::Save(file)) { fprintf(stderr, "Error writing enemy's common parameters.\n"); return 1; } return 0; } holotz-castle-1.3.14-src/src/HCEnemyStatic.cpp0000644000175000001440000000213411177007634020113 0ustar jacobusers/* * Holotz's Castle * Copyright (C) 2004 Juan Carlos Seijo Prez * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., 59 * Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Defines an static enemy. * @file HCEnemyStatic.cpp * @author Juan Carlos Seijo Prez * @date 27/05/2004 * @version 0.0.1 - 27/05/2004 - First version. */ #include HCEnemyStatic::HCEnemyStatic() : HCEnemy(HCENEMYTYPE_STATIC) {} holotz-castle-1.3.14-src/man/0000755000175000001440000000000011177007633014732 5ustar jacobusersholotz-castle-1.3.14-src/man/holotz-castle-editor.60000644000175000001440000000634011177007633021100 0ustar jacobusers.TH "Holotz's Castle Editor" "6" "28.01.2005" "Miriam Ruiz" "" .SH "NAME" holotz\-castle\-editor \- editor for holotz\-castle game .SH "SYNOPSIS" .B holotz\-castle\-editor [\fI\-f\fR] [\fI\-w\fR] [\fI\-\-fps nn\fR] [\fI\-mWWxHHxBPP\fR] [\fI\-r RR\fR] [\fI\-c CC\fR] [\fI\-t theme\fR] \fI \fR .SH "DESCRIPTION" A great mistery is hidden beyond the walls of Holotz's Castle. Will you be able to help Ybelle and Ludar to scape alive from the castle? Use the editor to design new levels for this game! .SH "USAGE" You can use the following keys while working with the editor: \- Page Down: Next level in the story (or a new one if it doesn't exist). \- Page Up: Previous level in the story. \- 'c': Increase the number of columns from the right. \- CTRL\-'c': Increase the number of columns from the left \- SHIFT\-'c': Decrease the number of columns from the right. \- SHIFT\-CTRL\-'c': Decrease the number of columns from the left. \- 'r': Increase the number of rows from below. \- CTRL\-'r': Increase the number of rows from above. \- SHIFT\-'r': Decrease the number of rows from below. \- SHIFT\-CTRL\-r: Decrease the number of rows from Above. \- '+': Increase level time. \- '\-': Decrease level time. \- '1': Select 'floor' tool. \- '2': Select 'continuous floor' tool. \- '3': Select 'stairs' tool. \- '4': Select 'bar' tool. \- '5': Select 'breakable floor' tool. \- '6': Select 'key' tool. \- '7': Select 'rope' tool \- '8': Select 'starting character's position' tool. \- '9': Select 'exit position' tool. \- '0': Select 'enemy' tool. \- 's': Save. \- CTRL\-'q': Quit editor. \- Arrow keys: Move around in the map. \- 'g': Increase gravity strength. \- SHIFT\-'g': Decrease gravity strength. \- 'x': Increase main character's speed in axis. \- SHIFT\-'x': Decrease main character's speed in X axis. \- 'y': Increase main character's speed in Y axis. \- SHIFT\-'y': Decrease main character's speed in Y axis. \- 'j': Increase the number of cells that the player can jump vertically. \- SHIFT\-'j': Decrease the number of cells that the player can jump vertically. Other features: \- When adding an item to the map, if you press CTRL key it is adjusted to a cell. \- To adjust a rope's lenght, you select it and, while still pressing mouse button, press ALT key and drag the mouse vertically until getting the desired length. \- To adjust a rope's oscillation amplitude, you must select it and, keeping mouse button pressed, press SHIFT key. Real time amplitude is not shown, as it is determined taking into account the distance in vertical to the rope when releasing mouse button. .SH "OPTIONS" These command line options are available: \-f Full Screen. \-w Windowed. \-\-fps nn Run the game at nn frames per second (fps). \-mWWxHHxBPP Run in video mode set by WW pixels of width, HH pixels of height and BPP bits per pixel (eg. \-m640x480x16). \-r RR Crete map with RR rows of height. \-c CC Crete map with CC columns of width. \-t theme Use theme named 'theme'. Load level nr of the story called 'story'. .SH "AUTHOR" This manual page was written for the Debian GNU/Linux system by Miriam Ruiz (but may be used by others, of course) holotz-castle-1.3.14-src/man/holotz-castle.60000644000175000001440000000353211177007633017614 0ustar jacobusers.TH "Holotz's Castle" "6" "28.01.2005" "Miriam Ruiz" "" .SH "NAME" holotz\-castle \- platform game with high dosis of mistery .SH "SYNOPSIS" .B holotz\-castle [\fI\-f\fR] [\fI\-w\fR] [\fI\-\-fps nn\fR] [\fI\-mWWxHHxBPP\fR] .SH "DESCRIPTION" A great mistery is hidden beyond the walls of Holotz's Castle. Will you be able to help Ybelle and Ludar to scape alive from the castle? Test your dexterity with this tremendously exciting platform game! .SH "USAGE" You'll get an options' menu as soon as the game starts, with the following options: \- Continue Game: You can continue playing the game if you have interrupted it with escape key. \- New Game: You can start playing the game right from the beginning. \- Help: You get a general help text on the game. You can use escape key for leaving that screen. \- Options: You'll get a new menu from which you can set video, sound, dificulty and language options. You can leave each menu by using the escape key. \- Load: You can continue playing the game from a previously saved adventure. \- Save: With this option you can save the current adventure. \- Exit: Leave the game. During the game, you can use the following keys: \- Arrow keys: Move character \- Space key: Jump / Skip dialog \- Enter/Return key: Skip dialog sequence \- F1: Display help text while playing \- Escape key: Hides help screen. Aside from that the game easy to play, no need for a manual! .SH "OPTIONS" These command line options are available: \-f Full Screen. \-w Windowed. \-\-fps nn Run the game at nn frames per second (fps). \-mWWxHHxBPP Run in video mode set by WW pixels of width, HH pixels of height and BPP bits per pixel (eg. \-m640x480x16). .SH "AUTHOR" This manual page was written for the Debian GNU/Linux system by Miriam Ruiz (but may be used by others, of course) holotz-castle-1.3.14-src/Makefile0000644000175000001440000000274211177007633015624 0ustar jacobusers# Makefile Para Holotz's Castle. (C) Juan Carlos Seijo Prez - 2004. # Makefile for Holotz's Castle. HC_VERSION=1.3.14 all: $(MAKE) -C src distro-src: find . -iname "*~" -exec 'rm' '{}' ';'; $(MAKE) clean; rm -rf _DISTRO/SRC; mkdir -p _DISTRO/SRC/holotz-castle-$(HC_VERSION)-src;\ cp -RL [^_h]* _DISTRO/SRC/holotz-castle-$(HC_VERSION)-src &&\ cd _DISTRO/SRC &&\ tar -czvf holotz-castle-$(HC_VERSION)-src.tar.gz holotz-castle-$(HC_VERSION)-src &&\ cd ../.. &&\ rm -rf _DISTRO/SRC/holotz-castle-$(HC_VERSION)-src\ distro-i486: find . -iname "*~" -exec 'rm' '{}' ';'; $(MAKE) I486_BUILD=1 CPU_OPTS="-march=i486" &&\ rm -rf _DISTRO/I486; mkdir -p _DISTRO/I486/holotz-castle-$(HC_VERSION)-linux-i486; cp -RL holotz-castle holotz-castle-editor res HCedHome doc LICENSE.txt man _DISTRO/I486/holotz-castle-$(HC_VERSION)-linux-i486 &&\ cd _DISTRO/I486 &&\ tar -czvf holotz-castle-$(HC_VERSION)-linux-i486.tar.gz holotz-castle-$(HC_VERSION)-linux-i486; rm -rf _DISTRO/I486/holotz-castle-$(HC_VERSION)-linux-i486; distro-win32: find . -iname "*~" -exec 'rm' '{}' ';'; rm -rf _DISTRO/WIN32; mkdir -p _DISTRO/WIN32/HC; cp -RL _WIN32_DLLS/* holotz-castle.exe holotz-castle-editor.exe res HCedHome LICENSE.txt doc _DISTRO/WIN32/HC &&\ cd _DISTRO/WIN32 &&\ zip -r HC HC; mv _DISTRO/WIN32/HC.zip _DISTRO/WIN32/holotz-castle-$(HC_VERSION)-win32.zip; rm -rf _DISTRO/WIN32/HC; install: $(MAKE) -C src install uninstall: $(MAKE) -C src uninstall; .PHONY: clean clean: $(MAKE) -C src clean holotz-castle-1.3.14-src/res/0000755000175000001440000000000011177007633014750 5ustar jacobusersholotz-castle-1.3.14-src/res/icon/0000755000175000001440000000000011177007633015700 5ustar jacobusersholotz-castle-1.3.14-src/res/icon/icon.bmp0000644000175000001440000000606611177007633017340 0ustar jacobusersBM6 6(    z m n {} \ w o~~ k t |K n~ p H} xQURp {l!鮮lllholotz-castle-1.3.14-src/res/messages/0000755000175000001440000000000011177007633016557 5ustar jacobusersholotz-castle-1.3.14-src/res/messages/nl/0000755000175000001440000000000011177007633017170 5ustar jacobusersholotz-castle-1.3.14-src/res/messages/nl/messages.txt0000644000175000001440000000002611177007633021536 0ustar jacobusersEinde Spel Gepauzeerd holotz-castle-1.3.14-src/res/messages/en/0000755000175000001440000000000011177007633017161 5ustar jacobusersholotz-castle-1.3.14-src/res/messages/en/messages.txt0000644000175000001440000000002111177007633021522 0ustar jacobusersGame Over Paused holotz-castle-1.3.14-src/res/messages/sr/0000755000175000001440000000000011177007633017203 5ustar jacobusersholotz-castle-1.3.14-src/res/messages/sr/messages.txt0000644000175000001440000000004611177007633021553 0ustar jacobusersИгра је готова Пауза holotz-castle-1.3.14-src/res/messages/de/0000755000175000001440000000000011177007633017147 5ustar jacobusersholotz-castle-1.3.14-src/res/messages/de/messages.txt0000644000175000001440000000003311177007633021513 0ustar jacobusersAus und vorbei Schnarch... holotz-castle-1.3.14-src/res/messages/it/0000755000175000001440000000000011177007633017173 5ustar jacobusersholotz-castle-1.3.14-src/res/messages/it/messages.txt0000644000175000001440000000003111177007633021535 0ustar jacobusersGame Over ...zzZzzZzz... holotz-castle-1.3.14-src/res/messages/ua/0000755000175000001440000000000011177007633017164 5ustar jacobusersholotz-castle-1.3.14-src/res/messages/ua/messages.txt0000644000175000001440000000003111177007633021526 0ustar jacobusersGame Over ... ZzZzZz ... holotz-castle-1.3.14-src/res/messages/sv/0000755000175000001440000000000011177007633017207 5ustar jacobusersholotz-castle-1.3.14-src/res/messages/sv/messages.txt0000644000175000001440000000002711177007633021556 0ustar jacobusersSpelet är slut Pausat holotz-castle-1.3.14-src/res/messages/ru/0000755000175000001440000000000011177007633017205 5ustar jacobusersholotz-castle-1.3.14-src/res/messages/ru/messages.txt0000644000175000001440000000003111177007633021547 0ustar jacobusersGame Over ... ZzZzZz ... holotz-castle-1.3.14-src/res/messages/es/0000755000175000001440000000000011177007633017166 5ustar jacobusersholotz-castle-1.3.14-src/res/messages/es/messages.txt0000644000175000001440000000002011177007633021526 0ustar jacobusersGame Over Pausa holotz-castle-1.3.14-src/res/messages/cs/0000755000175000001440000000000011177007633017164 5ustar jacobusersholotz-castle-1.3.14-src/res/messages/cs/messages.txt0000644000175000001440000000003111177007633021526 0ustar jacobusersGame Over ... ZzZzZz ... holotz-castle-1.3.14-src/res/messages/eu/0000755000175000001440000000000011177007633017170 5ustar jacobusersholotz-castle-1.3.14-src/res/messages/eu/messages.txt0000644000175000001440000000003111177007633021532 0ustar jacobusersGame Over ... ZzZzZz ... holotz-castle-1.3.14-src/res/messages/fr/0000755000175000001440000000000011177007633017166 5ustar jacobusersholotz-castle-1.3.14-src/res/messages/fr/messages.txt0000644000175000001440000000003111177007633021530 0ustar jacobusersGame Over ... ZzZzZz ... holotz-castle-1.3.14-src/res/messages/pt/0000755000175000001440000000000011177007633017202 5ustar jacobusersholotz-castle-1.3.14-src/res/messages/pt/messages.txt0000644000175000001440000000002011177007633021542 0ustar jacobusersGame Over Pausa holotz-castle-1.3.14-src/res/README.txt0000644000175000001440000001113611177007633016450 0ustar jacobusersThis is the resource directory for Holotz's Castle. 1. English ------- 1.1 playlist.txt ---------------- Play list of stories. Each line contains the name of the directory with the next story to play. 1.2 preferences.txt ------------------- This file contains the default preferences for the game. It's generated automatically when the user changes the game settings or the game is run for the first time. The file is organized in lines: 1st line - abbreviated name of the language ('es', 'en', 'fr', etc.). 2nd line - video mode to use(widthXheightXbpp) 3rd line - windowed/fullscreen 4th line - audio on/off Example of preferences file: language=es video=5 mode=fullscreen audio=on 2. Español ---------- 2.1 playlist.txt ---------------- Lista de historias a reproducir. Cada línea del fichero contiene el nombre del directorio con la siguiente historia a reproducir. 2.2 preferences.txt ------------------- Este fichero contiene las preferencias por defecto para el juego. Se genera automáticamente cuando el usuario cambia la configuración del juego o el juego se ejecuta por primera vez. El fichero se organiza en líneas como sigue: 1ª línea - Nombre abreviado del idioma ('es', 'en', 'fr', etc.). 2ª línea - Modo de vídeo (anchuraXalturaXbpp) 3ª línea - Audio activado/desactivado 4ª línea - En ventana/pantalla completa Ejemplo: language=es video=5 mode=fullscreen audio=on 3. Русский ------- 1.1 playlist.txt ---------------- Список сценариев. Каждая строчка содержит путь к каталогу со следующим сценарием. 1.2 preferences.txt ------------------- Настройки игры по умолчанию. Этот файл автоматически содаётся, когда изменяет настройки, или игра запускается в первый раз. Файл состоит из следующих строк: 1-я строка - сокращенное обозначение языка ('es', 'en', 'fr', 'ru' и т.д.). 2-я строка - видеорежим(ширинаXвысотаXцветность) 3-я строка - в окне/на весь экран 4-я строка - включить/выключить звук Пример файла настроек: language=ru video=5 mode=fullscreen audio=on 4. Українська ------- 4.1 playlist.txt ---------------- Список сценаріїв. Кожен рядок вміщує шлях до каталогу з наступним сценарієм. 4.2 preferences.txt ------------------- Типові налаштування гри. Цей файл автоматично створюється, коли змінюються налаштування, або гра запускається в перший раз. Файл складається з наступних рядків: 1-й рядок - скорочене позначення мови ('es', 'en', 'fr', 'ua' и т.д.). 2-й рядок - відеорежим(ширинаXвисотаXколір) 3-й рядок - у вікні/на весь екран 4-й рядок - включити/виключити звук Приклад файлу налаштувань: language=ua video=5 mode=fullscreen audio=on 5. Euskaraz ---------- 5.1 playlist.txt ---------------- Aukeratu daitezkeen istorioen zerrenda. Zerrendako lerro bakoitzak hurrengo hasi behar den istorioaren karpetaren izena darama. 5.2 preferences.txt ------------------- Fitxategi honek jokuaren berezko ezarpenak ditu. Erabiltzaileak jokuaren ezarpenak aldatzen dituenero edo lehen aldiz abiarazten denean sortzen da bere kasa. Fitxategiko lerroak hauek dira: 1. lerroa - Hizkuntzaren laburdura ('eu', 'en', 'fr', etab.). 2. lerroa - Irudien ezarpenak (zabaleraXgaraieraXbit/piksel) 3. lerroa - Leihoan/Guztizko ikuskera 4. lerroa - Soinua gaituta/ezgaituta Adibidez: language=eu video=5 mode=fullscreen audio=on 6. Português ---------- 6.1 playlist.txt ---------------- Lista de histórias a reproduzir. Cada linha do ficheiro contém o nome do directório com a próxima história a reproduzir. 2.2 preferences.txt ------------------- Este ficheiro contém as preferências por omissão para o jogo. Gera-se automáticamente quando o utilizador muda a configuracão do jogo ou o jogo se executa pela primeira vez. O ficheiro organiza-se em linhas da seguinte forma: 1ª linha - Nome abreviado do idioma ('es', 'en', 'fr', etc). 2ª linha - Modo de vídeo (larguraXalturaXbpp) 3ª linha - Áudio activado/desactivado 4ª linha - Em janela/ecrã completo Exemplo: language=es video=5 mode=fullscreen audio=onholotz-castle-1.3.14-src/res/credits/0000755000175000001440000000000011177007633016405 5ustar jacobusersholotz-castle-1.3.14-src/res/credits/music.tga0000644000175000001440000006531411177007633020233 0ustar jacobusers dd  '*,0574:<057&*,  &*+/574:<057&*,  ' '+,1686;=167(+-!"!#(,-1685:<046%)* #')+02/46+02$()  "'+,/4638:-24#')      !"&*,5:AGNQT]aYcgPY]AHK/47"%'    &*+/3549;6<=7<>6<>6;=7<>7=?;ACDLNU^ahsx{yhsxR[_CJM9@C6ABILQZ^epuyzitxT\`ELN;@C76;=47<>7=?;ADELOU^bjuy}}lw{[chS\`[chkvz|xcmrMTX=CF4:=28:5:=>EHMVY`jnq}wrcnsV_cPY\W`dgrww{r`kpKSW  38:V^avtehsuromhfc`\|ZzXxWwVvTtUuVvWwXxYyZz[{\|]}^~_`acdeffghjkmmnopqqrrrqpqpqqsrrsvyzǮ̫Ǜ~Zcg5;=  .24MTXmx}¢ĠÙjk}||{z{{{||}~åƨȫʮ˩ƚ}Ybf4:< %)*>DGZcgtȩʦȓok,¡Ħƨǭˮ˨Ě}Yae49< & -13BILXbfo{¨ȨʖsfâħǨɬʭ˪ę}Ybf5:<  *.1>EGV`dq~ƢĒq`t ~dYym äŧǨȭ˭ʩÙ}Ybf5:<  *.0DKOcnt{dVvUuXxXw^{mz p>_r,M^Mm} äŧǨȬʭʩę}Zbf5:< $ "$9@C[ekyvo`SsOoRrNnHizDewIi}^~yo>_r,M^Mm}|tqooqu}¥ŧǩɬ˭ʦØ|Ybf5:<  6;>V`fqwty}tZz\|uucOo=^q9YkKkr}cXxmtPp4Uf&HX#EU&HZ4UhIi}a{çƧǫʫɤzX`d49< $"#9?BWbhl|oy]}^~{a?`s-OaIi}wxLl~AP%. %. 4B(IZOox¢ŠtU^a38:  )-/AHL[gmizo~XxTts}]}2Sd,M^Vv|~c)J[ ( (DSRrw~}{zy{|~}|~nzQZ^279  (,.9@DNX]aoxi|p}eMmDexKk~Ywgom\z;[m@P0RdXxfggffggggfed^|Dev7F &0(IZPp^~^~]}\|[{ZzXxWwVvTtSsRrTtVvXx\|^{`zgmu}mzPX\168  +02>EIQ[`bownpt}hXxKkAbu@asEfwTs\{ZxUtAbt?M>L>_rMmOoOoOoOoOnOoNnNnNnOoOoPpPpPoKj|4Td2> 7D=^qRrVvWwXxYyZz[{\|]}^~`cdgjnqux{z{~£›o{PX[168 *%(*>EGXaen{z|}e_TtJj}Vu`~s{{x`})J[!CSWwswwvvtsuvwwwwwuuuunMj|9G7DKkr{|}~æťĞq}PY\168 "-24LTWmx}~zhq_Qqjc~)J[-Oan}`~$FU 5CKk}ŦŢsQY]168 ( 27:U^bxujyfTtnsFgy%GWEfxymXxa|r>^o 5A2@Dex{Ʃȥ”uS[_168  4:  6;=[dhɰѨˏ|rVv]}w k2Sd&0'26WjuÛŞơɥ˨ΪЯӯҬ̝\fj6<>  6;=[dh}ĤȞď{wpWw\|rxwusqonmopqrsq^~,M^!*,M^_sutstuwz}Ġȣɢƙ\fj6<>  6;=[dhŦȢǖtx}qZzmqnhea^~ZzXxTtRrPpMmLlKkJj~Ii}Hi|HhzFgzEfyFgzHhzHi|Ii}=]o=L">L>_rJj~KkJj~Ii}Hi|Fgz>_r5Vi4Uh9YkDexQq_jqyǥ˦Ȝ\fj6<>  6;=[dhɱЯШ˓ycf}{ywutsrqponmkZz)J[!*(IZXxjkmnjZz?`s#EU;JAP0RdLlfzŢʨέӰӮΠ\fj6<>  5:  59+63@9G@P&HX4UhIi}jʪЯӱնطرѡ\fj6<>  49;YafƮ̨̮̭ɚxymsǟě v8Xj+68XjwMm:I!*+63@9G@P&HX0Rd=]oTt{ũϯӱնطرѡ\fj6<>  49;Yaf~ĭɭɁ njysmvŠÛ u8Xh+68Xiv}Hhz7F!*+63@9G@P&HX0Rd;[mJj~mϯӱնطرѡ\fj6<>  49;Ybgƭɬʫɬ˩ʛsnyȡĜ t8Wg+68XhuNn;J%.+63@9G@P&HX0Rd;[mFgzcϯӱնطرѡ\fj6<>  5:  5:=[cgDZˮɭɫɬ˪̝Åw}Ȥǡś r8Vf+68Wgu{Ss+L]9G 4B9G@P&HX0Rd;[mEfy`ϯӱյ׶ױѡ\fj6<> ( 6:=[dhȳϰͯˬ˭̮Ψ˒}ʥʢƠÛ q8Vf+5'28Vgt{^~@at)J[AP&HZ0Rd;[mFgz`ϯӱյ׶ױѠ\fj6<>  6;=[dhʳбϮͬ˭̮̜ͫ}ȥˣǞŜ™ r6Uf'26Tfru]}Efy;[m=^q?`s>_rEfy`έӰԳ׵֯ϟ[ej6<>  6;=\eiɯϯΫ˨ɧȥɤǘy~~~~~}~~}~~p4Uf'2%.2Q`mvomaHhzEfy^~ʦ̨ΫѭѦȖ|Zdi6<>  6;=\ehʯϭͩʦɢƟœwuy}{vrnhc_}^{\zZzZzYyZz [{\|\|]|^}_}`|`~`~acdef gfVv&HZ (DQVrmoopqrqsrseIi}EfyYy}ĜęxZei6L2@2SbDewFgzHhzFgzEfyFgzHhzFgzIi}KkNnRrVvZz^~XxEfyDexUusŠȠĔ}Zei6_r-:  " 5A&HXFgzfzwRoB`qHewe~Ĩ˯ϰЯϭȣhtyDGZcfr~Ħȣşwyfm}zyyz||~}}}}uVv)J[2? -:>M9VfTql|wVqGctNj|jǩ̬ϰѱӴԳҭʘq~BIK! -13LSVmx}›uuxcdv{wsoied~b|ccadedaa_|\y[v[uZwZwZyZzYyXxPp@at/Pa@P2@ (  &/ 3?$CT=[lUriohPl}GbtMj|fŧɫίбҮ̤iuz^o)J[7F&0" (&0.9 1>[lFbsFbtMj|_ziuzGOQ&*,# 5:<[cg̸ԷֳӱѮͪʣÒ~~o şÜ{hKk,M^9H2>'2+6-8-:2?4A7D;JAO#ES,KZ3QbLBQ%GW+L]4Ue;Yj?]nEasKhzSpkʬ̱ѲѮ˟fpuCJM&*+# 5:_oDdvKj|PnUr[yb}uͳҵӴҮɞ[dh6<> ! 5:<[cgϼ׺غضصձҮΣč̫Ψ˧ʣǠƞ›‚ ĞÝÜ"kTqB_p7Sd3Pa8Td  .34NVYq|ȵйֺֺׁպ׻عف׸׵յԱүЬΪͨ˧ʧɨɨʧʨʩ˩̩˨ʨ˨ʁɥǦȁȧɦɦʧʁͫ́ίϮ΁"ѯЭЬЬѫЫϨ̥Ȣġ¡£ģßǴθҼսնͥ_fk7=? &*+@FI]fjxƴйֺֺ׻ػ׻ټټځ ٺڸطֵԱѯЮϬϫάΫ͂̓΂ʨɨʧʨʨˁ́ϭςгѴҳҵӳԱұҰӰүүЫͧȣģæŨǩǁȩȥƠáťƭ̳ѷӸӻպӶ̥_gj8=?  /35ELO\eitɷӻؽٽڼفۃ ۺڷֵԴӱүЮϯЮϯϭϭρЬЭЬρρ΁́͂.ϯЯѰѰгѴҴҵӵӶԶնֶԵԴԱ԰ҰѬͨɧŦŧƪɫʭɮʰ̱γгѵҷҹպպֻսּԷͥ_gk8=@  !,12@GIZcgxŸӾؿڿٿۿځ ۾ھ۸ֶձΰίͰίЯѱұт҃фϯϰаѰаѰѱҲҵԶԵӴҳвϲгеԶֶյԲбϯͰͮ˫ɪȪɫʮˁɰ̴ϹԼ׽ف ڿٿ׺Шclp=BD!#   ,02GNQhswҽ܁݁ݿۼ׶ӯ˩ĥ¨ŮͱѳѵյԲԳԳՂ#ղҲӲұбѱѱұѱұҲҳӵԵӷշշԵӲϭɪĨªů˳ѵұЫȦ¥īȭ˯ˁ˯̯ʲͶҺս۾խđlvyFMP'+,  #$DGFMP\ekwx]gkGNQ?EGGNQ[eir}zq}[dhFMP>DGFNP]gjw ~\dh49; &*+@FI[dgr| t_hkFMP279*.0279FLO\fjq|{~r}^gkFMP279+/0279ELOXad_imW`cDKM278*.0279FMO^gkp{y}}|}}~}}| |}mwzQX[/34  -13@GIOWZYae]ei^gj^fi^gj]eiYadQX[BHJ046"%&!$&/46AGJOWZW`d[di\ei\fi\ei\fi\ei[ei\fi\ei\fi\ei\fi]fi]fj[eiXaePX[BHJ046"%&!$%/357<= 7<>59;/35&*+  &*+/3549;6<>6;>6<>6;>6;=6<>6;=6;>6<>6;=6;>7<=6<=49;/35&*+ #&''*,#&'%)*-1316837927938:49:39:38:27938:49;6:=6;=7<>6<=6;=49;.24#&'                    TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/credits/drawing1.tga0000644000175000001440000001644711177007633020632 0ustar jacobusers dd    2CTG W @Ta^aeh$$U(((eee666WWW666 I` B EYls**~CCaaa{{{WWW666666{{{ R`\ B KgluJJDDw666WWW666eeelll -_gc^a%%m::@@t'': 666lll666???666rrrWWW^krsv''z 666???<<u>WWW'<\sCC'@'eee L 9TrC[C{{{666  F @ H f9b9 WWW/? J E[.n.WWWD@ G D Y [lll 1 9 ; E T S iWWW @9 E AXhK6660 I P N D S mWWW  E K We M k"m"lll = H ddiSo&k&WWW N TfqkSq4p4666 > I Vdsg^rD_DWWW  P R aisi`nGGGWWW& P Xbskg`WWWaaa666 : I `qsis r GGGWWW G Tisns!m!lll  6 K `isq,G,{{{666666^^^$ G H `s"m"eeeWWW666WWWWWso\N @ E V[s"q"llleeelllseT I NbisxxxWWW666((( C soS H Z]qs6m6666~~~}}}-VsqY L \cls$p$aaaGGG = nsqbc[fjs2n2666{{{rrrYsilfsaaa}}}(((Nopqsdpis,P, GGG WWW{{{+=, :11Pt`sis;k;QQQ@@@666 <<<9('%'&% !YSLǾƻþžĽúB@>*)(!  9aYRʽȿƿƿļǿ»žľĻECB#"! =_WP}v~ýƿ¹ǾľľFED-,+##" ?\UNĸžƿžĽĿ@?> @\TMŽûüž¼%%%AOHB¹÷}ſ»Ŀ//.B<72ux»þ·ƿꏻľ¿//.C+'#}xxz¿Ļžþþüþǿûþÿþ½&&%Dv~~}}»ǽƿ¼zsE xn{~|ſ»¾ƼĿ998@ h^Txltvy||ľú½ý¼211CeZQyms~o{q}pv}}|żº½ú,++;^SK{nsuvy{x~s~sw~Ϲſ&%%6LD>>EEELLLQQQWWW^^^dddjjjooozzz¾ٻ㳻맱FFF '!!!(((...444:::AAAGGGMMMSSSZZZ```ffflllwwwط⯸뵿Ú%""")))///555<<>>EEEKKKRRRXXXbabyvwؤꮷﰺ ܨǬ >  &&&,,,222:::???FFFLLLSSSZZZgffΝ䥯کʰ ?  '''---333:::AAAGGGNNNTTTZZZnllۥҦз @  '''---444;;;AAAGGGNNNTTT^]]xuvȗܣҩм### )  '''...444:::AAAHHHNNNUUUddd—٠馱ѩCCC *  '''---555;;;BBBHHHOOOVUUkiiԓ ͩ```  !!!'''---444;;;AAAHHHOOOWWWropߛ"ʩddd D  '''---444;;;@@@HHHNNNZYYyvv顬ȧbbb G  &&&---333:::AAAGGGMMM\\\{|ɐŦ``` A &&&,,,333999@@@FFFMMMb``Ԑȩ^^^ ( %%%+++222888???EEELLLfcdӐʩ[[[ ( $$$***000777>>>CCCJJJgde֒"ʩYYY L ###(((///666<<>>USS蠬#м# $$$***///555;;;KII¦矫Ḿл% ''',,,222888GGGĤ矫㹿̸ $$$)))000555GEFƤ螪Ƿ  &&&,,,222KIIȢ靪ͽĹNMM ###)))///KIJ͡Ꜩ´ǽD  %%%+++HEFҠ뛨λļ' !!!'''?>>ӟ뚧νǾ>###756ҝ뙦ҾMKK 867~͜۹Ŵº YWW =;;z}Ù㲺ϰ¹úºĻƾǿ 766 200{su|}﬷۪úǿ ) %#$xqrz|~쑠좯ϣ|wx wppyz|~䘣Ϟ$"# |tuxzz|Ӑ咞ǿ :88  {ruz|wz{}È΁ɾǼǼȼɾ˿URR "h_awxuwy|}ĹʿɾƻĸŸŹƺǻȼɼɽʾ˾_Z[ IDDuw|rtvy{~żɽĸĸ¶õö÷ ŸƹǺǻǻǺǻǻȼȼɽɾʿʿ[WW 401{qs{qrtvxy|¶´õķŷŸŷŸĸƸƹǺǻȻǻȼɼɽʽɽ]YZ ($%lcdzprtv{}´´µµõöõõµôöķķŷŸŹŸkdf.--  e]_z|³tmn311 &##XRS{}xzc]^C@A&&& OIJrjk |stibdXSSEAB311   D@@c[]kderiksklwln{rs~uw|suqhjc[\XRSQKLHBC<99=89<890-.  %$$$!!$!"%"#%#$%!"! !"      TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/credits/drawing0.tga0000644000175000001440000001221511177007633020616 0ustar jacobusers dd WWWGGGlllWWW(((eee666WWW666lll666WWWaaa{{{WWW666666{{{lllGGGWWW666WWW666eeelllWWW{{{ 666lll666???666rrrWWWWWWxxxWWW666???<<  >>>III^^^kkk|||???/// BcccZZZ___F111LLL!K!///AAA@@@SSSBBB@@@NNNAAA }}} ###KKK#N#}}} 666***```MMM%S% xxx666,,,HHHUUU@@@GGG&&&XXX ***'W'JJJ!!!666BBBAAA*\*yyy...[[[ XXX-a-cccQQQOOOjjj/f/XXXsss1j1DDDKKKNNN+lu<...WWW|||000 qzM}}}WWW...!!!~~~000___88~>>>III]]]QQQ }}}JJJSSS nnqIIBBB ]]]{{***|||;;;999ppp/// %%%---666???FFFNNNWWW___gggooo***>>>mmmRRR### rrrCCC ppp{!!!777QQQ 444sssz"yyy^^^UUUsss$,,,SSSlllcccAAACCC^^^yyywwwYYY HHHRRR222jjj HHH===]]}}fffOOO***::: }}}___@@@mmm OOOeeWWWzzz222ppp JJJ}}}88i ===RRRmmm::: OOOOOO UUUooo___HHyyooo000 lll***===|||f##ppp xxx888@@@xxx(((I PPP666EEEKKKRRR8YYYkkkJJJ +555888~~~@@@333555www666'''cccXXX ccc2### C*** aDDD999aaajjVVV JJJfff,,, ggg444```hhh,,,jjj|||ooo```XXXOOO===PPP---\\\mmm<<< ^^^666dddqqq lllvvvQQQ rrr @@@iii}}}TTT aaaxxx::: jjjqqq{{{~~~ttttt~II^~~II~~II~k/TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/credits/animation2.tga0000644000175000001440000001623011177007633021145 0ustar jacobusers dd   &!%8-%:1 #<7@;A 000888{{{vvvoooWWWKKK>>> E|||,,,H777^^^"M"{{{vvvppplllggg```]]]XXXSSSPPPIII--- {{{ ___MMM%R%:::LLLJJJJJJ{{{???!SZ. {{{FFFV^: III555***pppXgDjjjEEE TTT???\lH$$$888[[[aqK xxx---NNN jjjCCCbbbwww222fwOFFFMMMFFFMMM gW  ???zzznnnccc kkkxx11fnnn}}}xxx TTT???@@@)))[[[ cccRRR'''QQQxxxy%%FFF>>> pppWWW''' %%%...;;;jjjy XXX)))<<<  s xxx~~~WWW888 '''KKKppp t  (((UUUnnn'''???555,,, ///RRRy!:::MMMdddoooTTTnnn666$kkk--- iii...fffkkk ||DDj444rrrggg000aaaQQQyyyoooUUU%%%dddsssCCC%%%tttBBBc??www'''!!!``` vvvBBB444*** nnn***dd"""555]]]###999hhYYY}}} OOO||@@~%%%///999}}}zzz999###@@@===]]~~...RRR'''xx@@@...<<<}}JJJMMMNNN|||tttZZZHHHXXXbbb>>>nnn SSS{{{ ///,,,BBDGGN77t<<<RRR/// 666)))333???EEE /// HHHGGGKKK```ppptttmmmUUU QQQRRR333[[[###}}}&&&''')));;;$$$NNNkkk666TTT www|||~~~""" ###qqq>>>rrr~~~ rrr000eeettt HHH ### yyy~~~@@@}}}!!!222@@@UUUfff|||$$$WWWccc!!!000000::: sss xxxxx I^^^^~~^^^^^^^IM_G_TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/credits/animation0.tga0000644000175000001440000002066211177007633021147 0ustar jacobusers dd *' .*/258<@AG# KKKtttjjj___UUUJJJ<<<???OOOYYY```ooo+++mmm@@@DK.]]]<<<FR6IIIWWW```lllwwwccciii000]]]zzzJV8MMM:::666999GGGN\<JJJ eeeSSSBBB PcCIII\\\RRRXXXoooTiNGGGoooqqqjjjUpU<<<yyy999UUU===ZuZsss^{^000ccgggdkmmm`q555az hhh&&{QQQ000[[kkksss;;;@@@  eeeRRRx"""///^^^&&&}^^111``` ::V```{{{zzzZZZ&$$$AAAYYYIII///)---"""999 444+  (((GGG, ``` ^^^!!!+++ hhh+++/ 777+++///$$$0 PPPLLL### <<>>zzz'''qqq'''###ddd###"""&&&vvv'''mmmqqqLLLcccFFFBBB!!!^^^VVV;;;!!!!!!ZZZ^^^QQQbbbb ...444:::"""###***qqqn,,,555###uuu 666lllmJJJ'''ppp```KJJJ777MMMuuuxxx===mNNN666pppKYYY***XXXQQQIIIyyy222 mVVV !!!UUUK+++PPP,,,www ooo 222m444K___000___{{{AAAmPPPn$$$KJKJKmmxTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/credits/drawing2.tga0000644000175000001440000002323411177007633020623 0ustar jacobusers dd      2CTG :FP?MWANX?MX:ENDR[4>G8CL  (-;HQM^iRbp%-3!  W @Ta^aeh$$U#*/4@H4@I;HQFT`O_lScpWiw\o}XixES^^qgw---555WWW666444 "&FT`UhvTguZn}CP[8DMTesrcyRboy)28 I` B EYls**~CC")4;7CMGVb\o}dxf|i~h}`tZn|IXd\o~m5GCR]6CJFT_\pbwe}Sdq`t\n}Ugt R`\ B KgluJJDDw) '074?G3>F>LVPanPamquz~ex~HVa@FJ```+495@I8EM*4;AOZM^jCQ]L]isvxn -_gc^a%%m::@@t'':* $8CL>KVL\hez^rFUa^rwlh|444oooCCC3?G2KU.7?N_lTesXjxh~g}h}bw_sjXjxq`rp(,%.4>KW:FPL[g]n|?KSu>WWW'<\sCC'@'eee L 9TrC[C{{{666  F @ H f9b9 WWW/? J E[.n.WWWD@ G D Y [lll 1 9 ; E T S iWWW @9 E AXhK6660 I P N D S mWWW  E K We M k"m"lll = H ddiSo&k&WWW N TfqkSq4p4666 > I Vdsg^rD_DWWW  P R aisi`nGGGWWW& P Xbskg`WWWaaa666 : I `qsis r GGGWWW G Tisns!m!lll  6 K `isq,G,{{{666666^^^$ G H `s"m"eeeWWW666WWWWWso\N @ E V[s"q"llleeelllseT I NbisxxxWWW666((( C soS H Z]qs6m6666~~~}}}-VsqY L \cls$p$aaaGGG = nsqbc[fjs2n2666{{{rrrYsilfsaaa}}}(((Nopqsdpis,P, GGG WWW{{{+=, :11Pt`sis;k;QQQ@@@666 <<>>?F"III @@@mmm555kkk333CI- AT8;;;))) 555UUUjjj^^^???,,,dddiii===666GXB---kkkkkkgggI_I[[[)))222,,,eee```\\\pppMeM~~~VVV888XXXkkk>>>NgSUUUkkkJmXVVVSSS...Jp_JJJ)))ccc___Nud 222YYYKvn\\\,,,@|s0nnn''';|;&&&"""III&&Z>EEE &&&ttUyyy  XXX###IQQpppcccRRRUUU@((q***ooo hhh .nRRR___LLL &&&"|"""$$$%YYY!!!kkk&///KKK111))) {{{___)mmm ...fff"""[[[UUU444LLL@@@\\\HHP###bbb:::===TTTnnnnn111 ]]]%%%ccc~~~WWW [[[@@@HHH333...~~~ PPVVV[[[~~~ii^^^ ```uuu]]]&&&\\\555///[[[%%%:::HHH HHHPPP```ooo <<KLpps~ist 188 277sS[\)//thvw8=> ## Xbb \ijw!!> '' &'%&$%#$"#""!!    (  #)"(.%*1),3,LWEYfQ\lX`q_eudi{lmsqxux|QabP_aPabJY[+44*34 *23+34HPQnwx?GH$,,#++#**"))!(( &'%&$%#$!"!!    )  %#($* =E,GP6KVFGFOP(01'/0'./&-.%--$,,#++#**!(( '' &'%&#$!"!!    ,  #!'7="2<=1;<0:;09:/99.78-77-66,55+44*23)12(01'//'./%,-#++#**!(( ''%&#$##"" '  IQ)AI(KS+LU,MV.NW0OX1QZ3S]8ZfDanNgwYmctn{w¹5@A4?@4>?3=>2<=1;<0:;/89/99-77-66+44*34*23)12'/0'./%--$,,#**")) ''%&$%"#""  (  GO)KS*MU-NW/NW0PY2PZ3QZ4T^9Yd@`mKftUl}asjyt~ļ7BB6AA5@A4?@4>?3=>2<=1;<1:;09:/89.88-77,55+44*23)12'/0'//%-- #++"))!(( &'$%##!" ( HP+LU-MV.NW0OY2QZ3Q[5R\7T^8Wc?^kIdsTj{^qhvr}{ƿ8DD7CC7BB6AA5@A4?@3=>2<=1;<0:;0::/89-77-66+44*34*23(01'/0'//$,,#++")) '' &'$%##"" !!39'MV/NW0PX1QZ3Q[4S\7T^9Wa=]iFcqPix[neun{wºz;FG:EF9DE9EE8DD7BC7BB5@A4?@3=>2<=1;<0:;/99.88-66,55*34*23)12'/0&..%,-#++#**!(( &'$%##!! + !!!"$*&NW0OX1PZ3R[5R\7S]7U^9U`:Va=ZgDanNhvXm~askxt}}ĻO^_?3=>1;<0:;09:.88.77,55+44*23)12'/0'./%,-#++")) '' &'#$"#!! !!""$%%&>F-PZ3R[4S\7T^9U`;Wb>ZfB_lKesUk{_qhvp|xļ>KL?KL=IJ1;<0:;/89-77-66+44*23)12'/0&-.%--#++")) ''%&#$!".  !"#$%& &'(/)Q[5R\6S^9U^9V`;V`Xc@YeA]jHcrQhxZndsmzv~}ŽSde@MN?LM>KL>JK=IJ?3=>1;<0:;/99.78-66+44*23)12'/0'./%--#++")) ''%&#$ 1!"#$%& &'"))#**9A0S^9T^9U`;U`KL?KL=IJ1;<0:;/89-77-66+44*23)12'/0&-.%--#**!(( &' 4 !!"#$% &'!((#**#++%--CK5T_:U`Xc@Yd@ZeBZfD\hF^kKdsSiy\oetmyu~}úƿERSDRSDRRDQRCPQBOPANO@MN?LM=JK=IJ1;<0:;0::.77-66+44*23)12'/0%--$,,#**!((-""#$ &'!''"))#++%--'//(01FP8Wb>Xc@Xd@ZeB[gD[hE\hG^kIboOhwXl}aqivp{xżGUVFTUESTDRSDQRCPQBPPANO@MN?LM=JK=IJ2<=0:;/99-77-66+44*23(01'./%--#++")),#$%& &'!((#++%,-'//(01*23+44DO;Xd@YeBZgD\hF\iG]jH_kJ`nMetTjz\odskxs|{¹ŽǿHWXHVWFTUESTDRSDQRBOPAOO@MN>KL=IJ2<=0:;/89-77-66+44*23'/0'./%--* &'!((#**$,,'//'/0)12*34,55-77>IKL>JK1;<0:;/89.77,55*34)12'/0&.. * &'#**#++%,-'/0)12*23+44-77/891:;4>1;<0:;.88-66+44*23(01#**&#**%,-'./'/0*23+44-66-7709:1;<3=>4?@1;<09:.78-66+44*23$!''&-.'/0)12*34,55-77/890:;2<=4?@5@A7BB8CDJK?2<=0:;/89-77,55+34 './(01*23+44-66.780:;1;<4>?5@A7BB8DD9DE:FG1;<0:;/99-77%&!%&)12*34-66.77/891;<3=>4?@6AA8BC9DE;FGJK?LMANOBOPDQRERSFTUGVWar]l}aYi^KZ\M]]N]^N^_O_`P`aQbcRbcRcdSdeTefTdfTefSdeRcdQbcP`aO_`N]^M]]L[\JY[JYZHWXGVWFTUDRSCPQBPPANO?LM=IJ1;<09:-77 *23,55.77/890:;2<=4>?5@A7CC8CD:FFKL@MNAOOCQQDRSFTUGVWM[Xl|`k|aN]\N^^N^_O_`P`aQbcScdSde TefUfhUghUfhVgiVhiUghVhiVfhUghUfhTfgTdfSdeRbcQbcP`aO_`O^_M\]L[\KZ\JYZHWXGVWFTUDRSDRRBOP@MN>KL=IJ4?@7BB8DD:FF;GH=IJ>KL@MNAOOCQQDRSESTGVWIWX\l]m~caraN]^O_`P`aQbcScdTefUfgUfhVhiVgiWhiXijWijXijWijWhiVhiVgiUghTegTdfRcdQbcP`aO_`N^^L[\KZ\JYZHWXGVWFTUDQRCPQAOO@MN>KL=IJ;GH:FF8CD7BB4?@3=>1;<!,55/990:;2<=4?@6AA7BC9DE:FG4?@7BB8DD:EFKLANOBPPDQRESTFTUHWXIXYUe]ndj|dO_`P`aQbcRcdTdfUghVhiWiiWijYklZlm[mn[no\no[mnZlmXjkWijWhiVhiUghTdfRcdQbcP`aO_`N]^L\\K[\JYZHWXFTUDRSDRRBPPANO>KL=IJKL4?@7BB8DD9DE;GH=IJ>KLANOBOPDRRFTUGUVIWXJY[N]\mdofScbQbcSdeUegUghVhiWijYklZlm[no]oq^qr^pr_qs_rt`rt_rt^rs^pr^qr]pq\op[noZlmYklWijWhiVgiTegRcdQbcP`aO^_M]]KZ\JYZHWXGVWESTDQRBPPANO?LM=IJKL@MNAOODRRDRSFTUHWXJYZKZ\Zk`pfgyfQbcRcdTdfUghWhiXjkZlm[mn[no]pq^qr^qs`rt`tuatvauv`tu`su_st^rs^qr]oq[no[mnZlmYjkWhiUfhTefRcdQbcP`aN^_M]]LZ\JYZHVWFTUDRSDRRANO@MN>KLKLANOBOPDQRESTGVWIWXKZ[L[\gydpg]neRcdTdfVghWiiXjkYkl[mn]op]pq^rs_st`tuauvbvwcwxbvwauvbuvauvatv_st^rs]pq\op[mnYklXjkWhiUfhTdfScdQabO_`N^^L\\JY[IXYGVWESTDQRBPP@MN>KL=IJ;GH9EE !"))8CD:FFKL@MNBOPDQRESTHVWHWXK[[[qc{qywyu~ɈьҎӏ̎Ɏǎǐɔ̙Пԥתٮ۱۲ְͫĥ|xt~p|hv\opZlmYklWijVhiUegSdeQbcP`aN]^L\\JY[HWXGUVESTDQRBPP@MN>KL=IJA!!;GH=IJ?LMANOBPPIYUJZWa|cuz|ɁІшшъҌҍҎӐӒԓՕ֚ס٧ڭܳݷݻ޽޾޿޾ݻܷڳլͤěuhx_rr\opZlm^snhr`wmTefQbcQabN^_M]]K[\JYZGVWFTUDQRBOPANO?LM8CD@4>?>JK?LMETQQeXxkz}ςЄЅЇЈъыьҎӐӑԓՕ֛أګ۲ݹ޾ݻۭܵإ֞֘ԔБǍrv]rlUfgRcd`wiZoeN]^L[\JYZHWXGUVDRSCPQANO?LM#**=JKETPa}^t|~΁ςЄІЇЉъҌҎ-ӑӒԔ՚أڬܵ޼޿ݷگ٦מՖԓӒӐύ~xxpsbzjTfcN^^ZocOa]HWXGVWESTDRRANO@MN /89a}\t{}7ρσυІшщыҌҎӏӑԓ՘סګݵ޽ݸۮ٥֚ԕԓӑӐҍҌъЉno[pePa_K[\Oa\Oa[FTUDRRBPP1;< ny{}~πρτЅЇшщъьҎҐӒՕ֞٨߽ܳܶڬآ՘ԔӒҐҎьыъЇІυyYnbJYZGVW[r_ERSBPPrQy{}πςЄЅЇшъҌҎҏґӒ֘٣ۯݺ޽ܳا֜ՕԒӑҏҎыъшЇІτ́wUi]FTUZq]>KL,f{}πςЄЅЇшъҌҎӏԑԔ֝٨ܵݸڬؠ՘ԓӑӏҎьъщЇІЄςx]u`K\V'/0 1@n}΀ςЄІЈщъҌҎҏԒՖסۭݹ߽ܲإ֚ԓԑҐҎҌъЉшІЄςπvXn\ !/9C'ub|ρςЄІЈщыҌҎӐԒՙؤܱ޽ܵ٨֜ԔӒҐҎҌыЉшІτςρ}zb!/()JR*r`́τІшЉыҌҎӐԓ֚٦ܴݷګמՕӑҐҎҌыЉЇІτς΁yn?  *- 8; DL"kT~ЇЉыьҎҐӓ֛٨ݵݹڭנՖӑҐҎҌыщшІЄςρz|AHh" 15 9; 9; :=P_9rm|ύҐԓל٨ܵݹڭנՖӑҐҎҌъщчІЄςlu:Hh" 56 8; 9< S]8`oOthčҙ٨ݵݹڬנԖӑӐҎҌъщЇ΃eE\+  8; 9; 8; 9; 8; =AKT,OY<`r_zݷڪמԔҐҎҍьɆpNv8};.C  8; #%36 8; 8; 9; 8; 8; 9; 8; "?DJS-\kNmk|ټ۲פәʐslU|;}:~:l1 !8; +-8; 8; 8; 9; 9; 9; 8; 8; 8< :> =CDNLZ#Wh1_s=hJpWrWtYvYv[w[y]x]wYyQxJt@t;q2s3t4v4w6x6y7Vz' 8; 58 8; 8; 9; 8; 8; 9; 9; 8; 9< ;?>EBJDPHUJ[M`PeSjVo Yt"\x#_}%a'd(f*h+i,l.n/o1p2r3s3l0+=8; "$"$8: 9; 8; 9; 8; 9; 8; 8; 9; 9= FBKEPHVK\MaPeTjVn Xs"[w#]|$`&b'd)g*h,j-k.m/Wx%,= 8; /2 35 8; 9; 8; 8; 8; 9= =B?GBLEQHVJ[N`OdRhTkKaBV9K.=$0 8; +- 35 47 (+')&(%(&) %) "' % " 25 8; )+&(69 8; 24  58 8; 7: ),! $&*- 7: 8; 47 %'8; 7: ,.   TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/languages.txt0000644000175000001440000000026011177007633017455 0ustar jacobusersENGLISH;en ESPAÑOL;es DEUTSCH;de FRANÇAIS;fr РУССКИЙ;ru УКРАÏНСЬКА;ua EUSKARA;eu CESKY;cs PORTUGUÊS;pt ITALIANO;it NEDERLANDS;nl SVENSKA;sv СРПСКИ;sr holotz-castle-1.3.14-src/res/savedata/0000755000175000001440000000000011177007633016540 5ustar jacobusersholotz-castle-1.3.14-src/res/savedata/empty.txt0000644000175000001440000000000011177007633020425 0ustar jacobusersholotz-castle-1.3.14-src/res/help/0000755000175000001440000000000011177007633015700 5ustar jacobusersholotz-castle-1.3.14-src/res/help/nl/0000755000175000001440000000000011177007633016311 5ustar jacobusersholotz-castle-1.3.14-src/res/help/nl/help.txt0000644000175000001440000000055511177007633020007 0ustar jacobusersYbelle en Ludar zijn verschenen in een mysterieus kasteel. Ze moeten alle magische objecten in een kamer verzamelen om naar de volgende kamer te mogen gaan. Besturing: Pijltjestoetsen - Beweeg het spelkarakter Spatie - Springen / Sla een enkel dialoog over Enter - Sla een heel dialoog over F1 (tijdens het spelen) - Laat deze help zien ESC - Verberg deze helpholotz-castle-1.3.14-src/res/help/en/0000755000175000001440000000000011177007633016302 5ustar jacobusersholotz-castle-1.3.14-src/res/help/en/help.txt0000644000175000001440000000044011177007633017771 0ustar jacobusersYbelle and Ludar have appeared in a misterious castle. They must pick up all the magical objects in a room to go to the next one. Controls: Arrows - Move character Space - Jump / Skip single dialog Enter - Skip dialog sequence F1 (playing) - Displays this help ESC - Hide this helpholotz-castle-1.3.14-src/res/help/sr/0000755000175000001440000000000011177007633016324 5ustar jacobusersholotz-castle-1.3.14-src/res/help/sr/help.txt0000644000175000001440000000077011177007633020021 0ustar jacobusersИбела и Лудар су се појавили у тајанственом замку. Сад морају да покупе све чаробне предмете у соби да би прешли у следећу. Управљање: Стрелице - Померај лика Размак - Скочи / Прескочи говор Ентер - Прескочи цео разговор F1 (у току игре) - Приказује ову помоћ ESC - Сакрива ову помоћ holotz-castle-1.3.14-src/res/help/de/0000755000175000001440000000000011177007633016270 5ustar jacobusersholotz-castle-1.3.14-src/res/help/de/help.txt0000644000175000001440000000056211177007633017764 0ustar jacobusersYbelle und Ludar sind in einem geheimisvollen Schloss angekommen. Sie müssen alle magischen Gegenstände in einem Raum sammeln, um in den nächsten zu kommen... Tasten: Pfeile - Bewegt die Spielfigur Leertaste - Überspringt den einzelnen Dialog Enter - Überspringt die ganze Dialog-Folge F1 (während des Spiels) - Zeigt diese Hilfe an ESC - Versteckt diese Hilfeholotz-castle-1.3.14-src/res/help/it/0000755000175000001440000000000011177007633016314 5ustar jacobusersholotz-castle-1.3.14-src/res/help/it/help.txt0000644000175000001440000000050111177007633020001 0ustar jacobusersYbelle e Ludare sono apparsi in un misterioso castello. Devono prendere tutti gli oggetti magici in una stanza per poter entrare nella successiva. Controlli: Frecce - Muovi il personaggio Spazio - Salto/Ignora una battuta Invio - Ignora un intero dialogo F1 (in gioco) - Mostra questo menu ESC - Nascondi questo menu holotz-castle-1.3.14-src/res/help/ua/0000755000175000001440000000000011177007633016305 5ustar jacobusersholotz-castle-1.3.14-src/res/help/ua/help.txt0000644000175000001440000000103411177007633017774 0ustar jacobusersІвонна та Дюдар опинилися в загадковому чарівному замку. Тепер їм необхідно збирати всі магічні предмети в кімнаті, щоб пройти далі Управління: Стрілки - Рух героєм Пробіл - Стрибок / Пропустити репліку Введення - Пропустити діалог F1 (під час гри) - Показати довідку ESC - Закрити сторінку довідкиholotz-castle-1.3.14-src/res/help/sv/0000755000175000001440000000000011177007633016330 5ustar jacobusersholotz-castle-1.3.14-src/res/help/sv/help.txt0000644000175000001440000000051311177007633020020 0ustar jacobusersYbelle och Ludar befinner sig i ett mystiskt slott. De maste samla ihop alla magiska objekt i ett rum for att kunna ga vidare till nasta. Kontroller: Piltangenter - Forflytta karaktar Mellanslag - Hoppa / Hoppa over singeldialog Enter - Hoppa over dialogsekvens F1 (under spelets gang) - Visa denna hjalp ESC - Dolj denna hjalpholotz-castle-1.3.14-src/res/help/sv/help_org.txt0000644000175000001440000000053211177007633020670 0ustar jacobusersYbelle och Ludar befinner sig i ett mystiskt slott. De måste samla ihop alla magiska objekt i ett rum för att kunna gå vidare till nästa. Kontroller: Piltangenter - Förflytta karaktär Mellanslag - Hoppa / Hoppa över singeldialog Enter - Hoppa över dialogsekvens F1 (under spelets gång) - Visa denna hjälp ESC - Dölj denna hjälp holotz-castle-1.3.14-src/res/help/ru/0000755000175000001440000000000011177007633016326 5ustar jacobusersholotz-castle-1.3.14-src/res/help/ru/help.txt0000644000175000001440000000103011177007633020011 0ustar jacobusersИвонна и Людар очутились в загадочном волшебном замке. Теперь им нужно собирать все магические предметы в комнате, чтобы пройти далее. Управление: Стрелки - Движение Пробел - Прыжок / Пропустить реплику Ввод - Пропустить диалог F1 (во время игры) - Показать справку ESC - Закрыть страницу справкиholotz-castle-1.3.14-src/res/help/es/0000755000175000001440000000000011177007633016307 5ustar jacobusersholotz-castle-1.3.14-src/res/help/es/help.txt0000644000175000001440000000047311177007633020004 0ustar jacobusersYbelle y Ludar han aparecido en un misterioso castillo. Deberán recoger los objetos mágicos en cada sala para poder pasar a la siguiente. Controles: Flechas - Mover al personaje Barra de espacio - Saltar / Pasar diálogo Intro - Saltar diálogo entero F1 (jugando) - Mostrar la ayuda ESC - Ocultar la ayudaholotz-castle-1.3.14-src/res/help/cs/0000755000175000001440000000000011177007633016305 5ustar jacobusersholotz-castle-1.3.14-src/res/help/cs/help.txt0000644000175000001440000000046311177007633020001 0ustar jacobusersYbelle a Ludar se objevili v tajemnem hrade. Musi vzdy sebrat vsechny magicke predmety v mistnosti, aby mohli postoupit do dalsi. Ovladani: Kurzorove sipky - Pohyb Mezernik - Skok / Preskoceni vety dialogu Enter - Preskoceni celeho dialogu F1 (pri hre) - Zobrazi tuto napovedu ESC - Skryje tuto napoveduholotz-castle-1.3.14-src/res/help/eu/0000755000175000001440000000000011177007633016311 5ustar jacobusersholotz-castle-1.3.14-src/res/help/eu/help.txt0000644000175000001440000000047611177007633020011 0ustar jacobusersYbelle eta Ludar gaztelu misteriotsu batean agertu dira. Gela bakoitzeko objektu majikoak bildu beharko dituzte hurrengo gelara joan ahal izateko. Teklak: Geziak - Pertsonaia mugitzeko Hutsunea - Jauzi egin / Elkarrizketa moztu Sartu - Elkarrizketa kendu F1 (jolastean) - Laguntza erakutsi IHES - Laguntza ezkutatuholotz-castle-1.3.14-src/res/help/fr/0000755000175000001440000000000011177007633016307 5ustar jacobusersholotz-castle-1.3.14-src/res/help/fr/help.txt0000644000175000001440000000053311177007633020001 0ustar jacobusersYbelle et Ludar sont apparus dans un mystérieux château. Ils doivent récupérer tous les ojets magiques d'une pièce pour passer à la suivante. Contrôles: Flèches - Déplacer le personnage Espace - Sauter / Passer un dialogue Entrée - Passer une série de dialogues F1 (pendant le jeu) - Afficher cet écran ESC - Masquer cet écranholotz-castle-1.3.14-src/res/help/pt/0000755000175000001440000000000011177007633016323 5ustar jacobusersholotz-castle-1.3.14-src/res/help/pt/help.txt0000644000175000001440000000046311177007633020017 0ustar jacobusersYbelle e Ludar apareceram num misterioso castelo. Deverão recolher os objetos mágicos em cada sala para poder passar à sala seguinte. Controlos: Setas - Mover a personagem Barra de espaço - Saltar / Passar diálogo Return - Saltar diálogo inteiro F1 (a jogar) - Mostrar ajuda ESC - Ocultar ajudaholotz-castle-1.3.14-src/res/playlist.txt0000644000175000001440000000002611177007633017350 0ustar jacobusersholotzcastle milanb holotz-castle-1.3.14-src/res/intro/0000755000175000001440000000000011177007633016103 5ustar jacobusersholotz-castle-1.3.14-src/res/intro/nl/0000755000175000001440000000000011177007633016514 5ustar jacobusersholotz-castle-1.3.14-src/res/intro/nl/intro.txt0000644000175000001440000000001411177007633020403 0ustar jacobusersPRESENTEERT holotz-castle-1.3.14-src/res/intro/intro.tga0000644000175000001440000045325711177007633017753 0ustar jacobusers X,  "'*!-$1#0".!- +$!&&40B;QD]KgRpVvZ{\~`__]]YzUuPnJeE^>U4H,<$2".0B?VOm]gox~ā|wpgbVvJeAY4G)8$,<?VSrdr~ՁҁyqfYyJe;P&4 ",<F`[}n~ށ ́ȁ⁠~uj_Mi;Q(6 (7@XVvoʁ ufWwD]5H+)->Lhh zo^Kf9M%3$8MVvr# {o`Nk9O)8!-#5HXyx%}}|{| |p`Lh +/7KYzz|qyj`__aen{|{zzxxvovy~ymXyHc9O,<(  +;Srw&zvutstsp`mLh6J+;$1# C\ltuuvuut rsotv|}vgUuC\5H'5 %2Jek|mtzxwvuuuuqfgGa4H*:$1'!-WxnpkQp?VLidp poipv}zp]Lh>U0A + 9Nab3F Idkwwxw'vwvrpaD]3F+;$1(AZmpYz&5,<Lhollklnqv|viVuC\5I)8#(7Pny|\~7K$ *Qptyyxyxsu\~BZ3F*:$2) 4Gcb9N  7Ljdiiijlqzn[}Jf;Q.? + 9Nh~{u_9N' 5IgyzyzyurXy?V3E+:$1( !-PmJf)b|`OmQoZ|dffdksxsaNk@W4G&4".Kgy}|}|w^;Q* D]oz{{zzvrTsUF`Uuba_fnwuiTsD]8M)8%4G_ ~}}~}za=S!- *Z{x||xnoOm:P2D*:$1)!  ?WiRqHbBZ) >Uq ~~~ h?V"/  2Eg|}}}|yqiKg:P1D*:%2*! gz_OlGa@X;Q6J1C+;)98MTs\~XybpxnZ{Je=T0B!-(Kg| ~ }h@X$1 E_r~~ ~ypdIe9N1C+;%2*" )9pYzLhE_?W:P6J1C+;* ;PYzWwanvp^Lh?W1D$2&5Xy hB[&4$2\~{ yp`Ga8M1C*:%2+" SrfTsKfD]?V9O5H0B*:" (6MjVu]juo]MiAY4G&4 ,<b kE^'6!  4Hg} |t\~D^8M1C*:%3+#  vw_PnIdC\>U9O4H/A(7 >URpNketp]NkC[5I&4! 5IkJeNkroF`)8# C\p {qWwC[8M1B+;%3+#  6JnY{OlHbBZ>T9N4G/A"/   1CKfNkgtp^NjBZ5I'6"@Xsz'$ (7OkTsetn\NkC\6J&5" @WzF`3FXywoJe,<&  2DcxlPn@W7K1C+;&4 ,%  $v_RpKgF_AY( U7K1C,<'5!.'  g~eVvNkHcE^@XU7K1C+<'6"/(  %3v`TsMjGbD]@W;Q6K)82El^WwNkD^TtkqdVvKg@W1D$1"  E^ǁwNk* +KfpsQp2E!.!  1CkvZ|Gb=T7K2D,<(6#/(  Ttl[|RqLhGbC\?W:P5H+  yuc[|UtPnIdAYTsmqbUtJe>T0B"/" BZ|a-> Idk~uRp4G#/# SrsWwF`=S6J1C-=(7#0)   y{eXxQoLhGaB[?V:O.?Lcj^XxRqNkJfD^>UYzpn_RqHc=S.?!-# ?W|l:P2D[}}zVw6K%2% MioSrE^=T6J2D-=(7$1*  3Fs`VvPmKfF`BZ?V8M%2 $1qb[}UuQoMjIdE^6KAZ_rk\~RpE_9O,< ,$! 5HtwGb# $2Srs{Yz7L&4&  WwiQoD]=S7K2D->)8$1*  _k[~TsNkJfF`BZ>U6J#kzh_XyTsPmLhHcAY$1%D]gqgYzOlD]5I)8*%"  1DrXy$1  B[hzYz9N'5(  cdPnC\V  ".Nl[}T+;".$ 0CwZ|KfB[U-=#0&  BZrXxJeC[V($Yyrl_VvLh>V2D(7#1!. +(&#   Uvh_YzUtQoMiHb4G |ohb^Z|WxRq:P gw_ulcZ{NkBZ5H.?+;*9'5%3#0!-*'%#"!   %2k $" nOl*9  (7Ga ,  UuHc5H*:#0'! >Uu[}OmHbBZ=T9N5H1C'6hqe]XyTsPnMiB[". Wwtje`]Z{UtE^ ,  irZ|nrg_UtId ^}tgZ|]tmd\~QoD]7L1C.?,<*:(7&5$2"/ ,)'&%#"!    >U%3& `Kh4G,=6K&OmLi8L,<%2 ,$  akXyNkGaBZ>T:O6J2D'Kgui`[}WwTsPmFa&5 qskfb^[}Tt8L"bvib]TskriaVwKg?W4H1C/@,=+;(7&5%2"/!-*)('&%$#"  ,<q8.  vIdLg$%D]( %MiOl9N-='5 -'   mgWwMjGaB[>U:O7K0Btrf`Z|VvSrOl9O CWynid`]WxC\)\xxjc^Z|RqZ|tne]SqF`9O3F1D/@->+;)8'6%3#0!- ,+)('%$#!  Xy 27( ցZ|IeB[  D]$2$JfPn:O.@(6!.)" yeVuMiGbC[>U;P7K)9*9{md_Z{VvSrJe'6 !slgc`[}Kg(7 3Wn zld_[}YyUtPnosjbXyLi@X7K3F1D/A->,<)9(6%3#0!.!- , ++)('&%$#"    8M*>0! rC\Nj$27K0B$D^Rp+<*9(7%3$1#0"/!- ,*)(''%$#"! )8jB8) VwC\E_ )8?V# #AZUt=S0B+:$1+%  =T{_TsMiGaC[?V;Q4H( ~rhb]XyUuKg*9 1A}rmgda[}D]%!Rj|ohc_[}YzRp7K'D]qskcXyMjBZ8M6J4G2E0A.?,<*:(7&5$2$1#0!.!- ,*)('% #"!   Qo7D1! q@XMj1CHb!-#>UWw=T2E,<%2!-'! Mju^SrMjGbC[@WU' MjtskcYzMjAY;P8M6J4H2E0B.@,=+;(8(7'5&4%3%2$1#0"/".!. , +*('%$#!   (_ID2!  sAYJf9O3F6J "7K\~@X5H->(6#0*%nl\~RpLiGbC\@W:O#0 rid_[}XxB[   +vqlhd]>T! G`tlfc_]WxF`$2Enuog^RqGa>T:P8M6J5I3F0C/@-=+;*9(7'6&4%2$2#1#0"/!-+**('% #"    D]:N<)[}>UKg!.!-D]*03E^AY5I/@(7$1 ,&!$yi[}RqLiGbD]AX8L$BZzohc^[}Tt1D g{snjgbQo$1 FVumhda^Yy>U* $_xrkbXxLhAZ,<*:)8(7'6'5&4%3$2$1#0#/!-+*)'&$$"!    &4nSE2! }~qD]AY@X Hb%3 !-=`BZ7L0A*:%3!-("'6fYzQoMiHbD]?V0Anwmfb]YzF`) ;KvqlheTt1C  >P voifb`[|AY) C\sung]RpF`?V,<+;+:)9)8(7'6'5&5&4%2$2#0". - ,+*('&%#!   Lh :M;(~| |{xkZ{TsPnB[6J7KLi.?=T/A! /)9dE^8M0B+;&4"/*#6I}cYzQoLhHbD]>U(6 "/rjf`]Ut2D zsokh_U,=+<+;*:)9(7'6&5%3$2#0".!- +*)'&%$#!   QoLM9' ~r`UtMj?V9N)8$2  +;@X6J%Je#0 -+fF`:P3F-=)7$1(Z{taXxRpMiHcE^7L zwnhc`Wx1C )5zuokhRq$1 3@zrnjfd\}BZ# @XuxqjaUuIeB[@X?V=T;Q9N8L5I4G2E0B0A/@.?-=,<+;*:)9)8'6'5&5&4%3$1"/!.!- ++)('&$#!   3Fx-WC/ nV=S;Q:O7L6J4G2E1C/A/@.?->,<+:*:*9)8(7(6'5&4$2$1"/". - ,+*)'&%#"!  XyEJ7& 4H,=+<+;*:)9)8(7(6'5&4%3$2$1#0".!- , +)(& $#"   ,<{L?- i=T(6&4D]!- +fKg>U6J0B$2'k^VvRpMjIc=S$xoke`Mi!.~wsokNk$2 (3wrnkg]F`( @XuyslcXyMiF`D]B[@X>V=Tnzvog\~QoHcF`E^B[AY?V=T;Q9O7L6J5I4H4G3F3E2D1C/A.?->-=+<+;*:*9(7'6'5&3$2#1#0".!- , +)('%$#!  .?x.M<+ tgSr ,.?2DC\1D!  `Ol@X7K#0  ?Vf]VvRpMjHc'6g|smidId"3> ~ytpf;Q "/ztpmjb@X#Hba{xrj`UuLhGbF`D]B[@X?V=T;Q9O8L7K6J5I5H3G3F2D1C0A/@.? ->,<+<+;+:*9)8(6'5&5&4%2$1#0".!. ,+)('&$#!  SrAC2! xzig_$1 9N"3FUVv{{undZ{NkIdHbF`D^C[AY?W=T;Q:O8M8L7K6J5I5H4G3G3F2D1D1C0B0A/@.?->,=+<+;+:*9)8(7'6&4%3%2$1#0". ,**(&%$#!   /@x@8(z{rcf^,<';P 'AYYzId,<cud\}VvQoKg6JGavolfNl(Wc}yuoTs$1 "|wspm_?V&!-qvLht|wpg]RpKgJeGbF`D]B[AY?V=T;Q:O8M9M8L6K7K6J5I5H4G3F2E2D0C0B/A/@.>,=+;*:*9(8(7'6&5%3$2#1#0"/!. , +*('%$"    Nl :=.  uz{xhbeg1C1C#1 *9 Hb8Mrqc[}WvNkBZ&3 s}tnka7L %|xs`1C  }ytqnaU=T;Q:O9N9M8L7K6J5I5H4G3F1D1C0B/A/@->,=+<,<+;*9)8(7'6'5%3%2$1#0"/!- ,+)('%#"!  &4n<3%yzrbba7L ;Q $1{ncYzMi9N!. ".zrnhUu -x~zvg,<+;*:*9)8(7'6'5&4%2$1#0".!. ,+*('%#!    Kg18* syy{kbabg=T (71C !.j\}F`)8 Qnxrn`8L  ;F|xnF` v{wsoZ{1B \~qgc^[}Qo|}xqg]SqMjLhKfIdGbE_D]B[@X>V=TU=T=ST*2' qxyyznba_`eHc*:P "/=T' +:|upf;Q ^i}yc1C  q}zvqWw.> )lsjeb_[}Pn:O)0Bp|vndYzRpOmNkLiJfHcGaF`D]B[@X?V=T=SU j~zxnVv)8 & Idxoheb_Z{Nj/@*e~xqg]TsQoOmNkLiJeIdGaE_C\AZAY@X@W>V>U=S-=,=+;+:)9)8(7'6&4%3$2#0"/!- ,*)('%#!   -=x," rwwxyyrdb`_^aQo%( |tm]/A  ~qMi& e|ynPm+< %.?}umhdb_Vu>U!- Xy~ztj`VvRqQoOlMjLhKfIdGaE^C\BZAY @X?W?V>U>T=T-=+;*:*9)8(7'5&4%3$1"/!. ,*)'&$"!  Nk#% zovvwxxy vedb`^[}_Xy ,0Bz`Mi9N'5EJzUu)8 c~~zrSr*Wx{qlgea^Li4G Hc}|vmcYzSrRpQoOlNkLhJeIcFaE_C\B[BZAY@X@W?V>U=T=S,<+;)9(7(6&5&4%3$1#0".!-+*('%#"!  #/h # mtvwx uq\~GaXydb`^\~_Xy)8 ;QWw9N&4  ({e/@ ]u ~zlJe!-9NvokgeaUuAZ"/V>U=T,<+;*9)8'5%3$2#0".!- ,+)'&$#  %Uu jpttuusn[|@X". $2@WTt`_\~Y{\~`2D %- xE^ Sg{fT#0 $1o{ul`YzWwUtSrRpPnNkMiKgIeHbFaF`E_D^D]C\B[BZ@X@W?V>U=T=S,<+;*9)9(7'5&4%3#1#0".!- ,*('%#!  )8q  bstslWwAY%3 '6D]Xx^[}Xx[|`=T {Yz+ M^ z`1D'5u}uqnkibKf+;"b~wmdZ|XxVvUtSrRpOmNkMiKgIdHbGaFaF`E_D]C\B[AZAY@X?W?V>U=T-=,<+;*9)8(7'5&4$2$1#0!.!-*)(&$"  C\ ngrro`AY+ 1CGbZ{Z|WxVv`@W /6+mSsGa:O$ IZ }]->TsztqmjdTs9N"Uuxpf]YzXxWvUtSqQoOmNkLhKfIdHbGbGaF`F_E^D]C\AZAY@X?W?V>U>T=S,=+;*9)8(6'5&4$2#0"/!. ,*)&%#! ^ ]nn\~F`'5   6KMiVwVvUu`Id  ")#  EW ze5H9Mxtpni]Ga&5 Id{ri_Z|YzWxVvUtSqQoOmNkLhKfJeIdHcGaF` E^D^D]C\C[BZAZ@Y@X?W>V>U=S-=,<+;*:)8(7'6&4%3$1"/!. - ,*(&$"! +;u {Qp^Hb'5  "/;QMjOmRq^Lh           >J yUu1B_|vspncPn3F B[}uja[}Z{XyWxVvTsSqQoOlNjLhJfJe IdHcHbGbFaGaF`E_D^D]C\BZAY@W>V>U=S;Q:P9N%8M8L7K6J5I4G3F3E2E1C0B0A/@.>-=,<+;*9)8(7'5&4%2#1"/". ,+('%#! E_ Vv;Q.? +;AYMjQo]Qo$     6C {Tt*: @Xzuspi[}:O#;Q}~vmc]\~Z{YyWwUtSrRqPnOlMjLhKgKfJfJeIdHcGbGaF`F_E_E^D]C[B[AYAX?W?V>U=T=S;Q :P:O9N8M7L7K6J5I4H3F2E1C0B/@->-=,<+;*9)8'6'5&4$2$1"/!- ,*(&$"  %^ %2    /@D]MjZ|Ts"/  !"$%&'&'&&%$#"!  3B sSr%3(l~yvtocJe/@0Awyod^\~[}Z{XyVvUtTsRpPnNkMjMiLhKfJfJeHcGbGaF`E_D^C\B[AY@X?W?V>U=T,=+;*9)9)8'6&4%2$1#0!- ,+)&%#!   ->x f  +2EE^UuXx(7 "$%()* , -!-"."/#0"/#0"/".!.!- ,*)('%3A pB[  Mj|yuqeLi.@! (6uyqg`^\[}YzWxVvUtSqQoPmOlNkMjLhKgJfIeIdHcHbGaF`E_E^D]C\B[BZAY@X@W?W>U*=S-=+<+;*:)8'6&5%3%2#0"/!- +)'&$" AY [|4H$1U=T=S.?/@0A0B0A/A0A/A/@.?-> ,=+;*:*9(7+;@S=T7L5H0B,="Vv~{wn`E_)8%i}ukca_][~[|XyWwUuTsRpQoPnOlNkNjMjMiLhLgJfJeIdIcHbGbGaE_E^D^D]C\C[BZ@X?W?V>U=T,<+;*:)8(6'5%3$2#0"/ , +)(%$!&4nqMizt]BZ (%2   %*!.%2'6)8+;->.@0B1C2E3F3G5H5I6I5I6J7K6J5I5H4G3F2E 2D0B/A/@.@.>-=+;+:)8(7#08MytdIe+<awldb`^]\~Z{XyWwUuTsRpQoQnOmNkNjMjLiLhKgKfJeIdIcHbGaF`F_E_D]C\0B[BZAY@X?W?V>U=T=S,=+<*:)9(7'6&5%3$1#0". ,)(&$! ;PWxUts~lNl&4   !'!-$2&5*9,=.@1C3E5H6J7L8M9N:O;P;QU>T,=,<*9)8(7&5&4%2#0".!-+)'%#  Nk=T]lx~~~t[}?W !(".&4*9-=/A2E4H6J8M:OU=T=S;Q;P:O9N8M7K6J5H4G/@#C\{p`U'=T=S;R;P:O9N8M7L7K6J5I4G3F2E2D1C0A/@.?->,<+;)9(7(6&4%3$1#/!- +)'%#! $bv:Pfkp}}}~~nPm&4  &".&5+:.?2D5H8L:PU?WAZC[D]D^F_GaFaHbGbHcHbHcHbGbGaF`E_D]B[C[BZ@Y@X?W>U=TU ,  )BZrzVv)8Rq{qhedb`_^\~Z{XyWwUuTtTsSrSqRqQpPnQnPmNlNkNjMjMiKgJfIeIdHcHbGbGaE_E^D]D\B[AZ@X?V>U=S]wxeKf*:  Kg|sjfecb`^]\~Z{XyWwUuTtTsSrRqRpQoPnOlNkMjLiLhKgJeHcGbFaF_E_D^D]C\B[BZAY?W?V>U+<+;)9(7'5&4%3$1".!- +)'$" >T@WMihijly~~}||{||~~pNk&4  &#0)8.@3F7K;P>UAYD]FaHcKfLiNkOlPnQoQpRqSrTsSrTsSsTsUtTsSrSqRqRpQoPn OmOlNkMiLhKgKfIeIdHcF`D^C\=S=T~hF`+<$$>TgpdTtAY0B E_~tkgedba`^\~Z|YzWxWwVvUuUtTtTsSrSqRqRpQoPnPmNlNkMiLhKgJfJeIeIdHcGbF`F_E_E^D]C\B[AZAY@X@W>V>U=T-=+;*:)8(6&4%3$1"/!- +)'$#Ww0BWwghijo|~~}||{z{|~uYz5I )&4,=2E7K;Q?WC\F`IdLgMjPmQoSrTtVuWwXxXyYzZ{YzY{YzY{YzXyXxWxVvUuUtTsRqRpQoPmOmNkMjLhKgJfIdHc[}~oUt3F *9Tss~k`TsHbU=S+;)8(7'5%3$1#0".!,)'%#  +hi*:ahhiir~}|{zzyyz|znIe$1   ,'6/@5H:P?VC\GaKfNkPmSqTtVvXxY{[|[}\]^^___^^^]]\~[}[|Y{Z{XyWxWwVuTtTsSrRqQoPmOlMjMiOmWwRqVvUuMjJeD])9!U=T#,<+;)9(7(6'5%3$1". ,*(%$! +;qHc1Ccfgghiw~}||zzyxyz}uXy4H !-)80B6K=SB[F`KfNkQoUtWxY{[}]_`aabcdeddcba`_^]]\~[}Z{Y{XyWwVvUuUtSrQpQnPmNkMjLhKfIdE^2E'6Ietrhc[}WwPmC\5H#1  AYxnjhgfebb_^][}Z|YzXyXxWwVvUuUtTs SrSqRqRpQoPnOmPmNlNkNjMjMiKgJfJeIdHcGbGaF`E_E^D]C\B[ AY@X@W?W>U>T-=,<*:)8'6&5%3$1"/!-+)&#! 9N ->7Lbfghhgq{~~}||{zy xxwwwx{|jF`#0  ,*:2E8M?VE_IeNkRqUuXy[}^`bceeghhijihhgffedcba`_^]\~[}[|Z{YyWxVvUuSrSqQoOmOlLh?V!-6J`tlfa\~UtLh:P)8  >Uyokjhgfdba_^\[}[|Z{YzXyXxWxWwUuUtTsSrRqRpQoQnPmOmNkMjLiLhKgKfJeIdHcGaF`E^ D]C\B[BZAY@X@W?V>U=T,<+:)9(7'6%3$1"/!-+)&$"  Ol%3AYafefeYzAZ-=Sreruxyxzyyxwwvwx|wXy2E*)93E;PAYGaLhQoVvYz\~_bdfhijklmnonnmkjiiigfedcb``_]\[}Z{YzXxWwUuTsRpF`,<  +Fag}snfeaZ|Pn@W.?) ;Qyplkihgddba^]\~[}[|Z{Y{YzXyXxVwVvVuUuTtSr SqRpQpQoQnPnPmOlNkNjMiLhKgJfJeIdGbGaF`E_D]C\BZAY@W?W>U=T,=+;*9(8'5%3%2#0". ,)'$! $bm".Lhbee cWx;P"$1.>/AU{qmlkigfdbb_^]][~\~[|Z|Z{Y{YzXyXxWxWwVvVuTtTsSrRqRpQoPnPmOmNkMjMi6KgKfJfJeIdHcHbGaF`E_E^D]C\B[BZAY@X@W?V>U=T=S,<+;)8(7&5&3#1".!-*(%" 2Dv5H.?]caPm'5 ##0$1-=U=T-=+;)9(7&5&3#1"/ ,+(%"U )96J@WHbNkUt\~aejortwy{}~}}{{yyxwvt%srqonmlkihgf_5I%2U=TU=T=S;Q:O9N8M7L6J5I3G3E1D1C/A/@,=,<+:)8'6&4$2#/!. +(%""`d =TVv@X ,*98MD]KhSr[|agmswz}}}|{yxxvutsqponmt }{xvogUtC[3F". E_~uqpomlkigfecaa``_^]]\~[}Z|Z{XyYyXyWwVvUuTsSrRqQoPnOmNkMjMiLhKfJfIeHcGaFaE_D]C\$BZAYAX?W>V>U=S,<*:)8(7&4%3#0!. +(%"  $1kKg8M:O+ '1D?VJeRpYz`hmsx}ÁŁŁāÁ(~}|{zxxvussqpnllkjigf_Nk%3  Gb~vrqpnmkjhgedcbbaa`_^]\~[}[|Z{YzXyXxWwVvUuUtSrRpQoPnPmNlMjMiLiKhLgKfJeIdHcGbGaF`E_E^C]C\C[AZ@X?W>U-=*:)8(6&4%2#0!-+(%" ,<o6J & &48ME^PmWw_fmsy}ƁɁʂȁف!}|zyxwutrqpnmljjbKg&5 Rpvsqqonmkihfecbbaa`__^]]\~[}Z|Y{YzXyWxWwVuUuUtTsSsSrRqQpQoPmOmOlNkMjMiLhJfKfIdHcHbGaF`E_D]B[BZAY @W?V>T=T>UJeTt\~eksy~ͅ΁́&}|{yxwvusrqoleD](  Xyxtsqpomlkihfddcbba``__^^]\\~[}Z|Z{YzYyWxWwVvUuUtTsSqRqQpQoPnOm OlNkNjMiLhKgKfJeIdHcHbGaF`&D^D]C\C[BZAY@X?V>U=TU=T+;*:)8&5%3$1!.+)%"Pnr $9NHcSr^fnu|ցفف'~~{zzxrb?V&ixvtsrpnmljihgfeeddcba``_^^]\\~[}[|Z|Z{YzXxWwVvUuUtTsSrRqRpQoPnOlNkMjMiLhKgKfJeIdHcGbF`$E^C]C\B[BZ@X@W?V>U=T+;*:)8'5%3#0". +'$!'Wwa "*'+')#$!!&! !   ".=SLhWxbjry߁݁с}{pYz5Hkyvutsqpnmkihgffeedccba``_^]\~[}[|Y{YzXyXxWwVvUuTsSrRqQpQoPnPmOlNkMjMiKgJfJeIdHcGaE_E^D]C[BZAY@X?W>U>T,<*:(7'5%3#0!-*($  #aTt-=f {zwKssrpjoh:OAYPm[}env}uQn+; $szwvtsrpomlkihggfedccbaa`__^]]\~[}Z|Y{YzXyXxWwVvUuUtTsSqRpQpQoQnPmOlNkMjLhJfId HcGbF`E_D^C]C\B[AZAX?W>U,<*:)8'6%3#0!.*'# $2kC\&3fƄ̓΁̓͂̂ʁÁC\Sq^hqy % }Om% !-}zxvutrronmkjiihgfefeccbba``_^]]\~[}Z| Y{YzXyXxWxWwWvUuUtTtTsSrRqRpQo2PnPmOlNkMjMiLhKgJfJeIdHbGaFaF`E^D]C\B[BZAY@W?V>U=T,<+:(8'6&3#0!-*&"-=p1D#c͂̈́̃ʂɁȁƂ`D^F_Uuakt|  y]WwNjGaC\C[AZ5I/@,='6$2)%   +:zxwvusrqonljihhgfeedccbbaa``_^]]\\~[}Y{YzXyWwVvUuTsSqRpQoQnOmOlMjMiLhKgJeIdGbGaF`E_D^C\AZAY@W?W>U>T,=+:)8'5%3#0!-)&"5Iw$2Jf͂͂̂˃ʁɁȁƂłCKgGaWwcmv~ !"!  |xvpldh\}VvSsOlC\@X=T:O8L1C->)8$2#0+&)8{zxwvtsrpomlkjjihhgfedddcbaa``_]]\~[}Z{YzXyWxWwVvUuUtTsSrRqQpQoPnOlNkMjLiLhKgJfJeIdHbF`!E_D]C\B[AY@X@W>U=TU|%&4~́͂ʁȂǂPNkIdYyeox %+1441,% |wqkikjijfZ|Je=T7L8MU=T6.% {r[}AY!-     C\|zzxwvusqpnnlklkjiihhgffedccbbaa`__]^]\~[}Z|Z{YzXyWxXxVvUuUtTsRqRpQoPnPmOlNkMjLiLhKgJfIeIdGbF`E_E^D]B[AY@W?V>U=S+<*:)8&4%2".+'"Hco )E_f͂́bze]Pn;Q5H-=)  %HcZ{fqz )8FQY\ZRI>2' ~weD]!.  Qo}|zyxvusrqpnmlmlkjijihhggfeedccba`__^^]\~[}[|Z{Y{YzXyXxWwVvUtTtTsTrRqRpQoPnOmNkMj(LhKgJfJeIdIcGaF`F_D^D]C\BZAY@X?V>U=T+<*:(7&4$1!.+&"  Png&9NPnkɁ΁΁{jXyRp?W-="/"E_Yzgrz *;L[ej-cZL?1' y\~C\(7]~|zzywutsqponnmmllkkjjihggffedcccbba``_^^]\\~[}Z|Z{YzXyXxWwVvVuUtTtSrRqQoPm*NlNjMjMiLhKgKfIeHcHbGaE_E^D^D]C[AZ@X?W>U=T=S;Q9O8M8L7K5I3G3E0C/@->,<)9'6&4#1!-)$ Xx_%7KOmSrq΂́ ~n`Pm?W2E#/ K >UYyfqz(8J[ipqldWJ;.# qSq=T - n~}|zyxvutrpoonnmmlkjjihhgfedcbcaa``_^]]\~[}[|Z{YzXyXxWwUuUtSsSrRqQpQoPnOmOlNkMiLhKgJfJeIdHcGaF`D^D]C[BZAY?W>U>T=S;Q:P9N8M6J5I3G2E1C/A.>,<*9(7%3#0 ,(# Z|Vu"6JNkRps{f\~Kg8M.>  H4GWwfpz !2BRblomf[NA3( |jOl2D %z~~}{zxvvtrqponnmmlkjjihhgfeeddccba``^_^]]\~[}[|Z{YzXyWxWwVvUuTtTsSrRqQoPm(OlNkMjLiLhKgJeIdHcGbFaE_D^D]C\BZAY@W>V>U+;)9(6%2"/+&!!^Nk3FNjPn Hbd~o]Ga4G"/ 7$2Srcpy&5GT^deaXL@4* ځ nRp?W'6 '6~}{zywvutrqpopnmnmlkkiihggfededcbba`_`_^]]\~[}[|Z|YzXxWwVvUuTtSrSqRpQoPn(NlNkNjLiLhKgJfJeIcGbGaE_D^D]C\B[AY@X?V>T=S;R:O9O8M6J5I3F2E1C.@->+;(8&5%2".*% (cJf  1DMiPmJe2E$2'5 E,=MjOlany (6BLRUSNF<2( `6J& 5H}}{yxvutsrqppoonomnmlkkjiighgffeddcb`_^^]]\~[} [|Z{YzYyXyWxWwVvUuUtTsSrRqRpQoPmOmNlNjMiLhKfIdGbGaF`E_D^C\B[AY@X?V=T=SU=TU(7GaU=SU=S+;(8&4#1 ,'!  (7i~|5I #0  /A^ށH_`oy  jE^". &~~|zzxvuutssrqpopnnmlkkjiihggfffddcbba``_^]\~[}[|Z|Z{YzXyWwVvUuUtSrRpQpPnOlMjMiLhJfIdGbGaE_D]B[BZAY?W>U=S;Q;P9N8L6J5H3F1C.@,=+;(7%3"/*% )9j}{5I   ->_߁ QoVviv  zXy6J&4~|{yxwvuutsrrqpponml kjkjiihghgffedddcba`__^]\\~[}[|Z{YzXxWxVwVvVuUuTsRqRpQoPnOmOlNkMjLhKgIeHcGbGaF`E_D]C\BZAY@W>U=T;Q:P9N7L6J5H2E0B.?,=*9'6%2!-(  ,<j}{y3F- *9\~cB[%;Qcq{,tOl%2  ?W~}|zywvuutsrqponnmll kkjjihighgfedecbab`a`_^]\\~[}Z|YzYyXxWwVvUuTtTs'SqRqQoPnPmOlNkMjMiKgKfJeHdHcGaF`E_D]C\B[@X?V>V=TU=S;Q:O8M7K5I4G1D/A-=*:(7%2!-( .>n}{yw1C #0Sr|pGb!- 6Kdr|ԁ}ilnLh+:s~}|zyxwvvuutssrqqpooonmmllkjijihggfeedcbba`__^^]\\~[}Z{YzXyWxWwVvUuUtTs RqRpQoPnOmOlMjLiLhKgJeIdHbGaE_D]C\BZAY?W>UU9N*9 -  +F`gk?V) "/~|zzyxxwwuutssrrqpopnommlkkjijhhggffeddcbbaa`_^]\~[}[|Z{YzXxWxVvVuUtTsSqRpQoPnOmNkMiLiKgJfIdHcGbGaE^D]C\BZ@X?W>U,<}~bq|l4G$2      2DUujTs2D 3E~}{zyyxxwwvvuutsrrqqpponmmlkkjjihgffeedccba `_^_]^\\~[}[|Y{YzXyXxVvVuUtTsRqRpQoPnPmOlMjMiKgJfIdHcGaF`E^D]B[BZ@X?V=T=S;Q9N7L5I3F1D0A->*:'6#0* +:j}|zxvt7L ;QogV=TU=S*:(6#0) '5i}|zxvtr;P(7w{Rp*:  Gaoas~ c3F   !=T`jKg.@"  !.}}|{zzyzxxwvuvustssrqqponmmlkkjihhgffedccbaa`^]\\~\}Z|Y{XyXxWwVvUuTsSrSqRpPnOlNkMjLiKgJfIdHcGaF`E^C\C[AZ@X>V=T;Q:O8M5I3F1D/@,=)8%3 ,#0d|{ywusqBZ!\Ձ^0B#&hE^9Nhvp>U%  )8Pnn]?W&4  ;Q ~}|{{zzyyxwxwvvutttsrrqqponmml lkkijihhgffeedcbab`_^^]\\~[}Z{Y{XyWxVvTtUtSrRpQoPnOlNkNjMiKgJfIdHcGaF`E^D]B[AY?W>U+:'5"/#!,c|yxvsqoE^ >U|F`# ;QBZ AZlxyE_*   :Obv[|5I* Wx ~}|||{zzyxwwvuutssrqpponmmlkjkihhgffedccbaa`__-^]\~[}[|Z|Y{YzXxWxVwVvUuTsSrRqRpQoPmOlNkNjLhLgJeIdHbGaF`E^C\BZ@X?V>UV=T;Q9O8L5I3F0B.?*:%3+ #_~zxvtrpmPn :Pf7L.@~F` \~jp|Yz,=$  2EPm9N + ~~}}|{z{zyxwwvuuttssrqpponmmlkkjihhgfeeddcba``_^^\[~\~Z|Y{YzXyXxWwVvUuUtSrSqRpQoPnOlMjLhKgKfIdHcF`D^C\BZ@W>U=S:P9N7K4H1D/@+<(7!- \~}xvusqolUu#VvzId) Kg"C\ Hcpq}}RqD^?WU)8#0  Vv|}wusromkZ{ !-hځ\}/A/%2sLh;Qos}`;Q1C(7$1!-*&) -(7 +:6JJeb:P+   h ~~}~}}||{zzyyxxwvuuttssrrqppoonnmlkkjiihhgfeedcbba`___]\~\}[|Z|YzXxWwUuTtTsRqQpQoPnOlNkMjLiKgIeHcGbF`E^C\B[AY>V=T;Q9N7L5H2D.?+;%3 Nkw|vtsqomja 0BmU\~Ie'5&   AY~}~}|{{zzyxwwvuttsrrqppoonmllkjhhgfeedcbbaa__^]\~[}[|YzXyXxWwUuTtSrQpPoPmOlMjLiLhKfJeHcGaE_E^C[AY?W=TTq}urpnkige+;VvmSr!. Uu΁2F` sp'5#lx+{Nk9N0B)9&4#0!-)'%#!*Qo\~2D!-#     ~~}}|{{zyyxxwwvvuttsrrqqpoonmlmlkkjjihhggfeedccbaa__^] \~[|Z|Z{YyXxWwVvUuUtSrQpPnPmNkMjLiKgJeHcGbF`E^C\AY?W=T;Q9N6K4G0B+;"/ 2Dk|tqomjifd7K *l_C[  ]?W Vrnu~~f^^fjE^6K.?)8&4$1!-*(%$!Gbb:O$2'    ;Q !~~}}|{{zyxxwvuutsrqponmmllkjihhgfeedccba`_^]\[}Z|Y{XyWxVvUuTtTrRqQoPnPmNkMiLhKgIdHcGaE_D]B[@X?VUU&LhgKh:P2E+;(7%3#0!- +(&$" 7KbHc*:"/%     &4 # ~}}|||{zzyxwwvvuutsrqpponmlklkjihggfeedcba`#^^]\[}[|Z|YzXyXxWxVvUuTsSrSqQoPnOlNkMjKgJfIdGbF`E^B[@X?VU=SSrdD]8M1C+;)8&4#0!-+)'%#!.?_Rp0B$1'     Fa ,~~}||{{zyxwwvvutstssrqpoonmmlkjiihgfddc baaa__^]\\~[|Z{XyWwVvUtTsSrRpQoPnOlMjLhKgIeHcGaE_D]AZ?W=T;Q8M4H0B'5Vvwnljgeb`[}AY\~(+Yu , qNke zbzxro{nZ{SqLhHcF`D\AY?W=T>UaXx>U6K.@+;(7&4#0!-+*'%#" %3Z|]6J'5 ,"     m0~~}||{{zyyyxwxwvvutssrqpoonmllkjjhhffedcc ba``_^^\\~[|Z|YzXyXxVvUtTsSrRpQoOmOlNjLhKfIdHcF`D]C[@X>U+;(7&4#1". ,*(&$#!)Pm`;Q*:#/&    "/++~~}|}|{zzyxyxwvvutsrqqppooonmllkjiihhgffedcba``_^^\~Z|Z{XyXxVvTtTsSqRpPnOmNkMiLhJeIdGbE^D]AY?VU=TXydD];Q2E->*:)7%3$1!. ,+)&%#! IdmF`,=%2("   Sr7# ~~~}}|{{zyyxwwvuvutssrrqqoonmnmlkkjihgfeddcb a`_^^]]\~[}Z|YzXyWwUuTtSrRpPmOlNjLhJfIeHcF`D]B[@X>U;Q8L3F&4 1Cjwnifeb`^Z|=S[}j&5` [|3E7KLhfqz}|tnjhedajm\~UtNkKfHbE_C[AY?W>TBZfXx@X8M1C->*:(7%3$2"/!-+)'%#" @XhJf/A(7!-&! $*7~~}||{zyxxwwvvuttsrrqppnonnmlkkji hggffeddcbb``_^]\[}[|Y{YzXxWxVvUuTsSrRpPnPmOlMiLhJfHcGbE^C\AY?V;R8M3F%2 $1fxohgdb_]Z|Hc&uo$1 MjWSr  };P mzx}vokifdbcs`WwPmKhIdGaD]BZAY?W=TMikLh>U6J0B-=*:(6&4$1"/!. ,)'&%"!4GaQo4G+;#0)#  ?V90~}|{zzyxxwvutttsrrqqponmmkkjjihggfedcba``_]][}Z|Z{XyWwVvUtTsSqQpPnOlNjLhKgIdHcF`C\AZ?V=S9N4G!- `vpheca^\~YzTr5Iw0B'5 +&! j%A% ~}}|{zz yxyxwwwvuuttsrrqqponmllkjjihhgfeddcba``_]]\~[}Z|Z{XyXxVvUuUtSrRqQoOmNkNjLhJfHcGaD^C[@X=T:O5H)Qorheb`][|XyVu".Njw-=b#0IeMi dz}xqljhecalm]VuOlLhJeGbE^C\BZ@W>UE_hVvAY;P3F0A-=+;)7&4$2#0". -+)'&%# Mic?V/A)8".$ *: << ~~}}|{{zyyyxwvuutssrqpooonmlkkjihggfedcbaa`_]]\~[}Z{YzYyXxVvUuTtSrRpPnOlNkMiKfIdHbF_C\AY>U:O6I" AZnshdb_\Z{WwUt2D Xy}=T c%3g)Us@Y ~wysnjhgdbeuaYyQpNjLgIdF`D]C[AY@W>UPnmNk@X7L2E/@,=+:)8'5%3$1#/!- +*)'%"  B[hId3E+;*  Z{ K3~}}}}||{{zxyxwvu uttssrrqqpponmmlkkjihggfedcba`_^]\\~[}Z|YzXyWxVvUtSrRqQoPmOlMjKgJfHbF`C]AZ>U;P4H2Ejthca_\~Y{VvSr@W AZ=S }R?V ) kU\`F`>U6J2D/A-=*:)8'6&4$1#0!. ,+)' 7KnPn5H!. 'V;Q4G ".fvkb`^[}YzVvSrLhHc?V  `Tb$ ]rOmXvs{uoljgfdcin^WwQoNkKgHdGaE_C\BZ@X?VGagUuC]~}||{{zzyxwxwvvutssrqponmlkkjiihffedcba`__^]\~Z|Z{XyWwVvUtTsRqQpPmNlMiLgIeGaE^B[?W;Q0A [}smb_]Z{WxVuRqOm ,!AYMj `R5I*;R q|uomjhfdcbqbZ{SrOlMiKgHbF`E^C\BZ@W>VQpjMjAZ9O5H1C/A->+:)8'6&5%2$1#/!-*'Ut1C!-U7L4G2D0A->+;*:)8&5&4$2+y<^4 āÁ~}}||{zyxxwwvvutttsrrqpponmlkjjihhgfeddcba`_^]\[}Z|Y{XyWwUuUtSrRpQnNlMjKgIdGaC\@X:P "/ftg^[}XyVvSrPnNkJe  $1]Vv##0WMi  n B[ ttt|yromjhgecbrd\UuQoOlLiJeHcFaE^C\BZAY?WSriNjD]+<+:)8(6&4)  D^\Oł~~}|{{zyxxwwvuutssrqqppoonmlkjjihgfeeccba``_]\~Z|Y{YyXxVvUuTsRqQoPmMjKgIdGbE^@X7L [}rj^Z|WxVuRqPmMiJf'6 #BZtm!-Rf()8n4G lxvytpnkihfecoh_WxRqPnNkKgIdGbF`D^D\BZAYAZaaIeAZ:P6J4G2D/A->,<*:)8&5& %x;a8Ƃă~~}}|{z{zyxwxwvuuttsrrqqponmllkjjihggfedccbaa_^]\[}[|YzXxWwVvTtSrRpPmNjLhJeGbD]@X.?F`n `Z{XxTtQpOlLhId7K )Ol~d#0_R5H { Nk=Rt~v{uqoljgfechnb[|TtQpOlMjKfIdGaF`D]C[BZAXJelWwGb@X9N6J4G1D/A->,=+;(7" B[\U ܁ ف~~}}|{{zyxxwvuutssrqqponml$lkjiihhgfeedcba``_^][~[}Z{XyWwVvUtTsRpPnNlMiJeHcE^?W"/ .@ipaYzWwTsQpOlLhIdD] *:$2 aRb"5H=T c|ux|vromkhgedbte^WwSqPnNkLhJeIdGaE_D]C[AY@XUuhPmF_>U9N6J4G2D/A.?,=(7'~@c;łā‚~}||{{zyyxwwvutssrqqpopnmmlkjihfeedccba`_]\[}Z|YzXyWwVuTsRqQoOlMjJfHcD^>U "bqeYzVvSrQoNkKgHcE_#1E^ 2E | Ds0B|r}wrpnlihfe`oj`Y{UtRpOmMjKgJeHcF`E_D]B[BZD]e`KgE^=T8M6J4G1D/A->&4MjcSȁłÁ‚~}}||{zyxxwvuutsrrqpqoonnllkkjihggeedccba`_^\\~[|Y{XyWxVvTtRqQpOlMiJfGbD]5H Njok[}UuSrPnNkJfGbD^5H?VԁUTt;QTs5H ~n}xsqnljigfdhoc\VvSrQoNkLiKgIdHcF`E^D]C\AYLipZ{JeB[;R9M6J4G1D/@". "Bf9 ȁƁŁĂ~~~}||{{zzyyxxwwvuttsrqqponmlkj iihgffedcba`_]\~[}Z{YzXxVvTsSrQoOmMjKgHbC\%2 6Jlo^UuSrOmMiJfHbD]AY%2[*9  >U ^wo~xsqoljihgebtf`YzTsRqOmNkLhKfIdHbF`D^C\B[AYWwiQoHb@X;P8M7K4G0B& Rq dSȁƁłĂ~}}|{{zyxxwvuttsrqpponmlkkiihhgfeccba`_]]\~[|YzXxWwUuTsRpPmMjJfGbAY 'dobVvRqPmMiJfGbC\@X%2|TKg CW/@ }myuqomkjhgfdqjb[|VvTsQoPmMjKgJfIdGbF_E^D]B[C[_`MjF`?W;P9N6K0B! +;Hc6 فɁƄāÁ~}}||{zzyxxwvuutsrqqponmmlkkjihggeedcbb``^^\~[}Z{XyWwUuTsRpPnMjKfF`4G MiniXxRpOmLhIdF`C\AX5I _V|&4"_)8wn{vrqnlkjhfefre^XyUtSqPnOkMiKgJeHcGaE_E^C\;P7Km[|KgD^>U:P7L*:])dK˂ȃƂŁĂ~}}|}|{zzyxxwvuvutssrrpponmlkjjihhgffecbb``^^\~ Z{XyWwVuTsRpOmNjKfE_!- 4Gko^QoOlKgIdF`C\@X=S$aVE^ G`  GbMh mp|vsqomkjhgf`rh`[|VvTsRpOmNkLhKfJeHcFaE_C\1C@XnTsJfB[=S8M%2 =SO[. ȂŁĂÁ~~~}||{{zyyxxwvvutsrrq pponnmllkjihfeedcbaa_^\[}Z|XyXxVuTsRpPnNjJe?V !cpdSrOlKgHcF`C[@WVU;Q8M4H.?  2Da,=[u' Rp+:ށ-yk|wtsqomlkihg`skd^YzXxVuSrQoPmOlFa$25H:O )/Q4́˂ʁɂƁŁă~~}}|{{zyxxwvvutsrrqqponmmlkjjhhgfedcb``_][}Z{XyVuTsPnAY C\nhRpGbE^BZ?V;Q8M5H2D(Z1CRpxSr'(=S N`.|g}xutronmkjihcqog`\}YzVvUtSrQoMj:P  "eJ?ρ΂͂́ˁɂȁǁƁف~}}||{{zyxvuvttsrqpponmlljjihgffddba`^][}Z{XxUuRpMj$1 +hm\~JfE^BZ>V;Q8M5I2D,= < &6JUudxt!. k& y*93zh ~yvurqommkigcvid]Z{WxVvTsRpLh,=  E_ 9C"ҁ΁́́ɂȁƂł~}}|{|zzyxxwvuutssrqppnnmmlkiihhfeecba`^\\}Z{WxUtQp:O JeohPnE^AZ>U;Q8M5I2D.@'# +;?VId]oh;Q $1( ]'6) rlzwusqonlkjih]rnf`[}YzWwUuQo>V".?(C,сρ́̂ʁɂȂƁÁ~~}|{zyyxwwvuttsrqqpooonmlkjihggedcba`^\[}XyWwSrKh" %2ln\}GbAY>V;Q8M4H1C.?*9  N  b|(!?VBX+" nn|{wvtrponlkjgZ|gpic]Z|YzVvNk.> "j<4΁΁̓˂ʁɁǁƁŁĂÁ~}~}|{z{zyxxwvuutsrrpponnmlkjjihfeedba`^][|YyVvQo-= KgndNjAZ?V;Q8M5H2D.@+;)'5* ,= j8߁܁)lru|xvtrppnlljd@WHctke_\~Y{VvGa#0 Vv 01 тρ̃ˁʂɁȁƁłā~~}|{{zyxxwwuutsrqppoonmmlkihhgfedba`^\~Z|WxTs@X #1jlZ{F_>U;Q8M5H2E.?+;'6H }'"k ,6fzy}xwusqpomlhRq%2$1wogb^[}Ts3F U9O6J3E/@,<(7%3".  /@) 0p ,?id{ywutrqnXy"/*sqjbLh&\ !"ӁҁтЁ͂́ʂɂǁłÁ~~~||{{zyxwvvttsrqqponllkjiggfdca_]\~WxB[ ao^F`9N6J3E/A,<(7%3".#- &$ Xy!.&=lg|zwvtspc7L  Xysla7K Rq ՁӂсЁς̂ʁɂȃłāÁ~~}|{zyyxwwvutrqqpoonmlkjihgfdba^]Z{Li#7KpkTt?V7K4G0B-=)8&4"/*-=' ~6I)9&4#0+& >  }&$ mOl0B* vH*yi=T~zywur[})9mi;Q 6JԃӁЃ́́ˁʁɁǁŁÁ~}||{zyxxwuttsrqponmmljjhgfdca_]Vv*:%2kmZ{@X4H1D->*:'6#0 ,'>,=' v`Mj2E' K! jh3E)~~{yxvh7L PnTs& )8w  ԁҁҁтЁ΁́́ˁȃƁ~||{{zyxwwuutsrrqponnmlkihgfdb`^Yz1C?VqjPn9O1D.@+;'6$2!-'# i ||oTrC\=S%2  +".6C zF`tSOf I`H`=R(  + GWN;c1D%3p8M  k|ztUt"/#0o ցՁԁӃсЂρ́̂ɁɁȁŁā~}||{{zyyxwutssqqoonmlkjigfdb`\:P&4mnYz?V0B-=)8&4"/+%     "W2uGa&'5t9O c}xb.?  ,k Ձԃӂу΁̓́˂ʁȂłā~}}|{zyxxwvutsrrqoonmkkihgec`];P:OrjSr9O->*:&5#0+&! &-S(].?6IgRpznUu9O!.NjفׂցՁՂԂҁсЂ΁́́́ɁȂƂāÁ‚ ~}}||{zyxwvutsrqqomlidE_ Kg{oY{>V%3  /@gׂՁՁԂҁсЂ΁́̂ˁɃǁƁŁă~~}|{zyxw vusrrpomkhYz+;?VyubF`*:  E_z ׁՁՁԁӃЁρ́ɁȃŃÁ~}|{{zyxw utsrqoomkdAY 0BrxfLi2D%/Ad ׃ւՂԃ҃тЃσ́˂ɄǁŁĂ~~}|{zzyxxvutsrqonlhNk". $1d|oWw:P#0 !-Omׂ݁ցՂ ҁтЁ΂́́ˁɂƁƂŁÁ~}||{zzyxwvutsrpomkYz0B Z|wdId/@"   E^rցՂԁԂсЄ́̂ʁɁȂƃŁā~}}|{zyxv utsqpnkb;Q Kg|nXy?V'6 ;Qiځ؁ՂԁԃӂсЂ΁΁̓́ʂʂł~~}|{zzyxxwuusrpnmeC[% 2EqzhPn7K)   9NbՁ҂҂фЃ΁̃ɁʁɁȃƂÁ‚~}||{ zyxwvutrqpngE_( %\vcLh5I ,  %=Sc߁ցӁԄӃ҂Ѓσ΁͂́ˁȁǁс~~}||{zy wwuusqpngGa , ?VxxcLh4H +   '6F`h ԅӃ҂стЃρ΁́́ʁȃǁƁŁă~~}|{{zxxwvttspnfC\( (WwveOm=T(6   (9NXyw ށԁӁӆҁтЂσ͂́́˂ɁȂǃŁ‚~}|{{zyxwvutrqn_UUtn ݁ ҂ссЁ΁͂̃˂ʁɁǁƁÁÁ~}|{ zyywwutrogIc&4 AYm{pfVvGa=T/A"/%     )%35IAYRpgx ܁ցтЁЁЃυ΁̄ʂɄƁłāÂ~} {{zyxwvutrnYy8M";Qe}uocYyQoHcE_@WUBZMjQp\~iq؁Ձυυ΁͇ˁɁɂȂƁńā~}|{zzyxwvusocF_&4.?Wx{~z{xy~} ؁Ӂсρ΃΁͂̓́̄˃ʁɂȃǁƁŁāÁ‚~~}|{zyxxwutqfKg-> 9NaӁԁԂՁ ׁՁԁ΁́̄́́̄ʁˁʁʂɂȃƂŃĂ~}}|{zzyxwvtriPm0B !6IUtu؁ԂҁЁ΁˄ˁʃʃɃɁȃƂŁă~}|{ zyywvupdJf.? ".6JRplׁځցЂ΁ɉȁɂɊȂǁƂƃŃÁ~}} |{zyxwusnXyAY'6  (6>UVvlȂɁɁɁʂɃŁŁłŁƄǁƁƁŁłƂŅăÂ~~||{{yxvupdNk2E&"-=F`Xxkzƒ‚„āāÉÆÃ ~~}|z yxwvrgTs;R#0 #+;;QNkaq|‡~}||{zyxvro_Kg5H"/  ,2DD^Wwhu|~ ~} }|{zzyxvsiTtB[,=&  %37KGaWwft{|~~  ~}|}|{zyyvsmaRqBZ0A*  ,+;:OHbWwbmxz|~~~}|{zyywvuj\}Mi@X2D#0 ''5/@9OD]Qo\~govz}~~~~}}|{{ zywupi^QoBZ6J'6' %$2/A:OC[KgVv]elrsvvxz|}~~~~~~~}~}}|}|{{zz yvogd\~XxKfAZ7L/@'6*!)".(7->5I7K8M=SAYHcLiPmUuZ{\~`abefhgfebbaXxVvUtTsQpOlLiKgE_?W:O6J0A*9#0' #''&'&'' ('('( ('('($(()&(()()()() ))())))"')*)) )*)*)*)*)) )  "')()()()(% )()"&()(()()()(()(()(&# &('('(' ('(''('''(~F_.@&5 .?݂_$1Z|\~Je4Hǃg +; hvg)9@WKgr%2 $NkvtLh j$E^q`1C Ņg!zVvLh.?(7;QPnz(#1d`SqNjq+; nli,<} 8MbB[ԋD]m&6JƇr ҁq!.GbLh/@(7 q(B[Pn$1d_Rpfq+;yUui,</@a 5I3Fm&(p q,=1DLh.?(7%3ۃd $1d_Rq+q+; ~>Ui,<d(7KgF`{zl&\~.> ҁp7Kw(Lh .?)7Xy,<Xy3E$1d`Sq7Kp+;))9i,<"v"{$" l&\~ ҃q?V` Lh(7Nk.?(7y$1g$2c_RpNjp+;#0ui+;Kg>U a+;9N8Mm'${ pJeF`Lh6J/@(7@XBZm&$1d_Rpfp+;*9Ƅ_ ixxxxxxxxxxxxxxxxs'  (7_JfāȁLhm&'6~~ ҁqUt0ALhc'.@(7t?W;RU=T>U=T>U>T=T>U=T>U>T>U=T>U>TUu.@9NY{m'1CPn~  ҂p_u%LhD^q/@(7(7 $1d`Rp6J΁p+;9N2Ei,<gD]Xy/@8M[|m'4HPm   ҁq j^ Lh(7хTs.?(7]1C$1d_RpPmq+;=T~)i+;*ցwVv.@9NYzm'4HPm~  ҁpwD^ Lh8L.?)7e$1d_Rphp+;F`i i,<Nk(7Ww/@8MZ{m'4HQn  ҁq*,<Lhb(.?(7D]!$1c_Sq!-p,<LhQoi,< [}Vv.? 8MZ{m&5HPn  ҄q&4s#LhD]r/@(7yKf$2d`Rq7Kgq+;Sr:Pi,<7LVv/@ 9M8Mm&4HPn~  ҁp0Bȁ\ Lh(7ЁVv.@(7->$2d`RpOlt$5Hq+;[}(6i+;mB[Ww.?8MjHc.?m&4GQn~  `a`gڂς``]VvF`0BLh8L.@(7aBZ7L7K7L8L7L7K7LUt/A$1d_Sqh\~4Hp+;bsi,<+ہ{8M9N8M9N8M9N8M9NvVv/@0Am'5HPn  ҁa%Khb'/@(7"̆Lidc$1d_Rq#0D]5Iq+; j]i|kjkjkjkkjkkj'5Ts#0&5Vv.?m'5HPn   (7LhD]s/@)7Id,<"$1d`Sq8Mҁ'65Iq+;mnnmnm nmnnpodVwAY#0iC\ YylZ{Vv/@l'5HPm  yKh'6Ёw~Vv/@(7 }WxuHb$1d`RpQok5Ip+;F`iB[:P$0BWw.@m&4GPm  -=Lh #$27L.?(71C%8N{ $1d_RqiQo5Iq+;siC[rc{AYVv/@l&4HPm  ҃OlKhd0AOmYyWw.?m'4GPn  ҁqwdLh|):O.?)7 0BYzF`$1d_RpkFa5Ip+;i+;>Uy#Vw.?%Kf5I + m'4GPm  qdeLhd#08L*.?(75Iv ".z$1d`t+;4Hq+;  i+;u8M_=TVv.@ 9Nv]F_$m&4GPn~  ҂qbe LhF`9NTsx .@(7i9Nh,<$1d_r5Iq+;   ;Pi+;(7 &4uWw.?9MY{l&4HPn~  ҁpadKh)9ՂUt q[}.?(7 * .>`$1d_Vv5Hp+;1Ci+;\~C\p#0Vv.?8MYzm&4HPm  qbdLhp&TD]$1d_$25Iq+;i+;D^Nk Ww/@9NZ{m&4HPm  prdD]9N,<Pma&4(79NYzy$2c_h5Ip+;Ăi+;zXy>TOm5H         ?WRqm&/ATt                 q,<ֆfIdGbl>U(7n*:$1d_Lh5Ip+;Ąi~nnnnnnnnnnKg+;sD^́́́́́ڇD]`|{|{||{{|{|{|{{+;"/ɂɂɁɁ āQnPnQnPnPmPnQnPnVvm`zb!v(7#0`$1d`1C5Ip+;i`#0.@0B Ȃ?V؁p ҃Pmz .?(7Ts$1d`w&5Hq+;i~ Vvٌ >U{Nk ҁ0B"/Id(7B[$1d`` 4Hq+; iHb bc >UC\& ҁ 7Lh(7U tNk 1DRq(7q)8#1d_)95Hq+;9Ni.@q&lj$ ?V[}D] v(7m)9(7%3qwvwJf$rxwwx@Wz BZ(7+;i!-^(7+;n 7L {(7+;C[Lh`aAY ,_b]%deeeeeefeefefeeefeeefefe`]Nk:P'TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/intro/en/0000755000175000001440000000000011177007633016505 5ustar jacobusersholotz-castle-1.3.14-src/res/intro/en/intro.txt0000644000175000001440000000001111177007633020371 0ustar jacobusersPRESENTS holotz-castle-1.3.14-src/res/intro/sr/0000755000175000001440000000000011177007633016527 5ustar jacobusersholotz-castle-1.3.14-src/res/intro/sr/intro.txt0000644000175000001440000000002511177007633020420 0ustar jacobusersПРЕДСТАВЉА holotz-castle-1.3.14-src/res/intro/de/0000755000175000001440000000000011177007633016473 5ustar jacobusersholotz-castle-1.3.14-src/res/intro/de/intro.txt0000644000175000001440000000001511177007633020363 0ustar jacobusersPRÄSENTIERT holotz-castle-1.3.14-src/res/intro/it/0000755000175000001440000000000011177007633016517 5ustar jacobusersholotz-castle-1.3.14-src/res/intro/it/intro.txt0000644000175000001440000000001111177007633020403 0ustar jacobusersPRESENTA holotz-castle-1.3.14-src/res/intro/ua/0000755000175000001440000000000011177007633016510 5ustar jacobusersholotz-castle-1.3.14-src/res/intro/ua/intro.txt0000644000175000001440000000002711177007633020403 0ustar jacobusersПРЕДСТАВЛЯЄ holotz-castle-1.3.14-src/res/intro/sv/0000755000175000001440000000000011177007633016533 5ustar jacobusersholotz-castle-1.3.14-src/res/intro/sv/intro.txt0000644000175000001440000000001411177007633020422 0ustar jacobusersPRESENTERAR holotz-castle-1.3.14-src/res/intro/ru/0000755000175000001440000000000011177007633016531 5ustar jacobusersholotz-castle-1.3.14-src/res/intro/ru/intro.txt0000644000175000001440000000003111177007633020417 0ustar jacobusersПРЕДСТАВЛЯЕТ holotz-castle-1.3.14-src/res/intro/ff.tga0000644000175000001440000032767111177007633017213 0ustar jacobusers   m[r~~~(zlq^jXIUF:?4*( *#J1R6K0ZF4ּϱƤ켕貅ޥsΔ`ąQxBs>o%Z:!+  & -0 @*G.Z:!iF)X6oHaƝ{հ            jW}gp~{tju#}pydr]JRD8>4)% 4(Z:!H0O:(Ӹ̫ơ|qБXăJ}Bu>ooRƕi֩ܵħRSNMLBSTOOPTDHNOPTSTOMLBSTOPTOHPFPTOTRMNJDTRMSTOMLBPTOHOEPTO HPFPTOOPTDJPOPSPSNHPFPSNPTOHPFPTOHPFPTOOPTDJPOPSNRRHNPNSROPTDJPOPUNSRHNPNRRSPNPGKSPNTRMNJDTRMOPTFGNMNSIJOUTTNJLOHLVVSONE   &(&yʹͼνϾоп Ͼξͼ˺ȲFIH jr{}~#ygqlkYIs`PM@3%O4K0ϱ̪šxjۓTِODŽFÁFxBqɮsdU.' eVHfTD^NA V8 N3q^ѴʨšseVԎNDŽFÁFy@r@l;j:d8Z1T.{P,\<"!  # -7%N@2vvoRȔfϡz㸕α ƾ¼ żżƾżżƾĹ  "$#xxrºɶͼξппоνʹƬ|zpHJH   oS2vX7lQ2bJ-\E+]F,]G,^H-]G,_H.^G-^H-eM0tX6wZ7"'vY7tX6cK/ZE+[E*YC*XB)[D+fL/tW6xZ7% l|~NA4v#~ǬθtbRmydR ]=$R6fTDؿϱȤxeݓQԎN̈JDy@sdAeAb>c@y];x[9[E+bJ.{]:z];{^|^om"-4"@*=(N3^<"aD+vȼɾǨѴؿ  #&$|Ʈͼопп оνʸNRP    ;-{^:|^;|_gClFkFiEiDhEgBgCc?a=~_<}_;O<& ryXI)0 4"@*G.N3H/mG)uM+jF&~n[ȼɾȼӸ uxv}Ƽ˺ξпп оͼdz~r[^\  rW5}^;`iFkElHmImIoJkGoKeB~a?|_=w[9"/${^;}`=~a?jFjFlHmInJhEhDiFiEc?a>`*a@%eRBζ̫Ȥ~neV\5\8 bPB3c>Z1kF&7$D,H0R6Y;"Y:!sK*Z1`5l;[3wbïȾ}pǼʹ4  ȴνпп ξ̼ƾuZ\[  ?0|^;`=c?gDkGmIoKpKqMoKpKqLdBb@|_=\F-iP3}`=b?cApLmInJ lHmIjFiDeBc?b>`c?fBkGmIoKpKqMqMqNoJmJ~b@b@z^<#5)|_<~a?dAnI pLrNpLoJlHkGkGfBeAb=tW7  vͷҼxq@ƮƺvWՑTFX4yo]VL`>#V9!̫澞֪˗iX(` 8Khf"(9+ҝ*6"=(N3R6^<"mG)uM+~S.ȼɾqb~vjïʹȼɾ{pðVڵܺڵ۸ ~~sȴνппоϾνʺĨ  ?1`=d?fBkGmInJqMrMtPsNtOqLgDcA}`=_I/ lS5~a>cAhEpKqNrNpLrNoKnJmJhDeAd@b>9, t~E&t~~˱ʺͼעt_ώU}Dm=w^G{sfJ1fC&~kϱȧjvypt j(FܼV'^D-U8!gD(pI*_>#uM+V>(ĸɾȼuɾ{    iljȾ̻оппϾ̼Ư"$#    vZ9c?eBgCmJpLqMsOuQvQvQsOpLdBcAz];!7+a>cAdBqLpLsNpMqNqMqMnInJhDfBd@nT5 tʲ6||xkYJ~çиĴm٘_̋Q}BtAwY~rAX: rK,f[DǬʨԩ~cH/6 xb"+Bjb#zUO4hC&oI*{P,V2lfX~ɾ̻ȼɾȼ ɾȼ.qtrhkinpoprphkinponpoknluwvqtrfigjljdfdTWUJML VYWjlk   }ƮʹͼϾппͼ!    B3!c?eBgBlHpLqNvRuR xSuQuPhGcA}`?^I/  qV7dAcAlHvQvRuQtPsOqLmIhDfBd?.# t.XYV`QCxŪκ貅{jژ^ʊPy@o;pgI@G8xO-mM2ģIS>#`_$9 ~I9$]=#oH)V/Z1f8~\=ɾȼɾ°ȼʹȼ ɾȼ>]`^NQOTWUԧݸ\`^NPNSUSѸSUSNQO_b`μ\`^MPNPRPFHF364(+*),*486LOM  ʹξппξʷ  y];e@gBjFqMtPzUyTvS{VxSvQrMgEc@a?"fCgEuPvRuR uRtPsOqMrMiEhCfAeM2 r/GD@iXHq^ʼ̷켕ﶆxfؕYLjOh7b6jDJM4T0{Q.oiR߼~cEΜW Ub|׿~1 ioI*T.kF'`5h:o;|Fj>ɾȼɾȼɾȼɾȼ .PSQ=?><>=PSQ:=;:<::<:<>A?ADBBDBDGEILJUXVjlkHLJ.0.%(&(*)+.,(*)$'&+.,FHFJLK.0.$'&'*(*,+$&%    *-,  ͼ   {^$((xP/f9q@W0F΋Nܘ[mcth\ڴ|rɾȼɾȼ ɾUXV:<;(+)!#"! ! " !$"(+)8;9TXV߸DGE%'& ! :<:رɵFHF%'&      NPOʸξ E6#gBiElGsOxT|WzV|Y~Z|X{WoLiGfDbN4 y^=hEjHrO{WzV{W{W|XwTxTxSpKlHjEdA jv"x^[W¸|xbܬxfϑ[QxDl=f9tL*n\C jRdh}DȆKc8ޜ`q}불hZMɐ͖ҵּv6+ XJȼdfdHJH253 ""     (*)HJH@CA!$"    *-,BEC!$"      wƮͼ­  }`>hDkGpK{W}XzV[]\[|WkIhFeD)#H:)hEjHoL{WzW[|Y {W|XxTsOnJmHjDM<' kjZLDƼq¯t_﵄whʑ^ƉRzHl>{Q.c9.4)(AJ8Fx|̘gBWdqmWHΌQҔ\ט`uO鰀ĞơϱѴּR<)R5cB&&)(   !$"ADBprphkinpo<>=    021KNLfhfADB "    ɴп  +F6$iDlGnJwR}Y~Z\]^\^\vSmLjIlU^8j:~cj@>MPN9<:8;9&(' &(&FIH@B@ "!    ruszǿ+.,  J9&kFmIrMyU]`ecfgdd{ZnPkMjMlNpR`gcfeca\~ZuPqMnIy]>  zfpuiXJ~rf|gs^Ƶм8ͪơ֭˜t֦|w՜jΔ`VRjV>tfoP7pMhEZ>&ZF4YZ>h1Ӝؠ<-6+ &N(Ux֬ĞʨϱE4%Y;"nG)xO-Z1e:\2u>ÄKՒUjw  #"364LNMfigfhfRUSFIH>@?364'*(  <>=ADB*-+$&$')(),*$&$   " >A?DFD%'& #&$~s DFE   ) eBmHoLvR^achliihiififiiljlhhdbbyUtPrMmI6+ taj|ýȵм8ĴjQ;o[ූ궊~ۥv`mW;~\=hWGxVBc3lJhGZA*bD\X|^̛zZdKHRXC||hQ<^?&\<"xO-X1b6j:u@f8ҐTes 475TWU̸ڭHKI243&(&   364586!    9<:ѹJLJ/10     PSRʶϾ y|zuxvsvtorp J:(mHqLvR~[eflmoppssqrrsqoqkhe^yUvQpLqX;  q^lt~~pû̼м8ƺb6Z3jHv^w躔ܮئ{f]C`pTLP:<0%;#/ ZB.P<(hS@ZʔdɔexTrUtm !v Eo+C(R @)+xO-~R.uL*b7n;r@HΌQyIp{Ğ&(&FIH021  &)('*(   364WZXADB,.,    VYWqtrù̼ uxv    'gDqLvRyWdlorvxxwxwy{zx{wxvqnh^zWvQpL+$ lX}gr}~~ͻм9j9r={@y@wF|\@?adbFIG021    $&%),*$&%   031NPNehflnm%'&   nqo[\X}ȴη8;:   N>+qLvS{Ycpsw|zuph^{WvRhS9  jWvbn|~C~им}cKȐ`kڜgלjЙj[hŘraUBxhJVBji37(]2 DGS kTH=UA/P8#R:$_@%xN,W9! 2 FfD,{€BʊPrEip{wơʨϱּ   364˖FHF-0.      020*,+   VYW|ɿ  lIvR|Zbqz|zui`|YsP%  ydSr`hvAиvͼxl`sVrnonpzdRH;bSDl>(S8!??0(=1EgU7dX:[RY>.%u+VtzQ.b6W2d8f9~R.xP->)I@-@\5|V3yvڜerZ~Ȥuּ̮Ӹּ  &('/20     /20&(&  }pīŭzɴ021   SC1vS}[bwêȰȱɱ˴ʳͶ̶Ͷηϸ˳˲ǭjc}Z`N:  v`NlXzfp|@ζx>sL(lG$V0y=yBy@zC|DoFȖkjaNN]GI5$T24E4knHX@RcJOSCQWE,LC1$@*_B(|T2RVtJVД^ҕ_ڜexN{̠w~ȜvެĞȤ̫вдӸӺ̱   $&%+.,(*)!                ,/-NQOBDC020     źǮǯɿzypsvt "   # qP|ZgǪ̱жӺ־çĩǬȭɭʮ˰ʯɭʭȫǩãtbwW$   lZKydStalxεِOԎN8l=ЎRҒXӖaإy߰l|l^D. UfN9N?ksEZNqe4XONi\)|J;'cD(gH*H/Z=%kN4eG,mJtQzWxVtVĘrÙvœ~{yg~{srpZ^I6P:'_B*sN.         ! !#"%(&,/.364:<:[9S<(JI5+$JW?xgrJhSDi^67zu099wjO5pM/\8[6a@$iF*fB&_>#X:!E/R9#N4Q6V8\<"cB&nG)wP/Z4];wJW  (*(0205866987:8:=<=@> <>=9<:354*,* (*(253698;><=@>>A?@B@ADB@B@>A?=@> >A?@B@?B@;><586031/202647:8697,.-     cfd!$" 032    _{éǭʰ̴϶ӻԽվ־¦ç¦׽׻Ҷh"!   ^L;lZK|hWvblv~ɮʺR}ZRbZP>>>>:luH(>k1T'R(\7%RD16<<<<"g?pL-\8`:^8`:vS4b=pGvM|OVČZY\{ $&%475,.-364<><4649<:(*)   +.,.20,.-̺ ư #!       ?     5/(A:2G@8MG>QKCOJDBA?NJFNKGFFEGGFHHGIIHNMJ[WRRPMIIHGFEDCBIEBJD?21/0,)G<0! 1'     2VG9fTCv`NmZzfl|~ŬƷ/>?@??>>>>=vreW:::888><9jt[%%$&# qQhT=  sY;qY:K9%w[; _I.nFe@  ]F,eM1.QC6[K=p\L|hWr`jv~ĬòP??@@?>>>>><<<<pGO=' jP3{^<-K>2VG9dRAv`NlXxdnz~çƴd>@@??>>>>==<<<8Rx8<<<<<>>HU^h{tun l  253Íҥjlkfihlomצ޵Z][DFE.1/ " &(' #"  ywlɶDZUSR<:|"#!"!"'997@@=rpcDGFPRQ  0+!tX7uY7eL/5(@1{^<|_=bJ/#T@*iO1 eO4mU8v^Cq[A! nRcaa.,($$$3/+enk#kgb+&!pM|VxRvOz_@R>(a= eM1kE* jQ3hBbJ/hO2)H<0QC6[J;jWFydSo\hr}çһV?@@?>>>>>=<<<<7%==>>>>?@?6>>???>>> E 253ȕŒɖʗФʵƲ¦Īfih`cafihӡԢܲ,/-&(&-0.&)(  Ƽ~pȰ>@X!  v    &('FER 465 NPO̲\^]           '#'$ (%!(&!! "! *($,*&+)%*(%)&#(%!#           'K>2H<0QC6`QCr^N|hWtajv}κɾ;@@??>>>>>=<<<<>>>?G=@>->???>>=?  242ˆƱưknlfihlomצ 021$&&*,* #"  ȰǮxsv,,u    |!"RQl 242  =@>lom  <--"* A2=.-"-#2& 0%G7%G8%G9&H9'I;)K<*L<*=1" @4&H=0@7,#!  &$!WK2SF:iTAv`NlZydlx|ε̽@@@?>>>>>=<<<<<<;<<=#ip>>>>>?=1?>14???>:(_?  132ˆ ďVYWXZXdgeܸƮŰ٬X[YPSQNPN(*)#%$&)( #" "srmli_μɸȴؾۿ||12x_- m& XVkԾ,.-      /P=&xZ8*3'nFx[9%B4"{^>!TB+yQ}S}TXYXZnV:hJxaF|\nkijdUB+(#hoplje3,$ UC-W2'S?(xNwN.#,!y[9oFiP2.NA5=2(>5+N@4YI;jXIydRo\zfpxƮôh@>??>>90<>==<=<<<<<<==>V[=>>>??@1@@7(v>?>&j "6>  -0.ˆ‹ĊDFDBDBNQO֬èվԼڲگܰݶ ADB576020.1/%'&  ! " x{x_b`ľƼʹSPs00 !T.&%SQz½  <       3):0%*&-'"/*%1,'4/)H?3K@5KA5J@5KA5D<3:4-J@5H@5KA6I?4G>2F<1>5*+&        3nYGr^Nu`M\M@VF8XH9O@3jXHr`xdr~çz=?@??>>; fm"do-;>=<3"DG ""3=>>&ow8>?@@<"n>9!Zx>?>= $48[= #&$/20,.,586,.-      "%$omgɵζªur vryv~~uħ.1/    '"kInMoOsSuUuWvXwYyZxYvXwZy[x[vYwZvYsUoPmMeF  hXJp\LvaOwcQhUlX!ydRZJ;`PB_N@ubκм8@@??>>>:"~@B# *. 2>>>*~,>??@@@>..<>N>?>3+s?  %'&0428:98;:364(+* ! .1/ADBTWUadbfhf_b`RVTHJIADB>@>=@> @B@HJIUXVUXVJMLDGE>A?=@>:=<<>==@> <>=9<:687/20&(&     Ƹо042  & kW=tRtTvXy[}_bbccb~a}a}`|`cbcd}`{]vXuUqPYI5  r_NwcQ}fSjWlXq^uaxdzf}gydS`N>tdUǶƴ̹z?@@? ?>>>=*864,H>>>>>$?@@>=>Zy2 (?>>*?Bk>>   "$"),*,/-(*) *-+@CB>B@.0.$'%"   #!')(253242')(!$"!     ͼ ؾ¦յ(*(  :1'sRzZax{}}~ ~ys{]uUoO+&   vaOzcO|dQhUlXmZr`xdzfhllpps_N|pмR>@@??>>R_>>>>>>>*&q?>@?>=?;.@>> R{0E<<@   *-,142*,*    253Ǎ253      !$"            *-+ `a\@CB   ~fIzZawƫƭȯ̳ʲʱɱȮȯɯȮɯʰǮ ĩq{]uVkX@  ydS}fShUlXo\q^taxd|hkjkrxz{zn{мþ6>@@???GT4>>??(Ug@.>>>>@@@?&tcs???? ?@&~EO>'r4>>?>?>8 Jt=@>@? &)(&)( "$"&)("$"       knl ־   $"pR}^i˳ηѻҽԿӾԾѺζŭ}ªζϹккйη˳ǯ~bxZ}fK  lXmZo\q^r`vczfh~inlrxz~~ygXм ->>>?@@@.8>?$?@?@>@%t6A9 =>?>>?>*w "6*=9=@@>  "$# #"    ;=><>?@@  !p?@?!f +4Ph1>1>???>.%[.m8[$68@@>     "$#&)( #"     3649<:;><<>=:<;8;9&('    + /)$vWarɱηѼĭȱƯŭҼ͵}ku«кӾԿлθʳƬlz]nQ"   r`tavbzf}g}fhlprvx|}~lZ_VNм3?=>>=>!h:@?>?!>=?J^ ,#Zz???9=>T+n<(< (6|?>         !$"                     , p[D{[f©̴ѻŮDZDZȱŭ©ѺìxNLJzm]wǰտԿѼͶȰx^wX_N:  N>0ybNxdzfhhnqnvx||~|gxtxмϾZ>? <1=>8]w>=<>?>> ",;BY?>>>> '86A<)H )8|>   "$#&)(#%$     #&$,.-*,* #"  "$#&)($&%! .1/ ( %++ERVCPT 4:B&))HTZHU\>IO7@CDQXJW^IVZERV## , <3)vVy]~ʰηտªƯȲȲȲëԿϸti[???FDBl̶Կ©Ѽθ̴ǭxqVoQ+&   H`8H2>GB`VLDr^MlYjtxz~yjhTwfXмVLBмк?>>>4Vt^~-[{ .#mQj,? ?Ic?$Vv2>>>>6~1NA@@)Q>w?  "$#"%$ #%$;><.1/"  "$#*,*&(&031 )>HM   )..fv  7AFqfy&)(Rdo  - {cGsUkƬ˲иӽêĭƯǰŮ©Ѻʲr@?>666555k^PwŭѻտѼϹ˴ɯèdnQlW?  >W>_ ?d>i?bBa5T.18>6.XPPvm}׽̹мȶPIBмž5??>>4"[|>M"  )2*vPu>>>?A*SBA@@???~ &)(&)( (+*! &)(-0."$$&(' ) .45bs|LX]NW\166NX]|+-,p9DJ   G:+nNvXū˲ϷҼëƭ©ԽϷd[O333...---542eȰһԾԿҼϸʹǭç|lQiI5,"  @Q>Z?Z?b?f?e>p?t4IHB;zke®мͷjbZ{nb|ǽ,|>??>??>?8:">?@@A@@@???~?z "$#"$# $&%'*("$#%(&  NY^!$"8?@`hj(+)Zhn8=>032ant"$"S^dcns(,* .}cChIpŪ˱ʹҺԽվӽи˲m554+++%%%$$$'''[PBw̳Һһйε˱Ƭç}jv_CpY=  @Q>W>\>_?b?d?l?p?g@@LdZPxмƱv,n>>>:\If*y?????> >>>>>.A5x>@@A@?@@??~?z?t  "$#&)("$#   *,+;>Aiw}t!$""$#DMQ#&$frxXcj .P?*{`AxVs|¨Ŭǯɱ͵͵ѹз˱¨SLC)))"""('&|`zɰȰǮƬĪxpoPqYW>Z>_?b?h?r9[D>:zk]ƴм .p=>>>>^5&(p>>>>>>>>>??"T6T@A@@?@@??z?~?t     !#"-0.     * ! BFFn~~MUYu9ADjz*,+&*+Tahhu{JT[   w\W@T>Z?d?f?l>p)@yUKHvhɵм ƾ4>>>=>1FU(>>>>==>>@>=58@@@??~??z?z?t>p       * 9?ARZ^`lt@FH6>A=JR&+-:FL~ G7#nU7sYqX:<. @K@N@Q>W>_?f>k?i&5bTLE|oɶм ==83(d   *>>>>?>@=>@ &Ez@@@????~?z?t ?r?n      +Yejm}BIL~vvx*--f}vp 2FWc~tc*7A9FM|rt"% ?H@K @Q>W>Z?Z>_@a>h>k@k&6`PF /L =CI 'A4>>?=>A @?w :?????~?w?t?r>i  t%0;CVw\`eheKf(.Z~j{sjgVr!(X|fjf]1DU`ejnti4GX >B>E@K@N@Q?T>\?b?d>h>i@k-F<64{l^ɴɶмflvA?;.E?;9=1r(,+$Gl>@>A@ @@?>1nE>??~?z?w?t>p>m>h?f   4GYh{ %6CGgRuVxJe~#("GgY{``XwB@K@N@Q?T>Z>\>_?d?f>i>m9e*?:x*;T(/7*a@A@1s " 4t?@@@@?>?. %?~?w?t?r>p>h?f?d?b  >^|Y~dhf3B>E?H@K@N@Q?T>\>_?d?f>i>p?r7^(L'F,N4Z>w?>8v<|0j0e8z???@?(8T$$#!,-g?@?>>>?.^9d?t>p>m>i>h?d?b>\ DgPxU{U|Ps *1RyRy2G\ >B?H@K@N?T>W>Z>_?b?d>h>k>p?r?t?z?>>>>=>:6o2o>>>??~?z?w;r?t?r>m>k>h?f?b>_>\>Z      hhh777hhhYYY999hhh777hhhYYY777777 JJJ JJJ;;;!!!;;;  @@@ YYY^^^::: BBBkkk 222@@@DDD+++666fffssshhhttt666fffsss777 ***222dddIII888---III888]]]TTTiii555000DDDkkk%%% GGG eeemmmKKK))) LLL!!!222sssaaa LLL!!!222sss666 ---BBBLLLCCC)))^^^RRR%%% GGG eeemmmKKK)))VVVEEEllllllddd pppggg 999@@@aaaRRR&&&EEEmmm }}}ttt###\\\>>>VVVFFFFFFPPP///  tttfff ttt777 %%% 222/// LLL555777$$$888111XXX rrr:::yyy***ZZZccc```cccHHH___ 222lll((( aaalll(((jjjFFF,,,:::ZZZ 222```HHH333jjj666 )));;; TTT;;; &&&www;;;!!!yyyTTTGGG DDDbbbyyyTTTGGG DDDbbb;;;!!!EEE000EEELLLaaa xxx ???ggg,,,NNN&&&666sssPPP:::LLL'''OOONNNzzz```---NNNzzz``` )))OOOKKK}}} ///}}}"""ffflllXXXHHHrrrDDD=== hhhBBBkkk)))\\\FFF:::iii111111FFFIIIqqqiii111111:::lllLLL<<<333...DDDbbbfffDDDZZZ333:::JJJGGG"""|||;;;---!!!///---!!!III|||;;;TTT'''kkk dddFFF***bbbGGGIII>>>RRRmmm,,,mmmqqqRRRHHHAAA jjj dddggg\\\xxx###$$$rrr111uuuoooJJJOOO  999yyy"""(((ooo???jjj  GGGNNNTTTdddQQQLLL}}}EEECCC000}}}YYY---ZZZ ZZZ hhh\\\%%%@@@HHH$$$ ___SSS^^^###SSS^^^"""}}}rrrMMMPPPTTTLLLUUUdddjjjlllbbbttt'''iiiOOO ccctttPPPlll iii ddd ddd 333;;;+++ddd!!!444:::!!!444:::!!!\\\PPPiii444]]]QQQfff |||fff vvv bbb888PPPrrr++++++,,,uuu++++++,,,aaaSSS999AAAYYY  !!!111"""ooo !!!111""" [[[BBB000***111<<<999NNNmmm999NNN555$$$fffHHH pppHHH fff@@@CCCHHHwww 999~~~ YYYuuu~~~ YYY999nnn+++444lll WWWUUU}}}UUUWWWyyyyyyJJJ>>>yyy aaaaaa iiifff---&&&iiiHHHLLL iiiiii \\\TTT???```kkk)))AAAAAA```lllqqq DDD|||DDD|||qqq (((---???OOO,,,&&&LLL000ggg777DDD!!!000***444%%%sssssssss***444%%%VVV***ssskkk???ttt///rrr___}}}111TTT111}}}sssuuu$$$BBBMMM xxx---iiivvv$$$YYY444YYYzzzKKK777777SSSsss===666'''111666555VVV {{{ <<<^^^~~~zzzkkk***HHHFFFkkk*** <<<^^^~~~zzz"""kkk/// )))&&&SSSKKKXXX!!! rrrAAADDD lll'''+++$$$JJJmmmXXXBBBxxx;;;888 )))XXXBBBxxx$$$JJJmmmFFFVVV;;;tttnnn%%%ppp qqqJJJDDD444>>>dddccc""" eeeNNNUUULLLJJJ000(((```CCC>>>___)))CCC>>>___(((```###BBB777kkksssuuurrrTTT555*** iii"""ddd{{{iiiqqq,,,444---WWWTTT???@@@nnn fff---777eee???@@@---WWWTTTTTT ###AAA```uuuDDD aaasss  |||@@@lll(((666rrrWWW&&&???iii,,, ***WWW111///GGGpppDDDppp111///GGG888 FFFeeeHHH ^^^@@@SSS@@@!!!888555EEE;;; KKK___tttHHHppp  KKK___tttHHHppp555EEE;;;IIIIIIwww888777 sssLLL)))gggggg=== 111ddd///cccJJJAAA^^^CCC///bbb:::IIIxxxTTTTTT:::IIIxxx gggZZZ666 888|||OOOqqq>>>@@@>>>@@@)))SSS999:::CCC666 ccc===$$$CCC000 ccc===$$$CCCCCC666&&&GGG,,,LLL___GGG,,,LLLKKK......{{{KKKOOOQQQQQQOOOLLL___LLL___DDD;;;DDD;;;888!!!eee888!!!%%% AAA%%%  ___ ___------tttmmmtttmmmvvv~~~111444DDDvvv~~~111ccc[[[:::  ###!!! ccc[[[:::  ###!!! GGG&&&GGG TTT&&&}}}ZZZ~~~  TTT&&&}}}ZZZ~~~KKK\\\ KKK\\\$$$:::$$$:::CCCVVVCCCVVVTTTKKK^^^###555AAA+++ ''',,, &&&"""xxxSSS)))KKK--- 444666HHHZZZ ~~~:::qqq...cccqqq...=== XXX222 qqq TTT FFF///>>>222FFFhhh!!!QQQQQQYYYLLLKKKCCC"""'''~~~jjj^^^$$$nnn)))@@@***QQQYYY???lll'''~~~UUUQQQ BBB MMMkkkfffoooNNN@@@ MMMkkkVVVoooNNN $$$%%%###pppFFF%%%666>>>555???PPP~~~+++444bbbfffbbbZZZ///LLLWWWMMM ''',,,)))MMMBBBCCC """VVVNNNXXX>>>JJJ AAA...  """VVVNNNXXX>>>111333AAA... ___uuu\\\=== QQQ]]]ZZZ~~~ ]]] /// BBB444rrrhhh???OOO&&&EEE RRRfffooo<<<===EEEGGGPPPQQQNNNIIIYYY:::<<<///sssqqq+++DDD)))NNNQQQyyyFFF###333 qqq+++gggttt)))NNNQQQ```+++MMM<<\ E4!S0!$'3" #C!BAW"4t"SA"#1a SS1-Bؿ!1 "3#w23Sa31B5B10 /k!&!VB/TDC'3&"!"A 2@-s041e32$R'BrB"3C4"6#sA73QQ 13D3OB!#32! .tA/D#/ CBR#"۽5! S"2B/22B!AU #4!4$/D111" OubQ1%3%D2-U#!!0"u" &43!B5#.3@Fr!3A# D""!"2B$/SP S162bb2.J~Y4 '2Cs 3>2cݾD2T/F2͎144!&!1 GA. CR FB-5A4/E"%7#/1CsQR2D3R3Q62"s 5 C1c3$34CR."T!Dt2"d"1$A61/RA &DREB ND/ 0 B 27R0!52234ERASB'3Sa!ݿ7B$343CRD"B!6S@A&D/Ϳ"B2?"F-" ݰA4 F20$B#!"T13 s;e4 2EA1"ER?S! 6RC"/Cw2B$##DE 34S/6"߾5b#4C135b"7AF 4CR2 "D! 7Q#v"44A"GACB2d!21Dc31a"$7B4!"2a#u1"C#!bE4# !ޮC"͍5"QBQ2#$1B1cA"$76055#5/736"$sR#%"T1پ!3v;7%%.24224t6"B!"Q"D!4"C$54/32W4/5TR#TBB"$Q#21s0R 55#B"!#b!4"A%D3##1%F1 3Q c."5R$C45DB31;G"2$E $S$133t#!&CRA'2/43b32#gw/33BC ScC$3c3E4"/#2 S2T5354B"#sDCCC4B/!G3#bD5#$J#B!T?AV4!?0"!C!Ͽ61B TAD_!0s/&"۾723b?""7@1]T!2!32Q&1, DB ,$" ݰS?44Dc!D !/EB T"s"""2"4'5 T"Bcc43!#Tb 0"C2,d"!CB4343r/"CS4#dR.2754 31C= 0s"DAM53/2'3"6A3E#1#'51!At%!?쭿3/E4$#13E31b"d1 %34u!#BB 5c 321ͮB۾1&#"AQ$6!2S#46C0!E5$#6B?F2b2/e!#S5#24S!43"D2C"TC."D31'B 11 M ܾF 2b#DB 22RSsb4$3%$E#%# t$4"%R?2Sb"3CR"V0R4 V!$#v#e ̾Q  2!$d"!4#S3A7S! %#3"4UC0%4#F3 S3B "u#23F##RR0# sb3'R3r# "FC6ڽS1SBCA"$D" 'QBUB$C3"$V2#R" t#@,5T!3$4247231 $B6 .u""5#1!Dc@!0;R3s3SD"26"R"v1B5c162C!&D//ER44e3" m !"%D!3!5C4ཾ&C"CB$U5#1"0!4@%#RC$$C#B 7R/D1/e4#T3B!$&A!2 c0 0E%r03R$1"Cb #"Qݿ"e"34W"#4ݭ5C11ܾ2B$C#CF#3@.G0#b%T1464#2#65/#!u'B2 DR2CD212D1#!U" B?#C4%c$"5A#"s"#a4!36403r6UR2=#P#!!D FC #!3.3%E1#c@#"#4MCS4"cA"">"BE05'7B?#$ c2!Ea1%D2 ? A3c# 74.#3B5ڮ3!S_ G40"+O3!RE1ܯ6C#5" #UC#!T!Aܼc ݾ#$#%4"0/7C$4!e#4S3Q6@As /۽R #M3542#S4"C2cPA?ݭv "R#""t !/rU3"46!D##!DOD20'D SR$5S 3A! 3 ! F1444B254?#B!c2A#s$B#6D2!F" d1 CD3ACE.$1 b$c#u31b2Q"EA; tAV32D"$!d0"!6D?2 &#2E5'E#3B߾dCTD/,FA S2 '#bE #ڭ4r-QE4"B3OB"ޱ%0@3s//"$2 C3Q? TB7#2ξS #3ER>4/0ؾ"! %2E#ۮ%2 2C<#$"B//&1  / /;#"!4.2%42!T,"!!34"cP!3"#B12Br#E 7 "$CQ%iA !1"Bb!02"1 A56". "30CaCA15!!!%$ 1B 4 !RB&#B"2r.4# 35D25 SP3E$" ?!D3-$500 B32>/B/ 2A3BU/=!#0$T!/ 4C%4 #2 C"1/&A/C3 ͭ#2A!/2!#5^22ܾAP1B!414 "`S r"@#!1$4 $Q2CD%B2ݮ132!1. BS/ޞC23D.>#2S 653FYR20D%C?B BEB !$ %$ 2B>203@#N#S3 422$#b!?.4ACCB#T#1."4"5/"G3 &"!12/21043B  !?!0"!D.33 E422324##42C2/4 cQ1 4"b!"1"#?31qq/T4#R3//!"3#@ 2.3r@/ /T"!$O#D2 "DS3.A 4 4 SOTS3 !5CC3rQ !#3S!E33CU10"Q4R2"$3#T? !ྻ!C!531$S2! $J#Rܯ= %CQ/!Ϳ$03U#1 $2# !'3 Q?͏!CB/TDC"8q "%U ##3 %4/"!ͮ6S " B@ $D5!.41!!%5/0 S3U#4CC"޼%'R13_ 5A 43$S !A1s"1162AQBC"0# #1HSQ/# Sr2#/%! 5C@ ۽ d3 .ܾ/%#3S %3" e# ݽsH E$"#344"ܭD2/ 0SB4$2ޟA"1#15R02 c0/&"4ܾR#0E40" E2QR3",B Q2B."r"!ξE1%%#0 "B?!124# 0>޿F3!"53D/#4AD2 ݱ5B '"@/ݭA #2-CQ1"S!521!2<Q "CB-d3 25C1 F"1B_< "1!"D4 DS""D5#ݭ$R! 2"'##?<"!$5"^  c36"B 7#"E3"/".ݯS%F3 C!"BC1 $SA.ο41@5$DA"%CB4b#513S4T#/D5$ 4R124B.3Bi|C3 3 %# T$Q/ d%#P!"PBC,$7#%C!14 #b! $Bc 551DB!S1N TRAQ4B #2 T2".7$32T3#Q A"A2331Qb3$#E"2!4#/-Eܞ $315B2Q?ܿ0RTA$#!" ="B!%S"04RC."/C.2R112c0 $? 1ATA/$#0!""13"" D2 !" 4Cb.#$!E "3b2 ! $6$Q !2 !##AP c 1"2 DD#!/t33E#3B@/ D57!!&5!3D"4$"#2cCC;33>7@ 1$!ST1b$#4!3R4d#5"@11DB/i$ # 2B72"30#6s# 62>350!#T1$#ca/1# /#ASc1"24&C.$C4$4402Q62 ݞ. @.ھ%VcQ"/D&!? Q 4@̮!$CB?#4'3ͯ"B˾3$#BE0!Q!/#@ $"B. $@"A1D3CTC2!"#1"A1AF"""34?"S2 ?21* #b0"R5C"3R2Ar"$54 #Q2#//#%$413EBAA#$1A/SBPA "5$! C"31۽$"1 DS0CSCb  !?1!2C2233DQ !-36?311"P"4## $%$A!߿36B? C#051A2!G! /2SR1$O""%2."23BRR 3B1 ̎3"4" 1/A1!"4$"%B$Q$410CS1-S5C !" 1B13BSB0$4R! 4! !R1"!C%N$QC5R? /##A/!$13A c420 Q%2A!#0 Ba !1ADB>O 363?o"#!Q6"1""#53B#1?a3B#R43BͿBST2""뽿">1T3" /43S1 "%"0Aۼ2$!4C#>Q3T/ 3" @ ̭4##221#E$ 1! BA2!&Q4DE  ?2a!&#23!@5"Q !3@!Q !_"##"4O S1ݽG"3$"!23SE2@3#4!! D"#22CT4033S1!$3Ss @0?CP3 ", :455!22"13R1B/$R#"6$#1!@/!D #2! B3D56 A1 ۭ34.CT#CB#3R .A 4#45 C#2 #1"2#%B  #DR" "0E#AO #B/R. Ac!Ю0B#1ݝ"B1R!3r/#3 $CR!3!}!24/ D!33Cc3!!" !1R/a#! "10@"0#$$-̽C$2QD"3#$CF E# %""%!TBO$2!54!#" #CAͿR$ #21S0ͽ2Q$3"S &$!#3B2bD#D B1#Cd2/3".&3"rhB@ "". "%41#/56!.޼D$SC334A %A3.d#оIt" 6!!B0#!!Ba."2! Bq!޾" 3SB 171" "aD/ 2/l#D!1ݾaCBO#CQ.!#!"୾1F# 3B$ DB C>7!!?$D #13BAݞ7$1-/!%3-%$" $""#ݞ"03D"CO RS" @//RRA "S۾P! !-#?&3 2""c!!!1!?$"1$T"@?#3/? H E2%4C0!Ϡ#B20" 3$2 23!ͮ42!!C@1оQ"`2"%/ d221"2$RA2#3 !BBC E441?"CQ# ݯF! "ݰ# 3Q2$  6C3s3S##BS4!B./%.D"#b>۾3ݝD# X. -TB%21-Sr!2d3 T2A 52#!!6B  $S1R"/A>"A.T#/. 232QQ 1ݞ64 2 d363/&!A$UA  R@D3 !C"s#"C12#D3=?FR3r2RR??5/Ac3!0G s!Q$##CCA1 %D3s#.4%3&$ιPu42! q0T+,GE"#/ͿB!0b1U20!E"! 3B"6B1Q ݾ71T"A )"P c$ T#BC#23R2s!06B?#b2!1C" B#D3"F132A"B?޽#b"/T3?ܽB"55"$ 2S0&A?14@2? 53Q#R LSBDA!b4A 5 #R?RA#bA/$B CB36$&#A1 !! %2C !R 3c$5 /2S%4D! !!!3S" "2!2F!/E/ a!#cS#/?@#R#$C !!4' ##" %3"T2!ݮ74"0Q?!"2 "2#?m DE!&1/!#"$35 F#$2ͯ3d!A? .0# 4%ݿ7!0? "D6 ""2= DT!S3!!#rP#S"!2UC@3R#b#"D552"3S31$6"EB/!O2D2!25DA DDD ͽ$T%z4!?4"#/%R44SB "3 3_̮3!/?.F"54ST 2?˽D"1 5/ $  ݾ4SC-@ A $0#!RC T 5&$!"2% U3.3E54/!?%'`CES0bS# B# ##2! c0$1-$&$3@!@3Q!/$C/6! 5E""!sM2R c@A/ѿ#&211!52B̜"! D0#DT2#!2 222T0 !BiCS@#20!Q4$  %#Qb5A@0Q!A2362B $B!!#C" R "#3$6!VQ b61/!# !C  ؾ"22 62C2'"AB S34b1B r%$1# /.rE"B#cS!"S51#S4T23C"cRS#6S2BC&24$%#Q?23D!d!32!cE"3`5>$2DQB3TB ! ڼ#1Ac0" #sA."4$1DR4-3e24"4D"455B1$$2A /sB52B"F42Q!S3C3"$CcS43A405!.12$!2Q0"#DS"۽1#!oQ1 4DC?!3ڽ! 54?% $SE21 02#!cA$! #DS " $""S* $3! $RO 0T6"-#B/"1""!F1-` ޿RCP" R $#"3c!Bݮ46319 "/C$!72$3"#Cb21P  4-C"/D1SSE$"A C4"%R3@.hSCB1!1P!%4# .E2555B ο!"O 14#3R/!RD3" !/3A!U6"% .E4D#B"$1!#r? 3CEB!$?#10 &#$&3r "#11˽1C2U"2##7%DB%4RSC;2!!"b!!!F2BR#q1"CS6BA  c4!2"5E!   R"!!"˽B21$D/$CcDA#""$""! s" 5%3!̯ #3/"""!B>@& #  13C32T51 "ξ5R#2&45"%4$$%4T 3C2!$T35B!23dD!444SA24DD2.;"2D/U# 2!5$C3!/!T3A%50aDSB !! #"3F312ݽDBaA 5 CN!R" 6!CDbR ! !.1˭4 ޮ5b/1 DS3 !02!C_ C!!U!B DSS ##$b2$Cd#!BO2P$bQB-ͯBCc !!!1#t a"/$E3.4! 3Pۭ$#DC-D4ST""$!3#A!r2$1c4?A4" `B3)  /EE!!"̿EB#5#623#5541!"ADR3B!%DB"5C2a4EC 3$#D0#1ER3BE$1! "$"&"!00.DC1%"?3 1B1 $5/B0r!!22!$!A'"P CP!$ 4!B1! A6/!RCb!!1 A "233?/60/21#b1"2"4""1B`R" ߮4d"1##"S34$5C501B1!% #2!26430#CU1"42!"#s""2BCC24%520tA05!0#DB 0"O!!>4$ #3SD0$#""/ #c!?#4B.0 @ $ 42.@"DC"A2!2.2 3E!2BR.#!.#R B D$-}AS!#1! "A!"7"%">  #4B!BQ./CS3 3 4(#%""4A1!#B/"#Sͯ2 !޽#100CA/#5!@"#0c #$BA"BB!" 1"71 !@" Aa/$% !#3!32/!B4 !1325#1"!޾"Q!#1 #2 3#4/,S212"1 #! a0--/.4 """0/4!"0`O1#u!B .$#21!! 25/ "!#11#3C32>!#/$#20 k1#"!!3!"$" ". /A! #4!/#2A"31D"1???.!/O#33 "N?3B3$ ". BaQ2 " ##$ //  :2$#B ."24"    .$"11  #!!0!1""!"?11 .BC41 /O1/13!0 !?)X 212 . !. #! . !0 #3BC1!10  "##/,$C32/ !." # "A!? //$442@2"?;## =#3!W"" A!&4 0$2 1"6  ! 3D2 0!" ݿ$5"v P .3# ""1AݮE321D""!#D"1" "DD Q  7" B133޽?4$S3Q#2Cb2A3B# 11.73!/ܯ5 .2@S?ͯ4!ܽ4CB2. ?E$B@ 2A"! OD   %S3". #R B!!3R #5$A?>RA #4#1ΰ""3 3.733!" 0"!1A2!5! !"1ݟ3BF201"3  "" #2#c4#@A .#41$#@! #4A01/;!DD / %#B 2 1/>3޽ ..$%42"!CD $3!0 /"""$B/61!/ kEݾ% !"/ݾ""$%B11 S3 "4!/"!"A$D2A!#4%@>?1" .0"!#E#!1R #"#110!B  !03R2"/52  ? $ /2"R##/C401"!32' 21ݼ@BQ2/  4$  ##!!$B" ! R"3"!!"AB#!"QO/"3!1Q!!AB! [ x $#A3#0=0// 2$A3A2!2/"0BA1-A"3!F"353#!1ݽ00@1!  D! !#1R0"A3 / !02A$"# 1"!"C1" !!/ܿ"$4"05 ";O#B#/ ##  ޟ!P0#!"A"2! ! @B3@//$/ #$%ݾ12"!̿"B"2!"2C ! ? #B"-2"1./"!N2B20-2A!-"2#4D/!!BO/#Q!"!.C4!"/"$2/10 !4TA2! !#! $" 12$5300!../$""#!#6/.! "##3A.! $" !###BT! 0"0 ݼ$20A2 $C/# !21FX#@A-%"3"!/C 111RB!!41!3"b!?! !#"B#!"A 12320#""$0߾ 01? A$#$ ! ! !"$" ܿ3"//.$"#1#A4"@11"3a#/0ͼ!#BQ!! "!1Q !4. #13$ 0-"3$1 ."""D"!!.S32"#4/1#"#"1#1 //"41#$ ?22BD0/3"BB" ? ##!@2 3!!!2 ݭ$##!33"? $ p.5! A3A!@  $4/A#0-1 "/. ? # ݿ321-/1##! #11/32A5#0#/?42!!D1 "#3A0"3 ͼ"#"""ER"  C /!.5C# $!1!5B2޾54#4E3"  6#@CB ݿ#SSR $E!"#D2 "Q2TS" R?2 /Q#!DA ޟ #s"t޾"44. .cB1"3Q"15DC2 TC1"ED4%64/0!1/rA/3C!bk"53"B1cBAT"ߞ!C1!$T4"a0 ޞ"R3!,AB05DCA"4CSS"" s3! 54C!1"1!AB164ܽCs"ݿ #!TD  ݾ3!4E!'" Q/E1?S!63/#sB Z 5/? a0" #.EAެS3޾ޯB2ݭ30R4"D "61/ $C 0C"B53!Ϳ#31&C1 B2E"."1 #0TB1TB1 $3.3O0R2DB0 3ͿTA0Q2ܮ63"/"%" SQ320=23Q"B O ;6433!'41 /!&#1!"35B S# 5"2N켰! 41?R4S0&$/S Tb"!#ߎ3$D#"P&d d 3 E3U33B/ݭ71ݾ5c"""RS4TRB2e3/޽"G3a04B " ;3A$#3C%R?SD5#32" BA!$$#.B3$2޼"TC"A !UCs5T"#C!r1 3 dA Bc#"!%$"3"3Rv2! 5E#1 T2%! S3!71?T2rDͯ"Ca02!64A!CQ#63CB! #/f1 DDA/3 24S# 3"V2# BC!TCB!F! ?$$!!w!0#A.5.R$#3B5s!c44E3Q105B1"#7B2 %BD!%5"?$1"3$U! "SB$ "P 73C5C@$26!1+314"E>53!1./d2;Dr/"B/60#!*6 s0 #63?-As$6S 61!#0EC4S""Ͱ#BF2A  AD/ 4Rݽt 4c! 2Sq7!,2FB@ݎBP4!!ܿCr2!$#Ϳ3#4T#5172ݟ%%3BLLBC%$T F!Bݝ!4c3-2"2 $#ED!s!$" 1̎C2 T"!5sC1z#!3CT!BA6!-4R"!sA#EC44#$4Dܿ3" AbGC1cR23DDC1 ##44QN CP"CD!A4Sb0 B2 ' Q+&E$2?Cc $11D!$sA1"Q#B 3"dA E3!/"D$#!qtA1ݯc2"## #ؽ22!0&B/ Sd3/2!""B2ϭc #! BT1۾!$43F##d 21"4#b!$41S14# ca!%2D"$TR.!G37D!$3Cb#4S136" S"#1 T3)"3$B!! 62'DC0 @ #܋#2cS2 4D!"4/P1!G"4!CsC-&  ##bRQ/54? 24Bd2ݭFE2#" "CC2BEC?#4EA/`cQ1޽TT# 2$0"B@?r%!/$S!20A/1Bd"45D413$&C#3rT7 !$"ScR# ݽݰ3Q#!$3/#B#b E4$B2!'RB0e4@4RB02SUAt27 !dC$O3E#!A4C #"4!@>'412B5"BD7! "ͽD1aݭ72&$!B3354BC40073 BB"UC@C43$57!3I220U0T"!뽾'""CA5!4a1073#11db !CB3&E1 "d0b12!d264$BB"6#$21 b.520#S+#$c/B cS132#!0B3"cAA?D7!1"E%ER/R/%d1 7##C3%6!"DQ"2ޭUB?CR#Cu A C?R?E!%$$4#2D& 5dBB#3v"/3Q2DED! TR.T1A2D"A46"t3C$FC 2R0$6S/!4B30 5c!7"3BA23r1I[ ""e!4@/u3!45 "UE# ݿ3 "ܿR!B4R##ES!!4"0 t12U#&$#A6DEF'1/ݾ"T4"!DS1/F4!"0 PRcQ$2!&%3D? B3 D0/ܽ5cC1c3B1#V43R5##!;ݎ$b/0D4"3DS0!"" T!" bQ #34"7CB"! B'13νGC3Qb~SB$$3>"21s?#C&RB "b2211FB3޾ "1 R3BC5#%432S!4bET#3T32M3W34 E"G2'"μ6R.5"CB1BTR!cB3t1!#TQ 3!ݽ61/!da3CS4354C3! 7R5#4FD1"5CC3@65A$3BS@21"͝CR"!3B$5C27R"/T#S$""V14"!SBS2CMv"3RC3%%2#B7b1!7R@S3C/2t2!A!" 61!E34CSB"3G3.R4μ'C0#$T# !Cd2CR1"dc16T23AR3$CcB1! 7A.Ca5S 3dT1!3.&"ܽ"V!5$3Q1CbQP".e23 d4"054"4A,TR0"!14".11U"$ %3 "#$ b 41StC2A7D1 %4#S#$4DAsQCA FB."E3B1S?"#ЯDd!!23q#CcB3BG2VtA!b ##ݿ%B05TB?!## " #20T!!1ͮ%4B $"3د22%C2SSa"? * "2#0s 3ܼ&43"%! "CؽC$b1EE3.#1>A ! r0"DA ##10"4!F3 T4B$ "Q15b #E#T$"@ A!1Bc@B1642!aCQ!72+{03 !01"D0D3ΰCP4!1%"P13?T#Q?$@B 2C0D!!620S!#B24Saޯ0"b@2"$S1 2?U"ED! 5#!5T2 2U15"PBD2<ݾbRM%#!UR"T#D#Cs!4$DFs!ݮT#&B0s!E##&#/%  0O!F333#U,KA'2=۾2a $E331S! % DB62/333BB W!"2""Q%1b 1 3@1"ݽs A120̾b2!D? 72$212#4 T/a4s13d3D!#"36?iL3A/B "$2@"t!" r?# !Q#@ ݯ2 4̻D2 "3t1#ݞs !̞$S"Q!,tV'33A !.&C v" 3<52"#A20!W3!#SfC4$S".# R1/ DB712A A C?$7434ˬ3# u1/6!3ADB!C5R!CcB1>$30ʽT!"۰&2!c!" 32#ݬh>s"2D!˭D g"BB# 0B %5t#/12@܍EfA42,3$$ؽ5!$d/s122@E2 #W2 B14.c#D!#UC2$#E7q!Q!&!r"' V>mU0d1/CC1S7&5!D#6" ݿ&BB3!5C?#  52'D=S3 7# Tb2# E#B07`3RS>"DC,21N4/s@15"-6!##"TvTD%0R2%3CB2!Cd/B!S!DAt0 b""B3R2DCcaSrcC"!1DT/ݿR $!/E!3!CF#""R/'1 T$33#"D5E!U #G24#36$6"EBUA.7r4!3F4 5"#5s@5!"B26BίE5# CN1/c/QD3!B#2@/7BRS/3#1?2&ݰ0!/C!4CB#4Rr@E"%3C!Q"1U1r!'B/$BR"!36C"'b B05d" CE#DQ 8? 12!ڼ%CC352'#!EBs2 #bF2 10 7B3v2%#%"3r/C2!s 3"6T0"F# F3 3B ""31B!6DT"d02C33e3""A33ER5#R#24S>!A1/t3BSA"Y"#`#/t#!$7A#B##Q #t"$c@!Q>2AsA t40"!@34b&E9G  " 0$2'2!V3!3 D"'D "@a3371@ݾd4!"# c./ S?"#a! &2Rcb!A#?/Ƚ3!R.RܾT0"4 Q"!sQ#TB-"4"Ƚ#3t! 42UACQ $C!!R$#ތ61BCS!!V"/dB#DB 15R""a!" ED $2S$"b>CB! vP T0S$SR#4#7R !A  B54#A1DR>4021d""3%5R.3߯3.S1.6S #QB##5D!Ϳ3)  u 4AްTA#D$%SrA0S$$2$#c/7 $ ̾5A3!"TR! 'CC34c024C#4C?M4" t133sR43G3#/t!c0"$$C#%4 5 !Ocb4%/#DT30&R.23&C@A3Q&R !)2"d/"0S@"52A ޠB C" cRA! " 31d 3u!Ar127B 4EC#4BR""S03Cu!CCݞ'B3b3!!4s/ S%S!#54$D u 273 53"4d!A!'B/4#/˽. Q#53R"$3Q2B!u1!ݞ7A.#%# 7R.C!s c0#$##cO2" !TR431FR>Cu""/t2$d 3D4#SB%2"GA%#tC$2/Ec 3"C %5 #$A2SQ!#44311ES/b $4#>c@ BCC24DA220u1$2 e3#S$0"&E2D S1%"12F1 ! #33C1Ds.4"N#r!DS!"/$33DA!!d2 A c$A/q-"75! /$"߿D1#A U1 As 3<Es#"Cc!$!<"1 '0 rQ "1.b""!4%&R!#2"+4/ V""1&#21%$SA1t"A"E146#2#RB"21W22Dޮ'C/4B"4s?!4!D--5@2$B2!c2!2 %@5r."CCtD%SO#A d/3!TA2C5!3F1 B3$C$R!74D#2EU #!/DT12R5A1/3 $B65)_ C4"%T1B1d%3 U"&2AAC4 2$7a"1?FC5$"2s0!߽U2.Ϳ4@ #$3"3E3!!#"%--S>D42$T0B1vF2R#R1S3 #C1GQ#?5%"1S@B"%.712"@1bA"3 R"ܮ4s"%#"Cv5" s0V1"4$"3TC 440B3b 7R>!S415T1"1/A!>6"##S B72AS%/$>4/CS"%7!2!/ t0$4!7B%#C24$B #!FR5 DT 53$714!U/".2#6"$Q! %72CDS#3"U0%DA"/2C&32F4 3E="!S?A ET!"1?W{C 3ܼ3u!BC"%U"5!!7_$E4$352$634&S3S1 GC0SC2$d@ ݼ/"O&" BB#7+ Z s5E D5#7@""e!CAECR#CA#%B11&b!4!'CA"D41E2#2 T!$S"#U$62 10r$ݝ$d!D33CtAB2U15G24#C3CSb2C@/SR27S15#"$W"33#0!#1#B##cq,2ͿRD/ Ϳd #B3%EBB2E@R!̿##42#E3."B2T#5"s16#""sa &0" F3C23D2#'B 1!b.B0 U!Cb27B3Be1 3Q 41R""4S!32bC1 d1522 $UB"3@T.%3-"B2&4r#3t"3C$TQ $" F2 CR Tb23664 $!/ r/4AE"D#BdR12/ܾ&#34AA@2Cr!"1S>E2 6"'#"G3 ##27BA R/$#7#"B%Ͱ!10&R/S0 4d"6"!7CB!&s%1?1 6A/ $@/2!/R C͠30"?$6/Q02c#e2-##%3Ad!DT1"@.2B6c5#cS$0c0ͯB1 SR&D"D-4/ %C $C.!&B536CQA2"/#d C5641##/ ~@"ݽdA/ ޿&S/T!". 4S">4D1 !52$!5DA744A/"S2D?53"SONtݾ#T0"#,/D#C,"""͜#RR#&D1!4s#2%BAv! !S0!# 0)G 52#4$S6!P3"s23Q##%R!ܾ32F$C2'C3C00t#752CS0/T3#TSD1cTQD3 D@b?S1%T3.ͬ$D"U!R;$R$44C$!!30#t! cR E3"5B!D#5S".TP $"D"21dC"$R 5#!ܼC1 / C4#6"/E4 a""#q2$. 6S!s/b.R'!c37!#/4!2 Cݞ2B#&#DQ/ F1ܿ#'Z  "u21"B%B0!71A 71 c4A/&1>B!"2%2 D1 $"%24""17bB%"QC4"620B0  %0u!T3/"?2B!RAA05r DBS-4"!S "c Ca## ܍3B4R/@'B;540 # C4<NSB432r!S"/d sA $C!RA.!70ED#$1 R#A#!#1#Bͮ#5!5!D33 "Q!/ w!&BQ?3" "Cb223S2 241CS61c!ۭ$BFC!!&?24@50/3%E!ܾDR>/#F1B'Q#R>%"!5C/D #qt1=R1#B"3C.E!Dڿ3gb@7!53ET4#2,!E4!"#1!0dQt/2S0c3$/CF"61S'D3$3BU"t"%FA'QW2>5BB#SB 4!;S4"3$t"3q1E03B&B$At35B01"75 1B b@%! 3sAް#$3$d $#$B6 0V1#3A!5b0"a/r0DAG4.2&"#DcBG2B d2 DR4""#d0#C!'S#2#t4 16B4"T!5C.1 ?ؽ4# &BB#u!"0A$R@U2-1B B4 V"1#t22R1!CG1$32> C5R "4Q"CR#70!̼$c!"44CS.A 3b!"dQ#jDR""$3ڿ"A d1A Tb/5$"6C.R1 TBC27!4"#$4T01ݾD1޽F4D42!ATB #sA# $E ##R3#64C!e345%DB$S4#CT1##c$#$r.3S2'"22 T1c!4C3&D ,2'BCA."W".#37#3BS"42@T0#R Ec/64$'%C#a#6""4#3d2 44 6Br_4! 13B c0!E5""A"Ƚ#3AS3"4/%CPA/3?%S%07#"B4t_&"&C?#Q!% "7ARD1 ! C2 c/F5$0 T#&"4F5!"".1<j32 ESC c30$ @2d?@T5133'#$'E!!3"5O2Ac6!/$A-4o!$D53 "1"# DQ#5""4c"$1@%S 6"!TR $3CC5#4B"B t &!5 R20%T"1 ͮ!&7 5B $34&4@B DR2tR 6$"15634cBr"̮6"Q24BB44/!1 '4406B!4BA721 CA d#"sS =?321G151Sr1#4"/R:"@ C4"%Sa!L23 ݿd/#@SS%5"4#!71 A! &CA !!#3/ B5!cR3"/Q3 SAB!Sc  !!"$!'C(4"UB.!D2Q1rQ"4/@!d 3$D#54 $1 dB"S"F2$61CF"AT!!DS2Cb!372 21& 531E!CB "Dd0ͯ ݽC"263#CCR"541۽4T!4B&D 42R#&C#2!U1$#s;"35A3Cd!3 r4BF3/2Q "FB!!ݽ$/B" s!"BBA25B/3RG3#1 e3%51A 3U211/0!!ͽ4T3$C#CT3 $17"C!U1$31"6E?$"4 0ۼER$43C4SB#$0u%" 6T BB!&  /"! 6"B-F1"33457"30r/C#G5$2R#7aB0/ %!3u2A5"364.1Q3C9tݾ"$^UFB!"!?.u1ͮ526A@a#DA !!2B_c/$͞4#D"!'A#5SA"!$! A2&S2T320SA T 4ܽUC0 t.2,ABUCR4!!4FB!!6/AA s?#E3R"S4$V2$C2 d34T$!#d2#""߯S ,"6$R/#4522DB2BE032t!3315U ?2R"/̼G23a13bAݭ#$!s!DB! FS E3DCr/3"  '!$cAAR23?1A 4R!7C4Q2!FB ?U A05!$#R##SS%"73"0/e2D$# d %61#2"3""ܬ4A4423E#""U "B ܭu$44!$c@21"&BC">7Q"#44"BSA C1t 52NFD/ /4#B!"UD/A0/2BE235#3s"1/s&454$DC 3!/d0#"#s2D44A3$SCB!$&4"b "e3 S5 TQ #342S.3$QA1E# "061"u"$S4"&5!ܿ!! D31;E3/5$$, c #"S226t $3ݭ6E2R3!5T/B1Q"U"#%#2$r?!#cR#FC'"3%%B31d23$F! %BAA3R>2!'RA0'Q3CAd3#EܾD!2b"C22E@#b %72%5###d1"# r/3B0'35$#AAR2 22u$$F!$C3u 2 61"BD335D1#B1D/D#UD 6(FX!a"Qd!1 G4 /!ؽB17Q1ͭ2t$4!/?"Ad0cq.!!!34"G!#2 5bA.%#B!?/&2 !!#4t 1"5RN"" UB/߰2 R.7CB"1/+""!d 5B5c@#335$S"CU2#ͮu"##R4DC!"32c 4RqC4B 7D!#.B2 S@83s""2CE3 "D"'3"4CR1BS6!CC!F/!Db.5333 E42A"޾CCݭF5C4'! 2 49B737#"$51D3c #6"4c@R1!CT4D#1EC!s12#R3"%75$!/Cs53rb@b!T72Os1$E323R/2A %3#$4 S"QB23T43!#1!ܞS1$&"'5"0302$#3s1ܮ00C#54 E% 2GB021"DD$.3B11 E15R1!."#35%44!$4S!2Ps3%D2"6!&"2$C;aC͌%2 1RS1?.41BC!"U#DB336A""72"/&"11RCT6"3#?A3$/C423BDS/ $!4S#!!T 45!!/ݮ72 A@BAc?"DR 3c#B2DQS1>"BbCD"ڿ62aS3?#BCB͟4/ %%!%-$6C7! Q!P B!1?"!,62sSB1!GB #$ ͯT2$b.$3  50@/d2 .3Q$"4u" !5R2 SABݽ3"%6!35S1 c21dD!Ͱ$! 63#Q /9R Q/%5"E$!/r &" B_F/s41ܽ0T0B ܰC !3DR!WU"RR2ܰ/ T2/RB aTQBb!2 1?'R!T%BA0#?C%15D!/C3 #"%3C/4"##30%C#C0c2/%SC5S Q#5'2"$#3@0c2'# $!'B %$!272C% C03T"!"/!1+u"DR35B$4˽E!r1!!" EScC41/2? SA$a4! cR ݞ4""$4/۾D1.5 ܾBs2$ R-3B3ܝr1#c!&3QR9T3S SCB0!#D#SB72D"$C/1"BDC .U -E4 !!6"A3C/1.CbAA/0Sb05C"S3F4! !2 4C3#C2%R/ "R?|42/6C0$3?$S1 &5$#1%2 ˾$2"!1.!B1D2#;cb13@.bA2sBSB"ͯ E35%#21$SCT2/ "CB?U2ܯ3#"1rA$D#ϿD5/&"7B#D5"##5CR#5  /#r4AED3#/0/N#3" RC0!bC2D"R#RO1DDC.1R? O9w "2#R !1RA!456  6"TDAS4#T!ABDC1#CS74C21. EE#43b4#C5 TB42!/3a.aέCR.3C!SBSS!"#s B1?c3/#C7"#C#STB3a!$TT&4#a#E;!#B3 -6R4!4DA21$1C1#T$ DcB"1>#$$/FCA14DC-}A /#Q% T/$ͮBTB0>!1!33"4R$5C=2!Q$1c!!F$(TͿ" " O2C!%D 5cC C?0!3#2s"@T4S/ " "@ 3B0s"3"uP#G#1ͯ !# Q4# Ͽ71R 3TA#A2T@ ή$S1ͮ"B! #32/c2# E3s "1#2-O 4""G" 1r4@ !31D/$/DRR4c51 "#@/ #4" 73Vb6"425/41"3R.%4A !/ 1""73#޽5D"#P %1B" %B=S 3cA, /@216R/1 ݮ4T3/$"%"$! TDDSa%2B)s @!3bQ!3?/!#Qr"&F%#""1"$"2T޾473/B0b4 "!'252"0 ͼ$t 2RP4$"1C642Q!F14$! 64B#S#5 R64!5! #R 3@E041c445!  B"BV!3r!ܾ 3! 3+.cQ5CF 2! A? 323G0!22 !/ 4 RBSG R2#!5B/R"sB#3$#T4?ڽ"A/!A#TR%2R3 43V1 2$5B?E2tB j}#R3E3#RCD""4$2 6C04C32%E4 RC3S$DC"!!R/B12$$"DB"4%41 -s/ 330#F%C?3'24A0"571/#!!#T!S2 TR $C$DC353E13Cs0 4"0DSO S3D573"4D150p'C?3$4RA#$S424s1"C4 ޮ6C2!%BB3 D'4A@DA%@$s#5"'232CT435" d"5N2c5ͯ # !R"0 C`!D%4#2!˭23@>s1"3TR 2!a 10!U!0!5DR0! !2"۬23ݾG?#1 #7$ 2"C"C!BE2CDDS!B@> #2A/&3#B1 5DC"2DQ2Q3DF"B5a R  U3CC543#D6B1 #C2 B!3R2#rD!CS3#5DQB#5B,3 6CA"3! 34 '32B%4B23A0?$O#CsST3!$?  !2C" 2b1!2sD!A5C$A?2Ct3>$#0@c D!.ݼ$Sݾ!B"B4bA0B" c0$!!5S!ݽc$$/"Dd c3"" cA&"!FC1CS#E4$#&$#Ϳ!1E"CQ!.7C251RCTS"2"DA2̽c1#1%h##CTA?"$2!G"3C# 65@#4F!3"S6C0"2A0!bQ#R0ACt15"4b#D5 #3"G"3BA5T# 1!4 !S b2R-&3c22" 22A d#2ΰ?SD!244-B" F1BͮCcS*- !A##$# Sq#3 63Q"$"$# !$4 D۽5CB!! @/!#BB#D#4064$# 3S3$!.sS1!.ݾ%T4. #62>?#R!!޿64DR"R2b"" 5B E!C/ͯCC>$e4$!"3!$CCr0 %$356#!? FD##3"3r2u23 DR02 75#!"/T"-##51"$$bF&2 ۽!DS04  #S22'0@!Rc42ܬ3D1B fCQ!7C4$34!"#BA/ް c1ޭ4D2BB" !Cr/B#!UDU4C"T": DC;$bA/2!3R"03Q ͽ5?#433#r2!/"F! S5""4&,!CS 3560> !.2$"  TB 6CB?"/!>4 33.!a 3"B"$ * "43B 4 5#2#"## "!Q#B /#4 B2 .53- /SR$/324?c3207$!//"2!ͿB 2"A"$#"22! 2D4y3"#.!3RB.1" 3$#"2221  0%4C00"CA" 4!"#/132$B!#C!1/$6 #B2 B"4  0! /1 4/!&28T5""A/ "1 3 ! #C5'S"3"#D . D"!/@/?2zR!$1..>"2 $!!">  $3н B #$!#b4424#!0% B!/ݾ%"B202!0!!"DC!>"32!. 3  ?"!! "#B BB 0"%#!0 533 0  #B11#!B1##B!!2B/24C4! 3C/ݽ!$2Z !B#"21?.!$!2"ܯ3R@" /4" /  $1@E/#!/  "#!/Ϳ""2?!# 2Ca"/$"C? @1!//  .33 / ?3a12"!!!0 !!#!0 !!-212!A0?  "@0/##A1;D$# !""#2?ޠ#0>"3A!!"3 23 2"/?!!!.!1 !.1 D3!!"   i###Q"! !?!$0$$/#2B1 /!/ /A2  =  1A0-#!1"42" 1$ . 32"2   . #!"   4!.! 2!"1!/$#Q? "0A!0 4!?!0? . ! OA 2"0?03C?"  "! !/ !! 2B$?@ #21/.# "/ 1!2//!1"<u " 1! 0 #5, / 1$/0 j`" .?2!/21/2  ! /"{>!/ !"#"1"4"" !./"!!2 0  4" " /0!2  !?  !1! ./? 2/1&/!! !B!!  !2/  ///!!/ "0#Kg! /1 1!!   " !!."2?22   { ! "// // .21!!!!."A1>.0!! / !01"# /0/   !.!!/   " . ""    !"! |/!." 2 /0 1#/iL!...3..//!".0"/!//  . 22"!"/ N  ".0!0 / !!.?@  ! / -! /#!/  /  Y! O21"  E " . !.!.1/10  ""  ! . O< !. "/ !  /0)  01#!   /m +  !A!//?? #/1//0"1 !1?! /  !" / !!   ! 00/  /  // /!.".!30@!! ?"}j /?0 !//// /!/!!0/ / !/;-.  /! !./ .-/0 >0!// /" ..W ! / !//.  ::?0// " .!/0.!.0/.0/ 1/. "  &/ / / !!/ ! &  "0?!  ?//0/0  ?.    /    /.rL?!0 /// /1/ ../!/0 /!///!0 /./ / ./?0/  0/  /.. /!./V"?0"/?/.! O//0..!!.'M> /.  ! Ds-!. /./  ta !/  ..0"/"!  .  WS41"#1"4$#433"#453C4C3"3D4! $CC4""""##43R2!#!"2"3D""C3B4$#4CS4343B1 #532"3B#""13344* /   /! <3 /0//!!G P / / /1.//!. // //F/!/@  //// //! . /444$""1!3CC3!!" 13#/2#!"$CS33"$$4E#22kE23!!1#34#!$542 "CS33#C42""354#"!24;" ///  // 2R!CSR3"2!#CC2!;34#" #""1!"!"DC4#22"#3CCD5X""243B #C4" 1!"#1"#32#3""#C4!#DCB2#"3C53D433 ! !2";"#4#"""!2#43SC#"54B1 -!//!  $4DB2"!"2#B1!!##3CC2 #3B1D3Q3CC#2#! !"CDCB"!DCC32!!"""!222 "B!#3#C34"C"!"223332!$534""CCCC##"2B" ;11$B"!!"!!3"!9 /./. / !-/"//4"!"S$3C332!"BS43B#R3!2"##"!"!""""34B22"!"33BCCC3!4DCB3!ݾ!2""C2111!"CDB22!45##""""#$#33!"$CC#"!32MM//!/  .!/!!.12$"33" "#4333CR34#B2CCCC2C"#3C"22! "Lݾ#C3"#33CC32 #433"3DBB"!3D3B4"21!ͽ!"22!Ms""211""$3T4320#4421"CC#" $3B""#!ͽ ͽ13"!43B!2#22#3 33CD44#!#C5#""!#C21"""ͽCV $3C1 5422 "#"2""!"2D4B22#CR321! #20M:"!ݽ ݽ!!C4"!#D44#21!""3C5!3433443"!jD# ##!! !#C4#!4CD#4331""#33"#"!32#""!2ݾ!"1212#!"#34#3DB21"334$3B2!2#43333""#"" !"33"B" !2$4C3232# #2C3SB!!$$43!1 2!43#2"!"#"#"2!$D43"1#$33#""2#4"!3)O"!12C"1!!"#"3C4"!"4DCB"222"2"#C3!!#3312""3R3"3"1#$42A"45"3"1""2"##2!!"2"##!3C#"3S43R"4" #5#"#3B#!#33"3"!34"!"#"!#4333""  22B5#R#3CBA)"21"/""#$320$$23!#4$"12"3#35#21#F3" "! 2A!#D4B!44C33#33"CkC1$"2 ݽ"#3"!1####3C3"44C332!"!2##Y34#"2""#443#!!22""#B3"!533BB$F)"2" !"!"#"2##"3#"!"#$4322R3"!#$#"""#$#!!!! ""!2"2B44#!"35#C3!  3"! !2#3"33C!24$"33" 3#4B3";("43C4"#3B"""!1# ݾ!$45"2#""#! ``!#3B3" 3D42####!2#!!2CR222! s2B#34"!!!#$"2B4"#!!" ""333!`'4A11!$$$2C3B1"""23!! !"#234##"3WB!"#332#!1##4432!2" 2 !"";""!!"##34""CCB3"2#"!!"""3""! "$"""#"""!'!#45#3""CD#3! !#""21  ""!2#3""22"##!3CC3""2BB#"!! !"22" "#! 9L$442B"! """2 #3321332#22!!!!!"2"&L#""#33B#22! !"C4#1"2B"!"""!!  !!!!&&!!2##"!!! !333323"!3D%"!!"!!"#3C3"!#C3 #""3322!C42"""" ! "##345"2"!333""3#"2C21! B"22"35##22""#33#"!!#"1!"#2""""3#1!##32 #CC3"!!2B##""! ""1"#"BCR#1"32"33"!!!!2#2!}"!"31""#"#"3343$##3#" "2" ""B3!"$#3"""!!"#43B2"3B3}!  ##!#24#2!"#2#! "33"#22!D2!#! #33"#3CBB#"1!1!"""2"!""2;N!"!!#"!2C$! ""232322!"#1!#! !!#"2""!!233#!2"1! #"233##"3! """#$3D#"!"#2""!"""""!"!! 232!#$44A1 "1!1 !u#!#$""##""!1232!"B4#1!""!1 "!""B"1!2B#22!1233!222"!"!! " "#33"!""#3$#C""31!<O!##"22"!2322!!!""2#33"OX!"!!! !!334#"B32!"""! "332""!"!!#!!!#"32#3B#" ta!!!"#"1!!!1!2#"!""3""# C#""!!!! """1"!1"!"#"2!#a#!!#"2#!""!1" 2"2##"1!"#3""2"!!!!#"1#!"!!""##3(  !334!!!21 3#"!1!"!  !""32#!$#3#!!  2423!!#""1"""!2!3""  ! !"3":M23321!""2#"" ""! !1!""!ss2#"""3"2!22""! !!"2##!3#"!!"2!!""! !""!"!33#"!2#32""" ""`:#!""22!3331 333"!!"""""!!!"""21!  "!"#33"!2""""!!"! " CC!!1!1""2!"#"!"""""#!Mi!1""2"1! 1"#1""""MM!!"""222! !223""!! !#2!"!"##!##3"! !"332"!11"""!""2""! ##32"12!"!"!!"""! 2"""1""! WD! !!1#2"!!#"#""! ""!"""3""!"##"!!!  !"2"!!""#!1 "##2"!;N!"33""" ! ""!! !!###22"""! !"!!""""11!!""!1"! //"" "#0 "4S# #bB!ܮ!DB"ͻ%""!$C%3B0#Sc#?53234CSB<!4%$$ ! BA#53116"0"V3C޼#r#/ 4#!46!/ ܿ#0D "Cݭ2T% $C#!121 SD3#4"24R12"3D 62!ܽ#23#0.-5#2// $E!/ ! "2B"2" !r$ %#5%/"2&$!0 BCA! ގD5123CQ .1a!"5$-0BCB"" !A0#bB!.L# ?2$ "D22/ / 3! %4# #2/>" 0bC!/!!2R$  !"D# !C"1# 0@}3  "/! 2##/#$B" "t ?#"/!#!0!"  B2!.!Q""!!ͮRB2"/! .? "!4!""3!.C"/?3%2 Ϳ42".޿"BA/!2!#1 /  2? %  /!$2Bܽ4/! !!01!#3Q.=  %#4 21///!"1  1A@ 1 "/$! /!" #Q0!3!24"2! # ! #! 2/0C !  -%"" 0"#!#@/a343!0@0! .32 23 00/1!! :/A1 !2 #! ""."A4#| 3#.$B" . #/ //"// 1 4$.-޿02 "2$#R//! 32"#$/a!1. ν3C1"! " /  """ $! ""!"" "  // 0 ! 0!  _r!BC3 / "32 ?/1 $!?/!5"/11!"!?/.""!Q!.z"C$"!" //02" " V /#..0 /34/ " 1 /"$!   /1!!!2g1$1 !#/"!@? //#" 3!#' !/1!!. !0!  "20/  ?/! #B/....!.0 ! !2!". "!j/ .#>  ## "// #$/1! !"/"0/2"! /. } /  !A1/../...   ./0!/2! " /1@! A"l1" 2 /^/!!  /  !"1. 3!    !?/ !"1/. /!.>/" ///411 /k 1.! 0!" / !  /4 P /"A" !//.!1$!? ///  1  "1  "  #!?"/ /.!!/w Q .!O? /! 13! u  ! 0"1.!O" @!/  2. /  1!"!!/.!!,/  " N??/ ? <3! ?/!. .  " !//0s#"?// // / !-/(0 "!" . /?/"!.  0! 0!AV !! "?0". !_..?!!0!/!#/.   ! /-""!..  !!!!! !1!!// !! / /> !00!/"/ !?CC/ >./ 0!/ .. #!h /. ? " ./ 0 / !!//.C ?0/0!! ."./    ! /  1! /  !  "C /// 1!0@! / !.!!/>/1/ // :M!/!/./ 1"  ?0/ / /? Ds!!  !/0" /  E ! /!0// / @ / 0`12/!! ! / "0 !!E2>@!   /?  "/. /  /"  . ? // /. .0 /. !!  02O  / 0 />?  m ./  // /v c //  "/ /.!" !!Yu///.. .-./00!.?!  ?0/. //! Z /! /0/ //>   / !///"/! Nk!/ ! /!0! !!!?X)././!   ! //!0//00 /// !/~X///// !!-?>// /! /  / B21"443C4$! #5#!##3!2#1!̽#B! 3D32#BB333"CD"/ !0.  /  !. $44345323!!!""2$43B ##"3 !5#"#4$3$$"20!//! / .!//!r />//// 0//ALL!34BB22!342B3#!2BCSC4"$4C21#32 S43!!% .!/?!?  C9  "//! //  //!  1|r#4"3C4#1 2#DCD"!$$3B! 45###"1!$442;!!!""3#/"/ /./// 0 //!Vr"D4B"! #CB3!!!2#D433!#44CC#32!#CR2""#"332!W 0/ /  0  //"2"""!!254333"1235#CS4""442!$3B#!"!1!!!21|""!3$"23"1$$$!#DC422"! 3CR3S434!"#""!#3B!?>> / 000//  /! /1;#4C3$432!"22"!"53S32!DD33#!""""!222#2 #3##$$23332233334534""BR3B3"2#3" "!/0  !1!21"""$430#B3!#D3C4#4"!!#3S53" $3R "#2" F!"! ;"!!1!!"2CCBA!"#""! !3434BC213T43B!"!/   !.  !/l1!!"!32!"CD"! !2DCC321! "CD2B211"332? /! .  /"3C2#"1 !ͽ"!3C3"#33CC32#433"3S43#"453"232""!"!22""!2""!" "$3T432!#4B3!44k3C312" "2#!43B!"32##3 33CCb2"0!3443" !3C3!#! 3C41 543""#"#"#CS3B<)#53C"1 ݽ#21"! !ݽ!ݽ1432$4CB4""!!"2$3D"<"#C4"!$C#1 """####!!#C42!4CCC434!!!332#!2#!!33#"!#ͽ "##""2!#$32 #S42!Mj22C343B#"33C2!33""2!"" "32#3" #$4C3##3#!23$3SB#5#3!1 !$3#2"! ""2"2#!:0   ///. . r2CB3"4DCB" 2#2"2""$$2!!"#332"""3R"22!!#3CBA#444#2!1!""12$"!!"" "23!#C3i"$5343B32 2CB3"42##322#1!!#332"22``2C4#3"1!!223CD3C"$3R!!2"1!""ݾ!"#$320''#42B!24$""2"3#3CC21#331 !#"! 32 C$4CC"3D4#3#33"34C4!#22 ݽ!"!#221###3C31 44C33"1!"2#3$$#"1!!"1U{"CC321#"! "2B22 3D43C#3! "#" !!""#""##"3#"!"#$432#R3"!#$#"""#32!ݾ"!'"!"" 12#344$#"34C432"" ""32""C31ݽ!"4$"33""#$$3B"243C32333"1!"" !!3D%!!2#""#! #34#!3RB2#2#2"2#!1!! !#CD22#!"2332B2!!!#$"2"BB2"!t"! 2"333!3D211!#43B43B1"!!"3!!!!!"#23332342133#3#""3#4432"#""!1"" !2"2B4#"#4432!#""#""!"""3"!"!2~"$"12""#45#3""CCC3!!! !#"""#!2##22#"122! $3D"134##"!! ! (2!"#!2"!! "2"$3R23""!1#""234"1332#22!!!!!"2##33B#22""#433""#31!"uX!"!! !!""22!2"! "3323321!"35$"1 ! !""!! "#4332!#C#" "2"2B22"43B""122""#C5#2#"#33#!332C3! "B !!!#"3"#CC3#1##3B#"" "1!!1!##!!!2"3"2 ##32 #CC3!"!2B##""!!!!2"1!!!"2BCCC""#3!33"! !!2#2!#21""#!"#"33433"E2##3#" "2" "#32!$#2!!#"!#43B2#332! !""3# 234#""jD"3"!2321 ##"!  2!#!!!#33"#3R2@tDs4BBB3BBAB$#44%$#3CB4$#4$35$#44$$#%#$2C443R3C43C4$#3holotz-castle-1.3.14-src/res/sound/HCMainTitle_Fast.wav0000644000175000001440000055133211177007633021706 0ustar jacobusersRIFFWAVEfmt 2"V/- @0fact`data""!""""!""!"""""""""""""""""""""""""""""""""""""""""1BR$ O@2$>@S3.O"# @@cDO_! X) -`AC ,>025-_A3+>015/@2% =?B5 >_14>!R$ >OA3 -OBD.N3"A"NPB5-!!,Oa37<0!^aB5? ! -PQB5 .> #>NQCT-?-PQC5M PQCEM. OQBT# ,;@QD$, @Br$24ARB"33R4#3 33C!4231#3413332#242"C#33344"4 #2C133#23$2"B#33#C4"3!3#4!3231##32#32233"3#2 ##432#1#232B"22#B3##3"B"$"2!Y#"4!#2#12$1"3"2##33"2!#"3"#"21"231"3"22#2"y"2 "#3!#"2!#"31"2"2"#23"#"#3#"# "##"2"1"#22"2"#3#"##!3!#""""#22"""##2"#""21#"!""#"21""2"""2"#!#"""12""""""Lr"""""" "!2!"""!#"2!""2#""#"" "!"2!"""""""2"!" !#!!"!!"1"!""""!"!"!"!!"""!!!2""!!#"!1"1""" " "!"!!"""""t2!4TDD43C3332 ",20@O-  3 b A>-4-A@O@_">PA?O4o<,+!_N]<<2,A ?M]N#<3+ N_=, P@N,,;22>LMM3,A/n_>1\*?0?< BP=*<o3 B / ,#P# /1&?S52R$3E#RC3C$CC!!=,O $=//# "A 12?0/ //!/!. /. /.=/$..1" !/1 !O!/0/  !z/! //"0 "  .A? ?0 /?>A .?.?0="/# . " @ 0>/O/?////??.0/1- 1 /10//./ //"! / 2/1 0.342C323#233C223C#BA#330#3B$#!#4234 2$!3$B>34"3#34"B323223B#222B$22"A##!#32#20#3233!""2# 33"3#2C3#13"22#2#21#B#21#1#"0##2#"!"313 "#""223"2#23"22132""2#"1"A#"1#""!##!2# ##"## "#!2#2#""""322"""""#"""1#1#"0""  "#!2" "#!2##2"2""""13"1!2"!"1"!1"1"# EDS433"4TE4333"TE43B5^ /-PO KAp O-?QO, P" O  Q?! m?.!< /MBN /,!-P:.OBO ,`=@*=_A> ,P=O->Q- ?5. q =P!=.O O  -1!O!P- "1-@A/@>1/Q/ 2@??1 />"/2,/2/2 " !0-0 w. -00//,   >N>- ? -0 00!1/00./>"./@>  "/  "/!.@/ /"/!"""  .0- /,///uBC$43ݮ3C$3Bݽ#C#BB#4"BB332B324"33#4"333$"B3$$"3 / //1/ /"/  "!  G%34#C12C#4!33#3A2C3223#2223"31232223"2"2422#$2#3$"22#4"23#323##3233#3233$133 #A33 #233#2$#!#2#21"B#0"2##!"3"122"1"2"12#""2""22""1"3212#"2""3""2"$2##"#""#122#!2##1#" #""#"1"##1"##""" "2" "1"2 "2"!"""" t326DD433!5TD342!5ED3421?OO^<.!Q0.,o#,  1@O*rA. -[&,1 ?N^=: ?P^,+!`N:<4.2>-ӾN_$-3 _@> Q@N,;31K1=;-=C,Q/,M_^# /OO>+  A1>* /CB > `4A3 &#R$#ADD3CC1  1@> /0.>1//>"//-/1 ,>@?# - !..2"!10? / ./ //>../?#/3 !@ ! 0@?/ >/.0/    /.11@ 0/.///    . ?>!?" -# !/2 01 ??.!/ / //  /  #3A3#03$!B$ #3233 "4"B3 34"B434#432C$3B3C$3A;4343Aݽ#4A4$!35"34C4#B3 4333#BB2B#BB"2#B#"1HX32##!#2##!#2## "3123 2#"3# 23"3323"B3#3#32B#3233#31#$14"13$"33 #323#33"A233"22"B"122#1#1#"!"1#"0"#!#"!"#!2#"#"#" "$##"3222#22"2#2"#2##!"#2## "#2#" "#"2#2#!2#2#2!2#""+"1""!"1""!"!""!"!#"!""""!"" "#2""#2"~$TSCC32!$cSCC32%DSC332arEB# -!% >Q$- & Q4 =b30Q/a#.m[>P4-@#_B .Q$.P#,0#P4,03+@BOB_A# .!$ >a4-P$-P3,O2%-@DB =! OA&>15 =A40#>q2 0! ?2&OB&PB .>RD?Q$P#O".AR%.#E2!0R%?BD > 0s% AC>! _"PSE/0R 1R5?A$+ E& b2OC_1 /1 /!" // /0   pB"3""234CCB#!""""223!B44"3""!!#2"42C""4"3"1""3C#424!#""!""2!33C#$"""!2#331_-2B"2!""B2$##2""#"""" 3#4"#B"""!"2#1#24"l#""3!2B#2#"#""!" "#32B"2"" ""#"###2"2!"GJ!2"2#2"#"" !"#2#"2 "!2"""#2#!" !"!!2"" 2#"!"! """#"#""!!"""32""!!"!"!2""2"!!!""#"" "" !""!"#""" ]h!"""2!"!!!""!"!"""!!!"!""!r!!!!! !""!1!!"!"""!"!!!!"!!;+!!!!!!!!!"!!!"!!!!!tC3C3324TDD4434332!ܼ#5DDD4434332!ӈ4AN@^ ?=Aob?%@ ,.CpB[,> "=0<O*^ 1N2-A,@4_2- -P._"= -"_Q.O-CoA<. _.4P!a?%A+!_%= ".@.O-#<-" 2/ .0/0"  /! "A0 .1 .!#/O / / .01t/  ///"O  ./0. / >"  !/"/!./!/./ 0.>!/!/31#BSC4!#3B$#43$1322ݾBC3C$!3C#C4  ##A#233C24#03C3B4!##3#332323#1B4#C$ 2CB3  231#22B4"B$ "13C#34"2B233313213C"C#0 #3"3# 231##"34!B#02#23!"#2223$!3#!33#3#!"#2"23"#13""23"B#!#323#"1#""23"3"!#3"3# 2"22#"#"!23"2#!""2"2##1""23"#"!##"2#"""""#"""!"3!3#"2""##!""""#2"03"#"1!1"#!#0!32" """""""!"""#!2" !2"""1"!!#!"" "#"" ""!"""!/R#dDCC432!ͽ$TDCC3B"#EDD433324U4D4333!ݎ1=6^NO1"^O/ .3,&OPQVwMOPQC;`!R0C= q!B!" s&!C$0""S%2C GL@/ n@@ p@? =PA / N@P  -pQ .Qa _A0,vy"<^//2/$L0 ! -/0! .  /  0A. /!  // $ .!/0/ "O 1 ! "01/.! } /!> ! # .   .0 .! .  1-= !?0 !?/.?!..?!!/O/" .~!/0//"/  0 ./ /!/! 2B#2A#32##@3$"23 2C22#3$"2342$"1C4"33!BCsG3$ݾ#R"3$$24224$24#@34#B4 2C#B3 ݾ#B$2B##2332'-23223023"23 "322#2#"12#1## 2322 22#"2"31#2"5#3"2#!33"3#2B#2###B#21#$"3#0331B#!#3"32"B"23 "#2##1"#13# "#!23"2"#""1""1"#!"# "2!2" 1"""!#!2" "2"""/22"""#2"1"#1#"0"32" _r"2"2""2""""1#"!"#!"# "#2" "1"""1!1"!" Yt1#dDCC3325ECCC33"5ECC3C2!#TT44332 #TT44#21>@+P=@#=2.2^ =1>%p1.@;0,o = A=?,> !=2=0,O`4n!,@-O4<-AN@,>> R^1+.<3^1. o2_ - ,Q$_ ,1=A-$N ,2>1^O> oC^A>03^ /-'7=0<P,_/!<"LO#L -1N$1.?.!@!!?/ !/2/ #/!!/2/"/!?. /  /!// 1!  !/ ".  O 0! .   .!!  6 /"./2  1.  /#.?!???62C3$/#32#2B##A$#2ݾ"4"4#1#B#BC #3B$3C34#43AE/1   /.2/!/ +(#3#22#$"#2"23"2#!"3!22 #"A"22#2##12$3#1"B"s3 ##2#B223233"24"B$##B#3324"3#133"B# ##B"23232#"123"2"!"3"#"#"""""#!#"!"#"# ""2"n""1#"""#!2#!"#22 222"3!3"1"3"2# "3"22#5#"12#"#" #2""2"1#1"#!#!"2"""""!"!"!!"#""""""!"""""!""!"#"2"1""""#!""!"#2""2""""1!!#" ""!"\A#^@3$ .`24,O@49,.@B,-PB6=OB4.OA3 _AR$@C6 =O1 =PU4& M0B6>P25 =_ 4._QC% +- !?QB4 ,O15 >oQC <= ! .@QR$1L/!C%./@B!+-12$ .?q3$ /04'/0QA" AB7._A! @1E.?q1$  CQ <023=P@# /!1> /."  //43D24B32ܾ$232"2"!"3"3341$3D"433232B22""3!32C"33R"4331$"4!"21"2"##C!33C24231323"2!8@""2"3#3!ݾ3$324## #23"!""2"233 3#C3233"2"!"!!#23#2 23B"32#3"2!#!"#"2#22$2"3"2`a2"2"!""#!"2#2##32#""2"!""#!"2#"'6#"31"3"""22! !2!"2"1"2#2#!""1"""2"!""3!#""!""!"""2#""!""2"""!!"!!!"!""!""" ""#!"1" !"!!!"!""#" "!2!"1"" !!"#""""!""!"!!"!"""!2"!"!!"!!""!"""!""!"!"!"!J4tCDC43433"#TDDCCC3432!5E4D443433!DTDCCC3433"4ECSCCC42P.! O@?Nl7_*! A P>=M;,! ?ONM< ?N^M<;0 PO<,,#=P?M-<#<20 N^_M  =y@>,  11OMӯ,-5<2/-N_$>4>@_, 00>,>s B. -`4P3,}B,+/ O_^M  _@> /- !0  />"?,-" # /2Q M ?A 0N0 >? 0.?//-.0 #.-=.">2/#@@ 1 >?/ > !/!/.-?/#,/2 3g "@0?? // ./". .Vk !"0!/? /   /!"! ?/>?.  /! /"{31#43432 ##23$ 3424# ݾ342C3 3$"233C#323C#C22B##242$#1ݾ3Q#31"#A#3 $#2B# 3$233 23"3#3B#3#2C#32#2##132321#$1331"#2## 3#22# 3$"332$2223#2"^q2B##2"2"2122#20$"#3 "3!2#23"2#2$!3#2#22g22"2"2321"2""0"#1#"0"#2## "#!#" ##!2""322!3E'2!22"!"2"2""1""0"1""!"#1#" "#2""#!1#"2"""s42!$TSCC3"EECC3C"%DD4333 6DD343"#TT4433"EDCC332#UDC4b =L_@,!_.Ao O;"^<0M ?.@^=,0>,?<><1;<+1=# =ԿM%.P,A?#=ӯbK8>5.`-QO"=р /P+p> O#. -%/Q B?C2# OMAN >-1_.?.@  @/ .A/?A @"0  3@Bc>!0$  /B 02!!# 2-! > . &O.>?/ N?////0-/1!"?..!0.S/1@?"A/? 1/ 1>//"  / !?# -T  ./.!//// ?N!// > -?0. !.1/1/@ !!//1>1?##A33 #233#A3$3B$# $2$# C3$#0CB330BR"313R#13C3BAC4#C2ݽ3C$3Aݾ#C#C22C"C3޾#323B"4"33"$"23LP##133"31233"3##$!3#$"22#$"3" 3A3# $2$ 33$"!U33$# #B#313B#222B#3123#3123"31"3"22"$22"3"#"#!22"#""2"#""""#""##"#""212#3"#"#12#n#12#22#" #2# #1#"!"2"2!"2"!"2"0"2"!"#"!%ECC332$TSC332$TSC3B"$TD4332#dDC332#dDC3C"#dDC3C"#dDC421$OOO N<>!A0.,_#;  !@O+rA> -#@C B `Q#>!Q%02"R0pi~"=Q>-^_$=#o@>  Q0^:+<4@ N;=^4=C N_#, /@O< 2M,9;!@ _N<"\!1/<^N5-! 1P/@P/ /0?> .. .1> H!?#-/!0,< !/2-1 01N! /?>  ! Tr0/>"/,-0 !-  01! !1> !.??/7/  1># ?!!!.2 0!0/?? ,R//"/?/2 /" 1/100  .!PS#BBCD"B3CC$#A3B331#42321#3A3#0#4!424!4# 23#o// / /?. /". . 0     ,GB523BC#23BB#223B"1#A#20$"#"0"31##!##123@r2#"3# "3"3323##323#332B#B2#B#31#$14#!3$"33 O_3$"3# 332222B##"2B2"23"122"!#1"# #!2#~#!2#"#!3""2"2#"322"3#122##"#2#"1#122!#1Z###"2"##""""32""2"""1""!"2"!!"" "!"#"!"" "!#"""""!2"!211"2"""0"1""!Fm/쮾$0b$>A.a5.R".q4=0/AU!$10# //Q3=a4/P!"F0r# ,0-_a#`$.?" ?2'@C&>a# <0>RD%>P2$;@R%1b%>1U@a"o?"= c ?>B'@B& N!.1.R5?Q /@C'@R%_".!&0R3;@3q4& P30C,@R#,00 NC%>R#=@.1& P4 15 3@B$>1 !! $4$2!21 #"434434!2"3 1#2#BCC#C2# "!#""3#C!(r#33R#1" ""#3#42C"3"3!"233C#4231""""2"3133C2#1"1!##"$#4!$"3!""""#C"3B$!"1#!#!2!32C"3#132232$"31""!"232#223"1#""!" #"46"B""21#2###2""!""!21#2#22"1"!"!""322"B1""1"2"13""#""#"2"#""!#22"2 "" """#2""!!"2" ""2"!!!"22""!&O""!"!""##"!"!"!#!"#"!"!!"!ad"!"!!""#"""!!"""#"!!!""!\W"!!"!"!!!""!!!!""!(!!"!"!!"!!!!!!"v343B3&$?_ _#q2M!,Q/E@#N "> ?`3`10/DQB- />d@3NLU<_ !5>  >1=%O > 3`3@=>RO1 O/4P!,-a>&P ,MB>& A'!3A$.Q5!4$13R#B$5@! /? 1  ".  /#/!   ? !"/!/"- /!1/?" !g !. .! ./"!!/!///1!? 34"C$0#B#B3ݽ4$B$B3 342C422CB$$43$2Bݽ35143B&24"330#B#334$3%"334"4#A2B"3# $#Q$"3ݽ3$33BAL)2$!33 #3B"B#34233B2323#12B2##3B$23#$"4#2"3"2 #3#2233B$"A"3"221"B2##33#2B2313#1"32# Ux##B3###A$"2"32#!22"2#3#2$"2"3"#"1"32" :9##2#222#2##1"#!#" #2"22#2#"2"#!2# 13"#"#2sG2""#""2""#2" #"2"""#1#""!#!#"21"""2""1"#!#1"#1" "2""""1""1#"" 2"""#"11""!""!!21"1""""!"1""" 1"""1!""#EDD4333!DGr>N.!-4`#O->7QP-`0@=%p$0?=7PA .p&1H.O 2+#M=>?A,3;M_13=<]OA,$LLN@2M#,,P R;"]==OA-4:,? Q/2|2_Q-B).`/A.# Oa/2=_/b/4+ ߮B!B02r%!2#04C3R3 Z0" 0/O!  .0/O#/ 2 /0 /!.!/  2-. 0 -1?///"/" @  U~?1. !/#/?2//0-!>>." /-!2//0z94A2424$!2CC3 ##B#B 34132A3523 B4#3#$3B3AB0 ?//>"10 /.!/#3B$3B#$2341232330 23#242B32##A##1#313"023"3# 33##"#3A$"14$"3#034"32 3C#32ݾ#3B$#234"4#1B4I'2302C"B3#3#32##A3#22$!3#0233#"3#"""2#"1Z["#!2# "3!2" 22""#1#""2$!#"!#3!2##2##""#A#12O##2##!"3"3"!"3"22 "32""#"#"1"#1#"0"#"2"#"""1!1"!# "#2"2""1""!"#!# "#"""&1""""""""1 "#!2 "#"""2!1"1!!!"!"" #dDCC3324d54LE>0>-5P4=BN'1?%->Cp2n0-P4oC]@,O#^C_1<G+V_"O !M0+@o "<1-P.%> .">1N_>"o3L/ ?-F@2-Q_1,-.BOB@OCO `/3_<a/$_!NQ>> "P2`/  qC? 5R$2Cm!// ? 0#/-/2/ !!.! A/O +0/> /". A.  >./!//.!c/ !0  ?"!A/!?  /. 2!0!1  /1/.#3B#2#3$"#223$3#0"3"B3 2#A$#324"33A#4"4$!!.   !? ?"/ .?//! /23313#!2B"2##"A"2#"3""21"3!2#!"3232"232#2##12$3$ "23#23"32$"224"3#0#3#233#2$"27L232##!2B"2" ##1#"2##"#!113"" "2""#"!1"#3 #!"#"#"1"12""1"#1"#!2# "2"2""#1#""2#!2#!"2"#"#1"2""#!2"!2#"""1"""2!"!!!#2 ""!""!!"""!" "" ""!""!"!1!"!"" 5ED43C32!EDSCC332̾D?aBD?R4& /.  ?Pb".ObS - "& AA31s51BPB%-O1$&/P2$@N1C7OP2 >PAD /PB5 /!47?@A2 -1RD>O1"-O"C&/0QB  %BD O!2 0"Q$ ,>!B#?@2C  .? -02C<>1" ->13#=. "" ."0/!//00/#2"33C! 4$C"CB3 4"B"1!"#233B!B4B#C23 3#3!#" 9J!"#23#BB3RC#33#3#!" "#1##33B42#C#22#2#!""#1"3$"342#3222#2"!#!3!#231"41$#"2rs"#22""3!"23"#232#3"1#"#""""2!#"3!&2#31#3!"121""!"2"2#!#"3"#2"!""#!"!!""!#" 2"3"#""!#!"!"""""2""3#!#""!"!"2""""2!2""!2"!!"1"""""22""""" !!"!!"""""22"""!!! "!""!"""!"""!"!"!!""!"!!!"""!"!!"!\<"!!"!!"!"!"!!!!!!!":#EDDCC43333!ܽ"6+tOM$ 1O?O`?3 /P@> =_NL"-bA. t@L2P>MM<"; ?_oM+@PO;2AO]->%<#o`? 0@_<  2#2OpM*->bA=  // / >m/!/1/"A0/@ 1/  0> //! //!>>>Od . - !.2 ?1/!O/ >./ -/ ?"1"  @/?? ! // /n324B$3B޽#B#3@$334#!3CB4302$"34C4"B33C3C3"C32 3B32A43$32޾#2#303333#03424#!231B# 2C"A33C#33"B"A22B#22#B$#1"#2#20#3223 24"4# 2$!2333"A2\u2CB2"321#2#2132$"1"#1##!"3"22 #$"3###!3"}g232"#3"22"B2"#"##!#2##!#""###""2 2#13" "#>#2"2#""22"2"""""121#!#2"# "!#" "#!2""#!22"#"""""""22""!2"!"1""!#""" "1"!""pR$TDCC33!4cT3C33!EDD4333!o=q- NO1_@NP_AN/n, ^_,0<DG+ < O+!= OM"= ?<2_0;?>QM .M"O,>OOA< M2P, O?Q+7e.A?4 <_%?a, A@# =ю_4@aQP" ,Ϯ Q$2B 3b%$1! CD%4B2b#CRm//.. >??0.0//--!?0N.O.@/A " ".  @ .!1> !#?2 ?! !0 !!+ . .?-!. ../. /. /  0O@!- ! /1 O/1/A.@ .!A/!!/ ?1 "D ?. /# /"-/ /.//- !- ?-/. 0@>! /10/"!" /-/"    ..03Q#3!BB331BC#B1ݾ3C#4"BC#B23C#3B34"B324"B3޾<923#33"3"33"$!32"#13#"#"23#122$!2#3"2##2##@32##32## 32$"02B#2033##0#3"123##123"3"22"2"3"21"2"21"2"2""#"2""#"2""$"##!2"$"##!2#""12" "#""1"##""" "1#" "1#" "1""!""""!5SSC33"%ECC3325TD343"5TD3C35;^<#,1 1>?_N.#MM-#+ ._N* @@O,,,B/1><ҿ-ND<2_oNF.a P@>, ,20=ӿ,.=DB /<O4>@P! A?޾S%!R//SS4BB"K> # /13 A/!?  ?O . "?/ ."" >1#0!/0/? /!/    = "./11/"@ 00O>>// :?.-.-  ,1 /1- !/>-!> ' ?.!.-!/# /""   ! / ? /"7/>/// !. !  0/  -!yR/ / "/1/!@!>  /233"22#321#2#"A"A##1#2##!"$"#3 "3133 2323$232B324B22B$#2#B#3133#21#323# #$"3" #3"2#P23"2#"3"""32"222!"2"1"2# #""#!#12# }"3!3###"2#23"#"22"22#2#"1#22!#1#" "#""" #!2""#"""2"""""""1111!01"" "!""!!""lH$3S%!1244C5"! 244C43!#5#R$!!@pp/R _R#+2 >2ENA$-Q A.35 #A3.a4,@$_CN2D>1%-P#@C0#OCOB@R =! >27 =1%-P3,JR4 OA4,?"aC-P2 O"O1%@r$-!.B5?Q4=@4+/0`CO3N4 0# B#>!1&.P3-Q"?2o0- -Q.#o! `.%O "- .A>?. #pC^/ .&@$> />'A>3^+?B?%Q,>sP$1 2T3D/ݭ3$B#CB S42C41%3S2R4 #4R4B!ݮ4/1?/?/#/ @. //! .?/0/ / / ?1/0/!   . 0 /mBDB41#433BCB42322 CD#C31$4#R3!޽3#B#2BBC2C#1CC3C5#$3#3333A4"1BD"C4 #3C#C4#$1$"23D!C#13DB4! ##3#233$"321ݾBC#C4 ##B#343$"##13C#330##C#3C#"A#2224"3#!3C"B30#33#232#"134"B3!#3#3$IJ##1#"233"3"13323$"#2#"22#13"1#3#3#!#2"3# 2#1xM"123"2#!"B"3# #""2""3!2"123"22!"3"2"#"""23!3# "322 ""1""2"2"#!"322 """""2"""""!ns"#"#"!2""#!#!"!"#!2" "32""1!"""!#!"!2" """""!"!"2!#!2"#1""""!"!!2"" s33!$TDCC333 #TT4C342!4U544333!#dDC4333!_@B;#=<>a-4oP0 ,"<_0n! !"-MM>@1,#MN? +"<=>? !+"^N=/2<$MN> #N5>=.!,$__.!;-S^N>#N$_=-!$^$_< !.4_>= "N5_>4oONN4P>, _$`/E@%@ASBS.ܾ#R3BC5!4$@޼CC2C$ ݽCR"B$ ݮ$CC$32D4B$#>O  !.! #. 0"  ="0   ! /"P  /0!/    0//@/!   .-1/". !//  ./!//"  !-/  .?,ͽCR#CC#4C$3R$$35#23C2CC1ݽ2C#BC ݾ2C#3B##A$#A3$!B!24B$3B32$#A$"1B4"B$C4"33ݾC4#23 #434#2{E42C$!3C2C3!ݽ3C#C3 43$2B$24#A24"4$ 33#33 "B#23#2#3"2$!3#!23!3#2322"2A#"123"2# #3"2#2B"22"B#"2#$"3#03323# 2B"B#33#22"32#212$"#21"3"k3"3##2"2"#""#!1#!2#"212"2!1"#""" s"3"" "312"2""1"#1#"!2#"2" 2#"2""2"2"2"1"#"#"!!3"#"#"#"1""!"!""!""!""!2"""""!t3!#UDCC3C"!#dDCC3325TD4342"5ST3C33!#TTCC34"H<0<@-%O #;QNA-/.&?_]>6O"="oAN?>cP1,,O CP!b14@  O7R04.3AE"20!c$R$!2ߝ|U3O1+> _C_ 1/`.$_ = =A-? !NA<O-"N2_ ,/`3o"!(G^^" #$ /PAC>0B$>`BD<. " ?PRB-/2 /_/}B ,0A#.OR3 -1$/@a" Q55>`1# >1"'.@q! !7%/0Q!/z /QT5/@P -25402$A S#S"52$!3331"1"""#343C1C42D2$ 4"31"1"#B4$30C44"D"$#23"""""$""4#C  !.. !."/!^@3""B3B#343#3222#2"!"!3"#3$"#33B#3#"22"!#"3"3$"#332#B"""#22!#"#!#231#24"#2#!\81#1"!""2"#"3!3"4!23!"#!"""2!223 #"4#"#!#!"!""2!#"2!2"3"#" ""!"!1""1!2"2 #"2"#!"!"!#!""!"22"2"#2!2!" !!2 !"!""2"'#2#2!"!#!"!#!"""1"2""""!"LW"!""!"""!!"!! "!1"!!#!""!!!!!!"!""!#"!!!""!!"!!"!!4TDD43C3C32#EDDCCC3C32!#TDDCCC3432!4TDCCCC3333!(tON$+ 1OO_`@" .PP>$<OM<2.bA. ?EAR 1 <_3.A0`A$? B"R$"1}4!@OL--B,1 /-no>$NON;  AO=:=bA .;o$>R >O^  q.=M*1_^ A?A- !2 !A /1 ?/ >  1?./ ".,?- ?#""1 !0>1u/N !.   /./0 /2 " ?0/?1/3 0// !/!0./ 1 -0@?@? ?..!. ./0.->!" ! [4!C# C5"3CBC3CC2CB23C3BA3R#C2޾3A3304$34#0ܾ3$3Y4!#31B3BC2B434#C32B"B#43$223B4#A#A#2134233!?K#4234 #$!3# 3C"B224#3332#223B#31#B331"3"##0;e#3232!#$"33 2#"2233#222432"3"23A$"1#2$#!"#1## ##2## ##223"2""223"22"3"22"2"1#2#"0Y#2##!"1# ##"2#"$22 "#1222"2""3"2"1""1"2|P"!#1## """" "#!2"2##""#"""2"""2""1"""!#2##1#A3#!"#12#!#3"#2 2#222"32#"3"2"߃_n+ +!<# @.4_ 0<P=B, /OCo .,`?A:.`3@ "a$0@ AB&0#q4#11F! ^3O<p>0< _#o-P=@*/_#N :@= />B= ,/Pҽ 0?#Im><2N">ÿ< 0/?-1!@/0/. 1 !1?2/ ///A02/02/ ?202!# 1. 1./ .!/#->>//////.=O !0?!0-/!O[!1/ ?1/ 1.  2?""/!#/ # ?".. //- //?>/  O / OO. 0./"0!/1 /1/ "B8#3B431$24$!3B$$#B$#!#B#3!3B#!3B#213B$"1B$"@3C#31ݾBC$#1ݾBC$2Aݽ3C3B23DB33D"3Bݽ25"2B޾#4#34#32B43233 "3223 "$"23#13# #13##2###2## 32#"0#2#203B"0B3#2133#2133#A133#2233"B""422#"322###2"#"233!3##"#""#"#""1"##!##1##""#"2"" #2"" #1#" 22#"!22"2022"2!"2"21"2"#!23#32"3"3223"23##2##"#"23"#13"#"2#!3$a<,"1`G-B/R>+Np#P3 P@O*Q?>;-2.aA/=^o"NRPOMN_3>A /._0$OS^< 00?K--BA/-^_>4OO^  A0.>S/A-Mp#>B _O1n-> a0-0r a BC2R43$42ܾ#R$$1$3D42 36"3E /452D31 N0/ >!?/!!/!!/=! -?" 2 2 !1?N?/ ..> .//?".//  /1 2? 21    /!//1--.1?"-/"!=D2C$ܾD$"B3BC2B3 3C#23 3CB33B#3A޾2Q#3A3B4$1ݾ#42F 0/ //   ?/-/!   :Mݾ4$233 34"B23323#33"3#33232B322B#2#B#31{$14$!#$1C$!3$2C$34#B43C#BB3C#B23B$21#3B$"1OV#4"3#!#4"## 33"2#2$2#"3""2232""2"22"2##"Y#2"21#13#1 ##133 #$!B# 23#23#3"322B#21#2#21#2~N"1#12# "212#"#!2""#!2"2#"""#"1"212"2"!#""1"1#"!"1## "#"#" 2#""2"32#"32""2""1Kj//  (M^k?2%oA" >1 ?q# -B"^3Q."& ?a% -?.a5@3@Q !$ OCEM@@C.A4]EL@S/1 @R%O1 .25 =a$.a4-0"?b%OC >B /1 ?BE>A1#.Q3-P3%8>! Ob5OA  O27.a%-P 0#&/AB%=! -A>b$0Q.qD.PC,O!aT,P3 _B >A@15 =Q3 03aB>04, $O3 @A ?0-#. "  %#$5"$3C22"22#2 43D233"2!"3"#4$3$33A""!"#"433C3C2"2"#"$343#C"" #""3#B!#33B!#1""##C#3"3"2!!"23C"4## #"!2"3!B$3"#"" !#2"32H!3"2!"!!"##32$"3!"!#!2"#3#3"#21"2"23!BX223!2!"213##1#"1"!" #"B"#2""!"!""#"R2"312!"2"2#"""!!!"""#1#""2!"""!BQ#"#"##"#"1"2"""#"2""""!!""2"!"!!"22!"2!! "#!!2""!!" !!""!""!""""""!!!"2"!!"!"!""!"!"!"!"""!"!"!"!!!!!"!!!!!!!"!!!! ! !"!!"!2Ma-0,O,%P4O0 AAE1/#M."o1M@5`B=. .EQ!C0  Q #Q! "_2M0_,5O#-AO%@,.-B_QN=C_ )7- _B_ 0 a3` "a?6?  ?2O. q!R0#$B62C"232C52% "/"P/?.1" !?2/.0!//02| .0  0>?@/0!/>"/ ! / //!!>@.? /0!I34343Cݾ331413R#34$3R$2Cݽ24"4#A34"B$ $3R#BCݽ33B$2Q24"3#!2R#33ݽ3$B#C3232$"12C"33 $$3$33 2$2#2243# #3C#B3#$2$#B#$##13B#23$#B333##23"2#3"22 #3$232#A$#22#"#"!2B#22 ##B#23"#1##1LY23"2# #2B#23##2#"22#!2"!32#2#"#A#22"#1#!23dC2#"2B22"#"#"1"#!2" "32#"#1"2212!#0"2"2" ""2"22""""""#"" "#2"#""1""2"#2!"22"~""2"""!" ""!2 "#"""!""!1## "2"""1""!#"" "#2 "1!2"1!1""""21"!"!"!#c332@q7@@ ! -_0A /q!/"_R/2<-_A/B -a B/" >a B-k2M^N0 !M_O ".^>? "+N_N/"=%N^0,^N>/ "<$nN/#_$N=) 2N$_; 1-U>$_-2ODO<,505O@U14>BC$346$343R޽E$A34.0? / 0/3 ?1 !??     "?/1 .  !!/ 2-?1.? =/ @ !>?/ /"..?1??  / 2C2Cݾ#$2$#A3413$!34"333C22343$#2442331C5"3P /0/1= ! .O! / /"- .^13A4$1#4"34 2B#33#B"A##2#21242#!#32#33##"\{332$"034"3# 3CB#3B$2233B$#134"B3034"34#B#B2"33#32##2$#123"3#!"3"23"A#"2#1##!2#"#" 2#}#"2"12##"#"!##"2" #2"2#23"2"##2#2"23"3"0_D23"2# "3"22""A##""#12212#!2# "2!22"2"""""!"#!"" 2"!"#""""""1!1""!2"21#"2"""1""!"#!"" "#2""#2""1!1""1!""!"" """""1Z8tD4333"#F5CC3C%$?`-_ONBNaP6@#N ">2N0. P2>O. Da C= t{NB-OO-$o 1-?+@-$o ! $#M @<&@-5=@N@9.>BNQ+> NB^2. _.3`!.P=&P +,BO'0 >3Q$ ޞR&351+h #0.P.  @ " " ?#?  2-00 /?,/!."/  /?5  0 ?/@? ? 0/""..*Iͽ4CB4#2ݮR4"4#0$3C#B#C$2$"2޾34"3"12C3# ##333 cv2#A$"B"4"331#B#3C!#3B$3B34243A2D"C$0 #4B$33 3AC3A;C4#C3!$#RB23423223C"3#0#33"3#3#2#2"#$!#"1232# "2222#1#222#13#1"3"3$"#3#3"32331 "C"B$##B#32 23A3#233"B#!2B"3##$"#2"#3!2# `#2"2"#"2"""#!#!132" """"#""2"""#!#"1"#!2#"#"3"3"#"1"32# #2"2#2#1#"1"3!2"!"2""" Sq"#1""""#!"" "2"""1"!""!"!!2"" """xx"!"!1"!"!"""" """""1""!!2!"" ""1"!#!gA#"!"!2#!!"""#"!"""("A% N@3 _Q1#/_3 =N!!.. 33%%@"&BQ! >=1R4O/A o#b.a" .#6  %sC% 021# =% >P@&  2% C ""&=0PSU!/0#;A! .Rd ? 5q/+T1$ز0Q1l 2@5M t3 1/ ?";_!qq/@="5"NA/ !B =@],3R#c";oC26/1t#/N 0/0_.1B73 ""O?$!"7/P"B  ii ,0,qPQ"!?A?/a 2..r,0ta% #.]o,.-BN"$ 1 ?A NB1b.Ft1!D vCQ?@r"!.#Su42."0&%  P`,1a"0Po #4 )#qR4/6 "/0ΏO=?E.!@$ A>!!@~#$g.@4#!q0$^@M/PV 2s2 -B"E? ! 5qo" O@] !S%1! $-2D#R M0`!^p3$ a # -%V-A>/?. 2:">`# S/E 4R޿-,51DS1.,*4BOA1/$!"!2'./q%n!  #s OA'Q! "N3C 2"O PF E2.4  5= A /SP!@Q N/EA#U.1$ Oa2sBP >s6 1'O!=4;`-s߽4Q!/ # #1%.G-@130S ۱Q R.#R4!_-P0?O2=qa?q1+a"'Q_ 4P O`QAM 0 A.%.% 0"G=D0#=1B `>A3N!޾64AQt C/T643 T35$.3;:2 0@o=MM, 0ON>],",2`N< OqhG=+_.".@;#!/_`o- 0OK-"! A.M:M /?@OA@`?"0/@ .T/BB -`$b./@#_- 0,  D#w0 "=CA#0P -!.BO# .CF N !G3  !3.+?.5//#C-B@.p"!>="/"B!2!01B ,OM 0B3  #/ #N@0& "2.> ! b!-3"  B/ 1_!,#>"0/ !34L1/!O >@@" ? !#=   ./.0  01 @/!!-1./!0 .?! @>  /O ? . . .!.!! ! /"/?! "> / .."LY$2C3BB3B"32ݽ3CD3B"!"3 !"#2C31 ##"3"ݾ2$22!""4$2233423!2D#""#B"1CR#3B 1#" #$"332/##"1" #C!"#B42##C3BCA##1"B#1$3B#D!#!"# 22135####22"""3#"3"#22322321#2"1##B33"1"" !2B#!#""n"#"!"3"11"3#"2"2#!"#"""!32#21!"""#12#!""""#"!##1""2""2#""0"1""!"21#3!"!pn"3"34"#"2"2"""22"A$O^;N0+?-Q]P.!=- Խ->Bn^!o^>.O'.2: 1Ӱ=1^> T. >=??N# M.Co.>.CA2. P/!L@1^s ^ 2%&3.A"*sO0 C'Q D m5A0O5F>0dAS23$T޼2r3c1rz4 5A"B>2A .G +O^ 27 e# 0s# 01.D!q" / 5 "2 qAb oܿ/5 13.."27n0Qr?b2 !R357.;RD. >2^3!03 '/?Q 4@43#F3BSNc_3.40!$+>P0%3`DC'>p' 3 /=MsP N30#@b P !C79PR `"C04 AE=-0S)[*#42b24C 3ݎ".wOBE>e!$b$QR a?`2d3B>w//-#r1"15B$%Q/B!@=0E0!0bV"P0-0=#* ? Q4c D!#-B. 2/TCB2##@Π#1,A1 /R 4>!; TQ$ C $< P10$4.-S2 !#SO ""Bb1aQ C433-//2 >5C4# $!!!%/5A!$%- 33?A!Z!15N"-4DBNd A RC̱"@QC."#>!SE !uS B #DB4!# !D!%TB3D2:]ML! ON=?&-:" 1ON<;;! P_~)-<=S.1 @N]<( _`N= + qO;-#+2,^_%.=?q> ,1p+ Yc..C!O :@d 2Lo A/@S& 1/4R P6BA#t3B5"!!V22!B"PA B"0 /!14.b / 0" .-?@"04/ .?a! A!@-#>1"4@/2N#0A! !/1  @R'.1?".11."!#!"! 1/>%N%/-0" /"0 2R /?".?! /!0!!,?/3 --!!/!!?0  0      >// /"-0//A@! /?///! /.-/! . @//  0 / !.  / y_1#B3"!4$13#1# !#ݾ#4"#/4"#331"""333"2332#CB}s"1"2233#313#3431"#"3!#4"332C#B4"22"2B##"'A33#32"""1#1$ #"23# !"!#!#12#"##32!"22o"32""B$#!!220"#23"333" #!2#"4!224"2""#""#2!!#3"!!!""#""##!2!!""#"2#Z:12"""""2""2""01"?Pכ"?$OB& >A% .B4 a1>R,. C-U@r1^/.RAS/?# / $?0$ 1 ?1S?3E O25d ..#T#PA#O!O!3 .6>!"/@-41$>PDUNCB^D3SL>>b/#..2E_?b#/;q rRC 2.Q3%$C 2@P -o@$3# T#N͐bB"#P1#02^pp4>1,3sC@C vr24 ST' 5/%.b#4 21"a5MG &+"?P $?Ap2 R"n/2SOA!CAOQ0AEd,#c AE ߿4r{ON@ @40A %s50?R "#1/qP.!A!B#CPT2bNqO/gBs#T?D3=$">A'ݰG!R!=_ S "S?0TP2,.,rG!s2DaO"r ?$ "#R a#QAr$  vD-A" R P#1{3=A0 7AB 4 C P# .3 1# PB/t Sޭ;?4/& / 7BC17//!Q|?T!` c2@7O!Q7-R  ACA0 P#LA##> q'a _10B (3= !r"ar7B/#.T"?QrP= 55 0Tt3"-"` $$, s!0AQAA5..a #cBP/.@$"0!TP55 R"/2_Q!!%!Q A.CA 1AU-"!#_/Et/$ 7&3$4 $/ !#0!`7 T- T!-<56RP4B!0-!"@D/. #@ '.%ܽ2!"U0"# u52.sBc-"s3^N "< O0N@-. !M2$<!;3NALo , -1-/*_Mr?/*? N2,A O,> A@."`1,-04];*b/C$-2L"@5 0$A1+R'3431 #R@ "T#Ar!$3Q&23! ܽ$1CDS"/  B 1  O? #"0?3?11! !/""!   12?!"B11>.#@0"/11? .? //-0!!"1!1"! !3  /" ..//" !"#...-"   /. > " 2/ //  / 0 0,0/! ?  /B3C"BD"2D 4$A#33!!"!3#124!"32"3$24""31CD2#3A"3$ "#1!3"24!34"330#4B23 "!#133"""1"332#""2"244###1"223 "#2#""23!#3"##0>3322#!"""!34""!!3"23""""2#$2#11""" "2!"""1#1!2"""0#3#"#!!"!!"3!""!"2"2" !1!"";U#2""!!"2 "2!""""!#!"2!"!!"#""# !fd5DSC33"!EE4CC433!EDCC3325DDCC332TDDCC333 !+o0 1>>@B.T.``}m?@<='>?!.1"L-M?1,#;OPA"b/`R ,*?a  >r"/+9a3`~p/rDL B!/2.O@PPM+W !!_QBo; "5"w!@ ;.,!-0@#1N<`..t$!"3'q?S#?N0R 1^=r#B:oA2$`?/_.$ * T2,aC  D$4Q"/!/OP"7-uA".!5/0o!=> -41C#"Paa"t!D2 .!!#C_#s/"&!"@N r !?! 0 # ` $#"#$.a@޾.Aa. `/P.G-@1aTRCsa sS"r$!sd`"A1B!>sAн'20"QC ,2BOB p s#R2"6vr/5N /?P3`1@qG b "!5/ B sCR &"+"2CS7#  !10߯03C_0 B2"1'!C/r#A޾ A*q CB B>ή3" M O2 ! A /B# ' 4= 5!A !,1f!!32$ >2T BS/0 R/%3,/0143/D"RNSMRB AFA LoOr//T QOM!`,,.11Pa.B@C"1`B, 1p /. 1!&bThR.0BS 4N>5!%o Pr?BA/3NA$NA_/<; ?!"/?_3 /9.O p1/4<1O#/ "2>2@< "-& 5@ .> 0ߎ4..$!s225R"B./%B F33E D133Q2.aqO@, "M 1M1->_#>/ #_ RN1,P;O"=0= +? "= , +@PCn-?ODN 2=/-0-5M,!_B,RN b>A. P/C_ 3,1+a#_ <2L&1o+>'B?/ - Q!>-5`3;B??O./"?Q`QO CR%B/ޫ"C4B! /G2$%0#E1E!"#$CAͭ J"#@$11!@@/1 /!!b  QB@/-. a A0C#->.?? O!?1@ 0#> ""  ?O# .E  !.!. 3.?! 2 / " ><0fJ1=" ////0/ !! ? #3"$!#2"#R52/3C34$33#3BB5 $$BR""B"#B"3135//!/0 0/!/  0/LU 3B2#"!1!"!"!"1#3"B$! 2#2##3#5"#C2B#32!#- !/   /  /./!"#A##""3# "2!3"11"!""""!"43# "2"!23!#"!2""#"!""2#"2"3"###"#12"!"2"""""!!"!""!"2!2" "1"#"1"!!""!!!"""""""""D433" #4CD3C3" "4$B5!1 #CCR4!2$BS$3$!#D4C423<M3GoA,@Y.`Q# 133 q2!/@@C-=  P "Q&0r >S"1 !^%Aa% Mk'..5"d4`44<#O ./C2C#^>$./#0-p@%4#>2 7'O#B#!r_/k`E >>/";%?@ $ B6 A2/V+!+#? ^q r $ Dq $"4 BtA-r=@A$!r?rA,N2#c-<?!/#@".PA$p%/Fb%// 2p,@2Q# CA" ? N7 $!C+C1/"3`/]`!R.6r.G !/.po.-#RSAD2$ 2T 6(4 0N >..1 SQ R<-"1 T .2B072"2EJ/2-?@"B3>"1 !vD >3?-] >#-p B1E-ސ r03۰20+4 /-/"o "# 2Aw0>ut  r3Q??L`b A#/a$ >D".r,.>Q/LN C-!0C$ R"7"%!Cq7, #O'N n0.4$A %# .s#@Q>5 " @ /! "a7"$!3, ^Q$/!` A S/4B'5D# ?/Q1A ,R1A%@! 4 d0'?< ?S R,aB@BEB5 2!!.30`N)2!a_B#16!C31θ" %/3A5U2"#16  &0CD E3!%?$0- "ArVR"r<+0PJ<,-2.@ _N>-;, @O;<$+! 0NLLM31 N^M$:!0?^<MP0>_6 pPM;-C?2? "?! /=1_ __..@"2OM>/" 1R#.  !!"?01/ .1>=11@3!.C!1!1P1$N # #/./#" 5+??3 !4@+P@.O-A/%/ # ".= " ?. "2B! "?!  /0A- 0.A /1?0 <0?/ /  O./$.!# !$ H !. ? ""???A..- 2.@!!-/!# /|dS$3S4 #3#33S$B#!222B#A3235"!3BC4! $#BC2ݽ3$##0$4C4$!!"13""4#34!22"2"3C13C#213C#3B3B##cX"3A##! 4C2441!$2#23"BR22"223"13A#21#B$#13#2##0##13#3$#C3 """"#"##B2"""""2"""23" "#3##!"#22" "#""#24"B3"""!"3"22""1122!1#2"" #A"#03!"" 2""##3"#3#""2"#2!1"!"1""##1!3#!!"!3#!!##""33!"""""22 o^ + L?< -1O3?9!L.<."..1^3 N-9O>>">3> /O.#@<4+$!8.e];.O )>.L_#.o,?9N\/.no/P/O;<DP@ "1,,CO'wB!;$/=!5; !r2M _PQ04AB.Ap0'^ #"K@,-;Q PA`0/Q`?30C.?-1./3#R'2 T/.c1F0/A @.nA!7/^|1 1`C#>ݡST. #-R/ R o0s!p!2OL/A*_1"'> B2 pb8YOSp@0"=04qq!?TB3>4r !1 /1UB!!=TN w./ `1S2?a ,.$@13@@c2_$O>0;@p20rU D!D(MqrC #CG@q@!@$! R 6-#PC07<oRAa c5S!$d">s"0@72!%"GM1Au/Q2!.t /@vB3'1C/"." - 7.D#2!=7#1`1rU1Oq%1 !u1b0"c!""bC #s-00#EOQ2r2B7Q _cAQD6/sAݮS46 21u 4/1 44As" 9x# 3%sUrU$ 07 " RES% 5!#t!'=1!?5# B!=+e QP4/1QмS!R4A03ܽU/ #Oa ?!RC  /a/4>%C" 0C=D "B2"1 "R$NB B#*.5 AP Ao`"" 434S/3B=  $513 Q+B0B0O!$/ 2B61Q{F,<#,! 0?_>3>1 /<^>Ut/ @0>, 2P<Ҿ,=D_C.1/N^; 1PNN @>,NO$=Q/0-M."B-"_N," + ONN-2._,/?_`0= ?4.R1#/C" 1"#Br?5C1/ $".<2./#O/0$=">?20 .!3"->=>?"!1.1/?!>N 1B/1R?2-0B0".O  #@  !/121"?_"#-. 1!A ?@/1 /@O !?A/!/ .13=!/ A!/"!1 ".!"/0" /!" .?/"0@0/ .//0!  ?0"/ . !/ ../>2? 0@!1!?.!#?>//"/## "!33 2!$1$#"$2"#C3!#"22 3C23C!22#B12C%"'3B"2#CA44  3"4"243B#C!!#C33"1""""B"!"11#"1""/"2"!"#! ##!24!""3""$"2#!#A"3#2#A""$""#B3!$!#33!3""#1"2"""""""!"#"2!#!1"!"2 !!2#"!#""""!222!H& N@=2> "?p#Q="4 ?@ #F-$?@.aR2213"@>"2z./O/A3a s3/^  !&!E@  "/u/3D$ .B2$ C $!3r@q #NP//Lt/R ~#.5lN.D  1M0# !=!P"478b 0R?8M!ܿCaa# Qr03 '>@K1/ !11!@N.9$O1#|$-B 2O;NGAA1 ML4[>*#&/#,>4 < !$`23,/1Q=^ v B2C>/N&o V0},) cQ @-%-O-Qo 2O-"Qo !q4C*"p">o""$0 N@ q/r5C1/ =#`10p!036 `-.@/#3C47@**@ 3%#13.,G#0,r_ /;e#35/r"-o$/PPA1 (E 3`=J)3/53.7($ @N %  !Up?B51P.) 1G0  ./!!t#Q.>BP12#s?/ ->3>Qq R"/,o>`2!/t.-/-@*r,/C3,N2MQ?B B"MbO""C 2 a_#$>!D @@@0aN"22!ޮCR/3 @J2/$NP"" S>R41.4@ B/4$S Br!"-10)?,%@.4O!+0.1L@O1M@-. =BM,1-5` N. bs,_!>2L0.#N =!QO#p = >1=P .CO1.?,6?,!NS-%P .#YM/;%.>41'!,O  _ cq3)/!?#p! '!1A$O'0R  !TT!E!35!&! a%10 ,P2RN  A!QC .>"C-!A!/">?B% -   // . B22 11P$!>!= !/!! !? @!B !=!B  !?>a2./ ! #!?P ?" ."? "-//. 2/2/=/? /  .! " /  .0!> 1  #"22#"$B$C3#0##B3B4 ͽ"$$2B2B2412# !2C! "#32CS!"#1R3#D#! ##B2BC4243!131B#!$"#32"3#C"!#!"!4!4$0"3"2#3CA34A2#!"3 3B"323#A$2!2#!"/X{"1#"#!"2"1#B3"3!!#!"" "#R"#2""3#22#!""!3"""#1!""!#3!#323#3#""1""""320"3""""2""!$1!"!"/#2"23"!"!"2#3! "2""2"!#""!"""!"!!!2!2!!!!"#!"# !1!!#"32"#"#023_,<>@ !--NO-2-O  =%M^/0@,=/>=B>#o>13+wq{&.aR-' 1/P+N>Ba1 _R105P>Q  q A ;= b B.A@m-P=04r@<<> #9^qM ',Q;2.2*O./!3B#/0G!aBo)22ae.0Y7) /AOod"'0 2,N`$#4'*1."!S q>0 $*/0Ba0.-/R @p0D!RͱS@/ O'-3 7sAb# C>.!%P3A" U^`"$<_"><OF`S B2a42@p..>1qu !0"7 #ݾ@B`A?s#2$1# /A"_&$?% &#T T a1.] 4BQ#ruQ20SP"4C*#5/1! tQ!#E2A&3F/ t-Q2># %#Q/60>4 5!Q @0ab!;$C! 0" .4" /!P#A!.4 "R-" 4cR." B Q#?$@>@!'"C4%"$!2qQ?t 42 4D/& /OP A!5F4@W,A#7A4@ 0>  "=61."'><?T 1aA2 #-54Aq#_2 '1$>C.Q.A 3R" ,"0-!B#Q0C4_E!3/Q#S4^D/%35A/O#O$/a$ Q3-A !-"">AR@"#q@$! -7^-/-b O/3APA +B/R#?0bB$"!"/"! $?S-ra#"71#2"Q2 3#@32D@"PD 3r@#!DaC$/413!"? """bD#25C4?-$^ #M!=?@,`P =!N =0,= -0>@> !. 1<i{`O4MA+.?.$N! a/$_ ;!)@.N : CL1;a<_,#p 3: @+?+%-ZB@$0-?/",r00oBP+ Oa  +C.b-.!3@6 . %71#  _##/.2! !@$. /"1$!0@ 30R0 !/#!2.} !. 3"/? "  "0 "/ "??n/- !0  A- / / /" 0N///! 6G 1/ ./ /> !   /!/!=/// ! B>1//0!!1ݮC42##A 3S3R#2 #20B!޽4$3#235"333!!# #R##C!23 343# #C32""32""34243B!"B#4232B#'3D!03C""$ #4#342#2#34"31##B3B!"31""!"#1##1""""!!#A221#24!!!32" "#"$"1""1"3"##1"33B" "322"#1#"12#"2"/"#3"2"323"113# ]"#!" #"!#!!"#!""! 2"2"1"""!!!!!""" #""212!"!"0"#!! """"!"1""""32"!!1!"7P!"!2""##!;15 >P3-o!4AP NO1O."bC3 134 `A4 C %D %126%.-. 0""q>^O .@Q2#bQaB .3"##s$-.q./#T /U:"N>2"`!>N_A==>`RA1, A`?T CB`C35^ !*# !$!@A<,;P @.#/A.R1 q2S2#@!=+/? S@3R"33:,1D/BD%A?.p0`#!.>$U$p/"'2R!5!50Qq= ?@R/$ 3:"dO"#Q/0Q52 b; 0b @2N$"v.-2Pq@2 .=" 5'.:f!.61`")>70 5 %qQ !`aA 1c,5/'!!# RF,4.R_'@I/TQC!q+4 A&4.0$2.% Cb.3/R?1w@O'P $A&e1,AF /=a!Q%-R>3/4p!!3sC7 " !!B D1+S3>?'A0P'.>&O# /0s "Bu+#0T" A.rDFpA$ 0bRP#Aa2V3CB#C %0 f/ ?S/T"$? t a0!CcO02#  - s$@e-P/6ABNQA/AS!R!M4B"& @  M10S#^5. #D@&t>R5#Qa6 2-O=&##M.% $ 34+#^',6/A!N@0D-3a= ! ! ;,2/!>%?>_N$?0p #!.2#-1>-?3>1"QD"F3# b.ڽ%B4T$1bΟ2,!A0_K<= 0 `OO*!1?>>M!/|ON:-3>B>/_-^;+/_?^ >=_>&<"@ѽ7  /o_o>4N0@^+@4A2.@ o 1 1% c& 3r-!S72" &03"3?#1"!1-$-3#2 !.3.-" "%=? O@O=.!?0.O^J8? @@RA">//2C@/bQ 01 3"333>## /$D ! / -;OP=-! !@0>0OA> 0A2!!?!$BA2l!!43"% " .# /- ? @. B3.!!>OA@O/O @!0//. !!2A!$4! .  #=O///-<?  >// "/ /?1/ PB !!@1!A$""!A2"1 D2#S1 %14A ;#%B"1R33C3"B"/3C43#DC"S41B12#!!33414!43041#0#%2B3 2#2BBB#B42"C2"C!B"4#32#"33!!322C2"#""3/"$""#"$#3!!##"!#3"42122#2"2"0""3#$1"B" 4!B2"32332#!3"3"#2!22#1#!# #1"# "#""#1!"!""3#B"2"""#""!#2!2"!1"#!#"!"!"! "#!#""$!"# "3""" 23#32!## n65+ O=2 O#!^-/ÿ=. P, N#] >iq6p! !#P",=.2-@"@#=SnL _, ߝ12q!5-@ 1 NB#-'2?//>/ 3.5>& /50!@$ 1 `޿I"A!$r/,4#"D!6B$b0!1!d2j#?# T!@1B@1o,?! "0p"/0p6B!$6@2e"%P/'0!# ?+O>Q0 =_Q "!N!>7 4"sR/b 0/54C &#*0U0S0`!RQ T Qk@4A# B p!D $ p 6/s.0AGB BR01A0r A!S 6",//@53>V^V!T"! $B;2""/`C"!rA"83n!v.Q0=t-$u$ -M*&cRS2 5 C%/%P!?0/ c E 74-#-? pT!!=tA 1 C1/O-a @,`4R.'?$1 ^GA." 3=6A A0#%R.=C`0 7q e#>Cܠ7>#1-a.2/Op1B.2m"  %@2$r1##P 0F@3219&..Ac!/+O0u#0SOA +$!!.1 /r?R"!$R!%21"_3NCs/$*%Q/Ba7A0 D1r!Ma UB>@!b#PAu =6 APQADA`Q0PX3-s0!A#B0A2Aξ3!߯/0q$/P R??"R2P!@Q=%@4;"5"R.?/BqO"/5B?QC2@" RΰR! $ s!A5_6!-1B!"_.>[5"C?C2?!? BS?S03_5"R.5/#B rP #!A2P-?R 3tC352#-+##2CS#R$14LMNL,PP..M"! ??ON;,00_<+-2.2PO<-;/PO=1O-џ .D/3/>ҽ?%?2PQ%/1/0<Ѿ W"/b0MҮ 4>C!N@NN/_NM\#.B 2.08+,"r@.Ҿ#^.BR%#321 !W\1B.#2/=A#1/3124=$Q,Co$$?r03 O"O2A  _@ 2.@"@!/-! NA.O!0  "2b ? 11 ""-  B13!#B/! 3!!"1!0 4#./ 1"1!.//4A" -!!?@# -1/!@/@0!- =/#" .1"!! .>@?0".1/ #/2 @ 0#.!35"D4!!ݮ4A#0E#1$4B""22%"!" 322CA2313422#0 !// 0. = /"0?/@53#%" "#B##5""!$#43""B"##!#2B!22"C2!1#"1#C##B!#1$#0 ݮ3#344 "333!3D"35333B#3343"\"C#"42"A$"0#"!#"2#"/#!"!23""!"!3"!2"f}2""3"!2123"1#2"13124!2"!22/"$"B#!3"1# B"2""1"1 22!1#!0"2!#"!"! "#!! !#"#"}"!#"!""1"!""#"!"!  #1# O2 .B& 7-O -@#2 R_=d@rQ#? A3 27$>O R >?0@BB $0#Dc4^=!O_/;s2#R/ 3AA!1>_3 P Q&3 1B$*/& 1BQ33/BT4 c SQ/4 AAN2#E04q_R #1R#A "0 O,>6 2" O8.0R A%646WN/<# "R1!u @p'   0AW@5.@1.?!!:/ o4< 1<4,"3/B'-OTp;p2Ar>Q//(?#B !== )2a##@=<"t@C!#0s#Ar./SLrP!/`+!R "" 1>,!=q01 >ЯP?"!1.b 4300!!/[?!p>G]%4 "@(A .-s3.r,a/ T-#!&_ 2O/'r!45?D?D/*%,d$ `Q/+=C .4?"12 ?>1RS BA>%M` Lm*#.@#>`?2!,12/=A4; $" /c/ `M0"pc.K/51 JN//#A_#?.@"Q0@T= 0$C /<11 6$ _Oo 1$,-nWCM"@`~2Q-O>~Bp!7A4ONaSC!-O6`\$1A4D> E'I@`& Q<' /@P"!"7p"22OB? ,PAc"!n"$c!".4031AdB#2 R$1ݸ" $_$>"-190*?1.#N<0uT!<!L@?1MP- N C] -@-&0N.?-PO#]0-&.*.-0>RO1./ DNP >.4N1 @6?;1NA-` ?q..->.B -!< +pbA"(  /3P!O,-&=,"?"!),A`Q=/">!?$?./.!B 1 #$ #MR =/S?14<@>./,O.>!= @/>0 3  = 2 ]#/ <.QR /  "`B?- O!# 2 @!> \w>5  /#! 3 /0/!?# !20/#- .@/.?.!10 />/ !?//0 z!!@@. !-! "!/N"!!i3$2#02C"!#3B#c #1D3#C533"24C424312#13#!$2#$2"3#3B"""!! $"#C13"2##D1$#QED"2"#! CB"32"32$2"3"1" 22!2"!!12"1#34"2!!#!vQ !##C32#!"22#22#!# #3!2"#2!"1#"4!!"#! x$#2$2#"!""12#!3!"3"1#"2""!!#01!""Xa"333 ""!"##!##2""#"!"1"""!"! "!"$TE44333!5DSC342!ͽ#TDD3C33!$TDCC3C"#UDD3C332%2<$]<=!.@ t3c"h -@ a_Ma No=>.._7 2$bP2.L B>%'b"+@NvsGP$*? /01N*M /;#=R!. ?N,!/<^@OSN=!,B)= )1Rn?/һ!!!r> +/S<'@ )t0!,!-b %/!ON!35Q60@>$12=#</)q1P@seO##FpT ?NA7=#BO /Q=K Q%a4# s1?:OA#?2 "A2qd5T' 3]!0N4t "3@ N%/mO!>!2K1# ,>N-6RsPt?!>u$P5 Q0@! '2 79!$N!1<.~r.Q1/SW.!/P` 0!v A/ر4!B3oP#+ s$?A>U" 2t$AB ""C >!a,12B6.?A1"/=1 @"2#@  #ODo""!dA. B1"O_3 c,1'.1!& , !13w1C^p@Q #L RE0A3<!"a^ }# %-0#'/AS3  @Q=. 2N?:"a AV3 ##2 =",/B!@#,`N!EOSG/B0 =23Q5C  #?2!0S151B  .S+! =-'n/"3$@ w 0NaS%1a21/#3$A-tD$R0=.9?31 2 @#A4T @>"!  @`"222s!r- #%54/53" .DAB!3NT! / />;qSaSa.# P-C O0 AM7?QO4$+BD<'62!2%.ST /4F3'2242r!$B" / T/'@&3CC!~A,N!>P2o/.E0!_ .`.$O A, -A/#O , "Q, $> #NSNO ^":+m? N 2/D!?-+3/?0A,?>-"#! -""$! ">2 ? #!? "=1" 0"."0 1"?O,1 2#"0?1 >B/n@4 #? ?OB1"  O!"" A.1 "1!>!! " .0!? /!  / " !@0@..!0./0/0 # }""3A"/#A#2C2"""3R!3212##2"$244#3!y /@. !!//// #2B#B3B4#$"13#"2#!4"4"C#"11"!#3"1!""2"rc"2#!!"#"#!"32"" "1"2#3$13#2#""#"B23!""!""!23!"!##"""##2"232""!"2""#212#"! #22 " !""""!!"!"! !2""""!""1"#"2"#3#1!1""2##"2"!"#"!21"! ƌ2>A5-?135 BE $ 1=O2-4RRE  ?1DQB4% C<=+#PA1CC 2&  B#3+Pk`_@@P N253 + ! <=_.2b" 4#3#>NO@0$ R@-"!/,>p A-BAXc.Oa-0102;2Q43/!t!qC!! " "r&//*UP_$=2!@E 2 "JP #0P-" Ca4=R& ' N">R !^C-`/A,NPb R p%2q$%Q</"/t!@!: 0D "@2G.@@&.5b,T.$tsQ/=>@sq#' /.t 2.2 tBE? w+/t".O6C% !@5`?G0Q0T!E5$>$>'. a1*_c C 2r.& % @A_&u"F,27 43.'!.t %3c 5"=%?O2P/0b s5.B427B!,VfATd "./u % A O#2CܮO//TAC"!BcR0%Bp1/ ! S#*D3B3BD !! P1R/6 0?t27ް1C0"O%R3/@ V/$3 /d ! 2Bb&2DOBR4%.S1#7!A#;!%$B$5a#,1P#25.%CD S 42R!&1!4Q13+ 2 S"?"A!&P>/%"ݿ!#> 3403 r!>R$P=OލA0!50b>7 > DP0#/ -'6b!+P"A 4/!402#@1A "! B"F!?A=2 b P@u24C35"! !c3E2$23#4!2$b$#S"17B2"ͽ5C3c3S7/80?NN.q<"2 0N<<<$MB0O<=L" ?N_N<;! P_--C/Q?^-; =PA$=+o ?0M+#?aPNҿ,>3)!/ =__&. .o_$=D,! BL " S1-/-+C )L"!,//-?@M" ?204=! ?Q."0/1Q "+.M C22 _4@Q  # A/$M",.#/"/. O-?/ M"A!? / Qa 0"O!#/>  0!!#."0/A@"  @O# A@  /@0#./O0 #! "1./?0?>N=?#?% >!0!..PB!@>2> !0/$-/2@ 'J? ///0!#-0!"/./ >?./!"/000/.!3!/ !O@ -/#"/0 ./1././ "  ? 0?/ . . 0 !C32"#A##2$3143@"#"3"25#331.23!#43B#C2!4#A!9W3R"231#03224#!!B!"!3123""332#2!3"1##"2A#"#212#$2$1### 224"#"2" #4!22n2#2!22#2""2"#""# "#"""2" #!"/3"##""(2#!#""""22B!#""##1!!##1""#3!!2#"N~?M?.!*/?/o=!p pN.:?OOM "a0M/; =3"b"Oa.! $]=e%0_D>"m  .+?"(0M -- O!~ 0; Q=!OE0O.̿Cqv-=2p}N4,8_//B5 O",1`1.#<;R' !M?a2!R!R1R"E"! E#B+EB#b3 n5.Q.0C"'R/a$?%C3w?-t0!1&#5^p.$*2_$! >` A0,@s.32K QS6?=0"@Rc#"1A!D<5"@&?" <#"'` Q@@.< "p!4}=1= N!,GK2##2& L#0)'#O4JNQ- ABCJ.!QNvB,"R= !#5n@#AU~. =s aK_PC<@'o"0=q? 2 Q4Q,?$#`/"2/.  0T0.q&1/3., LOB "6 @=2br S'?a(!&B #"C.! $F0"`.&p *73q//Q0A""N[ 7 7A C?M: #/"$6" !G0/Ur ( #!5Q? /?)2?7/!@ (-/ !r!a?>^Q3?.#" r==03^!qa(oO/3B*.-OQa?3! q MP.2p NQ.R_!% .$a."ROA c$!O!`0a.ӊ!" ab"q bO"! N0D$!R$?="Aa/54r5Q#M=T.-tQ!>1=" =%CR.1(L2".;/s20 C1$" |0$>C/$/% p 4" #4.Q3. ./KwBM-!@P=;M>"<1 N-M-! 1M,* O`>,O#NB.??>?++ /`Osf=&  >=>C!.;,=4-b-A@`P!-"???$,S b/."1B.//@$S] .,<>:.N^.><.PBo, AB ,A" ^3 Qq$3# C"47p!@>/O42R? *R+N#$@3/ " RA /DE PN?$?. Oa1,!"/$,O "0A "#C/,/0A2/0  A 1 /_1.!3/A/<.`1/#/2.>//_!  #! !O>/!0 !! ?? /!/ .!! "J "4?..1@ !.// !>//"#-  1AH2 /0!M!?  / 0 /A1 /-@$#B4!!ܾ#2#31!333B"!"3"B434323!"4BC#R3"Bݼ24#C121 $C"32ͽ$243!#E"#1#4"C#CD""3A32B" CC22"3"2"wC221"22"1$213# "2##!33"3# !3"23 B3"32!4#3##Bj21#3"31#3233 #22#03323"2#122#3"A2#2223#! """"1"2#!"""# "2""!!22"3""##22#3""2"#""132"1"2#"!"31# "#!2"#2"""""!""2"1"""10Ǜ"! OA$ N! >AO53 ,2R< 2q31#+Aq2!20/6!4/U>!" -p[A@% 07ARB#/>;# !EF#!a5/b>QC&/_ 0AA mK2 >ЭF@"  NK ?3&//?"_nO2.S#5$ QA MP#&S!"@ ^D7 !r.'.%Qq ;/ @ Rp1,@$?BB07`!a$ ,?32Yo.#[6`!.3@0'?@#.N'#?>Q# 5.a?#?=%$ % 1@ $`/^-'DSa]L*2>6-10 N#?/8!%r/2.OBF'"? '/>.,ODpf01C?3"  o2$<>7Z"/" ! p>0w ?B4!2"4%!o} b#B2$= o $12RBR# @Br:q D5>>CR!CcS=U/p >9r 3w2@ A #Sd C4 =.8 cq C.C#D"1?E!b/0  PPA!0& O"50S='!3A?>^ Mr $QD?#..п01Q-$2 ?^.P/2# R!Bu > vQ B2 ?N A;rb A#"!! !4"/s-1 ;<>]/?-!034  631C'!!a-/ "1'P @/?C 6 ?D'-@!?!#:$Q? Qr" 7!",_$LA5@M@A!@4!##4 S&/TE /&C.Q4#K!tB Q !'6 0% =Ao!,O""Bq>b3b$ ?!/C"\.#>1!a R3D02b 0BR!7 q?~" C"?!?ES1+425 %b7b3!!=O "N!=1<0<`) ".!^1-P,$N "=0*OMB=!-a0,#_, ,@@,#> A^1;_,=!^@,_<$= "^A/N MQ-1<q,!A-U?-#)p !>p!*0 S,"_O,= C/.A-1 #M+b.!'"^ "c"45>0)!"C?!?RA/ 012 Q-@!2/>/3?$PB :"@10/B=- !A@$ "?" /O? Q>>4 /!@!" 0> "// >!0/#0 @<./."!0O.   1. !!.!# .0_.? 1.?/>!0""/ ./- @/O C531#3" 223S 21"C34C21"32 #B 2#"#!ݾA#C4!"!!3"!$"32#!20!"#"4!""!""1#13321#"!""""2 #"1"!"#"3##!1!#"#"!32#""1""!32""!"!"#1""B"2"" "1!!4 #!!!2#0"3A!1""21#2""!"" "##3 !!!!#"!#11#1""3!"!""!#""""!"!""""!!"""!!"!""!"!!!"!"!!!!"!""!"""!"" !""2![#*nO 1!--N02?m_/-",+O@ !C+O,`3_51=!27]>@O?1`O"^?¼/! %@-7/B<,/?`?=K1DP?$/. c,S,,B . $QOA+P;!?r=`?/N 400 o5 #/2 !bOsS)2=O / sGN3 "3I' `?@0o@1$/ 1*>B2!5C -'\/%="3-/$/2AP*4 >.P A- / q @B@>spS1&O"1%#"/4Os2w!.D! @1oP7>aA3 # //A.#$ NM3`E?2?2P0/@/D /#D2D"RP$#BNA"0#"3 B/B. $%?MB@SA/~,<;$QqsS C3`#Q1BQQ!1sa"R#s.B "u/f2!OB6#A 00Mqܮ73-Aq Aܠ_42F/.4/C@.!!o1!""`D$$B 0a$?Q/P ' '_43>SP _,2?U#DA%2B rQ;/-V DQ3dB 1/?A` .REe2_b #,e"5$//C_>F/3!#M>Q`.!"!@ %!#B ~$@?5"/.R"#A30'?1.."Q>SC#3!32= M3N 5#C1QC 4 3xvL-Ͽ2 7. C-F2@`/B/b C3R//!5 ?2ݾB#+FA0l{ F  54.D!RQ 3 CA!s25." 20 ! ?cqR2!LnB  3$!! B!"RD! O0E #Qc ./O$=/!-B C21?!5&r"!"ٽRCB#DqN+$_ 3N1=0)0,O$NR,A,2<@,^- ;@^ 3KRtjFa-_-$_ !- `-` 3],R?$@--2;P)/ `"_>A,&@.3- 1_Q#Oc0@EA.!- 0N0+ 0A-?2+%@E.,1?S@.2 C 51 d/`3A!3?.$ #202"!.!#O3/߿"/? .@0!@#0Q-!!hL/$O 3 .?"0  1!"//3/3?@! \s?  !0.P- R ! ?%!!  A//!$/? !-" 02>  ?"/0/.2/ /   /!>!  1//  ?1!/#.1 !/ 2 /!!> 0 /!341!!A3"B" $#2#B4#"#"11"!331$2!"" #B#33{$"43B!3#33""2#33#C13"133234 !$2CC3!""2$"!"3##33"""##22"33"##2#"""""#""!"#2"0:3224 1""1"""""1"2"2# ##2#3#2##B""!2" ;1"22"#"2""""#"" B23#!1!!""! ""!" !"fM! .T33-!/Q.8 4 !O1$ Q"1N4$/ ?.D> 3 "2 @-01Bc/# ob!^3A$124#+ E =N 2./%V/? 1(?Q.O3/6 0.3>].!%@N.Q61RA$D (A#-:A1/2 e|/,aB Pp$Oa   16#A1b! 7"1 3#&0# a@@ Ҽ0"?!_V+0!!taa%6@"EC"*-t@" # n1̼$=ܞA41#115 A.O`@D3v0!t R1=!"2 C!52#6!$.c3?!21 /2 "^\"1A4!!$Ac 2#@4 36$CC1ݰR3Q6 uQ 92E.!#?s2=RQ$4Q/E!2#PF !/R3u "B731"C!SA/1"!!B3 E SC.Q*6A s1ܯ" '151Q"3NE1ܮc!7Q$1"D-'O$?& ! 13D "?&!1ۭB#!#O Q "1%S#%#BQ364>14 E"U420s' @AA %1 -jSA 'Pq!a %#@A47O c./31r3̿'2!4! 0aݭ36#O 'P 42$A"T 7 O34?4/"e/0B4=4@!52_ @N%/s!@#S3!:%0#C?/-q1 C!36!?t/2 17,D"3Ћ2?2'/@ βr-1i/?o!$s7_DB#T"! s0AqAR3a./R" #aa #C+"$p Jb@B56!"D!1.ξ 3#P5 dB3 !#S1q4?3 4 'BR.R!POo+1PM^=3@OO,B?_l>+?AA ><N21@q-+OB=- .B A/Oq&.  --5 @BA# +.%1U_o.="2+ Q-=5/ o?P!q7.#=@IC"3!E//#>` @" 2П2@#"-22 4! A.%!/6C @. C./Q  1>>" ,!2"/BA!/ !B/"22O"A /!?P! 4" 2"3A! 2Q-p 411 !!-@!! !3 0//!B? >/r O0 2  !#  " / 1//# / /R/??"!/ /-/!!!1A@P3"3D!SC$""0!23 "1B@ݾD3"!"#C2!!!#3!DC23;2!"B5!SC32#2#$"!! 143 "33!/|""!332D4"!!!24!53"!3!"3""! 21$410"@A22 "!!3$ B4!!3B43#22"3#"2 ##1h"# "#4 3$""""! 2232""!2""1! $33#!#33#>4L;"N,0NN=# _-/] OM ^ M^,/;N,@< >=2NdV+ _,0:. !p.P:N>qO ,Ѱ P#>Pӿ.Na> ѿ_#.O-?a- !G]>3= <$@1?B< N4/Q aA2RB2P ۾CB$3AbB##2#SC$3Aܾe  N .-/2/P/A0//1A>= "P #0A # !#. Mh??$-! #!>#?# !! ...!/.! ?/?//@/0?- ! 0-?@  111/$I1.?"/ "/1//3//! -!- %=.! /. -/. .   ?0 0/!.!0=  0.@/!O/ / !/" /1    6$$233#3B33 3A3# 4B#4!434#0CC$314B$3A34#C13C#3A24#3A24#3B2C#3B"433"3#22#$3##$B#3#22#"$#"3"#"#23##$"3# #A##/33#3 #B##03B$#!33$#!#2321#2#21"3"2223#1"3"22"2""12#"#""3"2"#""2\{"3""2"""1"##!2"#122#"###!2""2#" #""# #1# "2#"!"""# "1"2 "2"!"2""02#2!"2"!2"""!|$dD4332$TT3C3"ETCC432!2+".Q ON`N%=#+ q`<,OB.A-N6@#,/ >Q$?#P, 1?=;,"-A@MLM^3,2/.N^< 0P/:2.QO<:MNB+@/<=NL!/7b^N$;  >`O< .Q`=ӞNC/ ,-O'05- r5A# 3R$2AͽE4B$31bN3!01/0O-    #./ ." -,./# 1 ,0O ?! /O// ?!/   #.?"A/" 110/0O/?!!./.!.-//! / ! 000/!/. / !  .  "E2 2/01!0/ !../.NR#A$#1#A331##A4#1#3A4$!#4#430B4#C4353CBC3C34*$3A#4B$21$$34#03424# B423#/B4!B#2B#2223"222B2#2##1#13#1#13#0"$"3$"3233 #3#3324"332C#2B2B$#233#21#323# #$"3" 33"2#23"2#22"2""32""2""1"2"1"1#"1#1#"0"#!22!"#1232#"22"3"22VU"3"2222#"2"2#"0#2#" #""" "3!"" "#!22"!2""1""2"!!2"!""1" "1""!#!2""#!#""#"53C$#452B22CD$3"!^Spa#A#-P1 B 5?04@RA4 'O $'?"26,!,@2/`2 B1o"//?BM0#O@_4C0 E O#R2-DOA?/3D tT2R5?3Q0O1AAs!=1C=Q-!/T21+o#$ $t b>4R9_#a?:AEB0"R5!Q@.q.1!#%SC"$T #110 s2"J5+r# ?߈53%c 0R D'!  eE =#? r "0,`/1a&#C/f!?,bR R.b! u-A #S!0/O@ " 2A "2GC>R##87 @B0<  c! ͿA#/_ $ c CQ3!" CQB0#5#@%bADFkR?B!APb"3ܮ$23,1$!t!3s?MbB22 %S/2ˎC4AB^V QUb20D2rC21&"Q/CDD>BBBb5!6.#T#q!CA88R?AS 53B4QTܿ$21 !06A#S.1e2S&105 6"LD0E.F0%21B D.3 ? 3 Bs b #A #3?Q35.R?Nc!$Qc/431G2ݬ2R a7CI42>a "QQD !'3"13"0?ar! 2'/d0۾3sA2 !EC">$4  3CR"a/5G"3S5 T,3b!!Q0 C#$" 50C2$`2$ 72|2t/QB04#41T.$C u! /B1Q>4?"/C$AB2!#c 03t=B/2c ?Q,WC4.$a#7.0 4R".%_A 6"d>@D/37 $!#P012B#EC$D3%C!$T!UA!*P<;-5@ !D/,>&+ / PPr-O&޿S1<$=Rq!1>! / =0_@/ " C0> .?"1."a QNq -%"3 HCJ3-N20 bA/u"PR#+/A>a<q/A-?,n!$?$M/?!?.5% 07 !(0U3$8./s/ 02q5% @sma.S ",rQ /q/!BA4A@""1Pc 0!Sc/!/" E1!$`.= 4>A0,K?,R_?B*QS.3~0R/Ba10 U/Oa@QO2_"M 3`!4!01O A1QR#QE"$".c3""P$A.0u@+w-"F5.O#L_ $.O.-QD 5c #C#q !R$#`_?"Q =@".%d9#A#!/& #""1/$C ! "A./7CB!4(1?6 Co  CM.0 01/ -R% 3 q3@Q3?>a_?!4R/3/;u !5CNc20.a!!22E.5 .bB?@ & BE/(c!>>7"/.B/*"? 6..u q;b3#a"?R?sr"O[!  Q<32*"s2!3s# q.A! <>?1 5 b1"Q P &.s #<@Oa o! 4t$3*>- C!?1a^^3DB_O>Q 43&>oA@_2( !## Q! 3 Bܯ +NR!- Br=6  "s.b33$B#,q-5rCA >B-1C.R c" ݛB#$B53!=ذ"02% F2#x4 A,$-,pA3 !31R ] ! 2*/.r1QLvF#=q 3@#r"O2 @/s?P-p #@"/"7 ,S#0'/5053%6O9 QO".`.p%",N<#,^@+*?-S! >/4!@?1-*Dw"nN/6A"r PC e1?& @"/!'?~!# / '/@ bf}PB5/ #Oc,."4"? >?:?S/ND@S 2! R4,!!u_P,?/ =% "g3+'s S"2 3 P# A r$#'>-"c27+/6.F"/C1TSB7 S03P 46/  /e $>s$N"S" 1 ?15E .#&K64C  "B#P6/O2D02/wS& r.C0u"="?v - BT=?$ r/"EI 0>?R 0!'!ڿS706 AA%2.53R-6#t.7/ /&Q !t/1R,Y.$A$#D0/ -.R"/ /Ss3S ,0`3O /1/A"3"N_>.>%/1=@/L<% >T^!>Na/^Q<""@:r.20.B,Q?ݎ 4R%53./26S"O2r0qA20/#"$4"#b!" 7"3#6  [[@˲@# Cn"S1D$J0!S> (/24.H? /!2P 4F & `0WBOH2%!&3_S -5atp!OqdU 5/ 3"%"0 1N7/?27~$7"NFB -r ?/Q2!..`#b D<+$=E  % #L/.Q !rv1 1@s#$!%"11U#AR10 # 1N..B ^"A@U%MN7%B"81--P!O@'A#P!.10p "> Q/-M/^B"p 1 B'" &;5taB1/C!QW/ ">//-5? .%?33b?cS 2r/d -! /#b& & 3"@0 &2 pP g!2-/;P 2s@2Ba) Q2_?#d Rл@$2$3C@2S1!0a/5$S>"`RaOsDs  5,2QLOp!64 a2!#4(-?U1? Q "2@c.r!34A'/q wA.N#.7$!#BR1MA`N.p?A215/ 4ގ0`0c 6 7Q@ <-Nq#, rR3//4/#!/&,$Q+"@ N/b # q2D4ra?3B:.P @?-!N#4rB1A% tC=01 rP$/3 ! 70D `7.,!a1 f3c#RC1B ,# wA.@82B=O"%---QBC@?# &%,0#", 3R /1#b" R370a"4<1a@.?A"BE!@5 a6Q"`0#7.A7(Na4 1@" P!$p` Q02B& 0?.D C#"Y +/RCB?r3@aB$=ُ2# >2@ =B0'9&5.?' B.4 /27^a @1N5C=0 ./!+7@2@SA6!'>BqQ>߽% % ""<.2"r=2 :A@n##6N?0ޏB >&/a$.a"= 4p/!(B/Q1 # D2AT.1!;.>2Q.2c "!B>15`0 A21 & QBa E 0 !#3AEb>2>0Q!".""P"SAE1/G !' P">$R!RG/#QQERr#bCb"t@ 15." "3% %0C`B/LA.R  &s1!# A3 6!!C0?>!2b!$s3L D"u-'."s#q/Q@D00N >07_/<.ca @ 0=,#q!Q!04 0>T52]6r/#/B2qr/%QRPE-50 p<2,0314A r3c- b"5d> 10 #q@G oP?$=AT"/b#s$$O:'/?% ݲ r 6!̝3D'"N3ES1T534!34.42Du 06CC""1a -+ !/=.>6!Q0P-J?O>M! 0A<+N=4>a/=]J_"-A@M_*3Aq-,+0Oҭ.>- D B&Ap". A?;  //=/'1!R=:P414./- $/@B^=ݹ"!Q_ 'T# 3Q$A# 4 CRA4BA /?C>.333 ?Q1?/!;O 1S1/ /C+/ODa+1 51O.0!%"B=OQ  2#B% @A? rP @B -#D2`0a.;,! R4C?>,,A#"4@<?/C !2?0 //? R@_/,#2 1!@.! ..!</Ba>!.1   A.@ . . A!./  "!!-,"2"B1ܾ!5205"!2"!"$ 3B"B214#C43"CB31$""" ͽ0"//$"14# 2"""/ݾ"3!"123"322#$B! "#3C##2"!""$!#" $"23" !1"2"!!#""B##21*32#11!2" !1! 3#22#"33!##"1!2!2!qq"#3"2"33#22!"ݽ!!/"#!#" ""22#!!2!!!gV52"dDDCC3C32"EDDCC432!$D4"" DTSD4#^d="_OR0$?,@' 3 h3< N%.pA+PO#Mҏ /_3P,,QO!;P#@+0p> /O"- - @!#A#$ T%)C>?"". >/1A/!2/0#/3 #/A. 2!03  02/ @{0$< !. > /.>/> ./ .>/ />.- 0?> //!/>/0?//!@../>21//1/@/ !! "/A/  0/A  ?2!?.?. .. . >.>UY/.?- /? 0 0/00O/"0>.45"B3 ͽ#4AC4$$3R3!ݽ$3CC142C4!3A34!#B34 323$ BQ"03B$# 33#203B$#0C3$3144#313C#32BC3BA3C33B ݽ3D#3C3C3CB ޽#4#C3#4!B4#$"34$#33 #233#2## #A## L32###A3# 32$" 32## 3A3"03B#213B$#023#3133#3#32223332A33#32"3#22##"22#"2#"#"22122#!2#"#12" #1##"#"#"###"#22#" 22#"!22##! "2"2!"2"#!"2"1122"21"2"2"##2""#2""#"""#!#"t32EDC3C"ͽ#UD4332TT4332 TT4333!#UDC432!4UD443200MMN;! _`>+w! ?OnN; 0ON< @O>m<<3,B /=]N#<2 /_NL !QO;,-#>r@GU@,]$_#; >_NK  0@>,-!a`=+>B/@/=?5O`0&.  qQ-*1A>;,-BA? 0A>/0. ">>0 "> O#0=! ./1 !1"  !??/ >/ !?><>!"/.  0/212> ?0/!> /! -.!/"/0! !//??//// ///m`."/# "1/?0//! .. 0Br?",! !0 0?////// .[r34#C2ݽ3B43Aݽ#Q341ݽ34A4$!35"34 3C3C3BC#B3BC#B2sG-//!!00!//>/// /D322B#322B#32$2$#1#3233033233 #4"3#243"2C1232#"222#"1"2#"!"#1# #"1#" "#!3" "#2#2#""22##""2"22"A#21#2##!"$"#"0"$!22 "3"2#2#"2""32""2""""2"!""" "!"1#!"" "#""!##3""23""22""22""##"""#1132P" Q2_31!--S 3 -pE.@A!0.~!F#2S/C> Q3=_ Q 0R.?Rs3 *!Z$,Ba+#R/1-t0$?#+! / /#D:P"3 " 4-b3' 1! 0cA%c 4"1/ S1O6! @,#O= 4R# 5A  Q& %B"U C #>,$1/")<CA-TB$G "!6.O'1//70.s."N50Nb/gI0.&>>-Q "S" *b D212P"R@!u&!23/$D2$:2 PF 34 Aȱ""Q$!A S/a#*4!"_/BR511ݟ$"B$"2=#!4" /~ $/""13/3A @B"t/b022 R0 ;3!C#CBEa RE27RQ  #a!5 "#QB3u=#c=E2$D2BS2 2A105"S5D2'R30D#R$a4@R7"4#5R3"wR!?C 61#D" /2/RB%0 ."p3.d Cr3!1@BD5D/F 3A#2C21$SA%1B1Q"CC5"D/#!c?3E 0b DR# B$BCO3AC"C S#QP1"'M6!4 23FA#?P #E3s"AEC1@"aR/$4A"#3! /!#Q b #B2#'?1@& 3%>41C.B7O 2>"c @#O$ܾR!1#AC C01 #D^ "d!S*#R3"%" %2P !_#U +R3.4AB&0cT!ܼ6d""D4331T##S4/ 6S26D254T ܽS4"c" F2 'C A<@+?Oy, $b/< 5P 2@o ".t .=C0/'O!^ @3P?#) / ?!(T>'P! 5'/)e/A1A3>6" "d-/!En ?ib /B#4-M$!##/A,N3 QO1A,1Db B!0!4@HoQ4 Q5.b2Q!]>B 0DS?"1 /"D_! ޱ?C!rr2@7& '.0P?" @A7_1?`B1A /R?)?N@3?1 !00D"N#G! .PT E C C#!"3><U/CB?QD$Pc <o!B/ @ 7"/>B&!">#S-:!!-?>!`#/?47-2 1!&Ab!/ "2>S"-~ 7B  "@R"DD"?-/݈I#" cA "1N ?S N!v2 $b^/M 50"!,`s_'n?'ap q"3 UB(A %!15#4R @ !7!7b 62.$= R@t1#3F>d !0oݭ)"4-7 2F2 ! s7@$M@!R AAB>2/3A!!"2" D3 N2[G##>OA ?"!S@E4"0/" &/7-1;C V02@/DQ/d 2 1F4a"-+0 71}.;21?aM" R0$0q! 0#2C "Ro ' O= a_ dr $/ D lsqAO/61 D?a CCݰ5 1A^ S!B />N2qbSs+'-q*. /A>=0A=%O+/+O//Q0># M!a_?R   .]15. #5.11"r<N0`A@q  &"_!P>@4C<1!S#%#.rA/0#v_q/!/AO>B/?.&_> nb@!g  5D "/A?^1!M0$"?25>7I. $ B 0Ps#S3Rd2#.,0>Q N c_5/.12R1@0 #>'O0!#AQO$>$?TR"1',$ B 0,Sr!7 t?Q"b>G8b C% o `@ PE004?/<@?0'= Q `R DP\-ܾR"4 "ذ1"`!a"B 1Q A/$@-057P.v# $ Cs. t ,) "3 00u۟!$o@!K@ 5%?W !e*0$Pr-2#T!1!s4zt" bP-r4!@A./*@a%>>5?055" /Bsp/,3 /b>S`D*>aSO/A5=4 2e a5paT/ TD .1 v+$ SAM!BB(7"*!B  c. /!R! .A""?$c `0%2@.6200#A3#p#N!/G 1,?2 7_@c 3. F3 #T1#4O,-P![Fq# "/s4Q01T" 7@%r A!@.Q2@(!ݯ00F" ͯ""Q` _$!NR$z2:@*OP ?!;2='=>n@"> .7 -&1,AAO _ q!7=-?eA 2? D-#+ NO!)@0"/-2>/  B^qp Bq+#,!6"B1x";QD آ/aO*o <.#$ U ? !s".~0b. 2!PBF[#01p#?R"~ 1D.L#." 313/"Ob!?$?.0L0'q$LBa 1B -?bE*/BB# q0"t?b155A@'0%C"!R3O@@A $<E/<0G0#4 7@%/"t6DB2 C5>&?R"?G ?ݾq 40P/Q/R:.  -!ݮ.550@r3r 1T 13D1ݟC -/BOs.%> AU% 6-;,ݞb,Uc/M/A/"?S/SFQ!A&C=PR.6 O /&0@!@!!s"T?"/@!4>1Y"#`OQ5 3#!#GN cr,2/r6.A%0'.s" "6/AN3./ >B P,-5/%/RB#"4 @B@ e.=41A7= W,!&2r7/2B9e[2NSU*@B@,,4 rR&.%BA,vBݱ`0C2# 1%.3<$@ -?3CPWC%#>/R#s341-!bU!$.>> 3C$P>r?"W a/4 1-3?/Ab!ر!?& /#qA .# Q3.">'2a2/2?Q,&a/!2a P2#--P 3?6/E!ݾ" !2b-!  ? 2Q02B;"/&/c#021!r"t4D3 sB2_1$ ?P2D?=AR$ ?%@ 1T./$" r!޼P 4/ # `D1 `R #nRQMO2PR-P371@2@3cA.'-Q0r~"41T#4E."1 e. 3"# sR?F"S!2A4w"3 #T !0N/s , q3 Nu=5 - /D!3/3P &2C2R=v% 3,0=M@  u/A?.T"/A#2w+u" 2Rp!!a31 R  "7.% 0 $#D7! D1.%BBS2da!C*%/.$R !/  1r3B > R% ?'^s[!0!&N05r!#0AB$-#.?#B ^-[1B`/1*#.!"" 42E b1^Cx5!4A d3 r24 "4"N!% t$S- #@?2q%16"0P"#/nC G!+?V22".0r3Q,$5 B.A1-s'AC?5Z,"2s %0r! @-26B!bDR%P, $2R1.A_1 A,4tOIYD/07OANp2B "e <_"ʿ."==c#ARQ"$2%P ?5113>ܿAq!!?B5/T0#b$/=c P.QC.t-.ܾ 7*/1s COq%#3DP$-T.~? %#"36OR1b?R B `'$ NaQ#]2bs%"%T/ ''F_/ d$<C tt!2!$!!' #(1'_#/*#C7/ B%`4/.?.>%TGCAD?+4MAQ#F!6$#=1 >&?@S!P%>?"7,1BT ?R  N /1!d!(DoM<,2 ON_O_5.".Q ? ^M<;"/o*qa_-?/Q_$_#<.ARa#. ,.@P, @4$SC430A%5!!44Cd1!% &D"2"7! 3=r?/?a 224?A>/L,`5 ?,! 102 2Q,!HL.0.M-2/S% " $>C 0  2DB0!12.&/ b#P@#!/ >$jN!!2 $C O2/#- a00-$2/P .#2.#" /-115S1/3>#!?0! B?> A !  2 !"/>. ?#!"0!  0! /1/0/!.". . "!2///!A.0!?. >>/?S/  .?!0?11//  . . ,. 2, /!0 ! ?!3""2#2""1$2##1$2C43@ #$B42 ""3 !B34C# 2$"#"32!""#11"2!!#C4" #22331#2"" /""Ln3C433"/33!!""""""1!""1"!#3B3"1##33C!#!#!23234#"!1!!3""!!""1!"!"#"" #"33 "`CtDCCC33!$CB"dO3O, O$ A$?! =.S04.>¿O.1+ +  O Р `2G-; M;!.>,^@L =,@^ ; Op =>Q?2/B0" ." !21A/!?2 2  #/"/2 O .. =1 / >? .0? ?/1O - 00/00../"@/./"1>/"/A//!0 ??1//2/ /# ! /0A./    . > ,/00/0? .0} 0.0! > .0@ 0/"0/!1.!/0" "  !  - ./.! !- b8C$3B3C$3A2B#BB"42A 3$"32#3#23#4"3234"32#3"3"#313# #4233#41B$#424##424# 4233!3B$#03B34!2B$#0=F#3#3123##133#22"3##1 2#""1"3"2223""223"A2#V&"3"2222"#32"23222#$!3##31B#3"23#2###2## #2#322## "2"2!"2"!"2"2!2""2!"2"!"2""12#""!2#2"2#"2""22"#"""#"""#!2""#""#!"""".TT4333 #dDCC32 UDCC33!}V0O,=?5.! /qQ$-"/R Q=+=6?B/0=4\0 ?NN=#!!_>M<11 OML<.2A ?q/A=*A ,#/3.0--O%O$+>Q? 2QO+ -5/A.`D05 b$A#RB#3Bu -"1!-!20A >0>/0  .KK.>.?"0#-/#?2, 2!/1101/> >.  - . .-!1!2 ??1>0/> /.0/d ?"//.?!. /1 ! 001.  >///BC33 2B#B32B$2B ޾3B$3Aݾ#$244!/#42CC135"C3135#43!  !/ /".? !/0! //0 ?>MF33#222423 23"32"B##233#3132331"3A4$ #$24$B2B434#B33C#B2BB$#23B#3!#3B##03$"$" 2313###"223""2"322222""2"22#2#"2#2##0#13#0"$"#2!2$"23232232B"3"2B""#2#2!"#2"#!#1#" "#1###"#"#!""12!12!2"""2"1"22!"2"01#"!rz""1#" "#"#"2#""#2#2""2"""2"!"1"" "1" "#$3S$#! 1C3a21123CC5! "0s -A3@D_2`2/A:0T#/@$_A_"0q6OA"-04 .P5-`4N2?B5?a .!#1$a5/A1 .3@R%?Q>!".QS [K 2`3P2?! /27?b#- ".a4>Q4=P" /"aC>" >  .2E/B4,-A4 .Q5<`3-`o4 B% NB?2%_"6 >15-?3Q4-`A;O#?"&PA/A ?24- $ !0!!/0.! $3322" "2D#$4#B""2"#1435"#312!!3!#342#c4##!"#"3B#B3B 2"2""""#3422C"2"#2#B3$3"" "3"#32B!2"3"!"!234B23 "!2!2"2!B#B"#"!MX"2!323!#"31!1""3"3"3!"""1"!2#"B"#21!2#"#!223!1!!"2"#"#1"""!!!" "#3!##1!"""""""3!""!!""!"2"1!#!""#1""10,./3q% 2_/ /p.4_2MQ ' 3= !<@,$O> >ANA+?N 2M@+?$_3= - ,P$_ ;!-A-%O -1>1=,= "o1M? > #Q-??4P"=-A>&@-- bO%Q-,-4P1,@4`*&JO1N2 _.3= ,  "/../1.  ".!??/ 0/>- !/ #. A/!?/ /.p-"."  0//2! ?. / "// .// " 1/  / 00"0 >  0. m82A24"3# #C$33 23B#3B3$!3#!3C#B# #3C2B#$!3#1#3"B# #3B#B3 ##2#3223"22!34B# ##B#2B"$!$1W]#3"2#!##B#232#222"3"## "2B"B# "2B23"#1#"!#'"2# #323"#""2"13"#" "323#"2"22"#!2"!"3"2" "2"3#!#""!"#!2"!"B22""22""#!""!##2##""12"#!""!"2!2""#2""1""!"##!"2""""""!##!12!2 "212!"""!!2" !21" "1"v33324TDD4333!4cE43432!5TD43C331#]&>N/1<5NP1<NO@!=6<nOAg1=C-=NA2,<.@ B?S+-q 3?3* .b!C/ 1"b13.B'"C$13s&2C#1" SI4-_@0<@10 ?@1 ,pA .AQ ! OA/1 `R."A!B ",".# ///N1./ !/! -0>  //.!!./!  /"/ ?"/ !1?1  0!?!/ /!2 0|10 /"/./ =1. //.1 1//"//.0  /00//!?.1./! !/!/ . / 333!2B"B$2B3#3$132134"3# 3C"3#/#3R23 4$24#1 B5"$#!BC2C3 BC#C3#3C$#B2424#A332C$ 2324# #3#2BD#2#222#13"02323"322"#2"2!23"#"!3#"222322##A#21#$"3#!2323#33"B###3##22$1$"1#$!3#02"23"3#""2"#""#!2"!12!2#"22"""!2"""" t2#""2""""21""""#"#!22"#"2#2##1#"1"#1#"!l"#""#"#!2" "2"2"1"""!#!"" !2!"""""""""u34"!F5CC332 #TT4343"5ECCC33"5ECC3B2#2M #o2M .?-$`-__R_0O-a= 1,O,$O">!,P,oN!-Q=@= N2M +?oBM @,%P$M@N'0-@ .AN%@*>>BN@>_B^0>,`#_- ;p%O ,".AN - ?3o $ p/D>.7A1B-BD2b#145B3R3DD2C43 45"3C1ͼ5BC$34DCo, /""/? /#.0 !/ .1. !1J . ?  //A. /!0     ?/"/1 a!/ ?  ?/  /!/ /.!0 .0. |4!3#0##B23/##2$#3"323322C"B4!"3B$3424243B342C4]O./!0@PA@#.+!w2;-P#^"=ap/2O.!4<;B/BݱN!607$3 !1 7;0 B,B#Q"u="# D.0 #/S"$'P%/P ->Kzp.,R2>C7/ٿB-_ ??q %6Ad E~0!.4`S'-^B&_1Q AA# A2#_/s?-/B/O " ?$!R "`@!$A$5OOPD0@31/tO1.E- #S1/-eP070_q0-b"?H!r/BN/U N!1` UAN"!0#.!@3J *!RP"=!1 $C 0-C&_=!#b>35/1.S 2a'2!1sR1%-/u%.CBPB1# ?0X"#d #-1-/& 2B60$D R#6 CC!Bܽ_"2+PB5 .OB$0!.K @B" w1P?3D>^`"O1>1_!!4-000B!!R#54 @"B?!/RD3B2 A( /0A!OO&R2p!3s"0RA@ 7,BP 01#"!RP2 :@ܾD  ?# # .Q?$r @"2`"BDa!csA?+ ,_A! GNW0 GO.?A2@*!0$// !VRM/0$#4. OOg  ? (D #/$-]5sAQ",U3.3>@ T"S0/@/#q,! F5A,1/P@r%!D[o _""# BSP /2 " /D@ N"s#cGDA !C_s3,jQs$Q. A1_b7qp.6"#C%#+?"%#B1!D#5?-DBsr$-%RD51 o/ @/>C.?A"MR !B"A!+S0!'01}3 P/c0#w2>A"&?-CU .'ݯ0?4BL2E  34$ @ E@"6>D"s0rC1R͡A A?1#2 E#b"?@$. $=Q @$ NOM13#R//""! 4%>A#+?-@/ $"2?! 2 /M2-R B!`1; ?/3=" $$#03/3QC? 2! ^T"D!$/2$S16"S"44 51DS42"$/53!$32330C/X4^n<<# @ @P`O<v~E* 0^N;0?ML<"1>o^=#!0O=L,2a@-KN#=2?,oN2 jr'?o?;  / _N, q@=+^NB-@NNNN#=0 ..@/ q@N8=1+ ,R;B!-<=/M-!??."P$.@0!1P"!02 /1/A0> ,>0. 2" 1!> _/-!# /!-1?10  Of% !0=-=>0   ??.O/>/0# 0 /02. 1?.>?//  /  "//!??0 " 0!!!n?1>?/!?-!>//!0-."!! " "L0 0!/  1/./"./!a !O/!// // !. ". /!..!/U)"/ܾ33B4#1"#!2# 2""2"CC3R3"2"!3B322$4C%#2!33$#2/,"#"#/ͽ4C3C4!"3"3""#""#BC32""!13B"21%#B43B!Yo3A3#!ݾ"!"34"33!"#!"#2#"22B3"2B""!!""!!#4333A#"232!""1""/3#333!!3""!"!1!"2""1""! "2""!$#B$#2!"#12#""#12"!#!""13""2"#"1!1otD433""!ۼ4C432TTDC4332DTDC432!4dD44333"ESS76QN .^3Q?Ҿ AS{0L?<"N L_;?K^<1=.:!>+/9>@,=,1>#> o.A^" >Ҡ /=P;NM`^ -Ұ, ^=(=.P,;1?# ,Ҿ _/A=r@"Яa$0B Ar#Q!9_MN:,O .0? , ? ,,1@.!1>/!!1/-!0?. !19.A?!?2?!/2 /# !  .  0- .1/.!. 0/!-,  / ? ..E/0@. 0// O0/1/ 1>/!/"#?0!\  . !-./>? /*BD3Bܾ2C$3Qݮ24#BBݾ24"B324#3B4$"33޾#C#2B34"B# $$!B# 1/"/  ! -/!/3343A2B$32#3#2A1B3123"2123"2A33"32242#3#22#3"3"3423#$$#32#32B3#32B3#$14# $23$33#3!#3#30#2##0"B30"B21"2#"1"2"02#2!23"!2321232"23"223!21"3"3"###2#"#13#"$!22#"##12#""2"#"2"##""#"2"#"2"!"2" "1"# "1""06DD433"6DD433"6DD433"5TD433"5TD43325ED43324dD4348>o?@$@41S%2BGf/NN$MC!?Nn^, 0.:N: BPѰ 6 ,1 [a! .0N#.%_5P0/"-"?"/-  @"/C0?1\W-"0D%24?3"#3 1 B#11!@ 022 ܾ /  ! !0  "33, /? M#2/" -"QP!112?03.C@! ?/3A>"=!'/ 0!? R" " ..1/? - O!A! #./Vp 1!/!0.! ?.>/0!!P2!/!A 0"/? / !2"@/."." O,0///.@ {b""#DCC3#2#B5#"44S43B"""""32#"/;!.#-`C@D@C@B PR03#6;.B`! B%.." .@S /b?qC6?  4g=15;22@D-@CO2>C#!1$0>bl/1.02 .>p?+OQ>Q4-@3?C..O P3%p2 '=> 1r$^ !Nq2J$;F>a#) -A! aN!B6?/, %?1@0C-//Q%20>R2t102 A"B 3_#  212A2+/ 2$!3QB "R/!"  #.C4!2!1?"  ##B4"$//2-"./=A@P!31.?C`#!R // !..'!wWB3!.BC!!"/1/?A  11$/2 0.1-"/ #"1!."! >..2@ 1@s`! !!!-@.@/@? ""/ B!/ /.20"/ #?0 ?  .?!@A y!20 / 2!1"! ! 3B\ 1!!   /2/.0.!!?/3MO/?//B3433B#"""3T43S3B""""DDD3D##2"4!!##CCC2ݽ"/-AC(@,O."?2_B>A,o$_#=1,/>">0,P,N=!-A<@,^"=!< ,P"SN1 >! _='@4N !MANO. .B^A;N o4O1=/O4P ";0<P,6<.-B_$/ .2=?+?Ea1D@2,Q1T2/! A7!C$!޾ ""4&"$33=N1!//2.  2>#!O > .2>1///>1!  !O2/?/ ! 0@."/0"0 >?" ./?> "/@S "-/?! //"  / g!!!34!3#134"2#!#2""D$B$#11#30!53C4C5"32""!"#!"!ݽ3D"R31!##32"34"#2!3C#33 "22# 443D#""#D42C32 """#2223#"3"1B3##" 23#23"!!"443442!#3C#3" 1! B4233A#4"2" "2"""!#!!ݾ"#"2#!#4#4$"!3C3322! 23"2#!"2123"2#"!"#"X5#!""##23#"34"32!!"""2""##2""!"2!""5"!!!232321 #3B#32! "1"!!"#!2"2"""!!"! !2"" #"3"2"! !#" >}5GR/4M%=O11B?4<- DO#^$;,Ѽ >DN;@SA4Q#A@ R1S@4?; >CLY'MO@ "+<_@!M_A =_?@ Np@ >0@  =P@0 =`1 > 0 O0@ -`1/  .`A 1'"A%0 r33R43D#BC6$B$#ACD ?-" ?3. /0  "/>,/ 02.xu!!?!./ "?A/  !//#/p!"-/?1/ ?/.!/"/ .@-/ 0/"= ?2 ! > !?1 O  /333 ݮ45"B# 44B4BA343C3A35"34!BC43C!#B3CB#$2#3A$E3$"C#@23#23 2B#2B#32#2A#$!##!23"2#/33#B#$#3#21~#4"3#!34"3#/3C#B3#3C$2B#33$"A#4"3#034#33 #332 ##2#22#$"#302#"3# "3"23#"##""#!2#!"#""#3"2"#2"1##""# 3$# 2B#2#2B##2"#2#"123"2# GZ#$3##2#22#1#"1"#"##!13##"2""#"1#"!#!""!#"" "212"1""!""1!"#!""22""""2""1""""!"#"""#"" ""!12"1!"""!""!""""""4TSE$+F"N"-BNB> PE?2 -A>%@-> "NA=p^2,A,A-&? !O2O%/vQ=A,_ =2=A-_>32'@  >2_ . o3_0 >`2r<@N71-$--2o1:=>Co29. ?.DO!,A0$a C@5"A2D#C6!G`!/2  0-!?" ?"/- /1 / ! 0{@0  !./?#/ /1//.0  ?  2 0-  holotz-castle-1.3.14-src/res/sound/HCBeginLevel.wav0000644000175000001440000004213211177007633021050 0ustar jacobusersRIFFRDWAVEfmt 2"V/- @0fact3dataD<-@4 2w#3#2̠ 3e4C"ܾ507#446B! ݞ>$5D&$%D4D3R ܯ2 "ST4A!?#3 "/+ݮ>cD#B5"5F$!-ޭ/R3bR#!޿ /1F$34!E5$# ,q߽q4W9CDC320!ܮ! !3#1"331q@߱DD4!1ڽCS"/1P13 42M %&T65523G_ae A%#bC5#ܽSDrBb3"͝!Nc6BB33q ACP003#'C ͮ#B2D36# ܭ020 S1336!B3T"!SSCS3 0ͽ0%'"$#S2ܾ/s%4sDTA%!/$ܾD@#RC5#3'C3ͮ172߰ R#E511BC ޮ3d5!21܌ $DT#12 ܽ̽CcR21ͽ_"Q"30 2#!#$'423335"# #7CG"1"c33#͐ݞ3DSQ D!&4D5B# /0#>0R# #FC5! /3s$##CRD#"/Cd42ν"#"RbQ@1!0ί2RR3 -ή !R&"!ݾ2S4$!"&%43 =ST74cBA 0ݽ#sDC"0>ڽ 2D "4"3d#1 *+ 23%3R2R"2ݾDC2"4"!#"A1! bD32ݾ"$/A2B"$3R2 #%"&A //"2 2BQC /P$ ?01 0. ް##C5"3!?ξCc33!" %"2 "3S#b#%C$##2$#A1! 44B!/2#2#QAB3I"#21 ͿR3$BA !"0"./ "CE$0!!$$"0'%#DB!߿c53"3BD!?#"1ݮ1C#2"  2"$##1" /!#6$$";3C&!9 u .!!""BC4#0.̽!C21/#"BA" BE4B3##/B$$!/#1B2.ͮBc4B21/ݽ$E4B"! $!a0!&!#ݽDS3#@ ݽ)2B22"00DCD""/ ݽ4D3R#  #2""!2#3B! "BS@12! 12" #2CD3 #C#1"ܞ"32!޾CT#2"!"0BR2# 232 24$" } #62Q1ܽDDC40!0/!A3242!23 "2!C"!̯$%#"  "" T8T8##4"$7$"20023b" !"B51Q34Cs3%SDC41!ܽ3b2 #BCDAQ -Ϳ"$"410! !.!1!! BB@&!1$7#"3"B. DB3r"!. "$D42".."B2!!ݭ1SS!""A! yBC"߭&4DD3#7`!/ %2C3Bί1CSDA1!ͯ ݰ !A @3"13.ޮ632CAAS&SS3۾"3BCDSU  "2#""$4c3#O͌"#E#A30/O  .ͻ3w3SܼT4E% !b$#"%?"aBr"Ϯ"R313420"#E42@ݽ#b"!4CR"" !4Bb%"c41"""3CD$"!C"2 ݯ1I.2CR#2B"" 24"%543%@͝1Cd"A"ݿ3AB#S! $2?ABQ""!  $S#0!//"21ES b ξ$63B!/Cb#!D3rR?̿"54"@ 20ݾ4%CD33N "0/ #$4@#/Ͽ1#! ?!///)7/0 4D$ " " 0!"ξ22//!#C32  $B$# RۍC!122!! !$1!!O! P  SCT43 ;3B! 0C9ݽAD"A/"#"! "/"S$455""2!4342߿ C4!16$#S/1/!1"/A3߿ 2C2  CS6#"/!!4$Sb'v4!3@14TBB"/"@!""/! "#CDB ;0A!!!!!1! ξ3BL%$1 !$4%#3S50  / "$?/νQ4S#2A 0?$# >#0!&/QC$30 A #2.S3CD3D"./2A"!6#S3!#l54#"# $2$"@0!2214@#SSBAߡ2E"1O .   ""C#!BR2B2!"3A0 3͞3C#2B!0!!1 "1! ݰD$SD"B$CSB$ !"#!!2!ݾ01ο4DB"3Q  /11 "23S2#  1B"!1"!3$#01 ?!##2  -Y%446#> ͜޿$D #3SCQ1254A"!  3D4"4"$!DAݾ b22!A@j| /  !/" !#4C2B#410!!01!! ! "!A!"/   2#2#01D##޿#5#$"S43 243Sa!  3DCa2! .  2$A3Q/3/> !6"#"2"62#!y6"4 /"""20343/#CTB310! !#2$!B  BC#"!ݾ#D" !/!"#?  10!102/#CB!"; 0" !#22401ν #C"#"1/ ξ%B/"3za 2$#// / !!Q321 2&! /; #C5-" CD2B3 //!"!C#@ 4"""#1SB$-."#!!Z@#E4!>. $#$22#""!A$A33C$"D#A!. 1! "!# 1$A"2!2>//A 2A0 0!u$%"%0/ ߿3SC35"qB#0A//3R422 !@?  $!D0!!/#"#0!!3#ݽAB/$"1!A% ?  !(-0#3B ! ""!! $3"/!!/ # /2??1S/3#?$5$""B43"/#34#$ "CR2#/ A4&"3#CR422/ο! "H" "B2"!##A!!1/ ί BR4"" //0P"S6?/0130!/a00 #-3 "X ?A""2120! !#21ݮ#"! !#"/"!"j2.B3"0/ !1#!  B 12 "PmT#4DB2"2 @421  1"2/!0!!"12B//3" W1461A"!11!!!"" 3#6BB"1  0/jG ""!1 $#S5412-ޭ  !BC2" 2"3 $CD#" .]r23"/A!!! !26$"! "3##""?/ "y!0 $!" !#1"1   1  l@3/2! " / !#" $A2?0   #)!!"2! "-.!#Q0!Ͻ!!0!2##0?!!/ !"$ !?!#2 2 #/"  " ?! 2$!  33QA? >2##!! ! "#"!!C6 t!1"!" /!!##"!0"11! 2ܾ?2A1" !!!!2! " 13!1$#3q30.  !! /"2/"!.!_Q#?!./3! 0!!.1A!0!"2220!446!" ݾ?/"#R" B!"!!! /  ! "!/  !/!!//0"A  !!T*2# /? 2R!?  /  !. #}"&0  #!#!" !!2#!3" ""! !#! /- /."!/00 ! -/ #$3!/ # "  W "BCE0 ?! "1R"1"1! ~i/!"  !/ /?p2DCC 2$"""/ ///"! 0" 3#2S3A!ߐ// !! s !"!/!!0!/ // ! x#  0/"0 !1 2"/!/ # 3"!! / 01/0""   0  "#?/ /1". !0B"! $#"B""!/  // R!!" // ! 1"1C//"i /  !b!.!!!/!/   /  0! /e.//!""  . / //   /  !     >/./QW /1!//!  //!!2 "!"/   >. !/! //0!!///./// .  /!! 1 /]<!!//!"2"#!""1!!!"#34#2"3#2"/// R+// W /"#4535"""##332"!"!"!""!"""""#!"9!!!!!!!""2"!!!!""!!"43C4"""2333##2B22##2#!!!"!2"343D"2"#3#3"!aZ!!"232#""!!"! !!A8!"""2#"!!!!""#""!"""2"""!!""!!!!"""`e!!!!"""""FD[d XXPQ14holotz-castle-1.3.14-src/res/sound/HCExitUnlocked.wav0000644000175000001440000005533211177007633021440 0ustar jacobusersRIFFZWAVEfmt 2"V/- @0factDdataZ!2'B  s??v C13"Q#3 sABB! 1E#%O$w:#c4Bu2##4! QDuB,A/S.rݯC2 ".C34#/42/5C417"C52$C'r"#!"# 2 D 4c4D1U2dB1a&B#46"T T d3q!v!Ϳ"/F!"! s#d2DR0u/""#1 a// 37O e!#P ̭$b/!7Q=E3"%"6B.sF1#"30V0!5 &"3" SC " 4!/s,ޛ%@$40S27P!L5!EC7R"5202OB#2 $543$CE3G1!1ES"!R"/%+V 0G."?"vD" ArCSD Q Ad/" L%b !/ t!1#B237Q$5!<LE ?=5!DA?D!"36341`C#cC "BC3 #@2 A%1S#$S?!C=j$sB R 3 "35'B2@DP1S&R3#A$B2C!1 BS" #w/3.cSb! #2#D"a3qEBR0s$2D@UBD1"!3/6CS12!5CTUBcAj"k%"2A '"6#!B@3NE"&2$b23A4261!#1ο1"۾R2 !34b071T!1DEQ0!s245 T"2 "C S!4%306"7B.2#3 2b c 12 $$!E!%2N>c4"R-D/.$!+%2 &!B!!2V!E"0'433"c<3" 40 5A441$AE"4,t,3AD3"CS0D 373/'2/r2"P"!%A57R-a2b#C 2 \4 Bb$/DR# DS RмBBCPU 3C$ 6B2443B3W2D25 591P4cS3q -F!b1 US 7@!6 Q!3. !/S1%"15&2QGQ!)w$%0 E0U2 "#621721F1TA$#0Q?4AB#C۾a6&B.72/"tXXBR"5"$2#s1t# &!t14S"SA$1B#% S1 Q/!2R۽U1t"? 0! %|\E/`/T@D0$1߿T2CEQ0-T$5a #A!BCQ!$B/&R1&C.Ec".#T3."T16"%4"E1 ܿ1" r23V","#2!# A3M%t.b0CB0B$,bC. /)4B! c0/T$Q"20!!+D1u"C? c!/C 4ο'"ͿA!d#A431C0cD!tE3r###C.72E1/CR.31ܝ$R&4"/ 52$B2#R/4/OS%C/S ݮ$@%" G3$CBD!D33 D1D16#6A%S1cA!3S $ SA c1 $2JD"SBA $s51T11 B G4! CDB #1%D2/$/ED #4CT04'BAO3S!Cr#$Q0 3!T4#11.$d$ܾ5!"42! w!!,7!c2?A "s!"! E2 # r6""/5C!Q$3 2S!D5##B 5 #S@DdRt""Q%3B5!-|#u!F!2B t1C1#0$?#$a/ޫ3s"!.1CR5$52R!11C!? '""B"D2>3%.'E"ٽ&#$C2ܾc!.˽b$Q#C"5D/E$'$b3v"2P 1U$0 D'$2 D7As7"4/C!0 !120"#&3CS1ݾ6""0 E45#B#E"0E2#d"EADR#2t4/1̼"%"3a"C ! CWC#B!s RPR?T"&0ܼ> .B c.$ $P+!$T43as/3cA% %"v"" 3?wS2# =3 SB0!V$ FC?s.QR!sR" $BU" B_ޫ"5%RAB$a537A"ڞ51c$3.ݰ#24 2cQ./7?ۼ#Q"b1 B2BD-2G!2RcC221r%.%30B &RtB225 0s##B"15.3@C DB'Q!2. TͭES33StB,E2.@A1ED"/$0EE!142!"=t "CS"2#0FD Cb1 f4!5#%"7R1#R2$TCQ/4QQ./!T# BS.D2BCTQ.53c E 52"s1,4 74$S""2DAF D'b!!30E#EB#d2-CAU";"72 2.3/s4!R3="b/U44R21 7R!C"# 7B/6T12/t5"TEn1 # %1c0/C,wA!"/61#E2G0"ͭ2 $E$T@Da#C5,5 c3 ,5b0".$.B/4r1?%2@@$B/42ݿ"%C1VBF2 ۾4 6C!ݾ/3Q!0FC!E225S33C $!$DQ Cv# 0 TCCDE"A7b 7B!S ͽA*"5D430%TB&2"ۺR/#/@"/!"65/$EB43BͬC'12"/#U C"7Q#W23 BQ25/t4!d/3SQ04#O 34%62/3A66"C3d1"c234 d422#cB316.B7.>%2u 10 3s?AC.ܾ%R7.aQ#00D!b4л_7@"R /sS#B$1$@4#0DD1!#C/4BU2/N62E61T1ݾ$""/C@S10$bC4"AU!S2E $##=7R620'20$?F!"cR Dc T3%44R?!BT4q.S.˾7A#E!#0۽$bC/D!'!d3Q C.] 4!c#54#324CU3Ϳ#%T!5! $Q.S!D1CQ D2t"5S!ܾ%2d"D"pB1"E!3RU! $41F!Ϳ#&E2%Q$#5A/F$ 0$B4R0%4-$bB15B.ݾDM$3!"s6"/%6#4?&S/3ڽ$3u '!s"BS01 B40FB '!"7">`RA0"T."""0dQs#B2!1%Cc#1.S 1 "4F4B!T2!"-EBC553AE $ DAq B"3 GA63 D50t""/5$Af4#B4/b/A "ʽ %T54/7a3C sA gB1/2#A$Ͱ7Q!"1D S1# 2.62S22 72u" D3/D3$r #2U2 7A4/ܾ-$SS c#241.7"D %RQ/!%4"C1'1,2a3C!$C!'C436 E252!3?ͮ0T3/5_U"0Q1'4"#1du "D s! %"UAݯ>s"!!D2TNO4R41.n0G" "GC"Q##CT$ D2 c0@$B"A"T1/  S3@5B&!""5Q6"! >s#4@ #D#03r . 6!1!C:c14"'q!"RS@%T3&%22F44 TD#2S?4A#-"BV#!31RdB. 3 dBS2u! 5C/aD2F3:{ CR7#073 D$1-T#B S1 &D1?$1.$#B!T"!24 C!DB3E Ud: % C!4r/22dAC6S" 3?V22cAS4 3u3$/4R734#C/$$ud5 3Cs !#DS0r " d2"D"7S2#R/'2A"4sC!C"65/2b5-'D!D44#c"DR@ ."AT24S#!5F2/%E3 'C2"#B1"a2TB2 0&" B!&43.R5/53E"B2 ##Q.#02c2%"&2!/A"$ E4 "%"#D4E)5 4#7!B $c1" !%R߮$&1 4D#G@"##!SQBa O#@$##a&1 !6#.A&B AR!5C4Q#2"#B %4dB 2A2b cQ""DA V"!471/%32414355R3C3? 24CBbQ.3$RܝCD ο3%3c!4  RC7$3/b!B46# #15DB/>!0c!2/3?!"Nb"@.b1" A2/3C2c523$c RS"4!0OD"##?"4A52254B16$#3Ua"A.F2!!A0#"B%27"#37@& ""3 r3"3 D %3TCMA%"2CrE -44 F! 3ͽBA $203q"D!1 !3 #3!B b!D/$22?c16!s/C/A40 #T!Uc2c1EB/#SbT@#6 Fݾ#Mm6443s"#C0!>۾2C3S""QE27" S!3!3A 632""R%t 4rD>0;"" "454 5!%!6 3% E$S4a A"C!E"sB!$1T2 5 B&C6# C/~R!1d3R.DS3Bt3b0$#>$%@$5#5A72?OCC!  E/ #D D R# #SOr &"Ra22ۿAa%3Q 3#!2D.sލ$b.C"ABR"!cE17 3D "d0S?܎347423`&"#!ͰD0 $"C&3A0&!"SB$3O20 $3/ /$6Bb "02"#-SAE3A5"4&2#B"0%4#B! #!32%dUB?34C!/DA!#%3B%R#"!!!#53.ݰB" ͿA%51#B 5!T4ܾp? 2B$ABCBB3!$1ξ!B@!R1" /ο C#r!C.4 "/!dCCR&"y@"."4c$4!3BC!BR0G"D?43_ !S4 s2 4R"2,343o#B624 !2Q?DB߮ ## %2 BDT2 433%R1 TC! 21r!"CsB 2%$TT 3ݼ#0.$2DO'bTD0dS3D-5S!2Q@U %WD2/U!24/$T!A2S/'3D"41$B!4c1c"-5BS D %!C/br#$BTB31SA%1D2 E4b.#1Q'QC?5E"tDR.5R25DR.#D4!'b!%A$8B.C 4R/#/TC'A/2/%!&40 C CO 3̿"r!'444AAcC$ c/ݮb1B#b,k3T/B?CR!@D2sB 3OE0.#s%S%CtC1?36# $T0c/P267C' #23E"6""!c$r!"DCC3$$a"Db!B# T#"# 6$0.wA$T!R0"c1"Q" #3!4!"2BA 5A41 /c2S@1 1CG,%P3!FB?3#7361.t"r2ݿ/E40#r52ͽ"D2V!2!2 3@r$C2!"߮ 5C#"3! $ CB 2"%#!3/b#A#/ 5R!6̿An3C52 2CD2#"#C.2# "$2/#SC2" C C4BC@3"CB/U!DA 34"C24 /"03!@ b@CB" 1Dr"7!c#3? 6212R! ! !$"23E1220$ A#!  %302'13ߎ$E-2 AcA;D%2  "#11 cPAC!FB .! B $ CcR7#$02 BQC5r## 44#@QCA3?t/D04uUc#S2B62"D3F""E!T25BDa.2CBTCB6& 42 7BCC! DA$&S0 s!41 2 $bc"R!$AC!%S?#2 %T!2"3st"@ 4CDcD DA%ݽCCSb1*2/7"#B!4BQ-5/E" T0 $.4bFA0 CR33!6d! 7CC !T"!%C2}#1 !%5B#S FA41%1̾02R2!R1 B0A,#rC1  3"6!ͿB0C#Pc1"R3/ 4BS"3b1 0"R>/#4#3Q!14ݰ!B5"3"!{#bB!#DB""! #2!C/  $#"A"A #a!3"!DB!$Q#2/%1S "Da. !3&"2"2C.$344C324#+ B"3!$DC!1## ## 44""ݼ 1 2/c""42"$!+/$0/ ! #SB 6!?3ݾ!$1 $!2 ##3 3$3/" "#6# 4<"q! 4 C2A.!43a1?-$S2B2/5D#/$E!!$3#Q0 21"5" 6"!P 23.22-3A 5 4#.#"#D ?R 2A "2412"4?C1#B6 / 122A"2 ! ""2" TB"A"3A /R !SB 32SC!20C 2 Q%B 22#}ο!#B5!"" C1$!41C2CݮD!C!3###5"2!C""RB?,a3AS!#A 13rD$!% 3!3c/4B!3b254@TA"/$ r "#5C4/B34a1!C""4A.E SA%3# 40D!D"!BB!"BCB0"?01$ b$ r 2 3QCCb !1 C50"R 52 !1/#ݭ4#"DB4 R"%#3S0$1 5b4.#BA3!/$AT"C.#c߾C C.#ݿ10c436"D #0;5B$2?5B#D3" B120#D!$2!2?2! 0B1""/. "C"/""1?/  #!!/? ##z!A!21!1# ""30!0!$33 ""BR"22no"!C""&$# #"/2 B15"#/424A 24B.#!22 !""!!A4 3! 1!! 4!!""B !?!!#"!"/ $$ ""1 1"2RB312/23" 4!-S. B3!4$R 140Q 47R 2AS!12"""C3% %ݽCD3S4/1#3 363%/2'2"D/S5!!0Ͱ$C0c?ݞ$1 CR3>E 4ACQ5AS/$0 B3#R.4!C1ܮ"@ CQ'!"0D3$A3?2s" 3Q2.DB/# $C23#C1S""RE #1#3#Q%S>@ܿBb R2CC1B03P3?7#2=̾30R!2B"0Q/15#51"QCA/4!"!#""!&"!""!!!!33"!!!2"!!!"""! "!!"!"!""!"!#"!"#!"! "!"""!"#"" 232 "!!"!"!" "!"!!"!""`k!!! holotz-castle-1.3.14-src/res/sound/HCCredits_Slow.wav0000644000175000001440000272333211177007633021447 0ustar jacobusersRIFFҦ WAVEfmt 2"V/- @0fact4data  $#"!&'!!#$""""2"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" !"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!////&&!!!ݾ"""!"!#"#B2 232$!G"!/ /1"!! #" $33ݽ4322$3313E352"!""5##  21CC4"p /  !  @/ //!#43!2""3D33 !!!#2 33B"!!"2#3B t"#3CCC#""""""!!#3$3B#1" "#"#3D3""" "21!!""!""#CC32!!\c22#3D3C"!"1"!!;3##""3C332"2!"CC3C$##22"!"2!445#3323!""UI!!#4CD344"3""ݾ"34CZCC422#"445#4433"""! C_"33C443C3"1"""234#4#2"1"!"!"/$""2""22"""""""!""""""2"!!UF!"1222!"2##2""!!23##2"!!!##3#~#!!!#3#22"!!"2#2#"""""#""""!"+!""!""!!!!"!!-&!!!PW!(&jf /-]aki+)^b?A! /4WR   BB=8 $ "AB&&!$&49=:+, '()%99/.('%'!!+/=>)("&*($&-0+.() "#&((!!+&# $1".aC#2@ ;ZF R E@2!!3 Q1 /3 R.c52sS.A1/"" 2!"E! D1#>32#$#/#2@?B3">!3""5#!R0!5/ 2?@ /2 .B"R"!̽2". %#4#0&"S2"10! !T!!4 2#!1%2#? ! "!2>43$?D #?113" A"B112B! C &1G"Q! 14D1 #1 !R$Q1$.޽#4S""4# 31 0"Q41 /!2!!BB! .#B/6R1"4"/ !A/ !531 ""  "$//"! a!"A .! " !/0!2  !!1 " # "  "  1!  !  E//  y#D43""#"""43C421#S5#433"!! """!""""#!#33!"4##3C32!" =6!!1!"!! ""!321!!"3342"mU!!!!""!!""""2"!!!"##3"4"!!!"!!!!!!"!"!!!!!! !!BL!"!"!!! !!!!!!!!+E!!!!!!y jp!! U]-5&"%)~'($&75++BB*&9C22 ((99.+++-2/#)85&&/2)))-1--+$%#!94%$%#+,.//).!#*+-,&&++# +-)('$''!  2X /Cr3 1"Q3 4 S A!0"$ Q/"% DT5#cS. "/#"#!eCS!4"  QD1.@.!B="AD$$@%"!D!R>#>1 #422B14#$B4"1%3 R>#!R0  Q!""2qY"42!"##%!%2!Q C ".1" B1 ""03 321@!$"!AA ! D31.3@"023B"! !2@" #C0{#!!$#R1!1! !B &!3 "2J<33?" /&"1  !!! /"3"!!1!#"!/"!! !.""T0/2. !" "! !/J!   !!(? /25#33#23"!$44B""#""#3CBC2!3S5#3C31ͽ\V"!!!!2"""""#""!!"#32"#33#3C3"O=;"""!"!""!"322 G5!"#4#3"!!!!""""""21!mf"""3#"!"!!!!!!!!"!!!!!!!"!"!"!!!!!!ko!"" ! !!! Tc  !!!'4!!!!!!!! !! NDC: FB-%`j-* /?UN:;=?%!(&,+D?[X #%*-/./*85;9 QP+/'("+(-/-/!#=@%%!"$$+*!%$)((()%"""""""""""""""""""""""""""""""""""""""""""""""""""#2""""""2"""#""""3""""233"3333"""#"""""""""""""""""""""2"#"""#33333333%(($'&""""""""23332"333333333"""3"""""""""""""""""""""2""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#$(&'()(/,!! !"""[@#1"12"!!2#2"!!!"!33 ""#232"!#2!2#2""#1#2#2#2524B3B"!"#B(b32" #232 "43D343!! $##"!"3B#" }#3#33B33!"!"!!"332232C3CB""!#!#1#!ݽ232#!#4523B!!#2"1ݾ!!!!23D33B"!!13B#2#2"1"!"33#" ""#"##""#""1L4"!"2#3#2""!!! """3#""!"!!"#3#2 !!!!ib!"32#"!!""2233"2!!!"""""22""!! +@!23##""2"""1"324##"2"!!!!!"23B4233"hK!" "2333B3222!"!"2#B2B23##!""""223222"!!""!#""2"!!!!!!!!!!!!!no!!!!!"!!!!!"!!!!"!"!! ""!!!!""!!!!!;F!!]f!! !+ "!ts;8njrs $%MN88_[_]%#.,=?99OO(&IM'$*+37/20=<#&/1&$*(&&(+// ,*.--.)2.+&&/#B!2Q 22#ܱ!D@S##2.R/C0C&"=b0B2r #%c.2SE$ 4!+FR 11 B0"Q"" @A"A !#RO!#"2 !/#F1E/A2`W$!2- 11!#0!b>!4BB"E D2 $0! !3 0#p"15 5#"/1 "" !2!A0#""2"!!2!A3!!3" "B 3"22S+  ## BSB ""D!##/!334# /"  ##2!!/  #% 2#  C@"#1"B 3# #2!3 21/ 1p 1!!1 "!0!/   !/! 1!!1!! * /   .2#C4""!222"#4D44#" "2" 2B2#3DC31 #4BC33"!#23!!!3D43B#!"##" 4!A."B3!31& 4! @R#!!R"4B/62" % $3"5!!20 $! Q !#!4"# 3A"222#"E#4-""! $Q!%!$/"!5$"P5C@C3 ݾ2 "1"H3$#.Q23.40#R2"CD1?3!""Q2 " <!2"B!!1### 02/ ."/ $3B1B1 2 O!  !" 3 1#!#!/!"\! #""!! "#? !1 1"!"/ !1  !7I"#544444333"#343#"2CC4#"3"!2"#5323 ;321"334#!"#CS3C#33"!"!3443B1 !!""!3S4C4#3#32 #4CCB!!!"!!##3C43""##"!3CC3B3""!"""^g!""""""""###2#33222!!"222"#322"!! !""!3#!1+!!!!!!"#"2"! ##"!!##"!!n!!!!!!!!!! !!!! :3!!!!!!!6=c^NJ'"+-!"w  d`>;52$ 03!BFSW  FB!.-(*!('/-$(&'46-2-*CE+($!76..//$$!&&+&)),*,***(%$$$%!!1""!##1#32 3#23 "#2#"!#43 "##C43A#4#43  #3!43"  "" A/?/!1 /    !  !e4D2!"CB!!!2" "$443!"""2B#3B"!""!#3k "" 33CC4#""""2!#3$4#2" ""!!2""#43R! "!"2"""!!##CC#!#1!"#"3$4432!#""3##!23C4#""!)!!""!#C44#4#3#"1!2#4tC43B3"""""!"CD4B4###""34D2CC3B2"!444C443B""!"!=F!##43444322""!!!##3334#22"""!!xr""#""22#!""""""!#"""##"JT!!"""###!"#+ 22""""323#"!!233###!!!"33#"""!=O"2222#!"!!22""""!!RD!"""!"!!!"!!!!"!e` !! lg4:-(eed_ kn;9 BF\[0.&$ KK:9"$))FE(&%(:<=7&'" .%(78+,'(()+-12-'$& !/..+/-&()(/-21//)+&)(&!"1A 4#$#RC!3 T23&?b.D!1%Q0R S732 ""2 .4 "S!T2DS 4.A1"1#/3Q3// @b $R"!S SA7"#1D/# "!D@2%5C!c/B@!B0#1CB2A$1!@4Q4 "q!52 !0B'"Ϳ4"! 05% @D20 " !04!%1"?#A!>#32". Q 2#"3"1!!04 "2B  #C #C!" %41DC !#!"3D"#""  C0/2!!"! !ݯ$"1$1D#"2#!!1 */$#"""#!!/#"A10 !"1!"? 0 2 "! !0! #!  "   / /Mm2!3B1"3"!33#!4534D443""2""DCC331#B4$3Sr9#$53B34"2"#SSC3B!!ͽ!"2"!"CBCD3#ݽ!#443324CCCC3"!353D2B2!"""!pU"#34#""""!""3#B3!!!#3C3222!#! 81"32!!"!2332! !!!""###3"!-!"!##""!""##3" !""#!Kl"! "!!!""!!!!!!.+!!!!!! "!!!!!!!!!!!!!!!!j! !!!!!!if RY!! @:BIfY25=D;+42:5_].222&26DF `d$$ ,03/-+!%%" /@D/&)*%-/!!-+**$*+'#+,0-!$#)($$&!'&-+&(1,3333332""#"33333333333333333333333333333333#33333333333333333332#3##333333333333333333333C3333333332323333333"#23333333333302$'$%+*!!0C"!1` 1D@"a/B$SA#1BF@ !/a3>RC1 #B22C!1!E""< ! Ac%011! "2"RB !24aR$! 4?#6 $b%112#1"R3/"#30!CSC"!A D?#!A/!3"<@2$?2"3OB""# #03 32E !4!11!#0" ~A " B0 #B3A!?4 Q- "3"#24"02"$"""@2/ B#3 /12"$/"45! /  ##$!#02#Ca4/ !!"!A  33 !C$! /4;/2!/ 3"! 0?1@ //3k!!/ 1122"1!2 .*!2/"!    4SC34!222"!#4DC23B3C""##2!34BB2"!2#"!"43C42!"##CC#"#3#!!"333"[@""!!"2332 !"2#"23""!!!"IC"""!"!"!##B"!#"""#!!""!!#!!!!!"! !!!!!!!"! !!!!! !!!GH!!RR"!;2!6!!! $!;=\WSM<=Zj.&$$RR?D /.=;  (RIKG!%"'46//#!FBDE&%#$/./14/&&&*&(=9(*""65/.&*!#0//.//)'&$,+,/03++)**&0-1//0!! !"!"##!#""!##1!"$1 #"#232"!23"2#2""21"3#"#2D3CC43!!""#3ͽ"#3#232"434C$3!! #3#2!ν"!-O3322#3$#3B33""!!!"33#""33435"""!"""2""ݽ"232"!$$5233#31ݽ!"!#3CR#2"!""3B#2#22""!^O"#33#"1"1"#"!!!!! #"#!!!#"3232""!"""g2"2!!!"#232!!!"3222! "!!"##322"!!!! !1!"!2#"2!!92!"#23"2"2""!"! 1"3#33#"2"!!!!"23B42322"!""334#33"2!"+)""3333#3##!^]"""2###3"2!"!!"""""tQ2"!!!!!!"!!!!!!!"!!"`C!""!" !!"""!l{!"!!" !"!!`]!!!!!IC!S\%$&*}~}*(>EFCa`UT#!');= UT(&FI),/+/+=<DE(%76&'&#$&/0!!43!%$++$&%%'("!55#$2-68...  "2Q. 1AA  B"QC,B5"53Q4A #E#CsDQ" 4 r !S@!~"-4%! " E4!C3A $0%1 4"!#!"Q24" "%Q"?!3!1 R1!20!!#"#2#C20C#"/BA"#BB"2#?C.1!$Q? & !#-20$C!B/ $A#S#ݾ!  #4$A>e B24 $""R"33S /!#/33B ""p/ #1/B!3#."2/!!.#C!/  /!30B #11"A1/0!!.!!!?!/q ! !2! .!!#! !1/  !!  !  9"!1  0 ! </ //2B! "#BB3"#4D333#3""!#BCC32!"""& !"44D344"!#$"!"CRB2!!"#33C4$"!""22!"#CD"B22!!""! bC"""""""23##3#33#"!!"####"12"33"""!"!##"! !"##""!""3!  ""#"!!!"   !!!!!!!!!*! !!  #/!3)()kgMM%6:<?*9rs9;f`)$.) JK<9)%7:(.;;--A?&$(&.,##;<**3333333332""""""233"##3333CCCCD4C4443C43332"""""""""""""""""33343C433333333334444433433C3333333333333333332"""""""""@A'' -1.2#!+)563/-(**""""#"""""#333333"323333333333333333333333333333333333333333333332###2"""2"""""33333333343C44443C3333333333""""""""3#3333(&()++$$!!*+$$!'#!//&%+&$!p"$ ## 33- BQ#C>A#-0"CPB#C21 C #/R!r"2" %/#<7 %1 4D" D/A5B"@ "C5&"3 3?#2!2/3R!"R D"!C $O& #/31 /#2342$&*-.//2/0'$,,**&$&(21,*(&2. &'0%!/@B!$5!!Q"!$3 B!$43b#!C/#04Q 3! 2c(E!@"DQ2!22? R2CD BD"1"R r"r2!3"O# #O%"D#B0 4C"!.""%# !22##1"3D2.cB$!3 &"DA5`"u3*$1_#S 3?2Q?s,'!?r .3&h@ /"1!aS F0pD 0! !1% B" % ?q6%O2C @(.%A-f W/ASE?P52*# %  Q3s=/P%'M#02 '? B2t(A- $aSB$1,4"?.B d/-BC5-;!#B#A,S!!>aBS-a232+,.aBS7=BQ5 )"@A1@ BBRU<1Q%@1?$/1 p$'.-0Bb +?#3A 2'?_QCF.%R% A aBV. a$"%,<"#!!1 r5 F .r"5.1;"#/B6 >sSe. $^R/!1C+# O6rC7$NR3!#,*@b$ 7_RrS0.!2!?"R-?@s6&?2r,13o 1!B 0qw#&!@D#/2/1 2۱S'?_b$ 2" "B @,k5/&1@ v3'1 O5/ 0#A3s. @5!6OC3o3A"7/qcs!Ki/!$Q4#C!?aBt.MAS&<#""R !5.BCv>AA 3-/.a3ߠbQQB31@! $#."qd&`0C  &!Qސ4',"rS%12 B r&/0RDU>1r3!+ "! ?S3W/OQ3&._#4 A" & .r4 V/ R#",;A/CSF /r$C.. C!3S">(WR%T-B/,1)AbR 5.p$%$,2! 3 .Qrп5'.Q3%"M1! t%'0at4)O@$4 R."0t5'o0r">#2 4.'APT& ?O"s!3?#0!O56'@@t$>!.2B6.0 @S % @ `5A#"/& 1۰2d/@r !C ," !!1d/AQ 6 03"C 5$-/Q1ްS..PQb1PA#"30? Aqd,`2R,@#AQ B%.!(Qqb@ 4A#7 "qD&-AQC@#?6 !b 3 E>1BU#'/O" B%O Ac'-@A A"@F! 0$ Qd/B2d/3"rS#C(4 b5 .'=Q4C-"BT0#'0 Ab S?AAR7 >C1d-a1 'O1#0߻rt1!'R>/!5 =C"A%1BCS>1rV!_! B!A /1B"73%Cc-+"a B03-1U!Ab"C.4>/`#3?ޟ?a e\PC #<0-A2CPA$"!.%" S.r0'C?$ @!>!$"/#/0F=`F`EN8$/"C#RD1 b6@cq"`',a/&Q #.$12V D!'^$!?B DL/$-q a q5/05#?@%@B@?A E@d.Q3!Q44R& s! .a Q<B-!2 ,3"A d#@C"  /14- a3AC VPtTPC /1/"`3+?@/$!?$1C !03Q/q#/ #1&!#!q#X& @ C #b!QC=0CQ$.# 4  r# ,Q! Q s c -B/ .^1 b/@D?$ OB&?rF "Q"A04%/bUp41  5@-C?KC/ > w""2 E0R#-AO% 2-"/R QR7Qt2@3Q  33  C5?!$A/0s.Q 430"3 s-_c.=1C"A!"R-$/!A C>s6/1$r'0BU1"EA2- s/,`uN5.31"bF p&O 3+?PE "B 42@+ AdAt1B0-  -"%2>rB /AS 0 D! 0d> t >Aq>-r3A%3>"#bF aC0 12A!B$0A30O!c/ s-R#2!0!B$/a!Q?D3p6$O31.$ @G27>C?6O0D/ /C &NB"$H ta%Q 0 S"A!?D ># 40Bs02c11 3AR<8 b%s6 Q"32!4? C.uD>C+ ?2O02 E-Qr1b O$$3 "&#'> B %N3 NS '-3B:!QQ5B5-a5>s"Q1!S?Qtq/s.P!-!12Ad2$,0!>B A T RcaE a0T R3 "?!1C16 ~1'?"A S!cB0&ROa!r16!$A"62?0%.tN6Q#5 $C S2B F2$7.Cers ##S! &0" V /c>OeAb? R1 $ AW/3$? %.BE.!CR2 6A3V"D-Q#1=R/Q/3@a 5)a4'04 #3R4@ t7."A>@ %S  "S-!b-#BB S" =$C- c"&, a#24UD?0sE@24/4 !7?a5>,B @ _2Cc.NC@ #52P1b S/,A#-. ?1 R21 4BC7 "aDT !QPt/9L.e02b72@30"3/aS"/0$2! 22"!CPDa 5D/a9 2U-;32QC570@S,.2/!?4""&0 1/#01$2S" "#-3KP1$0sTS06_32B37O@R"t>C7 #1##Q/D$-q;# @>"!2 #!!@ r#A s"$-@33>C5 %! Scc?_4 (1B?!-!@0 t'L!a 3"B"/A/4"# #/ s 3N1)T  a"'?Cu7 711rP# . U % T G/RT >@  2/D2 C0 @/0E  B5+L" 2@B0342q s 60 03 *!Bc@QC T ݠ#,'D6 $?!"2 "--2 0B$$+_7>DR!A Ce !q t s## .QD=B$btT-@B4#+.!1T20>SA.@! $ #$/B D3@$/>Q6!0$PB =01F*t $"d!"BSR"4#A"Q 51CBR2!"&""1B0E#t!$!A"4rS!!$A#A;D1 "B$@-b0t 6S?7?A& .$>A$/,r/F(A4#L"#B24, 2!C 50/a'!!_ 07?As7=!B aD-'ObD ? !  N"A ,c!GN/P!Q!S!$b. 0E !"B/DA$"AC /Ac6>'@ "arD!%2#/r%U RC.?2C 2$3 B$4/0 @1aP 4B 1AS,1QF#@@s  4 0PR-P3"rD.V>bU=#BPB 0,4D/#00G2A2]/C 3AA2P q7@s'Q/P" @URAsc%@Q5-0-"!s2 /QB?Q1Q'@5/"B#?л0b70B @b003 @ED3O7O)b70Da %A?@1F+!QC.&0B/0/3$Ps&.!P. !OAVQt.Q# S7-72a5/="$,R/ BQ7@"B.& @, P5 3B22=?13i'/14 . 1!?F!s& 4r DG>bc SA1227=ns4i4/""!?`/s #@# 34& @t-1Ab4 'P '=B$ QF E/3r-"O#2#P2$A.A ;OB > 351 301A R aC-G5_#R4D /R#.a#447? PS-"Q?" Q   2!r BPbC#/#2^Qt.3Qs"/'! /=a4*1D1Cs 5._C0/0OC#ޱ"2 /o'r20"Q/3C0+7 ? ac>B !2?1??s+ PRU>SAPs%>#!]=!1 @1T,AQB? ".3b! 1 $/ s$@C#?# 2$>sc 4?V1rE+OB?-B043#OPD@L!#A "" D "/1  b.-?C$3 #D?RT'P2ܿb37> Ps &-2` > 42U&.!a A=/R16!iB$>c01"B#22"q#1 S7!%2Cb&.@!D "#% #?QaD.|"q 2/# #!"#Q$=^B  b '  b%0Sc.%/%11D+Q?$  "cBSC=E?1#t!`.12$ CR/P"D 1C/B4a/3A.$ "Q#' rS I5/?3?-RF0QD %4? s 0%;a 1!$1@403" c D0 5!// a4 !P2!#,R0&`4FA5A R C6-B%">%!".R/iR Q/!##"3/332A/NBD//"@ S%/qEF.3_"aQURA0/A#%?SA! 1c!151/Q ?.B3 Q R-.PD o 3U"NS!οr Ao"/-/D5B4!/##3"B  3@B%?2/r"$Q# rS!ADB CO?S  !1R!?2%BS F/A1R  2?";!B. > B"31 D B??B D7?bs /#P!#A""^2E NT " /3Xq C $_A!44  ! !?B23+ " !34 #$"0147`4T=21"1 E12Q0#O2? Rc BEU !Cb+2u5#.Ct"!#R  r21_b"T>`WW60#?AC#3A  ! _ 7/!F%C/E!C+#A-/"/ D6""Er#CAC #aD R1T  @E45-6!/RD?0a70=1/#R$ =,T#/$s6W2q!2 %,A@ U'! R4&?ݮ?r  c#A Bc!7 r3 5a y3# T,1/ 422"B#3 /Q D3CA "7 ?R?4332/͠/SbAqT%_S#@B>3*C.2?$A>1$$ 2E?3.3b? 2޽3A$  Ac .Q0B C D?As-?%C2 #"3 0c2 6 ?12Qݰ3 /C  "11!T/N>#%NR6 0ξab ?b/'>2 "2% !A!$.!B 5"2q!3 A 0/# ,R?B"C &1!S2D=q!3  v#PaD0!!QC!".P$4 04020 ##1$A"!EQ 5 D"82  a" 0!23 2$.2c<@R"C" 2Q/!!!/2CK$?450OD@D-a 1 /B$"?!BS7/1C $-/B#,.C" P# 20$!041+ 0QB?!#@"A$ =  R/33? R7&/A  #3O P $/#_ !1"D-#B B>#A 4/- R#/2%"AB 3 Q%.A!"/4 R .4  "?B34"PCB-!"!?!qg1+"=22.C2R6`3.0q%O2$"%>0C A. " ">03"-2 "$2"!!/  B4. !A/#! aEi-2"D4O!@2.!#O@C/-"1/!3#3"!A# /2 1!"A#5/D - ?R2?/".$C@A$OA1!#0"-!! . !/ /"  1!! ?"/R A21/0"!.B"!?2 B 6@R#/?0! 0" / 0A!"!>3"%!0b P!0.!%M;R2#/%BC%0"/ 1. Q/" # 0.23 A BB?/1??$OQ2.11QD$?B$. /0B-0@ "3#"@D`A. !/3@0-#1AC##OQ $0/0/B".2Z $.?2!4-?!B2!.? 2! 00/4 "" B$ /!./ 0Q$?2$ /0 B!@ >./2Q2 N.!2#"" NB",> "!2!%./r3$O?3 #-A- 2 ! 0!03$.!1 "2! 0"/ "@1""B%OB%  "!! /!&6 / 3/""#.!0" !/ .0 ."! @3! $R @#/B!!"B%2!S/ $B!c$/1"" !B.#Kd32!# 220! "!0!C.#1 "$#0" !.1 . . ! !10/$ !3 B". B1/ 23.0B2..0!2#C$!2R5 !$@2"" #/"D3#/4#!B$0$21 $3!#1/(Fݼ2 C52QC1" 2#0$1/C%2"#C?413/ #"!=0/$3C/!!D! " $AC/#A 2233/0Q3$.1C4[ #2!!B!5!1C4"#A" ## C 2B#A3# /"D0 4b" $0"""!$"$!3 1!!  S!252/"33" "!0>!2 /20 A!$ Q"02 33!!!#135/B"S//#R0  ""#!8J#"! C!C 2" "!3  !$!BC "0!14!"!"Yf# """B C12 2!5!#!#2 13230 D ht#1#R"4 1!!!2" ""/#CA""D"!B113 23$!41RC/! #"!#!3#1$3C0""1!31;9#"!!##!224 A!5/ "3#"! !"! #33 "3140# 22"3#//1# !""1! "#;#?#D#3A32#2C1#!!"/!B#/!!C!#!#!"/!!2!"B   C!"3B"!!"1B$!$1"2 !" 33!!5$B!#C #!"  !du!"" " 1312  #!2"/!/"#"!!!"!!C1"#!"3 AB +5!!D!"!  /"121#2"!1"!"! /   323A2# "" """1"#22"/" |!"!!D C#0B!30""!13!" " "" """!!2!!" dU1 2"" !"!" 33$2 # ""B!##02##"/!2"41!!"! "# ""2/2"0!"/BP`#1# 3""1!!  20 """#2 $!.#!! !"!!!! "#!!32 1 !#1"2! !2#"!2  2 "31#2".""!"!!!!"1!2 1" ! 2"  !!!! !) #2 !!!" !!/! 23 !!!!! 2#"0!"/"!#"""!!!2"#   ! ! " 1"1!FN 1 !!!!""""/!!""!!/! " """!""!!""""!   ! 2!2]i"!""!! !1!"!" !" !"#   !!"!"!!"/ !"!!!! ! !"!"! ! UN"!! ! "  !"! !!!!!+!! "!KP!  !!""   "pw  ! "!" !!JQ!!C6 !!!!!  9F/!  34-#Ca101BB c"B?#ܿ$2$7# 54E!RR+BR 30%.#@ 5.$0 #B/ ,1 S@3ݾ#$.#2. 2$$# !-1#2 A52!3T1!$0 C/C"!#NB53"CBB2 D/ D  #3/!!S0/"#A 114B2@ݾ #0"1"#Q2-% %0!!.Q/CQ"3-#.2@"A141B @ C"b A2ݾRB0  $t44/3$2Q 6 !/C!0 $233C11!3A"$4 ""3/D2"!C.""1?2Q//2 C6!!!!#/.1!/2C !".!!31!! !/!3! /"  !! !//u!  .   ! !/1((!/!#SB3CS2""" 2ݽ!"1#223}!#3C"$2!#3D""1ݽ!!"!#!""$A""!"C4! ##!"3"4B2/!!" "!!3""!2B"#"!!"BB""222"!!""!"1"! !"!!!"1!"!!!"" ! "!2!!"!! !"!!!"1!"!!"! !""!!"!LG!"!!2!!!!!" !"!!!"!! !!!!" !!!gp&!4=!! !!! )$06#!KP?BERNI:;?; =9"!A;HD'&?9*-&&,(A? PP$4=*-!()-*+()0>D()!!-22.()&%&+%&   /A"!! 2#!#! 2BB0B#  3$. 0C"!R"!!0.04 $ /"QB B3, 1 >B2 D 21b 1!B2B3,"4/!/! .a# //!3  a"""1# aBm"!BB"c//"15 @!2C$R?44 ">2 1531!&BR  T7Q$b S0C8P".3c̰3@3-"15/ S1"T0 b"?c  "1$Qc!BU1V.S?D3C1T M!"#`R 2T?b#6BT!D61C"2"t!U 4R$=T1F 4 #C#,= s1d0D-B&"V 1#0.as /!U1R.r$/t. 1 /50!i62t"U03-B $ d#@4>A3" s,AU! 3#@/S-/3!$Q 4!#014 2C.S AD0b3d/EQ"- B"R/##c-2E0BaP!T,` #@"D# T!F 5$c& A!V1"0Br..1TAi5s !e3 "%@"#bS/."޿@4s#1d/3#2#$""S! SDa/COr b?" #R"! QB#3?"/52%0c-!52F D-.$ -3 y  c//BE!RC%/"E-B413@"4.BS.1$@R c%02U/B#2@@!Q /s /2&A%r!61 B%1!!" b F.Q1#>s2c#?#@A2!UA 14b"0 c$O"2,Q 7S&15B 3F 1!6B"1/ B CT..B4@SC/643A$0"5B! "/T/!6 cS$?D2%>""r c2%@b 31!S-B"0OR!/|C?-#B3t #3T02,Q . !B #D10D.R$?r24 a!!&3 /C."$"c.R 6 /C=QB07.3&!DS CN{4 "B2!#>b 4>#A#c@"E># "!!@R E 3%B$!t 4> P A!S"B<1E!/!C 2 cN! 5!3.B #̰12!!r"b~RsR" PT#!" @2B >7>?s2-SA%T/./b0!2@ 21U/" $F27/QRU 1"  T  S# "1@V2!"R$"E2 (?"/2  Q&1"-D 2$?D-2a %2 >"t/Qs1S /2GBc/ 42 d 13Bb?"/r!#!@N$3A#@ SO54E G>S,?c#3Mv4 s$4bt0"2cBO/R.4c4aB#"3C0!.@0$.1 2.c-3UATu.c"c3"2#!# &5?H4d"Sd#1tRe" 4!&3D"R,1&B .!C,b/'? 3 W.(b./URE0#1"wR sbE 1 a"BT-"S!C?0C._DAb&SCAE,/#R#.61$A S/% *S.t tSS/4=AcDbSAAQ ?R0d140AE/2.L#B34#Tc6.T"D>&VB/BD/E0Q%e/ 2bS4cAc!#,#b-@R@O0s1!"s?C"G063G.b!C"Rr- B@s $ 4C?>F.S35= BB/$/b:cBS71 bA"#aB0P?a !37$D1D>t/6-0T"A4$17ݿ'13s % q 74R/S  s!">!2S># C2F3'_341r>ZNa@/$0b$ORS+ U Su tAs,3 1CC!/cA3.DS,@#"WSQs#aB 4/R,2 3,6 B./>q,c- @c.#!S R/p3-bCB CR0"% $P P2"/SPBD bCC"2+ 4R'X1" 3?!C 3 BE- c!0T T1% /2C۽3R#s/a r?1   D22.."!S>""?T>A.t2d#0U#CE-"0#.C-c?R t.D-u2bA#1.bR!R 4  S3 b.$0T.1/#027B+B! "a# S R D r0"*.S @ O52""RR/Erbb1C R_$1S, S.1 Ea b C!R+BQ% a@/R-@rBrbeB1UAa6Q B//0&R @S "3?$b$ E"D  b!B&13B &5BS?C 5>!C.RS02#"4#!!5 /tSA0F2T3"@"- D S$!0R0 A" "D5" @T#1߾C,4"BR S"!T+@C!3%/>@ra  D3r""s 1!"'#!/S !BA[4 Rc3C,0 B$A ,Q&##"#BR"!tAU1 -C-C3=/,$#R-$A!T?bE Q4Qc"D!sS1#QA &1.6 BS554ADO@4.#$1!10 2 D ߬#7@ A55-R%B d. 42>005!2c.QFA4BC2 taBP!3="=c#E'1UAt/u4!  ! B"TF.3AT $ sB5- %S""AA#"/C1q "u#s/>20. O,27,e aD!2BV1C=ds "C131B4!q F B4#3B115/S ASo4!1T3'a 3OS!!D 21?R$B & sc6 ;#a 72tvLbQ!aR!&.2E#AR03D> b"$ S3Aܿ B3=0 "! 3QT"e2 3/#&%04Str 72"P6B sr-CRP"#/1 D%0A2/B3&1/S/R:!R/!A CS5r<  6A24=1 "..4$/_$&1 5(O4S&A 6" 4cE d.a 1a1=BGCD3&Q>c=# $# #1|93!2Q!4 0'!"3"*c2!?" 21" !"ޟ0#Bc# 6Q 6@ b#EQ9r/OO#M0C?-"$!FAD>T-AC 1 "#0$D0 CRD?A %>5 S$2.1"aB$CB//DC.152 T>C1#D>R!#BAP 1G/"C$A 1cPE/s4"A b !2AR5>4A 4 r0OC0CQRB1A S/37%3'0u%D 0B="$ ,s/4+q!OF#S/sc B"1">C 14?/". @#.!C#RA 0Q"3ޮB?S$" CR071T## .! ! !a/A #//t !51$r"/ݿ%C/t.51b"C!!2 22t3! B,#3-2"3C%03O#//31 T/" !3!Q&&!&7a"B6!C  F Gr .R !Q " 3! #a R1?3> #RC"ް65!!A 41T $3/0!/ E@3/ uA.$s&$S@ c2 >Q@B 0/#Az"!s06 50!5"1#C#B#4/0"-3/D$ B/ a"! !"!C B$0C/EC$R 71432!5CP!A A D?2!"113B& T. c1C#4 5 3 ?3   %.r2 B5/@  4C! s0 3R@F!8C!"40 b0>#@#Q! cF E0F&  A2/"1B# B#"1 ? "QCP12!"3C @C!$2@ U! %#?A 4/%!-/S-RW#CB$350S.c,3 B50"2 12$T11 6@!c2C3!!!S $!SF! 2A/3?B.$/CAD-r 2b C@& SS COo"$021Q!30R!2& "?2D-3/$4!"013/1 B#B%02.D $/"e1! 341>!cbR4!15D0 #RRAACO1221B?2/L23E ݮ!.B@##.!T/B2/1/ AC #=SObR RD/ 21"$ CR QA#OA12R4#O#DN-AC @ݯ#33/42x P  %/BBCB21##5!b-Da $@ 5 A#S1?"2/"// 0B1 "2A4025DB$05 -! "A a 16#A2?"1C/##0"$"4.rB&!#A33 1#/! !!" T##""6! $c / @2B0/A3C2 ##BB/#Q 2B0$1/C QQ42=$O#2/!" B-/? 3D"#R4"!6Q!C@#!1 3"giB-!3"!21 44""" 42&  %  4. /0&A=S 11$!2 D0 A c !10B/2#0-A1@"RAJ+#B"!2 .B0?!3" !!!"0#@CSB4!"B4#" A.B 3!" !/34,1 1/""$$4 #>3""3c.#$A"C D/201 /""A`! "@1 3 2 4!C$"" 2/B00@0"#23 8RB %"3>R""2  ! !R !!.!!A? ""3 %!31@ 3! T2&/%2 S/c# $A!4$ @1%! $15?2B EC 521D%? %!"C3%22#52 B$@1R0!40b53)}A5.% 4" !! %1'B$6 >$A0!#1"0/ # #40@6A2`D2"074D!!##5 .""1/"M61!"+4C !AB%2-!!A. 54?Dr  5.D"! !1"#?"TRC.4C/A3T$ /#2C >3>6  #B1#>B$-5 3B!B1413R/!3?#Q1 "#BA6#> 3-E14"6  $1">$3"@/10R0"B"$!!! C 2>#""#? 0!/!!#"  1!"!! !%> QB2! s"! % /"B3" #/ R"# /1 "!""!!0# #"0"?!R$ /C!#!/.0/?B $/2#B C" 0 2>"!!A1 /C2!C! /""!$-1 Q 40@!0 C @$2! 10! B 2?0.!B0B13#" B!!!BA!3 0#5"V3 /2"$# 1"!   #!0# $0!C4B%3""! T1" CBc24B 5CB3#S B/2 A! ""? 3 1 2?#!!!A 0 C A.12"   -!/"1!c1 !$R!"33C1"#A! !42!3D!#"""11 %4!B!T& ", Q#!1B!#! /"}" C0#2"2!4!#2/$3#23! 423 !3"2"31!CBxE"!SC!3"&2D0!S"!"2%21 $C1#S1#3 #Q"2" B"1"B"3!CA! 3#B32"2/2" " D2#"#_uC315!%B #A $1!$B!DB2!!2!k! .1 #!! 3   !1BA D!#/422!$2 "/$2"!#C!3!C@!$3 #441!D" !C2!!"!"!4!B25"2#C/2 0  .  ""1 !@/ !1!42 !!B1514 $B!!5""C $1C"3B#D22!"!!!2!!!"3243DA_!A2"#2432!!!$33 2 5321" !S"3B#!!!"%2#"B "" ݾ$2#!C03 #C!%3""#$#52"/"!!!"""" 3!3#B!B"!3! #!!!!0w!333#!2#32"1"!!##!"1u"C"24! "313"C$ "#C!32!!!"2!""1$13!2#2!2!! #2! !""2"#3C1!"4!3  ![k$1!2#2" !1"13!13!4!"2>G3"22""2! ""!2#"" 3r0 "!1 ! !#1!!"""5!!" !"!!2"#B$22"!$""3!!"1"!""!!"!! "10 ##"""#3#1""!"21!#!2""1!3!$3 $! "2"#!!!"" !! !  !#$!!"! "!!#!!# P="!"41"3 1"$$ !""1#1"!!!"12!" !" !"#22"!!#""1""!""3MN !"!1!" !"17-!!!!!!!! #1"! 2#!mU""1"!!!" "{""/" !!q"#!!"!"""+ ##1!!! !! !!!"!!!!!2#!!!!!DF!!"! !!""!" ! !" ""!!3=! PD!"!"YM!!!!!!!!"!! !" "!!"  !!! ! OPC6!! "! BF!!!!! !?58/ !TY !16   !!(cc/.B/R/"/ S C"/Q#$D s!4-9w##Q!#ATD$B B ,1#  "C$DOAr6/B0AS.E 2T Bp' 3-C! !!2#D! 6/.# 16#-3Q@ 5""-B!A.S 4C 2 #6 $B2!!@##2#R#D#$!! #4@"y-20!$@#"!!-4  ABB"?@"245"/A !"}na#r3@ 0?30 $BBO#/3!"!0""/ 5! !"R 1!"!!$!"2BA  lS3#!3! / 1#! / 2."00  /q/! /!#0!!  "!44"""21"""""#33CD443BB2ݽ!2!#443C"3C#22""2"#DCC3B!32"332 #54#!!!"!! "34CB2!!"B3!!"CCD3B33"2"!"2"!!#3""!!!!"""3$$344B"2!!#!#B3C32! "2233"!"!""!""!""2#!!"!!!!!!""#2""#2!!!#3LD##""""!!!" !!"!/!"2!!"!"!""!!!!!!!! !!!"!!!!!!!!! !!"!!;/!GT!"UF!,; +'uk;2IJ)(PP26,)SU!LM87 *-+)+/=<-#)+*("(&&'--54 "87 .&&'#%&,/!&/22(&"!,*/-*,!2"4"33C""#2 ݽ}!C A3 3242>&2$C#0"6"a"%##AS4#$/ݝ"S"#D0%33D243"#C#bB#S$2R!#R32b/?"$ Qa1"d4!Rް!3 !B4S$"#"C ܿ42"#4"3%"42!6  "2$/3/ Q/""5b 1C@ "R2-  5" 4 3 >/q0s6"_@$D 33o#30-rw R$B`S'"q1@E  "0""A SF!QR!@$/3 Q$?6! QܰB%(6.1pC13( "/./! 2$E  p S ',>$P41" C1/Q$T/ Br!D!1"#C? QCU=q#A$.3#!32 D..qBd,A.A5$U?BbE- &-p2 B"9"!A/1a #.$>Bbd'1 !!2 0Bq#7n1YrCB%-!0&!@ C#'O`r %16=@#Q B-'!P a 'NOs3 N%1",*S$ 7OOb% 5>/N!RB$!@rC V/?D40%!- 3>3$^u>{! #-,20"##? aCU.b%4,B*"r3NRCC,1<2""0 ` Av$7_2b +A$O1! R!-0Pt6?7O $S3?.`"d##;0`E 3P$/$3@2$-PP t570@a0#.0@SG-?@RC#!%021 36>Pr F 1C1#/>!ASu=AbE 4$P#R 3B!#. 2ru"`1% 6.QP d#;@QT% "1PC%@at%+#Q$!C11! # "rc6Aa% 1" ?21/F0 BSD/$P2 2!!/6 3aBW/@a 34.0#B B-& R 4 U/NR"- !0ASC 7 q*!#&.B"A!.B+3!QS G.%?sB"04c %?q R%, /4"#!Kb -! " s%-oQ"R%A=0!!u'@Q t% %003cC"N!@OܲSO$7P@s% !_2%!R/7'" @ s 40Os  B>&1@S7'OAr  !9=#!#/6$0 PbD /0C!2#>D-?23c-AcE -_A AdT6> @Rd%A415 ,4?a @ c/#=AQr-%A3#1 D/0/B qd!1EA#b2 O"=2`b%,1pc  !"03" $ .%/!PT7o#$!31/?'4 AD'2?p40%A&!"C/d2QG/, C "@!1>QS30GO ADts01a31B7 0B0d!B $b.$#".4 -$!2 'tRD>2,!? + ,S!/G3BS $.PS262PD !!R#ܮ300rCu-2A"q 7`6S/vs0&@2>0 S0/#.Q3?6!.E a6/11> !1-$".R 0$6c2 u% 21a# A%.?s.B#=E/!r $."P1#3,13."T +% /%! >#"!R "/B 6 0 b6/Q#D,"S-,Q`+A As&As ?*R, /Bc0S'> R>/1 q 7054"A/Q.#RD 7`1 422B"D C2!D"2u/a!D #! 1C0T.Q3D`D Qb #a#!204&.Cs523$-q0'.0`6?-3CCsPS >Q" 2>21C$0O 14%0R 6>#C@a/1"qu ?!uOc$,$Q "CW/RD,_R/!@%1*2/ 1O"/ADBd.SA3P  7 !36/"Oa?-C6AS-E=6#5!bF$}q.!1=2=E?. BP"."2d1R& A>1./ !-s/"?D0r 2_.A4#$!B70R7-`D @& rqD!1!./PCR &!D.(B R"+c1-2#S a5 C&$D.A/T>N$2 %"D GAT&/!4 #Au!Q/@ -A$F@<&"@%!rR4.3$ #">,A!#; PD %TU.q5  a">R BE/B-35<S.v">#E-! A Qr.$@61!& 1$t .'?!B!A $0s6.P3,Q s1b!a-.a$#q" 0"S^]. r4>B4?TF.pd">B2% ޾RE1R !#A! #b2R0? B.,2b#=!A-"!;4 .#"Q5.Au R/&2!$1C 7^Q!6a#.-3!A-1P AN"a #?R&.s-!QAG!?C 1-q s/s/ =/r0"b"1PA" $' "&S& TA#P $ !?# %13V? C/"7?S.& B $9*40 #1S- ݭ$# 6! v1!v!""<R&A5P6/"01!6!Q4b="a 9Q  '`#RF0$Q/ C/@bB@T1" b!$a$5B3"%2>/R/s14cb20Qp!3R  CQ!=uu.q3AB"_r&!P!024Cmq#<" 1R22 O tB2/P/ 6/#'>3A RU 2U .12# A( R).,oE #.#-$#!A".2 1//?D"S/R. 1#v" '!Rs-2NS6/%?OA%1A1D.p$% $DObAS O2"1B7" 7p 0 U >"!.Y$ 6ݰ$$50R a5_S&#0$-$P&/ P6>Q"CbC:4Q"#,0.# 0Ds6NCO# Q4@35BF/ r&O!1 0 As&/BS/4#1&14-F]F2R,b0  '`!5?9B3#0ޞQ3B3> Or 223#0#O2+6Oc65 QB/0O.D 5 " "UP#4rB#NA2$A 1 Ar - >@1b4 7``c13!b%.!G?R$ T-Q A1%Ca 7R/?7CbD! 0D.*2A5Qa43ܽ%?P r.@ 2EO2#<0S/S,>C_A5.1$@CA./@1C@c !1P# 2 & QaCc.> A651%@_X!$.D.A$!44 D!`T :BA/$!.0Pr2ABB% ? a, YAsR#.B423.! Pb"1!C44 $ $03 0-0Br$!R  "o3~]A)"@2s & 0b# /oQ5A B1cr4 '?12 4C.LrA2=.q0/A$ D.̾"PsbR.'hC=$BC!M!p"C $ C'-5@5!:?!R E2@@Qs%?N"'/q #:6!OS&1ad' ?sAAS >AS!$cE>R #//A 2T60!Ms >S0 1R s #00C '- pR3CD$@o/,BF/#p#$%AS/*m0*!5!Aq14 @O 3Q"u?B0 D3T'//BA M B2e@)IC711%B E#P12$-#?c  ?%0R%7!Rr%>Qca/C"0DWpCE%B $`S +!A @b 24#&12"*241?S/&"/ r#O ?C2QU2b D=_R# C=6=b!."$?-N5?RNW#!"/A R @RC ڰ=.B#Eq-& ! p C VPTO"2S-1"$/ @2s !5-71DC&.A"  5/B u2-?A0?CD0DA& Bt %>pRd /!1"0B1@1^c !BC/E,Q /2 "R %  ." /4/0,@ c5B'?qD>q4! 3.!#'2r16/"C1# #F!12!.CRuC!4/ 2!#Q4 !bC4 !Rd-0!B"2B?%'?Ac?71COR"411%.R  ?B% 0N4!!Q4.23.Q D.EQb,@ /'@ p"t>a4 2C>">TQ5A5- O/b #3 3 %@!P @#/!@S/7!%! R2'zl?"Sb1S5PqE/&?R 24$+a/0 a? "32B!D 2! R.aDR$ %/B1DL`.0A1 #t/0c6@@ 2  05?/"..s P2&1C 3:>3 C Q!B2%.=OBR >R$51/QD G PS"1Ar?O4! T.Q#S "? @31 !?QA+B-23s 71!r2t.R4 B5/A$! /?c5+A2ABD!50;B/AO,b!"$." ShnA bB2 B06޾!qd-=3!1 b&1c $.43b&>Q$)"?O0  13,ANa7! ACBFO>r Q?$ ?!Qs'.RE4>{3>@B!6024/.a!  4 04A*$! C#-Ϳ0. rRE=3#0C#bU0 qS'/C3 DE@20 $ .!Q#1#C2/!0 2"1A.c/%NO0b 0="& CCt>r5? 132!312-?3Mq"% O$A /"$4}3..3 OD #4 ?= 3>1E0&1q c50c&_ 2!A/4 NC!3 $34-O42# 2MA  D @ BB?0Bޱ5/%.1Ar7-PB!!$a5 /$4#R"4.B02-!R/ B1T  3T&D?ݾ/A b ,@s 2 .A"6 Td>% R0q B$Pr"# #%s % 52#VQsR  %!@b%Bc/3!> B9!!B3Q-R.R%1"B22T?$ [_!A$2%a 1A//"$2R/307016B!!%@ݿ#5E/3T!5>'2 !J`A!3)+$A!=0 /Q1/C$!2"-0QO#0=S!3BQ%0#!{$ S1 /D0 QR7A."0.@11"?0@2!>7 ?V! A 1OFC1@ C#!%5PA BS &/!61r ".Q3Db 2 @303/ U?.Sc,C;4.# %" S- PR 0#  ? s  $R#QCD '00"D "3 m1"'<D0#& 12S" 2#.1!2 DD/0r4/6.%C 4 > 1B@"C/_R-$o!3# 1".Q .43A0 3 "&AS& QC6 %?1% .D"33R 6. 3"! #"4 10 `54~ @?1 $/@B c/5?3 !D% A0!=3 3 3?%?3S%-$b #.B4!1! ?4>B"#!a 2Ar$.//21?3=.>Br"C %R C&/@b1 10/3# ."2!32 !A0"!1>2/ A2.0#?-q$OBR36/0r"0 @A/O33#/1-1"?!>L /!P !"6 _ r,$0qC0/A$!0PC %.O!421 |4 3-A @?3/_"!/" A0OS 0a3$  B4/0A#0a5#P#Q2/! @"03/!@2""_ 2"2 #A0! 24  3 ݾ3043 S62!BC.#!BS!"&1"!$!%1CE!2%D$61$e1C"@ ! 1OA#3.qE$-P21!10@4@S#,A2@ "2 !1$!1#!"A2" C>? R3$2 ACR U!CFB2T.b421$CB!2"23R4B-C@#E "!#BH%@!"4/R#3@B2C> D 2  !1# >!1!~10# /! Q,1>C   0A CC0$13???2!B3E @R $C.#0$A"$. " 2#S#5A$.3!%4" AD22 8O/ $1""A3 $.!Q A.! 0.$.B !"!O 013>(1C4 !"!@? 112#$/@C$-@2 "-1//2 #1w)/ ##"!R..P 2/!">3#!!AR%/"4. !!Kp!? #.Q 1/2!/"A#/  ."AA2/#zK3C.P$  /B0O1A0 3/!"@ /$ A/C#> BA3 $0AC/20!3/ 5",2!2!1? /10 = !Q3/0222#0.B# !01C Q#5C5 AS1 # "40#A"C41! 43 B !$/ "E"!"3" D/!b/$0B$2 ##""34 $A !C2124! "/"2"3!$3 C""d"S423"41 .!4 4B"2? 3" "10"!"A"!/P."$NB 1  !!M!3"DA0C#//3 3/3"!"2!4#C /DC 4163!!c!B "32!!#13301#.24!1" 3 " !!$"1#~3!C2# ݽB#0!?!"! $3!B! 4?/#3 !3/"02! /?#3. 0 "@/0/ "@#" 01/! 3"" !"C421/"2!3 "!2/14#  !!"  " "!!A2 2$1!"2"22!02 #1C$A!"!/2 !3 22R,B !21"!1 "% C30Q?!!!=Z2"2 31 #B! S!2# ""2/22   #"4C"#!2 !!/#"C33/20ݿ/3#""2!Q3E  pC "A#" " ##A3" "#! 5""R !#2!""# 22  13"  !! !!!## !2!3! 3 3B1B"4?B#!/!Av\202!2!41"!2!"1!" B4#A1! "#"/3B""!""/1#C/"5! Axn!!!"/ "C!!#B ""!#1" /B!D+32 !!" 2"!B.1"#"  2   !!20#"3 "13!!"2"30!"2 2&1# #""#2"## "!!24!!2/!#113!#B ""/!!/"!!""!2 !"" "1""3" ##A B ##!1!nw!!!"2!# 212$$3!!/#!!#!!"!1!! 30#32  #"!"2!"  2! "! 4  2""2!#"#!1"!!""!#22/"!!2"  3D !3"!""!" "!RW!!"0"!##!3 1! "!!""$ "!!$!"!"""!  ! ""!!B<!#"13 #1!!!! !!!!" !!!"! !""1# 3#!1sf"!!0  !2"  !!!2  !!"2#!g|1#2"  !!$ !!! 21" "2/!  bw!"  2   "!"!"#!Mh"/"!" *$" / !!4<  "!"1"  ! !! ""q} !"!!!" !"! ! !!!PP!!" !! ! !! !1!!" !!! !)!I:!!!%!! "  (! !!/3B 3R"CBc3 d/Y2 237 D.D#P 5-CAST6B!Q2#P5 2D0.T1!C!F 6Q1C123O520#SA"1634 !#c!"D?Q2"S "!0 5"a b@241B/#2"2.$22 2$!B## 25!#"#"Ba23! $33$31 /!!Ͱ#21/%23 !4@#23 !#! a42!%# @ 5.2B? 3C03Q ! "B1$! /"T1 B # "$20!".!Y5"3"/"!1"/ "!""#?B!5!>!"2243 1!! !? 4/!1 !" 2  /1"!!"! 02!! " ! "0  #"  #//  !d./   /  //!"! (d!#CD"##542CCB2!43D3D2"!#"2  333C4!"""2""234B2"1442!##1#1SK#C2!#"! 44"2!!"!"###331R!  "32"1""2!"43"!"!"! 2!" #!"2"!2!22  "3#"!75"!!!"" "!!!1!!""!!"!""! !!"!!!!#"2 !"" !"p!"!!!!!!!y"!""!! !" #!_a"!!"!~w!! "!!!!!!"!"!!!AD"!!!!"!!!DJ!!!!zr!!!/!!!=B! ]d!,)*&!!&ce!?B-/$$/3 //;7di()<F-$4+"$&!  ??)- %*76,.*-%54+'98$$3""""""""""!""""#33333333C43CC43C33333"""2"""""""333333"3332333333332"#323333#333333333"3"333333333332""""""3332""#3343C3/104+*&(,++(*&4433333323#2"""2"""""!"#332333333333333323332"""#33333"#33#33#3333#33333333332""""""33""""""3333333334333333#2""""""""2""""!./ ."!"0!0 A!#@#" "Q32 "Aa2B/B //#_C.!0!2/ A# !"@BB 1#, / .R#1R.!#0W0434A! 22#2.A@ a 1 .  /"B#!!!Afg!!?4!R.11C!4"BD 1D1!D#3- !Br?T ,#GA.S0!d>R 0$Q /2s1"/1-1 #EE26!!E/ R#%!"u!1#˾05! 4Q5/b0E3 1C5 #Qd!QEB"r!U/r%3R>C3 !,0C3 c.$AV!C $bS#cb"!$AS/+1##R$ S #1cOA$RD/3d "15"- 1A"d ! U/R%Rn$/"t1$0$-B"d#A71aB#?UA#2% BAsA G!.$B 4 d3$!#1  DB F16b! s$2$Q2"%>>B7!C4&!7#a41$O1R.3"/S26 B=D& " s=20NCt!7 Bb$0"c+#3A#?!C!t1U0Rb"O!d20B1"DQ71C. r1d3!@""!CR @R?B"E.6R .?5 R 2 2/s.3E!BB#/E3 #Q"P1C.R/! !?E.! 1Cr.5 E133>3a #c@6?Db 4!AT-! #"#c. A q24>c/A1U /4 0"Q"4!5 D2$/c15/C,!$R3"02c$3/!R'24/s3S/2) 11D#R !S,"4 D/Q/502E ##0=!4K2,2#?!S-Q51bq "DA"@/0 3Rc 16!B>q#@A!S<+2$Q2 r!6/A#0s"E?"3#5&0D//%B 4!d"tc# ?#B "1S"C@% rAS 3QaB S!3O0C.B @%-RA#@"3?bC>!2C?s$26. !R S@ LB%B/r0ݰ5 # #"R1"!R %"4!"A d060E1 E-1ݾ 11# "!v%0?R$S/ " R"7/1C %3C3@4!6>A3%@2B20S '/A{  ,"2"s//A R"6?,Ba/!`?15N/ s?!44 S E?t"Sq""?2T@/#E2"#tbC!!&!0"Q%a3! s""E02D0$#!RB"C "/$"!a,",&!! s/4/ /512#R*V 1cO"@$"@C%#^6!Bt"@sDR/b4!b 3$q! /30@G.$ Q@D;A2ACb! 3 5/(A" R5! /$"B &8 TSTb!R!$AD1D"300b01a,cU?C2d, C2-3!$Rݎ@6C2@r  3 5.S b">cAB53/cB/D2b#Q711!b !.` -2@1=/$Q##!s.31dq-?d $"A%#2 #!a 2#zc5A c04sR!#t 341-rb`AC 0S0NE 'O!d/#SS"$ "A3V/res C C" E0R tQQ1t/1 TB#T\D/s!=2"=S 2!CCAF S#Od/5/dC A 5$u/S/ s 4 'E2t!A/c3 BF!S1! B/!bB&bD#t,2%!1$ #A.&3p/"b>#O%7> t cr4# 1AE!AsaC"r1#4B!#O 6A O4>B+@1B #a"F3 #4C P"/%$O"#, ->B2>/C! dcS+E'0S$"bCs@1"s1 r U 4!2t #>CD. R0v"2t!3- D,%$/c!50!B?/G Ssb#b#! 13T>1!%022?#/3C C1T1t 7.b2 /2B2 $Sr! &b-#46a#; #26" S 24>70#b!R##.$B%-/2.3$c. 5c/#!dC "7 "/ #b,T/s"D# t5c# 1E"!3$,B/a|%#2-% R S,3-?d,!F  B1 RC.S  R/C R#2#.4# e!3# ` b O2b/aD 3#% !3b!a. B0b C FR.?F3@D 3b/" .sAB /Bs! 2!@s QS b#?5S*"-'C5"2dq?0332q.AS! BD?R,!d./D##5! *%?t1!tR2&0ݾtR# c"> "E!Q2 "%10RE4.# !?r *#MB<1/b-C.Q1.T-13c"T #BCE0STE"U0<. 0R 3!$t> " a22R !D$0 D!DP/D#T%1Rb,/Ts '2.B"!C+2 TB2ݼC2.b-sR! F2%>5 C/2 9|1A%>dRB"37OC2SP""$/.#b-3E" 6 3 b BC51"Bu$R6!/S3W2&D./tPR@@$-A.2>sC S>%1T@ct /q "N!$0B1.4#T"bA!S 7Q 2/4B1. C "?xp31Gb ""! "..P" #/ dTDC3%0'Q4/wDsq#$O$@5$ Db sBP $?c*?bޭ1"a2R#=2.T114D "C-$#/ M340Ds3c?@%2ss B20!aqA ",03QqB'P$?3F C1!C!4B!#6 P" B0F!3"@$4/er.'B%Ab "fyuD RPA& 2.0"B A71F/3E,/1 B 2 %2S.c ]0BE1#5 03!#B#-$0a #Q5TR@ 5BUU "dC"P12,1V05!." U16.Qc " #Q10B0BD   "2" c 21#/3 $2 AP01K"/D R-A.@  s/7/BC@PA6 15 %b3%RT1s1U-B 43D1B4-3$O22 1R2 2R/A21!"Ϳ%" =4QA71?d#"2P?a?@B: !t/#2$SA 6BvC1b130@B0RBu<Z>!02..3"#bb!"s+BQ%1c%/!B>+@#$tS+q-""#c T2s?d- a/Q B/  C!>/04"aC!@!%2"q #E!T!"%bA!E"-b3 -0#-7@3uR R$ '# /TC"OR0&B2?"$??R@%#&@#2ܾ"4#BC"  A#_ r-$""W/ "uS+B Qc?2R!6 R216?2/A?$ 2@& "_7BA14!$ B1$" %-d .3??4 2# u/5t#F 1T .B!/r !S@ 02AD T?T?D; 3 !"##2$$  $A$BT !4 B-01!"B2!7cB"cP331- 20A5?%? [%@7R."#3 23B 6/T-.c,!S1236! 2#Cb1AE@0!Sm/3!0s. @4O d$B !21-6/D.311 $D T7WE bA3%3 ?Q.A !2C0AB@2.Q0A531/%!BQ AU B.3?004D0 $/"TrRB3CSORsQ!A2N ! " ;32/r 05 /"b!CR11/CQ>!C  6? 2A !C-$.ݿ4 TRQE5"B_bRQ 4/3PQ2%##B.-!#""&"3/5"0# #1 D/2 % 4#/2"#%!D?!rs a3A!D.C@aS P/0B>?@A #QD>$,B+q 0 6  #0#@12 !/6-A /=/1  a  33.&bSCT/#/ B!CAA#>!A!S=*A1F?S /#A">5! 32  7@B "Q C.a1!!3/@/D9.R#B %1 2!!3 @ 1B>? 0B30#S%  6/R"D "!!"-!4"B! 51##2a!$$1!"BRS.E"$@ 41@,!? 3.r!4#/@b020c#A/B 0 B#2#4G221$2޾!A? BA !&/4"/0B5 SR 1 #"G"BD?R!D1#2!#C13! !@">"B2> 33!2$"C63E0.B /!! /7/3s A "#P25!1.b".#A0?B =, "21!12 Q140#!"/ 2 2 #OC.3C !!" 4 %bq 1/B.3"/B4@3/ " C!A"1!03?@w 5" C/ 4 "0$#AB!2!!5!3S "D1$ #BtR!21.0Q"/@#B 1?C QB""~#!3!!2!21#"A# 4C5".4/4" /!30!_qR /" 2/1#?"2C 0 "23<? #A%2 0/'A2?4/ 5 A@#4 "5$'"[!1! S>E5/A.B#!C-2 44R6!2@/""p !"/"?32 $ /4""1%!71 !C/!"1 1!a4B1 SB$2ܽ%!$0%0B@Q6@S61."$0 /5" "E?r/46/""6##/R ݽ2"?053 !%"!&T741 R012b A3% 2Q2 &" R!#/"1 B!B.!.#0#R 1" b0"1BB "$!>CB#1!"3#$/!% #0#2!A #22"2?2$A2BR"3 C 15 "D !"1@2# 2/A @ ! #B1 "#!D22  1!"B$h!B3AR%?".S.!ݾ   !4!/  2"B1A2#"  23"%/1""!!"3 1?! !#b14!%A"oA1R"#A2 "# !!A !!01A 1/12  %!// 2 22!A3 3C#Q 2"-R ! #1n"-#-!2""!C"/A#01 !# 0B "IA""$!A!0#./@3 B##  2 1-!!" 1 - !A 1"0.B""".2?L2/ /! 0 B 43 #/2 !" 3+.0?"#2/2 0   " "B/M>B/0 2.!"?#"/!C! " /1!"22 #3#B#!!"B/#322D25"!!4#"!"413131,e"!02 !#"#3 ?!!0.  0?? "!! !. 1B!" 01 $Q"?  -RE250C/2 #!SB%""!%4#A%232~ " !#3"/!33T34 !C"!!5!3!""!!"2`G/"1 $2"E"#4!!CA " !/"!$!2"!"C3!4!3335B#3C23" 1!4021"!"" S/%352#/"3 1 %""" /$32/ 24/!2252 C!"C335!1!42!"! #13#151# 1""2!#"#1OC30423!#3"1#2#!"!""#1"#!2/!1"#!"#2S C$B""1#!!3B"!!5330#C !"B5"/4 #32!#!!!"!"43! "1E24!3!!/!C!!!$2!C"#!$#6"3!!"!" "!!!3! 3CB3%2##!"""!#!""1#3$020"43"/3!#1 ""43312!$2 22 1C 4Q#"" %"  !!"! "4!#!3 $"!"" 2/""#!22!4A" "2#"" #"22!"!!"R"" " "2!B!!" " "1!$2#"/ #4"#44""!!!#"!1 3"2#C#2!""2"2 ""!#""31"""1""2"#  !!"#3!!"2!#"2!!,D!"4 42#1$  "2 !! -""!! 2 !2  "" ""!231("32"""!#"" #"# #3!!2!# #!42#C"42#4 !!2"1""1"!""2! !"1 #2""!!"#"!"!!"212 "!!"#! %"/C -0#2#!!!!!{}!!! 1#!"!"2""!  4M;#A"!"1! 1!!!!1"1"W"!4B#!!!""! !"!"!1!B:"!2"2"  2!!! 0/!2 $" 2/  ""/!" """!#!   !!!" ! !" "! """!!!312!"#223 ""#"!!!!!!! ""!";6!! !""!!"#!!" "2"/!!!"yj !  !!"!"!! "" ! "2!#!# "!1!!!"  !!"!1! !!""!!" D[!!"!) !!!" ! ""!"!  !!`O!"! !! II"!!,A!!!!-(!!!"71!!C9!' !!!!42 '"np!!!!"% ZWQL !-9OQ /!" BS 0A2 'g02A#CQD"CR#/B2 A %4RrD33 $/B2A4!!1 x0532OBR07!!/##B! $B #0#2$!!5 %jC62#?$@# 5!#0"0#1$4 "0#"A/C11>0#!#2 S#"!!C!1040#? ".23a32CBP3b0"1 0"/! B2CCJ/Q1$30"$31"3R !" 2!" "4#!3 "$ 0! !2$1@/!1/#4! $ 4!/"C0| /! #2? 1 !B!1!2!  !" D ! !!"11 /0 ## ?/j!"/! /"! " y/ ! "2 ! /!! bm"44"$$3"!!"#CSR!"22""!1"34D3#""!"""4CD423B!432$3S42"""!"#3C4$"!!2""""""45#"323#!"#""#""!""!34322"332!""3#3#!+#32!!""! !!1"#22!"!!"!!""33"!"!/"""!!""!"!!!"! !"!!!!!"!!!>;!!!! "!!!! &'!!"QH"$(A@cg ! _hDK4>!d`#!$&+gg;H(+@@"%((%)></BB=>-$()":4 #$.///?E67DC0135 !!$&$&)$"$&&++++0&$&,(+)'&?;!"!!!!2!#1#B3 23239!   1"!! !  1"."   !.! !s 0SB$ CB.!4S0EA571R!3Sr  U!362S0(CD/b1"E-$5D714RA7rbc!E U S.e0 #1GA3QC"t?6@ iF 33cCSU34t 4_'1SGB@1bRb E.b>/B<%>#R8Q.A b=04 5?!4EO.! 3?/C 3-13 CQ0$$@ 3*$2 74a ".3 7`A$r./b@7.a& b ?b$O=s ,v0S // S?@"s!AI`  T P2-A9 1-T-SB0F! $,%0 '4`?B CP&?63 10 D 0QS/O3*3PDS_>D" !!5C"B-B#>"oS+?r 3A.510F!/B%-"r$OA.eQe! ru5 b/&/s /Ot 0b /b E/!s./S $@#c- @ R-1aS03R5[@4 R/0D P.3.A1,6B"%/A?3@?&R 3/3 R0 B?R B4>4CN%/SBN/4" @P4B@0ESP!OS !"_c 3 1R!a@7.b<R0'/1G-0s."BGR&c /' ! c &0R 6?CE/1r%/ r #P1lT@S/" S@#R$0R b>? 4 @@%F !,D2".D`O3O/$5B $, B!$?%B?? C!!4 q=3s$=$=sRO.4"OOC#@!SC`A4-$N/R">tEWC316!Q0s=B/C;" 34>'OE '@v"24a.E r/S'1QXA3T2b#0 c>$Od?DAs R %R/!!4 OO$D1  RP2~aL #R".SC!0#,S !?3.2" >4 q/!q-#.4a+EC2=>Ra?# % 2?!`gTC@2T3^B>t A P/6"A?D-".R F AS=G_d'P uAEQ/4op7S 7/ b7/@6a S/1a 5?r.?S!S2/BO"4 5 42/I"/ C@@",4-?0' 5"@"S=>%2.=D B1 4C AP%#4/4 3_$2 q=2Q$!%b2 .4Ao?%3 ?T402CB7MD2'NsB1.SC&P?T""7<B.FGoP&6 '@ c#A7 b>5/rG>QE P $.1D2a 6/!b=%0s-O a:qe$ P  5/B%4a -%#b>#@2%05R01Q" B,4.C$0?5 S@?#,$ F>#+4 C>$A1#3A.C+B3>3#O/44  >F 3?S P %=3"'>b  /S A)/P!T#$`U!!sG?C,0G_u!AE0a/E. S5/rT /@5Q T.8Oa4/b ' r%/b0B#>1b&3B0R > " R.@4C?2BQ3L2,b--S 40/$ %P?&CQ.$ 3q/Q0- 3Q6B 1>4a_ B4NsB R "04:#R"Ga@/r@ ?>E/>d # &>D>F.a '?b !?uAE"t4ma7/'P C-1C-!B %.!S>r 2 % 32?!A3C"/3a.? pc?#4."aR4<=A1$-c 2O3 D @3-DA.#5 13 Q?4 A1&7B !D2> 3A <D5$/"RP5.3O5="C0 _b A@ s2&0b% 5!'? R?V?&]b"0R!2C>Bd1s/ @CAD1R %!Q3@a $/ 2$??2#5 a# D.a$?1BN0"3/,22 - `P3#15,T3?5bP0B.BP-RB1&5BA 4QO5-742.!+B` 4 P "<,4 R5"aB%.106."R! s !0?b.&>O E 6>b07^C0G0S 1 r!A4.62T'As 0 3AR-"q0R0/$0qC>3% Q .02D43,@B>OD,=P#2,$ BP3,!AA$-bQ5b13C_R1  R@  C1 %-R31-#B`4A#,"R"52 `@7R?y6-$a !/ r2&1?S-@6.T 6.bOG.CG?" r@T !B.67!S' s/b`4-14Q 5b4!C%14_1"/2 62Q"/#CM R# !>2$2 $/QP$!@1'#-S3O#B /3 3?a! a0&>#5A&>'C Q !,B`>2O3 BB!3 !O>5!`O53 b1$<sO#N/R 6 r061?&2/er00 s 6R@E.' DE"/D>' 4P"D0qC03,5 14-"%?02.?a$ %24 @R,1B# $@BBB.Q16 "A!D,#q 2=C$?!223> Q0!a@4=#Q6B&>'S Q @2P! % 2@ $BQ06"AO73 30$.b"'/DO6-RS a_4>3/7O# C 0%@r !1D.7/4E?R>5?2&043SO25 4Q%8)/R=!14>$A4OQ?A  $A3/@@#o@31-@`$ 3CQ !.3A!22 B1 A!$2Q07- 3"/B Q0#"0/21BA!.%20E4 2#-jC05 B EQ.5?R>7.3/T?# R@%1D?&0&7$7?C>6?A _4/Bb>a41%2$!04 =!!$A$5 R.0B !?.2# "- "B$AP3u"02F"B4$-BQ/ !!R A 31 CP& 3Q'/%SQ ? AB! /3!2/(4 aP?42`/4,qO"> RP30#D,!151B 4=A?F/2 S 1 R?4@4d?3-F!b> !-&?#4qCQ4?%01#!@R/A12>245C-?  1$?QBp15  !162B,-A"$/ ! % 13 "aP5- 3Q6/#DQOiR R 2= BE Eb Q.21.D3A#C&2$ !%@&1#C2Q#A+/T/ r/40 C?40#E. RD/02>4@!#.#P"41 52%5?A$0A/$0RQ#.A "/1"=#!22O/#/`$B@Q" !PQ/B 1W/B"`O5! B`5.53 A/!"0#.#1/.3 B@/3 2@>C,A #Q 2/ 40O"RPP.4Q-ER$.aDAbQ T2F3'/!R4@b-.#Q#/!%?!" @2@"Q#  43/2"" 2.4B0 C !16ll02"!@" 30BA1?C P!E" "@#-!1"/.3"!# B1N421O62 B@" !P/1/D0!R @ !<4 `04 2!#"?!!2Q"/-C1//3!?05  ?A+?"/3  R10C"0N62 00"-1 /.01!B2a_?!3//D/  B "32NR"S / RO 6/3 DAC 0B r/ C 02&j2" "/!# 3?2 42 2."1#.?3"- B!@ C2 BO2>{@0%.$.43 @/10.3RO?# 0/C /"3 ."?" $x1"B/#/"32#1-1a=!R.? 30"4 B#  &YA!.!R? 3??$02B #1!"2B$??# 3O?!/2/!k #." -42%..32O/#"/1.$"0 3?">3B02 1@=.#1 /$R/21 C.3 D/ S01"R B"E "01#D.1 %#">1"O"B!B A. Q"!A$ 1 !!!21122212$.1"-"1! !2.$P1%2A$/">B/0$0/$ -R0$?#R/#1 "3"#10 !2.3 B"C"00!22$!@.$2>? 2#!C"// 12 "B/PB>P"//" $!0 A" A2"O1$/ 0"0!0">%!2 C!AP$.0 2/eI $!2 3#A-C0$  C2! "2"23!1  !2.##6"B?! 2!!A!C!$//23/" #/! "2 14!C?1"$.A-/@ >!2/0!" O"1!2,1!! "0 ?/$@R-R$/S S$03C B? C01A4 ! B0"! #0#"!"  3 # /5A!" " " "! !$B!"1 3 "13.2423/2 B /R / c#1C/40D R/15 D 2 402%!"14 # A 301%0#31! 0" 2B  #/ !"1!2!/!! A3-#!"!2!#C!012 4!!!#0"C " C 4""!?"! C Ab%R22"1S.3 a/ #C>22E7 .263r2dB-D CQS #S? 52A2/$1!#bc04!c2DQ52&Z6T@R  AD."1 #?2S %C 1DP"0&!4 DA%4T? Q3D2CB126 0!1#%3#!" /Ϳ400 %2 !22=3136 4=#P12"S#0! 3A?!#O#$0!A!"""2#"/"$ " &{43B"3 BB $"A B 0 D?! A  !"B21C" />"3 B/B B324#2. 2  CA%".1!2 3R// 13B !!2?A3 3 1#.2 "4"!5!" 1 B  #"  !   0 #!$ ? 3!! !"  #!01!" !0!" !!2` !!0  1/10"?! !!1" >!10."!?" > f "1 2"!01/"! .1 !/    " .$0 0?// 0 !?# /1!! !#  /"!!!1" 3./3/#+5C"# 3 D"/4$A!!S3 3!"  !D#52#(( "4#4B$!!B"2#2 $2!""#0C"D1 "#31!"D2"1 52!4B# 325""$!&2"0"C1$B!"4/C!B!3"2!/"!x_ 224 "1""#"# "! !"" !"!p2"2"C 13!!"4!!#!C1!!$!"3@v"31$ DA!2 !#"#3!$"2!32 B!"!rH2!!"!" ! 1"3 ! !2!!2!#"   !rc!!"2!1"4!!#"!C #!:bC $!1$ "3!!3/5!2 1##!#2"!3wi2!!2""!"  1"3!!"" 2"  " !!!" """3 !2!#!! 30 2!!#!! 2!# 422 DD!"2#"!#/2 !""!"!"!#w !"!""   " 3"" "#1"!"""!!1!!"B 122"#! 2  " !!#"! "!"!!!!re!" ! #12"/" "B!"!#"!"1bk"!!!!! !""!!""/"!#" ""/#!" !!"!! !! bh"" /!w#! ! ""!"! 1""! !"  KP"!! !H>!!" !"!   " !!!!! !!  + @A!#) D4'&  gf @2!![\ !$+0/ko"&47?6 !a] "QU#/%9==>GI*46  -*/2!0!$ #B2B$*~3 %12 &0A1 TT#4!,S-" 3A 1$R"3!B /#42b#S!!D !D#13!"021> D"3""4  53 S! #1B A #AN " 352%" CC4" $c0"C "#" #A./02 #!//OS1%W/ 42"4!3 ! 20%"!2!#220#"C"!2C?"1$#$AD"D"!T"  #A C0 #3201!@"3R\6ܿ"C122A!/!3CQ3 "4!##  #C$2(#!#! B/2"#B#/1! # ##"#""$"1+"#/!"A  ""#  " .?c!! / " ///"2!"!354B23CCC2##3"#333""!"#"CC4#2"!$C""2333"!"!2B"!!"!""22#31!##"""#322"!!2!!!"+&!!2B#!!!"##2!"""!""! ""!""!!!!k!!!!"!!!!!!A!!!!!!!!!"!!!!!!!!!%5!!qd ws ilIK Zb.))'16&$ U[2661 /+/.+)=@-2.+B=(".2)++/,-!,,++:9"!&&)(($()(&'($&!'&$14 03#C0"3aD %BD/4S05b/C1 #$!CE1&3!"CD%2/s!S!$D'`R.A 572S/ #U5B0$2EpqR%Ac0'$"A&633E01 D?43d%6 Br&._q.E2EJR-?B-$?" /a.0 RN?B3O2CR _O2>0c4@0#"P@#P5e 32 B $q@7.R1U-#tA/.BR1'Nb!/B 'O"r /> D!A4b?0# C-@1s2A CP"2.01#2@,3P?$#.B14+$q1!Q06/#C2&6$ Q"$ !/q 6.B 6/ s1 C?& b/r0!S? S!%@ SO@C@1<g" C0$S AP4O?44 14CQ1 !D##1D #a@1a0dCC+ b@$Jer 1&?"Q /R ?!! c/?! 422D @@5 0$%!Q$ CQ1 B.P1$#2A-% 5a0 !`A7!1/%Q26/Q?'a !T>$ S0$/r0'>E .#b 00r I1O$/D?P R0!" 40#B10 S._@$410D3@1#P!F$Q!%1aKa 3-R F a %/b !F/R/5>r 1'!s?#_ %5?4 / $ ?2*CO,( @#DP1 DP`2+3/QBT ",A14Q@D-"/&a15$ r6R0V#QaI|.U/"bF.4r?& Q  D &.R!A6?0 1,O$C@1 RP0$"AP4 C(133 a1E-42Ac+B q?S-#P/$,2 q/C;"A/. qO7.Q & b E0b?4?rHl'?$R00a_!3. $2 !2" N0% 4O?sD`0&R1@C$A S" a@C!  1[P0T1A F#aE2R>Dq/7#a0%=a61 3 d3C/$0!R =% 4.4B !12!_O 3> %#@0D A p0D3/  T p &A0%!Q0d.b0C>"Q7.*6R-'"r %/"t// SO7?4C OR .' #R?S3?P!aM/$O.D$1@H "/1C#OR$O1CA0?S,30>% P/& @ $-Q/T2B.T`-4-3qd'S?S>6?2R.?3Q "#4.O$ 4?b $O 20 #@T 1 3P&3QO&NhI2Nu3Q3"Q?%R%"BTR$/!qF3Q. C./ S>.DQ!!0u D^/4#O TD00$??E2 D 2Q"5210B-Q/s,Q.s"1_D2 2,#"a%/"S.".B.'/"S."?AB/5 2 S/RC 015r??$ B ?T#@/%1/4&% /-u@?S 1 0# 1T# 2S !&A/E. r-7#2/s>Bq.."R;.! S' B 0 # / #A/!3R>/C$?0TDO"2'O?D " _b`b 10/E!/v#PD3@O%!2S1b7!R/% R,6/BCBB>>1R,#2. $D%`#>"1$>q#"23>42 .a 2>3̰2N>S 0!.T110S&0>6! OB+211w~T#2>=!B-E."R!B.3?2A BB-"/CA N."a#/#?S$?/R3O$@4C u|?c3??T2  /1E q&!0.TRUAA e#@3>aE3A %a~N#/##<3#.$>AQ =/$4-R 5>>a20>CB?D# Os C !?.c2%8/5@.3QE!Qc."1-%-!Ad#35/AQ/2 #-aA.@A./2%#0S"/.S2?0S %$>-E 2@/EB'@?4 Od 2_S !O-E2 C 1A$y'O D,01# S @1T Q,C0 5aC%.0A,4DC$-P2>#/3!%B#B/.v!/Q#'Or0' T0c0 E @ sB03-Q 6#Q#` 6/'b",%B#.6/RB/21#R2<A2&/20D-3 5?R1O/R! -tA$"PEA4 !-d0A 5"2,C-AQ%"A##B%3B%1"#11+6:11 a1/AQ5S"#OqQ02 "6?s 00r#Q>b!%O E"AS!Q43A50A,$,01,C/@a 5CBE/`1$#A2D,%3A "=12%//2+R"NF7b2N317 RAT!!"T1?5@d113"! E P# @2$,DP2gs @1" 7 O#$!`SQ1R04="1bA &R0%-/aO6-4 cA>b!7/'..c ?70"R 0#Q#-b 0! E>?%S2OD p!/! 0A 6.$-t ? c@$?=c1DND&0 ba04&=S!1 CP@3?@ 51" #Q1"0#7-&QA$.3-Q!.>C05,B!#=b1~%-B '" b1> a /S % %b" S?0D.%14*S @1%0Q%P$D("c12 #204C-@A#"pP$1@1D1!%#QO2!5 "Bݲ=R_6-C&/Q AbAOb$"% d1Q D 11%. P$ $ !13 P2 O 5%"P" $A@#!1OD $B/#1AP$- AOS=4R$q?FC !!R14OcO%? 5?6 2C'Ar?AS/!?4!PC2? ?C&!"4 3`033/AP5$a %"Sa4-"i#1E/ b!$0a!6 R >aOT1$  R&!# 51@a ?0"S/@S R00"S$O  4>>C212A@#. @63A23 B`4QD"B &!b"C= B?&- A/E !b%# 3/'" q#/R>4? 45>#Q/1"2_@"%."AC"@0$1@F, 1!D,#?$2BA4/#Q/F.3-S %$ R05.C/%/Q/$>! a04?". $ S D>1# R ! 3D0PD@ +"/@C*313" 2_-?/42P0#PO$@ T3a0D."BCN#a/&.# R . C A./ 3%>4O"C? !R?0$5O!#b@PC3F 0T3 "$A!b &0O52c!1 SA d #51D-!B3.!R#]"R / B.6$ Q!R >R>%.B ?502R.0"3/#ODR."B@3 C #>7IC ! 1?$!1/E2 Q !R %!/#F 3 $>1 q 06/2$_ B "?" C 34/!a%.CR /S.%.!??C@ "#>$ 3/Ca0 C!/C@0D# "03.B"163 D4.#sO3OB 7.# C/%!C>?#2<=13A 3 O!#/8%/3%..!#@!1 AB " @BBO? #O?DA `2 P05@-c AA B."A5A6332 C=$?1#M32 $/1B. 2."N%B /!>"CO?220">1153 A3 ?D C1$ 1-@C+A$0A>$/ .5>2R2R/0B."3/! B0 !1%#/"A ?0#B??CA0/$ A1!Q0/S02@.4 4 0A3!1"D2Q3 /A#P"A/5/" B#"B?"=="Y8--"Q//"1%##aA1P.".Q 1$B!!.2!C?D0?3=]!R!220A50 A3-@P $. !"+4-AP@B#2 O5314P!". /%.B!Q1.@04> ?a 03 / C /R B@#O$@" 3@A#3?0 4 1"A!/#"/#"Q  %3$ R02/%A#Q 0#//2&/A.# RQ 2">"B ?2O!#>_#A "C||.12"/##/>"B?? 0?$ "!"B1 P/!?/$113 2Q./ 14-pA5@A.3A/$1 3B!"3>2./11!2011/$A !2>>2 ?"@0A 0.403A@3?1% 0B 23P3.517M12@!! 3 # 2.!-# B!!2!/.1 A!# " 3?20O"2 A!00"6+3!D! 3 1T!"2 14/R /B0/!$021!"32#"&!$1" "/2Q3#R/!//2c/2"$0"A#2"14025!# R/$2!320413!B ""B!"/233A$A"!#1R/2A4 B#/2" E 3!/42"202 2"23!30!!0"R3 0"3 "#/ #B422 2`!D  #/?10"3S$1$1 4%2$2 #!2C!  1#/4  !4/A!C1?#S2#1 %#22 2A!C1"/21" 2 !""1!#.C2!3 3"#2"!"&"$ #C14  // 022"3202  #1B4!"3!3? !A ! 4 4!!#!$1$# #B"B!41""02 3!0" !  !"!st#4  $"#B !.2"!$""$ !C/"D  !2!"/!.5!3"A!"2"#"!!!"#    !  " ! 2 #B.P% ݯ%#c % bW?2A33#ST/#371aS #CDA#Q@a RC>DAݰ1 #bbS-#0b4403EAB$C C>%c@QQ"c!U>40"?5QCT7PQq/"4.  0@#A/4D1$/!(-=1"Q$# 1-?]0?QQ4#,>!oP sbc+% O'o@5gaED6 @ PA 2/" 4!2 A.!,"030 1+A> ?A2S5 .0 QaC5D. OrQ/$%F/O@A4=15*O5 % / ?(?#M!21$?5),1_1`#BTU>N0/PrDD'= ? O;qC"//@@5A0" #/$0+?M 0 ABS$5< N.?a!srC7-12>O`qqC/% 21*12 # 30 @*!:!/@!s!% ->=>Ar/ C F-?O/assb%._p 2 BD6 O@ Q=2<" 4"/ A;1o O*/!2aD$$->A1RSE4 ^1-qar7%? a a24 5/!;2L"N1@!"R" ,!_O@qTC?O`QSc &.0`.aRF7MA/N P `.2;2$ / @0< @QCE._1QTS F .?r`J3 t6 /a-C2.3# ?O 2."3!0#$ * n#Qa"D /3+-DJP/pCSF 'opaTR& ? 0 Q2>#?."#0 01OP1136(k6 /,M`B RcE'>/oqRDS& /pPC.C4  @!.R23j< $!% $+0+0=0A0R3C>/0Qrb5' >@ Pq.S $/!A 1.)TQ 30$ 1@,0*2=!_#2C5?M=OqrE& G?P`rbC$</6@paCD$.@ aA0-#1#2."/ 0- ?/#Dr6$ ..>>q1 rD,D%- 0@sCsS1 q33/$% 1+AM!/0!5/ 1-?_!@F5@RF5 $/>O/Pabc$>0rQbEF?/ppA#/50?+,A">!/1a4/:.!PPab T & >.?.sa Rt O `q#3FJ2?1 A>2/31 5 #O @@!r376-=P/b/rDU ' N _ qb/3 3P%/ @ @3>2_C ! ;2?"`!23/&?-/1sBS%'.>P0|qbSD _/ P pR.R5 @ @@=".#!A0 L!Np#bS%',f]>n/Qq TT'+ &1@ARDT.>Q`-2B!3%.!1P..3r!A"#/!190>1_qAC3 './/o`/rbE '  ? Q2C# - 1 01@&B!0/ @,_<.PAa"$0->=/@PRr6 7>-P`tbE = .s q.A3!/? !;Q>@?03% 0."pP2S5 U-?paa S ') 0@rqCD' >0ArDD7.O_,AR.D$//0@!.R03?23 @*?=jApBp3R& '<.oasrD F> O @qsR$>!p2Q/33!.?#,n! @A=23AB5 !,.?P"rc4 U O`bbs '>0`A q!3>"N #>/@@"-10$>$ P +1M2A"Q$4 O@!sRSD &..ABr6.@ @ A!.%/b "1L-!O11$b1#( +O O/0qcT $;&\O.PQbs7> ?QaQD 7 O q-A^!!!$ "  ;A= ?@b3E:N@PCsE7- = OBrbs F>O Pa.1"/$// A=#< L4@"2 1.!>!B!D6?P1Brd G/>,qP2AT7/Fa-4"/#!?"><"=AQ0$"5;N_aqS6 7.=PQrD#+'O0 @ a.B4?#1 O0,"NA51 ;P#Qq#7&->@aS% 7- &?O`rCb?` 1,1B30#"?A$ P-011"3B2%0%, _ZabD3 ..&/@P/br E&OPBArC?% Q2+@/">B3/O`pO==?o"Ab% >?/P.Qbr C,%/@a3bT$-.Op-@,32!$k OCM"N/Q 45 -!o BrD 6 N/QaQr7&O _qa/23 5'. @RP/! 2"! 0MA^#P@C!3 / @/aRS E. ^a-Rbd 5Q`-BD/C.?1 Q-@A!0!$/ /1.!?1 a4$-.Q/qCRD-E^Oqq/RB/ 011=b # "/"?!!=2/1A#!$,<^OqCCD ./_-abS64/ 0? BR/DD/0 P062?#"@/3 0; ;.1A!QC# 4//1RRS $! Q`bDD -/Iw`03R 4!"0P @--3A Q$"/!<0O?RR%3 .?QArb& ?0-QQ.44$/P@,a-".2 $$" @ !N>!@!C$ !-_/PPCT%$,/QQRRD..PQ.2A!$ PB>A>1!1$#/ {+@?/^!PaC4.%>.PPRR'%P $_.Q AR S5.1 ",RB/3%Q.@/qR4 $ 1"0#/S#?#"##3 ! !#02$A!0@/14T#,Q$R!RB%D00/CbCݾ!51 1 4S! 4!"3$3 12.2!#21-1 !.!@!$! ,. 1 P3BC# .?B@BC%/AA,2C$!.?@,12/"2/.! ,0.!>/0"1C$ .@AA|3C2-$!1/2QBR. @ P2B.$>$. 0 A.@>1"!2!-B^0_!!A43>PAQ45. >`P3C#?=O1-B"/1/" $0? RS# - 212C5/$>1R23!!D!!R1B2B!4/4#0.R"3 3 0011C5$ABA"D5 2BB<BQC>O!B "" ."/ ,>@0 1"0B >_/2A2## 01BB3// ! @Q/2!. 0?0 !/!  // 0 ?"2$1RA4$?/ 2R2 "%"0!/2""""3"   "#@1 (3DA13"4$ ?/ACB!41!0"3.!1"#! }a/2"@!3"4 .0A"##5/./Aa1 # 400 23" !K3 !"/B"?!/2"3   "#1@34/AB1$$0?!1B#q 2/23"/2"   2#! 231A2!#4 ?$2B2#040 33#2 ! "3!""3  A!!#5./!Q" #$  "R" 2 23! !"2  "1 #!$-@213/#0 QC2# 1 2#!" 2 !  #"  "3.!A"#4 //BB#  1123 2!$3 "1#!2$/1C! /!!!2Cmu"A!!"$  2"!!"#!"/2!2" / #10Pp3$/!213#!1B! 1!/#!"22 0"1!##22"#! 2B" !! ""! !!("# 1"/!3 #0 23!1" #!}g"1!1  !!013  1!"#  2!"   "21 ""!"A"#  2"/1 "$ 2!"  !"!!""pp 23 2!##!!11 !2/! !"V{!  "!1#" "2"!!""!!!! !! !!""0/!3 1 "+-# !" !!#" !!!"/ 162 # !2"2""!" "!!/0/#2" " " !!!! "1BD1 tܾC/EP5O!Rv$b51 #5"3/3@? 2E!19@B c! v5?.A V?5 E!7"1%c C@0U0$4Q "$vB3 c.$ "e2k's4 A$1717q3C0 qc/-0 ?%Q $#?#>11 R#=$?b/B11B >.Q"1$ 3%"O./#0T "4 Pp/a D 2! @ AbA%"/BPb/T04 1&? AC ?U1  0 A*TT-1 1"Q$>2.>?BA" B;4?.O1o/0B!ER",$o0/2@C "2!1 A$ T. ?aR!SG.!_"1S>T1&nSo"r b 6 ?!#2+5 " A1BaB,Oa?#"4/Oq?C05 #T22 0.Q/R !U .1R?S?7"#NBq.5 /"B S# ?$.OO"P"#*4/&7>1? 425,C>A/C!$ A%B=#Pa DQ&! ?3/c.C!-!P1RS+?@$>3O ! A 3+C.'"A!1C-2?%>"0CQ4M%O/1?4Q C-_2!D1T "Uo,A>r?D/E"5= 1 b.S0D-1'>! 2R,c A4.@@O CR&@/ B2R$i3=0/B`3#94 =$@?r!3A "?>A.Q 62$- !2 B>S!7=1 ? pS/EaI/E/B+C>E.E! 3Aa .CO $1 AB,6!1@$B S0"@@B 373'=#/qC1 62 0-bOs 6@ 1-Qc >6!?#pQ-# .D""A!B/xD.' O31B4@#>00#0C 2"Np0Q@S"%O"ab 4'/#R-tK# ?%>20"r B 60&/1 @5=C.!AQS4"=#!%R# <-/?22c>HD="/.2/bA5 2.2 ?@OC?d""@a/C /C<#0" s.b /C< 5?!P"3+ r /5O& #BC$.@?"_23C.@BA%`#C]-1R B"& /P, cA$=0q/SMT?'!@QS<#7 "A%B b>4-_/!0B2 S>%@/0@(y0 55>%0/Q02 @61O-a!D 06.@t.T15!?1 sC !A0QAAbB:CNE-"0#QBM#>$.0/BQ B/B?4 &.# # RS S-!F/"O B S F0%/ ! RC>61/!0"q4,3?/BD30#A$#-$?$NB1R2$2=%@=Q041& 4?"0.S.S UA> Pq>c O'.">'BDQ rU.$-/$Pb 3 /%.0!#253  BO3>Q !@ A4_#a AQ3 47>.!'$A/bAD@5- !2c6 3!@ qc.5$?!A!QC,506/2A` $>#//6A!03# SN /"?62% 2 >" `NA!6 16 2 =# QcP2 ?7&/Ar.c D.1%O:GP rc T/?P" R r6!?pa$.??2AA+"<!/B@""-17.A.b?73%12>T?c"7/Ar/b?F?7>!0 Q/R?5 >0$ C S-4>' "P1 A B2O-b.s 1T"`O P=s S 7!0Br-C/4.#O#2R# $ #1$3 -5O?@O3"54S#_Q0a 1C2 2 OaB !5 0M  b/C 60'>@aC E1&/"P a+S-VFM>BQ C;S ,5/.Q!#RB .>3@RQ*#.`/QOE & A/ `/b5 F82?$qbOS ?6.!O ar.T @$PB S-4/.0PQ3&.5Q!B1 3# (".=b!S"" 1/2/Q=s2T B01>S E3'>Ps.S .D '.0 AaS T4-0.Q#b S^& $1$@$3$?@0!@3!%4M2-a?Q!5 QC,3<"at0s1."AaC %2&>? s7 T %?@ C;4.E-!/AQ r5/#-!OR2"%k,4M#.2O#2$B"1_005 D#%"?-0 B?T!/Qr17!D-# ! A,O6" @ b+S?%11a ,4#=PA2%B#-# R0$2B/@.S<1%R`@BS2G-#  pR>T?F."/Bs.F/O3PS$!" A@1 A B 3? `1#! ACPQ3!63>?-R/r#E26.oqNb S ".@.rhLD .G" "0 b;D,%/!Q"QSN5?Q03BC N#<1?3"B B2OP/B!1D "F">pr"# 07-2.$ar5 06"?$aD.cA! Ar6 %."@9`R,R4."@B3$CL#/?QO3"3 3<#PC>r0D">"Ap?S62'/@ a5OV '/P a .c ?$.>#P$ Sc /#@ P RB -a@AB#1#,.@?Q@@5!-#O-r B2+"._Rb@ ! !.q-S 7,#?"A3=$5.1$?$AB6/&11 2"D c 1 @ 2S ?C/=@B/%02a#q2.0 !` 3% $`?/3"a $B/O1`2P%2 @.a1$ !5"/ =Q>S"/ Q q /D0%3 QRE172Q2D>D. " "$"+R/-^/ R A4#!O>QO4 25 "3 `A?Q@'A&$ _B/CP6"'."Nqc@B+/5/0$bR ='100! q50 AA 3-" =">2/3031-"/@.R!& 2#<# 1"@.R?S " C=3PB-C 6%/PC=S>% >1# BS =3N%  " Q4,6!.AP1 ! 3-41/` #B#- 4>#OB0a 2$-1@Q.S 41"AR-b/&@/3Q R.$ .62 0Qa-K >4%>2?" B,R/"O"1C4 5$OQ@4@ ?#0>B1411#N$ QaO4 0& P4.&0% OQD.S!%1O!Q,R%?A13aB /">O1 4B 2=N?C?3$=2 0@/R06"M_a>R?6 4-P qC?#=%?!"aR// ! ` B $/$1 #2$2 &/51 B1 B#=B?1B1$ 2N>1/C!'1 PBS 6 0@Rd%/?RS$ -/ACR" B  QAS2Bw13,C0"!$1$#-B .R B 1$0> AR>C #0O1B4 !3=11P3461 "AB.D>4//22"aB?#?/#P# C-2/>@?#0$ !#OA $-? B/S.5#.1"BB#-6 1#Q3 3//6!!0!4/D P . 2CC{u"A"3.Q 1 "?30AB!$ #/0@?C !4!@2/4 C="PB3-C- %."!RB?%/O1!Q C%/ O$A# C-/"!2 1$ A$0E"5? AA4/E %/0bT4.?B" cR Q Q B121QI111B1/=0O2"# $!" ?!0# ##O.A/! /4 3>" " AQ# $=!wN0R>B??/!A R$>$ #P! B C4@#?0P" #C.".!2A##R 3$$?$R R2 4?%1A3C!% !1BT$/BC .$?"  aC// 12 B2.#?O20 0 2#/"A/A@#1#,2@.!"<M!4 0B#!$. #O@ BD /. O0A,BB,/0!"133/$0>!" R"4 1-/AS/3 1#R234 !BA" 5/% !!"3C0B#?  O 3# OB3/!.@?!@1",3/P/A"01?1&5 ?1 R3  1BD3/1B" " 1A"1 / 01!! # 0/ !$2$ ?44.. B/C4AR3 .0!BB /A1!3#!0! 34"."0!#1C Q !B!.@C0$1"#% 1A" 55/  !B4/#/"!C!!1 "/002#   B1 #?111$ % ?!C# # 0243/23" 11!2 !!2 !! 011/"#0? 44. 23 $BC"/13 3 !2!"/ 1 ! /$   !!"/"#/!2!#/ 2C /B 2#1BJB1$ 1!2"/$! $#  #/!"!#/.3"*3#1C2 122 " BA# #0!!2"#1 #" / #2"/ "132 !# 0#" 1!"3#/1!!3 $  02# ///"3!2"""!1!"`!2 /11 #/"@!"3 ! "3  "/2u/"2! " !" "!A/#/1!!#!#023 "4"1#!1!   "!0!! ! 1 3"/ !"$/ 3# 12 1 @1/ ? "-02! "?c 353'QRR &4ZC/&424!3R.%1"2!E!c2 5!%!d E/ݯC;BS SSRr/s4 5&$334#G@'_?&"3'2@&5$D!C#=c s?%$ T /b q1 /1 7.?!$/ 4=C%@A$"3?@OO=0% -"-3*37B# $0bC0Q11#KqCK32+2A% 05@b a/rA@ ?!?&-"&"'0$ c B,R!R Q! P ?50s}c$=C-21$ B%P"1Q1 `N"N#;B  322 24QAQa@0?sk/ !-2T+@7!Ub RS  3A"A@O6?'5-49<E16 !OB$>AJ "=3?=.d 6?E.Qa.AP' > @$/N3@D.+D$.4 R2 1#03 !?!/&./. 1 63! 3!B` .0.CmP F $>C6@T1bBr AA@0 2/ 0$ OS bq QAAP0aNar  @ =$ M4- 42 "2% 1C/c ?S.B q O=5E-'&S=5>T! @$a"]c<!6/%/ '07D," 27 Q Q20AP00-/,>"/#1%A1?Q30C/@g_?!.27.22  4?sCaQAQ!N3&/1.S5SB"363%130b:d1/3,:4-1D!T06 Q,r2>".!.3M7- F- 5.-T  #"r Q0Fb?G.&$.=D-2BPQ! QA"?> 0!.2O2 -A$A#!2#P/P219O2>."D1E @&rqsQ !0 ?06 /7 c*R 3 43R@1  .!5(-!4>0?1".".&/ R5 /4?`2O??/'/  F>C.#.B+qr>CA0I@!?^O$P$N45/$$ C$,B "?4>2N21)!=_>_>.!7>! '-."& _$@3!!0B.@P>?0'/#-^D_6 A3 >r b RP A?1?300#_5O3;s a !B1"/q R .3,p P4O#  # 3#*"$ 1c.D Ra aFJ _"B70'/s E $ q" O5`=!/!E/ & b#3+"4@4!4 @B? ?"?e >/ .%0254A16 "Q/rr#%/ % ,C<" #7'5rCb P",_$>.#d G 7$ 94-#R#@QQ6>'/./.$.,",4/#:A6 PBP?1)HW/ N>#/" 05O4a1!r-QCB??$ 21 0cbS R 3#2"9E" /A"4>!D.:C*3/"*2S 6 3.a?2?.+&cOs 6/DQR/15C/ 00V.=$.O=C-R,aQ0!`?1>`/QN!+3/3 Q"3##"B17q0R Q"?B-2<$S !T1c CQ q A" "NC A$T>St R 3 12Do3&_B 02.O/ 2% 4$"-"6_C 04 =_P 1%=.& E.0E0 #MQa*0! 1"@-2-N6?CR,qR `?1"2 ?_>R BRR#2rR/q*[ `aP /2-!#M#Br s/6+QA R`"/!N6d$-C R&1# ?b ]dA?!0//."24+Q!B N2/Q 2/P@@>F"& oD?4_3aQ/BQ?@.B.0.S ODT qA#Q!03?a.1.`6 ?4.5"& B&3aR>%C:-`" ?4_!..15 6E5cqP# @O&/ G/ N.%!-<2 & @6 P A$@/0 @M#^! .FAE P1/1 Q?A@ 0"!1 ?AA"1rqSaQ7L0! A"/",a2,/EC  R ,R A2D0?B.Q#,!7-$R-52S "C aP( A-O$O ?>/E-T6% aB.R00 P?,&>>4.%-3" ?#q P!@)/AA.?>PO!2$3"S2 0a2>3_"@$ _R!# "q aCBBR 5/1-_5 _D.>S34D B4B 3.a&"0/O"7!#*5/t @">S-aEQN!? '>' T-$?DA3 PC-aa!??1??./#! 4q=S 0PP/uB1a`QP -2 #Q#!S c /5bA Q! ?1%6D 6@$"D0S.B.A03.;/-# !s "E?6 $=R@#0OP ?7n.B$>A5 @D 04q AAB!2A#!2P2 B?C"#B A2!RV/r!RO$ _%.!46 !1Fr .tSq! >&@$-!!5s $ +53$26YP &0!N_$=!,A7A%B@!@2!" M  '/E-P&!&AD/B>aO'@` Q" 2=Q?2bbr BA#B@Q=b-34ND# E C3B31#@Bq.2OS N2 -2"DtC b+r` 04 #/$"O&tcb B 3 2 p @1@..P0@.-%.#.$?3 2Q!#Oo.1Q?#02 O!$`6A40Ra=pRa A13$/>_D C s b344?c?C-P'@$,/$-4 S;5 "3 1s0C~>C O#q0/=# '.$?Tc?3+ =a$p3!7?!0 &..&!a?b1 >0 1,=$/.$A3a`#P@/P$P 12 =3%=a 2b C!Ta[ .F!S3crQ0AA3D0F14@505 b%A"A C#BCD/0'A0 ''OQ..n<d &!4.3 =E ?A@P/E>0'O/ .- O6 A# Q{Q"1 !! @$P4 /$Q5A$ 3#/3b RQ?#P6.QB1?S c TbA3?#?45B&-2&-5 D,22.1 25@P^!'=?%? #+#=! T ' 4"#'B02/.&>0 .?.@4/ 2a.b/b 1Q2@0?A.A3/C.aDqa$Q!1Q/Q0" ?3.#23 $3Rr3A3>C ?=$ !U ESb ,S.kQ OBN$ O5 4>$a")33 0" P$ `//'.#=O.-$/,3 1B @A P0CS/!c3 4##AA=04>t T-/5!"5433AsP"@ھ /71#"230QQ`.03 "Cc1T?5RB1>%?5s/T?6" #rd.2?1/_1&0 ?.$,Q!@ #@21?/#o@1<2AA"14@B2%CQQQ?!>A?-14 !S!$3C B! 11.403? #?464 1# "0%0S C>!=C0 #&!%24C>S>2-0$O!_$/6.!6//.C.-2 -1?h$ A0E./.$1 5 <$-1O2`! B0>O /51<3/#@# Q#1 0Q-g2 @!P!_/?# 23 A$1bq R1@20>"OD$5SS C"B!Q4"BB00!A!62F/.!"/3 .R!'ARR11A!??5/33!>0&/&/5+D>$//"A A0 /0@?? !?#B3A?A/aN3"vpN#=@Q!24?S2 `22 "/?A?#SR411@B01-A P+31#/.24#23 D0D/B4A?"$.2.! S.TO5"A$.0. 0 0% %-> !# 1".!B.A!O"N?!$-1"!?Bp?@AP#P0=3-2"!2 2 13A 0/! @ 3?D # BR" 1.R=1 #n?!?4?7A0 %?//#c1BBAa2// R$?C CR S? 21>"?"@100/0/.#? /"@A!1BB @!1o1!C"?13CDAQ 2! #/3 4" "#04!!04 #}o C.$"C BQ"" A0!"-.$%4-=2#4 B.1O0@$3BQ! 2$ ! "# S3 3"$R5%/D#d 42" .! /# 5 CQBR!03=2 /5>43! 1!?2/!=/C/$! 2#=24.2 /1 !"/.% $./2>-5O2 1!2N P00v~R 3! 14$4#3-#3 C0C!??04,/52#!"4#//0!A711 !# ?# $! A3"3"!B42 $ $@!2 1321%CBBAa 1$"42E4!"!!#"0"/ 5" 3D/!&G !2000/$%/!R /1/012$A!1A#?#"Cb"/!1 ""0 $C##BC3A#   $42D 2 Cx#3!!105  $1#/#? #01!!3!!/0!"A 20? 1"2 0Q111#1"!C. 4D D!2!!#!41" $  23 112!$?$?3 10"#C0 A0 1313B22!3 3C1!"! $B"# /iy$/##?" C! 3 !@0#A#"/ / 23BtY! 1!! 4"!2"!1@!1 #!#R 2 2BT/bJx@/!CbC"OB132Q ! 403! & !C D5 r &!B&! b#C>BAr/ 42,"T/"-" ""3BC/%Q4D!O$"3aa?!&#".""2g$>"#D C/ܭ%Dܾ!BOb#R1E> "4 4#B"# "/!&" 1!0P. 36B 3  3?3/ %B!#0 51A2,"Q/130">\6. 2! % D/R35B#-#13b/  AB"B"""2"@ݾ1AC./"42>  %4"0A!AB"30BB># $c 301#$.$5!#41/O 53/N.#?O#! // //3#! '2 2?A.! !@0 !A2-0/ @22$4!3B112 # ".B2"?" #"11//!!!"!.!"/"0>  ?/! 0    1  " !"/1! 0/".."!?#1 0?!!!.13!" !0, "! B"/!!! gtC2!!!4!31 3$BQ# 252$2!A 3 ""$D|P#!#B"/0!#  3 3""!!/32""E"" "#! 62 242DB?۽42""1223A1"412#4!2"R6k"! 34! #BB"#C/!#B  "1$"B$2/"#R#!3 !313"403!#""4"13 #3#!B/"$B"  #2 # "A"2"! !$A11"1!A#2A#""#0 "C""2"/34 3# #!/""#3 # 2!""21  "$ "B!$!""""""32"2!! "B "#"1"2!"""/3!"1#!4#0C!!!!#"!!2""!1!#!2!2"! "!#A  "!!"13""!" 4 3"2!!$! "!#1!!#14! 1]Q$"#1#"/!!!2! ""2O5"B" "!!"3!!!32"/" 2"!" "!2!B3P[2!"!3#""  ! "1  ! """1!!!2! 1 !# "##!!!!/#0r!2 !!!"""!nu#!"1!"!!#  #0 !!"! !21!#"!!!+! !!2!!""!" ! ! !" !"!0 ! "!"!4+" !!/ /!!!!!"""""!iu !</ !""!$!!  !! !!! !!3!!   &3!!!  !BH"!! !!KW!!20!!! ! -9!!!E; !$$bg 14$``^ZF< ?:E@+(93'(\X;< /+$+4#4-!aCB 2220"4 b 21!2332 R.T4Bcs71 ! /""""b10C@$  BB0$&0B3"ACA"$!QVn5/"R "22!2 #B/ @#Q!"?4A "A0&1E#."!T!Z#"/###  14210# BD/%11!2$ 2/ #A2"1#2 1R"T2@ CE!"2R$/B21 k1CD01.#% 1 2 .#3R1! #2 "!$B !"Q; 5# 41!##3/"" 5$ 110! " 1/422"" #"0."  !#2! !""""  / =U "!!  !/  / "/!// // ./ #SC44##""! """2"2!"2"""""33"<M"B333BB!!!!!"!"!!"!#3#P7!!!!##3C22"! !! ""*""22!"!##3"!"!!!!!""!!!" !!!!!"!!!! +0!!!!!"!!!"!!!! !""!) ! !!Y`!!!! !!!!!! F4!!!!!!! 4 !~!!is!&1"KA6@`Rxv9B+-LG=@,*[Yrr !&#$!,(%//FFIL$"'(.-/(' "/& $"6;$$)(*+$!*/&(//*++)-,*+$$#&&(&(*+% &(%$,+//  @3 B4 #/%##2c/T1Ϳb"dC24!3Cܽt#E4 5Br/DCE! R&! $b/G2C3s/iq $B7 %4?;7!DGAS"4S TB$s@cRT S &!4C`S.5AU0A_CU %2C Sd.A .S<& #B- B?@! C/%#O#`#B 0/2 # PwF?T #? 42 @# !0 !006#a@207>R1T-%s1& ">r0&."S"'? se>b ?%O 3 ?S1 c /?41!#D1"T!0$+D01$ DaA%1!%,4@=3E4,C"$.Q 4=q!%Q>$MB1D>" s00 r @?E'  b20c 5</OB!!" s02 4@A33/@4Q14_0$*1Q%4p0,".BAD=B!D-"+&1%".qO'/!R1T/# r1/C!/4 / D@0b.? C?%0 SA@T1@$ DM!0%E12 DO@#0BEBR! a@6"'r"4.a?!B!&.r0#Qaq E S& 3 r1O r  S'0 D @@ b?/ 3 2#AP# _! 3PBD7 q!+RAF3AD$R"%/"a/'=C0e.$ r!bO7N!R&.$c1?b-74.%0$5?@C _0% DOP$ D02#Co@$+2.1AS 5A # "P0F@5$ a 2.,H#P %1/5a/5A>U"Qc C_4>q/.#b >6=#R  b N$>1 C /<~$12#2 n?"O@S 3 @ 1@DQ@c,C a@B>Q0$-a0G3 b%qN5T S-R  q O a/7?$R ??R??"C !%b0A 3 _0341@S3Q1+'# @12Q?F# a@%! aQ/t q0D.b/5/Rd/5r @5?"b/S ?,B044 / #.2?#2 102B ^ #$Ob C 1!$2?5$QNE2 Q!61 a;$lDQ1t2r %!r?%.q$,#R 7 B.#/C&/2R>A /03C>0DR@4/!R^/3 #-RB0 221O% "=?TC `!7 "P/DP T#a/5 @.7"Q,/ldCaD=qNU.C=D=#aaD>2C$3B 0!14% 2#>$>C#3D! &P43!!sBQ0c1`>GB sDQ!#:!p>G0 B'."b/7.a$-B-#R>/%/0R=A +$>DCO/"2./ 2-/5B0%C00#"!>t3 ?3#_>s #d@.t,"q$ 2>d."q=t.2RC?2 CM3?r VAR/!a N#  $#/5A>0#'//"2=$ rC?$# @% $"o0c2@@E 3@.C+@ u#a5!A>' 2%!&{1&!AS.! C,c #0C?$3-5.B$<$Q. B=2R"<&.32>/CA= AC6/52P!6 BO.3+!0/u"/5"A?5" B-UQ/Uq. RT/3A >#xaN R,-4B/"OA3."ANOS2 / BN/4B/,s 321r2??S #A/c4|v#2c0`D. 1+'"R5. 1-%? Q-%3Q &Q-403R-.4#?& 2aM)&" 4/B C/ A>>S # 4-c 1P/R"_C !?-s2@T @?D.#P E$B/fMAA=E bE33Q/&!!  ##B/"Q#>C2 -#>s30/$"/!R 2/e|r R@r B0N5@?/w`C!@/F"P62Q40- @DAA2-B#'5/1Q,$RQ .5 Qa $.$ "A.%/qB?31> 2 !>.D"c10.40=s2 )+RP>-S  S 0 1SO?T Q40043@ $-11 4Q2,3.PQ!<"1a5E-QA %A?"/S"??ra R!!t1@b !.S &03@ s1@,<Q",T2A$"2<&4#+EAQ/22-$1B6.'/BA.R#./B"E.!.5"! /r@&-R ! E.b"0r2 !.S $N R @!s0 S1 T @ s PC@%#1"7@Q;"C6,$.Ca2>#QB7.S2 //S1N>D A7? tA S!_S! C ! R  DA#+D,A $@A,R?!B$6@A=EA2?22'&B%[1 ,Q@#>Q1:$C26-#-2!4/"R"6r!/rA?C0'.b1?b !!" r{1"S,AR 3!A5A# 5#R"#A0.0"$+$BQ,12$/BA 6-R"4@>r"P.R&>%b"%0R Ob/#_R "A 3 ?04 `"r@"4 1"@DO"sP$C 0- Y &0r !&0 cA0S %1D+r-!22 AA$0!5 5 # ",Q@ !"4;610+`A$,-@A55C13;",R`.B!6-"R/4.rP'?R!5=S!>ROO! cOF " !C0o S 0O S "C1A S?1 4- 14CA"&1@3:#/!!& 4 Q14Q0%+ 3@74C0&- q0&.C /Eb/  rO/C E " S _S1?!+C #_b/A4 $500 1A5 $A!"Q!$.#A Q7B!%.5RA6-$Q T/#r !%/ a/?-b?'. S2%?"b?#Nb7/3S?!S!0b!#3 @A2B _ C=/?5 C P@3!1p2?0 AQB5 3Q/21$ Q 4 Q0U/!QDAC?5"q?$0 R/E.4S yEOO" S .#@1 B!bO?441D410!A@4/?C# B25 #p05#20F$A$q@D2%$a 5/R@6/R.7R.OSOF/5>3a/P"b/2$2- !64.1 # Q24# !?52A $ Q 5"E"b1<aO'!Q F# b3=c P&  450%b  O3 O1Q/3 C B?   5 D??"" QP3 B6 4 !/3 31 C+@ T $ B 5 32!D=Q?7!b4.3 B5. 2OE.BR/#>b?#N! CD>4%>A1R// Q04# !"C0/#$>?C"0@32`C #O?S*$Q 4"1 "aC;"AD."Q3= R D-2B.30Q>&/a.3?!b / 1R /O1 $?1# 2@0#4?!#."P0S2A 430?"@0F-#B?$2A$. P /EB$!EOQ>3/A F1a/A >5>Q/4Q>!" >/Q C3?.12O03C.4 ``0!32?O3 "0>T3A$ ! p>b14+#1/#."A/5.P5,R#C& Q-#N1B.$/"R=#0"$BB.0/C O4A- A" !02@Q$ 1.=C+30/$ c"A4"@6"Q4QOC- 1,E$a#/B!B^A 6C#>"a//!#&%2@R "0#1#.B#0A %01#!>C#1B@04@.D A#1Q"(A.6/2 3 /#R .A./1 Q!3/ 0=NCC!/!A0!""!0D 3/m3B A?3 1/E31.#!2>4 162230.A2."B# !A/*0AA./1 S # #.$0C "//#A? 2.C 2 2! /41 20@R^$0,D"14@! "5 D!03.Q"# @4@A$/A,5A"A3/224 4 "!>"C3$2$ Q  C"0"$ 44 !@1 OB/0C O#!# 4!0!4@11%$-!1B2! " 13>!"A !?3/1 ">R 1 % #B?# # C0! B/$?2#O"C/ 3?"1@M!Q?!1> # # $ O1 1@20 2 B/!3 0/4!@/B"@/ @/%! 0$B>!"&24B"/!B2>@#"B# #-# 2">2B/"2?1 @>2 / 2"?#"?$10!!!$  $ @.B/@B!!.[k# 1@.4!@.B 1#@A!2"? "-$@.!2.#."0.02/"!- )$!."B?2!?A  B" 2O200B0A03 # "20?!+2-1?!@$  ""1""/>!/"!"."32 $/!0/B 40!2!3/ # "R31   "/!3C013= ! !3.0 "" 1 " A /1 /1  3 /!=3A53#12#""1"?!2/!!2"D/" 1# A$!=" " ""2/1# #/"24 ! B @? "?3//}" 0!AC"" $Q3#@#5"Q!B %/B$ !/" 1R!2#16"!#D  B!# !!!"B 0!A4-"Q$9!//#/CC04@ S"4 #B3/ 3!"!1  "!2"0 2!#/ !#BA-" B"$12!2#1"03/!r/3B3021 422 " !3!$"! "3"1"3 /!"123"2 A  4!!$!$D0#0$!"3B 0?51 !#" 11 #/# "$RA@3 12 "/"!R# 13!321x!C2#!2""  !!/"3! !21 $^WBC1!00"2!#13 "# IM01#"22" 03/2A#/B #"?2SB6 a4'B&"5 b637/% &CT!11"B0C@$!2U% 2"0!bv!.?s,5RBRR#s"ADP5BdC13B C3.7B@a 3GAc>?t@ a$, b%Q"@r -bQ@20 1/ $/3=-1-Tq @_P@""&"!6Ss/R-rQ0 #.>N+$A7? -S-c*C"Q12>!7>32#$5 CS@2/P01 <>#t I37!'0$ r/R /R.Q@_O >0A7 7N4DR BA2#P!>A0/N!.-$,2 B% 0$ A@2/0-"N3'?!%4E D 3Qa! @! 0?"%X]?'O3*B rbq Q02/0!.P/N3:+B#"#A#0R3!B/@-_ O"/#C.1E,@71t S4q-2 Q ?/!%>E-DC C BQA@0/A/0%<Ua#A#,AA "#0A0B2?@_"/=$=40C !%03Q/P ``? .5 X# D 4B #qbP202/BO2.>#;$2R A# 1DPR R.Rq? O=;kMA61T0& C R,qa20>5>/F>cb+R S " 3?QO@..-^"[k=%5+3% 05 1U>R/A2p@?=27=!E!5 0S?b -rRC A1N0>8Z'6.BC,C R"@"0B1B00.N?B>$,A40U0D?R>a.A_,O#_# )LB'1%!4 0T -s+b b R`??".06-.$=D .BR! Q"3AA1?!/#=o;dR3-M<1"F!D Cb>q`@@2>3%-#$!% cNS -rq a2 " #?2\#N$.B;S3Qa0"?""$._.M$-#'1T ?R !D!r>a@P "/D.!'=!G.T -c-b-r,`Q!"?#> $,ME3*3 3 B210!?Q/2@4?=2E#E"6 1C@C?qQ.p-p/7/!'.E/D=Csqp @"010!/?6?G. #-.$D 4331#@"OB/a`O"->3=$!$ ! "D@CQ3.a1>Q0'/'.>D>c b r qB213!"0! >&>4-2,4 q330$04 a2A>;?=1$+%"&2& @D/R?B/Qq @!?? $.75?c.r 4 qa1!!0?0&E /'/%3$Q Q# !4 CB` O-",1"&>C/b /R-Q`  0) >!0F@DO#3R431`!O0. $MRC"$ 15AR?qA>Q??"'!!-" '1D ENr >tqP0 p_.  E-0E/# ,Q,CCQA1?@08.@>N4<33)2151b$?`>1<^N.B."' D ?s @D b,q2P ".,n!.A4.07>3+b ,b b QQ@1O#>20.B < +3%A2R1R $ 1/PO*?$?!7F?7?T saqqP_>2."->4;Rp-`o0&.!1E1U0r C.b=q a! 0B$4@ / -Dc C bAA4@2@1/P/?><#;4B$ 1## @B>B.`B0'$>%.&-2E-0D ?5/S/bs0!@"01 ?&.6.e/4 -B  Rq" @"03OA/1#(N->#BB 1 26 AC a.q``  .".#76OE &.D +5R$ B110Q?QO?O"=.#,2 +237BD R/BQ/20+k<>#-C%-@7 05NSR PAAO!!'. E 5>cO%?N5=# <"1%Q70bR r?aA 0O  $;07!4?d/R C rqr 3R"$/0&/&-5-R+Q1Q"1A 10A@@O$.3M,3GAS15 C?q/qP1'm0!%,1 T/6 T a sB0!N2" %>#-D-3" 2 3R2@"O"/"/?#_!<6L4AC1B "C" PQP"- =!&-P7!C/Cr.sA2?"?B>1!?"/>$>$.33  QaA! A A Q-P-0O.+!42E 1S?R>ab-Q( D-7 6t>ar`P#>!!?/E/2-,B5  B B"0C 1?1<_'Fj@_#6>$,"A%Q$ R/Bqb @_0!% %%.d ?T.s rr031B?$/>7/"-=$-B-bRA#13Q`PO^2 -! K",P ASB.b.s+aP@O">!'-0D?s>EB a " Q" 1!0?14N?&..%#-,S *B BA4@aAa Y-M"$A 0T@C>q 3Q 10" / /!$D0S $R,b B2PO!?O0%/$.N&.6<#3"4 P#OBNQ?BO_.^..Q-25 T?R S=rq@Ai" >!."G?G03 =S SrAq `!N@>!/5.?$C3% A" B 2 a?A/?$/^#/"/"5E dOr bR q A1."D-A%>%rrQ aa12O)".A>2," 443*A4@20R1Q?1.O_2P!$.!&@T@F 0rNb2'@%/&.DS R  aQp2P_"20. L#S R 0424PB A/A"? >! = $;1F PC!ERq.pAQ!0&- %/r,cbQ*Q A2 B?Q%!" P>-2" "$A$ @3@=Q-QP@/%.!E!&?6!S/q-qa2!!/ /&.!T.bb,C 4 @$ 30Q/0>?#.=$. "305 1E@C/BQb+p1?.36-!&AC1E/S=bb a0!O>$?06/DD -Da C#!4041A&>4..D=3#1QC "$?Q>QPoo"N$=4,!141E/R2-%3D!5 B?BA.P@M2 $< &25SR,saQOOA/1%03 >$=BSBQ"Q O!1.O$-N.#5A$03 ?B R>B-AP"?22.@& 5.E!5D .S 4R  a P 1$ "/! %?%>%,R B"Ca@"O3/A<0N%;2$*"+" Q$@A/3?Q A.0_!/% 5/R>5 b .Q Q ``@O? $/1$=>5C D 3"" A1 3>A.B@.^%>!-""%!%@4OBQQ10 ?!  4 6 !b 43Ba`0! @5/!%-4.RR,C 2@"@A?A? BR1R a@P!".&T E 3 CSA@QA    ?E"?D!=2#S#A 1A!1.%/#D.!$ #C!CQ@Q%1"O.& T/D 3cr Q0Q2" .0?6 #3#b" B 21Q//.%/3&#" {gCAD!BAB1O/%0"E D3 T/c Q1R"a?/ 0&!.$ " CS#.R 22R11/0$6 ##.42S24!BR 1@16 /D- 4 5/1! O=">1.?$4 4RQ B!P"A1 .!.N% $#2 3$ 2" !00/"F!3"RB@1 5 /55ESB!RR"O.1 &! 4S"!#. 40$#1A B2 A"1O1/?//"$"1?3B/AA@@ .ia22" B"@ %1/%/  ".S#B 0BBC10/0%0" ." !32D13/!#@13 $ 3/QA1??".1=0?3=R .DC3Q`1 0@22B /0 0 $ 23 !"!BB@ 05 %#C/S32 &Q#0 11/%  #.C ".B !#AB! /@ $@. #24"3 "3.CA00%?$4S2"B3!! 1/%! #.C"/13 BYD3! /1 1#2$!BCB 111..$C/3 " 4BY1 Q2// $/3 " !22B!!10A/.23/!  4 C v1B1?//4/2 4C!!AA/ ?3 /!# A" !! 1!1/ /2#04RB2B1?/?/#3 4 2!2B !0#!/  $B#" 0!1   !O3C32BA !#0.4/C/31AB0  1   "#.#"" ! !" /! /#.43"BB!011//4/4/" " 23 ! "2! .$. !"1# !!2A // #42!B2 !#0/#2"!!A!0  #! "."!3" 2 2! 1 /?$#2 C31 1!1  /$/."~ "21!!! "!"#2! 1#0#/%"$/!A1!1"1/" ""! 210/"#/"#41 !"1  #//"32 ""2 /   ""!! !!!"00.$"!!110/ ##!"2"1!/  "#1 .""1C-41 1R/3F/?!#@ Q%$"DD DA $!AR5 ##0B$DR""/! #D cQ732@ !2#tB" t'C&1"s2##G3>q50 D b/ D$4/22D/ERr2SS"0G.2,S.1# .s$1&>C7106AD.bpDOP &1r/T# T!2>0/R0O$,. BB/R Q5 315!%.U# S 3#-BB#!Oc "%b Cb3.0A' %2>Tb%kQ2!`/ M.C" 5D s1Q!QN'O"F"-T AR@B! 51.27!s4r`Eh".!#7>2 #"4D "a01 $ d.5!#C!r!!'M 3N%4r ""_A7312O &!.GT "D!bq `2=>,su B3A 1>A$/S# &2 Q2#.a 70-Bc">B@1 '1B &0ۿC/25b!"AA ܿ!/ S<$# %s s!#;+%>/F-$b+3c2B@ "?E 1 T RBB>A!7OC#C3b 0QP1>?K?3<C>U 44 15SA@<1%4#t4OA A/2Vݿ5 R#BA%0@/ 'lT#N7s 2".CQ@ 4@& C, T3CR2G0B5c$RA3,11#;M4T3"A 3>1/,/T=B #bB0A0$`/"6".$$ S 0aP""/#7Q\r,"D!C b A?t>70 B4..v#A@R?'P4># % S!bB#!>"0$;5>D R22 Q#/ -!&.CAb#21 A@' !U-$C3 42r07P0@.Frd,"CRDQ?&/ 1,7.c*3#0rB!&A/S= 31DDr#B0B%!T-Bز Q O#%N !# 7b3q#`?"f/#0.#!C1C@22$// t7&2!RB !&17-  5 r 222@1.& E.$ 5$b rA@0O@ 7?&B'P!4 2Q Q"?=12/3Sb"0%P3"15/30U-! $3 1 Ss!'A22.V$"2 *R3aq 6?P%!-&/d %"Pr/0/D #a3TCB@?1,$!u3 SرQ M bO$N/ /dS2#b1"ޭ` 3V/! !A#-C+$b".U?23=5/vr $S#1@ /$A:6 t2"SA1!AG #154S21AO21-"T=5!Q#21BA3O.0Bbr"@A01$/OuD3 Q6R@12>6/t,$#RCb"]jq70!a7c! 622bN1/G$5C!r aO@<T/3DBb#)$1> # #N$FcA22 AA3G=$4$.3q!"7@1R.2>#t#S 24a10$#5cQ2Q!A/F?,#AD 4R"!`35 !?e##a3?A 1 [/#/#eRqA @/@d>$B# b2A3>t#/B 2r.1q G!#[;/s3:7!c!RAA`!޽7?"3#5R 1C@"<!!U>C !R4!R241.5$">RS!11-0& 6/U S $ #3r @!>O#/=F.c4RAa 'O #H.5 b!#r3R..P 5> T SR/3R ?$ao-G=4$ B2 !R 02>! F 7-S !1q2$Q@&7/!C #%! b"'11 S./D+csB41P0E<.D!sB30`OB$D.!S#Q`$-#@"T/2 RB1/0R0%@.!6 /VC+4" `A13N7#B#SR2?1C 5/Bs/"b3S1A"V/b!4C5R R140! '?!EB4.S0a@">_U>% BR#"r"P$O14 ?1C-!S$Q!.OA0/c-"T !#3$A!/3@?6/T!.d $R"R1/S/./1 D%C1S>!!D.c%C1Q1NR& c4D B# Q@.!D $T4yb21 Q0%!E.@D 2C AP06>0%T"s 2 $"11?OF.C/#Rs"veQ1o@ G>4 D R02 %AO4%&/ F4B3?0a & #,4.EBD QQP6 A_7-!E#"!ܠ"r2 B13N $O#-T- c # % a-&0T/40 " 4 C02? ,&/E-4 43CBP2"/? '/ $D4!r"#Q A$$!2EDR2+120D.B.b#23aQA/>$!=5/!s "#222/AD/=%  TR41O(P!c0.TA 4!1b004!$,#!! ESA#!@2 ?#-1?&$.D BRp1?!! 5A5"qB2@ 5!$0Ca!B0 0@>F?/S:2 $4R R?"1_/&?5-E 5 2rR?3!A E 4Q@B11/#42 BBRa"O25#=E"#B R323o0#0N$-rA,224B 116.#A" C.4!3A0Q6/ S-# 224q$0="@#4.R,B" Aa?.2="0$-!?"C.55 a2 !@3A !5/#4 3/@QA @0 &#"4-S2 a!"@A@O6 5.-1!4S ! Q #0_ E ?43A"ba2@>3"D>/CA$! 22."#3/"0CD2Ra!101?5.$S"1B 3A` / Db# AQ'/ C."S!B#$?/" ,S. T3"QAQ>$@." " C E22 ARA.#>1E 4 A32"2D@3#_1. 2 DS2 q 0Q1@ 7 '$"%D r 2'S-3$!$A@C?! 2 DS#1O2-!5$# 3B0SA!?1?.S"#b"j~ 2Q#N0D.4 2Q?%!25-2! C"3!>1CT! A BP!Q%!$"2.!E##!2Ba .$ 1DRB" @2&?5Aܲ"2w1! &2 %C b"B!A05?5."" b! b1"?1-% /6"AAC>9 D/.#AR5A#"0A 4/ "BRQ!?002>C "#ݡ"112!>?#/C3a/1!#O4?"4=$#3#R/Q0.D/E-A 2 BB 2JP/#.4" A3Q /#12$ 3"0?0/#- # #.C B !0B1!u@#B/R!42"?1 !3 $ C!1"1//0!D32 2O " S "#AA.P$ 2# DCA1>A ?B ! 1B>11/#> $ #R!B 0O@>40#<#21aQ0/@%/## " C0?#4/C"20!$=3@/%R2??/4 4# 22 /0 #.4"CA"#0@5B 1102`@/1>-$/ S# "A!A!>!,D !A"A? #/#1%!B0 @N@/#?B 3 A !3,3#B A@11 C/# 2"B A#.0D21Q/!2#$!D?A ?1/0  "4B @!1 "/# AB! 1?#.!#1.013s! A0!>?53 #" 1 RP "..D1 #C$  ""#?B!"0/@3.#@.#3 N0!".$2"A!"O !2/!3 n1"2!#02>2!!  C"@>.D#B0. 2"@>!! 4C!02B! B." A! /!!#2!22" /$223BZW! C R#1"50D #" B C1#242"?"? C";!1#!1 A"!/#31 4R 0".BD/B B5!4">CR ! 4!D?!!"R/31!#.##3"020" 4#"" 9D#!  $22/22"22B ?-##SB03%03/".C 2 ! %!C/!"231#!#32#"0A/ C!!$!s1" 1"1 $""12C "BC/A02414 4R"05 C?! !!2R#0!#"#"/2/"/3"!# !#/!"/#2"#B /#2C/B A41#.!3B#?4!C!"A#1"!#31 2 2 !#"0 "2!2"3 /33A !"/ $14.2R0a 1C !"B#1"2!2 !  ##1!"!0!#/!!B!2!! /3 #!2"" 2$/1"!B !/ 14/3 12" #!B/ !0"/2 !!3 B#A  4#!12# # #34 1 3#"#! "#   B!.# "!!!# {"##1#B1!#@!B"2 !!#0' "#1#!# " #!""  " //!"  ! "22!!#/1"312 3B$#do!!11"1!#!!!! " !! ""1!"/" 2 "1"!2!!!2 D+/"" 2!/1 C?"#!B+2S2C# $ 43 !c35c"$ FC52!62?cB0ܽ21DR""c/D2/EA"1G3c s SAb!'2 !@D4ct2&B6/e"2 /2/6"."&2D#-F3723cd0$BD#6BSS}@R c"T.3R$S/B/A C6.$R/20A AT$#> $2P`O@0O o"E%.D !050A232B$?7<#?b"sb"` %!O/ 5 Aa2 D04B'O A933!w.s 10q -1F2%BRR$5 71P@PQE03(R! #N">!sDR V"11?PP2 _/E>-6C.?q# /!"-7r P!0#r  !E 1&|BO.21t3!0SBB$aOD$4?"0e"sB0&!.7 #CP3/%#= >d-/bR cF !Q1?S3"!BS3Dt-.!-AQSwc5"b!' Od 7!4 P2>4.2s"V.C4""Ca012%"; #b3P.40C@AcBR!#a _".USa21B?.6012Q?frS$1/$?s Q"2#0"K"5"S2 @Rd-4-D.3$s310bd-!-2"b q"0! k,R4"50.E0R2@4D!?-1DARe#(#SR@P@"/$ s6?/T?6c!"OT Q12 V-P3 1.!Qq!&!$5$%?.5?"RBD $!GO/4 6S ,eP`.2"B BQc5$02Q`O#PSA!S=%  #v! s3ANa>!6O?6C S6 CO!1 7=c!`A=%"B3 3D4! 5 $B3B?!!h $ 2Apr /Q.74#0b2 #PBQ"?&-O% B$!S3213O.wQ RB #pSt /BA @ D0 %BB7B@'O3د".2CE /aR /Q;$5 M':R 2@ #$/A21!?QA5>1As3 "uR*0srOA2"E=62 #1 Q!@/1 5.5 6S.'/Basb $N#0! #  SA!!17/!C B3Q1D>"3 $0"@62B-B7+bC/A C>#0$ s3q6.0#'/51R  Ts/E 21$!S-A!b .Q%/ 4BC BD/u11"2/u.3Bs 030$ s "BD@/ g?1Q3P#&!.Eb4-b30S.%.3 b@C2B B E?F/&4 T QbO%.#,c-"A CM@3$2.$B12b3/BDDC1D-/5C B#B7N15-,V0" 5bR$%#BNQ!&? 42!D@P#E!bQ/@'3>a23 LDS 45@/1#6>d !?Q<a3C #c3A46 S#01FO" 4C+!3A"5E/E!=1BS 4#%/ E s 5 A!#3 60=5!SQa0r4Y}%".B  %D#`#B/1..4!@SS 1F-13,2 PA2w262a12!d $ `$3 B?A e00SD!cT.3!t?A42S#!S310"A!%?C(xSO4>@# ab 7N0A0 SR!% B$ $.3$2@33O3.3<bs+174/CRbS4`O 5s"PB1*7!R 2QF 5q2B &/1%3= C Q  <[=! ! S"?Q47/",724?3!055>#R $a 1/@s a 3/%!="Q/@q2C7 b"qB@.V$$"S .P'12 2+C&6 @CQR3!?V"&3 F@BB 52E0-!A72-b602@.5/$65Bb$50!>> tb']!/C,70!,q/'0R,&!4QQ_2="16C #B7/B " 2/S/# $b0!%"?TD2R5-P/RS0T/$RP1//CrBsA0cMP F3 B,Ra  C<B#,& ! E B`2DA>7"B3BBE-4Q/ ;#c"QB@735C02#D=D>@C2cu4 $4 1&0S=D 2.1$1 !2E C D,ONS.2oQ!%.>T?1bbA!30@4 D1!'0 uA2 S'0E-3!2 s @! ?&-& C!R"004 4Sd/-?$@2 c!2 A/AB#"c$!A4?#B"A43B.RQ.1'0A# 0+#C  Qc`@ "a)uB#A46  & !4Q#B?ݾ4@ c 2CR 1b-c3$B6@RR#!@F!4- #CB 2%.M-s!1RN 1b5!5 0? #r3Q1'Oc"12B3A?T/?30B1 B$C ACA-?S 1D/rC300_&.AT2r34R,4A3#.#A!B420Q1./#E."B b% Q#-0"/C3r#?S-T. b },6.3"$"305/">sD-!0-"Cr"@13%"N5 B b2>&" # 2.C&B 0bR rQ-@B-a"C12AD0Rq BFD1 O1C r 1/0C0" SS @1 DN-F2.! 4 S B.# $"# "/4/b 222/1P{3/51 %! R#= T,!#.11 $3U5AB1Q=c.@2+cB ?E0/'.A"T40c<1 D A//"#/3Q B`1"4/T$.& 0"b!!B0$.!SBE Q1! /%/!R#R 5$" D/0A "D1C21@$2R 4B1 $B&5//602>c-Q A 3/" ! /CC"$ίP/4A?/4205!$c!B Bo@  ? SDa?A3+C4??3CB 32&1b-!!3 OA5&.%7-32 @3#/4!%@>%% /DC!1 ?! S# RQ!a-5@"/0R /! ~DC1 !'@C/2.%3R2>A/?24R2B.6#/!S A  ! !#C" XV@BE?c $Rb !+B123`2! /#B@.rB/#,4.3R#>2/?R r!.1"#S "`1"-5O%"1a"/C05.022b42#DM?1/ "?r"."A>5?$C 2B" D.4B 1@%b2 3.6!# 4$3kC.E/A1B4,B C#/Q/4@ CCO%>QP/#.S 5/B2 B1 "!6-$! #"B2"1.! 2!4?3B 1C!!5 O5!r!#!% 3 $ $B AQ2S/3 !$0S3q O!!"22@"/14$ 2Q5/#-"40A#>/c!Q!/0QA1$  D aB!4/1+0 B/2 BC .#` 5 " !31/-#1E""0/B02.$>.S !.31A."D ""#0 24Q1"`?T"C#$ .C223 "2`&0/T?3?>!"3 "# C/0" 00 !310! 5?03#."C. 4"! B #1 <4 4.B ! !0c A/.$C ?04n["03B"/E S!/!A?232B=R !!/O.#2!$?" CO41!2"SB!!@1"CQ2 1%!!?#"?$C.1""wIA@.11=Ca.Q /O$" 2.@/2 $#Q4>b@3/O:C-3#"/!"""  $?5 2C3//%.31Q1A! $$0/1 #C/06.A "Q 1 15"2#0"$1@0D./C LBO3>#B B3/"P 3//%R 2O3 4# "1! ?"B/30 A!4."&4" A?#3"/"!R2?0E."!!/ C 30!/3#  "0 1C!2P"0 3. 3!02! > 12 "! #_,S22"3/.>" 2/"31! #1-#/2&" ! ""$ . 1/20 1 2 #" $33 3!".!!22 "4 @P/ 3%0>?"Q/DJ2 0  3P!1 " !A2/1"/"11-!" ">1""pAU2#""B?D/!4S D 613!B3 $2?/D"  12.3# 4.!2.!/2"O 0"  " /1*3R  %1!#2!#@/"S/# D2D2 !"4#!RB0 1CC/3/ !D?R"!2#412/232 53/ 5 3  bB  2! %3!"0 #""!0"0#1#3 D" AB""3 12 "DB3?!#/1C31/$2E!22$2#Q"!31! ""31!C."1! /22"03 ! 10" 3?6  /"#!S-"!1 3!21!24 14BD103 3 S1!C1!"!2"!C!$A+]!4!#33B#!R0B" 4"!@1!!41# !C #" 2 "!#@"$!2/"!# .#.!0["3 !!? 1!/ /!"? "#.1b40ao! !?$!"S2! ##?.RS"005/B"R4>7&D2B"2ܿ>B-5 Ac3E GQ/c$ABPR1#/5251SP!$c $  U 3"1 #R"g$C0!b /33#D1#!1CC"22"!6AA % .E!21# $/$b!CAIB6/#41"O0 0C.5%3.6!"" 3@ CB,$ Q!/A30 0U?!4!#2 "C1ARB0/5!#6! 4 ?/1E"Q /  Rܾ1$"! #@ "# 3/A"$!?@413 3/3 0%"* 2D!!B"!!C1A C#  S02212 Q ! S!!/12 2?! 1? #!21$/#  3 / 2///" /b1"!?!$ 1 1 13! 11 3w?! 2! "//#/!1 " #2#"/ ! !"  // ? #!/0.2!//. r!3C2"0#"6!!S 0"25"! 433! 6 y/ /!! /1  ! " 2"!#!!3B 2#""1 D1B"33 "!3!3B1""! 2!4"$ 2"3  ##1! #C"A# #23""!!#  " "!" 4" !"1"#!#"##"2/2!#A!"2 "#"!2 r23# #0"3/"!3" 22"!!#!"1!""2!" #"""0! !"11" 2"22!! "!2!#!!3!!#""" #"# !"#2!!!"2"YU"!"221!! !!1"`R"1!""!##!" "2/"!!"#""!!""!"# ! "!2!!"""3  " "!"! !"" 2!!2!! !! "#""3 ""!"#!"%%! !"" 1"! #1!!" "!!1!!  "!!2!!!!!!  #1!"!! ! ! !!!! !!!" "!"kb/"!! ! ?%!!" "+5!!! "2 -5" !"! " 2"LT!!!!!B:!"!!!! !?7! !!" !!!! "! !"!B8!!!!!*$JF[d !$&!48! +(!26 =6 !!!  !!!*' #$(>8MU=6& '-DF#((99 "(!#02.//>=56-)65,+++$*.12>R !0Q '? 6?DR3B" #.?3BO#% 4 D $6/Qb2 D//Q 5##D##!c#4.!"4! %AC?"C?R  3@4A%##04!# "2.#"!50!S?"3!/426# /C/""6" @W#ACC!4P /"2B2@!4"" $%a$.$!  5"|RQ D3 B # 3B2. 1 1 #1/!!.ݰ32 # 2 ""!!"1 0!""ް#1!! 33CR  $1 C!2"0"14B!# 12"" 0C1!R!  !1"#!P "A "  /2"?//!0!2  / /"!9/!  /   !!"#2!#D3D#""!"22"#33CC2""23423#"2!"""4$22""" "! !"#4#!! gv"223"2!!! #"""""!!##33!Qf#"3"""!"!!!!!!""+2!!!!"!!!!"!!!!!!k["!!!"!"!!NB!!!" !!!!!!!F>!! !!!!!s|  !!!:?MQ+!PZpm BDMF=2!@?aj(%!$==B@*)-&$/5-?;!%! !&2/"""""""""""""""""333333332"""#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#333330-#""((($%+$#!%-.(&(*43/.2.&&+0-02/33333333333333333333333333333333333333333333333333333333333333#3332""""#333333333333333332#3333333333333333333"""#3333333*)/./. A3324,E##c0#RTA3$0E!'#D$!D1&4c/62!DAe2BA 7B C4#$T #4 dB\:T u"0#bQdC/30"R43e?#t"%1ޞ""E1B%Ab/#3Dc.C4 $RE?7A$R 5>3 SM!a ./B!#2 !!>41R.>C C.!D 2>!$2o$033.`T1A/411D 2A Q "/@P&>43"3+ b/5.2S0#! U$/4+q1!$%o#+# # b02'oL0!">"C,S?.s"-$D/5 A3>!4!AO`5 4 7 S20'/%?!3S?3`6#0!&/A 3-3.D 1 E"#?$/C12C?6.$/2-$ 1fq2.s.4S3!-RD&1A#@$A/1.t//#-> Q 3MB 6r1DO!0&&A1<3 A7@A$%.%/s1-S5/7@B$P$$F2.S.4#.2?Fk a/A"1/" 2b!B #Q6/!@#4#a=$1p"$BoE.aA !B,/a*t.F C6 u1$# 7?.6b2>a!@! A12ECA>b@2 4=/7?1C r0B"0 4%#A! T 3P@02/4C/b!5p&."" ,R 3'aP. # #3Ov0H@@F<?1" s#73,t 6 6.".5q 3"4 3%3SAQ&01 $"0! 4 q15b-4/Q2% 3C'./?%.5 BR?r!!c.,3=A0NsA@O%>P A!!R?a0b $0&17""N70 P3 B31s/5BB:5 !B13"B,0Rt 4+40.tPP(Ou" /1"4r@"Q%0 e1/b`CP%?5rC11> 0E-2 P%"$6}R/4"-d,40sB _$@P.%A A t>D".-C?CQ a" -?$P@ vWf3,C1!?R3/?3 A/Q!A.D3At 2? &1  C$ B6 CQ1cJ$/Nc3B!.%Qa?7 # rA@0Ar-t2!a%AD*">.A 1..`/BCs!2O?01F3@&D@QB2R&/.C /a-A@0/E!5 &b C>"r //!2R r1 @?@1e " E-"0CP2?au"1oE1!b7205@2236 0'#0c/3A5NB!.Q 2!210T3'-/b rO)=25Q5"2O$P?#T 3.6 0!aB<PBA/C 0.D< 1C8a!50p'OC D#&/R_ A! @31 ?t07PQb./13Br!!>3 2v 1&-I0'O!t 1!5" !QS1-$AU BO$/10P3*c !$ $"/r?B 01.#=?Ai",s/$-A#!/t 1%s?R#o1 r r $0?$@&!w>4 2 R ?$s7<30S.C !/ ?1GR!4Qa!7 !G5/!C 1"1F-O!O+v2-AQ,> % =-BBB r@0" $A U !3 '0A!S<NF$!bC3 q<# 2E2/4$1Pa7 "U"a /$2"'_//Ar/BCP0s6BB@R% ?.#PUab/"?$p!F#-#% 1QQ a'! B 5 2.$@_1&-R0t 0RPTBG2/3?2B 3,/0?!SC /#01b"7M#-2`B /AL!.cAB" 4=B1S"O51/b bR -""?2.7AE.%03@R@7 R=#R!'/ !1 &-R,@D 1t 6-32P3 " 0B%/RR "/'/50#U>B310S2d!I /q 1%,@%a t2!A 0T $7-!"?a@$Q E>B@B s?F!E@0QS4O#!aB3?A2O$3!s !2qR'>P? AQ.d!4 #?t$"/#2`%&0$2 rIs /?O5=1D">R0a23.#?G/a"@!6./O17DD!AQ5!d-`3-A3?AQU/O=42s4!E_">c!G-C " A2B!># A s %N"A M6$3>$ #!1#b1BG>.=A=#a B@a0U.uR?R37N!/@PQ%=OB@ s/6"4-@1 B 1%!B>cC O3-/!7A-rCa1615-#CRR"!'O@$ Ss@!.r"u2$B 5.@"Ar T E Pb!".51#2!& %1s/#F3-M 4Q?$">12B07.-A/#Qc P!s .d-a>13/6>!`"@3a%/B 2?T _5-" P0"COT"$0b3 ;&?1EA/C/!@A3#!6"S12=307?@0/b4-AR !C*U1b@Q%/4/AR .TA!5"2 1#1QBA7<5.CRP@/?"C+K,Saa03G."#_0 #2E 0Q?# S-501`O!3G/" P12Q?B,!?/S 7 #O##]d !B# 0&!  SA S_A!!4>d "4.2B=SP 6?O "O$aa. b0/EF2 BP1@%?@$.A#C$# $023.!3 "A@#b0@7.%A 2 0!2?@ 4c3B3?D '="D?1?C@&BP!\c 6.3!>04 TN2/!#B#MR=S /F PO2.2C 22CB &{O1",BS>"OQ02!Q .F2@Q-13$N1/! C c//R0T-%.A1c2%#@D.2bC6^!/D B%# 04BT1 A 13S,!/P-2Ss"!2C+!2?F!&?20$Q50Q/! S %#0P54"@22#2%/]4S?#.B/P?3".R1CQ3 B7/ 13  A3 #4c"P P.03 N!@/#Q S A?!%.! ""@A2$@5/3023 1!//@ 5!B Q@@<6 $2# B!C. .22 aS103?1d,3? /BQ4?.?!RDAP/B>C6a#/?@4 .b, Q. b!%/!A2B#/{/R '1!QR/! 0r1$C "BB ?4BE3S 6/A#3A4>0 " C&0A? E?5!@/@404@>BS$ 3/ S0$( 2 @02?D "$1 Q > 4a3! !T?" 20.!b-D!_CD 2 1O %#!0a@ !1"?%Q! 0P 10/%#U"b!% & 3B   B #/'A  5!!%#0b /7!9/0E1A  #%2/Q$20.$0 C#2B6 %1!52A" 3FS#a O  A S1?40!3 ?QD!"!45  "->0""$/>3/AE  B $ ?E!12C ! $=1 5A"TBA!4/.5%2.Bg=R ?"/003!N 1.` C!# A.!?P!$! ?#R1!"-@3 #1c021A1#$ 3E!2%"6!!%12&2!+)@1.$ 23R .#13" "!"1 $1@-1A0 !4Q 1.2$/ 1 A# /?D ?@ 1>$ AC >#"3!1!!@".B.3/"0>./!S# 1 #$!"!#" 3#023$ R   230131" !24/3#1! 1/ !2$2S ! 14/""R24!#C!SQ"/" #3!~13#!?$$!1A1>?! R0/" /A/ " 4> # 1 2/023"2 N " BA! $4/@"!   #?!  0/#/0 !Q!"  /!. !B"1"B#1%1!C!/$2%/  A#B !!# ?A% C!!/$?B!/3B!#%  $"!$11 "33 ""2 51 !!1!3! 4 "/$"!A!!3 "D /1/1 ~03"B2/#C "!Q $/2 C/  231Q""2//-#/ 0"2"!1!/AC2"/"PC9B C@CD 1"BC3#$ B2 60U?22c-"0#2 F#$.t-.2A3/b!!#F4%A" !2!S@s#4ͭ2/߾'B%R$3"C!0.C 1S 5R#6$##&2"13R# /'A #.5?2B E3?bC6d=3c22DC! 'O!$-' O?!E ͯ4*@ u 3Q,!Q4& B/",t#Oo437! 20#!6!QS  G/P$2$2O"! Q.5$0 `&+b7??Pc@4+1! B2U/Ͽ@aCC.Q"A #"0E!/>pQ6.QS "E,/! #> P/ E/ 0R4Ur"4.4"0. C2c?F. aRF-2!1C& "!RaS<+B@O# 2#B2 Q &=qaG- $*A004 S$/CaS='a4R&3.A& 1Qt=Pb7%$/1#"3-2$@?b6>A7A$ !"-  $/OBGAa3 TP3 D>r%7-^B' #0"<0#1 "1rD S>0'0Q3<# @sCܾ6NRD$,"O  1A b ?QcF 0?!( S>2 @r..7A@C $ B "0 1 3-@qs7 p D#O#@ Nc5 Oc410-3TQ2?2@AuDP@3"ر20!BTT-0 @D &/?"B0$ B "F0 QRu /P$ 1 .$!/"C3e-P24/- 2BQ'bR u@4!3 .$0=RBD/APD . B%"P-AbT#DPA "!%32C'.1ac>"! 2 0C7=1QD "'-$OPBPDa%T >R60%-.C !2  4 0RC F0?"r50M 2/Q5V ?bR4/>B 42O4  QDT-7nCS-"*1!AS/#."0aT//#2 w2 A@br CG^1b.31'-"?/@,u#+^0R' "'M/!BB bP@ it$ @0u !%>B#S%@Pt &0@t?"?_B6O/u G.-B0 S?10 cD01OD1#.D@ 2s &2c "6 -""_"" # r /P Cc%1D35#L#011"S./@/SR;#!2!"5Qa si8ARB 1"11RS&>0bt5,? 20"3#&!"-qT-?!RA$, /%-C3G 1t4 15>.2" #60/b6'.-aB?4=".$3>R7 .aB 7+3Q S1D!= BCT>S0" 2"ArF%.Q B'-&R0y? #+C@RS&=A#R$<$."01 Q& br %.!7/10 C+#0At'?As16 21C '0Ps5 G O3b#>Q b>0S"-4 >#O3A-P_u'>Ob "/4?SRݾ5>/s %.#PB!2 $N RR &=41b,0/Ds OrAR4+1NP "s&0Rb7AQ 2  """ ARS$@QE #1213#A2//1 br 5?"@ @D/)!/%2 br6/?aE'@#Q a !$!B R '.b#1  5103 26 NqQ5-.Q2"'rDF5>q#! B/BCE&aQ$>/5B11#-2$!NݱAB '.a2 "11aS5 '?Qb5.#11?"-R $@1s 6'>Br"1$,?#> r.6? b D>?#R Q$ @0r3 '!1s 0$>"A?S5' / t %>"/B "B>#.$4 #Ob"%-1-2O4T $=r B0>R!"4 /$Nqr/>b#5"-#!"b%?CC&$OB4$ #C OA2b.5@BS" "15&1CrLP2B ?$^H!0 s/6 0C#1.@ 32.0@S# %.0!P3? BB0 ? PbS%/ QS#2? "A QCBR!54=@ "#"R .R $S.$, B34 / A"FQ3Q$BDBB$2#BPT/E&340D 22#BU!EQ@#"@%3A6/R" prR$,A!a422-!"D$%?@r5?$N!2  B &!?r3&  Ru~34/ "" D" /?r"&/"aR310c$5//S+#?3 /5F / b'/!R3"-A." bBR=/3a2C B,! %a#_ R26/N0 AR&BD4,>R@C2+2.!?q"&/PC#">33/ a/1 AR$,4/0RN"!"a.%? Ab $ 0$2  $.!@b%$_R3 !/@B$># QBB$ 0! "B!QQ55=QC4 1"1"0C -2Q5#A0#$$0R2D20a1?B#$!#=BkpAD.C0#1 !!"a5& 2A%!.@1$ Q-.! B$/01%`B /50q/%@B4$ 0!0a6BCDN"Q2 !/13" 2"Ϳ. Aac/13,31 "2!B3"1R5 0/C#"1E31S$> P 21 1!!.. A3$P23/ 01B0Q1C " O0#3>=H00BD 40/D 0"!"! A$$/OC# "/2/A 0R$ "@PBB "0/!/ B@ B3"@OR3 ? B0 .#@3C/?3#.Y+A @3?A13. ! "2 .$!.B!5.Q"C=0A  B"/31R"O12/ 30=A@S "!Q   #1"A4..1@B0!1++!!!A3 14!1!@ #3O@#".>!"?2B R#?0B#"?/2.P/# ?B$#/3!!"@">#" /!/021$ 0AA2.1!. /"2#@3#-!!!""0?3# N"2"0! ?R#@ 2> !@3#  RB$ R  "!0"3#0/43/A1".$003#/=B!/!=!/. "B"  R2 .1 A/?1C"O"1!-"!.1#0 510R#/"3! 43! Q! 3 !2S! # !0" 3%"B4" 7K?2" "2 C21$$1B"C3"/25!1B!3 "!BB D2 Q4%3A#E#1! 5" #B AC/  /C/""44""2""B,1!3 224.1 1!@22!2/"-!!! 1##3 1#> 0 ""!!2 3 B /#0!>?B #A5/ 14/!$31 2" #? 3!S # "12 21!$ 3!A " sKB"2!$2! B #/!B$ "$0" "5!! R4.$!44/430Rd$/B4 #!2  %" C/!5/13/44" 2%R1D2!C!2".!  "B!"0#A2B0B$ 22/ ! 2mC1"C4 "1#3/ 432 B#/B"C?#"2 #"!S"#/"""/!$#13!   B2 5!!  122#/"/ ""/!2!!!3"2" "2 1S!" "3 $#" 3 0/B2"4@"!2!!4 02!3 "BB13!4##A/! A2!C ?! "/"2#/!B #30"# BD  A2" C"!3 AC/.3Q!2 !2C1!3!B3!3B #1!$2""""2#!#10"  "!Bj0"3 "21" 3C0 1""3!B"$/2$  #Q2"C!1# "23 #!!#0"$!!3$ 11"!!!2 !! 02"!!3#1`3 .132.1#1 3"#!23 ## ""! 3" /!!#01#!#! #1!""/!!$ B"0#"#32#B!$!$  B# !" 22 ""!" r2" 2/  2! #0#1 23!1"!B"!"# 2!2!$!31 " "! /#" !!2! 2!!!#! ! " !!"!2  "A!!#!"21"2!# 22"12"!"  !!"2!1"##!"# !P/0 N D4B$b1F.r= s q.PRB 40=22"'1 D""!"t#AD!/F!$#B.s!1>c3 "/35D#St2"403}c@TR4 "42F"3DA&2463" 361 R@0"4 $4?$UCR%>I4!#v#B1%//c '1c rB4-3T '4/7/!4!Qc"a /1 #4?t;7@2C3ͰB!&/b@3P$.&/01RR2#B0.D/3$3B/4 b0 "Q<f14@#B 44 4 ""!bb 1B0`p2.'<5."ES33R!0@CP -'$ 5 c,HSBbAo7P d/&dB/Tt !Q'@ #!-G>B"4 S#/"?Q"#-au2bu2#0b</$0T2/D E-C#rB1> ?07!T)p!C"Aa5/%  s5 41 sA$` G0d< c# S 32 'P!.G 3,5 2uR@2/ 7 ##1 sB#C@ 2?!!<'/ %Bba2@ !O0^ $A1W.%.3A "s4 a 1Q12!7?#C"sC6#1A@!F?$+DCC#v2_P .#"'-G/1!$/bs"11P!<0D6." cd3!`@6>.T//ED5Q!!a17O3?e! Trr P!`%O$S!# tR!Ar 2.o" $e"33 1r/"O'1-!#."S.4"Ab@!1 P2%? #c%4!4a4107OO7!V#;A#r3C?27O O#,/ d$ 46 '$#sQ$A!>7N U !CsA3r2=5> 6 t!C PBP?7P'!SC!#qq02 .! c6D"2 bRO7 PS<2.5ޯ#r2rQ%P!&0y0T;#/C 3 s!RA2! '@t" DB rBB ! 2.#!ް7N3$#c212!`/"2&0/CO4R CSBP3!% O"4TDA!`P#B=?t'/"3)"UrS32'@@R,C.Ϳ3=4F  rBR!0AG E#;BScR6C01NG? 4 UC!Rt 2_@<A$/U $" QsA#1B/ #.E 1,cb-R1&316>/7d B#R3B@60?$ V1b0 5q ?2 0OA>d424"A3 P"7>4 E2?DP2/A/' # 7/2BaBC.2%0#_!b!iS-QQ%RS' O6 T41sBS@070>'-t5 #c!SAP10tF  T/$r!R qa#A7?&U.3! Rb!=1!!7@$A.3 F!"bR!A13?!#*17SrR2B` 5 7>/B0#r B/3R13"7.%" c=c45"!` !#@ F?#&#sB$$b D@ 4?#5.#SSb1Q?#A" %!@3/Rb 3!2 1A.%=#%sU!3@25-!T/!E S4#S!!Pa& V///!7sR R A@'0.$!$-U"$A t03!0&@""U #42s@$"1/޽1/!#/'/#"",#Ra"#A2.#/3ۿ#E DR RbQ 1%OO6!!T421 r1B!1'?/!3,T$C4 " c3"B1?D>!s5Dba#b!%@=/1M%4 c!!S 2a /?7!!B!45 !2qr#?"/0"  TT4 #1 B R">#%?0 E.c54 RB&1 $Q0&S 4c 3$2p /' ,$"#T"31%A>F/B2s @0# a/!0/%0 #4"r2"3Q2?0! $ % 5-DSqBA>%""!@ TR/"qR 1!1!A1= D=24"SRBA"0P"5>DE$6-ECS!2 1%1!",7"B.A S!/" A">1$-5? 4Rb"4"0",.D T/C"aR@/A$<2S6$2 RB%0!A `5?.3 $.E !+Bܡ"r!B/A.4#.T.3A"r 1"2 1.2=.F/ #4.2c10 1>$O'M#$"3a4@#N0 #>S&#B QA! %?% % /S3.0# !bQ$"2!4"r$ B1`A0 '/ 6D4DB2@. =E." S 3SQ_(B.1 !<$.35!""Bb0"1/O 1.CD.5#QC0!05.3/B!3332@$@0 6">4$R1310261R!1r ##$A?"/F.OK34-c#2B0  6$ C<"rQ#Ca@#A !$ 4/!4CB "/ ?!"-S&.# 2R4 A 10@%-D$.4!!a21!1$@D/!C! DBQ03@#Q-#!"S># 32.AS  1 OQ/3#/% 1"@C@"21B>>"/$~#B5@"!Q3>#2? C. $4#3A1-!//#2S # 2!3B122 /#D3#ASP1%!!/1Mc$ "4 !Q-!P $@%> 4#5 RAQA$!0 4 B R" #QQ?@C//2+#D%1""AA"0&O4,D 33@B?! $0$=CASC"` !&4"Bb 2?a >"/&/!"2%# ?CA 41R R"/B%2/B"d/02B DA3 63A4>$/#D.!s/2 53.R"2"!Q!#0%"4  R"!CR01/4 D23@>%!4#4=$2B !B?Q# %! "!@ R0! 0P>B41 ##001$?#!C"Q2C @0Q $.$. A! !a"1 0@!/5#2" !R !!!/$ABC>! #!C00 1/"?4/ #2ݱA!""A//1 #C$ !A/BA0/?1 D!1"Q!# 3@>.  R 1 2  a A@4/# B2?A.4? $! 5!2 1B"-1/?!1"|4"!3?!/"0 #%" #2A01 4#$ "31"P 1!/21RA! ` !"$>" #b1! !A/A?C 3 /R #!B"1 "0"> 3."#@/ ?1$ #AQ3! 00"3."/2 B20@  .3/BA"A1?#?# "D B1B1 $02""$!"!0Q1/@ 3."2B" A""#"AA !-# 2 $5!D 2 S "$B2#?51"D?C0AC  %2! 1" ./4!?301!!#/2/##? # 0P!". !! #B 2!).4"#"b!CAB 6!41 C3B!RB$ 3/T#2BB?24/ 1."""!"A-! O P > !"310 2 !5C"?#3#"@!? #"0# !!/!// 1 !3!!"D1 32A" ?!3.2C"02  #" #2B2 "3 2 400 " 3A2!3?4!S"21#B524.$RV)!/Q 1% 33C#CB1"#/!4"32!2!32 3# "4 3!31!!B"R1#0 C/"4"B!$1 43 u5 D 22 A"/$0"3 R! R32!301 32 /3$ #0!#@!2!"C240!#!!4 "#33=I A#4?5 "C!3A "43 A3! #A"!"C " 23302!!/$!1$/33$21$43""D!21" 41#13"23/2  2 4 ""222/ 2! 3! 1   #23 " 2"4 / "!#!"#A!"/#/C 11!3A3"CB!#1!#0"23"2/3" 3!""1"!2" "  # !#" "2"#  4#23 1#03 "3R2"/ "4"!"!""!120! "$"! 1!$"!!#1!"#4!11#1hl."3B!1 $ #"322!"!#"!"fo/"! ""!"1"#!"  # "26E " #0#! 2 B1"3  "!1 !2  "2! "! #/""1!(#3!!2#".2 #!1# "#!" "  #!!! !3!"!!#!2!2 #1" !2!!3 !!!!!"/!""#S"4C1#4$"1 ! "#1C030>!!?4/OT0 3/16E !4!!u"GG$Pa.Q!0A4444$0 Q"Q3>@.TBQ0SR / cA3C#B#,C$ 6 "S-!""/$=5B.B#4&"2"!$R#!s 0Ncbr/C"@$R!Q:S37bv`G;>"".02.2/REbD.2&c- BP S?t.O6>D ,!-SQ0 3 sb'2!A4 A140 ! 3?d&0EOsO" C>$&hq/B s/t4/3R!/D?"#?b1B& !'.U"D>!!2CA!-S]q/,b&-BqA.%!C2ؿ2A!e/%-074?36 E"P4/A=B U T!lS q"0c#20$ @S /'?.=C-M24#1O a-aA1%s4B!B!/_b2UO B7^S -EQ1CQ -q/ a 7-qr ,"q S"@ E'1.%>b /qSO!/CCP ,b>0 5 !E-s/&-S !10B"."a#@_+ K4/Q440 u 0s"SAC*15/A4 a3/7`6-`#1S$03/3= #/S$s=3c=!"B"C @R r 60R T/206/b=2?/w1 c!/u%>r +#.-4A"2W.R0&r .F! 7 ?C ,"JE0'/e/q A1O SQR"-`#!?5.b@5+"23>3 s"uAqb# 5@351B %Ac=#aCؿ0/r!,C00r6?u0.d KD 9M#R$?C>ocOq4" !/""`"!"d !s>t?T >B-` r0Q6A27.B $1. $/ / c0$ ad @1D /$A# 0 AUa!$ B* $ 5Q432q!-!"02!ݝ2.S@t-.@bA #SA"?c0 4'/s D0E1E 1 R3Ba%'0E1$?#-$ A-R/?5/b*r-C&20.%,A< 2@ݱU11 D0S >2 0#b2,bOR%0 ,S?"C!C0U,7&R7!0#Q S 5!н1c!"S S3T$@ A!/0"!BD!F05_" T/001/s@r/CE.c# 1r=1 7" & #5A A!& 2!#^!  A,s?rE. Rb,c5 2@!A3! #3G!A4/1 .3! >DA!1V/!bb-a B+2 2/#CD.$`E a% &Q#B= ABގDQ$?S Ru"C4D, !C/ BcD'BD 1EA# /@!4#&/r r? d F CQ#P! @ 4E?C 04C 012/#=r!.A/bd1P=D@= C!."/q$ 1>r @"!? #3 CF" !u15#3S$.#A"A2"C$/_%P$ .1%$a6s/r  % $MD2# %0#0"145."QQ6A#@B#Nb>%/3/ 5'>Q$ R=F_P -'?!aG 1 E3 +"A"O62=/'NBS26!CD/" /!$A DA3b"q0`$S 5@ 6.K T.#" 4 2  4!Q63r.04051R.$ .t@S!'/$b .a!"0-AT  b .D312D%1P302G 2"#?# `!{@?C'P0r?a/!1#C!F0@V QSP# A?R#a R '/c2T=Q. /5#! 5Q $.a #P5.03@"5 300/3AS B@"|# P5 %#"7!  .3 & c %<"C?"A 3&0CA3Oc:!4""  41"20q6>?6! BT0!C." 0/$Q&BD @3.S#"!1#>P6 Pt@"#3>C".S103$Q4 P 'A3E& "4 Q s 03$CQ4/C#`! $$'!_cNDD@4C.2!2.a41$A3 ?-|2!@2$1aC,".&1?C 0R .$)4 0&#. a$, ?!! 1%!2e5 A  2&0CE/C>#/>!!#./C# B.Q6A"!23#B E! S/BD.@%S.ݮA "QQU1"R0"q,R1/ 2!?6!iT/#2 "B1bPB!0 1 33# 2 40/1 #?cO$`B !(=#r.Q> Rq SR4 @!2A",D !#//! 512T1 !A?$. g4?5 Q0%A!!B%>B!#5B"F!1E@C 322.14/24PEOR/#$!a. 40C%0" @5/<C ##!R/r% %! 15K_"0.# >6!%!B%/S,!1A0#?.b <A%B"T+3C " 0 $>3$B2$01T!3/B50/D.2 2/!2.P1!!;&!=> !QC0 032!"DBRO %33 !"1#02&/A!? 3A" A/$RR$B"=b,3R4A>22 !1%!"&.#4.Q2#B @#=q3 " .4P!  DC4-A A!?0 4-" 1C{!2/D/?"."2/"0!?"AR1B$ @!4B0D?Q/!!$//#42%!02>@D ?" 1  b @ a401>4?> 3/  B$2#/"" %./P$"!%!AR-?"/33#!!." /$0 B".0 4O%.BA##0B0 2"C"NCN/!3 AG R!0 !#3/A2#>3#.S # B 3?"1"" Cް2?B?!b3""/2!NR1%. !/2.10 &" D#-q3A@# 02% 04.41#!1.@C$B /"-A" A1 #!"MB/"=(B"@#$02!#@O!22!0 #?5 Q"@   !B #3O!//C./" 2" B/ 3 .R/4"C #/0$/ .B$ #?!!!01 #.!C4.A#B! "R #@1""A2?3#O "!!2FX#"B2 "!3">2! ?2 "P B.!!#202?.243 R ." /." "C02/ "24-2RS ".0@U?  "? ! 0%".1.=23/!2!/Q =1"2 0 !!!3 0!A 4!-"// 0 !0A 3!#P #>!Q3#" "!-C#/ B!B -"4 @ "02 "!  !!%" "3.B # 1/0/! "?"#/04" .0!B$"! `%/."1#/0# ?!1/ BB !"hR0AA.B !!#!103?!!.2"/2/A #/02!25 2.@!.2! //31!3/#" "22!  !!?"  1 1B..$/!#   1/A !#  ?O3!" #=#AA4ͽ D/4B"/!"E!#" %213 !$3!33 SBA #A"\I2#2"0$.# !//!# #!!!/_V!0#2 !."/-3 1""A!1! 3C3 5B3!!"!"A# !"D !"D#411!!""%A/"B#14C23!"!?"$!"C3 1"B!B3/RM3 !" $#C13"S "2/#/"2T"R#/0 3JR2 3 ! "41" 3123! #"D 1B"B"? 0!/? #A "//1#//!!0-!5!42?2! 02! DB2"!!3 "!%!4 ""Mt41!#34"2C#03 22 1/2 .%2 !"n{" 34 31"# " #!!D!#RB2A$"#  C1+,CA!!!#120 B#2C"!"!! !!C# 1A8$1#2/!#3 4! "! S"B !""D231#" !41222!2$!2#43"  Bn3! # "" #03##3."2 #""1# 2!30!nrB/#""1!"#  $!"##" !!1BCR!5!3 !!#/#"#""21""""# #0!OW 32 !31""" 3 ""2 !3# B!@$2# !0"0AD"  CAA/Ϳ0  %0qB /"RA$M340" 30@.5 D23c1DC %2#2 "C"s3% R!%E2<$ 45CDE"E"! "#!!%"2S21!1SE13C#550c1ACB12R!" 3##ο$CBB #R3!.!4D/21"-3Q13.13A!0C3!431C!CQ3 _& "Q/,4]qBSr $c4+&&/D 7/2,A!bSQ$BCB1!ذ"6 -7O 1'!^5&/#Q@?!Q"A@#T2T#/eF/G&!!G00,?R3#S2 u I6u/ 6 ?$^D2QB"s0 45v4w4.!7>,!$.B /RRRS/a D!s % %!5/"*'! 0 BqS a!r3E *S"1/60"0P0 2P4"6!.T!&-E 72OP$R132# 3 U T6W & ' BAr3"Q" SE.F/%/e F"#E0./!"21@DSuC5~s.&d ?!'/">r/C2DBsd$t%/5.;/B 2bQ"bCt$C,$2C.//00 Ab cS /231$,#!!.G!A F? ' pvAB/QC3DC s/ T?.F &0'@1#6@01#2!s!$/t?57!$/ !&@0$$P#b3"cTt!77?;!.A"?C!3.tb tRMS4:"F -?2023Q RR"3 3.2 3&#!.06?CBADs41D465>/5222C&2AS#2C!!F /e/$$OO/Q 02#a !Bb"#3.dU1%OF1=!>A1@B 5sEc6/ 60#?"" 32RR b cTT/ '3</+/!?1"!3R sb R b Sb-6-552   1 arR$R3C! C 071?AA!RB#QB13 sC-T>3>D@07 3A?!S"" S %u%T4</M%001 $32DDS d&/EO5.!"1#A2qDSRE 4"/5$0%/)l" ?00߮@aqbq"C2$## 6 "/E/!!-&1".Ba!Q42D#74!2 F "?U/?%A "1A02"#42 .F".D D.F =!?/B20 3AQ3 D4%-7%0!%?_2"R23SDT.c5%/#_%2A3'@R" rD b.D/!U#-!0/-"0RArB sC"c /326.2=4!C=?2 /AB4 Cs2D3 4 510 /0 2@Q. "C  344" %.5!&.&/Q2"Q""R$S C1E?D!0$/02@!"S"=".F52F& $@N$//3 "b 2S3c5 T1." "2M!Rr!RBr5c 5 @@  Q@bQS 3 "S2!"!$/$. 0'Q %@#0S?AQ 5 1 R?  /0#_A1!@ BQ12! C C/35 %/E #  011 C1SQ-E2.5/.6"/A#@/30 bBbnBr3!D=.$>-!O2Q bQb# c$!S# 0#N#/! 4R $a"Q!!S !B $.$ 4/$! $/P#a 2 QR/044-C= O6. O$>%/"//1P0 2BQcRD36/4 !C//10bA,T 406 //1A0b BrBR# D/.!&".A 02"R RS|Ab "43.+$!$ &PBPB Bܰ4#!05/$/ /4!#P06!!A22 #!503 & ? 0/B!2"31R!"$&#.& !50"""!a 4 S/$C.#$?41"3A"1CC S%R? -"0/O@/" RQBQR ! 5 /! /@A BBQAEF" 2 "! $1"@%00P2Q ""3,!%  $!.$ 1!$2q11 "#4!$> 5!$-$ .#1!2"!31B$344C?5/>  !1"0 43.C C3 ".#M#/."/B.12"CQSCC"E5 #!/2!1AA1Q22#"2!?CO$/$00Q_ 21# "!4!5/#.%/? 1!2!2"1C#5D$0. ".1A0 2A/ 35RC#4# 121A QQCB3! 4 1 01B 322 3 !"$ $  $1" A2A 0!R1"2eB".$0"% /1B/2 "!1/4 ".5  !!1A1"F.3 2-B 4$-!!!BB 3$422.  #10/@@|q2AD 2 C"#-#.0@21Q2B 14 0#  ! .? #Q0Q 2/1 "C  !0/#12>#1AB/"22""I$ 00" !1!2$4"/#?.1 !Q?2#R2-3./2!3#a1C $# !/2!B Bb 3 !# !/$0 #!1!A!1 1!.0/>?/#@ #!!2!$ #/ ? /12" 2223/jg#./."  !B14"2>"A Q1B1A?%B $R!13 ! D0$2!D0B01""3!/#33!1!5 $ @A!" 0!  !#$/#"!!! 1/.?iKD c#4D!"3"! C"!C# SC."C! 330!3" B">!!/!B0 4" B"..."1 1"A#b!"D0B342!"02D2 # T!/40#0C41C21C40"%?02 1 "/3 # / ? A A.-1 "-2 "02R!#"$/2$AB $B2"! "#3! "#D21ܾ !"4I2B42!#!E2 "1E" $110#$1!5"14!!SA3D2!#1"" C2!3S"2D " $1!C32!C! 5 2D "" !BC$B3 "/2##$1!A12$B 2i52#D3152!#12"$1  43!424 51#52""!4"""R23D $#13312C !3 2D!"""!"#3CB3 ""#$2!"1"!$2B!3B" " 5!4B $1!"#BC21413 5!4B"#+!!3""!D2"4  "/"1221!# ""3!"4!! 3/!"AB!321 "#!!" $" !01#2""#3!" &+#!5! $20$1!"1 3#141#!424A!1!3!!"3"4! "#! 22A #" "4 $!" 3# 2#!"""!21"!"2""#3!! !Ky3A#3121""1 #2"$2#0#@3B!A4!!4#"#A#!!"! 21"!!"!31! #!22"" !2!2" 2!!""""!!#3!3!A!"1$!!"21#2!#B2"4!!422!"1!""!!"!31#1!!2 2 "1!"2 ""!!3!032!"B22#B"2"2"B21!2#"!!0"1" " 3#! iy1 !!"!" "#!"# !$!2!" /" """ "# 3   !3 !2!#""!"!!! 2" !/ !"!"" "!!!!!!12!!#2#2!!GD"!"!"""2#2!#1!#!11!""!!! "" #$)!"!"!!/!2# "!  !   !!  26Ac//@1.5#05R r3!3BF r 5$1#.31DJ!Q2E S".S5 $5B2#/P B4 ܰ '2#2" #>/CD%-:Q22W0'@4! !%0#A#a02S230!Q/Q޿S0R "33/31.!"2A4BB !R-.$!0@/2CC1 %/#!DP/B% 0R .# 4  -!DO3#20F1Ͱ" -s 0!d>$ /E|Bb " 0?" ?W"rB/SD R.a3  A"/4P E!bCV +u/F/R#-"C "E/.3"U2#/b Be/R /S?SC,!R2  "C" S $BU0# BS4s0%- !6A31 c 0F/r$rE 4V!_ &A#"T 1F.4,s61s+ /"1A0sAU0Ca #@PU ! ܯ"g!"4#B!.r 4TQ6r"T/C# .#6$1C!">R-#T?b$BD 1D A/0S5 #T BT0C Q$.d-R2B&/2$%R.R-,70b$/C"V ?"r s=!E@4s ?!s?32@!!-C"SSTB5R3.d % "=A#!c/RU@3 r #0c>Q!"1/ !@ EnS D .A6r@/D.3 P!?/2E"%!c#Q7BCE?"c "" ,N"$A $/!b."&15%C412T=A/0"r T/3'2 Dc ݾE/ *C3P"0/!q "c>1'1DR 3>T /@33!S?-"62#.r I"S03=Q 3"/A52D B#2t3b E %.2 6R1 /UA/_@RC 1'A2#0"B=R D.11RT22F.2@ b /U'GB6!Rr"#c.Q"#0"B!c A1 C? C $ ! S2 O0RA5 "?CB3!s?C@4. b"#/3C-3//3,3#Pr/S 5?#4.CYN>4B"T>>2%!55#0 E.a$A $R!6ADd4A?j"6.""!ܿRS@0R12.c DO$ 2$3!>S# 4 " R C?c0D."!1/D%D0C#4s!!%!# R"!2E3 A#1T/R %">/C2/3/"!D0a#QCQ0%.R2""3 S )55Q%! C?c%1423A01/A" 1S?B&!4 c10EB21ܰ/-Q ?5/2 &2#/ s@ ! 6"$"1b0$2%Q4r!$@.& a!C2 3 D0#B1S.A 3@!+Q !$2R 1 52A S3u3@ !>R 20! a S3"Q5b$@B31 !>a! !% B%22/T0$122CD4 %!b#S>B%1212 2$/12 2/C 2?b1 3@"-C!3C3ABB1S.30Q# #X! 31CC4/40?D#3R/" 3OAB"1c3 4?1A`"ݿ3-!$2!#D!S.@$ !.13-!3  $""C ! E #%#12B $#=11 0/c@D" 1"/R! !2$ 31C"4/41R!A "B#1? ">Q1 4?413 !3  51B#!/&22>BQ0!R@#0#R$D""?!1" 0B!eAS 5#""!3 2.1 20R/"04 " 1 //3-  ="#2.D @C"" R !200/B !#BA5 $1/283 "! /4 $ 3B# B,@0".A!.C 0""B!D;!02? 2##0$23b#4" "22/D""$" b 5#P !03 /"! #C1C.A C !"1 /31 B3!3.@".0!/!" /!@"C!C/ 2! /2# #92#B 1 4#!"A# .2!2! r"!B.!!03,20P1R C  /Q!#   $A b"$"@/B! "!3""B1 302"B /!/# 0 /".1 " $R$\!021!  $/2$ B $2"P1" !A/aX1!0C"Q! B 3?"B1" 2"A! C!A#?B/3 "0!/"1$2B . "# //"! !a$#1!!03 .0#0"%. /31".Wq1" #A" R041 4"0"1B! "MB""1 " 4#!1@#!!#B"!"11"/ B!@/-!/23B "/2!!?30A "3 "?3".0  2 A"R #/# 2""#B 21"/A."  !2 3/30## &5/"#/@#2 !!/3!//# 8i Q$$B SB" !2D T1"3622"3 !R! 31S1#2"!B!#1!R.!A 3 ?F%1D1#B $2!!3"2"#!42!%1215/3"3$A"3" #100@""!1 2/22R"1!E!!5!3C"! $3#132!!%2#4n:!"2!A!!/"!/1!>+AD!B2512!""33"$R!!301##3!!!52#34DB!"%B#221/C"!#"D1"$124 3327eB!!#!"#$B/!!!" !!A42"B2""!#1 i"#142! A1!4@3 #423! B#1"S !311]m##3 !4B" R351" 4C"1!3"!!D21512$B#1" 3!"!2"#B ! 3 !!!!#142"B7$1"  "" #!42"2!!$ 3 "3A"! $B"!D 4 1#"3!3B"#B2 414B23"11A!!C215!"1#2"12!##2!$3 !#!#!3"B#1! "!#!3"!!#!! 3 "z$!2# 4A #C ##"!23"#2B!!!%1#2 #2B!!C 12#23 !2",3 # !3A2#212"01 !" ! "!!1#31""#/"$1!2##2"13""#A22 #1#"!!$"#B!3  $"1"1"!#!1/#!!32!"!" "!" !  "2 "!" 0 2"!"!!"$"$2rb#""!"!!1"3  "$1!1"#2!#2 #!1#""" #!!2" # ""1  !!!!2 1#!!"0!" 312 2 "1##"A13!#2"22" 1!"!"!"!"#!!"  ! 1"0!"!"1"! " " 2 $ "2!"" 2!2!" #!#2""!"M,"!!""!" !"!"!" ! !"!" !! 2+K!!!"!"" Yg "#$23343CC/ "#" 2B> "4!4r##A@s# R@E3 S0/ܯs" /2@4 $S}%#/5B"c##TDCbV#" !r"CV3ޮ1RC."U4"CQ#R1ͮC3!G2B Aݍ$SbC2E0 $r/2b RDb3 CcAS$/s!C 6B S27@F/"$DA.A./1 ? B&2.u"A 03&Q%_#!R "#'o0 !4.C"c"CC!>BQ!!.A5."sR Q1$@?"1=.D*3RCa00&BB!ͼ"% ' S2C :#ss2%-d/S D#"/%/Q 7rQ-S21$C c "Q?'?4/4d"!/(O/!'BAQ4-@S SCR!Q"1!!E#.QE3QR @2@F '1 22$DLp#Q>5$<7B 1C2B@03U! U2A?@R"B,0%3!S ##YB1 4 !̿&.4'B"#B!QA%.!# 52 5 S-'A!#!1 D=$cc! C'N/ "=3"S.DA "1sa  !#714s#C@.@2!e/ ܯC1B#q/2"N1$RB$0C@3> 3 u 41RQ2RA3T!5"?$0b"!A.G017 1S # 3?B tO&'O.BS s 3@ A=#-1' R#Q1 "W< 2=%/"#D,""11!E"$4>!CQ!qR-?$<$!6 V.$ C1$a_C4>9? B.βt"R 1'AQP5/$ suB6/1#̾&Au" B-2"">Cp %&Y/d7>DDb $-.C1A7? 2" c $R#!P ;/u3R2Ca?/5A/}-R.1R!2"%P4R2D6D3@C `1!0"0?3r D CQ1=$,%Y/5B!1. b #1&@ d /%" A3OCCa%2 >UB$3!4.13C?03@G>.W.3 2#3b!?#>E3OCE $a! @1U,#@CT#2 3b 1-q0"<13a$2s#R "2A$,/-3A5 3 S'q2%1Q!6#f/6R#R0 ? p?Q"E( ~S !RR4#P7O14 DASAS?#!70&/!r"qDR_@Q5c/-s"P3!&/?$1f??5A$a-r1/A@#S/BW,22r1B'OE0u "S* #>`7/ 5.#/4bS1v>$ #/F?#" 0a B"!7./#/!d###a!#"TQ#!G,#>4 !5r V 04OB/$ 5-C$3 2!pE./ 6,T/cC?xQAaQ2D0 #1  c-3r#!7?"ad-"B/a 3aB@!$ 5 1 DS"7 2v3 ARU4"6 B@B 110>#O!S"!C!1Q?6/-7 .ERa2 3CB#!OAD<! 5$.40A 0$1>QP7> %b 1%a #aPG./4-4a!!"R " ??t3S2# BB/R@D,!%"R$s#$/P 7115 &%/C!%Sb@k&%?2 RBc'@ AQ3s?# U/C4C!P4MR.A"ر2.B 3 "B02`142>24 3CCS11"3NF?s"q"0$"0/T2$u rR1#="/7>dA # 40a=S 7-2= q" ߻Be!CT4̠RA?&04.6 7N%C PDR4@P?5!@D, CS/-BD &?/c2ܾ/C/55 4#s ?Q"0'AF.#Z5 Rab T>30&.`##@33p 2$ C< 2 u"/0O3@R #S:wa$"4qa /t. 2.%C2T 3S1!$QA/73.0 b/A!!@P7/2 1U$CC/`,2t# b %BBO0,;B3Q#a">a5/E. F&?(RO"@3B-@Q%@? t0T.22>Q"sOT4RD,cD!>0GE#`%502D?2>?7>! &S%-R#!Q!QOW3C?C3R+BB>/!Ac$0c4 5@#Q1r S%/3 $RR"3/7!'@4D $b.b!B/%  #-cBBR RA3F-/ 71 E 3BAC$BQ$OBC#/ S-#Br3.230%AS$30 S b0#,6  -7/ B 12 !0 d5!t/BB N21' -64$RSDW!Q.71$>RBBR '@.-$ #/t5 P! /B3/5.6."b "%#P?"?%1R /C  R A$ B$ 603R!2@&2 !4%B "'#-E>$.5 #C/3bF&t2 a@S$/4BB 1BC.4=25,12b.2C1!Q@D2,CBR 71u.2O%#"c.6202! /@'`4C3!%1a"  7? E!Q2"@B4A,!E E Q&0Q.b,4>U#B&B#! 3LACO s%/1#OR@A{@.1r..r 1AA dN 6/ $B"EC".0 &!!/D,3C!50$t/4[#4- # D a4!! P?4t #/R/SAP=310O5R/CBq !@@D+/Y#ݾ?3CR13! "Q7N144/!4r/ #C _$ cBC@s1PP!.$+!0%/ B BQ2 3 @$.6 4 "T .Ba/""%0@A@"4aQ> / -5/2$!1/T/$b11@?C? 6/4R SB!-Q3A&# %3+##/" R&@C& !/#R 4BC/#B 0AC%64 !"40%. /4$b z/B "4ARDO5/@3b2 b20aC> 4EAAQ0@ D $26F4A0Q2#"1#C/3B0 0#A1" %>33 B@21 .@B21"b$10R##?2/% r $/3!/B!d- 3$!CS2 $"E 2DA!O!!4C "/3"="33A1BQ10 BT26 CAQ0_O4.5B!! S!?@@ %- "RRBA.?U"3 $" 50/q#@/$!BB.!`03@ 3@R  4A.O44> "C3D1@#@2!/""D  B/!.! N1 %$S/ C?A!?%>%?C"E!`A05 $R3R !!2 Aa %!R.P20.?C ""Cq @A3.$#.D #22@.1 b1/A #O231A/5p 4-/2a0D/0?".4$.B.D?1Q/$O34D/!#Q0 "  16 3 #/>O "0 1602O "B?3> " # bO"!B.|5/$A3#b 3?/.@s 1"" !RQ$0 2" $R@B 6- 3# BB 12".1 /!! #S OC!#>$>#"#R! " 2 @ cR!!#-51S15 /c.!&/BS@#"%! S"$B1C,b!#S Cs2 @/C 2$@02@#/1 !% 11Q !$-/ A-A4"??&"#>Cp# 30/R/A!!//30R !C @>3 D C "#0#,0Q-3 5 !?!/!4/!.D1B1!@ "#4B!01!$"B2 Q"!-@@?A. 20D1B?/2/"$12 / .# @Q>10 >>.2 !B0/>1 "//S ?0Q1#$?-"@1 #>3?1/$2 %!" !PkC40#/ /"5A"#3!3$ !R-"C//111#?2 !! $3@4"13 " 2# C!2 A> #.! $/ A"/<%D ""12" ""!3/ "2/1!#!#"""/ [R>/5#B !3>!!/?$42!!2! -_# B"A2kcBR-@1?0 "-A 34">"/!"4" ?@62!$B3"% /!C2B4 0 $2%16  C"41 !"!D2c//# !E1%"2B#/2A$ 53"5" !3/$ $1S#""B=~"!$2?# !> 2Q @0!$?"! !#"# #&B/#4 !3S2 0/ R! 5 0$034C/! "!"!\( ".4/ 2#/1/C"!! 0@# !B /2? /0#3# C?3B 2#!!# 1D/"#!$ " R/"4C2B1#S ! !4!4$2D! 2 2#BR 4"3/1R!   !3 2@ 2!/-@/"201.A/!/#."#>C$! #2!2C#! #!!2 #S1A !0D !1$0! #/!2!3 2""!#@#1#33B#C"0"!2 ##/D "!3#!"B"B!0 "% S2! !"230#"!#1"#!2/" 3/A" 14"#!$B#2 !B 0C C03 "43"1".$  " 41"!#! 2!3" ""."3214 !42!! ""12$/"!"#21210# "D 4!04 "11!3"3/!/" "30QCRD.@!QBRU1" #C1b"S*$3782DS42P `RCO$#s#&%"5  Or1/a0??#RtA0s8pQC2! #T 07."4.!@D B434!# %B./?S2#.F.25O3 "$$"71 $./q1032SA7B/G"207D1C!"qP!0"c1"r>PT !R3bSR. $21! d?A / A1%24  b/4CS#Q#B.402! QF/QQ!"A#BC"32S 331#Q$!@1*S! 2,!1DQ @  3_Db!#c@ "1 1 !""b0  # /3B "I/13/" 330!"1//#C$!5"2/""10! B "" A/"" 31 "/!11!#$A"/0$2!1!""/ " 0.0p#!!0?1?1/! !> ? 0 kO2>!#"2/ 0 1 /" "!y"3C24C # 2!#22$C2!" """3" 1"1##DB!2"3""#34D2B#" "D!!!/!6!!C!  !"13"1"4C C " #!"1!!"!01"23B"$31"#"#2D3 "!4"42"3!2"#C $34C !"#1 !#11"#!"%#"C"2! !2),/21##!"!2"" 2!!!" !#B#!!"5!21"3!22   "2!5F!"!"""121!! !3"#1""!!u1 "2!2#"ݾ2 !!!" #0"!!""#!!"""2R !"!!#C "!" "" / #B"2# !"!"!2/#$"!#2"" ""! !!!!"`g !"!"#"""!  !##!""!  "2!!B!!"!"!?X"  !2 # !"!!b!!!!"  ""2-2 ! 3 !!#2!1"!!!3!!#!! !" """"/"!2!3 "!! !"2""" ! "1!!!"#!c!/!!!!!!"!""#0* 1!"  ud  "#!!"   !! AP# #"! !!"!  " !"" "!!|   ""! " !_M! ! !! " !!"9F!!  +-"9; `N ! !U\!c]  "!HK ( XT 4;FD%$ ./ /.. !'.&( 76+2''DF$&/6!&&&-)9A-0+2!2B % Ar !R--@E/n|142 `1%50T#0SOO" c & 1@3 &R43C B3D?5$ .%AD0>#Q00?3D/"b!b 2N" 4E3$4-@d! 6.#.B>-?A2A7 ?2"02P2 Q#-A"".CA"+!N1.#.t1A?R1D0#wzcA/.2?1 u",#ݯU#3#>2%#Q ۾A"A"/r0A1"3sCC,.$a 131/5// 4"A "Ab@ /4R!#"."D2"94 42! 4B? 1 "CB1""2#2R""  !"!/ 6!L{ !#"B "#!!2! 2!21 ! !!AA!/ / / B!"  / 2" ! /// /g"!!"0!" "  432##"#3333DC3"2"!#CD!#3BB33"/!! q!!33"#"$"22!!!3!#""#!3""# """"1"1""#2""22"??!!!"!"2"!!!" !2"!"2""!"!"2!!""##! "!"!"!&"#"!!"!""!!"!!!""!!"!K9!""!!!""""!"!!!"""!1"!!!!"!! E9! !!! !!!!T8""!! !!!"!" !!!"!! !!!! !!!! !!bg !  %!!!B<^^!(,-(;C^Z ^W!+ ' ZdwtbY5. 2:UY=: /--$+'02 $++"/((+&$*.+&(+/&##)(')(-)'$$;5.+-/%+'&$*-"#! #"""""""""""""""""""""""""""""""""""""""""""""""##""""""""""""""""""""""""""""""""2"""""""#"""#3"""""""""""""""""""""""""#'#!/ #?1 3 Sb.'BB,R$S-2$@RA1B.C@!! "NR #=!$ D!C!@05R E"3"14< @2$!!$A"0$ 63!2B"%.!/2CC1D.r/@=22.CR/S$?E1! =2 !/!B31$0 3 b!/SR? !"5Q/2$ # b!/"2!!" 2$31 "C!$%B 2CN2#S2.#24/D"C"2/B## 1342 4@!@1 "A!  QD/5 /B  C31"/3""1"'"""!0"! "2! M! !.!1!!"1A M@3! / 1. "/1 /0  "B1a!Q / $0 22 -RlD"//#1B 5?Q ! A 2A? 2 3C0/ a"! y8/ ! 10,Q$01 /RQI"1.B A#!//B$#"/Q $.!@!"!1!2 1B.?#A#!#A/123. P112!A""@ 1 B  #" 3 2-A $ 4B ,2!  /2  #4g@"3 a!"2 ! E20/11#.2!!"13  22 11"6 2/!.#"Q!!/A""3 !/2!#>14 "Af! 04!#! 21"#" $" 0#!021# @12AB/1 2! @!! 1.#1 "@00A1 "!  "!/#3 /3#!O@#/ 1 1/2 '3#!0!! /A  3  $ 1A  !B3/-! ""S10!1/"Q2,S.12a!43b2!B-!-!Q21 R 2"!p"/!01#> /!$31 "% 5&Qa2R-! 30B 012? B.AB/#3!/33"..R"/C#O#!CR!""=!32>2` #?2.?RB$/45 /S !32"0Q1 R!Q a3"RAA 10 2.02/A !"0R @B1!Q3" '# AC!"-A1/0 Q! !E>BR 3 2 1 R !a,0` Q!-C 2B A !r}3!Q- B1Q3 1!1 B3-A/!A12A!,>1-1"1 A2 .#A#IN1@ ,# !.2"B?1B1"!A 0/C $1 0/R(0!R  .#//!1A ! !B A110/R ?"" !#2&2 ""#! B" 1//B!8H/"111Q0"A/ 2p"R432 0#C44C!!"524A0142"!%23/21!/!#! QA1/# "A .#!" /". " 0"R3 $40Q c"!R/ !05-B!Ca 3 C0-P12B a2? 33#/"!22"03AAD"!#""Ba! 1/ 3 !1C12/#Q0! b"/A2 !. !1#QC "Q?!00A!  !"! 424!.A %!#/2C#1" 2"!24/%// 31V"#A!14/!#/12/4?D(N4!#`#!"!B%- "30!00Xn3/#?!R4O2 ?31?3! / C2#1!B"  C./ 13/I "2 B $2203" "a/!"2!("/"@0  1"23C,Q/"/   !!$" "1#  / !!! !!.0 ""0C $A 1.!11! !"0 #1!/"@! 15/0  401/#32# 3!!!! 2/Q0 0!2/!$/00!112 "# 13/    ""2.Qh2!!#023R0!!/".@ 3 0!//"# 1 1?1#  A! !/!WBO2"B-0/2!"A.!*62 B!""2!C"#!S 4B$3B"3A3B4    1?!!# $" 13! /" 1/"WC!!S52"2""!!"E!"""2"2362"#4BS4B/#B#AB4A"2#231"#3"!433C$"32"#""22!21` 2#0"#D243" #3BE3"2;##3#33B2432"" $E3#B!!!3 %24S""#B3$A !!C3$#"2"2!$"#13 #133B$2DB3BD3BC52!!!!3/#3#0!"/#!33#""#C42!#21!"2" "2!"33!43C3""1"$2B2SC4"""!!5"ͽ!!43R"3B""#2D1#22 """B3BCC!E#C!434B43B.""$:1 !""""1""1""#"!!!#R!$2#/!"#33B !#13BP @ %A # 3/!P6CB13514.A 7025/ %3#O4QSQ  /Q CS"3 R0.5S22/!!B0!$1 /"""CA!#" R04##  "! CC-B1%2! 2 #2 CB1"4##P 2#A8B!$"ܿc"/"$0/2"5"2" D%"!01.2""Q 22A!J //-1323!"1"1#A#"!1 /4!!2"410V"2"A!3?33!222!""!!" 1/#@S" "3/!!"!2 !1D " #/$!5!-! 030/" O #"?! a!"  2$" 213 0 !!? ! ?/1// !31!" ^/"//"/ 2! kq! "1!!!1  /! !;"4C!$3B3B""ݾ"#!#53D"!"46331!#2#$ b33!"! !!"CD53D#3"3CC4B4$ 32B2""m$B33!32#1#CCC4"3"##B2$C535##A "333"!\g$44332"!#"4431!"##D34! !!k!"2D4B334#"!$#B!!"3D3##3""w"2443B"#2"!"#22$#!!!"22  FW""""32!"!!#"1!!!$"#232YK"S##22"#C52 #3C!!!"#323 \P"2#B#"""###2! !"2"!"32!!2#"""# !"! !#2!)E"2"2!""!!!""#3"2!""!4#3""!! 33TM"!!""#4B"232!" ~!!#3" #"1 "#"""#!!22""#1"1 ""#1"""1""3$#2""!#"!!!!"3"22!"" !! !!"! "#2!" "!1!" !""#"!"!""!"""""""!!!!$#"!!#"2! "!1!!#!!!2""   !"!"!"! !)!"3B22!""#2"#!!!""!#331!"""!"!"*!!333""""!!17!!""!"121!""""#"!!"1!!!!!  !!"!!!""!"z ! !!!"!!!"~~""!!! !!! ! !#!!!! !"0- !"!y !!" "!!!!y!""!!|!!!2"!%!!!"!!!!!M^!+&!!!!!30!!x!!"!3?!! jk!EA   &   %%$ IP((@A|w./!/1a#B5%=00.c.O(X2A% #-1Bs C"BF 1>!40#R#!"." a4/Q5-b 34"Q-R.2/Q2/T"#?7Q2 oO??C5b"R"4-DD0ϼ1E 3.% u" PD a>1rD 2/R.." 0!"B"!A4-="O"!"A !5./2!3Aq"44C1sT2.ܽD" 3DR0%/'3#F /05C&A#!"c!4 3 1c@TB-60/13?1/4B /"# D 1"/0 4/1 /20$/""2#41!.$"1"1B2#0 $A1 "@-2޿!#3#0.#/1"!"" ! ""3/#/ / v !///!!100 /. "// /)  ! !I!2"!"#3" ;"#33"!2 !22!#2 443"3D2!!n<3"""!#3DD3331!!#"""!!"33C!32Dq2"#CS234#23!""23313E#4#""! #C43 #"#"$32##C33!"""2! #22!#!(1""!#4##2"!!""" """"33B#!" j "#2"!#2232"2"!"!""!!!!"" "" "!"""28C!!!"!!!!!"dB"!!"!"!#!!!"""!!!!!!!!!""!!!"!!!! "! !/=83 !Kf!  !!! !G;]U!$D=;<~z"--96^Y +-5/&&AG(&'&3=FD -&%'$&+*!!&(-.'(33>@+.)( +("#(&$%2/$$#$21 "'# 0 .2."0 R A1B R.E @A "!BB ! aC.C B &"B2 m"a,03.$ 3/"S?$3#?R%"!40 "PD31 #C̾3A!05 % ## 2/$ D"#>@$A%3.2@"12""b 11! 50A 37/"!!1$2C"/0B.1!!!#0!"BA >3"01m1BD!  2! C $B. /"B"RA /#3/"C%T"03#21/""" !#03#"O1AAT2! !?"3A #/ " " !2A!!  # ?/    Y!!/1/! / /@F./!00. 0///01/   / !&Q!"#"23#!#"2#2 3433445#3R2"!!34#3C4444C2%"23#"!"#23##""434#2D4BC3C!I6  !/!u#0!/!  3" 2;" /  "  "#C"#""""""2#$#33#2B334C""1""!!"2""""! 1""3C!"32##"2" .#"//$/2! /#@. /2/   "!# "1?! ! ! ;!!""2""#"#" """D3CD333#220!""##"#S4C52 ""C~;C52"C5"4B !"1""4C5253"23A$43C44C4C6" !""2x] /0/?JR" //./I#!"/! #"",!v1 /    /3!0 @ #! !/!?!3 "2##32"!"$3C3B!2!"3D3RS3B #""$44323!"!! DB"!"""2#4C32CCD3CD$#332/##"/!!. "45C4C3C!###23E44443/!232344CD3"!!#1ݽݾ!!!"##"13"""""#CCCB "331#CC""!2""2"""" ! 2"3C4""3332"#""""1!"23#33B!""""3342!*- !/  !! !.9:.?e43/ ""##"E2C433!!433"!"323""1/Q B"P3&0"/"2 2/'xA 1/!//O= "2#2#"ݾ!"234#34" 4343C234B43"2""2"$23B30Os$3333!#"#"2 ;#2"1" #3"23/43333A#2"22332333 $#3X(31334#B3!!"!!"2#"# CCCC31#2#"21#E#443"1"23!#"$#3/""!/""C3BC4#"#"#"#""!""#3"#!"2"#"2!""!!""2###2334CC4231##$|K3B1"!"22##" """!ݽ""1"D40$2C#53D3!#!!"O  /  1`"  2 !!/ !!=3#"1 "!""#DC$4!42"""#!"!#2##"!""33"! !/0_""1/C/ "-"!A2nd1!"/!"/=Z"43###4D2/ 3C3!!"""!#3D43R!$4443 @"/ !! C!/ !!.!!! - "2/2!  B!3/!#/" ?#M#3A5C"1#!"253D352"S3"!2#!4B41!"/2"  !/!"0 /"/!"! /!/"!  /"/B0 2 /" " 2!!!!!SC!!3#2!"!$D43C2233#3t1"/ "!B 2"1#2C3#"3CA232#C1!!!!!3R3343!!"33SC2i(B#34342ܾ""""4222#@!$33CC4C32"0 ##3232A#23#CB###2;!! "3232"1!"C4B#B!!3$2$C"/! !!1/0! !.!" 0#3$SCB !"! ! !!3###2#S!""13$"0 "01!/ !10#"""1"2222233#B!3443R!""2!$2!"B,C 0  !  "# /// /! ."   .bp"""#!ݽ!!!!!#CB33BC1"5443$3"3Q!  .   s!""""""!!!!!!""!"23333D3###1C423#3C314#3C"!4534C#"1CCSCC"2B! "2CCC52!!!"4#$2#CB"""!!#  !""2#""!"!"3""3"#3A323!3#B$2B4#4#!"#232!23"#""!! """!22"""!!""""2! n/  ! !1 uW"""$2"  ####2"!#2#A#"2!"3#2323C$#3 #" #3CC#A#""2/- !#0!O3P21B/!C"5/"$"C14$C "20 " # /" B0"""2"""!#2$ C11"Z"! 5 12 $!2!/"1!ܾQ12!4"U!1#2" "13 " #@ 3Q!0!1 2A1 1 ."!/ ""  !!!""11!" !#"1 1./#"!1!1//2/#/A! 1 k!1/    B !12!!!!""". !/!1/"~1!"!0!"  A{E!/! ! A}!/! /.//1!!!/ / ! !/!""C"32!!433235$"""!"D43B"/1 / "#"##4432"2334##"! ""2!fy"4CD3D3 3#""" #3444#32b"###2#3333"1"1""!!"#322!)%!2""23!!"#3C#2"2"3" !""u#3#4C34$#2!"" ""2!""""3pB3!#""#!""#"##3"2"#333"1#CCCDB2#""23""!!!!! /$#3#""!"#"!#"##!!""21""!""!"#2"""SJ"2""!2333B!!#3B4#"!!"""!!#"!!!{"""!2!! !!"$%!!"""!!!""!!"3323B!!"2#2""! "!!"!'5"!!!"!kK#33B22 !1#2"!!!!!#""!!""!"""3;#2!!"2"##"""*!!!"!"!!g_! !1"""!!![Z""!!!!!4-! ""!!!!""!U`!"!!!$!ez""!!1""!!2"!!!!"!"1Tm!!!"Z[!!!!! !! &" "!!"!!!! !*!! ! os EA{t!&( =6VI XbBT)/OFjg^_VYy}+.+&kg.+DC97!3A3(; 2""0B.B! !!!C"2@2"!5M21"""" "1 A3""/!!2 "!  ! "/ /!!1 !0  !$"!1! ! " !/ox1  !/"k!?  !/ 1 !!  !/  !!w !!. / 2?    /0!!/"/ "2""2""2322!1"!"34""!!!!"23CCC4"!"333"!""!!!""#4C331!""$333#!!3CD#BB3"! !"33333#""!!"!"""" "21!"3B#3;#""""2#"""""! "3#""22"! Z]!!!""!"!!"!""!!!!!!"!222!!!"""!!oa##22#" !! ,2"""!!"!""!" ~"""#"""!y""""!!!"!"2""!" IT"!" !"!  !!! !!!  !!! !"$!!!!OK!!!!!!!!LJnw}w=2*/BHLKwy'&?>DB./\YCH(+33 /.XUTT97'& ++,/*+984467=;!/!)&#)*()+#./0SD& CB .q"T&!#0R"C"B.R1b"0BAB D#5!0 &"4 ݝC 13?DCR 3A!@1AQ/.S@332S02D"2% b#2"C=#  B̾2 $0"!" "!1?$22A!##/#T//5#?"? ?C&  $!B- $="/RB!?R/"!4. ./#42 "/!!#B4 _3?C/S253"!5B! 0!/ 3 !?%"" "' 4A3B"C1!1-#1S 3A !1/!3 mB!"#B.   "2߿/  "!d1  "//!2!1/ ""/0" / 9"1  #2  /xj/? /"  #B/0 !/T, " .xR  4!1A! #0A C0UB/"1" @# !AB5!Q"A/ !#A2 0"/Q# 213 R Q 1 !/0!0"H2/23!/11a/ !" 2/@i1!# 1Q.  /P !""2 3@.4 R 1!1Ah/".0/!3 !3"."!!2B"3! 3 B 3.!1.A"!3ZR #!  2 """1#2 .132 "!/. !!"$Y B.!"3 0> " !2, # !#!0/0 ..C1 "A!. 1@$3 O1Q! !/21# /2P!3 !/"/1 - A1D"C-@!  3|]- "#   ##"1 "N/1Q" !10#  A./!1"!00#01 !4,121,AC!g" /"1  1/ !2/0" /y2B 10 ! A>  b3 "1a"!b !1 CB2S # $B2/!  a"03R 2/ROA..R.Q!"!"4rR"/#b"C/?Q/! H" 2!A"/2#A/ a"3" a #4 *b331 02  !22AC Q0"R C9B21 2- ?#/$"2#?B0 !"?b0>-1B BSEQ!! #=B" 22"1%2#"1Q#|-" R-A Q103! 1@!/ B A. D/ A/3 #?!#"D? 3 s 21/1Q!1 R">5A0B1 A" $ #R!1/Q!! "AAO00/1!B"BB/# 3#@A.Q! #10 ?1/"3A !2 42 1"0! 1" !C!!B>"41C1/!?$!#@ 2/ Z" /3"P 2 ".!3!H!!0/#"BA Q//41 .A 13 a A!Ab.A3./01#!21.  1[n!.!1 ! !?Q "2y. 1!"2A !!  /22! "14! 2.1@Q1-# 3@3r= "314!C,1/1/ !# Q!4"2201!4 2lB $.A"2?/24  $"1S/"?"/ 10/p"C "a#A2/$a#00!1X0B# #2" Q ?#B$/!"4/@!.1 !A/_#"-4!C$1! 2#!/%a4#0"1!!3 A1QA3/"/ 1@.#1/4 10"3 "A Q03/ 2?2 "! @-@#D""b !}1B 5-00#O3 11A ".Q0! !# """0/1A""0 "-1Q/"!Q 3>"11?0"1!%C "!"2""24 @!?!!O--" #-! /A02 11! A! 02!2?#>/1O 0bo"0!b140/!2#" 3 -! B" "/2#C1# 2` /!0  !A!- 3 131!!"!  !.CP/"" 2?1 ! 0 "! 2!2 0#"!/"!#/1!! 00! 2\X!1!  /23?1dS44""2""24$T333 433C"!1#1!ܾ!30#$34#B 2!/"31!.B !0!!  ! n"?0B/!"# .! 1ZF1!1@"/ 0!0A>! !MG$2""!C4B#"#1$D$2 B#2 D3D!#33 C$B2# 43242 "2!!5#"22!4 062"#23c3C$!/101  ""!"O1! 10!2###!"#CC"443!!!%24B3#2!#2!#""X;3D3C14B$AE#B!$2!$1"!1!!!"4 %Cu0"  0 0"!#1#"#32"B43C230!!#22"!#"2!!TeS43!#432"43E1###3222!!!!2# 2 43C!4, 42#2&1#S52 #B#DC52/43D34!"! /1 B  %" aD4! /@""T R C#"#,#`e "/CC-!51!3$ 2/BB33CB3".%2$1RR?#3"5B" /#.ACB D3 01C0!%!21S3?2 1B.$]#"$A/1A1.T "3 B24!C 4222a!3"""#?@!/ 3/"" BC3/#2#034.B /#10B < ##B%!#A#RB24 DR?!/#b/% /!"/ 3A ݯ/2"A##?@ ""2 !/C01#! " ?004 /2!!/" B#2" " /  2 .3  !! ! ! 2"#"" !"$ A!#0 "/  1! 0!".!3[n!2//! !///!! &R"42 #""!;""23!""#4CDC3 #2# "!"43SR##443B 43C#!3C43"342! 1""CCR4"" " "!#" 52D4"23"!#B22"4442Y^D443!"!324CD22"!22!!"2"/23""4#C0224443 234#3#1"24B " !"3"!""" #BCB"!/#32}"1"!D3C3!" 3D4" "B'""! "#!##"""# 23$# !!#3$"w]2"!" ""#"3!"1!!"!!!!/""2"!!""23133$#"!"2"""!34$"-'#22!#332"!" 4430" 3B!1N0 #"""!! !"!2#/ ""#$"20$#21!!"!!!!"""#3#2 "!"2!!!""""!3#"##3!""!""!! !Sa"42!""""#""#""!!"! "2"!##11V!""!"!3#2!""#!"2"!!!!!"!2""#"!YU!!""!""22"!L("!""!!!"" !!!!"!!!""!"""!"1!!!!"!!2!!"!"!!"#""!"#2 !""!!x""" !"!"!#!!!"!"!""""!!!!!7O!!!!3n`!!!'!""2""!!!95!"!"Uu""!!!!!! !W` !!"!!! bU"!!!!"!"""!" QH!!!TS!!!!2M! !BC!!!co()"!"!!WT!A:!!pp!{!@9+1V\4BV`6Ctwmk!!OF,(EN lqYZ/~ #  #3&RT?/%O0" # ?Q"0P$"# 2BTC!A5 1C "43%"2CC1!#D>t#D1C" 3R7Q3 !/.$B R E2&a!//2S06" E1 U"/!, 2,5$ =!7. !$??!21SAA1043$>$1#"3A,A .3,! r07".CO%B  1ͯ$ B! 54 #33 0$2.5# Q-S CB RF !!FA4QSA/S1 C!"""R>!"A@//B?" 3O21$5!#!D12/!/D@.CI/"! # #2 202#A"/2" 1/  /0/#!/!!2 ! /22 !//!""@#/ ! ! " zo#!#CD522B2!32!3"!"!"443 $C4"ͽ#2!22!#3B2#3D4C32!"2"""""1 #44B""!" " / R!""""#!43CD4443"!#4""!"""!331?'"2#!"3C!"34##"#"!2"""!"CC43"!"""#3!""!!#B"3##32"!!"#222"!"!!"" "!!"!#34"""""!!"!##2!!"!!"!"!!!"""!!"!!!"2!!!!"""vY!!!""!Ru "!!"![b"!!!!!!!!d{!!+#!!    !!!!!!!JL!!6dg79PB/2RM!&AG(+$(wwD? &%9;,2((24;: ?<+/*'64-*20 ///&$02//%&! //*(!/,$"*(&' $$$&+"(&) $"2 2 3 $0AA3A-5ARB#$BS-3R$R-E9R $3!AD !3 R -/"޼'#?=S%0 $!!P3?33%! #`!?B1CO! 0!!BQ2>1031$#AC"!!-5"2?/6 @(!B@!!#! " 3!///#!!02?!#$1!$u/ 1 34"! 112B2Q. 32"1 26 33/!3420O#!40!BA1!/ 31"A/  3"#2 20AA 4 2 "A "B##2/!A 1!5w!0/!/ /  O01 !   ! .!  ?//!!  // ?w//// ""22#"#33!"2"#"CCD43334#C3!"!CRB3B""22#"z332#";33""""!!"#D3R34B"2#2!!wM3CCCC43!"3!!3#!##43DB3CR3! /! 1"/.$# #!0-!#!/!# //   " !eK.-3# "  //  //9? "?/  " <#2$1"""21#""2#1!#"32DCCC3334#41"!"2##1RC343/ho" !?.//  Y !/./2 /!!/* /! /!#"  /   /2" -/c43C3#233!!""2#B3223#43C3C2#"2!D4342 #1 //" 2 #////./-!!$ / ..1 /$!! !"!#"!""2"!""2"24BB4322334"!"!*<23##3!!#2 !##"33!!!!!""!!!! 23343"2"2/ "!//     !+222""#3###"#"!####2!#D2 ""2!!#""""2"  ""1!"21#"" !4""2"!#2""!""!"!4"Aa /0/4#!D.!!"#1!Q /20 2 A!! 2   .B  A!/" !/ /! A"0 /!/ !c!! "*r/ //   /]C5#3D#23#" C44##153442""""!! #2! !5#3CC"!!! #334#!543CD4"""!!1#"!""3#223!!"1/! "   "20:@/C/ "/ "'!""";#BB"!#33! !5#4B!"!"!T33CCCC""""!2"2""3#2332"" @1! ! 2@2/1!"?"/! /.-2!!!!ISC4C421"1#!#2"2"133c43B#3!!"3 #"CCC!"!#2434222#"!!!S! #"##3!!3CB"4CC5"!!1$233#SD3CCC23B3E3C4$2y01 / 4!12?"!02- !/@"2!"/ # 1- //!#  >h 2"$ -  #+222"C4#33$/B33323#"3"!"2#"CCB43"""""$C534C//  0/1 A22#0#342C4""D53 #B!!""C!!! 223$1#33BPB4B2#C524B44$3 13223#"$DB2#3!"2 /!`.! "//.0. -2 .T222"3#"03#!%!23 5"$/3/#323A/! $ $!0K4 2/ !S/2! $P33/"@??# " #4"1@1-!"0B? 22"3"1 1" 03">C"# # Z A0.##!!2!!"#1 /"2E1!!3 !! #3" !   ! !!!:/"0/"!/" 0 "1!"1  2"0  2"0/. /10!1 .!/ 20 !"!2  0 0{. 0 ! !"1 " "/  "!//   /   +/#//!  {=!!!  /HCC#2C34D#C323"!3!"323!" ""31##2CR#3CDC4##14#"!"#B !!"2!!""33#4#CC433323"#3CC33D3S43333"CS3CC32!!2!"#43"3433B2 #B33!#CCCT2"""!&"#445!23"""C3C"""""!!"""2"Mm32223!!!"!!!!""!33C4C !"343CC!!!!!!#CB43C22433" "###2 6/!"!222!"! !"!""32C332!!QB!!#"2BB4322!""#243"##22""!!"!!!!!4B3C3"#33332""!5*3B4#1"#234#!! "3"1"}3"3C"#222!#""!"1!! 3!!!"22""o1"""22"#!##23332"!! #3!!"! !"""""""""!221"!!!"##$2 "12!!"#"! 2"1"2""""" !!"1#"!!!"!""!{l !! #"22"""!22!!!!"!"!"!!"2 !!!!!"!!!""!"!!ab! !!! !!" !!!!2"!"! !!! !"!!!"!!!""#! !!!"!" RN! "!CT!!!!!!!`Wip !!!uo/4-.!KE2-   bk!!!]n!!! !! #!pn 69  RHlk=8uu/*!#(D<hi !!."B @!# 3Avw1!!! 2#3! "!!"22# 01 B/ 31"/!!"!""   !!0 SL1 /  $1i!!# "/  "!#[  !2   "!  !!!// !!!'S/ !! /&!2!5443CB"#""#!"23$33! #3D533C3""""B223234333#2"322!!! !#332#!"!""* """#"!"""$$432!!!!"#32! "!!""345233!"33"""#$#3"!s"322232"!!"!"#3C44#"1"!!"432""!""23"33##"!!"""":""#"3322"! !"#""!!!""#!!!!! "!!!!!!!""""!!),"""!2#3#"!!##""!!!!"!"!`l!"#"""![K!"""!"!1""M4!!!"!!m"!"!!!!bn!!#""""! !!!!! !""!!! !!!!2. !!!!" !!  a[0/ [[$@@xvmn  99xxJI*)+--,'$IL>B79=?$# !" ,+(,>>RR0."%!"!2!!!"$44D43"#"2"CCC3"1 #""ͽ$#3222L1!"1"1!1/! 1 "12!" 1"!./"1"u# 2@/"0 /."A! Q/"A/`p2"231!/2  ""2 =& !"!""! 0!13!!1  "2.!0xT1"# 1! 0"!  / B13""33?2!""> Q l/C$"1C 31$B1/%2$A? 21#V!-"?3 /$CB.$R1$B1 43 !?2%!$2!O3 Q1CQC2Q11*A3 "!4 3 D Q CAC2QA!#1+$ B/"CAD-+."3!Q+01 !4 ! S"R/ !a2a!(]2.!4B.!C00$/4!41B"!!?"B$/!.!`D! "b R/ 1b4P-4[0C/. #S1C C-12/14A4AdC!Q/!2Q1A2!1AC#ACSC#1.21"!0 A!R# "1/A!/#A210/B@1  R1"CC 1#/!!/C "0/ 1 C#!!S !2"R!-BA B/ eB#R1/-1!-#2  ""@",3#3# A1P"@  12 1332  24-21<@!!  #/ B/14 2B 13!2!T#! "C 1R."B/!2 "13}  04  4!C0Q/!/@ $0B/"B/CA/ "0". 2$1$1$H3"#!1A"#23A2/ "!!2/ Q!P!2@ ! 1+  /-B A"Q1"A !103? B!#1@0221" 2M3"2"1@"!!/ B1211@b"A 0/"B#/10!b!2" 1#/"#122 "{~2!3-"4 "$! @ / 1!/-04!B?#! #! .!2/ 4"2/"!!"1.#"21#!" "DB!"3B$24C4 "1$##!"2"SC2#"c41#2 DB 2/##0""1!0 "/!# /3!@01A!A!2 P1"# B!34C#!!$4B43"#1#" ̾#"##10"22!#CC!/1!43 #BM13DB3B!243CR"3#1!#2#D4" 4DB"#D2 \I/!/#!2!!/ 1#"!CC21"2$S31!""#S3"$2 #3Q!B334223B! 3# CC22/452""42"" $#!43 !1/""0!  1?1  pB0#2"22C3/!#""!!#"!D4""2E21"!43022Tp"#33 5232"44"3B!DB1""""S4!#"23 "!%##!"DB2 !!CC"3#!C3!! $23330""$22" $31#!432! ## !"42%"2"332!0! """2! ""43/!#2"2" #4BH=#2!"#242""! #""CC"! 2S3!#$2 "1\H2223A C42"1 4332#52352"2#1!" 3B1!""#D30 !"C3#2#323###2"#2! "" 4#""#43!!"#"!!$"!33#2!~2!!"!#"#!"""$22! #"!#"! 33!"1"pT"3# !!""44"!"5#2!#3 ""#""22$321"#B1#2!44"!1CC"!""" !!Hd3B#!!4423B"#"  33#2### "##""5( 33!!331  2" !3#$#""#2"#)!!""" "#2!#""1!"32"2"131!"!!"!33 "432A"!"""#233"!32223B!"42""1!! 3#! C3!#B"""#"!"#!#1"#""3" !""33!"1#"!22 "!""!!!"""!##""2"!22!"!"2" x!!!322$31##  !"!"""/#22!!$(2""2 #B1! 331!""!"" !$$22#2!""#"!"""" !1!! 4 2!#2"" "2#"""" ! !"!"21!"#""!#"!! #233"1!"""22"!2" "!#2"#2!!!"2 !3a!#"!""1""""!""#"!" """""!")8"2!"2" !!" !!"2"!#3""" !"""!""!! #2""2!!2##"""! "!!!""!! ""! !! ""!"!! ""!!""!!!!"!26""#""!!#"!"lq""2#""#"!dY"! !!!!" }s!!!!!!!!"!!!qw1 "2!!"!!""!"!!!!1""!!!! "!!!!  !!!!! !#!!!!! !""! """!"!'! !!!! ! ! !"!!!mm!" !"!!! ! ![X!!!!! !!!! !!!!  !! !!p!!ky!    !!OO!!!  u}rr(+[SUP (LP ?J,+$lknr6;UP@7"%VM:;!!B=PV&(9ABA4- +/KK=?--42.068+(9<:A($$:<9< (*860/)$('!"&$1166'(#"'-/12+%&(+9=03!!$%#""""""#2"""""""""""""""""""""""""##3333332"3333#""3333332""""""""""#3"2"""""""""""""""""""""""2""33333333333"#"'$.'%$$(&&& &&$///(++/&&!# ###!$!-+),!&-)+&')(-##%&&(!&$(+((',%$((,--/*++(&(1-& $*&$++**--%'!#'&3"22""""""""#2""""""""""""""""""32#"#""23#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""32"3""""""""""""!#!$!#$!%(&(&--(')(0-+/.,$)'$#"')%%&%/+#!#$--'+20333333333333333333333333333333333333333333333333#3332333#333333333333333333333333333333333333333333333333333#333#333332""*$-'-4/+.0+/-.'+./---/,-&,(03332333##33333333333333333333333333333333333333333333333333333333333333333333333333333333#3333333333333333333333333333333/1*.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333113333333333333333333333333333333333333#3332333"333333333332#3#3333333333333333333333333333333333333333333333333333333333334-333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333332#,.//.+()///-(#+/+))**--(%()&)-++)++)-+++-*0/0,-(((&+).,*((&,-// $ """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!!$"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#  ! """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" #"#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" !"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""! """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""! / #  ! " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" !"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!  """""""""""""""""""""""""""""""""""""""""holotz-castle-1.3.14-src/res/sound/HCMainTitle.wav0000644000175000001440000264613211177007633020736 0ustar jacobusersRIFFRL WAVEfmt 2"V/- @0factdataL KDO2*- CAC""N 1r$'@P4 /?B "$.3Pu _#C6 2C>A !C =1cF0aQ%! .! 4@C^@2$  .P2$ O246 N@B>AB N~1A3# =@A5 ,O1"%+>AB5 N@2#.@B6 -_23 -OQ2&=0!%O`3E<_ $B}h=PB5-O!3 .OAS% !".?QR;/!@aR2e#-00B6 ,O`3# ,>PB%>o2 .@@4^"4 ?A4%-`P$"? 34 ?1"51CB#RBB4B3C44!3"4$"#143D2$3$"3$B3C3D2#3!##1$3D"3B323433C3R 2#3!$!3!33D"3B#22433C3C #"B!#2#!33D"$231#23C#C#C 2#2!3"#!33C3#B#1243*B3C#2!3"#!334133#"##$3#4#B 2"B3"# 334"#B#!["23B#4#3#2#"2!3#C"#22123B"B332"2!2"2!3#+"32"1#"3B"B2B"##2"# 324!3#"""#$2"3#B2"23# w3#31#2#!"33"3#2""2!#!2 2231#2"!""32"3#2|`"2#" 2#3"#""!"2#2#2#2""!##2#2"#""!"1322#2"""!###"2"#"" ""323"2""#"2"2""""!""#2#"1""2" ""3"""!""#""#""!"2"""2!#!"!4B"#""2"!""1""2##!" "!3!"#!!""2"@=""2"!" "#"2!!""""""2#! "!2"2!!"""!"2"""""2!""!"!"""!"!2!1"!""!!"""!"!""!!"!!1!!!!"""""!!!"!""""""!!2"!!"!!!!"!""""!!!!!!!" "!!!!!!!!"g!""!!!!""!!!!!! !!!"!!"""!!!!"#!!!"""!!!!!!!=6D  ,=>PQQ2C3/OAARA " 0@@O?/5T$6 0rbCC"uYo#$  +-=>0@@ABC4 ,-OP@`!1" =<>//11RD4% *-N_`2RC$2vlN_@`0! !#"%,<;/?AR4D$ +=PPAa"" .>/ONO/"2D6%!,*..1rCc4 .01RA0 14"$25!1C2%"4"#3425#41ݽ#B4B!  /!"!!.!">oN/./  // ! m""31#3#1"2$!#2$!#"312#!231#"#!23A"B"#3$1#2#"C$2#3#"C$B3"3C3C#B234#R"423344"C33 33D!42C#3C2434 #242$24!ݾ#"C"3B4!232#3$""$"232"#"3"2"#""2#""#1"#2"#2#!22"3#"2#2!3"3#2"#"#323"#"##2C!3"23#4"#2#$"4!32#!2331333!#32#3#1"232#23"132#3#12"2"3##"#2!3"2""2!2"2""!2"2"22""""#2""""2#"#2!"!##!3#! ""3!"" "##!#!#"2#1"2!"3!#"# "#2#!"22#""22"#"1"3#""#2"2"2!2"#"""!""#NZ!2!!#!""!"!#""!2!"!"!!!!""!"!#!" 1#!"!""1"!""22!"""!1""""""""#""""2"!"!""!"!2!!#"""!#"!"!"!i"!"!!!!"!1 !" !!!!"!!!!1"!1"!!""!!!""!"""#!! " "!" !! "!"! G`!" !! !!!!""!!""!!!!!!u333!#TDDC43433!#EDD4433C2!#EDD4433C2"h#?1D '.@A3ONAS%=@0#?AJqAB >14$N@3$ =?Q4&P35 ->@1 =PB6 -O1" -@QB6 N !$gnG?aB5? $ >PQ4 ,> 3 .@AD$ =!$-OQC5 -/!$/PBD >!2 .0`3'1$ <>#3-?PC4 -.24>@a4- # /@aB#,!.PAr# 0`R3bz!Q$N0" ?"#=./ !"/ / !932 C4C242$ 43D"#3"2#B42"B"23#B"#1##"C!"2"2#23"32"3"2213"3#2"#B32C 2#3"334124#C3B"42343B!23C2C3C1#3D"3C3B$2CB#C33B3R"423!\4#C23B"1$#42#32B33"#2" 3#3""2"!2#1"21"2!##2"3"1#!"""12"21"2#"2!"!3"2#2"#2"232 .2"B"$"4#"32$##2"23BB#3233"4"3!3#C!33#1724"#3"13#B"2122#B!21# "23""#"""#1""""""2!""!""#!"!1""12#"""!""!!!2"""""2!#"#""2!"2#!!#1"2#"""2"#"2 1#2"#"21"#1#2"1#"2"#"2LJ#2!3!# ""3!"1"!"#1"""2"#"!""!2!"!KX"!"""""!!!"!!"!!""""!"!""!!#!"!"12!2!2"" !#!""!!#"""""#"""fp"!#!""!!#!"""""""""""!!""!"""!"#"!"!!!!!""!""!""!"!"!" !"!"""!!"!!"!N/"""""!!""!"!"!!!!!"!! )"!!!!!!!!!!!!!!""!!!!!!j{" H"A1;! 15# 0 1s!>@6!@43-AB5%^"G=QE~19a!G!/C1R#/1A%0A72c 2R/"5B%3PBQ_4q 1?Q.sR$R/4(5C>Bް3.QE0D1C02#@3@D $!55.R%26/" 4?344$=R$`S@C R Q411#05 #Ob4>R6QTAB1 #=BB>A5-pCP%$P# & $ %/R RNC 2>4$H&.aDRD B."5!142","Q4?S04# "-204 "?D2NA 4.A"3/#B/B3@#,O3?A!####/>2 1!  ! O5!""#2!3"23"!"!#"""#2"22!""!!"!!""2#3!"3"""!!"!!!2!3!##<!""!!"!"2"#"!#!!2!!!!#2"#""#!!"!!"""#2""!!""!""#O-"#"!"""#"""!"!!!"!#"!!#!!!+D!"""""1!"!"!""!"!"!!!!2!"1!"!!!!!!!""!JK""!"""!!!!"!"!"EM"!"!!!!!!"!"!!!!!!!!!!!"!!!!!!!"!"!!!!!!!!!!!!!!!!!r!!!!!!!!!gj!!!! 51>C_4>2.#.B]2,!"%`1/A3/".1>b 36A4 O2"=B.R%Q$ O#/>B/C&/QA+i$@C ?C >B! QA6@E=""B'.R%A4..B&/B'1 /#/s/R.1   Q%AD0S ;BF BDa S7 Q5 A/!0S40R$33D!$2#2344"44#C"#3!#3"322C#3"2#344"4334 ݾ##31#3"-!#"3"2" B342#B#3 #23B#334!##"!2"3!32333"#!3243#3332!3B###"#"#2!21##3$3"33#1#3!32321##1"1"3#3"#2""2#C"#B#2""#!#""2 2"2""2""3#31#3#2!2"#1"2"3!2"#!"!##"4!##"# "2"#33##1""2#""!2"#1!2""!#"33#2#"""2"""1,X""1!"!"!"#"3#2"1###""2!"" """2"2!"2"""3""2"2"!2!""!2"""!"""""21"2"" "!2""""!2+!!#!"!"#!3!!2!"!"#"!2""!""!"!""""""#"#!#!"""!"""""!!"""2"1"!!"!1""!"""""!"!"#!""""!""o\!!""""!2 "#!"!"!!!"!"""!"! 9N!""""!!!"!!!"!!"""!!!"!!!!"!!""!!!!!!!"!""!""o""!!!""!!!! !"!!"!!!!! !!!!!! !!!!!!!! !!!"!"!!!! N5!!!!!!#5DDCD3C3C332!ܽ#DTCD44434332!$?B&0Q$ >AOA5 /Q$/1%2T BD ?Q% ny.A4-PC-_BO2NQ$ NA%N2 >1$ =P5 .A$@3P3-`3?1 >B% ?R4 /1<;!$=a4 .Q$?!P3'/@R>!/2$@b$.?1 >b5?q" < 0C'.AS$_! bC;@3%,Ob$ _2N2$OPNB-2=Q%=p3<@$-`3-Q4+ 3/2,Oa>A$ <w 0T$1RC#1$A"C"D!23"23331"A!32#1#"3!"2#33"3 #""2232!2"  #232"2"""B#B"31#"$33B"22# 4t/ / /? !/ |2C!3#3B#C#B 2#3"4#4"2#2"32B1""31#2#3!###"3">5!#"#"#""2!""2"#2"""!""#12"2"3!#""!2#2!3!# #232""23#3122"1###B"3"2 #232#3#" 3#3"32#2##B"3##!2"32#2#2 ""3"23#1"#23"3!0!"2"!2#2"#!"1#"!""#!2 ""!!2"!"2#"!gE""""!" "!2!"""22"" #"#!#"2"2!"1"!""2bG#!" 2"#1"21/2"2!#1"11222"#!""21"2"" ""#!"1") ""!2""!"""""2""!"""!"""!"!!"!!""""!"!" "#!!"!!1! !#!"3"!2!"!""""!"""!!"!""2!!""2""!!^g!2""""#"""!"""!"!""""1!"!NM!"!"!!!!!!!!""!!! !!!!!!!!!"!!!!!!"!"" "!!"!!!"!"!!! !!!!!!"! !!!"!dsAh%O A+A#R "=DM#1!"@Q ?U D^1.1.R$-Q5@ 2-rB4-@5> \OBB%A$0 ?3_4OS-20$ 050C/B-!@ a%@D /3-!B%/R%.P @.d2/3?s /R=10@P41c=2*!%-Q5A4 /37 CF A >/b%!S4 /ZBR2$C#C ##3S"43C4C$C244#C 344#433B C3D"4323"4$4##B"2 4#C2#3"#4#4"3"" 3#3""#!2331""!F #"#1"""!2!212"#!"""!#""2!#""#"#""3#2#B""#2"#3#B2"B"$#$2"#C"#B#B2$313332!$#C1$223 3#C"#B22 22C"#3"23#4""2"" 3231"2""3"#1!3"#"#!""!" 2!#"2#"!#""!"!"!#!""""{!"1!"""!""!""#"!"2""#""#2"2"###"2^23!##"#2"3""2##"#21"2"2 2"3"#"" ##1"2"  #"#"2!" ""3!"!"2!2!!#""!#!"!"!!#!"!!!"1!!!"!!""!!""!""!""u""""!22!""!""""2!"""""2!"" ""!2""!2!""! "#!!""!#!"!!""""dR""!"!""!!!!"!!"!"!!!!w! !!!!!!!"!"!!!!!!!"!" "!"!"!!"!"!!"!"""!"! t!!!!!!!!"!!!!!!!!!"!!!! !!!!!"! !!"K7""!"!"!"!!h"/5SD#0Q4 # AR $-0`D50c  OQC &! ? /B6 'M/ `$?asE M //0QE6Q1@b?DA% 7y#.&?sb./RS!T!42 "C"e!622 R/ bd' $BQ/5!60@ .XN02 5#@2&?@C$/1 "+B1B $_aC %-_a D#AARB3%$ARR5?1B'.!265 !2$36PQ S&3R."B 4$1R6%.ARQ."B1?C5%.@4OQ2 A2 .P3C @2#?!2 "3#=0! ./"/ !! A>!2 21"3"222C""3222"#22""!"""""$!!##33#3""22"1!"!!!!"!!""###"#!"3""#2"2"!!"!"""#!#""3"!22"""""#!"!"!"!"#"""#2!"2""!!"!""!!;@""!"""!"!#2!""""""!!"!dT"!"""""!"2""2!"!!"!"#"!"""#""""""""!""!"!"#""!!aa""!!"!!"""""""!!cJ!!!!"!!"!!!"""! !!! -L"!"""!""!"!!"!!"!!!!!!! !!!!!r!!!!!!!"!!~!!!!bi!! !!!!!!!!A4! !!;60B4 =?A6-P@3 ,0A,=PA%-@15.A1% -?14% ->`2e% -?!# -PA4 -OAC$ -O@2#>@3D >`A4 ?!4& _@4$N@C6 O03 =2sx2S &OP2">!D&/@PCO0C7-O@2 -OR5%OOA".!S& OAC=0b%,/?! >@SD%//0RD&0N =Bs4/./ .BcD4!. C#S"D25!##31#231$3D2#C32B3R#5"C!#"4#2#242D2#C#2B$C"L3D!##3!#2$!$35"#C#3B3R"C3D##3!#23"$#CB#33223C2C3C!2#2"#13!$#C3#3#2;23C#42C!#"3!#13!3B4yV"C"22$32C2C!2"3!#2#1$#4"#B#1#$3#4#3!""3!#"#!Gg#341#3"2##C333 2"2!#"213#C"#3""23B"B33 #z2""12!#24"#2"2233"4"3 ""#!"1#!#232"2#!"333#2 )""2!#!2!#23"#2"1"33"3"B2"#"# ##3!#2"1 "32"3"3"2!####21#"""""#33#" "2!###"3"2!+F"32"##"1"##!2 #"2""1""""#23"2"2""" :7#"#!"1"""#22"2"2"!##"#!"""!"#22"1!""!"" ""#""!"#"2"""1!""""#!" "!#1!2""Zl!2"!"""2#!" !#12!!"""""#""!""""" !""""!"!"!!!"1""!"""""!"!"!"cp"""""!"!!"""" "!!""!!"!"""""! "!"!!!""!!!"!"!!!#"!!!""!! !!!!!!!!"!"!!!!7'"!!!"!!"!!!!"!!!"5W!!!!!!"!!!!!!!#5DDD43C3C2!4TD4CC3C33"4TDCD3C342"#DTCD443433"4TD4C43BF@@1"3 .  >O@1ACD% oOO0!225% :,>?1RRCC M_@`A12!!//N^> !1BD%& ,/u),.0`AQ3D4 >/`@@A !"% %$..<,/?RRSD +-O`AaAA2/O0O7-,N^@Q2B2!" /0  // ! !m?// !/  ! "/-1 !./5P  /. // / U0 !   /!0!!!. !/##B#4#B2#B"4#3 2"B"22B #33"3 ""3#"3#"2!~S"2 2"3!"13#"3!""##"3!#"" #"3"#"# 33"#"#!P!24"#2"124"#3"1242B"23#B32A23B3#2 2#B"3#2 =R"#3"323""3"#23""3!223"!3""20"#!#"#"!#!"""0"""""!""1""!!211"!""1""!!2#"""!2#"2"!69"#2"#""#2"2""#"32"22"3!2"2 "##!22#"#(#"# "#""1#!"#"#!"""12!""""!!!!1"!JQ!""1"!"!!"!!""2!!"""!!""""!""!22""""""""##! "2!"" """!"1" "#!1# !2""!!#!""!"""!!""2"!"!"!!"!"!""!!!!"!""!""!!"!!!"""!""" !"""!"#!"""!2"""""!"#"""!""2"""""22"!nn!"!"!!"!!!!!"!"""!!"!!!"!!"! !" !!!!!t324TDCCC343"4TDCCC3C3#h#O1D'.@BC O>1S&>P #>QBT%-?0 >QB&@3# =?Q4% ,O@"% =PB6,>@"# .`"6 ;N@# .OPC&=0!$>`3E -/!$S/PBC .0"% .0QC% -/#5 ?PB4 ->15OPBC . 4$ .0AC$ -/25?PQ'v-.!3/@BC ,= " /@aR+!.?QS$ -0`B4  & AR3."2  "/ ! /!!/ !///mH$  5"C23B#1$4#B"B"23$2"3"#3231#1"12#A2"2/2"B#"3!""#13#2"#2"3#3!"#3"334""4"#C$3"2$2,C3B!##C25"31#35"#C$2#B4B"C3B4$32C33!4#D"$2#17#43"B"233B"3"2 3231#2"!23""#22#2#" #"!2!!212"2""2!#"2!"21"222!#2"3#2 #3323!""B"33$!"$2#3#3233"4"3!3#4!33#1"3$1#3#"wQ$2"22" 22B"#1"023""""2#1"#"""2!""!"#!""!1"2"!2"#"""!!"1""1!"2#"" !"2!"2"1 !#13"2""2"#"2 23!22#!"##1"2#"13##"2"##!21"!8G""21#""2#""!2""2"!"""#""!"!"!XX"""!!"""!"!"!"!""""" "!""!"!!"2 !""!""" !#!2"!!#"""""2""""""!"""!W_""1#1"2"!""#"!!!!#"""!!"" !""""" !!!"!!!"!"!""!!"!""!!"!!"""!!"!!!!!"!z[!""!! !" !!!!!"!!!!"!!! ! !!! !!!""!#!!!"!!!!!!"!!'Wl8/S2r5 R2 !%BP2<4#`2 / -20B&/b@1% -a?d & a/9B,C4 2_3D)>/DU a%0$ 40 @!<#S5E 4BD= %"&B S145!C F0a Au63!$S!$10 .5EAcE24 S@ 3B AUC"$c2"D4$ P?" T$2S"PD/C S7q&2 $ 3NDCc.RFAB13@3%"D1D  c4?42$?B4 33_Q#?3$.A$-2$PB#A 3/""$!!3 @3 $ C # A"?"2 2. 2#-130203#?A "2 1  2@1  /3"2#!"!!###32"22 "!"!"sy#"232!"3"!""!"2""#!3"!"!!!""!!##""2!""""""##!"#"""!!"!""#""#""#!!"!""""2"""!!!!"2"#"""!!"!!""!""2!"!!!!""#!""!"!""""!!!!!!""#-"1!!!!!"!"!"1!!!!!"""!!!!"""!"iO"!"!!!!!!""!"!"!"!!!!"' !!"!!!!!""$%!!!!!!!!bc!!!!!!!!!!!!! !! !#!!u#!"BR3S443CBB2B2! "#44CCRB35"B#1b$PAA# # .5OD>Q,0? T4`4NR-BQQP% O4O#>BA5@#O#.B.RQ$Q%@#O3?4OC.QA%E4 ?3>1-1-a$a5@D/"-!-B.Q%Q@#/3/2.2-Q @ ?D PR/C-" .@q$1T>",!-1B6P4O#2.C'?R0 ? 40s0S$=!0$ ADAS >"O$ CMC-B#P O4 !B O330#@#12/!  /!/6B44"4333 234"3C#C!#2!"33 C#C"$## 33C33B2C2!32#"3 3"#23!2 B33B#4"B1"133#332""#2u"#!$"C3"32#!#"3C"3B$"!#2!#"#""2#2!#2!#2gB"$##3"#2""2"3""3"2"3#C"#3"2"#3"23#3 "2"""2 #"3""2!2 ##32"3"3!""#"#!2!"!21!2!##"32"3"2!""#2#2#"!#""!#!#"3##""!2#3$""2&!"2"1"""1!"1""2"3!#2"2!"2!"""2!"#""##""""""21"2"2""!"!" ""#!"!" ""#12"#ef"""2"!""!""""#"#!#"""1"1!!"!!""""!"""2#"1!""""!!2"!"""=+"""#!""""!!!"2" """""m"1!"""""""2" !!"!"!!"!!89!#!!"!"!!"!"!!!!!"!!"" "!!!"!!!!!""!!"!""!"!2J!!"!!!"!!!! !""!!!!"! !!!!!!!"!!!!!!!!!!! !!"!"u!!!!!!!!!!!!"!?UAB#>3 N2% ?1$.A4=!# NB PA >A A% >R5 .A4,@3puP4O3 >1=B6>Q$ >1$-A4>A5-`3?3_4&O3/1#>R4 ?A% M0$-1C4z-a#,P#O4@C?! >2_QN2 -2% Na4>Q$,0"-P4%-@B >"OR$@R%+|/3 >A# /Q% N2-3$NQ$ =A2 .005A3OAOAo46N2$.0$?Q$?@   //1  /!,\ݽ#"3R43C1#233"C3C!#B"#B$2 "#3!323""!31"3"3 #"2!"2#1#"#23!#!#"31"""22#3#""$"32"2"#C#322#"#33B"32"1324233"2 32C23B#2#243"4#3"3Q)42#4"B!234"33$#2#44#$!""32"B2B!2"3""3#2 ""A"e8131#""""2 "2!"2"2!#"2!2!""#!2"22#!""<?""#"!2!" 2"21"1""223"2!"2$""#"" 2231#2""2#3"#2#!#"3222# 2#$!#2#2"#2"#2#"""2"2"31"#"#"2""2"2"1!"1"""!!!21"""2"!"!]p"!"""""2!"!"1"!""""!"""""1"mJ"#""!"##!""!"""2!#!"!"""2#!"""#!"""""2;'"""!""22!#"#!1""!""!"!!"1"""""!!""!""!""!"!"""! !"""""!!! !#""!#!"!""+N!"!"!"!!"1"!"""!!!!!!!"!! ""!!!! ! !!xz!"!!!"!!!! !!!"!!!!!!!!! "!!""!!"!!!""!!/4!?4O4N3= COB]!+ 16Q#-Q)5.SNC/2-aA$ 02 >Ra-QA# ?B?4>C/CPOP3O2/R-Q@ 05 OD?2-AA# `4 @D ?2=!-2Q%Q @"2.C/B.A @-)NB#+A5 p2 4>$=2Qa @# 0#>CN1=2103 _CNS=2<2pQ$ 04N5/P&Q4@R -Q6/R5Q3.!-b5 b5.@//" S$!R$/2B!#A#3w""3"#233!"#3"3243!2"C"$33C!#"C23C43"3#CB$33o!33CB$33C!C#D"$33B!4#43#C23!ݽ335""32#!42423"#!3332"21#32$"#"" "2#22"1""#1!"!""c"3"""1"2!""2"3#"##!"2"2"3 "#2""3#3""3"#3#3""B2"B23!"#32#3"3!224#3##13#32322!3232"312!2232"2""!#2322"" #"#2"""!""21""!-"1"2#!!"""!!1"""1""!2"""!""""!"#""2"#!"""2!"2"#"2"3"32!""3"2"2!b^2"#1"2"# 2"#"21#""#2#" ""#"""!""#""""""""!"""!"""!!"!!"!"!"!!""!!"!!!"2"!"!!"!!"!28%!!#"!" !#!"!"!!"""2"""1"!" "!#!"!"?3C1c"CBB 4t0T#B 43!/!!RF #qR/7%!0 C2tB!DDC@$0#aR CPRS3@12%.QRD>QC RA3 4!B#%/Pb41QAC/A6Q"c D5"OBD6.@C4%$4#!4 4@SSD/@R C !BB3M1B5$Q3 4/ !B=/2R$0AB!4# !"/" "  11  / ###4"33"213""2"!"!"!"""#2"2"4 #3"#" 2#"!!!"""""2""#"#B"##""!2""!!!!!2"!"21#""3"#2""#!!#!!AI!"!""#!!"""#2"#""1""!o\"!"!"2"""2"#"!"!""!"!"!!"!#!"!"3!!"#!!""!!"! ! """! "!2"!"!!"rr"!"!!!""!"!"!""!!""!pS!!!!!""!""""!!!!7!!""!!""!"!"!!""!!"!"!!!!"!"!"!!!!!!!!!!!!!!!cs!! !!!!!!! !!!!!"!!!!PW!!! ! !!!!!!!!!P=!! !!!""34C6"C$2Q3"21"#$4CCS43CBB#3# "4%#CC6#3C3B2!(0T eLN@3o02'  NPB NA3# N1#$ ->QC ,=@B#>0A4$ ,?@3$/P2$.P"%cE=`A5O!2 -oAC% ^015N`26 ,N14% ?`BS,>?4OAS5+=?"%OPC$ -/25/P2D- " >?QC% <.2$ QR3 ,!3/ABC /# /PBS#+:~" .OQB$ !#'/0Aq" !' 2b3!$!$13B#C5#C23ͽB4C2~;CC2#2$"2#Bݾ#C4B#4"B33S"5#4"#2#2"3#2ݾ343#C"323R243C1#"$!"2$"#B43#322 ݽ33R#$3C1""31#2#234sH"C"3ݽ23R"434!#"$!#"2AB4#"B223$4"424!#!3"2#"Oo#34#3"33$323B3!""#1"2#1$#33"B"223C"4231#{]3!"2#1#332#3""23B"4#3!#2""2#!#24""3"##C"$#3 2C""#!"2"13$""3"233"4"3 ""#""#!#23""3""2$#"3#2!"3"#!#"3""2"12#3"3## "2!"1#!"2$!"2"";Y2#332# "2!""# #"#1"2"2#33"2"""!"1# 3."2""1""2#2!3"#"2!!##"#!"2""#2!3"#!""!"""  "13""1"#2#"#!2"""!3"""""22""Zo"#!" "!2!""""#1""""2"!"!2!!"!"22" !!2""!2!""!#"2""""""""!"!bu""1!2"!!2!""!#"!!!!#!!""""1 "!"!""!!"""!!!""""""!!!""1!"!""!!1"!!!!"!!"""!""! !"!"!!2$"!""!! !!"!1!!!!!!!"!!!!!Gi!!!"!! "!"!!!"! !!!!!!!!!! !!!"!!yc!ܽ#DTCD44343324E54CC3C332!4ED4CCC3432!ܾ5./>N?0!!3R4E-.?.1UmXQ2sC%  ,>@P@a2BBDD-->MOpABC$7 -?OP` 013$7%/.+ 0RQhOO1013"%$,,M<>? 23CE# ,Mo@a23C /?__? !336%+,, (%M_00Q"A4 ?A A43&2+=. >11QB53 ;>_@P1BA"#.>>>Y4"D15250#2CB$442"2423B4A"4"$#4"2#A#3322$"B#2VS3$""2#223B3"2B3B"B"2C43"C"3CCB2C"BC4C!.!0!/ !! 0"34244$1ݽ242#C422$2#342"333#B2""3#32"33"2w#"B3"33"B#2##33!23#3"#2"4"B"#2#33C"3"3 #3C2#23 3342$2#0ݽ#342$231#342#B32342#B3223B#4"gA2#B"4#22#3"3232"B3#3""3!3"2 ""3#"3""!#"##"2!"12 ""3"" ""3!"1##"3""1"!"23""2"! "24""#!##A#2""##A#2"22#BB#"2333#2#"B###2"3"$!3""3#22 ""#!#2# !"2!#"# !#"12!!#!!# ""!" "# ""!"#!1""11"!"#!!2!2"1""""#2"!1""2!2!22"2"#!"""32"#""2"""#"2""""!""1""#"""2"!!#!""!!"!""!!"""!k~11!"!"!!!"!""!!"!"""""""!!"""!?"!2""""!""#"!"""!!""!"!"" "!"!!!""!"!!"!!"!1"!!"!"!!""!!"qU!!!""""!""" "! !"!!!!!!! "! "!!!!!!!!!!!!!!!!"!!"""!""_qR#EDD4433C#z$N!5-PQ3 >N1S&>P1# /AQT%=O1# >QBC7-=$0a3{@">`34 =@1#>@B6-O1" -_AC6 =0!$ OP2E -O # /PAC > " Mx@P4# -/26?QC5 <>!4?`BC= 4& ._A2# -/#5-?PR$ .!4/ORC)( - 3 >@qB#,/!-?aC4   QR3  &!@aA$"52$C$BZ#! /  !.. .0$3CB"4"#ݽ4#B"3"#324""2"1#"322"23"3#13!GR#!3"3#2!$""3"B "#3"$"4"#"32#4#B"3B"C3C 3#C#432޽3#CB$33B;B4BC3B 3432C33!4#423B#1$#43#3"2Hr33C313$#3"#2"!##$!"312#2!2!2""3!"""1"#1O22""""2#"# "2""2#!"#""2#3"#2"#231""313232C2$#"B#3##3"4"3!##4!33#1"332#3#12333"2##"#2!#"4!"2""2#2#"#"#""" #!#!""!1""1"!" 2#"""!""""""#!2##!"#!#"2#"lS"2"#"2 23!#2#!""3""2#"2#22"2"##!22"!#!3!#""!"222"""2"" ""#!1!!""1"""2"! [S" "!!"!1"!"""!""!"!"!"""1""!"!!#!""!!"2""""2!""" "!2!"""!""1"!";8""#"!""#"!!!!#!"!""""""!!"!!!!!"! !!"!""!!!!!""!"""!!!"!!!""""!"""!!!"!!!"! !"!!!!!"!!!!!! !aH#C53D#B3#"CCRC$$"!"44535#3$2#D3S4$2$"!AC'Z!P1)A50" Sl0?"!4sN`% 2!Lq3B B4OB GN1CN1 rT"/a !2,# `4/a71RE"BD cQ#6/3QC 0s/b!B!d#545# qU$3s71S?F"$!@30S 4@R R6A 4 A &%.D#=rC-PC@D#0R&!3 3BC @T?q 5 B ?q4!B $.B#N5S.bS=BD!B-@3,!C%1R C?2 >a$.2 C 3C?Q %B7-AAR0B/$!2."22AB0C$/C%23/" 2 2/2 #/2$/12/120"J!"# #" 1/!1!.!! !#!""!""#3""3""#! "!"!""}~22"#2"""!!!22"###""""""#!!22""2!"!!!!"""##!"#!!!!""""!"""#!!"! !""!!"#!"2""!!!!!""2"#"!!!!!!""!""!"!!!"""!"""!!!2!!#"!!!!!!"2:(!"!!!"""1!""!!"!!!""!!"!!!~f!"!!"!!!!!"!!  !!!!""!"!!4.!!!" "!!!!!!!!!! "!!!!!!jl! !!!!!!"!!!!!!!(q!HAC?DN#>BAO @$13 03>6 =3.B,AA$Qz$@4_C=3.QQ% 0>B.B%.Q%AP 03 4?C=BAP$ @5OB-3-1A&@$ ?2.#B-R%Q&@/">#.R.rA ? OD0S/B-1 1Q6AD ?".!2,%6?2=3-A$@ O$ ?4N4AA"@C @1 .C-BR$R!5 /$NR.R.qP@Cp0# OD ?".2+1"@# 3/!"0 !   335#"42C2""3B32$"""32!3""!$#4B"43#2"23B"423Beq"#2#1"2#3$#"3""23$32$22C23""2"32"3""2""3#4"3333 2"323#3!2!3"#23#4""3"2 "24""4#1"#"#""!#"#2#1##3$#4"#2""#2#"#2"1#5""1232##2"22"B!3#"3"2"1""2#2!"222#3""3"3"!3!2"" ""#!2"#"31"3"2 ""#""#"2!:P"!#!2!" ""3"2""""#2!3""1!"1!#!"!"!#!!#"g"2"2!3"#"""!"""1""""!"!""##"""!!"3"#""1!""2"!"""#!""" !!2!"!" "#!"""#!""""""1""" !"!"" 2"""!"""""!"(""!!!""!""!"1""!"!!"!!1jN!"!"!!""!"""!!!!!!"!""""!"! !"!""!!" ! "!"! "!!"_c!!!"!!""!!!!""!"!""!!!nt!""!!!!!!"!!!!!!!!0"!!!!!!!!!""!"!!!"! !!! ! !!"!!"!""!!2!!!"!X"":15>=a4<1",@DP2 ,@"AY3$?3 N1 =25 /R4.P#@-@R-PB/#?C&@B$.0-15 Oa# >P"/"-$n`CAC?@4'/AS&>"!$ ?R6?P Ac/Q4? O2'/QD%?1! !:+OC' 2 .Q /aNA%-142B =a4-@3- 30Q 3/! /!!/!# 3"3!3"312#33"3!"1#"3"$1"32 324""3"3#C32"3B4223"3 ;C3D"$2"3$#CC#422142CB#C33 C$42$343344"42C1#243#C#C #"C#$3332#B"334"""3""3#B!P""3""3"B"2#"3!""#!!2##22#"1""#1##112"3""1"#"32""!#2323!2233"#""23#B"32"!#23A#3"2 3#32#3#"233"32#2"4"#3"B #"323##"""#23"""#23"3 ""2!"2#"""""#!""1##"!2!1""""" "2!1!1"""!""!""#""!" 2"2"2"42"A""1""22""""2"3!"2""#"3"2"!""2!3""!""#"2""3"12!""1!2"#"!2!"""2"""!!""""!"!"!!!1"!" """" "!!TP"""""!!!""""!"!"1" "#"!1#"""!"1"!" !""1""""!"!"!1"!"!!"!k"!!"!"!"!""!!!"!"""!!!!!"!!! !!!""!!"!!" !!"!!!!!!"!""!"!!!!"! !"!!!!!!!!!!! !!!!!! !!!!"#45$$#42B2"$%#C5#4#3""3R4C44348.Q 15@202^4$QP"@$ AUy p3=DCA.Q$,A#/"/0>R5Q& #.">$$0b/3  O QE0S/A? AD-AY ."1P&@C 0"."3-aQ%@/!?#/R/R   0D@C?B1 AQ6A'  ?"!R$-r5Q$ O".!.C>bB$ 0>?30RB1  @F@S 3-!2,a"4\2" @& 1 ^$.4/"N1C&~Y >A2% =@B _PB ,N@B#=_24$ O@B5.PA4.03#>`25 ,O13 -OPX3% ,^P2&>p26=>!# /`BD$ -? #-OQC5 =?2$,O`3D Q/AQ #C%/.O_>/ 2XVP0Q"B4$  -M_?122B5%% +,=NO@ABR46--O_@P0"2#$ ==./D?@BD5$%  0O>?"65%$.  /1qBS3 11BQ?#"4!415 #"4#3313"4!"3134"2#1#A5!#2"1#342#3"0ݽB422C"2///.//!/ /0/X33D#43C13#C34B4! ܾ##4"435!#"4"$242"$1#332131#3#1#2#"2222#A2#2#$"2"B#2""3#B"3"2C#B"3"[B3C"B2#33C24"34#C242$ 3BC242303342$3$!##B$232ݽ242$232""4"33322$"#3322#2"3#2"#2"2#2&""2!3"22"22"22"3#!2"#2!#!22"3!#!2#"3!21#223"#"# #24!#1# #232#2#!"24"#22"#$"#3#1#$#23"6Q"333"2"#33#2"#2"##2""2!222""2!2"2"2!#2""!#!#"2 """ """!!" "#!!" ""#2 #!""" "#"1"!2#1"""!"#2""!"#22"1"#22"2:M2#2!2"" 23!#"#2!#"" "#!""#!""!""#!#!" Y}!#!#!"!1" !"!!"!!"!!"!!"!"!"1!!""""!""!!"!"""""!"!"#2"""!""""!yS!" ""!""!""!!"!"!"!" !"!" "!!"!h!""!!"!!"!!!"!!""!!"!!"!"!!!"!!"!!!""!!""!!"!!! y!"!!!!"! "!!!!!!"!!!!!!!!!u3C33!#TDDC43433"3TDDC43433"3TDD443433"3EDD4433C3"47%nt @Q3 ?~FZRS%0@1"0AT $1A0/RE$@P1>1cE0P1# -_aC5?P14._QS%/^M=O14 -_PB& N01$N@2E=O!4.oA6 -> #OAb$ C#B"3"#/3#3"#21#"$""""2#3#"#!#"#!"2#"1z23"3"B3"31#B1#3$2"32#33B ݾ##324#4!22423B32 9243#B3333C"C2B!33C#$2#1#242#B"2B$3"212 n<33"#"#!#23""212#22!##3!"!"!2#!22"""!""2"!3"#!#"!2##"2!223""3!#2$!""#2"3#22#3"3"3 2#313##!##31#3"222B3"23"3"#1# #2#1"2!EM##"!2"!2"2"!" !2!""!"""2""#""" LX!"!1""!""2!2"#1#!!"#2"1!#"#"#"2""2".!"#1"2"1#22"" ""2!#"" "1#!#""!""1"""SU""2"!" """!!"!!""!""""""2!!!!"!!""! "!"!!""!"""!"!!""!""!!""""!""!"!""#""!!"1"!"1"!2nO!!!!"!!"!""!!!" !!!!&!"!!"!!"!"!!!!"! !!"" !!!"!! "! !!Vi!!!!!!!! !!!!!!!""$4%$33#! "#445#3R1"3CCR3'H 3RS_ A !# #!3tLO%B7+}@"2!3T $p"S'=O=SPB2U!A>,3S `0.aU%Bb!140c3%.%A$E6Ab=0SB'C!#d#%".#/  1#-Rs0tF#$4"  T?"sB3s5!B$/?5"4 1 5.55Q 2-P5AS%04,$2",05!@C #?r6R% B &# C5/44/RDQS!R 3AR-0b%0D C $ C3?A $ 2 D/C2MA#A4PC 3#@B.21#["$ 0R #0R3@A# 0"/2 $">B42301? !!3"0 #.!2?!?.`dB 4A#23"""2!""#3232"2""!!""mq#2"32"""""!!"!#"#2!#""#!!!3""##""2 ""!!!"""#"3!"#""#"""221!" """"1"#"!1!!!""21"2!!1!"""1""2!"!!!"!!""9!""!!"#!!""!"!!!!!"w!"2!"!"""!!"!!!!!!!"!!R4"!!"!!!!"2!"!"!!!! f""!""!!!!"! "! !! !"!!!!!!!!"!"!!!!!"!!!!!*'!!!!NY!!!!!!!!!!?1!!=Q` ?@+12R>6O4M3/0p2=B%-@D /B#>Q.B @@5 ?E ?3.!, A&a4AS=! ,Q%.a4`#>3".2/B'.1q-A`$`% ?D/3-AL1P$,A4 PB/%>4>A#MA?# %?b_D,11#!2 7.B"R!4B#C2"2!2"2#B3B2#3"3C$42$33C #B2*2#3 3"31#2"2ݽ"B3C3#C#C 3"32#32C!#3"2""!3|C2"32#!ݾ2243"C#31"!3"!22#!#"323"#!333B"4#32#"#2"22#2"#2#""#3#B##2#22#3"32#3""#"""2 ("2#3!#""222C"#3#3""#1"##2"#"2!"##32"32# I""#23"3!"#!2!"!#"32#""!##2"3"#1""1!#""""1!2"!"2#33"#1""2!#""2""2"!"!""#2""2!yy23"2"2""!"""""2!2!"#"21"2"21!2""" "!2!"! ""#""#!"!"!#"""#!!""#!""#B,"!"!!22""""!""!"!!"""!"!""2"""!@#!""!"""""!!!"2""!"!2!""!!"!"!"MY"" "!!""""!2"!!"!""!!"!"!#!""#!"!"!! "#!!!!!"2"!!!!!i!"!!1"!""!""!""!"!!"!"""!"!!""!""!"!!!! !!!!!"!!!! !w^!!"!!!!"!!!! !!!!"!!!!"!!"!"!!"!>U23 NC N"% >A#.A5-1l;%>A OQ /1 /A$ NR6 =A5-03P3$_B N2=A% ?A% N1$-05=Q$-p#OXO3P%$.0C>!NQ4, Q$.`"-2B ?a4>P$ >5QC5.!R" _CT1R4L /,5 Na#-0-`C&.@C/! OC'0R6=!1% ?r%/P .-Rc/BS OC' Ap #/q"+03 NA2L#/#4 .221/#.0"! 32D3#R34!3#C#43CBݽ2#C4342"24"#33C!#3"#3#BXa"#2!3"31#"#13"3""B#""2"2#2"""!3"4!"2!22#B#2!$#$#3"#33C"#2#2B3C"32"1#342#C"2 3342$#32#23C"3332"33B#333!2#4"332B"#3"324!"2#2$"3!1"3""232!#2!#"#""!212"2""2!""1""##"!""2""!1""2!#"!"13"#!23"21""""##3#"=!"2$""#"" 3"31#2"2"333"21#"$""3"2!2"31#2"2Sj2"3!22#""!#1"#"3"!2"2"2!"2""1!""!#" ""!1"""""""!#!"""2!""""! d{"#!"""""!""!1#1# ""#!"2!""2!#"!""#"##""#!"""!"2!"""!!"22""!!#!""""!""!""""!""!!""!!!!"!"""|!"!"! !!"!""!!!""""!#!" !2"!1"!"""!!!"!!2"!""""!"!!"!!"!!"!!!"!!!!!!!!!!!!!mw!!! !!!! !!!! !!!!"!!!!! !!!!!!! "N8#$5#CBB32A!"#45#R#4$8=P"403 Oa>$-%-Q$P"P& 22_B /$1#=q$&A#>".1R&34O/!^C$0b/Q @?#PS1bNA+? A7QDQB= -q5 aXc.#B-QQ%0/!?3/S.C??`C @C?B1 "-aD.`$O"."CR5Q%7B>".!>B>b$.a O /O50S/b@ % 0T0T?3-!2b6Q5?#-"/r8.@1 A#13?# . 0! ./ v/  / /#33B""2"1$"32!21"!#3!"1!22"2!""2#3""#w2#!2"2 !!21"#"2!"!31"#"4!""#23231#!4""4"4!""$#"4"32#"42#3#3""242"4"31#23B"323!3##B"3"213H##33"#1"1#2#3!#"""2"3""!2"2""!""2!1"88"!2!"""#1"""!"!##!!#!!2!2!"#!vP!3!"#"!#"21"#"!3"2"""##3""1"3222#!#"2!3""1"#2!22"""#""#""2"2!"1""""2!""!2/""2"!!"!""""!!#!!""2!!"""" s~""!"!"!#"!!"""!#!"""""!""#!"! 1!"""!"!"2"""!"""!"!"""!""!"""!"""!!!""!!!!2"!!!"!!!"!!!"!""! !"!"!""!"!"//5&"! "!"!"!!!"!!!!"!! !!!!!!wy!!!!!!! !!!!!!"!"!"!+A!23R44B3C22!OO "+#-'$ ,$@2Q2%-G/@/DA M 1===IX7<@>aB413E? "3 bNOp6Pa 4,B"T"  r'E !12 3Ym!% %3 C-3=$3" %!%1R 2@R R/q"B 0-4/q1 2t40 %?"#/Sd PA!NQE 7a0% !/@?C #`3CP1d?3 -M0D 7B#/1Bc C "4.AQ 1s%C 3A p<?L1V,/!P"> %Ac &&F.N13> #R 2"0/4>4Aa1!1!1bB` sRBC0 r/!/2B%t3#1"C"2 0+/2?>ra! V FB.Bc*!/3 ,7P!!3s $22_!`4,320F#0=T /#R "1!!4QQ+`r $=SQ U.?4Br 0[@c.!D@7! $.,BC/4.4 @R ! 22"U/@_1-/C5- RQ !BeA !/bbb 2=Eڿ"5/>! a"!0>$!3ScA1"/?#.1 h U R?!24$2 S $A bA2FB3b!D"23 P.#SE%#cA<1"2A.QD 23>7"ޟ#!2S E1#=!B!25/$t- A!? ?BC]U0N2!1d" 5>! A. $P%.1OB1G06.O1?1420. "7A  '!"!F4A!ARb!52=D F//04!3/B0b 6B "@4!! /A!"? 4.%3#$3=$-12?3$,$ABE"5!R.B /4@!2?&%Q&! 1t4# A. 2B"1 1Cs3"1 $޾AD"ݱ7>?$0/B" 6`#!2/ C #Q5A4"/"2!" 5#P%! !!#A% 3>R! ! D="#0!02.A02-2$" R 4O2"A ?!"! " /#R!! !3"3"1/!B"/#1#2 2QE#$B!D CCD 2E34S#3!/)R$ -@A$ -@1C$ -QP"-P?113&=QA$ .OQ26 =P"3=O!4&_2S-O Xg%/O0B N@R NA2 #O@" 1"  1"! 0A  /?   0 0 #/@cS1#"D2#B #T"C4C!!2 C2C""41$453"@  0//" !!!// SB1"  "3"B1C!$!!3!#1"!#02#22312$2#2D!#!C"#242$""""!343C!!2"3"#!"!2"5342#312#""2!#2"##2" 41"" 3"B#2!2!""#A###B3C23!#2#2"!#!#CC""442""!"2"2"#C1#3"!!wX"1"B33#2"3#2#122"2"#"12#!" #"3"42#2ww"!1"#2"!"!!! " #"!1!!2"3"""""2""!""3""!"2"!"""4"#1"2!""!"""!!';""! "2!!!""2"!!"#"#!#"!"!;=""""#"3 "23!"!!"!"22/"!" !!1""!"!""""!"!"!"!"""""#"!!!""!!"!!!!"!2"!"!!"!!"#""!"!!"!!"! !""""!!"!"!hP!"!"!2! !!"!!!!!!"!2X13$ -MN?@?@12 >N@>Q"2CC,<>?@0q243#E.-O_-0/0B&6 7>.=+/O1 2C" + @0 !3?40&1.OOA"c% O5 -PP!$!6$ .N0@0O3$#$  $,O?2!"U",*@p!a!a7- 7A N P$ u>0/`C"F# /t E"/#=3Du5 /3/CA ?1341U?'~,/$ #D"2%Q!.# 5 3 G0D!/R/"#6ݿt "q0M7A#$B! ."@##A/A52 N2 /DD#2 &20!ST"$B Bp2"%O.?% -5?3G@ 2bR@_ . !C.1#0"/1/Q'b"@6>RY BD1 $0A2"!_$$RD Q 03 CR!4"34?$FC" ۾ $4>21> .# "10"?""B% $3 q.3S6 C1#>1  .!RArC2#2/JS!01"R! 3`R #D" !3" 34̮. Q/A1!"C.#C#OB(!!R"0GA3"/!A0! 3#5" R4D3/"/"! /!#R11 ##5044 2O $!/2!"1"# 4?$U41 2 A1$1 9/""#T2;D!1"0!3! " !!!FR0ξ#0"/1#0 1 !///!$B$$2Q!#A 2@ 11!BD@!3Q.R"031h2 " !!A12303DA$2@2!B!1AB0"52!"S"216!5@!/ 0B440B4 cA/0"!/2S 40Q4#12 1-"? S !C,!!-!0!1623QB?"!" !#?A#0"C/B! "! "  %!BQ 13!!1 ! !/B/ 2C! /#" !!2?0A3."!$B  "// #-%2#!"#!! F<2#!2? "D  ./3 ? A"Q.!31 "1 # $#B  !-12!/1B22!tR!#DD"3B3E4" ͽ"#B!""!"4"DE33!23CDCR255 X1+N1D^@2  O@2cZ>A3E_@R-N0" ,=0B#P1$.?25 >1#% p@S$& -!3 .PA3 - B.@AB6 /34 a2#-/1C/`A# /0^dA3/?@S5 02$&1AB% -/!4>_/2O/2/>qC".!&!1BR$ '/O3=`A2#-.-2 =O32/ 3/"!>"!0# !12P! /. !! !0 !! 0!!0?//.! /!/!?/  / / C64!""4ݽ23C55"33"!ݽ"B#0!1D3C"3" !"R4D21#1"/"3CCB!2"E"B!#!#"""3#B32!!"# "C3C1""3B##"3323"#1C421#C3B#"23#B"4"2 #43C"3C3#!3"2#3333#!21!#C#C#$230!2"!242"34"3"$""!" 3"""##"3!#"#!!!" ""!2n2#"2"3""1"!!"!"""#22""B##2#!"""  ?k"#223""##C"#"#!!$!!!!"323"3#3!#!#!"#p_1"3"!2"2!""!"!!"#"!"2!"#!#!r!!"!"""1#"3!!!!"!"1""!""!.3"#!"1"!!2"""!""""#""!!!!!"!"1"!.@"""""" !"!!!"!1!"!"""!"!!"""!!""!"1"#!!"!!!""!!""""!!"!!! !"1""!"!!"!!"!!""!!!"!"!!! !!!!""!! !!!rq"CD53C5"22""42U?2 D0cS^ 'Rt/ܿ"-A2s#T2/ /? 5_']t"<3<7B/B0#@#-#B306_Q.`7.@5/?#$3 Q2 Q !C0rpA $n$C1u B !3 0QC,R c2103BP32" "C @6"ܿ%A #?S3<3.S5.<I47>.BSAS;r A6= B@0`"tW@2B 3L"bBsCaF!0/ )ys5@0 T# E3ݎ!#?$<#%"R6 R%C.R?u?7 ,C.&>AT>'/A# s6 T! $C%,  CA/371/#13!O&1 R4R#`$0 2%1!/1s3N4AtEDC1A #a4Q#2 43/ ͼS F $##.R  "Q/4d4!0C2T?#Ds?D"R& "!!!A"?c2BCE!2RC"A!#B]AB ?b550"D25/1B?&CPE35&4" #4$2CS.03bQ5!R1/B. !Q  #= S!"B2ACS@c?12AP| D.1!5EB/R!!2! 5 3"CQ 2 '1##2 2 C=r0/#!D!"EB 0@#R#!_!/#03 s"/$AA04.#B0 $!0#5A a033"?1Q!/1 /a ! 2"R! "2!!#=R_/y0BC120DC1$4""0"1!"! 30$22T2"5201!"87A1/5#%314D0$1!"4 36"D3EB/1" "oN% /!#S?#4.D!3? 1"/ 1/ 4"D.Ͱ 3>!R !!"u%"  5Q. #4!3A3/ /$ !/3#""%" 6 !"3?##$"  R>!211 !10 D10!1!2@ #!@A/BB33O?! /!@ #30!33!"m !21BA 01 !B0""2 3/S2 ?300!2@BB!A/"!1B? B !"-1 2 "3!"A!"3!! $ # !  0 4! /B/""!!/!/B  #rr/FnOE @5?">"2 AF@-PA4/#>"/S /R$.R-a 0#.#S17@$ @43.BLA@$@$ >" O">!Q17 @5@"?B2/A$ a50S. ,1'2q03?R40C Q>#-R.P @"@3>-B>Aa!$ @$ =r>S6-P,# @" OCOCA1P` 3P# @b R-"O$ @" ! ! i".#1/!!/  "0 /!  " 1!4:""23SC#CB3""#C"243C2""###"!"13C32!#"ܽ!$3"443C7 3CC354"" 3! $C43!#2"""24434##B!!"!C#!"3"#3#42!!!433 4#3"#3!!!2"3B"1!3!!3##"#3B#/#2"3#5#"#2"!4!3C!#"!!3343"C1#2!"323 #"!!#3""B#2"##B12"#2!"#22""#!"!"#2"""B!2"3"2"#1!"231!"23332#"##1!"2""!""!!"""#2#!""32""31#"31!""""&?!"!""""""""#! #"!"!"233"""" ""2!!""!"""!"2!"""" "#3!"" """"!!"""2!"" #"3@!!"!"!"!!!"!!!!"!1"!/""""!"!!!"""!"!!"!!"'4!"#!"!"!""!!!!!!"!!! ""!!!!!!"! "!"!!!EV""!!!!!!! !!!"!!!"! !!"sC43333 #TDD44434333"DDDCD44343333#.1&?R$ .A?@#?q$0Q6  Bc/1RqaM$/AC AT -R4,1S>35P2> >B4/Q O05Q.0cQ@#G/>!&@! @8%B,O0 .2 .a#.Q, R? $LP4 P2-Q!< u"S3?R O!# `?0=31>1_$>C"_P AS>Q#.oA43ASq@3ER4e-B#OOOC.&$0!5ABO4"131$?51@ ?C@"/$/ 4.HB4B!Q 2!.@QBD23AO0/@0?#!C*"2DRT@1 22 1?/BT1/! >#>B%10?G!#20-B4aCS /3Q3? !$3#RAC4#A%B !$?"#>" 3?!.?>q!6B ?3 S0!$$?B>$b20 C/0"20C O2@ C22#/CS!!S12#0$#%$!!#? 1!B S-23/&-/ "/0##!5 0$B/@?R2M1R"A#0@3#p"Rh1$-D1 ?$  "13 #!?4B!1?#A0#@/3B5&?!.!23!>%2 !B2#2#$> B"1/"#1"AX @ !A"!00#101"!3 C 3>A /$0 . !"0 "/> 3?/ ""1 ! /B0/ .  " $! #!&N#@# 1%! /#24/1=/ #3""C23/0g2/"/$? 5"  /" /"!1.[= .#43/".- >2%"-OP! 0 3" 4/.B2! /" 1!?=!A@!0?B2 /! !#"// Mg400"//?!1!A !/B "/#B!"2!. r2.@ 1"2# ?!.1!1.221.!3{!$  !"-2!#.!!0/ "230!"3@/2./$ "2 0A ! /-#/2 20/3c#H2,4O4>#?BA@@% BD ?2.-4>B.BA1 Q3_4.".Aq$ @CcO3=21A P$ @4 C>S.1 @50#@C ?S.Ba?$`$ @C- 1-A7B&1@A#O&!#_R=22A%` 5 BO4MB=21 `30#NQa1 0$ 05O   B,4-A& P$@3.2#=AQ#p@#_ >A/BCB 1 /D0/b /#1 23 #5!C#/D!51#3B! 63"#CC"CA#4# !B2A,!!!/  !"/"   /1/!/   24$22CB!31%1b"!42 %C#B2$""/A3C#C/Q""1"!"4!! ""C3!3 3"315""#30!$"!"#2!"23!###1"c#"!32#C"/314331#C4C#C2"B""#"#""$5#3#1!"3"3""3"3#234"4""243B132"31#2"3!"22!"#"3!"12!"!"2"2"3C!#!2!2"!"#34!!!"!!!"""#2"33!2#""#"#2"!""22"!32""3#2"!#"2!2"3""2B1$#!2"22!"!"#34!"2"!"#2"!""!"! ""2" "!!" SV#""!"!  !!!!!"!"""!"1"""!"#2"2"1""#""!"2"""1""""!2!!#!#"!"2!"!!!"""!""!! "!!!!"#!"!""!! !" !!!! "#!!"!! !""!!!!!!"!"L9!"!"""!2!!"1!!!"!!!"!!"!!!!"!!!!!!!!!!!!!!#$44CCBC#3 144CD3CC#B1!2CS%$"B232!8.SR01A";/0I%,B&a D3>0aS34S D2T3A3R1D14! Q ݑ U!A4R22Tu@<Q1"q3p"+5 ! A.?1@P"3-OB  sR5/#R /U"E 7W !4E2!.R3 ?"$32$33E/o3C12C_$RuA"A #3d a ?5#* ޯS &B! 2R `1q?7-B=ؿ! bB <=AAE'1"-C1BB.31B 13B- G-RT!'P_-Pr3>!R UE r1"Q?#R/#!wQ"Q!5 R7M%7"2V $"N G ,4!#"-A!-"B#G!'Cs $b'5"@#  0BuP3$&0R>B% 2?!q 3/QBS2/"%%//%!/' 0?6/Cb'@!2O;@7-0#D7 CB%1Q1..!?@5PS 2A2#5B #C "#"t/&T0 .R ?$@ 7#$"TQ#7"-"%CB2-0G,B$3"QS0"  U BͮB#4? & 0!".73c+"%1E.$?B<2A2C1 3`44/C3$#/5@!">"#rC"6! " A@F!! 2 P2C-R! S"3 // 30&d>!2. ͽ"B O3 ?C#@S# $2BBA!R126 4D *3S%">.0/" "325 31"2,0!! ./!/3-!"B3A  (u5./C403S$/!B.1 16.34Q" !01? R5/"'D24""0."O2 2 3 1/$%! 1#S"/$A"1 S!.C#/SM.13$ T#!C1B!1 "Ba 1!!!C1 -0aB$ "R/1!"$AC!2!2R?1#1 !032321/l #!3.B!!! C0"1a.3!$D11 !-! O l;?a "# $Q/.#//"/! !5!"%!R3 "#/,# ! C?/"!B0!1.  AB""A! 0"A G#! "!CT2"7&:r1B6OAC% OP"NA"$=02lE9&-P125=P2".02D?`2D oAC._@B%@!#,-`B$ --!4&/@Q4 ./"1_Oa#%,>/1?a3D>^%.`AS $ ?/"/PSD.0 CD .24 . "gt@1D>N20r33 A0S3 SC7?%@BB F/2sR4c"51R1"#1/!//!"?""! 12?0 ! A/0 /! ! CP#1$233"42 $4R!#!#44!#2"""D4C1!%B!/!>/!#?/ .&& "  !///  / -V$"#3222"4C4D""#!!"!!!$###32/2"2# !#C2 |!"242#2#""#4"3"41"4C1"#!"#3"!"2ݾ3D4""3D1%H2!" "3!"$B!2"2!"##2!""#231"2"21#3".#B!#3#!#2"!#2""#"$2#2#C3B"" #!#B#14Y!!"""2"!#!"!#!32!""2##"2 22"3"""#"1"3323"3!""!$!2"#""!""#!AN31"""#1"""# 2#2!!!"!"#""24"#"3!!"!"#!2$!!"!""""!2!" "!"#12!!"""" "!!""#2"""#""!!"!""!"1!"!"""!!!#""""!!"! !"!"""!! "!"!"!""! !""!"""""!"!!!!!"!"!"""!!"!""""!!"!"""&B;OOPn@!2C4   -.. a2CT )--23s%OR#_#!?  /-?M?S7VT A1 0>?">D$`."/r#0 D. O b3.C 1 22p &$.U#+vB.οU??O߿.# u!A0u#&s2-SPb?!tc2 "s2Sa'1>?$a42%R&/!4b"s 3P4!a5##RBS "3531 B G3Dx$a#A"P2N$BSF! 56߻" @tA SD?Ad0t"#5 U t c2$634B1 s/ 5/0 &45@"R q3B@@2c0/U+S/ͽ25 B#52"U0!"U  "2#_/!#62Q"#CC0$b S!#A0Qs 0 c2$3D/Q ! 712s5A/t3-RE! ."sE &F #q0!%"C?$>'@0!C3#4"1!E3BܾQCR/1T R+%"!3DMB#Cb ܾCO1##A20Q 2$3$0?T2R 2Ab !1.0S2  SC3/2#Q!CR"R!0"R"01F"/C2S!7 !t 2C.0$!3a3 s$CB!102@B"!&S/R !#!Cb/ Q5 "A"22!5! 03R%0!> E" 3Sܾ/b3!!.!34!#R5// !1.#Q!!1.3E 21D#32R#Q3Q 4 qD2    #3/33!S#.3!"!/"%3! #""@!1"?2C4! #$B"2# -/13 /# " %!B"!!!!  0!%3!/@ 03 !%"0!B%U!?!B/!/@22 .Q2"?42/4"1B}023 1 0! /!R / 20@ 1# #$!!!!"031!/! $!"! z34DT"3C53"#@40C432ݽ%CDC"532D2΀8!b,?AD -O1"`BB&-OR# OQC N{: 0" OAC5N`0-oP" =@BD @P16,O26-OPASE-N@B%NaBD=Zs)/ #& QRB N/ =0a##-2D%.1Q2%%/P12>2D7//PR" /# x / B >Oq4.AQ / 3N1CE/_`C /_!  OQr3/.-# /#OB01.@3/"!"!#/ 0./" "/"  1 1/"!?!  . A?!/!0 //1."12!#3/33C$"2!C1"42!2!!4C4B"!"2 !/!-""!!!! /k+! ! / .// 1   .|!"2D32!!#1"#C#22/!2" !#" "A335"!2!!B2!"#3522B22#3""32444"4CC2#""$3#1!#D4#C1#"#3C"!""14C3"#4$2#2#2"!"#5"#!!S/#3 !$2#!3"!"!!!"3!""#"2  !!#" 3"#13#!#!"33"""$3C!"#2!!"4B2""C"&?##2"## C2"2$321!"B"3$31##1#!2 2  3"""#2! gc3 ""31"""!!"23! ""!2!!"!"#2"""!""#2""3""#" !222#"  !#"!#"23### ""2!"!#2"1"2c\#""""""""!!"""jY!! 1!"!!"1!#!#"!"!2!"""""2!!!"!#"1!!"!!!!"""!!  X<!!" !!!!"!!!!B!"!""!! !!!!!!12'{BB #1"_!>a Q1v! "/ .E15Q24R30b1L>. !G#1 QC#_.5 2"/1B#-,3BQbQ1 s3s 1E5NcZ106  0 C>?C1 C4#@.3t> 40AS>"!# !A$G>1 C66-" #B5t>O GM! 1oq%2FBrA R4 "4#4 !1͟@+ 0PB9[EC ",s BG/-T.N<5>"Q1A,0`rC!D,R/%BC1!'.0$"03,A R>52Q@"'.!,#-?1s! BcF 4!#c 0`f`?3O -R?A-N0#00e @Aq #C*!3#3ODN&r!"#dT !!%$N.`0!=P D ;70ݞAR%.Q#9#T3/a۰"3!!r0' E 3!B @Ea/P C@"P@ 50q #0ʿ'/4/D@-A#oB>3/s#S"" ".E""1tN#22 !.Q&(X1#-F %r C4C, Q$>#1@T"#S-4?NP03=?.F3C D5 {. "#Ar $&C!S1`  O&;52 Cs 20" ?! 0#BOBe/B`c- b@!cd &3-//6 !?1305t+ B /&'$U A23/! A1A 1!!#@"D #$5T!M0/B$>>%1F2&!D# !&QA 2A1R4"0_0 B?!3 R-AAV0Q.T-B5R BtP+/  104A/"NPA3 O44"!"Sb r-D/?4 @"Q0 `$/ #>"D!5S 0# 2! BP3!"1A33E-$>1/.R/X>1#_b-3B? ?'2aA @#.#?C04 C "/4 OAa."/3BD"C0!2D!2! #-.7 #/# D Bc 2"B "".1A213O7 0$" 2/4!2"#1C "!5.p0!"!DO0&!B"  >!!1!1$Q/%- 0"?C/"3!".#!1 O#1!2 1# @B !!$e>%/0>.#0b ! S #"" "D" / "22!  Q!3# /E/ 52C0 R!1!/@0D/.2!0@ C3C T2 1ADD3!% "! 2#Q2#.B.r OD>B/2A.o@513eC?D>41! 1'25@# >2NR$.aP# >."-2'.A&0 A5@D@R?C,1.1 V!zA4 04.4/RR A5 ># 23CB%.r%0%. =+3.C%.@  c1C 1-1BH=12&P3*1 !2 2 B/aPP1# >DO1-bC a$ O"0"$>A`1D0"P /,=! ?3.@%2 1$ PB Q#OAOA!203>!A!2"B!"" B !/!! 0/!"/!  /$! "? !/ !!!//.0 !O7!// / 31 "5B423C!"!2"C4#C"#1!!#""1""31 4C !"""2T1!34CB!#2"!24CC32C4$1""2"3B32C"!$3!s#322"4!"3!2!!! "32C"""""33D333"D2"!""C!"3C242#32!#33"23"""1 3"" "!!!! ""2#D2"2#!!"!!"3133#"!""2"#!2#"#"""""31!"3!!"""!2$3 !!!2322"3"2"""!!"""3"#""#1!""""!"""#"3!""!2"22"!##22#2"""!"3"2"""!2"2!"c|!!!!!!!!"2"""! "!"!3"!"!"!1""!"!! !"!"""2"""""!"!!!"!"!!!"!!" !!" !""! P:"!! "!!"!"! ! !!&!!"!!"!"!!~!""!X3$8 C;P-@4-@A/",O4 P5Q$-2r/2-_R,>"/P1$ 0Q_/>AC7? b 2.C ? 6.? /4/!&/1r?QR?s ?E NO3B #?P?E03$,?AC-Q5@">a"N1' -1?@"/ 7 0A5/P3a&/F "5 5 1G  03@!c O!725$!o.P11$a.B +QE131$/ p%$@ER1// 35c?50! 4AA?1$sD%rB"022#0\2-1?""A C !!$.1 3B q?C.5Q 2E0B!E 1d/r"1<1!!5!'A 1101D  R"4/B !$A 34!2-30E! /"0400e/2>5=#601Q1F !$>3!)0ΰ#>3A#a!2!! #5<2!>!24.#C!63D3:2S/0B />"?"BD @#!"454T#5.%!#. &!#44A#B Ͱ!$#2 #4B 3.3#/1 B144A"2.$34DRU2/ $ T2C#/4B $" sD 2#11""!B32!""Dͮ!s/0-2?@331 "."4T/cb/203%/!A  SB. S2-1a 02/1/B 6 %#R @!B0!/!/ 5!02$.%31""25?3"RB"ECR#2.QD"!@6 A ""PC"@R2 03/51 C! c"!3DB/4! A ./544$1F!"# 3/  &2!D5!R  "// "2  $R!S/ #53 37"#c5211!"!2#AE""!S0"3#RCP 222  2"!!1B$"  3   P01>2 1"C$!$!"  2 "4Q/""BA !!&\ #/  "!/D /?!Q12?%A/"JpC0/$"33.3!"!""0# " /.$"!1  ;212 @ !"$!!/?2/" 1 2!D2"!!%4"#D242#234DCS"5BD33$!"C02D?S-_2?3-a-` ?$ C /$ O$ ?CQ- R#-RDp# ?#.2+A a# 0$>">"-BQRy.Q O# ?C -3-? A#1SOS - !BU1C 0#/""AA6? O!@D-R.Q7<3NR=#$-A3,`3N4/>3=Q Q@#@# ?R ?3R#LQ30C>E/3O1?QQ0#`A /3",AQ!AP4!2.AO12 0$?#>D .2.!.#1@3P2-1/!1#/A ///  //  !dP1"/  !/  !?/  ""3"!"21!!2#1C3R1 $3"622B#3!!C2#"3"2#"""3322"#B33!3BR2!3D4C$4132!"###ݽ#3##34 ##3C2"!! $331"3B"C4C342"2 ""31  ""2"2!#"1"#2"#4233"3!!-"!"32"!" !"#B#""!ݾ3!##3" D##5"#2"!2 #"$2"#"!! "2333#!22#2"!""""$224"#"!!!""""3!""""3"#!2"!""#1"#2!!!!"2!"!#1"1!!""!!"!!#2!#"3""2!""#"!#"!""###"!"#2!!"2""""2!""!2"!"!""!"#!#" ""!!"!" !!""""!"!"2!"!"!gQ"!!"""!!!"!!"1"#!! "!!!"""!" !""!!!"""!2!!!"t]"!"!"!!!!!!!js!!!!"!!!!!!!!"!!!"! ! ?R!#$3D43R23#B453RB4#3B3/ҁ(3r!$aa$O/>? U 3Sb#" A<!50#.0%$^ 0!!#! $=OQ! @qAR "21A#BB0?"QB S2/7 k'^2Bq! C3b! % " U%3<"./4>4 /O@B?$. . rAQ!"RD G"rr^2!RD2 BC*?2BQ32ܾRR%&"4!&2ͽ@Q0u%////1T##qC D! 1% @3 #"q!@/T41s U P7q #S"/7"XAr3?3?>!'~"Q /$0 2B"As2!>3T1A#5rO1R/%.R6/Q3/ݰT0<4/A.5.0ݯ# C-R/r"rA 3/V.! S!P"0 /%?iCO2 Q R-/F0S@D/!3"! #+T 7@C 5%A!0%2!G?2r5P4u:  D"# C-A B#f/A%Q1 AuB5T7PS!Q!dAT"rF0k ""t4@uOA%C %.62 & SF/&C 11B<Cc"63/4ۯ#1iB-!D=5 Q1!00%RB>2$127 "D=%Bd/1#S/0bTc>r >DQ?b&!""Q3 4 R%2 ;2 Cc"127A#20bQ"!FGA7B1  2@F'1R"1?%$޼42"D0!2CA 143CB1>-#!3BB$ &2 6 32ν&"$!D! 5 2AR#"C?c!/023 /!"4# $/"1.2!3/4?!$5Q. S . 1D$ ".3 D . 31b" BC.4!20#7O  R/B?  T /BQ2vT 4"#!! 1 S!!"0 !2"  /$4O 0/!!2 !/"03 .3?/#D!!#22$C O>2>"4B!B!SB B/" B!B/0 2"B ""2/##0!0 ! 2# !}0$ 1"!1A 2!  !"!4? -2!! 0B1 0?! #O!"/2//2/R#/ /"-"").B / 2/221"# 2?!?10/0/ # @/26! @ ! #$!0/.!?/",1"!`9T3/̯(RPa" -N0"b%,N01 =a3T .p1 <@aB% .026-O`B4 O!$-N!5-`037.O1b&<DOAr3 .?O! ?`1S!"7>Ab4"+" @2S 0>3T `AS% ? eMNA2P2 o"3 ;_13#=3$?_C">N2">/2 010!2 ! #1.  !."  !"0! /!_! ?"! / /"?0 1 /2.#"!/ !4/ / /!!""/1!0"!>0?1 ? ! !/!! !/ ./"!!/"/ ! 12! 4B!"#3""2"4B"!3"$1"22! C3"$52!#DC"#$!""32#S##!#!ݽ!41"#!#"2!5#B44B "3!"3A9B!#"3C"""!ݾ#133!!C!"2"BB133B"32""C 2#432#22"!!!#3"!"!!32B#2C1!3!#3"23D"2#!2# !#1"!"#$"24#"B!4"!43"!"!3!"D'" !#""""##"#!323!"C##1"! ""!! 2"1"3 ""2###2!"#232""!!"#""4!"2#"!#"""2" "1#""!!1"1"!"3"!2"""!"2#!3!!!"#!""3!!x_""""! !""2""!"!!"!/!11!""1 !"!"!"2"!"!!!!!"!"!!""""!!!!!!!!"!!" !!!!"!!!!!!!!2!!"!!!"!""""""" MeB+NO@1B3$$  ,.N_@/+bC6 .. -!01R3U  @1>b!_1$.O,=NB4AD!# /0_"1 4)"#3Aq>@3@#3N"?RT#/ =/^O%/Q#B7o010Op@121e;P ? 2r&A &SR$t!# !"___4#0SBR BU2q Ex!.PR2a2Bc%S,01$1>&2_S@S!1 t&D/M"! @B 0+-!D4?R#`O#-۱DsO ͭ@&B"c<A$-E " D-54D"UR O/#2AacA11cA$7 D b s "_15 qS`".# D2 #D2s3" +2 SU2"Q!BcBS.406ή$#F"DQ D` "A$3R.R! #"BC3s(~NQ %A!#"0E! !#!CCaT!$! 2QSO !d"A?2/3C2 62@43BOS//! C.c. .T3c07@0Q!DA5Q#D"S5,!R$R`H0"c/5./%3O6s/4?=cBT@; S1" 445/ #? &3'@26 CA!T0_""45!ݰ20'!S1D.2.DA"!!$5#S#!&1""& T$^ !! c "%!14.44# F2 D.QCO!".xSOD @2+$2!?#& B"!3 #Q"a42! Q!w943/B # B A"BC/B 3%ݱ /$4!!$$1&01.$1 //32!Ϳ 3!C 3O!#4"30R#P3Q4C"?21!$C1" 2"A1!CR.! " 3/#" $3#D 2!"A.U!  3S02.' 0##0 #!AB?/0 "" />6!"3!2 1341" 3A. 4@!!" !? !"5!1 /1%/!"$A  021!2ݿ$"1"y[0  $0 !#/""! 3!2A#/0! R1Y#-"A!A1 /.01 ܽ3SB$T"4D.%1B=_1& ,00.QQ$-=P $=0A -@Q$.@135 =0B% ;O0"`A3 7-@A3-0Q4# #?p3C =_?".P1"- 46 @1R4  /1FA2 ,?03 >`3$ ,N`1$,-a!$ `2CMP2% .Oa4 #-! -02$ = AD?OBs#/-M!2 /! @Bc Pr$$1002!53DC423S"0Y[ 1"1 !/.!/?0/? /!0  !!1"1.!34!1 1!!,0 2// "/1x C4C$" B# "!#5!""3CC2"2"""#4353C !1!- ! 1 ! ."// /)S#SCC"62""!32C4"!#2D4B2#"4B4242"""%"34C!2!A0$3C1"1"#3!"4 #A""#3""2#!"C/#2"5231"#"#"""!#53C4D #"23B3132524B3!!2$"#2##C53!3#5!4"2!22!"32#343" "B42B!22!x"1"!!!C""1 #!!!#!""3!""2!!"3!3$4 !!#3"!!33C22"!3A!"3422!4#B!Ua##!3!" !"4232"!2"2"!233"!#2" ""1"!"23" """!# "!!!2"!2 !!" "22!!""!#""!"2"!"""1"""##" !!#!# 131""#2""!""2""""3"!#"!222""#!"" "!""!!"!!m}"!!!!""!!""2!!"#!#"!"!"!#!"#!""1"""!"!!!!!" !!"!!!!"!""}CD4BB333!#BCD3D2C#2$45$2BB###CCb#C#41444D#BA2!/.ԀH"R7 bg!A!!Pt-//q3]>+02 0'P#3!Rr//"6// ED3!C"S{M1 ""!$B/B44=@$#AA&0 4+? C@2 a5C `C1ܠ C".uK#4#./"OE =Bp"P 2@ 1S 4.Q3 F6 ?  #<ݝw/+4@sP!4 Ϳ21ba 0A! B t0@ܽv0D*" N1AVb 8`"4?Q4"@A#5E/E> ?QA""$-P -aB!3/# 6-1GQd;!Bb!/s2  ?"0A&Q5Rr/^/ 5a% 0C"Q!73O#-A",c0C# A 3;B MP4,QC0'O13@d 4Rr 3`sb/ =!_!(aBP311 U 4? .,p@#p$TBMdW>$"'-s"601CbRm0#.FA!0% !#G,$//P_3 ,!.A-Q#22$1"Ea/O^2 7/IN/&!_!21?$A30C"B# 3@0bC/3R42۽#.3""01 '.@"T$cP%$u!0Q"3/.!!s@$1,3ܾ1/ >3#!0D2$s !E >?" .%.5 #1%br!"B#10# E 2# 5! A#20##02<Qa C02#2= Q10 03#,S"1$  C"-baS//%2BRM?! @ '&$2! #9 /#,2 0@1!t. A?$03A$".@4/ ,S.A 1/&5 & $#R"1# 20`/aS4!#02O %C335A   .B35= 3TT2.1 2N4-C4B/33/2#R%=#0A "C !~Orb4  D.$1. /1"R 0 "!01S??2"<#@A$ CF!Q*P "QR3""4" 01 0 > @!C,&/"/ 24  "a 4-"Rq#3!/1Q!1#//1RC,?0.1 / 2 RB@3Ca3=C/.!@$!Q.A/3 3!MQ"2#"1/?.3"4#@2B 2!@3 !22D 2}2137 1O!!D@04 #.51.!5$?"2/"3rQ" C#/aC_# "+0"!RAB" "-CB_ BH "3F44D#RB3R"3Q24"ݽ ν؏-Ab71D!CN4; >Bc0$RC01C>%p1&B4P# =#>RQP ?."="A@06PDAbOR,!-` Q4 Q#/#>R%-37i1E0# ?4-11r&A%O" O-.B>1-/.TRRAR>R A% Q4 0#-F04>3>R-A2"A N3?0.B,R$1d @$0D=#-2-B`5OD/!/1B.@0 % $ 0S /?/1?2/@21  # M1"+ $B!"?./!!!1 3+@ /!0/"!2! ." /0?02 !  10/!!/ ! / ^ //?1!./"?! 3!42432""" "1"32"$1!#42!!""&2!23D3 2 !!3CS224343"2!324133"4!!33B$B#2##"!!!#BC""""3#D243"4332$!z!!#CB!!#1""42!#"C #3""1" "2#!!!"#" ""25##"#!1!!!3B##B2!"2!#1" !"""221j"2"!1"#!!!""#!#C0"""33!c<222 "2!!!2 3"#""#""""""!"3!!"2!"[E""""!!2"#""!!"!"32!"""2ED"!"!#22""!""!2!!""!"!!!!"""!#""!""!"3""""!"" !"!!!!#!!!"!!! """ !""!2#"!!!!!!"!!!!!"!!"! !!"!"""!""!!"!!!" ! !!! "!!!"?Z)p# ?5O",@rtP#F/O$@"-_E#M/Q" .!0RD% AC%//"!#.q !b/R @ % Q!c/Q@,2 2_POF. F!3% N D!=L05<34<1D ? AS.Q3 QR/q?S`@R"2 1RC"QRA-B߾R.@# =5=0' -! C @B _#?e/#N$1 oC-2 ""# a$,u1" !2.#/O# =_c2d0A+#221A 2C $# R0R #A"N?>$3 "d'! CS#%2S@0D]$?$1/ pCE!@D>"a 05b#>C/3$27&c,Q#0AQ1q 211A b#'0`234 23 11>A1CC@Nbt3 b / 1  s&. C2"%1#52Ba%23  B121Sb"?""/4  S c  b0$c?e0$$!5> !$U ".#&0S!3B3?@Nb/B"T$1!1c! /P D >#32"2B4G /40a." %5-P 5!B."R" E!R#!Q # !!!?"133d 4B13"@0!!2`5A4B2.!0EC"/ /4S34T#D2C/#1A##00%"%RRC3 P0"/DP 62$b!.53 4ݯ1"5/! $DB 4!'Q!!4!>$2"6@2E .$2B." !-3036BRR!">@ 22 !!!.&Q#%03@"!1 ?2# B"A##R S "# 3-"#!h" #RS 3A11 31 !3-00 BA@"B? !"#0/3B P+$B24@ 3.!! A!!/3<"Q!4"!_2! ! !/2  10""0/%C#11 4."2#S BR0 "R#A ?92 1 /QD4A"B !0B2/!1 Q.!R@!/}"1 BB 12"5D  !!50  ! 3#1  $1#@B!1#-"2 ""%" B 2  B"  .0.30! 20"#Q!/.!0 "2? ## /!1?#1/2 A NLT3B354!#T3"5CB3A%ܻ#$DT1ݼ%D443R!4# 2T !O5O3>3-1B @# @ 1%s 0D`4NR.10`,Q$ @4=#"Q715 @C/B.AQ26 /5 OO".r $/RAEdZ05 ?3!. .Aq30D."?2/A%/B%-P"//C/cNb/  ? @T0c?r.  ;uBBA"-`$ O#^R -S#<1,P5 1#.C.4/$" 23! 1 /2  "" 1 "xa3!C!2D153#DA"$3""$#34"#Sܽ14##B4A2$C34#"4" !2C!!44C352 "!3" ""4#?!/ !/"//!/!33C2#""!/24D2$43C13" !#03!3!!4"4#4 "333""!31#!""30"32"2#!4"""B3#!""2ct""#3#4A#" !"!#B!!"322"!!!!2!#3"31""!##32""ݾ2"3"#3""!##3343"2""2##CB"3!"}"!"!"!!"#""!!"31!"""!!"#2"###!""!"" 2232#B}" ""!!!233!"1""!2!"!"""!2""!#"#"""2""!""!"!" 2""""""!""RT"2!!!"""!"!!!"2!!"!!""2!!!2!!2!""!""!""""!"!""!!!!"!! #'!!!!""!"!! !!!! ! !!!"!"!!!!!"!!!!ӑX!?5SC#0Q3 3/PB#QAS/D 1 !#.?R/D  5D 23dPQ! %,!rD 0Q`A4-%//B$1r .??b$/16//A1#@ QA $14.AD/;P BQS$O%#0Bu1!۰D C.3,"_!ܿT!"14/Qp F62B 7 "2A%r3+A6Bbs2c!'=U?$+5 c 22_@13R#.1!a2b' "C>B$CϽ25Q ##32c0:QOb U4r#%b#Qp3. CSG@4#4  #ad3 sT ݰF -M!0u12AUD!5! &0DB#C1"C1 4! %4 6"#C3CA` 1."T!sD0 C#1#P 2/ "3D11'@ b 3$o.1S$ 233c>/4`5B !!!B.DBC2A@# c/ݮ/@s3S%!&@"޽24A2!"D 3bt#,C3 #T @ 5#63.c0C`27/!$ 6d!! 0! "D@3Q.6A3!Qݮ4 c.C-#!#S`S A3BA E0/!a$B D#///"CQ3 rB/b@ "1CC/$R !%0 /033D2#3b6"2?62/C13A 6!0" s/32"0$/514F$b$2$"/!-AC1/!5 rC# 1 Q C0"011?$? D/!""!!. ͟$"325 "@S-20Q313"4 $!#11C!A.CE 0 !2! !32A"15  1A."3222 3`. ##231%!42!1B" #  B4!.!!#" "" 46 -! "!#" !#33?!" 1B/20 C!1"1/! Q!20/.!>@/343!!!# !$O$3C/!2 2 4 00/ !#/-C"!!"C/ ! 4!1! "! #""-30  = "B/". 1!+#0/0!!!  20#"!!ww"24BB#"޽/"ͽCTDC$4#CD4B4111!#D5#C3$͞T4D3R3CR4%.5O%*=`!"#$`p2 N!$ NA3# NAS%>@3# <>B4%,NO2#>p3E+.A3 .`B6 ->0" p@a3&O@N`AC /!4%0AAD,".OP3 =026.OQRC /D-.o24D -=2S&/QA2%=. =/BE ?PBC  02b OsD4&/?."C/PS$*'04E ,? 1//MQ2-/ " M!0A#.4 #!."!! 2q /3!0"// 0  !/\|#"C!#!$B32" #S4S1/"30"# C4C#C"!C/.#1 /!/ !1 /q!!   ! !"-!!/ !n>!B#234""B2""2#B""!"#430#32!$4$2! #!"3#4C3C2DA!#2 #4"43#253#"!"C#3""3n,S#13B"#2#!##1"$3223S#2!32!#35"""2B#!2"22#"3!#""24#""""/"#3"!"!!23B""#42"22!#!23B#2"2"!#3C"#C2"23 !#""C#C""!!"3!# #33!23!"!"""2! "32""FK"22##"!22"!"#!!#""3!#"3 "!"!!"#""!#!""#""###!!!"!#B2"2!l!"""# ""2#2" """2"#2!!"!"2" #"!"#!D0"! !# !!"!!!""1"2!! "1""""!"#"!"2"!""!"!"! """!""2""!"!!"!"!!!!1!!!!""!"!!!"!!"!"!!!!! !"!!!!!!! &B"""!"""!""!Ѣh 2$ <^??A133c2/=@>QA"#"/ -@/P-!BPq3#$$  @=-a.1C$U.0-O O1D"s?0.QQ0"!#Qv^ 2=@=A!AbB , >>@PS 0B+.O!3 N$0+=P->_1"3E  $+@>M//\?a 2R a! += :> QOS/C Q10%tC?n6@AB=>qD `/42.N6$ < '^2Q! Q tR#TTr5/%?/1 a 0#37?:.;Ns$B3   2Q%2S"VQ3 "b-?r!230@&_ a5R43==!! 6 B&01RB17$@DP#!F T0?#.D ?.A 4!A#[dB&O. 0S AV  Rd=DQr!̠/QO1aR @4,705/$ N>p/_`#CRc=g/5&C 6A1C RRP-E1/1PC# ']%"".A_!o! +!/A"-$#"1!Q0A2 o3/3^%40@/4.#.@/%!-$!B# ,$#@AbA."#A%3,`!2A0 0,AS>1t 3".5`11-A"c?3@.S]B2 NC025c1!s &>-.&# .!"$D r" !C1 2A3/D!s#3 31 '0"3A#"CN`CC -2@$/ //-D3_$37/S2-b 2".4q14 SM1@"!2 /541!"".$#-.#15 ?"4#- s2.KP0ޮ! /B4.$ 1"A.3U#$A!  @!/A'.AR5 " P1#!4C!/R#2"BN!-"# !3P /$!b./TA/"Dt3*0$$1 b"!!N1 3  R2+1 ." /,5//3R $ %3!!B "!B  2!F/+"1"1DE/!2+2 2 BS@12"##%#0? O"3!4 ?/B!? !R 2 #-2R S$"3>2"Q2"/#N  2A5/ 5 a 4?" 4q A /3-$ aA!#" !=A3212 >%!C2 1< #=$2"1C0!$"$ S #  C/' ?%0O00/%>m@3 !B%" "/52A3 #Q# R/!C3A$1! /;" #aA3A " 30#1 0P #/# "@!.?=!1DA$/RDp2$,/1$@Q4,>1C7/Q1$ ,? 5 ,@U # NAC&.PA"7 .?"4 /_14 @QCE.O S$ = 35_@C.QRS ?B4+CQC ?a" PAc$/= B  3C'>_1!/0sB6 $.>A.ACG#0 />rR544%_.M`$>13D MN"3>QB3.   1OS" $ !1.$ 0"!  #6""D6??ABP2T40+#A QQ/?$0@"0O1QU r"#A/)0415.!O. $OAN3$ "!,$ .B4,?C?QC2 1Q 0ѿF1R! P&.p3r% a !!CAs?C!0Q.4B>t B!!!s!P%,&2&=`"B7A"3 #=?pBb<#2=!r 21!B0Lq-24!e!4Q1/B@̽'B̿3#>#.$RP@G1B.'4 B =A1A"0 r>VD?s$B2.$O?b1s/p&)/BD9DSR 0&.J/7>QݽP4"#>"P1,33S R B T031$7"/0RtB"  C/56$P."b2/BQ51*"#0R%".T "T@324T=`%1'=1#C @-crABA>O"@@$3!" "s!"r#5h-A/#R1% 5c03v !..1/D >? T/R%A cQ25--" 3z1=!G-B !BNQR0@2? "EO 1"C0.Q0#0& "_#/6,S/c"BA51##0B02/-B2!CD4a%!"/5$"@ %Q r1$c06BA A!>5>!'7/DS.DC.Q?& A3?1s!B/##"2A?O,B !#" u!S!"s_ 02!+T T.S2"# !1/@B$/b R" /1[& d4/? B !3 2Oc1,C"CAR050BD 3E B $y< "RC$/ޯ31"Q#  ! ?>!4!$20.Q1 T"2 SDQ3!r$/!Q&3>  1?QADr#=!"#$=$22?QC""2$!"D#0 1/#42!30SC!- "% 6/$ 2"2!A #C$!!?$R#"=!!B ! B3+/C/#0#2!b#/ !#S  /4A "1A&!/B//""#z#B 20!D0!a Q#.51A# !1#.1 ?2!3OR!!$//$B!1 #=  "0C/ 1/BP R"? ް/4.&p  6 3.133  Q!#!10## """ /1!"( Dd$436##CC3R4.NQ  /3M3+A4q 1&/$4" - 210'Q~?C.a$@ #?2>R-B!$q# AD 1S@R,1A0% P$/">R$.B&A6@6/"-Um"7.aQ P%_"_3/Q/"0@@5>b.R>rRQ$ @">13 3.aE0D0#Q#P$@$0C?3QB1>DOE =B.Cq-1705-"_3^A=4.2$?#N$_3#("_!2 0#?#Q . /1@12!# """#R## 3""C2! "!!D""!52# !"323!"!$S!""%!"12 $4 !"C ## ""3"D4#!" 1 !bk/"/ / " /"! #!#"!2!! """"2"2!!#3"$2"2 !! 3 2#"3! #!2 2""""2"3!"!!3!"3"#2"/l"1!3"!"$""3""""#""43 "!!"""#B#"!!!""""4B##""23"42" !""""!"$"!"#!3#3!!2! ""2""!2!222!! 2""!!"""1"!"! 2"!""!!!!!!!"!!""!"!!!! !!!"!"!!!"!!2!!!"!!!"1!"" #!"!""!!#"!"!#!!!!!!"!"!!!!!!!!".(!!!!!!!! !  !!!!!"!"!"!%!2# _B% O1 .1&`# .1&=3 #M $  @#-Q B4 ,A#=0dN3$ 3.q>QS_P=?P^0-Q1"D,O#-]#0#2OA#SrB./;,?2 S4?V110P2G=%R,A%/$ 43."T R! , &#1#dr# 1&.B bb `"71 #N33/OB TErUB2QC3`$/[ #B CCέ5c #BR$/#!21$ . DQ#d6051C!@93S A3?ݮq$A"4!#!3 !SQ"!@a65 S!"P!3!< S04"# %B2"A!b22S<0!R#S4!% 6#0#> S=R24$-DS""!!?`@D14 SD SQ$B3P3 2 2%"%#4"11%2 %R2" " 13!R-10T35rA ?4!P /R2 4# F"4%!#R "#$ #@EBEA2!2" R,!! C""" C=C !BB"b525$?%!C2 "Q !51"0$ !D!43#D2A!!?D %"ݽ#"$3#$0. ^I Q! # CA=/"4F1""4.C// ! $D!CS/@/?S"#/2B"42C !41?Q0 !"!ް4C# #3!%!" "#"$4A1!51"" #/"AD?4!""#$ "!! 0" @43 " 2!=,3!A /Q1 "#2/0&A#!!@B_B/޿#" 110B// "!!""1"/3B#qz?33/"!B 6!! 1Q1A2#2BxK3"2#BQ>" !-"" ""1 4#0 "!3!#"3!%2C!"!%SbC43BQ2#B43535$"3$2B#2#4AC/? BR!ROC$1S>B/ >$.-_%b$-`% P4?C.B  `# ?#.1/BR 1716 _3 O3 /B.1/ 04@D>R. Bw QS.PC /3-1!QA6 @?B/s-3.0 Q#P4@C0S-1  17P51$OC .0$-T"NR$Q14OB?6.$.3P A$O3 _"/C?2M3-rQ A1 3#.aMR%2O43?3 =a.!!#.@! 32 $ !!/#/!0!? /"> !@/ !!1 " /aK3!"CDE""#4D!3"3"#2"B1"""2!!$B342"2 BA2"2"!2DB!#DC2"!3!"!""#!23"B!$##2-;!$323!2" B2C#D44C!"$2"2ݽ!3"C2###CC#C2#C$#"$423#!33334444!C##1!33C"3##C2#3"""30$4""2!""3242""#!#""1"#"1#""3#1mB2"!!43#4!!2"#"2"2!#3#2B"2"#4"B"B2"#" "#!"334!32#"!3!31"#2"3##""3"!!22"""!"!"2"!"#1!#!"!!#! """"wi#"#!!"!!!""""#""!#"!"1y#"2## "!""!"!""#22!""!#!"""" #!2"#"# ""!"!!""!"2""!""!BV"1"""!"!!!! !!!!"""!":"""2! !""""!!!!"!!!""#"2 !!!! !!!!!"!! "!""" !"!!!!!_N!"!!!!!"!!!!!"!!!!hk1S/B`5/!?4="@#$-abD"@C!$UQ +A '-"5̾3"CB"u"OS%#?3U"0gRA'".B3b"1 #. B#A"` 122$7Q;$+$1? @3W?BD'<0;S@0FA'A13 AѝDB2#vB"?!T/1$BAQD2!.`!c200TB 5 1"/#:@2 540V /Q4"P1 7 !3޾cD/"d0+ .T"%A0#C@C6"#!/Q!-43/ts1&%`!41-"31ݠC #$22"7B%Bb1A "CP90A0S CA/cS5%&!3c 63!S EC$T@d$$B!AC# 'QB72D5UB4j R#cA #QS>2#^U 2B-7r! 1RB.F61#B%ͯ5S 51%12#SzmQ2@Q442>@%B/%3S%$53!-D25R=Rd"%;%#"Q4 T"T ?%O;e#SB D$.CT1""rG"ݯr@ 4/ $%F2O!6 3T/5#"R13B<BBQN# a3r&!CA$DB.U@ E2?E! !52% BS4A"@#"3d! 3 B?1bCA#3-4 4"4@D/4.C1CD 3Bb#3 QR1A%!.C 6C0"/ #x|%0SA#"Q5 4 V@R%4S03RB3"3AE!DC F2!#C!#%"4C@!a0B&"$ / B 42#7"13Q11c.D BQ5/$!6"4Bc3C.A6?!S1ݽ DC  #B1.RS6# "3?&410/\$A!D0'1%2534Q 0#12" %# EA !4.aDR3!۽#$A"C D-E$/2"SCB" ͞3_$?Ͱ4!C1ݽ23!DCRܭ1 CA30#4//D30̭%12#D2 #D3>%Cݾ!#DA-E1/"$CR>20/s#Eb54""FTD"!!"""CE3V4" 5T#%3!2T41$02#-.  ->? .QB%-wAr#,>@q5 .O D5?PR6.P147/ .0! ?O/1-0`"E  0A/Q1%\#]#/?A$+Mp"4/P0# OQ" / Q/ CSN0FNPA5<_A"-o0R . A# 2%=/35@02 /P2#,-_R#?1RD -_0S$ 112&,@2'M@3 - o.,a2/22!152"/!Q /"S"01""" ! 3?!" "A/ $?3!/3"0"0 /!#!""! #12?$""!0 !2A0?2 !"2 !2-/"/"u / 0!2??!1!"/1" !1! 0#" / 1/2!""  #!  9""" 0 "2  H2# $D43"2E#"$2!#44B" ##D#1/ /!!! ?! /rv#"23C3B#2#!"#3C2""B2"" "#"32ݽ""!;DC4""2C"#5433!"!#CCB"!!"42"#""!33k= "3B" "!""#C!"!"$5"#""#"3$C32!  "52#2##"##2!!""#!"225(!#"#""!!!"32#"1353"2"!32" (!""2!!"#"1#1"!""22"!!2"""!B3B" "3""!""""""2!"#!^r"!""!!!!!""!!!#332""!""#""""!"!!!#!!2 !! "222!""!!!"KA!#HBC# <=oOP01A3 .oN_@0!244,<=>/?1A2CC#=N_0X%Q243  ..NO @1BC4E$  ,,N_@P124# ->NOO@AB3S$  +;NN@aA.JR$ >__O?01!C5%+,<.0@aBCD 145 NP1$ -O13& -_A" NQ3&-o@#>@R5.D"!# OAS6-_1"?@R5 O0"=@BD .P1# -OAC6._1#_@C7?12#8v.ORC>_1#N2C'.O@" =0b4/O@2 - SD'?O1/aC6?O?.Ac64??Ar5$1$/ S#S"D24 ݼ D#S#5"31ݽ444B#C"Bܾ#CCC#3## |D#4"#A#!$#4"#3123B2"##23!#"#1"#12#223"4 ""32#23A"4"#343 3#B#43403"C243C2#25#B#C34B2C4314#S!5"3A$343$4#2;#34334"34#D!32#034"#3""B#A"32#23!21"!"2$!""""#2#!2/""2!"2#!""#"2"2!#23"3 "#3!224!""32B#B"#B#323!޾2#B2$#$!##42#322424"33#44"#!#2C"#22!#2$#327[3#2""1##"3!"2!"#""!"""2#"""#!1"18;!"1#"""2""# !#"2"1!#"!2#2#3#2#!"#""3"2NI"322"22#3#2# 2#3!#2"1"#2"2!2"#2!2""+9#"#!#!"!"#!"""1#""!"#"!"!#!""!"""!!"!1"!!""2"!""##!#"""!!"1#1w"#2"" ""#!"""!"#""""""#"""#"!" #!"!""1""""! "!"1"!"!!"!!"!""""!!"!"!""*"!"!!"!"!!"""!""""!"!"!"1""4R"!!!"!!!!"!"!"!!!!!!!!!!"! ! !!!!""!!!!!!!!!!!#4BR3C3B1!3CD3R332" €X!2<7R#^ # 2A27 ?!s;AU'Aذ46 $M"5@GAbQ QO B2#M06 `  BtB"BA%B%3?S03+41@"&<83 5A?BB!=3B4/N2/Bc.P.2/4N!CD3QD O"2@@aC22$,!C!RA6QS ##=>31$P203A s3 R 37.6e!@"Q" c.&1Q# s3C03"3B4.?A/QBA2&#/% #$BCC1/'0#1-1R?!`"&$/#!% %-%2S c QCQ.R.C01 "@""2 5#2 /$#3$#C$"#>g!0b  701 ?4ݟ!-3 62">c_!#RC4b/% C ar%  !@C/ "" a$2b /!"03!$/#/"5d?2S.2 =C@3@C c #/"@ R"041/ 2"@2-.1B4"2 !40$ !% 12##1!! 2.6"!"S 1B+"!#0% O $0D/? A Pa/# /#_0>N>##0A3.5 x/# "" 2! $A 2Q?@"#-0!A10/ " 3?#C/12P?"0 1!  !" 1" .,h#@$! #0!?!!!"# C3/! 30120/"#!A / &!3_ "1!##/!R!   !/@ !?1B0B/0 0#ob!1!4 # .$C/ !!0"0C#/  ?r~2 "!D2!"#A./! !##0>?$N300$g" /? $400!" A2#!/% Q!1!# / ";./1"/!11! >R4.   ".1  /0 >41/#4@ 0 1 ?.!1B0B/""/-$" "." 1" 1.O?"*#1!/B""1!#1/1!# ! BAC 0' 2.2!1 !0 24 A!!4??#4&0"#CB6CA#42TA"3"24R2"D$S!1ܼ "31DS52 2N$ON8#.S0C#=P Bc1 A% E"NB-1B" 4+N" 0,A." /s%AD%15#!{9'1." 4,0$P#O4 B#,2 R!@" OC.3=4<1a%//Rq 0$`61 ?3(G5?# ,% A '-%0!@B,C?p3 A$ ^"?1VA7?P! 50# /4q@%;r 2 QR.ݰ1$q>3!%B .0 1N! !/0 uC1P/B@"= 50A=/.2!!B!1t" '/#!G^3b/ ! QE "B T CCN$.00Q!DT!1!3" !2.U1#`b9` 3.5"/R?ND4tuS=bCQ1 !+3P1!$4B Q!U!#A#R 3 #/1#0 "S-Dc+d0ݿB 5&1@ B"2S2! S>A#"E!ͯA3/2A1!SBD153$A-C@" [1$SPR ##3# B?#S C 1!BE!0#!3242A.D!3P@ $D#Q  R,63"B0 #OQ@>!b "0c!7B3AB12.^$ /#7.21 >2 $PB/%! B A 3$""# !CP5R6!QDsH%3P/%!BD "&! 30 52-A$!252!b?3@@@G "   03C #@#D!-3B/a 0  !/"""%/42>4DB0 S12!!#!#2C"R.B3,4/" A!3O!D!#A30:!!24#F D"&3A OD16 252$  24#.01. "3c0?$B."!!!@?1161/#% !.B$# 4#QA/ 5 "$#11.$" #R#30 1#!/ !AT"1!./2""3A C!/31.B@!"  #?14! A$#"2A""BA {#-/!32.2CE "#11/ "1/!212!B 0R 3 /?21 0!0 5 "o!0! !1!!A 2"B1"B  #4EC2"4!$B"!ݼݼ5D!2"$3G#Q2">C >! >1 -@#-A%=1$ o@>0; .1# ?R5 >AD=@4-o2N"# .A5=B5=1%>1T>QD>q3 -P3,/2`30B 0RY>Q#Oa# =@6 ,A4P!>@"6.?2&NOA!Q#->1=" .a4  $:#-@#%02,0CO$#;_B # 0R N!/Q2M1/Q4`$-04-Q%/`5NR.1.Q4 "2E @-=".B!10" ! !0S !ܽ ""5364"1"""40!34C4C #DB34$51!!!2#1V}/! ! !"  !!/!$ //1"!/!"/;"43C23!$32C4D"1#!#4##S"$""2D#C3#3C!"! #!3""##A"21""C2" "#2##C2R233""C3323A"!5#34#32#13""!"#3B1"!""#"$33~S! #3C1"""1 "2D23B! "#32"#32#""3#2#3"32#!"120""2"""#3 "!#""23"22 "2!22#1"##3#B1"1""""!!""""3!""!3"3!""1"2"2!#!#2"2"3!3""!!"!"!"2""12! 223!""#2!!""1!"#""!3"!!!">*!!!"2!!!1!"!#""!""!"!"""1@3""!"!12!!!!""!""#!!#""!2!!1!#!""2"# !!!""!"!!"!!""!!"""!!# !!!'!!"!!!!!"! !!!"!!!!"!!!"!!!!"!!!pm!!!!"!!!"!! 3ED4D43D!D/B2-1.a$A5?/"OC0c/C&/0 A5A5 PD N2.BQ%Q#AS@R}3.1-R,QQ&0# ?" ?B?C-B0$ 05 03/2-2@ Q%0D >#=!-B.b%Q$ 5AA#@5?6/3."QA'A#OB /B>2]Q.A$0$?4OBQSnA 0#OS0c>1  0$ p4AS .#,A&.q$AC?"B'/C7 A$OC$53b#/ "B!#BB "C#344#"B13B3C!2#C#4343!#CB$B2C12443#C3C!C#D"$4#C!3BC3$333 ݽ33CB#B22!t42CB"B1#0334""3""!4"31"#"# #2#2!#!!#!#2""!9R2"2"1"2!"2"2""2#"#""#!#"#2 "2!22#B ""31#32B 2"3"#323!2"4"#3#3 "332#3"3!3#4""B22!CU324"#3"#!#"4""3!2 22322""!3"3"!2"" #"#"2!" FL"""2#!"!"2!"!1""!""21"""!"w2"2!2"2!"###"2"3#!"21"2"2!2""2"2 2"3"3"# ""3!"2"##!3"2"" "13"2!"/""#1"!" #!#"""!""""!!"""!""!!dw!"!!"!"1!!""!"2""!!2"""""!!2""!"""""!"""1""""""2"""!"!""!"1" "!"""!""!! !!"!!!"!!!!!"!!!!!!!!!""""""!!""!!!"! "!"""!I2""!!"!!!!!!"!!!"!! !!!!!! !!!!!!!!zz!!!!!!!!!! !!2#D%#C3S#32!13CD4BC$##2"#CR442R##1!҂83r1Qr%< /,5CT  ?p24@Q/2/% 2>P2A0'/0#!! a/ED021/6 r 4C@ W' 3 "./`#_> r q Q?b-4=#?.tP>0T #,0 bB!7Q"_  25.3B$ /#o2B A /s`#f?-0'7^6 00R6.3*F6s#.q/G>3%!,!5E '/S=u!+47/@R.# RIA/01/ ?sr/36.uA5A" C44!5R !>GC #4Q! $B#OO5O"!۾"RCR2s'"/#-Qs @ ABܽ4#!/12153WC1Q0!712UZ.A5/B 2u  / 27RR- .a!br.F /"!4 B#sa3.%P #eb!1D3_B$B3u27%"Ra2E 0-t @5""$% !CS -S-_AS  $3D411DnD!/.5B!C1CPEAS> S15PBs/DC BE3E1-P$b?? A  s?C/>1  b".st0%$"S>C!tH#s@3S%3#/!41 " #DR""?&1'2R3rt5/"1c//6! C!;A "5"1C?!TU1"s+'?3  &"'>B"" Q0-rN'"!//`ܞ1R!0R1D.!Ca/! r 3r?$S5 S2#P3c D.DD/Rݮ/3ASD1ݝ0F242 $1As/#CQ!3ޭ $1%1"5142!.&5#0V!BB̾.s2c.SA7233A# C3q!,cA2 ݻ42/&11R3?3DAQ DCO$RCt! Bν W2" 62 3#SB'2 sA#C2 c0`$c!3DA>$/Cܮ$߭!R/2/4-!/!b#%3" 4%2604T30 #EC1"1$B?B2! 1%.D1#a33A. #Q!43 ""11c0 5R2151@޾!# /3c?3$"Q22 54 t# ##jCQ 7" 3 #3B $F!B3BE#"!5"0$2B#0D FE"B ܾ&!R 51 C2#//C##1#A/21"@1A A@&!3?3!>BR/"4"pc"""!"#! "R 4"2 !233.a  "% 4R>O43!11"31 # !/" #P#! 3A!ݿ10%!#$ $1C!/"33#44!5? B!" 24DB˽%!3DBBT""U2#E54/ݮ/T13C 1s" /P b%.>AS5-PA D7OBC.M NBB'0BQ$=`237,,@3=Pa#%<`1#tO15/P -0!$ ?//K2.=D //! !02$ 2 3R! "#///  2/!   " "??"!!"!? />!/!"20 /!!!1" ?-.# !!    2/ .//0! "//" //2 # /". "!"/0!3 ##3B#B21!!54"/ݽ5"#0! 241"23C"!!"!"DB3!#E23B42! 2#D43"/#55#323!"!"!#24D"#"2!2CB#t !    / ""3BD2"3SC4""2342""" "!2"#3C;"!""!""2"!!F  "#23$5##!"2!!"D42!4C43!"""!0"#3#2#3"!" !""4#"ͮ"!!!""""#2""4"3""<&!22B3# "#4#3""33!"223"" 9"!31""!"""!B3#!"1 2rM32C!#3#2!!"23""#" "2!!!"!"!!!!""2"2#3!""!"  "B"1"3!2"""C !""!!!"2!!!!!!!"!"#!!""!"""2"!"""""3"!"!!!"!!aO!"!!""!2""" 1""1="!""!"!!!! !!!"EX12$ -=^O@0013$,>^OO01A45 +-M>?01Q2S3$  ,-^O@0R2#$  ,<=.??@BBD5 ,-N__P1AB##-==>0 A1BS4$  +,OP?112$$% % +,<=0@Bb45$ =@P@AA1 .N>-.23d"vA%###.//001Q3C4 # ,. !@0#- !!  /#/. /0!  . ./ .P2"B"4#C ! 2#33#243#"32#3""#$"C2$"3 C4424"3 $"4""2#ݽ$2D"$"3!#BCB434!43D24332$343$3323$Bc3Bݽ24B3C4333R"C3B!23C#C3R3#3"4#C"3!$"3 "31222!#"3!#23"2#!#23!"3"2 #"31" ""31" #2$""3#!#B4233#12$1"2""33B#2223#C4#233C"C#33#B"B23 2#3##23#"3#3230"#323#3!"3"#24!""3!$"#!#!"# "#!""#!""1""#!"#1""1""1"2!2#1Z=#"22"!"2#3#""3#3##2" #"2"2""#"3!3"2#"3!#2#!"2313"3 #"$#"20!#1""#!!#"#"1"#"""1t!#"2"1!"1"""!!""!1""""!"!"2"!"""#"1""""""!3""""#""/""2"!" !3!2"# 1#!""RH!#"1"!""""!""2""1""1"""!!1"!"!"""2"!"""#2!!"""!"!!!" !@:""!"!!"!!! !!" !"""""!""!!""1"""!"!""!!1"!"!"!!""""!!"""! "!""!!!!!!!"!!"!!!"!!!!"!!!!!!""!!!!!!61%-R4-O16 @04-O1S&._A3O0D& .OA3 .OBD.O03,>1S5?_12-!b5/N0! ?SD'?O0ObD%?? .QS6$ -?1S% >OA$>O2#/ / 0R33C"22# #23A"2"2232!#"2 3"3#2#1""2B"B"#33#312"C"$#42"3A#C3C##C#C44!ݽ#2D"4B$2##D#3C3Cd!// /? /./?"22""2$""2""33!#!# "3!"""2"#1#"2"!3!#"#!"!#1"222"#2"##3!#"3"324"#"$"#B$"2$2#4"B %#C"3331#34"$2313#B#3#22$3"3"2 #24"2""#232323"3#!##"#!"1"!1#12"23"" "!2!"""36!"232""##"#!"#!"2"2""2!3"2 22"#2#!""3""2#1V["#33"22#2"#"2!#"3!#2"!""31"2"""#2#!" *+#2!"1 ""#!!2!"""!"!! ""!!" ""!!"!!"""!"""!""!!""1""!""""" "#"""!!#!"#1[`"2#2""#!"" """12"!1"2""""!2!"!""!#!"!1"1!"""""!!"!!""!!"!"!"!!" !!"!1"!""!""eG!""!!"!!"""!"!"!!"!"!"!1"!!"!!!!""!!!!!"!!-!!!!" !!"!!!!! z!!!!!!!! !!!!!!"2CR44#C#2!0A'I"21$N R" ?!Cs/1G/*"/3ؐ,#q#2'NCb]JDPSA@  1#1#+"0$ %r@B4@%0%!@!/$$%"4=304@#P $?4B+u/#OB 0R#?!u`2 "R"a##3/32d`51ݱ$.$ 2%2A Ca3s AQA/>2.a'>4D#=4b=3,R0Bc/?U-D/13A"D2 #@O1A04 "T!0$  b15 G?@  -C?4CD  a", D"$q@faD.%.252#."1 "Q @Q Q& " B#3Aa"/5?!4. c!/)T0/0A O 3"!E1"/F!!0ARR3b %4BB$> 4A4!!B!"R?0?" b!A"!/?314/!5//32/PS?/C2.CA#ACT4!!B1/#.0040!# B0 1!"#D,B#Dg""02/3?$0!"# .!C?D3"a% .B2&!/2"!#=!$A1 >4!02!C1!@"_?#$0?#3B %#@%/CA 1._"$ 3!034!1/#"@223."/!_>"2!! A1"""_.11 0 !2#2 0 !/=!# @"  /1A"3# !0 ./1!> /!/?-1/!!y!@"!3/0! !!  !1$!2?@!/ ?1!$".2". $0 !2!"B2!" .! 23 # B R!#"? ?  !$1 1#"?$//3!!/ 12 AA/C1 R0 0  1  !1C?2!3!?"/3 5D"ݽ5b1"24262#2!2A%3C#3 #T 13 DDD2 1>4O4/3.Q4AP4 _+@#?$`2=SB2A$,!5 3?3/A >%P.3?C&01  ."@TX>S?R-`O@#/$O Rq#/0 0&>-!/r-&/@3/" B?C$B,2"!7R1'@74;D0!.B$pB C > ?1A,> D 03=C bAp@d>3%+C>be"#>0"O4.#3 ?B !!-47/2%>?$c/?B?ER.R 23#/ . $#3 C $0$"?/! R35 .! #1?0!3?aQ#! / " 3?Q0@.D$ 13/A/1 2124 11?7^C//4!4/. ?"/!"BC 1 =B" %#0!1Q/.#1!52 CP"4 "0C#"##0 2 1#A"C.3./#/!B0.3O 2405 / "!""42#"1#32## y5 ?1C? !00!002/$@" !A21 ! >!#O"0!,"!A" `2C +!" 3 0 $!000""@!3" ">!00!1"2# !4.!!"!"#"Z#?"  "!B!@/"" O A/"N 1/!0""!.  "!/ 1!/!"".-  /"""""3!./!! "G&""."!!B//"!. "!!"2/  " 401## P/!b2! !1  #@ !!! ! $!2?544"T#".3#632E2"!" !D!!" C!DCB!)V#  "" "2#! !/0!!" 22 "B/#A!"!2"#D2!3$BE3"/!!  $2#$053233231"  D1_522^B >1 ?A% .P$ =A$>B# @Q NA /AdH7>3$ -14,04-PC%_1/1& >!5OA =16=2U>A5=`$P2?"O"/A# /BA >A3,/-QC ,@4@#,@R%-QR ?! ?B 0R%-$ Or$ /R4-0+/B.P48.1>"AC6P" ! 0r$0b  /#'?a3 @"/S-0B612 0s%/&12$ =Q3=A3=/2 ".0 ! !../1   !  /!/ 0.  c4"5"4"B!"ܾ#D33 "#"ݽ#B52CC2!3#D1#B!$3#4!#2#B- / /!/!BC3#34"""%2"33C;2"#!"""!33B3423 #"B1"3323#22"!!1"##"33"3#3 ! 2""#1"2#2"B32""!3""!"!V[2#2"#""2"3B!"""#"41##C223232"1"3B!2"21""2#23#""#3!#23!"#"3!""#!"#"###3!2 !#2#2#!"##2"1!!"" ""#2B"2!3 ""2"+"2"2!# ""!"""2!""1"""#"""21"22"## """"#"#"""#"""1""""1"!"!"""#"" !!""3""!2!"!!#""!" 2!!"1"!# "#""" "!!""1"!"!"!!!"!"2"!!! ""!"""!"""1 " #"!!2!"!"2""!#!!"!""!"!!"""!1"!!!!!!!!!!! !^O""!!!"!!!!! "%!!" ! !!!!!!"!!!!!!!!!!!!""!!""!"!"!"!#Xs6QC_3N3>BAO@$ 15 @3># -3>B-AA24@3O3.B-Q a%@4/3.2U9-Q-QQ$ P#?C>3=B-QP 04?c>3-1@P4 P# ?32,A&Q%A6 ?>Fq>c.R-@ / 0# 0R  B! ! QFA5_#.!1-r&A5O.B?b$/R Q1% P5 O2>2=aa#a O&  /"/aB212 @$?4OQ-Q A @3 A> $"C!$! "#23232""#A"3242"33"4243#"4##43C2"23C25"3B#24B2434#$24C5"3B#B4333B32#344"3B~S2#33C"$""2#3#C""3"B#3"2""3"3!"2!"23I7""2"#!#"!2!#!#!2!"!21#"#!!""2#"#1 !22""231"""33232""#3"323"""#B"3232##B"3223"3#B"$"22"3#3132"2##3"#223#3""22#"3!"#"=^2"32"2""!""""!2!"!" "#!"!"!""!#"!z""#"!""#"""""1!"2"2!"2#"#""!"2""2#")4"!##!#"#"""##!#""2""##!#"""""31"""##!"""KK""2!"""""#!2""#""#!""!!#n ""!"" !"!" !""!!""!"!!""!"""""""!!""!1"!!"2""""#"""21""!"!"!"#"!""!""!!!!!"!""ox"" !!!!""!!!"!!!"!!"!!!!!!""!!!"! "!!"!!"!!!"!!! !!!"!"!!!!!"! !!!!!!!!!*"!!!!!!x" D3C4 A4.#/b#$.& a`S3?RB" 2_rQ!A0$.>.R01!"KQ1R .?"2#Aq/1.!J2 !OA4 $/ 0 d3. B<4# n0dOr#R@Bb >!α41/B#W$C/C@E 1/4"pB622 '2s.^/"#$S#OR2T./aD-/ 5 & 7 S# &BE6/U1 72 acT/1e#R#0O !63"!P VAB=6?"1 BAOtR"P! c1. !/ 3r!D7/S#2P# D3O!O:j!3 172/03@>1".'q!3/ %Q5b?E2?1!7qc B?2B"#3r" ,S+2 " 4!A#$ 4R !cb!"'2A R32#AAn ##UC$s/-1RAC"!r#0#N%0rc B!3?6? .#?-V2T  1695?4O " 34sT!b0$#"C 35/4 E!#$s?#2%201r ""ABBd&C!4!VSA"B5!7"@b//$!"/6 .$24-D" R04/s4.sba ''> #3ڽ2c?NDP/2 /c #$ 2 aA,40."P1 2$A4"S$c14 cb/"S," 3 30 .#w1#" T"%A/ #O#1C0%4 E>2Qޜ$13?Es C$641!#4D/R4D0-7A0oQ23U 5_%3A%$2%C03/S0",ݼSC4!2C!B4!/053A /?!L EB414 3 $DA0ݏB#&42R 0ξ4F  $"#&DQ/0Sc$b!A!C!%&1̼436 'P2" B71S# #!'1E1 '+ /21PR C"  d5/1%B2 46A! r/.c?"5S!C%C0 ?CRC04=̽$A2!#!ݾ3Q!7! ܾS#A "$!5!̼/B 3432%5"1#B  "53!3B/7/52!%3Q/S0$!-C"B !$@߿C1""!32/C"#40!C# & 3 "??#51 11a2C.#`1" !#? ""151O 42#2// "0BC#"".""4 ?R#32 C$!2Q!KDSCC!135Sݯ0Nq3^?2%  .@C# @Q!% 1"6?^?2$P@1 >qbS /"  !M,_P"$OA$ _15/=!D .p1C -1O4&-N12#N?A -OBB-A 5 <>A.s3% Aa %:?B'+.A"3/?2# ',a3#$-!  F=  >_ >""2T$ 1!!D!/2-3 "/#0!"1 40.//"  1."//.   "2!!!?!".102 1 !1!A" !!" /!"2/13/#."". = #!?  #2   !////! ? !tC1"/1//"  !/!  /! 0".#!"  /!# ///! !3!/ !!!/ E3""31!"3!""#2$1"!5"22"ݾ"!3D43"#S3R1!2!32 ܽCCR23""/34D3C!"3C#2"#4"wc#1#43"3$!!/ "!23433 "!"3C32333!"""2!2"#2#$3BC3" ! #!"QG#2"2!"""#"#2"!"$#!1"2#!#2""#""#232CB!3BB"2#323" !" !!23B3#"!!!2#2#""""!!  !!"#B!!!"!"!$"3!#!!""3;!!"222 "#" !!2!!! !2"2"!!!!!"""#"{4D433C2"4TDCDCD44343C3C33"!34DDD4432"#553C333!'n3t$//?>=?0BP0@A2#.-ONO@01233;/?0Q2R3#  LNOOA3"3%  --MN_01ibAB45 <^_0P!1C##-.N??@12BD$ ,N_@p1BB"N^?@ !!?[ 34&$,,.@ARR3S=OP@Ba!  ??N-!4TE# .0rb3b"136#%.10010  !1   !!"#DBBD2$34B 1#3"3#B123#B3$232A3"B3"333B#3333"#!"33C"32#4341333 ͮCCS"$2304BC3433!ͮ./ !" .  !/ ! ! ."2B4#C23B"B#3!2#3"4"B23$"3""3#"# #"3!#"" #"4#"#!#3$""2" #"3!#1" #332#3#!#B422"1޽"B42`/3#1#423C#B332#3#2333#3#3##C"C#B 233#4"3!3'""3323 ""2"224"#!#"#!"3!2"#!""#"23!""#!#!#!#!"!"1""!2#1"2!"#22""2#""2!3#B3"2#3322#313223#B"3#2 ""3#"# #!4#2# "2#"#2#"!3!#"21"#!"#!!#!""!!"!"!"!!"1!2"!""?*21"""!"!""1!""2"!!""22!"2#"""GD""2!"" ""3""" !3!#"" ""#"""!"#""2"!!#!"1!"11#!"""""!"""""!!11"!""!"!"!!1!!""""!""!"!!!!!!"! ""!! ""! #!!!!""""!"1"!!"""!!"1""!!"!!""""""!"!!t"!!!"!!""!!!!!*J!!!!!!!!"!!!"!!!"!tC""#TDDC43433"DE4DCC43333!#DDRU'B$ N@!-0QC4,# -AACD ./j/AQCE-0!# AAC5 = 25?PB4O?!4 ?PBc._13.OaS5/?@2 OqKfA3% NOB6 -_@B# =/2S?PA$>1D6?@AB =!4D/?@B -03T%/OA2J+?P34.O2#/@A$M0 $=`AC$O0$% <022%+/OA# /@A4 /AB.02%/>CC$!4 2#213#21#2B#3"#B"4#4"2"C"4#D"!s   !0!   //  ./!! /2#3!"1# #"#12"2 "##222 23!$"#1"#22#B#B"32C!޾#"4!3B4"#"4##B3B#$3#C#423C23B31#3413B3"7L#3$3#322 #3C"3#"!32C"#2"1#3#2"2"#3"B#"".""2#"2"""#1"""""2""# """"#""""2#"2#3#"#!CM21"222"#2223"#3"#23!"#313##22#BB"3##3!32# #"4#2"!"32#""#"A"""" #"2"2!"121#!""2##"2!1!!"1"""!""""" !""!""1ap!#"2""""2""# "!2!#"#!!#""#""""2"""2 ""3!"2!121"#1""2#"""#"!""#!!1"!22"!!"!2"! ""!!!!!"!""""!" "!!"!"nP"""!" !""""!!""2"!!2 """ """"!"""!""""""!!#""!"1!"!1"! "2&!!!"!!!!!"!!!""""^t"!!"""!!"! !"!!!"!""!""!!!!!"!!!!"!!!! !" !!!!!!!!}d#S`DQ0,2/ ? "F 1b5QBݿ0= 0@74r47 @E1G"1S 3" AL31A"0C #@C /4 0cATCb!2B!OC#DAa# !@ r%01CB ?C_B2l rTA/#5  #"Q /4 2 3RD QDB!0-OT$!,D @/R B3>U B3b 6S#!#1 A10S<#aS.3#501AQ!64E#_#OQBE!"_0?-!"!O!3.D`sCC S/"#`#1E"/!"2EG Q4 >T?#3A4 0%"@$C///!#" !50' ArB#CA2" " 4B$$k.Rr#C  R/$ P$A"PQ_4U1A "B 2 .45. " C! O4O22 $0#1B#2"Q4/!1A #" !$ 3bC1 !!2/3 1"R/#2#Q023"2#.>0"R/1C 02 "104@!/C1#C*  !a #4B"""/20! 4#2R /BR -/  !@Nc2$" N3R4 $#+ 30! "31" %B 4?R.4.11  P/2!0$#02$S1!2"! O C/? 10$P.C! /_2%R?R!  ! 3/ 2C@!"!" " )#01#>?4A B /!!##"02 -3 B"  2/A 030!"/!" !/@ 1C "2!R!    !!/-@!2!22C!4. # "N2/# 013 A!" !!2  / . # - /!"/@!!QP0 ">2/0@.!04?#2?B2 O @/,  "   #/"2.oM/O/ ".A $"?"/ !=#=O3! B1 !!!0! # "0 "?Ax`"/  . 0!# !/? /$..@B/ "#/Q #"/.33!/0" 312.!B0 22#23#b!!/32 0#22C$2$D1BE!NC_4?BA-B0# P#1 a<`#,N% 0#?#>#-q04O2 ACr11$P3 P.2.a<4?DB3@N /AkZv-SQ>4.c -a A ?!,_C/B"' @ARA%?U>1"=?%5 A.A@A5-/!2PCQ" !#>B2 ?#1P A"<q$17.B 2#P."O/TS?E-'v7Ot>1,1"0!'p!@.$4!/a3uBB$. /CT?#` @a !!53&e0C % /rA/ / @41.">$2A%!"A 4AB/aQD E2 0$2C =Q7Qd.D  !AC # '`2 %AO"E B#b`A/Q ܭSQ3 3 ?"1F?011"2"14T@2""020@T $""5=CA#Q$ $b04#"$. 0!204150C/%F2c<#22D0Ar/0ABC?_Xc4! b"^"1"0A31!$B!% 25a2!1 4 0&212! "1 63TR ?B"TD"42/"/$Rc2604@0!/B32# b21s$!1$. $>#1" ""54 #eaS-@A=R3"!A?_/&"."S?"!B140!"1!35 $4"# "4!" 0 7eCS1"3A##A$/  4!"T4S%#/3 B!A//A"32A!$S343ݰ#1 $C?1$C"E#'" R/ #0#50!3c!2!!"31B! 0 7!%" 32? ##0 .11DB1Q2/%0"1."!//0E1"S 3""A A / ="3!3" Q b !"2/!Q S3ݾ" """!i B.AA" #$@00"  #?$?#1"3" "1 A"/#-f$A#1"2!21!4" ?!/2! R?!0/Cx!3""2$C #/4!"BC$!01!20>@!1 !"./# 2 "!  2  "/2"!1 !!34""! !!4Q C1("+0C.`#-@4Q1O1?#?E @B ?!03/@S_BN2^Q=14-Q#O3PC0C @C&P2&0R4 >1$.0>`".@"0!-02AC@R%P2:$O0!$=A%-1%?66/Q4`#-`#7.OS .33Or$ =0 50aC/&Q1s#.O" +13_$_"O"3.AO4<1 !B6a!>A$/RNR.CQP @# ?bR-Q0R_B>b.Q /Ba 7K?3>b.B@$ @4 PC?3>2-1 P%@T O4=!,2-R&a#`#"2 R/B1/>w@3P3@$^#.33$-Q @ O$ #.aB1@#_C 02C=P+P% _3?C^M0$ Q51S >"2'/R5A4>" -36 R7/A?/C$0S401!3B#R!" ;@!"3""2#B!1"B"#3#R2#4!34#C"#C#3C3C!22C3#R#4!33C33B3C!4#D"$4#C 3B43#C23!ݽB35"#C"33343"3H,#!334""21#!323221"!#"#2!2"!#"#2#"!"""$"2"!"2!1"212!"22"2""#"2!""3!#2#3 ""21"3#3!""32#3#2!2"32#323!2#333#3!3"C2323!2232"32"!##$"##""!3"32"#!# #2#2"""#"#"#!" """"!"!!!#""!!"!"2"""1!"""""!"2"#!""#!!3#"#"!2"33""#!"2"2!"3""#"# >S#"#"!3!2!#"#1"1# #!3"2"" "#"""!""#""!";0"""1""!"!"1""1"!!!""!!1[<!!"!"!!"1!!!"!"!"""#"!" ~"!#"!!"1"!" !!2""" "!#"""!"""""!0/""!"! !"1! !"!!""!!!!wz!!!!!!!!!!"!!" +!!!!!!!""!!!""!"""!""!"!!!"!!!!! "!! !!!!!!!!!!!!!!!!!!!!!!!! "$%#6"3B34"#CD45#3C$"]d?! ",<P4"7$"4/b?6B513ccA3RB"3a!"1"R?A2b1ap3qF0,@,@QDB 0!!">."PS&C03_A!?1=$?c/#"b$84R= #!D@#20a%0>@aοE?7 A?!e/.E C B0-SSJ,s #"Db!aABA A@1#sS $$$ /#=%>F 3R#3 B60ASs2 B3!O3344B51b*3D."  ,$  A&r!"!0%SD, 11&T! .? =6AC -Ru!4bt5/# 3CeB!!$.!&& Q#D03!_J 0."S$r?,/ ##!߾S1-3 CS6! S$>7s!r.$`0q1PA4  >B@!3 "S 2U&0@$?*50CA#S t2/71!QS %/1 !tmG>3 #" !/7!0$$33OA#b,=40t"0"2+ S"2.c ` !A/D=2! 6CPE"D  !!Q! $F.O'2v 1"t/0 BT?30EA25B $16@D?S"##d0"yq #DP!7-B,.4B%TB-U!!7/w4,2п5 s".& # 1,d@2A c1 o#"b3bA C2`! 0/17@4> 3"a#AA1/5& Q2 3A '^,%@/ ./"-c0rAB ]!s@1>E/16S11t/ S0d?A1e-(41TdB!" 2" S# C1&!2%@./ B%OC>//C!"D>4/##1?;vs-E%O"0!507/C6A 2"# !$E.D" S 2C".A12/&!&?2Rbc?c5/ C#SACDC=5e 3 2  ξܾR5 0 -r7X14""&""12$%3S1Q1C#>A/C2B73.03B2""!L6!507 5.35! B!##?312"CR"'242EC s2"1D̰61  "b30B" "%31#aD4 / 2%3 D #&1#-B.O23$4@9d "3 Q S  1 3T!R51F"#Q! /-D$2$/#0Q&~G!#  T#"!`B!$00$D@&1B2"$"!!5B-2# C?1A?S=" Q %.3!$1# / B14Da 2T 302A"#A341B"$?D!!A"3D/A!"#10##01C"/#@(7# !$ 2c5.PQ2$ .O C ZM=_!#,N@"5._?"N`BD -?0" >^1c.OAS4 ..AA5!QA# !47N3 ,-23$=]A"5N0R%*./"4.O1C% >`2NQ#% @02>`!% >@ S - @A# ? A ,OQ!5-1"%!2  /?"4%.>@CA11/3A#/ " D/4/!"21 !!0""%/@!d14A"// /# "5 "!!#/!  02"0 .-!!/ /0 m"#"3CR!"A"!34!332"! !32542B4C #33"32431   ?! //!/!23"3 "#!"53D3#2"3"3C4C!""!""!#33!!!""" 2!"4"53!#B3 "343""3D33"B! C42!!""322""!޽!"!22B!"#B#4"CCD""!##/""#BC3!""2!"!"#"1#C232"2"22#2"2"#!cS!!! "#!""!!!232"!"!#""!"!#""""!#"BB#"3!!#42!2 #" "#"2 42#32" ""!!!"331""!"!""3!#"#!"""#1"!!!!"!#"2"""ZM2"2!!!!!""!"2!#1""""""!!! 72""1"322"!!"""!"! !EG!! ""!!!"#"" !"!"""""!"!"""""!"!!!""!!"!2"323!! "!""!"!nTA,]N_P!BC6 ;??1A2DY -MO@AAB24 =MNO00!1C3$ ,,=>?@PQ3DD%  +-->oO@111B$:<.>OAARC5 .NO@00A"4D% ---?/ ABb4$ =_`P@21! +8 -/O@N/ !"#U$%+,0ArCDD"=`QAa1 00>>2cS!S15."//! ?>/   .?>.#"C"4#4!"3!32$!"3133$!131"231#231#2"1"2311"!24"#2#!242"B"13CC"B2AC4C"R"2ݽ34333"2C$4"D"343R#C3C4$42C431##R"42C!#"423B4!#"314#4!#4"$24""42#33A2#"#2#1"12"12#"2#"22A322#2"2""###2""32B"3!24"C3"#C#C132333C#323#24"#22 #2C"33$ 33B#33124"3B$"2#2#23"޾"####2""2"#11#2"2"31#23"2""22"""2"!2""2!"!#2"32"""##!#!##!3!"""##2"#""!2$!#""!]"2322#!2#2#3"1"22"#""32#2"#2"3"2"##3"2.5"2#"#"2""#"#"!#"2"!#!"##"" ""!1I( "!!! !"!!""!2""!""11" !2!""!"2""!2"2"!""2!2"""#""""2""!#""!2!#!1 '5!""!"1#""!""" #""!!" !"! ""!!"!!"!!"!!!!!"!!"!"""!""""!""!!""!"!""!" !!2 "!"!#""!!"! !"!!"!!"!"!!!!!!!!!!!!!"""!""""!!!z""!!!!!!! !! !!!!FZ1#DTCD443433!X#.`RD'.?1"?0bD$=O@ABS%+ @AR3&%/1.?02#>P3&.0!# .`B4 ,>1# =PAC& .0"& /PA%-?!4/PB4> 58 ._1C#= 2D?@3% ./"5OPBD ->03 .?PR#@3% @1?3   ?$44C#S24ݮ#C4D"42304BCB#3#23CCB#3##ݽC3C!4"#/$#322""232"2!2#"B"2#!#"#"##21#2"3#3"#3"$"C1P#"4"#342!23B#43C 234#434"3#CB$B$23CC#C34C$ "D"B1C34243#1$#5"#B22ݾ343"32# 334""2#!#2323"\2#3#!#"23""!"#"2"2""222"!"2""2#1O4#23"3 "#2"#24!""32#232"#B"B#B##B#323!#2C"$##22@#24"#3223#C3"2 3#3"3"#!##31#2"3"3#"".2"3""""#!"""""22""2"""!""!2""!"22""  2"2!""#""#"222"222#23"##"1""3""2#1##23"2#"3#2"!#"3!##12#22!""##"!#"#!1"  #"""""2"" ""!"!!"""""""!" z"!""!""22!""!#""""#!!"22""""#""""#!"""!""12""""!""""#!"!"""!!"}""""""!!!""" !!!"qW!!!"!!"!" " !"!"!"!!"" #"!!!!"""!""""!!"!!"!"!"!"!">-!!"!!!!!!" "!!!<T! ! !!""!!""2#D%$#4$! #CCS4$232 /#$C53BC"B"$45$#B$!AZ!PA A#_15LF#!?!$r>0G/ 0$"r2Q/CbB%A%b2 6"1 ܭuN.l`$A%/!"#+2 !#>" 6/3@% D2% 4 b# D#OG.a3 $Ab 4 C3-W24?B$c%0N D"C#"51_PC1"t !"0 S=42ͰD-B b 3 $&#b =,b"Bc/0d&12A62 3A/B21C ۰C A12 .32E G?100@ 3 >b20 A Q" c ROqE$DDB =B2"RPQ1 #$02Br#$2q%00B/D//U0B 13 5@".F!ABa D3.S% #DP" s.#> 4/PC!"Pa? /r  #J#?$0%  "%/3//2RNC5?$2C-cS 0 %#nRB !BA/1$?B 0-%"%! 23@3 !!2"41 !D$/b.Ba% /$# &Q#0 @C@/o SR2 #!@@R "0;!!-/!>."$1&C_!>%/ 4..0".0!B,#!1! #B/#03-?"4/ Q !1!##D  !Q 1O0" /kC " !!0 21!,@ !@!  0" / 02 B .3#2"?.1./2?04 ?0"O/"/ B/.O.!."10 B" B/ @!  00 %-!#/$> V10BP#!0?A#!#/ b/ @1O ! !n! #"!!#?/$3!!B0"1 #2BC~c/#%/11! ! ""2""-100/R" "k> 0 % "#BAO0- "/ "!#! 4/2/#>"!"!-#2.20? "0 21 !0# 100"/0B"!B@/4N/!  " ?/ 2C? . 3/#!/1/"3  !/ 0Aie 3#BC!DC4!S!XBCOD>C.3AO@!2 02 0% -C/A@ _F'Q#@4="/QQ4 A4?#-!10& @ P3 /TCr/B S !S//R ?S$$/8hir/1 @?# CN2 ?4% 0% # 0% 0R -B-#>!3>A7/0%OS?4/BB=!>EP2 81/3 ! b.P>$ Ab 0O" tC@$ r B4@2d"3!d@?S $ 7GnJ26/. r P A.7B.N'12/ @ O$#!2$0/B#A%S<0#4#?$C "-.C$ 2!B 0. $#S.A#>""DO$!>! 1D ?#C?ND$/@!/1 0/ E11 0>#-2#S///R/ 2?"43!"?a4Q7" 112 _C00#$/q !R"$( 0! %!_C" -!/BC 4 2BD #.A313"S/S"|.!1!2?$4 2?1#R 3#/2!/!-1"1"2.CAQ% !3!#C P3/.C1""? R "!  C!5o2!N"R?10/P!2#2!BD! 2## ?@"@=2 4 /#"3?1A33" #4! 51o"?2!O%!! $/. 1 ! $/ $03/2  /"//.1!!2"$" "/#" "023" K!03. #@/! " 2/!."0@1 A"! 2  #2 !"#  "1 2! /2>" 1 D /!" "!//" !@ "3#A#! !/ 0##12 /02/!0n "!  !O!22 #1"..!"!" 1" D12D1%3T2"C!4R!E!2$3!ݭT3/1B2!C"!$3!||"!   !" @ !A"!!C T51c3 """152!$3 B#c3"  &3CB!&2"23?R >1 NA%>p#-A#2 PA&  A$@ .b3 -Q4<03OS'OB O2% /a$ .QA - #.15 =q#` ?R-?">!?3'@a# .A$ -1D.A4-@@Ab&@B*` @1$0a >! Q%>b$>Q".@045AC6 ." ?b%?1PQ !$ .r%?a# ',V/@ /a%?a2?"@ -PC!A?1 @Q%?!# AE!@!  C12=1-Q a3P@#~i@"+P39@7  4M"-3=b%A5O".BC=Q-A>=bOD$0q-1 . 0T2bO4!>`C?C/"!,Q%a$0E."-"-R$.R&P 0 /#?R?R1 0?D 0c/C=!, ;GQ%Q5A5=!-"-R&B6A3/"3=B&/A&.P @ 30S/R .A00 @D0b.2#BO3>#3,Q @$03 2^3# @@%03 !!.!" "#C3S433B C3C24B#3#33R"3B#2ݽ4#D"B"3"4#C""3hH#޽324!"323"$!"#!"2"31!#"!#!21##!"""  !  /. #"B2#B32 "#C"323323C"33#32332$##23#4"#3"2"##4""3!2##4!"2"" 323"2!22"3!""!"""#1#" m"#""!"!""1"!#!!""#!"1!!"1!""""!""!"22""2"2"2"#!#2#"1"3""3"223""2"2"#3!###,@#"3!#""22"3!#"""2"21"#"""#""!"2!2!!21,"""!"!! !#!""!"!"" ""!"!"a=!"!!!"!!""!"""!""#""""2"""!#!"!2"2!"""! "#!2"#2!2""""!""",,"#!""!""!"!"!! !!"!"!!!"!"{~!"!!!!!"!!!!"!!"!!"!!"!"""" !"!" "!!!"!"!" """!"!!! "!!!!! !!! !!!!!!!!!!!!! !!,!!!! !!!""x"?DCC BB30aC7@aSD1D/S B#$-"a2%F _.J$ C3"!", a5OAr DCbC/#Q$$ - B37..1S!1!4/1:U3.2C 71B R423'.3`a Da CE1D. ?03>0#aC11d-r#Ty"!" T.?PB/@AT1R#@ Q>%3q5 $0Q@ 3"0 /3r6 "qC &( CCe""ݻ>sF>P!$0!"R3M""5/40RS 2!  #?""% >%"F$- p$@/D3"=B#"4/3/0#A/EPoh !31/ ? 1 @ 4."B "/w!!/#// 0-0" "!1  ""/!! JO$ 0/ "/!/O .?" 2! I" / /!/  ! /f   !!//!/ @0# 1 / !! $  /@1   " /!/.#!#?   !! |!1 !   // ! !!/%)    0 !#2""1#B4323B!!"""#44#! "0// 1#/!!Mc42431"##32333333"! !33$C44C4""!!""#43CDC4C34432""""$2##"""2"!"""2!!!!""СH1:N@B^@# >0A ?B46oAR5 .O`2 =02$.o23 +?025N@2# >02#=@16 ,?F 0 -`AR% N0"% N`A6N`1S%/`BD$.O "N? - 2E-?P2EKMARC ,.!_@3$ ,#-?aC5 =.!$ ASC-> 56%1BbB4??12.0aR3 N?_P@01"$5-.-=>>01ARD$   =>PQAQ1# ./?0O. "$E4& ]  <-oO?@1#2#&#   -MM?@0C2D5  ,<__Q!P21# $/ 0/!.! .?//   / \/0 .?"   "   /!. ./>  33S"CB5;224"42C 2323B4""32#24!232#B#A232$232"#""3"1!#!""22#2""12#B2"2B#B"323#23""33B"3##4"C"$!333C24"3 3432424#33"4"30##4##331"24"3B#2"323B32"#1#3#1"#""2#A"#"""#"1["#""2"2#23"##2#!2"""!"!"2!3#"2"3!2"##23!22"#"3!#"" #231#2"!#"31#2"!"232#2#!2$"#23i2#""2#""#2"2#""2"##2""2"#"2"""#2!"!2!!2#"""!"!#""#"1" "#" "!"!! ?;""!!"#"""#1" "#""!"2"2#12"!2""2#2""!#2#""!"1!#"!""!#!#!2"!#!#""" #""! !!"!"!"!!"!"!""!"!!!""!!""!"""""!"2"!""#"!"!#"!"!!"!"! "!"!"!""!!"o!""!" !!!!!!!!!!"!,!!""""""!!!"!!!!!!" t4""#DTD443433"$T5CC433324TDCC4342"4TDCCC342"5DDD43C334j4_1D&.PQ3 NNAS6>P0$ /AQS&-?  >QBC6-=$1QB4 "&0A2C hR1C  -O1" .@QR%=?!$>`3E -/!3 /@a#//3% .`1B$ -/"DOPB4 ==-/"%?`2S .04$ .OA3$ -/25O@R4 -.13/@a4 ,- 3 /PaB,/ %>p2B,@!C`P$$+034?01" 0!!!/00!3-!!/0!!//   / ! 333"3""3"4!2!3#2#"22#2223!#!3!#2#2!32"3#,!"#3"334""2323343"4##C43!3#C25"313#CB$342#5#C3B3C4"C33!33C24##!#43#3"#33B"3"#$"C!#"!#"3""2!"2#2#" ""3""""!212"2""23!3""#!##"2"#23#2 "#2"$"3!"#3"#B$!""3BB#2#$2?!323!3#4!323!#232#3#"3#B"3"" 3#3""2!##3""""132#2#"#"2!""""#!"!"!""1"!" "!2"""!"!""""""!""2 !"#!""2!!#"2"2!##2##""3!22#!""31"2#"#2"2"2""3!#1"!#!3"""!"#1""!"x"2"" "!#!!!!1""2!"""!""!"!!"!!"!"!!"!!" "!"!!#!!"""""!""" !""!""""&%!"2""""2!""" "##"!""1"!1!"2"!""2"!!!""!!!!""!!!!" "! !"!!!!!"uz!"!!""!!!!!" !!"!""!"!!""!"!!"!!" "!!!"""!!"!""!!"!"!!!!"!!"!!!!!"!! !!!!"!!"!!"!""!245$$#4#3! #44CCBC"A"#4C5344#10811,' CF?!!" 1@3F 01t9?G]5 c*?!BT5#$A2R '+qs-'!Q!31R/#$>"A3 0b.d$Q4 ! 1.!3oBC3=EaS%A!5 2t23!c3$B4.3=A T"s" cA!R 21A%TE0 3!c0C2$.24/"CO#$.R%2T@S$13A$?5 05.s'4D/A102 #OC$>BFAR@a!A@R3O2$/b%.45/aC.RbQR/@D2$15P3+1R #@Q$1-# 3 @4 4 R `$1B/! 3/!$!A#@ 31$0#!# 12# .#!I{3B$B!5""1"!""!"" "B"#B"!2""2!!xM"23"#""#"!!!"#2!#2#"#"!"!!!6d2"##"""2!"!""2"2"#2"!""#""#!"!!"!!""3""#""!!!"(?"""2!!!!!!"!!"""""""""!!!!!!#"!#!"!!"!"!2""""""ms"""!"!!"""!!!"!"#""! """!!!"!"";&!!"!"! "!!"h"!"!!!!"!!!!"!!!!z^!!!!!!!!!!!!(E!!!!!!!!!!!!! !!!!!!!!OG!!!!!!!!!bk!!!!8A-4O%N#?2Q.@0$ 1# 0$ O6.C.B-@PQ41$O3/3.QQ%j03>3=BA1@ ?4OC>B.2P@4 P3/C.12A6A4 O"."Q-B%Q5`% ?N3>S=R,10# P5 0r/B,! "Q6Q%O3/!2b6ADP#>.3.b,/#>R."2@6PC04.2A-R$q%@5 ?2O! ABQ$ 0@$ ?R ?BQ$Q#-03-AB-@3 N3 OC&OR#=1 .A4 ?b4.A0.aD@C0 PC0>@B&>!"% 0b4/@-qC/a" > O37?Ab="1b%@1.RE3.P# ,`4LQD-B&1!PBDMW-2a$-a&0$ />2/b .R,0 / ?$0R  C,! 1a5Q5?#.!B-q5.Q$_#N#./3?r/R  ?D C?Q0 & Qc@5O!-Rr5Q5>-/3/r$.Q4 /0C$@2# $"B"30 "!32"#24"""32"3342#"$"42CB"423434#"24B#5"$2#344"433B$#4B"CB33;B3C24232#344"33"2B3C"#2"2#33B""2"22#3!#"""3"21"!"""3""" 2!3!#2 "#!""#!"3!"#!2"!#2!22#2"#23"32""#2"3232""#3"33#2"$2"3232"3#B"3232"233"3221#2#B"321##3""2""2#3!#"""-#"3"!"2"#""22!"""!2!""!#!"!2""1#"!!!"""!2!!"2#!#!!#""2"1""2lA"#"""2!#2"1""2"#"#"2"3#2"""#2#""""3#""!""3""""2"!"2#""""#""DF"!"!!"#"! !!"!!!"""!"""!"!s{1"!""!"!!"""!!"""!2""!1""!"!"!"""!!""""!"""2"""!"""!!""!"!"""!"!!""!" !"! !!!!!!!!!!!!!!"!!"!!!!!""" !"!!"!!7*!""!!" !"! !!!!!|!!!!!!!!X" %R4#0ai?P#. #-Pa D'`A4!.! CB?q54 A2  ;20Q3 4 ATGy?a 3,C/"CB 6% Q%6 "3$1Q%$.!#% -QR%1q%/1# C>!4O#4?A4/1 b$$?0$$@q &PP 04?3B.AA>D0%B 4AD,C"3%/"# /r#4B-%/OPA"DBQ0RQ $ 3b &.B 5#3^R#."B= #MT.522m,!s .!/$?6/RR& ?Q3/%!2"+7/2 &.M1/B32]$#2.0 =!A$0!- P!O/3r! @ "0 kf >  #04!"1 /0@28 4! @3 0" /! .13 O2"1#)2 - 0!2/! ?# 1//.@"  ! // !!1 !1P!/ ? ?1/ V!1?  ? !  x/ / /!  ?.g/0/"!  ?20/"..!//./ / // /!/!/ //M//YS31#!ݽ"243B22"! 2333D#233332"!!!!/ /T\!"""23"33C423"""#BCCDB43CB!ͽݾ"!"2#CCCS44#4222!###1"""2"1!"!!!"!!""!!uh!#"##"!!!#Q4 M?1& @0# @A$$->QBD'/AQ3$.P$b# -O@3% MP1# ._AB ,O@# ,>@4% -_P"=PRD/P04 O!4$ .OQC4,>?PC5 ?@" /15 ,>-OQS6/@Q5 -oQC6N/  =PQC%.N._QC%./O1"OQb4.>?OqS5$>> .1S'>N .aSD%/ C3- 3$? /0 !.> /! !X!.///>////%kͽ31"3"2232!2!#D3D"423133424B3C ""3!2"3!!//"/. //!//4#C"$"# ##423C#2;""!#""#CCCA42#1!#!2#2T=44524444"  32B"#!""#!"!!1"!"C44"4231#"4"#3#21"!"333"#!"#!2$"#B5#$3BC2"  !C3C#32# 6K!"!"!!!!3#2"2"" ##31#2"1""33C"32#!"!"2"1#243"B43"!3#3"#"!#!!" 3#3"323"!2"!"!!"#"!2#!#1#""3BB3!"!3#B##"2 " ""2!2!""!2" Fl"!!#2"#"!"""!""32#2#2 "2#2""""""wY!!!2"32"#"! ! !!""""!"""""#""2"2!2#2"2"2! ! !""# "!"!""""!!"""!!!""#!""""MV""2"""!"!""2"""!""" !!!"""!""!""""#""""!!!)!!"1!!"!" !!!!!!*!!!!"""! ! !"!!"!?*D3432"!"{T%/ 0@@PABDC55-./ A13S -/ ,? ABR5$$  ,>_`Q>BB ,-?O@`? 25&,/@RRCS# <_QAa1!! ?/0O.!MAa2R$ N>pA`1C# ->.>/-?/3"!!.f""4"$3$1/33B#B42A3A3#2232"""1B#B3!2#34A#3#2A R3C"C#2C$CC2C4C2C32 C4C2D"4C4C3CBC!ͽ44C3DL3Aͮ#D"5"4!ܾ"D#3R#2#243435!242$4$2!"$""B$2#2"3#2""32#2#"2"3"23#B"$"3##3"2"2#"3!2""3#3!3""334!32# 34324"#0#34"32# 33423B#1ݽ#342#B31)^B3B333B25"#B3B##BB23"#B32B2#2##33"#332B{ "22"2 "!32"##2!""2"3!""" #"B""1# #"#1"" #"#""1" "3""" 232#2"1"23223""232"3""2333#22#B322"#3"#22#"3"3##""2!#2#""#!#"2 ^v"!3""#!"#!#"# "!"""" "!" ""1!"!1#!"!"!Jl2"2#!2"22!""""""1#""!""#2!2""2"3#""*'#2#""""2"""2 "2!#"" #!"12!!#!"2"!!"E2"!# !"1!"!!""" "1"!!"!"!"=@"""!""!"2"!""""!"!"!#"!""!""""!"!" !2!"!""!" !"""!!"!!"!!"!""!"!""""!!"""!"!!!"!!"!"!!"!!!! "!! !*!! !!!!!!!"!!!!!!!!tz#EDD443333"3TDDC43433"3TDDCC3C332#DTCDC43C332h#OAD&-@A3??BS6>`}J>A25 NPBNP3%^P2" M_A4% ,O1!#NPB5 =@!# >p16 -?13 .OAR5_,=?!#?QQ4-? $ ?pQ3 ,>0# .@AR$ =!$OPB4-/!%OPBD ,.!7C .?PB%@C !+P4$2R5#=272E߰ se"B1"3@C7OB7qR !B/ !>c53E!CCC?4-q$B5WA.t373 S1$3 - Au $A/!b$2b%1 ",0 #F17C2$E"3$ݐ6$F 5S@4R S1aB-AC$0D2",0#_C>ݲD$>bTQ% 3">3#OR&.RE#S-QB@D04-$ 44/a4/R4.ADA51R."B-A%AD @D#OA!2"O$!C $a #>Q 4."N</0 423/B3-A%A3"03#!1#02# /2/"" "" !0!!WT3#"4#!"C""!!1"#2""22#3!!!!!!"2"#3"#""""!"""##33"""!!!!!""!2""31!""! !"""2""2#!""!#2""""""!!!!!"2""2!""!!!"""!""!#!"!!"""#"""!""!"!#!""!!!"!!"!""#"! !"!""!""!!!!!!""!!!"!"!!5!!""!!"!"!"!!!!""5G""!!"!!!!"!!!!!!!!!"!.#!!!" "!!Uc!!!!!!!!!"!!!!!!!!!!!!  !!!!!!!!!!~p##45#CCC44$#$#2!!"C53S44B35"3$""!"#%#53CCBBB$"! O pQ33 ;h?R_B=1* !#q2>Q4,?E/2<1<2B$,B#+1#  BBP ! "OS B/3?F3?4/S=AA$@5 O3>B-B-Q$ a414 >"=!-B.b%a#@##.3/C/QP#340$ Oc/R."!a$q5AS.,2&R516O!!-R/B7.@ O DOr?b-^=!-B<26,A p2 ?>C>BA$1 @`03> 11B@"!/  1"B!"3##"B#B"#2#" #344"4333!2"C!#3#3!2"B"2' #B3C3$3#3!3"4##4#4"#"#"2"#!4"4""3"#!334 "B24"#!$"""2#"#"#2"#"!#3$3"4##2""#3"#3#AF#"##"1""##33"#2"2##C"#3#2 !"2!"2""#2!##"3231#B"3!""3"#"3 ""#!""" 2232#2"2!#"#2"3"4"!#"2!2!2"21""""!#2#B22#1"!#"!"""1""22"!Df"2#2"#2"1""2""2#""2""""###""!"#21##2 5D!""!"""1"#"""##""#" "!#"""2 !!2!"##3"""""#2#!2!"#!"!" """2!"!#2f""!!"1!!"!!"""! """1"!""!""!"""""""!"2!"""!!"!!!"""!*%"# """!""""!""""!""""""!"!"!!"!!"!"!!!"""!!!!"!"!!!"""!!!"!!"!!! !"!!"!"" """"!"!!!"!"! !!"! !!"!"!!!!!!!!!!!!!!!!!!"!!"!!!!&!!!!!!! !!!!"!"3D453442B1!2CCRC$$"3#""ob!RQ?A B2OBC^A$.0 B$= CC M1<A$>b4 .A%-03-`3$-_# >1#>B6 >Q$>0-1D >a3@3P"PC&?B /1#;>a$ >A$- 3QC.q3,_#O30RO2 N1 OR%?"$ .1 >B6 Na#- "-@4'c-PR O" O2@R&>0 !% ?r5 ?Q?-aE/PC @B7/@C'-!"$ Ab4# =1#.R%2#=""?#// .!   4$5"#C43"34B2D"C2##433C43!2#C"$4#Q2$2"334"ak""32"324 "2"#2$"1"2#2#!2"3!2"32"3#""#"$"2!#3"31#2!"B#B3"#!$#4"##"#3342#2#"33C"4"#1#B3B#323 ;33414##B3$3"4"4!#"42"B23!#3"33$"1#33231"!3""#"B ""2""2"2!#"#"# "!2""223""!!#1"!#2!3!"!"#2"1"!#"#22"F# 2#3!"21##2"#2!"2$""3!2223"##"22#3#2#"E]2$""2"3""222"2!###"21"""!2"2 "!2!"""2|!"""!"!!"#""!"""""!" !# 1"jz"2"!!""1"!"""#!""""2!"!"!"#""" "!#2"2"""2!"""!!"#"""" !"#!""""2!"""!!"2" !!"!!""!""!""!""!"!!"!"" ""!!"!!"!"!""!!"!2!! !""""!!"!"""""""" !!"!"!!!1!!!"!"!"!"!!!!!!"!!!!!"!!!!!!z{ !!!!!! "!! !!!!"! !!!!\7XACO$N$>CA_ @6 14@$O5 ".A, Q%B$ />2-A>b$`# >?b.C?#.#.2@A$ P4 O3<#aA4 0@"-AR#q-24A a*!3.O42B-23.%?S  1 ݽ -!.!#14$!21# g /3B2"-- - "/# 4/!O ?2/? >2 0! .//11>!!/ 1!#4"$/2!3A#32#c"F"!B2R"//B!1BR24C2$3!33"2!2!/"R!"  0 #1  20!!?!  ? 1BO /"22! / ./? !?3/ / f!1 !  /! ? !2?F    .1  "1. /"   .//B  ////!/!!? !3/  /!1!    // //// /.// //0/  / .! / //sq!/ /   3$#43CS#5#$$2333"3333C5B$34444#B""!"!>AC 5.12$0QS60@3>qD -3. ! -$?B#?@2 @ 2#&?BB S.?AR3O!p3-4!#"/2X3sBq!# S%B5B.#?p/?Qc6 ?QD!Bb-5/0R%>Q" 1" 3o]24%/RDt"!AD272C$>&3RS@A04P3 /"+ /".S5>@R%O`'P`51$ "SQ2,!2""Q$% ܮ C`C!! BR45! !q#/!Bb#0R #Q6 3@ B!$!B"4a/Qb?A / P#0"1?  >0! 5 0"?M1"/"!!00 .-!?"B  !""! !!.#? 0 /1?! *1/  !/2"!/!. 0  !   ! / 2?  !/ /." Q"."!/! /  zM  A? /!2/ .!r 0/ /  A ! <+#/! 1/!"!\. ? !/.0/.010   /. 1 r  J!"!// 23C3#3"!! !"#C3CC3333#3"! !" / /H>/ /23"23"!!""#""!"""""!"""#"!""##xQQR4 <_13/PQ3."EO1#$=/"3.@QR3=?"$ ?_14,. 2 -O`35<1$.?Ab# -1D/0a4B%o 24 =@1&/_AD _!3$,_P3$/0 ,/A#5-?1" ??1".}!"1"!2""4"3331ݼ!#!"2!"#23#2 43S"433 43S"4B3 !/0/!/!Qq""32#B#A2$2322 4#S#424ͽ#"31#232"#!"##3B431"#D4CB524B"""!#!2!"#3!2"#!"!"1#"13"#""33C"#""!32$24B###1"!!ͽ"34#434""C4D#52CB!!"!!!"#"!"ݽ##2$"#331#2""2$2"3"2""#!#2#1'V"#"!23B2C24!CCD3D44322"#"212!!##""o"!#!!#!"!2#2!2!"ݽ"!3!##3"#"#!""""33#4"4!C$43CC42"!!!!"""!2#"3!"2#1"1"1""2"#""" !"!!""33323!344#43C3 "2#!"1"!u!""!!!""""!!!!!!"!"!2"""!"#!" "2A"3"33#4333!"""!!!"!"##"#!!"#!"""!!"!""!!!" "#2"2"2#3#3#3"""""!!!""!"!!"!!"""!<9"!" !"!!"!!2"2"#""!!"!!""" ""!"! !!!!"!""!"""""#""!!!]n"!!! !!"!"!!!!"!  !1!"!"""###"! !! ^UAMNP@1245$-NrO@A36#  ;=O?AQB34# ,==>_ @!1B3%$ ,--^OPA2R4D%  -/!BSD&  =>PQAQ>D!!! . ??N//!BDT%OQRCS5>@@QQ /&/  .-3s"x B@!-/ //   . &##C#434!#3!33$ ""3#2# 324!#2#1##C"#2#!#B$2#2"!$#4"#B0$4$23221#C52B#2#CD34342C4C#S"34$4#C$3/ /!//  0 !#$""32#24!131#B#2"#""#12#"""12$""2"`$"#2"23#B323$2"2#"4#C3"223C"4"#4#C2C33! 33C#4#3!#2C"333!#"C#$"3123233312$"#B$11#1"2#2}"#2222""""2""22"2"#22"2""2!"""""2#"*-#"2!#""223!212##3""12"23""2" #23"#2# #"32pA2#!"232#2#1##2#2#1"#""2"2!#22#"222"2K8""22#"""2!"""!#""""!#"2"" ""#"!" ""!"!""!"!""""1""#1" "#1"2!""21"!""2!2"1""2#""""2!2"2""2#""!2#"!#"""""!"" "!""!!" "!! !!!!!"!"!!!""!"!!"!"!"!"!!"""""2"!"?="""#!!"""!""#"!" "#"!"!"!" """!! !"" !"! !!!!!!!!!!!!!!""!!!"!""!!!"!" !!!!!!!"!!4TDCCC343"#DTCDC43433"37%nt @Q4 /2S%@01" /1U#/1A1 /BT%@AAl2$NPB$ ?@3%>@24/@B4=P3$ -_23 -PA#%>PA%NPBDMo14A.PA6 -> #-OAS5 A1%=o@4  N`@3-?P4oP#,>134 NO!" $"$12223233#"2!#3#1!32#3$2"#B"4#4!"#C"C3C  !  !  /./!C3R243$ 43D"43"2;$2D2#3"34#C"#2# 324!#2"02$""!22#3"""!2"3!"2"2"#"!3"3"B#2#!""32"3$2"$"#333!2#3#3B4!##33$23B"243#B33 33C"4#3!3347$#3"#342#3#233B##2#3#C!3"#!3#$"#22#2"#"Bf#3!"1!"#1""""1""#""#!"#!!#"2"2"x2!2"3 ""3!###1""#2"3#2#"3"3"3!""B13"3"2$""3"22#33"2#"B"#"# ##22"""#2!2!2#32"|Z"#!""!""1"""2"!"!"!#1"!!"1"""#"""!"#2""2""#!"2!#""0#"""2""22"2"#""2!2""!""2!#""!"!#12"""2"!""!2!1!!#!""!"""!#!!!"!"!!!"" "!!!!`n"""!!!1!"!!"!""!!"!"!"""!""""!"!#!""!""2"!"!" !!#!"!!"!"""" "!!"!"!! "!!"!!!!!!!!!!!"!"! !!!!!!!"""""!!!!!!!!!]H"!1!!"""!"!"!"!!!"  !{"!A_< %A%/3 D# 00s.QDލ1AD2="BD$ .@'=Aco1be!?B04#/1dOr51R7-RS AB//7#%% %#C N3.ݱa4B#BdB5B?D""C 3u$)or $AC.6"4  U1'C13U!!Q 6#/cA54 S@B"D01ίbAT4!CD"!C2$C?s&.b&2 D!Q2 #O2 3NbT.2C"CBC"D"1S#PS%?R$/R5C25"5B%33A3"SPB$""."@#03 OCC52?1 !/1  3#>3B/A3  #/$BS!62B"331##12$""33!"B1!!"!1"##"2#"3"!"!!"""##"#2!#""!"EC"""33!22""!!!!"#!#""22!"!!MR!1!!"2"#"!#!2##!!2#""! !1!#"#21"!!!"""!""""""""!!#"!""!""!! "#"!!#"!!!!""!"""1"!""!!"!!!!!!!!""""!"!!"""!!!RA"""!""!"!"!! !!!!!!!""!!!!!!""!!!15!""!!!!!!"!!!!!"!! !|!"!!!!!"!!q!!!!! !!  !  !!!!!!!!!w3$CCS444#C$#2A1"#445$352C$2B3#! ? pA"0C/DOCM!+  q#.Q3-= PE>C]!2Q,A#+P2 /SB2 ?/"?S %0S$0q . !C1S!D-A+!$,p3<E3-AQ$a5A5 >"=!-3.qQ$`#/#.2/3.QQ 0$ ?D C/"01a5.3-B$2 /C>B.B-Q0 `3@C>B.A=,P4+@' 13/3=4LB-Q%P#P3/$3-AP `2O41N2+2A3<@301 !1?/"#B#C"#2#2#33D"34#C232223!2"4!2""B3C2$4"B!ݽ-g#"C"#B34!"13"#!2!33C#3"#!#342#4"32""#""#"#"{#"#2!3"!323B#4"33"2"3"#2#A """A!"1"1#3#B2#2"2n"#C"#B#3"3"2"""#2""2!2"##4"B#2!""3!"2"21%""3"2"224!#3"2!"2#2"3"3!"!2"2!"!3"22!#!#"32"#2#"#"!"""1"2""!#"#3#2#"""a2"#"2""2""12"3!"211#21"2"2"2"!28:"2!""""3!"2"# "!2!""!2 "!#!" 2"#"!2""$-#"2""!!"!""!"""""""#"!#"!2"!"! "1"!""!#""1"!!""!!""!"""2""!!""!"""!"!"""2"""!#!"!2"""!" ""!!!""!#!2""#!"""""!! ""!!"!"!!!"""!!!"!!"""!""!!!!"!"!!!"!""!""""!"!!!!!!JN!""!!"! !"!!!!!!!!!!!!!!!4O!! !! !!!!t33!$?B&0Q$ >AOA6/Q$ 1%2D ,r5>B6?Q% ?Q$.Q4aR@R >1% _F& ?R4/B$=1%=b6/QB ,02@4&PB 4-O# . $ Oa40Q# 2Y&.OC >! ?B50R&/!-!$ ?RD>a/-PS%.PB >/!0R&?! /r%3 1 0&`3;_A@-@$+01_1_"/B& =B-C>Q$>? "/1/D!""32#2331#2!3231#!3"#232"3!2###A"#!# cq#232"2""4#3!31#!3B422#2# 4#D"#3"2 4#R"3B#"ݽ3B4B"C3$ ;33D"$33B33R"3B3B"2CB#C2C!##4##C#B!"#B"4#32"32"3#4!""31###3"2!22#"!#"2"3""2!"""22"2"1"!""$!2#3"2""1"!#"32#"331##""22B1#2"1#23B3"##24"#3"2 ##B"$"32#$#"{2212"4""B"3""3"#222"!#2!3"3!3!"2"3"2!#""24/!#"""" ""!2"""2!"!""!"!" "!2!!!"!#""" ""#""!"""3"""!2#"!2"" #"#""2#2"3!#""""#2#"#!2#"2"" "#!#"""""2""#2A0{@$ 03A4 >" /4.1AQ1A4.-1-Q%P505."R$?b?@%?40CmC4 OC/"A A0CO3/B"`<`O$ @$?1-3."p!6/COD=4 #/B;% Q 0C/4 @C2Q$QD-AS!T1COb 2 R!B"#-+ 4>@#@Q5/$ P#>A3.t"P-R%R> ?2,1!.?U $./A11@ /A n03B1  ? bN0" ".0= s/ ""/A"/1DB!@/>#0!!Q .#!? $!1/!//R$!?2S !10 "2 !" !02/!!!/.-/0.@! !!/@3/ ///0 @? C  ?/ #O- "!#>"W-//!/A#"! ." .!  / 2/A !  !21//1"  //0" /.03/'-""!433D#D3#3""CD3S2#!"53CS"C!#!2#"#2+! ? !!/ ( !     !// /!!!/ //// //.//!/ /"!"!""3CCD#43B#"!22334223#2!!ݾ0!1"3#43B444B3D"2!""2#C"2!!""!"  2]7@>13 5.@#$?QDD?@C$""-!!1W=.r" 'O?B$ 0 2 #5 4, AcD BR'0QS4 2-#?3b_QB O2C $!BB-P3#>?RrC-O!B@CR&AB4 Q1."""+"!"$Na4ASEAA"q@ . 3O@""/ C7 Sr%` B$3na$.,#0Qq-5uS.1$ "!> A@!2K2a4/&. 3%AF?# p@7, O BP"a @t7/0C%/ 1237.0 б1 /!2./O -U  RC1 ."@2"! .0/%  033"N! ?! 2@R?/"! ,0 2$1/1#.?  K0#/1"  1 0 1GxN !A! /  2   /!B1!/!?/@ !! 8/ 1! /!. /r! /"! /1///!/!.   /y?.  /WL   / /0   0]K// /!"!!!!243C4B"332"#!#2#!T"/#24#CCD3C""!ݽ!!!!#2#3S4CCC2332"""!""CC3C""""""!"""""! "!!"PAD=_2"@aC6/P14_1CD = .!%$?P1" A2 .1cD/0QR#=@2DNO14%/0Q" .0SD/@AC%>ArD5 0AR3 >qbS<"$>0A&NPQ&>?1 = !2 .. "2!#!2" ! jD#C3C34!ܽ""#"!"1"#BC4B$B4B"C!B/ C3D#4BC321bcCCR2C3D!"$D3b24352"!!""12#33"3 3#D!4242! !4"#C$#$4$333"3"#B3434B!B44#C3D!".0 !// !/ !/?ݽ33R2S2D#! #!$3CC3D2C1#D4C3E#$2!!"!  !"""2#C242C2! ""#!"2"!#2$"2"#"3233#2!$#3B34#C!!"$CCS3CCCB"!!!#! !!!"3223! (!!"!"!!#1""##32C#41!"!!#243$343!#C4C#D#f%2"!!!2#3#4"C1!!"#!!"!1#""1"""!#!2!" #23B"322 #C4B3C432"!2!"!2##"3 ##!"!""!"!""##"" !"! #"32#2#2233#3"3!!!""!"  "##"222!"2"!"!"!"!"!!!!!!""#2""1"3#3#3#3!"!"!! !""!#2"1!""""!"!!!!"!!"""#2""##"! Ok!"1""""""!!! !bE!2!!"!""#"!2"2""!!!!""!!!!!!!!!" !"1"1324TDD44CCCC3C333"#DE443432"̽5DCS4%^!T ->O`QRBCB#D  . @BBbB!3 /x,,=NO@@Q23D# -.>_@@!3"$$ .<=N?0A2SC5% -=PPAQ1!"U-->^_?/!13S6+-.?`ACR$4 >OP`0Q1"&.=N=-/ !BDD%   %A,>pPABB2>?o>?>!2F$ .?QQBR3 , 11Q@"D!D!%!# "!/"0/! /!/0! .!!./..#C"334!""4!4"31#"3"$2$!3"C!324 "3!"2"1#231#1#!B$2#2"1#B42#B"2B42"2#1B4B3"23432B22C$C"C33A444#C443C42C3B!##C"4#3!2#33$24!"24"334!#"B2#B4""#1#2#1"#2"23!"#"2"1"#1"#12#2"2#"2"22"2#2"2"!2#B3!2333"3"33#4!3!2##313"3$"4"#23ݾ##4"$"3!3#42#B3"#"3233#1"#"#221!#22#1Jp"#"#"3""#22#2""12""""##"""2#2""#"!2|#2#" ""2""""2!#!" ""3""" "23"#""!"3""2ne""#1"2"!"322"1"22"2"12"33"2""2"2"2"">$#""2"""!""!"""""!""""!#"""!!" WV!""!!"!# ! "#1"""!!"""""!"#!!2!1#"2"1#!"""!"""!""2"!"!""!""""#!" !1!""" !!" !"!"!!! !"! !"!!"!!!!!"!"!"""""""!!""!"""""""""!"!!! L\!"!!! !"!!"""!!!!!"!!""!!"!!!!!!! u33#y4_AD '.PB3 OOAS6>@0 ?QBT%-/  ?QBC6-,$1Q3D "&R=0!" .`2D% ,O0# @QC5 =0!$?`26 ,?!4/@Q4>02% @P3$ =/<f4?`B$,>"5/PB5 -/04 .@AB% A"4-P2%Np2" ,N23&  P3" >014 -?1""-0#  ! ?/ .! //# B3"2"3#B"$!##"4!"""13#23"3 2"3"23!"!31#2#A"#3"3#30"#C33C1#"4"$342"23B#D#3!3#R"42C"3CB$33B#35"#C$2B44423 33C233"1#B42#3"233B"#2#3231#1# #"323"2#22"" ""3"1#!"#"#"2"3#"#!"!3""2#2"$"#33"#3!4"4#"32#B#2"4#B#3#33"4"3!##B1323!#24"#3"2233"2"23"3"#" "23"2""2#"!2""#2!#! !2!!2"""12" "#"" !#!""""""!#!3""#!""21!#1"2#11##!3"#LZ""3!3"#!"2#1"2#""#23""#"22""!"#""!"121"""""2"" "#""!1"11!"!"""!"" "!"!!"!"""1!""!!#!""!""22"2""" #!W51""!#"#1""2#!" "2!""!!#!"""""!"""!!!!!"!!!!!"!!!"" !!!!!!1!! " !""!!!!""!"!!"!!!"!!"!!""!"!!"!!"""!!!1"!!"!! "!!!!!!!!! !!"!!! !"!!!"!  "!!!!~"#4C6#$$2 "BR3b"B13!#D$C3S#3# ~G3!D!p4b 1BON" > bTp+%o ."# 1R1C-B_/%=s4.O6.ޯA'!>bD-! ?# b%.rG1/t!",`3C0c52D/PB?Q. Q2 D17ST#$51N /%'QD5#b$1 R.4A3  #t"U26ZBR#/a %B# 3COQ&Q7@Q14$16@#+`S O4%/bS>r303 40"/a4-Q$,@T?B/C$0# %O45N234.qSp 51 "Q414PD@RQ1Q13"$0#?B/R3 31 /"  #$/B$1$0" #1"/A!2!#!3 # 3##3"#C"!32!"!""""""31 #`5"3"!"! "#""#22"3!"""!!!""#"3"""2"!12G!!"2"""23!"!!"!!2""2"#"1!!"###"""!"""""3!!""!!q{""!"""""""!"1!"""!2""""!!!"""2"""!!! !"!""""2!"!!"""!""!""!!!"""!"!!!!!!!!"""!!"!! !!!5)!!""!"!!!!"!!!!!!!"!"!""!!~!!!!"!!!!!"!!!!!!!!!!!!!!!!NK!!!!"!!!!! !!!! s!!!!!!"8A4O4N#NBAO0% 1# 0C?%/#.Q-2Aa4P%O3.B.F#P$ ?4>B.2$.Q@ 0O4?CO4.1Q$ P3 P5>B-C-1A&@C O2>"-B-/y+Q%.R&@% O">"/C>bA$0 P40D?C-"!A7Q%@4/! !A5.a5@D?$">a.r#P# .?# 1b1r0 DAE@2 / !Q7BE@5<!?r% b#@B#@4?1.!  !  / . .""#33"32#"#B212"$#3C#4242"#B"3333"2"3#""1ac#33C"$"#23#C2$3#3!"3!"2"22#3!##!2334"#23"2"31####12"3!2!#324"33"3#"32#3#3""""!""#!3"32#""0#2$2"3##2"##""#"!#2""!###3"#3"2"#2""3"3""22"##2""2"""23"#2"2 DW"!2!""""""#!""""#"3""2#2 "!21"#3 """!!##2"3""#!2 "!3""#"#!!""""" ""#"#!"!""322""!#""1"""""!"""2!2""""2!"2"!"""! 22!!"""2"""" ""!!"""#!""1"#!"""- """""" "!" "!#!"" """!"""!"!3#"!!"!"!"!"2"""!"""!!"!"!""""!!""!""" !!""!!""!""NM"!"""!"!!!"!"!"!"!"!!!~!"!!""!!!!1""!!5Y!"!!!!!!!!!!""!"!!!""!! !! !!"!"! !!!!!!!!!!|k!!"!!!""!!!!"!!!!!!x5*1%=A$.A #-Q!O"-0$.O6 P#01AC-@3O2 >2D >A5-P#O3-PC@3 O2 _FOB& =1$=Q%Na$=1"?3-@SP4 O2_Q%O2# >1# >R4 Oa$,0$-@S -a2y3`#@#.@S'?2 .B# ?r5?a#, .AD/Q3O@2'.AS?!"PB60$ NrD?a @c7 Q4 "$ 2b$ ?C#S"522ݼ$43R#C430-gݽC45"#R2C;BCCB43CB#34B#D"C1##42$B3C3#B2$342!4""B2C1#"#2###B"3#2$!"121!3"3 3"3"2"""322!2!3"323"3"B"#1"1#B33"#2"!32C2#33"U%3C"3221$#3C42#!3#C2#B3333C"$233#$3"4"B1#"32C333"#3"#B$"""#2"#24!""3"3"3""#!"2#!""22"21'#2!1"2""2"1"!#!3!""" #"#!"""!"22!#"#23"2""3"B"#""""32"21# #2$"3"#2#3!3"2242#33"2!""31"B"#""21#2#"""2#13 "!2"!2"2 ]k"2!"!""#"!"#!""""""!"!!"1"!"YD"#"""""" "!#!!#"2#"""2"!""#9#2!"/""2!"21""2"""!"#"""""#!"""!"2#! "!"" ""!""!"!!" !"!"" "!"!!!! !!" !!!"""!!!!!""!"!E_"1"! !"!"!!!!2"!!2" "#!"!"!"!!!"!""!!!!""""!""!! lo""! !!"! !!!!!!!! !!! !!"!!!!! !!!!"! ! HA3O$^4/B-A0 @6 14 @R -=C$>1-1@u 1# Q#>!-3A# a5@3/"b$/R%0Q$O3?B"&?Q$Q%O"0D>Q26 O>3,A'A03?%/2 .#=25. /"NB, 0@5 4> #"!4a#3 NO4/!.% N@T #.RN0 p$?`3_6 5N"@4 "PB"B@Qn!?Q:!.!>3!A#?#, $!0/"?   `"#" !"/.>5 320@ ! "!./ A  -!0/.!2/1U 4%21! .11  ! 23-/"11P2!!. !#/-">/ !!?/P250#  .!A!4000/A" 1- u[!2$   00@/!0/ 10,h/!."/"!."! // 1/ 114/!!/ !#>/ !  #1"Y+.  #!? !    /- /0>. G //.0 / .@ /H ?/  "/!  !/"""#C!""223042522C"!"!!#B342C !//!0  . ///.///.// //  !"3#B3"!"!!!!"!cR!2"" ݮݽ/ ".G/6!C5b$D.3ABb"S2& 13Q"122b2S&!21"?!#@yZBCp",2/&@ 1"AQ "ORQ6?a"/@R6/"%B5 1A4NCL*$A0#?.a/2 /7R A-C#3S.!?$%\/C?/ 2B/#3,=qQb>#s=;y"@'2 Rr@"P`A"0Q5.` A/Bܻ2^T S-E-/$5a 4?S"Q" u6-/4#2<3N0S AK61"0$/4-aE.rE21b13{c a5/p0#RS aGAS2BD ?&2'<Cо7 #"q% & <1& 1 1&042r2#1Q0!4S%#$!$S37>s!15d%Q SA 3r>+y26CC0B $A"#>a"@$3 ۮ!/34 r d!$N! *7@! "4R%1.2S1#  S/ bA# # 2!"#6 #C&Q. A >"/!1$#Q 0#" "#. "1"!-Q.2"!!P"2#4//" #/"B#-"$3/ !0!1d A4/?31 0$2 >!! ! "02"A""2!/ ,O 4#1c >/-n5>"/?14/ /=u,QS,?_F @>%,P ?" U c.,D SaAO?#cS3%.Q5N1.B$SaY9BC2D=Q! d_QcP#D'31 CGQ!d &!s%  >4 ,R "4!SrR2G/A$c/^ N,"! ߽"!"$ @Q2 4#$|13 /$2"#R$#"# =!CBD 4!.,3# 12!1_!4 C2 #10 #A.521@ ?A!!!QT!#R 3 #>A$@"AR?-!/$A0 !Q/3!/3O ""/ /! B"!1!"12!/"3231BO!h"! .!2 ! /!.1 . 2 ! \12 A !"1?11""!"!/I!!"51 "24D52"23!"#D5#24EC43"4C!CC31DCC"D4QT1'CDM_A5 -@0",AQ.M`1$=y?24,?@"-?Q5/>qR3 ,pAC% .?B5% /@",OO!# .=12T._ 3._2\K"7."$0`!$' AQ!-NQr O= -!sD /BR"70O .1 @GO@3'>a24%.N!P=oA<`3 ->!C.2!#0P T<]2R#aD,`CB >-OB4-$ /P/T/!! NQ10!At42?0"U #>" A!/@B$ 3?#!%".A" !?2!#.?1\3C!0?4"- 122?/##3/ ! 3 / /1" !4/ 0""! / O$ 1/1 35 4 /2/0" "!!  0/4 /1 /" 1/!/!2./ 1."" 0  . /1l!" !?  "!!10.! #~/!2  "./ c? /! 0!/0? / CS52!!34"2 !23253C31!2#2!!JW$2B0#3!$4""4B5##2##CCCA#2#!#22"jx!#44$33"4#" """"""4#B !#3!!C3C331"3A21!"!"!"# 33C4#2"! !#!32!224#2!!!#2!""!#1232!2"!3#32""!!""3"lp"!2""! !! 1!!!##""3""!""!#2"!"#2!!"#!!!!""  "2"1"""#"""# !!!!"1"""!n"!""!!!!""!""=]UA*B2!5t--OA1Rr"S$ -?-?R"!S% ?.`0PS2T#%.,>`>/O2G2=^,@o?q"C"E --.M1O"`S 0@B!417 ?=?NBq 3S #l-O`0-!3!AD-PoP1q123./bB ݽ5?!/3C0!5A2E@h!$"3ܮ$C 1@"@3'"5$ #2" 3#1e!B! E3"Rl0!/2@Bݻ31 NROa%! D"##" !3!"B> $31!a?2!4?1  A#"E2>t3O0_##"1"##-6C"bBc0# @"% ".3a.5"A"40!1/"3 R?0@B!1 2 ?- !  "B.#/"4#$".@  !11 "1 !42 1## A "!#A >21 2!"$R!@>"" 3 D/!/ 3!! 2!/   O2#> !/ .!/1`51?2"c "OB $! .3!3B "R'1#Q$ 2#4 "!.R ! !5 bC00 5C DQ .@ &!R#$ 0  >#`0#a<#.@RC7" 5AU/0! ./4ACC2#/P1 bͿ%!-=5 ""B#& B?"?! !% / B 0C "1"!4BO/0 T"#022"=#B""#!! ! @1"/--?" 22N! "A! "! 4"3"/ 1 ?"!!2  ! A/! !"  !#!/1.!"!0? 3"  >333 3CR2ܽR"0"3!$B!42"#C"3!!!SC42"C"  #3C32!!61!"3#!$CB"" ! 2""32#B"S212#S4B"#C #4"!,'.B$N@B& >a10A-OAR&_B2_!57.$?_1A R4+ Q1"NQ"5?2@M0bQA$ ;@A$ *01Q$  /BQ-?R6 Q/3_#CZq,P0D #?2$ OPC *`u -Rq#-NsC/>0b @At;S/," A1{r.B#t.0M3 R.!!? T 1E#2 A$A,0+#S5/.C-cA@&1!;# M1$ "AM2C 4 BOS 2 E>S3"Ba /c2 5!' R=Q"/."207-?AA"#""a1c@!4T1 !41N ." 6B4RO/1 ݰ2 & 1"1 1 -1s./ > " -1"#2A'A"s/  c1/ /S@.01}.#2 # B?Q"/"N413!!14!2$3A"T3B!!3{23"$$2#C 0A 0" 3!145  !#!:2"03B1/!#5#O.A! "20!!"10! "!-"1"// #! 0!//T12 2/k"/// 1/1@#! @!2##!! /u  0 "".1/! " 1!1"543!!1"4!"3!#!!34 2"DD4"!"T43!2/?"// !!!/ "> Y) 3" ""$"3"" #CD""!"2"D33!" #C"! """}!3!"2#222"3 ""!#13#3B#4D!!"22"""""2""#43#3"!#C#A"#3#2")331""!"!!"!!#2#""2B " "!"!!!"!#"!2""#2" !"!"!"##31!1!2"""!""!!!2"2!"22 32!#$53RB3C3C22"3S$C3R'Y02b60!.aQ#v!3R02 7.#"^&.1B.QBD@315 p5 0BUC B$C1a $,?R #14O$:/42rR/ "R@#1%  %.tBBa.?b<@#O#7/!3CF,b3D0B ")f#16ACBB#A2P!#_2E>T$."s!-E0 R51˿$0&!$.A1_8VC" ! 7 bS!!/"AC,3 !E ES!11!'  T 6-31f ,3<DT& !adߜc41B%.$ 2 QT""# 10T02 C?B !%1$B A$.D1 tuC>B 1"$1$2"1#"Bc0#2-R/^!!  0 22D!b EB 3#?! 21 5 @qR B,A!A 23#$! C0%2B?/$3S !"/A3""A !#/13!"# 20. ! "#!" 1B1R>1!A31&  #.!!# "" !A/! /!`a" "3 10!!!0!B0 ?!/. 2"0/C?> r -` ACOP-1./2q/0!3/r"/q#1/2=?# "r ts"52A0"6!?BBNP A-b5/E.#3?A+a @% P0?>!#Q&2@=3+ OaS" D%Q.&33 '? r1RAF?#_ E/ #!C !5t0"M2E 4D/.@C!$BD",b0 @"N.30C"!#/#+/1?B r322?4P#3" 31!+1.?D 2 #  /BQ4/C12@  0DE "0" 0/53 !0# 1!!C"".3/#,21 2" R#12!!1? 1!" A@!R ?B" 2!!/!.!2"/0 3/"3? .".53 "!2  2!"#1 !4!. j> 3/2/""!/! / /12/2!0"!C1"#"43R#R35"!# 2"!"!#"#" " "+2C5##CRR4BC44D3RBB#34##33ܼ?PB# 2>#=B+?,!BUB% #$. D @R-+RyuV,#?R>q `5 .">R6/2A O# 0S>C/ABA1D13 &/! 27A7@# 1<-T @#_$ 02.C-A"`$`#0& 2.3P`$`#$=$.cQ Q 15_C^4/_Q,@@ 3"/bC +22QA?#;2N1' A6 1N3A3O2^2.1 4/1!&/1%B@40a!&0 @ "r/."#?#"c#B /30""3!3!   !2$1#$" /B"2  #"  " 1/ Q"".!2  1! y @ 2 $B41 /#! / "/!!""-   "2#D    01  # "B-A ' ! !!/ /  !   0  !k2"!!"DB32 "!!/#!!"D3!2"#"#D22!34q#3"""2#C531 #2"#CR!# "C3!"/"!!2 CCB#C1!C232"41!"!33#!#D233#1 2"21""!"2"!3"#33433!!!#"!"22 "2!!!!"3###"! "322" ! ""!"B32#2!!!!!!""""ip!!"23" " "!""D?"2"3"!  "!""2 !!!"!""!!!" ""!!!!#""""!"!"""" !!!!!! "!!"!"""!!!!2!,4!!"!!"!2""?T1"#^3 ^2$ >A$bA$ .2$ NB _Q$, /Q5RT =R#,!C-OS5P2 = /"%?Q O0A>@tnf.`06 >!7Q1 ?AD-N $3 > TAS@' -Pc%/"QT?G@S '0b,' ?0%OA;O .@ Q4.>A N0O7?OD@AO5 p 3@T/?,.Q b&> # .0tC BC >E-,a7M@#0" 1@C=E#1 .!S02#"#"2@%-a!  41""@4/ #03.AB2-BbA">3B1!BD!2$"0/110/1D#C ". 3PS "B"ξ $/ 22 0C6 /" #>/11%1 >E0/#! j#3Q2#?3>CO3!/2 02 2/!@4T!  3 ..3/ 0.4O"!! ! . 32" vA/ !0!3!/?3!".! /!/B!$CC2$B!DB2!3B"030C#"̽"52"!!B!C1@"  !! .# /  !!"!0 !2 #."D0 "!#4. 2 #"321 #OSA$2 "A 15&/ "4-#2 B 3-A   !$b 2BT4"!B2 1 ?Q1 024?!2/!!OC?2! ABQ3!! A B/5 3?$" 4e4A2"51 A2 A % ! 4" C?1"B2 ! >  KfQB BT". "!32 ""//B"11%"!A#0" "!  @  !13 " 2!!""! !/ !A 1!A01/!/" 0 !4g_3>.2. 1/!!0DCCA /$SB2#"/#DD41#B ##2# 3!ݼC"!2 !"!"#B "C14!"#3D 1!"#C2"!"! ݾ!3"#C32 #CR32!1!"!B ""ͽ B4230#3 2!#!"!"3B"#H1DO$^4>3Q.PAA$@S?6=37 Qb./>O! 0#/# ->a#/X1E >B"N5!R 4.=# "',01$,0-3 =! 00R!Oa-A Q@2@"#XzVR&_Q7"2?"<CP10Dt3R2$2P-#p1t".O@ r S23 [ :Br" $` D/P#Q !?$ PD%4 AQ aQ  .5Q  ""] 0 OήF2%B1*QO1$A a/!R !Cr!4D""O6! %3S!($##,EQ C`Ab  5/""5%./Bݠ!"A$SC"/$=3?c`"#_?b0A6/0E -ݬ$!r 2"  %/ '1/ > "/$#e$13N&0 #>'A'..0#s оs"?%!1$1Q"02b /4$ 0C"0B5/4 r "5f-#S/BR03_150"C"@3 D$ R!?"20ݏ 24 h$E" "" #00A-=2/AC?$"4BB !2 2" ! 4# 32- /1/ 5!!"  #!/4 3O#A-1P ! $""Q0#. /!"-! _/"/#10"! "".1/*_/ !!0#/!".#0!g! 11! 3/ @!"?!!#/B!!/  "/ 1 "!N" !  /2/"/!!!/!/!0/ !./l / .    "  "2 432"ݽ" ""4C44C34#42#C2!2#3!!23Bh"#޽1#333#43#24$C4C332""#B3#2$22#""!""#2$3!##3""!!"2L7"#P-0C502$}3"N!B E@A$  "<=r1-ޱBC3P1%4. Bb 30a3&R2!C/"0B $O2_R/A7 Q.& 5R24Qc$./A3 B#6=NAr0 0^B5$14.>!Q-"11b3. R-1a ?s`r O&>!//"t36N/7 4.6!11#! C3.AT/0 D 1#]0"!?3"4B!1 t0'5!4144 -3s"/_(P5532"T !1!20d!!04@ͯ1r $ 0  #2B.L.! b !##>"A!0 rE/AR302?!1"/#."@!1C! 2!2"@@0 /"030?!1$1"R!!/0"  .B!!,!A "/-2A/O!1 # 3@!!5 ! !?#4$ "0! A 0/11 1" .B! ! 1/ ! D/B/  A!/!!-#% /M8q?4 2S!.= /,$ 0 2?1?!5123 5 0"?$ TO$]10($oA9! 5Ceް2a!  ,$T" #$>C..2@02-4DP"6A445@A"$OQT =/B/C #@D-! r ,1EA!a /a2 D>/5! "11~!Q!b S0R/>>? 33!3O44A?`# /P/0$AC 32$"!301 1 ?F#" #13DB$.# #?1a =4 D3/ "1/3?4 /?PC  !C.0>1R!/$Q @1!?!OB1 //T!0 !# /40$01" A! "1 A!! /!#! 01/!4"!/01 .! /!!~! 0" "11  "/1 / 22344E!#1533 H1:=03>?1,/ -A"5 NRC7/@aB.N1B% ~#OQ2 ->0.>O"4/p?!# -OBS`0C6 M1D.?' -?Q,1"#-?qA$ M "# -`!" .Q#70`AB  7Z?S$.?R/0"S-= #-q!b/2b?R",=/A2 / q T/!0AQQ# A4A,R005 E>#S 61>1 !33""2!#p!1? 3?/ -R.B #"3.?11!"? % /!1 #B/K #!1BO2.! 3    B2Q!B .!U1 /B3 /1 " A! /$21/"!1.# ""-# >Q/!/".".!2 " /"@! 7]#0"!/ 1""/1!. #4#"!$4"B13"2!1c###EC2 #"!4E#3#4C441 4D#"423"4C4##B3! 5""!! !43CB22A##3$3D2 "144D3##321!C#$#4"53#3!"CD3/""3!"3324343337K!"!#"433 "2B1"!"D"3!3D3#" ?0"434534!!C#31"!"2$43B2""!"!"3332"34"!!!! "!"!3B4234CB"1 2232"JG !#"2""33B!2"3!" !""! 2" !3$23# "CC32#"!#""!"""2"33#"!"!!!""!"! "#1!"""3"#!3"3!"!!""C"3"#!!"!!!!#G""" !!##2"!!""""!"!! #"3!"!!""!"!"!! !!!!!""!"1 !!!""!"!XHtCDD4CC43C3C33$\T-.??PPA1"!.,P.1O=_PO T 12B1>_??1B44E   --@?QRBC .,O<0PR!46 /.,0P>/2Q4C -,/LM=_A!1"3 -;M?0O @#24$$.M=?_Q?BC $ /O>PQ/a1$# //86]0_OQ/$B- /;>2.//B 1!/ ?!"3!  /4.  0 /1  1!C0#!!2/00"!""/1#!  !/v/!0!/0  !! / /#`A/ 2 ?F!/##|O@FaP??Pr &C#U>D2@.~.Q !1s2?6 S s#12r"?F##B).d"@.#3R '??O=DNO .T"4/3?s <2 sޞ !Eu0 "a1 0"1;7/">4 .7q!;! a /.S 724='1 νB1r '@. P/aC,7/ A@=1 04//!ERC/3/$/5!U!  2B=b# "/ArAp!Rtb.."P#"4Ba> ?t߿T11 P\.!T=!BDA/uo$1/0.E-tU!532R=,r$f!2p3$4 @/P#>R!2D" `#1  E@C.O!#AC@0P2 C +E-q5 . $2$/0$- 0"c/D1! 2!#2//22.C-/$R#05R. B02!#032"!1$" 1./0"B2B! #@4"!!"0!" &"??!2`- @!2!022 " .-p#6"!DR631SDB!ݮ1HA+=@D_02$ -02-Oa#N?!&.a~$@26.Pr`P4 .r" BR/a  QA /01BT =BO,C%M=OA @2!&+_@!$=P!$.7!4 0"7?OA4 />3?A ?7Vp0_N'Nq$ !/>#&#?"5#_O>L2$^P!&?+"Q> 5?4,R.O! S=AS1$?2"'!@$"!E ?cC/2> "=D!B@/?O"r$%@">!#r A" 3PA$B"F2> 0@,b"$/?!" $0C#b$+!E cR $A2#2E4#1c>D25A#."/3r%!RB@ !c7Q 3!!AC3 QT '2#-#RE23DC@  0Sv C"1!޿ " B./2#C!#q#A!5 P3 1R1[B@R "R2"/#"2C /1" 2B/>   3!5!!3?Q  "#!/0!"#3A  B///>!/!210..#u!23 #? !/R!!#/ ".1O.!#!3#! 0"#"!! "?1/ // A8H0 !  2!! !// "1/ "/  1  !!"0  "  1o{""535"!!"2"C"#13#!! !"$2#"32"#!!3$3"3CC" !#!#S"3 "!!4#"!""" !#2!"#"1 !#!!"23 33#33!"DB"!!#""""!""!""3C4322!C43"!"32B!!"!"32 !"1!"" ! !2" !!"2"2"32!"2ck1! !!!"2!#"#!!!!"!!  #32 !"!"!""!"!!!1!!!"!#""1!##!"!"!Ca37I02#q6? ".?1Rr NA7- c!O2", PCr!%!w?d2F3"C%:/ 2,3 "_ 3 OS7ADSAB 2F 5.Q#LPP%," a  "s"B/#'* 2R D$3RE.B1 3"F$PC@1 $7C s1cE!/&.7AA!D!"9@"-B$0S@ Dp?T$ .T##"@  rR DD>C0rC? 4)R%A c'>@ CB3#O/.4# 3+!@ @0?R/?T1aC0322COC AB 34 3,%B3.#"C /!S/ 5A!"$!!! &!#0#6 50!.12BB32/." B2"b /!/  |!0A0 R B0@# ! ".!3 A". !"#.!!!!/! /!"!! " 10/#!""0 /"//A "/!!/1"?! !  1 " "/A/// !"" !"//3!#CCS"!#33 4B3#3B C!"324CA 4!# 2Dp./1A-?-`O %! CQ # A.s/T@'.5 b!D`/q,-@q'!T0/'1333tްQE "1=Q5AO? ! 1ETC BCc910 ?1 .`/A!C-304 "AR!#R04SR& 4` #03# 1R?0 "/2S///7!.@1r" ! " 5""?33 !/?4#O# 52 #3.1 -?"3"2? 02.R-2B<!/!<4zG"1#0#!A $.B11" 1Q.C? !  ("C//b11A4/1A/D!! OD 1 " B# Q #// A 0/ !!01/>!2 !!2# ! /1/!" C"!1"#2#!3#2" """""D1#3R"2!4423"#B#"!-H33!4"!!##"$1ND_4>3-A1 @$ 0 0$T`"C%>@1?3 C=s>" *#0aA? #<2Po? ?!1q#+`~&-QM$R-1/AT-/4 0@=R3 `"/"A?B1R; >% 1=s"*A'=1BD a. 41&@" 0%2 3%! 1C%?L!!4!' "A!ް 4P' 3/ F1.3!,O2B.G,5 !R /A1Cr B2$"1$G"'A ! 1 "A1 1 !# O?Q.@ D!S ?r" B70!7B? 40!A!_V3@ .!0$Q "1 41!5D5$<!$Q O.1S0"c  #$SC S-$"2" !11C0.B "C#Nb"B@"1"CR>!.B$ 4 B?"1"NC2cN$ E# 4@  .$0?."3!$4#=/1 S/@"!1"11/$0 3 3"#,#R!" 25!/!3/!!$/3"!@.C2."3!"!#  1#O#$1 0.3//!z1 /#! 01! ..  ! ." ?#/"Y/ /  0"!$/ 4/ !/A-!1"3/!# ,4S3B#41!"#44!B!22!3!!42"#C3"#3#3 C#""443C## #3B!$4"##233#2=R!"" #2!"!31 !#3$ """"C""2#!"!##4"#1#2!"332!"!433!"!!" 2 3!"C!2""""2!22#"3A"!#32!#2"2!"22""!0! #2" "2!! "! !"B3"2!"""!2"""!2#C3R343B3#"25$$$2C2R#(+AC-21:0A>@D%P3@ -QD=05-/lpR=o".N2@Q<0#0#$04 @D 037@R1!7/?@6 @/# ?b P=!?q"/FBG0$ /3+0R 1$M2`!0R P2!A?A# .a- B5 !22"$ >r PCF"(0C0Rq2NQ^;B-1A0^P3n1!&-R C2! &/>!!L#%/2#B0b1EA!q"1O=SE#"2!5BRA#3A  22M$$S!?503 5 @4Q /!# /!R!  #0 $2c" F  5!B#-$20-B0 Q+!"U00!/A A 2 >b. #0b"/!0!0$3.1C #." " ".S D! ".   3 12$#"%/ !?PAA"5""A /0B3 !/!#1.. " 0 !011 3!)!!""?/ ! 2 -!!!/" " 1!!>/ ! !!-/0?4A! A3/$!B0#/3@21"A2 TAQ /O<42 C7/"CS>C& !1#1@ !!/t C BC(QR!.0!/0R5="7$ @23/B/ !0$R. aO1/E$ D"M"S2/R/A5 Rw:/?""C#R!3RO#E-E0$1"R3210!4 #"N"1PPb? 13Q 1#2 #./"B"$! /C/!1!!"kk2!P!# a"# ! 42 !$"4/"R!a 2 B#1!40//##3?14/!C "! 1"/!.$01  ! 0"  A#! !#"1$S!!"5233$412B!24D2"!2 "! 2$S!0C!323R" "#B"31!!432! CB!!D343"|!!!#53232!33A $2!!"4!3S143!432 #0N3OD>B.2B Q5Q$,A41#Ac_B31 16-.4 "b5B-1 @20Q 2 >1/R-B1& 4 @2>3>" B#MA5O S-Q=0>a%/%O8a#:3M#1NqPP& C-r?*@6Q%-b,2sOd @EAR>BBEA&$P1+s>2 CB 0#B/?".C8/% A4-!NBA1"2#O!3U !_p!O"Q/Q/" r 0C #b2 q ?# # S"#?B!/B2/@+2 "F!B " 5Q/2 1>B!QA0.3>32 4!B%  c0@@?UiK0!24 !4 DR 532S@0 sy"4Q ."./ #3$/">! /3!1$!1!332 $!B "/B/!31"!20@11 O!0  0/ // .30F$!" /"// @! 0" / /  ?/"#1!  "!1"  "!""?/"/!!? 0!!2X1"!.! !  !.A!!!"! .1/0!1/! /?1U ! /! /N) .  ! !"2"#2""3D44B3 !!3#B"!"!!!!/ ///. .  ! !y=C"""!ݽ#3#534B#42"3""""2#]"#23"#"! !!"#23D"C5$4$33##1"w4$D33C232 ! #/L7@#.125.12$,$>Qb4 ?ab# -"1734,??BF``R"" 1/R4@2c4O1C$1QC.1 "!#%OtES".q",#B?3 740/A4- a" A3C3!.6 1B4 7?1?%B 2 50"!4@t5BCCO 5Q"16P/T.7P2 A%#s# 5 1@5M30$  0Q#!@Q#0DCU C!4/tab/0714R5AD2=ͭF.?BF $#@A!B D3R#Y"/1E2T "23 3C/=@$#*/2"BC/ A0B"!!2'"@3 S"AC! !>@"2B!&0# ! 43  B33 "12=2!!0 B2  ! !"!!C.R@/2$$D7 0  @""/A "> >/-" "/%?13-`#A!"#!"0!1 4/!5, "w.0"/.#1#/-2!"#/   /!0!."12# !/  1/!1/#/!1$0"1b?/3A]$1/!!@V-2' AD ." !=!60/@ 4?s??#Sqb 2!B!CA#*>!!!Q 4Y$ / # QsR"-A6O !6 N0 aO/0 SP'3!'O,15q! 5s"  &4BB*Q!Ab0dOT1/ /!.##A.2$10!N4n"P /`R  ?D"!2!A!!"AAc .? !/45.B$/n x &B /44$A ?R5"/# 2!B"."% "15  a4!$0!"/?`? /%!" #@ /|I3 B1R!" .0B0 11" 0 0#!B$ !0A/B0- ?  /0B/220 !. !  2'!0/2!0 30@#/A 1 B1"/#"C41%3#C5!4D1!"42/3!! ̽""" !#3#"1!(0;=02N03 OQ2 0B5/`% O!r?0"#-P25 /, DUa4&.,B%0?3T$O12 .Q!U =!R40pD"?4b/P1R .? s4Rq /PS%Q0#O@2 >^!2S >?3-?^#.?2c! "c@>q6N>As/;',?/r/Q4 O<.=o27 Bb? $.E %SB"]!43#,Q3.#s #70A2S5#b0/b%!02>1# C@aD!3# C+3$2A1C $S0#dCR.3 CC 1@#O$!33RR .1 c !4# $2 4"/!=/3 4UAV 4 03 3QP"#!t!B&/ݰ02!R#. 21B "42 b !/R "/@? "R4 "!10?!CO 3R1A!0  "/ / .@! 34"2?  !0!1"2/A"#"0 !"4@"?!/3!#/."41!2 !!1!!/!/"!1!/ !A01!"!3/"3/1!A!!" !/?C !"#2"!#3B#52C#!$D"""3 #!""324!4B2!C24412!!2!32"!"2%332B"3 "!""#!2"! C!2"#B"3B4"!""2#B3 344!"2"22""322"#27.3"31!!"#2!2!!""""/"3"!!323#3"24"2 y_"4!#2!"#"B#121"3!!#""""""! "22 ""2""#""1"1#421#""!""01!"2C2"#! "!! "#!!j"#2"!"!!333!!!"" !"#""!!"!!!!!!""""!!2"2""3<"!"!"""2#2""!"!"!"!!""ҳx?R5 - / E01/!-# .e2-!4/ NE%0! @2!0@3!00 P# 1/Q  2/!#"!   !!#2" @" !!!"0"/2$" #1 3!! .0/.#!"/ 1!!!>  ."1!./ !"1! ! /!?Q   3Q >D Rq O1$C.E-"3$=S1c+PEb?!/UqrC1&/O1PtB? >@B/b)taM0t!1%A0!!S@35.0#` ?b۰1 r.BR4@01 %042B3 4"#"R.AR E.Q1 sO/!C=3"4!a#22."N_&SF(L=01/""1"?%.#?"/ 5 !"R% 22BA!P#4!A2" S!1 #e!A `.!E13A /! !2B"B C S3%1 /   2 S2B " "AOA?3@02#22&2t@0"B2 31MB#'3 2C,/"A0 %#1! #$>"R&!  "!"1"|,!22%!#2!" !1"40 $4#1 ! 1 "2 4".12 !""R0121"!!1=! Q"""3$!0" 0#!# !B 1"$B!ܽ3^T2R6M0!4%003 ?_/,Q " <@@E r!"6 @$T F-@5 ,?1Q%?40N30Q5!G/B"4_ 5/s =q7/P134 0"aW%-N2@>R o2P30aC@`T>>`/C63-p?B! q '.! !5 '*1!$-.`/7 @1uO'!N39o?c."E#//$ P0,-P5C? A!%?  %Aݟ0 O?3 CB 6"#?rB#.% /St>?4b%R.O4.$3@c/6a1cTrRaD>.@D"Q1$cA'-$TE@7  $22@?r E=Bݬ!3O3 $@ /!C.$& 3-tTR#0 10 1,bA!B!2T0C?# 5YW$Q/CO3BQ32/#CD.42 #5 !!+AE-%a!"1>0"#/'&x2b122?00122C"%BA !"3"E?3U? . 3.#1C002A-D1""/"1$!0C/"!/  #O #37/"///"R53#30# /3"  120  R/A!#"2 02#/B1?1z3!1! "! "!!4! > 4. 0KR!!!CD3B #!"!12"B 3DC!4B!"$B"31#3 1S5330##4B"!4##%53!2!21CCC#2!!!!"C"#B#!#31#ܾ!#"##5"!D#C""!""#222C!C4D"#" !#3""!1#B!Q^"!#! #C 2!!1#!"B2!B24433#!"!22!"4!"!! 32!"" 21""2!""2"!!!#1!""#34##!#""!"$"!!"!!2!2!""""" !#22"""!#!!""2#""!1"CCDR342A1!"$43S$#"!"#CS53D#3Q11 !"BCC5"11/#51E $% @/SUoR RF@ b5CC#$R 1 =2!0r _'/b !!C5S1%""Bl$l/rFA1B$ %0?$B">t5OR'!@$P!/1BR!b?1 A /AtD/,$B4C!,#?4=2#.B54..S/1 2!OB  B& b# '111.1 S.4D/6@# C3S/AE61612=?B55/uS/C" !"4R 42TB&$O2 T S1U"/3/;yqCbU'0 33a# 1 !4Bd$?3/ P21434P24?"0AD! 02 b.!DS/C Q$!!R"C"203a/&0! !"3DT7!u%1?0A$.12/"/23"5#0 4!!!1  #-!4,CB! A 1! $ C5!$#"B!1"""10!3 3!43,#"0!2B#/ 033 2#!# .vC "/ " 1#"21B" $3. !1!" 210  !"2/ " 3 "?.1'?s VG1!?!#<c 4.";5Q'R/QqA.>#AAEP3.'o7 21T?4 # 7(-/#L '!PB> A 3-.mA=t#2AB CBEa5 / /$Q  3-1 E@!."6=!>_D$ ./Q@BF3?!"C( $2$$2b #40F/C-tRt"%/"Ap2BO-A.! 6 C11,PP3"U" `bQ%/6 ! u2! 57tT1 @T-"# < %-B 26-"$!0?B . 2!"3 Q./CE2E +_" c/A-cA1$1R?B@%@ .R05AB"314?"C #./".&$!" A144> z'A1/$ !1Cc/B!1?. @"#$#C #b32S3100/"5E &/# .1>!0 rP  /42%*J" 30$23A B3 0 ".2  3?#2  / ic"" 52cA%S4!.# F32U4!d!##C %9QDO5N!4 01 >D$M2 07A5 B%!Q] OB 3s C1B? 0`Oc5A"D!P050.A?"/!!<@B@:3/4>P& >E0#?22OR,P4+15.e-aO30urB.1e =3D"%+q#3?" F"t 5@U/@/Q ?."%scDbQQ#"R/BBa1'.BO6%4,_/ #@-S 7A/E!!C!s"E/#"0 0!"DFޝ324.AR0A$>%0 "24 C 1$c>R "052/D.| $,cb" 1A %!R5B 3%a#@2 ADr.".!!-1T"130RC #-R4C1 S/?321!1.3-DE" 3T 40%.2P0z3/24!/""!S#22 "5#A"2 4Q0/# 5A"2"5!1 $.B?B!C " /!C/1# /!1#!!/%/ 2w2 4!/!!2" $ 1!35 3/2O /#!"2[C4 3C2CRB"3.#"" 43̾"542!#SB2 #T32" E4 !3C! ͽ#C#3B"14"2!#"433C"4S24B#4!u5C32D"ݼ#B2#""  #"#1ݼ3"!3CB!"1#"322 hW#T3#""43"D3 2""!31!"#!"432"!3217n52#3!C3"14C# !"#2#3 "!#""""23 t#33B!43"!44""""" "!"""!"*""22#23"!!"33!"2#1"!!! "|x""""3#!##2! #1!!!!"!"!#2"!"!2!!""2!!"! "!"!"!!!!"!"2!!! "4CD5#3R#35";#$4R443CB3#"#%#52B33!ݽݾ"$BSCCCC442B1""#3$2B(g 4=@#P#12-?r$1%$`>21222  !//4 46 /35 @3>"0O"'E@CN2.C-P >%3RA!2$q2.1AC%1&4r@0-=!D-QV.AC #!B/!"54!/21"-2?0QT@R@ 2B2/2 aDA40?!!1R?4!A!.#B >!#21  ## 0 0!2A2.0@1  # !!2?!1!-0! "!#!B# 2 "- !/!O!5! !!/*!5B?ڡat/>SS @%>#!:S..60 ?-4OE%$a1" @Q@ c. .pA!`?,1Qߺ3>=%ADd1$>Aܭq"R/+Q4 >/޽C@1T" "/ 16" 0Q;O5.#1.3%N/441PA!51 @Q'/-/2 pb#EE/ "/`S7-ASA& ?4"'0A 17p a@CD3C^"f14+7N-pS,UA _S0qt- =0#b 0/D"BP 6 r !b7>@S $.0b "b&0.$.$O1PE Ob@r535.&/0b/r Cb̯#@ rT"SaA&11P"1Rr!/R72!C/2!B /#0U "C D.$#R C A.B1!3T ! Pa.4"b#T#D !"^!?$$A41B#D.""bD#!A"S?".a /#!b/ 0Q%1#C1/ 3R B $!A3"1!C # #A#2!>B?32! "?""@R!3$1 "#C  R !"2? "" ;555$$3BC$"A"!1̾"CC6$44CBR4#4"!RP / `#;q3@6 ?sO0/Cc"3"'!CC@"$P",4 !"` "_"P1 !C/Q*>$..A0"*>C N3CA4 a04 ?"M$N1R _S !@ .?0 QAB=.S@ A@3 >1M%5D7/  &Rb04.5V/2 Dn/ 0#BB<.!,R=C1BA 4!3.6A PQ0b O+<2A4Ar  6 N0/2Q6/047?$Bd'-2_4%"EQAB-OAP 3-2!>t E G "D.C +#.5$4BR E-5B q! 7>3 v?2OA3QGD/,#B'-#6,Q,"v q =r_Rp4?!!,2/D.B$-4 # $ #P?R@"/G=#1S/"1 /0ߐ&%1@!/Q40B@$QA27`!@!2D@A޾$q4G-4-53?͟.%CB.-c D/-s4"B$T1-&2CE/ /<%/C,1./̿c32T c1!.c #A1`R4Q1 CrBBE!gX-S=?5"2B,0#.-"R"# 4%2 3b.1bA1A40>-$$BO"00 "Q  "  !0 " @LpQ21O /3 # ."#/"/P B   /!@V /2!>#! !  "01"/0  "./ .0!?A>  0!.!  2O 0 /P" /"03! !"/" !A/>   0 !!! /?!!!" ! Mܽ3#C#4320#B!"#2##2"C##3"4242""#!!/!0"/ 'T?   SS342#1""#2DCB33"#!1!22!" 2"3#2## ݽ-< #P #>P#4&/2s>AD3.2"d "1"r(%Ig4!#@)# 12c o/ R/.PA.ACq&.5  o @_>@ AS6 !#4y. +%-5 O2M50@%/?I-.aA)"N!'-P-b%/! ACB@"%Qs IhCG'!0-%!_1.: >5" -# <4'0#v&q>F4/ s`Y: ?% D@4#GOBbc!..+4BR/.!!7-S -707M;C!Ob.qP7 G "# 3F5!2 Ee-#S0! 1U  6>2%<@QD4! Rc2  bC4/Y1R#B!c5 32C@#%3a32 #E#O0r 21w=+< bqA_ r$M1uQBAg" ""ݍ? !TA# %>3 r2-3.B2A c"b?3 Q E?#01 7?#2 AQ$16" AP 16 -CB@E31&! E1C 13S/0ܰ!!S1 "F  5AbP PS5/8S3  !". ?2#R " ?#>3"#2R!B#S2BCC%4v 3BS?q$222"2#0"02B@3B"2$A#.!/A/DC@.B@#"/ .#$#!Q"-2#CBB  " $A?!  /2" B..!2/ #//" "/!/  !!   @12B!.,!AA20M"// !. // ! /> !!/// ?! /! ".    /1! /!  'Q!!/! ! "!   ?. / *3!""!"""##"C#!"#!!""#o///!!//  D3C3!"""33""1"!22=7.#$N0"  O.?@a:.O2/=Pb"Tn NA4# <"33NP"4 1.O!D$:3b%MA1 ?1#2= !B7 +B#.P2#22Tv#,7 @ 1 p3c/@"!0SP3;@.@1  #03"-PbG/->A2%S#%1st!"&>QD"02  a!/4DP>O$0C E7? 1f->$  QE#10(3r3%Q 5CڿASO0PA`!a.!A=0'>"$7? %@6R!@ScC!rP!36QtR 1 /0f1-CA#=2 3r!7>B".7># BSOa# >1021b3?>=1a1A#p4  OM/0aS3B -,.>B14d#70= = A"rAU1,a3BAQ%S/470O_"00QB ! > ." 2$B S=-O0@P/_@"B./_ 1"M3c- + ?.=A"q%$-P=pa! CA$ C5B?_AL>A$!!!sBE0% #3p"0/4 3 s1>2"B b0ss/>quF?!%?& 0-@ bO~c#/NC "A3b=s#6<P5 1rC@#Jt20#>"1 ;2N2c~B5_S#=42d"1+A`eP/34s^OB>AT?2Aܰ!#?#"0$#!?37 6B 2#-5U3?/q/1-P "FA A& 1 701r30a2D# ' !!6A%b 3!"?B2@/!S$ 2A41$?3B,2#PA2?tRB$! .#!!!"c>%3D"C. /# #3- !s E"$-!3/ 1-@#32U)s$2ͮ0P1$3!> R@D#31%".Q#53 ?'0 2.O OD !/Cq3ー2>!! 12.2D>31"0 ""c4; %!?-A 1o!?@1R-0/..QC>!!#!1!/@1/!1 #0% !>3#0""!""#?2/"" 2"/"0.2$!$B!$ $C2G23! C3" !c5C3!! #!8JR43"@"  S"2C!324!$0#433!!C!S2!#4B#1A##""#4"#"3#2## 3!1"!CA!C"!!62""""" E42"!#E2"2"1B!$$C3#!"2! "!!3R1!!"!!"!!#"#2"""!# 2C26'"#1" ##2""#1!"#"2  #"2"#!"1!!22##""!!""#C!"3""!!""31#2 !!!"#1!"!!!!!"!!SZ!!!#1"!!" 2!!"!1"!!!?XQ,oAC o03%.>"$OQ3.>_!% ?/P /@R44 ,P37 O2S/@S%-n"# N`3 Q12#7 O!#7>O@ +=A//A%A@@4^@F15/6 Rl1pOA@RG @2.1Q%/B.>"'-=2/ 7 >@C4 a3+&-6>o@7q 0/Q4/'/"S  OQ40T/!4G..3/p0 3A7Q!Q0q$E1$> t"&7Mp%Uq?3Ors .7O"s"?"E"3>&C $b 6@B?A wsR/c14/.$/@`6 0T>r.4 75> 25S 16B #0au6?$2 d1S!>3-AB0$C <6$ Aa #P  !T U0"2"C BA@D B(b2"22$B/C 2-Q$////C 5!s 3E?>/46&0"2a5'?0./ ACD C "2#sA#.B #_%3ݯ?U1171R11 >D22DD S1D R"2E#1#2%"S00R3Q"146!3 S04#%3"D2"0Q"!$!B4!3"B 3B 02 3"& ! 3-2!#1@"!#C/$"2/# /S2."6A/B~! 032 2". #/A  "0!$!1" 21 "! !.!2#"/  #! 0;# B!C3! 3 #524CD2#T"" DS""#2!"3C"2"" 21!!2 42333BCR22" 53A !"13#R 1ͽ/!"    /#""!3#CB2"#B!#"""!"3342"!#"!!""B#"!!!#"!"233"#"!""2Hj32#"! "2"!#2#3#3""ݾ!""#1!}l"2!!""3!B"##2!!"! " !"!  !!""2!#"3!!"!)!#3R%#3C4"Bb45"C###"""QAB#22!#4CbB6:#B?QD@ 2! !!B\O=_4 0D0 Q00"/!RE@Q1 A*R-! 2,!V%Oa5" #,6!@4,R,2 " B0$OBC=% R#,R܎5/aAD 5BB.s'!03"Os"ޡ#4#!5#/P 3iDABSb2/"0"S3C5 %-""P$BD !#BAO2.=&!"4,b#,3.Q # 2T#b$/=d.Q2;">BB'1.@b!" wA"A?3AE1""".1,#7/C+O4 e# #Q%Tq2B"-F$?41c=#&@b! F0N%Q426 E7/ QBa C_ "3/!"Q߾AR !1-Q"S QA S B$s3A#0_B CbW05C t3`T R541t"rAR $ 2.$a 5 !#!@- Z4! r F 4D %14A 41$@"1 C1 SD 3ͯ"#  2"5 "5 1;@-O 2O"!6/42A 31!C 0A/?""E4!a? ( #!!@&/2>"1,""b!B"51-"B4!03!!41/"!1 $23$P" 0!?!B. 23."!?/B4!"1 "# $" 3!"!  "#! !#!3#12#0/ "0!/3 !"!"!4-2$2S3#324C"C2"$!"2"31#D2$C!" !# xp2/#DC3"CB"!! !ͽ" 31#SB"#" ܾ#3!""3! #D#"! #1D2!""#312"""4"#C3!"""#332#432!!"""3""!!3CB!634"!!""22!!#3"#"2# #"!"!21!""!!"" #!""""2"!"2"!""!"" "!!"!  "!""!!!!"!!"#3CRB4B3R33B3(.p1$ 2N1<%>7 #Ca6?2&"%oQ.13E0CC.ABR.BP!@aO2D^R>S.B.?3`"! "q?N%$:/-GOa0 ?Au"A "SE +S05. & 33P/CP#]o.r$QA   "!D1WPB"B!!.!3!! O-15/q4B-/ >E.,H#:!A3% C$O2  p4?Ac/s/3 !AD3OP .TO3RUA@/@C"V 3.Bs3BT 4!MP".C" A"&!&/" .%.=A @ODR0Tf//"6,E %0`R >C R &42! /!2"G.1!1@3 !!  b B>" /3B"C .@!O33 7 $1@!2 #0/$B T2R23133/  41b"1!S<0!/-00C>#2s"! /$@11!!S?;#@ 1B!0!"#/ #rR4.$#"7!$2B!3 3 #2R?%/!?0W/" 2!#A#"/ " BB12"!0B2 #kW @ !A.#1! 0/# " /2 /O03 #O #!$!"//1!/1C3142 C""2!1 B2$B3C! "3363 kt"$4 DC412""43231"2"A##4!1.1!!! "#"B!#"#CBC#$!3""#!p##32"""""2# 4##31!#2!! ><!33B!!"3B3"#" #12!""" (!31!""!!! "!!#2!$"' !2!2""!"" !"!$S4D4443D433""!4cC444D3C33C3!ͽ5TDCCC443333"#TSC3C4433@5 -0a$/B =#.AE 0a$ Q.B$ /14>a3/A#,r",1C 1 #@  .a#'?34 <$.5@7/V3;b*1B% D-?C7 C % A%.11 O!1#R,0Q._ `#% _BBA4 *Q -MNV/P.P,B3-`#)0S,$.r7B4  TP&B!Na>Q AR.P.s D4AA a,/b5# aB12?0$Q/a.72$#!/ .B"$sc,1! 4c1c!"C `"?!f3b>#/0CE2t 325 /3r3B! D3 B!3A2b1O!$AB?@2.R TDuR-4$/ 3 $P N/<30/ܼD b! 3QA 1C .!!4.B s,4/ &!2 %12B13DQU^3B!2c>C/ R!# Ra3R#S!T2ܾ$B" .E2t 0B%23bC6#0 5-BS !B 31R!03 %0 $N E&2!#B,&R"3"1 @"`@" 203B/Sa # B022+% 3!!""D= 2@! OB/!b!?2/"!2C32/"S@F2!' ` 31&# P #@Ar00 R!0#13"!2405!#A  "!02?/ " C/BSS2D -%A B"!!""C?$!31  !"OD A2" B 332>C"O!".# "1"22? //!$<2$2&!1 2!B0"2"!"""22/# #".!"!02$/1 "#@ /.!> /"3!! 1!" $ /!  /| "! B"#$242"D3"2!#D3"#SA!V!!2C2!!c33A"#2!#31!" "!"""!"2#33!4421"!"33"2#D33!!GX "2 !"!" #2!""""#3C!LM!"!228B.DO5>#/2.A.?@$ 1C?$/3?B$?%0 '"B-A!$ ?! aA&2/# 06 4b?1!`05P#N$ /Q`4/R QR-Q0 /S>A>CN"?a>Q%".#0a  1'Mq c 2._B@!2#( -!1! =v . :B5 P*2"PE-" * b4""M!-Nb$@E.71 A 0Dp..b"ݰ-c. j@ C@2?3 >2O-$!&!3T!7A.&4?0 1 2#S  CvEa(`5R%0 $0Q. ! Dbd"/_# ?R0/622&6227#!PSBb!>/2ݲb&2" '. -"Q=1?7P!.v p#aݑB!C<  23< .u/&S#2c".4U$320!>!0%.S6. t#DA3!!@! " X 2  2S "@Br11-5A#, $6# /q/EBT#3 , q a/s2? 3"> R2c1!2!>qC@c0#5ΰ"/& ޮB2 $ Qe!B /0D0/0QSsB 2 #C"?!O C3=B24 #b1#TbAG"!B0->"0.P$P$!5/̽5!2/ !34  "!@/B146/ $^%AB A #2#3!@!!./PE3ܽ/# 1!41! 2#005 uA1!2##0/ ! #!B ? #2CC33#!! 1$!11!?!$ C!a11>C32!A  B!1 !31#323 Q r ?A!"#2!! A!/#0C1"!! /" 2" #4"! .  !1D11.!!#@ /?/.1!!!"/B  3/!/0 /! 2  ! _'/ .!/ !/."/ "4D2D3SCCC4#2!"##!""#CB41""HCq`PB$>! AM#A32.1AG3 $?B1 0 uR>qS-" 340  ?s42.L@" tA2A5 #O0C*R!#6 RP`Co1.3*$2CCB3 #> ?DS 5/?ep#'"tA/$bDR#1!Q3AQ$ B@$ 4^P1-e-"2.`='PkZw",! " #?a3#/Nru1""252O@ @!#<$  b2Q 2!_" 5A#$l9QQC!6Q"'0R0 >#-" 5&A ?.'>?D32P2 T/!޽sU/ͰU ,1D.0$ ?44.Ce20?F 6?/A-%Q D/d@pݿb'"C!#G+$u01a&3>AB032"4 4B.D?4! 2##_1"t!/!6AS10BNaS s !#cUBb"5 G/b1261GA3B0S5 /4 5# 61˞! # `B"Q! !ER BQr//B/B! U.dB30!/7?1 5/ Q 5 c. "c2 /Q_#"-.C"C@TA@7=3B>U3Rb5ܿ$qa?D1B T0.PO7?>7&1 ݾ +R"wq '#.# 3!.33q GB/R 6!"112U12""$0'$"4C! -F1!B1!aa$.93$$BS$/&?'2.@!!$a# "2B.RP62 !A2D$?d!"Sd2.. &%OA0!Q0A#mABSr4%"0$" ̬/%@R!3/0C1BR1RCDr"D c2?C"bDO6ھ@ S#43 11N! !3qT,5/T42D<  -A# 1b$ %B /0A4/QC15br/ ..13c.  R"@s%?/ "3@?'/@-Abs&1# $S0A$S# S!CB5=$$3BOB .#.aIBC#Q#T T #4 4""R6133..b $ 53$_5#$O!"r15\E/4 /cS.@T"5! 2!P /1S "?a1T@T/1" 1B!'c =2/2 05;0!$#222 0S1C /2"?  ?R!3 '@! 0""#F5/!!" ",AB#@4CU/3B"SR1 bS=@3>/22$B"OA-"! !$ F $! ,"6!111/&15v""#R%C3 CdS2!'D2_@2 >B0#?QA%%//QR$ %YI>`BC'>P1$;?2D5?aBD N=/" ._A!--$ /0Ab4NQA>PB"? I$ /P12 _12D  O!D01S %aR4/@P@360 Q?A5%O+8_O 1$,0`# LP@% />A"^#C ^1qB .0"5NP46 >3-<,Q&-?,17/P>R .-".6@  O !.!!!#5-  >1"/! ! ""4 1O"A0 !/#"1  !4!B=! " . 0/#Q 2 /!   @!!!/?A ?#1h ! 1"A/ / #  ./ 1!@!?" # ?1 1 1/02#4C3C23!!""$C!3"$ 22!#42#""13#43C2#!34D#3 2  0 !".?1"/!!1//""0"!B""4CD!C!"!4B21"D#2!22"!#1"3C42!21"342"#2"3!!"!#4$2"!!#""324333!$243CC4C"#2!2C!! 2"!#""#32!)(""!!""42""#3! !"#2!#343!""#2""321!""" 3"322!B2"3"2"!""!!""2 "33"!2#2CB31 "3##"!"""1!!!"!""XN!""!! #"!1#" !212"" !!"!""""!!!"#""""2! !!@(""!"!"!"""2!"""!""!!"! !!"!!"!!"!!!!"""";'2!" !  !! >!"^VAN?@12R5%  ,M01QR"$ ->@@AB""  +-.=>? 1BR#5p?0Ab3D =>@@@QBR-/--0`! &, >O0qBRA5N5% o@!@QB6#+<=NOo/0AC#5,-L_0?2BSS#.NO`@aP1r3 ;.N/@0aB4 (,?0SP40 "%" -!!3P!. 0 -! C53BA3 B  0O-."2#"C2 3?$\K / "3A/1B$2$ !/$"443C"@4QPB "0"C"! !!11//  /?-#!!//-!P O"!!1"3!4B4#%$4C$S24R 302$2352C2bC0#CR!#!1"S12-!/   >13B3.-  !/!! /#0  !/O  /1 "2"!810 ? 2" !".!?!0 .- .0!P/?1// ! 08 "# !/!!  ! u/"! ?"/".// k /!//  2 !"/ //0C5 /!>>/./  / /#..! /./  / !2"332""!""""#3$3 "!233B2#2$"#!"!\T  ""3#43D44C44#332""!3#CC5453D3D34C35#3B4"3241"2#3#B3B33"2220+N0D^0/ 4Q25_a3'N`3% -N@3$ .OB3$ O0"%>PA%=@! =@2D%=>1" -PAC6 W=?1$?`B5 .O4 >PQ5 = "O0""& .?`B5 ,/@2E $0AQ3 !"4? .?@3 -/CE?PB$ -.!%?`BC ,. 46/0a3;"?@S4 -OAk1R -.!- !!! 3"121/ /0!1"  ! 0!!1.!! // !. ! M!. !. /!  .   &!#13 ##31#2"!$3D3#C#2234"222!3"31"1!!53CB#C#2T! 2#E#434B43!!#3322!!!"!#4234#3!!"##"3!!"""!#24"#B#" !!#""0"C4D#4B5""!"43S2433B !""""""!!/#332#2""##32!#"!2 "!"334"33"1!"33C"2B32#231"2!"!7N! ##$"#3#B!!"""2#!" ""22"2"""2"#3#C24333 !C$33$23#!!!!"! ###1"1"!ho""!"!""!""#""!!#2"3"21RU2"21#""" ! #"212221!"!""!"#!!"!22#"22#2#!3#32#2#!!!!2"2"1"!!"!"!!""!!!cM!""!""" 2#""!!!!""2"#"#!"!!!!!!!"!!! !!!"""""!!!""3""!!"!!"!!!Sl!!!!!""!!/X 1$/3 #BR"  P-@T0DA P0 #1$.1@5 >ZqC@A@#.1#!4 Pb>BUCD"C.1#3-!$.@5 @ 3ޟ# R7!r5S".B5b'/2%2DQB.61b2bP4 @#$ D$R5@S@37@#C-BG02 c0A42& C !@*aB 5#A30F32D=#9"sC%!23 E%a"4 $-3#@6 p "D/R/_## %D D@4ݱ""4%a"_c-$ 2PC='!A +5%?4>5 1O/"#/Q QS40Da+$.?0 2$0# D/OB#$?041 -4"? /3Q/1P /! /1.#P/0 !00!/ !00 =!!R"B/ 2!!! / "1C/< ./"!" 10.!-"0LA!02./  !?/^a. / /2! 1 .0`"  @/ //  /!  ?@-l1 !!00.#/! // 0  /  0/Uj.!.GC  //    G3"!"""2"!""#"""!!!!!!!" 0//SCCD5#C443BB334#32"22"#12C3DCCCCR43D3CCCC3S#43C33C2!! 62N5O#>"-2B . ?#15`3?R /QA$Q%P ?#>C.Q$0% O?#.3-2B1$ 0" >CO3.B-@fA6PC03>2-!-A%q5AD0D?3/R%Q$A-1  1# @60c1b?26!  1Q5 @C.3.2B'Q$Q$.C?S'/B%.A P?#>s@R.!/# P4  P3@! 5.Q-2A!3 0DOR.Q-B1$1@#.1@0! 9 B!"2C13C$3!"""C"#4""3#C"334"!ݽCCD254#S##2"!#D343#3""#""#""223"$!##2"#$!3<33$3233"1#!3B"C3CB""$2CR#4C432""33E$#C"CB#A7z!!""""!""22B"2"2 ͽ22C"#2"2ݽ""C"44$32"eo"!#D$444445"!  3BC3#3"3"!# !3#43"C#3!"2#"!!#"!#"#"!!!!!#34C#44G 3"! ""#4444"C222!!!!!!"#!""#y!""32#32B!! !" 33CB3323!!"C$3B$#2#!0"!!! 3"4""3"!!""!#!!!! (!3#33"3222#B3C"4##3!!!!!o!"""""!!!"!"!!"!#"3"#2 ,;"##1"2"#"!!!!! """1"!"!!!  !!  "1#"!#!"#"322#2#2!!1"2""!"!!O=!"""!"""#!2""!!!""^:"!#"!!!""v!1"#"21!"!!!!!!!!!!!!  ""!"! !!>TA2" _2 N"% >A$ .Q$=A$=R$ O? >Q$ A#=C%+14=# >3_B ?q.10q$ 0Q5P$/"/PBPC !BC? -/=A4?>2OC`-2&+P!O B /C,$O@R24$Ob.$K< /!13//./?4QA?/=%P2-00/1.20 " a!! O.00O#/+2.0@//! A E?/! .   R" /!.1!  3#? /!0by" !A1  ".01/.!  -!#AB!$ "/ 20! !"1"1yR"/.  !/ @,//.g?A$?"  "  $/F.!" ? .  0  !""> 1 20" /2!    !0"  1 / "  / /// !! !  /? t  !!/!/  "#3#B!33422"3!2""!5425#2"/! "!0!/0/  %0 ///-// /H/!/   *  / / !!33CCCCD43S#CC3B"!"#3#33C"ݽ"" % 2>5O4."-1Q q$ `#,@%@4QR=BAQ$a$,@ /#.3>R%A5 O$?"."-RyA0>?C 0C?CAA& P51T?C.A-a$q4AE >"  !0#/S0?&OR.A,Q#O$/5>B-! @Q51c O4-"Aa4A4 ?3".B'/B7A@ K$ @7P$/B/2-A-2A!?!0 0 050bPD #_6"@%QD$!2/)"4C4D!3B"1$44C#$"#!!$444133333#C"3#"2B2 ##C#$33C!2""#S#D#%#442""32"32#!33CC#C3C2 /. .2"""3""2#3"3""!#C$4"33"2"23C"3#"#2#x"!""3""! 22C#$334!!!#43D#$42C2 ?;"3#3B#4"B2!#23"32!""""!"1!#"#!#"3B3423B!$3443443B!""2#!"0"""""2"#"23"#212#3"""2##""""2!1!""""!!2!#"$3#32"C2"3UN1 B!/1AORq !  0a--t0./% A004R #-4=2/!/ OO @. 0PwEaQ ` 0/O1/BP c/.. #B a#!/ N/!  3/"!!" >!QPA i#."? 2 2!!/ /# O?/1" 10. ?"DZ!   >! A#!! 1/.   #" /"P 2//??/A" 0114!/ .!1 1!/0?0!.)1  B# /0./0! /" " ? @  |BCB334/! #SRCC234#3 8#Cc7 Q43 Q3$0_!0"GPBB1L//3%'"@QE$0 2$ 23<0QE&NPr%Rc% "32C "=Qb#->2ݡ5 3r,3_A$#>1T%/!#65D 6 #`B6& c B3<"1%/?2# b 1S 6.`A #>701C $1R& #C" s&A"B$N02 4/ a5.00tB-.1dS1S2/%=aQ.0ݢB2% RR- 1p25%?R!@b$ @S<&-/"O2%2=6/Q4`1#!0 R1Q# 0##O4"> .1AF?B!! "D3-!#0 AB 2!10!  / !! /CO/"      01!!"B!!"$2/"/ //!Oe?"14/ /2 1 "/V b "//A!? "/0 //?  . !/ //!/! ! ?1 !" ?"!"! !!\ S3" ""33S3 !"3! 4CDCCC23 !!""TB4#3234D4352&! 01/./ /|A"  / / // B ! K"4#"#2!!333CCC442"#"!!ݽ21#r/  "!!!"33323!"! !!Md0-A5=?1$ 0/  00 <@BC 'OQa#>PA45.?p"5 -O1D&._11>13% _A2$>?25NPQ4 -_A3' O B$OPR% O@1$ =?14 ,=P?QD%.O13$ .@a46>OP"  2T/N0OQD%/> " NQS5/OO1 -1b65|#/ O1 .OqC - =1r&?O@ ! 1R3S3D3D1"12! #B$C5D3CB4343!`//1! !   .!! ??!?. ///! !Gr33S352CC3341#3"B2A2!!D#S2D#C2u/.!!!!/  ,  "! !!/!  !""!C4C3C442!#!"""2!"1"!ݾ3#C34331 #BCC$43B"!34D$3443C"!!!!x3#C##33!""""2"""!!33C34331!"3B5"2C#!!#BCC#C331" !!!! "B44"C24!2!""!| . / !!2#3!3## "3#!"!!"!!!#"32"#Jg#"#2""2#"33##23!!"!  ##3kH3##!!!"! ""!!"""!"! ""#!""""233"3#2! #22"2"!"!G&!!!"""!"!!"!"!2"23"" !!!#2""2"!!  "! "!!>)!!!!"!!"!!  !!"!""!!!!!!!!! "1"!!""!"!!" !"!2X 2$  <.^_@A0124 /-_g B-?@@A125  _O@@1R2 .>=_.A3cD$ ..M=?>?"3T&# .- }!a2RC -/PQA13T4%+ @aBRC5"..=:OPaAA25 P>'/O/@2 @3 $ ,./ 3cBB$ +N=^!!B"!D -/N/O?2&& ,-/b3AO!21P0!0! C  .  6 !". p"//"$ 2-B!$!1>"PO?0/3 #2/ ./W_2###B%A# !> ?!  433RB3D-$" #T#6!34C42$0D!$3!3"22S2#Q!B1! -/311410 0  A! " 0 111/!!! 2.=1 /=?? /1B " +#A5 ! "! // .1!/K!./ 0#  "1" / ./1e!/ 2"- 1 //  2 !!!/ $// "@. 0 $"? /".1#"".Q ..! >"  ""/!!!//!$  ./? /. ! 6!?  !!!f     ( "1//4/"./. / z/ ////xX"3331"!""""4#4#"!!!""242#222#""!#ܽ#CC43CB!"3CD533C#B"223!!#C#D5$"$!!!""!"!!!"3332222"d""3"32# -C$^@"-P0-QB$ .OqB%?aR$,NAR$=01$ ,NA#V .OA3 _A#.02# -OQ"$.0CE>p1#O1D&._@3>1B% -O@" -O244 ,.-PBc5/@QC# =OQS5-N! >@a3 ,-  .PRR$.O12>Ab4.>OQ5$ P@R=@a5# ,_@36 ^@0% NQ3DM?0.?" .?!/k// 1/!! / . /!!"  D8 // ! /!/ //  "/0! !/  !U   ! !/1 !#242#3"22#2"!!"#S3C2C2# !  !#!5352$43C"!2#3!! !""33C#3341/"#!###B!1"""3#3#32#!32#2!444C3S#R""!#R3D"C331ݽ#""B2C#""##$!""0!#!!"334"#1# !"!#333"4"C!"2#1!2" !!!232#333! ""0!""""#3#"" ""#13#43$33B"C$4"4"# !!  "!!!222"""!! }""2#!"!!"""#2"3"32#""2!2"  !!fp2"322#!! ""!"!!"2"!"") "2#2###"#233"2"2!"""22!""!!!! !"""!""""!"2""""8Q!!"222"2!""!!!!!K3"#!!"""#"!2"!!GR!"!!!!!!!!!!!{i44CCCC2Q!"$44R35#!#5$%2B2324C54#5"! ֢HA"'B 2u4B033dD$/r-p5B 2#O""N"3BpC4. 1-1303 $`R/a5p6U2S$A!, 2-#Q$0CP# Q" 43@S 4/P D3N2 E. %BT$1b>&" #  R)%/C.S50BB.@5,@5"#%A6/E0T1# S-605$.S3>"#Q?S>`/"5-D1A$!BS0q114!#5/T"D V.@3 0.T!.3C4 0!%A$/-/4//0!3 b#o! b 4"R&  #1 3Q"22F D C??pR3Aa"!+~K32!/@C"?"%  ! /.//#Q$/ "  1 ! 2 A"/=//.1  U! `!!/"/#" ?3?/"! ! 0" 1.!/./ ?# -/ ! !/ /    !  ! ">  !0  "3!?/!?1/!!"!cD  #/"!/1 J`00/@/ R / ! /!1   / O  .// !/!  /P`~/1 / 0/]  r;3""2!#34C33#2!!3CD44435##""!!#"3"!3"2!2 /4!NC?#.#-1R Q5P3<15!3PBMB2Q4WQ%P#/$.B.R0&@#O#="-Q,A 1$ @5@S O4>3Q 1% PD0b /3-1,ac7AC@D ." 1 0/" S& C& QA //4 3=! 1q4QDO4,!2|?2 >q#-a#,PP%0C Oc?CB-A$@6 o#>$/3B NB >@Q$-Q$=RO  ?A% A# =R$@4-@"?"_AOR=0OQn@?0=RD -1$/"/AC-PR@B4=A,-1E A3/a"/.26@c$/O#&$ /B,>S6 0r/Q OB%1$=@$Q3+@4.R%/  37P3&.QAF% a#/P- = QB-"203 @="20T 7< B# `C.B.3C,N0  2!< `"/. a."!A#?!0 %!!,2 ?OD  .  .PS2!B""" " @Q$/?"!A1/@!!-$P$/B !2-}"    /!!#3A/0 ! 2! "  "21#.@ 1/N "!! /04$ .  ! " @A00 +.//O/#?0/"0  /??4.0/!/ 0?!"0! !/! /"02/ /  !@"!.// /  / //!2/!/ /!/ !  !//  "10// //    /d/ //,./ 0!/ݽݾ"3"!"""##CCD#4$"3"#3#$33#" ! "#C$324#$3#"!#3"4"""22###334#44$#4#B$"y!""2"D3T3CCR4#4345#33524CB4B4D#5"243C"2!"ͽݽޠ13?$=!0/ 0!4 pf.DP5>C=BA2%a4 @>BB%a$?="-AQ-P0 4 0s ?b-!A$ FOA%P3 ?S-"A%Q&@4 O-!!AA%0$?# R?b/R$-1$0#? B>B!(N3=BAP%P# 2/3-3Q$A% _% ?R 0C?R-A QC+@D PN1b"p`. "0hqA0c3bQ0/  >`//S/1. /521 b 1!/2!BO3>!%2?Q//  .a`?>ޯC3B.E#/P  #!/>0C}!!  2! 0"  2 / 3C0 !2#01 3!? "/!O /"@#!  {.@!#!"B21"B R""#@/>OA"?1!# !/0!  . ?!  @cW/!"///  hGs3CA"""C#5""BB'{3PC Dc/50bCD $RC #,0P"$1B,3#B4  R6$-?B 0 AS2%!0"5 >aT5!RC4>"3" !$3=a5/Ar11BA3~4"2r'!A4>D $ C0"q6@sCRA$3Ba7%0q3 3_5B#r>5,?  1C $!A#Ot?!A/$ 2C&AR$=O@`1=C0A 5C0%>&.13?3/P !5AD4?#QB3,5OB >r !Q4 02A !!#C"#!?3$!P""1 ! / 0/2.Q00.  !1//1 ./!A/a03! /A2/!!.14 vE/  "?0  ! /1"/ #    / ./ !   !Z q  .!#. 1/!!0##!!>Q21?   21    . / !./j / ! ?20   / / /!1! .3// "  #!4CD433"!!"/ݽݽ#2"#"/ // !/5/f22"!!"!"##!"#!##2#3O!/!// T3331""!! !ݾ!" %!,B4QB6%.Pa3=PQ$ ,NA3&<@2# -oAB% ,O1 ?1#$ -_P2.=BD /_A4 -_1B -OPB$ _@B5 O@2 >!3 / =0QC-N1#.oQC&/N0">aSC/?/  >aS5/?!1D//)#>@2,O@D.O1" /!/ ?!/!? cR.1./ "  1!q$C623D3D!"  !D#4"!"#232"2""#!#S#D"32$!$#3$B3C"2#!2#C2C33"20!"!2"2$C54#5#4"# !!"#S#4""1#U!3""32"""C#C"#"#!33243#3!"12!2 "#54C"33#!ݽ!#!"#"B!4BCC$C44!" 3C"" "!#!"21!!!my!#C3C24231#"322B#2!#"22B1"1"#!"3#2yk#B5##R2C3" !!#C3C"32# !!#!"!!"##2""1###31#2"2"!"!2"B3C"32# !"!2#"243#C3C"!2#B#!""!""!!!!3#B"32# """!!"!"!"2"2"!!!##"#1"23B#C$3!!#3#B"3"#!"!!!!!lh#"#2!""!!" !"!""###""!""""2#2#3c3"#2"""""!"!"2"B#""!"!"!!!!"1"2!"""!""#"#2"2!"2233!2nX!!"#"2!2"!""!"!"!""!""""""!""1!2"!!!"!"r"!""!!!!!"!!!"!!!!!!ft"!!"!!! !"! !!!!!!!!!! ! "!" !!! !!!!!!^UA+MN@@!3CD%  -OPAB345%=?PQ1""3u,-<=>0ABCC5.=?O.O1AR3C .>OO@BBB%. `P! "# 7GQ  -->^N>@!Q3'#$:/OO1!44R3 -<No??0@B%$  ,*--o11@q"C/cU,]0>.0DR2&% ,@A@"AC# $ ."?Ap?Q !$=   P5"C ,/Q%.! 1..r2 1r2/ 0=!/ "A?"0!-.Q$ /4 1!"BBQ23- .332 .!2A ! "A 1 . "A/!B#? /0!".> ?-  / @ =Q"?-!1 "/ 1?@ !"/. 0!!@C G./ 0//@// 3!"!!-.`  1/? 4  !"/ !-12 .! !  0"2  !0!`!!0  /!"  ??!/. ./? " 11 "/ / / @ /  !! 13 z/    !AG! !  / /! 2D3E4CC4"!2 / //"/////OR/!   ) //?/!// //#43DC4B32"" ""!!#333###2!;""2"" +61%B[ M/1% -@@$ -@Q#6.OQB5%-@15.@A% ;?0C#+=P2% =?0C -OA OA] #-O@>AB6.o@3-_AS6/PA4% _QCD0A1 ,. .= D6?7AD,OAB# N 2 >14>@2CO2S%//0" =@R4&/?AR  bC7/?O7zY 5433cR2% !AF!&R#P0C.27,@D PS02 2>1$,03 #`R/R'=2SAC.0"0C;S"BS @R @2 RC"B.%0254>Q%/!S!r.%1C$/!35A34.b%2A8R/ D0C#a C#@Q!b/D0D/ ?S$=C4;R!P3." b/0$O1B0 T04 24/"SB!DB5"ASNr AB.a#1$ R13C02 $"OS "%#1"$?!"b S  P3BE " " B32/0 ?RC!3 A !1 2P  c#! 30"A@ Q  !A0 /'"/ #1#/"Q00! ! $!/ ?/k "! 0P !! /*1./ Z/"@3"  "!.#   ?  .  /.  3/  // " /?A 1. !"/  !! !#S4S443 ͽ"3S45B"D334?#B03"#!!!"323D4#3B!!!""/ ! !" !./ @?/! ?   /!/ / !/  d    !/ 3P. /" k"2$4CCC43"2222"C3CS#3C42232"!!!2"" /gt23E#44B33CB1"!"22#3"2## "!1ui޿03?3>"=2 . " 3OE0T%/a.R.Q%Q5`4 _4>2-a#,Q% x?3/"=BQ1@# ?3?C?S>A1 @4 @3?B.B-R@&@C O3!! 114@# /#N3/c$0r$.AO5 @$?4.B,! !A5QCP#.!2a4-q405N!2>b%NM@-3A O5 _3O1 2B-a `$ # #?A>1,A pPB >SNC="AQ#1Vj3 .! .10"@ /// ? !. !2#C"4233"#344!3323"""34#C"#B"""2"2!"$CCD2CCCCC##"""!"#"3#"#!2 "!#2#3232!! " """!""D3CR"C332!"""2!!""CBCR"4B33"""2!!"!"!""3!33#3!#""!"!""#"""#"3"M%2!"!""!"3C45"4445"""2#1"""!""1#2#"2!!!"1!2""!!"!#23B32""!#""2#2423433B"""!""!""3#3333!!!!!!MU!""!!""3"""""!2"##33332B2 3"3""2""s!"!"!"!"!"""!!!!"!!"!""""!'!!"233##23#"""!! ""21"2"2A9!2!"!!"!!!!"!#""#"##Z:21""#""!!""!"!!""!"xd""!"! !""!""!"""!"!!!!!!!!"!!"!"!! !!"""""""""!!! !!!"!! !!!!! !!!AO""1!!""!!"!X"*!D=@%-P2A3@Cw@46/@4pC  2A2-O"P3 -!,!#P5? /S%QB/35O3_ ?q$ O /Q" -OC=@%-Q?2oB,@2@A P! >!>a%/B!/B3=`C.Q5  !.A&RMO#$>3 >!$? %r /2 4D# `  B$O3? 2-#2   ! !A- 1 1?"A!#_30 /2>!!#N P0! !/ "@"1 >B"!!>/3/. ), !A2   ? #""! / //031// !  kn0 A/!"01/3?"/- ".!! v !  ./11@". !!!  /! !! !0/21" / 1!.# / !!/ /?"!  ./" !/!!/>!) ./!/! / //! A   "/!!//  1/q!1.  / /Za./! /+/// !!/ /// _~? (4#B3$$33#"332C!""!"""2"33#3#4#3C#3"#!#"3"3#""!";#245"3C3CB4#3D5$35$$MqSOD>2.3A`@ !3 @c@DN4.A-11Q$@">=#.b$P$ @#/3.B>r$.QQ$ PC 1s0N1P3,!0 O# O$/B-BQ%.Q%AC P#>CB1&P% 0/?B?b .S-A$0# 4/?5/4NBMR-aP$@5 0?3>2AQ!@C _# >4.1<2,Q@% P/B=2MR,qP/4>$>3>3,A0% ?T >S /3A1@4 @B .!  .! 1  3C433323!!C33!!ݽͽ2432C332#2#D3DB"CB5"!!"!""#2"#"3!$23C2C342!"32#33R!"2#""21"2""!2;///  ~ݽ2#42332#!#"#22" !333""!#342#434"!""5#44#nB43!!#3#B"33#2!"!#"#2!"!""!"2"2"2"32#4#3!3#4"3C#B!#31"2"2"##23"3#"322##22#2"2""!2"322""#"$!""!"!'+  // 0!1 #!  4"!//0/ ߾!!!q> $/?D0a!"P/ Q!/? A2AB/ HDE -!&1#SB.3 >!!!/""Q#>u#B043=rB2@2C4.4"B#"U 3 ?! O@C0Q# /0 $ @  # ?`0 /AP0#"/1&.b0 //?"@ !$#K "  &0 2"/! /0 >."D"/A/$?//>$./101! ! !0/!//#@!""//  /!#!!/0.2/01.0z@"! /!?"."/ ?"  P/"0!!I#@2 R#$C!#= A2'PP$ -2->Q$?@BR$ @ 4 !B_3b 5 QR5.@QQ.$=3P $% QR 0 A /4@/c{6O/@ " 4bBC2"@4 32."QQ C '>P3$=B!$/@B-6PcD/RcR1@S6?Q2 71D_1R "0#1 A #OBc-BSRAA+2 2 R&1# d!E21R6"53!%C!S+.12ݿB!?A`1S""A.b#> 3/4.-RF P#04$0BR."2=C-!!-=#2/4#@0 !=.!-/B?!2.?H/ /B .2?A/# 3!"!_"2 (0/?/ 1 !/!1b!A !#1?$/?#-0 @"//-"///  /"  4Q"  /"M2 >" 1?/ / "!" "/ /?  /^!/2 " .// //    .=!0  "!"2   3""/!. ".//e  !.! /   !2""#CDCCB!"1!!!""""22"!!%/! !!cc443B#3B"2""""2#"""3./// KP2"CC3C4!"""!!"!=V"-C#N01.A1#MPB>A2-01$m -@1% =O1C7-NQB4 /oA3% OA# ,_@3 NP"$NP2$-O13-?14% OR?pCD -O@" =O2D %/P1D -_QD5.N?.2= ".@BT0@Q#=&_Q5 - =1SD.=Q2=0SD/>!M`bC&/>!ObS5%/O? BS 6  -/2"//!/. !/". d"?!!?/1 ! ./ 0 !/!/ !!!/F!  / /  !tU" "#3"$"#""!!!!"3#2!3"#ݽ3#R"$2$!#""#1 /    !"!"!$24#2C"2233"4"31#""!2"2"!!""3"3##2dd345"3D3C#2"!#3#B#"ݽ"2!"""! ""#12"E'2#3!3""!#"1"1$#$"#"""!"33#$!!3342443B!"#""!!"2"!" !!!#"32#""1"1!#"#! EA"!""!!ݾ#2"#"31#342433B!"#222"2"!"#! !!! "!"!!"""!""! """2"!"2#13!z3#3"3##1!"2""1!"!"""""!#!21"1"!!"9!"!!!"!""1"#"#""313"3" 2"3"""1/ !!!""!!"!"!""""j!!!"!"!"#"1"!"!"!"! "!!!!!!!!!"!!!!"!!" !!!"!!!!!!!"!?]"!!"!"!!!G.6A-NOP1A45%L>_0R2#%  M_@@A!23$ -;-N/0ABBD4dNO>?@RBCD =>OO@QBB$..* p@1%% /OOQQ@ $5/%  0JQ :O0?@0BBD3 .,?^? P0B#+.N`@BRBC"-//Op? s%B55  '?# -QP_!QC"$   -P?Pq0?a$>.0 1 &A"  -/34 ,  f 0 a!3//.>31 Q#?-/B3 Q.P4OC?31! 2QB#/ @A$ ?!#B!1 !AAN.Q /!  " 0//2-N/!!-C#/0 5! 2.  ? P!-`"!!#! "k"?1/ "  ! !/#AB /// W! @  B!"2/2 2?!   ? 0/0 !/! //022 !3 !.#  1@?/>C -/  . "/ " 2 !""X  ?1 /  ! a!*I!"#!../` ?/! // !1 /!b!/ ! ?//!/ !  /  !!^.//!//!!// !!/T~223323!!!""!""2#3#B!"!1"4#C34"33"!"!/!!!33$2#232ݽ""2#"+612# @3%N !/15 /@AC .`AS4/@A". $&>OO!. BS%0O@"ORS5/?0>aSD//0 .Ar5<,.PBc$.Q%/B/"!O #?A"3R"=V "0/B> Q#!00"/2",p"Q!/ /  "01@,rB11/0" / !//!!!O2./ /!/ "1 ! / !  !0?1! .3"/// !! !//!/ " 2"#44CC25"1$ "##B"!"!"!2C3SC3C2"1!""3B44!! !" !!!!/EJ!"? !/! 0  !V@/// !@   / /!0./0 /  /f! /1? "#!/ :// /!.!eVݽ3CDBC4443C3R#CB3#33""""#"!!#3$CD4C443DC3D3D34C4#C42B322!2! H14>$>#J3AO ?# 3?C _6/6/R.aA$Q5 0#O#>A.Q @/3>B.A-APP n " ?C/B-!a%Q4 @4>32AA6P$ P#>2B,A%! //2/S.R,A&A A5@D0R B  `4P$O2.3R$.R&ADO"./R?r#>r0 .">#@R$0S!M53q1+04 & ?2>".32 A2_C^R?#N0-Q2$@4/2!0 3#$!!1224""3232"23B#B##132#2"323B!/ !///""32"233D!33222"32#C3C2 C44244$4#!1hP334D3S#4B230ͽ" "!2 "32$"#!# ݽ#3$223#"1"!$2#C3CB!2!!"5#53$5#4B!"4B3R"3B#2!1!#33C14#22 ""2"""""#2""!!!"!"!B3C344$4"" !#"3D35"#B231!"!!" "!!#"2"!3#"3232!!"!!32C4#3B#2"$33C2H3#2!!"! ###3"#21!#"""!!!!!3#32#3#2!!"3342#4#3"!!!"!#"# !!!!!"" ""!"2#2"#""2""#2"#"""!"!!22!"""!"!!!"!!#2"""! 2##33"2"!!##!"!!"!"! !!1"!"""!"2" v`""#""!"!!! !!!""""""#!# !!!!!!! ! ! !!!!}!""!!"! ?UB3 NC N1% ?A$/a$ >B% _C$ _Q&0Q{ [>B#/C$-A4, ?N>2,/ ?R%./>Q4>A4?#/@3/`1!$?rMOQ#=R# /B42C 1&.0#12-`3-?"#,OAOb$P4OB0!=!& =A"@9Q4Aq B@-_b MB >3V.$.Ab <163.qO4A%*O3'-o1A`.$LOVq C4 ?33@1bA05 . "AC L 1"-30' ,1u40@ !! 2?2!QQ%?!0# >b2- ! >2 ? ""$/A  ""//$Q" "0 1!" -#a? !X 0!!!!P #.? "A / 0=..! ?/#?"23!0/  "/ ./?/ A!P#   /?!0!"" /  ! .! 1/0!1 !/! ! // ? /"!/./  /2//1    ![! //!/#!/"d  ?/ "  R/  .  !0 p!.  !!/-\! / / /^" /0/][!22332#33C#32$"2! 2#3"4"3!"!1;߰A.D0D ?4?CA0&Q5BS @3>% .S/b{l.1AA% @?#=31Q% @D ?#R.Q#P@.!!E  / @4 P4 OC.3.R6/B61$?.!.3.3@ / @41S0C-3+1a62S/A394P# OC0R.B,`# `$/5 ?4/B=3! !# /".!@,2,Q4P713PR0R/$ >R/b$A# 02 2 /#!42#D3CB3#31"3"30440.0 .!. "33C"31#2#24323222$333!!$344#33#"!5+!#CCS2CC4C2"! !B"2 !ݾ""#"#!!#!2" ""12"#!"43CR#D#5" !"!!#53534C3D2"!#22B#!# v!""2""!133#32"3"3#2"#""2#2!""""3#3!#"""1"2!1 "2"3!"""""!2 !!""#""" "2!"" !!#!!#!#!!#"""2!""2#"#"""##"334"!!D!! "@$!<3 r0B!./@25/"'!?/  60 BQ/!!507@!4.%?#!@ 2! R F!"1# 7 &ܰ5"-.AA!0,!12/1-1%!0B0!! 1!R;#1/""1@2" ?!//A-/!,.@0<# !0 /E"  !"!? 2#1a !1-!3/!/ $! P2 ?!? 1 2$./!/"!"!"!!"/?   H> ! 1A"///@!.  ?1!! !/|l"2"33"!#1#"2"" #3243334C53S#525"#2"CR3D43D"4"#1!]7#A %/AC 50 w#0 #<O_!C /P4%1< CN'0/=A0D3 $!1"O!R-?>C.$2!R%/b#^$<B /=6.rB+!43 5"&a43@QR!c $;vu2B @$ !3C6041Q U/"%2! PB C"F//A#"0PC.7"#F10j 1 s?#D/"9# @ b>A-QD R 3a ? Rd2?0b !B'0"7l-B .C"!M ?AE-"qB37>uB& q"#CQU042.B 4"##cO ^C QQ!0r.-0 rQ!!3 3-2DC.C7 0S"#q &!>&>"s.11E0? .C 6>D#C5 $"@411 1F+2 5.#,3O 10!,2@+ b@D,$CAC."$ bCr >'5.$-ܭCAb3NP? 6 $ T/0F/"!O0@4+ S"R $ 3 7B#AO%/SD a S"72"t41*! _1111AS2?441! $"1 1.s?#1?% ! CA.S sC!21C7OBpD">Ϳ3."Ab"@,=%>@rS2B1!02.P& A_DR4AC E"j "##%-""$@Q޾U "$B70-#  %0! " 52T@!'220A02BC0""R!2B!p%ASBB3C"CD//" .%0!P3 !11>2 3Q/ܯ!!!.> .$1C"0R0S1#.?3OQ.!B@A"52.6 b#?5" $. AD$R20 1#1" Q# "A0̾3!"d. $20%A $ A6e. 1!-'?Q$2S"3 C$/ty40Q&1E/#03! @/!5/C"%!!O3!@6 1.!1! . ?!#.334!?"0%@3S%2"0$  4>C&01B.!E!."A"!2" %/ $T3133!B4#A" N?b " 3#!024#12-$2 BE/.2/0#0A ##!C2.!"D?"  V""@"0"/A045#O1 $- "!22. "!03IUC#D3623D3 3C/T0E4"$c"2 !*=04M?! .01 -Na37._a37.QB ,=0B$-OA# ?/"5?_37.0O`"5 -?"B>_@R#>02$OQBDgrwP34=C>3%p2C -Op0R27,+>P37NAA+116-O0A3/0 #$ O>1/O,@"0A#  2 !O / 0/P.A.3//! .M2"/  A/! 0?  A!?"!. /!!!!"?" !/ ! 0!/ !0/ #!23R2CCT2#" T"423452#3 "$ "!#C2$/""1/ / 1/!"3CC#CD3 !#0! !"ݼ3"3#6"" ""4""2#B21#3"33"!"242D2"!"#S3R13130!3#33DB$3#!""#"!# !1ݽ"#4"""0""#""!"ݾ!#32""344"42#B/  02#1A?201Sb@1 0"7!/ 3@3A"D+2?.B,.j  7aR">3>11 At/5!4 $!#rA-QON'"C"0A6#0&!/A$Q.>c#/rCQ1!Q0R$R#21BC>C !4-ͭq"r/.E#32!"$1C@4/#.?R" b07 /4=C2 014!"BU 3 C@32B"SB!4037@ C! ?3  1 D# v !A=60AAf >?Q޼"C0aR#ORDB172A!12! 5r#B ?51p/s61&! !1@!A.$QFA wQ?.P$C1!!302/cE.B"E "22  # %B&1?C.73Q0D` "# "D B $ Ͱ#BS 23r$/21!"C3#D C3%!"23! 2Bq6// 34CIB322?$2#PR312> " ۾BB"3A202!OS # -!340rR/ 0"3P2D#?D10 D2cB1//1 "/1`"0c0X0#& =N?00A2B# .M >P0B5" 6 , -O .01$ %]P+.2zK?_A#BD6.?->11C5"%_=1 0$&;`a315 .@'=>AAS0> :A@=@RR"  q?-q!!T%P`1O02C& B&'?% !Np>!"%Oa n-=GPC,?0!w @D O2tA,&  "0r"@ .C4/3+@C/~.#O>7/2a_/'0%@s.r >$4@!060a "2#4!@>q6BQ`$R$`_CS b!!! !RCD3  %% c3"AO/Aw."r$2 15/$%F/ !1# b12Q5 1 P5AI7!a3Q!!#R.A4QD#"2E!q ACSab$$RT/ cba/D?D! B? /K*##>P# $3! A!Q,#!"MB-236/3!Ma &CAQ1?2$Tb-"R/' $D272FQ5BBa20!S.5@E#36/CD42b$ A$- 5 ? $B 3#Cc@R@?5A$3S1` 3C!2.-4>%/6G!q";!3B q3"e"t# CTBO1D P  0$ACQ'> B ?!5B4 ,$ ("4.".&24F0 #1F" AD 46 6 #211!RDCDC" #4"_"$"\uC 1B0%0E/$2"  2-R-4%A+#о"20?!3 "r,SC$ 4!#/ B6$04$%!/#RS""!2#+"/"325"B0 Q%2#"!34B 3p!"." /">30 !1/."!@6  0$. 0%#!/!! !!!1$""2 ./ 1"#A"2!!"bt!0#1!" /0@1!."  !02 " "#    ////  /"0/  1" ! "2 "/!//  ! ?1 "- /0! / !  / ". 1 0.//H6C34 "3S3D4S#3D3ܽ#"4D4 -C#^01 =A0%.aB%>qB5%>PA4%-/QR4=_Q35->`34._A3$@A . 3 -_P1>PCD>_!MPB ,=`B$ /A##=`A5=@03 O!#,.O3NA3 ,^P2% ,?@2% =P14 A2D._B4 ,NBS 7.>A2-0b5O@3 <>3T&?P0 /BE%/?>. ORs5-L) ,_@3 /?A1>"! ! 2.!0./!fk ./0 //.!0  .!^/   ?0 /  !/  ///b"! "1"!3#C"#1#!!3!"1!"2#4!"3""!3!##B"$3DB#CCD""!"2""" 132#2"2#3!CC(#5"4"##3BB#2"#23#B3"3"!223223#2!"!D3DB3CCC2:>333"#!!/"!#"!! !"3"!! !# "!!n^""#"" !22"!! #""3#3"#344$B3C"1!2!"""#"""! """"2!33B2322!!2!"1"!"#""!"""2"m^#"3"#"3"$3CC#C#B!"3#2"""!# !!"!"!""/"!!"!"""!"2"!#"3#1!224"#332 "#""#!"!"!" !#!32#"#2##"" "" !"!!"!!"#"""!##3"22"2""#2"!"!Sg!!"!"!"!""!!""!!""!"!" ""#""2""""2"!""! !!"!"!#""!"5R"!!!!!!""!!!!!!!!! "! !"!!"!!"! %!!!!!!!"!!!!!"4*Y3AE2$/CR 0 4??3bCrA?A.#/"24?0b-q^471"!?D!=P6 ?q%/S$2t2D !!ޮAR "#4a1@7;W FB"40bBd? #R/QC 1S0B??`ܯC Q/2-B#0Q3SD"E"#?Y"4/ ٽB#"/R`3Q?! %?A!R2p"4p1-0b1RU"1#  E!Bu E!#b451Q2߫R"%1@3B?Q3ݽ!!RN!3,1qQ3/5P=b/A^3`@?$ $. #$6 A#"R7"A1a0 #  7 BDB!!Sް4"!#1 !1cP!W@"pQcC"/6CD @ !c 1P@B"0c,#1!2"> o"?45 2S2 b %01SC-2 ?DU 6!#@2"#<$>4!#1/0c?3" 4c$rB1߿D/%A0AS B%?4R@ Q&B$"!4!#1bC1#?"@B0/C> "R1TA"!3>2/#c2A:3&0_b 3S=T3/ O"A!1%A"!3!b DA0!B.".>$? Z" /"S$T  s.3?0ARA#R2ο63b43!/CB1?@B/$ R04="-#4# !400R?D!$12%!C!/R 4/!ܯD0c1! RB/"0$23!ܿ4"C"30!10?45C S"0BT#1R/  #Q!"5$C $%4#d2 O|2#"/ 2 R243 D5!" !2 2  "!5B"R1A  !."q>2.!c!"BR?!! A !#1  .1$R"R.#D/B %140!!R0!!133" B"4CB""!0"3?/%#4"1/2"?%3 A32" ޽22U@!"/$  !@#!Q=?/2B !$!%B "`4?#AB3/ 0!  /#13!!13 "#0V8"1#.$#B# !$ !  A.!>!"" Q 1"$$000"1-/ / 002$  11/. ݽد !.>3>C$.a0A7 "DAC@604& Q-2QR4 @4 N3N2,A Ao@4>#.R%B@ ? _30R OR.11 `DAC/C!  /@4 O#O#/bb%/AC"3a<25_$ ?# O2#<2+A% Q#,>&_?2/3-q170S_b/B.A-R4 q#>6J^21$BPp .2>%,B$=qP /E/13N2,A  O2 N4 B-B;24.A" @R 2?!!@1/! !0!/!!!"!! 31!!".!!!//!6/./?! ! 0/"!323 "3#3CS3C!ݽ33SA!2242 "fh!"3#D2"33""4"442!""C"334DB$""#342!!!NM 4422""$# "B/!"#!!31"3#4#D!###"!"""!!"!4CD42#D$4"!!#3!""C3CB33231 !! !/O>>.2>a/%RO6?BO2 lB2 B0# Q60b3/Q%A!B>#d ""c r%?a 1"T"!1D>@ A?a.!?PTC @%? A@P/ B"BT#..3-`$q"( S/bCa-15. a2".#D. "/2< =01S$C#c%2BNDB%21210Q>޾P$?4$B #QD/D1 @2! S/ U/ #0B$!SQ#T1 2 0"-RݱRCa./$5Qo^ q00$!0C3 !a >%"4O0B4>/4?5 /%4"e@C"T0 !. 1?B1 S-4"2$!"C! 0C20#!.A 4QA1S>""##>!"1.R/bAB,./4#'#$!1"4!141"??B/.0/1.0R/#!0"@04A/! /""2>#!G:b/ D2 "2%DB!"o2C4N3$ N27 2&? >14?t!$104 q.2T-a-0S =BC>A Q2E/0. 0`#40$AA?R BBU/RE~E1R"4.Bs/1% `"0q&>1>1"%a/P 01 0.!A2=3r ",U!4. r/ D#",37 0/Bp0/b+B4 5 ?RQ D ?P!05.@%1@ B__&A 4 .3D;  ` 5/> @ _T2#bD3F.a@_#"$C.O37> @B#<d ?""#S0 Rݾ' 0R % QG.CA"s1F4Q%1!/F2 Qb#-'0B3t#"4$#t$"436%A&.@2dA '3   #OE50#!6S߮=$ !1#!@L" #%7P"$!! Q l;#A!B.24ݿ#. A.c00 Q421^$"$C!CL!C/!R5!#2"SD 5!EP4P3 RB#TBb!$R3D" &44/u"0$$3O/C"=C c 25/=3CEB? sDP 1PCA3? "2#EAA2/ ?"_"20!? 44U?sR!>?R33//C!A V"C#1"C?>"/01201AD 3a42BB"@ !1?!CO CQ5 1/!BB/5/ $!OBS1 3/B?Q" =A4 3Q"ݯ#23 "!!!D"$S3Q2A޾#0!3"!.!1R ""b4 @@A!0%3"2"> -3! 011!2 ! 1S" !1 "!! ""/ͽC0E1C4R2"2"3C!#331ݾ3122$4$/""#"%!  22 "\(!/! ! ! "/2u2. 0  .3!#!"21"!"!3#3$C"2"4C22!!$B0I/"1 #0121"!"!!!"!!O? Y3OSN2.!A0# O#+04!4`BOb .BQ$Q%P ?D>32 0&@5 _2=3-Qep$0$@3 O"NBOC-a @ @5 OC>3.QQ$ Q6@CO4= 1 0 ?/3>C'?@3'?R-Q$@E PD 4,  0a4 ASN3-!.R&/b$P$>#3>b/Q%A >0C+R-2  ? AD0C=  0?/"B.rE1b5!3D/24@4 0S1. !  !!> !   //  /0K#3C2"3#"! C24"2/335##322!"!444C3C3$B""!4"" ݾ""""2"""2#2!#"##!#!!S>#$3CR34C432!!#!1"3#CCD3CR2C"2#323"3""#2!2"4222"3"3#32"2!"!#"#"!2""2#2!"2!X"#""!"#""!!""2!""!!"!"1"!!""!"22Ue"3"""""#2"2!""#!"2#2!!!3""3"3"3$D1!"442"!ͼ(2# ,0?1! н1 / 0 2#1/@1B#޾/ R ?Q !"0A"##333 R#3a P3/@{0. // QC. 1q-/?P00 A?APA/[  @4/P "2 R! D" 5-B$ #!" " 120 B /"  B@232B ]h/  P5/@0A!//#A -"/?2!."!" ?" ""/B!1X 46"Q"C%"!""! 12   / !\! /#!  //". !0 1 !1. "!! .!// Cb!#ݽ!!!12!"!$$5CSCS4CCCR43R4$#3C$2$"!#5CbD. C#b"3CsF!%11/RA5##B>bS}#0a  !3"E%.a53*!%1"+NP$F> 1 cE$ a 3BA3 1!SA<3#+ R  E %?@#&#A1M1"7J$022 S.1a1 5!%C=P2E>&?r6$  %/S4s$Q1$3/^rB0R%"_b `q*s"?1R @# #/% p` "4B.1(!!Bͽ#q7A$1C@ 2 T? s!3 O$>Q"43"T4 #31 0 c004" @1 aQ#!w!@C# O$D!!!!.MO@ 4 /!1207O4B tc053.4 6 43"A. OA2BG@ #?#2.C %&"߼wA@C ,ݽ#!.#3!"#2S6!$BU1#3s"U2.B0$d߾2"/43!Aq 3!0QSSC1C41!36A!"-?"@ " #Q4$4CE# 3C@1"3 .2F!!Q 1! #"" #CDC30A3 / !Q6.q00 "Q22/3# B r 7,"2CU3"0" /!R3.P 6/ CS 2R!.;%4 21A 13 03,#Q.!2CD50B . 3/!  .0AB#$ B? "4S.%1"B3B%A !/#17?ܿ 4? %!/"Q21("" 2#S*2031# "#!/B.R2<3 #C&"1BAO"!CCP/4."#3!O $2b "  Q CA!#33B 'R"22# !" $5-3 #"3"3 .2  #5".3!T ?"!300A "4A$#R3 . !!1!A2 /#"T"RIC4/!? !&2"32"A ##A4 #3!!!b 0! !# !R2%!#0 !"//BCB#/!0"! 31#!/3"""02   .C" #21"  "1.! "!2CA/!!!!!3  / ##! C0 $A"11 B .1!/!# #! !-  " #D"t3#44"4T! ϿA=0# >   .@25 0a#5NPC% OA3'-OQ2.OBD6>1"%>@"@#,@BD ?@#$ 0B5 /@AC+?D.PHpbA# +,@QR N1r5/Np"$ 1#/`152 .Aa#$N?BE ?PACJ=N045_A^A2cL_15 =P#%>21%/@B<>?5=2$R ?.22>/v-!?.# "!!1! .!"! "     !0!/.1`R!./!.>> "!l  !"//! !.e#SB3"1!"B#C44!D3D!"!# 2CB#"23CT4#33S"#1!"S44!!"-!34"2333"" C33 !3Q$#CB#"2"B43"# C#!"#!$"3"""1!4CCR"B4C1" 354"323B5"2""22"2#"""#!#!32#"" 2#22#"#2#2#13$!"!9!. 3 "?1C#>20Q>A?20A "r!r @4B0Ud0-/`0@O.$23F c14 A R !#A/!#b3D,#"RS 0 0B0R0 OC"#A#>1 @2/#/ #C-"&+R T"#30%2"A!Q 1B#"a!/#2  2D2!# S %('b.1' .?BB0"1?!b !Q!/A#DD 0 1!4V!!.B2@!#! 2,%!""#!3 #!1 -"   !1QC 1A@/D113 $/ "@!352/0p / b! 3 21!#.3O #B.2?0  !r?# !"! B  AA!02#"  141/12 "0"222A"#/40CA!2 0!!/1 !j!  !21# Q 2 "/2" 0"1! #21 3/#5C"E3 ܼCH14# ,-=NOA1P12% ,=>!!B4D? PBRA!d 0PP1bCCDDe -N@pO#AC4 ->1O?r13BD"" LN>oa1 /-O-// /tE7 J O>LM>/1.O!D.-@N@0M MG_.O'.34q'O _$2/B 6 "R #.A_7!@/BPAT 1G-B! AQQ  2"#1%=Q4B-# B8=P/53RҾ1/2 @bc!"%S. `/&?$%s /./%1431W" `?/#CCM!#s22# #sPED/ >30!/pR;A&B2#2P"/0> .& a-?0!< "A<12s!0!@ %?2"ݱa3$%2.h2RQ2#0&24@31#1^ "//0?A00S3O! "@5 /! Aa  $ROB B!"  B!!B !"%!'.B!P=a 5" 2NCCM%B ,B2 .$R.>&"/?R  2B2"C.!.B4Ab##D 0 00 R/4! #A#3$,/AB!0Q/#/.! D/0."?U<3? !?#T!#A"""3$0@ 511" Y!"A 12O1>Q !"?/!  /!/# !A:$C4  ! ?1 3"!D  C%0 4 .!B .#" ?. #/! /"yv ."/! !!!! !! > /!!"C3 14TD333$B3/!/ 2!!C"!!1 !/"1#//!?/O #! P1 .!>"/#1!22";""2"212!"!44!RB!!""34j%//   1! //@"C#D2B!313C4"""CD3CD3R25#32##BCS4444CCS#CD4#4236ZR;o@D# _@2  N`B$ M1" ^1"-! >1A$>PQ47=PAB6>PR% = 2$ `A4 ,>5vA5/@Q3 .!# .@QC5 . !3?QC5-O 3,>!C% /@a4$ M?26 -/N@B".!4NN14M!C$ /0aC#+,"# ??aB4;/1C0PR3 11R3 ?=12"/!   ! !."  ?!/  /""4D4425242#!2!3!/!!""!"# !$#4143$3 ! / / / /!32"B2!B""33C"#2#"#2423!12#""" TP"33C"#" !"!2"3D$33C3C2 2"!!# """""32C2#B3A#!33"3#3!##!2 233"#"2!!#"#B"B05!$44C3D441#  !"C$4##2#0!#""!!1!3"3! #"2"!1"3231#2"!!!2"233B3C3C"!""!!! #!"!!""3"32323!!"!!"2"!!2"#$ #!" !32"2#234B2C3B1!!33313"" !!!!"!8"2"!"! !!!"!""!"! !""""#pB2#3"3!2"2#""!!!""232"#!!!"! !"!!"!"!"!!2!##!#"3222"2!#"3!2""  "!"""""!!!!!!1"!! !"!"!#!""!2""!"!"! !!!!""!"!"!!!""!!""!" !!!!!! !"!!"!!"!!"!!"!""!!!!!!"!!j$!Sq$/C C1D "P4-b.oQA"/0>02#. W=Q'q6>C/@ KB5r&A0F0Q4 " 3%@ Q1>Q2@!`#?D5 d #ݡ5>B4 &D.#..42 @A""DSQabQb/3 !4_>!3f3R=tW?2Tr'M23.!##&.4BF s !?'o !#"^ A!1@3">BD=CqP4C#r3! 2CB2 Rޱ0!?!V/b-$2OD!  c5c/ 0-AA*c#&"PA0p&S0W $A!2 "0 C1A?- @3r0!.1`s.4 /2r ' /R 'S1RC "" N430?R" /&! ";%/2M!Q15-#/? 1&T!5b""#qR 2S,#E !S2O" !1!QOR!1 R C21/#N" 1@r !B#1N!1B@6a 3S!414!A ="23dU2!bO!QC?R& ,C.1r !!B6$0 4"QD-4/3UCA?0>"TA 0#C!d#޽$! 29".1,F3SU2"@7P0R?!S."U A1$"!1"'REB633C!"R!c 2B1A50D@>O42#.B?c$4O޽5!N0#03 >BU1  #C.1!.@3.R.P1B%3BC0%"31#" 1?=_q0 5!3@# B3 / ! D? 3/1 %"Bu!/#q!#!#?22 0R2/RDIB1"" $ 3# #=1Q6A4@ /..2" 1"#N!4 A3 #!11#!"5 ."#Q#1-"$@QQ BQ$""!%"/A'##CB1"1S!15/$!A$   = .D1O 4OD!-3"#1A 3!1 "/3!6D"" 0" 1D " 030O306  12L23"0A .2#!""/3 D?#!3"A!"".B!1! $@/.{"34/#3!"40 1/3!"!0!!3!/14/1 C.2"C-DTC3#4S!E21T 1cC '9A4O$N".B`@?%!#Ay#3^E0c b-A2'AD`% _3>c Q$Q5@5 >=!.AQ 0#0D?4/B.aWchP-Q$ P3P2NR>RB%.A&1#?B?"a2  ?5 C02N#,3P3,0$>S !9/$NB3&@%?" >4.1B PP5 O4 0Q/#*Aa5`"/C=1,C,R$>B& Q.0/4C-2-#0#oD=4>2$"0?/2 0.@>1/1! #! #?/B".!  ""/"?! p  !!// "/ !!  /  / ! !! .// / ! 2 > 0 /!   \. 1!/ "  !24C4232!2!2!2! #D#2"#22"#!#"!E3#D253BC2"2"#33""3!"""""1""312#!#!!!ݽܽ!#C34""1/"3!5$b35.35=SD*4B#1'52"33R#2 /1d3 A" >#/$E/1?!/ F -E/ >SGB//a.?#ADC"2*>C ?/. Q.E!!?%" sQ"`#% E >OB"D5q/&?;!$ a"D?rc6.PR 2" Pc 150r0>?! . ! CA1C "PvO$3N" ""1Ab C# AQ222" 0&1$ .,ACC+.!" =$#4 #R#."  6/.5$ "`" 0Cb!2C1/tR =CS"?D!!D %.P 1 "@A051 /#1@ 1//CD- R_d2$# "R!"1"#2 13C#!C4/QQ 4lT" "A A! $B#2R2 /"@#R?22!2 !"#>R03 "C  A 3  "40 0"3R2"0B/ ?BC-! 2, !341"-& 4" 1#AA3#-B#C@q2! .?7ܭd41("#:A5-@$-p#Q1 ?2-a$$>P$q3 RAC.B0 ?A#?Pa4s0,P311;?R0C,OA-N3%Oa _Q?0/R$"s  1@" b%/O!C;C=>2@/ { B 4,DTο!@Q$B1 1#43"!!4"03A.%"!6%262!10  .R2S,C"Ϳ#O .5$ "AE0C"!R#!/2!!/4C.b 1T -b207 Q" "B12##""4Nr! <!/#>AsE4"A!@#1@@B#T!"#<2?2! 2! "4 /R. 2 -  C!1!%C>/"A3#1/"P3>0!4.  ^# Q ! # 3 ! 12-  A1CB"0!"!#O!13V.  "-!/?3 10 B1"/ #B00"    12"v02//5"/R1" 1  !B!/#  $5#2#!/#!Q 1$!!!! @ !! 1!1 "Q@!!A/# "   !3" !#!?fG"/# /0R/ 2  1"2/""-!""0/!!"! ""  /10  ! #/!/!& 0 " S"! /. !10 / ! !  / !! / ܽ"!33"#2!!!""3323D3C3!"!  !2#41"!"321! ܽ"#233#C3433CCC3##D#4!!!! ""3!<4$4#C"!#C$42432"!1"$3"(Q4O4>2>2-1> 0$BhDACO6/C'/RQA%1# 0$ >3=3,1 a% P3>2.2-AAA$ @4/4O3/2Kf$ P$ @4>3.B-A%@$P$ P3?4!1  ?/?"Ob% R$>Q? OE!B.B,?NB-B.Q$1$ 0O4oB=a#,p0& O5 ?C?AN3,Q5`%P%?4Ba#Q4?#>"OQ2Q Q&P6 !4NC-BM22 /B/A.? !."0 ////?/!zc43CCCB"" ""3!ݼ"33"33#2"B"C"$2"B"344233!2 3#C!!#S$423C"2"$CCD24B3D"!!12"!#"2!#"!!!"!!" !#!435#3CC5"!c"#!#1$444#D343!""""2"""""2"3"#2"2"2232$"#22#3""2"22"3""!"3#3""2""2"2"""""#!1!! TV"!2!""3!2!" """!"!"!"""2""!!"!!/!?1# 1 .?02 s.0"A ' . E1#1P!S!U/!P35 @01#02/2 C!@2@;/s.2 -2 @ Q/.-.P/0_?/ )4% "T#  /q1/#2 B3 A ". O. @ AP! A % C /11/!14 B $? ! /  ?B#.0/ B.@"!!!"/p @?     "/. @C.sM!   !.0!!1!#  0/  ./"! "#.!1!1"!#"231"mcQ.D ?RC#!!-" !!DFp!%#" ? " " .O14]V Q@ ""4QB C Rr2 @$.5 P3 !,#06/ t=A311 14 +N0#R2/ ?5."7%/A#?"?A$31! R$%//B$ D//.4 6"6/DB2C-V-P`B-b"S P.AC A! A#"0$/ G.#< A.R$--&N -"!]G" c#P04->%$@ %243uA5? ^1V R q;ts//uz"&RA!A! 4o S/1 G!13?`,R!3CC0B ܯ 25rB&5#A"B" "3$2TO1=?U>T5%"!G>?+ .}t.0!41ݝ$AS4 2 .! 0 T!.$? . )%34R"1'PB<C2! $`A  " $Q*B T0 C3o"@2@  ".D1ޮr$ q1.&5N4 . ۱!/43# ""ͿC10.a #?R."3B!.B1c1ݿSPB%03$BR!B& /3 E2?E4ADT!!s?#!0##?"2a42e/3D-$ W! 51/3% B&/ 2 t14>$0BR$"!7P"C\$D#2AB " D A2 T1߮d >2"2/"0c5B O"%.# A"0#"="6"04Qb.! D2Q1E2,E/C" /.+"/'.@E#qB3P 0@!! !2$""" R23d.C.@&2A.A CAt/0!b 1"!"R!A3R CBC! 1  / "!ab$"$!2#OE""?&!3 #0#CR! !11S,/13"!?B3/A3#3CQ2 ?"!!%!D$ 2B#b" 1/2.3A42"/A#N/N.$!24@P!# ".?D3"14!"DB/"0 B""3!"$4."/"B/ ! ݯ! M1'0 1AA231B!4QE/#.#2#0"!B 0 B@-C./?!20"$P#!1!#!4 ?//? !!"2232$  C "3AB32A$R0#!#Q2!!B. /$ \13 ^1A-01$.>a3&_QB ?AR=0B?PQ#?0"$ >O25  >p1#Z82@BE-_1C >P/R$N>36=p1c ?OACOQ!- 2>0".0b#%.OABC# *,/1 %.QR$"7./?a#$.. 0A2T / $0QA3  ;4O@S$,/'&B#&,O 20?D  0?3>AA$  =N!R >1C# 12 #/C/1/"" #!3/ ! 2? 0 !2!!?!/!/!. !!0 Q/1!" !/!  /! 2!!  LG//  /./! // />!M353D2!!""#2""32!2" #T24#D2$3323!2"0$22"21$"#231"#T!#254"1"4""32" !"3D2#! "!T23!#"1"CC43D#3A!"$#$B#2"!2"!"!#!""2C3#""1 / //!@3./42Q 1- Sa)7$?"3O6 6"31M# 3r &D  2//c-aA435/A"?T R/ D 51!.A1@1a#/>c!1B!!16 !$?1P>b 2 bSR&L2BB1S4A.B S!ܱRS>Fr21s?/c-#!-B@Q1aZ&>a $Rݮ 7 ."! / =72/!5202B3@31/C!3AEB}!OB>B s!! Du @!" - 1U!0!#/0" 63G2D-.Q $1QQ͠% $1Q C%3 50O&"ޱ!q.Q E012.B"V0SR_N4S. $"B.ݯR"R30@!T/2 #!/!/!%=$-& C.ݯE#B24!"%0#MFS*2 ?b"#0$@   !R$$b1EM41"> @ /""$AbC"."bA.b2$@Q" B.C0R02?@!#B&̮A 21 R%1!3" 43q$s #!` # #D 51ۭCC2 ټ!53S36C".12cA81R#  =O>/?A@25$/> _@1."#"5 .-,>>0 r%>_;>RrE %/0._1!r1$4  BR1E%<,,M-?_A`3Rr /M @4"`S > @-.0rB0-+P0,"QW2  a..Ps.1N!AB6  $ >!?>!s^C/:-Aܯ7r./#K>,v>-"BpR-u2"6$.2R 4Q RQ!a/#0!`. p/F.B:" N/_?c,%?1?6. .C`;1US$ #?#_0aqQ @qU_62&@ 41'R"RA Cb!AA!Q>u c @6 !/ qC u/( BA#b13qC 1 Q&431/ >4/" o1#A rQ$@T'+3!Rc QrBP60 2 ,-O"2C>"-2& MMA%rA$Q!2ESQ .!2"$Q -0& S#_!?P!R>2̿ s4 Rf].??O! !1_d_"R!@0Br".#"b  7@#B.οC 24A4B1A-B>1!DT!a:11D ?R&2.S"71 #B0?3  a"1S&" !/t.*,7C3M-E21B"7@$!A!$ /" #,/"#c1 /$.!%=ݿ!2>AR4  ##'A 2a6!O2B $/#5#2!s UN2 1!!2a/%3!^~3B. !.2 ,541%!%!"B! !%2>02QBQ%2T1A1/ !$Q& !Q/ !""2"@"#!2/A1" 4C!/!"% !D?N O  ""C 1"2/2 "1 !$0"2/"!?@"/"?.!? !/#<" 1"/'  " "1 2@"/ " "0.2/  D""02 "#1B  /# 0 !!/!1/t[    ////!/.!A!!.gC"23#34C4C24!""333#C434C2"D! ;!#"3CC6+61Q4 AT$ O@" .AS5 O@B ++-_15# N2"%@25 .@P#-?!5^A%0@3 =022 =/ !D:4"4B33#"!"3"C"4"#3 !%""3"22#3#C3C2" !. !/// !?!/ / /04!CCD24C524#T"3C324$3#C3D!##"ݼ3243C3B!./  !!// ! """!#33CCC3# !!""""3B444C"2!!$44C4C53"""#!! 1#1#2"2"33"C34!#33C34"##34"#2"!"2$223"3"3#33#3#C!""5353$43D!"2"2""" "!!"2I^""!!"!#"!1"#233C!!"#!""232444B!"4[43443C"#""2!"2#!#2#323!2#3"2""""#" ""2!!!!#"3"3221"4#43$233!""2"!"!!! 11""!1!"!" !2"!!!#!"2"!2"! "#32$##2!"3323222!""2"""!"!3"#"#"##2!#"!!"!!"!"!!""2!#"#!###1##"2""!!"!!""!"!"!"!"!!# |!!"!!"!!2!""""##""#""!""!!!!!!!!!"!!"!"""!/J""""""""!!!! !!!|_!"!!"!"! "!"""!"!"!!)344DCD444$#2B"! BBC4#2"3""! 3E$3pF0"5/4#rS!4s/E!1>$#!7C>0b +DDP5 2"'?>7 =@?6%0c*%1. ""1Au ! !SsR !E2 !.BP   5#?PBB">00CE @!O%N %s.5`'.5 !2.#AD!E1/&-!"3`"WS?1!@Q$C>- 7>#έD2S.A 2" %r5݌q /_N3._@a7 SeRD.b37>#a1 t/`@ @13 5C'O/vQݜ!?OS.O  4CCs<QO-!='!c.cA""3 4-P#!COAd0!R%! +M /  q q#Q!4S#@C 5 $00?60&PS1QS t3"B:g1@3:>.P% @&/F0 "1/#/G DP4  bc 0.Q?1$>b1 _v3 "D1CA2&? r@P70?D $a.Cf?# ,7=D '/1B32 0V# 3*Q6$7-"@1!$@Rq -R#?$%1 "Q##PB A G #SA'1#!4r AA3640U15" "q!0"߿C.51CO!  SP#ug#qO#'!%2=QD2,1b B0D2D Q5r#c"A7!$B?F/SBCBB>0 q $q51Ca !",/c2!12M1B#N3B"?,?'a 22/;_C!! R 4 d % !S" R SQ=53%BA->Q2-`C>UBA!%". !!!B  !? A?cBQ "aD> +S/1"0"E !@%!12J1 ?0 1>QBA Q!4@/ 4BT11s 4B!4Ca ܯ N6/R *# /'C# `4?A"!C35.!B% 5A !??>=q.!2B 45BB2D0 a#3S!222/E 3.30Q$@C D.4>R" 2 C!"/!  /2 =11! 3-$>#>2" !c#05BRq!."CNBtQ!"#?L B4 B5? .!  S S#1!# ".CB  !# #2`.# B1.Q#C$.#"$2,/#"B0R/! @2D >2!B37 //@@!/30Q%R>S! /!R,B02"/APQ! S4>.Q 4@"! 0/  "-A/."#  43?1A 1 /1ܻE!c 켾6B"2#2HQD=#.2.A-@&A5QCP2?->1QQ An2H1#_3>B1a0C/2A&.A%-@%@5O3.S.2.!! qDa# 3>! &0@@$N "R.sQ @C @S0R.R/1% /#/4 ,#3,!C&16 Q40#>.!#:!bC&B%`$ @3+$/BO"02$ O P=B /Aa Q  -,O%PDA5wl.c"22` -A@">6-"/0!!" A20?# ! @/"/0 /. B A/ !! 2 # G !/ / 0/.A0/001.../V //   /0! ///#!1""2!23$"1!ݼ!!4"3C$43#2#A""!"$3B4S2C#3B 2"C3CR3R!"R232#C2"3#2 #C34!#C#Bͽ#"231 C""C33C52"2!# !"$2 24R"4B#" !#"""4B"!"$""#"!"!"352!3333#""1!R12 Ta&#"@! Ea 23A=3@+37=?ET/ae333   B T."2 b"A S/@ 1!DT@ ?2S A/@31'j!b"#DPB22u$OOAA"B!1T!1COC!b 0G?1`4!8H$O#?D,2D 3@ B"3 $ "3 E332# $5#D#TQ0"0# 1C,^&?!!R =2#.R"-'S/-S$, tB A"!."Nܞ!"ݿQ" ! " "R!22cξ@62#B/2"T+"db/!/0!34FBRAN0S!;C!"F/A1.!T!2 2/2T!/ 212 "Q45ARޝBB2S] !/3#3.#A '$B//#b2"$$>20/" 51/& D#.7"TC1AC+/ $`B ^!2!Rr3 b14MB""!"O!C%"A0!13$b #B1"3!! 43"/"A2DQG#"/1T#B14A/4E!4".! 5.F"ECC3B#2FB 6B"0#2b!42b5T1TCDCB!"2eBS !oC'(&>2$ ?0 Q#.R60REa%#<1C ?@$ 0 .a- ? 1R 0a BOR .Ym\ 4,"S-@3$OSM!D @!C L"6/p,,A *?1/C,P2/A15P _!!>/?fQ"+""! 4 $<.T-a'>2!O$/Pa#2!bP.P1!s-p%3S "$0 =!1!=r$  3a "% +1P-$1MQ=.2#QG+3QO33DA"k!? ?6 2a/A DA?/2B<bs.!& % "V/!?2 1Rr q2ξ5a$4  1!C2214Q!% QB2%E!!1? @3` "#D/0!#E!/t@t"a?0/2O5/1Bb &"_ݼ%b1BR !/.OG A32//  ;5>!3N ٯ1U## r P!D1!!S.D ?̾3B@B2" .51 4B )/3B2B  S.$c" 32!BA !s2tA #1$/#5C E2!Q1$AD0BR-/12 10"C!6!  !"2 B2 C? #0dB2R~%?3/S R2A- C?B!#>20.#2#@!/B#3 ۽ DW0@""# A"  B!R5/ B> "/ C.2#Q"!#,"?!72B"/0R11 / "" .!B 3># . 2!1 #CBA/3$ !024! " /C3O!#C30"0 1S3 "qO#!#"4""A.1A/ 000"/#!"1!!"/6c1!1A""0$""#!  2A$!4" 1 31"!"Q >! /    #2{ ! 1!./ 225  ! 4"  " !/"  "! ""/"  i///  //! /   /  #3B"324" "!#"Ϳ13_5N3/2@N@6 BCPD_5O6/_.R.21#A5 `# ?#."Aa4 @C/2-2AQP?"?4?b=A%0 0# PD ORIsb.R%-Q&ADP3 R !  !/S%0c$/B%@$_5 @S?4-1  Q4#PA% O4_BNC=BQ 2 S@R?CNB.Q&P%PC@#.4".A%P # .M"n;QA3p4?C3-Q`+A A4 > "!-!0  !. !} ! !!!/! 4!!2!!"2"31#2#3 "3B2#223 %2"B#3""2"2!"!!&?#322!!2! !"2$4C5#3S3D2##!"!!"!2!#32!#!##$"!"!$"31""#224""4242#4242""3$##1 *3C5#24342""B#2!"#2!3#"!#2#3!3"#"#"#""2"R8#2#3""""!#"!""3"""!2!""" """)#"!"!""!2!"""#!#!!#1"""3"#"##22$!q\!"!1 "Q"!!1!1- /a/K3!!A2!/# /! ' /P3 B!,1'>!sA1& .#3  ?#??pa,B@ /%" 0  G1./0 ?" /@@N!2 B# %/$ /<1B6/?wZ - @4a".5 !."//.$ /.3#1"/  2!Q2 #P1B 2 ._ q !2/_2$ !?-.??.!A!/1. q/ 0! 3"P? 1.O//0#!w#!.!./ ""A4  .#iN"@?1/?/ ! " /2$2./t"0/!/ 0 !223#2@y"16C3#0A! !.A34.1cc-3^#/A 4 #.Q2"'AT5.11F.`#+."31`RC.aACE0@"2 b3.A@ 2-/!PCb<$/26C B B 2ݏ3!@< !0s@...% ! 5$0A@31AR>>B9uU s@b!4AO 3 S 1,_0Rd  ! "#c!;P 2Bu&!0b"'P-$(1 #/ 5C D"40PNG#d 2]"CS4d/4308@%2Ab&C!"A'E1$,B"?> 3?%"%t# Cr `"S2cd#R"t !#M321(7a!UC%b/RF#5DC%`#D/T!%Rf !Tνί! ̾ @a% !Tb,4!B3BG.&#&3%2! a0B4rr1461!a!!߾e B"%%15 %2A?!]I/a TD.ݿ2-E"?s@3'>T3#BN##C2"B#tC/ra# #-C$31O SS,C!/431B Q" S@S0"?ݿ44ܽ!u"$SCC/" 5$Sc F/C#%D '0"!.#C !#Aܾ1/"S5Q3 2AC Vc#B2$QBS/D0S"!/s!"A33 aA$B4!?Ϳ$Bb% .r/#R2/"B?b" " B #3c.3BB/!R3/'"P5%!T?* D͞#CR2"#"/# # 5"11"B# ܼ!/# $" 3Q%2 3#5/1!@33/ !N!""!.#0D2 # %!216"22Q#?#@!B  $$4""1-44"2b !A2! #1C7 $"B2 ݽ#" A23)2$242 31#5! .  -4C-3A20"24A$C2#C!?"$B0?40"#51޾N2$!! !3!32/#!!!  "4  !W$!&?2! #43 """" ? $R/#>@"!4 #B!! #1$C!"!/ "3//$/ BQ"C!! C"2"! 00/.!3!!# #XV? ""$/$ ."" 1/2 !/? ]##S"!#!$S354433E!$T"۽"DC#TB#6"4@ ;^A#N0"%  >@2 NP25OaB$OQR%N@24->Q$$ ,> "$/`B5=PB" -`25 = #>1aBgL$-O@#>P1T/ .@RC.@2d .?`B4 ,=EQB$ .@A -="4?@b4?@AD ?? 3 &?1b3%.="# /b$ 'A2x>O0>=M34 .? ?"@22A /".0"/!0!/??"-!#0"!.. /"A !/ O .!!? 1!//!"0!.  0 .1-!0 ! // 2 ! 0Y8B!4"23243"!#345!!!4B#4#E3#ͮ" 2!2"$4DB!!J"!#3!"#DC#425231!#132!3#1"#$1!3!"#4!#$4433D3!"$ 52#34B"! #"2!""!DCD"$"53! !D2D"#3A"!""C"""! #442"12#1#"1 / /!! 3#1Jp/WAOQ[-/7/..>2$2MR=3, D"d  %. N!"N75!&Q38-P1C0R2q.=?^0.61"%oN33O1 P '! bO1O޼3> .>2'A!s" #014b.0#  M2,2!;3Q%3+001d%  L!dT>@ v#O""?,ްC1A3,N_R/O7@4$>_"r A2.2"=+ '?p0@a/t# s#S7=r"d0 '/25 a7~ "%>!;><_r".1 B/12/%!WPB/!!R2.?C3 C11N1T00'a5B 3../ $ 6R!B#S 4"NA,.@3/@7/6 $ !!%.3Op 7/.2R!=$$` 040V #bU=6"c% P!`#C! 0SU/"& 0A?`$P.S?,Rt. 6sB6=2RC%0.dA!"A4 @A'm $/$24.B"  /.R$/$# &"R@ 2/27?S!A!?R$?+2@3/60 3a1$#!0q50r?&" !C0q/ ,/ &?s@Su$ Q!3>"d0 P!"?/B&!1C$% .M>?@?0!3N+1PPBA4D+,-=_O_CQ@2"6Ji' .M/O20r  . Q1PRa1# /2G00"a!QS '/'.0A0C%b#=_# $DM.@NA@! 5 .>-O2@M2D'. Ac0A$]A,1-A/RC/R! 50#Q"A1U$D2D#&ObC01,a!F!#aSOQ 30q27!a4$5!2  F"#-2a"1 U.7=0?A!p '7".b 0 $/BcP>L/sR 1/۫CQO!E/0C??"& QQFsd## $S@5! B$>!) DB!C7 A=q !C '.(Z5aPQ?#b/D+ -St1/ P @C4."4 "$-&s-D?d.! 3 T3cT 722Q13200O/4aD@<2D A0..?# rr2!1,"UR!!30D-/EB ?%. 0C;_-0 #U?0b0$QAB2" R =#BA$22'-aQ! AR4!36D! "04?&?O//3 _%C6R c =,!#?.42 R2D31 T0 b$B%@,a43 @6""b1B03A =0>&.! wTACb#=r$ ?/cD?B$>. !C!#sQtd"4050?"1"!TC.r!'!10@"13,QR 4!- D"BT/1C!3#/ "% q @/ !2"#//C&!13?>0 !B0. Fb2A0   ?! !!".P 2//"3N"" Q B"!2"14$" !>!20!S#"0/. #..!?  /$ /"1($2#   ?!0/. 2 1 ./0 ! " ."!0! !!! .> !2"    /0/!s#C3C!"  "#32"#3"2" #C!"33! 34D4433CC!!hBPB% <@1$.`24 ,>jC 3%.PAB& M  =@26 ,> ?`BC $ =  -@AS5 NPCE/0Ab3._>!$ N'+N@".O2$.O33 -_26+=01" -OPB#,N13 ^PA$OP14 /?B%/PQ5#NA2&^0"$.134,.1 @# -.!/!0 /  .10" " .0. |"#E#5!"3C24D$34D3CB!"4"C"2!"!13"3"/!/ 1 /// "3544C3S341!23SBC2$2"!!3322""2"!324"#2!. /! !  /   3433$"2!!#!2""4CCC3R341"!"#D#D!4#$!"" "!!I;#"#!#1# #"!!"3#32$2#!"1*8!"33C"C3C""!2#3"22# "1!"##C2C232!#"!""!"""#3"#!!#!"!3$3#3#3"!B3C"3"2 ( !"#"!""""! !!"""2!#!"!!!"!222#3#3!!2"3"#2#!""!"!";N3#2232#!!!!""!"!"""!"!!"v"#""3#223!3"" !""""!#!"!!!!!!"1!"! "!#"2"! ""2"#!#  !! "!!22#"#""!!"! !!!!MM!! "!"""!!2"2!22! 1!"!"!!!!!!"! "")!! 2RCE#CBC3BB"2!}c?B!5`#sS1%Q 6"4#`4D%5!#c3U#BC#"F"#$C541@" 3.5"=P4/00C!C?"B/".1C R%1%@t22.!/#0"6!$2sH?%A@".'C70D0,BF s6$/!7=!D/!04 "4rBB-44C</$a# T'.S>'!/!#A(3/%$&A."r@ر$!!.#@.d6B a=4Q3Br4RC 5 TOCC#S1S &@.P4 3#0! /!B5#c#CR "q7@ s`!3E!6OR#%r,!C>TC #B!2ܞ@' C 1B#@#R$QB2q =7<%?Q-"T/! %EC-W #t 3" 5-3c"/10W3@1v10DP2"C%/2!",3 "0 " s"3.G$12A.#P)!$!ܯA>A bA1 A$A3"2 / A2'!ܡ0 0CBCE1CE2-4aiO.1 #o2"2# #c0E$ C,1 $"B!!-?-0 !#3A4!@55@"/ /7/!32 2!BA &5/ޯ!!2 #Q F#"CE/.BE$43 %!! #RB#D!E#3A 4/R""4CR/bAT 6A!"BC"4"  11$cC (ea #40AM4-!.2//Ds c2"#R  ?".A$Q R30B20?! 10!##/1B$>3#!1/.S/B "!"%4\pR0 3b.4"$14 //4?BBC 3Bݾ220A3A!/a# 31/!$" ?/ @ !1C!!!4#"3B &220!2## !3542R 4 1@ B"2#1E"32 1/#!;2   c142 !@!B#1Q!2Bݾ22/2Q /?#2/@ #A#%3>ݿ! #" !2 !!2! 4" 34!"0%"/ !!"#2B "21!#!"1 2"3#%"" 2.?.0!  ".!B.2//  #3#$0CA""A#! AB/    !&0!40" 21" ! " "0 41=#>#." ! 1 @D`#,0#0&1CAR0 .1a#q4Q% ?@2 R#/d0&N.R2# /!/AB+2 Q" OBN .Q-qa$/>t  B-2=C-Q-/4 ".s?1N5.6 BK&P$ ?b=D?"1#0Ob.R2/@1 5 p 3saA O5 R/E#>3ED ! @T-b& @"2@-#,R!C/ 0s/p103_b.0!/B2C!Ab=e?$0A4C,!%1'C0.BN-aAQ #!C.#D@5 1 D3Vs15 #-3A4#0=!1.b4'!2!%?  t!R>b.4@?#E12W@?.]/ $ .S35!Q#@ 0 &!!'2 R@%  !   Q F1$ABRC!#%20!,P4"ް"B3!03 !#/$"B D"%RBCBtQ"2  !2?Bc/!4#SB/ T #O"?3a2 Q"$"ACPWBC/2//Q7!!3.41R#RG#!F #A$@"%c$5/!/#AQ.q!0 /4 ""TA21?>30"12C,CG/{c2B-DD/#$!S  D"21 !#2d/5RA3 #"CC  / !!!% 1B11"R!"%>$"!"!$-22 #425!:2bC/#B&1/ A! 2S$CA!1""!C$2 34$BO$CR/C.!1Q!4D44"c1? ! #" 24 $4' R0$!0 #"!04c"#c$C #!0//D2gq2aB!1A" 3231!40b!@/2/ !B4A:$"2A,"/"ݿ3C!"!#"/20!#3/ /"[3"B!30 /2#C1241#!01? ! /" a" BO"  /13- B!#1#5/2/123?A! ".0"@2 .$1"!01 !A Q1" ! !3 /""> " A@ !! !3$@ /! #"  " !! 2/. ! 1#qE23#+_#O!@1%-/R >O@0A/1>!?1D+3 P?@`C0@! ,0}802%1=!4!Q>Q#=@2 /o1>>91-:Q >AA@;B` - D.Q!>x.C.AB`b@  Nc.-/5N@ :P>?!Ȣ!N>-P. C!$E //b01RC%M  :/"2E O%!ON?U?GB .d !<+^p$+=$+ 6 #4#'AC?2f/BC U#=$343R$"'2r00`=aR>@>> B>rQ1T 4E !AO.&//$0C0C@20`&-B.5! D-P'  & !@L@.+B!7!#"d >PC=/S D& Q->s50S-%N#4?qA@C%>ҫ%2>b/% #@O&qo!G A &ۯ"/3R#E.?r3?7. R?14 7@12C /3(%OrA%/ 0a'Q51COBO#?.A53Q "S #Q3! 4? E#%#$0!D %dD%?/Q.#/2 5&!CF"/s0'20E#4!c07 S." % F2B4AbG0c AQ  R R / 1#B%" /) ! @O14?! 31dBAR!-6#?6.!2 B2BB #Qb %B30@#hl1'0C/5 Q2@!P0&"/CT311A#D  1$`1">#$r.޾3/Bݞ/-1"! $UAt"s"2 "@B53311 u#c1 C2@%?B3 V!O$!%31 $/$!".' U!B#$ @ $@%@R0"2oB2 A3/ 2& #DB>CD3M2!!3 Aa7> r/!$$R /  "??DR11"//$c!Q R1 bs!c-3/!CF2 " P B/A !D- SC/1!?"!A/0E-$"1B0 D#p. 14C A1- "C&6>3!5/B!@ B  #Q$!."7Z!D#-/#C"%B1!!C"! 043BC ??20A!!!$%" @ . 2 #. R CBDa#2-B=V0A /1#?3">"#O?a ##?1/3"#!3>!"/B#O4 .0K#B35$B%$.>"! 4 "#1/ C"!0"!0nSCCC  5E3C$D3""T%>BR?5O"?3a? 04 25Or 1S F-1%?0$-3$P#,Bpq3>Q.B 5?3.>#N#,B1!Q#+?70-q-2.c 5;2S.3>O%3FvR# /1'/E B2F02_2. "*#_C-__BNB 2,2 %1-_R@aQ0" .A5 5c!-)3"#?/%QB1. 131."-43BB $ -R@0P4 RA=B1 b /7> /D## D1Q?"@2A3.7^4>R #%2 T 3-/q2&!#72?S5/^2]2 2 2 "Ar3/E"#1T20D,!622B #UR1S!B!="!" " B$7P3W_A" E.4/""2",%1Ac !4?B# U/@ /-!/$@2P 02.D$3C'!T/C&1"ͭC/=0!2?203")DRT, !!3T!'_ !3#%/"O5R0>a14@~322 /3!$13BC-".'@ 5/ 1# &!?G1 ?24 !2"_UB!T@# 131 Cޭc#C!20b.!C2#!%#$-$" A?"A14?$2?#.*  &"#G r00!@!4C-.!"/#>21"޽ Sa"1 T !@#! /E+!#A" BD/A /!S00>R$2E $ -j" 2.$B#!$C?r4"!P50132R41%03@" 1 "4%o"3B#Q !"B""Q/ ?2A3B !C513! dA##3.!$22#35151 S2!"14! #/#61 A$A"0>!0/4!/ .c!3B 2Aݾ. -!232!3AC# 30b> Q2!#?$ $2#" !D/10 ! 11BB42@"" 1  .C/!A-4@?R302! 2 3 A#D/"#!  2!a!$ !## $#/" !!!"5""3ΰ3"B. !/py% 33 #/B#1!$ 2$ΰ#P!   @0N" ! 2C""!!!//B !2!". /""A1!!K7#A "20#"B5!$?!$3 !"!8A- &b3E2! !. Q%-o`B3%6>" @#B 5߰1?3// B 2#5@A/"7$ #a #RB!D#N!5CMa 3!"R  "B PA%@ BCq0"7Q!i@!20%!"!_25s4!=#"0U31?'PS04U $ 2A(3 Q?00TQ C 325Q!a_0B,c/Qr"'3 !&/q2 q!0BQ͝"$4R53 C/@3N2W.a! #@ P"b /0!!%B$D 4/`0c!#00t4!-c@#Q!4C#r/ r7O"/$Sc- E $#e/$E+nDC!_4A:#!#R22F !!c#R1RtB! 3t A2 :2Q?$E3#"- C0@ E"RFB#D6U3 071'4$ͮC>R/$2#D.Q˽5ގCB&!"/R"6"F"0 `s"35Q!s""4$% %C# ",DR34!br"S4RMD163@/F3ͯ5"CBcb0$ "3bCt#QCݿ!!c@.ݾT5" /! ܾ 'P! .C!!.T3 U-s""1-T3>_d1#"2DA/S2 C$4O#2-#6!C"d !S 33AB! ۼ$SDS@ެ"A$B?2 v! 1 /2s2$bνbAE5izR?A!2 RB5 CT2$t1"$Tb44#B#E@!RS"E! C 3T13BD04 ݬc1"#s.7""S224C!1&"/ܾ5/u2$"2.>t?T :#4D1 $ Cb 1OQ%"cAS2S. 7002 Q#Bbs!!R71/ " #E2T? 55 D21.!  D"D65$Bo"Ct3#$ A#. 14R $ "!C2A/ "!247 1A2 'Q2"H #CP " 51#-O6!142#C22S1 6̱R6 2 S>E"## 6#A""E #"B>"T#B"!&0?!3>#1S.@!R2#" 1 !"BB##2#3"! 1""3.%1" E3p"0#$2R3#/#B$2"  /$S  #/16!2!0 QC! !%#.ݿA11 /!"!134 52! #303 # AA 5 !mw"""!5DB1#32DB5"c $B'':? > #^? /1 /AB7//P@S5.@aC =02|?_A47Oa2 OPBF./?#.a!>A3>!S% PQ?P3U.`1D!@d^ 03#/1C"+?_!$ ;?1# =P2" MO1c,>P4 0_A"-_`C 0"30`P&1ZoP3#,-pA_?"6-P34 NQ1'-NO#5-`B" 1?" '.B#P!B> !!30 3 /!"B !#/"2# ""/" !/ Q1!2"#!""!0 ""-$ $#1 "3"!!/"A / 2!/" ""1 "!!1?/ \"#/!.#0 2 /!?2!!. 1!"/ !! "//!/ ! ? / !35CB"!B#C4 TCC35""!"""""# !!30 3A! 453!3"!"!"" !"2!4#31C4D"3!!"!412#SD41#23"!!!""C24#C""!/"!"!_2#"1# "C!3C4"4!"!! ""C2 #5#R#3B#  5!!!#"! "22 2$3"2!"!"!!""3 3Cy"""!!! ""B0#D#C34!"!""!"""1-#$2!""3""!"3C3"" !! !""3"4$3#2!  ""!"1!!"32!""!!"!2323!!" !2!"33B!! #"!""221!"#!!"!""1"""";N"#"###2"""!!"!>="!"!""2""!!!!0-ݾ"1# 3CSCCR3C5"A2"#"BCD443C$!24#C3$#2S4CD$$#_qN-=^@@@243   NOP@Q3B$  MN_TaAB33 ..>?? 1"CD6 +->?AQBCC ,=O_Q@12'.//>?.KK'2CS%% ,=P`AQ13! /?0O??"$6$%.,+? RCSE _@Qa11 ? >>. #T4E$ B2BB2#232C$C3"2C3B#3#2  .!// !   ! "+01/!! !>I2#3"B2B""332C2"B3233#B!3"3 #24#"##"#"""" '$"C2#22/4#4"###4#D"$23!$2CB3B31#B43$2#1ݽ#342#B#2 *34B"C#B33C#B42 3$33C#3 2"B"333#"3"3#3!23!4!#"B13#3 ""2"#"# "!2!#"# ""3!"#!"23""2!"P 1#""!#"#!""3323"123B2"123B#3"23#B"4"2V_22B"3#23"B!3####3"3"3#"3"#23!#"3"32#!"#!#"3! "#""#!#!""#!"#"2"1""!"""!!#!""""1"!""#2""!""2#"2""!"!"2#2!2"#"##"#"#"3!2#"#322# ""#"""2 "#!#""!!#""""!!2"""1l#"2"1!"1""!!""!"1"!!""2"""""""""""!!"""!"!"""#"!""!2!"!2"""?""""!#"1"!!#!"""!"!!2!!"!!""!""!1!!!1!!"!"!!!"!!!""fG!!"!!"!" !!!"!!!!"!!!!!!!!!!!!!!!"!!"!!!!!!"!!!!"!"""!! !!! "!! ezR4TDCCC3C32!4TDCCC3C32!4DT4D3C43332h#`BD '.@A#O?aD$=_@ABcBNA3-^@C#=@A5&-_@"$>`A% ,>@!>PB6 -O0#-PQB5 =?1$BOQB6-? $ >PQ4 ,>02 .OQ3& !%?p2E -N!3 .0AR$'y;< "$OPR$ ,.!" >@a4 ,-" /@q4#/ QR" 0aC4 B4./??!1 /.  /? / 443233# 42C1$"#"#$#"3"2#B#!2!#"312#1J_"2232323323!""32#3#B"3B"343!3"C"4341##3B34224B#C$3 C$42434!ݽ4#C33C$1#B5"#C23B3R"$"# [4#C"$"#1#34""3!23#3323"3""!2#12""22F/#!3""#!2#!!#23"222"#"4 ""31#3$"132"B2Bu"#3#$"4##4"$"31##3B3#233B"322!3#4!32#!" 2"3!2"232"""2#"3!"2""3!"""!1#"#""3"" !2!1""!""2"" !!2!#"!""1"""21#"""2# S4#""2#!"!3""3"2"2322" "23!#2# "2#1##1"#2"""2"3""""3!"!""1"""2""""!"!KM!"1"""""!"!!"!1"!"2"!!2"""!"""""!#!!2""!"##!#"#!"""!"1"""""2#!"AA"""!""!"""""""""!"""! !"!"" ! !!!!!!"" !""!"!!""!"""!!"!"!"!!""""!!!!!"!!"!!!!"!!!"!!!""!"!!"!!!!!!!!!!!"!!!!"X:!!!!!""!!!!!!!!!!/XQ$A4?Q C# 1NNC>A&$s!B,33B4 % ?2PA I_$C03?P20'PA S2p!Q۾"%1$' 5-2cC2܏T%2qsA1NE>%-CDBD<E7B_#0Q9!B R# /!E/P5/>2b @2??۪@:;BR?3s/v/R@R"c$O406 #$C!#R4B;1!3@?ݮ5b"@dM b2E>6R%4?G12P"0 $3 dBdBDSR"R%%2?q3 DCQ04Q"6/D @#1t#-2$D22#0 2GA S2 -T  %R24 .S"A% 4/'5"໮s@@d14 & 6240305B"Q"d. O5"R 4!AT2#$S"0;! V1B1! "3 2S32ݽB4!61! 35b01"CR5$3%01"b#4!AA 4!4t!$141 %C W! ?!!SA>9;|/#b3E523b.26 231"CE#7!a"02#403A"a C>D3EC  SRC!;7 D2#c  C?s32"V1! >#A4B$!R C!ܬ߽CDT#!|6"3#17B =A5 CSA#?4S"S1"!GD!!/3O64#GGA4"c$AϾR D! 41̻AA"R-%2ޭ$ "CS%1 2R$A!!E4/$@QCC!!5Ca&RO$CB@D@U3 /B>$b!/6AS44R۽#F1 B! 2!3S06ܽq1 /5$$#U20 ES0F1?3C d /$TD0c2 5 !CR@B /DQCA/B ܭc"S2$CB!߮C2D2"SC!0ܾF30 "S˾&3O߾1@1%B1!!$"51C2/;3B"?$73ͮ!CS4"BC2" 5 ""ESB4a!"/!$"A1#S2"!R?@b0νSB7 #" Ϳ#1S! !4@412C"2"22DR1>1$ .32 54]~3B"#CQ13$Q B$!Q %"133C 020C0$B/$!43 $!D !!"2"!!#13#D22#"""#C A22 Py!!#3A$2!!/!4"/D!B3ݿ#2"3".!E! 3BO0"1!.""A"1A3O !$"%/ޯA11A5DE" $""2DC!E442$E#14DC!̽6T2"""O5_C3/B0@%.#?$0r !& BD?@$ 1PROb!d ?A1 a#Rr D$/AC#SCA3v@Q@2,a? 0A.4,C/Q2D!P/`CP!0g+s/"05A4  O-d@cu.?3A13(?"A@!R#??6 R/ /%"! F#/s1"D 2>"> -#Pra1.(2T.e 0!/ $A$E0#CP53d B#01@ A71"# !c@q- Pؐ!EROD /70cq41rB!2?$'>0M#2%2&/37!$ oBQ%A1ss.!s?$!RE A74 ?!@ 05  Ͼ! '?P Q1" 170.!.!A@ &3/$ s4Q/!WP,b7N?C>!/cO d/=#0-GB4?33q #r@D.$'&0w"/G!20s. b=3,?#?#"$-3BD.!To-@"CS3"Q!q sAE  #5=t#u-AW05Q5!!/4E..E !4 R2!s W1"b2a.$t-BV? 35.GE11 Q!0@%%2 D%/0q/B4b+>S$27qB?/DA0-6 >Ut."bS$/Q R"#s.CG!#"4#1S/?4E#?2 0$#7 T% ˿16"!-2OGAT>3,/@".".21'!C bS$Q/E  E!Ab "$4E13D-%".'&*%U3F12@E!1!!? 2 6 &!"!V1$4-ͮ6C S?!۽R.DCRnT3P&?Q&/.B.D# #C.ݝ/$D ! !145!4-6# t/C$  Q/SCn4#P"1!%/A "0.r/",r/12$/5  #-.22!?Ba%.0D!#/"03d2T-`T? 0 1R" 3Q2= r%!3 1t>!0 >T>#@r!#"1?"5"/4A42?0 b#1 # D!C 4CA! 3" #A/E/2,ܰc23!".41A"!"!۾0DR" 25S= AB/21RD/C.1B$A0?dV//4 S2! #B-2! O"23B/4AC@230!1!  1̾ab!u.1#A# $ @1! A!0"420$3"D ?R".C%!"R "3R% "c! $!%1.4 N 2.S 3 Q!# bR/ !1 #2B1( A2 .1",1$=.S O4 "$.3,05QA1,?. P&/BQ">3P1QN0b_/."$A#0.#Oa oC r-/2# @"1B/M`.0@'R  s-"? q #-P`AP.=A1&>4R>'.$/>$0?3dQ#FRg$ v7/.3-$/03-0aQ0>`P/%^3tB1 0Q!>2rc2 !!AB1/K2/E. D S0d"5T226 UP̏a R1.!'0 s,4@ !%"..Rr E1CA Rt/>!%P@C/4Tܿq1#Q2R/%".B SN#A";A!/' ` 5 2Bc.$56 2D""4@B2"? "4 #"7/ /7Q61!3 3ݜN & 1S !3!D05 AE. G20PC!>cb40 D.! A"&E!?R@ݭP\63 'B!0 !s!!t3CB1eA  bB;A!DT3&#"@1##E"B# D  A! 4c Rr 1#A3# %//&#2,$=U4#?"62#A""!7C /6B017 B?36?2."""A6Bb!,361@TAB!1f U!D.rݽb 351s $" F?5C>B,Sb"PD"#OB.N&5T2C!B/A#5>C"24 ۰1D3o11/b0E/Q5 44̭BT.U"C@ 0U>AR #E@D!"E" D BzT@!P ">E/>SOB!"Ar! %"%A4!!B%"5D#2!Q/!sC40" 0.1C2 5416R1 CA콿"A$>4P5/524!QSDA1#2"5#ݎ#U#15P$5R0Q" /01"s 2W$!1 @!A251/2A"#C1/5?$EAR " B/ !$ ./#P,#4%b2 C7/$ b  " Q 2%61 23/@1B e52$% 25@3!4##$!./%#$3."b@B!O /v5B "$QD!13C  1 C@ 1$0./"!".0#!#1!5 50#//02%!#?2! 1r1 3R ! $D2#!31>7! "AC  R_01"C/ "!33!UDCbB44$#B4#3"233!ݾsD543R5#3CB##"ݎF#53R4$/Oa$A%/B 0a*0'.!TREr!0a !40T!A%-c@#3@-1$ 2A.R U/BR#!0uy+S3$-"@# Qd.?0NB`"02v1! A2 ;D 3  ?r$ t/=@/!C"-BL`C"D"4f#=PC =.#. @ 3L5/&2C2 >/"2. 2 r 2*1>\V?# 0rN7P DMBB"C/?`7?R" Pc R.4!s"RR5/r#24 %1Pc@!d*5 C #> s ?dOVA"5%A41 pW F1c- ""73,t@=t!"41R51%Aa3%q1 FB#."&=4,'0"d2"ff/'P4@ '1%0#CP/. B"#0c<C,#$/7R5 F"!1O37`N_lB4B./5/c#'!21R0%r=NQ$qc! 0G#5/O"CB#r$ . 9z#'0%/#0$s&?ABNuW`#-T!R6/AA.#7?!" 2#?T%"s 3A&0DC?.D@ F/$1b@ P"RE2$>BRa#_$4G0At 2?r "BCc0"R#*41/0! /&0CC % /1R F!b/.4 3OO3/c># 7#ND2$@!$# #Q>2$1"'C ! 5!5# !12!3! &2#"$/C3/@T-D/@  SRf1D SR !?N!$S#B$A#D6"5Bw[0S#@ Ab޿D 5 %>B0/B$BD.D "0C$ s >1$%3c5P#%$&R/%"#1050P%!24.R3S!!."D1?2!.D 12C E5$4E=u!# "R/D3?Ϯ"w/r.!/T@00##a $24#&#.C #7B >!0 D!2$/"" c 0# .#AB?D>/ P3R3D "F !12b/31?O2E!T>E!>05"%3. #3"22B?# C0n"26A!! 2OMD?R5 CE/#C@#/A"BB!BS%fU20%1##$#3"c!%7!3R" 6$5#A3N!!6!/R 313"$3?C/"BS##"T!!"0!1!26" #1!"0W&Q# #0/b@!1C? 02!1.P2! 11@.D#0C" T2ݿTT6#B3#C##13c7LSQ11Aٯ!/!027C#4T!#$364340$-!!20ss!AP?.$SQp0.<3 !%/d/#d,13 4 $/2A"3Bp1S<]W3"a AA?TB@  3<4>Q/D/_$ >C347/5PG#A.QC T0\?203S1A00@! Qt$"20M2' 22#N+P6 2 2G31`'>11t1C7!3$5325/"O.7O!$$'0b$^?$1BS/1aQ!4AT# 3@"/1$b@"@tE/040BܾGQ!!G0#'21 `/"f "$$@E18 R" C!##1$?1"5@&s!/`RECs U "S+B? F@2Cc!` OA5B0B21F"/"B%#-11/ 0-B24@7 % "c.7@3,17M$0 "?1RA U -$.DARb '!2E! r A.R $$a$.3 CE/ P 'CB2".4C44r"4 A % ۰!G2 Na#U=AR1?"ݿD!" G1# 4"4 uS%"RQR$2u ؿ#0(/2/ b%2V/BAu#B2кR*2R? T b $3%02#D!Q`.5?!3S?#1"T/41%.A"L;.4#/B2$/Qd2.# 0E/R5=s2.#4>R1.CC` a!! G04P>2! 50c .a/>2t.%/OTS#b$".@/ . R !"2.{# b0A@#303.0S #2312! B2D"26/0 3.//5/_Q B#."!27>1 BS0%/2/S/1?##!!4A!R2Qc"! 0Q1"5 2!2D1A@"!>O CP2. 3"1!C/P/0Fu242/!4F3 E4D4C3B"D43D20#DD"s!7D3"2DCB 3B263?#3F!#T533"#r#5$Iv0=0# N@" -  .A! -!SE@bBO134NaAC6-?@#5OAA 0IE0P#+01"/QAC%O/A#?O! >aBD@ O !.?P#   /J>"%,;P1c=NA"$ ,N?a#. 2% _15 ,_2" '<2b @?3AB6=N`Q.0^Nb ?PS(?a"$?>1$ _B" ,nB q#?C/%! 1 ! /# 133 12.# 1"0?1$/#A"5!"3??C" 2 !/23/ B>!!!3"/"2/!11 2{2 !!"1! $!  A2/0!#!!#? " j#1. 23!/ 2/0"/ " .2!!"!!0" ! 1.0(2#"233!"22D!!32"C43!#!1!""!$!#A!!R!!"4 C33$C2 #1$!C2#$3!34!"3B!!ݽ۾1 "!!3!44322"ܽ""/ !3!5 "#22! ##2$##!$#""!!  !!. / !"""!ܾ"!#24"2"#24!"!""1"C2#"!2"#!#!"#!1#B#!"#1! !!# " "#"!!2""22!2!"22 ""2"" !!! """""2K!"!!!"!!!""""!13"!!"#!"!"!2!"1"1!1!!!!2""""""!!!1>!2"!"!!""!"!!""!!"""""2""!"Y["!!!!!!!!! !  !!!"""WK""!!""2"""!x?R# =NOO10124% ./u!0@!R44+-=>O?QA233   -.>_@!2!44% <-MNO02BCDD ?/A2CS5 %  -=_QQ3R# >?`@@1!2#%.,<,./?2=VRCT4 ,=`QRBCB# /0P0@ "$D &%)..1rBb3# .1QQB ~4!D1$!$#4"$"#ܾ5"5!B$ 43D2#331%2D23C414BD24B32!."/ ./ /{##C"C#C0 "24!3B$!2#4"3B4!###"#23!ݾ#"3 #1#0#31#"#!2$2A#!#242#2#!"B#BB"1C$B3#1޽4$3#2221%C$C#4#B4$33D#3B3C#432 ͽ3#C2333!$"C2424!ݾ##424#C!##$"$#32"32231"3"###2"#"2"1"32##22#23">K""22"32"2""3"A"3""B#3"#"2#"B"#!2#24"#1ݾ224!32#$"C##3$ #33233$!##3##2211$"3#!1P2#2#22##222"2"2"2""22"""2""2"2""" #"2!""2""##"""!#!""3#!"/#"2!#"" #"3""" /13!#!#"#2"#!"#"""#!##2"#"2"#2"2#"12""#""dv""""2"""""""2""" !!2!" ""!"#|" !2 """"!!""""""!"!" ""!"!!!~"22!""2""!!"1!""!!"2#"!"#""""2"""q~"!2"""!!"!"""!""!"!"!!"!" !!"Lg!"!"!"1!"!!!!!""!"!""!""""""!!!"!!"!">%!"!!"!!!!"!!!!!!!!!!}k!!!!"!!!""!"!!4TDD44343320'A@q"$ >0440P3E ?/#T/AQ2 . 5E/@Q1@AsE??e%p1#,O1D5.O@2 >@CEO@2 MPRDMG->_@" OBD5>_!"OAD&O@"=@2S /O!$?1S&/?AB= C5OP- -0CS O1"-/BT$. >@! -ASD& /0 0ST&  /C$D"5"C!<% !/! //0"! ! {4#32#2"!#24""2!22332"# #"3!"2#1"#1"3"3!#2"3#3!#"4!#A42"32#B432$3"C3C!3#42433A$"D#$33B34B#C#C ݽ4#R"43$!335"#B#2343#3##޾33C"#2"!$#322"1232!3!1#"3!#!"0"2#!""""""22"2""#!"2!"#""2##1#2"##3#"3"#231#"$"#3#2##3"4"BCr2#C"$"3"233A#3#2"3$2"3223"C3"# #232"2"""3#2""33#!#"2#!""""#""""""!!" "2!""!""2"""2!"1#!!21"#""#"!3"2"#!222!""##2"1"31"2"32"32"2 2"3""2"!"#1"2""#2!#"Jj2"2!" """1"!""""! "#!" !"!"!!"""" "!"!""1""!1!""""#"""!""""""1!#!2"2!""!"!2"""!1"12""#"" l!#!"""!!!"!!2!!!"!"""!""! !"!!!"!""""!"!!""!"KP!!""!"!"!!"1""""""""!"!!"!"! "!!!"!!!!"!~!!!! "!!!!!!!!!!DC3S"B"3D3b2C#312#CD4442B24453451! z"A Q$#ts6>S.`%#.r$!Q-$." B4  !1b.$ !C.!5.P"!@ Q!51p!IPp5" B7 6AT !CQ73-"rޮr Pһ&1'OQ&b>E.cQ6S?3/Q.2ACc0=70RAQO!?A C?$S >vRA #ޯ!C'O5!5 #5BB5#-Q!4 . "D.b!d.B$%/% 4&5? eA"@K2%4.!u2/tB-5!6C0131 A/q4"E$"%2'25/!GB !ݜ3 BR-3,f!! "4'!ݿ4/'C ܠC-Or2% $ 2q/ "cD"IM#C30U/65/!C 3c3!/t#/>S*.B/&05 ! %!R//1%TB.7 0'>A02/C3$"!ER! / Sq"/!D2"$2 #CR!"R11 1`"#B4 3"%2Q &11t"B#Bb" 3-5 G@0"c.  v!A3A$ "RE,5#D2B$  2C0B2q14.E"4/4 E3bG0 "b2B3/T1?4A#T#DQ#A #C܎ %"r " "BC"D114?s$5Rb2#1$ 3c.TB0!GEA.#RCt##0B/G0ݮa#!4!"5B20E1"/r3F!!!!Cb0C!/%!4D$A&!b214B0DCN$@C&3!14/̽202@ڽ$CC1ݾE0 F"$4F,35D1 TD &323Q2$6"!#63"&C@"cR 7C1F1$A2C ޮS1 $CTD1%D3/b0 D40Q E2 CA.3/b2/cB C"$3#B""4>8.a/ݭsD> S/BO1# 4S!"/32D2C3#!B4`$5## !0DA4 1D!!D<D24R!$#3#!5.Q #S$E4BE!2C!b!o/ 2$5/ 3B.2R1 !ݾA1"0"CA1#!r@"@!BC"#/ݾ5@ /0".iA$ 70C0/#C! $O1B1!$!/$@1R! 43!!0"C!!!!!:A/" / 3BB"#?D#!"2"!#!1 B#A"." !"/kS? 3.# B 0 22! !D.23!2""-"!4 40! 1!21$BD 14 /"21" ""22! !##"14TC1e3""3058!# _5@5"?B03/0S/05  ?b B 26 q"_"A2> 0/!%1M"#S?2R D_4bA K. 0Q?714Rrb wz  aD /-V10 Mo.% A" BA B2Q1$S.1$a<0 a#tc'"".74@3nc$/$/0/AV Q# D&4"0! @1/wo 32>?ݰc71C%B/E/!C>4 B% ! 4C@v"Dͼ5sA0?+/?7P"'qD@ ! T B'/ 522/c3r6?4,W/"TQ >%$0>'sr0"3B.6"23!,D?S$/s1C"B".4@/ ##a 5cAf A! STP/R;P!' ' D,I!/Q!5 b/,A #O!c0B>"T "DC"q150?tQcV1#?Ts.7S-!-CR$&R t.2>Qb./D#S"$A3?#GR -% 0 `%1L7? 1#t#*ACܾ "$!4 &?5C-61>Q1&.$s-4q6 0.%!H#C3 cQ#=$4 "+@s."52304 4RDB3P#C2 '/Q!543>cB C#  2C"t!0""EAAE2,u2  d@a !@#%S.c/C .n%3P.1 '2#5 -2020$$R.s.#1 F/a&@@#- .B&0C/2>#%O$7d/"s32$B"50$?T"&2@"t1.4 P !6BR?/"5@>F2c42A?$@/$/12tDS" R 6F!"1C3%BcA2#10 1!40C. C?.BCD@B>b  &BBAQ$#..e?/c! ?4NQQ! B?#7N!' ZQ,A- a?B.!R 3 1$3a33?$? 14 ."S '?#A1 A,2AS/@QD" b?1  #BB% "0. R/B!#O$ %A E31 13A#5"B5 A/3 B2.43 ! 3?3D##2B244A7/2 /53D15!@vD@2#62E"1"0"#T254#"D  4B@A/ 50d1 !/. a=; CQ4 D1 ݾ6' 2A. 5r#3#!"E"!"M1bQ"B#s 3A!  $0 C0.!B2 2#  4.3S$".D%3!#2UC3"#30#""TT## 1#%364D"AA1 !$SDc 3/4 G3"SA!X*n A -A# @"A%\r.%3/$ # r A!/ oBO4# ^B0.B" XV?4-a P$<"&2/.?2  @3K7.!4=%"1 r BE31B bt@/1T  b1S7 "6A4/_2'a2 /0? '`4!"$ ߿7T.2 2؀ B!B?y>246/ 7!s/#T A 4%`"4"rSb5! #D..% 5A2C3#6 %f%BN"S$2=.% 0C P/ $D-71r T0RD0sQ ! '40B.@ b/BdE3 %c. $B.3S525@$A D Q3q$Q/ c0-/ 5!"GWO#F!"?A/'C/s02 "0Qe 3,33!D24Tc OS5$ / D3b +m"$"R. cAE1Q54UAa C2_0a4-b"!GAD/d2&14%B7437S32C.1 SPξ2! f1B"0/2 #12#bBެ!CTCR32 '>$-7/1B & UrS" b0 C1&?3q"aB=bOu0!"!"0;&12AP t>!D31R!.!#a#$"!4r Q$"#$2TB020E1! "0C1&4!ܮ " 6  #Q 20$/Q !E""b0ݻ 525Q%%@"72 4!$#E$0d/1 TS6#C4$10 !/5! "?14> C D %?# @_7 Bc!4 2 0D.AA2 $a4 30!P r0?0@-$C.B#S2EBa>2!1E0"3T  R/c "C1 0s!F11 "4QD?R/" Bs.! 070.R2 ίQ&B/5CR@! r0!2#.1AQ R 12 %22 !  4/2!4BS!/A/_$2#4@S0!0s !33,6#D Pc 1/AB5!/"&30h#C4!.P0153#"?@Cb 1E /3.B4!"$$//.# C$0m0C3 D3QB520/6  C0"/B1" 0PmE  4$!&"#$"1!/4!"E 242"C!4" "E .  C2!21!#R"!"!!# "10$3A ".$#S$44$22TC2!S#"4d"c25353cB#B4!>3>#." /R2N _Fs@61#+1#?"O4=2 /2Q#A# O0! 2B<2A-rM27-# b?@u20A t Gc+ P/V3" ONO'-!#=#?q#>!2Q10UO0O@,/!'2!J  B" ba/#AbB#v1#D4257041aE/]3O#-**=$-2!A//W!"r30$4@5 "A%6 !# ""Cp1 4#3!#!A A/ K!AN5!).P-1 6O Sab=3?wD,7-N/3.4e .COO322R!OQ5pC͏E"3 ./"BCn2%$  /#Q0 D fA4b-E B6!O"W/q5E 4##> 3<,&!4 4Dt! 4G! NW/DT"at!2BC.B4 >24@ST" 2a/$b$6R0! @#Pr /4#cDu"/R.. "t1T @ . C!  ".G.F1R0ر?3$$2$/&?O%.#5"! > 37NP%2G!0t#s#Q1-E#F2 0$.r#a #Dr?d22U.! "5!]!>B/71 0?b Gݿ2B`#T@BF/ 5/" "3!'0Ca 4r.1R-B@ReO,b"/1C.&/&5?;DQ1"S0#B A 5% 2 22r"T/5!BT $6?"C/5"OB#Cb!bEBGP r#b/&02"_2R 0 " 4RCS32B4s$1 PRA521A'!b$"S/ 41AB 3R#2 D#$c25.3$! 0#P& ^sDa!/2CQ;# R #D!#E1#b1> % .%1 %#'D % Ry1$ 3@"P >P0!T!$.bC2̽2S 4"C"A1r0 0E2M :#$!D45"S,!3-#!0/A/Rc.S"10 ?$d?QND/3.#S$ab0O40C2020&2-42!E ܿ?40"}"! #Ac1RC"/"4Q#$D!/0 !R 2" C2!!?5"ݿ"! f-4 /!?/!! C!/4!!B52&22" 34#6A! "11_."2$#6! !!3!#B30 2# 3S. !. $0#!D/72 .>122 50 "03!".>@!3/ A"$>4=1/#3!&R"30ݽ%2"%1%R4@3>?3 A4 $-$?QbC01R!1 S?4>1q GO5=b1C<",1u  !D#'?2& !20"%=4 ?TP/Q^5sC 21CA "F !_B CT! uCR4-/0ݰ!s/1&""6! B00p!p2-/$"aAS/ $S.At1,D1ؑ.G?$RRXBSCsc a32#, 'A1#!#s?2Q`5d.4&6R   @r!r3 * 71S70" $BB1!ذT. R/B / S#@1 rߪ"2cU"Q kY1Q0 c$057.!-uB S!B5AS"E3@b K#M$0!!$?E.'#%/#R!P-t@ %#b ,bA 0 ͼ/621#3!?5#CS@"4B!!S3rs2.Q "- '!S5!A #(>#FBC!R3? bR !20?M7?!1 !DBB#/$>u0-%!2$?!RC1rb2R &2#!6!'5Q0!C!&1#5B2Db S 5+""E3U1b@3U1B"$HTT0v!4B$? C3-S r-&1S#4r/DDB0UB 1E?10_#ads34c&,&0S#P$BOOCݿ41?c2,F Q""/RG0AT- 3&Q#%Q"$2!!T t"d"@!! E & c 0sBD@C##" 4QG"R""!@?B!b5E0Da/24"2A#=&! ASF..b1 6A B0# 2" C5N4ۿ4E5!2d1B2!3d42C!1 51 B -33 21,'A4Q#/  B>?!"!O!RD.!$".1/!N!#030E2"E""Q/C"/ .=#/23/cB"#C0!$ C!D"!R-/5R34A 61#"D!#qCAܾ$14CKo2Q3 A "4r332"0 D"& ?2#-@Bb 02/ͮ% -s AT12.D> G!)F2?" 4-d1r3"?B3CBͰ%r2DQ4@EްE2"C=? !5! "PR?%!#̮!!0DB-30B "bAQ!1-2/?F6 %4!4""11 :#41"s &$?B!!CO1R0C2 03"1 1 /"S$!2>"%d3!1VCC!B1!w!4#D F2eC $17SC2!1ڼ$!tD"//C%FoM? O//  -p0$ '.Aq4%>aQ4,_1D5->AR4 NPBR %/N N #S_ =_P1>0R5/`A" >!2 -O14$_BBE@@"# !% @0#; TE`B<M\OA%+=OA4 , `4 >A1$ ^1A%N>A#/@43 -_1 -^!R  -_"#N0S6 ,_!B%.O1$=`A#.,?!"0A0=2$? "O /!"/2 //" C#/2!.!!A#!11%=m/ 5" /  A0  /!#" 2? 00...  .!@0"/0 $ #/"012O &>!!   !0  !/"  !1. !0! -.! 1#S343C"3241#"$3#2ݾ#""!"DCC!3$ݽ#4!! !""#CT3C4C2 #"CB223"2"3D"$B 34B!DAj32#2"1#! "2A#%C#4323 3!"1!3CC$33S33 B#!# 4"4""$4#""C33!!"#2#"B!"#B3"2""#1""#!$344"2!!#B2"#"3!""#2 !sc!!"#B""3"#3!2 ""!232!" "!"!343""#C 1""!#"!##2 2 "231!#44!sv""""!!!"!"2!!!" 2"#"#3""#2""2"""! "1"2"32"!2! "!!io!!"!"#"#""!2""2!!<113""2"#!"""" !!ke"#!""!"!"#"1!1"!""""2!"!" !!!!!!! !!!!"#!auR"#DDDCDCCC43332#D433"!ۼAARCS# /11AAA2B"6' %  0?N/ !$U) 1C$# +.MN? O1"C3&  <^>P@QB34%  MNO@0A234% ,,=O0@AFV2C2 ,M>O@@!""#6$ &-;-.? QBRC%% +=O`@AQ1 />ON/!B%0AaA3& ;No `2AD3# ,-=N>O/@2"C6$ ,-N?@B2Q21"   !1 1.?/  !//1/  !"="##2##"3!#1#1#34"#"3!#24"#A#1#332#2#!ݽ242"/ 0/. !!  4C2CC4!33D"CBC!2#4"C3C!"24!334!"231324"#$"#3#2"$"$##2"#1#23"2121231""23#A"323$"#2"2yB33"2"23$33##$#C"32#32C#333344"C24#3C"333!ݾ"24"33$!23B#332#"3A$232"#2"3#2"#1"#2"22"21#""2"12"2!32#"2!2"#"2"!"#!32!"2"3!3!2223!2"##23"#"" ##3"#"# "31#2# "32"23!?b"2$"#23""#2"2#1""2"3""""2"2##22!2#" ""#!2!!2"""2"!" "2!""2!!" "!2!"""!"!"!!LF"!#!!"""#1""!"#""!1#1"2!22#""#2""""2""1""32"2!""!2""!2!!#""" BE!2!"!"!""!" !"!!!!"!!""! "!!!!""!"!"!"!"""!"!""!"!"2""""!!"!" !"!" !"!"!!""!!!!! !!!!!!!!!!!!!""!!""!!"!!!!!!!!!!"!lv"!!!!!"!!!!!!!!!!-H!!XQN14o@2$  .0B# ?A3% ^13 -^PB ,N!2$.@A4% ?@2$/fW@2%N@2%.P24 ,o23 -_P3$N@2' >@A4=O!4 .PA4 ->!2 -OAD% ;=/1#?PBC ;.  /PBD ,. ! .@QB$ ;!$.?QC4"?PB4 "!E Aa2 "&?1QR 14'0@R" "%&!Aa!"%!$2B224""#3pk2#3#2$ "13"3#31#B233!"#4"$#42"34"3C43!02$3#D#C!3#D"CC41ݽ#3D24B423CRC3C "C4C"D#4!ݽ43D"43U1#C433322ݽ4$323## 42B2#2"1#232"3""#"B!3#U"#$"2""#12"3""3$!3 ""#1#2#2"#2"3#B"2B"g134!2#32$24"23B#C#3 3$3"C#4!3#C2$232#33B#4"333B#32# #34"#2"1#2C""3"2#3#!2/2"3!#""!!3H3""12"2#!2 ""#"1#!!#"2"2""!2"2!"3"2#11#23#21#2"3#2!2"31$"#1""32#222##33"3#3"#2"!#"31#""1"232""2##""" #"#!"""""1"!""2"!" "#"""""!"2"!# !!#""1S6!#"2"""!2!"2"!"!#"""1!#2#!2""3"2"!""#!#""!'1#12""""2"" ""#!"!"!!#!"""""!"VS"""!"!!!""!" !!" "!"!""!""!"!!"!"!""""!""""!1"!""""O_""""! !2"!""!!!!""!!!""!! !!!!!! ! ! !""!"! !!!!!!!"!"!!"!"""z"!"!!!"!!!"""!!!"25#CCBC"2 $43b#332!"#C4C44$ Z5#!S"p$CB 0C1# ^VaDp -!0s"a">R@.5s#.@E.1-a"CBC>"=Os6aD@s/ 3 4 Sb2E@4;2ͽb6/aC?DB$C.D "pC!&1 41- -r"RJ' a 6R#.RCB4 2%>a&.A%AQ!B-%2D-"4@$P5 Q6a4!Q 5![&/BC.#QS13"s#@2&?C /36/#3MR%a4>1$/13.1$-#14AS AR$@a!A 3!3 !% #0B $>Q%R3A " 2$/!$."B"3@4!2!#"020#/"#!#C3!2"/ "2"#4!!33"""!!!!!"!!#"fc#2"321!2!!!2"22"2"#"""""!!##2!23""2!!"!"!"!"2"#3"""!!"!"#2""2""1!!!"!2"!"2"""1!"!!!"""3!!#""!!!"#! """2!!""!"""""!"!!"!""2"""""!!!""!"2;&!!!"""!"!!!"!"""""!"!!"!#!"!!! !!"wY" !""!!"""!"!!!!!"!""*%!! "!!!!!!"$#!!!!!!!!!gh! !!!!!!!!!!!"!!!!! ! #!!!|!!!!! #1_5ODN4.2-Q @4 _$?$ 14`B^B-1Q$Q$-p% @3>3k $OSB-A @"/# S %!RA,0/ !S2s@521P%!4B3.R&/Q4144~.B%R%Q$ O>#=3/B.A1@#_C /R =11+A&a5@D=-1%.q3-Q4N#$@ @3o2  C=3-Q,Q%07O4N4.2A@@O4A" _SAA13,0?! !!01/!!/!/!342#4!#3#312"3"2233C3$2243#3B#4#4!#!1!3"#!324""3"#!333C3332#"#2!22#1""#2"#"!#3$3"33#2#"#3!33$"""##"21#23B"#2"1234"#3#2 #;""2!"2"22"3"22224!3222!2"#""2"3!23!1""q##32"2"2 "#$""3"3!"!#"2""!2"#2"""!2##2"22#" "#"""#!""2#!""2#2"#2""##!#2"2"""""$"#2""""2"3!#2#"!2!""" """!1"!#"#"#P+!"#!#2!!!#!1!" #3"#""!3"#!2!!"".""!""1"!!!"""2"""!!"1!"!"!"!"~"#"""!"!""""!!1!!"!"!2"!!""2!1""0/!!"!"""!"!!""!""! !!"""!" !""fu""!""!""""!!!"!!!"!!!!!"""!!4[!!"!"!!"!!"!"!!""!!! !"!!"!!!!"!!!!!!!!""!"! !"!!! !!!!!! !!!!!!!{!!!"""!!"!*!"!"!!!"!"!}4TD4CCC43333!3DT4D443C3C2"ܽ3EDCDC4433C32!4ECSCCC43433!5?B70B% >AaOA6/Q$ 1%2D ,r5>B6?Q% ?Q$.Q4aR@R >1% .aD?a$ -!AD R4``#O4-PB02 >2 >B$ /Q3=0#-1D.QC.A#?"-pC&0C.! >B&@R%>> 1$ /q4?a$-@c&P3 >/2%AR%>! ?r50a@s&/QC /- /"/AS5/?! 0r5@2  1T!b3 #1$3C#C1""3123#B"332$!#"#"2#32"B "2"2"2$""##3"4""2""//./ 3D"$33B33R"3B4#ݽ##432C#C!2#4##C$#!2#3"333A"3232C!""3""3"B"##"21"""2#"3""2!""2""3""9*""$!2#3"2""""!#"32#"" #232"2""3"C""2"20#233"3"##24"#3"2 2#B"$##1##B"3"3!#"32#2#33n""3"23#""""2"#2#!""21"2"3!"2!"2"1!"1#!2ks"#!21!"2#!"!"""""!"22!!!"""2#!9*"13!""! #"2!"""!"#2"1"!""#1"2!2#"2""2""""##"#!""222"#"3!"2""""!2"#!#!!2"""#""!!1!"#"""""!"!!"!""""!!!1"!"!"!!!"""!"""2"!!"!#!"!"^x!!2!""!!""""!" """1!"!""!""!""!""!!"!"!""!!"!!"!"!!!""!!!nn!!!!"!!! !!!!!!"!!"!!!"!!!"!"!!"!!!!!!"x!!"!!"!! !!!!!!!! !!!!!!{2!"$BCCR$"222$45344248=` 15@2PAN-&-b3.AP!5 23`3.C['oAB% P#O#=B-Q$p$ 0#/#-B-a$-QP#O40CO4.2P P% P4 ?C"1V@6P$ 0".23.Q.a$@#/>3>b.a? # PC 0R?R1 A%a6@5 O-!7FB-r&A4 _"."?3/b.a$ @ /"?3 C?b1 0 1E@E0#=!2a5.QD?#Q5 3 4NR=2QQ$1CN3.!0/!0?! 0  /    //6""$##B#"""#"3!"2""#3""22"2 "#2""!2"2"#!"2"3"#1"2"311"3""3#31#32324!"##3#333"2"42#3232##3B"B2323#3B"323"#23B"32#""23B"22""#2#B#"""#2#2"""!"2"2!#!"!""2!""!""#!"!11""!""!!#!"!2#""#""1!2"#!"#"#"2""!#1"#"3!"#2!3"#""#322#!""3222"1Ia.%7Q1PO;1'#r!P1#A'#A P O!vBE%A33B#.r 2._$@ 2Q30"!bT"D.//#/#D-I7%.1%0@v Q-t!=4 q1"Sr? 6/6!7`!`BQs0H_1- ."R1"."0M$0ޮ ACR-`B7/c".25@!t 4 T3 rq E,ds Q?2 #@ "?s%  2*Q/?] _ $/!#/-a! $AB&s +?Qr<Y"+U0#31@$.a34? /.? #2 QQR!LCpC6.@ 3E!C)YB#4 E /r.1!f/v R A#Q,D S?6A @sB0ͯ%# QAW/A/2 "C@'0@#10%/>7P$ DA-Bq!T//f#AQ3 4A 1" 3c "# <,$-&-2"?r3b @1$QCPB/@E 0r 2Qt 1@$b0Ro.$42%0C>t "# .?013BR2"?22 0DC"!A  #R %/D!D!4?B b BD1%C3c%D"?"#2 DA"3#CCDB."#4X" %v*E$!1b5-"_!2<?C.0c 4 $A BDA "N0"?23 @ ROC2!,Ao_.3 "!"P 56.C0 0c3d#11R/$ D  DB; 6OR0@ '1J|Q v!3E>B !O34,PQ,aDB/q #3Q>#4sP/`!B?#1/Q1 Q3!0# R 53/ '01 S@4 A6 0ar .C/4v $1=.!@32=E#443`!s* ݐCaB"+Uc"3B3!4 R@@ &<, r3.A24A160Rʿ - O%23 %R$a/d#E2"Aa!ACc-C2/cR7="41EA6/#13f2' B70T/ݝ >P.u !/ N/D4@ '0 1("*!#$G41Bb1A!s/ݛ0 A01R1U=S.2As_ Q-?22Rrd S  O2u#@07< V/3 11#q .U3 /&1A 3b0 t4RDG"G !a-r532dR0 b- 7R.! T"#RCQ/;04@56?R.1Q`2C!D/=33'5 Q SBB1B V r"F1@Ab3s?E!!4 r1B O!!/3>5t!EAB@!CB=C"72E-71!D/0-" C 0Q5 20#d1$20=5 S .2/$u>F/51%/BA.!N/!E5B" #us!5!/ 0 !b.%5 4fR2B B4S3O22%!3P  "O1B&"R sU!2#@=7P!CA5^20s"#2Q A!"`#U/1.ޠDB0&"-P!b#1 !B23S.!. #Q22 /4NE0# 0@/2 5A"2!!XQ "-!/>S2!20 /$ " 5ݠ 2.# R! #!-/N! "^-, $SA#0Q!!"#3/5   0!! !#  3B#?UX !./"/ " 2!/"0!"!!.0 0 #! /{//A"#$"  // ! ##!"DR!30 A !3!#1""42Cc34321!!3""3!"!"! /0 /!/2"!/"!"#!;4B4 -?15 -P@5 0Q#7up#QA$%;@1" <`A4 <>12^`24 O!# -_A" ?A2& _P3&+>?25 =O14Sl^ .OQC6O0"-_PC$ M/,?26 /O1" .`QC6._A =1C6 > 2 , Q5C&?P@3.`AS%/NP"_QR5.?0",/3c..0RS&.>!A-M S .%o?1C;?P2 > $1/  !/!" ! 4 " / 2! ?%ܼ!#2$ 32434C##!2#B"4"C!32323!#2#2B43 //!!  / ݽ!#2"3""#!" "!1""4C4C$44D!" "2 3241$3CB3BDB2C4C1"""# 3""!"21"CB#C23!"!""g" """12!#34B2R34""!!#"#23B#2""$CD#CCC4""Ij""3"#"# 2! #3A"2"!"!/""0#35#^B2C1"2!"231#3#1$2CC3C34!!"2"2# #! Z#34##333!!"#!!""!""0###322#!!!!2"W/!"1"!4BC343BC!"#3""!"" !! #!#1#"""!"!"0M"!"!###2#2##""""#!#"!#2322323t`"2"""!!!! "33"##"2"""!" " ""2"""!!!!"2!!" #3$""2#2""""!"!!2'""#"1""!!""!"""""" !" "#""1"2""#"!"!""""""!!!!!!!!!!!!"!""#"""" !1""!!"!!!!! !!!!!!!!!!!!! !!""""!!!!! !!!!!!w3C43433"!"EDCD5$_Ct--=.?QRBD34$ aArB2C"=P@@?/&  -=No00A"#3# -?OARB55  ,N_PA@B2 NMOO 113T$& 2S*=NOQQ3R# ;>N_P011!3$# ' +-<.00AR3T ._`@AA!" ..>?_>?/"3U5%$.  ./QRCc# ?ABBA/5"6!$25!#3D3D442 #  !1!2"!>23B#C3R2#R!C$4#"B"4"C3B!323 2"3!#"3/ "23"""# 334"3"$ 3332#2#$24"#303BC232#0$3513B#2#3CB$2$!ݽ3433C324$B"R#A344"B3B34C#C44!3#C2CBC!2#3"330#"B"3#4""3"###1"3132$ ""#1"3"1#"3!1#1}V2#""!"#2""!#232"3"03$#B""23A#2"2B#C3"" 242#B#2333"4"2#2C"333#34!4"3!#"4!323 "#323331"31#3#1"21#"21"22"1#"2!1#""#!21""1""2""!2"2"!"""2""!33#""2#3!2"#2##rX#"" #"3!3"" "#21#2# "3"#"#!""#2"21"22"2#""#"""1!#1"2#""12"2""!"""!"1""!""!"!r!""!2"#"!""#"!""""!"!"!""!"2#!""!"#""""""""" ""2!1#""""""1!21""22!""""""""!""!2!"!""!!"-!!"!!!! !"!"!!! !"!!! !"!"ki!"!"!"""!!"!!1!""""!!""! !!""!""!!"!"!!!!!"!!!!!!!!!!!!!!!"""""!"""!""!"!"!"!!"ѱX2P2 -OA$ OQB4+<>"7.P@  ?q3D  3V&/A23 =PAC ; 3 ?"$ -NQ" ^a  Q2# /`@#..@1"# `Q4,-0/r#4-0r3LOa3 ABB >O!?@a,?1#T.3 --0$@A6 >P1 _AC #  >A1,00A#*1/1!2,!@"/>4r/.!'N/ 0#P7.A5!/@+C!? "6010? #! 0 2A2/=".. $ $  !B"P.@?0"A 0A! 2.  "/" / 1210/"Q3 // ?/ 0/!!;1Qb 12!!11'/?## "  !#0!"1Y !.0#>.$_/0" A 3/ .! /?21/.  / 0"""!2? @ !/"!!" .0.0  .!  !/.!!!" //!#  /1/ / /!$ //0"   /B 1 / /\///!!  %"!..  .?qb / /!! 2`/ !// //  /1 //4"  !t3C43CB2"!#2344CB32#!"2"3"1"3#C443C2!!!!!"""! !!I!#B40R % B# C $?a5/PE!3/2c3"03& 831Q/B ̰ ! BB0c %+#PC4?3N0:#4RA!#! C>6/ "%1QBs"" A #4 3,"_34 4E&!"/3+3 D>3 133 25$ " ?A1>4" B0! (  /1? "1/#?!B#-! 0?0 #%  !/12!!/! O "1j!Q/ /.  != ./% !"A#//  /22!0#@? 1.!H2/0"/!10"! ?/0! !."!!"  0!//  !V-!!/1 ///1[)  ! !u 1/ ! !!/ 0?/1& ?! / . !//  23"433D3C443"2"!! "ݽ/!!/!!"22"";!!"!#!!!"#34#C43B#!!3C4D3D3C444C3D33CC333B233##33C3D453D3RB3443R3C3D3$B34334#!!!"""ί1>D^#.3@> P# "C QS_D>D/R-AA%B% P#O#-"A P4 0#?#-RAUV@@O4?4/R>2A@4`3 /R.B-Q1%P4 @">21A@ ??2?%?'/S$/Q%P4 P5 @4.2! !@7AD_2>2Ba5Q503 >1.r%b$@ . 0*6PC >BN3.2B-rP /4o2.B;" Q5 ?C.D-Q,a B$ 0"/2.""?#$B"S#5!!!!#"3B"C332$#C2"32#14453#S343c1 /"   ///!//  // 22"!"2"3 !"21#!""!3"3222"!""#!f   !I3"!!"3!#3#3 2"!!!!#3!""!2ݾ2#3"#2""!" !!#CCCB442C2"!3#32##"#!!2#!#!"#!!"!" !"!3233"3"#"!!3333#333B.<""""!!!"!""3"#3#2 !!!2!!2""!"'N""#!"""!" ##3#3"3!"3#32#2"#!!"!""!"!"#""!#"" !"""!"! @+#"#2####2""#"!""!""2!"2"""2""!"!!!!! !"""! """""2"#!B"21""!" !!"""!!"""""!!5?" !2""!"#"!""!Ic!!""!!! """"" ""2!""!"!!!!!!!!!!!!!!"!!!!!!! !!!!">dQ3"NB NB% >A%.Q$-2$ >2 FBA >1 .Q# .Q% .1%,0$Q NR4 .A$=0%-A5.`3,@203OC>2 O2$ 0a$N! -1$.R5 Na#.J0@C&.P4O" O3'1b%?1  ?q$?Q#/,AD aC+? /3/QR5/O"$  Ab50@ AT%!R3 4B4B"D"4 ݽC4D"44$B#4523D2D"##43$4#4!#C"4343B#C"C3C3ݾ2"C2#C#C1"3"2#2!"B#2$!""#"#"23#3!#2#2"2$""##3"#1"2""B#(!$!203B3B"3"2!4#41#2"223C!32#!$#3B"B2# 4#C3$3BB43342C2"233"B"B 2"B22B#2"#B"334!"2#2"32C ""2"22""2""2#!""1222#!"2"22"!#" "#!"""""3"!#"32#"" #2#"""""223!22!"##2"####32#3"2"233"323""#2"2"2 #31"2#"2"3"###1"!#23"#!"2!""1"2!#!#""!""""v#!1""!"""# !#!""!""!!!""1""!""!2"!"#"!"!"""2"" ""21"2!12"2!#"#!"!#"""""""1""!""#!"2!!"""!##!"!1"""2"!#""!""!"!!""!!!"" !!!"!!!"""!!!" !"!""! """! "!#!!"!`k""!"!"!!!""!"" !""""!"!!!" z!!!!!""!"!"! !!!!!!!!!I5!!!"!!! !!!!"! !!!""!!!"!!! !!!!"!!!! "+G#3E#BcD`Q"+A C >R_#M0 1A4q".P42NR/R2A$!OS.QQ2@3 01?3.Q /4=Q$ O?$ PD?S21A%!D@C-!,$bDQ$N" 0>&Q$P$/".2?R/B@/"?TOD?C-0q5QC?",2.R6A4 N.v@5?3.21`P$ 04  3=4423 Q!D7B@ASe5>!44/3C?A1$$!"A"!! !!$!"!.$!4"' "2/#$/1"0>"2!"1#$ 34!2!3"11$#P#D34C!4B$C1DB/S!3C42#BC2$3!32 #CA#B042#C!$#4"#\.C13C/C2$B!C2#31C2/3!#B #1#443"B!43#C1#BC"#"2""" ""#"" 32"B!#231#"3!1# 2!#""B!#3 #!"3"1"!"!" "3!"2"1"!!!!!"!"1#1##2"##""!""!2!212 #"! !!!!"!!2!1"!!!!!"""!!!!"! ""!!!!!"!!!!! !!! !!(#W[Wa/1i_|JO#LIxyYbZZZMx}CC42B22"! "##343RBBBB43CC443R3BR"B23#! !A2b!UD3$1 #BV 32R354!U!"eޭݾ03DC3SCR!B!S#%216A/ CCCE>Ac2CN%/Qc#2d2"F#$S!AS1!#ͮ"QD4D$4S#453R"4A""R!"5/ ͭ -G!B%0ݰA5?#A 4D/'"bD!%B D%R3!$4C.0bC/5BRS?#C5!alD!"4 b%2"SD "b& aD/%"$CA%!Q>$"C$0A 4&$3R!%"Q/#@"##!2340CR 3`Q40" 3.$!34#2 %$1"AB.#12 "1 2#0"2.$.!2#@B#!32/#!310#! 2#"2./ 2# 0A "2"!1.S051$B/#/ !!22R!CB$C3 !!3#2""2!"2""""!!!#!!!"""""!!!!!!"!"!"""""!!!"!"""""""2!!!!"!!"""!!!!!"""!!""!!""!!""!!!!"!""!2""!!!!""""!!!!!!!""!!"!!"!!! !!!#!!!!!!!"""""! "!!" !"!!!!1!!"!" !!!!!!"!!"!!8Z!""!""! !!!!"!!!!!!"!!"!!!!!!"!"!!"!!!!""!!!!!!"!!!!!!!!!!!!mb!!"!!!!!!!!!!!!"!!!!!!!!!!z! !! !!!!!!! !!!!=C!! !!OF!!@<!!HV! !!! xgshxx !74Zc17Q/1 !" E#A$r4#U"$1Ct!NA43242$b3#E DB/$ 0F&f"&C! 4S3'C2 $43# B 4d24E"U""E20@ ܽSR $E4#5C#BS!""C!#/'wQ44E3!4!ݠ@B R BC4 %?CQ62"a QR2/$$"$2Rs46 C1@!BC0D%!%! $B3B-C/4 2A%3S b4%/4 !BCRR.5?CA$3BgC+SS4?40$A$A R CR.55 40B3BCB.C0C0033 $CA0#1!"2 %A-43/4$00 A22.#>10# A3-2$"02#!!1.2#$!!#R2! !" #2$3BD 3/!"B"2!3"#!""""!"4!!""!!""!""!!!""""#"!!1""#""!"!!""""!##""""""x21!""2"""""2"#""!"""""3#"2"!#"![N!"22!!"#""" "!#""#"""!""!#"""!!"!!""""!""!!"#! !""!! }" "!!!!! !!!"!!!! !!"!!"!"!!!!!1!#!!""""!" y""2!"!!!!"""!!"""#"""!!!#"!!!"!!"!""!!"!!1"!!!!!!! !!!!!!!!!w!!!!!!!!!!!"! !"!!!!!!!1!!!"!"!!!!!!"!!!! !!!!!!!!!! !! !!~j!!!!!"!  !! ! -%!! !S[!!  !!!!!!!!   ui! !no  V`CD3S3R3BC#Q"A@T" 1bVB/B307= Oe.Ass05% B?2.!B%B4d f1'1A&3RC, "޾b30%BS!C4R34T"4-Ab"3751A5"2!%R3\3 7&0c 5?"SS 4C %""rS@4D>$2ܿA6$A sc 2 B/! "3%Q A'!s c?&1 RE/R51a40$4652R-S "D%B b ݱ$1 "DCP %"C/2P BD>ACD& 54!QB!2B3?40 C642C5 QR$35QB4!"Q3?.#2"C3?14$?32?!#0""2?1B$23"0"#2#"!###2.D 52R #02" 3 CS 5"R4 ""!!"R 414C/4 t{"B 32$3"#""!3"!3#!##!""3"""""""""""""3"##!""1"2"22!!""2!"""!""2""!""!""2"!1!""""!!! "!!!"!!!!"!!!!! !!!!!"!!!!"!!oh!"!!!!"!"!""!"!"!!!2"!"""!!"""""""!!!"""!"""!!"""! !"""!!!""!"!z"""!!!"!# !!!!!"!""!!! ! ! !!!!!!! !!_a !!!!!!!!!!"!#0!!"!""!!"!!"!!!!"!!!!!"!!!!!"!!!"!!!!!!!!!!!!!!hx!!!! !!!!!!!VC  !!!!! !!!!!!!9 !!!!!!!JK! !!!+ !RZ! !!!!!iq!!! tm!?0ca)s{ /!AG!$/cTD"b$!"A2!ݯ!503/'?$7N!c.Q #Tb#S?E/SA=$BE? #!"" 01=!C"327! $$1$T2s36CS{ "S "30/ 2C4̾"#B."4C!42$41$BB6!!D$CAc"EݿRܰ3431-#4"ݽ#2#B3!.2332B4"3QBACC!3 #B/#B223#2# 3##!B #m20"30 3"20"B>2$"#1 3# #"#"2#!/B#3"v"2302!"!#"1   !1!1!O!!"!!$"1/!/"S!2" !1!.!.!"""!"1   0"$3/D3 #DB D3"D"4"3!32.212!213 "C34C245!441$#CJ"2!#3## 33!3B!"2$# "2#""" "2"3C2!#B2 ##22"!"# 1#3###2!$#!""" 2B!32!22"1! "2""3"#31 !!!"!!""!"E4!!!!!!!!!! !!!!- !! !!! PA !=/!\k  !9D!vkM[LJIN B@ dhzq0+jiad"233BCCD44C44B43C4B435252B322" TB2""3%R!A07!#c@!.@A <  -AF? 2A&/E4@4bBD!B#5!B'A$!b C B3CF!CT"C4D"$#2!#K%"2F/1 A$C"723B!5"R"CCb##B23/5!"RB3CA!?4T T! S1 C@C"#Dܿ4 3>b$C%A %!D@ c0SC R /# S#D "b" 43%24Tb5#R.޿$%"51-A.$24415"&D b>B S#R3#B.13 #A#3A23@405RCA.A/!.#-23 "3$1 #A#14?BCB.2.A.2##24 #!# 33/21/#1!1!"! !!"  2"#"!!! ! "!"! ""00/!!!!!!!"!!1#C#B4B#1 ! !2!"""" """""!#!!!""!!""""!!"!!"!!!"""!!"""!!""!!!!"!!!"!!!";X!!!"!!"!"!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!!!!!""!""!!!!!"!!!jy!!!!!!! !!  !!!"!!! !!!!C<#!!!!!!!"!!! !AX!! "!!o_!! !!!=<!!! ! /*!!!-1   !!! !!c\!DN!!"z\_A3JP#"BBR3RBB4$$"B343BB#"! 2"3B5$#R4$3C5#3CC43C$"دR Q#SF"$b "D $/?!%0&-=.@A2%b3c02q40/P0O0/-2Q#RAcO0C"E0c4!'4!,Sb~,/A?b%>C$@#B2%!B!B6"! "! 2O3Bb!"R5!1"T!D2" 8:"$%"1D5#B%3B3%$%"!10D#C4SR334b23B4D#2#b"##BF23CDC3R3DBA33D"2pC%!5 R%1%A>2 %!b%2S BC@S4B3A4 34#1B # %!D#B C?D3BB1B3#2?"# 2A3?%!5 D4@302ݱ" !"$#Q32B2"!d" $02 1.""#""1 A 32"  "!/!!1?"!# 2& E"C1#""!3$3/S2$C D2C1 31#C 42D1"A{322!#3""!""""!#""!!".!!!!!!!"!!" !!!!!!%!!!"!!!!"!"!!!"!s2!!! !!"""!!"!!!!!1!"!#3T"""""!!""!""""""!!!""!!"|!""!""""!!!!"!8G!!!!" ! "! !84!!  !!!!!!!!!!"!!!! !! !!!!!"!"!"!"!!"!!!!!!!"!!!!#/!!!!!! !VF! !!gw!!!!!!TG!! o!!!!!! !!!!/*!!!  "2! !!eg!!  !PL !jsku1)//3$( &0"@  D1d"/5Q$R503C>.BU?.aB22ABT05#@@2-C /1E@b0b#B,^bA31"!"R"s!#B%R#!DQ2!d!1E1B5C"SR$""C3b1#BC4 !2"OJB#A3,B !D3&1s!sD. R?ݯ#ܾ"B 2>"B$"#R$3 DQT"c!E/S/rB-|R 3 C?C=5C534QDAD1S 6R4#/C24 #DbR1#P %% C vubA/#$#1A#A"233$1 $04!C>4Q.23$!/#2.#A#1,3A"A314e3/B43"A/2"A21$! 3!3132 #/B1/1"1"1!"  :33 C44!3 #C #B/"2 11!3"D14!R"C023! 2""2434"D"3 1""2#C #B/4B 31 2!"2!#3!"1"!"""#"!"!"!!#"""""""\F!"!!"2"!"""1!"!#"!!"!"!!""!2"!""!!"!!""!!!!"""!!"!!"!"!!!!!!!"!!2!!!! !!!!!!!!!!"!!!!"!!!!!!!!"!!"!!"!!"!!"! !!""!"!!!!! !"!!!!"!!Yj!!!!!!!!!! !>5!!!!!D4!!!!!!x"!!!v !!!!! !!! !!()!!yz!u! ,! !!!![S  !  )}!z}A:MR./_b"  _dAT/34!0Bs##BO%3D& rG?$&2#E> TDBD B !B".# 2$MB1C,$$06B2D ݾ70d/CR3@$C!R! 3442 B43#4/2b52/b!4E@.b?U#1 S226"4"%#3A0%!Q52R0QE/BBB1%" R"B!3" #"3#3"C!4"C$A30$#C3#/!42A03#2#"#32!A?!$3/ !#/3!B"#" BN"!!!""!213!# #1# "2!1" !!  "!#1"!1#!1!/! / !!!" "!1/2! "0!# $#42$D!#S2/B1432 #2#! 232# 33#$!#3 4##3|#!2 ""!2"$3!C2!34"#2#2343!#312 ""!""#""3!223"""""33""#2#3"" !#"!!!"A?!" !"!!"!!!!!!!!!! -!!!!!!!=A!\Tca!VK37 =L  {~fj<5|w ""3$$$3RBBBB4$2CB434C$Cu &#"A"2 1",!%$C&71#4T01#R!t5 d  23b#d!"06B!Dr!'02!d&BC435.#G""EB"5b"3%5!21 $"" 2!/4 ݎ#>3F"1&1!c"6 A3!3 3C4S$"7!DD2"$"ݼ%D2Uc/0 a4"4AB/$A3SOB E$2QEC1RS03qC #-B@"2b.#1ݾR E/!vb52R 5B2ݽb41CD>$ARS޿#P5C!4 3O"B"?4!$C?$AR&#B C 5221#230$1 DBA#A3 #1A#/"13#"1 "13#!"2.##B#!A/ !3"#"?" 2 @2. #!!2#1." 1!1"2!9BR 4"#R3 #!#C!"32#2!"""!"2"""2"2!!!!"""2"""!""!!"!"2!"""""""!!!!"""!nK"""!!"!!!!!!"!!#"!!"!EJ"!#""!1!""!!!"!!!!!"!""!!!""!""""!!!!""!"!!!""!!""!2!"!!!!!"1kU"!!#!!"!!"!!! !"!!!!!!"!"!!Zg!!!""!"!!!!  !!!8.!"!"!!"!!!!{!!!!!"!"!"! cl!!!!!"!"!*!!!!!!!!!!!!"!!!"!"!!!!! !"!!!!! !6E  !| "!!98!!"!!! "! !!!!!!!!!!cl   !!!!! hn! ! mh  +' z}GW!"#344BR3CC444$343312"#3444C4R#CCv 17B"#!1 7"!Dt4D2d5[!3@4c#: ,$"2CA3rA"3F 4R!4 ! @&12!7C"&$2%S2!#A"0/2/$r$S2"t12#U""A 53 $U3"$64D5!!2B1!5 $b#7434&3C2$C3!"6"!ܽ~S0C@ݰ%!$Q" R4R/% 2@ݿ3B#R 3ER.D  02 $ 2.B>$ $A$3$C 33-C/}) $1$"$3 bSR/4/$QAR B.C/C05!3Q32CC%C@%0BCC.C?4 $!(#2CC 4R %41!1 Q#2 43 233AB32 0#!A 22# "?"0`` "A!3 4#B$!@3/" !"!!0-"#" !!1"0  *8!"313!#1!#!#""! "!!""!"!"2#""!!2""#!!"! 2"""21!!#!l 2""3!!""1!"!"#"22""#""!"""3"6"2""2""#""""!2"!##!2!!""!""!"""!#"!""!"!""!""!!""""1!!""!!!!""!!"BR!""! !!!!!!!!cq"!!""!"!!"""!! 7W"!2!!"!!"!"2"!!""!!""!"!!"EU!!!"""!"""!!!!!""!!"""!"""!!!"""""!!!! !! !! !!! kT!!!!!!!!!"!!!!!"!!6!!!"!!"!"""!!!!!"!!!!!!!!!!!!!!!!!FP!!!!!!!!  !.!!!!!  !  !! !!!!!89!!"!!!!!!!!!!!!!!! !| ! !OP!!jv !!CV!!!! ZM{n/mqszCQ23$!! 1"3$3D3RB4#C44$23#"#3CCR43D$#B3C#CAc2"O r7b#"? #"7M$!$.d.-PrU 5%Q4N- 0##q#d!62A7A"QC  !b3 %46 /$B44T"4. 0c3EE""!DA2!3!?5 ܬ$4E"#SSB#2SB"#$S"""6ݞ"!fd0B SBR"C=2A2B D-5!AE%12-D0A3?CA3 S@2 C.$@3T3ARS0ܿ#CS1$BC?&"46/0 S 0ݯ35/CB ! R23QC #AC4O3C5 "6$23.2@3$ "33.C@BD%0 430"A#.4AC?$243A3 B>3!2B $ 23!!2A0"Q "CB4/$1 C/42$CC 23A4$!CD 51C3!2"#"03GD 42C 4""!"2D 42$C 3?1!"3!3133 #"!"21!#2""2!!""##"2""2"""##"!#""!#"!"""2"2""!"!""""21!!#""!"""!2""!"^I!"22""!!"""!!!!"!!!!!""!! !"!! !!!!!!!!!!"lr"!""""!!""!"!1"""!""!!""!" !!"""!"!!"!!!"2!!""""!!"!!!"""""!5!!!!"!!!!!"!"!!!!!!"!!cj!!!!!!!BR!!!!"!!!!!!!"!!"!!!"!"!D-!"!!!!""dQ!!"!!"!!!!!EU!! !! !!p! !!!!!!! !!! !! !CH!PF!ZW! gr! ! !!! !^_   m[no 'bn//1F0#/D s,T!B#PݼQ1C0!5!4&?3V/"tR.R 7!G%<g" "S 4" 3A2,B!023A#@CO!#CDR$AS!T0BD?S  4 144#C$$3.4R42 CA2CBD2!D2?6T1S1B"##3B23C2B$$#!#2^R1Q0"3!$2/#R!.C2C2B1C4"432#3!3B"cB1#3!#43B"$"3" "12A""""."2""@.21212!B"!A 1?.!""!"!1#!"  2 !# !A #22!104D34C23!"3 3B $C 53 E#43 42!#2 #"$$ #2"2#34;CR#SBD3!3D2#!"!#"!32#C13C13D!#C!3C13B!33 ""1"#"#314B!C3!23"1!"!"#!"!"!"3"##""B2"3" !" 2!$31#3#"!"2!"!22$#!!3333!!""12!"!#!":D#"""""! !!!! !k!!!vz!!!!![r!!!!!m!!=G!!!  !%!!!+ _Ou h[ #" DO'$cd[Yot|RC4C45"B4#BB3C4B433B"E'!! !"@?C s14 7A552#r5!25  b2.ݮ x0%AbS1%"S/#25R34E1"$!"#/# 13TP,  0 2CCCC5SBB2%23DC#b3C$" 2Cd! 52 3A!2R C!COSE'2=E$/& Q? 5!D"A!R5b2%3S@SOr/rC42A#R.3 33 %A $A&!S0S?S/DB.%"/$A.&!23BB#Cq%# %"5 D!R4!2@"3$03/!B#."3 B"24!RC!B 3" "/33"A33#A44B>C3."2.##"3###1"!10# 321/"%2#21 # C C!$D $C144 3B/2 !  #!$!S1R1S!C122!21#B423ACA#!"2#303C $342/"!!""'"32!#3!""!!""!"!!!!!!!'4"""!!"""!!!!!!"!!"!!"!!!!!!!!"!!!!!!!!""!!""!!"!!"!!!!!!!""!"!"! !" "!!w!""!!!!!!!!!!"!!"!!!! !!h"" ! !!!!!!!"!!"!!!!!!!!"!!!!!"!!!!!!!!!!&!!!!!! ! ! !!2)!!!!gg!'! !!! !!3,!!lz! {n !!99!!!TG AH jhu !!13$$3RBB43CCC4434#211#d!VC!!3141&1"%/!; .7?1a4TAB51!BS,L Q 0B#BDG1S4C#5%!1#S"2T/ܮ##$7!s4!43D1#b& Aݯ"}1$AS#S#EB#23b##!5B"0#ܾ/1c"##3Cb!3#63#3$R!.2$54DA2%#$"#CD3#E%$/"!%%$#b$"14442$43S! !&##CDC43#S4#A44C32!/1C$B5 BD!޾R4A5!#C$2% $$# #0C$1DB% R#$!B "2"0$$!C 4C03N3% 4.% C"3#230132242 $1314!A.#@"01P}1 @." A""32 2""1!"2#1.!0s3 4B/D2C 5"2"21C144 3B4!1!"3B#3"#2!"#!##"#!"""""2!"""!!"!wX"""2!""!!""!!""#!!!"""""!!!"""""!"!!FZ!!"!!"""""""!""!!!!"! !!!!"!!!!!!!!!N<!!!!!!!!!"!"!!!!!!!"!!!! !""!!" m!!"!"!!!!"!"! !=("! !"!"!"""!!!!!" "!!"!"!!!""!"O7!!!!!!!tz !!!!=@! !!! ! !!!!"!!"! !!"!!!!!!!!  ! !!!!! !!!gq ! !!\I!!! !!! 0*!!!!ZZ?M n` zz !!2#3444C6"B35#3CBB3#!"##C45#C$S?v!"220̿#. q7!434?7AB&1a%/$@BS2E25!360Bb/-1!"OD!# #R$C%"D !6B!c/>B>.$C2"CB414$A"1""21 B/"/#2243"A3"C#5Q11/ /N !#3c23CCD##34D"3352"ޮ!!!R53C%3CC#4CD235"B1ͽ"4"SS4QB1D!5 B>3 243/C/#R.#C$B3Q$!5!4C030B C03/3/!3.3PUP$!$0%B/4߰#"222"$4"##$1 3231C!B C#"A #323223" #)""# #/ 2 $2 A 11!!."!"! "?2#".!!!!!#24!S2C1C"3 !"333C43424!2/"!""/"3[q#B/#3$2"1!2!"2 !"!!!!!!!!!!!""!""!"" !"!!""""""!""o!"""!!"!!!"!!"""""!!!",!"!""!!""! ""!!""!!!!!!!!!Q]!!!!!rc !!!! !!49!!!"!!!!!!"!!! !!!!!!!!!"!!!!"! !!!!"!!"!!!!!!!!!   +!! !!  !!!! ! !!!!`^!!!!!!*-!!!! .&!!43BK!)!} Y\D8`f../?`Q1B!F.b/#OF  b3N6!#޼C0CS-B03sOb 7_$r 5@2D CR/A1!$4>3a"R,3@EA#D T2V5A#@#CC# 1AB"4$@"4D5"CC3D2C# 6#cE2b?d . 4;D2 %30-D3 C43!B4$#R35 BE/$3$C3/ B2$"0$/24#2 222C03A$ "302Q"B03$3!B#2A"" "23"# 30B!#1A! $!B #!A1!!""!/!A ""N$A"0"" ""0!/"1/!1!1?2 !1!! !0 !1/"!!2!"!   !"!D43"2 "221""3"##$" "B132!42#32"2  !""#!3Y&1C33C"22 !!!#22!3B""4!#2!""!!""#"#3!#" 3121"!"133""#2#3""!!#"!!! !!!!!!"!!!!!NC !!!!!!! !!!!!!! !!!!!EI!!! e^!!!!!! !rr+#cT!!(%:! ksSVF>z,</0r35u ܰQ:!R17C"+ . # u/@c"U 56b"C"QE?D!3C2RQ3CA4;B1t!# CRC!6BB"#R% A1#2c  0D#3t!26""B!D$C"22"453S53 $6 3SBOݾG #5CCB$DBB2SCB3$43"2R4"14"# %C33TC4!2S4244A2!"!"S2#3SQ#5D"6#"!2<,S%!BD@$45 53R-E 2SS1#C D4! "B 5!#C"޿R4O2CC1P3? #F$ Q?24/$1!-D"%C1#Q R/%!BC?4#4.$!B 4/2@ C$ #@ C$!##Q #202A @ C?"2B !# "2.2-!022. 1 !2""Oy2-0CS42R3!22/$3#S!CA$B3 !#3!C"3B2 1"""""""2!!!!!!"2"!]9""!2"!""!!""!"#!!1!".1""#!!"""""!"!"""!"!!!"2!!!""""!"!!""""!"2""!"!!!""!aH"!!!"""""!"! !"!"!"!!""!"!!!"!!!!!!`p"" ""!!"!!!!!"*!!!!"!!""!"!!!o^!!!!!!!"!"!!!Yc! "!!!!!"!!"!!!=B!!!!! !!"!!!!"!!! !!!!!!!!!! "!!!!!! K[!!!!  ! !n!!! !1/!!!! !!!!!0!!!!!!!!!!!!eo!! ! ! !!t!!!jv!!! ig !+% ssZi D4BC43R35#$$!"2B 44E3!7R!#d !4"@C12/&S/7?"d!"'1 11"/\c" d6t !4" E0 A 5"E24C&3RaCD 4-E 5% 71%1RQC3 $ %#4Bf4$D4%%/"0"0RRR!"SB 31!!!#D"!T#"r2!SR"6#1#C RR.S%D!%0%2 Q4C &6"ݰ"RB4D>4S@4B#DB.R.4 #!1ݿ#CBD5C % 3P B D SE6/"@ !R6E4?C@%!$BQ C R,C-4>% 24%2Q-3# 3!A2A.%C4 #222!.A/#!1#2.A4? 0"2#/" "!"!!11.2!0"0221!/   ! " 0Z""#2"3!!#2 !!""!#""2!"!"!!""!v}"!""!!!!!!!!!!! ""PT"!!!"!"!""!"3""!"" "!""!"""!!""""2""!!"!""#!!""!!!"!"2"!"2!!"""@*"#""2""!"2""""""!!!!!""""""""!""!""!"!"!"!!2!"!"""-!!!"!!!!"" !!!"!!" !!!!  6!!!"!!"!!"!!"!!!!"!"!!!""!!!!!!!""!"!!!"""!!!!!""!!!!!!"!!!!XD!!"!!!"!!!]C!!" !!!!!!!!!aM!!!!!! !!!!!!!"!! !*/!"!!!! !!! !!!!!!"!!!!!!!! !! !!! !!!!B3! !!!6;  !!t~.>! !!  eV!!  !vwiq#!#3CCD3S3D$"Q###Bd""!۽ S.GB.4$ "!G=C"11$.G.AbU&$ E*2B?!!2q1c"%A"'B!4D 0 c$#E A3R%"S$.".O b"$%E""6120^r$! ݝ##T"#cDB%#2%5% ͽ߿Ͼ1 6#356433D3R"$B12$1߼B2"T4 6aC/5"23 Q 3<70qc?5B2.D11C%"2D1$4S?3C"bD02S50A6 5 $2 #0#13.$1B &/$2BD.#Ab$0C4 25Q@ 3R/3BRD A B?4 B^43BR-#O"C4#@ B ! R$0Q#?1122 !2$13-!A$ ""#3!12."0#" 23 #" ""!!"/!2!#"!?42$C C!! 3!3"#B!##"#""""2""2n"3"!!"2""""""#2""#"""""!"""#"""2"!""""""22""!"""""2!""!""!"#"!""!""""!!"!!!"!!!" !! ! !!!"!!KT!!!!!!!!!!!""SS!!!!"""!"!""!!2!"!""!!!"1"""!!!""!!""""!!""""!!!!!"!#!!"!!! !!!!!!^t"!!"!!!!!"!"!!!!!*;!! !!! !!!!=0!!!! !! !!!!!!"!!a!!!"!!" "!! "!"!"!"! !!!!!27! !!!!!!aR!!!!!!!!! bo!!!!!!!!!!!!! !WT! !!!!)%!!;9!!AO   VG/ !"U 13 .T DT5!!1B1s160C'/3d/1rQ .CF!ͿF!32DQ?2 #Q2"!" "BA@!5 $4 63 2CO4b.Fb#.%2/5#4".ۿ22"B#""25"ܭ3!43?̿6R!S"DrR? 52!E"ݾS# CQ ξR"b / 4"!#2 "1Q"A0R$B#B%!%!$!4!#0/3#2!/3 A2"3"30 "4B 3/32/#1 #222 #!# "A!>3##"$33 $#"! "!! ! !01!"!$"1""#"!!!!0 !/"/"!!#!1 AD3243! "#" ܾ"!243052 #52!CC42"D"32#3221" #"3!#C3D424C1$4!#A#"""#2 #2#2!32 #2 $#!33#!!,,""!31#C32B122"!!  """#2!#2!#B!#B!"/"" $# 22 21#1""!31 "3" 3"!!!!!!!"!" !!!! !!}}!!! !5Q!!!!!!.!!!vx.,/&qhr~la2/:G!#imZ[&x3#""!!"2$#BCCRBC%#%"4#C3R4#BB3BBAB"2!!!2/#@d PrQ21'@21T!#/5Q37AD6/! /ܽ b #36!STQB4CA3BD!24S#CE!! , B"s2R %2BF 1E/RA!$##2r#4A!34C%2"O23cB$4%4"B3DC3D#CC$#"C$!R"&!"533c4S33S$$#"C4R2$"4B!" "#!21###3DDD@7D/DbR%1.ݿ#C4"3234 %" $2%"R1޾R S?Sb#C22B/B$32#S#`$1$0403>C.42!/$""."$#3#2#A 4!30BOB/CB"23!.2#""A "1303/"/ 3A2""!"1!!0! " ##A/#"!10!"""0"2/"010!! /!!!! "  1"3 $2 #B$20 ""B2#3!##!""""1!!p"!""!"!!"!"!!!!!"""""""!!!!!!!!!!!"""""!!!!!!!""np!!!!"!!!!!]]!"""!"! !!!!"""!!!!"!!!WZ!!!"!!!!"!!""!!!! !!!!!!!!!!!!*!!!"!!"!! !!!!"!!!!IP !!!! !!EP !!!!!x!!!A7!! \I!!! !!GK!!! bm !]O!l{ccos~p'.|{ !123BCD%#BC443C5"B2C#B#""2BBR3R43CR35#3C42B2""/#b/.!3F!b!"3c0&!6"4'.?/01?a@7Aq5!A2!21AB! 06.!5.0T E!D0r"35.rR!2R%"!5b36"bBE1"1 #@R3c"2S12B3s#ACQ 1eQTCT1R?C51 "0baD/$b7 sDQTRA05/#33RO3 E1c$QT0*3Ͱ@ $!A42A!4#C C@b4BD/BCOR!DB/3Q422R3B03A4!C40D3B.4!B #"."!3 "#@5A 5 43P31"#1#/"2#A3#B3@32/ $? 3$"B @/"!!#"3 "A#/$!"!/!.0 /!O?+%3D2C!2# !  #.$3D1#R 523 1! 3!3C 3A"D"#2"!21##22""!!!!!!! !!"!!!!! !BU!""!!!"!!"!!"!!!""!!! !!!"!"#!!"tm!!"""!"!!"!!""!!""!!!"""""!!!""!!!"1""!""""!!""!"!!! ""!!"!"!"!!" r!!! !!!!zd!!22! ! !!!!!!gh!!!!!"!!!!!!!!!!!!!"!!!"!! !!!-"!!!!! !"!!!! !!!!!!!"! !! :A !! !-4!!XG!!! !!!! !!!!(! !!!SS !7M  {i! vu HeE51"A /4!t&2%/A#'O#6>bD.. Q52#!2U R/% AC?D/?1D/ S hR$3F1A4"#B3"-B#U 2%a!!#!d0"3S 1   RR"5C$2"D#D#444!320C!!C4 !D"S=r%CA&"ݱ%!CSB0bD#/R bbC 4B &1 ޱ4Ac0E{D5/2!D/$4D$B52 DBS!D!4!ޮ" # 2$43C $$3# 324!3AUTC.SB"242B2B##3B$1$!$0%B.BB#.22!32.#A2#B323l C $RC#3!C"1-2"31"11@3! $B#2""!!2" " $ D4C!#C $3 #3"1 101#0R1C!C"C!"3."32#B@[4A42423 "!"1 #B $2$3 #"212!"3""2"""!""1!#!!!!""""""!#GO!"""""!""!!"2""""!""!"""!"""!!!"#!!"!! "!!"""!"!"!!"!!!!!!!!!!!!!!!"!k!!!!!!WI!!!!!!!"ml!!!"!"!""!"!"!!""!!"!!!!!!!!!!!"!!!!!!!!!!! !!!!# !! !!!!! !!%!!!! cc!!*,!!!!!!!!!c0#E2r4D324R41B3Q$D!B,.?Ac#!2BB R#2A B$?D5B53R02S1"RCA 0 ޽ "$RB3T3R#RR233S31AB40"24Bܾݼ!d 3 S42#$#B #5AbS?5B5% PQ6!CD1$44/2DE %1 a$1R :cCAD#1 SB@4 C^#Q4 R>%1b4? 330$# B032#QR?%0 D40$2 %!33!"2D4" !B/$"#B42@13"2/$ ##0""2" !"02 13 #L 02 !31C/D1D3C03 2 " 3#!#RS 4243!! "2 $2x;S D1#R/# "B!3!33 "3!"" 1"!!!"""#"""!!#"""""!!"!!"!"2"!"!!!!""!!12""!"!!"""""""!"!2"""!!!!"!"""!!1!"!!"!"""#!!!!!"!!""!!"!!!"!"!!!""""!"!! !"!#!!"!"!"!""!!!!!"""!!"!"!!!!!!!""!!!!|!!!!!"!!!!!"!!!!!!"!!!! !!""!!!!!!!!!"!!!!!!!!!"!!"!!!!!"!! !!"o\!!"!!!!!!!! !!!! !"!!!!pZ !!!!  !!!!! !!KM!  B6!! BG!!Yf!! ! !! !eZ!   `Qws """2BC5$$#C%"3BB322!!"##BCCD445#3R3434#"1!/ER!B!ADw"1E1%r5 57 sD/03"2#C2"D0#%3 $#T.T7171"%R CAb1C@! CT 3t"T!G 61O ܞ4TB "s4"%CCb!3"S#F3B!&$""$S3"D".CSB=C/%7 3aA2 QDB E!$A#aCDS>R $@43AR$B.5?20"3#-!5.3 &!4Q4CCa.S.5$/$1B#DD.65!42B CCC.4 5!%0 2 C R-D#03OA43C=D5/41$1A$$2 C$!$12B3#2 !A"233 2# "@ A !3".A#"!@2##/#202!@"1.2" "!2"#"14"3!4!32#1!!#!"""" !!!!"!!"!""!"!!!!!!!!"t""!!""!!! """"!"!"""#"!2!"#"!!""!"""#2""""!""!"2!!"""""""#2""""!""!"!""#"2""""}!"#""2!!""!!"""!!2!"!!""!"!!"" "!!"!! ##! !!!!!"!!!GG!!!!!!!!"!!!!q\!!!""!!!!!!""!""""!!!"!"""""!!!!""!"!"!!!"!!"!! !!!"!"!!!!"!""!"!!!!!!!&"!!!" !`g!!!!!!!!""!" !!!!!!!!!!""!!!BP!!!!!!!!!!!! ;8!!!!!!!!! !2-!!!!!!!!!02!!!! !!GL!!!!!!!  !!m~! !!!  iQ!! !sh  !|43RBBB4$#43C33##4$BCCCCC4BB3B3#! "Qt@U3BB#C0BC.#3E3b2cA"4E!/0AݾA0D!7!"a2CA!5#B#F -.!B#3u!%"443BD... AT3dA!1D3C!#c".! 0"1"3 45A4BC%2D10 203#"2"Q"/!!3S3K$"4 #2#Q $#D"!3b#4404#3! $3B3EB324RB""DC#02 ;C 4CBE%2b6 RD%0 A>5! $2D/3AR4O3CDBSCA$.C13 #0#RR 0 5C@33?312C32 C.B@!C 3?1 24/15$022?" 221/!A3$33# 13""1#"12##13 2"/"11 "!1B"22!434!CAR# """#2 3!"""!1 ""!!""!"""!!!""!!!"!!""""!"""""""! "!2"!!"""!""!#""!"1"!"1!"""2!"""!""!""!2""2!!"hf"!!#"!!!""!""!"""!"!!!1!"2!!%>"!"!!!!!!"NQ" !!!!z!!!!! !!!!!!!!")2!"!"""!!"!"!!!"!""!"!"!:!""!"!!! !""!"!""!!""!"M5!""!"!!!!"!U"rQR E07@2"D B!%!# #B"B !C_2R5C%" E!T045 /6  #52"33.3C24C+4 5$E!/C0ͰS03!r#b6" %E! 51!bD0 4!!503$!"4H3B"B3B41314!B03!1122"3""#"313"30#20"h2 #1 22/B2"!0!12 #"1>"2#12""13  !"0A !1  4!" "" 1" ! "/!3/"">"12"# "!c5 "" "" " "!!D332B2"!! #"3"3S#5323R"#4 2#2#"""#2" " $3 32!43!32  "!21B"#4""3!"!2""!"'Y!"$21$2133"23 " 1/#1!2""23" ~!!!#"#31"#""1! !!ae""""!!!!!&!!! rq!!!!!!!!!!  !!!! !!!!!)  !NZC3uMG! KQ,' UYre84cdYb"!&!">"T!@Q#?G!32T1461C7AR5!15,! ޽3 !5!RG2b#D1.3c3%C#Q4A1" #T0R!!& !DS/Q"43424c$$"R3D3!6""!B!4 203@5/5CB A 5!5 D 41T $!"R #E"b/C20617 c4Sb/C5ο$/ͰD#DD53 %2 6!50C1C0A ݾ43 3 "B?#53R.#R4B%! 1D04 R C B"31B/B2/"B#AA$"%3OC!B 3 1 1/"/!3#B%4 %B 4$2##.#1.##1#1 #!2!# 2$3#!!!!#1/#!C C $C1C0$31#3.21 !131S2S1S!#R0#" 2#B4B3AC220"!"B 3B #3/$2"!2#3123!#3!!!!!"#!""!!! '"!"!!!!!"!""!!"""!"!!!!!!"""!"!!!!"!!!"!!!!{"!!!!2"!!" !!!!!"!!!"!!!!!!!!!!!!!!"!!!!!!"!!!)!!!!!!"!!!!!gW!!!!!!!!)J!!  !!!!!!!" !!!!!!!!!!!! !!x|!! KP!!!!!! !7-! !!2%!9@! TZ !!!!MDu{!iek`CQ  S5#43CC4333# 1T7r""2"2E 2  q5'1BCR3E  BA4 .^2"A4G1C%3#C"E0A"b#S?̭ ""7 r#D B4$1"2S$6 030!32b2S":b2A$33a 3C21B/.T BR%2#B$C#%!CR13D!! ݽ"$CT3#D3D!2CE#3CS!#!#RR"3c$$"a223CR ξ"533R535#6"223CC3! #""D344CE13535%2S Bݰ41CB%213Q$1!CR%!C34 3 4"CB#"3/"432C0"D!$"4>2C?4 /3/31R#24"3!B#A2/1B0 A"A!2"11 # 31" 2!0"1!! 110 "//   #!!"#"" #N 43#!#!324B!424!"1 ""4" #3!#2!!"3!#""2"!""!"#"1!""#!"!""2!"""!"!#""!"2!!""! "!!""!#!"!"!"""!!!!!!""!!!!!!!!!!_b!!""!!!! !!!!"!!!!!!!!!!!""!"! !"!""!!!""!"!!!!"!!!"!!!!"!!"!"!"!"" !"!"!!"!!!"!!!!! !!!!!!"!!!!!!( !"!!!!!!"!!!"!!!!!!!aj!!!! C4 !!!!!  A8!!pz!!!:2!!! !!!!!!*?|tt! !IC rx]iB:"##BCD%#44%2BB3433#""24$45$#C45"B343C"S.E"A?$/d!#1%/A$' #C0" " bE-> Q$"!0#F D$@#D0S/>!5/4 C#QF!132".3B /?",Bc "BR&1B d&B?2b/.3. BR!DR#3"S3T""S%#!A##0"C2c#E3%"#523Q#R2B221%4!E "b0"B #D>"4.#SC%2&0E! 5 c D 30"B/4 %RD2DA E0E `05 CC" C/4#R.$#B-$B3@4!C!CR!4!CC0B>3"/#2 2c53?#/C2A"#2.4""3 2"4?#?B 3.B2/!.#2!#1#0 2002 2 3!A !@"!"#!"?23"0."""! !$!$!S14!C0C!"#!3""#B42415!3 #!"3#B 343#1"#!"2 "2""# !""!#"!2"Sj!!""!""!!1"""""!"""!""w!"2"""!!"""!""" !""!""!!"!!2""!"!!!!!"""!!!"""!!!!!!"!!! !!!!!!L:!!!!!!!!!!!!!! !!!!!!!!!!!!""!"!!!"!"!5 "!!!!!!!!!!!!!!!!"!"!=G!!!!!"!!!;7!!qw!!!dP ! !!!!Ld   !!!!!!!! ! "!!!!!! 10 !z !!!! !! jb!jq   ,'ir wzOC5D...OPR0A pT2,s/ #Q",$!21x3 c,323t/70rU@5CT13"R C! 1!#,"2#!/!t$ G$41*Q2-E2U T3?S5-R3۰%" #2/!0!4.4@&4 S2 23/%$Qݾ5C.4Ss c#!D0CRBC 42"SQ !2!C40%21 !5 !%"%#5 46#^41.3D1C2405 41 "2#"?!#! %#@3S"D4 45#0-%C 3S!SA"2"!μB$ "A44S210 !2!3!Ca S!"C3$Q/!$"!BܽB22 #3#2!1B@"5!#SA 21#2/"1##DB"21 /!41! 43 @."!00! $! SA!/!cC"޼221 !#"b/  1/3" !!2 !ܾ6!!#/# "0""3"!2R"3 !2"$32A!2!"#"03"?2B?!$C/%&A#204!"1! 2"5$3"""0#!/3 ,"! 0 !! $#C"$"/ 1 B /"/1$B1"1 2"""!/!!  !32. 2|#""$!" /3" ? 2#"a## / 00 3A" "!! 1!1!# A00"! % ! /! 02, "243!1 !1/ /"!#0 / !023 2" !!! BQ "  56!/! / // !31  !!1!!!2!!/!  !2I"!!! " /!!!  !! !!  ! !/!! /  / ! 30/ QV!1"  !    /11!!!"B/"9G //  !!/ ! ///!"2! ݽ#ED424E3CC33!!232#?!!/!/    3/!/!!. / !   /Mt////! !!!&,!!A1 !!0? "D3C#$CCݽ3B!"44D3B2""!!!"!4" <! !/ /"""!#!!#C"!33!ݾ" #44D4C3"#3221#5#!"33#"" 3D2 "!3D34#44#uW3D""$#"#3#CDCS2"! !32"""!#31"43B!"DC4#""#23!"""#""!k / / /    {;" #21"3CC#""! "22"33332!"#!##P#3"2"2""DD3#""32"22;""!322#23#21 422"33! !""!!""!!"2CS3222"lR"#2#2"2""#""##2!!3$#"#2"" ?r24/vݯ$0 C' B!/$4 2"0251bT 4"R$ 422A4#=$>T37P4 b-?q6"4 #42.2P!34!CTA$bb>7!aS?%#$% #$$!$4)ZD.4Pb5/`4.5!"B0ݰ'"C.S0# 533T$ACT?B SE!#C $35#kbE/62R/S1"Cݰ3Q"DE ",R/%2b4 2R5?a$/#Q2D%1S?"b(>%!2S/!2C0CC!$# "?40 B D1D#0!C.2532CC0R%!44 1C2@AB!! 2 !12?1A C3!" 2A 03#.123 ?"B. !1"""" 2//!#""""2"!2!!//!."!#'0#!"!DC"#D31"""####3"! #,!!#322"#"2" 3"!!23!""23333!QS!!23##21"33"2##!""3"!!"#""1!!!"""24$#3##!"!"!"""""!!!#"!""!"!""!!"""$3B!!!!!!24!!!!"3#""2!{c"3"!!22!!!"$"!"#22#$#"!!2!"! """"""1"e!!!2!""222"!!##"!!"!""" ""!!"!"""""!!"!2!!""2#2""!!!"!!!!ZU!!!! !1!!""" B"!!""!""!!!"2""""!!!!! !"lg!!!!!"! "!!!""!! !! """! !""!!!!""! !!kW!!!!!SY!!!!!!"!zv!! !!!! !!!!"!!6;!!<>!!!!  !% s!^Onm""BQ4$3S$CtA dR "BA DDc"#s"C@%S ݽ%SBT R-&4?6.4@D0B.C/b/73A"#32RRT/E& 5!0Q 4C C/D//u 3P33SE$.%/1 2ba.s4AT21 3RDR.3/D D?#@3 B C/4#?Q C"B=C?C#1211 RC c/&2 SA4R"bD 2A$E!3ܰ"C3%/#/%1204B C1B0% #R!B%3.T!#?612RA 5D3N% 50aR$D$/SO!SQ12?#04C !1A D$$0!3/"C"0$"3#CD2.C3!B  ݾ4?3-Q0!2 ? C1#0C/2#1#"!"0 2" !!!!! #" 1 !!0!!29  !/!0! "! ?"2    1 #D "/. $?!H" #R !  !/ #"/!/ 2 ! 10" //.! ##!/$1 !"   !%! 01!~Z "/  !!!"2 / "!! "[ "! !/ /"!/!. wO !!"!// !! "0&/"#.1/ n*  !   /!  .! !/  : / 13 / c/   " /  . //  !/    j ../ ry /.7"!"322#3C3232"" 4D4D32""#4CB" #E43#1""2#DB3!!!3E433B "CC3~R3C4##33C4#!;#32!" ""!4CSC"}3cCC2"#CC2"!""#!#"22"!3DC33"#"$DD3B3"""#! !"" !!#3#""!ͽ"43DD3#!"D53CC4##!""!!"!!!"3#""!!!  /xi"!#4D3CC! 2##CCCB"432!"!"332""!#A!!#"##CC235$2B21 22""22vv#"!""2"3"!""#"!!""" "##CD43S#A#"2!B;##"34#"##2""Cc4C32!#2!"#3332"!!!!""$5C434343!!! $322" #D3B!#3C54$332cp""!!222"3!#332""23CCC3v""""!""#!!!"#""#""+8// cC#r/DOQc $"$2$"3A1?0Bc"!aS6-~}s5 #0B!Q">30c "C='!4s&02S/$4C!#2 "4-"P#3 C<%14S/%!$R6703Mb5/&" C1@CD!$2S71RT?'A C.4 $ACCQ45 $C3?#2R %1Cd&0acC3210"R2-%1"bU 63BF2DE! 351#RS?$BRD 1R6 ݾ3'.C!"AC05B-4!RS/2Q#D/&!C%3C/"B 3 41R C04AR40#QR.B^2B!%" R4 C4$!CB?42B$0"23 "  #" "1 3# 242!@2!` B/!@#"!"#2" 21"1!"3211/"""0."/11/#C""ݾ"""!323R"#4B!!#44"33C2!#432""1!!""!#2"#CCC32""34334$3B3#B2#2! $!!"4332B3#"#!!"2C343CB2!""#""!""!"##22##"4V3""22""""!"!"!"##"!!""k!!""3"2""!!""!"!!"11"1"#"!2"!!"#""""!!!##2"#Q&2""""""2"##32!!!!"#$32"!!"!""!"#33""2""! !"%6###"3"""2"#$#"!!!" """#! 22""""! FJ"""!!!""!!!""""!!!"! """"! ""!!!"!"!"""!"" ! !!"!!""!"!!!!!""!!!!"!!!! !_k!!!~n!!!!!!!!!"!!Ul!!!!!!! !!!!!" !!!k^!!!! !!!ws"!!;B!!!7A  !!{!w!  F:qq?0AV 22 E T!S "CD@ޭQ@߮R(F2#$C0"0"4# !##1! 2!0!"A02D2!!C"" $5/0!250!0 "/ !""#414Au"A1!!"@/D#!"$2@.$1"1221##11!"!#! 4#1!ss112"3"##"!!0/11 #"  1"A"!$5!1/ !D! "110 2!0%3" !!"!!!//!1/ !"!/1/! "  "!2!x / #$4A!"0! "B" !/ # V3  0>"11 0! / 0/ #/1 !! %"!" !0  /Q 1 .   !!"!!!/!!"! !"!/ ./ 12 / // !  # / !1 !!/ Zs ! !!!!/!  2!  ///! 00/!!/ /~y   /  ! 0/.67/  !/x  !"!! N!!"22!#"!DD4B3"#CCB333"!!23"!"   !/ O$ !!!/  :E#CC3!!!!!"#"2# "3CS2B445344#"$3R22!d!#"21!""""#!4SC2!3CC43#2"22/! /b! "3#"2"!332"4CC32!2CT433C"12} /   ~24" 2!!!233"!"#2""3#D5421 !"!"32#3""""332"2"""!"DD33$#"!"!"""!!!! 3D4"33CSCC232 &!"#2!!##"21!#3CD45#B3""!!"1 222#2"!"3# 34CCC3"hY!"""""2"CD"!""2"!3444322! !!"!"2!!##"!!!"233D4B2!"$//./C$T, WAdA6A%1 C!22""1? 6C=S/E$3ݯ24555A4 #BR# t/S ~St%3&2$"!R1"2/24 4Q  R/4ܿB ߾$a615"64CB!1 "C"R0 &$B#R 7160 F?TsER$C##R&"R4CDA E06!b?ݽT#r/RCC3DܿC!S>3S3-DCDBE1S@S! Sݟ3B/33 23 "C#S3$B$2 #?B# 3  %##/""B""32$"$1 3/R2" "3/$"13$""B %""031CO#?H3C1 "#1B#"#! 3 #1A> A?2"2#!2!!"-  #$F32/"!2 !" .!1111#22 10/ !! ."!# !  !!K&2/"2!""2C!"B3R D2!" "30!!33 ~""!!"C4#3$$#3#32"!!"""""!"#!""2"""!""!!"33"! """33B#"22"!!" !#h332"!!!#3""""!"! 4:!!"###"""2 !"""!!!""!""!!!""!!!!""""""!!B8""""!!"##"!!""""#!!!!"""!!"!!"!"!!""!!""!"!!!!#!"!!"!!!!!!!!.#!!!!!!!"""!!!""!!!"""!"!!!!!!!!!!!!"!!!!!"!!!!!!!!!!!!!!!!!!!"!!!!]?!! !!!!"!!" 4@!! !!!  ! !!!!  !! !/" in! !!-3!!/%NV{!edC "602"#SO%/$@&,=/@  `1U # &2CT2%!2$2U 5A"3#B$'R#r3D0q#5# ^%AtS D.$62C 3$1="#$!B3qB %Pc>&2d0b$AS1B$ C! .#B!#D25a&0c&1 DB.!C A6B3r-a405R$ cF1D733bb# $1&$#5#60C'F#Rc? s$1cB#A.#1D143b56$q C?$Bb B$}6" C1A!R@A#/3"0B1."3C!C##S!C>OC.?4b/C1 D##C@ n#23#!"$4130#Q"!#0 "4/2BA33 #A12!1!@0#a"01$"//CB "!! "4  "30B !" !  B0 !"/!1!/00!//1/ Ki1! /!!!/  /"/ /  ̽#C33#"!3E3AܽCCCB!C!#DB3TCC32"#?!!"!  ""1 / ///"!/!" / s/"!/ Pt!"/!///  0 ///   !A43B52!!"B"22 $4C431 !"!"3SC#C#"" $5#4CC!23#32!!" #CB2343CC313C3/!"[S3B1"23$33"3"1##42!!"CC1#322!;"4CB""2"^v"!""!32D3""!"!!"43CS4" !##3CE31"CC5#31! !  / / 3x3#B433"34!"CC! "!!32 !!"3R!##"-& /  ". #B3#"!!!43C34! 2 "!!"33444"33""2CD3S3""4#!n"!!"""3CCD" 32!"33CD42"!#3""3!!4#"##422! 42"!"""3D4"!"""$3#CE#"2!"D4D32!##!!2"Fd1!3!""34322!3B2!"4443"33326M5422"!#""2233"""32#"~M3B!"!!##E3C3"!!"32" ";!$4#h"""!""2342! ""#33#"#" ##""3"!"32 "21!"$3"r!#3"2!""2 !!!#3B"#33"G>""4DB2!!122"1#CA233""!#33#2"Im"2CC32C3"3B""2#"!3""!3!"1"""""""#33"3S#"2232"""!!!!!""2##4#2"!!"22"#432#3B3"Vh32"!""1"#2"#4"2"!2#!B!""""3C3B!"!!"!"!""#!""""3433"!#3!234#"3#!!!""""!"!W833B2"""!"!" "3#!"|23C!233 !"212!!332"33334""!!####432#"$"!!!!"#"!""!"!!!"3C3"#"1 "!!"!"!"1ݽS. G10ݭP$"G1S#SB3B52#C#'"!Q!%!$ 03r3%34B#S2t2c#4B"B$"1r! "!*l޾2'!r"$"CR3C"3C5!ݿB65!S43R#C4C34C5$J"! R21##520B/!SD2 $R%15? b 5!C!cS2?"D5D#b24a#C0 D E R R C"R?62Rb%4 DBE#T!S14043/2/.#$/"B.C433{4O Sb/bR$B#B#4$3A32 C32A $!D!4/RC2.3/#"C"CP13Q P  C"C$B B2A/"1AA" !112"0$ 1?C" 0!1"" ! 0!?#$!"1! !"1 ./"!""0#2" 2/ 2" "/"B24C$14!422" "3/2!1$C0"434320"#" 222!2#!!""33"!"!""!"""!!!"!!"!!""2#""!"3B2 ""2""""!!!"#"24#3#2""22!##" """"!""#"!!"!!&1!"!1!""! ""2 #2#"#3#""""!!""!""!2Q !!! !!""!!!!!""!!!!"!!!{"!"""""!"#"!!!1"!!!!!#""#"!!!!" !!""!!"VM!"""!!""!!!!1 !2;""!!!!!!"!"!!!s!"!"!!!!"!!!!! !!!!nfWW zr! !!!!! |k C9Yg[Q/PT$ ` d#.E 2D?$B $D"A-7?s V0$Rv "553!!#2<"1B" !c$ T3/B 3T3F?:F#SC-$3CQ ## 03>%!65 SA3B/"!C%R4cc1D4 R@E4LD4 4/A "T# "#!R2/ %2#CA!!424BDC".53""Ϳ"C#ݼR@C1\>3/4 2 ξ3# ""2"5#.4" !S4 $0/SCE"/1 /D!!""1"#B/. 32$CD210"3 &3S #BA.%$4! #1#"R15"B"32"CA3E##R$"!##"SB"#30$#2"#S"$B1"r!1AA!"#21!B!/ͽT".! "D0!"! !A/C2#/#"!00!R2 3"!"2 2!##!A2/4# !10ͽ!x #3 " # !""0# #2#4!CC "3#f $02"! 1//R3>2"# 11/ $"  "#2#C0#4/ 4  !.!031"#!"    !!$2""230B"!" !!#!#!"3"? 1 "2 $2! / 0"!1#" !!!    !! %"! .0"" /!1//!.20!5"!0/!!1 !// 1?#"  0 !!!" !23#1/!001 43#/ / "ݾ #1/  ! . !/" "1 /!" !0!1/!"!# !!!!0 !"! 6>0! ! #!   ;;" " !1B0  !! e|11!1! 00 . !  #!7/ / 23 / -i  "   !"    /!1 /! //R1;" ܽ#DC32"$$5C42!"431!#3#!""$5""!ݽ#E3C! /"/ /323C"! #21#"/2D4#!!!$ED33 !Pv  "/12 4;!/!/!L33!"453CC"!!"""""""!C""32!#CDCS4#!!1 "C31"DC3!"332 $D2C422"2"QO33C"33!"#44D533"32#"D3!"3322"!#$43 !3CR234423CB"!!3B!#3$$CSCB"!"! 32"!#"!#4!"#433!!!"DCB2"!"##3!"!#"!!"3CDD3B"#32l  !//! B/ /   L<#3""3CC#"#"22##33B1 ! "!!"333"2"#""5CC"""#3"!"2""!!322!"3$"3""422"3!!!"""!2!!!""#CS323""""##2#!! -9ͽ2"2#"""32!!#33"2!"2"5# 1s#COw%2RE"#a"/"4 #",!# EQF %ݿB'BD532R"C"R5##C5B#$%!S!#!F""1Da""$ C$.ܾ$@BT%13T 723 C33.322B 3. RD "C523 $3_2 S 5#R#M %1 tS@&#c#@2.B $"S1bD 3BS !B.$A3E DE/62 #cS0%A0a D?2SC@1C 41B.% CE#a# D&!DR1QB1@$D! AR>%0D509Q5C#1.C$AB-4 # 4>$!3!C4!2/#!!#/A2$ !3/"0"A2|t" "#/ !2>"/ "#$3#!B"!10 2# "1 /!1> !"2"   0.!0   #432 "3CC3#4432!##" "#"#"2"2!2""!!"! """3C32!!!!#C2"""!]}!!!""2#32""2"!!22""#B2"##2#23B2!LQ!"""! """"#2!!"""!!!!#2"##"""#2!"2""""1!#$"!!!2""#""2#" ;#""!!"#2B22"!!!!"!"!&&!!"""2"!""!!!!""#"!!!!"!"#2"EU"!!##""22!!! !.!!!! !"1{""!"!! !" wa!#"1 !!!!!!!""2"1!!"#"!2J!"2!! !!!!!!!"!!!!!!!!!ff"!!!!!"!"! !FZ!!!!"!!! !  !!!!"!!"!!IO!!!!!aY!!!!!"!_c!!!!!!  N>%3!BB""!"##3C443R2C333"2!!!233D$44C5$#43C5#$##1 /E%44CT4!DS")}s"4$246#%B$C34C&AD "cA4sD"C3SA#44#3D52#44D"##CQ 4B"/ܽݍ*W=$!P A" 3R/7TG11##q#7D5!#1#R$.6/R>6 /$A%# RD sE0%1R3T3 s$1 "OS""R41 5/ $"#A"Q3ArF"@5 614%0D #06" #"R3R#"B@$E!5%24?#1$!S R.144/C00B1a5b!E!%%a"-Qܾ4.3 "s12.ΰ2#Rݿ4$. $DD@O3E2>3!S-C"2S C!"!Q1!#C21 !RBAQ. c!23@"#4"3125"#?%"N]B/a#!0 C A?4A"R"?B"!2!B/ "/#j/"Q#23A/!0"30? $2/$P/$-}$$3!!!"1 #  2E" $ 1"!!2!14# !0!O 2B0##""!#@2".0?A "C"1# !!B/!#!/I$! 1"0# 2 "2/!!!2.y1 "!3!#"$"!"2 2  $2$ "A!!"B"  2#/2!!"!"  #!/#" "B0  /  !!#"1!2 1310/ !!"!!*"!"1!  !!/1//#/   !0 "// / # ! "/!2/  /"!! #!/  /"/ !"  " # / !!!!""/!!?L""#  0! /1"/ "///"! ! X 01"! 0! 6//  " ! ! !12 / i/ !! "! !  /!0 !T!//? /   " ! . / ! / " L!/ !! / //pq / / / w0//  ,1"3#"3CD3CDB2"2""2"" "34CS3"!!"###CCSB333"2"!#3B2   /!3D523B22"32#34C"ͽ"#34B2344C44332CCC3"">S !///   #54233#322"44B22!""""#!ݾ33B44432"2#443S2"" !""##"2BD34""24$#3CCB!!""'"""!"44#33C#"#444332!!"""!"!"4$!"CC32233CC4#23"!22!33#$$#"##343C33#3332##""""!!""3"!"443322243322"2!#2z.///?sR".0d?$@ R61C 3#R 3$!CE1sU%0q#"$141B@r "%1ac70>2%"S#QB/41" R.4Qa'%"Cc 50B$ B.223-A CN S V""sD?4 C?&!4D 3b 5!$%2a5!%4d4Q"C!A452"TD?&24wc$@4S #aC?$2!R.#@Q b>7rF 53TR 3!Ͱ"AݾD& S D>!R D>%!)SC"4# #2 4 C2BC=51 a-&Q 4 5!"-D4@C42B 4 "23$/3`52LB#/!,#.2 !1.#?1R30A3#00A""##2! $?22 #034 Q D" C S40B"1" !#2154C1#B3#!""2!!#3""#B3##4C#""##""1!2-""#C33343C333#331"#3"!!#42##$3D3#!#CS33"1!"!##"22" "#!!#3CCCC2"22"ݾ"2""#2""##33##""!""""""!!!!""#2!!"!!!!"!!" ""!"!!!!"#""""2! "!#"""""1"#B#!"!!"!""!"#!!"#"23#B33""!!31!"""342J+""2"!2#"""#! ""!!!"#3"!"#"""2!21!##"!""!!"#"!" !22!"!!"!!!"!!"!"""!!!!!"#"!"!!"!!"!!"""""!!##"#"!!""!"##!!"""! !!"!"""""""k"!!!!!""!!A/!!! !"!!!!!!!!""!""1"!"!3A!" !!"!""!"!! !fc!! !!! !!!!!! !!`[!!cY! ! J<2@?2G "3/T$ 5S!3&22Aa"#0G1#!D>S01t sc3$061}ACBE0G"5S .3!#2F1"@D4/a6A2bB62#S,"41˾4 #v>"4 O% d3E#$3#C5CݮbC5C! 4t"!'S3rcA|4%CDA3.3.33۽S?"B%21 T!ݿE$#R42"DAE2S!a/!/ 53R/S$1 "41! $2152"!C BB? # $"  B2%BݽE3!QKf" #Q!/C#2"D22"AC5!$3  "b C3!1%2403!1A/# cA.D1#03F1 /#@!#!4C"/A!ܿ#CQ.41ܾ$!#3R!$D. !2/"B #!13##13!CA0#1#A0aG$#0"?23SBPD1#3 "!#"!2# !   3E1!2CR!!%$ 3!"!1/!D#2#b21"#2""  "1/ ! /" C/%#!!B1"3B!1!0#  1"""A 43#"0!" # $ "!! 3kS23"3"./!2 B" 0 ""2B@ 1 !{!Q0! ? 1"#53Ϳ"" /4!" !0"2 23A?4R0 ! !2 #! ! #";"B!b1" /!/!$"4$1# " "9 ! . !#6!"2 0"""!! 224Z1! !.#!1!"#!/ 0!  ! !Y###/"##!1/# "!31! !10 ""2!/1!  !!!} //"  ""!!#C / !/!3""10 !/!3"!C!-!1/   3B"!!   !"!0"W2#/!!   ! !"!  "!! 1 1!/! !/// w11//!# 0!2!!,. 1/!/!1 ! !!/@/!/!! !!  / / "" |Z/ . !"// ./!! /?.! 1 0  kk!4SC3C4#"$!"2"!5#!E4!#D3CB2332"!"3#!#B1#C#"333D3CC2#2""33!"2#B/321#3DS4!"#C#31!"23" 221323B""SC34C32!#""ܭ"#4#!33#B2!!4CB2""!""1+P!""3B""#23D34#1!3432#22!f3C0"4D4#"!#D422!#R""1CCB"!!CS#22""2DC"#!"1#4#32!4313S3#"#!#333"33"CR2#4"#3!! ! "" 2"#3434CC3!""#"!2!3C""!1!!"#CR3""#2""""#3#"!"234#""" #"N6/#E>#. v!F2624331231#10D.T/c SA&2$3?3".C2* R.B S$ v.R/bt%A1/4 /"2.#3 AC1!E 5&R'36Q'9D04" R RBBܰ30"C?5 66c1DA D"5!D!SEB@$B?65{BE1D@C0D3BC$" #B.4453Q 3Ab!D1SS4A.Q.342$#43$$23&!4 6 SݮBC%3/2#3CC"$1-B!31C 5CR!R32!BJ1-$A##@4"#4 3?C3#2#2."1A2 0$"# "#04B2/ 2 #1Z/4B4325"E2$ D2C/4!DC/B12#" /3!$030S0C"%4!5C232S" !!! "1#1 !/"!  /00"21! #C!#3!3""###3C323B3!"!""!""!!#B"!!!!11!!""""#2"#!du!!""33#222!""!!2""! !!!"!!"""!3C3"22!2"#2!.@!""!!32"!"23"!!"C:!232#"!"!!!!3222"#33"!!"!!!""#2!#"!"1!!"""!!!;D!""2"!"#3"""""""!"#""1"!""!""1!!! ""!!!!!"! !!"!!"!"!!"#"""!"2!! !!#!!"!!!! !""2!!!"!!!!! !!!!!!!!"!!!!! !ujo}!." !  EGG:!!#343b$353C5#42R2B3B3A2 13UWR!"!",ٮ!7&/QD'@k%?uAdQ50S 4!<!S-u"qtRd/ u$.bD!6CA2?243@A ,25-2%1a0B&2C"3ܰ211#R/$#$"$E B t03'!cR#Ab a#C.n!5C.2RSD0260T #R1Q!B$r?#?d E5At4%1C"$2t" #43a$1ްc/%3E!1?c22 "2># 0$!TQS2D 5/"@%1E#B%#3?"1CA!4R31#C1/##C3S@$Q0#AC0 DA A!/$3#C #%4>C!4#!.0#B!$"$/" "/#"E&n!#3C4! """>!B3"  !02-0 20 $2}o!!  !1 20//  2!0 "2. !/ " #22" / ! !2  /H4 0. "$B!   #"!# !! " 1 !2 ^ !"$ %" !!/ !![o/  #2A 1 "f " 0"!2/!#// =""!0!/  !{-""! "!!!  !// /90!  !!! !"" "  !"3H  !"A  "#"?/  + / ! "/ !/.0 "!" "   /!  !"""! " !/ rK !! / / /0 !// !0/" d:12"#4E43B"44C2 ݽT43"!"5// !! !!/4"""B32"CcC2 6443""DCB! !!   2/  !!!!""""2"!#"$D4"!"454#3CB33#3B"b!"#"2""222 !"""44D3C""344CC"321R#"""!""3B""442!ͽ3CCB2!!3553C4#"1 ""1433!!"#"2!"#" #C4CD34#!#4#!?^#4C21 ""343C32SD42!/"33"!"3C3"!!""!$E3C33R#""\p!!#222"""22!2B!"44CC322!!  :4 !"!"####2#""! !"35$3D34# !!3C!!"#""#3C433#"! !"3!"#2"!!"2"""!!!!!""#2C5#2r  #E ">71F15BBCa32@ B#B/5/7TCB'15R?3#.B#!4 RC#0u.b.ts6A,E4C/5"#!/33N3C#C#41 Dr2'Q%"D13A 40#/ #"#!3#C05/RFo'3AE0T1D07Cc!B22/bCC RA0E? c c S/C2/$$v[B D4$2D0D0b S ޾D;R%1>253B#3B$2##D25!C?T/B?42R2B9"3B21-"323141B>42? 2"2/$!#.B$"#"$2 #!31&$3/R"A B"222!#"A1 32 #2"!1"0/"" /"" 2.##` ###43D531!#A S23S"3"2 1#C 5!42#T2303#1!0!/.!!  3B"!#"!#!!!!"!""!232!!""32#"322 !"4$32##32""24"2!"""!"ZP"""!!!!!"#!#"""##!33"1!"""""2""!!!!26!"!!"2!!""23#"!2!!!!"!!!!!!  "!!!!bF!""""2"! """222""22"!!!!!!!!"!!"!!""!!=H!"!!  "!"""2!""!!! !! !]q!!"!!"!!$!!! !!#"""!"!!!"!!!!!!"!!!!!!!!!!!! !! !!!! !!!!!  !VS!!]Z![Q!!  u!h\ns HQ.//_d! p<D R/G/C&/42Q B0;C51Ab$1 44q'`D3E0A # 41$3"R/]" T#74"B!DT!"R #4.U!C3 #S.2 $$b"ͮ4#4CDS114 DB$c07 /t3b!B! Q 3C#4T30#B!B54A-""sA2 j C22S2F!$Q!D"0ܮ34"C4 520#C.;2# D TA#"C1&1/;C!7$!2 12P4R7"D1 B.1!B!7B0%2"R0.2#!9 C!#"/5!D."!B;#3A#"3"13B2#C03#12#3/$"+i2 @45! D4#22!1 12"2"4"5R %B21F" ##"B "R2$321/ /$4"A"13 !"!0$R3#!""03   4A041 45! 3R/"$ $2"3B113$/2!/$B" F$3#S"#/" !B#B!406 %" !!!"!!#@43Q!/! ## !  2> 2!! ""/1/" 123"#!3!B2"3#!#C / !!!!#2?6$#  "A.//"!"" 1!!/ B "!8k##! #!/AQ!!!  !## 1 2##"/  !"!!A" 3$ !"" "!": ! "!$ "14?!"#/ 1 #2 !#1 /  2!"!"A#B""1>  !!0 !! /!! !0  ! "!2!"! ?  3/ !! !2!! 1/!""01"2/   "!!"0/! !!0!!" !0/ ! !" !1! .  "!   23 !  #1 !"  !/!  ! !?  /  !!/  /.!/   !/   !"2254CBݽ"433"$4CC34"!#C33!2# ;$CD#3! !. 5w"   !!/ /"#3C3"!4C2"""#CC2!!#33BB4"$423!!!"/!!/! 1 /"#CD33"#434#C4"!!#C32222"34#2""!""!3C!#B""##32""!"!2"ͽ#C#!22!""2#!""#""43 ;""""!"!#33"""3##""3"#""##!21"#32"#3#"34$""#B1#C3!"2#44##D33#oBCD"4B"$3C3#CC"233S32#!!!!)"3322#CC""#CC2##C2 ͽ2!#D"!!"33"343"! :ݾ!!32!"2"!"2233"!"!!"!!!"4#2""!!!""#BB2"""3"!"""!"24#3"""2!#22!!!""!!#43B##C3"G8 " c43?c060 C%222C #2A"R-T$@uD#@A #" "@B101=3Ob 7Qr"-0B cDA3C0$CRB21="A"33.#QBD.$@#rc' Sb 4R C3@24-!>2D.'"bT/1S&2cE2SE %3C>3BBR/71rcO$B4.#$/$2b C@A D@"Bc602SOaC?1b$A2aSS1R c ݰ#B R.C!43R5"B#Aa4?3BRS?%0bC!QB0#B3423 D 3QDD Q4  2-5! Q.% B B R2QC2@ !-2/22!#" 23/!$"O"2!.3 #! B>""1OA2.d #" "2 !# 1 #0 "3!"""!"! .1"!1!Ac#2" "#3!2B!""""2"2232"23S#2!" ""233"##3!!"""2C#!"33##3"!!"""""!#"""""4C3""23#"""!"2!!"33234#!C4#21!" ""!C5"!"2#"22333""""!"1!#""" 333"2"#"""#!""""! "!"!!!##"!"!!22!"#22"32"2233"!""!!!"!""#"!!&V!"""!""!"!2!###332!##23#"""""#"!7!"#!!!"! #"2#"!""2#"2"!""!!"""!"2#"!!2##"!"!!!!#"1!!!"!!!!6-!""""""""2"!!"=B!!""!!!"" !"!"!!!"!!"!"!!11!!!!!"~{!!!!!!""!!"""!!! !!!!!!B<""""2'!!! !!~!"!"!!!!!!!!!!!!!!! !!!%!!!!@K!  !!!! !!!!j`!! !  &%s~2!!!"BRv AdC"534R/Dd B16"CSR.s.BC2ES%/ R콼73' E b3>F4.S/70% RCAc?3@1"3C#-TS.D0607!&!#3RD/5C,:;%#1 $R3?5?/%0A A3>6/7 E 54C&A b%/T!!0$Q R#.B#.#"QBCT 4/d"$"1SBB/b3 %0$1$C R330#@A#AR/""BCA#@T#0ACD #!/#?4AB/S B1c?$!5 41!>T!!E2#r2/%#.r/ *R#3/A4130b0!4@$ #`D244$24/# 4!6"!#R!16S/26!!"" 1"/R!!3A#/D!" /2B"!" 4"3t=ް#?501#"#1!. ! 4%32 ". 2!"#0   "42#A #!A2!#!/""S0 /!/53 00!? 2C !! CA"k"-!1#2 #1#!0"A!"!0s0"@  3"20 !/! "/#" 1"!! "!/!2!!1 #! !"0 ?" #?#"A0!$" !""!!" 33321"T; 4#!! ! !"1   !!" #!#"4  "/""1? #0  0."1" !  " "  !! ! 21 /0tN!/// 1"/? .#"// "  ! !1/!1"/!"!"! "2 !,  //   ! 1   ? "/   "I!!!" 0 ! $ "!! .100/""/e /"!/!!!!1!! ! !"!"/ ' /!/ 1/ ///!1! !  !  "1/  !  ! !d8//!  Z:0/  ///  /  0/!/!! !! /   /!!/ !   "54CD""$4C332B4CD343#2""!!#DD3B32!;#3C3"2CCC4CS#"2"!"2"!#4DC4#!"32##3R43RB22"!""331U$CS4#2!"23"CCD3CS"""222##2"344D3"!##"3SC424#2""#3B2!#DC3B!!#3CCS3C4!!"#33/ 3CCD3D#3"!"44C#2"3C3""! ""!"##CDC3/!! """!""#""33C444""##4C3C32"""23!!j["3D3322234$#45#"!!ݾ"""!""!!343#2C#"#3D3B3#""""z"!43!44#2"#33C433#22"22!! 232 }#33""23BC333##333!"!#"""!!!!!"#"!#$44##"24#33#"#<2#2#$$33#"B3##432!!"2""""!0 cB.B/u0 CD1"2"C "3 #D0RE/& /B8|5! #23$.?s"5-'0C4&!A5B/#3=5#3C4.70q$/%@3 T6!171 3.44#4S/&ASV&1b5 #2?503-D@C% 1C#/$AaS?,bD/E1 B.R0&1 4'0rD &2CS"ܾ14%!ܯ2 % #RS SQ3bS161c5 Q%!$"3 5 C$1"R S?04E5!RC0#B4?Ϳ"$CD3 S/"` RD #Q 4.5 #B-^R/3BB/5Q"@$231243AB3111 "A3 1C#?" B#!1!/? +"AC.$2C4! C$!BC?#QD/#0#C$S!4"!"!22 12r?1$S4!"#B/" ##3 !"##"!"332"333""1!!!X\!1"##!"#"2##"3433BC4"!#3 22"!!"2!*K3#"3S33""3CCS#"""1!!! ""33#!"3#""3DB3#332"""#"##2"!"!!3434"43!!!"#"2"!!"!!"""""""""!!! x!""#"!!!"""""#!!""!!"#""'""#!!!1"!"!""!"#!"#2##3B22'"#""!"!"33B###""""!##"!!!#!!?T32223""32"!!!!"""!2"##""! #!  ""!!1!!!""2!<0""""!"!!" ",!"2"!"!!!!!"#1!!"#21 !"!!!!"""!#""!"!"!!!!""#"2!!!2!!"" !! "!"!""!!!"!""!!!!!! !!!!!!"1"!!!""! !""!!!!"!^a!!!!"!!!! !!"!! ! 7*!!! !!!! !C^!!!!  ! >0u}! !}a\2E !2?*.T /ds!#D52600$BD17-c>uB/UA!'@ $!!e!5#3a" d1Ϳ!B/A'@C=,zS,/!32/44@ ;#b 7P""/-63/ &1/1!!&1.0R%D ݮ%4#R2CO#s!?a!44!.2@!!$#6 %232b!$S-4E"#R!B2"S0"32"$"x "#QCR 3c"222! 4A0DB1SbC" #P "%66 "1#C0!1#D#!B233-C>"342A/B2%3!224! 42c1">3""C$̾2R4 1!C3 3S!$4B3"1/.."@ο!!QdBC00#"DA!CA!2"!B! 2!4ޮ Q "!$B #R2 $32T#-K"20!/! 142 2CB/03  A#1 /" R !6"|"T02%  $0$1!!1cA! $B.2#410""!!#/#434 $2  #"!1!A4!>$"#42!3B# $!  !43#"B!1BAA1 1BB0" !"2C13! $!2 02/+R1 !/Ϳ!1#14!/1  R " "!#X%3/!1 ! %! !#1!A/ ! 3BCD 00b"!0/"/!"0 "##01!!/ "!lT3#B 3" #"0#"//!   /S21#"#o /!. !"/ ! 2A !CA" 1  (!3!1!!A" ! // #  #21/#P3 "!"" 0 1 " "1! "!I<1  ! #!  1!"    " @#!1!!4!//!!00#"!"#  /1.A2!1!$2/!!1!0 / 0!!!. k"0A ?!"// !! *P   """ /!  /1!!!  !!01! . #!$S2 "2#532!"22"!""F42231 #32!!#33!""7!/"2! "! /!#  ///3! .0/!"0 "OZ / !/$5##3#"DB1!"2"4SD# $3B2 2!"4! "!   B!"2!## #""$43"54C3C4#"#!ܾ 4"1"5"!"T32#D43323#2/"3!#3!#313B2!" "#3344BB"#"32"!;#2#B33!"2"DS32##C23"//!  ! 32233B2!1"4C4""!"2! !" 4#""23D3B3"342!"23"! "44!"4D4#"!#D422 $3A!"144224D#22""#541"2!#!Do$$#33"3C!3S3"!#!"B!#B1$#1"/CB332#3!!! !"""#!2C3BCD4"!"!#"!""422!!"!!"#534""""2""232"(! .2%C=#,uc@C2 KCQC! P#!1 7/6.SC &252R/ C?" .24# "D,5B q 1EwDcs$AE241/B0Q3! $"140"C>2S2&!7@c1S/CSݾR!&"22#"B3DC4%A70 c"B1D!CBb!C"# C?"S#E $D#B4QD1E S!DS?$2?E%4?5B#A 3`3P7 EDb/B23Q#34#3B#B4P %ݾD bCB>#/#A"3!BB/2 A 1$2C15 DR4"B!"2#2 Q23&!$ 3 "S4#32 32$##!# 322"22"" -"" ""12/"A/21"""!!0".# !"/ ".0/ #2#C14D!"#CB4C 42" "!""2B1#3!3#!!21"#5#1"3C2 ""!""!!!332"","1""""!!!"""""!!!!""223B2"!"!""! !!"32!"#4###2!! !!! !"" "!!!!!#2"!"!Su"#3"!"! z`"#332!"!""3#"32$#3"!!!!!2B"!"2! """""2!!"""qw"32""2"!!"2#""!!"""""!!!!!vY!!!!!"!!"!" !"! ("!!"2"""!!""!  !!"""!""!|!!"#"!!"!!!"!!|k!"!""!!!!!M<!!!!!!!!OG! !!"!!DD!!!!^Q  !qk! _a ! \t%D #1BP%# !#B7!Q +  0P / Q#aE16 rDS44"C3$S542Q14#OM3Et& %b5A@41$>#QA$?'PU44OD/B.%#C0#A-C@4C#C,#V$0B42S_s''150BA5A?5 $R#CTAD%AS 3dC2s$B43"0 5U 3Q4"c0ͼ#0ܿQ.D?1 SQ!#3T1 12>#s/# 4 3R1CAL$4$R263BBRQ1B2/#4 A0 34%$#?5 #B#3E?Q ݰ3/%A06 SB1B/B312 !#"$$2 43013!!0412 5B13A"A R!."1"/!S"$@ 1?A %!?!!ܾD3>3"0" B0#122130#U! "0 #"D2!.!"!#CA "" 3/3!!"! "."# 3R3"!"1 1k!11! 0//!"#0/2/ "0!A#  !0 #$!4R0/"$ !%#!01"# "! /" "4-#20! !$/"q?$#" 1!!   ! /!3# " # ! 2!!"// =!@1! 1"10.. 1?!2   !"v"  "#1/! !!B# /  /!!!  `!/  1!   ~"!!A!!/!! / B!  /!1""/!0!"!! 1"  /0 ia !!!!0 / / !2 !   / =/ / 3/  !!! "  ..!0/  04##$4"$SS3233"3T43!3C3""2/   ! !!/ mj !!////!_-3#"!$CD2" #23DCC!3R" !"3""#CB#DC2<.#CC2!"$SD3423!#2!"###342!"1#2!!!h6C3D3C!"$3DCCC#3!"#2!!"$43"#3B""33!#1 ! 1!!2322!!#"!""" $CD""#354433!<9"4433" 53B#3"BD43S32!"""""!"##! """2""22"""""#CDD4333!## $C"232" ݾ"2"#5#CBB""3!""!C""!#S32!!#31#$4CS33#3"!"#!4CB!!!"222 "CD4C#3CCA/!#31""$43"3S42!""!! 3"!!""32 """54BB#3#"!!!2!#B2 "#"!"!###BD3C"!"!"""342!IL3C3322"!!"! ""!!"#""331"4#! / !1$E %.t07A3q CA20A 104>'b T $Q53C #/b3CD,bAa #0vR ccݿ3ܿ3!/#A1#=#4 # "2130%3%QQ"v6!d!C0 B!BB $!20#ERCR Q 50S 3O E!$CD"3!3!$S#r&3 62 F"E0T S/bC0$%43-D4C $QD1% S C@RC!$$5#C0$C C,2Q4B 2A4!D CC0C #B!5"#2.-#2 #A $1D0C141B1$2 "2/s2A-B "B323!$"$/#3"C###"20#B203@ #!"$$1. ""1/B052A%2  5!30C B03 #CE324C 4D !1 13A#C1CB1"ܾ# C/$3A$2313!3!R14"""3##B 2$3# "0""C3"32!"!#"! ##!""2!##"!"#!"#"!"""####B2""33$$432""22"23"!!""""33 !"#"2!"#22BBC32!"2!!!"#22!na"!#"!""#!22""!!!"!"!!!!" 2!"3"!"!!!!!! !# ""##"""#"!!!"!!!!!"!""!!!""2!!!"!""!!#"!!!!2""#"1!"!!!##"!"!!!223!"""""!!!!!"!!""!!!!!!!!"!!!"! !"nu!!!2!!"!"!! !!!!!!!  !!""!!!#"!}!!!!!"! !!!!!!!!"!!!!!!SUhd! &(]i Pb# p0T R 6  a"?4"1 Q ܰ3TQ!3s;@vV /$C5.53B20Ru/4"4-2-#0S3!+6/"0E1Ue $!#QcA4"D2Q3SA S4&3BT#!T34 !E1E!̭!!!BB2C314A ̽!22" 3bF3"D"&2RQ152D3a!B !31޿#"E$/C /B!1B@ rDRAD#C>5 2 %E3C3 %453#$3R"3R$#"0D3/31q |1/3!. #A 32! ޾3>1! "1"B 7C"0>$CS!$s 3! #/D23!13 "!!" 2!"A0"!!2C \D$6 44" @-#0"3 413 2"!2 /0.$"2?1" /4211  2 !2"4!CB33 "CCB 22"!!3"!R!"3Aw6#! !"  !B"   %"2!45!""@ A2 $4#! !11 !!$! A!10#"O"!#2 $"2 !?! "!2!" 1!0" !"."? !"1/!!!2B wG3@"!/11!1 /3A21 L10 2"1"!1 2 !!! #!11"4! "!"  21 //?1"  110 #1! /3`! ! ""!!! /!1/"! "a/0 " "!  !"/ !# !0?"  !/!!". /!1!" "!/!  /"!// !! !"/ /!2 ! # 00 /0 // . / / 0!! ! !! !d " !!"/  !/   /0/1!./    !/!2!##"""!"##333E#2!!4D43#"43A321$/! /   !/!     / !  #CSCB2!23342!!"3#"#"2! "#3!$32"3DC32A0"#44433343#43S43223""!#4CC32"#CC3C43#"34D221"!3D542"2B3!"3B32!!!! #5C4#B" -"#"!"333C4#"332 #"ͽ34D23!"#"#"3CCD3R22!"#C4ͽCCC2!2#""#""443CCC"!""#2!"353C"!!!""#CC#""B#DC32"##3C432###3C3!! ""23""!2CRB322""2"44C"!ͽ#"!$3D34$##2$#2"!"#3#!!""!D)"CC#""23213"!3"!""4C#"!""""#3C42"!""""F   "#344""22""2C2!""!"!# 2"!!##""3"#2!#3"!""233#"#""23#!!"##21!"#$#3"""#34#32#"3322""#"!#""!"#3!!2#""! #"!"""!"2!""221" !! @cB3.u4AqDA2 2/!314 CE1+ bS51S/ %30#"+$=!R" $0A b' BT03.C3 2!#A BCO#Q!R-D0@yTB T ݯ$ RR/2 3/B1B$ 3 SRU1SDAB %"BE B B.03 CNe7"rT? #bc2#-C%2 C%1r."R2?AB$1R6!5$b?622.T BCF/&"D2"3A R?##ݾR41a%$2CR/%"4DB5/"B 3/C2ܿA/4/3Qb%?n D4!$354"D403 $/$!R#0$!R#@A.#!A/A01-4#B?32/J; !"A##2#0##/32"!"" 1!!2A!1 "/!#!"14S!D3%4 #C0#1!!$!32 2!#2!#CB2#3332422"t|"!!!2!2"!""!"34#C43234D#"! 332p!#!44422""! !2"##""!!""!!!""32!"2! """#33"""!l} "! ""!""2!23#! E@!"#"!""!""!!!!"!""#"""34"1""!!""!""B3#"4#2"2!"!!!!!!""233"1!""!""Ar""1!!2"!  !!!"2"!!2!!!""!""2!!1"!23"""!23[=!!1"!!!""!"!!!"""""! !!!#""!""!## !!"#!""#"!!"!"!"L-#""!!"! !! "!!!"2"!!!=I"""!!! !!!" !!!!!*"!!!!""!!!"!! "!!!""!!""!! !!!!!!!!!!!!!!JK !!!!!)8!!!!!!!!!!"!!w!! ! !!LV!!;0!!!! tn 5D23CD3b35$#43D$#3C$!1#33D$43S$2R#3C$1"4$C$# $3?&T!4)5#BA s11Ga"b"5AWA324S3B6"$12C3 #t d0! CV4"3SR23D :a3D25COTU5!1%"%31R%%#A$32ܿBR$D?#@E1Ϳ21 F3s/5 5!%daA Q" C6bA7 #B/G""S@"?B"3" G!s1RC@ CQ4A#Bb4?4 e0#@'C" 51S"Q "@?$A%C406"%2A$3 R2S#.#1CADR B!C3.#`$12CRT/6 42!ܾD !B/4 #21 %3ݭC1B$R/4?@24"D D.DR $ 5A @C#5"! "CDCݯ535205! 5##!2#03"$ ? c1d5 3 !A$"33$"!"2$$ 4!2@/""1ݾ%$B C? 23#1/ͮ$ "".CA""B3!402//!22"$3.E2 %/30 "!#B211 134R/440/14!1 1!!!  0 1#1 2$ #Q!" 33"/ 0 A?3P#RB#30! 1!"!"0"!25220 #3$!x!11 1!"!!B 3 !/" 3B2$32\ 2.3/"! 1" C""!!!B1!"!"" R3?1 !!!3!/!!!B 3$޿CS#!!/! "2!#1"B" #!! /  ! 0  "4B 20"!" " /// S$+!"2" !/  B2%"0/ "@pA""!!! ##1  / 1!"/#"!!A!""" !"1!##!!/22 '1/ / 2""   !0D< #" " 3C/! !"A@0/_"  0    "/!B @   3B/"11!! !\t!! #"21"!#!!  ?"!! !!" 00"!"!! "!"u    /0!2!.0!!1  !  "3/ ""//0 ?!."" 1/!1  "  L/!!!"!/g/ /!!/ !YF  ! !/ !! /  0!  /0! /!#"#!D4"!""#$535"!33231![o3C3##1"!"3333C431" 22!"!2#B$4432!""4D#!/  !!  6# /"!E44C4C"#"CD21#22!!! 232!4C D534"#DC22"B"ͽ11#322B25423B3#3SD"!Zo" "!""453155"!!3!""B1CC""4B32#!!""3!"" "#!342!!#! !!433!! #!!3C2"""""" ;!"J"24#!""!"#3C3!!!"##!"! ݽ""!#C2"1qC !c35?v&!B7"22"$1-40!RU#`sE.$1A #2 $0#A43=4!c3<7019C S-/Rb/!C "3 !B"1!Q 5%A3c/62ݿCS&!b5#q C/B2A-1O#3 32!S7/"SS! $BS%2C-CPRC/%"b60B6 B C.323 3/#3 SF0$'V5 E33D24B 3E!RD0!B D &"RE!1D 6 ޿"D/CA$c! 43E/$3C % eQ46 R5/ a A&422S3P C4>34$!!3/41 C/3"3 33ABd20164 2A!@!#!"1331"B"03!"! !!B"02230AO^12"" !"!#0#2?10-"!13"""! '3#$4 3C""$313"343323""!""2!"#"@K"#"!2""#43B!2"#""!"!"!"!#3332!32!!!#""!!!!!!"#4C"22!"!#21!!!2C43133!!!!"""2""!!#4#3B2 ""33!! #""##""!!"!3BB34"!22#"R;#"1!"#2!""34323"!22"!""2"!!aP!!!$422#!!"!!!""!"!!!"332!"!!"!! "! "3"""""!!!"!!! !!!!!"""!!!"!" !!!!21!!!"""""""""!!!!"""!"2!!!p]!!!"!""!"!!""2""!!!"!!"!!!"#""""!!!!!"!!!"3"!!!"!!"#! ' !"!"!"!!420.!?! !!"!/!"! 3#0H,/!   ""!"4300 "r 1!D" /!/5 /A@ 0!//!/1 !}"1//"/!1! !"#  / !!"!" kn/!!! 1 1/!!26 "/"B! !p2/!/ /0A!/   ./ !A0!/! /@0 !./ /!!0    4" 0//!" W//!/ //!Z;!   / ! /t!  !  /""/"S[!!  /!!! >S3!!#"!"31!33334"321!#4DCC#""" 3# !!3"!"4R""33C1"34SB2 !ݽD3!"""21!14CS4#534"!#C2"2" #CC2!!!2/##"35533"!#C3#"""!"3!#3" #E4322""!"!!"2"#"""23""444DC3"""#21 !  //@e#3 CB"3D4C$#3CC2!""!!!#"  ""!$3C#"2#B3##C44#!"330$3 #3"!"!4DZ"!"#!"2"#"!""2"22!"!$CC3$4B2"!"!"!!Lr"""#3!!2#3##3CB2!!!!"""2"!c ""!!""""CR4#3#!#44"!"1  1 3T %U1TQ%3#Q$1#! T>5/<4 ?T0d@DS.RQB"# C ""11#=eQabD@ 6!C?4/R"!#20Q~f#$0RSݿQ 72%1%!C1 40 B2 331/55S6C1 '!6r!r1 6 6 BA##R>EC b#a&! 6 EA0SR!3SC@$DBR4b&"%1C@B?4p3BB3 #3$4.C/"C#R$A3@D0 5C1C0C!#"C 2>BAA#1D4A/Q"B1/#/2-"2#"% 3!5 3/C/"4""#B A!221#!#0 "1~30$3/%2/#!/! !2"!2!1/"/ !1 /!! !!"1"#T1#S!"3!#414B CB4A4"D22!!!"!!2 3C/ # !!/!32 ""32!"3""!!!"2"!""#!!!""""""!"!"""#"S\2!!!!!!!33" !!!!""!!!!vw! "2!!!fi!!!!"!!!"!!!pO"!"!!!!! !!" "!!! !!!!!!!x!!"! ""!! !!"""!!) !1""!!!!!! !!!  !!GR+)amS45#43D$#BB23!!"#$$3RC3b$"B34B434##!"ؿR  311 CD@4!!$>^?` @޼ - D43T"T1!0 D;5R6A3QcOc/Sc Ba3 $##Q$C$A%2 T"T"Ecb.rBݠ#B.$Bw3Q #D5"&S!;D/b/a/3$B#$$A3"$B#Q%2ݮ3AE/Eb3.3432:113"22>"B"B#" 3QC0C24"21!B 2"/-1-#2Q#23B2@# 21 2 .###" $113!#"!?# 2 B/2#"0!! 11"/#42!3$3 1 3C$3#151$25 D"B/4! 2$3B42D131C1201!C!4D""4B D332 " 33  I522!!!""22!!"""#3#""" !"""#4C33"#3223#2!""!"""#!!"!"""2#""#21"2!"##22ZK!!12#CB3"!"""#3"!!! !No!!!" !!!!!""!"(!!"3"!"###"!!!ru!!!! !!!!!!3<"!!!"!!!"!!!#"#""32"!! IF!!"!!!"!!"!""!"!!!!"""!!!"!"!#"""! "!!"""!"!!!! &!!  "!"!! !!!!!v!!""!! !!!!!!!!"!!!! !!!"!!!!! !!!!!pi!!! !!!x! !!!!!!!! KW!(<!24ooXM  ./>?PR! :pR. RW/RCO#CDRޯ2T4R1u 70a!!'Q5a$D012C51Q!-#D!Atf1?/53V@"'1q2Q$A #112 1*F1 C!03ED1#67B'2"4B!a02 # >r"CT47023s-Be!b A/u%iDA$A22BF"A T2D4?B/s1$CQ S"3Qc! 4D3?7"c!/3 S52!C˾CBݼ !Ce1 Uݞ!F$B!2#R S"c?4D'1!Q(ZS!&/'B"#. #@ E1$$51%BCSR#/4AD!.$""B!1-E0 6!0%#F"AS/"A3$$1 B#!2"Q 27A /4@"C $"C^Dݽ3!RBA 3"%4!/##!bA !44!"s"kE! S3?1$"3CC"#Q.3$E  #T!4 1K#BB3Q A? E#C .#%4 ޾1 $""Q!4$"#3#>44""#!C520"!3?!4"! @%"".ܾ"R33 \1 341#451/ "A/! 02@" !!S?~h "#Q/!"CC!1$!#2!?33"B #3!!B"! ;R$ "2!"" %"#1 31 2DQ/"!  1212SB!/ B33   "C4! # 20 "!$"1#G!34 ?$.!! "#"B1"6!24#!A!#:A."B1 A222""5""D"C"#"CR#2 i!1#4!!"C2 "CB1 #!"1""32 13 U4D21/#"2A  # %" !"2$!?/#B$D#2 r U ""! ""!" 1!!21##12 44%!!ݾ0"!B#  ;"# BR!##Q2# #""B3#!!23Z2$"1!$C#2" "1." !#!?"AB4P  "#""#R !"1/"5!/! "3%!"# Ab"/(1" 2"2 "!  #4B21A/!#"!2!cr#/ /2!"CB1"!3C!!/ "#0 F#!43B 20!"!11 /""/""!/ #f!"4" !2!/ 2!2#%.1/!0! !!"1/!1!!!!!A  0!$" 2"001! ! ! /" ! ?/ ! 0 !""! x|"/ 0!/  1!H! " !// "! "!       ! /@ ! " 7 ! ! / !! !/ & !!! " vZ/! !# " ! !( !" !20!  !/ !!! ! 0!  !/ ! / /!    !Wj !  ! ! !F /!!)" U44/t 51BSA2*2#1!$ $O44.#/Aޠ !0#=%/S%'0)Br&.1s$" B33"4!314!"B460"bc!35%!$#C!%!1=$##D%0b7/aS3 "C0%! BB0B6A4563R517BS4"3 B b$ABPT/abD?ܿ23/514s25Cb1F# $DF 7!b6!35423 3!" C!=?a5.%"R#0ݾR$2"E!B-R 3AD5 3B?BA"3D "B-B #4 3 $A4'2C4A#31"###3.$AA$/33 "!!"? 2 3"" 3# 3!Ab1#0"" 20?"2 13"/ B/ "B !1" !!!!!" !/ 0   #2#""#CS43C!"!!!!CR453""3"3334421!3SR3""C$$3R3"##"! #./ . / "#4434"!"!!"!43C34"""!!"4D4#33!!!334#C4!!!"333B" 33C332!!""" "#22 "1 43S5304#42!"!!!#3D3B#"!"1!"#44333"!zv""43B232""""!3B322"! """#3"#3C43"""!"""!" !"!"4CS44#"!""!!! "##2C#"!!!"#44B2" #CC32"!!"22!"':#$#2!!22#""#1!!#%D!!"CC433B2!!"3"3$#3/!####3#"##!"!"""2"!!""1!"!"!!!""!!2B23#2"!!7C!##""#""!!"""22"px!""!"!!"""!!!"!!!!!<#222#"""23""#"""""!t}"!!!!"W=!"!!"" ""#!!!!!!2""!!!"2"! !!!"}!.'!"!!7C!!"2""!!!%$!!!!!~!!!"!!!gt !!! !!!A.!H@#v AtC"2a 3C!630t"/b SdBCB#DS"2S2BT!""&"!/ 2  SB%$7DB13BD?3D"S?; 22c# 4T#523R ߼ݽ!01͞!#c 2TDTD 4@$A22 Rb5 B@4AC"bCEFC@ݿ5!"$3 R4DD $0%1 #B "S.3A/!3""!ͽ!$#/#/.1 %21"4D12SS##&$!!#43"A"DE"2CE1L""#ARCDD4?CAR "bRC/%$!#P3BC 3,R.C?C B@A@ B#2 3?3#01#" 2$4B?3!@#"A#33""A2 A-B"2 !0#!B3B#x""1#"#0 !1"""/!/ "!0.!/  ///t!"2""2"!!2!!"""#2"""#!"!"1!"###"#" 3!""!#"!"!"!"""!"! !!!!!"!!!!! !"!!!'>""!!!!"""!""1!!"![W""""""!"!""!"!"!""2!""!"!"2!!""""1!!"!!"#""!""!""8"!"!!!"!!!""""!!""!"!"!"~d!"!"!!!!"""""!!"cg!"!!FH!!!!!!!!!IZ"!"!!!""!!!""!"!!"!!1""!!""!!"NU!"!!!!!!!!"!!!"64!! "!!"!!!!!!!!!!!!!! !!!!!!!! "!!!!"!!!!!!!!! !!!!!!!!!! !!!!!!mbnm!! `it~tqo$#R44BC43R3C44332"4#$"&2/G2Q1Db""> &#t?!Q!r!E #0 be  aS%BCT/3'!!1 !  #BT&4B145$0B#BA1b%0"6B!Dr#$#r"1!C23%CV;۽04%B04RS#$4D#"252!RͽR42$T3C$5BB"#BA 3 !$c25DB#3SS1="3/"$CCD6!TS4ab$1ܿ!C#A 4S"C C/3B44!$BB& 3 E5~RC"$3C/@4% #4CC@1D"R$"230#235 1 C $ARBO2 B/)3AC/3O3 2O"44#A5$!BC@#.0""?1 #-#!##"02"/ !" 1#2"!!@2/@3B"!"101"/" " 1 2#%3 B  !#C!C"42!#""2"!#2122"""UO"""#"!"""""""""2"!""" ""!"2"!!!2!!""!!!""!!!!!"!!! }{"!!!!!!!!" !"!!!!" !1!!!""!!!"!"""""!!"""""!!2""!!""2"!!"!"!"#!""!"""2!""#!"!!!!!"#!"!""!!!!"!!!!!!!!!&-!"!!!!!!!!"!!""!"!"!!!!!!!""!!!!!"!!!"!!!! !!"!!"!!"!""!!L\!!!!"!!WI! !!6=!!!|!!!!!!JI!!!!!!!!!!!39!! !!!! !y!!!!  !! !aZ!# !NODT /.2E 22+ - c$ 7c#E1Q1B!5!5.4U raC2EAd!$"D21#!23.>Q23? #5/"C7A 25"d0e!SROD"CR B3 5 %D%24 SR$"2.b 'C/54B!440#BC31524 12"S11#"3/@#3.2B.3R$4B2$3! $ %.5"#0!2$"B322"D2022 55"b$22B ݿ%"."" # 4"C "C$"!/2@3#! #"2#"2A!"22/ 104A" @2! /3/"2/#"X" !"/"2$3  #! 3A/"42-2!10_# " /""!3102!/  1"b:!2/!/" $"A//0/ "" /00 ! /@>!)32"4""#2!"3!"154CC!!#4633B!2!!#54232CB1!3!w""/  "!/! !1Js2"22!!#C2 ""1##"!!"!3 "" #1."".!/ / !v# 3C1!2C3!23!"##32 $CC DD3B"$#! 4$#34332 p!  ! "!  /""544#43!"#B3!22!3342!!"!"""1"!KD3 "42"#CCR""!"!"32!"3B"243$44" ""#2"2#"""#$4B2"2#3C20CD3 ;!"2!$3D5#34""!!"B2#443C"#2"#!443!!222!!3"!33|"! #3D#33"!#3335#"4C!$3CD3B !!x / /7)#53!#D21"3$#2333"32 #CB##33234B24C4$" !!!" 2!#32!""!3!!"! #33D#!"#2#4#!2"23B##1!CC! !{""3!"!2!333C3"32"343"!4C34442!"- "!!"!!ݽ2C21!!"#CC3!!!$2!"2"#CB21 '##22442"2 34523!""""!"2"!!""!g3"#44C32!#3!#3BCB"!!33#3S4"!hbݽ343323!"2234#""!"## ""#23!!#c33!""2"!"!!"34#""y}#$"3423"""/##"#322334"!"442""#"" #2!!""C3B"#1!!#E#"##"!?22!$C3#33" #23#2!"!321"3"#44g #3CC2"!"""!#""" 1):235$#2!!!#32!!!2!" !"#!!!""42###"3!"#3# "!"3"!21#C"!!4B2!""!2!"2""!"32!33B2!"""#"""!!!""2!&"""23""#B###"! !!!!"2#"""4""2 !22""!"23#3!""!!"#!"!!"##432!"!233!"!!8<"22343"#"""!##122  (""!!!!#CR21"!!2" !331!  C4c-GDO#A5O!4-#5!GQ!C!E3$C#6 3.B"."&2%b3S#634R"/1C%U"5"20Eb44"D2"Q"$"/3cs4"!5 !2=""$C#3& "#?DͿR'A$R%2512@ R0R A &2/3#$5 4D?cR..7152&/ c2 D s3/B%R/24/3D3Q4BD@!dS1#5RD344C22 23:"T.#c5B 62$ 6 4#2DR4/!#T3C$4 &E"s r?S!%#"3!3F"31442ܿ4Q2S?$ C$ "1"AE2%4233%A$#CB C"#B#/"3""R !3 #"6"0"3B2.#32!>2O1R!4B" /1A B$34"A!!! . 4" #!41"!0A? LE 6"" 1  2"!2"3/ !"21! ""B0/. ""$?AS/!"!00 CD!  //21@"!! /!1  !2 " !?  /1"! 42 "!0!0 ! _,/  .!B#" ! 00/ ".//! /"" 21/!!0/a!/!#!""!!/!/ /"!! ! "! /5]" / !"!! !!///!"1   !!//   $!!" !/!! #  <_./!"  !  !!0!gI!/ / 0A1 !  "!"H/ 1/!F0/ !!!/ !.%"##!"33""$DC4#!4CCC22#4DCC"ͽ: "    / 0 /ux#3"!"";4CS##"$DC32!#3CCC3 ! w!!!!#"2!""#2"4D423S43433""##BB# /! / !8!"2"!#CR3!""!#34"44D343"!"##32"""#322!"3132"#344C#!"3CCS43CB1// !2"!3CR!#!!"2"!"2"##222!$DD#234"!  "!!"!""!"!!#2"#3!343"!#3CCaD4#3!"#"23"!34"!o"2BCRB#!!!!!"#32!3C !! !"#34C44422" !#33""##2!##4CC2""1"""#$2B!"7-}\B 2+a327@ R0Q5#A#RA 3?C#_d0TA!$ O2$ T#QF"6 E/s5?̱C4 C42"0"2 C`"S&2C/$a 6 Q42ݮD340C4#A@$3a $"FD/240S7AS/$a4BD%C4B R%3,%#ݯ5."bE/c'!T44" B/$".3BSO s"1 S1EC`c?#S% 542 E!!353313=#$ b52E4  B>$Q5B"QH%A!O3 A$36b44C!C 2/31%"#3AC/3B4/C32# 0#0 /$!"4!3 A !%3A A"#1"2 32/$ !322" !/2 ">""!2"@#1! "!/!!## "!?!0"!0"! 5"4S2#2"21"E33!4D!42!!32!!!#4# g!"""1##"#"2"3#!!"""#23!! ""2"#433!!!""!"22"##!"221""!""2"!!n|!!!!!"#""!"!!!!"#!"!222#"2!! !%"##""##""! "##3B3"!!""!!#""!2!!!!!!""!""!"!"!o""!2!"""!##"!!!""2!!"!!#"!"""!1!! !!!""!!!"!!A0!" !"!!"!"!!2!"!""!!!!!! !!"! !""kS !""!!!!"#!!!" !!!!"!"!!!! ! !!!?$!!!!!!!! !!!!!!! ! 5*T`92!!!//!( VKmm##BCCCS$4#FF1"A!/ ν3=/q" 7@4D!2.6@Q0RE.>5/4'!A!SBD!336 Ay!AS.. / #?5B$CB?$3TB/#?/5C"!!C#3@!A"D4Q223#404#b"A!"B.!"1%"#23"#D#5"41!3CcB"C3S$3E3BAB$31!_S@ T!b0B $3/CSC $B4B52 S0 D0C1B4B2?# #D"b#RC D D rSD.$3.0>"##A#"$23B$04!CR2B2/"".2#.#3"T #B4!AA%BB/32222"#!"A"1 "0$!A BB$1/"1"uq$""!# 3 C C!$C!#R $3 2"! !1$"3AS141D B!"!"N3"3$3CB314!"!"!""3#B "3$2#!32:3##!1!!!"""""(;!!""! "!!"!""!!""!!"""!!!2""!"!"!!!!"""#""!!"!""!"!!""!!""!"!!{s"!!!"1!!!!!!!!!1 !!!"DS!!!!!5$!!! !!!!!!!!!! !!!!!@.!!!!!!"!!"NW!!"!!!!!!!!!!!!!!!!!!!!IM!!WV !!!w!!%:!!!!! !!! !!!!!!$ !!! nv ! !!q!!tv <3]h|}aT.?PS"2!Fb%/5.#A2 ΜQ"Tq1ݰs 1F1;< "a #t>bQ$DA33.D@#c#C!3!R$E!3$QD13O6C3. 3d0,42%A$/&!b"1#1$̿!$D&B$# 2E2B$3O!̽?$!#%40ܿ$4B370 !  871B%2S3-2/S@%1/%#2!@1CA$ % /T44#S" R>$C0T36/ /1ͰE##2A0"17#!3#3T#bB?%SW 2 !4T2/6!?5"$! !A#2-.!#$QR4 UB!.#2! ~j1 $ 3?c""/$C 005!"023c " /CB21B0 " ERE!!#31  # 5#;311330 -&!! "#R1$1 51"4 Z 7 45.4C .31CA D/ /#" "1 / !1" M05B #3/ "3 RB3!422 "1  %C  A2"!23]#3!!. !!!$0!C#.C4"31/B01 " #/> $$1.4 $3"#40 1"1"  D$!B!"" !!20@ . "C"1Q "43//""/103!1!" "1RA!".! "@?"!2! !1C1.S$"!!"! "#"1A! "! " 1A "CB2 !#0 $$"2@!!2!/  ""CR !/3!"CR$#!"0"32!. !#$#  !0//!0""3001 01!!42?"/ " B" /#"1!  30###"!/ 2/! !0!""!#! 1!32" /331!!!12 "$!2! "!.""2"211ArG3"!!#/!"" !2"11 A"#3 !1>#!2!!"B"4 !!"  ݿA1!%> " @!""1 //1B "2 ##/1~311"""  "!1"0 !.!B!"  T  "" "!!1#   P1 0!!!"!#2""  " // i!! 2"1!  ! #/0/!!!/!"1 "1! ! " "123!!!  "3!!/!#"!!N! !" ! #20 !/  v !@ !""33 0""#!00! !1  !!v !"!!1   /!! !/! !/.! ! v"!!//   ! 0/  / 1 !   !!"/ 1!/  ! / r   /! "  / !  //N  /! 8q!  ! /T/  ! /  "4D43C"! !!#4CS343D432ͽ"#33!3C2""3C2"!!""2!"3##22!/"  //  !0$u4$bE %AT$"$"$##0C !B R0RTT2c54B2%.R6>aufCu3RSCC#C?22 B.@34>E1%RD%0b6&1 4/R"#.2 #56%0 d/5QQ-#?B4$0R$A2N"A35.&0 47?Ab/D2 4D!$BC/d1rUvBRE/3r 50BE"C C.$3Q6/#Aܽ3# "#31Q/CA13!C #N4C>;d4Ͽ$"SC0%C #C30"A3R.$A56 Q 2.%"D/ #Q4>41Q!0#!R3A  OCC"#3"!!32 2$?2-32 #" # 2! 3! "#" "A  "A/"!3"02  ##12/"-1 !2@"" !!. C"3B 3CCS22"2!"#3"!"##""#!#!! #43B33!ͽݽ@#4CR34C4#"!"!"""2"3D3CD3C244433D33"#3""!""! """"##_#BC333DB32"2"#3" !!!!#3"!/!#34343C""3B33443"!!!!"!332!!"3CD3D3#!!! !"!!!!"3#"!"!!!!""332"2###! ""!!!"""#$#223""43333"!"!"!"24"2"!"45#3232"!""!""!!  "#22!!""!!!!!"#!##"""!"#3""""!!""!""2#"""2332#"2!##"!!!!!""!!!*""!!!""232!"""#"" !"3#"23"!""!"!!3!!!"#""!"!#"""1!"2"!""(!!!!!! ! !"!`g!!!!"0'!!!r!1"!"!"!!! 9!!  !!!!!_M!"!!!!!! !! `d!!2! !!!!! !WP ! 8?'"B#S4tR#e3"#5206"0$DT/-S $D3t.46"4b!5!"D0%0 .ۭ #05/U4&!#>4 #:;ޮD"r2#0ͽ% V1!6"Aܭ۽ܭ%2/7B2$E3C$422CTB4.E/7 !14 r$/R?#?42#B R R5DS?&41Q 2BEDBO # aD C% # 30#Q#4#Q.&6$A1B R$5.D ͱ D2ݠA 3b4&41$PAaR.R.5/Co3!3A"Q a5Sb/D "B3C!baSC R0C1$2$3BDC&41$0B#Q44H#1131-B3/4B1$!"A2#34?A2 A3#/#  1"3#3#!"4! ## # !1!/"! !!!  #223!#2!"!"!""2"""#! ""!##21""2""##"""3#""2""2!1""3"!"22"""1 !"""2"""#!!"!""""!!!2"!!#!!!!!"s!!!"""!!""!!"!!! !!"!"!"!!!"!""""!1! 1!" !"!!#"!"!!""2""!!"!"""2"""!!!!"!""!"!!"!!!""~d!!"!""""!!""!#""""!"!2!!""!!"""!"!!!!!!"!!!!!ac!!! !"!!!!!!!!!""!!!!!!!!!"!!""!!"!!!!!"!!"!! "!"!!!!!!!!!!!"!!!!!! !!!"!!!!!!!!!!!!J?!!!!!!!!""!!"!!!!!!!! !4?!!!!! !!!0F !! ! !!!!OI!!!!!}n! >=y}!! !!z( "3$3RC4CC5#B3C43CB4 ؠ23B62 7Q$R2TR#- D@4t!0"q!r/06//!1a6#a A!C A52!63 C 53b 6CB2%#C@A2B##E %22731FC35#b2"!51"aͮͮA&#D!$CSA$$43#2D3B&$$"#c43%$C334C3" ޿߾""ED#34E1A2CRA"(r2D "A5CAR&/2C-%!2 b/5bD!%#6$"!3-4@$Q $.E? S F/3QDC R 5"3.4@C 5.$@CD@#4!$$ "BC#A4R/%"a-CA"RC/4"޾!Q4 ! 54!BB?3#2$ 2A3.#O "-3"A/!23/"133 ## #!12/22u3 2$" 23"!#" "!201#!01"#1""#8R 3 ;!$31"B2$#!""3#2"22"!~""""#"""!!!!"""#"!!!!!!2"!""!!"!AP!""!""!" !mv!! !!" !!!!!!!"!"!""!!!"!"!!""!"!!"""!""! !!#!!2!""""!""!!"""!!"""!"""!"!"""!""!"!!"#!"!"!"!!!""!!!""!!! !!!!!!!"!!:=!!!!"!!!!!!"!!!! !!!!!!!!!!!!"! "!! "!!"!!!!!2H!"!!"!!" ! !!!!! "!|!!! 56!!!!!!Z]!!!"!!!!.%!! !!! **!  !! !^j  !!!!_^/ !! !VH!WZ!!!!!' PT @2N,D UED#@22a!/%7< a/3A2ͼ?%a1a 54 d?##O%$E2 CQ4$15#/51?%B#O5@!$2642S/B4#R>#B3Sݽ3""C"43!4#$2 RU"?C0 $Q.$R !s00 CCR5/ݮ#R "" 2 /2C2 !##" 0C $21Q!4!2A$"!#"2D$!3R " " #/ #2D23C!$$"CC!2#"S3"#"4 #1B4B u_"B#2123#%2"5!! 21  %320#."!""B #B"/"#4!"2 2!/!."1B2 #3" -10 #411A " "D"1 2 !" !/ .!2!!!/!" /#A.11"" 2"!1!1/!!!.!/""!"qh"!!  $/!   "!gN!  0 !  2t  !" !1ͽ#B2! !!!!C!"21"!!"ͽ54C4"33#3#!$4" "2343D33CC!!""#32!E#""#4"!#32! !/ ! B!#5##43!"CC" B2#""##B3!"#23D53C43!#3""2B2""44#!"##2/ !5#"2!#CgD#" 2!"#"!"#B3"2!#B3CC1!"3""4$#"!#!h#SB2#33CB2!4CB!"! "22!"244C431""35#34D$#! """3"2!!#C3!323"##32 !2B!!"44B""31#4"""/3#CR"#CC1#C3CC20!!#!C4"#5#B2<B#""!""!/"33C"!"3B44B3!#3!$53"45###"223#3"$"!!!3C3"#323345#2!"3DB24"  !! !!2 $32!"2"!"#"!#!1 #33D#"#2"32"3#241 "2!!"4B!!!""""""2!!3C3C3""#32"#33!!"4423DB2!"#"""#32""#432!"""331"$$3"!#3"#CD#"" x3443A!"!"! "" !""""21!"BCCC2"33""3CCB" ##"4D231"#4$#321"""#4#"!2" "!!""2"""#DD$""!!!ZV#2 "!"23D"!!!!2!"23$3C2"12 "#"oB4" #33C3"3C"!!2!"" ""22!!"[n!!#3C32!22!!"D4"##!!#3#n$C2"33"#34#!"##"2#4C2!!#444"!"  ;5"!"3""#"!!#$4CC# !!#4#"!!!2!!!#"~#BB" !#2!"B1##2""#3#3"#33""! !432""!##!3#"32!3C4#""""""!""""!!!`y"2""232"2""!!!!!!"#! !#!##2"2!"""21!"##33!""!2""#""##34"!#321"! !####4#2"!!"! !!!#3!! #1"!!!'3"!!#CR21!"#!!#3! !!!" !4F/G!72535"10A333 DNBbAE/dEA 71 S0$3!/4.C5"3B#@U DCuB"%"#"35.""H<Q$2!D!d$R&27A'2CA#"S"3"R30%#%C!4.B-DB!#P $!4"2!4!D"R1RC$3b%#%3D0C@S0 53"B C=$S C%3E2TAEA/ F!>CRb#4B3.$.3R$2 4A 4A%563Q.$4##35Q #/"@62#"N40%2B̿2$1"$4.C 5! % 414 $ 612A.#2 # $W#!"#2CB" "!23 #!! !14B"/1/ "113E!"#"130/1!1 22! "$! A?#22  !"! "!"!0 /!/3!!!ݽ#S#!#3D4"!#2"!34ST33#$5#3"!!!"##"!#4!DS4!"3""232 !!!"!""232#4434##"!2!#E3C322"""!""!"4D4!!" r"343B##34$331"3C2! 42"34" L_3D##DC3S#2"!4D"2#431!!#S3C33#"1!  !0/!#"!CD#3#3C543#"!##"#"" #3!#33C#2"""#!3D#2!#B1 #243C"#42"!"2"!2"!23" #! "#4#!!#"! *-343133""""344#""33B2!22333#33"!!"!!! y!!"#""$"2"#"!C3!ݽ!!"3CC2!#4"""2!""!44C32!"#2! !""!! #!#CS#!""22!2""!""BB33C32"!3333CD"""! 23!"2B4"3!"CCB2,2#432#!"""#32"!!"3BC3"!"" "2C4#"221""!#""4#!"#"!!"#3"4532"!" !!!2!!C2"!!#3B32""#233#2!2##""#"""32""!23"q3C2!""!422""21-"C4#3""!"!!"3" 24"221 !!2"!!l""#"""22#4##""!2#"!22"!""#32!!d22"#22!332"!!!""22433""33#!!!!"""332 "222"""!!<8!!"!!#CB32!"!!"#3#"8*#""22"#3C4""331 jV!! !"$33"""##2"!#33B2""###!##"""32"!"!"""#22"!),!""##"!""#!"!!!"C#""""!!"2"o #""#"34#!!"""!"""223!"""""!"""2"!!""23##""3#"!!!!!##B2!321!""2"3#2#!!CU1"!!!#3B2"!""!!"1!!!!!!##"!222"""233!!!1 !!!!JZ""2!""233""!(2  D"1,Q$ 5ANݍ- P47@A!"T/?R3t!RG!$223b4261#C%#R1SB$444#C2SA#3D3C346!!2!C"1U"r|J4/R032A2O1B $1!RRC=ݿBG/R&!C/BB1C3Q 5"/#b CQ$.B 70US'0b BEAD3.&" C!4E"C #R60b.6! c/B/#@C "3."2&/2R DAT/5a T0C.7!D0A3 #." 4 a%25/#D% q%0R0B 44D""R.3C B0C#R "$$3C?a4" Q/2#1B!B/$1 C?"C$"C/2D/C$0C0A/"$?3$12!B1#Q#.$" 30 2$0#!""" "1 " A"2$#"2"0""11@1 2!! !"1 " 0#" 22 !!!" ""13B43"#B!!!!"#2!2" 2J)"!1"!!!!"#""2"!"#"!"!!"!"2"""!""!!!#21"22"#!"!!q"""2!!""2" !"!!!~!!!#"""!!"2"!"!!""""""!!"#"!!"""!1!!!!"!-!"#"#!!!!!"!!!!!!""!!"!!!"!!&""!!!"  """!!!!!!!!"!""! !!!!!!!!!!"!!!!!!!!!!!W^!!!!!!""!!"! !!"!!!!!!!"!! !!!!" !!!`V!!!! !"!!!!!!!!!&* !!! !!!!!!!!!Ve !!'!!!!!!  ! "!!  !#0uTP!$+HFU2#B"!@ "$=q'@3"U"%AB'1R7./, BTa"c"$#4@3'0A"E/2Qݯ/D"?$B4R#BS"16Q!E>`.3RB#2#!S3C 2"QR$B#0!#""B!!B!/q5#"A"$1"!" !C31B"" ! !3T#!R#4213$C24"4C /.BD5"5#CS!#5S2R#S4C5252 D1ESޮA B #4"3/C/3R.$3%2$@40D 3GS3/1/2B/B2-32"A#Q3A4!$1C/CB"#2"3A"3 #B3230 {=A #13!"!1 1 ##3B"BA#A02" "1 2!#"#!1/!1# C R!$D!C0$4 #31 "!13A41S2D!DC!"!3"3$34341322!"23/$2 B#B"1!!"#"""!"!"!!"!!"!!!!!!!!!!!""!"!"""!"!""!!"!!!!"!""""!"!!2"!""""""! ""!! !"""!!""!!!!"""!"!!hS!!!2!!!!"!!!at!"!"!!!!!! !!C7!!!!!!!!!!!!!! !!!!! !!"!!!!!!!!!!"!!!"!!!!"fY"!! O\!!!OD!!!!aP!!!!! !/5!!!!!!!! !!!NN!!  U\!!~q7O!!!!22 !!vx! qh '"ks @E,qS$ a&Q.$2ϭCA޼%T1ac%1Q3Be/%3/Sb1 &33 2CDD"71# C0Cpv1$BR2 >"P3R#.$0 #>#24$ nB 4 5!d 25E#1/3=B0".6#1 !Q5@ r2$ !"04?"A/s& "!!DF C56". "C!$A#c0#R!"21 B-#2QR363$NJ5ROC.$S4"?D411 ͮDB/3C" DCR2 1BB.AG3BRB#!%7#.4A #4B6!1021!2!4̾%3C$# D $1 22"""!S$#5r6" 1!1"! !232D1CA!!$16#!%43QC!# 1>1DB."."B!B#BC#S" $3##2 SB!3!2 D  "$BSA 7%k޾!BaR!1C 27#"#42$"B?!ݿB 2?"a!VVCA ""2E$3$? 32!/AQ"a 2 2"E"!"0"!"!ί%$# S12! 0A!!3"121 //4o #!-! /54RA1/0 !/ ! 414@ޯ2/ $4"I"4//11"$ " CA "!!AR41!!(22@BA!3B0 /33A""0/ 1?"/  "T$?  1#"$""$Q0.1BA!| 1BB!!/%"1!!/ !!  #S 3!"3B#B33 1B40"3## !2!< !"1$" !32 21#0/" #!31"1"  20"!B!" #!?#!$"ͯ#A/"!" #!/ !1  ."?43#1/ .5#   1!2!  3! "#"22!". 1. ##%.#"! !!"!10!"#// 0#/! !"3#11/21 0"!/ !/4C"/?/"2!!020 !111ξ!!"B0!2!  "!!#"@ "/!!/G   !!! /!!/!2!#$ "1!"2 223  !/ 3#""! "#"2 " !#/ /G - 1/!!" / !!"02" !  @!! ! 0"! 2! #  "!"/Z    1 OI " !""!!/ "/""! //!/!" !y!!!! /!!"" / / /!!/ 0//x!   "  !/ 0 /!! / !!!! !!/h  "/ !>_ /  //0 / ! M///  c43E5!2C022 3$%$ "41SAQ D# R #!0#233PD4/61Cs'1RS0Q/a CB #4/2A4C4/7@ADD ' $QrS 1 S/'@54Ͱ3# 23R%E!BC60&BC>52S' !A EDQD$&=4D '1R5!R 3/&! #4B/"BCP"bd U#CT1DBB/D1#U1 3D EDBDO /$1BE.4@ SC02r/C@B-?bD #Q3E!C5bB $#C0A033?!3 $0B-D02B 2 30#$.%1S31#B3 ݾ"#"$0###102?$!A21 BsA".$"3" !2/!A"@#"/"4##!"1"!1 3!$ : "2"#2/""! "1!/! //(1!3CR34#42"#""#42!#34533"#CDt52B"""#$3"!"#2#332""#"CCD#43B2""!ݽ"!"2"!2""!#3B#!!"!!#BC443B!331 !""25?""3! #3#!!"#""""343B!!!#3#343C#"!2!! !""3D5#23B" #3C33432 ""#4#C33#"3!#4CD$#B3""! !!j#3B3CCB3"""!##344""!!!!!!!"!""32"""##2!2"!23444B3^G!!!!"#"3C4#C432!}c!!!!!"#43C3##"2333443"!!"!!""#"!!!"!!`l"""23##2"""322"""!!!! "#!!""""#"!!}!!#33C34""!"2"221!!! 4!!"233! !"!"#2""!Y?#!! "!!"##3"!!"!!!!"!!!!"##"""#""#""!!!!""""2"!!!!##3"2""!""!!"!jc!!2!!!! !""!"!!"!!! !!!!!""O;""!! KI!! !! !! !!!!""!!!"!!"&"!!!!" !HX!!!7"!!!(;! !! !D#B3#!޾ݾ 1##2#"!" 2v 2e312S4!5B!Cb!T !# b34uK "CQ5C123T1$CA""53# ?bB$T!$7#!33U2C2"t/#̮ νͮ3"T1D3#S ޼6i!?@ͽDC50 S1$ 11/41/#c#1F53$#SB145334D4#4R"!CCA045/d"D#1Cc4"3T3$"SC$$331SBA!%"2B12 " !/"32B̾"2D#!#4ZD?$!&!%2S DCC $/AA4RR/D %!"Q#B BD4/C0D"1"RB3.C3?P 4"#AC CSR C 3@AAB A3/3!#"322 # 3#$#/PAQ3##+w"!"1 2"/22 ?# 1 "".##/""0 !1 @"1#"0!1"""!/! #D1!41422!##32!!#3"##!!""##"2"2":*"!!3#!""#"!""!!""#"""""!!""!!2""22""2"""#"!!!!"!!"!!!"!!!"!!"!!"!"!"!"!"""!e`"!!"""!!!""""3""!!!""""!#"""!!%/!""""""""!"#"!""!""!"2!#!""!!"#!2"!""1!"""!!""!!!"!!!"!!""!"!!!"""!!!!!"  !!"!!!!!!!!!"'"!"!!!!""!! ""!F.!!!! !"!!""!!!!t]"!"!"!"!"!!!"))!!!!!!!!!!!!!!!!!!!!!!! !!!!"!!!!!!!"!! !!!!!!!!!! !  !PA!5, {k!!!! FC !!DI!! ! ! !!EI  !!7.    __ z 5M / ?rZmg53BA 340ab&.2B3E$4$!c"#$c?@"ξ?313A#303%Q$$33T=1/B#Ad"5#R4$3&..!Pc"TA!16"rc"!! -"$#RC5! B[$ "!# R23#C"A!/3/#R34S$"R5 43C"  "/ 5!#DD3.E 3CCD1SD0"R3 52#SS 1b3PBD &2?4243D/$AC$O"P 4R-1D/ $@4#@2# #" 2.%4D/!C40#12$/24 3B!R.C2"QB/#01 uJ42!"""/"? 2 1#.$!A$0./ "/"2#!32./ 1B"!"!C$!$RS!5"B# 220424 41#R# "!#2!3!2"""!""!!!"""!! !!!"!"!!"!"!!"1"!!""1#!#"!!"""""!2!!"!"2"2!""!!"2"""!!""1!"2"!!"""!""!""!"2! !"!"""!!"!"!"""!!"!""!!!!!"!!!!"!!!!!!!!!!!!"!!!!!!"!"!!!"!!!!! BZ!!""""!""!"!"!"!"BK!""!!!!"!"!!"!!"!!!!!"(!!!!!!! !!!!!!KO!!!!! !!!!!!!!!!!!!!!!!"!!!!!!!!!!! !<N!!!!!!!!!kp! !!!!!!!q!_SAD!  !  +'mqku ! 2G 1B"/-c#S+ER$!1A޽C!5"/4/3/d."C a b 2DA7!6bQ3?DCݽ'!5!R$31/N@ $.$2O"E1 3PCR13D.4#<3S?D"6" #22-2S" #R2C2 b!3 7! 31R0.b 7ݞ3"5#$#S? 6!2ܾ3#4223$$1 131#R!#B21!/5 433"B2C#!S3"$#2""1 !5R!!C342"޿5!3#!! 5"""B#2#"#"51;!D!1 1"$#3A1$#! "/13 /"4/"/" C""31!1!!!!0B2!/!02 #!!"!$#!%"2C0# .""2 0!!#Bi"1@ !! 10"! !!/%! /0!"/"! @/11 !0 !!3. 0.1""  ! [P!!! /!!  1 //Fm !"/!1/ !"4!#2""!"ݽ$SC33C3""23!$4#2C34C3 3CC"!"""#$#!DB"!ܼ"#C""!#32!"341""223#CB0!! !!  4# #2""333!!#23DCC4421#3" 332!235" 1! "##2! 443##4D322!"!3# #C#"2 !2B3CR!!"#1!433"!;"""#DC"#33C4# 534!|"! 3"!#244C3C"""2CR"#4D#C!"""3"#!#CB!Xd3#2""332!#B!"#3D3""B!#32#"$##CR "#4C!34343B !#!431#D3BA 2""!#!!!7."33B2!#34$443#3!#E#"3S2122##"3321#3!$42"#3#33C5#3""#DC#$" "!!*b2 $3#"2""#""" #3C43123""32"3##4" "2!"CB! !"!"""2!3C3C2!2Bݾ!"2B3!!4423D42!"""1!!""33!!#43A!l"1"2C!!"#CB"!#22#5$""" $35#2""!"2"" !""""21!3CCC2!""#3":D"3CCB""2"!53C31!"#34#32""""333"!#""!!"2!!"2DR33!" "#2!!2%!"#3CB!!""!3#3C4"2"" "2#4""3433!!"$32 ""!2 "###!!!44#2!)+#2!!#CR"#"" #3#!442##3"! "#$#3"!"##"1#4BB!#3D23!"!!!!1  """22""2!!##D4B""!#B2 "!!!\M!!#""""!!!33B"!!#2"1##" ""3#3"332#!! 432""!#!#2""!323BC2 !"!!12" "!"! !!""2 "!! "2""332"#"" !!k^!!!""#""!!#22#"""""2!X~3233!2!!2""#""##3C1!!#32" "!!"3"24#2"!"!"#2!1!22"!!!!""34C31!""#21""  !!!"!"32"cCCS45#3D#42B12"ͽξ!!'@C3U!4%BCDB3S2D0"A#/̮  c2',SA2AD"2bݮ#dS$"535C3S3B342D"B! A -$-ތݿ ͮC#"$sCB"" 0 jc0d"0B"C2BR12@4C?#tT%a521 & 2D ܮ!A3 3@3A3S! "S6Br'! 7!3-sR &24"1%2S 7"CP21!D $BR3$A3BSa/#"3B!!R E!"$!S3!BA.#C"c1#C/$43B=4A/ C0%1"B3@3PS2"1 #1,4.10#@3"3/B/D 2#B/#A/2#S!0B4#35C0 41 CA2R/4 !1 !A D/#/"! 1!"ݮ513."$2!"#$C$#!A"0!2/12$"/ !1!/"1"1/32L   /! !!#30 !  "#% 0" R   !MyC !!" !!1" /~!!!A!"  ""0  "3/ + !$42 !!$"2 //!!0"  /x~#!!1.0  " #""G!!  !?/ !!/ P! " 0 !! /!0. 0cY01!!"  ! 8! /!1/.!  / 12  ./!L1B/1  K ! !! /   ! /!n"! // !/ 9/# !!!  /!!g "/   !/D/!   !  /3! !!" !//. //  .$DC422!#DB43S3C1223CC4!!!"23#""234$"!!/!03DC22""!"4SS32"#C4C#!#D32" &=#2#4CS44#!445$##2ݾ233!23""""". //  vj"13DCCB!""3#CDCB" "#2 ""!!3B"#4CC""3B1"4D4CB#""!"##2 "2!#$#2""Gi2!!!"#4#C42!2#3D4434!"""3" !!""33B3!2"ͽ2"!3SSCB"""!45#!x!"""""22"1#3"!DCC3B22!234#21!!#3!"#4CSC24""! !""! ""$3!!433""#3CD#32!! !!#2#"#3#"3"!"3D4CB33"! !"2"2!!"!"""2C4423""!?"!#432!!"""34535"""""""/C!!aB@7!E A41A#24$ D"@u2c"AT.A#@B/% 6#"uR Tc$ b5B1% # 3S#AR2C>7(d3q T/CE1TB%A/2-B!!R1R$3ݿD/rE"rݰ c!2.&" C1A/514"S3C1C,3R6B-3!C 2.$"D/!A50T%250S7!b &#D332B/52% .$A3P54`4>aE S/%1C@C"2222.B$14a4 Q% C1/Q0B!"3/A4!B3@R A 41C3053#1 B1$31A#/# 2/13@3"1#!""13p#"#2"!2/"22@""#."!"A"O1"!2   /"! AI" " "?1!.!!!!!.! "-J!!#"######!!#"""D0!"""#33##"#2"""21!!""2""""2!"""!"!""2!!"3#"#22#"#21!"!##" JI!3""!"!!1!!!!##"HD"!1!!"22""""!23""##23#3"!!!1!"!!"""!gx"""#"!!!!"!!!""2!""!!"#"!"!!!""!2"!"!222!"!! !!!!!!"!!!!!"!!!!!! ""!"#""!!!"! !""!" !"!!!!""!!!!!""!!"!"!!!!"!!!"!6I!!!!! !!!! !"!!!!!!l\"!!!!!,"!!g^!!')!!!VD!!!!/: !y~<0ji$$%#C52R3443C5#$3% !#$#R$B2s/w1"A"0  P/'P# TQB'1q4/?  ,$!Cc#qb13442RE1Cr//1/D#34D$#S0"ECT Bi-2 2#2"1S3C P! QD%222 ##$213 32"1$"!"3!42"!T#E"!Q242#"CD#33CR!" "1"5%#A443R"2R43#D"R1!#"55$#BCC!DCq43BQD33A43"R2QCBSD/TR.b4$#24"A#B23 23A4x#14!C?4!B #0"?" 2"#4#3$#423"30 # ""/22/!B##1$$!# B $A"3"!."!11!"! 11"02/ #2. K"$14"S2D!DB !"!B#2$3433A$0"""B $3?B#2$2#!""!"2 !! ! "!"?@!!!!"!!""uz!!"""!!"!!""!!""!!!""""!"!!!!""""!!!!"!!!"""!""!"!!""!"!!!""""!!"!!"""!!!;+!" !!"!"!!!!!"!! !!!""!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!K7!! ! !  !!3*! !!B2!!!!!!!!GU!"!!!!!!!!80! x!M=! iy !!!/0!  vxuk )c]  /00S# A"E;  2>D a"5 3C13d12#S&6@"#a!CNF2b 270C303s#cB1$iDA2c&S1 2C?1$$A5S.#p3c#cS!C "02o 4"v15! d3/+nI0%A cB##E0 .2$6 DCb!C $"5/E1#CB3C3"2A !sQ// #0#b GC$4 3 "˾"3!#!#BQ52SC"?D"!2D#73"C#RA!w# cR3 D".R D2!̭4BT0d2 4#EB" 3!E#2b03!$.c N S#Q 62C!0B3b#3/3C0"41$B $R1ݮ$/$ /$1.$36 ." -}'B1T!4$"1Rb2"?5S/"2#P.F4ݯ13R"SS2$2BBU  #S##1"!Q /" "!A3A0ݮ41. 3Q  SQ$12!SRD411D""02"!!#' ! !"$DB/ 2! " Q!5"32/ #A! ""2C@-3$0 #"A!1""%$4B 1"CRC44A3R"3AR!!1" %1#/ .C3""3"/"!"A 282!40 %$! #B@3R 4 C" 0 $ ""S/#RB"! 2#B@!21!! / "#!A1R1 ""aC#SB2 "$$/ $3-3/#R!#A#!B2132qC4" 4$""#""1! 2! #12"/! "C"!"/ 1!##/#"!!"11"!!!"5 "$" "26!" !1/"!!#$#10T3D2"/!# @!22!#/!#3!1 35!!o / ! "//!" 1 4R "#"l!#D"#40 ! 2B#/-"$3 !""3?#$"!!$2!!22! "#!23/2AD3#D3BB$333#CS432"3S!2#RA"##B!B3B"#"޿"1.n3A1/?#! "!  A1!"!"12#"0 3! 10!"!!2/ 3!#!1!!0B3/1 #! # 0/"//!1/2 0!# "1 Nv!# " /!!!-2"!!" >J /!!/""  !v2$ 21!0.!. !!1 0 """B0"" !/2"W  "/21! / / ""!! !" / ! !? 0"     !"!!310"# "!!!0 0!/z//0"  1!  /Qf0!! / !2! Zb  "!//F/#!/ !!//  / !!d@!  //Q / !<"!CS33##"""1!21$43CS3B2"#CCB23C2!"!2344333S42 "3CR2""2 "!!"2;2C443C3RD4B2j" b23.SNAC %!"B !2 "A"03 313%"0Q" "12"#-4Op$ 3aRE!2S&!C22$1@332S'/Q4,D02ݾCD?1 S/70A.4 A+ Z"4a 771sD>&1R"/"4 %"RCO3$>3a#DD/61DD!%CR#2B$ Q%]25?"B 64@QS Q5/D2 C 3##S"#Q c#@ aT 5A#CO%"S$Q.3PIBCO#A3 R %!RR@ A B!2 C/5! C54Aa.%?#R2RA A-b3P#.3"244.$!#5!54"BB0!2$#ݿ3133!!Q #""#1" 2.!0!"$"!1$3!!  23$/"12 !""" /g1#2 !!!2B3!""24S34DCC#332 !!!44443C#P!"1"332"""""!"""21""!""""""2CCB2""gH2"!!""!!""###3321!"""!!!!"!"!333#""BB3#2""!""3#!#C3"!"#2##!"J2!#5$#33"232!!!"""!!"!""""$!"3334432"!!!!!!!!33C5432!""""""!"324$#!"#33"" !!!"!22!!"!"!~l!"""2!"!"#""!" !"!3#"""""23"!!!!!#!!! !"!!!""2!""""#"!"#22"!%3" !"!1!!"23"##2!!!!!"22""32! !"!!"#"!"  !!!!"#2"!"!!! !!"""!""2!!!!!"""!"!! AF!"!!!!!"!""!2"""!1!!!!"!!!"!!!"\Q!!!!!!!"!!!!"! VA  !""!!!"9D!!!!!!!RO!  !-9!!!! EF!!  ! $"Cw2dC""D$43@%C#d 2 SC.$U$%""DD!""S12d3a /cA56"C/c}251S!45!E/ 6!"SB513001νͭ&B3776/ !$3# R.T%7  CB4STD 7 $A 1RS4?$#a]2/42#C22! ͽ2CB?B!"  ο!A"D5CT"$C31D3B8a RR/%/4O$A!Q R5&R?D!"2aR3>DC_5!BQ 2-44R 5%"8CB=C?"1" AB4$.3130#"A22.#/"A22B">/101 1AZ3C/D1DA5"$2 ! /$!434R$C/D2##41"C2C2"!#2!#"3#21!21"#"#"!!"2"""!!"#2!""""#"SX !"#"2"!""!!!""!!"2"""""!!""#"""""7.!"!""""!!!"!!!!!!" "!!!"!""!!!""!!""`""!!"!!!"""""!!2"!""!!!!"!"2!!#!!!"!!2#""!!"""""2!!!""!"" !!""""!!""!"! !!!"!"!!!!"!"!""""!"!"!!! !!!!!!!!!"!#!"!!!!"""!!!!"!"!"!"!!""!"!!"!""""!!!!"!!!!!! !!!m^!!!!!!!!!   ab!!!!! ! !!!p!"!!!!!!~!!!!!!!!!!!15 !!!!!!8+!C2  !!  !   !!!PG!!! -5 !!!!!! !!   !  RZ!!"23C53D%"B35#3R$"32"! D"#a.72'C#"W3B2N/  $?3v32r "S12:#3 A QS5CCd3'"!&22͏߮ 2D6S%#BD04$23Cc2  5B ES#C4c#5D423%R !ܮ̽ͻݯ3$R $DDA#RC4"BQR  ݮR4##d3BBD5"2$$#2R SmT!BE$2$C RR5@$S63aCD02CͰ$1BD"aE5#QD  b%!rCܾ#3CD!Q-41b5/$AR C?$AR4?24 A3?4#ݾ"C4>155 A R/! 3C!AQ?$13.#A#24#1"3/!3121202 #"1!#"11# 11 #/ 2!21# 02 2"!00" "#/ "1#"#D!CB$C 3  C!4"3B!"2 "3#3"3"!""2"@#""22!"#"!"!""!"##!!"""""""!22!"!!!k!#""!2"1!"!!!!!!!"!!!!"!!!!!!!"!"!" !"!!!"v"!!!!"""!"!!""!!"!""!"!!!!!2"""!!!2""""!""!!"!"!!!#!!1"!!""!!""""!!"!""!"!!"!"1!!!!!"!"!!! ! p!!!"!!1!!!!!!B6"!!!!!!!!"JZ !!!"!!!!!!!!"!9C!"!!!!!!!""!!"!!!!"!!!!!!!!!!!!!!!!!*2!!!!  !!!!!!!!!!!!!!! 7M!!!!#"!!!! !!!!|!! ! iW!^]!3+zzJT/. !Ad "#O,c# -dc!"R$!߽p"R!&;0TD%R/4"" ?Q@aB5/d?C$ 7#62D1440#02?&0$>$3!#|Q$2ܾTB#"b$2.63 ͯ3BۿB#.2B"B##R1043/3B R S?%" b #q(hD3"s01%$1.ܾC#a!B 33 $33#"A $C$133" 4!4"$BB$!"b!E!/!3"/1A!2"?!Q?%% !3!C2?S""#b0.#1!!{R2!""B#"2"2"$C"& 2!!A.# 34$#"##""C  /230"!#31!!!!/1""#2A"!!!"#"!  # $1! " 40 /A#!"0/!3 !0/ #4""#!"!!\!  "/!/0!"/1!{""!1" / 2/  / V/! " !!!!/ 1!/1//!"3" 32!""""4!##"" $SC34#B2cB23!$4#!2B43D33CC!!"!"#33DB"!ܼ#32mH!#32!"#C" ""223ͽ#D2!!4DC3""!"34#24333!#"!#  !1/ ! hS3#" 232##D#!2##2!CB!"22! 7#CS3B"!"!!"#2!"#3B""!333D31!"#"!!3C#2!;+&""!#S42#3344"!CD3!"""22 ݾ"33D3CC""""2D33"53CB1@/"""3"# !ܾ#C3"#3#""332 #3!""3D3"#3!"9#4"""33#52 "#4C!2C43C3! ͽ2!43"CT"D342#!!""!!!"343#B3CCC3!"313DC!P3S3"#2##"3321#2!!!$43!#3#3344C" "#DC#3O( !""#$32"2"""2""" XE#33D#"#3"#3"!"#2332##!CB!!./  #33!!!#44"#!3B"!"#CB"!#3"#CD"2"#C4B2/""!"! ""!"""3" #3C521"! 33!3443""2"!$R3#2"#3C$##!"""333"!2"!"!!!2""""#DD2B2"5T#2!"!!"#3CB!2!3#3C4#""#""##32 33C3"!3C1!"2"2up!2#2!!!3C32!22!!#D32 "#!!!#3#$43"#32""3C#"!"22!!2"CC3!!#BCC3"!sc!!!!"!#!22""2"44CC#!#4"!"!#!!Q?"""!"#42"!22!#31!222! "32223322!"~|"3C"!"1!!"3!23""!"#2!"$$33"" ""#""!!!""!"""#"""332"2""!! !!!""2""!!!#3""2!"! 22!#333!""!"2""#!!"223C1#32!!!"3"2B3#"! !"!!!23!!"2!"!!352B""""3"!"!"ge//  /%D.U d17"<#142G2D26B!43'!A"2B"1&"4F#SD0Q3005C4C1421   @SD#As!3b$444#61!" ߽ݽ>U"@2Ra""1A%0 !34R5QG"T T?#@DB#$132?RC#B#9AC5AE! C c1B!C0Qο$3DT C D0 #6!UB0R!S3&$C2#b?%2mRQ 2 %14 FS 3C13%14A3.2B"A3"%5%"FR4$B3 5-2#?S#2&!2D34$/B!C4C! #C1CO3! " ""02BD 3/B?A1B"2"CA#"C#1A"!# !A!!%0 3"31$# """32 1 !AA ! /"/!#" B0vJ$ !## ! " 1?#"   "! "2!!C!ܽ333C3"24CCB3DC53C3!!"5#;$D4!#31!!5 !   1Hݾ###C3"3CB!" !#""#!"2!4S2 3B4#13 443TCC32"!"##CD4"""2""̼{0////!3CD321!"#2!ͽ"#22232!44"#D3 ͽ;e#B""!"!#43CD3C!#3#"!!4444#"#B!c*D1 "#445#23""33!!!"CCS4#2!""#DR2!!"31 "CD#C4#"!" n !/!   ! "2#21!"#4322C4!#433"!$#C4"!"CD2D3"!#3"2B2"3C32"#4D433C31 #223C!GRC4$23"!!$44#33C5#""#33 #! "CD22"2C43""""3CD2!34!"ݾ3C3 "!!Up"22!""#2"3!!!"!$###3C$4C2 24C2/$6CC4$""34#!2"!CCC"!"2!"43##3B32B1+="3"!"4#CD433"" "#3"2 "r#4322""32!4#223CCD" 44""!"44##22"3"#C32"!#33#""""!""3343!""""""34C534!#2!###!!"" !""$#CCB""3#2"33BCC2""2!2"!31""""B2=rͽ4#1!!""$323232##4#"!$#2!"{ICS4C2"!"!"""#""#42"2B22"c#433""!!#$3B2"232"""13D""b""""!""#""!1"!!!"##!""#""3SCC22!#2"3D22"!!!###"19=""243C22#2"!""3$#!"33"!"2 !"#" 22!"#22#44#"#4D32"33""44"232"! """!#$#CC23e3!!3#!232!""""""" !"o!222!""""2""2C5" ""2"!!!!"!"!!#"22222""2"#333"#3C#!"2!""222!33""!2ii!32!3C!!"""34#" !!"" ""}~!2#23B1!  "22""3#2"!!2D"22"!"#23#!!"!"""!"""!2"!"""233!"#"2!""""!///5"+FR!4#Q5Q2$5$43"DC3$#3D1%!1#cQ5!7!2%2D T2$C5455"2%#"34ݮݼ !%?R%S#ST1"22E'@T/t5!Bq 22!"#O"A"A5AEaE B'!b Q5! C&"3"C/53#Q6o#!7/B E!RD2T 362 #""32Q $"C%"DR& D%AB2ͱ#B 40D-3HE2"cQE0bD2D "Q.4Q30B42 C@R"ݾ5A$?351C0%2/4B41"C13f"4/#C40C2C?a C"B$"443A%"C#PC/BC R4"4 A 4"1&2 4#2 #3"2/" #@A2@#""2" 1"2!1".210"!0-! !.4Z!.4"?21"3" "1 # "/@/" !"!/"C$D!2!!3353A!3B"33!3C2!"!!^y#2""""!#24#23"!"!""!"#"!"2"""!!!"""!!!"!"!! !"!!!""!!"""""!!1$!#"1"""##"!"!!""2""""!!";#"""""333"!"!!2"""#!!""!!""2"R.#!!!""""#"" "2"""!"!!!"!"!!"""!!"!"!!NG!! !!!Z^!!!!"!!!" "!!"!"!"!"!!!#"""!" ,""""!!"!"""!!!!""!2"!!!!TU!!!!! !*!! !!!!!!!!! !!.+/:J!!"!!! !!"G6!!! +8!!!kV   kj !!}y00"33CCD3RB35#%233"1" 4@"1/! T1 4t!"!@A $.?b7>O3.?SER0!3E?S$O?{>2c $2c@4b2R&0!1 $-S#t3&B#1F"3U!"Rܿ!#BBb!CC3R.#3D#R$$ ͭ߾!S#B6B3D3E2B3$3Q2"#S#4"!ܽB#4RCR3RCCC$#B3B#2CC"2ݾͽJ%2 61 7T0 rS?S ܯAR C.RR#bCaS3D1D R RB B C/#0B/RQ#BR 2$"R155 R!CC@B/B!3BA1 $0 %DB"3"01?"/$1"A$#32314!3 3 3."/$!.31"20 3!#1 2/2/2A1$3$C$11$!/#0C/C4!4/$4#C"2A !!#!#0D!C0C1C1"#$!2" B4B41D142!33C$2 4B#1 !#"#2"#3"""/""21!#""!#"!!""#"""!""!!"!#""""!"!"!""1""!!""!""!!!!""2!"!!"XG!!!"!!!!!!!"!! ! !, "!!!"!!!!!!!!" !""!!!!!""!!"!!"!!!!!!!!"!!"!!"L7!!}! !! !! !!!3#!!!!!!!!!"!!4@!!"!!1.!mu PA Xn!!!!! !/+! !  }~p!  a] & {/?`R Qt Q.D!C4?D"2 C14D-Q#PS%1 s V1$S F!SQ/ #c2/$3"C?2/"B$C/1"AS !3D!'1!C.ܾ4B޿U*"`  Q"C2$!/B"3P4A.CT D# %2D" %Q/S3";#4%3SND1! #R15" #4450$32%2#03Qd%C143#4BQB12!ݿ[B"22 ".$C!C54 34C#33"31?"!."2"3### #2 2"C20ag2!11 Q "B!!11!. """!!20D "2!A#"  !"3!z ""4!!"0/2"1#5! /" "! """!""Rx2!1! !!A>!" !!1!"0" "# 4  0!"2  /# g[!!0!0 . !/ !! !  !u!   !!/    //ij     !|x  //LL""!!!""" ""#33D$353D#32""#"/ 9"!"!!"!!""#!"##243C4CD3CC53C5#3334#3""!!!" 3!e###3D3DD#43R33B333!"""""4533"2223!!|w"!!#""!23C4444CC3C3B"#"2"""34C4C3C344333#331""ͽe!"!"!!!"""333#""22"2"!!##"#43####3C34#CB22""23#323"!"3"2$#C33!07!"#242C#333"2##!!!#2#!"""""!!""""""#"!/!"2"#"!2!""#"2!~!22"#""""2#!!"#3###"""2###233#"!!!"""2"222233#"2#2!"3#3333#33C#3"22#""""#"2223"3#21""!""2##332$22"2##2!"!"!!")&{/ !!!"!"!!!"""$"#"""2233#33333323#33223##323##"33B22###222"(C"""""! ($!!!!" !xs"22###3233334#34#B4333C33B434#43333|M333322"""2! r!!"!!!!"""""""#"2"!""2"23222322""1"!1"!!!!!!!!!/c2.t 3Q#50# 2/"# "!M$ B,1S3=# Q1? "! #OS!5F!"RT'!3s0'2D 533?2Q3C 5&gQQS>%1BS?' 35&2 C/A"3DC"%2 c'0bG$BC-B/ #BR/%1RD!B%">"24 S$BrD!'2D! "B "4&05 E%BSE 4CC.6!$R514DR0DQ3S"@3 T/CaSA " S/ 55!4 5 #ABR>%1S5242A C/$0 2SQI$RS 52C4!2A3! 4$"B-2@2##21#1123 "3312"#02$2!1"/ "."!#A $!1# 3""2! !/1?"3?3 " 3$C1D2B#2"""!$#2#44#2R%CD"BD$"2#21!"""2"""21!!!!!./"!!""!"#""2##"!"2T|""""" "2"""3"""!!!! !!!!!"2"#33""323##32"!""!"!!!!!!""!""!!!!""""""!!#"!!!!"!""!!!!!!"2#"32#"3#"222!!"##  ! 2 "!! !!!!""!"""!! ""!"#!#"""22!""2""""C6!!" !K>!"!!!!!!!"!"!"\_!!"! |""""1!!"""""!!"!"!"!!!!} !!!!pa"! !!!!tx!!!!!"!"!""!!! !!!!! !!! !!!!""!! ""! !!  !!!!!! !!! ),!!!!!  !   !!! !!!!!#0wm wn CR4$35$33B22" ޾!""223#2#"" /e2FB"CC !S4!&30D #?0c#$t3c22cE&!#CP"13"32.!SABd!DR!#3F2R"!c!>D""cBD3 3b!"-weͿ0ݾ 32%C0޾3"SA175#2%4324DC1BD3A1CC2#D$zB"4E#T#"552##T23$DC2454""533"SC3$R2D3C#"A/3C1$4$4B45" ̾"2/3B! NE.B?R@%0 a6 SR/%5 ݿ#Q3Q CDB?C@5  33RD55!4B2 RC4/ 30%$2"RRR/R 540!@ B2B4/4$#B#2"#" !2A2/#" &_32!1##$#/2!"13A/3#0# 112"? "!1"""! 2.!2 #5!4"42#!3#"33!!#3"""2!"!3"!#""2!!!2""""2"2!!2"2""!!!"!""!#""!"#!""!""1 !!!"!s["!!!!"!!"""!!!82""!!!!!"""""!! "!"""!""""#"!""!""""2""!!"""""!!"!""2!2!!"!!"#""!2"!"!""2!!!#"!""!!"""!!"!"!"""'!!"!!!"!!!""!!!!1""!!!!!!!!!"!!!!!"! !!!"""""!!!D-!""!!!!"!!!!""!!"!!"!!"!"!!! !"!"!""!"!"q!!!!!"!!!GY!!!!!!!!!!!!!!!!!!>H!!"!!!!!!!"!xi! !!!!!U?!!!!t! ?;!!!![[! !!!!!!!!! !) !!ecx  )  D3S$3452321!  !2$#CCD3S3D$#4$#21133RBBC443CBB344Bs"!"@C" QVB/%"0% #-A7N 1e!sd!6a 3?!2$CCd!61A'ABB -."RC^$5?B%25#S.!B5. Ab"37C4"!T"213C!0ܬ##T04Cc3$#Ca!S!!!%/ݭFb@B5 R4.1RC?5ACE/ #RR.C3230CB61D7/3a bC01C%94Q b/#A C5 #Q R/%? 2'#3r& $"D31"3@SD 0SD/4@RC1330"A CC1RD3Q44@33!3 BO$2C.4"AB/2$. 13#!!2HV#"A2/"#3 222 "#""A/!1"."02 #."?@#!21!!"1 1! BC142$C3 1"!"2D 42$C 4/"!!  #2!313B ##!"!#""##!!#"!""#"""#"##!""3""2""2/,""""#""""2!"!"1!"3""2!"! !1""""""!!!"2"!"!!!2!"1!!!!!!!!!!"!"!!!!! "!!!!!"!!""!!"!!"!"! !"!!"!""!!!""#""!!!""!""!!""""!!!"!""!!!"!!!!"""!"!!0"!"!!!!!!!"!""!!""!"!! *'!!! ! !!!!" !!!jn!!!!!!!!!!"!!!!"."!!!"!!!"!"!!!!! !!!  3!!!! -/!! !!!OW!!!!!!!!! ! !   !!!!{!!!! ! !]J!!!$&!! ! ! !$#vynw  !"AE !# ,b")c+Fb#@0!Aa 1' Ͱ$4?67/1c.R t U!F1l>B32#F3$13!"!"Q2BP05 #CDR%" D! U "b "D0%4#!B3#3R"53C341B5"52CCD10c1/S""#$2CͰ%B4#C2AC#"1B#}F$# "4 23!3#C#BC24"C"3#C21"2"A0/$"13#=B"4 23!C333222$ 3 2#2#22"#! #"$B1!2 1 !1!1" " 1"!"10"?!2 #!1"2 1" ! "0/ 01!!  ! ?//000 "#!!!!"" !! ! !!"""/"## 432"3B!43!#!!#!321"4!"#"#""32"!" "!2$4!33!#2!"2 """:22 #2 "4" "!!!!21 "2"""!2!!f{"!#!"""!!!!!"! dO!!!!!!Md!! !!!! $!!6@! !!!!sv ! !2&^Sv !k`!5H*)Z]KG%hkzSCCC5#43CC43D#BBB34"3!!!#6"16?P'0R50A?53S63R!D0@%AϾ$s #$!CG"D#c"$AR!A$4$2DA"#   3S/?RO /$B/C" CC43%D3D4C$b"R$22mE!42R0CB!ܯ2 # #BO#D S"S-2 $aT15!R 5!D0C14@"0C0"S.#D45Q61515? 6/ B/ 4!C"C S$4$C.%3$BDBD05 5CB#"C/"4#C.#T#34A%!6 EC.޿44ݿ#22/323$"2$24#$0$!B>C3!/B"AB`2/23"3 3B$00%43/3."2/"322"A#"#1 @ #!$?#$ 3A0.-#C%2$2!0"/# C4!$D!#S$4#41!!131S2D1S!#R0 "2!2"$24B42CA#/""!23 3B #B42!g#3"#2!#2!"" ""!""""!!eh!!""!!! !!"""!"""!!49!"!!!!!"!!!!"""!"! "! "!!!!!!"""!!!!!!!!1!!!"!!!!!!!!"!"!!_s!!!!!!!" !!"!!!!!?B!!! !"!! !!!*!!!!!!!!!"7 !!!!}!!!!!!!!!!"! !!!! J;! !!!!!!!!! !!F9! !k~!   !*#!!  !!9<!!34zui5F!\[.!"#2C4BR3CCCBR#4$$"B# دR #@1 54E121"$5 N/->A13&/rAEf{a5 # @N? ."Q#& a!#U!@$!D0C/5.RR!b15a/5>0b4Q0A/2 3;36"A"!!!!/"2S#C@!R$A!!2#C5%2C3443"43T##"c0c&1c>2.$B!35"E %$E1T/$3 T!C& SܾQ2D$B$3D 5CB?S$Qb 4S@r241C 2444 4@C"5C%CB2 A?3 "C?U$1DQ 5%4!R 3B@4 "B%BA $0#."30A2 """!!1.296 #"3!A#2"1 1"1>!1# 2!@# !/ .!1"2 #S 523 !ݽ"30$44AS!#A !3"#2!$##!""##!!"!""!!!"!!! !!!!$!"!!"!js"!"!!!!""!!!!!!""1"!"!!!"2!"!!!""!!!""!!""!!!"!#"""!!"""!""!"!"!!!""""!!"!!"!!!!!"!!"!!!!"!!!!!"!*!!!! !!"!!"!!!!!"!!!!!!! !!!!!@`!"!!"!"!"x!!!!!!!!bi!!!!!#!9;! !!!!!!!!!!!!!! !P\!!!  x !ds !I>!    ]\) !x! ||  "#2BC4444444%#3#2"! "2BBCBa1S/w!"1" 0ܿݰ/B'!B0T"/61C'1b)c%,3$1BSBC244%!3513D/..0R!"!3$C$#5 !4.BD/Q ." A""B23 !B$" !/# 1 2"11"#2!1#!22$2"!3!>%!."BC#Q 6!5!5D/RC333C3B#32Q 32$? 4!B?4$QA2131"!##"#!@"A20C C$3"#311!"#/"!T!D!#C!C!2/"1 2#1#24B4241C02"!"2333B41#1"/"!"""#"2 """!""2 ""!! # ! !!!! q ,0holotz-castle-1.3.14-src/res/sound/HCEndLevel.wav0000644000175000001440000007053211177007633020537 0ustar jacobusersRIFFRqWAVEfmt 2"V/- @0factUdataqPPPPPPPP 0-P/!4$1"C!A4 c/F5!524C30#1#A$ 5#>0 "" PQbE5/CA$""2#!O@BB4  . ZBbD 5.& !33!.. !101Ab$D $PAb6 %#_O0 2!23 x@Rb 4$?%?R5B - ?0  3 /0A CB,%/%!QC# 1->/ |? " A-/12C 4#?1@Q!"/ .@2 3 #.?"12 B$ !@0 &J/ !#2".#!0PB$> //0!22"/AA"@ !!//! !2// "#"!!/! > 1""0!!0! ?x ""    !!@""J/" 0!!/1!  /<H/01./" ?  ! !01" ! ""//!1" ! #"""!6  0"## / !!. !1: ! ///  36!3 "Ϳa##1"b"1= !>!-$D"416#/13 1/O>5@ 4$ %Cp1= 1?!/!,RP/B !.EQ04 P$>"T >2O-3/ R $.B _&A? "Q>R5a?B=O=1 @!# 1 Q3=""2 > #@@3# "0A 1  1@"/21%21/." !/ !0 . `x""1.!"/ /!"?>!>.3!/ /"1?". 1 > "0.  /"/h/! !"2!   >"2 >\!0.1!!/?3-sF E1!A1%,!c$&O`/!"$-=?BOQr 1  A"B4  N0O  "&>?@Q%" +. M"#?#5-"#?>B0"14.. !.  >@!""   2"? /""\#.!0#  # 2 !/ 01/z.. ! 0"  .0!!! . /"/# / 2"//:/0!/ 1//11$ ""?!?"/?"1" >0 /.R/ ./!!. O0"!Jr./ "1 !/  ///X/ 2"1/ "/!1 /./ "F. 1 > ."!" /"C "5/ "b02-DS631".4!4MXrSAPA 4D#"ra $a 1R#bS 4a313! $"R4x A1 $B 03$P 1BQ &00B"3A"!"B%26!  BA$2A4A4$3@3 //3/1D1E"33?4"3.# S?S1@26$2/#6/C3Ob.CB  3/S2D/R2#3 !B- C#C2 !#A#Q "3a2 !A# 2!,"3R1"11 #!!Q! !3a" 0$"4B$##0"#2%" 30#@ $2%!0!#O 3!"/%$#03"#"/$C2.#B 3 "!H2.B 4##C B!! !3 B3/C$# 2!43"# \2"2CA"!1"!3B31 3001/2#"R3!A ?!2 BP$"!. 2233!2#! #402A/2/#!11A/"Bj "21 #0A/%3#!$A!""22#!"!""/ !BOB1 3T122320 "02"/!5$!.!/ !2"D@$1!0 31:$BCC!C@4QC3.#6!Q2$ 45"b1>"T ϯ"Q 02. D# CbG 2.! ?Ba!Ccrs"6#!3ABc!S.ݯ#0 %!5AQ@CA,%! C'5B C"A"#CO0AF.%02OB"TFCb-' 311R q"CbE! #02"RD2 r S/ܽ##ArRR22$25$"a5@Q#`# 33$3O7 "B/A!34!3/T "6$@ 10A03"C.T! S-$10A2RD2b$N 222?%#R.$ 4/A-%0" CARB0 4D"45.4A4/3ͱ0$D#4C5!C/"?35$C/E4/#" B42#SCB4&# 13/4B$43BB.A# 3E#Q %! 3A#"3b5#R/0!!4 6"5/3# 33BD!D330"BO%3D!"3 2ݾ".2Q-EB44."!!-!25 4B.C""2"22 46BB3. #$"#%#A#.1 32B.R0CB5A!/13"!ZH5"54?SB$1D042"S!4S# #1 33 e4BTO 3B dAF!C!20%/2$!&C/C3Bܾ%!#0R"bB -"s.7RCR0 B#DE@C/$Q @ !5&#PdrB!/ /c.b" %/653BD#&4F C@ ." G1d1b1"!05&(^4.5"R/&A#PAT 372//C-7RCAC/$/!ݟU 61 s?E? 60c C!0b/S %"2>$.D.#B<1>#C6"S61$.1?33d1C #̯!F!"S&B  /F<C2rQ "Q1COb/'! /BD'1 D @/5EA5#Q ./44Q5/1 2 %0 b.0"/C,71 S?1 "0S?&2E$@R/72r>Q /D.1S>$2#2.C/'! FB/!.E%AD/0!"!C?61UQ"?R.&2c #"R/%@T 22"? 52T2ݿAD?%3F3 S.D`C0R޿!/4>%BT/3$/ ?S0U2" ?7Q6A31 S%AUA >!D2U2"R AT>Q "> /S2@Q@ D/4Rb=2>! 0D/2c Q-  C?#DOB2>ݞ#5Bc?C/R/$h8S?1 !%$aR>BE26 B"!@2?&2c/C >"R-&3c 4 "R8b5 R"0C?&3b0Q/0C?3S Q !>"#5BE?4>.?AB Bܮ!$"#T#%6 $#RA!A4CR, 261%R/&A %!R1%%33##F1"T$R$,30%34?"D2"BO#DB"-3c#1R//$6%$"2 \ 4  "#d D43B0312"!"2"1= 3B #B#!D4 $5 /E342  2 x  $5"12D!?/!3303! $!3/30&#RA2C22 2Q3"#RO B5b1  C2E21BA3D "144#1/B"%/ .#C"C޽4D33$" 2!3BR"!!241>"A!41 4353 &22S2D1#C0ޮ#b"$!/4320 "/!4#" 2$##A|l1"D!B3/!3R15#A $C1%$"b!R  1S"4!CQ#1"%"0BACBAA!2#3Q25"C3Q? ! 1C##?!4"$!#5 B@.216!3B "252$# 23C"3" !2B"3!!"#3l3! ""$%.  "5!!C1!"CA160!D##/ޯ""44"!/0B#A2R3#3B3#"!"#A/ 3"3A !$#BB0޿$$2!2C !1a "Q!"R#%B!%S5ޭ "43. #3%5-ή#$DCCD"> #3d4$21 D3T!1;R!B.C44%ݽ#%5BQ 155D 2R442#..XA2D !3S4%545B"3 /̽4T3&""0b0B#!1##33"Cc#"0!Da'lx4!"!ݮ$S#S3R̿#$$2#B!3$#B"3D&"A3S71#Q! ޾?ASBC4#2$4"B" 3%51A!ο54C4C"?ܽ#U4"12ͽDBR"#C!444"0#T34# BE5"332A B#c5"Bͭ#DBD" ͮ $D5 5$$"ݯ#6%#"!25E#"޽CE! T&RB"!CS3D ݾ2cB2Q ܿCT2D!! $R35"/%#$# 22c#%QCD#A1;ݮ#E3BR  SA411BR3%#DC$$ݾ߮$$S4#3"%43D"! ;!443R!"E!2QQ#E1BܾC5C4ݽ"S5"B0!#5#41 !2$C#C0B6##4޾!5B3R132BR#B1B!R@3"##C$3!#2SB#R!#;!"D4$#B2C$32"A (!"B2?!5"23 ݿ0##B400/##"C!A1  ##!323T* 2B"""2"!"1"!3"21""#2"""1 0!A1" 1"!!   / !" "/"!//! ! !  ! ! /"#"!"#2!!#$4C3B233433#"22!!#333#"#2333!!2##2"!!!"! $$332!#3C#! "#!8"2"2#"2!2BC42!""#""!!"34"1!2"1"!"!""#3C22"""#""2"! ""2"2#!!""#""!#"""!2"!""! !!"!!!b!! """!1""nt!!!!!"!!!"!"!PJ ! !!!!!88 2!!hh\\&tnDV!   tht zn DD&,JP\V\VDDP b!ͮU"".TB3CuU""%?qR#BSDAC@..qc@51ݰ5"R$t# C F "14?#.3/ݾ/"D3OF!25#R g $?d 3+.B"$%/R 7 D@" 2d!rDr#"#Au #S$22@5!bBPSQC"=#1 t@Q/1 SS& '#!@2 ' A1T R%'ݰ3! /aA&RD?24'$#rB@1RD " /41EG2S>S. B  D1 $Rܾ7!!C>5DC ."  B RJ 5BD?2-7/ݾAQ3BCR"$ #2 1OA 61CC /!S3 SA11.C"3$ C1!RD?0411/D/4".v$3T 4"1"!" !#R3@ !?  !# /#""1B.0 >1!/. !"/ !!!"./31 B /"2!/:!!#3!#@!" !! !!!^/0/!! 0.0!0/ 2!    !/!"/ //67/$ 'c C 0۠31 %1=$066j2N;`bB/=5#R#$!"5$sBsBBa޼BSDC"/"B!2?#47QB#P" B REb3 S2. !s1A#R#-%/&"Q5A34c0#"s5lj5OA0C'#c@5 AS.G06B!5!Q#?CP5Q"bQ/A1DC!AoBD/A#2.4,R/$A" a!5 !Q!.C1Q!$a#@%C5322/"A 64&"FAs $_ Ss sN&/ / DF%23.$2! 72R>%!0R.C@E'V1 .707B.%"0?" 405A42"3C4/1!/3OD/Π!1 D.6?&"t\!A,B/SO32"R1 #S&#B,2Sc3/0" D.a/2$!3@00 # %B" !#1 #C 5#.!1 #53"! "Q.2 / R.56"!!R R?40" " #?$" 1""" !!10!" "#.   /"/"  ! !4 2!!?22"!!"R010$" !"13"! 2?A2! !!0\! @/""!   :"/$#!"/1///  !"". !! !!/ / !!/!!/! ""!.! -  !j /  !" R#"33"2 "!#43B4442"3!#3#C2"2"!"!"!!"#3!"""2!"#!#""!! 3332# $2#2"""!22"#" !32 "!!"!!! !2!"!! """#!// s0B B@༾3%5!O1R!37A34O%RSb"/d !Q3 0!AG3% "%/"/B54 q R $6 %0<SB?%3UC B0r#BAS #23#U2CP!."% #1Q7VR$12/!"AC?a$ DCb%5 CA40"ﺽ!5' 31'q $ 6Q%!$"A'JB ݊!&12/6B=ba$@ $bt03>b%E` 1!.BFCB4..D10C?w%A"B1E" a2SCo ٯ3!4,v1/ ٯ #GA!Q ޾cR"5316( F2B<23qR1 "qsB C 11%/t?5/  RA24D1!3cOSb/lݟ 7!U0 ?޾!GBD/͠% cS-S33SN1B CC2C4"10B 7!!а".3D1 ###3Q"$ 4A##!32!?.51!01"C/Q0 !3"30Q"P 21 2/2!"? !0D 3 !102H""!"/#"! ! C!3"!!12!!/! !#(!!1! .11"1" 3/!12/ "V\!!  11 /1/ !~*" //!!#. d1 .!! !? //  /!!/!/ tD //./"34#B3!!!"!!!!""!4C3"32!!! #3""RF"1!""443"3!! 34#232#"!"#"!!"2BB""""!!!#2!1!!!"22#!"""!!! !"!!1!""""!!!2""#!!!"(" "! !"#!!""!""!! "!2!n! "! "!!"! !!!!!!!!#"!!!!"!!"" !!""2""!!! """  """#!! 2,!!!""DV!!"!!! !D>     &,.. bb!!tt 22&DJ  zzJJhb&&82PPPJt$$#BBB3C4B43CC5#43R3C443CC443R3C5#443R4#C43R3443525"3C3S$3C5$#44$2R#BB4$$#BC4443RAB2C3R3C5#43R3C5#443RB3CC443C:Pholotz-castle-1.3.14-src/res/sound/HCMainTitle_UltraSlow.wav0000644000175000001440000226653211177007633022754 0ustar jacobusersRIFFRm WAVEfmt 2"V/- @0fact~datam 88::(*..664433333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333332""""""""((,,33333333333333333333333333333333333333333333333333333333333333333333333333333333433343C4333333333333333C43C43C43333333343<:::&&&&33333332""#3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333300,,33333333""#333"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$$,*..(("!#""53C2""4D4C"0!2# 1""""#!!33""#!""0!1!! 1/H###" "###1033A#2!2C2!2 /#2nT/ / / !  10 ! "32!#1B3b"B$!1B 2"2!"2 #12#! "" !! !!!! "! !!    !3433"#3#"3#3"!"2#! """"!!!!,!!!!"""22!LF2""333!"#43##333!$34"!#23"!#3#"!##3""#32"#3C4"!#3333!3D433!"4CCC" 3D44#"CSB323CR3"45 " /  l#CC4"#33233#!#33"34"""34#"#432"#44#2F33""##3#""2"!!!!!"!!!"!!""! !!!!>B!!!!!#"""""!"#"!!""""!!!!!!"B>"!"##2"#33"!##22! ##2""!!!!!""!!""#"1!!"2"""""z @HfT6:24&$TTTR""|rJ<"\\TT`f\TF>LLhj JHFBzv "><hb^`""333!#43(!!!!"""""""! 22"33!!3#!442 #4#$( !!  ! !2!"""" ! "22"##~4$#B3!44""44#R# BQ"#B13D!/"33"33Q "CCA4$"BCCCD"/B5#!ݾ464B13CR$5D#A3CB1$$# 3C2 $$#$2 #h42"33"#B2 34"#3!"B3 3"2B!BA ##1/321#" 231"##!"##"0 2"!"2! ""#!!!2/!" "!"B4CC"ݽ3323B""232"#3!"#" "3" "2"!2"!!2",!! "4F!!!!!!""#"!##2!"#3" #33!""!" !"""!##2#442!3C4"443""CC2!#"!21!"3##3"#4C#3CB1443!"CC2#""#!!#33    /   $C2"33B2#C3""2!!!!"!!!&(VP,2!!!!!!"!"!!!"!!!"""!!!!!!""zd! !!!!!!"!!"!!!!"!!!!!"!!"!!0.! TX!!!!!!6(!!!!!!!!48DNRN !!6,!!!::!!!:P!""""""!!!!6.jfV\ft (&LPDB8<0&*"DF 44ZTrr2<!""2!2"#""3B!"C3!432d  !!!   !!! "!!  1! " /~" A213!24" "#2 3"!2B1#41!$42 $43 #D3"2D4#D3Aݽ4B@,n%#C54$1$42D43$D" 4D# 3T"0 %%!0ͽ46#$53ܾBa CR#p#D5!53C 45" #$204$$"124331#4"#R2 #CB!%"0/#44!!d24#2B2#42"4" "4# 32!2!!#3#020 "$!#1#" !#"1 "!"!!!! !!! !  ^x2B2!"22!22!""!@8px!! !!!!""2!""""2""""!"! !!" 2!#B3#C2!2C3!#C31#2!#2!""#"22#431#432#4424C2 ##1#3"""!;32!#3!442 CD#!3D#"4C31#22""!"#"!#4#$421#3!#44"## !!"#"""!!""JL,"!!"!!!!!!!!2.!""!"""2"!!!"#""!!""""Rz!!!!"#"#"!""!"!""""!!!"""""""!"!!!!!"""""!BBFJ!!!!!!!!$!"!!!!!"!!!!!!!!!""!!!!!!Z\^^2>\X!!!!*8!!*,!!!!!!!!!!!!!!!!!!!!!!!ztDDD4443CCCC433333332"""""!!!!!j^!! .>BZPz|vxP\B:$$2(^bFJpfPThj @B !!!! !" 0F!2!/!!"!0!/"!!!1!20#"/ 2#/ "C322A`##1"420"34!RC"/ #CR1CD34R"/2RB3C2ξ3C"#CB$$#^5"@.4C4$42#D323S4 R4! #S32ܾ5$"/ 4412RA"ݾ43Q3S"421#4$2BA331"BA0#32$"1#33"21 3#0/"2#1A2"2$!Ad3""#"#"!2""""!1!! !"!!""!!CD#3DC" 3D3"3C2 331#!"!"!!"!"!!! !fTdJ!!"2"##!!22##""#""!#"22!"22#31>Z#4#1#3#3C#22!#"#21!"3" #3"3B"4C4!43335#3CB"#3232!""#!32!32!443!#C424C4!"4C3!32"   /  !#"!#32!"#2""33"""XJ!!!"""""""""""""""""""""""""!!tb!!!!!!!"!!!!8>""!""!"!"!!!!!!!X`!xvfbhV!"!!!!!!!"!!!!!"""!!!""!!!!"!,D!!"""!!!!"!!!!!!!!!"z~@:z~&:! !!!!!!!:@!rt!!|n!! B<!!!!!:: DJ`T!hl!NZd^>: >6",(xz<@Z\"#"! 43C2"&! /!"!"!  " "1!!/:V  !#! !""2"#!1!13"!22!"1!/"3#! !" !!"!!!~!"!""  !!"#"/!>45#4#"ͽ34CC3""44433"3CC421"34422!##C32##32!!"""Zz"!!" 6B!!"!!"2"2"""###! """!""!$6"!!"#""33#2"3322!"33CB2 #34$"!!34$"!!3CCC3bX !! L1#44C42134CCC""#332!##"!"#3"#433"4422#34234322B32!2332"!"#33#""###2"""!!"!xf!""#"!!""#!!"!! """"!""""""""!!zz!""!!"!!!"""!!"##""!"!!""!"3#3"!"#233"!!#"2"2""!!!""!!!!!"""!!2""!!H` """"""""""""""""""""""^T!V^"""""""""""""""""""""""""!vj!&""""""""""""""""""""""""""""!^Z""""""""""""""""""""""""""""!42PJ(&3333333333333333332""""""""""""""!>D^d2233333333333333333332""""""""""""! rt04nr668<$40>@^`88 !!2" 11"2" #20/B2 !4"""1"!2 ""1!3! 2"!/24$"1!/2! D#$!30""  2R# "2A"#CB@$32/2C"?"B44"25#2 ޾3CB0ݾ5#22D#3#R2143R!B4#ο24#1#B"$$2!3BR#CA0"3B2 "3B##B4 34"!33# 3A2#!23!3"" "" "!1 /!!""!! /!!! !!!#33!#3##32 !23""#3!"22"""""!!!6T""##!###!##3!"3##" "3"""!##""4#""42244B1"4CB"3CC"#DB3"422ͽ$3"ͽ33!ݽ#33 4CB"533!3SCB!!! !.  /! !23D44!#C4"#2"2#!!"""2"22"432"#4#2 "33"^h##2!"! ""22!"!!!"Vlnn*4!!!!!!"!!!!"p!!"""!!!"!!!!!"!!!::!!!!!"!!!2!f^zx&&,2!!!!!z!NL((pv,<!!.:(.!! " """""""""&&ZV<4""t.2LV@N(.<<jf00xx:8dlZf!"2!!##"$422"/"$321 ##2!BQ! ޾##1""431""1 3#023!""2 t#4 #2"!3B"1!23!222 "#3! !A2 "2 #R2!122# ξxR45##CC24#!$CC! 3C30D4"4D$%35 %$31"CR2﾿6#"ݾ3D2At4$"02RA0433CR"/$5" 2R216"44#"C41!3C3!2B4#$#!,!3B2"2$!!##!/"!! "!32!"!1 "!!/z" !B2""""""!"!!!!"""233!#CC3 ~    !! ! / !/!!! ! / 22"2""133"3C#$4R31 "CD32 3D4#!"CC3 """"#"!#3C##3C#!34#"333!"d!!""""!!"!!"!X\ (BP!!!!!!! !!"!!!r!!B: :<XH!!!!!!"!!!"!xz!!!!"!!!"!BNjjPVtx!!!!!!!!!!!!!!!P<!zz!!l02TVv|!!|j!!!th!D<dj>B8,VV`dfj(0 ""&04 !" 1" !#"0!2""2B3!0#33"$2B"QB3b5#" 2$#""B"  1"A!3#33#2#! #C!##!32@ !B3" 01!"3" !"24"4%! #2A"3CR!43`2#2!3C"23BA "D3B2$C41#D42"޿#CD"!34332CC"23!2216#3!3$3C$#BB"33"#"B123A0AB1 !222#3"10F"1# !"  1!  "/"332 "33"""1 """!!""!<0<L!"!""""""2!""*N   ! !!  ! /!!! ! !  Ln44B"#CD#"34#!#43B!#3!""!22!!!""##!#"""#3"""2"#"!""!!!!"! ~~!!!!!!"!"!!!"!"!""!@\!"!!""""!"!""!FN"!"""!!!!"!!!2("""#3333C444CCTR!0@!!!! :8nl!*!l!!!!!!>@!!ZZ!!!!!v!DD""""""""""""""""""""""""""v~z \Z"h^h^VVz$hnHD"rr*,!!  ""#"!"12""22"C30/H#0!!"1!1!""!!/ 23!3##32!BC!/ !B#LBC2""31 " "!!"" !!JV"AA 232232##"#!0""#"! L"1!!!! !!  "$D3C#34#2ͽ#332"#3B#"22#!2##"!2"! !!!!"!"""22"333""23! "43313422#3B2""C433343#$$#2!33B3""3#2!#3422#33#ͽ"44C422CD432`    / ! /  ,"4$#"!24#"#332"!22#! ""2""!"2"!"!!!!PF!!!!!!! (!"!!"!"222""2"!!2"2!""!!p!""""""2"!"#221 ""2"!"2321!ZN"""!!!"!!"###"!#""F0!"2""!!$& !!!!ff! :6"*PHBFptx.2FH  xlxZRttRNjd*0rr "lj|~""""""""""""""""""""""""""""""""""""""""""""!#3 ۼ54!TCR##"5% 2S4!.޾3F#"CSA!%CB"E4#͞ RC#;6#13CBB%5"42A/"S32$R3!ͮC325B!#3Q25#1 2D# 232!2BB1C$!#D#1#D4!BC3!Z#S5#D%4BQ!D5##%$"!55"!;4D2 3DB1;$CC!BR2#C4!35"0R1#3B0#R#CD"C44%!4B#޾32!$4"24##4#3"""A!!3" "#!!! !!"! !!.!   2!3""2!"2"""!"!!,"!!!"!"#""3233!"4#""33"#!"#2!#""213B1#4214CB!$5323D3"53B "431ݽ"CB 3! /!/  000!! 0!!d   !  / !  0 hb3C4!"3C3!43""""!""22"3"3432333""#32:22!!!!!"""""62!!!!!$!!!! ~|!"!!!""""!!!"!!!!!!!!""!"!!,!"!!"!!!!>F!!"!!!!!!xb!! !!!!!!""!!!!\T|XX""""""`b!!"!!!!fT!!!!!!! !@NTR!!!!!!!! 0(!!!!!!!!!!!!!!22!P^ !!J@22b\!JB ~~z&&z 22NJz! DB"1B02S5!ͽ"SSEC# Cc2?64# DD3"%6$3cC"TC#ܼSD# ܾE$"53R RB3DB!"C4";54#ݾ#CQ?%#B!C5!3BA 3b35#%$1ݿ2bB 3S4 -E#""6#"ή"D4"3E"0$531ͮhXR02T2Bͮ2T32SCAή62A/SCAD42 3S#$42!2D2!#S31 #4C!2CD5$>4B2!4B23C"$#2##32$#!3# 2#"#"!!11"!"2522#SC"CC243B#3222"#1 "1 "2 ""!""!"!!!!,/!!!""!"222"3#""#2!"!"#!!!""3" 33D33#D4"/"CS##DC33D" !!!!!!!!"!! "!!0 !!n!! !! !!  !0  ! !!JA$53""D424C3232"22""!22 #21C42 3B3343!#C3!*"1 "2!!!"!""22"#"!!#"!2"!!! !!!!"!!^H!!"!"""""!!!"""!!!!!"""""!!"""2""!!"#""!!!""!!&"""!"""2#!!"""""!""!"!!!""!!!!!88 !!!!x!!"!!!&@!!"!!!JH$48!!"!!!!!" !!*6jj 2!!!!!!!!!"!!!!!!!!!8F" 8> ! !!pp!0:!t!." BDLL.640RTvvlb*6lhJF20!3""B"C4!D42ܽD6"ͽED$#cD;542"ݾ5D4" 2c$!5#D32ͽSR2ݾ!3CC"%4$ͽS643"3T3034B!DA1441>232!BC##42%#3 $6"C4#ݿ$D3";3R21ν"CC2 #DB2ݽ3C5%43#54"53R"534 $&v!45"!$4102D2"2B2BB23B? 2B2#B1"BB!$"22B"3"t2212"!" " ! /!/ tR "2"!!!!"""^B"""!"3"#"!#"!"""! """!"3"33!#C#!#4C2!h  ! !"!!!" nJ ! /! ! 1!  !! 1   ""!1!//!   6`#3"#3"3CC"#B33B2 "33!""""2"!"!"!!"V,2""!#"!""!!!26""&(!!zj!!! !!!""!"!!!!!!!!"""!!""2""!""""!!!!!!"!"!""2""!!!!"!!!!!f^""!!""!!|bX!!!!!!!""!>H!""!!"!"!!"!P@!!!!"!pn*8!!:8!!!!! ^l!!!!!!!!!!"!!! !RRx|!l^!!!!frnj@@  FV"""""""""""" ~tpBDlbR\  RT86vn22 BB"122BA1!#33#!$3C3 $5"A  f4C$"#$"12#43!!2ͽ""2#" "2"!#4##3$""6#32/"#"!#$!0"/121! !  //  !!  !22222" #323"!"2#! 2#!"""!tv"!!"""#""!"""2""2"8(###"!"#33"!"4$32!#4421#CCB2#CD#2#44B3"#543Bh@    //! ,  /!   !  ! /  /#"23""#"1!"322"3#"!""""""!"!!!!!!!&&!0.!!!"!!! "#"ZT###22!""322!""#"!!"!!!! ""#@Z""!""!!23#""""##"!!"233#"""23#" ".V""#"""3322"""!!!"!!"!RT~v!!!!!!!!Pb::RJ" @D" !"11$%1?SC2"ݽU3C4E##$S4ݭ!SD2?CB"ECR! E$#.ܽ%6"1ο#45#!!SR4R"ͽ43R!.;Cb"ͮ4BA0"RQ0#330%#4$""! $$#1/ 3$2D" !2#35"!3B122#$3!"##3!"2B 12A!"A" 2"!/#"!! ! " ! !$44!34"3B2"32"222" ""!!"!"!""!"2"3"!"""!!22!222"#!"33#2!432!/  " !! !!!! 0!h!"/! 10"! !  !! "/!" !1!!  !! !~$3B#CB!#D4##5#2"DC3!D44!$4B!#44" "33!#32#" "#3"##" "3#!"#2""""2! dR !!|!!!!"!2!!!!!!!""!"!!""!!!!""!!""2"""""""""""!!!!!""!"!!!"!!"!!!!!8:2,x!! !!!!!!!!\h(*""""""""""""""""""""28!!!!!!!"!"pb!!!~p&("""""ZN!!!!!2D!! *("""""""""""""""""""""""""^^Tbfh!!(0!PN664:HJ^Zlh.*04 8:zZXNJ"  4D3 4T!"DD"Sb1!Cr3! Sb"!3T42 #S4B# ̽T5#14E$%4" "DC4!#D3An#$#!ͮ3R"!#R3#2B3 !DBA##11$2"4" "2!!##330.2"B"/2#!!21#!2" ""1#! l!!!! !!!!!!!!"""""!"#22"!22"N332$3313C3!443"$323C"3B1#2!#C3!3C3!"DC3!l/  "/!!!!  !1! !"! 1!! !"!!!/  !! !!!0 /"!0:z##2 "3""""""!"#B"#33"3C32"4331332 ##!!! !!! 4>!!lf!!"!"!!!^L!!!!!!!fT!!!!!!!!"""""""""33333333333333332"""""""! JR!!|!!!!!""!!!L8!!!!nn"""""""""""""""""""""""  !!!!!|!!!!!R>!t""""""""""""""""""""",2V`TT," 42""""""""""""$$<J!!! !`\&"||>6 z!HTPN ~|,68FFN<>fd4640xz "DC"3B3!! "4###Cb"!"#D#Q3!BR3$"SD"ή43#!A""23#"2!02#""#"3"4 "3!"#3!"4"!1"$!!!"/ #45#"!3CR2!3S3245##3SC203321 3C3234"!#""!P@"""!!""!!!!!!!"J\""""!!"""!#"""1"!3333""334""33C32! /!! <N " !!/! !0 ! @R !    !/" !#3331#4C4313CCC3!"C5322!3CR3334#""##2!#"#""#"""#""!""22""""2!!!PD!!!!!!!!!!"!!""!""!!##22"2""!!":!""""!!23B3"!#3B33"!"#3333!"##"2"!##2""2"""3332!#23"\:#"1!""!!|~!!!!"&!!!4<!!!H@ NRVV&$ h\XX\bvx**3""""""""""@>H@RTnz(&(xvtx/ #2 #T"%31Cs41DC#ͼ!55'% 5%ξ4#"2s42%#F41 4S#4SA/543!XS#/;#D3Aܾ"CB1ݿ$C3 "4#0"BB3$!3!2##2#3$122 3Al"#"" 21##!011!#!"#!v"2"22!"""! !!!!!!! """"2!"""3" Bf"32!32"3B!#2!#21#B1#323C3!3CB!3S32$521S41DC2!0/ 1"!1! 2""!"!"!! l\  !!"2!" !"""!!!"!1!!#1!!D1 # !! 1"! !!1""/! !!!! !!BT"!$424" #2""#3"#B23CB!3D2"3421#4#""!*"!"1 "##!""!!"!*4"""""""""""#33..nr6$!!!!!!!!!"!!!!"!!"!!z!!!!!!!"!!!!"":@!!!!!"""!!!""!"!!"!"""""!!!"!""!"""!!!!#"!!!""""!!!!!!!!!!\h!:,!!!!!"!!!!!"!"!!!!!!!HB:B!!!!!<.!!!!24!!!!!!!!!!!!!!!NF^d!!*bh60bTNTPPjlp|NLRZPR($/1052?$0$D# &6"!DBBEBB/4621(L722/E53!$D21ͮS52 "CR2!ݭDR 3BB%23 CR0/"!޾BCQ 1AA "32020" 22!A!/ !!"#"!!! " ! BDC3 CR2ݽ3S#143B"33!"22"#!""!!!!B<CC"#33!"!""! "2""2"3"##32"2123!"C3!$32#D4"$CC""DF !"  "!/!1 " !"!!0N!1!!"""!/1!#/"#!""1! !1""!!>\R! "nj22,&!!"4jh!<604f^,2$$,0LN& ! #2|4A0 112! ""2!32#333"%#C2@ "##23"!!3""!"N2"!""#10 !! ""!! ""r#CB32""CCB3"""2"!2"!!!"!!""!!!"""!!2#"!"""322"##3B3!"#3C3B""3CD33!#3D42"$53C"#4C4" 4CC#!/ ! !  !!//   ! !! !    ~34432#D4C#"#CS3C""$3D#" #3C#2"#"!"""""!!!""!! !!>H2F!!""""!"!! !2""!""!"""""!""!!#""#333!#43CB334433!"3C32!"23""2"""!"##""23"1!2"2""#23"xx"222!"233"!""23"!"!!"!!!!!B@"""!""222!!"""!!"d`b^!!!dX!!f^!&&JT&64!jl*(v``jpJHpvbd>D22df^` "jjLN z~"b\8: 24H@4D4 23 !D5"2SD2/5C4 %4S# %3RA $4C4# ܽDCB2%5"2RCA3CB1"3B" ###""", "! 3#1 00 "  /  !  !<"#32!"32!"""!#!!!""!"!!!!<0""2!"2!"22"#32!#3""34""3B2#C32$3C!4CB!CR3!#4H!!!!0! 1! "!!!"1! !"!!"!0!B\!"!!1" !!" ""1!!1 2/!"! 4!! !/ 1 !""" 1! !"!""  ! !CR2ͽ"442 #431#CC23D2144B!#4C32#4C# 3B3"#3!#"!:""#"!#22##" "33#3#"""!"""\b<2!!"!2"!"""!!"2"""!!!!#""#32!t~#22!322!"! !!!! #232"##22""22"!""!!"""!!!""!!!x^!!!!jl46!!!!""!!!!!!!"!bN!~x""<@!pb!!!!!!!fZ!!(*VZ!!!!! ^R..(*~|~! \X,,>@"tl HHbf"""""""""""""""""!NNlv """""""!BB:Fpv02.,!!!!2DBD21 ܾ$E31-#DC5Sb!!%6#1ܭE$"" ܽEB2/"CS#1ܽ4RA B#$22/2CB "B3!221 "3223""! 2!1"  !N"4B23CB2D42#3B13CB!432"#"#22"21""!!""">F!!* !""""!!"!"2!##!#32 33B!$3C"#5 !""""!"/"""!"!""1"!1 !01!"!!"!"">1!0" "1!""2!!#!""!0!"1! "0pj" "!! "! !" !< /.!!  ! l"!"2""""""!pp!db!!"""""!"22!"!!""!!#""!"#"""""np!!"!!!!!"!!!!82 :<2(!!!!!!""!!""!!!"!!""""!!!!""!!!!"!!!!"!!!!BB!!>D!(!!!>B2432"""!!!!!!!!!!t&&00TX&VV!!! 4:(*<>XX  ^V,(XZ"&" 48NFDB /4RA32 #54.#T33#DCB 4SR"ݭ#5$32ݮ#CR"#ܾ#D43"νCD3!/D$!2B1 "##2! Z#""!/"  F3#"!"!"!"!"" !"!!!!""!!!"2#"!/  / "!!!!!0"!1 !"!1""0 #!|"!10 /"!" !"!1 1"! !11! &!00" !""!1!"!! ܾ#D3B"3B!#3!#32 ݽ#4#!"C42!#442!3CC3"3432"33"""1!"!"!"!""!""2!!"" !"!!!!!!! !!!!""""222#"##2!""!"!"""!##3"!#3#1 "#4#3"22!"#"2#"""##2""#""!!!"""!!!!"!! !!!!!!"!!!!d\pl|~!!!PX!!!!DD!!!!!"!!!!!!!! plfh<F2@\^B< !!PX!!""trzx"$(82<6:<:  ,6VX($rrPT|v^\3B !" "#!#"!1"$!"!  P#D5#!3C2 #322"32"2!!"""!"""!""!2#!"32!#32!#321"332!#CS2B3CC3"$44/!  !  !  !>!!!!1!!0!! !! ! /!  !!! Jj!! !!//   / ^d"444"#4#2!#CCB2"3CC3#33#"#32"!""!!!d\!!!""|""""##"!###!##""##"!""!!!"2""!!!!""!""221 2#"!#333!"#433!"434"#CC4" #3C3!#332"2" !""!"""""#23#!"#343B3!!##B4"""33C32!!2!!!!!!"#"!""""! ""22"""$!"!RD^\!!!!! |VZ&&""""333333333333333"""""""""""""!Z^jr!dRD<TVTT8,@@ """"""""""""""""""""""""""""""NRlbp.0lpRZPJlf LFRXDFCCCCC4333333332""""""!ln:> "|.(FFDJdfZT" 42 %1D$1/"E3C%%""4E3"6$#3S$D3Q!D4"/!3B!131B1/!!"  !"0! !!/"   //!"!!!!"""#32!332!!!!!!!!"!!"2"23!##2!$33 34"  "!!!!"1! !1!1"""!1#"#!"1"# "21###"""10.!2"!2111"#""!21 "1 2!# 12"2"""!#1"!"2!1!!!"S2 $5#"3CB #3!32!22ͽ#32"432343"443"34B2#C2"#B2"""!!!!"!!!"! !`^!"""#! #"!!"22!" !"#""!#"1!"###!"2"!"""!"!!!jX""!!"""""!"!"!!!" !!!"!!!!$.!!!!!!!!!!!"!!"!"!"!"B4!!!!!!!!!!!!!&($$8<!!!!!!!!!!!!!!!!!^f!&""""""""""""" df!!!!"!!!!!!FX !D@!!~thj.*JJ(8\^&@B>BnlBDpf4*bdx"vz !Sh2/"3B!"D32"532"4R1 543$5" 2C3!BB2!BB!"B0/"""T534CC"#32#32""""!"!!!!"!""#"#"!"!F  /  !   " !!1$ 1"!#!1!2!2"!32"!21!3#$2$"A1 #"131t21 1$"!3"0232" "21##1"###1232"!###x"2""##!3"AA"A"!22023!#"""1112!""""!!11"!""!!"!""  "3D42 #D3B"44#$3B"#!2""""""#!"2""!dd!"!!""!"!""""!!"!"""""#""","!""""!!"!!!!!!!!"!ff!jt,,``vh"" "!!!"!!!!"!"""""""!"!!!!!""""""""!!!""!!!!"!!!"""!!!!!|!TT!!!!!!!!""!!!!!!!"!!!!!40 ,TV!!!!!!!TN||!!!!!!!!!!!!~!!~(&!!! 22TbXJ""""""""""""""""""""""2.`f dd""""""3333333333333300! #5""1!23#453 %$RC2?3T#0;CD!#5" 3D$#.11!"1  !!  !" FV233!""""!"""""2!#2""2!22#32#3!#4# $32"43"$CB  !0"! 1"!""""!""#` /""" 11/ 3 . !A1 "#"#"!22""#11" "##1"J""#"#""2!"1 "2""!#" "11 !A!"2 111!3l1""12""" 1!"!!!0 ""  "!4D32#D5"!3D43#CC"#32#2""1#!"3!3#!#BB!"34" #2"DB"22 !"!!!!!!RL!"hd!"""2!###!22""22!z!!"22!!""!!"#~!"!! !"!!!!!!!!0>!!!!!!RB!! NP!!!!!! !!!!"!!"!!!!"!!!!!"""""!!"!!!!!!"!!""""!!!!!!!$6!!!!"!!!!!!!!!!!!!XfBBRV~n!!!!^j~..!!!!dR!!!!!FT!z88||!$"!(!hhNR$. |vNP4.NRTN||,0pf@4 XX84$*!!#"! ! !!! !!"#3B""22""!!!!!!"!!""!!"~Z/// !.!"!" " !""!b!"     ! ! !!! /!!"0!!  !3CC31"44CB2#4CC3 #DCC3"#CS4#" 3D3B2#43C2!3422& #33#"#2332!###""""!!!!"!!!^^!!""!Xf!!""!"2#"""3#"!!###3""""""!!!"!!"!""##"!#34#" 0"3C3"!#3CC2""#433"34332!2CCC31 2332!#3B3"""Lͽ!"22" ##3#"3444#!"C4442""3C33!##3#!"2"""2""!!""!!!!"""!!"!"!"!!!!!!"d^!!""""!!!!!dbH@~| 4>!!!:L~||z ~| NTBDrr.*`l``hb(0D@NPD@LLDB|z@@"3# 2#!!#$!/"2#" ޿"@#"!!!1!1"""""!"!"t // ! !"6!! 1!!!"!"!0"!2!!" "4"""21 !3"#"0/"#"!#""2"2!"1" "1!#"2 #1"#!##3 1!"#""11"#  "#!""1"!8""" !!1  " " `#B3#31 "CCB3B"#CC"3CC"#3##32!!2#""!!!!!!!!^T""""" ""!1!!!"!"!"C33!"#4"!33C"!3C32"""""!#!""332"43C2333#3C3"23!!"!"! "! 233!"B4#!"332!#322/ "VB!!!!" !!!!"!!!!!6&!!!RT*,3"""""PT""!!2&!!!"DD::C33333333"""""!fh!!!!!!!<*!FFD443CC4333333332"""""" "!!!@8FF..DLdn>D*(HD00.0``..z&&,8,4(.hj  "#!/ 1 !!!!!!R1"4#223!"!!!!!""!"""""""#2!22"42234#!4CB13D4! "!"!"!!"1!!!1#"!"!  P!1""!!2 "11"1 !"1!#" ""##!22!"2!/#3"(#1!###!#2""" 2$!22!3" !#31 #"2##2#20/2#3! "##12!/!#!2"!!!!!!1! 1"!6Z!!!" !! ! "/ !! ! /dX##2"2""!""!!!"!!!^V>2!!!!"!""!""!"332!322!##2""32!!!! ##!23" 3432444#"C4#:@#3C#!""!!"#""3C#!3CC32"44#"33C"!""2!""!233"!""3""!!""#"x"!!^\&"|!!!!:L !!!!!!!!<<!!!!!!!!!!r!!""!!"!!2B!!"!!!!!!!(!!!"|z`n!!f\!!!!vvnrtnj6.!RL!!<>&6:>df"!!fhfj|tJVB@ 8<~48BDfl:<NN  JD^V53C!"3"442CS#4C3!#4C3#32"""!!#! !!!!"!#!!##!#3"2  ! / !"!"!01!"!!!"1!  "2"#! 212#0/2#"!"""!12#""""3" 210""!2## !21 "1"A1~""32"""10#  2#"12!/2"!1A!"11 !#1  !21"1!#"!!" 1! !! !!!"3S43!$443!$43B3C4"3"!3"""!"2"""!"#""""!!!&& bd!!"!"!""!!!2"!"""!232"3323#"!#3""!#"|p!"""3""#"#CC2!233"2422 3C3"""""3" !!!##""2#3323422"#B3""34#"##!""!"""3#"!"##"23#"!"""!d^ !!!!!!!!!!!!!!"!"!!!!!!"!!""!!!!!!!!NP!!LF!!!!"!"!!!!!!LN*!hj!.$!!!!!!ht"rh^bz~ld<.!vz lljb2*xxrr,&&&"""""""!:2$..332"""""""""!!/ !  / !"!!A1/!0! !3/ /$  #$ 2"2 ! 4%"12!!2$/F6!1A!!"#/3""#B"! !3""!! 2"343 2 !" #2 !""320.  11""!!!!2##"!"/4(#3C3!#333!!"""!""!VV""#333332"""333333332!"3CCCC32!3DCC32"33!""###"2!!#4j.//0! 0"! /  !   ! ! /p "!22"!   !"!"/!!! !!  1/ !! /J:!!2332!!~bt!"!! //! / / " !  #CS3C2!"233!553C4"!"233##33CCC332""""2CCS43CC444#2!"2 8!"""!!!R`"334#2"#332"#3C3322""ݽ"$3CCB2!! //   //\R/  Pz// """!!#"""8@!P!!"""!"3CC423!!#322!"$45#32" !"!/ 3D33""! "###"!!"""!2333BBC444CD43R33B3! zn/!"""BH""""2##""##4#B3#""#3433B22!!!!!"!""!"""3432!! //!"#33322"#44CC#2!!"453432#3DD443331  lb""2"2"!!JL233322"!!#344C332"""#""!`"#3432""!!!!"223#"!!"""!L, // jSC4443C3B""""!!!"!r`!!!!!!!!!nrnn\P!!"""2"2#"#!!!""##2"2""!""""!;!"  $>"CCCB1!""""3C5#4#22!"2#"2"!!!!354<4#3333#"!!!!!!!!!^`"""""""""""""#333333333344><!"""23#33#""!!Rx"###"!"#4444#!!!""2222!!F434443CCC4333#""""#!""!"2""3332"223#!!##33444CD3C3B2"""2"!"("2!!!!!!Z\N>!"""""!!! ""!!!"!2"!XT!!!""###"2"!""""#"33433"!"3C3B32#"""!"!!ZJ!!!!$"!"2#""!!!!!!!"""!"!""""""""#""!!!"#3323"!"2232"!!""!!!"!!!!!!!"""333C4332""!"!!!!""!!!!!zv"#3"!#333"! !"!""##!#B232"3D4"8^! !1!  1!"1!12 !2"!2"!"!! 22!"""#" !$"133"#42!B30"2#331/ξ!"2 2#2332ο2A0#421"3"2"23#!#32!34234232#222B$11!"2 "33"3$" 3$" 3C10/""0"!223"""1#2" ""# "# !!n""2""""! !"!!" " !"!  !@|4C3!3C""BB"3B""33"3"#3""3"!!!2#!"""" !!!!22!##""#32!34#"!34#"#2"2"""3B2#443!##!4CR21#"!"2"2   / /JT""3C42 "33!#D44"!#3# !!#"2""444$"2"23433"!2.!!!!!!!!!!"!"!""###33#3##"2#"""!!!!"!!!!"!"!"""!!np !!!!!!!"!""!!""""#!"!!"!!!!!"""!!!!!.NP!"!!!!!!"""" !!!"!!!!!!"  !!!!!!!""!!!DP!!!!!!!!!!!!!!!!>4!!"!!!8F\b`^!!hd4* *:""48JHhl :>@B .406 """!"!""!"332!!!"!"  !!!" "21#!#1fA222A"2"/#"214#!23 43#43!CC2BR154#ο#3A!"4zݾBC#D$!"Q"2A@.!3R#B2!D#!CB22A2#B!23!CD!"$"  $3B? 3B"3B "5#"$#1CR""2 3C232@. 2B3$%! 4#!#D32<"A1B$#C%!/"#1 ""41A"!2"""!! 2!!2 !0"" 1!1 !"2""!"21"""!!3#"!@@""!!!!""!!!"#43"!// /// " !!!!  !  !/ !  /6##3233322 "##"!""222""!""2!!!!""f"!"""0*24$$#32#!"#"""" 34D4423#3CS44B3B33"!"#$$3CC3333#"""!! r//!"~/ / //ZSD3CD3CC3B2""4535332"!"2""!"222!~/BF!"$##23#""!" !!"#3C4432"!!"""""33C43C4#!0L23C443333C4CCCC$#3333BC3B3"!"""/ // ////""#"2"2!""22323"!!&!"""!""!!!@8nx2333#22""#3CS433!#3D3CC32TH/\B!"#C5#CC4433!!"##""!"!!""!"$>""""!!"23#322"! !!" !""""!"""""""""""""""""$,""2"#""#"#"22"2"""#""2"""!!!""!"!!"3CD3CB"!l!"###"""#!!"""2###"""!""222"8"!4DD44343#3!;!""!^@"2""#233222""!!"!!"""!! "hb& !#343B33"!!|/ht"2"""22"!!!""3#334#23""#3C33#""##3BBBBC3C3C3B2"!"#CCDC4C43C#"!""#2""J|!!!!!,!!d\!lj!!!"""!"!"/PH#CDCC43B332!!!"""""!!"344C43B22!"#4445#434#3"!"##3#"""!""#"2"!"!"""!"!""222""!!FB!""2""""!!p~!!!"""2""!!!!LJ!"24$444332"!!"2"#""!"^X$ "!""""2#""""!!"!!!"""!!"!!!!!"""""##""!!!!""#""!!!!!!""""!"""2234$444C44443C#"!""2"!!.6!""""!"""!^n!"""2"""!zzNN!!2#22"!!!""2##333B4$$#321"0L!!"""!!!#"#"#"!!#"2""""23#3##""!!!""!"#"33434323##"2!!!<4/#32!"!!!!"!2""""2!#22"CC2331D4B442H /2 ""!!12#2"#2!$!2A022!#3"##AAB4!"$#!2B $3#242"3R#$3"2CB433"5"1BB!#3l2Q2 B433!$$330߿#32 !34"/!B3"#33 "B1"2Q!.#33 2C" ^b3B1232 331/"$#0#2##0/$3" 2#!22""$ 2""2J"#!!11"""/"1/!!! !  !! /!#C4!3""""""""3#!"##""22!!"d22!"""!"""!!"""""##""#2!!"2""""3"""!#32!3D32 #3#"3CB1CD4#2"fh/! / ! !""!!"!#44# !#C#!!""!"!"22""232#!!!"##22!"""""!"""t!"DF!"!"""""!!!!84Dp!!!!"""2##""!"""##""!"23C3C3#"""""""2""!"""!!!0 ! *RN!!!!!!"!!!"""2""!!!!!!!"##3333#"!!!"!"#"2#""!"!"!"!BH  @B!"!!"!"!!! !!!!!2F64rt!!!!!!!!"!!!`l"""">4!!!!"!!hd  6F|| |:.PP(&*,!`X"(PN,0v~~ "!!""#""#$ ! !/ /  2" 3" !//"#1!12!221!!1 1""#$.#"/ ,.#132!"#3"2#!2#10/"#B2"1"#22 "! 2"2! "!!!  0!    //>4"#233"!"####!! "##4$##!"##23""""3332"""2/// ! /! !/0n ! "V"#222#"""!!!!"22" "22#"l"!   /Z22""3433"!!232"! "3C3"3#"!2""(0""2#"!!!""!"!!!!|~!233#!!###22"##4#3#"!"!!! "44D3D#3!#3B"3331ݾ""!!""33333###C4C32!#CS5!~ / v  #45344332!"23"""!"!!!"0B!####"!!!""!"!!""""""!""""2"!!"!!23#""!"#343CB32##""!#3CCC""!!/    /|/"!"!"2##""!!!!! !"!""xx""!!:2!!!!"###""!!!"#"23#222""!!PB"##434#B2"33C44#3""!!!""222/!\"2322"!!" !!!!"""2#"&#"""!!!!2##"1"34CR4#21 HH"!!"2"2""#43CBB3#"!"##33"">B !!!!#3443C22"!"""!""""""!!!!!"""##"2#""!"233#""""pl"L*"""!""""""2"""##334232!""223#"!!!!""2""!!!!"##23#""ݾ&//8;""!"#"3#22#!""""""!!"ZN""""3#33333"1""""#"""!"!!""! !"##3332322""""2""!"!"!"!"!!"""""!"///!""" !""##33222!!!2#3#322""!!""23#22"jpf^##23#"!!!!"2""""""!"!!!tt!"""2R."!"""343D444C3C33""2##3343CD3RB3C332!""""!!!!!!""!""""#"""!!""2##"""DB!"#24$#B22!!zz"##"!""#4 2"""""223#"""""""!"!"""!#44CS3CB333#3"2!! !!!!!!""1"!!v"""""!!x|tt!!"""#"2222""!!!!~""""""#43R32"!!""2""!"!234$34$$$#322""!!8>!!f^!!"! !!"" "2"#"""222"2" "2333!33""3"3B!34C313CB"343354B2$43! !!!"21 1"!!##2#! 220 *#! 22"!332#4/#R3##33!ݿ3$113C312312BB#3#C2!&BC$BBAݾ2432432ݾ"C3!#43A!44" "BB12342Q13#"h#"3 A2#$"""1#!/1###!"! "# " f!3""!!!""!!/!! #3B"#C3"3D22 #32 #"!#""#"!!!!pd:B!"##31!"23"!!#3"""3"!"43B""4C3""3B24`  ! / /     >N4D44#"#CD#!333#21 !#3""!"21 #32!#"2"2!Zx!""""""!"333"!!"22""0BB$!xt""!!!!!zh!!!!!!"##222"!!!!""!"!"#23322#"""2"""""!!!!!!!@@t|!!!^X""!!"""!"!!!l`"!""!"!""""2"""!2 !66&!!!!!!!"""!!!2,&&hn!!rv!!LHpv!\\& jtfnDR"&88V^xz^\""!""""!"4#!#3"432#3B1#224B2/3B3!. ! "  !  22 1! L33A0!#!/""1 32""2#42A3D#!2R3";$B#;!C5" 4R#!430RT#213$!34"/ $53"%$202BCRQ0/$34ݽCC3 5$"#2Q2$#0rL44334# "A23C3 2322!#4B1"3#"3" !3#""@!!2B#"1"!1! !A10#"! !! ""!""1r !! !  #"!!"3#"!"2"""2!##"!"!"#!"#""""!#22!!    // 8Z!   !  ! p!/"<!!!$DD43B#!"2##"!#D44"3D432 ""pT!!"33#!#4#2!!~$"!!!!"Hl""3CCCC4333322!!"344C331!tp"2#3443C#""23444C3B2"1"ݽl#3433#!"""222""2CCDC331 //!" !"""!!!"""""233333#! !!#4CR4##"ͽ!Jݾͽ"#4#2"""23#33BCCCR22!"3B3""#323"!!"##43R44$##!!"23#"!!"3434#"!H:!"!""!!!JX!$!""22323#"""!""3C44340#222"!!"!!3443C434C52B2"""2222####2""""Z#$34#B#""#33#333C34#2"! "3#332!""3334##"""!!""""!!!!00!""2"""!""""##"""""22"!"223#222!"#"22233#333##!3333!""43C4# ."#!!"222"!3333""""""!"!"!!!"""""2""##"2!!!"!!!~z!"""2"#"2!!#"!!!rv"#"2##33CCC4#""!""322"!!2##"!3332!!R6"""!###4#3222"#3332""!""""""3C4C33"!!!"!!""#""""#33332"!~!!""#"22#"!J4!""""!!"!"2#"2!!!""#"3CD4C43432!!!!>z!"323#"!!"!!RB#33332!!!""!!!"""""3#22"!!!"""!"!!!!H2!!!!!!JN"!!!!!!"!!"!!""##3322!"2322"!""23"2!!"""""!""3""!!!!N\!##2""2!"""!"! !"!"!!"""!!"""""!! "2"! !"##2333#2"!!!!!!!!!!!""2"!!"!"!""""23333#"!!"!! ""!!!!"""""!!f`hb!!!!#"#""2####""""#"#!"!!23BB22#!"!"####HP!"""!!!"#"""!84!!!"#2!#22!"#32x  !0"!1!!"!0!!2$!2! $"!!AB2#""$ l#2#"C4"B4135"2!$$3!.3BQ#$3B 2B#B#!2B10432 *$BA?144"/ #3B"332#C%CB"/"4$"/#C#3A2#$33#!##1013##"" 2#"!"!?.111/"  " "" !!! "!!""!!!! !!  123" #3"#""""!!"! !!LTC"\X!!!!"""34#""22"##""42222""32"!43B""421"D4C#   ! /"CCC" "DCC3"$432"#"""222!4432"43B"2CD4#"353B2x"#""! "2!"22!"44333CB"#$3C3!3C#!3"!!"!!"""!!!"nt@F!!!!!!!!!"""""2"""!!!!!!""##3B32"!""""!!!"!""!"!!!!"!""2"#!!"!"!!"!!>6LN!!"!!!"!"!!!!!H@^^66HR"("!!"!!!*,!!!!!!J<!!!!"!!!HBRP&&"!!!!!!!!!42""""#33333333343C4<<!!!pr,*!:6(&04vx0< TR><pp.4!"""##2!34#2"4DC#!3D433!/ !! !1!""!  12$34"" #3!!///!! ! #30 H!3#4 13 "4C3" 2A0# "1/ #2#X3$2"#" !!!1""BB$!" !" #!!! 22# !! !/ !/  !""!bZ!"2"343#!   / / / 11!! !!!    !!  !!!!!!#22&  /0 /"" 0!    "!""!"!!!"8#"""23!!"4CCCB2!"#""#34332""#$343#""! / !  /!!,2" 0 /!6SR3B!"#3#223443C#2"""!""#44C4C3CC433"""1 "#";3CCC#"""##3333B22""" !"#"!$2!!!!!!"#""!3CD4$"1!#4C42!.J  " // > /  /\B  :R$3R4""!!!!!z!!!!"!!""23#"23$$34433332""!!H0//  f2Pb// /@">"""!!! !!"!"##333C322#34C444#2"33CD3C4#22!!;"##""!//  : "4544423!ͽ!"33B32"##CD3C3"!44C3B!""4CD44333!"3444C43#"44C43""!!!VV!!x~!#CCCC4222"!"!!"#3DCC5###"""23#2"#3CC42"!!!!!"""23322!""!"!ͽ!##3CD4C433" !344CD3CC444$#"!P#4443C#2"!!!!!!"""""!!!!!"!3DCD3CB3"!"#C5$#C43CBB32!!!!H`!!t!"!!!"!""2333333322!!""#!"# !!2CCC3""""!"!d`"3C4333""!"2""!"!!353CC3B222""HH,..4!!!!""2333CC44#3""!!!!##332!"44CC3B!!!!!###3#"! !"C4C4BB4443332"".:"2!""!#"!!#33#"!!""#""!!""##3#4$3D4434""!!!""!!!,."!""3#322""!! vt23222!"!!!!!vb""#"2#"!!!!""#"23332"""3333"2!""!!!44NPvv""33B321"!"!!!""#"""""""2"2#"2##"!!!##33322!""#3#2> !""".$"!!!!!###33B3"2!!!!!!!!!!!JR!."243333"""""""""""!"!"2!$3B#4313T3" " #! #2 !1" !!! "!""13!"$" "!0#1#!01"10!A1?1B233"2$"D$1C3 3B"CCA޿"B#$CB/ݿ#D54D304CCͽ$53#CD2 BR2!%$$2!ξ"4424D21ݽC43ܾt4D.CR"53$&"!ݮ4D"!!RB"/#CC#$3Q!BBB1BC!#343$2#31\## B2 !321 2A1"32#0 "12" 3#"!""1"v# "!"!! " 1!!    #32 ""!!!lh!0!!"#"!"!!!""!"3!"!pp#3"#3B"CCC33CR2!"33!#4#!""$#1#3332!3D3"#3"  /   !/ !       $3B2"D44"35332"3"!#33!"""332#"""33>!3433"22"22ZPddc43CC43C433333"""""$"!!!"!"!!"""!!!"!"!!"""!"##343332"!!!"23322"!!!!!"!"!!!TT!!!!!!"!!""""!""""!!!!!!!""!"!!FH""#3##"!!!"""!"""""!!!"2""!!!!!!""""!"!!~h!!02 !",!!!@D!!""2"""!""##"2"!6&!!80"""""""""""""""""""""""""LV!!H0""""XR!~,,"""""""""#33332""""""""""""!jj6<!!Xb!djFD"""""""3333333333333333333333""""""""BB!!^b@@*6!F@""RL0286<2v| !"!"!/"12!AA"BC!"4$!2Bx34# 3R32D3" BB!$2042A$"!42A#"1B3#A2"BB 1C3/ #10$4$"3C2430 3R!ͽ#D32D5#3C4C#DC1 #542ͯCS"$E#1ݝ'23R;D4A ݭ3E1!4SCR314D2?%#ͽ%$""4B1"SD";C6!/$D21$5ݼSRA<ͿD4#$5!/4DB1"DD1B1޾#DC"/4B""203#B40##1"22!!$$3411#! 22"#2B1#A!!12#!08"!! !"332!!"#331 "43B"!2!!"3C2333 ! //!"!!D!!!!!" ! ! 11#"#/ 0!"2"!  ! !"  !//v"#32!"C432 !!""!!"!!!"!""!"#3D3C21!/N! `D!   ! /!/ |! /  !###3#!!!#23""!!!!*,!##22""#23BB33!!!!#3C3423!!"3CS4C34#"~ /  0  // // D / D"!!""222!@2JF!!!""232323#23#"!""##"!!!#$#3"!"2"2 / /  //  !"2"""!xpxz!>0!##33332"!!!!""""2#"#!!! ./ "33C43CCR4$#332""##3""2#34444B4#2""223BB4#3322!! !""!!hf|z4J!!""#3C44332"/X2#3#22"!"""2"""!!!"""""2""###3#B3BB 33""! "!""##323##""2""!#"2#!!Tr!!"#$3S3D34#2"!33S4D>b"#333C4C43B2"!2#"#"23###"!"!"!"! !!!!""!!!!"2#"2""""!"!!!\x"3C5$#433B332"!2334332#""22333333BC444C43B22""!!!!""!#$3Sz*D3D#4332!"""223###""2234#B4343CCC43332""""""""33C434232""!!!!!""""!"""""rh "!!2##"2"""!!!!!"""#" "!"""22332#!&##3343C43C4$#B333""!!"#C43C3B222""$"2233#22""""!""""2""###CCD4333#"!"#3#322#""#23#"!!!!"!""Tj!"""2"!!!&"!"!!!"!"dD"2#"2""!"#222"!(2"#3C333#"2""""2#2333C43333####"2"!"!"2"2!!!!"3#322""##33#""""""####33323##"""2"222"""!"!!" !x!!!!JJ !4!"21#1 "42!4B2BC$#C"#53#1QA!"33C#"$&24$341 A2!D$ ABB3"2B1""/3$!/ #4$" 3D#!d$22/#DB"$43! D$"/5322D23Cb2/533.4SB Cb10#S4"%4#!νCD2 452!ݽ4% !R4#$D21$43#D334CD"BR"/"RB1442?ݾ"5#2$4!BB $$"2B!1C#!#"1A""10#"1!2#10 "!1 !!!!0/!!  " /"!"!!!!!!!!!"!!!^^!!"""""BB"#3B1"2"##"!"!^  !  ! ! ! !/ "XCB!2C# CD2!3D3233!3D" ""3253B!33"55#"$D43"#4C2 4CC!$D43"$5#222""###!#32#!32!33232lX#C3""3C3!2323"!"3"#B"#33""32!"2"!!!!"~!!!""""222#"!!##343322"!FZ!""""""""""""!!!!"2""!!""333C43D$#Z&322""""#""!!!"""""!"""#"""BF""2""""!"!!!!!!!">xrHH!!!!!!!!""2"!!""""""!!!fL"#33#2"!!!!!!!!!"!!"!!PN!"!""!!!!"""2""""" vrx!""!!!4"!"!!!!8! VX!"""!!!!""!`r!""2!"!"!!!!!!!!""!XR!!>L!!!"!"!!!!!!pddb,6bVbhRN!<.!HH"$pf*""""""""""""""~""""""""""""""""! !! !!R/"! !#!"!"2" 0"2#"#"2#!"10&#D" BB2!" !!2"$3"132133" 2313B1ݾ~"! ! "2"1!B"!"#B""3"2BC#"45#"13$1"!2#!!1 " /#C4!?24!1! n!!"#/!!!000"!"2!34CC31ͽ##"#"2"#"!!!!"#22""!!Xb3CD3CB"!"#22!$453^!! !//~13!0!!!/ "!!!!#"" / !1 !0  "!1 0"//!#B3p!1200!!!!"""2##"" 6(!!!$45#3!#DCC22"LB#" #CCC4"2""""333C3BBCCD423"23DC44#33"!""Tl"" #! N!!"#   /2!"4CB";"!"""!!!#DD4332""2#3442B!!""!!!!42""!!#221!!"##322!!!8$//0" "0! / !1 """23"23CC443C434#B323"2"!"232"#$L32!ݾ!`\"!!/""#43"!""""""2"!"CT@ /    / / \3!ͽ"!"3"2!!!"2BBB32!!!!!""#"#"!""!"!df"2""!!""2""!"22"\^"##! !"2""!"!!/^ !/ T3C22#33"!#$3D3B2!3DCCC$##3##""3DCD3C23! ""222""!!!4:$!""""""3333#"!!#"/vN2"!2C33 !!"22!"22"3CC32!! "34#2""!!""2322"""!!!""2!!3CCC3"!z|nj!"2""222!!""233C534C5#3C#"!zxͽ"#"23#2334333"pZ/Rf!!"4443B34D3C2!""!!; 44C4C3CC3B22!!"""!,J"!"">@"""""""""""""3333333333332""""""!""!""""!"!!!!!"""""!"44CD343322""!"!""3"!#3#"!""2""##22""$3C44CCSCC3B32"""##3332! """""""!!x!""!!""233##34333322#"#!!!b`!$"""3333""!!"!!"!!""!!"""!"2"""2##""!!34CCCC$#3C44333"!!!""!"""!;!"""24#3"!#"2223#23#"!!"#3C4332"!!!!!!"!!"!!!!!!!!!!!"!!$2"2#""334#"!!""! ""!""222##32"!"333#!234443B3###32"!"3: 22!!!ͽ! !!!!!!!"!"!!"#"#"""#"33322"!!!t!"""""""""""3333334444@@Zn" 11!A32#2BCݽ#BBBQ24$!D4$B5$ :b24$23@?!2A222A! 2B#ξ$! #CQ #21 B4!?"3B"!"&#31! "1B2B""D%!/232!#S31"44!4$1!!#BB02442"$4C#T442! %$$߾2CB"35""%#31#$#"/2B2 #33!$$"#4"#BA "##*"$"2"B#!#3"11122"""##!110"!!!0 |F!#D3B 4CB2#4C313CC"3C2"3B2"#2!"""!""!!!!!!!!!!"1!""""!#332#"##3!""!"#!""!CCC3#4D332 !!/   !!! ! "   !   t!"33"4443!"#!"332!22!#"#$33"""!!!!!!!!!!!*4"""""""!!!!pp!!!"#222!!!"""!!!(("""""!!##"2"""""!!H<!!!"!!"""2##"#""""!!!"!!!""#"2""""!""v##"""<>!""!!!!!!!!!"@"2"""!""!"!!""!!!!!!"!"!!!!nn!66!!!"!!!!RV!!!!!!!!!!!lj~^l!:6!!!@:02RXJP! \^&4@D^\TXXX><DH""""333333C44444CC444444443C333333333""""""!86"3!<. #C$5$2B" SR2%3D!̽D4";"rC$R2ASS2 $3B1.4BBZ3RA #42A!3SA"4%"! CD2 2441?2D"BB2124 ݾ"!#3Q"2l#E#"̾3$"""S%1CD""42SC"#CB2ݽ"CD1 4621ܽ44C2!%3#!$$3Q!#3"2C1"#2"3B2/"1$B4! $31 BB"ݾ1!޾#1!\#"""A1"#31?!2  !"!!! !  // / * "33!"" "3"!!332"!"!!!""""!""#32!#44$"!22 "#"!3C4"3D4314$ /!!!""v/ " / " !! !"!!t"!!/ "    !""!  b!  !  0 // 1!"/!  D>""  "3CC3"44C4"!"!!"#3#"!!"22" !!!!!"""""""!"#222"!"#"33B33!"#C53D22!"$4D332!!""""!!" / ! /0"!"#3332"!"23#333##! """""   !!!!2#222!!!!!"2"""!!"!""""!$< / /##3C44443C332"3443B32""#"21!"443C"  /|""!!!!"""2""!"""""""#"#"""!!"#!!R`$.!jb""""!#3CC422!"33" !"3C443B323#22(/j/|""!!!!!""""""""* &!!""#233323######3#3#"#""2"""2##"!!#3D44BB22///| v    /2#"!!!"!!""!!VH!!!"!dd"3343332!""!!""#3CD443C3""##343\ CB32"!"!#3C44221!233333#!!!!"3432!##44443C23333434443C3"""3CDlh""323322"!!!!!""d@"2"2""""!!!!x~""43CR3C321!!"###3322"zv"43S44332""3CD$##"##HZSCB3C34#B4#C32!!!"!!!!""222"!""!"""233BC33#"""33C43C4343C33#""!"""!!!!!0$""!"!"""""!""""""!!"3C53R3B3"!"243CR4$#3C4$#B33""""""223#"!!!!!!!"!!D\""""!!!!!!""""2233334#33"2|t"####"!!"23C434"2!"!!!!"""!!!""23334#BB32"#3D4CCC4333"!""""!""!!!!"!!!!!"!"!!""2##2322"1"!F`!"""#"2"2#"2#"""!"!""!!>.""#3343CCD3D3D34322"!!"!!J<``H@"431235!0n453 "3RB"ο"6330 54$/ 62A!635"bC/DD33S2@5#31B3! "5V$3S2B"DC202B!/"CB##431!!3B#!""#3"  CR"d32A"3D20#3B@%#32""3B##C4"24%ξ$3B2 B33#32(34" Ͽ!3#!!#" 2"1!#/1#""""!!"! .~5C324C2 4C2!3D43"432 #3!"332"22!"zx!!""!"!#!232""!"2"#2""!$431#CS#2"$#23S4B$44#"C4"DN "  " !~0!  !!!! 1! zx" !  0! !"33!##2"""!"332"!"!!!!!"!!!!!!!!!!!!!!!"""!!!!8:|""""""""""33333332"""""""""""""""""""""!~r^!!!!!!!"!"!!!!!VF<>! NR !!!!&*$rt *,!x`\  68 !!"""2$#4%"BBBBBC%#444443R4#Cholotz-castle-1.3.14-src/res/sound/HCCredits.wav0000644000175000001440000135173211177007633020443 0ustar jacobusersRIFFWAVEfmt 2"V/- @0factb data#"%&##"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""''!!" 0 50?3B C0#"# $1R "A# 2 R4R,!# 5#0B!321 ݮR/#>-"b5B ! $/C/5$25!b%2#1@ &#13O#"1"11"!3 "" //$@#q31!!?!!$"C "21 1$ !/! B/Uc0# 2@0 02$!A2!C1#/3 3BdH ##" !/!#/" 1A2 ]1"O2! 1!aE!!""#34532 !!!#3DC31"2$5422"3!63}2"21CSC#2""23DC3C" "!"CR3B3!"+3CC33"!3B23"!32"2#!#""#2"1""2" ""##"220#""1!!""!"!!!~ mi E> (2"!?A "/AB! =: $&/.%%..+*()..((" ))'&#Boa#D"#u.P:"_ - /C7D. AS#s2A D 5T 33Qa7/<!>D* "0"/B63)aB ??S$"1B3_Q;1Q2AT!/ E"5/ E1Qa0C !& D $.?bs2QRDS3 % R D"/P! &!$2!5!C1#/ "!E2 1.A."y# ! !! 3#2B! !# #"00#C"! ! ?5!! # !1 ! !! 3$222!323B231"C"2#3$32!32#""2#1""31!BJ3!#333"#!#"2!#"2!!2#"#3" #""!""""!"1"#!"2 3"#1"!"2""!#"2!!1#2"2!"!""""D!"2!"1"1 "1!!!" 2!11"!"!!"x1 ""!!!"#""!"! "1"!!#2"!!"""!!"!"! ""!""!!""!!"!!!!!!!! "!! ! !!"!!! !! !!!!(4! !( !x:6./-*;D80''!3. '.0(,/.$$65##.****&"!,'$'#A#oQD2 u.P:"_  .R&C. @8=kOހAC:."20:"2A.`2 L"/ .a! B2% P7"$A5? k[4$A2CO%aM1Q?  ,B4c*K3#2>aQr? $1  !b>S~"3,#bN +'!>3bO @$A#"!c0 .aC$/`3. >aPS/1?#1$5"@$Q C!D!BE0Ns B,!S#63!b+4/D4>K C!#."!0// "&!%" 42#5 2 #1 7! !" +41ο220#"! 213! !"  21 #/ 3W=1" 2  / 12!! !/"20ze"4"!$D2!3A3"!#334!;4!"B2"B!3B2!32#""3"3!ݾ#!31"#2#32 #1#!#""3"!#1#"!"B2#!"!""' "!""#!1"2#22#1""1"" 2"2!"!#!!#"1#"!4"""""#"!!""!"#!#!""""#""!""!#"!#"!"""!!""""!"!" "! 1""!!2""!! !!!"!!"!!!"!"! !!!"""  !!"!!!!!!!!!!!!!!"!!!"GB! !!!!!)&!!! Wj ! !!ZN!99'!G? (-*)85QP/(',),/&$$#"!())&.$(%%%&)'!#"023"/C/3; A/"OQ/Q!13B@"2!S#1  2A @ .B 2!`1!B31"4 "2/ " "!2!/ ""!2 ## >/1!!#!!"#!0"!!  !!@"!  /  !0 ?2 0"!>// 0"4$CS3"32#$3345332!"!!2 SC43CB3$1 !! !!3SD3C3#2""44CS33B#"!!244C433#"#!233333###22 ""#23##B2!u"2"3331 !"#BB21!!#C3B2!"#3C4"2""$3B3""!!#34##2.E#322#"##""""26!"!"""!!!!!!!!!#"pj IO<8/ \].,OM/(&($3630/0&'/.**,--* N@!!3r!R 1N.^!:0+B^1#SNt#R ?` .^O12&10A!RCw?!+!!@b!,S11' 13@B #+P */- -B# 2#"(>?2" $/ T#!2 A!2(q,P<CB5A $ a'-RO3",Dr@0 S "C $' -#a@ 2O/ S#? "S a2S?3/Q&!%22S# 6.e/t2#c$"qc!,#2@i!B44 " #/$3̾&0 E"CT016 #`. aD/#s?"#޿ $5*3A./ $1" 4 "0 50$" # 1?!!"0!!  !A!!0"/ 2"3"" !21"/"! 2   !  !!1! !!4C2"2#$532""""#3!3""3!322!"!32;#3C322!Fj!##" #2 "#3321!2!!!""2"!"20"2!!!!""#""!""#2!"""!"!!""!"!""!" ""! ""!"""" w"! !!"!""! !!" !"!"!!!""!!!!w""! "!!!!!!!!!! Ja!!! !!!!!!!! +,#+,@6[Z<7*/86$%'%% ;9*+'+)(#$((#!#%&%#@"<0(/q@A`P<#KO .I 3#A@D5 1=1B-44-u.s #(0.3 F! *1A',B!!_/^C W/M& % C131-M B/ 2 B(3B!-qR:-c/@R#rPT/04a!@4!"1 Nc" ˾>#B #,2! !! ">1 2"/ ?>> cB"%3 B^d/!`CO2a#S!3E/ Ba$!,ܞ#C3/C2?G3"!tD3> %3C11"R!#ACS"P13 0B2a/C1H!$> !R21  1!DA!"-3" !!  !#!/!@/A!0#!C"2! #! !Vf/1!0 "!"21/! 1!!" >*#2""2#2!"3BCD3!!"#S3#3!3S2!2"""n2 3!!"3223!#/#""##ݽ "2#1 "#2!#!"A3"!11!!##"!1"!!"!"2"/ !22"v"!"!""!#"""!#!""#!"!!1!!!!"!!""" !1 !!! ! !!!"!!!! "! !!!! !SI! !!,!!!!!! !  @:019F" EB()(( '%'-0@D%!%$'$'),+(%#%#!!3"1.R/AD#"0?$/2124$0$?/$?R?B/B BNA2/$2ݯ6!10A2D/B"B/"B42P! 30#B1& 2/#"3" 3Q.!.B21ݯ"!13#2@11 0!"RlA-##! 124  /!"34 -3B!"?"?#$."/0A1 # "!$A/""!!#4v @2!122""1!2  1!"7E032 !2!"?"#/!!=S"""##3CS3""" !34D33!"2!"4DB2!31  !/ _E"#4B3B2!!$3232"!#3"22"3""#"!b`"!"2#!!""2"!"##"2""""!!"!te+;,(`f! il"][ >8))((33444444433""!""""""""""""#344444433"""""""!""""3233444444333""!"""""""""#3#33CCCCCCC322""""%&8;(&"67((10 !,*''3#33333333333333333333333333333333"#3333333333333333333333333333333233333333233333333333333322#33332#3"333333333333333333.,)*(("N01 D@ /9,30 L>?"L.! =#>0 RZB>N2P>#0" EPD@"3M"`.?D= 1n4 +13C1r=?##aQ2r42?// 0?A6!C$00##aAsC31D4,2b# #q#Ns! /Cs5#"1743R""!/uY!$520 r.O!D14$>43rC33 04 ##c!B# 4=3" b5)R 32$0 3AS@%2c5AT.$1/CN47"E/3A$2S .m?!# $0%#3?!2 51"2# C3/SA!1 !4!"?4$"  /3B#A1!0 "  !"#! B2/!0  1 "  "" "%m4"!"42#"!4!332"#2.2"#B! 32!#2!!3 ##""!!2"2#2! 3!!31!23""" #"2"#""""21!2 22"!2 !!!#"!3! #!2#!"!"#""!!#!1"# je"2#"!!1"!"!!"!2 """!!"1""!"" 1!"!"!""!"!"/"""!!!! "!!!"! !""!!!  "!!!" !tX ! "!!!!! "!!! !! "!!!!5D! ! 32!;6 !01( AE'"'-&=C/..,,"(% 2-!#$$'&+'3333333333333333333#333333333333333233332"#33333343333333#23333333333333333333333333333333333333333333233332#33333333333313&%*)!?3 !:c>,.@02AC"S0C=.3$8za! &/ N3 q 31!&01$%?PB-Q# =5/._4#N0,s$kpOt "1"Q>1-!!2O!1 "+-%/A30!$-S#+5#& Q#"S5/,A .*Q c!ʰ4p$cPB -1O7Q DB A9AB0$""$5r-!D̾RGB2 55!q- S! G!1%+s2 # !P#"C2#"2$Q 3C 2!2 "2"!#S!"!C%"#311#"/ B!! B?"2/s?/33"! "  "/  !!!11!!1"#3"ܽ3 2"2""!22 ""2!23!2""#!ݾ""!21FH!"#21"/""! "1 #! "!"3!1 """!"""" ""#21!1"!""2 !""""1!!""6"! "!!"2!1"""!!""!!"!""2"!!!""""!!!"!!!" !!!! !"!! cV"! !"!TM!!!!:>!!6'!"! @:$LH%64#!GC&$"#//(&#'))45! //&&,*,-*+)'0.!"#2ܭ##C3#%EC2.,>"0 1! Q!"11!2B!55! #! 1  #2 @C# #!1"!//" # 1"!// "1.?!0 " ! /cO 1/1 !#!1  //  " 2l/" / / >"/! !!! 1! "!"C#T3C3B3#ͽ DD43333!!$5C44#"""!%)!/!!QC4"#"2!!ͽ"3#4#B2##3"""12#2224#! !p!"##333!!23422!!#$34#! "3C422!!"!"43322!!"#4#3#"b]!"2B##"!!###"""JZ"2!""!!!!!!&#!!!! *!!y~*(a` &(=< DH.,DD%%&'"&/. (+'%!$$47M Q/6.E g O$"411M2_B?\?^)Q010#!@a0 N"" `3D @13?0]0!b!##- !s#/!QR"% p`A1p.;c+.Q-s!+ O`bA,O5@=<es;N $2 5s!B?5 #613125 A /O" T4$%A$/@-> B#A2S,$B"3R4A" 4?CO5?!OA4/" 6S02C!#TP!C3S?B4!#1122A3$?1Cs#NB6!!D#4 4s"/B244?42 D > #- /#/"2"0A!."? 2B 0"1#! !-/}E0/!1@ ! /! "."0 ""#!#"!!#3C533ܽ#!4R 31!"DB!""#" "!"3"  #2.2B!3##1#""##"1"2"3!!"3""!*"2!"!#!"2!""!!""2!"!!#2!1"!"!""!"1!"!!" "!  "!!9*2"" !"!!""!!"!!"!!mg!!"!!!""! !NK! !!!!""!! !!!!!!!<>!! !'7!! !j`'&! '%69:;+,/+%.-6< %&..$ 4620&**(&#+*//$)&nO"B0/., ?M2!%0"" =`EO Q<,a @' 4B2 S @!2!2FNAj)" !<]AP3@510" $2Op1t@A\/S)A'0N>P#P2">-B!CN.C?.a$ /C!B &"/4 O 061"! !#@ N<1 t"$A.& @P35?s 0/ O%A2P AC 52_"@U4>"?B '2ݾ5D#R0ެ431 RC @B$6 !,%11 b/30$2#2"/B/#"1224#1# ""1!1 -3!ݰ12!2 3" #0 !"."@0h!!// ! /  1 """! "3"| D4"3 "!"""#!!!233D5"ͼ#"$D #"#4C"!2#1"C1#2 !#4!22#1"""32" !""31##"2*!!12" #!!!"#!#!""""!#""!z!!22!""!"1!!"2!!"!""! 66!"""1"!""!"!"!]B!! !"!"!"!! !! !!!"!1!!FD!!!!!"!!  ! !!!!bR !=G (4$]Z)*$'3-BD62',/0%$)*)&**1/&&/0PF24a1 A/S? S/1'"b0$!4@B/ Q t50$#sBT0t/Qcs/% '/&@ 2 $/$PR%"D5E7?P3sC+D7Lg"B#qa /4t %0qB/"26-.0 @.0?"##3!. .91=101!"26}v#.LOo!@QA!C5$,] _ r!CS& -N-QR!B5' .O,_-a #!l~!%=*:0-@ R@$A=/K?M1OBbC5% /=. @3r"S%./TA c0D- /+0;1."@D"2 3 ?L?/P3q"2N- n`/B2bS & y,^Oq/q!b 7  / _P!B15$  +?:1M1N3a5" /,>L0>?0 a#DX 5 -.?@ART 4 ;/-OMpa#"T&= N,@-Q/!!" 24% ?,@=2^Wv1`"B%  >.@N0pACS  ->=p/pBcFO-Q 1/35%!/ WbO.A>2 2@$ A#  n!?1A!2 C'$.OA A!bC' +=/` Q/S!C@{+ >+P>A>A!"$ / ;PN1@""1"#. ./LO? P#QCE'--.=`?qBb  ?A.q#!U! ,a.Q153/.AO0N Bs % / A!pjAbE - O0=?asT7P Q 2,? 3CG -  _?p rC D- W/A" !$/ARS7. /0L0qA51C#%o Q$ExB&?>s1c!& 7%/ /D#SD 4.'/ /bc 5//>#/P01=|cOS/_!b% ?T/@a!$,q!C!!52b$ ߬>a S /D!#R/s) N/1"3 ?1"" O!1"3@! C. 02!$N!R2.D(PQCS%  ,, !"D -`RS& 2F"0IAT _R 3)? B 4 .D>P23?_2A!,%a$>2>Q0#  .2! " "T5$/-,SSD !cD%//-BsC ( 0DD%.>?1bc3+=+ 47 ?Ps6.M. %/ @0Ds $?=%/0@@RS0C0 ' 10@/aQ/,R!& >-21$P3N;AB% =M Q" & .oB-L a'>N?Q%.0B s'b^ R'o 3-A0&0=C+PR ;B2%?=22- 2@#--BQ$ N c %=-6LaF >QS/B5 !?!/2>$=NaC/!?A 2 Ar'pS 5,?Q~"!Q" /bT=Qb !- B>+0AE-N==?' ?*?A/cP Rm6#2@^?A"Q# >-@/a4<N#Q$ C- >= 12!3Qt%*=M0P222 Sd M\ P QbE/@a P .9?0B3U >aR 1ؿ."Q$C!1#0,? sCc"  O-",?/p b &?.pAQ>Q0B"$ -/>` pRr/2 O5?,0N1^.$tE =@pA2"$!$"e 7>PbE'02  =`O1 "%/_0a" f> N1NB1$?=6++/_Q"D $<O/AP O^APQ#l$/- Q"r23,"U4.+/1r!B B!2DT-/OCRB#2ST  ;/A1a"%W?!!/>S 1$-S =@@R!# />q/0 0h~v/m?` 35=_ O;P>A2&->^?QA= P?AAB" N_?0.=<c"F. R E@sd _1a23  ss = `bDEE$/.@-5{O" # ' , Q2"  1!!7/1?/@#7?.-!'Q/0n15 !7/L :7. /P?R"7 ,q b$  2"B2"!av?_AA#" + ^@02.0 $ D .-?N`!$& -= N/`/QF$<-7~a!ܿ#@"a$?O1P aPRQ# ?-1O0B#rc6&. ?`2T%L"B#5  :OQ R6 DC2# .@?C$a4 5 -,@O32 #c4..SM4v..A0'B0 =2"u&.@sb! 0$D% +?#b"P;A"R$$. ?M"15A03L=/pb!7 >O0 qQ A!24  ,M_?qbC C3# >+0>1 4#!1#C5&-?=20B!%B5&,>P0s6 K   MN_0b7.  _ 0N- Sb"% N@.0^,>>@P4$ =+_ !MB N%"+ A0O@!6>B.'. 3u =7,+2?2R7R )N/A?2,O1D +_@B##.P4 0 PNQ "s# VE?4_O4_"".!G2O-q.32:!@A ;3/R3 #`4 <#C.16R"!" 0[AQ?U?1A$>',?;A 24R1!c5D .MaEs)/`>"2DS5B .!PQ"73U3 "$/@=2$7 E 2+-q,B&0 @12c- >>]?p$BN_@; , _"a.$O.2.Q1!s1 N@PA`/t#fUD%,>81>2>#?Ra2 5+->>A?RTSO"0%-;/^!@3B#c"5 ;; ?`!2+2# #BT .M` B"%.?4*-M OAB% ?#<=8@213C-2. 0$.,^Q a0C27 ,?=.BC5AP257? 0@D2O0S <<!BS"4 371E ? )y. ?O0@!PPs C36 ,;OA1Q!"!Ar#s   ??a R4 #$A$4 /.P`142  Cd G#/-/1QDD&#0%4 &$ >AaR"# !D!74/ PPQAB/700%LCQQ"".?P0A/λ/r@2A$P=!.a R b.?@@A BQrS%?L._P`+`.1@"$ <2@> `!s%00!5 5!$3/1>Q-"A "!& >/`14$/7/! `_ P46//>Q0 a1 ;1ES?E0?!!@@O 27-_P !.0>=/"bDD#<<0AA@@1@_1RbC <bK1A NQROC% _>AA!OO@A$7.@ bTD!!5 .=0@A"%>.0_BB4 0& .P?R!# -,N>/-=>_PB"B>QQ2A?1OO4.?/P!B5!"%-/=0^1S  5$4 0+P1% / % 0>_ $]"S% M P0N?L@2#T -; >.N?Q3R$ #- >"!/@aS& -@R=8" #.o! S"&0#!!3* ]Q"c5 -1>/A3D !!#0/>Pr s. a/C/ !BCC$P1b/3$14#b4?2a!Q"C 2"  -M?_!O!10QR7 @?C5 #"! $ B$ ! A1R33-A0A0!aCcC4 /A/B!121B1--O0A""23$/ @,Q.!0"# >0/1!"!!"5/.?AD%""/->-! C34 %! 0 ""60  ==?_A# " >>O@C#.M=G%/ 0".1!A .?1 ! "12$ > @0133" O @033/Q/R!#220@11  !?/1@1# 4.#/=N/0.@/!#/ 0AC% 1"!.0B/!/"2'#3>110!C4 >/212"!C. A R $!"2@2BPi"! /AA#B!  /0A!4//  13#?A2 "/1./  ?.?!2" @1" 00"$? !"1#.!$ /!/#0.!""!!#/? "?@23   //1/!1#"bH/ B$/1!""31B"  "2 01" ! //20""2# 023/ /0#/0!6L !" .! !11?0 /0fr !#! !/! 0/! 0!#>R  "/ !/"!!0/!BB3!2" BC4#12#3" .@A5437074 2 16-?302@B".,Ep3ZAN,>3#>`1$  RO2># q-S.? A%%/2  A!0/Q/+A6@,#4R141 _?B%,4Q<2? ".$.D 2/ t!/].3 B-r$.H#. 7M*G&1B.!2"%1"^"B! u!0 A?  5b .2#3 /C:#$0 T?S!;q6 r #ݟUA?T,OR#""44/2!/7"$ /%#A30/?S!> D 4 1#2a3?b/ .5 C 22!/=Q-&?#"!!R 30#031D B N"/%/- 1",@z. @0#4//2?/!/3"""A30>"/"1 A/!"".@1$. !1   ".!"C"4" !#A2"4!4"!A3"!#22! C3C#B!"" !"4޼2$233"3 1$!3!3"/2"0 !2#"31 !1"/""!"#1 !# !31!2"!1"2  !#1 21!!#!"#"1""# !#02#!1 ! "#" 3A#!!! !## "!!"" !"# !`o"!"""!!!!2 0"2 2"""!.9 "#!! ""#" """!1""""!"" !! #!!!"! !/ "!"  !,! "! "/  "!  2! 0""!!!!  "/!!"!/ ! ! />?!!" !8S!!! F89: "JD!'!&$G< 1; -()-?A!!1-&%"%.1.3 3B203.T"S 3BSB63!ܽD!,A04b5 #qCA54!7@-!b%3 RPCTD?B.t!4t7@ RBbs1s1>r3&1C521 R#DDO1Ct "sDr=SC%R4&#]sN_2-"n/*3 B_` &4-O  2P@4# MO  #!0 MZ2.6c!P?!8!Q?^>F$QO:$3R0N/73s?] $R PR_^# _.C0,- 's0o+ @@ E @+$0@=6!@),B!o/$A=@m2Q0N >'% D@}+#R1o.T!n-4 B Ps O:"32aO.  E @8"<""@ A= D1`;,21_? $A1}<"C>>#r@n->Q@o =</s_]L2@%- c0N"2q<c0_:"!!1P.N.dfc!`+,AA_/'1Am!]"C@>R2m$"pNr0o; #02CP=>s1o+"*! 1AN? 7!0lM@"n> EAP:-2#@?%B!#};="3!? /$.sB^,#3!a./F M<$ EQ.0G A 9Q0.]6$R>N!$q._UA*#O$@!n $a"$^"%B.;?G!=0[B*Kb@ނ?/.F$$>?"b!q0V2 p2oOR?N;22BNerO,"]!0;^*^;N.O/". @M^%- A<=,=N?>1 1r n-"J=  !>!L?M =o<o@,=0 /,.;~~o_^^-A? 0M>KL-1^ ?_ @-"\0:.,.. p0__L<31_O.* <. <>;<)-1uW><2P!!^><2N.!>0oOq0]>P? .M<\L]^=o<@@/M>/-!,,  @2!0!@1O;=1L,!M;;o_"A_ ^ N  .-I, >0/=.! @^N"K;. N^>N/^>^N-1,?..//+O,p=O;^ a[>@;~+<*!> //.?.N@N>";.?+. >.<ޠOo>N;-@ !^N]=KML0 ;>;/.=>/>*>>M]LL - /</_>_L]+#; 1.>+.,>;n<"~, .F2/-=>LM9N9M >.!M }N/==..^=N?>:^ !_*#?@. P<O<%nD?N/=<NO3P/ P2`!@1-/ !_ ?.П1%4v1q<"%Q>+"Q$@4C?g!~,0* "- >-$^/!_ 5!a!N.BO=! /Q_]-5qA?L,"!$@:v>>5Q.. 2B// PM> &O /0_=&3q?_-$;1 $/;4=0 ? 1/ b0A,NO ^,A0`On>$ 3r_}L "!QS?b.!^0 ? 1- / o! O`_O^=# R@O--3#B?OO: -@/0  #=D#0@OZgON#p^= #_S "a.^," !,1L-' ?1/"!11@>/3_='n8m" Q+0QrO0!l-0N18. -$ -? 0#1B0O/<#3M= 2?p-T-!A@0rO^,#:!E=+,;$-! ? 0?#01@>/%a=M1Nq<>#R@L] OU/0-$?4/=?_3!O> $N!/rҰ/~='!s?N, #.'P!r? /}? @.B. > $$ӌP_`M?(#BAL= #0>sA/a = @.3>.J /$3b1>#R P0o_No0>=>$"Q-R/t"q"@ } "/T@#?1? B3W#RF OP<> 62,>00n3r`^L+ !KC+!1=1 0"2>O#,.A`M4lX70RRNJ,<65- #O2BQ.0.!"/0.//  & b$aQNm,-tb1]84g 4O r111"!>*!- / tPN-*#0N9: !P$ D?uj .@  //S< - 1QR0@>^<%4A~-I  Q>Nt1 P"M/ ,$? { NNO/!B1p^M, #@_!!O_rA^=++50<',@!=2-'.1!AO ^- $/M0!rN^RB@]M) > ^$. / 0F/AQ O>>FP  PӮ1o]-ranNk# U !0/1N?,2,!?-- /+A1Ҡ_O:"a>O#,@ 3@r1.//? "/",.  P aA`-.&%_)K,R/tA!O <- &0P/.#- O.!#r>O+CN? +! OP+"`qPm-) 5B N $.2 1/ ? 6 ApO..% 4!2 L-#Q.^ 5"P<2] E}1$:A 3PAOM,B .>14"K$$ 0ar1)713 =OpA A.=Q U 2 *r*@.""" !#C00#!q9!B /S !r9!..T0 1 !#tO#`,#N aO #BP1P % &4/d61"T1!q.3 & ! R   "/A" , .'3̯ "@&-6 Ѡ/!.C"4N.  'b64@M.߼"$>#]!-# 6" !%PB> <#s 0. E1O-a?)23,,B<'B?D>2B=5Q0/ pp=+4%0@*+LR.3"$ `!! ??@D.1A<, %B0s.n='=3s=M] bRN!O &/1!_>  !!@M $pp==2"O1:<<22!=OB1@": S,B!Q/,!@0 u oo.D $`N":7p E >10  AN?!O!2 03bq>>#AaMNR!>732b?2^AC0! nC!.C)"AB0pP(-b "],T>$O 55c?!O!!2.?*"BS!"21A>OT+O4##Z5"0' #C@ _.21/:324* "C _3ALt!a>$E!]xp!- .22!."/#&"$O@ -= S #61!G4b/F!3_"-3 #40 !q"1  00 / '/"r.>0$.?!J14-B% CBp0$P^=-$R@- 6%BB>"?A">3#S!25!a_A4O- &#0?'7"1$/@! B"!S C C1`?^ 2.=+ TCQ_,SRP P ,!,"5B1 R"2RoO  !? Cq016!32##20$,.%&2 D4!6"a>#3?!"4Qw%?D2/16Q &/#"R!4 !#.A!C! !!EDQa .5 2a"0B3!1 C!O=, 31Q - bRQ`!]1"!/#"13*#>E2#A0 D!1/ 5"1! %4b0  .C/014#_?E 3B0BR/. BP1O/#D3@O--5"1O,C!$ Q?O0-43# "B 2 $ 1 !11 CRE/ #R% / - "5!DC 212Q!" Q7 EA.5!1#?O$"#/1"1/!B1 O2C#%0#!A$2/#_ 2"2 30"/r 1 B1!,"#1 ##Ba."11!" !2D 03!4!1a?% #Bu??--#/#!!"!R@C 0 30A/!1"QQ?AQ?.! ?+!@-, 04 !  #0.A@`O=#"?=-!1! @"!>0+T AR1 /3!"1B0/2A B/$!44?  /"32/1/r|"2 D1/B  ! B!1# R04Q$!" 3/!12/2 0 2 30A !/" A 3>"!2  3 AR Q-!2 "0$22!1!A02#/0 ! "3/"Q14?2 /31Q/3B.<1#3/ " " 1 11  "0#Q qKO"  / "" A?# 1B0/10!!"  2!1A / 30C!A/.  !!"1/-# ! 1--!!/,-///" . ""0/#.2 1 "! ##B72/ "! !" !"! !1!!!/0#."  2   "!!2?1.   ""/!!!!.1 ?.!//! !/N6 !"!2!01/" !  22!"1!  !  #"!15!!  !  !/"0!!!1_b0-RB7 <% -_722A_==D,?*$`.` $ "A ;2B""CN6 t!%s4c b0#=3Qc#?TB&2߭2r2 $3`/c0^/!a AD +"j#A-N720 q! #3""2b Bq#!@0s>'34@1V0 ?t+CC2 %"B/>-r$BABv/r $%3!BQ/ A !$2S4N 1O6#$0?@BA/ CA1#2U!L@ 0!NS 54#/01 4B"-T 31@!B1 2""/!!3 /ga$ 34"2$ !"1 10! /2"0??? ."1/#" #"4 " ! 2! 1/$ 1 2! !/!!/>   /#"#D"!"#3#2#2332!1A"3 ""!!33 2" ""!1"3 #32!""#" !#B!"/! 4!" 1!"!"!"2"!" 2"1"2"#!" " "A!!32"""2"#!"!! !"3!"!1  #"!!!2!2"I/"!!"!!! /"21 !#" !!!!_E"" !!! !!!!!"!!!! "" }l!!!AK! 04.* IL ,)>;0(# ,-/<7.&'&%"&''-)+*/!B AUBR ?%#s E E/S"BQ=BEFX"S RD01% Q%b RS S?1"3bT/D % %AD %.25P5BDRD? O)1#E-7D63 Ct"0CT . -P.P>1 %/< ? _M!N1 1333, mN0o1P#C"4. ,NP1Q1bb-<,O1021D2  /*_.!O22# $ .N;0M!O22#3 =,>, __"b"b# % -/._ r bbd.@a/2.#% 3 ' / BO"/!"D # ,!PP!#U %<= Aa2s $V%//_aQ"7!& ? @r/R $0/ =B@3P!7 +?`.>?_0QB"t4  -_.p.R/C!F !$/`@>3"5X-/,@N1O00"Q$  ..0>?` QSE ';>/?`/aE7  o.P/3/Qx|?C#$ OAO 22#$= >*M0oP1"4%# --,o!A!a/3d & ,=@O*/q?qB7 >9@>2?202$ >?+@N!@!#3#-$ ..L /1p2Q 3$&qYPQ3s7 Aq!2!T"q/Q./236 / ;/OQ"BB%d!#.?00NOBRE'// ! P/"`!R6O JO0.tC % A.l 7QRS  ,N--_.A?b4. $!E/^aDC/Au  -@0B,!=!"1_2i_O`!B  _1B3 =0QQ2# -@QC$/?@qR%2 3s!.PrDBOP"5.T;` B$ _=b?7Or-@b N?1B#.3' p1#B>^1Q$yBBcB ARC5CSr " NPDC7-M-??qU--//3CE>2.%=;113B -!"$/*P03B->>!2#%.!DN Q2c`R5/4- r"TNP"/A1"/E 0-@N!52& "! 3@,0N0O!"@U@.B4 / _/_B1#,  Mo1Q@-OR43 @`2ABq" .1aB,?aBAN^o2A'N>qR 20U0_Q& <N0A03_<,p 5o.1!"C@ aC kS>C2"B1$0"S .`!r&?r70r&PsF_R'! r @@b#/ ?=W:`>604 ?-r3` 5 ."..1Q#%?PC.3/-@@"6,OP"SO -/+OQ$4 !?3%-!D;BP! Q0"4/QT P1R/A@/sF @.QB 0 "-#0rB -?`"(1 4/Ab'=_S '<>-`A/:>M1P!"&...r"!r? .!#DD-?RBC2"TD%.+?ARC2#u/4. !}0C43 V K>p!Q6 '>P/B2"  !=O>A@R$ > P3YqB"; 1ScB4  /QBQ 03SCD+>`B"Q.A`q"C ??`00.RbDB#o .,o/AC % 4',-/N0A"B45%5 +-.!0!Q&# %F .N<@ 4sG 0@  /Q?P=   0 4D?"@AD7./_Rr` C7-._BsO)kbC$%// 1-20411#c7#  /,Q0c!3b3t & Mq!b$ 7!U  I ,.?O0A"32 T S 6=,_>R C / .,?_@ Q#.P 0<@P#!s- @a @/sAr% .O0pQRrR$/ @2"$!4"PQ$?<@.!56px# 1OA%.>N@@#Q2p"C5%-.!@3a#3cv  ==A!b5/"&L; <<@@P$ // ?N"1#3 .0*<<@p#$  , ?2@@.>.@DR5  =0aQ2/<.?SSE3 L)0=2? /_p1b!%/NP02!2!RE >/pB5TC12 =p0Q15$7zc1E$@q3D1#7 /`QB31 $ ,>Aa2b$/?.-+?,O""=-O>01su"" A,04B6AQ4 7/.?.N "S6"3@"6/7?O@} 1cd $ % 0-@,"CF-ν.01 -!"1#!u/>PC#U/OP .7./.M_Q$D $ ?07O (=oa3S5!"!. /`BR3 AAR ڿ-Z`!Q3.NO?0P/1` 2"5/.0_Aq Q .b4 /> ?@2R/sR!6  -?b.33 3C#./@!a4/???0`R4 &.O1QA Q-#!%. N,8B AP1 4/ ?! 3"0CC?^1s G,?!s7! AbV!+>S4O$n/ "=.o1$4"R3/ q]*!/!m"!3"/ 3?p1 D #O.'LB S #/@"1S"1?8>2!H4@4A2?O5 /!%45U!/%!!&A6"0 % /?O./,a O?Pr; 'N0?B".s.Cb4>.1QR/ "D <+@A5 #& c"D! < b1C E#M* ?q?# "$ % ".## &->`A"$ "% O" 4E ;0'^ 14$6M @/^P@2S!+@P1p@@"A3"+/QNR??P R5%- ^.'7Q011p2B"C'?p@A2tc#.;POC?$3!#3#&?Na?12A$QU `0`D$  %%' NP!#1D#<- ,1N!B5>'- <.O?0R1XB  +0 %;OB7  /1/NM@/R#/@"qD.0?A 3R13B46*..@O2QC4rT'E@1PC! #127 QR26 b"BR ,q2r5@1'A@ QR4T 3L@1&Aa b0C".-Q0r? QaSD& @>b$O#5PST -/?!rQ" ? b"F-=0obb%b30A!!36 @D >=_- /#5U!/!%27.000/M2!@BQS%S ,. ?BB3$4sF>`0Q!D $ :?@P"3$m !F!>M+ !"5&4.>?-=QbRB#  -021"P$/*-aBr24.0P2?#cB-@a C!d"0R .APQ"S3t$ P`1b4Sc'.P!b3.2B3+1Oq232  1B 0*1`Q$!5-0/0a 3  'N/O!!$@P BSg>2 2/c"3"<OD' ./>1Ac3 371D/,0$#b"a 1Yt =-1Cb4!sF. @uDݻ2A5 /+O2Q5% /A1?,Bt$R5"%.$@1 QaT>@P!/! qT7>.AC$%"4"?2>Q@!~ 6!$+Q=2P13 B65??A a# /& @P 0/qS ?A B#bBN" ?.@O 3 #31#. 0-!?1"2BR5'.P.A334 "#9Q& ?QDs..12"B#0+ N3F#- ! A0!Bd4 ?CDA4@@33d\D M_0 0/00B2D ,Oo pBB.403 2  =;O_Q"3#!2 <_/#@4w 2#%> QbE 0?0@!R!D% / @BBC>B?! /Q?!!3AB"OAQ323##/ "$=$0/?@1A3C$/?/#  /?OARE44. 0BR1 $" / 11/337 > / 30D# ?bU>Q"C!#34 -P2S4#7/? C!/!" =@?R!4 !3% -P a3" .@AQ"2#$$/./P.b/"1! @a0B01 ?BaR?10/0AQBB1%?10/ Rb% / A-B102!"D ?A2""?14/? 01!!"!$.= ?!!A 3D.? 0R 4"2$- //2"D!113 -A3C"3  @3C#3/;=$.>Qb5!1 /?B"# 1"  0.A@"" ! /01!! .0. /!Q2$ /@A""!"@.?"3!"# 1=@.#12//?> " "! $?@A$%/? ! . ".!'!1" "/ 0.  !##  /!0!!"3 OQ C " Xt .1A3"  1/20C1 !# A"B"" /1 ! B3 1i?B3"!" /0 "?1/" /@! &;//01#$.O!!"!/?/"!1-1!""l} #?/"#/?13#/   / !"  0  2 ""?23  .1!"" 1 3 "# 1!2!!?!A3! !"!  !# !/"" O> .? """ 0/10   " ?/ /  "#!?!  B/N2ɿ1#T4E4aaѱ@L%/;0040b2`C3B `0>0A"/A# 5 63R3Q5 0;!$"%*^RA3?R !ߜ23sD33r">% G $0? ?H1t T"RQT0$2D7N$!14""Q+37Q 7 C0/ G.A>' % 5@"@D1@? `2d 70%&4.>As2"="1 552B!0B1ߍA BC4&41 O&#" 1'?c.D2`Ac b0+ $D!b bD/r  >R3#C #b"/C/4/E@#1!SO01I"1 %!  $2 3AB25 /0-bD"1 -R#!  >0!O?"!"?"1B.#A.!/2T#>/!!!B!!!2# 0"2?/B0#2% /1"Q342!34 !4#! 42#4!2!#3AD3$ /$2"C"0/#1C""120B"/.O?!/@!"20- 3  {A3#""$!!1C430313"2#B#!##"B""x!3"#3!!!$/222#!#1 "$ #2!12!""3"1 BA#! 2!2" 22"1 "13 #1! 3/"!!8M"#!"!"12"!"#! ""#!" 2##0"  #""!"!/"!!2!"/"#!"#!"!! "! 4A/""!!!""!"2!"!!!5& !! !#!1!   !!"!!!!! !ia!  !/ !"! ! " !!!=A!$!*3   ah  9#!:,'" $+#+/)71()///.2**-,,(32//"!$!33.4E%3 &Bd޿R5 65s1Rܽ5cACqD"Q=C34s%" C0RC7? $BD"St""u%A ݾS!T45@1Os"&43cb! 73t@&"RS_RuF_ 62f#o.7?"s.A.-1 U"PJM6120 @50BL?%O$ aQL=#" pi0 RQnn 1!@ . TQ_N#1A, 4#qN-!d BM.> 61qN-Qd 3C0@+'2rnN  #A!- $"rM>D""B+!-#r^^ 0@+!<IBOݢ>) #1M =/#4p_. '1=!72r>-U"BA#"r?> &!07/?<4q^n % /!A:22B__0! DQP^ 62>.0&"QO=L%2!.0+ D#s^= %"1@"  #qN^60!%b?N 1!% !@-/ "r_O"C<2< S_`'!0-1N/ 4`Co#,!@>$3Q?;&!#=. %#QO= S#R//- "sO>$ 0?Tf"b_^ &D#D?2 C=Q*B.1 e!a=N#!1/ S1BK$>%i4-!A/ !%B'^FT" a.# s?  21 -!#@:, t/-R!bhlq"  17"!s13  U$/T3#/""!4443#%#R o0"5#1$$R4 &   $ 2W'' 1G"e4 !&d{"$!R?P A#36 FD!1 R!r!.7+<5T"A$"R@a0BR/P0~pY!1!3ESS4/20!/S+$!2SE23"aQ`12%, $'32CDU#Rr,6/#>25"  !C$t"%1!B!r G) &$C2" %%5RR3>#"/ 05 CccQ& ?P`A$2$ C@c2R#!5RD@R# 1%5C"R2US#2&O$O & 5&53##"c"a 2 $$4%#!"3144/,#L'8iE#"32cQC!2/2 BB#7F!$Q b!t-7 ,4$E2C!24JRa2" .?26A$"" $ E0CR40"A߻ D-c/TR3!Ssa27 R' $!#"r% E5,! $37 %7 u TBERbr BG!74BbLlR!q$0!!3!"3"ͼC"d'ABA!c! B5$S . 6/2&C$de?,B3CRB1CBBU//51Q0a s1LE"CS"D/@!D0e< !# $:*$%030-! #!ޮQM^ 4"a DQQo>c3 _='"O._0/'3#>5Cr!_3,6/ 2ݯS1#!2+! '62QE!RAF3P"HM!4*$BQaN$ EDO@.-!?*%$!3" .2-!D2.^ 5$! n#3sA`E#b ?/@2<. A14!N=J!"4 " !#2qAO@.TC~_ ?GB-=7 1A?1 C`!L-"$DC !"bPp/Ar*=Df0 '#%0!?!n+!D5 Q!#BQN1"28.M+'# r0 d$B@7BPQ2"0 #23bQ! !"bqP= 3n/  6#3@04V1!/ '60* Lz$ #3@B"P1mND 5$s@p.d#c//@4]] !! "3a)aMn<C0A%T2A=>"S_P,?#0'& $3 02@#^OZ-#5F-occ!q@ޯ!rA,S1U0301//2s$P=(DC# #!aP7N02 ;^ .$R@$NS7"#///1^~9B"r#AR1q?"_bA<I %SCA=7 %51@/0 T="@$@3"P`NO2  63bBO>7F\"/3-/ 2>'l '2Q0Rs>p-,3#B$CaQ?.&B A/_!-.d!,N & !"!B/!#_P[> E 2%3bR`0#U1P <%!C1'<4#"/"BC2"Qb,$$S"3aQ@> S/. /nG!5#6@2 ^9*$CBB0"aQo0N,"1a31$q*ޱ0_6!!O?;.PCO e-$$3"A-q]= Ar1' SSQp_ " ?O(m$5>.4 3 6AD.?0_1!+K-bCp %a@O.!#!/ ' 5Q 6> &A3?"@."q8L%1" C`PMCP. D!0-%$./!34&>,8 !R! @. 3AM]A`P / - ' 6A@/Q?>%$!Q<n" "A" #,C0MB2 0>. $ 1Q/?Nё/<5RM;*"# 1 $3 :(S"B@B0 @/RϽ4$aR"O BBO?+ %!cbq#= B@bB.. $D/.R"Bq s @p +$4"AR!Q%Q E2>"? !-Cc!!/5@"#*0@<.3BMo+!20>BSp^^#  OM"N $?.?134!@>.>7#q?+1 ONMb`_NK 2/>  R,2 /3/O#C>N _1^+Rqo~* /#N +"-2/>?P @3P/B;.O C/-?_0n?-4BpnM, # %3s0@/B#P3a! !,BC3C%"R ?U2r>=C5"P^1*00 5-.@ $1 !O2O?-6#_=< 2 O"1P<#~ 3" " 4.! !"BBBQ@  "?O  ""5"ARB5P?D, B4.S/ABP@--6BO>"+/ _.;4 N8E P ,0#=CQ_>"/&! #&!20>4 a 6?=D  R!"C/31E!" 1 @-%B C"a-@ FA0 6" 1! 3>1!$#R@.?!2$!B?/-0S $%A/#* "4"B4D B 2-A?/41C @q7/Q7 O 1"0-,4Q@>- 1A?N)###>/0#2..2/# 0.$ B 1??//$!pN=+$ "A-$-B.N " 0O ;!<%!0j?">0< "C_O;."!P.,!"@>.1  =0/@_#." TA s>@/B"030!> CCQA22/ !A R 1"4?ܰ.$#0..$2AN<#11N -./3P /B^#"a?N<@#11 2/ 32#0!? #$30"!E2R !!1!!/  !#"A!!!P->2. 23R_^"0!/=2=.B"1//51"#0#!!.# 42.C312!  $2@5C31 #"1@|l"0" $ ! !/ 2B A!""?4 1" 2"!12& 31%/D" ""1! $ "3 "/!1R 1! !$1.4 #3 #! !!322! #1 # 1/!!.""0B !"!,!$10$B/ #/"2113  #R/ 1 !0"!" !!3!!2 !$1 30 "!1 0"!/! 20@/#  %B21!  !!!""1#.!/" !!!2! 1 2$!2 !!""!1"2E: 1 0 1/!"2!"1*4 !" "20#1 ho"! !!# 2!2  &" !"!!PJ.!//" !  ""!" !///   _ͳp1C@1PL3K/ *?$#A%0D.R.6s-@C2.#v>Q %0/u"!+0*.2'2??/C U.n$. '+"02AM?C1Ad(#B!>p42a41  A2 /2!%"P.!Q/5!ݭR?S0BOS "1p40$ R$B 1&32P50 DD1>4TP ! s.S504a#>1 -111 "B2D53P'@ "$.0$2C.C@12 "&15!2.D. pk>#A$A4!#!3!" 1.#  !.23 222422  0"" !C2!  1/  !""1  1#! $//1"!" 0  //!!//" "0! //  #! /?.!1!!|"""4 22"#!"1"1!"!!1"!!2"2"#! # /$""2 "$! ""!! "2*#" B! !#!"32!!" ' !!! " "!1!!. "/!2"2"""!"!!" !"1""!"" $ "!"   """"Vf!"!!!!!"!!!!!!! !!"!!"!!!'!!bg !!!4E!!!!%)AB;># :DBA.1%&$#'"!)*)(*((&0/" !3!$@ 3B  =R!B"#"Aa#Q#3B%3!2#R02$$"4A?$R"?-.R!!0"1?B .#1>$-CsA0%-&1P>eA`>S-"#15- b@>5Ap3Q #-C0XdO-D`O4,A/&O AO>4PM,-#@/-.+"Oo " ?=:O?-O , ?@ZLEAO6 }ݰrp'#o "q" 3q r "1<2Q O/@/j6N'P10P /RA^A!`"BS0% Ao,bq=D1= ca=ܱ $rP.7/@;#L4pN,% 1O,@]-O_M !?N \0 ?MO]/>@o+/=~7`1SA2p) Sq<%A.TaMRp'4PQo Bq a` aMR! +O#N1@N!@#2@.0@@4"AA*bq<+#Q=DpM$qP7CPB`4q R"2$p Q.Q@ O#ar^"1=!?3ө2Po.0P AC#P1p)/rq-5Q-raM%R` 73@AAP 3q Q "A$` Q--Q@  O">1A N0Cê2P^.@0p1C#p@*Sq<5QraM6Q` G3_AP  &Cp Q,#B%`>  B,.#Q_  O",>"A NOR0`.@@ A3$P@p* tQ,$Qbb`M6Qo G3OAP  2q"B+$A$Q  A .4B_  @"->"@e< >RҼApo.@@ ARO`/tQ,5`cq>5BpV3O#Ag)YP $Cq   2: 4A4P.B/#-"CR_ .@">"12 >q P_.0@QQ;!` tP+CPsp=4R`FB?"AP % BQ " 1+ $A#Q ~2>$CB 02.!A2 .^r!__=1@ BR?!P/sQB`r^a`-EB?TA.>3A@  %2P !" 1: A@ B> 4!B!^  /01,.!1@ /->s0O>"M1P"3a^ `o rA a_rp.DB_S A>31P &"Q  "01,$A#A BN DB2  .0@+.!2p .rOO" .!0C3q>2?Qt@_ ?tAQOr`.520DQ0#0@ $4R  1?1, $A#A- C^M53!_2A+'/#p޾.?s00?3ϼ>2Q3CaN"P`AsA RPbQ>YZ4B TQ/ #@A %3/a! O!, %1#A- 5N 5B"_!@/#p .q'?_?B. 0q 4p=B_N 0tA QN q@>4B TP "1Q $3?RuT/"?"+$22Q- D^ S!R"^ 1P)/35p#Q0?B/1r #p=Q_^)f1s@/P/s`- CQ/ S @. 31A &2.B2 ?!+51!20$McR>AP"p5`??B> !r _-AԽ__ Ar1`= rP=4B-Oo@r!1/ 2!P5"C>2(2?!,%"!B,?$M D B"N0&2p 3Q/0-Mb2 q _#.QON" 1r1?`/ r@.B1, R1@?021Q &!#>327"+"42!2*!?%=DB!=#O(1BP/P//q O#-PO>22r"?'_. rA3!- R20?!212 6!#N"1?2+#B"3:O=C a"N8bi@%A`3P  a/q O#.QO>22b"_o./r0/B1+ a63?/ 2125"#M"!2 /2)"320"*2o$<S`L!#o EA^B@ "`0qN3q/P$a @$ _/a!.2-,q!@.3"DA$=$!A.$,h33^"(Q^%,rO+?NR`.ҽ50^ $A`p'/0n/>/p ?.A #zO_ߎ ><;B1/-$A+R/R. A!= !/4>4 $>4P,COF!`, QM6!r.1nr_>R=$b_N/O1/ 2&?"_ +-R!?2 #a2N#!- A.CO& "5.($P-r"? 71P;A Mя--4!!?!",a"N"< AO3O& $!>$P,R@' q<An&#sN3*b^=c`O3_/- 6PNO@/3@>? >?>3B@."?N,#Q@;$/# #q<'0L& #aN&a>-s!PM"_?t`O%1p&B``` /3` !@! Q_ ^0 R. PN q"?/!"2- BqN(4?"LDO,BP^ 7!"7 BNaO; >/-A1" s G ,abD %B1sC"t5#=DYPQ1% "bQqA10!@>" 2>"1B04+/..LC@!#6_3!s!01BrAm3"M 2N$B' e.@ -&D%2qN@ $Q # -a   2 44Ra "1 C"!V. RN$&-17@ $@" L>#aA< B+.0!6",.t,a<-` "#O _R>BK_ ?A/#P] D> No/=" /0=  a=+!,2.#4? :1n]$ O4RO,7n~ a.-. 7#^+-,p_/ a!@ / -PNNC %." > _A].@. O?(A_s" @OC0?( @3 PM41- 60L 71n,4"P.EQM q> "Q!_w_ D@ A!.44B4$.A120!Q 2C/SC@25?3cPT p/Tw 413M:/C_\ & @%=/B_+T@o< !0=4OM=-' _=# A>/,/.sb@A!!R. RC0 2&"cO S `D-D!@OG!OR-6"ark.ۿ" R12"3A1 5 0B32R#@!!0A!BQB0 "$/"S"_ E!A5.%@OF2OR&C?ܟ" C13# #"0!COxO /A.< =-> @..?>!._/-  "O)@0>30+5 !@!#2 R# 5 23"A3! >Q1#P.11{c // 2..-  ,/="/_- M.#@>1>=!P_# 2_}kA/""#!0B2"#B> " !"//#/"!2! >@ 2 A?11C1 2 2" ""  #"1? Xf!$A?  00!" Q /!QB0!B21#! 1!!.#   ""   $A!!BO0 !"/Q!!/A "  !B#0 !1.!" !"/.#1 !! !1/A!z   A"/ "B" !1!"1 !"..#!?/  !"!0/!!  !20 ! " !!! !2. /-?!!! !0!  10 !T4    "1.. /  !/!! /!0 /  "=1 /  .  ! !!/!   /0 / / ! / '/  "/!  !%%!    !/17 !!!/!!\]  /  /! KW ! /&//A>! !)  /       ))#0"_P 4 3"/B/@P4- sc 4 72!R R^!,% t1"/o1d-Q/#uC(0A dS"  !G+#2d >0/ LWQ"$2O ?!#> 1/2 !=b.<33 Os"R._2S"b1+w7P!"=CR* 344ݾB@A2"ͫA-At05  42 λ6".S`%#/$03E (d20?7a"@-tB1"P'B1"15"ܻ1" s#N0 c0#2.c!/_b"70 ?10/ORݾ!"5"21/ D2"A"?!A3l!1!CAA!#!"@ 03/CB/$32/!!"B$$"!!"1/.33 C2""#44!2B2 $#"2"2!C#2ܽ"32" 2"!#"!2#34""2!"3 " !!"!3! 3"#2!#2"33#"!!!2"""!!"B#!!""" "!1 "#32!"2" !"32"#!2!!"#"!!!" !!!#22""!!!!!#"!ys!!!!!!!""!!" """"! " "! !"! !!!!  !bl!!!!!!4'.%!' $,6 ,.,(6@ D;.0)+ ,*"!$(')&(##22/ O0c "PN%EQ!22 p."+DR^2A=%bQ/4A@#_dr/s@ # q>Ts /G04_ /%@ 2 S2?,-$/44@1-  )0=o;$ 0"`O=?/$=_/ߠ?03`1N010M?4AO#B`)3"qNmx0qNqn %q=ݡ CN  b` .c$P,%#!!-/4N^@p%`/?Q0R=21Q>!1C1-C_CBp%2b-a_ s@ ">yl RN-c@  =E#A #7A"* #;] ?0 .&!P //ϡ@!0!,!?y@> .,1O//J O?]/1M/4^*-ap.+A`; /N-pJ 1><-@=Z,N4' _+.M % o A`2  r!<޿ 1N!Bp-Cs _,54`^ r5q@ r?.s#/ -## bD<3' 2@;OB;.'/ @P+ p&1ߠB!!+ /2?/"-1m+1P?3a<TOL#rb= q` R ( 2-*.2B]`&/<'0>$L$./  a0,!a?!=1"cu4o@@3o/4q; #r, &!- b?b"P+ %a0%!z>M7Q1 #;>!? ߾NР$?- +1A -A@!#=Ҹ 0naN "$`!;qNv@O a r"> 2a= 231P"9 AT//= @+.A- AG/= A 2.O?zDް 0"-Ќ Q/<3q"< A2_!p Bp?4r/ a*5`?B, 3C@-!&B a\-V?+" 3߮<ϱ0"P.2=%..% 9!PN@a"_R^#p !qSP0$$p.R" 3C?N Q11(.2E?<7Q->B߿,/17?1.Q.!/&!@#+ҺMMQ- A6?Ar @b@>Ӭ"q/ t>",D0?( 1!-q3 !52o,/$.s+ '+ @. 3:Q;-ܢ1@ O//2."//-+$O!@Nѻ@@_ro-$` q- 3џ@Q@/<eR2 %1T/- 2$o)/1S@N ' /2MNb^@?G@.ݎ@/$.41@=*2_>!Q:+q_  Ar R`> н!qq /-$0DO< F ">BC+,T;@,Q9/'0q.W B >#!0 /ގ$.<O%$!A; #0NpR_54$Q, q! "1/!K OA ;%DM6!4A Q5?=ܲ"@пN/  R> >g @0 " !-,"?<5?6?` #rN- B!p Ra!B n#2Q 18 !o)1c M"U@ޠr% O ! 20>b.4A  >>10 .!m(>@N.a/,.-" `<$Q.) QO?-@=/ 9O*=a= @i#A2RS@/ ݯ? !D"1/A"@ߝ!3_1, &? 4@r!%s///fo q$PA/ "$A2!NRA+A|,' !  3^dO/'R .0>(Z=  ! C1#p ?@.=`p>G"20/7 Ps 4$O$a"'2Cr"^ $2apOb-< %++"p1d1?(O7"?Q/> 4!`/1'p,?%>.10a?20a@r-!?A/$11mbBN+ Sn _2> -t ݀/#b"0$1>> 2D!4o/Pp>я1_ O.0#O ]P_N Q_+_  !0: !^2>.=5!L: 4,.7 QM/N,,pM+},)@+S"'PL1@%Q P!//-1$λ _'1Q?;.a?03<00]}b>3Cqr^S@@ s.6 RQ% 22@?3U"1<+#2>1B7 0/ '1?ޞ.PC?0 3> 1=% cP!: 3R4/ApAp Ҟ!q#gx? `!+ S. #A t!. 272#p S!?N>1a-A0&>G/b/ aN=/T0N%-q)A` P P_1 3%?B0 .3!/)0!.4bNLtA a/ 2μ.P70/!B 2`52/-!Э/*.!/!@"Q&.BpaB0߭p?-q -5?2!<$5!/.b22C4L 41q $W %M Pξ00+ B2P O0 B .D"O /^/6!?2rM<4!`"q߾1Q.Q1?"R4?"6// ! ) 45 ?-11%/>T ?0 Q,a/1OQ2A-#C_ A/D?o$2p= #rݱ'"> R? S#P!? C!Mp5@% /?4'?;/2@?510 C.A P"#q1BRQ4< 4?P"`C4>>25/!`.%bS CO.2b#. >@_??"2%E 0-. Br.,1!?c'/a!.SS @R1%?Cp""SdO > b/&37 ?Je^O`Ba" O(/_?1%S +==/>B15 -O.@D!#'=;.N0 @r,MOi0+"#C=>/0`02#U  ,<.PB$#7+1!C /Aa!4% >_0 0C$6*<^1@CD -LXp1#A >=>BA2"5  /_ 0B$%;-p0A!$%<>o!3"7  .^-?"R@h5  Oo 2C -@@@0S5.]=a03C"  .ON0@C#"$ N/B213D +N/Np" ,_`/""%" <N0Q112 %! .>.G)a4D.0, AR2 &$/@.!C27/ 0p /"S3 , 0a " E?0.1b"%zt#4 N<p111$#*/O.@AB2"%, -N_?0B%,,,Q`1 54 N=<>aA3! >_[;.$D/ P.!D! 0p/"T#//,@@?$D/?<AR!6?1N"c"Or.+?p?2T"/1r #F ?Bb"D?0M3r!&. 0aO"D$ /< N. A3B#$)- >_@2D2=P1 @&1MM/B13!=ON?RAC!  MO/k16 0P?"S#.'Ba S/ =Bq1D/0@<2R2 0AO2S4I%!5Do?OQb#", 2OCD$/% .N q!"3U>?-a!  ?AA@Bc4  ]>p>@"R$.!_12"6#<>/@`2"64 =/> Q3# " <^1/!B%#<N,;r/7. 1p #c</, Aa!D > >QCB6 O`/2S#%. AaCT&$5  =NO03a#$  <`OA!3B Mo`!245  ->.O`A25,/N?1AB"%2=__!1RC ,;/ `23&"= 0Q$# ,MoP"B5L/35V@p!04 4 ==/2A%1% -^1? a3 <,NN`02C5-=.Na1"D4 NnO?B1.M >!?Ab!%/ >qO!D. Aq0 2U . aa4F-0>BR5/+ 7`N<.OB1T  +N=NAC0!5 +?O?0QB#%-PO!"#B .<-qA2"F2 ->,$7P1S1#'/ 0@.3s!>,?q03s//.PR!#T /@-1c0#]5<+.0`2B'=]=q20"5  N/>?RA,.N@@ 36 ,MOQ"!b # Aq #d//-Bb %D?0-RR"%/ @A.2C.,Aq/4E-/=ABF01<2b#'  `R.CE"?,!R/#70.-!b!G QP."beAaDDO1b 4& /_1SA% P_?2D.'/ Aa/4c?/#| Br!$6 /AM1S1'/ 0p//1E"/ 2r0 6?0* Br 5 O@N#C2$.@P.2D"/%> Bq "7/?2b&# @P>"r#%.AAN3c"935 +.=LPAB3$$K p.A@2#$, ;1_?@S% M-]>`12 % 3 =>^0Q13#.++0p2Q6C5 ? _ qQ" % ; n/QbA74?= q@3bD3.7/-, `  53  <E2c2&.  q0/S3 /Bq05E# > N3b!F /1^1S#$/@aO!T">0`?4T#  ..2Q1E ??>"r.6O@_/Cb"/'/@`04S #T 2b13& 0.Bb6??0#b6.@Q0S./AQ $6 ?jAb$'  ` 1S&PQ0T#>?+Qa!$D.0>1R"60`/!S",,@`/"S / Aa %5?0-2R" OA?QS!%.0Q0"D//"b#5 ?0.QR"$. >P/CS $.@R1"5O 1R!5 kp3R, 0B03C.$.PQ!#5/OAD!#% A.23#./ 1Q #D.>-AB!4. 01>A4". 0a#4?.1R$400/!B$/l @A/2D.?AQ/2% /@.!R$ 1A C /, 2B!#$-0.3#$!Q1D.1A4 ?0.2B"$ 0A>23 ".0Q/25=n ?!B#.012B/0B?2$ .01B!#$0O!C!.1Q)A#B.?.1B!##./@/14"- 0/!%?1A3 ?0.!3"".1@1 $# .. ? @## .>4O`,oQp3 34q!'.;! 1`52A7:@AqP 30F /#`QO2qBO/6 ^O3^.@ҳ@o. r.0{,%,.!3)!O' ,.!Nco@!5^sP3> о?11q/3=&.p#> }!b.1_p 0Ͽ a 0?,/!$>3A=Ҝ"#^ "q<^/aqp 5?!o!3q14R14P ! o =U O4//2:OSB03 b!." B,"O=%0= 2C_- !c+@ .E^b.p !͐a0/w^ B="Eq,-!sP!,p `$@4q  "S"0(1$$A!!T"7+$"`OU?ޱ CPO 4=s ,b !!? RO< T#nN/EMuQ/#.R=@/ 0 Q=M%?<4^.B:P>"-Q+A O߰P 0+lO@=/ &_"` /C#O 1@! AP{*?40@ !p^6?2p>ݤ/D_Q!3߯q  ?"2 BO=735O-,tu-P/.4<q@1 r 1*2=-2S8P&K b)p!ݡ,a!9 WP702B-D1(0!%B2O'>%`??GOC_> d=Q $. b QV/$1> Cn!-6N3'ON/cMq.A.@ q?/<#^-S"B\@."-QOP`1=7"o"1, B_-ݥb.P!C. 0) /@Q/"D ,A#_<s:p/#ΰ<q01r. $1) "C;>CB58A ,!a _0$q.߲AG?"a,." S  0%B@?'> %S?>.UNCO>S>A !r!-/N 4^ "%^2'>NBn`".F,Q/@.0Q>," K!$^#"r*@.Aa> `q !<7O ! 1,)! -SA o$!!p^&? /ߵ/DN3_>R2@!!Q N$/. 5["P=d= A?%=b/P!3a1-#a/."E,A%>L b9p2#:r@&@"r/$1(2D,, QB(`&;"p O7>ޑDp>ߒ0U> 2:.$ r1/$ ,%2?!//4$_?>?UNb//R=Qa> !=!M93~-Dl/a..R;Q1ް qA=!oQ. ,$2/1-"-Qo51`O'PP /-E_ ! !.RA!N/3 "p ^&O "q?.So1 5-q 00"2Q@?T0= #o.Ns . 2_>G<DN?S]MR.!ޯ.Q-A0q>!=/="5M>"#lP."<A:`1α@!-%@ BN/ -44!+! =C "r_1 q !N'p!`/ .D"?1P2RB"%F}_% / #pNDN3P>ε/S#,!R)`!ݱ7aα7?aR+."4 11&+2P?'.E_ /GMC?޾>S'`4p/3" A@" " QAo%// "po4MB@&C/s=P! B"r0=A #Q?-"T!+Q%.M r*p!α,qO%Pac"D/123*;$R1(?' %"@0O'> b0.N-TNQ!Q?  . =4_="6MC=ND]Q/!ϯ.a-A=0Q=;"?!%<."A+P` o@`4"P 1./B2!?#/22qN%@ $p0=4PAP.R/1O" "A@_5 - "o/^D=R,`/<a` 2p@.$0 2=1$,AX>; RP.#,a@Aa10 22<-24Q$< QP& ߱-QP% #@-!3 1"3,,#A"O!,#!A _?3P 4? 22K.3!00#-21 O/$!PO>4@/15.B!.B1/# ??0+?

#^-0>>+/ t /4/1>2==AC.3q"!#?C0A?r-3<5,#=D./&P*?A 0 @>C`2Ea q=C2DCC 5 =' (O5&> O<`_&A".b=rs" ,ݏ/!s2P26>C S # >t=1 FO Q  2/Q C!(?'N% R "s9 qA q 2?Q/d/$2>!06>!D `>BD!S.p,5"C%=$0t. /6 t~h s7 0"3 %!A/C >'3:#r .B.1DAM# /C.3@q1/&  !O0ϭD="?cP /`%?0!?rP!  >5a0C  ?6 p. %?Qm/!!2q"+`Ra NBA#<Bs0.'A#.1E1 " w.@1,,.,BN"" /3^?"3!CP/>(2]Q=DP1в>!}Q#@ 3!g3S1AO% RCq!62;!;d#N#0##?2O>/b  !'? ?&3=$>r l; `Qr/.@rR!5"@!ߐ5114q:$B%=50 ]F.`Pf9!2O<=6N"1"* // 02@1.} ^#_?paa<1-v I0 % q 1C5?S @ s"< @!A3#%@ r050"ND@,&`a1 ]!bA!t>B>A%BS/A!/U""@SDB$5OT,0d7/0 1".J~2& !R ##?>R/@-@q @ޏ.1 qQr/Q>.SA7B,?Ͼ"!" "!3[ s"eo$ @@0/ 11 !.S"+CB+" #$_!! !#NG/#`"Q #40D^3D0 .A/C"@/0_"QF ! 2-c/4 A,17R?>Tݠ>AG#O]S0'4].QC$N1 b0"$3?_ !6A0"p!/p"#*0+AF3!@!ӡ_@ p  +_"P A* >2 >aM?5o /D)p,2@#9M$!W_.#-CPOp !C$1#br03/  O71 $Q!q""$B>_':o0?7P N@.2?RK1 "!#? .(Q  -2/1O0_<Mo?;Iti t! N$Ob@$/Q<5-C3 1OB"C@R-B7g !-.Q83K4=/ O A nPr*/pa/ALM6/>?q?/`^-?0 C?-c=5!#p!R:#JRb3L0#-Q1 oQQ3^ b0r%//4%s$@?"B/ #@ 3# cc+F? A,2!A?BE,=D+4C,!o+@CA$ pQ?2p.r/S2/"/Qc5!  0!!$Q#08" S?% =W 4;@aAo0R3M" 1-/!bb#+pLA$O0p!r?v0C4!_3c3/-)5"$A 3s#6D)A/$ r".1?024-<B RNU1RA#r"O  &P_#T/q-50 TS/G!?0"-,#71 B5-6 !?+5/`. O#t?O4/!R?p$1$ >"12cBۏ 6 !`S ^#D`о@F/12A!1OB3=">=1R.. @.-0A!C;+}_2o!.2^/2P+1-q"!$-a+`"# >>'.=/_"n#A/ `N24Q.-t> ./1 3q/#^A 5^EQD1p#"@`51 /20 $ 2D !FA.!/#.A$C /,A'5 "0-0$a =4>1yaM70 O-S."2?a̿1%"P3 6 C@ ..B'A20$3%2"5.!2N/D"#!#-022>"<a"!-EOb"3A11ݿA>4+$ARNRHh-T%p&1C7a 30 R4$0D0%! #A >5./5$/%-SM24r 0/-0S=1 3!q=2  >$ @ "=^!! 5MR3 !_./s"#N%0CS13B" /M3C^=$ /1T=%?5>#0 0!!-3 AN 13#P=/ra" 1#B5.2 3QQ!.So3 1sN %"25 "0%1-a 7?0}Q ,O!a!4=#@!OS.# 10"30P$5A?S B& /2G1=aPA'~>@Cq$.`M 2-&!,0P4αQ4*-1 #B_ R3a=aD?[0/U#*14 /!##3-572 ".r P4%#A"_b,/15=*,A2,Es-<$ -NS 6 ; #C5/ #q!/@A#5 p>"n#A2:$ 3 ̯0 "q=" @#1OsN# > / t}-   /1 >_4P;-22M!@ .&1/2 B=OR/a!0.A/ѿ-0320"3O?5_R %!/N-.1 "/. 1?"?2  3 ή!0B$DB23#R!4%B"R$1 '252% !3R4ܮ' $5 4 "" !>1$"A> 4O/!>!!O/3"1@1# /"?0A,1N= 2/? -N# 4/O# % A!?".! 3 . - P4 !$ >30O"?!00A@A /? 12 #??1! >N!!! / !!= /R CA""3>߾Q!A3"Q$/Q  !$20"/>!$!#2" L30   0! A#/ ?"#@>?//"/?#>//$KZ=21/! ?1B.//#. 2-" 3 3 /.3? 1/  4?B"4 3 R"#250% "!! "2! !$ @/_o#@"0B"! 03$1"!#2C/2!D.##3A" ""0!2 "/#@!!!!A !!"3 # !$2 ! "!2$!"""1 /0 /!!10@!"!{B"""#"0#2  #"!"." ?! 0"2 10!!"2 # 2 #  "Up"# !    !00#2( "#1!!"!"?" /!""p   " 1."1!! ""/!!   !! !/!/>C#!   ! /! !  !-.  ! /"! !   O6  " -$!!!  !  1!!0* ^[!   F<  FA/ !94  $( 4<& (3 !,%S-7?? 4>02B!0`%<2N.!O@AE C!@#@1Q;4?5A\;o%P!1"O!-?a03,2=`$ SQ1FP".+BB0;"O!$O P /cA,q,0$.J-1BQw 8S-1 'McOB21Q C >!<T .2rB <"! " $ D>3 4ܮC! F13T@4E.%,1G0D"B/@A#S=@<=0 1R4!F2#?3#?A4E @B 00PRC?" 4"4 31B"ZC #Q2AO#1#! 1 #!0$4"2!!"2/300 "1.0!.23?!A""/" 2"1  "!"/! 0b5! 2 !""11 !/ 1/!  2 32!#/324"13 "#!"#!"23"!#2 "4224 3"2 !" 44 2!4# "22!!"!""2"""!#!"3"!]^"3!!321#!#1"2 #"1"#!!#! !!U5#2!"!""1#" 3!"!1!"!!  3!""!!""!!"!1#!"!""!"!"2 !" !!!"""!!/!!!!"!!!!!!"!" !MB!!!!!!!!!/?!!!!!!r/!2A LF ZX %!",/HL .,)'!"#$%'($"&&)*)-$$%%,)&((*C1? &1Q.".bP?=TRP72 "O%.6Q1>,#A kS@ $ RO0u/C11G D!052!A!s10? 1/ !B3-A1S^?eY!~ D1P#Ca<Eq= 6!C9bNr?α/!D0T#`#!$>6"H& ". ,^/O$2pAP01!>0 =@3@=3`9#!`,p1QQ,An QN D? R#q BA,-$0/.$E0#+>^/.$/iEc_/Qp?A1- /,12q?!2S2!q,/EA$!rM rO &3Nyr_S@+#".,=3U0"O^!?O'$ PP/ Q!.///?-!3) R"q= D!`*%q=޲a= QN  rB@/*-%><-%?D6 (+L<!O'@o 4A_1a0, BO1Bm Q@/5`@` "mQo4N*"oL"pN)2.=-A>/)0O;-@=9LA?."jtOp2@/.!-@" *03BR`/DM)#r;"r,%Q/r\"R : ?.R7! "M,Q>/1G#O!/pO 5 0!B߻0   3:b!13aO "ODq3r_ q< $q.  R2?) 3O,B# *0[=7A.?!7 ?>4o. "Эq/.. -&/3L2Q]`3p#-2#pB:c<q. a, $r C4P.(R>/$AE0!  >+-7 /3<ͱ.1'1 DOpeAQ..1-! @#~ 0Cp  SnAq.Bq ?. s> _&B!0+;1#OA6? "#P<  a q= 5a rQ>2C=< &1 $_(X60//07M.Ro//' "P. /..!=DCp<04_%!_q_7^2a 3qCQ0 s" +@!-@$.5/=,CAO'19/17A/O @:H}@+# !1-(11?NACo q+ `pCq  "N/ #tR! 9>@A / B5 0#^;5q,!'/. &2. B>ܡ!O ! A;#"q"<Mi`?/& > ap Bo `-Ba R!B_ bB/, 61"+3p S>:=1O.4~;4 P_- OMP>.<"?8 .O/0>!/M)N"o:$O;K #p S`0 a1+$00/ @# ,ߠC;/$@N71߰?1EP?'?/v  !11?_>$15/#`< 4`p2P ">/ 1s03$R )?1!tA=A3  "^:bP0%= 4q> A.2_& ݎ - ?,"/p# ""_,"' 2?N! roA^ .p,bQQ!">a2 #70")!RS -/?+t=R~CO^--$`,o.9?/N/-= 0.!</P~,3/;"_#P_ &q@ !r!:$%?? @0K"R: 2O..S_Р  !DOߠ?&3N, ޏ!2|#0 0=N%/! Q52]MAON2O@. Ar4#a0/*/ !<$_R3 A=CP  4+<3sM%1/# 1-!/p "!?>10/?!s'/P?_ _ q1 !qA"-rA B7  !Qo/R' .2;&$Xw1 .6/ۡ /! #A=A".& 6/ 0' ".oa.  @P_ S(Q0NR? QB >"'"3IBr -,r]6r?-'BQ/s#^B> 3PJ1,$G0/4$ 3,DoP!G"_ ._ސ.&!߿ !Aa1">Q3/ "N7 !A#_0 a> ?-rp sq?-rN $#` R1M"4N<&A-!F P(7?*O/ ';/a^/ 22.@/ !0D#//+Rp?'  NrN2Q!-cp -CP?B2?-BA#!N2S2_<"DB_'0ϰ FP߾@ .QA&"!.C;AA=; %>`) 5``Rq  2=/!q @ 0B@ 25 ) 2#o< 5a/6?&0N߲b0"o& A !"Q=5_< Q7Nrp cQ -q= 5@  BA>"3>.61.>!7!A.&0 O w >, 5=/ a " 0!A&"/"R? RRM `MQ 6?^s` "- /O5? =@,#3?$' 1/^ QM.!/PNCa1?!xQ?22/.$!!)Bb,  @> !D?  !SOO a/  10// /`J: ҿ=_= O"?/o;3p,9M^>`" $">2MAP/&0O?2NP MC=2 OCN"1".K?C. !.OOA*""0 # aF/ݰO&P"-3ݲ 5r! !r!C#.#6O5MT$C$r7_=t/2>3}@ "a"5!!C? E">#;>/BqE-1t 0sR!1A433/"WG03.#+B&/ap,13701R/C/%E1#3M F#OB.0gP'>^EOAD!sR.!4 "?4 _7.r-@a=Qݏa#2X 1!!".52 #T@ pMc-1 2'? G!O0E? R  #b. "R. /4P02=PE"0>5R.`-%O3$?1 20A@'/RE2bBb- #6. 1FE=P5,N5- ݴ?r /p!a"?3B2." OR&@#pݾ%`"ݱB/oh!Q&.A6!@BC2c>#E.! 1E-@7.qD<?c-/r/r 2 1,]/C?"(Oc)$AaP,D/!AA1 0"S1/#BO-5%= 2c?Y!'?QF.Nc-!b. r Q-#15!-OS(/B.s>`P""1Q"A 1! $#0"C` "4O 5> B'/?a%?_E? D?q/#r. !6?-?3!8O"D(Nr Qp#A 2B 11." #-5A!#%>,$%O37?@T o!N%KM&-R. a,@o_%1#0Q?+2L$ O>0Om^$, SM3 #&@1B/" $$2 B4@p*#7O0 3' .q?P6>ݢ b3t> #r-0C =AE<Nc+br.a#!! >#R!"0DB"`-%$?3 $'1+P<&n3,"A-P ` _ "#">709!L " /B PP#]F]#"<RQ#_%O"b 0@'0"702b/"r>D6.@ 2'6>A7.`6>/b /q/b/2A 5,#_bB#."q,`39u!ݱaO "'1A1C? 3cO-$5=! 2DOQ/p6=@Sr b /B B4 :OS<B/R .q#1"Ϳ "!"@2 !@1& 51D,4O #SO 1 B.0P'>?s>2s? bR." "E M/D3:/E/s/p-'P+"1R 02!"+#0"-#CO"5_4'/1Q&.a6=QE.>tS.? "S ,?4,P7;.r /qp/Q2݁2@01/2"!.2 " D0!'C'>A=2/ݲb7>Q5//rs.0 Q-"AC ,P7>^b/r  a/A"}"11 1>3B"-'!-b17`-4."B/A r ?p%/A/C!/"s/ C=!$.!@@7._5)Or!?r.ab /"B32<#ba-&$@+%02ܱ-C @q&O!7!!"c0 #b?!4%=A@7?07<`D+0r >as.5RB#2O#2+^S$( ``,`#,E@1a12!2" T b0" D4^" $V0&0`&>QF,OSR/!rQ3/31,_T$"apN@$+%20 A͠ R /r! 5?"R@" $5O2E? B&NPE;Oc@!b/a  Q0#2,^E"$Qq/&O#<5 0ޡ3!0Q 0!.D  #S0"5$N" 15-/".!A'?a5;_C0R?!ra !$ o%+2" /q /P$=D 0Ρ%2@Q!A16 C@",&#_ 24=1AA AF=PS-BC? bR"M#,O5!.3 Q `,$0#.%2!b 01.!-412C_ #NC~q A%^@5-PD. a C!B.?4",O4,?b /P.0/a2 !A?"!3-$1!4?" P3%.P B.A/`%/0RR./ 33-3!/?%>?R+/C?!B>` "A!!?#2 -20 2A P$."0"12//P$/2.#! "C/ #BN"$. 15>?.O$=?CA !Br21304! -2 /A /P.#O!!!3?1"!"$04/ #?!3N0@?001C1Q#2.!3. 30$,N4,1 >=@1OQ00" !!.!.!+)" .P/P<.#-! 11 3VR1!"1?-6BA 3v$. A/?v3<AT@4 Pc D0U <p7 N1`FF@@Cs NB-]A-S#P' @ 3N/P ,DP ,@3 ;20$ ?=/5P$K]A% /./$`/ P$@r001r"b# !>!N<1?D@@>=QD /t;P#?@=Ͽ1 7-/2!0@.0/!Bs1>#,02F!-p"2pC `Q O!qR ?a /R-/$<N _A<q4_b/+pDyE;QD-O4< $-?!.!!@ 0Q"1@P=4!',:?6 -MA ?:pQ Nq 4 0Q E-,  #MOA/-r5Ob%+p5- CrM2e.3/N - !@">!!@ Q21,1@&-"1-LP% ?2Oa"@{ .qAOs4 @a  - 4-," $,N!-_1-r3O!b,qD 0!@0P#A- A@(22'L?&-O2 oA .1sYr Or $ 0r , 3,. =P-_3Nr/% Pr*p%NR7C-?6....!/ !0 NP!Q AA2, 30%8/#1'-L0&.?!!OQ .qR<v @q#-Ar  -D-! >0<_BNq/%` S,q6=c7-?>/ ?!/@!@ OaP1Q2 ,"@9/"=^1$=` `2  .rC <.Tr -PR  .15."//.@/B/a/`R =s7,=S7//M %7>??"/?!0 O!Q+ Aa-2A& 8 1'.^"=`#pB >q# PbA 1T.! %-">.?.`.# O!qPS Ў $//O4"?1!1 1#Q "A#=3Q : $3.M>pp3  Nq 3 `R  0'PE.26../;?. =A/#?!b)A/s. =R-G;?3'>^ &? ".l?QP 0A#R "Q$ .$A%<1"._A.pB_q$ 0s -P*%4.2 5>./<@>!`/?1bQ/E.R.7K@4//O߽0/?O".@+Q 0A2 /2b$  >$B,]12>p".OQ/q5 _r$ Pb17-)/3%O"LO/N!Q?00R.*Q S?S-7]߿0D/ONо!/O@ pA@[ /0a" 3R O %2]! $/o-OQ.q5 _q 1s  Q6-,EA39NP ;?_"9?-"O-1.""Y?-B?-q.&/^p /<05-Na?3+A#/#R$? 1-^! $?p.P2 =sF _s +1dB 7.>/?"&O?<1`0N1S0@0d/Lb?U+OS/'/^@$?@`" /@P/ q3 >1r?DR 0$3,N! "Oo._B Nr7 Ps  @T >B '..2- O  O]!@/ N1b?%A c/<R E OT>'nA$ Oo!OA  p2 /!a"#05R*03-M / #?._Q>r6 _r PD R '->/"!>//A? P S.;R/T?C>'n0D??O! ?0 //`Q?1a"?CW $ +N $Q-^ 1 $/oOa.qD Os @T.Q4<2&>//< Q>$ @b.*aE ?a/= D>/_߾0 ./O" PB /1Q#2 3B COR]0 #>o?Qq5 ?s & @c.AD=/!,>/,!O/!=B?$0 b,a/EOR'M05./N!/P @2 /AR1!3Q+?B-N  #>O@Q.q5 0rAT/A%.?,?O/>!A O!D0Q!D NR0%LP% /o1 ??P /`A ?a4 /"S  04,=! ?.`! NQ $oD,aD0C.>0#= O >0!0*0P 214y/$!&-0%!.OO1  /a" _B -1D2 4-.",O/ /M!@? " O0Q,P/4 =B.6,?C ?п!OA ?P@ 0!Q"- "1 #<. !?A >#?!_.?+^2@% ^B-_&.s3#N@#q $$"4@% /anoT>$ 2-4q%.!7=1OB"Q$5D- OR 2ذ">.s;??BBB6490#{nP$!2>  ..a!.ݍ/5 2n">1- A &A=_O4#   +A`r '>S0"@ 3O@0,71$!A*ޱ o#p@!-A"A_ ?$10 ;*.2q2  ^*QQ.cnO !# R   p=.Ct0@ 0``>d2k 1O/@2, /&;1P# ##1<* >r@,DB!!`, 4tQ )8"-^C!pNCn!2 !!r& 1}>/R4-06 +``V 5"&* /$ !2o$,FO+ /5 ##q- .r0?Da .@Э1#sr  [L.^! @O"4.+ !>/P/A7>=N/Ps" !//AON45D YcuP.2111P6/ /3R% a.  "r_/ 45>"`rA#Lk7 P/3  )/'/p >e#%?=o-At0?,%@+B;-R3 1/A:!1?L  B N(/1uB@_ @B=E#-$- 1r@-3  2n=2 jlR@ %+%. @;!7C4o. / qB @  %?2K09$$b2 ?Or@  "$B /:>0rA@' !aAP ?C!! 4 ./ /20>.# !"Y=$-AA@06s.O #@>JACs<,1-RQPo 7K$< 25r#  Cnq>@p%?"?,AQ/AP2p1"2@!= ?."1<S$a,<-BPq!/=!R/M!F#t?(A  2r2Q $"/\O  4 RS3. -DOP_!C#eV/3_/ p N2%"FMA.0!1R! P"?N0?u#B# < .q#Pa "K602N;-GRB2! r2. 5"1K. Nί"a1C,# ?P/.r"oizA>/_2U#3<9C/.0 4/0%$3!.KN.RC4A& /"1D`P.62'NH1-.-$s!1? '  @p3.OR$P--#+0܎ `#.BA=?BC0A 0& 5X>?/_E""3*#NPa!.D%.1}>,r3r/#D/QQ /M43C @#+?c#2R @ /o4_ 5B.5//.AA $/ + "B7A 45" p?:|.UC3! ".rQ2_E1N!ӭa r3 R!>R.=E1 O0`JuA?O './^%0 P#?/ ! =O1c+-r3a/ D  CpL0 'tRDR!=Bp@ SpO>!1s!5-2!O!/-c6@"U PP0@ $'IT>%?00A  7p 25#$@CIq"`"?,߿#5"0>o;rR?/< o  Ѝ1"04K# !a0O"=O Ob@ ..U.Q] bD. %2,-OL^2P} 2@ o?#!>\ r12N,  1=_D3A.^@?&!q5 b!/1D3 L?OBQ '.F=O<`sS=.1- O;-L&/aA.:-NO/ .. " !-@; a1?*/1<^. 3a/4: !BaN A rB>~; /a35`#N_P  `#P- _>A A#3^&2Y!M,QOѿ.4MC2]M+7R#o-7$0N^ ' DQ" _ *@3qP!M/%qNA0/ +"c .9 .q2Q0 P+?/%_/ν?0S>4,01=.`'@#A/L;@0-O o *#.>*>Rs--K N?< !TQ>9/ @?_0"$n<#8%.u"R+ pr-%7?@o "B!E ?0!@>R!2O]! RP//>U/$@0,) pP9 $10 N=;"1b1/X  O N; "/0;l 1$!q< <+qaOD@-0 ?!r"A=!="#oTBOA"`@?oU1R3.n .`a2A-/ Bq?@=>/0a!3'." ?aO@"?7_# / 4_.=_!P^5<N BBCPd _A." R-0+/." Bb ?"AqA 6 ' @,o=sq A!? C/] / r2"B/  q>< "T_1|p !!aa /O:B0M1 C?=/?_ O`& P.? "s!! 6 @q=%3" ?!b"?- b0p  63$.0.-1!s`/#4 `2Q)rB*0"`%!P=L0R "">'! 0Ap."T 2_!  O3 .lv>1r2a/0..,/]?C 5+!o%5Ar!  .B2 B #vB$ qCQN ,(aE;D  D@ AB>oS Q,>!!Mq P$.p""8!../L - WP1QcS @Sc.P7`P")%P?_31.s!L6 2]bC'>?,ޡaR.P0&/!a>2R^ -/,+q "4&/=' 0J%D&# sq3$340?28-Qr!?,!@1m #NL& O# Q/"K2V'rA#PBq/</005_*3$?b4<@D2r?.1RF 0L; /"b?. ?$:,^-S !,1 N@@A0B /5NP;M#a/OP<&>P-!R_  s  O0 >@ E2NO9 D_@ , '@ -^ S a0*? ^>.0Q0#1PD`A04Q/4Ta_RD43   R.@@S #B% /z%CRBA# 3!O̿#R21  .!3163NO0%"  "S#.C/Q"AC>%!0CCA10 "/>/Q#"0! "%3B10 00D51C/24A30#" O#A 2"$63 3 @ C3#1#////CR1$$!"/Q">"`Q > 50="<-B!P@+ @@N-#0>-.Q@> " ?A+5>3 14C./"@42 1A@ /B1 !/ @#"3CC. "a$/$#>4"2 0#>1>?1 $0/C2# !a#0##2!/"2  1014#./ !%!"/"#@" # A ! !!/14"B"!>4""1-21"0"/ !0"#? 01!  ". .31>0"B/pc.#2" !#!13!! 1!! 0//4/3.? 0A40  "12/ #0! /!".@ #243A #   /"!? 1 /!1>Q3BU!@/!" !1! 032/! !#"/ 0!"2!//11 ! 01" !  #!/A02 /   /! // /20/ A#/1 ". ! 2/ / /1/ /!  //!! " / !Yb/"B/!  1  ,81//!//"! ! )5 1  !.   / ! !  ! /    !/" / !>:   /<7 !/,)!! / $)! <9   # ""E?*(/3,/..%&O#42#O.d> $? !n?B41!_1^:1 =pcO 1' "!4("!QB6 B(^z02/a# -F@R b#  LT'+"a-4/10!O52 ! " 914M_@ !& ,c/;S39&71!15 Q2$2?4?"4 @ ?AR"O>  ">b//bO DR 1=/?W!#5"-30RE1!B#7R/2 "B#/3RA !541/3нc" !241 Q>cA//!!32#b{2 2B1"Q/ 4A!32A" 12 !34/21@45/! !Q13C./0 "P#02?1 !0Uu!0> "!!1?"// " 2  532$##"# 4 "3"#"#2"#2!!#!"32! 4"#!"2 "!"QB323!""3#"!ͽ" !!2" 221" #"#"!3!2"!M<"" ""###12"""!"1/#1#"1"2"/"!!#" #"2""!""!" "! ""2!""!"!"!!""""!! ""!! "!!" !!""" !"! NP! "!!"!! !!!!  "!!!!sm!  !"!!!!!?E!! ! !"Wi=<=@/) 7. !$"$""""333332""!"""""""""""""2"""""""#32""""""""#3333""!""""""""#3332"""""""""""""""""""""""""""""""""#33-/33""!"""""#33332""""""""""""""""#32"""""""""""""#"""""33332""!"""!""""33333"2"""!""""""""""""""""""""""""""('$"--*)1//-//-0%1C%Bo=/C`0%2024_7  q! !-7"_O3?C'rF//2& D 0!C3 vGb!!۾!/ a.+ޝ11Q = QL Ϯ!@ ^8"Rr a/Nq qO,B ?!B` b"0! o R6k @1`/L!!  0q>? -.>13.P,2-B_ O A$1M="/ `;qMO's+C0 MB) #a0$3!*1>t R/"?.s?0_ Q//N3??/ӏS/%  <2 -!210: ! q)>.q+ r<t>;'!Rb0 ""-="/c3 !$#MB " #_!1">! FQ@."!@$RA41?1% ; --Ӣ(" !q. B;0u-R>\t.,3R]S/#H.s$5 y)/2_3#.!4.@>5r/12/ $2;!"!1. A:$1./L ! s8q/Qo!#T 3.c@=$)E4@,$\""M3/5$/8 sP1@A@AD.]7 -b?0.T. /2 /"/1>L?B;60@ݢ<"s"M RO>'SLr`,lj>"kS>A,>MB C"!2] D.-_A "=!P d )1 >#`0 63.#>0'_c#` !_AA>  ,/q>3 C>,s>4C~S01J$:=b".4.1LBbR"<#?!$> a$<@>B"/p %@L! >"QA #M>-TA/J202q ?_hr!QrB O>R&2_<411 MA$ c>;" >#q"5 ;S OpZ}`B>@4,?#/R3B>a/R%21N S !& MN'C1/>4!J#ݟ'=$ݱo 2#>5 Ϳ?`$-.m"Oq# # ]$..7q! O50".!,_aBFP0A0.r $'" @.T@?7 /_$"!>Bp2E,#.B@ N ?Dg+/Q3 <^/q2*p/#;'A3`P"@ .@ Q2Q @!A B0'e . MA/"($0-N"=} 2L3nY|D.A-&@4Nr!C._/1 s"C/!D@B-B/?51!ߞ  B0qA #?>! 3??Q+6 /.70r~%-_r P7>!,P,a#0  =L+_-$MN#p?NP. ? . :0>,5 O--M1//, N^O!AM'!=/jA% #Nn r5"_."?q`P 1+!q0B ?2s P"q ' Q2 6Db  .1r/!00R .#?C  O 1".7,Op+QG=-'<|">$p-R(: p=T= ~1q2S+>-7 /q )1Q"$Ԯ. <'>%1p?= 0$8}a>.QA D/ #=U10q!MG>"@a "`'O=A,#q?(2^30'c_6n-.`_..~ o? ?!>,/'p.< ?/.!>/@O/ .!M A,n/-aB O/@q+ q?;ܮ1qO! 1>34(10q2&/RB/2v<66OA, r2?D*?, -,"a00 A21 =O] A/BN 121'N! - ¿B4o: O0>#$J-B%O3n_?b+#߯O=6O"o!< %-M OM 4_-/ M^/-v.>--2=O"5.OO/!2.2_>1-K#. )^ !,}1-Rm  "~?ԱC^="}NC^ K"=>4\#/K1N]"Dm/dL+3^@,%L= 5_? $/@J>&  /=%,A?<%$<]P 9 Nn R\4. =M_Q<+2~n4; l1]1,k #"NL #~/nb!3p 2o5+'P1 n:!1e` Q A2/>-?%"q /=!2A?O0!@"q,P,.r#r-*r.+"2+8bR:3+=sD(" C_Q$ @>0"> /5B.B  @ B- 1AK. 2N6"-]"" c M "pP6-C<%q0.-6-@O !-N.>0",&O =/1.B@ 1BQa. 52B r@# ,q p -4@-`A ."P^R! AF 2/s0 3 C.Tb1 &s0s/0@""& ?S"!!">q_-A P rRCT0^ ޭ$4C2%/$2?%!s9.)OaQR.#c!#T; .Q1rRB4 ' @vN!cC>!7MPO. B!R!D/7?2&0?A!3T .*`q A t2' ? px.N 0-BN1@T2- O* MBO1`3 q>@@N"_Qr"F.=@!qA!= .>/@?QB!S..+0=/ "3B4$+/KN.??B15"#=..H-0B0E# >_>` R3$7/0(0."?21# B#.``Br5 7/.1=A#?4""GJ[?+1QR"$&.,9A!r3%/ '0>?Q0t!3 /0@ B?c15FB!B "-./??>QQB3T = Q@-033t"E 02-Q!D$.B^2=-2DT  .!O2oO1t8? pPQc!d7 0>aqB 3e&-Aq""- 2E!5 .1_#N7M]3 D# /1@`QS/U& 0 `a25G-@qR"' !<nQ@B0" $0OQ@1P23F% ,10b rB5 7/. = q q/C2V ;&5 >-`=P>102D#?;@^0N" 2B"3. >-@O??02 C44 =O/B M/W/>>B/r E/  P/"PCA#2 P0 PBQ#r#!&.-=6abD5/N^brS% ? @`13@s #/#@.P  !1c1%2A14c-_ P0= P#a#D %>@_@>PPaE' =.P?Pp RT# -)N=pA3)81>ANB%4= 7_?P@S"c 7+>P/` BT"d=@ aB,g#B7/ -b>A).B6#NR$O"o/Rc 7 ?0PPAct   @#Gi.NparD ?_.@CC1C" >2.3AB@3-/O1C#R) -0O20r357/.?A-R.a%$%!/ 0OrOB?51 /!_2%Q"A0u0"##C /<=> o/@D1D <o-bSAc' . N-p.a.R?B#4 . ^:r CP% !4@F. =1Bs#b#%'., _A2rR# E/'@@ 20sC   ,1%8  = >=0?@"!6 .8//?! #3 :; @ !0B4+-M.p/q?r+'5C4 =?a^QNC@#1% "=_Q>R^S?2$N-1_@P#q47 <.N,X;_"q!aS F -_.`rc$&  -^<` a b =N O,@?AA41$!.$@>!R$sE *0@AQBDt7@/r.3"F".0>R=""$C%>B`@B$e% +O@Qa3E G6-<@qa#&'!/.0?r/3/"/R0U!,>N+@;A?#A5$#-N ^-?.!P2q&$ 5,  .?>prc7 )R B"@ /"?r12!# %!*.<0BaB35 '.-=Q2rb#6G/'> O b b3 $?7/ ,21r"#  ! @+!@SB2$ 1'.+<Q#rS.-%%"'..MQ!sc /?0> B s07?0`O 2_S1$!  A1*,nX 0aRQ21550'/0  `QR1P7#@//qRb!1$?'  > PbSAB".OO.Q>BN51$C#/O=ANP@1PB7, -->O1A `qD'-=`?p!3  0@! 11D ""$04,O=/3CR 6.M?C2s4/0P ACAd$ ?@ @ 03Qc/!%0,b-A,2%C  .A>1>>2#r$ >@`ASd%  ?.a`BC!T5 .0-qa"#2&"O.P>!O/3  Rj"  //0@"@AC c - 0.A/Q15T @.Qa"##6! /1>B#O20")!4$!5 / !O1@20 47 =@ aA#57<>Q/aB$&/0/S/421$>/2@3A$!!# 4/ =A2a2#4/ ' OQ bB/// ?Q!b4 /-A@2142#>AO!.2#3 N1P01C5$,_/Q/A#%%.0.aB"&/? A/B?3/!# # >/!01@?"3/$//A!Q135%/> 0B!R" $0O12!S# 2,!-.31Cb43!#>5!$@?/!4SD3.#/ $@0./R4SQ1APD!4.3B B2[#_@ w* r,! 0 A1#-"A2#?"&0e"AAs !47/4 2$ "@#A4"4?=|Mr# 'A`BD1" MC@ #5/>*R,`-.@<&.@,C"?O) "@@,!@MsI0-14 -#d3 % QR^Sn1G>OD/S qD0@ 03 QE! !Rz`-4N?+/?0*/0+=$1@.a!>> B0==&R.Nb.-T._<3@-.Dpm1 !B< ##Pb  1?A4??F A9Eb P"/a/&Q/4 $0aT B.p B=@+-"M?$N1#O0+0 +A Q0MR>= 2/?+ R 0qA RS"?@?Q#/2! 5$N#Q1,P >.60>Fa<r OCO-A # Q  D-/7 Q 0R?3 -A% @# R2=3AP/3P'CN/s9` 5q.b@0 1 '!B -!T>0_@!!TO #q- q .HZ@0VA<%rODa A0!5"T/2Q2-? -1E A %r ^UB!O 2p4/ /SP D/r= B.1 0 %!223O0_@%2,N,cp5q/-A071 P7R MD@ "?r!, "3,/3$Q!FfTQ>?&./d a;&b/N BA2aB>/S1$1Q-.!.@  ]22;AB_!  7.c>=uP D q.B/07 P 'R -"c>P!?q:?! 3O34q1+P /.E@>Ua+r? C/Q #Q D F0QA{ PB, -!-A$0 %R1:A1?.' #_&R=.c/p +6q.a?%!F!S @ &A"b-_!OA !* 5=4#a/$a/.%O/dQ MbN 4?@" A  "4/#F/1Pa/.>?T0 % qMb _ 1P7.DO/.WS/q ' a3=1#%/ ? '!C(1DO0/O@'A+cp4 q/-` E>41OEA Nbo 2>a /0, C)#50  @AN.#=?eA;6q2Z B0@2qR0/s/@$ r?!.P$. 2"*A2@  ?@'C#$=s `6 Q-R0F0 P 7a.!r@"?a / "4MC4q0+@@0.'?.Ua,r >CA &#@D,//U/Q@A-? -@$ 0 %7Kq +Q!O>&!OGC?.s pEq-#A0%  7A"b>0>`0B!+S"_33p/#P /D@ ?uQ;rO 4.` "@0D /"50/  1Q  @ "#*3Cp?@R#?/t P+%r/<C @ & 2 `BN+cP$0a.1,  %A18AC./@0VQM-r N C!Q#a ?OE0O7B.3C-_2=P 0% R2]CRo a '.50Ns !q,'b!= b/@ '" p C ?/#d 0$OQ /,!- $O 6$a0Q!?"_/7q&XM.to ѽDr#@O& ? & A 2R=0>P !+ %B"L B"`BP '=EO>e` ,$r.B/@")@ # ./#T? 0A.  CN&@?$q, B1> E!Odb >.rO C/p.!A #/E 1QA-/>^ 0EA*5 r!^R0@"`GR0/c p % r/1-@"#.?&!B/240/"_@%0,/%r!o C1a.#p/61 >E a <r>3.Q,P B/2DO !p1,"-- cP+Eq/-Q?7 " P'R >T@$/b #1-0# #$@! aA^. >OF A=rNC1`#a DO ?EQ.c& r?1>P ! 0  2#,RC_/ P1&4//TP ,&q<b1%!P4 o+,6 aM% Q->A,NR-?ABN> 3N_*$!O04`/L4POR R.A.0$0 0&B >"D? #OQ> !D0$ #Q +R!O%2`/%.isC? EQ$ R.?2.0 B3-1BO@01%3?. D!@%R=8ER!P 0O.&.4?.D/A3 QN"0#   @1 22>/"A %2$. D@,&R.Q?@!@ /3/C?@/A//!!"?/,0!2 , #!@"P0"? /D14a.>B.@ ! 0!2 3.0 Q&1%1331:U '.".2t/E*q//Tݯ4F?"!ޯ-"2NT2+D /3G O!#G/PA02S1.#rB@P6?s _6C!BS!@-<2%^S.rc3 -!=A"E PA>Q!B0M2 % 0 2 /_$/MA!,?>"/,B?5 ==0B-1O! -< a~!' >=b- _ /O2! A/R" XPB .36 ;>^,B3$ .R  .O#NA!2FA7=+5&->0;3,P%/b 5 N5. !!E/=2OQ 5c60"=,?B'PO!12C"5$>a  P5=o@! b_47?"D#0 4.N?2!,1?20/QB6N "/ M=XqPR0#90@4#:1R% .N2  AT??Q1!qT ="/0-b @?@B S!F~E5 O4O##^a#!.2 R5 Q2%4C4@!31/C$A'a ?S5/`2s?01-P!r]I$2G ba.7 .@23=#&A"C$!@!P $ >$ 0? `t..a,0 " +-.P @M0Q--r5$ 1E * > a!,N02!`q6 + 4#/ T .0C?0D" ?^-%>0 ;=MB P A" -r/', 0"><`Q7Pcupp#-/>4"?B4 S!!N33 -B@! S7 .%/+/@6.I Q""a$RD-?& /.r7/-`2#-qD%c51 C?PAB A/B14/a0T )4.Q?2S "_CA4 !.4s 1? /:!/r>QPA"S&-M@4 ?,132rsCu @AT9!A4"@P25 4B# 0RS,?/&BtE >$ ! . PF N.?!/O*P/A _1A"/" LN101Q0_B C ,=_!?o0!/e$>`"S 3..<=@/3.r& ,/ :+"O 2!"6!@5Ekb7*>N1/ Q.% qD\33 3bD0 3!7-?`Q!:@ R r"q5 N35 >-QT?1A0pS  0RA3..O aoP01 a5==C 0Q,]_/P!@Q.3!.`4=O.'o@ Q #+ 3AS3/ u?`?!!R 00"c AD.!'B!2."#7 NR# B/./A F1/ ->OC7?!12BAD74+-MB5 = q#!B41& ?J"G0Q105 $ #06?U-7/.@PO#!u>#4"#e -1P.+Ar3-q"$4! c4 .?14 A35>O@a1"34,_""P#/s02!OD3 N`  LO1`.QJ"Bc$=/ 3 ,N@O`Q B/p$O0,/NA" /2#'>q.&/%~MOA?=@1$ >s -'==A]PN4!q!& -".! 15+?2/.7>127 1>'=!. ,?d>BO!!/2Bs53,-,sOB3 --4 DE 4% @4 D)'NP""4Cn1 !50b&C !-& ]_OB51OD1B6BB.rDCN  ?#B ?@ D/A% 112FG 0>; U%@5!@#e7/%.-O?u.)1BAQbc3 /QS*OO0@"!qs# 3`>*2> o2P1q1#CA[>R?? 5 =@!PN@B0Sr# 007 O`/@OB-@-a"R %.3/N##0Q$r24R@"7A $ Q,4Or21#0Bs #@"@>!//Bq3/. -3= 1C=, @2$ P5?A7>  3-=.OQ $R?5$ E 7 . //5E A 03 >13Q1)%Q#27?70T?"?D!@ "V""Pu $=-R2 >!2Ab E4"21R/-/@2"!CBR /34"/ 1%N`2P!%6b S ?A.4@2! _0a312241S=!1?-q/AA@AR1!/C5 -N_su P,A/Q P!B! $->.O2 >A!"0?@5>"!./.A P@/Ob..-.O ONO `4, /! O@.O5A1$+//. >-#=>"B/@ 2'<2$`!ߏA A02r2N22$!1/G5@"2S/@ `@ 3/279 A!=OPQB?P3# #-c&.#UE'Q!"R." 2$BD u3B04~ %CO##w"-?/@6  =S+tT,3$ CS@ >..@>CP! 31H8`#1!1s!?No @$"$!G/F-4 3S O?"=n#2mC>5?c>PGSLRN54! 10N##-C,R.q 3 C(B!00N?P0->Q[taQ#P 1!0>q"M#-# 5_.T>TO4@?"ON$$^".#- S>ST*5 <7!+"> /`0>"."N4B A#$!@@pp "O  $/ 7?7 >#I- F!C.`O_sO2=3?7-/C:5+%=E B!00 3O3M1,>B>/3 3"Q*#3(2`q=pP #O# 0'>&>E S Q`r``% # >'-6<QP5.1#A%o"#0#<"#/B=3)#9"LR A/r?/sMB!"-?@0' !%!C+a Apq q /"? O7> M42-"!``0%/ "/ "O=<#*-0U4CaBoR=c,!!.11F#2]$ ar uA ! !/ 0/_.$."-#DQ1`p1?0/O^$ \"M"3<$ 3 bO5OT.3 "!!/2]3$-R=R;<jbtS;r2! "@@??@?2M 2+2  P`2" O>N!M R. $ 8_DOD %?200 P=4&M5.4/4sEd*320@O 0/!=-"-,b QR1! P__p-"N#!!  @O%>63 A_p #2^ 35>SC~=d+%D,B 0AO!>o %>Co%-0#5T;D1!~*# )!3A P2P-A^1=0+!132$ aqq o,a 1> #^7?72=1%,/",B-R,a AA#10OM?/N$="#@,# `%?4?5@4ON"NN&M"B, yB C s1= #+2-bRA CC"O O0.A..#E2QQ P#Q11O^#Nm"5R " B NT-dM7.$.!?A?1=%;"-B;.-r D4)6!2 P?0?1 1QQ AAB24"O_p#- 4! V'!7 N6.S_# 10_o%N$./B.T.5#M!->"4.A! Q0"@0A@o!P?#-05O&O' /#Q!PO#?^!$5T.U7,EF"" !1/B"=!.#/4-2Q22a;QAa/R-C@ 1?.1O 06>a 1Ap0`O6?U>7N7 ]4 ;# ! !!δO#^_"">1$AB;4K'%O60 $= 6 d F$c3B`0"7@O,D dc ##" A@C@ #A-"202%AO1$>$L]&MB 35R_5MCN3<@2 2>2<D,3Sra 4230/'>=?- .1 "A P`"?? @>#N]^ a;0a 3/c$M$<#!_!/!-3=B3KaQ rb330@ @N?-?-Q  `qP@/  N$M-" "1C? R0 SnB<3 . ?>#<1A+!#KC 51V.E$R" B1/1AA"!>  &C!B #A4bP?a $aN#'(.7 70F 4C  c qPa&A_-D 0E /7 %" DB/Q!P1/AQ` Oo= #<#>3 !4ND>4_4>#0! !O<3=3>3-A=rC+CB  !O O.B<"-AqPQ! 2 @>NN#,$  0 %15?$@/?#NMN3L3.3<SMqb40"N?2.5+3-4,2 +1P A0A/2."/0>12-1"@=4>40C#C.D 21B!A!0>? 313/  3 C 2!A0A012@1O_3>! _$.,# >"<"QB$N5=41!!@#>!MN= RCB.4C"! !0 .="1AP# 21!! /@0?   ?"  O 0 1C%11#b /2 "@0E! 0@2 WM$-ab"c-rQs7 .3=ܱB#TS@? u&D"7_330uO&C151!$3!A5'C!7Q# s2S'`C#3B>4#/0!/Q  2>L#2E$ '1-coN %Rz,"N!" t?@ #T2+4MќBa@+!>" 3CQ0K%C.="_ +!R_u>>$ O2l C \&5?QP;BO 5R0nC/@.C@^a2aM.T0_# 3Q -M?7SA?I#"R1/ '5"@^2Q YVR!4];R/!P<6 -SPn4D!OU>N+)32Q.>5 01:$+"PFo0M51_,<B2/??$BA"~!R!^ &CP"L:4!A ='.S@N-MC 200 /T?_; #""`= 61Q;,@!<0 U3?:#B"o?^5/#1~.B1_cA!n-!30A Nd1`,5 50A N  t1O+">D#2.>/7qL<"B.@ 'A@"[.BA_? &2P~-"B1DB-;cm,3!"A.c!#q=D30`N  s @P*!+#514N > G RL<"A@/M5O '2A;-42@ #D2"~N3D2n.E"!N, %!Q>6"o=3+,Z "Q./u1#p+!+13Pߵ.UQ=."2A.ݤ ,&4AK43`O2*a^]321_//72nM! 2"q?.t!PM3K#!Q-?G3P+1K"C/#_? C!PM!^"!##^ޢO'4B:,22p@% 6@0n^231 >.E3-1] 2!R0/ F""`-3\"!QNO U$Q,#+#1b0o6"2]N2 B>ܳ_ '5$CN-!C2PO-52"NN!("P.>&#pM  5"p0>E"#@MMr=/T 3aM"-1qO0'A== #2o_&5CN>!$A@O<43^#]9N!) A >/55P="("a??,W13aALb/?5$!aM=#rOo)O63B?^N  30PS>^"! $2`O.7"#o> )QP^45`O (8#t>,' %!p=, 2C>?6#!S=] ""bo_:R<M"3A۲_<%%3N^ #1A0-%B"_=!* %a!>&3 PO"8 !q??,Q="< "B?+,& C/ N#R>_+a.2n #P@LD=0! 3a0<'3#`>!#!Q0>62@@?#H!q>M7 "2.Jb_N,C!1Rm*! b>O +"5 ?!//Ѭ$1ܑP<3OO!(! %`1LN'$0!N2)B O#2Q :!rO,' 3O=D1pM&!SO>2D@p,SN>  "Aa]-$5/0?06" 2R߱@]-EA/2I %Rn=7 #@Q ;*r0_-,4@2<,2AqM'- S-?"_ 2 C!p;=G ??1AQ^.6? * #q0^.%D"A 1 K! sP! TpTW!qOU"&Q%.!C0P@'B+O#"3 !!-1 "7/22a.4!91,"B`K/F0! _)0 QBN.%0!0\, B@N;@F!%aS-b!QA 62?"##3!>@2r"=!?qQ."- 4 "hRQ^= %4@#; Q1_%$"3 !=!  5AP,SAB^@5?p>-$F1>$ &1pD/0o ,21anN7>>?+,RA=-#& 1P2K"QP^00T_S<-7!R/E"$qD-3 0A F@ ?332!=  2r-=`Q 6.A!/#$5/" ` "SB5O-C$r0 7 C> D DBb/?2]b0/Q.MS0%3>!O"4_O%.35^=  $2@@;221=>  2PP% Q!@.050A .D Q$ .0,#!R^. 5@<3,345#A2/#@q. 1 @1 %1 "%"#R 0 RQ4?-#3a7^C#=3C1R.S?4Q 5Q/%140 .%#1"05@a-!O#3>N  #3P_-##!??0,B@]1>"/!Q?_-412?>1 B1@,$$ N/1 4!1>.4!?-2B=N$ ! 003#O^#.4#"A "R0A&1C.%" $OD3?25!R./"!1!k2 DON C10"-/ / R?O,21 A.=42@, /? 31!>=#K#03//1#0$!!"/0!!!!/ /  /.A!0$!  P"v_C5 QE#1C.>>-R$/$+"a 2=0C5 =s'r"$1RR!@c02P$s!DA#22S qa!?>b&!?230 "a-2? 810F!&-\q2=q1 -#`3>P@/#qsL 5@Na/PO 12/!N>"`24@@36  .d,/0!~s&1#R p 2 Kr##BE 2 =4?N! b-R/0 <A?q47 "" G!/ _DB0A  HP2.2 rc#.!G+*"@.4`1D- 4qk' ! < ;.o2o@O"'#=*.O-]0 4+@1!$+,/:_/  _OS -H,0aT /p #*Q!o/!QB2 c-?!@'_AQG/= :A/5.Bb2$s%./rp#"6%..0 0O!Os64 =a!$@g3M>`E/! 5 -%\._a$>O4>!?)+/. P;`!,OF;/. /^>%-70oO/#(!Ab #%! 0 ?o / 0&r4? 2,'.4p!C=?ξAc-=;4=0"M3>0A1.31$ !@$.q0N.DL7'?, @OB4 & "%3 adQ,MAa%,0###". +9.C@pA Q',N!O q3B$/f<%$?Te?-@2=1r?# .20@q O0!#?U 5 #;  @26_!"/^A_Qk3 /1%r#? ?p"/. 5 /t !L @Br0b57/R!o "P>Bl"%_!B0(1B$ /2c'b/_/1,`'@>O"N"@r.D.)!67s?@ /4rQ3# 6!>0R?@R-s7$- 1oqQ?"%?'1 /qC<CRC' 0"<Q/P2A%s @  1%a#M2%6" 07+ >"Oo40%b'!D@ - / O0S?au$OO-3=P."&"/!/..`_@O1!2+DPB<" />.a+]^ 12)O3!,-.;=00#.@6KO-O@M@QGA/M \BA?AsR#/C*7 >O 1qT !Pߌ0. #>q""RC'4 +q`4G /-1rc2c014+!;B p>"$ '/=!=#SQ/Qa!r A>ޡ@A"E!!'-O/O_0br!!,3<4 @0/t0C!a!U, .Na AaT_Q /_r@0B3#2?^O_4N@$5QF/# @&=AP/d6" ?OA.P1cR6  /p : 4!R.rB=-N0+aB% %1 @AQ+1T1$7/  :_A1#_q0%:"@U*L>`Q#SD#N!AA$&!@q 2"b6?d3% 0 ?,$aI 2>!E4CݺP !. . sAB 6'>>]13AcNq  .=\3O +QB$D 0%/=?Q& P>B #P!'.? qB0a#3*R7-/ /pa"4xA$,D?Q- @pB#@v$,=!1/t2pd-%> @ o4r1.$ 23^O- ! 50?T/ AP$]?S c $?B?MPs O'=( :O. Q3qT.43.?^S>26! .+/ p"O`SR./$m2A!3P1c$" P?."0@s!a?q?2!#&3=.< /N"B.R0c #!5 ,R.O TU , @.O!A2!2S  > K>#05?C,Q%* 0p_ a27>&  p1A. E -S=1@ <q0! Bb&1$?&P@#/BDE0  0`B?@b4 $  &"!2.7.@ "QoO ]!qq. $ r =-.F0 ?C^."@N,B!@o$0@_N70bAs/.~Q?3006p+@15s1?q Q B0#J"@"2-3.@Ab2R@$.,OPS-/o 0$PT! F. +!1C.1s -IDT/"Ͼ/q!5O4a CN!<Pt/5AQs 4%. !PO-o2c/WN 7?2NC NF. -B 1a-#1<>#D /  ?.B>L$Q PC.]/%iP+N- ^N !^P0?@A!!3/.O ]O/@0$.!?7,^0>?`@@$ '. 0 +@" NAb /  _<>A1.%  o>212D /> QAs  "c   !0#/-R!3@5 C3>0/_!S"25/ܾ|M6-M? n`P1?<^ !?10 "102 >- <@-O0?D"t./R  !14/#!?.30!S4%!0@$.A@1!40" 0NN/0 OB" #, /;=A"O0!D=. =!=@.2 M -^2 #.04.!/-OA?/> 20. />..?A1!  D4-/>._14  !C%1"!E! $# B/> 2C0B# $ @1"A"!d- OP.O0#!-?>>0_ "<?!=M012?%.2/!D3"B/ A#B/#34%  >#S?C!/122E$!0!3@0 !#$D?!1=?$A42!%!"0B"1ݯD6!G/ /"" .# !!" 31"1  /0B33 ;- !/"!/!"""50!#A !"1#/0 1/!D$01!A"1!./ O""!" /_ 0R ?   1# "1/""0"! !02 -1A$$/!/1"}| !2 !!$/  01""!0 3 3 !?/00!/2#  "!!  1!" #/"@!" A0!02"!  !/  3! 1"! )+2!2"!  .aL 1!" "!!!/ !.//! !/  !2h]!!"! !!!! / !" /!  !1 / !!   WQ!!290/!  &%"   / / "25 /&$! !>D   "# 6> ..A@/_QOcr?rMP@7._&2 @BaQC"1$"7NB ."dO T/ +E!!`v SDB0T0^ !&,"B44%  E$ݍED% D 5/1s &!%!0}?-2 !AݲaB4a"S"?#q!33p5=R $Q,3 w3!_o!! ei.|/>S_"B!& ,sbB?RBrR/##A'1 6/ /#6-#B#4/" D #/ 3?$Oݽ/B3 c "" E1/QF#1A# b" 115"/#B" C $#A5" $3 #0#!2 CE#0 # . !"#1s@"/Q"2!!#4! !?!Q"B1"#.#!B#"K@  /2#$! !<"4""@.0 A/2 Q&$ !/"A?0 !#,@.#3"# $! 0 02# 2 !3"0"/"  .!"0"" / ?/O?""! e: "4133!312! 3 31!#2#!!" 21312# !2"#2"!2 3"! 2"" 2"2#21!## !"!##! 1 !""21#2"!!!!""!"!"! !"""!!!21! "!"!! " 0"  "^\"!"! !" ""!"!!!""!!! !6(!1!! !! !!/ "!"!!!"!:A! ! !!"aX/ !"cX !  !  0  !  !   .9MW<;--)&"%(&&'-(('))##"""#33333332""333232333333333333333#3332#332332""33333333333433333""""""3233333333333333""#""3333333333333333333333333333.-$( #+* "!! !!7#` NBM>+1# 2!?&Rb:2?p"/R`r =B !?5 '.AT ?c! <#+2q2CO@15& /0r!2;>?>>>7.3_7<> 3" K< >^ AB.511% %?#O@E0"-4  ,B?? Np ""!u P$!U E"$C/r%"2 1Eq!P@'a . #5B ݼN E0!2/7"#RBMAQG!#  #?#0P/ $!ADB3RC#.#2b r1s?!t/s1 !?_%aA1-C"bOA$=P43r!C #"K/ 3a6 rP%$a@18)<$2?@@'120@/s.Q"d#29 !2 //0»##RJ>2uQ 'P T%B!C2Np"2"cI d "OT!D/PT"2 @$b/? G1/@D s ?c2PB c n0"P"t? >U#-?A %x%!DA-#2r.. 2?!1A$Q)/Dq U1L! Q/Q?'=2/3: c"/R-1 740.bA/b28.F#/Adq1/2 $!2! #/3r-0"6!r?-.5R "1%2DQ0-&d/R6R!>YBd! R1B BPs/2 #A 2 %޿T2-SS E2B]_#_dBO1/72 "5@B >5" Bb#!/.&1b .11q!0,$5323:OF#/R%R4@Q/E >234> s0! #rB-/@?0D/Ds1071"p2s/*7@3s#$1b"=/&d$$D!1Ѿs C u /DE/40C 0D1D/s?@3"#T& 6"4 4N/ " T2ЭG%L S"E!TR !Pѝ23$5& %!Cq25!"Cc"U0s.B$ !43r?t?/ADTbvT/"u1S6.wD!w.D 5 tq_A4'0E#4%6!#"T#?u.#S##$!A?cC #/"R4#!E'uUw$t12ߺ.A#S57%42 s2!T !E$D2#35"o$5 dC7C#S/!3"C@C 4.2'T" b scbSBk R!26 DR/b0 6rbA?QD1?"17>cC RsBQ" rD&6"!!< TAb/ V %u #t Q U!/u$Bs 5 $q4A54AQ6AP!A% % 0r417 43@& !'CC.7##"Dq 63r/%0c !As3B# #! 6 r bEC$#BEQ %S!T"u $0s"31#b#0G?>r0-? $!G@tq rb/,+5 Ss-tE2A1`@ O c#5!.7! #@1.cqQ"14.27 11363 #21^/# /P"#E$3H0!G BtDQ@( ?//du& 4DN>124<4^/'!5c0U3B" RE-P /BBbAа@# 1! Q%#3!CrRt 0Q! ҝC b$%B.1a@!?p$PRs &!eDb #!Q! 0_$!0SCC@ 1p 13.,b ?6#  O#%5>B3aBBO!# s24#/E/.0?0$3E-1 Cc1 tC3;$%"P?OD2O-  dAa1 R#1/D+4?"3 1R+R4,?R AҽE/&2.N'_3.u> RE 42.W>Ss/A$AB!<`?13  c !4 p1!1.C/1US `0$ !"34/p 1S/!?D2c.ipo#D sS !r"CRA0/O0  /s1a#% A.A/)1C#5"/##CB,BD@@3 P! ,-b!-'@2t-@DA3_/4!t4(#7.? /O!2/-73C /@4"Q11 0&5-PBC3/0 /30@!!!'?5!O 7 rqaR 6TB)"C3/A?O? !!@ 1F #' bR,!O 2$ ѱO#Q 3"<1%C"11P4?= @D0 T-Px$ 11!!#r/ 5/.@!#!C.0/ .#4 @DbC, 4231@$"/"#2  #42R12#3 /2? ܽ! '!c.Q3C 1?¾A;1 C!/ 2Q M1D%1.7ca22 2@ 2!=#D"BBo! E/Q2 3+0Q.>@0!&  >--@!C1/_%!32 3a N"qB!0 .#1T0 Q A>!O!^4@! 0$.a+DAݽ#E08 A /!`r4 2. Ac (0A3Q2 @$.. 2B ! R~"rcQ4 CB ;Q' 4A$ #S 1/Tc/>SqS/ ^.= dE12-R 6TB C/#@-4P!-R@ %@G71F s. A2$a /5!41 44243 CZ"SRA614>@Q."!-$S&/& 3QC1!0/&1232$C 0!5"D#B %/""332!2!>#?1! k@ "B!"#@  U# Q"Q"".B1#"2 iBR" %!."/ 13?! !"N!2!/2-20!@ 1 "@-;T$-! /23?1 . >P ?/A">A1 P # $ >>01fR1-/#0/." 10@1# !D01 "#F2?3"@5 %0$R! %-0 -!01/201 " I 3"!/@A1! 2"" # B $. 222 //4 $!3543"!ܾ#A"1"30# #B!/%31".B # "/!4 #25 >@ ? 1 !C"">!"R"1!.62#D2424D3A53/1" "2!BA"$ "> "2""0"#T31 !! #1!$D !"D2 ##!/!B!#B/63 """ !3B !DC 2"%5!!!2!5#"" !4S!#03 ! 43""!530 C!33""D"!3Q2 ##!#"3B2 #" 3/"#32 434 2"B#!3A"!! 3 $!"#2#0#"!1/"!BA#2!"3!!"2"21!"!#!#4B"B ""2$1>," 3!$"4"0 !"$#""22" "!"!!#3/!!""42#2!"3"!!!!!! a2/C/"!32#0"!"!"31/22!/!$B $!"!2!! 1!412 " 2 #"2"! "#A ! "2#"!'&"!2"13!31""1 7/!!""!!! " " "" s1#!"!!""#"!3!1!/!"""!!!31!B2"21!! !!!!!! "2"! ! #!""/#!!""""0!"""! !"""!"3"!(!!! ! "#  &# !""! "! !  ! !"!@B  #  ]NO,2]=Cp,/Q /?M'"*< Npa3r!Ar1!J#/ROa%=?QO+!@#]H/! #3-"!O2#;Q2JCDe?> c@06!0'1A !DQ`DR!/64!s4,%r7/r.B  BwA/b 1ݲt2]s>!. '!-0'"/"0 b1BC 2!43130 BRC!Q QBS!!1 22 /#B 23-0!&".#.,#A21 O3A2Q00>2 1 B#..o#30$#Q1#!A3B//!#04$#" 24$2213C0N #"B R"/ -200/00!A22# " 1/1 "  2".##  PC02!4#!!44 #/""##C"$2 1#3" #30 "!21##/!"4" !"$"3!"0" "3 "32"#32!#2"!!!"#!!""C!12"""/!01"!"!"123!!"!!#""""!!2! !!!#" "" 1!"!!!"!"/ "#!#" !2""! !" 2! !"!]T"!!!!"!!!"!!!""!!!!!""!""!" ! !1=! !~x!!!+,_Z3+!!'%1:*'&&*+!!+.33)(+)///%%"#01!!*^2"PBa?!^\A,.; $n!$8mA.4#.O! ! o 2/!." B-30. r 7<3p"r" !! B# ?-q-0#  O$"$ #22O3NQ?,#(41BN$!<41>C R4 &2 pT1/"1D!M$1 c2>0?'!!" c0!Ϯ$ 1q!@ s31B2&3C!0 $271!"#c//"EB".D4F0 1 DCS!.? PFS/2$AC 2$ $@14 C-! @ BB?!A"? D.|!D, !R! #2 13!Q!0 /  O!  3" C##? D/BA2-  r6R2. Q?"0asN!.41s."/r</2a+h!/Rq!- $"q ,%`"A00/B01"!!A>" 1 1 a,s"/D2$r5!"B"0Q@!?"A"-!"!"4 50# Ra50$q-"!6!$a #1#A / !!B6 2"R//5A"/ B$0A  #A, 14#7! #3B & 0%.!% DQA"- !E Q!.$"!!/216"""1 #'1! ' D#q/  #"0 VE111/6#"/1D11@!!O#2Ob/E3 F#1<!.3 # C ""O "/=6/00!B<"AEA A!*#QS " R!@ +- 2B.i"4-3SN/3"$333^/3@K.Q # C"1.CA  C>?40"b" 00  @!Q2/1# 0`,.#?!Bݱ#.a2 "C/O B 3!  /S.#,Q>,11/!#0/C,A/c.#1/%A"R.-O2-A. ` A O>3A`.00:- /; ON+*=A3-O ,_A"<"Q!?1!/ A O 0 1! @#"!*/2@9O / 2, 1" 2+0?!.?"#0# P  @ @ /!  "#  . !/% .%! % '$?6  /4#$ //  %"3 '0"?COB .B G#/3 A42 -3@!635/ 3R&/R$-#4A4..5@ . b.%#mE2#-D#"43#C5!T2$"-E"1u!AE"#3C c2 !E//2#T5/"d#1"6Y!1A#1$C12SC!.QrB1BD"3$R03#$1ABC q!R@Q ѽ-B11<1.s11q 1b  e!t>/#b!R",R1A>4-#2"s"-%!r/ bQ!AqB#0E3!/03!2!r- 3#?2P!0 2Q"  C/$Q ?O A R /#AQ.1C!@"5?RS0 CQb2"cBO0/03 @?& B/6! q7/C.06B  S"#r0B#"1 5/!11/..51O 5AB#1?. <&3 C5 @E  4! ,6 Q< !#!. >4M,T/Q F>P 6 !2 !S08.7> 62@!,..$/!N/' 2'_?!# *$!/"1.. A 'B/6 0:/#B1 )>/2 D/C 7 B 41 " D.! A(6/0" "_nA$!0A4A.3 1".!#!Q./ Rnq#!"R> .0 A01B ,"b31Q /T Q!P .?R* R?#+"R!//A  B " p 3-2"!1" 2 1/B2#?m"20 ?߾$25c1A$".1P!"3" / 0!  #1 3?02$.2B# C2 #^MR0,B3e 5q6#$32?r 2"0/##.6" !1R!!!aA" 2"#!?$5 3'R'?"!"0 727%/6!#  01A?$E"Os$B@ C4!޻6/@0@>d#/A!%/<37!"#P0!r3O@t#a# sN T%=5T!߿Q"SA4T410TB!A@&C! @21?`1#!sI12B4#B022r04oB@40 !4=!!%5"0 ;2?#D # /P "C3"$12!S  "C"RA">14  "A ?/2!C##/C B?//b1P!!/001 3A A3@ /A2d/".2!"2"!?2!#  4!Z2#!1//"""1 !/.2.1##" 0!./. $ aJ!,! 1"//0!-)#3"#"R22̾""#2! 2$3"T42Ͱ#2!D2#4 242#1!"24"22C06 /-!  !/?!"##1!31!"1CC!##13C30!$33"#""1"!5b333R  S42!"# 2""033#"2#3B"3#1x`3"!3CB "222""3A"1! !!"13#2""3#A!! "31"""" $!C /1""2"/##!22!1!331!"43B"3A"""!"!0!!!"1331!$32!!!43#CC"!1""""3#3#/C5"!!"Cl"234""!2!"! 32!""!!"!""2!"2""""#!"#"  ""!"#120 ""!"!"3C 2#"""!!"2!#2"! "#"("#"2#!! ""/#3"!!"!"!"! !!""!"!oq!!"!!"/!"!"!!M>"!!"1!!""! !!t"!"! !! 1!" 2"!B6! "!!!!""""Na! !!!"!"""2!! ! !!"!"!!!"(/!!!!!"!!   " ih !!RY"!" +&rf // >N#"*B.&;B&#rP?_-O?&""")3O. 4 3_s#@o12" s13$//S2"A "A1$%> %20"R#"_# ;$""c #"&.?0V _AR r=!$$.RN A0^y2 ! c=RE!2$-4#"2!6!-QC0O`!Nc .#25 BR@WRS3! 21//1 "C!0! O#Da$.5$D  C/41R3"" -$3 /3110"2"2 Q#! !1.2!//#"4""!!! "! "#  " !!"!2 !! ! "1!bR1"!!"D4B32!#T#4B"2"#23C23C2 "B"#ͽ43"#23"#3"#CS2!!"""!"3CB"$D4#!!""2 ""!!!-4C4"B43B!"#"!ݾ!"1"22!"D43B"!"w#4C#3##B2!"2"!"5#C#332!8V"33B"43B3!"#"!!""3#""3"""2" !"""!!"3B"!"""3"""!!"!#25!!"22!"3#21!!SJ"332""3$2#!!#22"""333"!!##""!"222!!!OJ!"!! !"""!! !D3!/JK (( [Y(*52 VW<6)/)*53:;%'**-/?3 7"@.N>'2=>;+!20 ?aC1_q$ . A01#Q:%CB00 GB C2B!b""E" 0#4 f1!E1 0c@1?r<.e3 @Qa. S$;p3 " "C3,P 0 Rq$$"!+. @-#2'//c. 7"b/.B43M!"60C/r"1  Sq'" c#1J/C2@+^ R9 .ua'@ S0*!D!S,P"d3T+>e#?5SA s1 P1S;/G! 2>P% s >E8 Q# "SBM'2P't/0.6"B "  C0<"$O#DA"cA9 F$/12-!0 C1/2(/%,aA uA;0"B!P?5A+1!c!/RqT/!A>-B`-oBR8/dr? D.b %0 r0P"/a0-`! Qr?#F "B"-..G?N!  ޴o$ V 1O 5!4? =!! #3 N r>R, 1q].QR3< B G!@m@ a +71/@,F2>NY%6.0 "-DA  31! !p.1-@! P/!>. 1> r A@R $_,!R ,B;@O/>޴M. ,= _ ? I>2-/@!?+O> #` _ O1.,/=! /.I_ ! (PQP!'PoA 0_=0L<3,0"8.>P@R=p.Q1-K4? !=o1`,Psr=ߒ0/ O.,p@ ?/@0&"a+Q!0?8= [O= P_0@!^4~ 3,,b //&!#/42 ` `?!n0  +@"_`n{=\@;1)?>p,3O.".*` * !O+=:0.?P@DMA@;(81>TO"0B `@0"@ _/ 0;>Q_J/#M`)P0-@/ ?1 0q!?.* 0JQOl!P N ?а.L_ 2;,A>Q /P+.L aP-Q G2!4?г]-A= =@1/;q>0P=?! O@1CR  o!^NC+  >0"1bNr _1 /.B0P- 1%<0"3_?A%/-> P>3 O0>^/?0!<0A߳>9P.>P ?N>OQ<./@? >#-/Q$<1:/ &q NA>? `"+ -%1500: A*.@@@ A.1.p_.5N ?%/ 7O a,G 00UL: "Q Bb2Ol%?b,`.E2P r@/Q/A/C@28?pC r@_.a_/7>!S 1*OGE- Q#b!P:?*D,a0 % !s_tB @_ 0D:///Q @0tѱ.~!'& "9Q1I>1/@ =!0!;Q)  E/2N* # NDq1/:#oCݵQ-/ VB4U"rP/Q71:M+. 4!r1A@._B?B BPP"?N3A9O $/! "./O>+#$!.C B-0 S?R.P O G2?b#C1+!Q%_=]O +#'A# >sNNS>S!!/! #/0>??" R(/ rNC-?+ A?' ߞ/ \h2p Ba:? '@%#?4q!6?.KNLE1<b 0BNa/b&W>T1^`"1 =@/50 A.@0-!E" .B-3!=BP3"P PGB^$3`-0?B$@!^"=4O$ Q =T@E1s@=1 ?-0@4 <O#b]VA0.> Q1K/?1. Q1OA-b:O_.#?b4!@/,n+1>c2E!%_qs@.%!o1#-. %0/#0Qп?@?? SP(?.߮#0}K0#@ 2?&B>6  1>3 4>" Q/>TQ% r-@  > ?$. C? ?>B4,/ ?A C3!.CK7 02/Q -"!N @3 /r/1-0.4?QAq1&"0OP"N> $/P/`"u3O c"8/10"?#`RK?"D A/ ! ./ !1/BA3q*_>e' 5$-C".Q/20/M5  C  1>A"a-! O3#.CA1 ? E /'?A?1=Q'A0APnD%# /t >!0 #C2pQ/:"!/=b 5 Qr 5 ?Bc/ dq'1uB #!@R!to4r?" 4SPPR N%;V!% A/!/A0Q/ >@F. #Q.6!A>CQ@ "RB"#3۽". 3`!&/CQ!$ !%C@ .^"r1b "/0.21<ޯF" 0E 0" !/2O E?-ݎ1 M1A.R$.!? >b?!!P oQ !$_!  >#o !" 1 > q /C#1OA.!a/A# -!#3"#0D20!"C2$"-"ZZ 1.!/ !C# 22A0$ 3/1.A"2 / "$2Q/""/! b13O""03 C$?2.? \(?A/R?2  / #C1"Q"/ "@/"104Bq! Q ..31?!1/0>"43 D#3@/3b3 S %"#04 D21 $D4?/63!43#13 33%C 14/#R3/D3"T"T!B 0403B  10 2 Ma!B  !/ 5!1  # .//!?# B!12|B40!B/0!1! #^Q0  2?!CO  2! "23#""!%!$4/!33B0""C1C" $334!32 D3#01E 3$A "24 214AB!1$1 D! #3o20"1!444.4!2313!"22 1"#"!"D1v^!!2!!  #21 !/" %3 #B # "3>5"!!#1C" ! 32 2 $ "2A!!/"!#2"#223 ## "2#33!! 3!$2233qT#!" C2""2"0/"1 !"# $3 "&4!!!"! !"!2""!2!#"!#!!\R# !!"/2/"2#"3 ! "1 ""2!%O2"!"2!!"1"! ! !"!27E"2""2!#12  2!"!#" Tp!! !!!2""2!"/!!" !#441! !!!XT !2!#!"2 "!"2!"! 0"  !!!"!!#"""2/!!J7 "!!! O\!"" Q`!!!2 !""2 !" "!"pj!"! !" !"!!!! CL  jo!!! !!! }?@`/ 32R -Ѯ RBc+3U "p13>}/;/n>=  /+ 2,4  -.,X  !.qR/- U%1. N"=ܱ1!"4N1C0"q a2&1.0 ""/!#03!E3?!!# ?# @b!R#=3"!040. 2BC#Q"1 2?/"A22D#132& 4#/112$!3   ".C/ O#!@-ݿA @$ ! B!!/"0.!RC"1?"2C2-@! A C#" "/5"13"  2! !##! 3.!"." Q A!/3 !!/0 "0""  !"0!Q!#0?!#!!!2" !1!, 1? !u# ##$41 4#/"2#2 13"3"#3!#2 "23 "4" !"#3"3+v!#"!4# 331!!3! 132#3"!"3"/"#3 2!#"3!!"""2"""3!#""!"#"!"2#.$1"2"2!"""!  3"!!"!" !#1"#"#" !    3!!"12"!"!"!" /! !!AL1!""!! !"!!!!"!  !!!"!!![g!!!!""!/2#=D#(tw" '$0023 *.)(#1/%#-2 //)'2+*)!'(## ._""AAQ?!n<1K>;/$N!1".#3?#"  ^O#3 $S2.4 XPE 2"s"2#".G "^4+0S3 1* % oS01Pn!A .1Yu# #"$!,/3"=D">4-Rέ#O 6"!a&2T!""2@"S ,$Q.r20A`'Q?,s1-2!R!"$"4a#BR1F!!C0"#/53a #ܰp0B 3_O1&.?!#Eߏ!, !%3?@ !R@#$1b "20A."1?"v?!!/""?-#0!/ !0 0 01 O!0#/2g!> 20"/$0 /!%/ !.31" L!///! #!0!  !$ '.0G2G 1aFB)D2?33! /##4/C/ &!!"5,& 1 { &/ B,73!"B+ /6/!"!8 #? S? &!!S#=7!SL 02854!*4!"b!2* $ b /R, R=%!1a!M!CeJ/R*. S;$? 1""s?!,%/r2!.Q!;4$"C$AL)0 C"*Q b#!4!C3_ 4/""S<?2# 0,$/a/)/a#Q+?.B3!+O"3 +$O1#R  4/b  N.q/.2A2#"&B!PCC 3"1/1!R#> 2c",  1 4!3"#!4!<15" 2 #$ ! 0 /1#4$R#21E$A0#/?/#13Q3#Ra4Q$ $@.#BH 1-$ 3Q$%"#!"  64%!"%.#!#6! %!?!""C##2  5  2 0!D-H5/"S "/$ b!!b$T !%!3TB. c1-Ь5!!4#" t!!"S!>s 1S!>4 " &"T#N#/4" 4!#4B#r.D"31s  C"1$0"C$ !AA /B!1!#"1!S#1tCs/sb/2a B.-#1R/!!/b R QnR QR/@A a2A 021A 1BQ QAa C1 _aP  2P2?!P anAaA? B1P>@!!D!  qP $2 "@A?P @=02O/2??"'_0MA!0! > 2 #0.O. !   .P0 @0!/?>..=/  `/ !/?/.//?L/! )"/# Y,?O +$0// /C-?/0   !"1/ ". %/ ,O!  ?  >$ / .1  #//4 0&R/0"0'0! $2,a,  "9%! .4-"$!#a > '!U  !M  @/&/! 5:%" \!  /P- '/EbT0C8'?"3:%"B1#: B!"R$"('B= S-.a- $!1K&1"!2(B #/c/*A"Q5. &2R@ Q)!`A42+#C SM!?Q!!b?37t/#3 Q2M ^ 5BR 1b4 $"qO>3P 41"A*1B!3B !BR#>Er /a  #!R!B#BAr"3q"/7&e1 6!s. !@4/QO """"S=!"Q# "  P!!@=#1Q-".!"$1B114# 3a  Q"a"!/" A-#>R  " !#BFq/!B#A1>?1!"$0C341"2/?$/"!A-#0""30"3<!!2!!P   4!!,1$0,$!@ !"?/5 ?B1-B >.-1" >3$ 4-$/012!>N "C"!?B0 #?-A=?# ?+ #//!! 2/$/"/ A. a$>$ !0;1!]1=A@RNt37 q-_QC.aAP3 !  "/3#N1+a5%2 D`"2O"A*W!.a1QB"Qt2T  %@-6. 0A  #6 >DBBaB-#"6vB"#e'?3# $?q2.N"$-%BB/ "2: r0 T 5A" 7PF3! 21>42"D1!/D/32T"S/"Sr"$%"#c0 ή!2 1Aa%0" ! R/R042"D#60%337 3!4 -!$Q/2 >.R1%/ͯ5/$"  !0D C 2 3! >1?? 4"0!./! !!A B #"4> B /..1// 5 /pB!0 1 .  2   !1< 0 ' /" 1""#> @!C1 !" - !0 A/0 "/!! 1 !! QcA.1! "   2/ - B  A7/#22!"1!01# #Q!2"1"!/"!/.!"/"0' "1  2!1!B"! #"$B"/S# $C40CCC# /#3" ##!#4C/!""!#!"3#1223R! "!32D44!! BD23!!C4"2"2D! "!#""#"31 3#233  #$!43A22/!" ""!"3"" 1!"!""1233"!!!! "#"!"!"!"43B322 443!"""$"3#"1""""!#"3/"!"""!32"#$3!##2!"421!43R!*"!3"1##1""2""!!!0#3"4""""#!!!"!"!"" 1% !!!#"2#!"2#!""""!!/## ##!#23 #"1"#/" `o2"!!"#3!!!"!"#"""#"!"!*4"!"!!"!"! """1QC""! !""""   ""!!"! ""Jo"#!!! 1!!/"!#2"!3#! !" $"! !um"!"!"!"!!! !"!"!!! " !!VJD8!!zt!!' !!!!ah ?";#/A5#*BBAۡO/p%-###+2/. /R D_ݲE1/0?0.1///"R2 5Dq6!1#"-U021B" 30?@S$!>P0e @0R6/#@1NB`10!2S 3&22 $N42C4 %2# 3#/>0C?.20E!22  42,! -2.A 4P1!O $QDDQC E1 /$4"1"-2Cΰ$# /20 13#!.}"3 &/3 B#"" !!"/!  !  !!! !! ! /!A "!!!!/! ! /?! .!"!"!CC1#23!#4#24#34C3"""3!#CBSC3""!!#!#$D##3C22!3!""! "2!3534#""lJ"!4433"24B3"!!##BlB42"#!232""3D34"!#"#""!2332"2""#"!!"""#CB3!!23"!! !!"!"""# """!""33#7/"#""!!"#21!!!!###!!""#2 ""! #""!#" ""!!!!!!"{!!!!! {v 89KH.,*-&#;@@=%# ,)SQ""/#.!2$2 P1 /$$0g.&R4@0b= C0o#5. P# d1O!3>R/AOD/'O$1S0#??0'D>!O,S=.2@ ASC0E>SO ! T ~/r2O=$C.. 5B&2 0c?!01cC? 3OP!T#!1/DU2Cc/R?!c<1r9O7001= QT2?Rc% ")4"&._Rb4" !81 D?/"Q1'- AB7K"040R 1"-G&RCf-NQ#2'K>%4!Q+!7/aC v?r"A"8&C;#u.?q3]OU/4aaE/ݤQ# d/ #_!2!!#2 B-C VN p!%3?"1#4B=P2s#;B#$0#1O`$ T.0 TS0#m !?  S "&>QS6/ZK?AT1!N @?c# `1u$1>Q0C ,SN@ v#'o!E) O$  D/&P2t$?C4!(!!?2.?B C'-1rD2K>!382/T=!r46,>q%3%:OF/!?r+3V/BR !F+=! 3B8!V QAe-/CQ0$S/"Q " v/ Q3&2QA*#D?Q#c,-AA062@/P "27#0@55L@!"B #.PRE/1!D#4,00? R &? RdF("@ $ c!P 1t0 P6+QN"!"!D.!-@Qu$!02/C $/%?!4s$-  BF:0!!#B4O Sd4L@R5).%/ r+4E< ']qD 4:O#0C 3r".E/ҝ bRF=o!"r2A"9/.' b+#d./b3 7-?R#~vq, 6/q B G.P!R% 2q-6G/ ?a$7>R!1$2_a4 U#`2$$2@AE5@ qD60#OB!#$b/oAs& 0R0T4OAd 13U!@A!D,S?!!t#-0QS !>0$06=@Bc?2?S "3@/OB$$= @Cb #: ?  #B"6PSS4,_0232 1>$./ Q QS;0aC 38!/%0 Q #F A36,/"p"Q).B?&B1c. /B2 '/" `1!+cNA BU> q1 4$!!?@B T>21 DD>?Q-4 !0B.6 %_Q$.%#?!2Q"b`2E%"@21 "412NҼOBS$+>2S?2*iB>" B#/5OaR$, BAA >60a #E P$1?AQ+!' a4E/!` @#+ A$6.//Q# 6.#1/25OP4E/}"300 1D%@13 #.!OA0# !.4O!D3/PAC$> !S"/0"S! 01$ -R @ T.1#5"  #S/A"S3*,@?5!,3 ? " C 2>`BC =  2 B/#?OB4-  A$1!-/03#_42#=?!.!2-2%0C2$./B" "= #0! Q#4/ C#N2 A-"$ 1R$//B" #>!"! A# ?R3 2/1-B2? AB#=>A " #0/24$?AB #-!?!?D"/>%!C@"$!#@ P5`"R.@$$ /@ 1C0"] !0!0$@25".?""/ 2C">0A#!=0 "!22E!B"D0C4D31R4/R1#S>3@"! 5" !b"D/ A5!$3A!B!R2D!""A !1!!$0CC3 -0 :? / 1# .?!" ."  /!"?1$ !1#". OC0 0b""D@2321!0S!%!B402C14 R"%!!! 3 !AC!4! 1#""B#.1!51"3A!2#4C#6/A###2!C3$!A5  #R2#"R"5"?~[B#33$"12 #10C!!   1!#2A2"/"#!"!$!1"!"A #"3. "2 $1!R#>!2321C!R"%!2""!!C!0#1 23!#!!3/1 h#"33!# 1! "!3  1#0""3 "! #Q 3 /##32 232 !C" !$/B3/ $!#!"1 11!4! 12#""!!#1 2"""/!#1!C#!122!2 onB!$ !1!" 3 !#"2!1!2"#!!!2 #  "!1 !#"!"0!"2 !%3/0!"02"#  $2!"1!$1"1"""!#1 !""0!!"q!"/!"!2 ""!2!!"2! "!"11"""! "  !!0!!!" !1!" " 1NP"!"""""1!"/! " ""!!!!! ! !  !!  2  !""!pq""   ! "!  1",!" !"!""[P!! !!  !  !LO" !!!2*!  !cj !! UO !#:9  JV0A :-  MJ++./)*6@!";9 56'&!11$'%",0($')21 /# %%&'/'*%&#!!!!,,$$+((,&& %+&)') !!!    !/-)*,/'&*+.+ ""!"#%"'&'&    !    !..++%$')'%%#.,//+*/,+,))-+.++++/0/--+*%'*)*+**,+++'(  !!*,.* !!&&(+(',-!""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" !!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""      """"""""""""""""""""holotz-castle-1.3.14-src/res/sound/HCObjectAcquired.wav0000644000175000001440000006013211177007633021720 0ustar jacobusersRIFFR`WAVEfmt 2"V^Z @0factZdata`" "7 1? b.ћ RB33!d@ v_ 'AA!!Sа4uM5ϠBR..12 "P/22Qc#К #cB3-4?s߿U?A " #? ^B3124wD" 3"2""T2wFTg"1#2#D"TF"1߬"ݘ""!D!"!"dW4 c$W$"w4!T2#C"ݪTB2#!!"2%R"C D"!wRPD-8ݺ33CE4"2w3D̻"wC"D"V2V""2d3ܼ"DT3"̼"3w#4#"#g3D"U3f#3D"U"S5C3!Ue""42""3w#F!""^_x8*"U3DD33Uw"!w""4B""DUV"3 1w333CWC3UED"B""w3w"3""#D"3wd"U"2v w"D#3#"C%V!FeVB 5Cw"fUC#T"gD1,.#2v2!"4SE!!"43w2#"$D"V33S#Ed3eC41͈U333C̹""TE2D!"4B܉32"ܽ#423VC4T32C˼4C423"33DWC2Cݻ#D"33!3DVU"Ew"3RE3w""!!Ev!324ދC$"#W!T5T3"gC#2"w4"C#D4f V1###EDwD3!"WCU34w22T!#VDD4T2CF2wB3"fdFE2!2wT$#1C"""Uh#S"E#!"g!Cw#DD!3wC2eF1!C3!w2uE!V3CUTU2!C#"D#f"U"Ew3"13Uw"C$!"V#3#C$"#w!ESE"T4!TD#14!E3T"""D3w"Vo?E23! ua#$!42A.qA3! !v%b?/@d143/SeB243!ev0D11.1Sv2@B41$C#4B As24RU""D1B32 w""Au!..4$!w1 @T3 UeD A1D E/r23 ?1Yp12waEt%34 T2Ed!3D4"D%C6R3423"!3Tw"E3#T4v!4wC"4"3$!U3T3#3"#2Cw5"Cg2C"CEC" #w3334ff4"!S#vV!#3E2v2U2DE'=d?d2#"f#3"g!#v3g2"3"g!C$" "w6B!U3BF"Bw"D2T3#U"w#T!5c3"gfCF"C#C"U3Dg!"e"!e"4!v"v#!"#"wU3""6s%2!W!2<^'/ V" CD/ 12w!B#$W!O/s5!r3C* 34V!0r#2w!!4"2!EC .vb !2CC2 = pC2"42 sG!>.A52u c4w" D2w" 0c3 $Bv!B /c3`1s2  33%C#@2t_]]V2V!!"!D6B3Cg4T1wB!e#"w43"2SEDT!43!v!3"wd$4R5C$EU!D22D!2Cw#TDT#"f!UU!3#2$e"#!#g223WW!"1D!!eW22B3C="g$122""u4c##DST#!"U!$2"3C3"ECG" 1UܽED"3!"!GB"ݼf"6"3DTC2#2DU"B$Bݾ!4S#2g31#s6#21Vu"41><ZBDT$3""2#w3g""3e42""3!ݼDC!#W#2C!e#gC4 2w#"v E1""uC52#wT"!D2D###%BTwBF22Du#34!W24 B3v3!wDD3"!D"D23U"w1"R#,*gtIW!Ce'220C"w445@>c&@ 2Uҡ!4 DE$!Aw#%C11R735г6 P! 3 0A,5#UC02$g#2R$"WE"Q276!4/@C"$#S/'% B!&&;Xа001 g##$ /e$D41 rB$E?2 &$3BA374¯.B-.7eѱ"0! b2#Ҳ'V C"ߪ BD'#S0Q 7.d $/ ^ '6"ёR!4T734r W2D4# S"c"K(?AB!?P@s2. 2uA  ?43"v#4u/AB2 3B OsS F 1]BC qA10 ,Ѿd20- /@T#T"!s$-s#""G b412v q"!!p=b 0- ' Ad2 ""3u##"v. s!3$ 6?'vaBR4f2"C#g"!ܻ4BDDc#D"!T5T4gDD "V2T##UC$޼"!g"!3!2#TSG#2#41EBv"3Cw" 2E2C4b!D"!D$8"!B"wc&D#v1d6C2E2C!1%dE!#"B#2FBSWD333D!ew3 4"f3!2!g3###Cw 2EU"U3 # DFt2g"2SW#4!vS&!232C2w!!wV!C"U!!Ew1#C!"FD#B#w)+yS/A121w2/.tt"6b41d2C ,s!A P0u/ 4313"t w!3VV a C1/d3 E"2CRd!?!d V/?s12/24u! Ae"? C2 4Cf! b5!!0V/t2 b#R TW!?Ou1/DQ$&!wB24S"w34CEeB33 E2!wR!C#"D  w24013!wE!13e2"w"22f!4d"4dW4#BEu!"3CV$ vBEf"!3"Cg4 d$!"$UT#1v32g!f!2"22w!DC51!%TCE!4"V3w!4415##$!#4!7 3W!3e!#"w!!T13"2#w޼3"$w!6QUC"4ܮ613t#""w!!!$$RW#4b"U#V2C433W+%d!"4g"!F #g 3/"$3SC!40SC5132#F0 E #e 0&2T0#21"v5C!22@"w4AݫE"T#S3!t# $1޺#2w2"C"2fܪA3c451޻S"FB!CC5"!T22D"͈"VSڽ#25e!!4R!RD3U!"#2g13TAV!3ݼF2d"ۚ2"!!"v޻3DC3CT"32w2B3 3ݫ5T3"2g#"4 1 1Oa3R""C31f EABDSC!2ݻg"!3$ET F2"32"$!eR$UW!#fD4$wd!4T!D3C4F1ݜ5B"#3g#42E"#33!Sg% ,q}t4C# ̚U!TS#&12CB$!#U!ܾV E$c$!3w!3ϭD4#23f!Uܭ5C!2u#2fE1!"w"1#Tfe3Dd""#""uFc%351*(3Bv"3!GD12"SGB"3D#e"t5C۫#2#2DT3#2w3!f2D4B150T"c#""$2"T"2wV1#1w#" EB71"ݍ5#Rg2R#2"fS6"e25 !#BB/@ r!4- V22g2O ?/RC$"gQ1!" T3">oD15@=p"S#w! / ?r5 3dT4@? OB2"V"">OS3!"3w//@1B!DS-.Nu"/-/3&A u ?@B3 C34 d#2 /.RD EC" /Q!3B /gR4B!"F1A/o/C4E"D23"2"ue5DB4ܾU"w""15BT2!#fU2d$1T2E22uD "T3U"Bg!C3#E#"CU!!5AB5!W2CDC3"F"BF E33 F1ST""Ee"E"F1U2V1D2#3EU#C"EWE1ܮ#1D2#2U!F 43#"5D E1g22#3e3Sd!!g"$3FS!V!"eB3.iV3e#3EC!ʿU"d"% "C42#2E!1DU3U2Tf6QC$ 2f!T##EBFB"5"TA2$V"f!gD!BC5S2##U"!T2D5R"eU T##"D3#1#Df2#!̼3#FCUB!!!D"ݻ!e23ݽ$BV4SC$S53̼4D!5B߻e33!ܽ5BDB3232C"T#f2D3e""""DDC#"54" 4̽33D"4B3C"T"4B# UB#0ߺ2e!"!36A#4BީB""TR$23BD4Cw۾FB2!# ޻U2!S32DC#C1ET"!2CV"! w""3U!# 5 33BD3#DDB#e""BE!W2!1#ܛ3/!#B"C#4!!#D $ 2EA!6c!2w #5R #1e C"#3"E"$T 2"V!CDT#!!v"C4""!"D!T!U2BT#2$!V!C4u/"R3T!ݺ!S#!"""C3C$ CD3T!!g2!2d!!3B"2!"3dB/1$E?!BF //d&?0S"4A33/24/1"/2D A04F@B46 A4$##> B24.QB D2!##? !D6 /@T!/2#2o T!"S"S3#!D#C#1e# 3 !C##31224 C!"#B"34CC!342!BB3!CD4A#322"!3!!1"24!#S?BC01/ 1 "2>!" 2@/211 #.3b/$CB1 C?3-ܿ$AA0! #C?02 $ CB-1B0/#."A/0C/1A/ 3c2.!12/0[m !/##O2?B/"R3 ./!!" A!22#?0#0222320#10134-2 !#1#1 030#.1"1 A2>1## OA#"C"2"322#"!"#T"2#34C"!32"!!1#3C!3!3!D#! 2##"Cݼ!"2#!3"""32#C!""224""!ݼ"433"?2+"3223"޼"C#"2"""!2""3!33"C"23C"2""22"3!2""3#"!D""2"!"32"""!D2"!2"!2"C""!ݼ#Ds~!""#C#!!C#""B3""24133"!""32""""""C4!"C""C"#D2!"#""C"2"!3#"C"""T3D3"ݼ32!22""""3"!3223C"T4"ݼ232"223!"32"!33"CE"333!"ݼ"#23"""""23U3"3D2"!""!!#"!!""!3""3U"2DD""2"!!#""""""!"""C43"DC"2!!32"2#"hk"42"T$!C#""C!""""!2"33"D3"!D"33"3""""2""#2D#"3""3"32#"!"32!"3"!3#"33!3""!#2""3"2#3""#3"!!3"!"!"!"#""#!K[n|23"22""""!"""#3"""#!"!"""!#"3#"""!!"""!2ofxj"!#2"""2!""2"!""""""""""!!""2"74%%#""!""""!"""!""!!"!!"""""!"ZeP^"""3""!"!!2!!"!"!!""!"!!""4-!"!!""!"#!""""!!"!""!!"]STM!" !!  !"/!""/!!/"// "/@JCL!""!"!"!!!""!!""!"!""""!LK>=!"""""""""!"!"FGGH!!"""" 0/"!""!^``b"UTBA"" !RTWZJIJG!75**AGCG31?<GGFF::22"" holotz-castle-1.3.14-src/res/main/0000755000175000001440000000000011177007633015674 5ustar jacobusersholotz-castle-1.3.14-src/res/main/main.tga0000644000175000001440000072231011177007633017322 0ustar jacobusers                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "                                                                                                                                                                                                                                                                                                                                                    8                                                                                          #                   -           !"                                                                                          !!""!  -                                                          )!        !"##$#                                  '                        "##"  !$&'((('# " ! !!!         !!                 $                        ) !"!! !# % $$" !"&'( (()('# " ! !"#"!"#$$% % # #$    !#$$$$"                               "!!    ! ##""!!  !# % & ' & %  . ! # %%+ ,, !,!+,**%" $ $ $''( ' ''('(' & %$ $ % ! !"" $%%&%$"!!!!                7           !""# " # # $ ' '''&%$$#% % & ' !( !' !" ! ! # % & ' ,- !, #,"+!***&$!& & '(+ ,!+!*!, ,,+ + ) ( ( ( "  "#&&&(*++ + ) '&&%%"!                      "&&& ' ' & ' ( ( ('%b%$ % % % % & "( #& "" " !# ' ( (,,-#,#,!,,,(%!((),.!/!.!. .. .-, ** (( ' " ##$%&&(**+ +*))))(&&$$$#"!                    !!%&'( ( ' ' (  ( '&& % % & & ' & !( #) %) $( & ! &)+ , +-0"1$%1#2 !2 2 .* "&-"- "/"1"3"3 "3 "3 !3 "2 1 0.,*(( & " !%'&''')++*)**)('&&&&& %#"!  !!         %      "$( * + + * * * + + + *  * * ) ( ( ) !*$,$, $, &R"!&(-,+*0"0$3"5 5 6 5 .%!$,"/$1 $4 $4 #4 "5 "5 !4 !5 6 6 31 0"/"/ "+'"  !  #''%%%%(*+--,--.,*((((('&%#"!  !"         "d     "$%) * * + * * * + -, - + , , + * ) ) !, #. $0 "1 !2 +   !$$'. /".!-!/"3&5&9$: < = !; "+'#%/$2&4 (6 '7 &7 &6 $6 #7 #8 #9 #7"5!3"4"0*!"!  "(( (')+,,+,+,,--,,,,,, +!(#'#%##"! !"""!"!       )#$%$#"!!""#"#    "%@) ** + + - . !. 0001 1 2 0 ".$- %- $. $0 #2 "4 !4 -! !$%&.#/&-%,&-&4*6(9$: < = < +'#&.#2&3 &4 &3 &3 %4 &4 &7 ': '< '= &1<&:&:'8$4 .#!#$#! #'( ( ()*- .///!.#/"..-,,,-, ,!,!+#*%(&''%%%#$!""####$%&&#      !##! "$%'''&%$$$#$$!  "# !%( *".#. !/ !/ !0 "/ #0 #0 "1"1!223 3#2'0)/(. '0 %1 %3 %5 $8 #0$  ""'()!1'4 *0 */+0-70:/<*>&@ %B %A &2+#' * 1%4&5 %5 &3 &3 (2 *4 )8 )'; *@+A )@ )> '= (= ';&7 0% "$&')'$$& (!) !+ ",#-"0#2$1"0!/!.#.$0#0!0000 0"/ !, +!)"*&)((''%'#&!& % & (!( ' '%$% & &%#    -!#$$#! "$&'(('&'&%%$%&&#"! F #&$%( +#0$1 "1 !1 "2 %2 %2'1&3&3%5$7':)8,6-4,3 ,2 )1 (2 (3 )5 (7 (0$ "((( 1'3)1 +/+1.83;2;.< += )? (='.*# (,!2$5 %?3 '2 +1 -4 .: .= -A -E/F /E -D -C ,A ); #3)#"$#&'**)%$&' (!*#,$/%4'6'4&4 &2 '1&0 '1 %2 #1 !000 1!2 "1 "0 "- #-%-&,(+&)$(!'!' '()+* (! (#($("'!&%"   !!!!#%()(%$$%5&())***)((*)&"   "'(&)#1&6'8 &8 &8 '6 (5 )5)3)1(4)7+:,:-9-5-34+4 )3 (1 (1 *2 +4 *0"!!#'().#2(1)1*3-92: 3: 19 .: ,9 (4%(%"$+!2$5 &5 %4 %4 '2,3/519 0= /A -B -E /D .C .*C+= &3 *$$(( ,",#/#/#-!* '(!) (",$-%1&5'6'4 '2 '0 '. '0 '2 '4 &5 %5#4"6 "6 #5 #2 "0 ". #-$.%/'/'.$,#+#,!-. - )!("(#(%)%+#+!($   !!$'''(()('%%%'' '()(()*+**)$""!&')!*$1)7(: (49 )8 *6 *4 )2)2*3+5+8,9,9,7 ,8 ,8 *7 (5 &2 (0 *0 ,3 -. %$&)(, 1%1(1)2*5,5 .5 -6 ,8 ,4 )2 &)!+ 5 &7 (6 'J6 )6 -6172: 2= 1@ /B ,B ,C ,C .D/B-< '3 )$$(( +#+$.%0&/%.#-%.%-$.%0 '3 (6 '; ); *8 *5 )1 *1 *2 (3 )4 &4 $5 $5 #6 $7 %8 %6 %4 &2 &1 '0%0&0%/$.#-",!-.000!/#-%+&*')%*#*!(" !  #%()**)((((()))( '!' (('''*-. / .-+'%"  ##%+ $2 )8 *= ,< +: ,8 +7 *5 *3+3*2)5*7)7*8 )8 *9 *< ): &9 %3 '1*1,3 ,.&$%)''/#1'1'1(4 *7 -4 *3 )5 *4 (3 %-! )5 '9 +9 *8 *8 ,9 .9 1: 3< 3> 1A /C -C *D *C ,C .C.: (1 '$%('!)#)$,&/'1'1%0&3(3&3 &4 &6'9 '> )= '9 '6 '4 )4 )5*6 *8 )9 )9 '9 '8 '7 &6 &5 '4 '3(2(3'4'4'1&0$.#- ..001 0#.$,'+)+(+&*"'  !"#  "#%%()+,+*) ++ *!* !* *** *"*#+#-#+"+!* -"0$1%2$0". ,)($" "*#1 &8*=->.; .9 -7 +7 +6 *5 )4 (5 '8 '9 ': &; (< )> (> &< %7&4(3*5 +0 ' F$% )&'-#3 (0&2 (5 (8 +6 (6'7 '6 %3$. #'2"< *= -; ,; -< /= 0> 2? 2@ 1C 0C ,D*D)C +B -? -9 *0#$"$'&!)#)$+&/'1(2(3(6)6 '6 '7'9'<&@ '> %<%:&7 '7 )7 *8 +9 *9)9*8+9+9 -6 -4,1+2*3)3(3'2'2$3#3!344 5"5%2 &.(+)*)*&'""  "##""#$%&'(+///.- , ,,+!*"* #+ #- #.#.$-$-$,$,%+$)$*%,'0(3*4)5'3 %2 %.#(!' %!A%+ #5*<.;-: -8 -7 -7 +7 )8 )8 '9 ': %< &< '=)=*?)@'?%<%8&7(8 )4 '&% & ) "&&+!5 *2 '3 '8 (: )9(8 &7 %5 $3 !-&&4#> )A -? -> -? /A 0B 1C 1D /D .D +C*B +@ ,> .7 *.$$"$( &!($+%/'/'2'5(8*8 *9*9(<(> (B '@ %>$=%<': )9 +9 ,8 ,8 ,7 ,6 ,7.7 .8 /8 07/5.6-6-6,7*5(4%4$3!344 6"6%4 '2 )/ +-+)'$"  !%%% % & ()+,-.00 ., + '+-!-". $/ &/ &0 %1 %1%0&0 '/ '1)/*0+.+/-1.5/809.7*5 '3 '0&(#( &$  A$* !6,;.:.6,8-5 +7 *9 ): (: '< &= &> &?(>*>+>*@'@ %? $= %< &= (8%, ' ( !+ #& '- !6 )3 '6 &8 ';*:)9'6 %: '4 #/ )$5#>)A -@ -@ .A /C 0E 1BE 2E 1E /D-C,B,@ .? .7+.$$%%*!(")$($,%-&1&3&8); +:+;,<+<*A +B )@(@&>'>)= *; +: ,8 ,6 .5 .4 /3 04 17 27 28 07/6-5,6-7-9-:+;*:)8&8$9#:";$9%4&2(/),*('!  !#$ & + / 00/// /!- * +!,"."/".#/ $0 '1 '5 '6 '6 )5 +3 +3 +2 +1,0-0.3/50909.8 +6 (4 (4*)$'"& $" (!3 *:/6,7 ,5 *6 *9 *; (< (= '? (@*?*>+>*? (A %H@ %@ &B (:$0" ) * #- &)")!-$7 *6 '8 &; (=*; *: )5 &; )5 %/ !,!$3$=*@-?.@ 0C 1F 2H 2I 3I 4H 3E 1D/D-B .A /? /8 *0#'&)+"*"+$*$+#.$2#4%;)< ,<-;,:,:+@.? .? ,=*"=+< +; +9 +8 -6 .5 /3 02 24 46 37 3828/7.6,6,8-:.;.<-;,:)9&:%<$=%<'9)7+3+.*'#   #( * . 0 223!3$2%1%/$-#,#+-"/!/"1$4 '6 )9 +; ,9 -7 /6 .4 .2 .1.2.3.4.6/8/:.:-9 +7 *5 *4++''$'$&!#]$1'8 ,806-6 ,8 +8 *; *; )= (? )@ )A *? +?,>,>+@ (A &B %C %B %C (;#.!! (!+ %. (*$*#+&6 -6 (8 '< )> +< +: +6 (; ,4 '/ $,"#3%<+?/?0?0C 1G 2I 3K 4J 4H 3F2E/D .B -C 0? 08 +0$'((-"-%-%.%/#1"2"6$=*? />.;-9->1> 1< /;.;- : ,: +9 -9 -8 /7 06 25 45 57 58 3809/8.8,7,7-9.9/91:09-;*;(='='<(:*8+5+0((""5 !% * / 4 6"6!4!3#2%2&1&0%.$-#/$1%2#3%2 &4 '7 (: +< -< 1:2714 01 00.2-4-6-7-9-9,:,9,8,7-5.,*''(&(#$$-"4 (7-5-8.;,< += +> *? *A +_A +@ ,? -> -> ,? )A 'B %C &D 'F ):!-"  '"*$/ )*&*%)(3 /5 -7 *: += +; ,; -7 +< .6 )1&,#"1&;,= /=0>0A1F1J2J 3J 4I3H2F0E /D /C 0? .8 +/#'**0"/$2'1$3$4#4"6$>+> -< .: .9.9.>2< 2; 0: 09 /9 .: -9 .9 .: /; 0; 2; 39 58 69 4929/:/:.8-8-7/8283939 1: .; +=*>)=*;+:,6*0$%:%,14 5!4!3!1"3%4(5*4)4'4&5&6&4&3&2&2'5(:*; ,; 1; 3955 42 2304-8,8+9+:+:*:,:,:.9/6110***(*#("9#)2 #8*8+;.>.?-A ,B -C -B ,C ,B ,A -? -= .= -> *@ (A 'C 'E (G *:"/%!"'"*"-((%* )*)1 04 06 -8 +<-; ,;.8 ,? 07 *3'-%"1%: ,> 0=0>0@1D2H1J2 J1I0I .H /F .D/? .9 *0!**+1#0#4%5 $7 &5$5$8&>,=-</: /9 /9 .? 1= 1< 1: 1; 2; 1; 0: / = 0> 1? 2> 3= 5< 6;4<1;.=.=0:/8/7/637587849 1;.=,>,>,=-;,6'-!  #)/ 2!3"4#2%3(4*5*5)5(6'8'8(6(3)2'3&5'7)9+: /8 26 34 45 19 /;-<,;+;*<+<-</<1;28333-.,),#+!'"b!% 2 "9 (9)=-A/D0E /F 0F 0E /E .D .C .@ .> .=-=+> *? )B (E *G +=&/##'$  !## )%%$%%))0 05 17 .9 -= -<-<,7+> 08+0(,$"$0 #< -@ 1A 2A2A3E3G1J1K0K0K.K .I .H.C/?-8 )- *+,2#4 #8 %8 %; '9 ': &8'>,<,;/8 .9 .9 .@ 0#> 1? 1= 3> 3?2>0> 0> 1@ 2A 3B 4@ 7? 7> 4?0@-A.B 0@ 1= 0: 172647698:5:3;0=.?-?.>-;*3$/!&."2$4$3$2%2'3*5,6+6)7'9&:'9)7*4*2*3'4'6'7*8.6051425 37 2< 1? 0? 0? />.=.=0>2=3:37320/+.#-!- '! %3 !9 ';(?,B/G3H 3I 3H 3G 3F 1E 0D .B -@ -=-=,<,= +B +E ,G ,=&*  %&$!  # &$$##$&'1/7 18-:-= -<-=-8*=/6+1)+&""2 $> -C 2D 4E5F6G4H3J1J0K 0L .L -J .I.E/=+7 (,)+. 3#5": $: $@)= (< )< *? ,<,;,:/9/: -B 1B 0B 1A 3A 4B 5B3B2? 1@ 0@ 1B3B 5A 7@ 7@ 4A 0C .E/E 1C 3? 3: 38 47 597:8;6:4<0?.@.@-?*9&.$$,!1#3$4%4'4*5-7.8-8*9':&:'9)7*5*4*4(4'5(5*6,5.4/30518 0< 2? 3B 4B 5@ 4@2@1A1@1#=2=3814-1%0"0")" $.8'> )A -B /G 4H6I 5 G 4F1F/E .C -A -?->.? .A .C .G 09&* &('" "%$##$#&$3 .8 /8 -< -? -= ,P:+< -7+2)-($$3 #D .G 3H 6I 7J8J7J5K3L2L 1M 0L 0K /I/F0>,8 (+)*0$3$6": #< &@ (@ *> *@ -@ ,> ,=,<-;0<.D 2D 0D 2C 4B 7C8C5C 3B 2A 1A3B5B 6A 8A 7A 4C2F0H1G 2D 4@ 4; 59 58 6:7;7<5;4<0>.A,?*<%3-  )0"4$6&7)8,9/:0:/:,:(:&:'8(6)5)6(!5(3*3+2,1.1/1/3 08 1= 2? 4A 7A 8A 8A 6A3C2C1D1C2A3<26-2'1!1"+"%%+9)@ +@ -A 0C 5F7I8I8H 7G 5G4G1G/F /C /@/@ 1@ 1A 2C 1D 3:*)!%'$!# '"&$%#)$5-; 09 -= .? -> ,< ,; -< /6 ,1*.)#!$3 $E .I4K 5L 8M9L7L6L 5M 4L 3L 2J 2I3F2> -6 )*((!0&3$7#:$< %? %? (@ +@ ,B -@ ,&@/?0@1E 2E 2E 4C 6C9B 9B 7C 4B 2B 3C4B6B6A 6@ 6A4D3F3G3F 5C 6? 7; 79 69 7; 7=6>6=3?1@/@,=&60#%/!6$9';);,< /=1=0=-<*;(:'8(6)6(7(8(6*3+2,0,0-0.0/308 1< 3@ 6A8@9?7@7B 4C3E3E 2D3?28-6(3"1!.#&*5'=.@ 0A 0D6E7G8H9G 9G7G4H2G 1E 2A 3A 4 B 3C 5F 6;.*!#&$$ $% ("'$*%9 1< 1; .>.@ .? .= /= 0? 37 -3+.)$ $5 &E /K 4K 6M 8N 9N 8O 7N 8M 7J 6H 6E 4; -7 *( &!(!0&3&8%9#:$> &> (> )A -C -C -%C 0B 2C 3F 4F 5E 6E8C;B ;B 8C 4C 2C 2D 4D4C5C4B3C3E3F4G5F6C 8? 8< 8; 8; 7< 7? 7@ 6@ 4A 3@0?+9". *-6#;&=(> +> -? /? 1>.=,;*:)9)8)$9 (9)7*3+1+0+/+/,1.4/:1= 3? 5?6>7=6=5?3A4D 4F 5E 5D 4@ 1:-7(4#2 0 %%)2$=/A 3B 4C7E8G8G9H 1@ 1? /> 1? 3C 69 -5 +3 +$ !%5 &G 1K 4J 5M 7O 8P 8=Q 9P :P :N :K ;H :F :B 79 .4 *'!'!)"1(3'6&7#8%< '> (> *A ,E /E -G /F 1D 4G 7I 8G 6H8G;E=C 8=8= 7? 8A 8B 6C 5C 3@/<)2(*6"=%@'@ *A +A -A .@ .>-=,<+;+;*< *< ): *7*3*2)1)e/+2,5.:0=2>3>4=4=5<4>3>4@4C 4D 4D 4C 2< -; *8%5"3!'   "%,$9.@ 5C 6C5G9I:I =G ?F @G ?G *C .F 0G 0I 2G 4G 5J 7K 9J 7L:KF=F9G 3I0I/J 0J 1G /G /F0F3G6G8F9F8E8C7B7B6B8C 8D 9E 9E 6C 4?.7'," )4=$A 'B )B *B +B ,A -?->->-?-?,> +; +7+4*2*1)2)2*3+6-9/=0=1<1<2;4;4P<4? 2@ 2C 2D2A/= *: &7$2 ,#  !!#&"3,? 4D 8C5G 9J ;I >I AG BG AG >G 2B 4D 3B 2A 1C 2I6@/9 *6 *+ !+: +I 5N 7P 6R 6R 5R 7R 9Q :M :K ;G =D =A ==:7 03 +*")!+!/$0%4'6'9(> += ,>+D/E 1H 1J4#H 5L 8N 7N 8O L?J>I9K4M0N.N/M /I /H /G1H4G8G:F9F7F6G5G4F6E 7F :F /?0@1A0A.?.< .8 -5,3*94+5,6,8-:/<0< 0< 0< /<1;2:4:5< 3? 2C 0D 1E 2B .A .= )9&2!/(    # "$ -(=4D 7C 5H 9K ;L >I @H AH AG ?G >E =D :E 9E 8D 7C 6D 6<-+  "&'(* -#/&0(3+6 -< 1? 1D 4F 5E 4D 1D 2K6E3: ,6 *,"'%0#? +N 7R 9Q 9AP 7P 6P 7O 7M 8K :G :C ;A
,>,D0E 1G 2I3K4L4Q7Q 7R 9R=R?O ?M>M 9M 4O1P/Q.N0K 1G 1H4H6I9G:G8F6G5H3J3J4J6H 9H ;E :B 7< 14 )) 28!? (B +C ,B ,A ,@.>1>2>4@5A4A2?1<1: 17 /6.5 -6.9.;.<.</= 0> 0= 0= 1=3<4<5> 3B 1E 1F 1F 2C 0? .; ,9 *7 %1 ,! !$""#+%;1B 6C 5G 8J :L =K >K ?H >I >H =G =F 1E 5F 6E 6F 4E 3K 7D 3= 04 *,#+)1$B -O 8S M ;N 6P 3R 1Q /O 1K 3J 5I7I9I:H9G8E6G4H3J2K3K4J 7G :E :? 58 /2 ( "2 < )@ .A /? />0<3;5<8>9?7?5?3>2< 3; 3828 19 1< 0? /@ .@ /? 1? 2? 2r@ 2@ 4@6A5B 4F 3I 1I 3H 5D 2> 0= ,8 )8 %4 1 $#   "# !$) 7,B 4D 6F 8K :L ;M =L =L N @K AK @K )B ,A .F 2F 2G 1H 1I1N3Q7R 8S 2<3;5:8;:=;>9?6?4@3?4=5;6:5; 3> 1A /C .C /B 1@ 3?3@ 4A 5B 6C7E6F4I 4J 4K 5I 5F 4> 0< .9 *: %6 !1 (%   !%  )5(? 0G 8F 7I :L @4*$!&'+ ,".&0*.)0*2)5+8,: .@ 4F :F 8G 7F 5K8D5>37-+#)'.#< -H 8M@KCI DI CI >K :K 7K 6I 8H 9G ;9E :? 3? 16'.-/0"1$7 ': 'A +D -C /C /G 2H 3G 1G 0H1N4Q7P :S >S AS BO AN >L 4=6;7;8<:>:?8?5@3A 3A5?7<7:5=3@ 0C -D -D .B 1A 2@ 4A 5B 5D 6F 6H 6J6K 5K 4K 5J 5F 5@ 2> 0; *< (;%4 +'%!!!%  ")5': +F 7eJN =N;L9K9J 9L ;M M?N?N>C5/% "&'*!+!.'.*+'1*4*7,9,: .? 2F9G 8G 7H 4I7E5=24**"'"& -#9 .B 7H@HDGEH DH >K :L 6M 5L 7K 9J :J R AQ @O ?L =K 5?3C /F -F -E .B 0B 2A 2B 3C 2E 4G 4I 5K5L 6L 7J 7I7H8C 3A 2A.= )=&6!-)&#"!$ ^#'2%8 +B 5F 8H=J@L ?N=OQ?Q>F 54&""%)'+ ','-)*&/)6+9,;-< /@ 5G 9H 8H 7I 4L6F4:.1(&"&!$ +%6 /< 5F@GCHDI CK =M 9N 6O 6O 7O9O;NQ?Q@O ?N=L ;L;N N ;N9M8M8O8O 9N 9L 9K : K 9J 8G6B4:..$!  2/80=2@ 3A 6B 8C:C9C9B7C5D3D 2E 3E 4B6A7B5C3F1G /F .E /C 0C 0C 1E 0F 0H 1I 3K 5K 6J 7J 8I9I:F6E 3F1@ +B +<&2+(#"##  $(0$8 +> 3E 9H@IAJ @L?M /A 4E 9F 7G 6H 3M7E39+2)% $&",&6 /; 4E>G?I@K@M =N 9P 7Q 7R9RM ;D 5B 21'/"-!0#2(4(7 (< )B ,D -E .B 0F 4D 7C 8C 7E 7O P >N =N =N .> 0B 4G 8F 7G 6J 5P :I6:-4)&!&(#,&9 .= 2G;HNS>S?S?P *B ,B -A /A 0D 6B 8(C 8F 8P =UAVCTBR@O Q @T ATASBQ @P >Q 2D 9J BL DM BN AO @Q >Q =S R @Q BR CT CTCT BQ ?I 7@/5'4&2'5*7-7-: ,? -B -A -A /? 1B 6B 9C :E 9I 9R >U AWDUBS @O =O :Q :R P ?R BT BUCTAR @R >S =U523,((! ]  .*:-A1G 4J 7J8K8H6H4H4I4I5H 5G 6H 7L 8N :O;N:L9I9G8G 6G 6I 2I 0G ,E +D-D.E/J3K 6K :J =I ?K @K )7!+&%$ !$ !%&*-"6*</E 9O BR DQ CP CQ CR AR ?T=T=T;U:T9U9U:U;M 63$+' *+*2"4'.#0$: (; ,= -@ 1D 6I :H :J 9PM :F 4= .7+*!'( 0%A 1E4K8Q;P;PW AX DWDT @S =S V @VBUBT BU AS @Q @R AQ AR ASAS@S ?R =S:?524-))" J """<*@0H4L 7M8L9I:H6G6G6G 7H 9H 9K 8L 9N:M;NU=VRASETHR IR IR ER EQ CN @C6<.3(2'1&6*9-;/>0B0E 0B/@/A 1E 5G 6J 6L 6P 8X >Y AX EXFU BU ?T >T @UAVCVCVBS @R @Q @Q ?R>S =T=S W#?W/ATIEI?;@636.**"  8  *!(?/F5M9N :LN ?I9I7F6D1@/=)2!&$$""#"'&*-"5';,C3J9S ?W BV AT CUBUCUBVB=UAV@W?W=W:O 43!*!&%()6$;)3"0 < )> +; ,? 3C 6H ;I :K;M 1I 7N9U>T=S?UCUFS HR JQ IQ GP FO DJ@@77/1(0&2&7+9,>/@0B0D1B0 E3H 5J 5L 5N 6R 8Y >Y AX CXFWEV CU BU CUEVDWCVBUAR AP @N@N @P ?S =UH ?F @G ?F =F >H =MO=M )7%*%$#!# %%(+!3&:,>0K8P ;X @V ?U?VAUBTCTDVDUDVDVBV?T:M 42!&#$&*)1 ;)9 %4 #= )? ,: ,? 2C 5I:I:K:50.(.'2'6+9,?0@0C0E1C1H 5K 6L 6N 7Q 7S 9X >X AW CXGYHWETCSDRESFUFVDUAT @Q ?O @N AQ @T>Y>Z>[@\C[(E`GLZMHMB3G8L>K@I AG BF CF AI ?K>O=R;S:Q;R>P?Q@Q@P ?N ?M ?L ?L @L <53-(.'2(5*9,>/@/B0E1F1F2K6O 9Q 8Q 9R :V =Y AW AWEWGXIVGRDRFRFSFUDRAQ>N >L ?L @P AR AV@[@^A_E_&G[4L_RLTFAJ?9A615+'-#( $ A """-$+@4I ,B .>+@,D 0K 6K8N;P?WFQEF :5.(#' +$0'7+E 1P9ZBYDWDWEU EU EV DT CS CR CR EKA@;41.(-&/'4*8,=/=.B0E1G2H 2O 7S :U:U 9T :Y @X CWEWEWFWGTFSDRCRDSES GS ERAO>M H;E;@5</7&/ )%  $&*%,(3,90B6H:J :Q =R >S@QAQCSDSESFRHQGPCPAQ?:,0%'(,+.!- /"8*< -@ 0= ,B .>*D-E-K 3L7O:Q>WFRDA :93-''!+#2&6)E 1L 6ZCXEVHV HV GV EV CX AW @U AT CM@A95.0(.&0&3*7,: /;.A1F2I 3L 4S 8V 9W 9X 9W :[ CZGXGWF#TDQBQ @R AUEU GU FS CP>O=O >Q ?U AYC[E]Fa!Hb)HhOP`PIVG@N?9C5/8+&3(#.$ *!%  2 !!!'''B5F:I=L>L >L =M >M >O >O S?R AR DS HRKQKQHPDP>O:O9P:R;SY?XBQ>C68-0'0&4)4)7 ,: 1: 1B 4G 5J 4L 5S 8X 8W 8X 8Y >^ G[IZIYGYEWDVDR @R >T @V CZ FYGWDVAS ?T @U AXDZG\H_ Jc+JiASiWP^MEUE?M>8A3-9,&4($/% +"&! ' """,'+B6G:J;L ;M ;M U BU FV HUKVKVISFTAR=R:R;S;V=W=V >T 4F:I =K @R DS CR DQ DO EQESHVGVEVC.<.0'.!+",%4)9.4*1'6,@ 1C 2C 0G 1D-H .G.O 5O 8Q;R=YCU CE 9;23+2*6+4':+?/G7T GT LSNSNTLWGX DY @Y ?Y@ZCT=F48*2'6*8-: /= 3= 3C 6G 7J 7N 6U :W 9X 9Y:[ @` I_M\J[H[FX DV DT @S ?U @X C\ G]G\DY CZ CY EZF\J_Mb(Ne,Ko[SdQI[JBRA;G70>/)9,&4($1&",#'" 3 !!!'''=6C9F;J:L :M ;P V?V?T?S @Q >Q>RV=Y=[=\=]?]BY DZF[IZJYHYGYEYCYAX@W@VBUBSASAR ?R >T 1G7H;L >Q AS CS DS EQEPDSDWDYD[CXCU B7,/%)! ,$0(5,=2:.5+6)=/F 3H 2I 2H 1K 4J 5R ;R =R@RAWCS@H 7B 35 *6)2&1%=.A1C5Q DT MTOTOTLU IV EU BUAVBXCUX =Y =X ?[ BaMaN`K_H^F] F\ GZ GY FZH_JcLfLfJc Hb H`KbOe Qi/UpFXs^ThTK`LDXE>L:3D4-?0*;-(7*%2'"-#( $  ###(((3*1A;E:K;O=Q >S ?W@Z?]?]@^B]D[FZGZHYHWIVIWGYEZDXDVFTFSERAS @T =W-6'*#!!z&1&@1H7J T @X AY ?Y ?X @[ DcNdPcMaK`I_ H^ I] H]G\G^J`KeMgMhJfJdKeMgQk+To8Vx`WnWMfPG]H?S?6J80E4-@1*<.(7*%2'"-#) $    &&&,,,111D*=F=L>QATBV CX BZ B] C]C]E[FZGWGUGTGRHRIUJVGYGYFXHVJUIUETCV>X =Z <[ < Y=R ;P ;G 6?.;*- %!!  * 9+G6K9N /A 3B 4E 8E 8G :L ?O AV DX AY@W>W A[DdNfQeOcMaK_K` IaH_GaHaIcKeKhKgJfJgKiOm(Sq2W~b[u\RkSIdNEYD;O;2J80E4-A1+=/)8+&3(#.$ *!%   1 !!!)))///555;;;M"=OCSEWGX HY HZ H\ G[ G[ GZHXHWHUHSHQIPIPJRJUIWHYJYKYLVKVGWC[?[ =] <^ =] ?[ AV >U ?M8A/=,5$)#  $-!F 2K7O =R =Z DZ FZ II[ GZ FZ E[ G\ J\ L[ N@8,'("(1'1(7,=0>1:.< /> .J 6L 7N 8V>Q :O ;P ?U FTGWHQ@J 8C 2< ,4%6'8'4';)B /B 3WEZJ]K^I`G` C^ A] A[ BZ B] BX;B,7$5$6'? 0@ 2@ 4E 8D 9F :K @N BUEUDVBU@VB[EeMgNgObM_L$_JbHdFeFe FfIhJiJhJiKjNn$Qr3UX\}dYrYOkSIcMBXB8P;3K80F5.A1+=/)8+&3(#.$ *!%  8 !!!(((000666>>>CCCMDLT'MXL[L[N[ MZ L[ L\ L[ KYJYJWJUKSKRLPJQISIUHXI[K[M[NZL[H[D]@_ ?` >` ?_ A^ C\ BX @T =I6?.6&-!($""'<+K7R \ I] M^O^PC9-(% #-#5*9 .=0? 3= 1> 0? 0K 8L :S>ZCU @N =O @W GZL`OYGK 7D 2B/9+0#4&2#5'A0H 8ZI^N_MaJaEa Ca C_ C^ C_ C` CX <@+5&3&3'=1> 2? 4D 7E 8E 9J ?L ARETDTB,VC\EeLfMeNaM]M]L^JbHe Ff Eg FhHiHhIiIkLn Os/SxAXh\{aVpVKgOD]F;U?5P;3K80F5.B2,=/)8+&4($/% +"&! """---666???GGGOOOUUU_^^`>Ya.Wb"V^S\RZR[ Q[P\N[NZLYMWNVPUNTLTJVIXI[L^N`O_M^K]H^F_B` Aa Ab @a C_ D_ E\ CY AM9@.5&0"*$%! %9'J4T :W <] C^ E` G_ H^ J] J\ L_ N`OcQbQD9-'# +"6 *8 +< 0?4> 2C 6H 9Q>R?TBYFV ET EV E_MbNbM`IO :D3?.<,4'."1%4'=.G 7]L`OaNcKcFb Dc Da Eb Eb E>d DX =A/5'2'3*<2> 4@ 5G 9F 8D 9I =K @QCRBSATBXEaIfKgKeJ` L]N\M^LcJgIhIiHhGiGjHlJoNs*Rq2Sh]dWx]RmRGbI>ZB7U?5Q<3L91G5.C3,>/)9,&4($/% +"&! ;"""***777BBBMMMYYYdddppp|{zrIgn7dh&^bZ_W]U_S`P`O^O\NZPYQXPXMYKZI\L^NbOdOcMcLbKaI`Ga Eb Cb Ba Ca E` F` GX CN:A06'3#+('$ # 2"G2Q 8Y=^ C_ E` G_ I^ J] L\ M`ObPfQgPO =.%$!1 &: ,>1A4B6B4H@15)1+2,;4? 6C 7J :I :H ;L >P @WDWBVAWBYEcKhLgJfJcM_N^O_OcNgMjMiKjJkIlIp!Lt+Rv5U]]gZ~aTuXLiMB`E:[B8V?5Q<3L91G5.C3,>/)9,&4($0&!+"&!  """,,,555<<` D_ F^ H] I] J] M_ PbPfQjQnRkOF67 +7*@2C6F8QCRDMAVH_O]NZL\N[MZKZL`PePfNfMaGS >G5=-:+5(3'0&4'?2K =UGbQ`PaMbKbIb Kb LdKeJgJYBB 47-4-50< 9C ;H>OBO@M?RCVD]G[E[E[G\GfNiMhKhLfLdOcQcQfQjTlSn Qn"Np%Nu*Ow2R{;UFXi[bUxXKpRFhK?`E:[B8V?5Q<3L91H6/C3,>/)9,&4($0&!+"&"  $$$)))///766CBAPNM[XWY5V`+X`"VaTbRbOaL_ K] L[MZ LoZJ\J^I`KbMcMeMeKfLeLeKcJc Hc Ea Fa Ea G` Gb Hb HW AO:A/:(5%-*)$#'$#! #,9(M 5\Ba I` J] L\ K[ J] M_PcQhQnRsUz#[|*^w0_s1_k1[h3Xh3[g3Ze0Xi/[q2dx1iv0ip+ci']f$\f#\k#^k"]l![mWmThP\DD4=->/:,6)4(2'<-N >_LbOaNaMaKaLbNdNdLfLgMYCB 58/5052> :D /)9,&5)$1&",#'" )  %$$1//:87HEDQMMY-R])R` QbPcMcKa H] H[ H[ I[ J\ I\ H\J^K^K`McLdLeLfMdNbLbIb Fa Fb Fb GEb Gb HXAP;D2=*6(4$+(%%)%  #$!$),1"7&N 9]H^ K` O\ N[ M[ M^MaOdNiOpS{&\8iKwZbeeb_Z[[YUQMI|FyDxAu?r~:l|4fw*]iRH9C1C39*5(5)J=-aIeNdNcM`L`MaNbOcOfNgMhOVBC 7:37283? 9F ;K ;S@S@VC]J_LdObO`O^NbPjTiQjOlPlQnSp"Vt*[{5cBjGiLgAhds|qtfl^eW|ZLsREjK>eH<`E:[B8V?5Q<3L91H6/C3,?0*:-'5)$1&",#'" : " ,+*643B?>MHHV*H]'Na ObLbI` F\ E[ E[ F[ H\ H\ I[ J[K]K^L_LcLdNdNcObMaKcHd Fc F` G` F` Ea G^DT=M7B.8(7%.)'&*%  #&!',0!4%4)B5[ K\ Na R\ O[ N\ M_MbNfMjNsU3dRzԼѸǣޟ|zsrblfd`WJv}7iXGG:B4:-5(7+;.@ 0_HgNfNdMbL`MbPdQf Qi PiOiQV DC 9;393;4B9E;K :S =T=YE]IaNdQaQ^R^QiWjUlTnSpUs#Xv,\|6bCiSsYvhxzmrdi[`QzYKrRDkL?fI=`E:[B8V?5Q<3L91I7/D4-?0*:-'5)$1&",#'" ! (&%20.?<;HDCW,L]&LaL`F_C]B\ C\ D] G] J] L\ N\ M\L]L_LaLbNbP`QaOaMdKdHc H` I_ Gb Id I[ CSaG<\C9V?6Q<3M91I7/D4-?0*:-'5)$1&",#'" L(&$3/.@<:HCB_-K^%I`F_B^A]A] D^ G` K_ N] O^ O^O_M`M`MaN`P_P`QcPeOeLdJ_ J] I_ Kb LgNe LY BJ 7=,3#2 ,+*,+&&"#''#."4'6*6+8.OC] Nb Q_ O_ N` McMcLeKkMw)ZIrnwWj1\NAB 1:+5)6*D 6ZGcMjPjQgQgTgVh Wj Wl W>k WR De]|Z,VEeHhLp|ŮϹúȿ̱tzmsdj[aR|ZLvVIoSFjNBdJ?]E;W@7Q<3L91I7/D4-?0*:-'5)$1&",#'" + +'&40.A<:NHFV)P\$F_D^A^B^C` F` Ja N` P` QbPbNbNcN`N`P^Q_RcReOeNdLaNaObOgRjRlT]HK :? /9(5$1/-. *)$%&)%#-#4*5+6+8-O?\ Ke Qd Od Nb MdMeLfKkOy-]Qy|fNuf,VJ:>-:+=.F 8ZIbNiQjRiSiVhXi Yj YkYl Yi WOE8ex9abIaKiSo"\q(av2i=rEuOvJpgïȳϸļȾ̲yqwjqdj\dW|_Rw[OoTIhOD`H>YC9Q<3L91H6/C3,?0*:-'5)$1&",#'" K &" 1+*:41HA>TMJ^,M^'F` EaEaDbGb Ja Ma Pc QeQfQePcOaP^P^R_TaScQeQdPcQcSfUiVlWoXaML <@1;*9&4$.-.2"/"*')*+ ( ",$3)4,6+9-L/)9,&5)$1&",#'" ; #,&$5.+B;8KC@WOK^1Ga*Gc"GdGdHc Jb Lb Oc PeQhQgReRbR`S_T`TbSdScQdSdTfViWlYmZmZdTM ?=0<-:+8*1%/$."0#/#."+ '(+"* &"*"0(6, 7+E6W Dd Mg Mh Mg NgNiOiOq V8h`ȢPeyDgV"HC3D 7W FcSeSfQiQlSmUmWlXk Yk [k Zj YPEͽ¼Ͼ̻ɷǬ׽׾ɮ{w|rvlndzcZmWM^H?Q<3L91H6/C3,>/)9,&4($0&!+"&" 2  !'! .(&<42F>;OGB[QNa,Le,Kg!JgJfKc La Nc QfSgTgTdTbT`T`UbUdTeTdUeTfViXkYlZj[i[eXS GA5?4@39-2(0'/%3'4(/$*'(!+"* !")!/'5,7,6,?3SB_ Jg NhNjQkRlRoTw&\Bqk O`{Fke)U_OcShWgTgQlSoTpVoWnYkZk\k]hZR G¼̺ȵı|v|pxkyk}oyί̬{uq{mwiqdobj^g[}bWw]RnVKdND[E;Q<3L91G5.C3,>/)9,&4($0&!+"&!   "(# 1+(=64G?;PHC\RNj4Lh)MjMhMdNdNdQfRhTgVeWcWcWeVhWhVgVhU+iVkXlYl[j]h]e[VLI ?A6A 5? 45+2*0(3(7 +1 &(&%')!,##!'-%2*4,6-:1O B[JePjRlSoUpWu\1gP|| NϻdIsr1di!Zn]mXmVqWsXvZtZr\o^o_o`j[ZLͺǴî{u{ntgl^gYeWgYpa}m̫ġv}nwgqbl]hZdUaR~]Py[NsWKmRGgNC_G>WA7Q<3L91G5.C3,>/)9,&4($/% +"&! M  %!,.+@84JB>SIE_UPf3Rj(PjOgPeOdPgShUiXiYhZiZk[n[n[nYoZo[q]r^s^r aoclbj``UPEK>G :D 8; /6,6 ,7-7 ,4 *&%&'(*!$!#+$.&1)1+7/N CXJ`LjSoVrZv_}+gCwgNcGtv3g{*hx$bx"bz"c}#e~$d}'dz&ex&fw&ix&it&el%ZžϽʷŰz|osek\bS\KZJ]MaQiYzj̬x~nufo_jZdTaQ\M}YJxVHsSFmPCgL@aH=\D:V@6P;3K80F5.B2,=/)8+&4($/% +"&! +  !*$"0)%;2.G=9QFBZNIeXSi2Xk)Rj!ShQhRiTlWnZo]p_r!bu"cv%ex'ey)fz*e~/h1j4n7o9r8s|5rw0mm(dZNVHRDM?H:< 0(= 0; .4 *("%& ( '( '"$+$.&2)2*5-C 9X I`MiPrYx`+i?w]wMlWI}Aw?w?y@yAxAvBwAxAyBxCwJr̹ȴíx{nn_fWaP[L|WF{UDXH_NjY|kѯu{ksbl[fVaQ\L~XHyTEsRCoOBhK?dH=_F;[C9U?5P;3K80F5.A1+=/)8+&3(#.$ *!%  :    )!2)%7.*@61L@qCtGvMzR~V[^a`ZSJ{s:ff.Xa&R[KSDH5O;2J80E4-A1+=/)8+&3(#.$ *!%   5   !)"2*&8/+@61LAfIfI4>5>48 .2(-$.&2*4,6.< 6VKpb3tOoUĽûºоμʵư«zu}nxitdp`k\hYcT_O\K}WGzTCzTD~WG^MgVvfzʧy~mtdm\gVaP[K~WGySCtPAoM?jK>eH<`E:[B8V?5R=4M91I7/D4-?0*:-'6*%1&",#'# C "',#1&"7,(@4.G83O@:ZJDcRKjYQq]Uxd[jbneqgshuixkzm~qtx~˭ھƨu~rrxh~TsNruDf]2QU(IR!DUIK@< 38 /5-7/= 4? 5FdH<`E:[B8V?5Q<3L91H6/C3,>/)9,&4($1&",#'" C  !&+"/% 4($<0*E71J:5RB;[IBaNGeQHjUKnWMrYNw\P{_RaTcUgXj\o`texi~ox۾âpvhseseyms~ȸƿ\wv?`q>^n:\n3^]#QRHPFPDSEUF]Ow,hHfϮ ƿºſQžпϽͺ˸ɴƱĮ}xr}nyktepam^iZeU`P]MYI{UEzTD{UDZIbQo^p׷ryip_iYeT_NZJ|VFwRBrPAmM?hJ=cG;^D9ZB7U?5P;3K80F5.B2,>/)9,&4($/% +"&! R   %*!.$ 3(#8+&@3-F60K:3N=5TA8YD;^F=bH>fKAkNBpQEtSEzVGZI^NcRgWm]sczjs̪Ģ{{lrdl^j[k]vi{\zOqKpw?ge0Wa'P^!Oe!Ro(]>x`ƤüͼļĽ(ſļоμ̸ʶɵưĭªyt|mwitdp`k\hYcT_O\K~XHzTD)}WG\LeUrbvß˨}ovfo^iXcR^MYI{UDvQBpN@lL?gI5O;2J80F5.A1+=/)8+&3(#.$ *!%  Q    %) -#2'"7*%<.(@1*E4-J80N:2R=4W@6\C8aE:fIoM?tPAzTD~WG\LbQgVm\td~mx˨~|lm]eUcTeVqcznvy~ïĬtS{Cn{fInM?sPAxSC}VF[K`OeTk[rb{juӱ~nn]eT^M~YI^OdVl^qcugxj|nu|Ʋɵȵz\Idǿͻȴʶ̸̹ͼºŽſſŽºϽHͺɼοҿůì{{~szlsdl]gXbR]LYI{UEzTD{UDZIbQn]~nӱu{jrbk[eT`O[K}VFxSCsPAnM?jK>eH<`E:[B8V?5Q<3M91I7/D4-?0*:-'6*%1&"-#( $ P  "',#1&"4($9,&>/)C3,G5.L91Q<3U?5ZB7_E:cG;hJ=mM?rPAwRB|VFZJ^MdSiYp_yhpϭžurbeU\L}WGyTD}ZI^NaReViZqbwh}ov}«ĮʵͻϽ»ĽƾʸĮDZɵȴʷλϽѿļžĽ&ĽžļѿϽλ÷ǷŮ~{wusuy{|nufl]fW`PZJ{UE)}WG\LeUrbužϭpyhp_iYdS^MZJ|VFwRBrPAmM?hJ=cG;_E:ZB7U?5Q<3L91G5.C3,>/)9,&4($1&",#'" S  !&+"/% 4($8+&=/)B2,F5.K80P;3T>5YA7]C8bF;gIpN@uQB{UDYI]LbQhWo^td~ny˨|yhjY_NXH{UDyTC{VF~YI]MdUiYm_rcykqx}íƲȴʵ˸λκǴìůŰdzʶ̸ͺϽоѿºŽſSûпѿоϽͺ̸ƺνŭ|yuq|m{lyj{mr}yyloafX_PZJ~YI[K`PjZyh|˨y~ntdo^hWbQ]LYI{UDuQBpN@kK>gI5P;3K80F5.B2,=/)8+&4($/% +"&! *   %*!.$ 3(#7*%<.(@1*E4-J80N:2R=4W@6\C8aE:eHoM?tPAySC}VF[K`OfUk[rb{juմpo_cR[J|VFzTD#~XH\K_OcSgWl]rcuf{mt{¬ưȴîíDZɵʶ˷̸λϽϾѿļŽſüžüŽSļſͼϽλ̸˷ʶŸϿƮ~zur}nykvgsdsdrcug|nzywkk]eVbRcThXscrմu{jrbk[fU`O[K}VFySCtPAoM?jK>eHnM?sPAwRB|VFZJ_NdSiYp_wfp}ɦŢxvegV^MXH{UDzTC|VFZJ]MaReUiZl]p`vgzl~ptyìůưȲɵʶ̸̹Ͻ]оѿ»ппѿλʷ̸ʶɵȲѾʺŭ~{xs~p{lwhtdp`m^l]j[l]paxkx{{otfqcuf~oǥʧqwgp_iYdS_NZJ|VFwRBsPAnM?iJ>dH<`E:[B8V?5Q<3L91I7/D4-?0*:-'6*%2'"-#( $ *  #',#0&!4($9,&>/)C3,F5.K80P;3U?5ZB7]C8bF;gI/)9,&4($0&!,#'# >  !&+".$ 3(#8+&=/)@1*E4-J80O;2S=4W@6\C8aE:fIoM?tPAxSC}VF[K_NeTkZp_yiqЯžvtcgV^MXH{UDzTC|VFYI]M`PeUhYk\p`sdvgyk}nrw} ªìůưȲƱɵʶ˷̸ͺо˸ͺ˸ͺ̸Q˷λ˸ȳŰưů쪫̷|yur}nykvgsdp`k\hYeU`P^N\L[L^OeWrdwëǬдؼrvfo_gWaQ\M}WGxSCtPAoM?jK>fI/)C3,F5.K80P;3U?5YA7]C8bF;fIpN@tPAzTD~WG[KaPfUk[rayisӲvtdgV^MXH{UDzTC{UEYI\L_OcTgWjZm^qbvg{nu«ìĭůưDZȲλμDzȳƱȲDZN˷о¬~zws~p{lxiteqbm^jZgWcT_O\LYI{UEzTC{VF[JbRo_qͰǽӻҽ¨{{nrchZaQ[KxVGsRDmN@gJ>cG<]C9YA7U?5P;3K80F5.C3,>/)9,&5)$1&",#'# P  !&+".$ 3(#8+&=/)@1*E4-J80O;2R=4W@6\C8`E:eHnM?sPAxSC|VFZJ^MdSiYo^ve~nyά~mn]cR[J|VFzTDzTC}WGZJ]M`PeUhYk\qbwiq~yxz|~ª«ìĭůưͺ̹įůíůPĭìů͹}ws~p{lxiteqbo_k\hYeU`P]MZJ}WGzTCzTD|VF[JdSq`rҳɩêɴrtfi[bS|[MtUGnQDhL@bG=]D:XA7R=4O;2J80E4-@1*=/)8+&3(#.$ +"&! ,   %) -#2'"7*%:-'?0*D4-H6/L91Q<3V?5ZB7^D9bF;gI5M:2H6/C4-?0*:-'7*%2'"-#) %  8   #',#1&"4($9,&>/)B2,F5.K80O;2T>5X@6\C8aE:fIoM?sPAxSC}VFZJ_NdSiYo^ve~nxѯpp_eT]M~WG{UDzTC{UEYI]LaQhXpb|nt}n{l~pqtw|~ªλɵP~|{}y}o{lvgsdp`m]q^r]oYgS_NYI{UEzTC{UD~WG]MeTp_pѯ|tpoqvxuii^y_TpWMgOF`J@ZE/*9,'4($1&",#'# T  !&*!.$ 3(#8+&<.(@1*E4-I7/M91Q<3V?5[B8_E:cG;hJ=mM?qO@vQB{UDXH\LaPfUk[rayiqɦǣ|yik[bQ[J|VFzTDzTC}WH]McTn`{n}pxivgvgykyk{mqux{~ϼDzQ~{xuvztyktep`p_t`v`xau]mVfQ^J}WEzTD|VF[JbQk[yi|ǣɦs|lvfsbqbrcug{ny}uofycZoYPePH\IAVC;O>7J93C4.>0*9,'3(#.$ *!&! 8   $) -#1&"6*%:-'>/)C3,G5.K80P;3T>5YA7]C8aE:fIoM?sPAxSC|VFZJ^McRiXo^td}lvֶutdhX_NYI{VF|WF~YJ`Qk]{nylsdpbpasdvhyk}nruxz|~ѿŰI~|zxur~ppv{|nufvdvaxb|d~d|cu[nUgOaK]I]K_NhXtduֶv}ltdp_k[hYgWgXi[n`th|rwp|iap]VeSK[IBSB;J<5D60>1,8-(2'#-$) $  +   "'+"/% 4($8+&=/)@1*E4-J80N:2R=4V?5[B8`E:dHoM?sPAxSC|VFZJ^MbQhWm\rb{js̪ǣ||ko^fUcSfWoauzqdj[eUeVgWhYjZm^qbtewhyk{m~pruwz~~~{{ywur~p{mykwhtfvf~mx}rmmnq0hcz^x]w]w_}fqȥ̪s{jrbm\hWbQ^N[K~XI{WGyWIwXKvZNw]Rx`W|g^ogwp{wqse`dVQWJDK?:C72:/+0($+# %  M   #',#0&!4($9,&=/)A1+E4-J80N:2R=4V?5[B8_E:cG;gInM?sPAwRB{UDYI]LbQfUk[p_yhozҰ|uxzoaaR[LZK\K]M^NaRcTiZk\m^pasdtewhyk{l~pw{utxz{|~~L~~|{zxtuqq}n{lykwhtesdqbwd}fjo{{xvuvvx~ȩ׷žzoyhp_k[fUbQ]LYI{UDwRBsPAoN@lM@hK?eJ?cJ@bLCbMDaOGcRKdUNeWRg[Vh]Y`VRND@@734,()!! E   $',#1&"4($9,&=/)A1+E4-J80N:2R=4V?5[B8_E:bF;gIpN@tPAxSC}VFZJ^McRhWm\rbyisţаrecT[K|VF{UE~XH~YI[K^NcSeUhYjZl]p`qbtdvgykpxs~pru wxyz{|~»|~|{zyxwuEqq{myk{lxivgtdqbp`l]t`|ejqz~|}ħʬֹ˪qyirbm\hWcR^MZJ}VFxSCtPApN@kK>gI=cG5X@6\C8`E:eHnM?qO@vQB{UD~WG[K_NeTiYo^ve~nyбԺзͶ~qk\_P~XI{VFzTCxSC{VF}XH\L_OaReUgWiZk\m^p`qcvg}ot{lyk}n~pqruwxy~Ͻ|wyxwu9rq~pzlykxivgvgtdqbp`m^k\iZq]xafnyɷƵ®ƭɯγ׼ӵv|ktdo^iYeT_N[K~WG{UDvQBqO@nM?iJ>eH<`E:\C9XA8V@7T@7P>6N=6L=6K=7G;7 D:6@73:2.1*'" 1  $',#1&"4($9,&=/)@1*E4-I7/M91Q<3V?5ZB7]C8bF;fIoM?sPAwRB|VFYI]LaPeUl\sc|lzʬɭ{kl\bQ[J|VFyTCxSC}WGYI\L^N`PcTfVhYjZl]pavgqzltfwhyk{l}n~pqrsv{ȵxsusrq~p}n{lDykvgvgrcpapao_l]jZhYfVlYs\|bit~ƮϸҹƦ~pvep_kZeTaP]LYI|VFwRBsPAoM?jK>fInM?qO@uQBzTD~WH\MdTl]whwǰ©غǥ~oraiXaP\L}WG{UDzTDzTC{UE~XHZJ\L^N`PcSgXn_yksdm]l]p`pasdtdtevgwhxiyk|mt|}oyk{lykIxiwhvgtetdsdpam^l]l]iYiZgWeUcS`P^NdPmVv\~bls|̻ǽο˼ͼѷĦqzfm\hWcR_NZJ}VFzTDuQBqO@nM?iJ>eH/)B2,F5.J80N:2R=4V?5ZB7^D9bF;fInM?sPAxSD~XI^NfWpap«~յţrudjYcR\LXH{UDzTDzTCzTD}WGYI\K]MaQgWn`ugm^hYjZk\m^o_p`paqbsdtdtewi~pvyktfwhtevgteItdsdqbpap`o_m^k\hYhYeUbScSaR_O]M\KaMiQrW}`lt}̸˰ymvaiXdS_N[K~WG{UDwRBsPAnM?jK>fI/):-'6*%2'#-$*!%! R  #'+"/% 3(#8+&;-(?0*D4-G5.K80P;3S=4W@6[B8`E:cG;gI=kK>pOAuSE{XI`Ql]ylyrstzӲ˩twgk[cR^MYI|VF{UDzTDzTC{UE}WGZJ_OfWsem^fVcTfVhYiZjZk\l]m^o_p`papasdzk}ptepasdpaqbpaHp`o_m^l]k\jZiZhYeUbScS_O_O]M\KYI}WG\HfMqW}`lyŭϺ˻ҼǬvhs]eU`O\LYI{UDwRBsPAoM?kK>gI/)C3,F5.J80N:2Q<3V?5ZB7]C9bGeH/):-'7*%2'".$ +"&"  D   $( ,#0&!3(#8+&<.(?0*C3,G5.K80O;2R=4V?6\C9aG=gLAoTHy]Rl`~sznobhYfWfVgWiYm\rbtdzjq{ĠҰ|otdk[eT_N[JYIYJ]MfXm_`Q|XI|WGYIZJ\K]M^N_O`PaRcS cTeUfWk\wiufk\fWeUfVcTeUcTcS aR`P_O^N]M\KZJ|WG{VF|VFxSB8zTD{UD|VF]JiRx^hr}̰׾̻ȵֿѻҼǹ͹|lu_iT]L}VFySCuQBqO@nM?jK>fIfNDpWL~eZxmuqfgZaS_P_P_OaQeTiXjYo^scyit}׷ǣuyip_iXcR`O_OeVqchY~[LzVFzTD{UE|VF~XHYIZJ\K\L]M^N_O`PdTj[hYcTaQ`PaR_O`P_O ^N]M\L\KZJYI~XH|VF{UExSBxSC9yTC|VFXHZIbOoXyblwɫֺʸӹϵʯǬêƮо~lm[aQZJzUEvQBrPAnM?jK>fI/)B2,E4-I7/L91R=4XB8_H?hQGu^Toerii^|aU}]P}ZL}XIYIZI]L`ObQeUiYn]ve|kqz̪ά|pveo^k[jZpbwifW[KzUEzTDzTCzTD{UE|VF}WG~XHYIZJ\K\L]M[K\L]M[K\L\KZJYI~XH}WG|VF{UEzTDzTCzTDyTC9|VF}WG[J^MbQgVq^|hvȧָֹˬƧ¥ɶqm^r\y\lT{ZGnM?kK>gI/):-'6*%2'".$ +"&#     $',#/% 3(#7*%:-'?0*C3,F5.J80N:2U@8]H?iTJyd\!v_UtZOuXKuUHtSExTEzUD}VFYIZJ^MaPeTk[p_tdyiovֶǣwozjyjrwihY`PYI}WG{UDzTDzTCzTD{UE|VF}WG~XHYI}XHYI|WG~XH}WG|VF{UEzTDzTCzTD{UD;}WGYH[J_NcRgVm\td~mwʧػȦ~zvqszxx|oz^eNpSCcG;`E:\C8YA7U?5Q<3N:2J80F5.C3,?0*:-'7*%3(#/% ,#'$  =   !%) -#1&"4($8+&<.(?0*C3,F5.J80P<4ZF>iUMjVNjTKjSIlRGlOCnOBqPBsQBvQBySCyTC|VFZJ]LcRgVkZo^rbyh~ms{ɦѯß}no_gV_N\LZIXH}WG{UDzTDzTCzTD{UEyTD{UExSCzTDzTCzTD{UD=}WGXHZI\L`OdTgVo^vf|lvßѯɦ~xurpnhycvcvf~qɷ¯ijȷ~kw\rYGfM?YA7U?5Q<3N:2J80F5.C3,?0*<.(8+&4($1&"-#) %!  @  "&*!-#2'"5)$9,&=/)@1*D4-G5.K80VC:ZG?^JA_JAcJ@dJ?gK?hK>lM?nM?rPArO@uQAyTC|VFYI_NbQeTiYm\p_ve{jovѱЯǧŦx|lrbjYeUbQ_N\LZIXH~WG|VF{UDzTDxSCzTDxSCzTD{UD@|VF~WGXHZI\L_NbQeUk[qavepyάЯvo~l|hze}ezcq\lXgVgX|hͽοȸĵnkWkTCV?5R=4O;2K80G5.D4-@1*=/)9,&5)$2'"-#*!&"     $'+".$ 2'"6*%9,&=/)@1*D4-H6/0O<5TA8ZD:\E;_F;aGkL>nM?qO@uQAxSC~WGZJ^MaPeThWk[o^rbyh}lqzţټپɩpyhrbn]iXeUbQ`O^M\LZIYIXH~WG}WG|VFzTD|VF{VFF|VF}WG~WGXHYIZI\L^M`ObQeUiXn]rbyht|ƣұӲxq}lyhrbo^n\o[nYdR_O]M_OmZ}̼Ĵö~nZiTDR=4O;2K80H6/D4-@1*=/)9,&6*%2'".$ +"'$  D    $( ,#/% 3(#7*%:-'>/)=/)A2+D4-H6/Q=4T?6W@7[C9\C9`E:cG;dH;gI=jK>mL>qO@wRB{UD}VFZJ]L_NcRfUiYm\p_td{jq{ƨˬԶնʨ|u~nyhrbo^k[gVeTcRaQ_N^M]M\L[J[J[J\LE]L]M^M_NaQcReTgVk[o^rbyh~nu|ɧЭġys~nyitdp_m\iYfUcR`O]LZJ~WH~YIdPròʿƻq^jVGQ=4K80I7/E4-A1+>/):-'7*%3(#/% ,#( $      !%) ,#0&!3(#7*%7+%;.(>0*B2,I7/L91O;2R=4V?6ZB7\C8-`E:cG;fI/):-'7*%3(#0&!,#) %!     "&*!-#1&"0&"4)$7+%;.(B2,E4-I7/L91O;2R=4V?5U?5YA7[B7^C8bF:hI=kK>oM?sPAuQBxSC|VF~WGZJ]L_NbQeUjYp_yiv~uu}ϭӱ˨ßzvq~n|kyhvetdrbrascp_rarbp_scudvfveyh|k~nqvzß˨ӱϭxrqzjwfverbo^k[iXeTbQ_N]LZJ~WG|VFxSCuQBtQBuUE~bǺ̿ȿ}lm\NR@8H70D4.>/*:-'7*%4($1&"-#*!&"    "&*!*"-$ 1'"4)$:-'>/)B2,E4-I7/K80O;2N:1Q<3T>4W?5X@5_D9bF:eH;iJ=mL>pN?tPAwRB{UD}VFYI[K^MaQgWn^xiy{}ozj~npuy˨׷ЭʧĠ~zxvuwtvwtxz|z~ĠʧЭ׷˨yu}myiyirbo^l[k[iYfUcR`O^M[KYI}VF{UDwRBtPAqO@nM?oPAnUoƵʿ|orbVSC;H92A3-/)B2,E4-H6.J7/I7/L81M91Q<3S<3X@6Z@6_D8bE9fHoM?sPAvQBxSC{UD~WG[J^OdTm]zl~puescudwf{j~npux}ɦӲյѯͫʧǣšßƣŢžǤɧ˩ʧͫѯյӲɦ}xup~n{jwfqao^.hXgVfUdSaP^M\LZJ~WG{UDxSCvQBsPApN@nM?jK>hK>z`LkV~gzwmk]TTE?H:5@4.;.)5*&1&"-#*!&#     #' -#1&"4($7*%9,&=.(@0*D3,B2+E4-F5.H6/H7/M:2P;3Q;2U>4ZA6_D8dF;jJ>nL>qO@tPAwRBzTD~XH]McToasusel\k[m]p_rbtdyh{j~morvy|ĠǣͫŸž̪|yvro~m{jyhtdrbp_jYhXiXcSaP^M_N\LZJXH|VFzTDwRBtPAqO@oM?lL?iJ>fIlTDu^M~jXly{vpfYTVIDJ>8B61:/*4)% .$!*!'$   D    '*!,"0%!3'#7*%9,&<.(;-'>0)@1+A3,B3-F6/E5/F6/H7/K80Q;2V>4]B7bE9hI=mL>pN@sPAvRC{VG]MeVtf~~whk[fVfVhWiYk[o^p_rbtdvfyi|k~mopsuvxy{wx}xD|wvuxvuspo~m|kyivftdrbp_o^k[iYeTcRaPaP[KZJZJXH|VF{UDxSCuQBsPApN@nM?jK>gI3.=1->1,A2,G6/N:1V>4\B7bF9gI=kK>oN@rQCxVH^Pj\}p~qm^cS_O`PbQdSfUhWiYk[m\o^p_rbtdvewfyi{j|k}l~n~n|ko|lo|kzjyi|k{jyiwfvetdrbp_o^m\k[iYhWfUdSbQ]L[K+~XH{UEzTD{UDxSCvQBsPApN@nM?kK>iJ>fI5S?6WD;bQE^NF_QKi]Xyojwth^ZSJFE;7:1-3*&+# &  9   #' *".%"2)&1)%3*&6,'8.)9/*;1,;2.:2.70-5.+5-*9/*?1+F6.N:1W?5]C8cF;fHgIXLGcXTrietmjld_IA=<522*'*# "  3   & *$!.'$/*'1+(3,)4,(5-*7.+91.93072040/0-+.*(2+(7-)@2,I70Q<3W?4]C8aG;hL@nQEvZNg\{q|ri\^OzWH~XH}VFXHZJ[K]L^M`ObQcReTgVhWiYkZk[m\m\k[o^l[k[o^jYiYk[kZiYhWgVeT4cRbQ`O^M]L[KZJXHzTDyTCvRBxSCrO@pN@nM?oM?mM?jK>gI9QFBYPMe^[NGE>854-+)$!# :   % *&$.)(2.,40.50.4.,4.+70-820842743210.--+)(.*)4,)<1,E6/L91T>5ZB7`F;fL@mSGw^Soesg~aUwXJtSDxSDxSC{UD|VF}VFYIZJ[K\L^M_N`OaPbQcRdSeTfUgVeThWeUeThWeTcSeT9dScRbQaP`O_N^M\L[KZJYI}VF|VF{UDxSCsPAqO@sPApN@lL>iJ=jK>hJ=fI30A74E>;KEBVQOOKI@<93/-+'%$  7   $ )&%1..743:7696484272061/:54:76876322--,-,,/-,3.+:0,B4.I70P;3V@6^FkL>lL?gI=dH;cG;dH6YE5Q<3O;2L91J80G5.D3,B2+=/):-'5)$/% ,# +$!*%",'%-)'0,+30/754<:96541//,+*&%%      " +**543;::????>>><;?>=@@?@@@???!>==<::;75=52@50C5/I82P=6YE=dPGs`Xvpx}g_oXNgNCiMAgJ>hJ=jK>lL?nM?oM?pN@rPAsPAtPAvQBwRBxSCySCzTD{UD|VF}VF~WG{UEXH{UE~WG{UEzTD}VF|VF;{UDzTDySCxSCwRBvQBtPAsPArPApN@oM?nM?lL?jK>hJ=cG;aF:_D9aE:[B7ZB7X@6YA7V?5U?5R=4P;3M91K80I7/F5.C3,?0)<-'8+%3("-#' %#$ $! '%$*(',+*0/.321655221-,,(('$$$!  !   ! *))322777;;;=<<@??CBBDCCFEEHGGHHHIIIGGGCBA?<:>75>51A50G81O>6YG?fTLxg`~qjp\SfPGbJ@cH>cGmL>nL>pN@rPAsPAtPAvQBwRBxSCySCvRBzTDvRBySCvRBuQAxSCwRBvQBtPA9sPArPApN@oM?nM?mM?kK>jK>iJ>gI/);-'6*$0%!) #  #! %##('&*)).--0//100,,+)((&&&#""   :    )))///666<<9YIBjZSqk}wvd]gTK_JA\F<^E;\B8^D9_D9`D9aF:bF:cF:eG;gHlL>mL>oM?pN@qO@rPAsPAtPAqO@tPAqO@tPAqO@pN@sPArPAqO@pN@;oM?nM?mM?lL?kK>jK>hJ=gIlL?mM?nM?oM?lL>oM?lL>oM?lL>kL>nM?mM?lL?kK>-jK>iJ>hJ=gI5R=4P<3Q<3M:1J80H6/J80H6/E4-C3,@1*?0*<.(9,&5)$.# &! """!!!"""!!!    7  $$#...777???FFFOOOUUU[[[^^^bbbdddeeeccc```[[[TTSLJIEB@A:8@74E;6OB>_SMwkfzupa[^OHVE>Q?6Q=5Q=4R=4R=3R>5S>5R=5R>5S>5T>6T>5W?6Y@6\B7`E9cF;eH;fIjK>fIgI=fH<iJ=eH;dG;fH;fI<#eH;ULHlb`}sofZUSGBJ=7E71F6/E5.G6/F60G71H:3G94E94C94B73B61A4.C4.G6/L90P;2T=4X@5[B7\B7^D9_E:`E:\C8^C8ZB7X@6W@6Y@6U>4T>4U>4X@6X@5ZA6ZA7ZB7YA7W@6U>4T>4S=4Q<3P;2O:2N:1M91K80J80D4-C3,A2+C3,@1*<.(9,'7+%9,&7*%4($1&!.$) # """&&&))),,,...---,,,***$$$   %%%)))---1112229///'''###'''---444999;;;BBBIIISSS\\\dddkkkqqquuuxxxyyyxxxuuuppphhh^^]RQPGEDA<:A;8IA?XPNrkh}zh_\ULGH?:B62?3-@2,?2,A3-B50D83C94C:6A:7>86<6482/80-:0,>2,D5.I70M:1R=3T=4W@6YA6ZB7 [B8ZA7V?5U>4V>5Q;2N91L80M92J80J81J80N;2O;2Q<3R=3S=3U>4T>4S=4Q<3P;2O;2N:2L91J80I7/H6.F5.E4-D4->0*=/);.(=/)7+%5)$3(#4($2'"0%!-#)!$ """&&&***///222333000+++%%%  %%%+++///333444333---)))!!!(((222;;;@@@CCCDDDJJJSSS[[[ccckkkrrrwww{{{}}}|||xxxrrriii^^^QPOFCC?;9@;9JDB]WUytqlecWOLF?<>62:1-<1-;/+<2-?50A84A:7A<:@<:=:98655212.-3-+7/+=1-B4-H70K91O:2R<4S=3T>4 T=3S=3O:2M90K80E4-A2,@2-A3.?3-?3.C@3.C5/D5/F6/I80L91N:1N92M:1L81J7/H6/F5-E5-D3,B2,B2+B3,B2+?0)?0*:-'8,&6*%8+&2'#1'"/%!,#.$ +"( $  !  &&&***000444777888999888666222+++"""   !!! '''---333666555000+++%%%"""333<<63@:8B=;C@?A??=<<6553210..2.-4/-90-?3/C4.G60J80K90M91N92M90M91K80G5-C2,?1*<0+9/*8.+8/,7/,80-81-91-<2.=2-?3-@2-D4-F5.G5.G6.F5.C3,@1+=0*;98@<;MIHc`^XTSFB@:7551/30.4/-5/-(70.:31>97A>><;;:99877755742:41>51A50C50F71F70H70G6/H7/F5.A2+=0)8-(8.*5,)3,)4-+5/,3.,4/,4.,5/-70.70-:1-;1,<1+?1+@1+>0*;/)8.)6-)4+'*4*&5*%5*$6*$7*%6)$4($0&".% ,#-#( &$!#"!!%%%'''+++,,,...///---,,,***(((---222777<<>>999444***     $$$...555;;;<<<666((("""555BBBPPPXXXYYY^^^eeelllsssyyy}}}~~~zzzrrrjjj```TTSGGG=<<;98?==?;:@:7B95A72C72C71D72C50C40@3-:/*6,)4,)4,*1,*2-+3/-61/51/62061/60.70-80,9.*9-)9,(7,'5+(2*'0*'.(&-(%.'$.�&"%0&!1&!0%!*!( '*!'" ! %$$(((,,,///111333555444333111///555999>>>AAACCCEEECCC@@@;;;555,,,    &   ***444;;;@@@BBB<<<...$$$***>>>NNNYYY^^^```aaagggnnntttzzz~~~3|||vvvnnneeeYYYMMMCBB:99866><FEDLKJQQQUUUWWWYYYZZZWWWRRRPPPKJJHFEFA?C<:B;7C:6C96B84A84?51<3/7/,5/,2-*3-,2.,41/621853;76:656:6484383161/5/,5.*5+(3*&3+'0*'/*'.)'-)',(&)%#*$"+# ,# +"+!*") $"!"##"(((,,,///222666888:::;;;999666888<<;:?<;=:9=:8<8796462150.3-+1+(.'%/(&-)'-)(.*)-*(*'&(%#'#!'!'!'&$#  !!!'&&,,,000444999:::===>>>???===<<>;::76754421532643:76=:9@==?<;>:9:7685341/1-,.)(+&$+'%,(',)(,*(,*)*'&(%$'#"&" ##"      %%%+++000555999<<=?<;=;9:766322/..+**'&*&%(%$)&%*('+('*'&)'&(&%&$#%! "!    """***///444999===@@@CCCEEEHHHLLLOOOQQQRRR QQQOOOLLLIIIDDD>>>777000(((   9 &&&111;;;DDDIIIKKKIIIFFF@@@:::333---((($$$###$$$  !!!...;;;GGGQQQ\\\dddjjjnnnoooqqqsssuuutttqqqxxx~~~ ~~~wwwoooeeeZZZNNNCCC666111,,,(((### '''///777???EEEKKKPPPRRRTSSXWW[ZZ^]]bbbgggiiijjjeeeccc```]]][ZZWVVTSSRQQNNNKJJGGFBAA=<<888544321210321765976;98=<;=;:;9875430/.,++('(%$&#""&$#'%$)''+))*)()'''%$%#"$! "      !!!(((...444999>>>BBBEEEHHHIIIGGGLLLQQQSSSTTTUUUTTTRRROOOLLLGGGBBB;;;444,,,%%%      '''222;;;AAAEEEGGG DDD@@@<<<888222...(((""" %%%  !!!%%%)))%%%!!! '''444AAANNNZZZccclllssswwwyyy}}}~~~}}}zzzyyyuuuzzz|||uuulllbbbWWWKKK???333///***'''"""'''///777>>>CCCIIILLLKJJLKJNMLTSR\[[___ccceeefffdddaaa]]][[[XXXVVVSSSQQQMMMJJJGGGBBB>==9994430//.---,,0/.311643755865643 2//.,+)'&&$##! " #! $#"&$$)''*((('&'%%&%$%###!!" !   %%%---333999???BBBFFFIIIKKKLLLIIIOOOSSSUUUVVV TTTRRROOOKKKEEE???999111***"""     + %%%---444999===???>>><<<:::888444///***&&&""""""### %%%,,,...000///***### +++999GGGTTT```kkkssszzz~~~yyyzzz4{{{sssjjj```UUUIII===222,,,'''"""%%%,,,444;;;???DDDEEEEDDA@@644;99GFFONNWWW\\\^^^___^^^[[[XXXUUUSSSPPPNNNJJJHHHDDDAAA===:::544///,++'&&/('&+)),+*.-,0/..-,.,+*('&$#"  " $""&%$(''('&(&&'%%&$$%$$$###""!   ###***222888???DDDIIILLLOOOQQQPPPOOONNNRRRTTTVVVWWWUUU QQQMMMIIICCC===777///(((     !!! &&&+++111333555444333///,,,((("""!!!###(((...333555333000+++%%% ; ...===KKKYYYeeepppzzz}}}yyyyyyrrriii___UUUIII>>>333(((""" '''...555999???A@@>>>:990..-,+533EDDNNMTSSUUU%SSSPPPMMMJJJGGGEEEBBB???<<<:::777222///+++(((###!!! ! #"!$""%$#$#"%##"! "! $##%$#%%$%$$ ##"#"""!!!    &&&///777>>>EEEJJJOOOSSSUUUVVVUUURRRUUUVVVUUU SSSQQQLLLHHHBBB<<<666---'''    !!!###!!!   $$$'''***(((%%%!!!%###***///333555666333000+++%%% !!!///>>>MMM[[[hhhsss}}}}}}%~~~yyyrrrjjjaaaWWWLLLAAA555***   &&&---333999<<<;::655.--,++433?>>GFFKKKLLLKKKGGGDDD BBB@@@===999555000+++(((&&&###/! !! "!!""!#""!!!   !!!***333<<>>:::666111+++&&&       ###,,,666???GGGNNNUUUYYY]]]___bbb___[[[UUURRRSSS QQQOOOLLLFFFBBB<<<666000)))!!! ) !!!   ###))),,,000333444555444222...)))### ,,,;;;KKKYYYgggsss~~~~~~}}} {{{vvvppphhh```WWWNNNDDD:::000'''$$$)))---111444777999:::;;;:::999877888:::<<<>>>AAACCCDDD CCCAAA???<<<888444///***%%%   %%%...888AAAIIIQQQWWW\\\aaacccfffccc___ZZZUUURRRSSS RRRPPPLLLIIIDDD???999444---%%%    !!!   ###''',,,///333444666555333///***$$$ !!!"""!!!***:::IIIXXXfffrrr}}}~~~|||}}}yyytttmmmfff^^^UUULLLCCC:::111)))"""'''---222666999<<<>>>@@@???===<<<;;;<<<>>>2???>>>===;;;999666222///+++&&&""""""&&&)(())(%%$ &&&///999BBBKKKRRRYYY___dddggghhhiiigggeeeaaa\\\VVVTTTSSSRRROOOLLLGGGCCC>>>888111)))###      &&&+++///333555444222///+++---...///000 ///...999HHHWWWdddqqq|||{{{|||wwwqqqjjjccc[[[SSSJJJAAA999111///555:::???BBBDDDFFFGGG FFFEEEDDD@@@???>>><<<:::999888777666555444222000---***'''$$$!!!""")))///333777888555...$$$     &&&///999BBBKKKTTTZZZ___eeegggiiihhheeeaaa\\\VVVUUUSSSRRROOOKKKFFFAAA;;;555///)))""""""###"""!!!    &&&+++///222444!333222555888:::;;;<<<===>>>===<<<:::999HHHVVVdddppp{{{}}}xxx{{{~~~}}}yyysssmmmggg___WWWOOOGGG???777;;;AAAEEEIIIKKKMMMLLLJJJHHHEEEBBB???<<<999666555222000...,,,+++)))(((&&&$$$""" """***111888???DDDGGG DDD888)))   &&&000;;;CCCLLLTTT[[[aaaeeehhhddd___[[[UUUVVVWWW#UUUSSSQQQNNNIIIEEE???:::333---'''""""""&&&''')))'''%%%"""   !!!  %%%***...000222555:::>>>AAADDDFFFGGGHHHIIIHHHGGGEEECCCIIIWWWdddpppzzzxxxwwwzzz}}}=}}}yyytttnnnggg```YYYQQQIIIAAA???EEEIIIMMMPPPQQQRRRQQQPPPMMMKKKHHHDDD???<<<888444111---)))&&&### %%%---555===EEELLLRRRUUUWWWOOOBBB000!!!  """$$$&&&((()))((('''&&&()))222;;;EEENNNUUU[[[```eeefffhhhgggeee```]]]VVVUUUVVVWWWXXXWWWVVVTTTRRROOOLLLGGGBBB<<<666000+++&&&""" """%%%(((***,,, )))&&&"""    """&&&((()))***)))%%%     $$$)))...555;;;@@@EEEIIIKKKNNNOOOPPPQQQRRRQQQPPPNNNLLLYYYfffqqqzzz yyytttvvvyyy{{{~~~;}}}zzzvvvrrrllleee^^^WWWOOOGGGAAAFFFJJJNNNQQQSSSTTTSSSQQQOOOLLLHHHDDD???;;;666111,,,'''"""!!! %%%...666???GGGOOOVVV\\\___```WWWGGG444###   ###(((+++---///...---555???GGGOOOVVV\\\aaaccceeefffdddbbb]]]YYYTTTUUUWWW&UUUTTTRRROOOLLLGGGBBB===666111,,,&&&###"""###%%%''')))+++---///---)))%%%!!!    $$$))),,,///,,,$$$ %  ###+++222999@@@EEEJJJNNNQQQTTTUUUVVVWWWXXX WWWVVVTTTRRRQQQ]]]iiisss||| {{{sssrrruuuwwwyyyzzz|||{{{yyyvvvrrrmmmggg```YYYRRRJJJBBBDDDHHHLLLOOOQQQRRR>PPPNNNKKKGGGBBB===888222---'''"""  ###,,,555===FFFNNNVVV]]]bbbeeeccc[[[JJJ666%%%  ###(((,,,///222444666444333222:::BBBKKKRRRYYY]]]aaadddeeecccbbb___ZZZUUURRRUUUVVVUUU TTTRRROOOLLLIIIDDD@@@;;;666///***%%%!!!###&&&)))+++---...,,,'''"""   %%%)))---///222333444333///'''   &&&...666===CCCIIINNNRRRUUUXXXYYYZZZ[[[YYYWWWTTTWWWcccmmmvvv~~~|||uuummmoooqqqsssuuuvvvwwwvvvtttrrrooojjjeee___XXXQQQIIIAAA???CCCFFFIIILLLMMM@LLLJJJGGGCCC???:::444...((("""  )))111:::CCCKKKSSSZZZ```dddgggbbbXXXHHH333%%%  !!!&&&***---111555888:::;;;:::777666 555666555444666@@@HHHOOOVVV\\\___bbbcccbbb___[[[UUUOOORRRQQQRRRPPPOOOLLLIIIEEE@@@<<<666000+++%%%"""###%%%&&&((()))+++***)))&&&"""   """''',,,///222444555444222///&&&  !!!###&&&###  (((000888???FFFLLLQQQUUUXXXZZZ\\\[[[ \\\[[[YYYWWWTTT^^^iiirrr{{{ ~~~xxxpppiiikkkmmmnnnooopppnnnllliiieeeaaa[[[TTTMMMFFF>>>888<<>>FFFNNNUUUZZZ___bbbddd ccc```]]]XXXQQQKKKMMMNNNMMMNNNLLL JJJIIIEEEBBB>>>999555///)))### !!!"""###%%% $$$"""    %%%))),,,000222333222///+++$$$    %%%))),,,---+++&&&!!! (((000888@@@FFFLLLQQQVVVYYY[[[\\\]]]\\\[[[ZZZYYY XXXWWWTTT\\\gggpppyyy {{{tttkkkccceeefffggghhhgggeeebbb___ZZZUUUOOOHHH@@@888000444666888:::;;;:::888555111---(((###4  $$$&&&)))***+++---444<<>>EEEKKKPPPUUUXXX[[[\\\[[[ZZZXXXWWWUUUTTTRRR[[[fffoooxxxxxxpppggg^^^]]]^^^ ]]]\\\ZZZVVVRRRMMMHHHAAA:::222***+++...///000>...+++((($$$   $$$(((,,,///111333555666;;;AAAGGGLLLQQQVVVYYYZZZ[[[WWWMMM???222(((""" """&&&+++---111222333666888999888666333222777???FFFNNNUUU[[[```eeehhheeebbb___YYYTTTLLLEEE>>>??? >>><<<:::888444000,,,'''!!!  !!!"""$$$&&&))),,,---...///...+++'''""" $$$---555:::===>>><<<:::555...((("""###***222:::AAAGGGMMMRRRUUUXXXZZZ[[[ZZZYYYXXXVVVTTTRRRPPPOOOQQQ[[[eeennnwww~~~wwwnnneee[[[SSS QQQOOOMMMIIIEEE@@@999333+++###$$$&&&'''&&&%%%$$$""" """&&&)))---111444777999;;;???DDDHHHLLLPPPSSSUUUVVVTTTNNNBBB555***%%%""" !!!%%%(((,,,---///000222333444222111///111777>>>EEEMMMUUU[[[aaaeeeiiikkkllljjjhhhddd___ZZZRRRKKKCCC:::333222///,,,)))&&&!!!  """$$$&&&((()))+++,,,--- ...---+++***(((###   $$$...777???CCCEEEDDDAAA===777000***%%%$$$***222999@@@FFFKKKOOOSSSUUUWWWUUUSSSQQQOOOLLLJJJPPPYYYcccmmmvvv~~~~~~vvvmmmcccYYYOOOFFF EEEDDDBBB???;;;777111+++$$$ !!!  """%%%)))---222777:::@@@CCCGGGKKKNNNQQQSSSUUUSSSMMMEEE999...&&&###"""###"""!!!$$$''')))***+++---...,,,111777>>>DDDKKKRRRYYY___dddfffjjjlllkkkjjjfffbbb]]]VVVOOOGGG>>>666///))) (((&&&%%%"""   %%%)))---///000111000 ///...,,,+++***'''%%% 3!!!+++555???FFFIIIJJJLLLJJJHHHDDD???999333---((($$$!!!"""(((///555;;;AAAFFFJJJMMMOOOPPPQQQPPPOOOMMMJJJHHHFFFEEENNNWWW```iiirrrzzz {{{rrriii___TTTJJJ@@@::: 999777555222...)))$$$"""&&&((('''$$$!!!%%%,,,222888>>>CCCGGGKKKOOORRRVVVXXXZZZ[[[ZZZWWWVVVSSSOOOGGG<<<000(((###$$$&&&###!!!!!!"""###$$$%%%&&&'''&&& )))///666;;;@@@GGGLLLRRRXXX]]]bbbdddeeefffeeebbb___ZZZUUUOOOFFF>>>666///'''"""!!!  !!! """'''---333777999:::999777666333222000...+++***)))&&&"""   (((222===DDDIIIMMMOOOPPPOOOMMMIIIDDD>>>999444///***&&&"""%%%+++000666:::???BBBEEEFFFGGG)FFFEEECCCAAA???CCCLLLTTT\\\dddlllttt{{{{{{sssjjjaaaWWWLLLBBB999111000///---***'''###"""(((---111222'111...+++&&&!!! ***222999@@@EEEIIINNNTTTYYY]]]```bbbdddcccbbb```]]]ZZZVVVRRRKKK???444***%%%$$$###$$$%%%'''(((&&&%%%"""!!!&&&,,,222666;;;@@@EEEJJJOOOTTTWWWYYY\\\]]][[[YYYUUUOOOIIIDDD<<<444,,,%%% """%%%'''((('''$$$!!!%%%+++222999>>>BBBCCCDDDBBB@@@>>><<<888666222000,,,***(((&&&"""  ###---888@@@GGGLLLPPPRRRPPPNNNJJJFFFAAA<<<777222...+++((($$$&&&***...222555888:::;;;&:::888999AAAIIIPPPXXX___fffmmmtttyyy~~~|||wwwppphhh___UUULLLBBB888///***)))'''$$$!!!%%%,,,222777:::;;;:::888555111+++$$$!!!"""$$$%%%***555===CCCHHHJJJMMMRRRWWW^^^eeeiiikkkllljjjgggccc___ZZZUUUQQQHHH;;;...&&&"""$$$%%%&&&%%%###"""!!!%%%)))---222666999===AAAEEEIIILLLNNNPPPOOONNNJJJGGGBBB<<<666///(((!!! !!!%%%)))***,,,+++((($$$!!!%%%,,,444<<>>:::777333///+++'''$$$"""  '''111;;;CCCIIIMMMPPPQQQPPPOOOLLLIIIEEE@@@<<<777333000...+++)))&&&$$$&&&)))+++,,,---...///444999???FFFLLLSSSYYY___eeekkkppptttwwwzzz{{{yyywwwsssnnnhhhaaaYYYQQQHHH>>>555,,,&&&$$$""" &&&---444:::>>>AAABBBAAA>>>;;;555///'''(((+++,,,...444>>>GGGMMMJJJHHHJJJPPP[[[aaagggnnnmmmjjjfffaaa^^^ZZZUUUQQQGGG555,,,&&&###"""!!!"""$$$"""!!!"""&&&))),,,000222666999;;;===???AAABBBCCCBBB@@@>>>;;;888222---'''!!! $$$(((+++...///---,,,)))&&& ((()))***+++***)))'''&&&)))222;;;BBBIIILLLOOOMMMJJJFFFCCC>>>:::555000+++&&&"""   +++666>>>DDDIIIMMMNNNMMMKKKIIIEEEBBB>>>999666222000///---,,,+++***)))***+++,,,...000333777;;;???DDDIIINNNSSSXXX]]]aaaeeeiiikkkmmmnnnmmmjjjgggccc^^^WWWQQQIIIAAA999000'''###!!! $$$+++222999>>>CCCEEEFFFEEEBBB>>>888111444777888999%888;;;FFFOOOTTTPPPFFF333888@@@HHHPPP\\\___```]]]ZZZVVVUUUTTTUUURRRJJJ???444***%%%###  !!!   """&&&(((***,,,---///111222555666555444333///...)))'''"""    $$$(((***,,,---$,,,)))'''&&&,,,///222333555444333111///---666===DDDJJJOOOQQQPPPNNNKKKFFF@@@;;;444...)))$$$  $$$...888???DDDGGGJJJ IIIHHHFFFCCC@@@<<<999555222///...---...///111222444666888:::===@@@CCCFFFIIIMMMPPPTTTWWW[[[]]]___```___^^^\\\YYYUUUPPPKKKEEE???888000)))"""!!!  '''...555;;;@@@DDDFFFEEEBBB>>>888777;;;???BBBDDDEEEDDDCCCKKKTTTOOO???***$$$---:::BBBGGGIIIHHHGGGHHHKKKPPPUUUTTTOOOGGG;;;111)))$$$!!!###$$$&&&''')))'''&&&$$$"""    $$$&&&''')))'''%%%$$$+++111666:::<<<===<<<;;;999666===CCCIIIOOOMMMIIICCC<<<222***### $$$000999>>>BBBEEE DDDCCCAAA>>>;;;888555222///,,,+++***+++---...000222444666888:::<<<===???AAABBBDDDFFFGGGIIIKKKMMMOOOQQQRRRQQQOOOLLLIIIFFFAAA===777222,,,&&&$$$""" @!!!$$$%%%&&&%%%###!!! '''...444999>>>AAACCCDDDBBB@@@;;;888>>>DDDIIILLLOOOPPPQQQPPPOOOMMMQQQXXXUUUHHH777  $$$(((+++,,,---000CCCLLLRRRTTTUUULLLBBB555+++###  """!!!   """$$$###!!! !!! $$$,,,222999???BBBDDDEEEDDDBBB@@@>>>:::@@@FFFKKKLLLKKKJJJFFF===333((( $$$///777;;;>>>???>>>===;;;888555222///,,,)))'''%%% &&&(((+++---000333666999;;;>>>???AAABBBCCCDDDEEEDDDBBB@@@===999666222///...---+++)))&&&### ###'''))),,,+++)))&&&!!!%%%***000555999<<<===>>><<<:::666<<>><<<;;;999888666444111...000222333222000...,,,)))%%%!!!###''',,,///111 000...+++'''!!!%%%)))---111333555 444111444>>>GGGPPPWWW]]]bbbfffhhh&gggeeebbb]]]TTT@@@'''  """(((+++...///333FFFNNNPPPOOOPPPKKKDDD777)))    !!!!!!$$$''')))(((%%%"""  )))222<<>>AAA>>>777,,,!!! %%%,,,...000///---***'''$$$!!! """ !!!!!!&&&***000444999<<>>IIISSS\\\cccjjjooorrrsssrrrpppkkk```RRR;;; --->>>FFFKKKLLL MMMPPPSSSQQQJJJHHHBBB:::///###       """%%%((()))***(((&&&$$$!!!  '''111;;;CCCIIIOOOQQQSSSRRRPPPLLLHHHDDDAAA>>>===;;;666,,,"""  $$$&&&###  """###$$$###!!!!!!'''---111777;;;===>>><<<:::777333///***&&&"""%%%***///222444333000---)))$$$$$$+++000333777999888555222---''' )###000<<88+%'KDFSMMOFF:13PRP[[V]VSTPN[YV]ZW724"G=?1+-LGIZTVPKI=99@>=LIIROLRNLMGEE<8;'"OFF6/1UPSg`a`YXMIHYWVtoo}Ŵ>:: 7.--igdjlefd`]UU?88+%'KDFSMMOFF;14QRQ\\W^VTUQO_]Z][X834"F=?1+,LGIZTVPKI=98@>>MIIROMRNMMGFE==?<<.&(;67;68aYZ]SScXWpif|y||| yyyvvvoooggg\\\LLL;;;+++    k_^jc`ic`g_^h_]rmj|{u~    1k^_cXX`[X^YWZSRXQO]XV^^Y^^X_^YC??C?B[\Xce]cc]URO_a[b`\]VV?99,&(MFHVNNQHG<25RTR^_YaYVWSR_]Y]ZW834!E<=/*+JFGYRSPJH<98B@@QNN[XT_ZX_WU[PQYVVH=?4spkf_]C;;,&(KEFSMMNEE:03PQO[ZU]USSON_]Z]YW724"F=?1+-LGIZTUPKI=98B??NKKTRNTPNOIIF??@>>/'(<79;89aY[\QQXMMZTQZVTYRQXQO^YWa`\bc]fe_IFEMHLjkfz{s{zxsƻMEE4702jjg__Zcc_``]^^X[[V[YTYURWUR<676-2KCCB9:934MJHWRPTOLUQQ88<A77OKHRKH+&&OOP^^X\[WYXUXXULIFQLJSOMOFEI>?O@AA66MCBLDCE@AVQQWVP[WSc`^fhdge`yin BBG"I>=[UQbYU600PLJ  +*-"G<=+&(Z[YVWS]^X]]Z^_X\\W^\X\XU[XU>8:8/5NFGE<><56QNK[VSXRPXUU88<?54MHEPHE*%%LML[ZTZ[V\[X^^ZTOM]XVfa^h\[hXY~hiӸȱ4gf`b`\^ZWYWT;686,2IBB@7:723LIFUQOTNLWTT87<A77OKHRKH+&&OOP^^X\[W]\X\\XOLIUPNWRPRIHLAARDDD88PEEOGGHCDTPOTRMVQNZWUXZVUSP[XT[\V\[WIDC1*,ghdijdy{tǺvqm6 $ TQO]]XZYUQPO[ZVUUQWVQURNUUPVTR=77-&)914:25TSQNLJ;21/)*"!;45>54VTTVSPIGE,*+QPLYWTTQOSSPIBAOKHMKGMGCIGGIEFGFDQMJQLIVRQVSSVTOYUO]ZW[XS`[Vjd_qojVGJ B9:B:9`][a]YVSQ757   &"$A9:@87ZXVYVRMJH0.0[[Volhuro~~{};:9GYTR#PNL_]YXWSQONZYUVVRVUQVTPUUPWUS>77-')914;25TSQNLJ;211+,#!;44>54WUTWSOIGE-+,QQLZWUTQOSSOIBAOKHMKGMGCJGGJFGGGERNLRMJURPVTTVTOZUP\YV[XS_[Vid^lkf¿VGJooojjjhhheeeaaa[[[SSSGGG666%%%    c`_^[V]XS_[X[XSc^Yje`jidzxrVGJ  E  """`\[[XXWUPVQLVSQPNJTOJURMQPMUTOIEDOKI[ZVXVSRQP^\WYYTZZVYVSYYU[YUA9:0)+;46>57XUUQPM>441+,#!<44;43TRQSPMFDB*(*MMHWUQVTRVVSNGEXUR\YTc[Vfcctoo4``[\\XYUQVVQVTR=67-'(713:23SRPMKI:102,-#!;34>54VUTWSPIGE,++QQLYWUWVSVUTLEDROLPNKPJGLKKLIJKJGTROUPMZUUVSRTRNVQMWURQOLVQMXTOTSOZYUOKI!VSQkkfpnjomkuql6-,+3//1+,WTRRRMGDDJEALKIMLJYTRTPNWUNVSPE>?3.05/4HHGMKIOEG0))IDASMKOJI744?>;KGFB;?3--SKMG@AF=>IA?KGEXVSWUPKFG.$(B9:OEDVNKTRNQPNYXTZ[USSPXUQ\[V_\Xfa]xtn~tursWVR VPNUNN:67DB@SMNNFIKBBȰ̶_ZW  % !OJGWPNQKK744A>=LHIF@B923bY[`UXh\^{w%%%R ..,da^1--0*+ZWTSRNGDDIDBMKIMMJYUSTQOWTNWTPG>@3.0403HHHMJHOEG2+,IEATNLPJK733@>>IA@KHEXVRWUOMHG.%(B9;PEEUNKTRNRQPZYU[\VUTQWUP\[V_\Xf`]soi~turstttkkkbbbYYYWWWRRRKKKAAA111"""   YYW__[^`ZVWSYWRa`Z`]Yd^\pmh~turs F   $$$&&&[XUUTRYYUY[UQQNRPKWUPSPNROLVTOVSR-)*0++[XUUTQKHGMGDOOMPON]XWYVSZYR[YSIBB514825KLLOOMRHJ2+,IEBTNKMFF422=;:HDDA:<1+-QHKJACH@@NECSOLed_kgaf``G9=4RROPPM[VTUQNWUNWSPE>?2-0403HGGLJHNDG3,-IDBTNLQKJ733?>;KGFC782,1IDDZUTNEHLFEWTSGAATLLXSOA:;.(*;670),IBFA;ba]>::!QNMQQKYUS\YTWVSFDDYVWRLJZVRQOKTKK>792,1IDC[VSNEHPIIWTSGABUMMXSOA:;.(+<671),IBFA;792+1HDCZUTNFHPIIWTSGABULMYSPA:;.(*;670),IBFD>?OFE_[X`[X\XSLJI.((LFGQOOZVXVPP\WVXUQ^]WZYUZZU__ZZWT^YW][W`_[A=<% YVT^]Xokisnn6NMJXUS$;46SOM``Y_bZca\QMKYZVZWT]XU[SP^[YHAA:14SQOZWTH@B_ZZNJJYRTMEIa\Yb_\ZWSQPJLEEA89;44OHEed^cb]^]Xa_[?7<@87WPL5-.626969LJLVTT_^[_^Xbb\_`X`a\efbljfvup_IR IBDd_[eb`]ZWWTOQJJTJKȷ|{u612a[[KHHYSWNFIb]Zda^[YUVSOTLLLBDPFExvr""""""###""" H  RRMba^XTR$?89TPMbaZ_a[ca]QNKZ[W[WU_YV[TO^\YHAA915SPNYVRH@Bd_^NIJ\VYRJMea^hda^\XVTNPHHD<=;44OHEdb^ca\^\Yb_[?7;@86WQL5-.737:6:MKMWTT`_]_^Ycc\^_Xab\bb^dc^oni_IRwwwqqqhhh]]]SSSIII===222%%%   KJKXVVa_]_^Xdd]`aZ_a[cc^ihc_IR   H  """&&&'''((())) 748MKLVUT`^\_^Xcc]bb[`a\aa]`_Z`_\YWS'!A;67:32LFDea^dc_ec^nkgNDIYMLru|&dc^PNKYZV[VT^XU\TP^\YHAA:14SPMYURHACd^^NIJ\WXQILea^hda][XVSOPHHD<=?76RLHjhcgebbb]fc`C:>C;9[UP8/1:5:<:78NGH[YVc_[aa\ffaea])'*NPOcd_RKJ>46QHILCEUKKRKJ[XUdb_bb]`c[ef`mjfokf^JT¸ #""c_\][Uca\[YU]WVIAASLOLIINJId`_SOOa^[]ZVca\]ZVd^\PFG""" ###%%%$$$  I _\Ya_Za`Y:66&#\WYed^ef`da]ea\eg`ba]\URd`[_^[VRNUMNTQL\YTSLNRNORNLicdYRTfb`b_Zed_^[W`ZYH?@UNN`\Zb^[aa\ffbda\)'+NPOcd`RKK>46QGIMCDTIKQIIZWUcc^bb]]_W]^X`_[ea]^JTwwwppphhh___SSSFFF999,,,   F=?QGHQJIYWU__Z[\U__Zgea  """###"""   """&&&((()))5((( JBBI?@UJKRJI\XUee`hhcdg_fe`geac`\ec]A<;( $`\]jjcikdifbidbdfa_\ZSMJ[VTVURNHGMFFMHETPMLEHGCDFCB\WWIEFVRPRPKVTPNLHPLJ<66LFFVSQ[WS\]Yee`jgb0-1hjhƵx}4da]e`]ee_d`^^VReb^a_\WQOUMNTQL[XSSMOSNNPNLiccYSTfa_a_Zee_][WaZYH@@ZRRdb^gd_ee`jjdjeb+)-RTRijdVONA69TJLMBDUJLQJJZXUed^ggbdf_ggadb_^[Xb`Z=87(#c^_vumvwpRPKYYSE>Bfd`mgd^ZYigd^YVb^\db^ b\[XSR_\Zde`ee^db[okgie`M;C UQOjickkgdbbVSRc^_`[\yuNIFLDG4..XTOljd`\Xda^kjdjkghgg_][~wx;98!!!$$$%%% """  id`a]Zbb[^\W!E=@ed^lfc^YXidc   $!!!###%%%'''+++''' ZXU`_[]]WXUQ^[W[YTM;CqqqjjjdddZZZMMM???222###VQOQMJ\XWTNNVRQ[ZWZ[UYWRfc]"""$$$&&&%%%$$$"""   $$$''')))((('''&&& PKHYSQVQOc]\ZTUb]\mkhklegf_midea\hg^  ^ZXheb^[Xe`]gfadd_ifbd_[jfcb^Yc[XOGI XWR\\W^]YE:=6,1]ZY^RQWKI]TRnifpnjoqj lcb^RRh^\db^kmghibnmgqpkycl0 nnhllicdd_ZYjkgpoiǽʵʱ|eo˳̹_[X_WUI=<]QOhd`ppjnkfoohmmjhghkfeǾ!!!$$$%%%###"""  mkekjelkfhgbK@C8-2[XX\QPWJI]TR  !!!&&&((($$$ ^TS\YU[]YXXSZXT_^Zyys|eoeed]]]XXXNNNDDD666((( MEHXRNaXWTIIZPOYUR[]X[\Vba\ !!!%%%'''&&&%%%"""  ###&&&(((&&&%%% 815OGK]WSg_]_SSk`^lgcprmnoiomhnnhopj  WKI]URplhspkqtmje_okjpolmoja\Yd[YM@@ TRPSOLQLIOEI$#DAG]OPgZZia]fb]qljsoj f^]i``wnlrpjmngnpjnmhoki~xuºP?N8UTQolj]YYiecpoiqqkyuqɲºP?Nֻeb^\TRSMLXQPc_[vuottnssmppjsrnqmk`ZZ::9"""###!!!  $$$ pnjmjgea^_XUXNS%$DBH[NOfYYka_   !!! f_[d`\[[WXYTVURZVS^YWºP?NOOPHHHEEE>>>333((( )WQR]XUWPPZRRbZX^\WXYSZ[W_^Yº !!!$$$&&&((('''&&&%%%$$$""" """%%%&&&$$$""" FCD[VVc_[^XVe]]ypmyvpttmstoqnjokjjdb  fYYja^ie_upmxsotnklgefc_kgd`XUXQP^VT QKIUMLVNKXMOYOS7*.F9?OAF^SW˽ b]\|{wvrmutmupkrmijc_nfc|qnӸ̳Gf`^`ZY_UV`[\PPQ\]]վӸ̳x\ev˽úztqheakb`ocbjkihgcz{u|}w{zsxwqrnla\[^VUxrt """  +++ \VSlcandbh_[hZ[dY\;-2p|%$%  %%%+++,,,))) fd`ee``^Z[WSSMJYQP_VTӸ̳755111000***### NMIa`[PMKfeb]YV\[WYWRZVRYRO !!!$$$&&&%%%($$$###!!!  !!!"""!!! TTRRPLigbVRQrqmsoj{ysywpwpl111444555777666333,,,$$$ PAF_UYjehhaaslhjc^pmjnhepnj [\V\ZWb`\kjcie_ukeYOJMB?80/ ghcx||vyvtwqluohyyrxxq~|w?EBBd`\xvnwwrwwtxztb_Zf`\jgaci_fd_VOL^\Yfc`bd]_b^^aZbb]QQMdd]ba]ca^a]Ya\Vde^cc]_^Z`^Yc`[[XRaYUH@<;30,&%:77MJG`VRiiaijcf^\_VSk\\icaKGEmgczzt}~wyzqqoikfegcc{u#""  %%%222###%%%###$$$..->=;RRN`]W{pj{o_]$#####    ihcfca^YWYUQ[[V\\W`^[1/. W[U^_ZRSNfg_^]Y[XVVROYTNbb\"""$$$&&&%%%###"""!!!   Z\X]_Yde`XXTssktsnzwtztpysl+++...000222000,,,&&&  MB>:10LGHd_]ymjy|~utkgf]Y׻ [YVZUQb]Yb^_b]^tolxso{roh\X|xʭ YLP~}{w}vz|zs}zuysn utq|zvzz~|uwunoielhdhebc_Z_ZV]XWa]]][X^^YOOK\WW?79^[Y\[X_^Y1a`\_^Y^\WXSPZTQUQRPMN\XU[WTZTQNDC>0/>86UIKb\`OFHg^[rmjc]_I?@nb`yon~ywojhrlinidda]`_\fda  ***999((()))'''&&&$$$"""DBAmfcsp'%%$$$'''%%%    hgdge_c`[__Z\ZV][W\WS%$# NNJ^ZZD;>fb`^^[]\VZXT]]Yba\"""$$$%%%###!!!    \\YSSNd__I?Cqmlrrn{xs|v{###'''+++,,,***'''$$$  wtna^VEBULIo`cztx]SUsieytry|к QQOBA?]WUihcRMI`XZvspyuqumkdzڶ ICCzur~y}zsusmsspwwunmlXVT5410{~z}zwqvrlpnjlkhfb^[WSSNL\\YYWTWTQ\ZXSPP511WSQ\YUZWRTRNUVT[[ZRRQ@>G@EQMN&!>4?]URRMKLEGC;>B67LBBXOO`UV uupz{s{xq}|urunbc_E@A]TT}to|svMCF4%! wzu{{t~{zwtwoMHFSJKaWX`XVaaZYWUSNNA<>llhqqjrpjxwpprj`a]   XOOeZZ`TTd[]tu~}leiOBDpa` KEFSKKVKKIA@QIHk`\ja`WRRgaaqsnwwsyvp}{tfeb.++877"  /`a]}yzv~kjfFAH]WYa^Ygc_c`^XTSJFFa][deaffcgd^hfa]]Z522ZXXTOOXPNXKKE=[PQϸ[ZU?=;'&& wvr|neffddUMSnhirokpojjgc JDI[MP~z~xuutpnqlfdbHBCQMOC=?bX\ $$$666EEENNNRRRSSSQQQMMMHHHAAA:::333,,,&&&''')))&&&###  ea^QNM/-,KDCTOP813A9<ƻ UTRa_[ih`b`\[XVIFF,))JCBZTU    TSO[WUgd_llglicmihXUU632ZQQ B9<[PQ]TSi^`bTYFAFTGK FACMFJZZXZUTg^]XXW-*0=57dYY OMIxxp{}c__nfedacd[[lfctrmvvqpoiKJE L>@4-28'-vuq~yxurca_dbbZZYQEIVNPdab B &&&666EEEMMMPPPOOOMMMGGGBBB;;;444---((('''001RJL˹UKRcEOǫνȳzysurkjfdXVV-*-HCCTLKJDCHBDOHJ \\Wb`\hf_`^[PNN)&(D>>SKJOHHij ZXSa`]gfaljcjfe\YZ1,/OJJdZXȷij ;34cXXibbndc\LN-'+4$*tsp VQNWQPI?AH>BOOR("'+#%WUQigbȻȰ qofaXYja`xnm^WWy{wysxxstslvtn ]^]Q@DYNPA?>sqpZVU[WTb_]\XWUOPQMLVSOB $$$333???GGGJJJHHHEEE@@@:::444---(((BBCOELhUZȻȰqy~{yĺüƷxvrnicXSQ=;=;66]YUTQNTROVRO[TS WTRa_\a\WPKJ757501VQOROL[WT ][V\YWgeaea[XSQ<:<;66b^Za\Y#SQNec^YRR]RRLMMI8;g``tmkVLKd^^ KEIE9:vronmi5.1[XY[XT`\W\YS\ZVMGHĽA +++888@@@BBB???<<<888222,,,'''VQRRKRefʻ~{gin_dĽƺlgfdac,)+401]URZVQPTQQRO[XVUPN>9> ZVTVRRXVX)%(0,-SMKTPLNROVXU  ZYU^\Y\XW][]*')2./ZRQ[WSY^Z#UNNRQP@64JDH901ifbjie803gddƺOKK :88FFIJGJ>.1+$YPL^XWMKJB79z LDB_RR`TUf_^|vqyom~qp<;; '%$LEJcTU~|}xE:>PFIHB?\XRdc\\ZV\TU=<9A###///555888777222---***$$$CACagSaXS]TQZSP\XTXYTPOOJ;??49_U^oaf/+/ HFF&!"D;8\TPYQMWOM[VQZZVXWUnw_U^ QLMLJK*##D;8WOKTLITNK\WS`a\nw#1(&RMKPKM901rjhyyrx{tUJLaRSzslzxtvqpzrp|vrc^]rieskg]RPe[Z|uszpnvjjvmm# ,-.D@?WML320.04D<>>99MGIDDEybc ZYUqmjc_\c[YofbrkgoihPMK  A45uoj{zuuvoqsm][VUSOba\`_\QQN}~y%%# """!!!6\SQ54235:OGHKFF_X[QQS;01tmjz}|xs|wrzvyol~spyrm]YW||ywI@BSHIc`]`^[^ZV]XVXQMSJGICE/00c^\ϻnkh 711D<=ZXU\YWZURXTQTOKTJGMGIwy{ϻ ZYV;34I@@[XUVTQUQMVQOUOLYOLijwy{#NGJCCE3)*f`]ssnxxqypnhplgwws~~zusnd^ka]aZXqqjqpkqmi_ZW]VUh`\mfb]XV>67 I99[RP`^Z\UT)#&NFIRNP214)"ǿ !" mlfoojkc]xpi|uh\^ /#&rjf}}u{wwyqorkfib\]WZYTNMLSQP5  0,+`^ZYRQ,$(XOPb]_><@0$(ib^z{r}~~{y}zsxj^_jifZTQMEEe^\XRQRHFRKKKEEE><<22Q?@VPN :44SNMRKJOEDOECMFFGBBC=:<33Ø B=;>77YRRRKJKA@KB@KEEIDDGA?Ø#214)![TQllewyr|~v~z}x{{s{uromvtq}vy~{wzokwmgwsomrinoihhaed`^WRib\vpkcXYLGF VOM^YVULMKBDD;=( '%& WSQ PPLljfsrnwwq|zwpkl{xyƳjba sml}ys~|vvvoqskmnfdga\[YQOLWWT=  A?=SKLJ@BH>A."&0(.0'*lfd}zs}~ɽȻŷvopiggmhhcYXpbbka_h__\SUD;>HCA_\X_YUc]Z|op JCB\QQcZWd\\XOP@89D>=\VR[VR˷ NKKNFEbVVcZX^WWTKM>68D@>a]X#& WSQgd_qpkvvn}v{|wsp~}w~xki|qnn{ztloipsjnoiklggfajhelkgtqnlfgƳTJJ TROXSRYOMQGG>78*%'>36:34MJI fa^ojkga`kcaslnRMO  JBBhd`~zvupmxtntqjnne[[VUTR]^Ziifgea 2FBATKJMDDB:;2*-M?CKBCb^Zzv~yuûøĹöxv{tr{vvQMNkhhhabumlUPLUPRJ?FNGFec[b_Xa^YgebSON OJJa[ZNIGRMNF\ZS^\V#;34NKIiebkgcyso~|uzvvpusq~vt|{vxqqoovvqrtoqslllflkgf`]jeeaZYe_]qjly{YRR \WUYSQG?;>65NKK768QIIE>=WPP 710lbaeXV^RPd[\`TXpcfyA5= 1-,cXWqgfvomrojnkffd`fe``_Zbb^_`]xw7LGFA96;43RNO@?Ad[ZYONnec{rq|x}}{uswrxlj}yjgj\Zg^_\PTZORPHKHDDLHI815/'-634CCA430 @:;?;;IFF9262(/<8;VVSZYU`^Y E=>C=>C>?IEF6030',:78XXUa`Z#E>=XPOe_]mjeupkvuoyzlgfphd~zyupnhh{xrrnjoqjnlgjebWNLh_]_SQ\PNcZ[966 ]]X_^Yd]Xb\ZFBB*));88RJJUKJ ^\Vie^ngdUNP914QLQ{Լwck| MHHpfej\\kfcmleee_ggdab^a`[aaZhgb:43 WUQ[UQ]XUJEE1//JFFi__k^^tmkv ?9Cvqpvqktqkppjjkdef`\[WWVRca[ VSOZXTaa\cc_.))>5:ojivqk}zt{ 4/48.1PJIgd`a_ZYUPI??I>@[WV 727=14PJIa^[]\UWRNJA@NBD WTR^[Ugd_ppjtunyxrvupuqly~y XUTWQQdb`jmcab\5/64/2^\Zec^ mef_ZZ633 TLLe]]YQRaOP>,.TGI#! A;BE?Cxurvunmkdilefgb`]Z^[Xba^~|w$! PKKZXX^aY`aZ:4:>8;uqozxrzxp| =45RMJjiegb^fc]^[V^XURHIPKK - !=45SMJfe`\XT\XUWSO[URTKKŷ \YWb`[ec]mojtupvtpytqz}|sq JFEQNMFCCiheYXU1-/;5BXTTllhmoilje`\X |zt}zswsnsqmkmhimhqpluoqa]c C@>pqlpmhne`pkgy<;9 XINb]^pplrunmkf[XUc`]XRQ^ZZQOM 759JHHF;?SPPghcrtnwup\XY jb^nie~}xzzvqsqlegdae`fea lief^Za\Xfe_b`[\XVXWSSUQVZU ZYTSPLda]_YXoji`^Zuvn{{r~| SKMJADUSPicdE@@heesuorrkhd_ sojtmgg]Ye^[lifgfbXROmdedX\ jlfmjf\ROsnlwro|vλ ><;wxMHHlijtvpqpjb]Xb]Yc`^YUTeb`KKG H?APNLd^^A==c`bsvp|zt F@A aVRztr{wzvjfrkgsqmkjfYSO rqkYOMgcaa^Za\WVMKSOLZYV\ZW \]XXUQa\Yljgd`_heczys||uxtt MJGE>>]YTfebSRTYKSwzqwvosoj sqnrrlfd`aa]\_[cd`[YT`ZXWNN<96nkfdb`LHG{yv~631 snfxvqZXZXKTmpimleda]]ZVX[VWUTx{ A::YTOa_\ONPUHPsvn|{s  nliTPP~ywwsnrmstpfc^ roi``\DAAec`cc_XWTTTPSVR``\ ]]X^[W`^Y`d^a`^TMOkfhbd`jkjò YVRSQJ<55dc_mnhxslyhi^TRuso MFH\WVifbbc\__Xa`Y^[Whe_c^Xca[lida\ZRKMkddzurmFC>KAApokrslsogl[^OFF`^[ba]^UUujh+)' MIC:23^]Zijcsngvdf_UT ŷ˼ |utokd\_~vwy||tzxprni˼ rpikjcYURE@BRNN^]WXYQZZTb`Z˼ G??_][hgdh^^ka`snkwsmlfeNHJ OKH^ZUQBDOIGnolqupotl}zsum KABQIH[VS]]ZRRQQLLZVU`[Wkgağ0-,kca\PQRGI_VUuol}wsztdRSYSQrsolqjbf`fhc^_W_^Vfa[ PMIN?@JEChifkqjlphy}v yso~zzxytrğ {xqac`RTka_~xsssqmgftomğ snjjcaUJKE<=IBBRNKUUROONUPP \^Y[\VbaZkh`he^ttn{zu{ytkjg6C;;b\Xge`^\Xlfeg_]mdaspl{zwuuͼӰofcukjibalcchb`_XV[VUQLLD;57laag^^h`_zsotmh>56`ZYwrlxwrzztrhgqhg_WVxoksjdpjeynpZOPrictjfypkxpkwqkrtmwspoljmeamdaqjgohdngclebd]\lidlkcomfvtmvtp~{!]WVlgaihdgfb[TR\TTLGE`YV_WS_YVlbdRHIjc]nfbumivoitnhnpisqmmjgmeapgcvnkunjwolvnlmfezvqvunxvnxvpvuowuqojfqnkWRQqjildbmefSMPZVXHBF7/2`WWYPPYRPic_c]X7//WRPsnh|{u|z ngenfbib_c[ZVQP^YWZYT^\Ved^!WQRHCEUQRJCH=57h`_cYYaYWpieje_911YSRsngutpzytpgepgg^WVxoltjdpje|qr\QRukexnj{tp{to{uowyq~zwwtqwnjyoj~uqyqnwpnkdcvrmrqjqohqojnnitsonheurpxtrc]\4A@>UTS?:9iddaa_ZRPd_^ZST<38B=@502QJLE>BKBGG?A8/4GABc_[][Y^]Y\WTOGGTOPVNMXPLPNKC7;I=?b^W`\Zfc_mkfnmeif`aVVWJIP@>`PNe\Ze\[bWTg`_[ZXWWS__Y\XT\YW\[Xbc_ogeC??[YX[\Xkidjfamiekjgjjfjgc^\\B=CKCGG>B:05LFHnjfmjfllgslhbZXhbcja_mc^ca]PBHXILqldmheokfrpkpogkhbeXWXKJRB@`ROg][f][`UTg__ZYXXXTfe`id_mjgonjyxtjb`9JDFea^^]Y\[X]WTPJHVQQWPN]TPWTPL=BSFHqlcojfpmhsqlpogkhcdYVYLKSC@dURmcaodci][riica`cc_rpjqkfplinninnjmifcb_F@?ojhggfaYVicc[TV<38?:=0,-GAC=6:A:>=683+0FABlhdpoj{zt}̻ g\Zf][aUSc\[RPPPPKZYU\XSea]4WRQRKL:26D=A4/2PIKC;AG@DB67<58;48GAFJBCTOOHFDTMJVNLB=@E=BJFE;:;A8:XPO\`[JEBa[Y[WUc`^eb^cWUe[ZaYVcZUaYTWPKhc_e^Zc`\IIFYWTOHHTOMOLIUQN*)' _\YMLI^\ZUON]VUTQNSOMWPLQKI[YV`_\USOXOOZRN$ 3 URO_]YYWSZRQKE@b[WMDD:222+-4,0;23?67=48;48GAFMDEYTTNJIaYWc[YNGJPHLXQREDEI?@bYXdhcNHE`[Y\WUea_fc_dXWf[[bZVbZUaZUXPMhd_e^[c`\JJG[ZWUNM`YYZUTb^Z! 9JBCRMMEBBSLIWPMC=@E=@NIIA?AI?@aYXglfQJHd][^YWhbaifafZXg^^d]Yh^[g_[]VRpkgmebkhdSSNea`[SRaZZWRPVRP[SQTNKa\Zigc^\XaWWQJFe]ZOFF:12/),1*,6-.9128125/2B=ANEGa[[\XVyok aZUXPMhb_d]Z^\YGGCVRQQJI[UTɿ4F?<^VSMCC:231+-4,/;23>45:36826F@DNDH]VWPMKbYVc[YNFKPHKXQREDEMBCf]\hkgQKHf`]a\Yjeclhci]\lbah`\j`\ha\ZSOkfcib^gdaPPMb_^ZSR]VVSNMTPMZROVQMfc_wupspk2XSSWSQTQM_\WTLJQJH[TPVMKB77' "HADVNNTOOJEI9.02(*PKKICBPED?263,/;46QJKUNNUQOZRO\XT\UPXPO[XUUONRLLXTP_]Y]WS]WR][V\YV^YWWURVUQ\ZVa]ZcZXia^ǺE>A2/.[ZWWWT\ZUa]Z]VT[SRVQPPHJ_ZZVRPXSOfc]ur1PMJTQL_]VUMKQJH\TQWMKA77'#IACWOOTOOJFI9.02(*PKLPJIVLKF8:803 @9;UNOYQQUQOZQP\YT]UQZQO\YVVPNSMLYTS`]Y^YT]VS][W^[W^[XYWTWWT]\Xieakb_tkiķ8259.11&)LGHGA@PFE@364+/>69UNOYRQXTR\TS`\WaYT\UR_[XXRQVPO\WUdb^b]Xb[Wc`\d`^a_]]]Ya_[eb_bZXaZX[USSJMc^^\XUZVQfb\ZQNSLJ^VSWOKC89&!G?AUNLRNMHBF=149-0c\]g^]̲qx_ZV^WS][V_[YZYUWVS\[Wjfb4RIGRJI\SQUMIA77'"H@BUMLRLLHDH:/24)+SNNOHHVKJF7:803 @9;YQS]VUYUS^VSb]XaYU^VSa^[\USXQQ_ZWgd^d^Z_XT_\X`\Y`\Z^]Y[[W^]Yea]d[Y`XW]VVULPjddheaojdμ0400WSSXWV[VSQOLXQNWQMSJI?797/3JBAE>=ICF,%'/#%H>?LCDRJK901?57TNO%-%&D88E<=MGGUNLWTQ]^YVRL[YSYVSQKIMGFYUSQKHXSPWSQQNI[URD>>VRQRPL`_Zce]lmfjid'%$QMKQPM[[UX[T[\W[ZVUQME>A5.0MGHc]^/ =:8VVT\WTROLXQNWQNSJI?7:702KCBF>>ICE-%(.#%H>?I@APFH901?57TOO%-%&D88B9:NFHUNLWTQ]_YWTM[YTYWQRLJOGGZUSRKHXTOXUPSMJ\UTF??WTRUSOcb\fh`nohgea94(+OCEMDEQJK8/0>44QKK#+#$@55B9;MFGXQOZWTab[[WP^\W]YUVPMRJI^XVVOL[WS[WTWRM_WVF@@]YXVTP_^Y]_X`a\`_[ZURG@D5/0NHI\YX]\[a[YTPN[RQXRNTKJ?8;703LDCGA@NFH0'*2&)SFHXNOg]_NBC[FH ^YVZVSTNL]VTE??ZWTTSOaa[gia4[UTSOMYPNUPMRIH=585.2I@@D==IAD,$&-"$K?@KCDRIK8/0?56SMN%-%&D88E<=RJKXQP[XUbc]\XQ`]X^[WWPOSKK`[XWPL^YVZURTOK\UTD?>[XUUTO^^X\_Xbb]da]_ZWMFI;46\UVxsq,10/@?;D=>MIFF>>A8:>79NEDNDCWMLE;9J>@;/19213(+7,0<26,&'?55SFD[ROYUSIEEKGESLJTQNYROZVSWTPXTQXRQOHHXONPLKKKHD=;PFE7/0@;;?<;30/ SMLMHG?<69OFDNDCXNKE;9J=?;/170/1')7,1<25,&'?55SED[RNVPOHEEKHFSLIURNYSO[XSWUPZVSYSSQIIYOOPNKLKIE=>1100,->43TSOYUU<661*-JIMXVRVVPQIJTNLJ@AC:<@9:PGFPGEZQOI>>QDEC78D<;A47N>Dsce VTQOPMG?>VKK=45RJJ]VUZUTQMMuv4XWTWWQPGHSMJH?@@79=67MCCLCASKJB87H<=<128113(+6+/<24-&'@65SED[RNYUSKGGOKJWOLZUR^VS`[W\ZT_YW^XXUNM^USUROMLIE=;SIH:12LEFTNNOJIA??2113./C88_\YhdcICDA8; _IR _IR3@8OHF^ZWa^Z_b\ZUP`][dc`gid`\Xh^]UHGwhe~5 {tvrpljgde`UQOVMMA76TIGZVQ__Z]\W^[W_^Y\\ZUUVVRQba]cc]XPN^YWb_Z`\WD=>OKJ]WUZXUXVTGB?;37OFJWQMZSQODDYPN[XUac^bb]ljdwvqntt^g˳̹>@< ^VVf`]ge_cc^efahebnjhpjgpieP?N gb^WQQXQQe^\hgajidprkwtq|yº;qnjjedb]ZQGFC9:UUR\[VZ]WY[U[ZVE@BSOOUROLFFOHHYSQ[YTXXRXXT[XUZWUTQNNIGG?B75:H>>QGGTMKQOK[WU\XU[USUQOQNKUROICAC>=GA@OLIZZUXXTXXSVVRYXTUSRHEEVTQ]\X`_Zd_\fa`jda{ni1VNLJDCLEDRNKZYUXXSWWRUTPVVSTRQFCCSPN\[W]\W^[W[WW[VSLDAA78VUQ][W^_[\^X^^YHDEWRRYUROJIRKK^WU_\W\]W\]YWUSWTQQNKKFCE=@649J@@VJJ\TR_\Wrmj|ws;nihic`SHFE;?QGGTMKQNK[WT\XU[USUQOQNKUROMFDC>=GA@OLIZZUXXTXXSVVRXXTVTSGDDTRO[[W]\X`]Za]\f`]YNLjZ[ jjfffaeb^c^^d_[WMKPDErqm|5onjee`aa[ZZWZZVVTSFCCROMVVSWVRXTRVQPYUQKB@@68TTQZYU\]Y[]W]\XGCEVRRYUROJIRKK^WU_]X[\W[\X[XTZWUTQNNIGG?B75:I>@NDDQJHNLHVSQYURXUQSONROMZVTTMKRLJ]UTqlh bYV`]Xb^[c_[]XVUQPPMKTQNJCBC>=HB@PMJZZVYYT&VVRXXTUSRHDDWUR\\X^\X^[WZWW[VSLDAB79VUR][W^_[X[U[ZUE@BTPPVSOMGGOHHZTR[YTXZTYZUZXUZXTWSQTOLPFJ#"WU\ֻŽ fda\ZV_]X_]W_[X]VRe\Zi`^ndaӸ̳x\e fe`LIG`^[[XT`^Zec^jeah_\tjhӸ RTTb][XPNQHEVQOWWRXXSVXS3WWQPOMIHDWVRDBAXVTTQMWUQWTPVROTMKVNLULLQIGNCELCE,"&5,1:05F?BMJMKGGTMLMHEQQNQNLTRPPJGTJIOPNNLIWXSWXTWVRVUQSRPIEDFA@GAAJFG?>?IKJ`[[]US\QNohfƹ1YSQYOOQRPNMJVWRWXTWWRUTPSROIEDD??F??KFH?>?FIHZWUVPMPFDVRPZYT]ZWY\VZ]W[\UTSQMKH[ZUHEDZZVWUPZZU\XT[VSQJHRLJRJIMFDKBBI@D,"%6+0=26LCGYTW]VVofctmh= idb]URPGDXTQXXSZZUUXRWYTWWQPOMIHDWVRDA@XVTTQMWUQWTPVROPJGVNMTMKQIGNDELBF,"%6,1;05F>BNJMKGFTMLMHERQMQNKTROTMKTJJOPNNLIWXSXYUWWRVUQSRPIEDE@?HAAHEF>=?FIH]YX\SQTLId^\rslʿ TOQCBDKLL_ZZ\SQXOLf`]noh}|u5fgbcd_^^YZYTUSQIEDD??E>?FBD;::`RQ~}u ^ZY][Y_^Y_^Xa`]_^X^\X\WSgb^ \WX@7:^[Y\ZY`_Ycb[eeagf`nlgBA>`_Y][WYUQ^ZW\\X[WR[VR[WU\[X\[Y\\YONJZVV>57]XX[YU]\V^[W^]Zba\`]YZUQ\XSXTTSOP_[X!_XUPFD>0/=64PCFXSWD=?UNKZWTHBE4-.NEDVOOZVUUQOZUSZVRRPMKIFYYWZYV\]Z]^X][Va]X[VRb^[geakf`KEH5./NEDUNN[WUUPOYUSZVSRPMJJFYYWZZUab^ab]a_Zda\a\Xb_[a_\_[VaZXa[Ya_\aa\RSN_YZA8:a\[_]Zb`[c`[`_Z^]W]ZWVRNWTPTQROLM\XU\XV`WUSHGB42D=:bTWztyǿBA=c_\[VR[WT\[W\WS[VR[WU\[Y[ZX\\YONJZUU>79\WW[YU]\V][V_^Z^]W`]YZUQ\XSXTTROP_[X"_XUPFD>0/=64PCFXSWD=?UOK[WTKFH4-.NEEUON\WVUPO[VSZWSRPMJJGYXVZYV\]Y]^Y][W^\W]XT\ZV_^\eaZkea} ^_[_`[_^Y`^Y_ZU_\X`][a]Xlea4]XU[WSRQMJIFXYVZYU\]Y\]X\YU_[Va\Xb_[b_\_\U_ZV`ZZa_\a`\aa\SSN`Z[A9>LFJcSX LHHSQO\XUfc^c`[ZXTNIIPIKIAB=VUQ^_Y__W`aZehbfgbb`]JCC_YXda\ba\YVR[VVSNOVTR\ZVgb_ge_a`ZVQPRKMB:;B;3;SLLNDDNCCSHHIFCMSNJAAG48I@C714QJL^[Xff_bc]fgb^\YSNLWNM[RQ@78G@@b\Ygb_ihcfhbca[ab[]`Z^_Y\ZWKDC1IDEXVSfe_bb]ggc`]ZSNMXPNZSR@88G@@a\Ylfcmmfjlfhh_jjckmejkfb`[F@?WQO[VTZYUQNKRNNKGGOLKSRN\ZV]ZWYWSLGGKEF?89@:9B3;TLLMDDNCBTGHIECMRNIAAH58E=?5/1QKL][Xff_ac\ffa^\YRMLXONZRQ?77G@@a[Xgb_ihcfhbdc[eg^bc^^^ZZXUE?>`ZZ _ZVdc^fgacb[ac[^_Z\]X\ZWJCC2# [SR@77GAAc]Zjeamkgikcfe^pphoqjnnihhcMGFe]]iebhfa^YV_ZYWRRZXVa]Yjgakidfc`ZUUYQTLCDLEEPHN]XX+$&H;D`XWVKKVJJ\OORMKU[WRIHM8;H?A6/2MHH]ZWihbllfz{uǻӾ7G?>PEEXLLLHFTZWQHGN:YROQKJst =88``[ggada[a_YXZSKLI613LDEź VXS]UPgg`fiajogjlfJEBTKLe[[f\Yjkcc`\ ghbh^Ylmdeg`_c\_`YC>;OFH YSP[\Wec_gb]dc`YWXPJKa[Z^VV`XYTIJZQN _WQgg_fhbdh`klgJECUKLf\\e]Zjjcba\[TV g^Ynnefia^b[[]W?:8HAA\STʻ WYT\\XbYTgg_`c\Z^XZ[U@;9NFF'##`XZTJK\TPhjejkeka\qrguzprwortlOIFYNOi``0,+ D==NEFH??LDFdYZc]^OJM;13SIGg`]  GBC;365,,:22G>?PHHk^^ ^]X`^Xgd`\\Y200QOOKFFQHHTHH XVS``\febfb]a`[TTP/--QOOPKKԾҴ [[X`][]WUhjerrma`\C>D]VXfa]lhdljfa\\ qolrmkb\Ycd_aa]POL748QKN|wr \UR_^[fe_ihdijhSNNjef[W[LHKVQTLFGff_ idbb[Xhjclkfba]B>D^VYgb^khcmiga\[RMM qmid]Zce`aa\ONK416JEGVSP~x \\X`_\fb_]WU^_[]]XOMK638QLN'%&NGIihctvotsouonmdaxzt{{ugfaEBGa[^kfbqlh321 GCCVPQE<>A9>C;?UTVFCDe[Zg_[ogd D<UKIRKKEAAVQQUJK XVRZWVPMM1/.MFFUPR602=68TON ]ZWba[`^[_[ZLIJ-++HA@UPP;47 ZXTa^\QKKddbnkh^[[PIOohivtotsnsrmkhd sqlrpmWOP^^[^\YIGH?9=ZTU{xr [WT^^[dhdigdPIK`[\KEGOGMULQaYYf`]uql pnjYRSihfnli^[[RKPnhiwuputosrlkfdlih rpnVOQ__]][YHFF<7;SMN^\Xuuo VSO][XfcaPJLYYWYWTGEE>9=[VW30.xtopmivtp}zwd\]wxu|xuc``VNTskl|yuxwrxuq21/ <46NDFNFEVMNPEJ;7;H=@qnksnjvpl ZTR]YWZVSFCF703KABQIIϸy XUSPLN.*-PJJ]TROHHHCELFHYYW ca]gd^fb`TPS+(*E@@RJHJDCLFHij [ZU^]We_bMKJWPPVTU]UVjdawuo tsmomglehIGFJDECACE??SOLjhd \ZXVTRa`___^]ORd\^QOPYORbWV rpjtlpTPP[UT[YY^VWkecwuq{{u nmgkdhIFGJEEB@AB=>LHFYXSjkf YWS_]Xcb\e]aECBGBAA?AE?@WRO>=;rpj}{u}{twz_[[e^]`]^qok ,&'VML^WV`XWQBD(#'/!& ZTT_UUMML&%*5./VMM^WWWLT  GDB646;55gb_a]Y^[X[VTYSRJ?B]PY fcae_[WRQ=:=:55^ZUVRNYVR^YW _^YcaXTKM[UTi__QKLyxr~xz|v xxpsrjYPRWPPYQQ@;<[YTcc]ghc MIGWRPhecifef___ZXfb]lhexvp wsl`UVd[[nddVOP|ysz{~w||v sphYPQXPOZRQ?;>XZU`a\KKFzwon{z]QQgaba_`JGHxsp HBB""5((LFDSNNPOM=43{gi 7()QDD_XTid_f[YK@@C@ANMOOLOjpiLW ZYY'I68cTTg`\gb^]SQF<>]XV \\X``\cb^IB@MCBF>=F@AUQMVOMLLI]TQk^]k^_rijx|soj__S>AC13 >-0+#YPM_XXJIG=35^ZYs{ SKFYPM`YVnhcoojhhgXFJ;15+'+oaf /((QFCtidrfbnf`qkgijd_^^WEJnw_U^oaf lhe]XXrjf|sph[Ymcbwvsigh^^ʺ̵ zwjedyokvmj[ON]TSmfdf][aWWʺ̵ f_Zuslyxrkif~}vzztvxr d_]{rn|wm_]uih}{wmki__bZZ̵ \WWha]g_]OEDQIH\WVVNMOHGQJJ̵ VQN_ZWQLK^XT]USF==NECUOOVPPRKII==`KKod_nlgkZcѺ ngfjb`k^]m`^kbbbZZVNKG<<]II {qk}~|{ussng_Yke_smhĿ {pk}~||tsrmf_Ymf`xqlĿ pmhgecmkh~|{vtvrnkhjc^pni yvry}t{zzxslc^ngaslhYPOĿ yvrosjmmgbc^\\WQKGTOJ]WSLDDĿ ]TRaZUkheei`ac]XYTUUQQKF\VQĿXXS}|wypi}vtghzyukd`ss´ɰν[TT `XW,%)SILTPR214&UOL YSRWNPH>@PLIrlfnhbojfunkbXYjQX }ooyvrt\PS^XVxsmoidpif˷ yz~w~{|{tpojmmhmlgpmjž vvpptny~zxswuqvupywtž jgdutp{rotqpe^^YNNlfbssl gjetwo}}wzvuprqmnmhmlha[\žƳ koinrjmlggga]\Y[ZVXXU[YVTPPžƳ SOOba]^b\ei_ab]\]WWURYXVa_[ž\[W|}vwvrs||vkjrmh ODFG>@* "(!'& RNMa_Y IEFF=NFG QLMa_Ze`]ega`^ZZVSI@?XQOTJHèıWLJiZXmbdfY]k^a`WYXSS_[[m_ghwqnj200-ȳջèıyhwvsokdbMD@@97RNO99;SLLE>>TMLa[Z;6.1IBB967@=?\YVllh|{v|zu~vqrmnؾ˵ʶ;25SNRbX^twM?D_SXvmmSNPSORkhexvq z|t|ytmlgpomfbaTLKZXS\XTb\Zo_e dd]lkehfbvurtrnh]]wtn|vp}uro_e vto\RRaWVneafc_fc]b]Y`a[fhb a_\]\YkjhlifXPN]\W]YT]WUIBDo_e fdbca^kjha_\OGFTRMUQLVQOD??o_e JJJ^^Zgfa^]Y`_]XUSIBASRM\WSo_eb\Y\TV<58VQT[SXpdf=37JAEƿqpj3XXR˵ʶo_eԼwck|ƿzytrpkkeae_]JEE-++>::RJJSIH^YW;[YVb`Zd`ZZNM]NOpkjrom{wr|vj]_wȵȼYLO)',VMV]LPxvwigp_a~xw~zx sqkeieicbRPOYYWPJIUPNZUT[UUHCL ]ZUX[Xd_]WTRhfdc][rkh|vt|ssHCL {{snjeqplnngca[aa\\[V\\Vae` NROZTSMLK^_\SNLWSQXUSVQPKDDHCL SVT^XXRPOYZXOJISNMUPPSNMICCHCL KCD]ZUX\Y^ZYJHFPONIECRNK\XV OHHVJL'%*KCKIFD>Bxtrxvpsphrunppljhehe`hgchfcec`ZSQ_[Ygfaaa[ffacc]ec_dd`db`WOMe^\WPPb^Yeb`urnlca^WV[WTrhhobcvlmg_`q\]I56cUV~z|mpogh he^gcankh^XUMFEEBASKLPGGXQRġyWY SNJXTShgbe\ZYRQXTSpffocd{qrġyWY usoe\[gc_ihc^^X^_YZXS\ZVaa^ TPNb`]^XVRJJIEDUNMOFFRLLJDDġyWY SPOb`]^XVRKJIEDUNMOEFRLLKDDġyWY KDEUSN]ZXifbZRPICCD@?UMMULLġ VGGA./OCE`[Ysqnkgcpminkdռŷruk4orlrrnmkhnkgtrnvtoxvqpeezuq{|z|}}~{uvklN89aSUyso||uzvl`ba[[pkjd^^igdeg^[[W3-32-/YWUa_ZsqjDB@;\YVa_\db]oohpliea^ea_mih\XVnnk?:@|xpdacUTPwvo+rmj_[\ZWWdc_`bYaa[]ZW]\W^^Z^_Z\_Z\^X^^X\]V^_Y]]Y^\W`^X[POXJFQFEpmfqpjrpl{trzxohdzlhlid~s{ bTNSHGjhacb][ZUYVTZTQKEC^[W MA>G>=fc]hfbjherljwrnh`]{ urnpohnnggha^b\\\VYYUZ\Uac] C;9_^Xca]`_[^ZY[WTJDAXUR[[V C;9_^Xba]`_[^ZY\VUJDBXUR[ZV SIGQEAKA@fc]]\XVVRVSRZUSPJG hb]yxs{xsqmi_ZXrqloohrpj~s{tmpkga4,,)eb_XUUWSSge`ijaqnhtqkxwq~~w|}vrpxif}smky~}uxvoWUPb`^B;:4/3.+-USNHEGA@=dd^UQQ;\YT`\Xeb_noiuvm|wqpijeadla`0',llnhfazwstrounnebbc`ab_\ed_cb`ZZU__X^\XYZT_a[ZXT_]W^`Y__Y[[U`ZWd`Zeb]jjcnqjutoyys{uotoxqwwuloƿ||°UDM sskprjljgfgb_[U[RMUPJRMLNGI [[T`a\fe`llgnidshbskdqkjkce oohqqhjhc``Zbb]WUPYVRZ[Uaa\ \]V`a\gfbe`[_URXRMPLKHCD\WV \]V``\ggbd`[_URWRMPLKHCD[XV YXR`_Yfh`ffab`\ZVRXOLVQLWRRópqkxztwqmqnjoojqrismh°UDMstn3>=<=442 ^^Y][Xbb^ficsupkhdmge]TS{um}igjhWb rmlxupwpm ma^`QOkmhc`]NIGSNPTPPRQNba] VLJRECfibgebZTSieerllsol vtqjgaUNLVMLYQPICBKIFZVRVNNξ NBA`b]c_\SMKWSTWRRPOL\ZV``Z NB@ab]c`]RMKWSTVSRPOL\ZVa_Z WQNZPNWIHgib][XJDCQMNURQWVSsrl{{utxrvxrec_b\YPGGhb\okf SPLTVPSRQHCD^Z[XYW^__|zvwrlg^\ OJJa`[fg_nnevtmtpk~ytpkdOEE~|y}y zps{v{˼ hdbVHGldaaYU\RN[QLWOLYSPZXS RNMJ>>g_\e]Zk`Zsgaulg{toyt kijonjnngbb\b_Y\ZS[YTXUQ`]Vƾı F;:aZVaYV`WS_UPXROWROURNaa] F;:`ZV`YUaWS_UPXROWQNURN`a] JDEVSQNBAg_\\TPWMJXOJXQN_YUwxpy}ttojspjb^WC::ihepfe YYVXPP[SRd_\jea`ZZG@Cono}{w} E?>WSOca____e`_tnmwrn~xriUWc[Y}{z~x sttdf}po|{zupn|vtytğ mkfoifkkfhf`c]X\TPYUP\YTed` WURaZYegalkermgrjcwqkzu JJI^^[igf^[Ya_ZVTPSQN\ZUa`Z VSP\\Xba[gc_aYT]WS\WS_^Zed_ [VUaa\hf`d^Z\TOXSNWTP\\Waa\ [WR\ZUf`^fgbba[^ZTYQMYUQa]Y!! tsrrmlysptnjrmf[JKQLJopmmjc VSN[XRXVPde_mlgnkha`]LLKihf~}{ YUT[US`ZY_YZVKK`RSreeztz ~uoobVVdVWvig |xxg__eTSslglgbd_Z\XRc`[gga eabZRSbQOyqm|vp|voytm|wy qifRLL844a^\]WT[VVPKJZXR\YT LFGSECha^lhbkd_^\Vcb\cb]fc_ UOP]MKslglgbe_Z[WR^\W_^Yba\ b\\jff_WXbQOmebfb]a[V\WRgfa#!!dXWhY[tgfzsosqmba\kfdc[Zvwp [YXba[ce]ijeoniuokvokuu NLJZPMb[Wmheqnfkecia`wtq~t }yzt{wz{xpojfjbb }vzwppjgvupqnhj_Y]ZTeg`jmf ge_jiclfb{{u}uunsogz}t|w ogbe`^;85e`\]UQWOND<:RJDYOK WVQXSPgf`mhcod_a^Xfhadg`ie_ed]fa\vtpqnhj`Z^[Tcd]fc\ f_]mjepnhkfbppjjhbf[U]ZSkkf,+(xspphgvtqtvktrjd^Zg`^miavto [XTYVSa_\kkfomipjgogcz \SQ`ZUc`[mlersksrlqjgla_|sn }|v}tyyprqkojf vtmtolurj|yttolkgejiclifmmi ge`fb_rmgy~zytrwwqxwryyt oje[UWFBBXRK]YTYUSPGFOHGRMK PLJYUPhd`jgdmgdnohlkgjjfojf a]Zkia}yuuqmkfdjjdgfcggcmhe njdmkfkgepmgvtnojggc`iicomi0/-|vqrgd}tpwysc`\dYVkeb_YXogd ]\YZXXYTSmhcplgqgdsjcƸXVQ'"! RMLb^Zed^nketsmwvp}{xxqnvro z~vt|~}vzwpwupssmyws YNNumgup~vqwplqlfhkdmjgifd UKLqidypl{v}uowojmoirololi qid:11TONd_Z^^Z\\XQKIRKKIDB UOJ\TQe^Zid]mhbmoioligdbia^ lc^tkf}vqzslrlgikejgdeb`i`] shjZOPwnizplxqlrkfmgbgicoli775|x|yxusXRPmgfg`^ibcTNPqvyrm TQRHAF<35laai``mdb|w~lmþQLN(&' NMKRRNfd`ie`qmjtsoxxrusojhg wjh~rpoppjywqrmhplhmlhqqm YJMzul|wszzywoplgfZX[NLۺ ]NQzr{x~{u|ytsrjkhcdYW\NMۺ JAE:15ICDe`\\[XWXSXSPKEDWRR \XR]YVea^mlfonfpmgh][[LKUDCۺ ztk{urz{zxqpmfdYWXKJVECۺ WGMbRTy|y}zs{zssrjnjdf[Yħۺ986yxvRLJ|vunnkaYWjdc^VX?7;qhnA7>xlrKCF <58E@C<58]UXQINYPVkv νпx.',825 ZVSJJF^\ZZSSe^]_[Xc^Zd\Y]VR {uzv}yu]]Yljg]VU`YYWTP[VSµ h^]osn\UQxpnuplztrwtnpbbsgg wkk~|_XUskhga_kgeifafZYmcb ?7;LFLJBDRMNEB@OIFRLJF?CŶ VZUHB@_YW^YXlgfrojtgdrhgpfb¸ y}wc[Wyuvpn{usxsnpcarfepgcо YLM}rqh`\{tqpjhtomspkpcb3/-}zv{omhjb`VNKmdaSJJ@78XLP{jrvz}zSLR SIIA9:;36?6:K>@QEGPFJu~D7> yzwgm{jr YUS[ZV]]Yfd^qmirgenfce^]]TW tqj{wsxspnmjffced_ec_d[Yf_\ȴ [TT`\Yja_snhwnixlitrljbad^] tlknifnfcnidiaZaYV_]YZTS\UU OKN :/21&(JEED?>KBAA36qxKZQQ]WUSNMB??222501=<99SPMbZWieaukgzvqyvp{vr{stλuvntȯֽԺǧior}scem[Yykfvoma\\a][g^[e`\d]Ya]Y\ZUa[Zhba ]SQK@@XIJA56:221')4)-913.'(ղ=<:7WPM`\Xjb_pmgrmhxqn{rspgfλuvntȯֽԺǧior}sceղzmgvnkd_^hdavkgspi{qlytpuqltnlwoosih9ntȯֽԺǧior}sceTFEq_\rk~vulfeqli|rnztzv~y~zs}vsλuvntȯ/sceղùλfeeD??XJKzvs}{WPQH=Bgekxuqxxpmabmeb[PPRFINEHԺǧI@?5TKKrjgbWVXMPWNPm`_m_]ǧior}sceղùλ|{{A<>F:9JBE<5;'&)3&)=43/SHF]VUd[Zkd^olia^^;59B;>reh~_SUI=@I35SLLpriiicjfcPKI,%'?::SRRqfhfiNAC  3,+:64[XThgbDB?JKIijc    1**2/-MKG^\XCA>=$$#IGEb]ZSNMd]\lieQKL"$fR^g[`fZ\@-1('/G+,}jj~yTDM|fln\affvW@Lib_]XWa`^lliUSPfa^OKIUQOVTP@<<& fR^g[`*%& UPK_USa\]gca`WRIDE%%+ 89;Ĺ=XSPJGE[TSb_\MHH!$0&-g[`fZ\@-1('/G+,}jj~yTDM|fln\affvW@L]XW`_]lljYWTqkhWRQc]\fb_MGH$9-4g[`fZ\9TDM|fln\affvW@Lohgnfdc]\gfdtur`_[ysoa\ZogfqnjTNO"M6BfR^g[`fZ\@-1('/G+,}jj~yTDM|fln\a1W@LĹG/7M6BfR^g[`fZ\@-1('/G+,}jj~y}w{{t{xo{xs|ytWOP)!%<144+/XMMjdaGCBWPQb`]22:G/7M6BfR^g[`fZ\@-151),TJJfa^IEDWPQa^\ɽffvW@LĹG/7M6BfR^g[`fZ\@-1('/G+,}jj~yQOKVWTmogfg`b`Y_]Yfc`JCD&#E9(#RHH713WQSg_a[USFB@KJH[XW]ZWWSPOHHD<<><?D@Aofhh\]g\[mecohfofelc`plhqpjmnglkdIFFJFI^^Zfg`dd_VURad^dc^_XWA::-')NHIWPPRII=46WYWgg`mc`c_]ominjhC=?)$SHI823XRTg`a\TTEA@KIIZVWb_[]YVWOOMCDGED3+,E@@[VX9geamnhlieb[ZB;:.')OIJXQQULLB7:]^\lkerhegcarqlrnkC=?)#SIJ924[TWmdga[ZJFEROOb^^jfbhdabYXVLLMKK7/0GABFCDuklmbbmcbphfoiglcbh_\jfckjehhahhcHEDIFHac^iiclke`^[tvo|wxv`UVn_d2XMM:35[TWkce`YXIEEQOOd__kgcjebe\[ZOPTQQ<24MGILHJ|rttffrdeskirlipgfndarmivtnuvnuuoTPOUPSpql{}t||ukieqtmvtonffJBC3+.WPRaYY\QQF:>`b_tsm~VAKYMNvcf50)*TMN]UV\RQE:<^a_lkeofbd_^omhnjgC=?* $XLN=56_Z\qhke]\LHGRPOe`amielgdg]][PQSPP;13KEGKGHzprqeeocbskhslkofendbpkitslsskrrkPLKPKOdd`ijcee_UTOab\gdaia`]RSn_d ^[Y``\a`[fc_`a[ZZUD@?-')bc_ XUQ\XTgcaefb[ZV\YUZ[V[[UKFFyin;FFDXSP\XTe`^_TTXKL^MNNA@\OO[PPSMMf``fd^jd`plipolge`ieadfaa`[JED.(*\][YYT__[^^\_`Z]]X_]Y^ZV\YV@9;:05OGGI>@B;;[WTjdbjc`iffCBH#L@?[WS_VS2,,[\[mlejickjfjjfWRO]WU[VTTKJPCDZIJwbaӸ PMJ^YWaZXa]];9??65OKHYQMsee1:75WSQ_ZX`UTWLL_NNN@@\POZPPRMMe`^fc^ic_okinokjiclichicdc^JED1*,\][YYT__[^^\_`Z]]X_]Y^ZV\YV@9;:05OGGF<>?89WURfa^f_]kgfDBH$MA@]XT`WT2,,Z[[nmejickjfjjg\XT_ZXZQOTHI\LLRDD~}Һ9onkijcbb\a_Z]ZV^[X@:<;06SKKLBCD<=^ZWmhemfcnhiECI$NBB_ZUbZV4--`aasslqqlutnttod_\icalfdeYX[OObQRRDC_SR_TTXQRjedkhbnidqlkklgcb]fb]bc^ba\HCC/)+`a^[[Vce_hhdoqittmy}2`\WaYU3--^^_qpjqpksrmqqlb\Zhb_kebdYX_QRgUUUFFdXVcXXZTTlfekicmhcrokopkjhcpkfnoinlgUON802ppmlnguvpuurqrkmmgpminjejhcHBDA5?>4:YQROEFD=>\YVhc`e_]hccCBG$MBA_[Vd[W4..``arrkpojrplutoc_\jdbngeh][`QRdRSTDDaTTaVVWQRidcjfake`plimmihfalhcjldjicQKJ4.0iif`a[de_aa_be]dd]nmhshl]ZV[YTb^Yd`\\[VNJH!WTR [XS^ZUea__\X^ZV\YTVVR_]YVRPVGJ;PIGWSPZWSZROVSSWSSSSQ^\X_YVda_eb`da\e`[hdaa`[e`[hc^`_Za_[SNL!PNK_]ZZZWTRR`_Z\\W]\W\YV\\W^[YC;<1*,?7:E:=fcb][YG<<813'#&C;65\YWa^Zƾxrv; URPURNZSOUSSVQRTSQ`[X`YUc`_dbad`\d_Zhd`a_Ze`\hc^cb]ec^SOL"PMK_^Y[YWTSQ__Z\[W]\W\ZV\[V][XC;<1*,=58B8:b`_^\YG<;823(#%D<=;45)$'F=>G>NIJF?A6//VNPOEGMDELDCPLI`_Z_\WWRR:/1KA@ NOMUSQVLM5-.NHEWPNSLL976IGEƺxz9[ZT`\XSOO2)+H?@WLK^WR]YVZXVbb\bd^[ZV]ZUba\_\Y_ZVa_Zb`\3//2,,][WVUQLJIOIFSQOSRP`ZZZXT^\U^[VLDD626;6:QQPVTRYNO7..OIFXQOTOO:76C@>NJJF@B5/0WOPNEGLDDQHFNKI\[W`\VVRR7,0WKM˰PJF9TQQRMITSRSRP^YX\XV_]U^\WOGG947;6:QRPYWU[QS9/1RKJ\URXPQ<99FDBQLMKBE823\SUSJKQHIULJXTPfd_eb\YRS5*-LBC\POc[Va_Z_\\ffbhjc_^Z^ZUba\_\X_ZV][W_\Y2--3-.]ZWYXTPMLVQMa`]kig}2@==$ URQWUQ_\Yc`\\\XJII`\\YQPa\XWUP[QOD;>3-2JEE]XUPFIMFFTRPE@@QHIUPK?99,&)955.'*F?CB;;9IFE,''ICBNKKVSTRMM\WVVUQ_]Z[ZU[[U__[ZXU`[Y]]Wcb^B>=$ URQWVQ_\Yc`[\\XJII`\\YQPa\XWUQ[QOC;>5.4JEF]WVPFIMGGTRPE?@SJJTOK>89,')945.'+E?CA;MDC\ZU]YT]ZUYURNLK.*)OGHRQP\XYXQQa\[\YVca\`^Y_^Zcc_\ZWc^[_^Xa`\?<;#SQNTSO^[X\YUVUSEDDYUTSLJZUQROKUKI@8;4.3PJIjdbbVZjbb}|^\Z932d[[pmm/ :33>792,0IEDZVTPFILFETRPD>@RJKVRM?::-():56/)+GAED<>QHFb]Zb]Yb]Z^ZVOLK-((KDEONMXUUUNN^YWYVS_]X\ZV[[U__ZZXT]YW[ZV][X>::"OLJTRN`]Zgd_ed`LJK  `_Y``[_^X^_Z`_\a_[ec`a^[,!& VUV_][\ZV^^Y``Yab\ee`hhbtrn_IR3 #=84*$$0,/313FEFQNOYYVYWS\\V\]U[\W\\Y_^Z`_[XTR% >67SNK_^Y^`Ya_[OKIYZVYVT\WUYRN\YVG@@6/1OKJUQOD<>YUUDAARLOF?CYVRZWUROMKHDG@@;456//FA=QNKFFC:96))' SPNXUPF?A\WWHEEXSVPGKidaupmȾ¯30,*% ,),1/1EDEPNNYXVYWS\[V\\V[\W\\YZZU`_[XTR% =77SNL`_Y^`Ya`[OKJYZVZUT\VTZQO[ZWF@@914OKJUQOE=?ZUTEBBRLOH@DYUQ[XVROMKHDF?@<45700GA?YXTNNJDB@<:7&jibbe^cb^PLIVXSVSPXTQUMKWUSD=<7/1NLIXTQF>@]XYHDDVORKCF\XU^\XVSPMKGIAA>67822JEA_]Z]\YYXU]ZW=49>53SNJ3+,515747KIJURS_[Z]]W\]VZ\W\\XZYU]\XUQP#>68TPNed^gjbrplfb^|~w2hc`gb_YXTPMIIBC>67821KCA^[X\ZWXVR[YT?6:?65VPK4,-626868LIKTRR^[Y]\V__X]_W]_Y\\Y[\X^]XTRP$;46PKI][UVWPYWRHECQRNROLUOLTKHVTQE>=913VSPb^[VMOxxniiİLBGNDCnf`G<>þ,+*=;8935SNND@@QLNHAC[VS^YWTROMKGH@A=57821NGEc`]a_\][W_^Y?6:<33SLG2*+404737HGHROPZXWYXRZ[U [[WXYU\[WSON!2-.<:8::6&'$ /,/Z[Zvwrg^^~ĭ>/1PEHjiitro`ZYqhepmjxuqʵpojyxp~y~zxyr~}vy}u{{yrh_[sql~|wuqjtlitlkzwtrnijd`d^\tqnjheOHGg__pliJDCSIKeZ[ia^=9?TOP]ZVhe`HAF`Z\jgcnmgPJJ[VTfd`oojee`ijdfhcnohhjcghdffcjlfe`\_XURIImfeqjhi`_bXXaYY̵\UScZWc^YSONia[ohazsncXXĿTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/main/readme0000644000175000001440000000036011177007633017053 0ustar jacobusersMaking of "HOLOTZ'S CASTLE" main title. The image was made with the Gimp. - Dynamic Text > 150 pt > write "HOLOTZ'S CASTLE" - Script-fu > Alfa to logo > Stella > Select color and ~28 for intensity. (C) 2004 - Juan Carlos Seijo Prez. holotz-castle-1.3.14-src/res/stories/0000755000175000001440000000000011177007633016440 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/0000755000175000001440000000000011177007633021153 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/level023.hlv0000644000175000001440000003300711177007633023225 0ustar jacobusersZdefault233?(( ClB`@@PC3CCGCC[CCoCCCCCCCCCCCCCCCCCCCCCCCCCCCCDCDCDCCCCCCCCCCCCC DCDCCCDCCCCCCCCCCzCCCCCCCCCCCCCCC[CC3CzCCCDzCDC DCDC DCDCDC DCDCDCCCDC DCDCDCDzCDCCCCCCzCCCCCCCCCCCCCCCCCCCCCCCCC CCBC Cholotz-castle-1.3.14-src/res/stories/holotzcastle/level011.hlv0000644000175000001440000001662311177007633023227 0ustar jacobusers(default233?                                   BB@@@RC C@@C[C@@*CC@@C D@@CC@@ CCC3CzCGC*C[CCCBCCCC DDBDCholotz-castle-1.3.14-src/res/stories/holotzcastle/level001.hlv0000644000175000001440000000466311177007633023227 0ustar jacobusersdefault233?          BA@@@@ BA@@@@CGCCGCCGC*CGCBGCCGCholotz-castle-1.3.14-src/res/stories/holotzcastle/level016.hlv0000644000175000001440000000440311177007633023225 0ustar jacobusers(default233?    B C@@@ CGC@A fCGC@A>C CCoCzCoCholotz-castle-1.3.14-src/res/stories/holotzcastle/level029.hlv0000644000175000001440000016243711177007633023245 0ustar jacobusers@defaultN33?PQJ&                                                                    HBB`@@BB??C3Cgf?gf?fCCgf@gf@CC@@ cDeD@@@@ YDjD,@,@cDoD@@YDtDgf@gf@cDyDgf?gf?YD~D?? @D~D,@,@@DyD@@ DyD@@@@ D`D@@@@D`Dgf@gf@@D`D@@ @D`D,@,@D`D?? D`D,@,@@D`D@@ D`D,@,@ @D`D@@@@@D`D??D`D??@D`Dgf@gf@ D@D,@,@@D`D@@D`Dgf?gf? D`D,@,@D~Dgf@gf@@DoD@@ DjD,@,@ @DyD@@@@ @D`D@@@@ @DoD@@@@ @D~D,@,@DtD@@DD@@ @DD,@,@YD`D??D`D??YD`D??D`D??YD`D??D`D??YD`D??D`D??YD`D??D`D??YD`Dgf?gf?D`Dgf?gf?YD`Dgf@gf@D`Dgf@gf@YD`D@@D`D@@ YD`D,@,@ D`D,@,@ YD`D@@@@ D`D@@@@^D`D??@D`D??^D`D??@D`D??^D`D??@D`D??^D`D??@D`D??^D`D??@D`D??^D`Dgf?gf?@D`Dgf?gf?^D`Dgf@gf@@D`Dgf@gf@^D`D@@@D`D@@ ^D`D,@,@ @D`D,@,@ ^D`D@@@@ @D`D@@@@ CC@@@@ CC@@@@CC??CC@@CC@@ CC,@,@CCgf@gf@CC??CC??CC??CCgf?gf? CC,@,@CC?? CC@@@@ 'DB,@,@ "DB@@@@  DC@@@@ DC@@@@ CC@@@@ YDC@@@@@DC@@@DC@@ ODC,@,@ ODC,@,@ YDC@@@@JDCgf@gf@JDCgf@gf@"DC@@ 'DGC,@,@ ,D[C@@@@  DD@@@@ DD,@,@ 1DD,@,@DD@@ DD@@@@D Dgf@gf@C`D??C_Dgf@gf@C`Dgf@gf@C@_Dgf@gf@C^D??C^Dgf@gf@C@bDgf?gf?C_Dgf@gf@ C`D,@,@C@aD@@@qDQD??@tDQD??~DQD??@wDQD??zDQDgf@gf@DQD@@ `DQD,@,@ DQD@@@@ `DQD,@,@DQDgf@gf@`DQDgf?gf?DQDgf@gf@  DQD,@,@DQDgf?gf?`DQD?? DQD?? DQD@@ DQD?? DQD?? DQD@@ DQD@@@@bCCCCDCCC DoCD3CD CDB,DB;DoCEDCTDCcDC^DCTDCEDC6DC1DC"DCDCDCDDD DD DDD"DD'DD6D DD)DC)DC.DC3DC8DC=DC=DC$DC)DC.DC3DC8DC=DCBDCGDCLDCQDCVDC[DC`DCeDCjDCoDCtDCyDC~DCDC`DCDC`DCDzCD>CDCyD>CoDCeDBeDBtDBDB`DC`DCDCDC`DDDDDC`DCDCDC`D DDDD,DeD,DtD,DD,D`D@DjD@DyD@DD@DD,DD,D~D@D`D,D`D,DoD@DeDD DD~D6D C@DD ?BpB? CB?pC C?"CpC? C D?C D?1CD?]D@MD?[`DC?/DMD?DMD?$ DD@/ D Dholotz-castle-1.3.14-src/res/stories/holotzcastle/level026.hlv0000644000175000001440000005053311177007633023233 0ustar jacobusersdefault233?22 BoD`@@ zC D@@@@ CoD@@@@ ;DoD,@,@ DoC@@@@ "DlB@@@@0DC@DCDCDCDCDCDC DC DCDCDC DC DCDCDC@ DC DCDC@ DC@DCDC@ DC DC DC DCDC@DC@DCDCDCDCDCDC@DCDC,DC@+DC)DC@(DC'DC(DC(DC'DC@'DC(DC@(DC'DC'DCholotz-castle-1.3.14-src/res/stories/holotzcastle/level032.hlv0000644000175000001440000000426711177007633023233 0ustar jacobusers@defaultN33? >CB`@@zCB??CGCholotz-castle-1.3.14-src/res/stories/holotzcastle/level006.hlv0000644000175000001440000000437711177007633023236 0ustar jacobusersdefault233?>CoC@@@C3C33@ff@CBC3CRC3CC3CCBClBfClB>ClBClBBlB>CBzCoCBoCBoCBoCholotz-castle-1.3.14-src/res/stories/holotzcastle/level030.hlv0000644000175000001440000000646311177007633023231 0ustar jacobusers@defaultN33?         HBoC`@@ CoC@@@@ CC?? HBC??holotz-castle-1.3.14-src/res/stories/holotzcastle/level017.hlv.tga0000644000175000001440000020401311177007633023777 0ustar jacobusers                                                                 ' , , % -5+        # ,764) ,26 -%             & 35-  ! #   * "                                       !              # ,2$  " +  ! "         % 52'  & +( ,61         * ,' " & ( , --( ' 2/            " $    ! %   *&                             #            "-    '        &          #(#         "          &                                                              ) 26;7;BC;6787;8/%          07?=46>BB<2111>> /,        " /.%   % -+#  $ "   #   ,.                                  (                           ,         * 5-$  & + , " % %           #   # -37:?649A7,+ .-*% * 4$          ) 37<?@=<;983/+ .0.,' "                 # + 1/ 2879;7)& ( 3-' &             +        #  " $ &! $)$%&                        3 ?1E                  ,.9!Q$0                    &$'1'                   ##!&                  ""    #          %&'4"                #%#-                    ,5                     #            #      ! !   " # $ ' % # "              #/:@CCEFJ!L"G!E!;<A F"? 5;A!C$<#7!/&        ) G ?;857=7/3807@? 7/2=!8 1,              + 3                  $ !                ! -)                                 $ 8& ) #-9                                       ) 54  " & & ' ) , -+ ( $                        & ( 138=CDAE:<@:;=@ :?!; 6599 40' !                    " 17:9EKLE::,@BH!E!@D!D"<5568 312.$                   ' 45"9DA;:4>B?79>C!;"-3:88 /4?&A(8& " !                 3 " $ !   " # " "  " & $! ' '%'$ ) @&4,' ;'6@)O$! "#'7% !  /&(   " # "     /    " !      # '! $>(DE*` $+"**  )$9      $     $ " %     6         # %   " !  # $ " " )+-!"!' +@  *"    %    ( !                      ! $$ ' +) %/!-     )    #     $      % # !   $             #  $%"#/                  " # .        " *#     '9                # ! #       4   #-)(, $     !                 # "              ! %*&%(      !/            ! ! !            .   # ) 6#;0;     -             !! !         $ # $    # $ % ' + * & $ & )" I/V4"? "      $            " #  E   #    # %  % ( + 2<; 47438!9":#:":!<$8%1!2!?)?+"S3o   '4             !       & $ # E+ * * 29>@BD=57;AD!C!;>E"D#D$F&>!?!B$>%A&F'B&^7g%                           ! % $ ' *( -    !           ' ' ' ' ' 56/* .83' $ ,0#,!!    "          $   " & ) ' %  % *             .   #     "*        % "     ' ( ( * ,$  % "                  '          #      !+ # & 0 3 / #  * %            '                   # %,53 . ) * #3 ' $           ! # $ * .-.032/., * ) ( #            #.,1/.04#=#AJ % %  ! % ' % , " % & ( -, /1?G!F!A G#<5C!O(J&C#A#B%D%B%A')03!:&#."$ ! #!!!#)4'3 ($(*&(&9'>$9/"6$;%?'C(F&CJ% -, . 1473)/# * 33-1?J"E :<: +1G"O(%D$!9= E&F'*1,3<%5"- +!0$!1#0% !!"!#1F$."+'9!."1(=$6%%9'?$:$;(D*H(F8J # ' + 3:>?4% ' * 467;EQ$L#@;<55<M&K'D%< D#g7\<#.( 2B'D)229$G.6?+=&& ' -0 ()+1%'&+.>+9<"\5S';(=%6'&9+D*B,H0P/O/Q-O*KL! -7:87/352-/:>48EJ"A?G"I%/7=I#J%I'-<= M+E++?#\4U8"5C( O2E1$=*7M0f'&$($-!%$5"3#5&&-E.I+E)C(C.N0S,N-P * 68:/) @% "   # & % % ,.3;D"L(;51:< <#9 ?$X3b, />%M/?3 5 <%@)(I/D@)F6#B#!0> #&0#",-C$3%'&9#5$7%:&<)-'>'?+I'C&A.Q,N*K,P .L * 7=7/& % $     # * ) /:I"L&>#47 >"@#;">$>&4#/6!<%8%6$:&:& 5$' )0"%!(%)90J' -"2';(?"4#7.$:-L+J(E$=,M,N(G,N.S(J & 58- !            # ' + 1353236>!<:?!G'!B'"7!7!@&=&6$<*(:),"    ') ,..1.0 3$:-M(F$='C,M(I'E+N+P,R % 6. :           ! " !   ! " ' ) ( ) .0./00!0"* /B%3 $3" !/%:( %%:"74+,."7'A)H#=*J+N&F(H+O*O+P $ $ !             5   ! # $ & ' ( +!.#$!$ !!2I  ' (>.!!$9)E/.23 5!8%B#?!:%B)K'I(I)J*O)N)O"A              $  " " " $ $ % )".## (2!1N$8  !"3(B404":#=%@ "=#?%B'G&F'I)K*O)M)N(L%G               $ * +)& ) ( & )" /&=+6#%$&#', (1#*'30J%7  !.-G+D'@ 3%=":54 6%A'E)J&E'G(I*N*O(L!@ ,    # !      B! ' ( #   ! " # ' , / . * * * , ,!-" 3%;)K1H;'=?'Q ;$N)2 .<#+ ;!Z0K  !*/H2Q(?/#8&@2/!7":(E*I)I*K(I(H(I*N)N(M&I 5  " ) ) % K$ % ., + .353/./1 3!4!3!3!6#9%9&7&3%1$1%3&6'>+S4GB+B?)K*(   $,3  6!J  *4<"]#0 ")9,B.I!1 0 1"5%=%>%=&@(E,L-O+M*L+M)L*O)M%H = 'S  ! " $ ( ( % ( % 2=<:9G!N&K&M'H$L'S+R,H'G'L)G&G'N+T1(L-%@%D(F+F+M13W7^G.R9&@"  &-+74M#.$2 ,(*A%8$)A1R(B$;%>&?+J/R,N*K-R,P+P*O&J:!          + .( ' ,4/' -35779 9697 ./1/4 =( E/@B,F3#3%')! (10D%1&4!+$14T$5%3T1Q'?)C*E(B,K0T.Q+L,P-R,Q+Q)O ?$               ! # 7"       % ' &-!6%5( "  $',9(4#**:&3 '(82N+A(<1P%:#5(?)B-J0R/Q1U0U/U-Q-S.U+Q$F 3                    :    $%%!$#""'(" ,7!$"$-;1F-@%1#.2L/I,E/K%"2*A+D4V7]1T1T3Y3Z/S2[2\.U+Q&K9               , #%)#($**"!'),72 @2B,90C-?#+2I(9$2);'9-F,E.H7Z8_2T1S6]0S3X6a6b3_1\1[+Q9          :     ! " #* .!)( *('#&#((!"8#I0>$'.<+8!$.?'3(67S2J.D.E/H5V4T.I5X7^4X6\6^7a9g6c5c3_,S$D +     F       ! !  ! ( + ( $ " $ ) -"+!1$"/#$)#" ( *&"%)&+-2 :+/&'2 @)0#&1A-;0B=#]-@,=0G2J:![; ^6V: `8]4T9_;c< i;g7a8d6b2\/V+Q @              # $ % ' ,4+% ) 3724:!>$75;#M/=C*2./7%9'%2$, -"6'.3%+2$-+!*"''0!10 4'$++-1-24!@+1,3?&Y7!L4I:"V/A1F2H6Q8V8W: ]: ^9]9^8]7^8a7_8b8d4^2Z0X *     I           ! $' //4./8 1/0.2 -' ,1!;((3$#% (0%I2OC-L.!'(*")"6$<0!3%. /3!;5"?3!=+02 >=%T6!I:#S:"T/@;"X8 S9!U6Q4L;![<"^="a>"e>!f; d;d< g:d= j=l8e6a2Y&F   N       % ) ' ( +.* /1-(' ,/9$&. # % 5$\9d7&/" ) ;+!_=qG/O2$,/"('&5%80!0(",*1!54"=.3().54!A5!E;#S2C6!K8!P0C1E3H1E.A,?-A2L/I+C)@-G2Q1P*E.N4[0U.R $ * + + * $ " $ # % $ ' + 32+3429 :!51@&'1) .0 4"Z7e:&6# />)tE@+?' 9%d?WqFF/K*   "     "!      !  "-!5$<#< Z! 1?A><:6.( ' ) 07?=>AH#P&S'V(R'S(S)Q*"I'#>!H'B&9#="G(O,N.'R3O+4 F(^7>g?s3%;#U2d?T9*)($!(%  '',2#%+6 %$ * ,+'!3,H/M#7-"8"91,35 -E 0>A==<1* + ) + 19E J"F!I!P$O%O$U'\*],\,X*Q)P(Z,^/ ^22R+Y-U,B#>#C(A(G(G'G*R3;@+P/O01$                      $*$%.!7!7321!;#?F  + 790' & )    $ * 4AA;37CH!E F!L#W)Z+Z,W+W+]-e1"^/ Y-Z.V-!R..?%?$I*M."J,H+I+L.N1L01"                     (/3!: 9!:"< :( 86+ #   R      # % $ $ # & + --/2<I#L%J$I"O&V+W,W-X/"Q-'D(C&H(M,O.#K,C)B)E*:&'  ""!3G")%3',?#/&84V/N*(@/O,J.M,J/P%>,,!81()/0, ),32 . . & , ."          I   ! # " % * .,) /1/.0:@!B#B&?%:#<#=#>$?'@*D-:(-!  (- *.3 D&- 2 B4J!) %2H-A%4&73Q)A+'<-H,G-I/N*F2.3%?#</.. ( ' & & ( * - / ( * $ !          " # $ & + .@.,0 9"=$>%@&A)@*;(;(?*A+A-E0B/#) ! $'( !2!<-5$%!4 D6 N(1*8&3(#00K(= -,+()+!4&@#<"8$;!:";$>"=!;9851 0 / - )    "       ' * ( & $ ' * ,E/4 7#8$6#9$<&?'B*B+>'C*K0L1"D+B*F.M4Y:0B-( "(!#'$!%(''&$"'-!#"#!""+",!*$1(;&7(;#3%8#4#5)B1S.O$;#8$; 7.,1621 / 0 / , & .  ) # ! % "  * -00>G"E%:#.6=#>%7#:$F&M*L,L-Q,Q+W/Z2\6)T2%K+R.`8*a;?D*E)Z4k@6I1) "$.!$! " #$!  *70E*9-@&4$1*<.F*@-F(=)?%8(@*F)C(@%=/ % & * & & ( + , + )" = " ! ' ) ( -8; ::M$L#D"@#A!L&V,X-T,Q*M'O(U-S.N)O)^1h6"a6'P0 L*U-\5!F.;%C&_5V51%* !"! !"#!"!#"!! (1)5%.,>'5!)#/'7-C(;$*'<$8 0*-3 72 , + , + ) &"  C        # $ % # ) & % ( /8:70+( 0:425> B#@%7"3; B(3$15C'<)B.?0$%&"  #&"#(&### "(+,6',&.$,-?(6$0 '"-&&')-#3#5#7$;$>'B'C#= 95 / + ( %       H            " & * % ) ,) ' ' % ) 20!' ( -2"2%>,66(.2$,*$ "'!#$&!#  /97!L! 6!H/>&/%-&0.A!* +%7%8&9!0$5&:';)B-L(C (C"9/./ + & &!              ; #    ! " $ & *"3&+/#&"   !! ! $&&)  ")5"+%02L/I(;(-I0O$8)   # $ ' $ & & !             C   ! " # *!9'72".  -!&)!"&%#'%(&#(+##".8/=)4#&.;8!Q,<->6R9 Z6T7V.D/F.G0L4T0N'=-/%>'C#<531 , (         :   $) () 2$-+ $$'&$,+1!5.06#C,1&%+0:$M9#O-8,56!I:"S3H.?/B9!U9!W:!Y9 V4N-A(:/H6W1P0Q7_=j;h2W*I&B#<7 - + &         H     ! "  ! # %)!*!+ '%*!)!%1"//!-1"26$>. 1)'-/7#C2 <-2093 @2A1@+8)4,8(2)3+7)6(5#.'70I+A+C-E*@ ./.)* % " $            ,! !    # &' !  # *#4( /%/$/$!1$'0$() + )&* ), &0"/+(&+)/ 1-0**+.090:,5*1*2(.$((1,;.A)7$.'5-C%3$& /&;$9-)/. ' !            !    %( ')!%$) #    %$!"!!'((.$'!#"$*6,<%0"*")&4 +%)<*B#6 1.-( ' &               K   ! "    ! " " " $ " " ( , ' # & )!( '*!.$+!%/$$4&.&'4$37%:3#3+&("/ /0 2,,.24!@6"F-4$%&+/=0?;#U=$Z5 K3I1E-?,>-B+?5S,D#4!2&=&>!500. ( #g           ' -+ ! ! ' ( % ' .+ ' ( ' ,/- +( 0 8%5%( # & +#2&.$2&$C.F0$'#*!) $*"'! & *'##%%#$(.(/"&%                              '& ! *!3%'" ,"5'*"# " ("3( .%' 5((1%#                              +    #3%("  # 7('0$$% /%>-6,#" ' 9,"I4=2(4(;-$*#%%.#-" #" &%"                          <$ !  & #    % ,0, #  $ %  !  # ,( # ! "    ! + 3'6*=-$:--$!                                       ' 5, //.0.;?=L%V*$P&=54+ 16@"=!>!C$71525"<&>%E(@'2!+ -0!-!, .!9&>*<+@-:)-"                      F   &   % .1202426984/3O(m54`.!S(F%8 .-B&v?ZU/);#) 0H,"N/'J+S0!E+:&5$2#."4&<+;)>*K2L1>(1"&        - &!                           +     #   $    ! 0032,' % -9< :6'  ( 7D'X3K+ ( A%I+>';&W6=e>c) ! +!8(3&9(F-J-C*;(.$'("'+*  --3 =)+2 <,2&*0?5 K%3#.  %&!!        # % ' ( - $  /;:?0[/3F F!K"Y(`,N&J$Z*L'8 39 "(#-4O &')=*?1M"2-"5(                ?  '   ' &   , 2,-( # -1@D"D!G"L&>!C#R(D#;!C&M*P*T*_/h3"Q+7!;#R-m9$Y0<"F'V0F+9&>'I*]3i:"a8_6S0H-3%$                            E  '   % 3;;5/2:E#G$L&D#A"F'E&@"F$V+c1 U+A"C$S-_4M+: Q,g7"S/@%F)R.]3^5Y3R3C--##  " %"   #   $                         " 0, " * 1<<63.4B @C!G""M&G$@ E"S*R)E$A"V,c2 P-9"="T-W0F(9"?%N,U/X3U5=,'     ! $"                            5               ! ) 3+# ( * ) /13-' /A!; & ) :?#.# 5N+K,5#1 :$F)J,B,2'&                                  -    & + * ) $ % ,23586%Y@%_B&a?$_9!U:"V9!U?#b8X-D*@$4"1"2,( !                         ! % )" '! !                                 !     # $   ! ! ! " $ % % & )# +$'!% (! '! $ " " # "                                            ! # & * 6&4%+! ( ' % $ & *# +$ *# (" &! % '! )" *# )# +$*#(! & $ % # &* %$                                      " $ # " $ # " # $ % (" *" (" (!("(! ' & &)"( %( %!!!$$  !%"%"'%# ! %                         $ !  " & '! $ (" )# '! & (" ,%,%)#&! # & # ! !  !                                  ! #  " & "   $ )# '" $ '! *# *$ (" (# -&0(+%&! "  ! !                    "      $ "   # # ! ! % (" '" $ # '! )# *$)# /(5,0),% (" $ $ &! & % $ # " !                      +             !  !   # % "  # $ % $ & 0(3+.()# #  ! $ "      "                   #  " % + *  *   $ ( $ ! " # & $ !  " % $ # & ( )! '! $ & (" *$ +$ +%0()=) @+H/U5V8?/,% % # $ % &! % # " #                             ( /' # + .) % + 5= 5) -/./20 ) ' .8"9$/ ) * .!0".!, 0#3%1$2&0%3'5*1),% '! % $ # " !                              " " ! # " ! # & ' ,5"2 , + / . % ! ( 5$;'5%1$0$1%/$ /%5(6)/&,$ .&/'0'1).(,% +$ *# (" '! & % $ " ! " !                                  # !  ! # $ # % &! (" & #                       # "  "! # " ! " &! $ # & '! )# *$ (" '! & % & &! (" & $ & % $ # ! # #   !                                            # " ! $ & % '!(#*$+$("+$,&-.'1)1)1*/(-&+% )# *#*#,$2%$0$%.#"5&-7'15&2.!'1#+>*D;)=8';6$<. /4#64#8/ 1/ 0. .2"9:%H;%K5"B4 C3D4 E0=1>3 C0?*4%(&*(2"' $",%$                 ! % *$ -& ,& (" #                              ! " # " ! $ &! )# +% )# '" '! & '! (! )" (" '! & # !                                 ! " # & % ' *# *# +# +$ *# *# +$ -% 0(1)/(-',& ,% -& .'0)/(-&-%.&.&/&-&*$)" )# )" & $ & $ !  ! "                        !   ! " # $ % & &! &! (" )# *$ *$ ,% ,& +% *$ +% ,& *$ (" & $ # # # $ & %#  "                         %             ! ! " # " $ '! *$ ,& .(.',& (# '" (# )$ )# '" % $ # $ # !    !                             ! # # $ % & &! '! '" (" (# ,& .',&,% +% )# '" (" )# *$ *$ +$ (" % & $ !   !                               " # " # $ % '! (# *$ -%.'/(0).'+% )# *$ )$ (" '" &! % &! &! (# *$ )# (# )# *$ (" & &! % # " # !    ! !                      "     ! # $ &! (" )# *$ *# )# *$ *$ (# % $ % &! & % $ % '! (" & % #                              " & &! (" +% -'.'-& *# )! ( & (! )# *$ )# &! % & % $ $ # "                           !  $ (! '! )# ,&,& ,% -% ,# 0$4'1',% )# &! # % % %! % $ !  !               .         ( #     !    " % %   # # $ $ '" +$*# +$ ( ' & # $ *! 3'3(,% (" % # " # $ # $ % '! &! % !     !   "                      " ) "  $ "    !  ! ! # % # " $ (! )# )# &! ' +" -! / 4"9&;)4(+$ '" $ " ! " # $ # " # $ " !                     ,               ) $           & # $ % % ' ) -4#?)=*2'*# % " !  ! " " !               8       $  ! $  # ! ' ( + $ " 4;=920-5AI$H$929E$H&E%F&E(:$( ' /;#?$A%B&D'E(Q.S0=),# & # !    ! " ! " " "   " # "                6     ( ! " " " * '   -6.+ 1=!C$4-;!F&@%6!:#?&9$) $ 7#L*P-G)K+Q-M,@'4"( #      ! " !                           "   $ $ %   &   - 6$.!' ' ( & % # !    ! " # " # # " # # % $ "                            ! # !   ( ( % $ % &! $ " !  ! " " # # # " " # $ & % $ #                                                       ! !                                 ! " ! # % # " " !         $%")(*-(*&'#"  #"                                                 "$%$ "                                                   ! "                                !   !       !                            " ! ! ! " " ! " " ! ! " " ! !                                                                                                                                                                  (           ! * /(                               ! ) ' $ # % * " " ( -+ $ ' !  $ 74#                  # + 2.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/stories/holotzcastle/level020.hlv0000644000175000001440000004043311177007633023223 0ustar jacobusers2default233?BCjD`@@CjDgf?gf?CjD??CjDgf?gf?zCjDgf?gf?CjDgf?gf?fCjDgf?gf?CeDholotz-castle-1.3.14-src/res/stories/holotzcastle/level002.hlv.tga0000644000175000001440000015035711177007633024004 0ustar jacobusers  ,(83:6=9@<@<;7>:>::5623/40?;<8:6<8>:8461A<@<C?B>>::6=994B>:6:5B>EA;79562<7@<83LE'.)43/61B>A=95=9>::6:6>9507284;78462@;84>:>:;7<78396:6406284732.:684:6A=3/,(?;=9-)2/51=9<82/309530+(40;7<873:6:69573)%624/62;77362/+.*2/3/5230/++'-(,)*',)-),((%($*',)*'&#,),),) -*/,.+-)/,1.1.-*'$  (B>EAIEJEIEFBMIMID?C?@<>:QMNJKGJFIEHCHDPLSOSOUQSOTPSOQLIELHLHOJYU\X\WNJD?PL]YLGoe<3.EAQL_[\WEANIJFRNWSQM84MHFCKHJFJGJFIF]YWSGCMIA=JFRNFCHDJG C?D@KFNJYUIED@YUEA1->::SOOKC?EBOKFB94C@RNKHOKRNPLNJOKMI>;KHJFMIOJB>FAIEHDD?D@OKPLJFB=>:@;D@C?@<:7856251@<?;63:6?;D@EAD@;6:5@<>9<7GBLHIED@@;! ! (KGPKUQ]X^YVR^Z_[VRTPOKMIc_^Y[W\X]Y_[VRc^hdc_e`falgkghcYTeac_d_plrnvqd`^Yc^vrfa R.*2VQgbsoto[Wb^`\jfuplhB?_[eajehdZV`[WThdd`ZVgcTPVS`\QM^ZZW[XKGWTa^a]plWTTPa^\W<7HDIFhd[WUP\W_[NJLHPM[W]Yb^\XWSc_WSXSXTZV%QNYU[WVRMIGCYU`\[WURRNQMVQJEA=<8FAC@=:ROTPIDKHPMVSPMIEHDFCD@C?E@WR_[XTPKFA%# %# (b\ `[^Yrmvqe`kfkgb^b]]X]Ysnkfiemisnwrkf|w{vsovq}x˃م}rmȀ{{v~x"午͐rn~yւ~׋싆#fcsp!tpvrnk{~RM|wz{uqlgokea{vjfrmgcgctpienihd_[SOidzuqn~okd`kghdPLYTPLqngchdtp`\XT]Yc^hewsyuwsojfarna]^Zb^kgnia\hcnieaSOOK^[ielhkgc`b^ieUPFB@<SOTPLHc_hc[VTOUPb_]YTQPLPLRNTQXTfbkg`\YVVS., ., (uo!vpxtڌ}xр{ztptopkql؅zz⍈̑Â}ΐВ{!ɖ#Ο֎"Е!)Ʃ!zvǵncuq!tppmoksqwu !ki KG~ vsjgxu!vqqnmitqwtpm~xwq#oi#|w!!!!{v zzfasnWSz{xplrnlhgcql~wsxthdlhhdso}qmpl}{wa][Xc_ol{w}ywstpzwheWRHD_[b^ZWvqyujfeac_ea_[WTYU\Xa]fbkfuqwsnjhefa74 74 (kU#|m z~qyywluh sg ujy("vqy'w%vjZzmkYiPziu\zeT?_GgPeP`IvO c|v!}$VT &vsWTwrts*OO0- zdb liyyqp !db mili \\^^utqpih wsgcje!|w ytzv| jd!oiGD!qn{v~ztpfbqn~yzwtpxsxt}~|xxs mitozzvhcPLb_gcea{w{tornplojfa_[ieokrnplol{xtpmlg:7 :7 eX{r% 'zp{lvkvnto}}~~&|_Y }o"{pt i] XKeX[D[CmQlIrYR3_> b=Y:U;xY<' *"/ "3 %+ 6 &, -!* $+ !)"xj*yi-M@t0~saM|,8JB<0q!ypcp- {x3NK dauqkism|x~|{xzt!ZVe_!sm~smy|qofm`nd_V\V,*"qf uo{{sjaunzx}pzrxsxuq tq !x-nd"zo$'%wohV&wc'sdh^x ~(r!ylunslp-{)~%w{s~t|ysvoD:H>UQji zt!~z}{pvhoai^ ldzz ~v w #~+vlOB q`%oZ$ri}u ^OUF^LS=S3`F]5_BJ(X2U.H#R6Y425       , "1 /.!0"+#3 - "+ %'$%)hR-iU3A)r[4nZ#O>%yi0~o!r=4)5&qa'peyk V?n5$>`;(W=h2}n"woy'|s.SH ]N%oe}p$bXmb m^!eW"[J#bV!bQ]O2#{o|))}rqezvk fZ ul~wvr!t|rxj!r&~x|nlgg"s([QfY|p!"~tsvmWRk`p`aXv!y$nd`W\Wb[pb"w(|%}uwnqkzxrvpE<H?NNms iw$yv~u"~o viqcke~ } .t1iUB1hN-gM(eQr`ZFS6UCJ,G)P+T!O$H M(G :FD$/     2); )-$,- 0 ,+%'("$I03Q63! T@6T;-@&$lW6eV$ubC,YC*^K"YOS!,p_2.(LH*>:YN#p^#^Z{qu,sd3B7#SG&`S k\#VHbQ&`L*UE"K8!YF!lR,F@)i[xp)8z%0p_%tll]$VG#d\}o%xjlarao_&qdkf\Vha{q!yyuvi+}q0REUJl`#%$}{  zo!QHm\#tb#i\x$s"bXTG GFPH TO~p'|%}uvnrjxrrlumF<H>bV mj }fi*{l"y({u$|u vkm[}w~ +3g3aC"=%hG3^E&Q?[H@/C5F*@#AFE!CI!> @G!9 8$6 "&   K;4 3A 3; *: (.'1'*24 &4'+ #. %1#2$ 9!A#*.!P5/\A)^H7"$=#+L,'N6)1QN,x F8A:LB|j,y,t(yo!wn~|iae]nfB8D:|g!y w!)ub#_'_6o6k?j>^[UMrmyu|')2x0WM$`4.2fI2P0+O*H+:5!5:"7=>=;>=99 <1# )@6K4; +@,+$B.4+$$/(-%/#( ' !-J1-> & '/P6A-"mZ8g[!jT: N6->:B7P?YTh<\J3.6'K5'B&'B"%7&!"( #B'+2%-""7# [K0>zl4IXR#^L$IB!M5,N@'TH'QE"M<B?XL K< RB%M? FBlU/yi,wk%g\z+7o`3G;?2$N=)k\-z-w&q$}!})ug(L>VHXRgX kc ug'sd(MB6+ 4& 1*>6g`"u.{n)vj!sjyqtm^VXPaY;1<2t,%~*/f` X0|Q1f2Q-,:#56$/<!5;:<< A;9 :6$7 #0 ) <&$!  $; .;." %! ; 1**.(, ##$$+" &4 +C( +VC2NA:5#/< # M)'+'80M:"OE*J1(% //$   '0$$H4*xjBn]8qNHB#E2';1%8-@7B8"4./'8-H9&A7H:!:4K=#fM2eS+m`%_Syj/z;q]:E2>*"I4(]K-vg2rf(rb'uj'|r)qd(I;L<"NCSKcQ)iS-fR-D6-! *$ 4 3"3.514<8856 39 3"65#&!5 '  !  $   5!   <.3+$"!" ) "5 ).2$d84b(RM-P7P> '*!)#)' '      +]O2jY6}cM4-',"0%!9-$<-$- !(>. 935-6(!R93UD.WF+[M&YJ"n]5g\2OG.)"' 5,?<#jW5`T)^O&lY-d]%cV)B3@.$A2!H<I>"E?!Z@16(! ! 1&VL%l]/hZ*]Q#TI\PYNG=D:J@-$.%}c-v)t)}8o:]J+c90|;#V>*RE!|L8PBJ4->$N-B&2$3!9'='3%51/3 477 1/ - . "/ +5# !!     1'1 %/ &8)*   B*O D LF        #$ <2eFBZG6* !   3$"3"1 @1%N>,QB(O?$IC#UI2A2%&4)YF2SC-K=$dP3SM%NC':,:, 9, 4(D, K1*G,!8/A3(+   1)H6*A2$Q@0P<03,$- 3'8+;2!?2$;'%  :."F<'J<*F9$@6B8>4-$,"4+ IfO*u_3u`,~d;uU>P/0'd 9e7:Z26S.3S"6D5P!85*P(2O0N . I 4O2$  > 03&K8C /Q8H8C1B*7)3$"3!/ &,$   0)'#G02'  E6  D 9S   @:? .              8,               +6$!#%     5("9+"8*"<''   *$ -#   #3*92=2!7.4+/&&&-'!fJ1nW1lT1pW7fF6K,$ 1W)G,;(G./!($9 '6 , 2$,#,%U 6: +,$    E .= (%!/ $5 )@ . 3 *&"5''/ '(8 *6',    >0.=7 ;9"                                  !          !' (!"    BZ:3aF1aF2cD2R5,B# P (2 $(- #)' 6& 0"    " !/""&% !   ( /&+#3 '"$ ' :%7%27+4*L                                               *H*+L4+O4.N/'B#"7*? 5 &-1"!$$)"  &1 &  * &R (     & ,-+/02$2%*/. $&                           P795,# %! >&* '7 (("(   )9,  ' &*     !"             z$ 20) $ "# =!% 6'! 2 %  &                           Q   !    1 (/"   5 +       !                      4! .    ,$- +#    0%                                       '6 B''+) 1'     /(                                                  #:&%G/-L0/Q31a;:wGFOO:&    ' !                                           3$"W<9|TP`]b^`]_]eckkpp % !    '                              !,&$'!.#"B2/Q;8\C?rQMje{ˉΈ́ͅ΁~Ѐ~}.   # !                  40.VOKk`[gZV[NJWHE]LHqZUlgzsxϒ圕噓㕐ߐ݌ۈم & &% % $                 A@!$>"%?$'@&)?(+8&(*!  >>>hiiʿĺ丹럙癔㓏  #/;K!&])/h.6l08n29o3;q5;w8@?GFMGODK}AHzAGzCI|FL}JO|KQrIM_?CK368%'$ +++RRR~~~Ƚ¸霖喑⑍ #   *4?N!'_)0m/7{6>;E@JBLDMENGQISMWQZS\T\U]V_Za]ebielci^cTZqHLU58:$&" ///^__ƻ丹럙癔㓏)  ! -9I$Z%,f*3o/7{4=:C?IBLEPGRHSJTLVNXPYR\U^V_Xa[d^f`iclhpkrmtlrjpbhVZqEHP021 ---_``ɾø졚蛕䖐-   )2<L%\%,i*3u0:5@9E=H?IAMCOFQGRITJULWMXNXQZR]U^W_Yb\e^gbjdlgpjrmtovpwnuip`dPSe<>B')# )))Z[[ƻꝗ昒  &6F!W!)b&/k*4w/:5@8D;G=J?LBNDPEQGSHSIUJULWNWOYP[R\T^W`Xa\d]f`ickemhplrnupwqwqvnsgkZ]wGIM./& ***VWWȾ¸丹럙蚔 1N%b&/r,6}0<4@7B9E;H>J?K?LBNCO DPEQGRHSITKULVMWOYQ[S\U^W`YaZb]e`hbidkgniplrnspurwrxqunpad~KMN/0%000[\\ź霕 %M%q+63>7C8E9G;HK?L@L@LBNCODPDQGRHRITKULVMWNYQ[R[U^V_XaZb]e^gahdjflhnjplrnspurvtxtwpscf}KMK..# >>>hiiǼ靗3`$-2=8D9G:HK?L@LAMANCNDP!FQFRHSITJULVMWMXPZR[S]U^XaYb[d^f`hbiekgmiokqnrptqvtxvzwyqsceyIJI--$ ...SSS~~~ Ⱦø丹럙   $ E!n*44A8F:H;IK?K@LAMBNBNDPEQFQGQHSITKULVMWOXPZQ[T]V_X`Ya[c]e_gahdjflhmjolrnsqvrwvyxzxzrtddzKLN11*  >>>fgg Ĺ젚3  %.6F!a%.~0<6D9F:H;IK?K?LAMBNBNDOEQFQGRHRITJULVMWNXPZRZS\U^X`Ya[c\d^f`gciejgmiolpnsptswuxy{{|uviiTS^;:='&% ...SSS~~~ ŻB  % 1?P&\#,d%0n)4~0<5B8F:G:H;HK?K@L@MBNBNCOEPGQGRHSITJULVLWNXPZQ[S\U^V_X`Zb\d^f`gbiekgminkpmrotruuxxz{|}~~||rqa`zOM\<;B,*)   >>>fgg Ƽ  (<O%^#-j(3v,8/<2?3A6C8E9G:G:H;H;J=J>K=K?K@LALANCO)EPFQGRHSITJUKVLVNXPYQZS\U]V_X`Za[c]e_fahdjelhnjolqosruuxwzz|}Ӏ҂΁}{urifXVdDBE0.)///SSS~~~ ǽ·   4O%e%0u+70=3@3B5C6E7E7E9G:G:H:H;J=J>K3>K@LALBNCOCOEPFQGQHRITJTKVLUMWOYQZS\T]V_XaYb\c]e_eagdiekgmiolqorrutwwzz|}Ӏօ׆؉Պ̇|sn`\eHEC1/+  +++EEEjkk Ⱦ¸丹  " +/4BZ!*r+60>3@4C6D6D7E7F8F8F9G:G:G;HK >K?LAMBNCNCOEPFQFQGRITJTLV*MWNYPZR[T\U^X_Ya\b]d_eagbhdjglinlqnrqtuwxyz{}Ӂքو܍ߐߓݕՒĉyse`lQMWD@F852*(# ###222FFFVWWkll ɿø丹  2J#X *]#,a$.j(2x-92?4C6D6E7E7E8F7F8F9F9G9G:G;H;HK@L@MBNCNDOEPFQGRGRHSJULULVMWNXPYRZS\U^W`Ya[b\d^dafbhdjflinkonrqutwvyz{}~ԁքوݎ䖒盕矙䠚ۜʕzupxd^bUPXNKVPLURMUUQTUTTUU UVVWXXabbwxx ɿø丹  6U(n(4z.:~/<0>0?4A4C6E7EG7E8F8E8F9F8G9G:H;H;HK@L@MANBNDOEPFQFRGRHSITLULVMWNXPYR[S\U^W_X`[a\c]d`fbgdiekhmkonqptsvvyzz|~Ӏքىݍߑ䖒蝖좜걧᯦Ԫ¢ ɿù丹  (>Y"+r*60>3A4B4C5C6E6E7E6E7F6E8F8F9G:H;HJ9?L@L@MANBNCOEPFQGRGRHSITKULVLWNXPYR[S\U^W_X`[a\c^d`fagciekhmjonqptsvvxyz|~Ӏքوݍߐ㖑蝖좛úŻȽ ɿø丹  3M&d&0v-91@3A6C5D6D5E6E7E7E7F8F8F9G:G:H;HK?K@L@MAMBNCODPFQGQGRHSITKULV*MWOYQZR[T]V^X`Y`[b]c_eafbhejgmjolpprsuvxyz|}Ҁքوۋߐ㖒蜖롚ź ɿø丹  (>X"+o+6~0>3A5C6D5D6E6D7D6E6E6E7F7F8F8F9F9G:G:H;HJ>K?K?K@MANBNCOEPEQFQGRHRITJTLV*MWOYQZQ[T]V^W_Y`[b\c^dafbhejglimlporruuxyz||փوۋߐ║暕렚ĺ Ⱦ¸丹   3M&c&1v.:3@5D6D6E7D7E7E6E7E7E6E7F7F8F9G8F8F9G:G:H;H;IJ>K>K@LAMBNCOEP1FQGRHRITJTLULVMWOYQYR[T\V^W_X`[b]c^dafbgejgkhmkporrtuwxyz|~Ղ؇ۋߐ┑暕韙烈Ĺʿ ǽ·  " ,3@ X",o,7~1?4B6E8F7F7E7F7F7E 7E7F7E6F8F8F8G8F9F:G:G :H;H;IJ?K?L@L@MANCOEPFQGR.ITJTLULVMVOXQYRZT\U]X^X_[a\b^dafbgdifkhmkonqrttwwyz{~~Ղ؆ۊޏ┐晕韙øɾ Ƽ  1I$W!+^%/i(4w/;4A7E8F9G9G9G7F9F8F7E7F8F7F8F9G9G9F:G:G:F;H;H;I<=J=J>K?K@K?LALBNCNCOEPFQFRGRHSJTKULVMWNXPYRZT\U]W^W_Ya\b^d_eagchekhlkonqqssvvyzz}~Ԃׅډݍᒎ嘓螘Ƚ Ż  5T )k)5y0<~2?4B6D9G;I;H:H;H:H9H9G9G8F8F7F8G8G9G9F9G9G;H;H;IK>K?L@LALAMCNCODOEPFQHS.JTKULVMWMXPYQZS\U]V^W_Ya[b\c_eafcgejhlkomqossuvxyz}~Ԁօوݍ䗓蜗죝ƻ ù젚,,,-.3@X!+p+73@6D8E9G:HJ>K?L@LALAMCNCOEPEPFQGQHRITKUKULVNXOXQZR[T\U^V_Y`[a\b_caebgeihkinlporrtuwxz||Ԁփه܋䗑眖롛蘒źʿ Ⱦ¸丹럙X)X*X *Z + ^#-f'2u-:2@7E:H;I=J>K?L?M?L>L>KK?L?L@LAMBNCODOEPFPGQHRISJTKTLUMVOWPYRZS[U]V^X_[`\b^c_ebgdifkimlnnqqttvxy{|Ղ؆ۋߏ┐晕韙øɽƼ靗w)8w+9w+8z,:z-;|/=~1?4B7E:HLK?L@L?LAMANBODOEPEQFQHQHSJTJTLUMVNWPYRZS[U]V^X_Z`\b^c_e`fchfkgljnnpqstvwxz{}}ԁׅۉގ┏噓韗ǻĺ霕->.>/>0>0A2B3C5D6D9G;I=K@MCOEQGSHTGREQBO?M>L=J;I;H:H:G9G8F8G9G8G9G9F:G:G:G;H;HK?L@L?LAMCODOEPEQGQ0HSJTKTLULVNWOXQYS[U]V^X^X`[b\c_e`fcheigkjmlpprsuvxxy||Ԁׄو݌䗒蛖롛易ĹʿȾ¸丹럙蚔/?0@0A1B3C5D6E8F:H=K@MCPGSKVNYPZNZLXIUFRCP@M>JJ?K@L?LAMANBNDODPEQFQGQHSISJTKULVNWOXPYR[T\V]V^X_[a\c^c`ebgdigkimlporrtuwxyz{ւن܋ߐ㕐晔ꟙ¶ȼŻꝗ旒.>0@0A2A4B6E9G;I>LANFRMXS][d]f[dT_OZITEQBO?L=JJ>K@L@L8AMBNDODOEQFPFQGRHSJTKULVMWOXPYR[T\U]V^X_Z`\a^c_d`fchfjilkomqqstvwxy{}}Ղ׆ۉގⓎ䗒蝗죜ŹɿȾ¸졚蛕䖐.?/?0@1A2B4C6E7E9HK=JJ>K?L?L@LAMBNCNDOEPFQFQGQHSITJTKUMVNWPYQZRZU\V]X_Z_Za]b^d`fbgejhljnmopssuvwxy|}ׄو݌㕑盖롛易¶ǼŻ丹럙癔㓏.>.?/@0A2B4C5E7F:HK=J;H;HQ:H9G9G8F8G7F8F8F9G8F9G:G:H;H;HJ>K?K?L@LAMBMCNDODPEPFQGQHRJSJTKUMVNWOXQYR[T\U]X^Y_Za\b^c`ebgeigkimlooqrstvwxz{~ւ؆ۊߎⓏ嘓鞘ùȾǽ¸霖喑⑍.>/@0?1A2B4C6E7F9GK?K?L@LAMBNCOEPEPFQ3HRJSJTKTKUMWOWPYRZT\U\V]X_Y`[a]c_dbfdhfjhlknmpqssuuwyz}}ԁׄڈ݌㕑盖롛易Żɿú丹럙癔㓏!.=/?0@1A1B4C6E7F9HKJ>K?KAM:BNDODOEPEQFQHRHSITKTLUMWOWPXQZT[T\U]X^Y_[a\b^d_ebgdigkjmloprrttvxy|{~ւن܊ߏⓏ嘓鞗죜·ƼŻ졚霕喑⑍ߌ.>/?0@0@1A3C5C7F8GKJ>K?K?L@LAMBNCNDODPFPFQGQHSJTJTKUMVNWOXQYRZT\U]W^X_Z`[b]c_eafchfjimlonqqssuvwzz}}Ԁ׃ڈ݌㕑暔ꟘøǽƼ·ꝗ昒㓏݉.>/?0@1A3C5C6E7F:I=KANFRLXS]Zc]fZdT^NYITEQBN?LJ?K?K@L@MANCN;DOEOFQGQHRISJTKULUMWOWPXQZT\U\V]W^X`[a\b_c`ebgdigkjmmoorrutvxx{|~~ցمۊߎᒎ䖒蛕롚履ùȾǽø丹럙蚔䕐ᐍތۈ.>/?0@1A3B4C6E6F9HJ>K?K?LAMCNDOEPFQFQHR7JTJTKUMVOWPXQZR[S\U\V]X_Y_[a]b_ebfdigkimlompqrttuwyz|}Ԁ׃ڈ݋ߏⓏ晓鞗죛úȾǽù졚霖旒⒍ߎ܉م.>.?/?0@1@2B3C4D6E8G:HKKj?K@LAMBMCNCNDOEOFQGQGRHSISJTLUMWOXPYQZR[T\V]W^Y_[a\b^dafdheihkjmmooqrttvwx{{~~ց؅ۈݍ㕐暓鞘úȾǽù靗昒㓏݋چ׃.=/? 0@1A2B3C5D7F8G:IK?LANBOAN>K=K=I;H:H8G9F8F7F8F7E7E7F7E7F7E7E8F9F9G:G:H;H;IK?K@L@LAMANCNDODOEPGQGRHRISJTKULVNWOXQYRZS[U]V^X_[`[a^c_ebgdigkhlknmpprrtuvxy||~ւن܊ލᒍ䖐盕ꠘùǼƼøꞗ癔䔏ᐌތۈ؃ր,=.=.>/?0@1@2A3B4C6E6F9G:H;IK?L >L=K=JK?L@L@MBNBNCNDPEQGR^HSJSKTKUMVOWPXPYR[U\V]W^Y_[a]c_dafdgeigjjllnoqqssuvxzz}}Ԁ׃ه܊ߎⓎ䗑蛕롚¸ƻʿɿƻ·럙蚔䕐⑍ߌ܉مց}},=.>.>/?0@0@2B3C4C5E6E8F:G;IK>K?L@LAMBNCNCODOEPFPGQGRISJSKTLVOWOXPYR[T[U]V]X_Z`[a^c_ebgdhfjhljnmporqstvwx{{~~Հׄڈ݋ߏⓎ嘒蛕렚ĺȽǽĺ럙蚔喑⑍ߎ݉مׂ~}{{,<-=.> /@0@0@1A2B3C4C5D7E8F9G:H9G:H9G8F8F7F7E6E7E6E7E6E6E7E6E6D7E7F8F9F8G:G:G;HJ>K?K@LALBMBNCN>EPEPFPGQHRJSKTLVNVOXQYQZS[U\U\W^Y_[a\b_dafbgdhgjhlknmpprrtvwxy|{}~ւ؅ڈ݌ߏ┎嘒蚕렚¸ƻɾȾƻ¸럙蚔喑⒎ߎ݊چ׃~|{yy,=,=->.>/?/@0@2A1A3B4C5D6E6E7F8F7F8F6F6E6E6D6E5D6D6D6E6D5D6D7E6E6D7E7E8E8F9F9G:H;HJ?K@L@LBMBNCNDOEPFQ:HRISJTLUMVOWPXPYR[T[U\V]X_Z`[a^c_dafcgeigkjllonqqssuvxyz||~}ւنۈ݌┎嗒蚕Ꟙøƻɾɾƻøꞗ蚔喑⒎݊ۇ؃ր}{zywv+=-<-=.> .?/?0?0@1A2B3B3C5C5D6E6E6D6E6E6D5C5D6D5C6D5D6D6D 7D6D7E8E7F9F9E8G9G:G;HHK?L@LALBMBMCMDOEOFPFPGQISJSJTLVNVOXPXRZS[T\V\W^Y_Za\b^c_dafchejhljnmpoqqstvvxzz{|Ԁ}ւ؅ۈ݌ߏ⒎䖑皕鞘좛烈¸źǼɾɾǼź¸丹졚靗癔䕐⑍ߎ݊ۇ؃ր~|zywwtt+<,=->.>.?.>/@0@0@0A2A3B4B4C4C5D4D5D5D5C5D5C4D5C5D4D5D5D6D7E7E8F9F9G:G;H;HK?K?L@LBMAMCN->.>.?/?0@1A2A3B2B3B3C4B4C4C5C5D5C5C4C5D5D5D6D5D6D6D7D7E8FL9F9G:H;H:HJ>K?L@LAMAMBMBNDODPEPFQGQISJSKTLVNVNWPXQYRZT[V\W^X^Z`\a\b^d`fbgeigkilknmporrttvwwzy}{Ԁ~ւ؅ڈ݋ߍᑍ㔐易蛕Ꞙ좛烈·¸øùø¸·丹졚ꝗ蚔旒㓏ᐌߌ݉چ؃ց~}{zxwuurspq*<,<,=,>->.?/?0?0@1A2A2B3B3B2B3C4C3B3B4C2B4B4C3B4C5C4C4C5C5D5D5D5C6C6D7D7E8F 9F9G:G:H:H;GJ>K?K?LALALCNEP8FPFQHRJSJTLUMVNVNWPYRZSZT[U\W]Y_Z`[a^c_d`fcgejgkjmlompprqttuxwzy|zԀ}ւׄن܊ތⓎ䖑晓靖렚烈丹럙霕昒䕐⒎ތ܉م׃ց~|{yxwvursopno*;+<,<,=-=->.>.?/?/?1@1A1A2A2B2A3B2B3B2B3B4B4C3C4C4D4C5C6D7D7E6E7E8F9F9G:G:H;HJ>K?L@LAMBMCNDOEP7FQGQISISKTLVMVNWPXQYRZTZU[V]W^X_Z`\b^c`eafchejhljmlonpqrrstuwwyx{z~}Ձ~׃نۉ݌ߏᑍ㔐嗒皕靗렚좛咽丹졚럙霖癔喑㓏ᐍߎ݋ۈم׃Հ~}{zywwuurspqoolm*;*:+;,<,=->-=.>/?1@1A1A2A 2@1A3A2B2A2B3B4B3B3B4B4C5D4C4C5D6D7D6E7E8F9F 9G:G:G;HJ>J?K?L@LALAMCN:DODOFPFQGRISJSLULVMWOWPXQYSZT[U[V]W^Y_Z`\a^d`ebfchejhljnkonppqqstuvwyx{z}|Ԁ~ց؄ڇ܊ތ⒎㔐嗒皕蜖ꞗ렙咽丹렙ꝗ蛕癔喑㓏⑍ތ܉ڇ؄ց}|{zywwuurspqnolmjl);*;*;+<+<,=,<,=->.=.>/>0@1@0@1@1A2@1@2A2A3B3A3B3B4C4C5C5C6D5D7D7E7E8F9F8F:G:H;H?L@LAMBMCNDOCOEPEPGQHRJSKTKULUNVPWQYQYSZTZU\U]W^Y_[a\b^d_ebgchfjhkjnlnnppqrstuvvxx{z}|~}ց׃نۈ݊ߍ⒎㔐䖑易蛔靕鞗렙졚丹젚럙靗霕蚔旒䕐㓏⑍ߌ݊ۈن׃ց~}|{yywwttrsoqnolmilhj*;*;+;+<,=,=->.>.>.?/?0@1@0@0@1@1@2A3A3B3B4C3B4B4C5C5C5D5C6D7E7E8F 8F9F:G:H;HJ>K?L@KALAMCNDODOFP6GRISJSKTLUMVNVOXPXQZSZT[U\W]W^Y`[a\b^d`fbgchfjhljmlnmooqrsttvvxwzy{z}|~ց؄نۉ݊ތᑍⓎ䕏䖐昒皔蚔蜕靖靗ꞗꟗ렙 럙ꞗꝗ靗霖蛕蚔癔旒䖐䔏⒎ᐌތ݊ۉن؄ց~}{{yyxvvttqrpqmokljlhjeh):*;*;+;+<,=,=-=-=.>.>/>/?0@1@0@1@0@1@1@2A2B2A3A3B3A3B4C4C5C4B5C5D6D7E7E8F8F9F:G:H;H;IJ?K?K?LAMBMCN6DOEPFPGQGRISJSKTLUMVNWOXPYQZSYT[U\V^X^Y`[a]b_d`fbgchfigkillnmoopqsrsutvvxxzz||~}Հ~ׂ؄نۈ܊݌ߎᑌ⒍㔎䕏䖐嗑昒晒昒嗑䖐䕏㔎⒍ᑌߎ݌܊ۈن؄ׂՀ~~}|{yywwuutsqroplnkmjkgjehcg):):*;*;*<+<+<+;,<,=,=-=->.>/?.?/?/?0?1@1@0@2A 2A2B3B2A2B3B4C4B4B3B4C5D5D6D7E7E8F8F9F:G:H;HJ?K@KALAMBN6CNDOEOFQGQIRJSJSKTLUMVNWOXQYQYSZT[U\W^X^Y`[a^c^d`fbgcgeihkikjmlooqqqrrttuvwwyxzz||~}Հ~ց׃مڇۉ݊݌ߍߏᑍ⒍Ⓨ⒍ᑍߎߍ݌݊ۉڇن׃ցՀ~~}|{zyyxvvttrspqopmnjlhkgiehcfae):):);*;*<+<,<,=-=/>.>.>/?.?/?/?0@0?0@1@2@2A3B3A3B4B3B3B4B5C5C6D7E7E8E9F:G:H;HJ>K?K@LAMBMBN6DODOFPFPHRIRJSJSKTLVMVOWOXPYQYSZT[U]W^Y_Z`\b]c_d`fbfcgeigkhkjmlonpoqprqsttvvwxyyzz||~}~ց׃؄نڇۈۉ݊݋݌ތߍߎߍތ݌݋݊ۉۈڇن؄׃ց~~}|{zyyxwwuutsqropmolnjlhkgiehbfae`c(:):*;*;*;+<,<,<,=,=-=->.>.>.=/?.?/?/>/?0@1@1A2A1@2A3B3B4B4B5C5C6D6D7E8E8F9F:G:H;HJ>K@KALAMAMBNCNDNEOFPGQHRIRISKTKUMVNV(OXQYQYRZT[U]W^Y_Z`[a]b^d`ebecgeigihkimlmmoopoqprrttuuvwwyxzz{{}|~~ցׂ׃؄ننڇۈۉۈڇنن؄׃ׂց~}}{{zzyyxwvuustrrpqopmnkmjkhjfiegcfae_c]b):):*;):*;);*<+<+<,<+<,=-=.>.?.>.>/?0>0?0?1@0@0@1A1A2A2A2B2B2A3A3B4B4C5C5D6D6D7E8F9F:G:H:G;HK?K@KAL3BMBMCNDOEOFPFQGQIRISKTKULUMVNWOXQYRYSZT\U]W^Y^Y`[a\b^c`eafcgdheigkikjmlomonopqqrrstuuvvwwxyyzz||}|~}~Հ~ցׂ׃׃׃ׂցՀ~}~}}{|{zyyywwvvuuttrrpqopmolmjlhkgiehcgbe`d_b]b\`(:):):):);*;*:+;,<,=-=-=.=.>.>.?/?0?/?1?1@1A2A2A3B4B3B3B5B5C5D6D6D7E8F9F:G:G;H)=I=J=J>K>K@K@LALBLCMDNDOEPFPFQHRISJSKTKULUMVNWOXQYRYSZT\U]W^X^Y`[a\b^c_d`ebgcgehfihkjm knmonpoqprrttttuvvwwwxyyzz{z||}|~}}~}}{|{{zzyyxwwwwvuttssrrpqopmolnjlikhjfiegbfae`d^b]a\`Z_(9):);):);):*;);+;+;+<+<,<+<,=-=-=.>->/>0?/?0?0?1@2A1A2A2A3B3B4B5C4C5C5D6D7E8F9F:G:G;H J>J@J@K@LALBMCMCNDOEPGQHRISKTLVOWOXQYRYSZT[U]V^X^Y_[`[a^c_c`ebfcgdheigjhkimjmknlonpoqprrssttuuvvwwwwwyyyxzy{y{y{z{yzyyyyxwwwvvvuuttssqrqroqopmolnjlikhjgiehcgbf`d_c^b\a[`Y_Y^(9'9(:(9):(:):);):*;*;+;+<,<,=-=->.>.>.=.>/>/?/?0?0?1@1A2A2A3B4B4C5C5C5D6D7E8E9F9G:G;HI>J?K@K@K AMBMCMDOEODOFPFQHRHSISJTKTLVOWOWPYRYSZT[U\W^X^Y^Z`[a^b^c`dafbgcgeigkhkiljmkmmnmonpoqpqqsrsrttutuuuuvvvwwvvvuvuuuttttrsrrqrpqopnomnlmjljkhjgiehcgcfae`d_c]a\`[_Y_X]W\'8(9(:):);*;);*;+;+<,<,=-<,<,=.>->.>/>/?0>0?0?1@1A2@2A3A3B4B4C5C6D6E8F9F9G:G;HI>J?J@K@KALAMAMCNDNDODPFPFQHRISJTKTLVLVOWOWPYQYSZT[U\W\W]Y^Z`[`\b^c^d`eafbgcgdieigkhkhkiljmknmonpopoqpqqrqsrsrtsttsssrsrrqrqqopopmnlmkmjlhkhjgiehdgcfae`d_c^b\a[`Z_Y^X]W\U[&8'9(9'9':':(:):):*;+<*<+<,<,<-<->.>->.>/=/?/?0?1@2A2A3A3B3A3B4B4B4C5D6D7E7E8F9F :G;G;HI>J?J?K@KALAMAMCNDOEPFPFQGRISIRJTLVMVOWOWPYQYSZS[U\ W]W^Y_[`\a^b^c`d`eafbgcgdigjfjgkhkjljmkmlnlomoopnpoqpqoqpqopopoomomnlnkmjljlikhjgjfiehcgcfbe`d`c^b]a\`[_Y^X]W]U[T[SY'8(9'9(9(9):):*:*;+;+<,< ,<,=-=->.>/>.?.>/>.>/?0?1@2@2A3A3B3B4B4C5C6D7E7E8E9F:G;G;HJ?K?KALAMCM*CNDOEOEPFQGRHRIRJSKTLVMVNWOWPXPYRZSZT[U\W]X^Y_Z`[a\b^b^c`d_eafbgbgchdieififjhkhkiljljmkmlnmolnmnlmlnlmkmjljljkhjhjgjfiehegcgbfae`d`c^b]a\`[_Z_Y^X]V\U[T[SZSY&8'9(8(9(9(:):)9):*:*;);*;);+;+<,<-=.>.>/>0?1@2@1@2A3A3A3B4B4C5C6D7D7E8E9F:G:G;HJ?J?K@KALALBMBNCNDOEP!FQHRHRIRJTKTKUMVNVOWPXPYRYSZT[T\V\W]X^Y_Z`[a\b^c]c_d_e`eafbgcgchdhehfihjhkilikjkjljkikhkhjhjgifiehegcgcfbeae`d_c^b]a[`[`Z_X^W]W\U[U[TZSZSYQX'8'9(9'9'8(9'9(:(:):(:):*;*;+;+<+;+<,<-=-<-=-=.>/>/?0?0@0?1@1@2@2A3A2A3A4B4C4C5C6D 7D7E8E8F9F:G:G:HJ>J?K@KAL$BMBNCNDODPFOFQHQHRIRJTKTLUMVNVNWPXPXQXSYSZT[U\W\W]Y^Y_Z`\a\b]b]c]c_d`eafbgbfcgcgdgegeififjgifiehehdgcgcfbeae`d_c_c]b\a\`[_Z_Y_X]W]W\U[UZTZRYQXOV~&8'8'9(9(:):):);*;);*;+;+;+<,<,<,=-=.=.>.>/?0?0@0?0@1@1?2@2A2A3A3B4B4C5C5D6D6C 7D7E8E8F9F:G:G;HJ&?K?K@KALBMBNCMDOEOFPEPGQHRIRJSKTLTLVLVNVOWPXQXRYRZT[U\U\V]X^Y^Y_Z`[a[a\b]b]c^d_e`eaebfcfbgcgdgdhcgcgcfbfbeae`d_c^b ]a\a\`[_Y^X^X]W]W\U[U[SZSYQXPWOVNV&8'8&8'9'8(8(:):):):):);*;*:*;+;+<,<,;,=-=.>.>/>0?/?0?0@1?2@2A2A3A4B4C4B5C5C6D6D7E6E8F8F:F:G;GJ?K@K@LALBMBNCNDOEOEPFPFPHRIRJRJTKTLULTNVOWPXQXRYSZT[U\U\W]X^Y_Y_[`[a[a\b]c]c^d_d_d`d`eaebfae`d`c_c^b]b\a\`[_Z_Y_Y^X^X]W\V\U[TZSYRYQXPWOVNUMU~%7&8'8&8'9(9(9):(:):*;*:*;+;+<,;,=-=.>->.>/>/?/>/?0?0@1@1@2A2A 3A3B4C5C4C5C5C6D6D7E8E8E9F:G:G;G;H.>/>/>/?0?0@0?1@1@2A2A3A3B4B5C4C5C6D6D6E8E8E8F9F:G:G:G;G;HJ?K@K@LALBMBNCMDOCOEPFPFQHQHRIRJSKTLULUNVNVOWPXQXRYRZSZT[U\U\V\W]W^X^X_X_Z`Za[a\b\a[a\b\a\b\a\`[`Z`Z_Y_Y^X^X]W]W\V\U[UZTZSZSYQXPWOVMULTLTJSJS~%7&8%8&8'9(9'9'9'9(9):):):*:*;*;+;+<,=-=,=-=.>.>/>/?0?0?1@0?1A2A1A3A3B4B5C5C6D6D7E8F8F9F9F:G:G;H.>/>/?0>0?/?1@2A2A3A2B4C3C4B5C6D6D7E7F8E9F9F:G;G;HJ?K?K@LALBMBNCNDODOEPFPFQHQHRIRISJSKTLTLUNUNVOWPXQXRYRZSZS[T\U\V]W]X]X^X_X^X_X^X^W]W\V\U\U\U[T[SZSYQXPWOVNUMULTLSKSJSIRHQHQTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/stories/holotzcastle/level001.hlv.tga0000644000175000001440000042232011177007633023773 0ustar jacobusers     ,(,(,(B<$ 9584735184<861:6407362=9<;7=9<8B>:5943.A=>:>:411/:6B>>:?;1/31:6?;B>3/85,,=973-,6495A=52621-400/6263..!@<2/<81-:6733/40/,5162@<2/B><8=940//=94/=94/62<8 A=:620.,30.,<8=9<8;721<8;7=92.A=951-?;2.;7618452;71-@<.,A==942:6>:;7>?;2-=9734040>:849551<8;784=9@<2.1->:?;1-6240<8@<7362;7621-53=9>:84>:<8=9<8,,!>983B>=9;75084:6>:7421 5122 51943/5195732-:6:695=9:6@<15184=9@<?;=9;7:6?;51@<622.=9<8?;@<=93/3/2-722.=9:6:6;7501-3/>:73:6:66295<89440=9<8>:4051:6=9<8>:=8=92-62>:9562B>>:3.62>:83:6=9@<@<;7>:>::5623/40?;<8:6<8>:8461A<@<C?B>>::6=994B>:6:5B>EA;79562<7@<83LE'.)43/61B>A=95=9>::6:6>9507284;78462@;84>:>:;7<78396:6406284732.:684:6A=3/,(?;=9-)2/51=9<82/309530+(40;7<873:6:69573)%624/62;77362/+.*2/3/5230/++'-(,)*',)-),((%($*',)*'&#,),),) -*/,.+-)/,1.1.-*'$ XP0B>C?ID>:IEIEJF>:>:@<HDOKFBHDMIHDTPD@GCB>HDQMLHB@A@?=OKDBQM:9CAA=IEMJ95JG<<HDA=43FDJFLH:: DA22!=;CBKGKH/3)GF;=%EB97 PLIEFBHD66!97EAKGDADD!KGNJD@@=IED@OKFBGBNJB?MJC?55 ><<:@=NJPLJGC?>?!BB!D@IEC?JEJFB=OK:5HDFBEA>=@>97QM@?A@BA<<PLOKA>A?B?CB 89&OKIEB>B=GC@<KFGBGCFBLGMIVR><>>!QMKF:5B><8NJRNE@FBLHGC<7BASOGELHRNJGOKLH=<OKKGTPGBEAPLGBFCTPLJBB!>:GG!D@@<>:>9HDA=FBKGKGA<GCC>RNJFHCD@KGRNOKFBGBJFJFHDRNB>@<HCPLQMRNGB:5EAEAIE94KGB>@<MIJE<895OK>:D@EAB=FBMIC?=9GBJFOKEA<7JFHDFANIGCOKC>D?B>OKD@HDLHPL84?:HDB>EAIEJEIEFBMIMID?C?@<>:QMNJKGJFIEHCHDPLSOSOUQSOTPSOQLIELHLHOJYU\X\WNJD?PL]YLGoe<3.EAQL_[\WEANIJFRNWSQM84MHFCKHJFJGJFIF]YWSGCMIA=JFRNFCHDJG C?D@KFNJYUIED@YUEA1->::SOOKC?EBOKFB94C@RNKHOKRNPLNJOKMI>;KHJFMIOJB>FAIEHDD?D@OKPLJFB=>:@;D@C?@<:7856251@<?;63:6?;D@EAD@;6:5@<>9<7GBLHIED@@;! nd=RNOKVRFA\XZVa]FBRMID^YXTZVPLZVUQ]YNJXTRNTPZUa]SPHGJHa]RPgcGFSQQMSP[X:9\XML[WDAGFVTNL]YLL HG7:'TRYXSONM=@(SR TOYUJHGFOMIHTPIHLJNMLLb^a]RPHGSOLK 9A2YUVRLHQM`\UP[WTOTOVQ_[RNhdLKPP"d`SOE?"TOID^Z\XWSZV]YNJIDJI UTYW_[ZW\YQP_[XUYUVR`\VRVR_[TPIJ%`^ST!OKWV!MIHDRMHD_[VQXT`\UQXTRNQLfbYUSNSOUPb^_[VRUQZVa\]X\XPLJF[Vc_fba]UPQLZVZUWSNIVRQLNJc_VQHCNJ\XPLOKTOZVWSXSJFD@SN\X^ZOJKFWSZVSOc_PKXTWRXSWR\XRNWS^Y^ZC?TOTOKGPKUQ]X^YVR^Z_[VRTPOKMIc_^Y[W\X]Y_[VRc^hdc_e`falgkghcYTeac_d_plrnvqd`^Yc^vrfa R.*2VQgbsoto[Wb^`\jfuplhB?_[eajehdZV`[WThdd`ZVgcTPVS`\QM^ZZW[XKGWTa^a]plWTTPa^\W<7HDIFhd[WUP\W_[NJLHPM[W]Yb^\XWSc_WSXSXTZV%QNYU[WVRMIGCYU`\[WURRNQMVQJEA=<8FAC@=:ROTPIDKHPMVSPMIEHDFCD@C?E@WR_[XTPKFA%# xId`]XeaXShdjeyuZV_Z![Vied`idd`lh`\plidb]d``\e`rndaPP!LN$jiVV kiIJ%ZY b__^mj<=!nk]\b_KIIJ"gdRPgebb OO"FI&^][\#ea^]PT(hgPV0QU)SV)olVRON!ieFG$QPWVfcSS"fi&XX"eba]eaa\fbgcd__Y!lhXThdVTFH"VV"`_YWqngeliXX KR1V\-ZZ"]Yfblhnj^YmiPJ gbgb]ZXXca^[b_SR]\UV!USedd`[[!WX"dbWY%KQ1\[^[QN^\ rn`\kgb\idjfkgd`zvPQ$WZ%de!ecWQ#b\RMpllg[Wdc hfSRWW"XW!cadbjfhfniVY(lhge]Yfdkh``!fbjhTX+PS(hi#hfgg"\XljYTQL c^]Xqmjee_plfbhbfbjfqm^Zlh^Yc^rnpkgc_Zhdsnnjpk[VWSb^plplsoe_!ZUkgpklh_Zb]\W\Xso`\TOd_ie[V\Wd_jegblhTOKGidjemhd_VPfbgbgcsnc_lhgcfahcoke`a]okniVQhd^Zb\ `[^Yrmvqe`kfkgb^b]]X]Ysnkfiemisnwrkf|w{vsovq}x˃م}rmȀ{{v~x"午͐rn~yւ~׋싆#fcsp!tpvrnk{~RM|wz{uqlgokea{vjfrmgcgctpienihd_[SOidzuqn~okd`kghdPLYTPLqngchdtp`\XT]Yc^hewsyuwsojfarna]^Zb^kgnia\hcnieaSOOK^[ielhkgc`b^ieUPFB@<SOTPLHc_hc[VTOUPb_]YTQPLPLRNTQXTfbkg`\YVVS., Ulhnjtofbsoyt˂~ojxr!ni|xqmrnuq}ytozztprnmhyt΁}vrZX!XX!oo"_`%{zTW'`b&vsnmutAB"cc"pnSR\]"xvWUiifh%WX"HN-ooef"tqjj fj)mn"T^6]b-ae)uu ]Zac$olNQ'RS#kisqW[+kq-ff!~zoktonj{vsomiqk$wridjgXXPR$gg!hg^^!xwnmzwdd S\5hm-bf+ojto~z{pk|\V$|w|wpmnmtrsqmjWX#hgWY'ddutqmbd'ef%ol`a$Zb2fg"pm`_lm&zxqk!{vsm#{v{xtnieg$bd%kn)ik&U[0^a)JN)vvgh!eg#yvcc![^)`b&eh'll!}{y}zhj'yugk,aa"gi&}} fj,ol|| ]c0W^1kr0xwxy!mioj]W tpniȆ~y{vɀ{vq }x!zuс|ׂ~ok}xwrvq݅z{plws|{vԂ} gbe`rn~yՁ}솂{v!a\xt~yql}xpkpk狇mhlgplsoniniȁ}{u#xtza[ ]Y~so{wytpkwrwq"|{ok{vvqsnxs҆lgrn{׀|b]zu upuo!vpxtڌ}xр{ztptopkql؅zz⍈̑}ΐВ{!ɖ#Ο֎"Е!)Ʃ!zvǵncuq!tppmoksqwu !ki KG~ vsjgxu!vqqnmitqwtpm~xwq#oi#|w!!!!{v zzfasnWSz{xplrnlhgcql~wsxthdlhhdso}qmpl}{wa][Xc_ol{w}ywstpzwheWRHD_[b^ZWvqyujfeac_ea_[WTYU\Xa]fbkfuqwsnjhefa74 asjypvg#rjywf%zpqa*pc&ys|tzyr{!{}|vtm }v lc$ohqi%⏉kfsp"xv{yEF&st"tt!bafg#~|^^op#vx#bd#LS,~~rs#vuwv {)ux'bk7ai4or($nkci,usae)gh$wvbf*y0vt$t$zd&l%zml$wh`-vn!{vjj ad$wx rrtt!|{ }|Sa>x},hm1yi$y}~t lM2~%v&~ytt~utsshi$op!ce%ij#dj/uw%tqpr#^h:xx!yxonmr/"|j'}i*s`){k%}}vll*nq&ty,su&[b0nr*JR1%|{ yz"nn!qu+ko'jp1st"z|'||!mw8ss#iq5%{-rt$ ms2en4nz;$|}pcP${oyj 鐈x xwsf!y!yw 鎉{us!~uun&{m {f'p&yd$qY&~pv!{k*kW&w$q"{i%}n!{nxj te wivh|q~rq[!v\!|wnX qms }sp {h$}m"{rxh$s sk|n"x}n"|m#|!pc~{j\ m$vikU#|m z~qyywluh sg ujy("vqy'w%vjZzmkYiPziu\zeT?_GgPeP`IvO c|v!}$VT &vsWTwrts*OO0- zdb liyyqp !db mili \\^^utqpih wsgcje!|w ytzv| jd!oiGD!qn{v~ztpfbqn~yzwtpxsxt}~|xxs mitozzvhcPLb_gcea{w{tornplojfa_[ieokrnplol{xtpmlg:7 af(o$znt$h)uj+헍*#+" !)}*(#u"~+'|2朔yq&厇!})fW/%|{"pq!||0(ro)wy&&vw"cf8'/y|&*y}-wAjq8y{,0yviq4lq,ot+mo'0{{+&y&v=~#,$~gG,{"#}*su" **), "WeC}3v|0{$#$'y"}`=0& zz gk'uw##* y}9{*wx$yz#an? {|"nx9*~4|9u7}&(''&~3/4/pt83RX4#0 }*}|"+w{+oz;x}+(-y={.|8%*( ;wx9<*u`!u%p'朎 +w!}$y.県.狁"鎁!埚|z!z$,)?w!"w-&v,m6z*-))9l22/}3}"!p%q#u p x~fc#{Z$|x!x x"p*t&yzw xrs.s(%}m#ub$w2reX{r% 'zp{lvkvnto}}~~&|_Y }o"{pt i] XKeX[D[CmQlIrYR3_> b=Y:U;xY<' *"/ "3 %+ 6 &, -!* $+ !)"xj*yi-M@t0~saM|,8JB<0q!ypcp- {x3NK dauqkism|x~|{xzt!ZVe_!sm~smy|qofm`nd_V\V,*"qf uo{{sjaunzx}pzrxsxuq tq !x-nd"zo$'%wohV&wc'sdh^x ~(r!ylunslp-{)~%w{s~t|ysvoH>UZ{&win_g|q^o`!,{t)}!vp'up"'%~t)~,{z5陕 rh臄~ (YL0& xtp{,!jh%wz(jr vx#bf7wv*el w}x|+v|=V^+ei"0yv^h'ai#dl!gk!fo(i x3y-yl%|m5*vmv{)ss!(qr , y}Wd?z1v|/|{{#'rf{wtP11%uuRYtw")}zsv4{*lngi`n2{uwht,){/x2v8~$'$&&}.~+}+*kn3su+%yi0~o!r=4)5&qa'peyk V?n5$>`;(W=h2}n"woy'|s.SH ]N%oe}p$bXmb m^!eW"[J#bV!bQ]O2#{o|))}rqezvk fZ ul~wvr!t|rxj!r&~x|nlgg"s([QfY|p!"~tsvmWRk`p`aXv!y$nd`W\Wb[pb"w(|%}uwnqkzxrvpH?|MRxk#}yk[M wd tlcPhW|w*le)~# }z li}"f]''zu(|.mjxn2ꚓ!md 셂zv !(E;)易%"~w yr"|1vn^Zyx$kr wx$be8afrt&elqyx{*uz:YN#p^#^Z{qu,sd3B7#SG&`S k\#VHbQ&`L*UE"K8!YF!lR,F@)i[xp)8z%0p_%tll]$VG#d\}o%xjlarao_&qdkf\Vha{q!yyuvi+}q0REUJl`#%$}{  zo!QHm\#tb#i\x$s"bXTG GFPH TO~p'|%}uvnrjxrrlumH>}kFtIva'&r[Mv vd yo eTlW)7eU1.x up%um'WN%..1 @G!9 8$6 "&   K;4 3A 3; *: (.'1'*24 &4'+ #. %1#2$ 9!A#*.!P5/\A)^H7"$=#+L,'N6)1QN,x F8A:LB|j,y,t(yo!wn~|iae]nfD:lX>v\Es\(w.v-hZy {b~gWt]"7<_J v94%yt ~v!1zi7PB)6>FDRH6g[Gx<~t2({6?<-A85*:Fk[.ZD(r:2:{@PW[a/su/mo4;I'8-IQns8{x0ch+Zalr)~os }Wa'pu%{}7<^]0vP7})z%e,q1CA fE!kc'{y)(|x+GLNTzz5/w{(MZEXg7x}?0 7=HCYFQ;)w2{){y!zz!X[vr*ih.hm 4?ENO^Auy5ww*vtmw7y}'z~,;`8iO0Y=h.,u]&v].m)[V*W\(BM/V\)S[1Q]/21ks(x|A1z-0cm9x6fqb:#sQ,i0~S5w[3o$m2vX1r6m.'u'kj{p{sh nYhu\ jWuS#c+d+vv#p^v%x te-(zb-~a,wW+WFn"y0y'gL!}mzw|g!y w!)ub#_'_6o6k?j>^[UMrmyu|')2x0WM$`4.2fI2P0+O*H+:5!5:"7=>=;>=99 <1# )@6K4; +@,+$B.4+$$/(-%/#( ' !-J1-> & '/P6A-"mZ8g[!jT: N6->:B7P?YTh<\J3.6'K5'B&'B"%7&!"( #B'+2%-""7# [K0>zl4IXR#^L$IB!M5,N@'TH'QE"M<B?XL K< RB%M? FBlU/yi,wk%g\z+7o`3G;?2$N=)k\-z-w&q$}!})ug(L>VHXRgX kc ug'sd(MB6+ 4& 1*>6g`"u.{n)vj!sjyqtm^VXPaY<2\D6dM@kT2o.~8xh ud}ceLo(BI\D&h?xO7B}r:ab0f[O?FKg5tr-st.hg0@E>Dtt7tv3sw(IUBK\;qyD<-EE98J= I5%r3{l-tt{~"kl"GLrp-rn7ns @H4A&@RJmw?gk2mo"mu3vz.~%#3CzS>dG@rW@~g3u3pR-v^5b_(CN5FM-1=2OW.QZ0BP2*2\g1s{H=:2Q-,:#56$/<!5;:<< A;9 :6$7 #0 ) <&$!  $; .;." %! ; 1**.(, ##$$+" &4 +C( +VC2NA:5#/< # M)'+'80M:"OE*J1(% //$   '0$$H4*xjBn]8qNHB#E2';1%8-@7B8"4./'8-H9&A7H:!:4K=#fM2eS+m`%_Syj/z;q]:E2>*"I4(]K-vg2rf(rb'uj'|r)qd(I;L<"NCSKcQ)iS-fR-D6-! *$ 4d,x=~l-un#o'{ bHs0NUP6/hP?zj<3}7GbU2C)1n]md0{t>y@L1Yc>ep^FvgC:wl1JtaO9+MqeHLy@yWDiF6ri.9K_c_p`;-|yKP-,+:)N[Gps?W`3ej'JU_f4%xz1MY(_g*gldpMHu9U~Ta;4yDFN/#ze1qf&de$jn&WY%4:dc/rn<*|ML2E38LN_iBU\7ce%[g:r{6x-%}3~P}RBt4FTC|T7c=dF/MH/KU6AM5?H01=2:G:GS;AP7)SEU5~DGW*'U$-f8?ULVb<7GCGC<9PK"jE{)zY,|b0t3e^s[}g ~f%|hS!wXxS$z$fBc?#tR0vU/zjud'dNq]u)wb)sQ5q5A>aG$|E>7*Y6^Bg6m81dGp*n6%$48cZ#bE&{L;wX;z^7Y=RHW@ nS+bR$wX/b4f^+iN8G*$ O+I!0>4 3"3.514<8856 39 3"65#&!5 '  !  $   5!   <.3+$"!" ) "5 ).2$d84b(RM-P7P> '*!)#)' '      +]O2jY6}cM4-',"0%!9-$<-$- !(>. 935-6(!R93UD.WF+[M&YJ"n]5g\2OG.)"' 5,?<#jW5`T)^O&lY-d]%cV)B3@.$A2!H<I>"E?!Z@16(! ! 1&VL%l]/hZ*]Q#TI\PYNG=D:J@.%;%M(c7={]6y=~j3!z.n.j"Y:!i7&UbE(9`G@rYKygkE=J=#5:emK_iEZeKUbQ,>97*#VIk]-^b5OT<*7'#0,\`=V[:W`39IJ5IE_kNxNkzEu~`mwb2/4A0 `P/dCSU*SZ+EK+& YX1pm>3VV(?@2HSR]DKU=Z`-KY?kvI;9F;.=A6C;-??7JG7KJ5KD-D8RSYmdS|TR^nUcjSlNFg4AtH;zLDq;9q;CFH7XN>Z;$FDYP sb#^H"@rW99!%!?Eyc5T,\?i4{73;."]<$a>1_=0  '%`[*yR:ECO9b&,q?Au@BNGK!#WG/iKQNp(NJ6TIBKVFnuEyF-c9N85=1"P:%X:2K3.D?!_jk?}H>d ~W)W*jQ]SpSvZ&cmO!~$PHT&i+l: \:#lK2jK,kZ"nT(`K^Jt*lY'mS8k=V>&963&+$ JAXO'QL%# qE(_5}c-v)t)}8o:]J+c90|;#V>*RE!|L8PBJ4->$N-B&2$3!9'='3%51/3 477 1/ - . "/ +5# !!     1'1 %/ &8)*   B*O D LF        #$ <2eFBZG6* !   3$"3"1 @1%N>,QB(O?$IC#UI2A2%&4)YF2SC-K=$dP3SM%NC':,:, 9, W^J.=B/F,BN'?Q/IY/JZ$CZ5W*LhSjnbkyb[pVKs@e48nC;k9G[)8c0;h*sY/Z:29R3)Z3/j::e584:K,jK=D=';7jJ7F--X)I5H?;750{ M&",)4)+U29G)*O18J)1E;*ID XTLIqT%tR*|P5Y>lPN?qY'mP"iJ!m(T=kG(V+V#X)%gE/dB1YB%gQ*M9YB!ub,gP(cJ6oW=h-C-)6'8R6(`F6cF5 DNnW _S!vd0vc*q;|d;]@-/+F/$yL?fC9d;9h+>4(D, K1*G,!8/A3(+   1)H6*A2$Q@0P<03,$- 3'8+;2!?2$;'%  :."F<'J<*F9$@6B8>4-$,"4+ R2 5"L%,g@DjAvU8{^+l/tL4pK+U5$_8~5eh! =>$HhIUx`DfS1yhEzaB91 9T,CnI[uQZwRh;^G$dZ?icDVv]LgRE{]kX=f!Pb4rp`Hre/nd:[`,1yz@,>4:G3GQDPWI-: !79GHDOIDQM6GM &A$B.@H@IECF?0?@15BBAKD8C<9HI 7HIYWepVPgVkxkSgi 3] 7b(?\0=wBB6<7:F5+56 (CF6``E}~&8-;1D6N;Y9Z>^?`8^ 6aAi?]ozl{jUqR{>Fs/>h+Db,7l<>n7HL;J;`6Il=Bl+Ff!T<4Z=5mA:p?6TP@3 A /L%.~FC2 e43V>48B.DP+q'EW+1j-DM.f7=PL40rN7U'9T!2b)9h-=V&.5 %/"WBU:,:'4+$3"I+/S74GBLgn@6hC(kC/zR1F6X?!WLcLdhD&|Y,I(L@dL)R!T((a>/a=,S=%aM*@+L3eQ,R>(\E1bJ;Z/9Z3<*I+,V=6F6l Ax<8JGfO*u_3u`,~d;uU>P/0'd 9e7:Z26S.3S"6D5P!85*P(2O0N . I 4O2$  > 03&K8C /Q8H8C1B*7)3$"3!/ &,$   0)'#G02'  E6  D 9S   @:? .              8,               +6$!#%     5("9+"8*"<''   *$ -#   #3*92=2!7.4+/&&&-'9 %:)@)Z&3y[GqU:mQ2|c0Z96\=.@"*jT=t=[Z0F2;Y6ErYPXE6|bO~eZ6 6$2<B]?Tg=fd4u0Y? jU'a[:bqNU]>EhF\R&T6PW#nuLrXN*ZPFsN@vYHuMP& ' >-D8EE1=:6C7.2--"3<-=B.=B"6D%C&F5G(#4? (B4FMTb]G_XVji=Wd 7a L;KL@OC5LU9OYOTDeS&SR/NRB"22$7+9$8:#A/T 3^ 6` 4\ 3] 8d=l?p2He\LYGbPh)?`<_>g)Bc0FQA> ==:MAV DV!>dTgM95 L<%L/!n@A\%79(-4 Q41_.79A|.@X ->$R%*P#5@'6$9!0!O +S+1=*%<%&; I(F$1 >$^/?DN1+c:7B)<#E+E') #') 80'F4F;* E#19.%)&t5MV/+d;2j>1j53{5B~B=@9U=!kK*I*!H9N9)[(7K+&Z>0N7&R:)29! O8/S9(]?7N7/7"S$8& 3"E-,:4$^ >l0@:7fJ1nW1lT1pW7fF6K,$ 1W)G,;(G./!($9 '6 , 2$,#,%U 6: +,$    E .= (%!/ $5 )@ . 3 *&"5''/ '(8 *6',    >0.=7 ;9"                                  !          !' (!"   8#?D(D,oC@oQ?iG.wS8]@5aC2E.hO8o@a|qDBM"?D!CcEZY;W&4. P F0()ZzM*`a6ZP1R^6Z@Y2 UZd2w[U?F@.L>Bj4io2gdOOv;N*XW/UgQQ J^/=rDHoBHh6?:.+"C#8E-PTD[UB[f(Ha 6` 8e;j7c.!=-C,A 5.*6JTIW`MS]4diU2CI$A&E-C%:F0DM4M^7Ra;IJ?L@EPL9GH8669 <$C/W 5` 7a 4] 4^ 7do 2_X8~GDRGSI_&:I 0J.J9J9B9; 59 9>:= :81A8_JU!B_-;+ L-05(4!(f>n72Fv(:m 7K$, F$B$6 5),%3"= #G,H+; 1I ,y%?7("Q%.4 1!c>/ ,,0)1.#*,';)%#4)!4t^"FQ.9U-5M0U+3u8Ak)8;7N5*J##4(c$.E !, :G'&G0$<%!%&:* I7,E4&9'& 6!7/% 3 0 !+k)K'%Z:3aF1aF2cD2R5,B# P (2 $(- #)' 2 6& 0"    " !/""&% !   ( /&+#3 '"$ ' :%7%27+4*L                                               6#+ $3%6&[28sLGcF2eC:]>6U(6A3cC>w\AdSe\8:P$7( ES5EG,G]DN\5L7D#9-2 2171 7ZLcT(XN,UM!X2UE e1)(H'5M/C"&  nEe!' M@G+AY4CX0FT%@C;<< +! :+>(>6!2=MTI7B:Y`BT[L !5(=-=$6)**,.13:%E#D <765!<#A#@!=#A )E(5 !94EGS\PCQ%C,P 3Z 3[ 4] 5^ 8e=l@q=o0%OD /^'m37r=Au=9?6 <@=> 6?>PE`LH 1&*(' U.>m 8'2!-020-,#31&C+F +B$I&5  :6!# 0 [: '#"$#! $)/6 !  u_UB?/9(@,T"1j-@i/6"  X#9 ++ 16+$! )4!1( ' A( " ,$`P H*+L4+O4.N/'B#"7*? 5 &-1"!$$)"  &1 &  * &R (     & ,-+/02$2%*/. $&                           x3 #0(69"J0`96Q50e=8Q",E%2%X62kMB[WOI+9 Q%:)AA?F*CI,IJ#J/4#$+!!,&"9'ANiU^EaA R2 Qj  ELF-E&3_6b))-9'0,Z{(MLCQ4H7H3>;QIM>^WaY"9;&;8DD1>BHQG?KE20791('+/.14;!? >;;7!='D&G(H#A!<)?3D6U 4` 4] 3Z 5_ 9g 7c 3[-S&F"@"?!7E>MM>NC9HJ+A#A!?'G(J .R 7b9a;X4K4H(A:#B&E&H+O +O -P 5` 9f>nBu:mI.P !L&G(^ /e)2`/3U3? &< 1804259> DPWF SQ^Q ]P ^L Tfajbo h #0 d2X&C&/1*,#+!*$/!. 3/#6#/&4'A %<(<": 1.&$W6E.C - &$" "+)5 ." n]G :2).&9%A)U"/f9T'> %*+ ' ' % ! "      !  8#  * Z!Q795,# %! >&* E'7 (("(   )9,  ' &*     !"             9/ "2 )#,*.&N%/W33L+54"5$3; 'T?6mFL83)'51G!4' 8:<=93;2 49 D$; #  ""'- 0 />UmEeJfx3@!Q%5^4lC ##1X%9W'F7;8E3.,672'%-+-//4 >!>"A!?!>%H,O ,S'G!;!<=&F 0W 3\ 2Z 3Z 6a 8f 7b *N(I&G$C.H+@K.AI$9H $C&F&D)J*L 0V 9g 7c3\ *O'H&E#B!@&H'I%E(J ,O 0Wo@r)-YD J &N $H E "K $Q.M'J+=*:)806 1=FC X +22-/C: 0%P+ $*+-/ /-!((-0-- 65121+ I(M*6 9 &J/. "!!!" $#+ dP=32 !-!)0#? (4@ *. #$" #         )-''SK$ 20) $ "# =!% 6'! 2 %  &                   .        ", !) "/ '0 !/1%C$/A(2 / 3 6R+-\1A&  5(B#9:#8-.(4).:@F SRQ%-*d(0DW5<-Y1h)2 _(_q(2O&,O!<+.@4QC]H4:#2 2)2 */>1?);50+,23-'&+,+,,29$C'F'H ,P 1Y +M%B!;!='F *O 1Y 2Y 2Z 4^ 8c 8g /T(J$C$D )I1L2G-H&F)I*K )J ,O 6a;h 8f 5a 0W *M(JT)K /T)L )J -Q 1X 8d?p>n2>B %G$I$H#E !F$A#B !? $:": $6 +- *;@DM  !"# (" &!$ij&"" #,*+%&'%!))'+ 0.)1'**   B *,+ 8&2(!!# "( 4-p@8-#('+ !,0"7 #"C +6 &(# !   # 7 ' $ MC   !    1 (/"   5 +       !                      G) !, $# %(0)*!3 - .#1 <6 8F-> . @Q'@!9#4&:'74 01.,1C HBL$',/8$( "Kb1C%+ '/'3v@r"uM sS=&YI`DK =G=- / &%++(,/7H7=5C.49760)),*+,-,)),39&G+P .U 1Y 1Z /T )I"?!=&E(J 0U 1Z 0V 3Z 6a 7d/V(J(K +N .T&H&H(I)K(J *M /U;h;j 9f 6c 6` /V ,Q ,P .U 2\ /T 0U 3\ 5`@sG~$-W= A"B A = = @!< "= ;$6 #6 '2 '* -DI, > ' 0 , - )" ) %+SR "V<*+()+ ''&)#*'%,)+*/$ H-.&0 8'!  !"&?7' '!+!%/ %"3': '. !  7,9   ! .    ,$- +#    0%                                       '6 B''<' !,'$ !' # $' +"" 62 7 . 1/ ? 0 )6>H7B?G))+1(11%=>JEMK32(.G[,>%/$#u:.!7V-TB EI$OuJ**T5K"I$"m'QC6 '!) '-0+01&,/&{)f'973/*&.'*-.,)'-4"= +M .T 1W 2Z 0X)J&E"?&F(I *M 0X 0Y 0V 3\ -R )L (I +N 1X 2\ 4] )L)K)L(I(I +O 2Y 8 ; "7 96 !1 "0 +",-FD< G! -& $('"YWL2 *+)*% ("(%''&,('**" #E 0, - 6 !7(  $ $#G9'&$  $'; * 0!< -4 '* 3&=!) 1'     /(                                                  #:&%G/-L0/Q31a;:wGFOOVI% !$ ' './"/ "058 6 3 +/$=5      ;8>4^XRQ"71+0$ P-a%.a:hY0MU.X&!g/Pm"Y .$;3386 6   Q'QZR1#/941,*)&%*./*&16#? ,Q 0W 2Z 1Z)M )J$A&G(J&G +P 0X /U -S&F'G (I ,O 3Z 2[ 5_,Q ,Q&H'G (I ,P 7c=n :h;i =n>o=m :h;i:hoBtG~H&Bb 7U3C %< '; 7 37 3 3 / 0!. "&,,+6<L*6  ) % $!)# FI.%P2 "#""& "!&# F*9!/*"  MD'% %" $ - #+"  K  % -! ;&&    ' !                                           3$"W<9|TP`]b^`]_]eckkpp7% "* ( %" &# #-, 0-1 43. 0H1!&"%"%!) "$ > 9+$: 8eX\^s$pZ!d  " c7n 7:J,WQ+S=8w/Dc:4!M. / )7&<618!z9}e)jb(em2l SNF%FC7-)183,,.+%$"#%,-*,77"? ,P 1Z /S*M)L)J(J'G)M,R,P'G#@$C(H -R 1Y 1Y 7b 0X +L%C(G (I /T ;i;j 7c =n>nn>oAsG~I,W O 1Y .I(G+@ (9 (: '1 #. . , ( $ "+$1 2r+ < - $!(  !&)  $&&" "$#   / C ,*!$)  ' #!#6+   "   5% % !    '                              !,&$'!.#"B2/Q;8\C?rQMje{ˉΈ́ͅ΁~Ѐ~}6% ) &%!&# ! $" -)+0/7 0 2+/(?1%'   <3/$ :1;4>>84AENP%20U.WR'I?,J7 # #  T92[ +%'23<:a3cN'S3$<<%:?&GK+H1 .87E/@.N.%,82,,/,'"!%+-*177'F ,R+O+N*O(K(K(J%E&F)M)K%D ;!<&F -R .S 4_ 4_ -R (G$C (I)K 1X:h 8e ;jo?p=AtG~I8d, )#.!C .2%+- + ' % # " 4,7 8* 7 +  44& # M3! #    #; 5$.$     ) %  .   # !                  40.VOKk`[gZV[NJWHE]LHqZUlgzsxϒ圕噓㕐ߐ݌ۈم5% " !# #  ( "*'1 2 . 2 3 14.+ 7#@':18/50/ /.*5/& !# , %* - !1,-.=6@<G 2#! 2$ A,)%  + $( !       = :$"&!   %      & &% % $                 A@, !\,NHCc4h09.62 9261&14#04190426/=-;(>'K/#3/.,+&$)0(+27#A &F(L ,N,N,Q(H#C; ;#D!=85:*L .S 2Y 1Z'I">$C'F *K .S 4_ 4] 6ay 7a1% L *\'JjE #X(L h>j7$6.-1901.5151-054&5#6(6$7'Q*]0 '1+)+' &*)+06#A (H +M(J)M (I%F!<7 ;">54!='I*L .R"@:$B%B *L /R 4^ 5_ 6a 9e@qG~IH>p1$HN99/ ' & %! <-,"!  $ $ %%(   " !" $ #_/ 3  7 5 #()*))'#!+ 0$)         &                          !+,"       000YZZƻ졚霕喑⑍ߌ%$ (&!"'( '& ++( * / 0 *$*'$" " %( #' #(#(*+&+ 6'=6N86& 6.#P   % +*=7G)D(4, 0+(/-3--)410+2%3 '2":G'M + 1/ .,*+%!('-((/8#? (J'G'H+O'G"@ <7!=77$B$A%D%C(H!=7">(G +M .R 3] 6a;g?rBv?p $?#>#O: !5 / )'%$#   %   $"                   ,4778:A#P'+^.4^/5R*/E$'>!$>"%?$'@&)?(+8&(*!  >>>hiiʿĺ丹럙癔㓏M$)!#!"## , 2) 2 * / %(,) & %  #   ' " $ " '# ( " $*'"+ /#;1@9rHI/L : +6%_8a@=(2(.,%(,',) ,%* /* 2 D(= +&) " ,.*%"#&),&(18%C%F$C(H)J#B"@9 ?:8#?"@"?#A!@15!<*K +N ,O 9f?pAt0Y, D/1&' ' ,%."0 #)   6'! !  &2#."   " . ,  "3 F'R+V,V,X,W,U+N(E%>"< ; ;!92 *"        %       #/;K!&])/h.6l08n29o3;q5;w8@?GFMGODK}AHzAGzCI|FL}JO|KQrIM_?CK368%'$ +++RRR~~~Ƚ¸霖喑⑍##)  $$  ) * ),+ $"+$ %      $"  ! ## !# &'".%C0a D9 (7.?6^C"$+  $*E)D112+4*>%:.@7:01*'=#> & (.  .+*'$!%**&*4!<!@$@!<(J$B"?<6<: >!>98:0 :!< +M .U 3]As -S $  =., !* +*,"2&;* +  0 &! %)#(*& !   + A$U+a-f/f/h0g0f/c/]-X+W+W+T*M'B#94 . &               #   *4?N!'_)0m/7{6>;E@JBLDMENGQISMWQZS\T\U]V_Za]ebielci^cTZqHLU58:$&" ///^__ƻ丹럙癔㓏?#+$( !"' $% " ! -!" %"         "# # ! $$ $ # + ? 1- 7 .*%- * !/&C:4 6 -(+**#>4-$+' & 9 $=$$ > *  *)$(+')/!>:97%C&G!?:39 < =!;6180!;'H 0X 1Y 8eAt  . !$ /$$# % # $ .$0!''#$ "#&))1$'%&))#  ) ;!P)_-h/j0k1l 1m1n 2m2k1i0j2k1i1c/],V*S(J%? 72 + !                   )  ! -9I$Z%,f*3o/7{4=:C?IBLEPGRHSJTLVNXPYR\U^V_Xa[d^f`iclhpkrmtlrjpbhVZqEHP021 ---_``ɾø졚蛕䖐 !& "%#%,# # & $ $%           #"&* *( !/ 3&*"#&%*/4 .. *   *$!&))))' # % ( + ". $. %* #' "' ! *$! !*.+,56:56#A ;873:: <5375$B -S -S 2Y :i 9    + "* % " " # $,  (  "%-(=4SLB:C6B')# )))Z[[ƻꝗ昒!$    "!!%           )%! &""(( $/*%'' 4 -( '    $') ,"-#/%/%/$-&.&/)3,5.707151303/  ## #*-.31441!="@:5125959 >$A*M ,P -Q 2[0Y #%   ! &+"  ' '!+1$1+50MHjeG?3(0&-$)!$#5,>7/%      - E"Z*e-j0l 1m 2n!2o!3o"3p"4q#5q"4r#4s#5s#6s#5r#5o"4l!2i 1g0_-L%5"        &6F!W!)b&/k*4w/:5@8D;G=J?LBNDPEQGSHSIUJULWNWOYP[R\T^W`Xa\d]f`ickemhplrnupwqwqvnsgkZ]wGIM./& ***VWWȾ¸丹럙蚔"!       !%%$!   " #$!+6)$%$*  0 %" 3# "(+!/"1#2%4'5)6)6+5-7/8 3;"6=$;>&>@(A?+C>*B>'?=&;'& ##"%*--0.408&E<510386 =!?*N ,O -Q /U 3]"!#/ !    15 )  +"#7,H@5/83b_~}D>%(-(0.84IC=6.&(      % 9Q'a-i/k 1k!1l 1m!2n"3o!3p"4p#4q#5r#5r$5s$6t$6s$6 t$6s$5r$5q$4m"3b-N%;0, + #   1N%b&/r,6}0<4@7B9E;H>J?K?LBNCO DPEQGRHSITKULVMWOYQ[S\U^W`YaZb]e`hbidkgniplrnspurwrxqunpad~KMN/0%000[\\ź霕           "% & & %  ""&+ ! $  "' %*!. 0!2"3"5%5&6'7*9!-9#0;$3=(8?->A2EC8NF@VGB[GAWF:OC2GA.?A)9A'6))&%),/..4 9%E$B;57758!?"@+O .T 0W 2Y$D8!/ $ !   !#%4 #0,"+' #:2@9( -&QNonFA&-(2176IHrrPL     ( 8K$[*g.j0k!1l 2m!3n"3o#4p$5q$5r$5s%7t%6s%6s%7t&7t%6 r$6n"3d.Z+S'P%K#@,   %M%q+63>7C8E9G;HK?L@L@LBNCODPDQGRHRITKULVMWNYQ[R[U^V_XaZb]e^gahdjflhnjplrnspurvtxtwpscf}KMK..# >>>hiiǼ靗c        " !  " $ # ! " *!' '(!"  "'+.!0 24!4"5$7'8)9 +9#-;&0<)6?.<@4ED=QHKbO\ySfP]yKLcG>RE5GC.>B)8+$ "-(&$).315"@(L+O'F!?I75:"@"B)J 0W 5^ 3\2,C"< 3- , ,+% ,/%, 1$ (.$/'*",&2,?:.( ! <8NLA;& -*<=II`a}VV*' "   ! / ?O%Z*b-i0j 1l 2l!2l!3l"2n!2n"4o#4o$4p$5q$5q%6r%6r%7s&6s&7t&7u&7r#6o#5m"3k"2j"1f /\*I!/  3`$-2=8D9G:HK?L@LAMANCNDP!FQFRHSITJULVMWMXPZR[S]U^XaYb[d^f`hbiekgmiokqnrptqvtxvzwyqsceyIJI--$ ...SSS~~~Ⱦø丹럙           !" #  ' !" '+.1 2 4!5"5#7&: '9!*:!*;%.=(3>+7@1@B8JGEZO^zc}dQ^{JG\G:KD1@C+:C(6,$ &-)"$.25 9">*K.U /U%D#@618"?&H(J 0W 6`-QC%I#F#C"@!?><7*'/$1'- !  ())## $ 3/NK\\ECDAKJEB8472)$ '# GEst__A>DA/'  % 3EV'^*d.g/j!0k!2 l!3m!2m#3n"3o$4o$5p%6p$5q$6q%6r%6s&6t&7t'8s&8t'8t&7t&8u&7 s$6t%6s%6r%5m"3a-L#7+ %     $ E!n*44A8F:H;IK?K@LAMBNBNDPEQFQGQHSITKULVMWOXPZQ[T]V_X`Ya[c]e_gahdjflhmjolrnsqvrwvyxzxzrtddzKLN11*  >>>fggĹ젚                ! "  !! &+.0234"5"6$9 &>&'>()<$+<(.>)3>,8A1AC9LHH_Si}}UhKIaG:MD2BC+;C(7C&3'($#)34<$B(G*L-R*J#@6/:%F*P,P 1W 6`."9M&L$L#K$K#M#M#K!F#8-+,#6000 728363<::8,( )% 42HIRTHF?=?>64,) +' ! 20 KJ[Z``VVBB73 3, / /=L"Y)a-f.g/h0j!2k!1k"2l!2l"3m#3n$4o%5p&6q&6r&6r%6r'7s'7t(8t'8t(8t'8t'7u'8t'8u'7u'8u&7 s%5o"3d/Y)P%J">*  3  %.6F!a%.~0<6D9F:H;IK?K?LAMBNBNDOEQFQGRHRITJULVMWNXPZRZS\U^X`Ya[c\d^f`gciejgmiolpnsptswuxy{{|uviiTS^;:='&% ...SSS~~~ Ż               !!      ! %*.0135!7!5!7$<#&D/'E/)='*=(-=(2>+7@1?C8JGEZO^zc}dQ^{JG\G9LE0@D+:C(6C&3C#1)((',3 <#B$C'G(J*M#B:48 )J 0V 0V 3Z4]>(M&M$N%O%P%S$S #P #M%J*I2F5NBfa]YFB@=@>LJRRLM@@LLUWQTVXUVDD?@KKPO@@ 64 =< 55 ))  " .8DS$\(b-e.h 0i!1j!1k!2l"2l"3m#3n$4o%5p&6p%6p&7r&7r'7r(8s(9t(8s(9t)9t(9t(8u(8t'8u'8u%7 t$6q#5n"3k!2h 0]*H!. B  % 1?P&\#,d%0n)4~0<5B8F:G:H;HK?K@L@MBNBNCOEPGQGRHSITJULVLWNXPZQ[S\U^V_X`Zb\d^f`gbiekgminkpmrotruuxxz{|}~~||rqa`zOM\<;B,*)   >>>fgg Ƽ%         !!!  > $ # # '+.003448 !9!"9#=%&D.'A+);#+;$-='1?,6?/=B6ED>RJNeP_zUiQ_zKMdH@SE5GD.>C+9C(6C&3C#0C". ..++)4%C!@!>$C)M%F!;7 : +O ,Q +N 1X4]M%N%)P&R%V#%U"#S $Y,"iG!s]gUna}nfE=>;NMiinocdLMPRXZSTkn{~UWLMnqpsnqTV76 !'! 4+=)Q3T(!Y %b *e -f-g0 h 0i!0j!1k"1k"2l#2l"3m#4m$4m%5o&6p'7q'7r(8r(9s)8t)9t*:t*9t)8u)9t'8t(8u(8u'8 u&7v&7u%6u$6t$6s#5m"3`,K"6"   (<O%^#-j(3v,8/<2?3A6C8E9G:G:H;H;J=J>K=K?K@LALANCO)EPFQGRHSITJUKVLVNXPYQZS\U]V_X`Za[c]e_fahdjelhnjolqosruuxwzz|}Ӏ҂΁}{urifXVdDBE0.)///SSS~~~ ǽ·          !!  G !   $ -6"5!,./02246!8!:" :#": #>'%>&';"):#*?*-C.0@.4@-:A2AC8HF?QHF[JI_IG[G@RF7ID2BC-K3>K@LALBNCOCOEPFQGQHRITJTKVLUMWOYQZS\T]V_XaYb\c]e_eagdiekgmiolqorrutwwzz|}Ӏօ׆؉Պ̇|sn`\eHEC1/+  +++EEEjkk Ⱦ¸丹                !     " " #$ $$%%'('*5!C0;(//012357%8#6 9!!B+#M:%G2'H2(F1*G2+E2.@+1>*6A/;F8?G;DG'I (H%F+L -Q -S .Q 3\ 1X/(N%M$P$U %_2$iC#f;%lF$zf og^UfR{lyheKn]}wuqji\\NLEDNLppz|YUZU}oiNY4[/"c1%g.)g%+d+f -e/g0f/h /h 0i 1i"1j"2k#3k$3l#4m%4m&4n&6o&7o'7p(8p(7q)8q*8s+:s,;u,;s,;t,;u,;t+:u+:u*:u):u)8u):u(9u&8v(7v'8v&7v%7v&7w&7u%6r#4l"1`,L#8- ( %    " +/4BZ!*r+60>3@4C6D6D7E7F8F8F9G:G:G;HK >K?LAMBNCNCOEPFQFQGRITJTLV*MWNYPZR[T\U^X_Ya\b]d_eagbhdjglinlqnrqtuwxyz{}Ӂքو܍ߐߓݕՒĉyse`lQMWD@F852*(# ###222FFFVWWkll ɿø丹           ! "!!"$$&%%&(*+,4#3"/8%|2/15 5!236":(8"5!:"!P>#bS%TB&P>(M:)G2*@),<'/?*3J85RC7L<:E6?D5AC1@C0>C-$iK!fD"hE"dOUNXPmW w]"s] p]}qzy{y|^\IHKK\[cc_[YNi[ !"d#vL%h4'd+)d&*c!+e!,d-e-e/f/g /h 0h!1h 1i"2j"3k#3l#3k$4m&4m&5n&6o'7o(7p)8q)8q+9r,:q,;s-;s.K@L@MBNCNDOEPFQGRGRHSJULULVMWNXPYRZS\U^W`Ya[b\d^dafbhdjflinkonrqutwvyz{}~ԁքوݎ䖒盕矙䠚ۜʕzupxd^bUPXNKVPLURMUUQTUTTUU UVVWXXabbwxx ɿø丹            !"""""#$%&'&*',11/027"127"A-?-7$437%@/@-9" B- _S#md$UD%F0'G2'E0)>(+C.-K8/Q?0UE3O=5G48B.:A-9B,8A*8B)6B&4A$1B#0C#.C!,FD+D)D)3",-,,-/55#B'G'G /W 4^ 7b;h :f 5` +O +K/L#-;=0(f;%iC#bB!_< f>#aETEXMnYpV"vb !nogg!h_hcnmged\xn"|#s$|X%wR$pD%h4(j2)m4+q8*i*+g%,h%,f -d.e/f/g /h 0g 1i"1j"2 k#3k#4k%4m&5n&5n'6o(8o)8p*9p*:q,;q.;s/=s.=t0>t0="u0>u/>u.=u-=u.0?4A4C6E7EG7E8F8E8F9F8G9G:H;H;HK@L@MANBNDOEPFQFRGRHSITLULVMWNXPYR[S\U^W_X`[a\c]d`fbgdiekhmkonqptsvvyzz|~Ӏքىݍߑ䖒蝖좜걧᯦Ԫ¢ ɿù丹       !""$$$%%'''?*.0.-7$TEaUPASEK<A1:+4%6%;/@5G9H9>,D4`W pj#UC$?($A,$@+&A+)UD+gZ*ZJ,L8/J62E/3B*4A)4B)3B'3C(2C&0B$.B"-B",C!+C +C*C)C(C(E' 2/--34"B *M-Q 0U 3[ 7c;i;h@ 9f 1U +H0E8>1:2A5&V0 X,#i@$oM#kUbSXFg\vsjl\[XV"!t!s! ~}m! yd!tN%xM'uG(i6'rD'xG)|M*|L*o3+g%,e"-e -d-e.f/g 0h!0g!1i!1j"2j$3j#3k%4l%4n&5m&6m'7n)8o)9p+:p,:q-;q.t2@ u3@u2@u1?u0?u/>u/=u.Y"+r*60>3A4B4C5C6E6E7E6E7F6E8F8F9G:H;HJ9?L@L@MANBNCOEPFQGRGRHSITKULVLWNXPYR[S\U^W_X`[a\c^d`fagciekhmjonqptsvvxyz|~Ӏքوݍߐ㖑蝖좛úŻȽ ɿø丹       !##$;$&'(()*,36#//>-eYiaNBI;E6=.6*6)>3FAHCH?D9<,=.OC_U N?!>-?-!H5%R@&gZ)~x)eW*H4.F//D,0B'1C*1C)1B'/C'.D'.B$-B#,C!*D *B)B)C)D(C'E'5!,9-3M"=)N 1Z 2Z 3] 9g=l;h;ir2?s3@s5Bt5At6Bu5B u4Au3@u2?u1?u/>u.=u,K?K@L@MAMBNCODPFQGQGRHSITKULV*MWOYQZR[T]V^X`Y`[b]c_eafbhejgmjolpprsuvxyz|}Ҁքوۋߐ㖒蜖롚ź ɿø丹    !""$&&&%%&&((*,6#F7A69-PFsqkgH>C6F9>6<6HALEC@DBMDC79,>0F8J=H<@3?0RD"pg&|'(mb)WD+]K,U@,H..F+.B&-C'-I.,M2,I++D%)C")C (C)C(C(C'D(D&E&5 *+&.2!=)J1\ :i o?qa;[=W$DOq3?r5@s7Bt8Du:Du:Eu9Du8Cu6Bu4Au3@u1?u/>u.X"+o+6~0>3A5C6D5D6E6D7D6E6E6E7F7F8F8F9F9G:G:H;HJ>K?K?K@MANBNCOEPEQFQGRHRITJTLV*MWOYQZQ[T]V^W_Y`[b\c^dafbhejglimlporruuxyz||փوۋߐ║暕렚ĺ Ⱦ¸丹    "!""$*,)'&''*,**,7%H<C;;0ODpkplOFM@E9;4><PNVVA@?<D6<.;3?7C6?6B:A2=+ M<"pg%~'x(j])aQ*jZ*[G*F-,C(,@#+D'+P5*S8*I*)A )B(C(B(C(C'D'C&D'D%E&F%)18 <%D -R ,|%Yh-PY'kk}zztmypvppm|| !"z#%&o&\'^(l(|'''_*u@+v@+i*,g$-f"-'d .e.f 0g 0g!0h!1g"1i#2j#3j%3l&5k&4l'5n(7n*8n+9n-:o/J>K>K@LAMBNCOEP1FQGRHRITJTLULVMWOYQYR[T\V^W_X`[b]c^dafbgejgkhmkporrtuwxyz|~Ղ؇ۋߐ┑暕韙烈Ĺʿ ǽ·   F #%$$(4(6)/ .)()+2 3#8)?1E7D<;68.B5MASLMFJ@E?KFRNcagfGF>:B<A9?;>9=5=:=;<-;#"E0#WD%cT']M'UA'WC(WB(L3)G+*L1)I,*J.)L0)H()B!(@(C &F"'E!&D&D'B&C&C%D%E%?,&,59#B)K 7dCwAt@rBv@q>lAhFgImKq#Qo2UXFW/MSU`$\n6cn(QWKT#Yb&utsuusrn{t{upmqr "#$~%m%a'\'wH(sA(n(%&'l)d)])n5+f#-d -d-e -e!0g!0g!1h!1g"1h#3j%3k%4l'6l(7m)7n+9$n-:o0Gu;Ev7Cu5Au2@u0>v/=v-;v,;u+:v*:u)9v)9v(8w(9v&8w'8w&8x'8w&8x%7x&8y&8x%7y%7y&7y%7z%7y%7z%7x%6w#5r#3e-O#:+ !      " ,3@ X",o,7~1?4B6E8F7F7E7F7F7E 7E7F7E6F8F8F8G8F9F:G:G :H;H;IJ?K?L@L@MANCOEPFQGR.ITJTLULVMVOXQYRZT\U]X^X_[a\b^dafbgdifkhmkonqrttwwyz{~~Ղ؆ۊޏ┐晕韙øɾ Ƽ   C $)'&, :.8,2#5'1"+-5%B5C7C7J?K>E<<6>6QGLCGAIEB<><IHqrxxZVNKIICC@A===<=>>>>4?-I8H2"D,%H/%L5&O7(N5(M4(L1'S:'Q6(K.(F((A (C#'L.&R3'M,&F"&B&B&D%E%F&D%^F$&./8$B(K 3\ ?sCw@qAuBu?o6Z+1I+>U1HZ6KW?RNQ_;QY"KPV_/`i,TYPScbrppkqlwouingkhrr $%z%h&|T&zP(~U'q<)i.)yJ)v'{(i(\)}O*tA)h/*d$,f&-f%.e .e!/f 0g!1h!1h"1i#2j%2i%3k%4k'5k)6m*8m+9n,:n.Gv:Eu6Bv4Au1?v0>v.K?K@K?LALBNCNCOEPFQFRGRHSJTKULVMWNXPYRZT\U]W^W_Ya\b^d_eagchekhlkonqqssvvyzz}~Ԃׅډݍᒎ嘓螘Ƚ Ż  S#%,- *3(5,2'8-=3:-1"0 =/J@A76)7(8'<.<1?3C5G=JGGFDB@@HGjhpm\YYSVRPOSRUTCA<==>@@A9B7E:@+?#$P9%m]&xj&n_&m\'_I'U;'X?'iT'iT&hR'kW&_E&Q4&J'&C&F"%N*&O,%I!%F%F%D$E%E$)03 < )J *M 0X =oDxAs@sCw0;hA'S#$\1#e>$jE$gH!YJQJk]{p jf\Zb`XVVSlgyrl]cZnm!#%%&&l&l'V(o9)r>)zJ)|O)yI)s>*r<*j0+h1(f1(l5+n3,g&-d.d /g"/h$0h$1g$1i%2(j%4k&4k(5k)7m*8m+9m-:n/;o2=p6Aq:DrAItGLuQTw\\ydbzjfydcy]]yRUwIOvBJv=Fv9Du5Av2@v0?v/=v-K>K?L@LALAMCNCODOEPFQHS.JTKULVMWMXPYQZS\U]V^W_Ya[b\c_eafcgejhlkomqossuvxyz}~Ԁօوݍ䗓蜗죝ƻù젚   !(+)*3'=5719/@7G>J@=04%=2?69/9,>/E9UNYSRK@2QJOPEF=>>>GELIGBC>JFVQ\Wf_qm UNA;D@H@F;SHVJI5!D-#ZG$~r&&pa%eO&Y@&P5&]E&yh&wf&ub&s`&\B&J*&C&E &U5%dH%]?%L'%E$E%D%E$F$%+/8(H )L 0W =lDxBv?qBvDxCv/,HL &R("X4 Y8W9W=cN|h"}nkg`ahg]U[Srmojd\[Vif"$$$%%%&n'yL([(\({M)|P(d(n(Y(^'wJ(p8+)k.-e".d"-k,.p2-k*0i&0h&0h%2i$2j%5j&4k'6k)7l*8m,9n-;n0=o3?p8AqJ>K?L@LALAMCNCOEPEPFQGQHRITKUKULVNXOXQZR[T\U^V_Y`[a\b_caebgeihkinlporrtuwxz||Ԁփه܋䗑眖롛蘒źʿȾ¸丹럙    ()+ 0#IAOLDAMGTLI?<07*@6H@I@E:I>TL\VpnyzqmWNnm`bGI>>AADD@@AAIIIINNc_meg`RHM?UIUJO?`U nf!bS"R>#k]#$%jX%bL&_H&]E&~o&%&hP%bH%`E&Q3%R2%bE&aF$\=$X8$Q,$G$D%C$D$ $(+!<'F *L 2Y =nDxCwAsAtDxDw@p;'jRqakbjeonxxncwjwq`]RPNM_\uft`!z #$%z&u'c(f('n'vG(yM(u&'c(X(wF*l0,d$,)b#+i.,zH,}L,p2/h&0g%0h#2i&2i&3j&5j'6k)7l+8m,9m-:m0=n4?p9Cr>FrFLtRUxeb~~{ecxSVvHOvAIv:Ev6Bv4@v1?v/>v.;v,;v+;v*:v)9v(9v'8w(8w&8x&8x'8w&8x&8x%7y&7y$7y%7z%7{&8z&8{%8{&8{%8|&8|&7|&8|&7 {%7z&6x%6u$4p#2i!/_+X(U&U'V'V(V(W)X)X*X *Z + ^#-f'2u-:2@7E:H;I=J>K?L?M?L>L>KK?L?L@LAMBNCODOEPFPGQHRISJTKTLUMVOWPYRZS[U]V^X_[`\b^c_ebgdifkimlnnqqttvxy{|Ղ؆ۋߏ┐晕韙øɽƼ靗  F%0&.%-#6+XQ[ZGFMHVOMCD8OE^[VWa_fbXTPKPJWSlmz{icljqs_aFECACC=?>@EGDGHIVU^XULRI[R^WZRPEUKc[aR Q:"fV"#%p_$dO%\D%V=%}m%%%lW%J+$J*%J)$cI%z%n$X8%G!$F$D$D#   "'*#?&E +O 3[?rDxUCwBvDyF{E|$8aO$Q"#W1"aA!dE `G]Oib~! w!# mlWVWVierdmY~o #$%h'r'q('%&b'f(&%pJ%f9&k:(g2)e.)rD){K*xB,v@-q8.h,.f$/f#1h$2i%3k&5j(5l)7l+9l,8m.:n1=o4?p9Cr?GrFMtTVyif{ifyUWwIOvAIv;Fv7Bv4Av1?v/>v.LK?L@L?LAMANBODOEPEQFQHQHSJTJTLUMVNWPYRZS[U]V^X_Z`\b^c_e`fchfkgljnnpqstvwxz{}}ԁׅۉގ┏噓韗ǻĺ霕  R (:3?95+D:pl{zWT^ZgbWNMGVS[]NORPVRKJEEIFWS`a_`_]_[pqjkOOXX^^DF>@FHLNGHHFLGPL]Xe^d[`ZYOUKZMT@ H/!U>"o^#w$xh$gR$dM$sa%z%%%ua$P1$cI$s^$s$%%]?$J$#H!$C#D#E$$&'.#@'F -T 5`AuDxTDyG~HG~CwI,Q#Z/#`="]>ZA]LhXu ||~q!w"}|vrwp}ryc!|g"|#%&'c'''&%%k(p(&x$`@!Y/"_/&^,'k<(l'(|K,f*,b++b(,d%/h%1i&2i%3i&4j(5k(7l*8l+9m.:n1=n4?p9Cq>FrFLtQUxfb~~zecyTVvHOvAIv;Ev6Bv4@u0>v/>v..>/>0>0A2B3C5D6D9G;I=K@MCOEQGSHTGREQBO?M>L=J;I;H:H:G9G8F8G9G8G9G9F:G:G:G;H;HK?L@L?LAMCODOEPEQGQ0HSJTKTLULVNWOXQYS[U]V^X^X`[b\c_e`fcheigkjmlpprsuvxxy||Ԁׄو݌䗒蛖롛易ĹʿȾ¸丹럙蚔  S!$-$=6C<:0H?a\rohenlnl`ZNINOEGFHPPYWTSMNTTmljjXVUSdcjljledonffKNFHVYabMMMKVTOOYYhee]aUcWaSXFT= dR"|o"}o#t#s$p]$fQ#$%%%{$s_$n$%%%$qZ$lS#cF#O)#E# #()+8$A)K 0X ;iCwDxWDyE{E{CxCvo8Aq=ErCJsMQuZ[zni~~|njy]]xOTvEMw?Hv:Ev6Bu3@u0>v/=v-;v,;u+:v*:v)9v(8v'9w(8w'8x'8w&8x&8x%8x%7y&7y%7z&8{&8{%8z&8{&8{%7|&8}'8 ~'9~(9(:)9(:*;);*<+<+<+<,=->/?0@0A1B3C5D6E8F:H=K@MCPGSKVNYPZNZLXIUFRCP@M>JJ?K@L?LAMANBNDODPEQFQGQHSISJTKULVNWOXPYR[T\V]V^X_[a\c^c`ebgdigkimlporrtuwxyz{ւن܋ߐ㕐晔ꟙ¶ȼŻꝗ旒  A#*3):2C;<3;1KBMEVQ^\nnihgelihi^_VX\]cdXWLMQQfg[\MMUUbcUWQPUTUSNLTUbequikUU__qqeehh{yxsh\ aR UA K4N6 qa"|#vg#q_"r`"dN#hR#yi#$$$q$lU#jQ#vb$|${g$jP$cE#I4# )+),1%C'E-P 6c?nCwDxQCwCxCvCsCq&7[N$P$!R4P@LCXMk]cY[Soc}p!}w |m!p$#}q!yi!|!"$$%&'z&v'o'}[&wX$b&{U&cF UCZ: j8(o'$%#nW!iK#vQ(l8,e'.g$1i$2h%3i%3j(5k(7k)7l,8l.:m/o6Ap;DrAHrFLtPSv[[xdbzifxdby]\xRTwIOwBJv=Fv9Du5Av2@v0>v/=v-0@0A2A4B6E9G;I>LANFRMXS][d]f[dT_OZITEQBO?L=JJ>K@L@L8AMBNDODOEQFPFQGRHSJTKULVMWOXPYR[T\U]V^X_Z`\a^c_d`fchfjilkomqqstvwxy{}}Ղ׆ۉގⓎ䗒蝗죜ŹɿȾ¸졚蛕䖐  K #,"90A9C;;3A;PLQJMHSRdckia]}}y|bcefjkcdZY\]gi\]JKRTnpYYNNMLIHJH\Ynlba]]]\po |r!qd!gW!eR!ug!"##z###$}m#p\#o#z$ub#_C"X<"W:"V6#Z;#X8"R/"+$% 03-,09&D+M 3\ $\?Y1"d.({O)z%w#r\!ZI\DnC(n5.g'/h&0h$2"h&3j'5k(6l*7l+8m.:m.;n1=o5?p8Bq=ErBIsGLuNRvRTvTWvRUwOTvIOvCKv>Gu:Dv6Bv4Au1?u/>v.=v-.?/?0@1A2B4C6E7E9HK=JJ>K?L?L@LAMBNCNDOEPFQFQGQHSITJTKUMVNWPYQZRZU\V]X_Z_Za]b^d`fbgejhljnmopssuvwxy|}ׄو݌㕑盖롛易¶ǼŻ丹럙癔㓏  T %* 3)A9B?A@BAC>FEDEMM]XSNb`}~prcebehj\]RTQTdgilX[TWrukk_`\[OMOM^^ddQQOLXQb[ws |p x !"##$$$$$%$$$$$q\#mV#]A"Q/"]@"eI#<2&6166(6 #5368 9$C,P 2Z :h?qDxCv^;i;i;h:h;f?lEo#<_I#(L&K/P2Z7aNhbigSJZNl]qZm" "j#r"y#`%|W&f%g%zY%z]#l"m$\'|U'wU%mJ$`4$b.'o>)i@&W8L8H:P8`5&a-*a',f'/g$2h%2i%3j&4k(5k(7l+8m,9m-:n0Fr@IsCKsFLtHNtGMuELuAIv>Gv;Ev7Cu5Au2?u0>v/.?/@0A2B4C5E7F:HK=J;H;HQ:H9G9G8F8G7F8F8F9G8F9G:G:H;H;HJ>K?K?L@LAMBMCNDODPEPFQGQHRJSJTKUMVNWOXQYR[T\U]X^Y_Za\b^c`ebgeigkimlooqrstvwxz{~ւ؆ۊߎⓏ嘓鞘ùȾǽ¸霖喑⑍  R $#$3)QK^]RR@?>9MLGFFCPKWS[W_\UUOPTU^`XZOPKNXZjlikoqjkSU^`mm__]^giXWUR^YXR[Ti_|szspgk]xl v!~r!"#%$##$$%%$$$y#~m#aF">-==*=L7;P<7O8*A82:*< %A%A&F)K .S 2X :e@sDxUCw!5]*-L7bY(=KM.%S, S2XAYO`]ddYWYOmb}}g!w[! }mT jO ~d"i#n$q%f%m$""%m'r%#g%g8&j;'xK)d0(V4 N=OAZAd@$_3&_+*g+.j)0i&2i&3j'3k'4k(6l*7l+8l-:m.;o1p6@p8Bq;Dr>Gs?GtAIt?Hu?Hu.>/@0?1A2B4C6E7F9GK?K?L@LAMBNCOEPEPFQ3HRJSJTKTKUMWOWPYRZT\U\V]X_Y`[a]c_dbfdhfjhlknmpqssuuwyz}}ԁׄڈ݌㕑盖롛易Żɿú丹럙癔㓏  Q!)+!&':2\X}}qrMMURqoZZQNgf__KK@@?@ACHJTT^_`aVUSS\^_ccgbdZ\LN]a}uxuy}{srpn^ZULXI\K`QdXi\m]l\ rb "##$##$%%%%$#",kz9B\I5TJ.NJ.NH/NG-IG>M5U 2X 0V 2V 5Z7`o?o>kY BP&EN=4/N5LAMEUJ^YZYi`}q!w!{i t]qefY_DkL!k""!#%&%##q#b$u&~]&pH%e'p(X(tS%nR"pS#qO&pF'g5*i4,o7-m.0k)1j(2j'3j'4j'6l(7l)8m+9m.:n/u.=u-.=/?0@1A1B4C6E7F9HKJ>K?KAM:BNDODOEPEQFQHRHSITKTLUMWOWPXQZT[T\U]X^Y_[a\b^d_ebgdigkjmloprrttvxy|{~ւن܊ߏⓏ嘓鞗죜·ƼŻ졚霕喑⑍ߌ  "(,!* 1)70=7`^xyssgeUTQRlompJL;==?APRSSSU[\TRNLSSUWUXHJACEHcfz~tx{bXWKWGZGhYxlt!w!s!wi!}p"xh"td!#$$$%%%%%$-8u=iAc|DVrFKiK5XS%M]@d;e>dFbGbAe?iCqDwDxO>n5#:I"I#C(2/MDxDu>e@`A`BY)GI,FA%@B.A6;> B:M;`S`ZeRu^"wigYeUjbYTcRz_#w#""w$i&o&$ uncTr\ e$lN"lV"&p&}W'{Q(wJ*o>+k5,l7+wJ*|N,o4/h'1h&2j%3j&3k'5k(7l*8m+8m,9n.:o/;p1p3?q4@r5@r6Ar5As5At5@u3?u2?u1>v/>u-<u,;u+;v+:u*:u(9v)9v'8v&8w'7w'8w&7x&7x%7y&7y$6y%7y%6z%7z&8z%7{%8{&8{%7|&8}&8|&8}&8}'8~(:~(9(:(9*;);+<"+<,=->.>/?0@0@1A3C5C7F8GKJ>K?K?L@LAMBNCNDODPFPFQGQHSJTJTKUMVNWOXQYRZT\U]W^X_Z`[b]c_eafchfjimlonqqssuvwzz}}Ԁ׃ڈ݌㕑暔ꟘøǽƼ·ꝗ昒㓏݉  #'2(804,7/ZVxziiWVQRfitxRU;=<.F94G2:G+*k<(rJ(sM'qD)tB,r:/l-0i%1i%3j%3l'5k'6l(7l)8m*8n+9n-:o.;o0q2?r3?s3>r1?t2?t1>u/>u.=v-=u-/?0@1A3C5C6E7F:I=KANFRLXS]Zc]fZdT^NYITEQBN?LJ?K?K@L@MANCN;DOEOFQGQHRISJTKULUMWOWPXQZT\U\V]W^X`[a\b_c`ebgdigkjmmoorrutvxx{|~~ցمۊߎᒎ䖒蛕롚履ùȾǽø丹럙蚔䕐ᐍތۈ   &4+C;IAMHNJRQabcdZXMKfgdgEHCFY[WXVX\_ST@B=?^`zzqr~y{{|~ yzq k\XEWA_K{m!""~q!"####|"w"$%$$$7dM|C5wFAf\6]]1W[!I`+IVGQABUH:RN5OT+FX!>`:d9b"3X-*F:-G"H"H#I"J"K"P!"Q#"K$)8JU0V](N[&JW'EI%>A$>?)C@4N=D??DBKI`WfOcOyl~!vY"tR#q#"y$rhejbm"l#~ !iI#e4'h3*l:)tL'm%x%wL)h*.j*/i&2h#1j&2i&2k&5l'5k(6l)6m*8m*9n,9o-9n-:p.;q./?0@1A3B4C6E6F9HJ>K?K?LAMCNDOEPFQFQHR7JTJTKUMVOWPXQZR[S\U\V]X_Y_[a]b_ebfdigkimlompqrttuwyz|}Ԁ׃ڈ݋ߏⓏ晓鞗죛úȾǽù졚霖旒⒍ߎ܉م  !$* 8.H@GA?;>=GHWXSSFFGHbbnn^_]_STJMCEDFDF>@;=SUjk\^qt~{~ m^T?I1U>td #$#"##""~"p"#$$$%,iK>-=>c`+L`*CX55A^I%x#m#X6!I!H!F!E!F!E!F"G"G"H"H#J"M"N"S$"V)"S("Q.(3DU#Kc(KX'FQ'HP*GK.GC.G@*DB%@B$AD>W<^n-Vd$DN@JEN HR$KV(XQ#dKeTmanmP gC"wY"|$# }|ztw#{"!{g cMa>"kA&a&t&&&V+l..m.0i&1h#1i%1j'3j&4j&5l'5l(6l)7m)7n+8o+9n,9o,9p.;q.;q-;r.;s-;t-;t,;t,:u+:v*;u*9u)9u*9u(9 u'8v(8v'8v&8v%7w&8w%7w&7w%7x&7x%7w%7x$6x$7x%7y%7z%7z%8z&8z%7{%7{&7{%7|&8}'8~(:(:):):);*;+;+<,=.>.?/?0@1@2B3C4D6E8G:HKKk?K@LAMBMCNCNDOEOFQGQGRHSISJTLUMWOXPYQZR[T\V]W^Y_[a\b^dafdheihkjmmooqrttvwx{{~~ց؅ۈݍ㕐暓鞘úȾǽù靗昒㓏݋چ׃  1!#$)2(?6F@IGGHRRSQMMNOZ[PNONde_bILCEBDAC;=<>;=JLOPOQlm~}~z!"!~s iY_LR<N7T>jX#%$"$$###~n"#$%%$+/*.fT$]?!cF!t\"r##~#]<"J!!H!E!E!G!G!F!G!F"H"I"N"CM"S%"X/!c>!`@'^a8Qd9DX8D\=K?LANBOAN>K=K=I;H:H8G9F8F7F8F7E7E7F7E7F7E7E8F9F9G:G:H;H;IK?K@L@LAMANCNDODOEPGQGRHRISJTKULVNWOXQYRZS[U]V^X_[`[a^c_ebgdigkhlknmpprrtuvxy||~ւن܊ލᒍ䖐盕ꠘùǼ Ƽøꞗ癔䔏ᐌތۈ؃ր     "%+ 90KBJEFCPKc^gf\\POFFMNee_`RTLNJLPRHIGIMPPRFGKLhh !!#$#xk`McQ\HS<XAbOu!#$""###$#|k"p!#$#$$%$#~k"u_"qZ"#$%$rW"lQ!dD"O' F!E!F!F"G!F!G"H"K!Q""N!P""W. bDr[rW!ue]XGI/?0@1@2A3B4C6E6F9G:H;IK?L >L=K=JK?L@L@MBNBNCNDPEQGR_HSJSKTKUMVOWPXPYR[U\V]W^Y_[a]c_dafdgeigjjllnoqqssuvxzz}}Ԁ׃ه܊ߎⓎ䗑蛕롚¸ƻʿɿƻ·럙蚔䕐⑍ߌ܉مց}}   O!"%)3*?7@9>6H?`[VVDE?@BCKLRSGHSUdecc^\`]XXOQQRGINOdcomwt }{q!#%%$}!{oxk dR_JeRn^u "$###r!"$#s"xf!{j!p[ mV!t_!x"#w"{g"mU!`C!]>!oV"y#w#ya"jL!bB![7!M$ F!F!E"F!@F"G!G!K!W,!W-"U*"iI ueyl{h zrXTF@B9C>FEHN#CHELDR)@S2FV+Xi,Se7.>/?0@0@2B3C4C5E6E8F:G;IK>K?L@LAMBNCNCODOEPFPGQGRISJSKTLVOWOXPYR[T[U]V]X_Z`[a^c_ebgdhfjhljnmporqstvwx{{~~Հׄڈ݋ߏⓎ嘒蛕렚ĺȽ ǽĺ럙蚔喑⑍ߎ݉مׂ~}{{   !C!#&-$5+:1?8E=E?CB?@;=<>SSKL>@JKopbdTS\YPMFGCFEHQTa`[Vb[rj|swl`Ppd#$%#!| |qdS`Mrbz !!#$$###$$z"{"zj!cJ t`!x"|h"kR!nX!lS!X8 P,Q/ R/O* K%K# K!!H!G!F!E!F"CF!G!L"[5!` /@0@0@1A2B3C4C5D7E8F9G:H9G:H9G8F8F7F7E6E7E6E7E6E6E7E6E6D7E7F8F9F8G:G:G;HJ>K?K@LALBMBNCN>EPEPFPGQHRJSKTLVNVOXQYQZS[U\U\W^Y_[a\b_dafbgdhgjhlknmpprrtvwxy|{}~ւ؅ڈ݌ߏ┎嘒蚕렚¸ƻɾ Ⱦƻ¸럙蚔喑⒎ߎ݊چ׃~|{yy   !"L#&+4*?7A;;6>7GE=?;=XZ][FETTdfPQNOURQJQPOOST_`qrpljaofwncTYIui!"" vijZm]fT\Iyj "#~!!#$$#$$#"#"~n!#$#|i"##r[ aD _B V4 I#L( T/ R- T0 T.!K"!I!H!F!F!CG"J!P#"W."eD gI ^@bHiTj[_KaN\PJCHBZUqodbRQKLDBD?DC=J,=Q4+U+`*j+{*i+}I.u;0q2/k)0k%2k&2k$2k$3l$4l%5m&5n&6p(7q'7p'7q'7r'7s&7s'7s&7u'7u&7t&7u&7u%7u%6v%6v$6v%6w$6w%6w$5w$6x%7x%6x$6y%6y$7y$6y$7z%6z%7{$7{%7|&8}&8|&8|%8}&8}'8~'9~(9(:):*;):*;*<+<,=,=->.>/?/@0@2A1A3B4C5D6E6E7F8F7F8F6F6E6E6D6E5D6D6D6E6D5D6D7E6E6D7E7E8E8F9F9G:H;HJ?K@L@LBMBNCNDOEPFQ:HRISJTLUMVOWPXPYR[T[U\V]X_Z`[a^c_dafcgeigkjllonqqssuvxyz||~}ւنۈ݌┎嗒蚕Ꟙøƻɾ ɾƻøꞗ蚔喑⒎݊ۇ؃ր}{zywv   !!"##%)/$7.:3:2=4B<@?BC[]UTEDNMPPACDESSQLVSffux!! l_cS!m^j[nadS`NjZjYgVvh!"t {l "###$$"|!#"~n!#$#p[ s^!t"ye!pX aD L(EM(Z9!cC!cD![7!N$!I!G!E!F!G!K!Q& \4!dA!mP!fK^DbH^C_JfWbT\MXPXVtquvQUGHCDDAMFME"@S=C\EKI=d@!yd! "t#p!"%%~"q s_qX }g"""$}%c%b&_('&&r)`*`*c*r*)*U,u:/o.0k(1j%0k&1j$2j$3k$4l$4m%5n&5p&5p'6p&6q&7r&6s&6s&7t&7t%6u%7u&7u%6u%7v%6v#5v$6w%6w$6x%6x$6x$5y$6y$7y$6y$7z%7{%7|%8{$7{%7|%8|&8}&8}'8}&8~(9(:);):*;+<+=-<-=.> .?/?0?0@1A2B3B3C5C5D6E6E6D6E6E6D5C5D6D5C6D5D6D6D 7D6D7E8E7F9F9E8G9G:G;HHK?L@LALBMBMCMDOEOFPFPGQISJSJTLVNVOXPXRZS[T\V\W^Y_Za\b^c_dafchejhljnmpoqqstvvxzz{|Ԁ}ւ؅ۈ݌ߏ⒎䖑皕鞘좛烈¸źǼɾɾǼź¸丹졚靗癔䕐⑍ߎ݊ۇ؃ր~|zywwtt   !"K#$%(- 0%5-:4=8?:A=IGIHBB@@EDIJBCJJbaWTTPc_yw}y!zp~u"!]KZGuh|q~s} wi]I]Io_{ z zl |!""#$$"}m!"|!s_ "#"iP bG kR!hO!v`!q!oV!Y9 S1U1 U3 S. M$ G E!D!PF!F!I!O#!W.!Y3 Z6 U/T2[@V=T>_MdT\JYKldlkVUIIEEFDVHdPo\z`"kO `K\Nh[|c!w_!wn %c%o#%%}$#$$&p&a%l'u''&'l)^+_+y)('(q+W,zA.n+0j%1k%1j"1k#2k#3l%3l%4m%4n%5n%4n&5o%5o&5o%5p%5q&6r&5s%6t$6u%7v$7u%7u$7u$6v$6v#6v$6w$5w$6w#6x$6x%6w#6x$6y$6y$7y$6y#7z$7z%7{$7{%7|%8{%7{$7{%7|%8|&8}&8}'8~'9~(9(:):*;)<+<,=->.>.?.>/@0@0@0A2A3B4B4C4C5D4D5D5D5C5D5C4D5C5D4D5D5D6D7E7E8F9F9G:G;H;HK?K?L@LBMAMCN->.>.?/?0@1A2A3B2B3B3C4B4C4C5C5D5C5C4C5D5D5D6D5D6D6D7D7E8FL9F9G:H;H:HJ>K?L@LAMAMBMBNDODPEPFQGQISJSKTLVNVNWPXQYRZT[V\W^X^Z`\a\b^d`fbgeigkilknmporrttvwwzy}{Ԁ~ւ؅ڈ݋ߍᑍ㔐易蛕Ꞙ좛烈·¸øùø¸·丹졚ꝗ蚔旒㓏ᐌߌ݉چ؃ց~}{zxwuurspq   !"K#$%&().3#;-D7H=F<C>ABFIacje]Ue_jdTMQL_W\Q\Pqi~vm| xmz"!uh`NcSxl} !"hXQ9N5K3\GU=L2iV"##!x!|!v!|k!lV fM]A_DmV oY iP X9T3[=O,G DBACE C C!FE F H L!K P' U3hOw! uo]]LMNMbZrm[UWLmdtp`YYMc]ecfbf`khukpXrX nYZNTJqZ x"}n}j i"s_|g!k$r%~#!"z$$%%n'`(t((q)T*w@+v?+[+)(}*N,zA.t8.n+0k&/k%0i"0j#2j"2k"2l#3l#2m$3m$4n$4o$4p$4p$5q$5r%5s$5 t#5t$6u#6u$6v#6u#5u#6u#5v#6v$5v#4v$6w$6x$6x$5x#6x$6y$6y#6y$6y$7z%7{%7{$7{%7}&8}%8}&8}'7~'9 ~(9(:':(:):):);*;*;*<,<,=,>->.?/?0?0@1A2A2B3B3B2B3C4C3B3B4C2B4B4C3B4C5C4C4C5C5D5D5D5C6C6D7D7E8F 9F9G:G:H:H;GJ>K?K?LALALCNEP8FPFQHRJSJTLUMVNVNWPYRZSZT[U\W]Y_Z`[a^c_d`fcgejgkjmlompprqttuxwzy|zԀ}ւׄن܊ތⓎ䖑晓靖렚烈丹럙霕昒䕐⒎ތ܉م׃ց~|{yxwvursopno !"C#%&')+.2!8(=/?5A:E?JGXXggXUMHXQ`V!PGPK\Vg^i^lbwn{!! vi}r |rm_YFO9zn#$# qajYdQVAG,N4_Im[q`mZve "u!dMS7S6R3U8r\ ~m!hN M+DCEEPC@ABC C C D E H M Q& N"!S+ X9dO{f]POGIFGSQgc\XPIWOd_hcbZpkwwzx{w~xoygv xsfiXwZ"f#vdua ~h!iYdOy]"###$%&&&'w(i)((q)W*j*~))'y)}H,zD-u9-m*/k&0l'0i"0j"1j!1k"1k"3m#2m#3o$4o#3p$4 q$4q#4q$5r#5r$5t$5t#6u$5u#5u$6u$5u#5v#5v#4v#5w$6w$5w$6x$6y$6y#6y$6y$7z%7z$7{%7{%6{%7{%6{%7}&8}%8}&8}&7~'9~(9(:'9):(:););*;+<,<,=-=->.>.?/?/?1@1A1A2A2B2A3B2B3B2B3B4B4C3C4C4D4C5C6D7D7E6E7E8F9F9G:G:H;HJ>K?L@LAMBMCNDOEP7FQGQISISKTLVMVNWPXQYRZTZU[V]W^X_Z`\b^c`eafchejhljmlonpqrrstuwwyx{z~}Ձ~׃نۉ݌ߏᑍ㔐嗒皕靗렚좛咽丹졚럙霖癔喑㓏ᐍߎ݋ۈم׃Հ~}{zywwuurspqoolm !"1#%&')+-06#9)@5E=OF\P e_ [YLKOKd\ gZ%VI]VjendgZ\LcU{ !|k^\J]KZIWD[JM7@&XD #$#~qrc!~q S<S:dPT;\jV~p z!q!cK]CfNaG]CfN oY dJ V8U5K&BCH"K%FBAB C C D D F J!L L !Q(P0U=pbaWKJHIGHOMga_[QMRQWX^^gdun}v|~qtw }g uX"oP"iL fNqZl#nU _< wT$|$%&%%&''''(('u)a)t)('')j+m+U,r1.k'/k%/j!0j!1l!2l"2l"3m#3m"3o#3o#4 p#4q$4q#4r#4r#5s$5t#5t"5u"4u#6v#5u#5v#4v#5w$5w#5x$6x#6y$6y#5x#5y$6y#6y$7z$6z%6{%7{$7{%7}&7}&8~'9(:'9(:):):);*;*:+;,<,=->-=.>/?1@1A1A2A 2@1A3A2B2A2B3B4B3B3B4B4C5D4C4C5D6D7D6E7E8F9F 9G:G:G;HJ>J?K?L@LALAMCN:DODOFPFQGRISJSLULVMWOWPXQYSZT[U[V]W^Y_Z`\a^d`ebfchejhljnkonppqqstuvwyx{z}|Ԁ~ց؄ڇ܊ތ⒎㔐嗒皕蜖ꞗ렙咽丹렙ꝗ蛕癔喑㓏⑍ތ܉ڇ؄ց}|{zywwuurspqnolmjl P !"#$%&'),.14!;(E6RE`T!i\(j`+`Z'\Y&d_%vp'vl(\M$`S!la!aQ\K\JdT~u ~wynTAK6`O^NO;E.M6VB^Ly "|oYCjYl[V?XBP6C&F)_Ip^tb r_ dMhRp\bIU7P0U6]AfM kS!X9C@I#N*J$DCBBC D VDEHL&R/T7YFmbyq_TMJKLRSPOca][NKLLNOZ[fbeWo[~q|~i |e"w"t#t!vjkVfD"uT#e%tR$mB%|U&c%[&a'{&&q'W'm(''''(^)Z)i*u){)u)k*c*\+~J,o..j%.j"0i 1j 1j!0j!1l"2l!2l"2m!2m"2o#3o"3o#3p#3p"3q#5r#5q"4r#4s#5s#4t#4u#5u#4v#5v"5v#5w#5w#6w"5w#5w#4x$6x#6x$6y$6y$5x#5x#6y#6y$6z$6z%7{$6{%7z$7{%7{$6{$7{%7{%6{$7}%8}&8}%7}&7}&8~'8~'9'9 ':(:):);):);*;*;+<+<,=,<,=->.=.>/>0@1@0@1@1A2@1@2A2A3B3A3B3B4C4C5C5C6D5D7D7E7E8F9F8F:G:H;H?L@LAMBMCNDOCOEPEPGQHRJSKTKULUNVPWQYQYSZTZU\U]W^Y_[a\b^d_ebgchfjhkjnlnnppqrstuvvxx{z}|~}ց׃نۈ݊ߍ⒎㔐䖑易蛔靕鞗렙졚丹젚럙靗霕蚔旒䕐㓏⑍ߌ݊ۈن׃ց~}|{yywwttrsoqnolmilhj  F"#$%&'*+.14";&A.P?!^P%cU+oc9ViBrm-h\'XE&XC#WC!O;WEaQdThYyo!#"ujk\ wlYGWDXF@'E-rd"rcYC[EXBU>uf{m ]GQ8T;X@W>U9M/N1W;R4G&E!D!E#M,V7Q.CAE3BAABCCC BCEGM)U8[C_Kh\k`XKQIPPWYZZgeXVA@@@EGORWTUCiRo a#yW#w#|# ~zjpO#e$|$o&n&m%yS%k9&uE(^'q'"s'''''&'f)f)}(i*O+|G+w@+v:,u:,o0.j&.i#.i#/i 0i 1j!1j 1k!1k!2k!1m!1m"2o#2o"3n!3o!2o"3q#3q"3r"3s#4t#4u"5u"4v"5u"5v#4v#5w#5w#4w#5x#6x$6x#5y#6y$6y#6z$6{%7z$6{%7{$7{$6{%7{%6|%7}&8}&7~'9'9(9(:(:);*;*;+;+<,=,=->.>.>.?/?0@1@0@0@1@1@2A3A3B3B4C3B4B4C5C5C5D5C6D7E7E8F 8F9F:G:H;HJ>K?L@KALAMCNDODOFP6GRISJSKTLUMVNVOXPXQZSZT[U\W]W^Y`[a\b^d`fbgchfjhljmlnmooqrsttvvxwzy{z}|~ց؄نۉ݊ތᑍⓎ䕏䖐昒皔蚔蜕靖靗ꞗꟗ렙!럙ꞗꝗ靗霖蛕蚔癔旒䖐䔏⒎ᐌތ݊ۉن؄ց~}{{yyxvvttqrpqmokljlhjeh  K"#$%&'*+.15!9&>)G3"Q>'^M.xmEǘÒmrk5]P(VC&O7#J2 J4R@ZHXFS@UCna"#vYGn`m__NbRYGT>XDm^tfeSaNn^ufWAgT{m^HR8J-D&@ @?A E&E$@>>=@F!H#FBA@?@ABC:CCDHK&V8_H`MeRfRgXeZ`[ffjipo]^IHHHIJUXcaeVue~!!"##$#t!h!!}"oO"pU!r!v%s&o%uO$nB%W&f'n''&&&&&&&(x({(U*s;+w?+u:,x@-q3-l(.k$.i#.i /i 0j 0k 0k!1l!1m!2n!2o!3o!2q"2q"3r"3s#4s"4t"4t"3u"4v"4u"4v#5v!5v"5w#5w"5w#5x#6x#5w"5x"5x#5y#6y#5z$6z$7z$6z$7{$7{$6|%7}&8}&7}&8~'9~&9'8'9(:):):*;*;+;+<,=,=-=-=.>.>/>/?0@1@0@1@0@1@1@2A2B2A3A3B3A3B4C4C5C4B5C5D6D7E7E8F8F9F:G:H;H;IJ?K?K?LAMBMCN6DOEPFPGQGRISJSKTLUMVNWOXPYQZSYT[U\V^X^Y`[a]b_d`fbgchfigkillnmoopqsrsutvvxxzz||~}Հ~ׂ؄نۈ܊݌ߎᑌ⒍㔎䕏䖐嗑昒晒昒嗑䖐䕏㔎⒍ᑌߎ݌܊ۈن؄ׂՀ~~}|{yywwuutsqroplnkmjkgjehcg  :88>?>== =<=@AAB@@??@ACCGD CEGI"Q3VBVFXI`Lj^e_b]icked__^JJDEIJcfomjdvlx""#$#$#v"}_#}$l$iB#rW ~!%n&w%d%zT%|S&yM'V'e(]'x'&''''m(l(^)t;+o1+s8+yB+|G+{F+s6,k(.i#.h".i 0i /i!0j 0k 0l!1l 1l!2m 2o!2p!3q!3r"3r!3q!2s"4s"3t"3 t!5u"4v"5u"5u"4v"5v"4v"5w#5w"5w#5x#5w#5x#5x"5y#6y#5z$6{$7{$6|%7|$7|%6}%8}%7}&8~'9}&8~'9'9(9):):*;*;*<+<+<+;,<,=,=-=->.>/?.?/?/?0?1@1@0@2A 2A2B3B2A2B3B4C4B4B3B4C5D5D6D7E7E8F8F9F:G:H;HJ?K@KALAMBN6CNDOEOFQGQIRJSJSKTLUMVNWOXQYQYSZT[U\W^X^Y`[a^c^d`fbgcgeihkikjmlooqqqrrttuvwwyxzz||~}Հ~ց׃مڇۉ݊݌ߍߏᑍ⒍Ⓨ⒍ᑍߎߍ݌݊ۉڇن׃ցՀ~~}|{zyyxvvttrspqopmnjlhkgiehcfae  ,""$%&')+.03 8$<'B-!K5%ZE+l[5|mBvMzjDm[4iY*cT%P;"C+B(F/K6O;S@UBXFaQ[JK7UBqcn`SAnawkXEP:D+P:tfT>>#8::;<8779;;:;;)<=>>???@?@@ABCBCCDDFG H.E9F>SEaRZQQI^Tkae_li\YTQ]\kimhqi~vv!y"z"m%$r$w$n$|Z$zT%}Y&k%#"$g&}%%w%|R'tD(\'V(q>(a(''s(p(e(U)r(x(S*zE*w@+s8+s7,o0-j(-g!-h -h/i/h0j /j 0l!1l 1m!1m 1n!2o!2p!1p!2q!2q 2r"3s"3t!3u"5u"4v"5v"4v"5w#5w"5x#5y#6y#5z$6y#6z$6{$6|%6|%7|%6|%7}%8}&8~'9}&8}%8~&9~'9(9(9(:):):);*;*<+<,<,=-=/>.>.>/?.?/?/?0@0?0@1@2@2A3B3A3B4B3B3B4B5C5C6D7E7E8E9F:G:H;HJ>K?K@LAMBMBN6DODOFPFPHRIRJSJSKTLVMVOWOXPYQYSZT[U]W^Y_Z`\b]c_d`fbfcgeigkhkjmlonpoqprqsttvvwxyyzz||~}~ց׃؄نڇۈۉ݊݋݌ތߍߎߍތ݌݋݊ۉۈڇن؄׃ց~~}|{zyyxwwuutsqropmolnjlhkgiehbfae`c  ;""#%&')*-/4 6":&?*F0"O9'YD+`M1bL4^G1YB,XC(VC$L5!A)>&A(@)C.P<WEM8C,K7bQh[eVWDD,P<H1>$D,J3P:_L`NO8K3K2<7;B$B#;789::Y::;<=>=>???@@A@BCCCCDFGDF"J8IEQNkeaSUKd^tnxozvnbWjb{uoam\so |`"sN#mC%xS%c%h%a%wP%oA%b%%%$$t$%%&b&~T'''^(d(n(Y(W(v''p(v(t)O*|I*w@*n0,g$,g",f -f-g.g.h0h/i 0i0i 0k 0l 1m 1m!1m 1n 2o!1o!2q 2q!2q!3s!3s!2s!3t!3u"4u!4v"4v!4v"4v!5w#5w"5w#5w"5w#5w#4x#4x#5y#5y#6y#5z$6y#6z$5{$6|%7}%7|%7}&8}%7}&8~'8~&9'9(9):(:):*;*;*;+<,<,<,=,=-=->.>.>.=/?.?/?/>/?0@1@1A2A1@2A3B3B4B4B5C5C6D6D7E8E8F9F:G:H;HJ>K@KALAMAMBNCNDNEOFPGQHRIRISKTKUMVNV(OXQYQYRZT[U]W^Y_Z`[a]b^d`ebecgeigihkimlmmoopoqprrttuuvwwyxzz{{}|~~ցׂ׃؄ننڇۈۉۈڇنن؄׃ׂց~}}{{zzyyxwvuustrrpqopmnkmjkhjfiegcfae_c]b  9""#%&'(*,.14!8%<'@+ F0#K3&N7(P9(O8'K5%K4#J4"F/A)=%<$8 69";$7 =&YIxmhZG37476<$D,J3I1@&C(N7aNbNF+8:C'E)?:99:;:;<<=>>?@@@BABADEL(P+I H$J=EDKMqqe\OJ[[kic\nl}{phi]zqvhjVta pS"c:"a6#lB$uO%xS%zT%sI%j<%j:%a%%%%n&`&_&%&n&rA'a'n'Z'_']'_'d(l(v'r(l(~N*o3+o4+n0+h&+e"+f",h",f ,g.i/h/h0i/i /j 0l0n 1n!1n 1o!2p!2q 2q!2s!3s!2s!3u!3u!4v!3v!4v"4w#5w#4w"5w"4w"5x#5x"5x#5x"5x#5y#5y"6y#6{$6z#6{$6|%7|$6}%7|%7|%6}%8}&8~&8~&9'9(:):):*;):*;);*<+<+<,<+<,=-=.>.?.>.>/?0>0?0?1@0@0@1A1A2A2A2B2B2A3A3B4B4C5C5D6D6D7E8F9F:G:H:G;HK?K@KAL3BMBMCNDOEOFPFQGQIRISKTKULUMVNWOXQYRYSZT\U]W^Y^Y`[a\b^c`eafcgdheigkikjmlomonopqqrrstuuvvwwxyyzz||}|~}~Հ~ցׂ׃׃׃ׂցՀ~}~}}{|{zyyywwvvuuttrrpqopmolmjlhkgiehcgbe`d_b]b\` 9  !"#$%&')+-036"9%<'?*C-!F/#G0#F/#F."E,!A*?(>&;"95557!@+I6RA_PWEG1I4D.44:!C,F.?%65; H/O8C(79><9899::;;<=>?K@A@@AAAACFK(L+G'I-M7J?MMkmhaNCXQe]YQpm}rgRm]n_m]|m!y_#sQ#|\$k$^$sK%xS%xQ&l>&k;%uL%}X%yR%yP%zR%pB&k9&]&&]&l8(vG({N(vF(m'''t(V({J)|L(wD)l0+i)+l-+h&+d+c+e+f ,f,f-g-h.h/i/i0l0l1m 0l1m 1n 1o 1p!1q 2r 3r!2r!3s!3t!4u!3u!4v!3v!4w"5w!4x"4x#5x"5x#5x#4y#5y#6y"5y#6z$6{$6z#6{$6{#6|%7|$7|%6|%7}%7}%8}&8~&8'9&9(9(:):):):);*;*:+;,<,=-=-=.=.>.>.?/?0?/?1?1@1A2A2A3B4B3B3B5B5C5D6D6D7E8F9F:G:G;H)=I=J=J>K>K@K@LALBLCMDNDOEPFPFQHRISJSKTKULUMVNWOXQYRYSZT\U]W^X^Y`[a\b^c_d`ebgcgehfihkjm knmonpoqprrttttuvvwwwxyyzz{z||}|~}}~}}{|{{zzyyxwwwwvuttssrrpqopmolnjlikhjfiegbfae`d^b]a\`Z_  "#6$&')*+.13 6"8$;&='?(@)@(?(>&=$;$:"864348!B.J7D.<%C-R@cSXF:!39!E-B)95558@#@#:88767779::;;;<=>>/??@@@@ABBBDFG#J-M/M,L5NJb__SQ?aRi\]Tge}{ymq^{l|n u_!q"v$v$%%u%xR$o%%|W%l?%nA&k<&j:&Z&q&g&~W&|S&tF&sB'Z'd'xJ(d'x'h(]'zI(xG)yG)n2*g&*h'+l/+k-*e"+d+d+e,f.f-g.h/i/k0l0k 0m 0n1n 1 n2o!2p 2p2p 2p1r!3s 3s!2s!3s!4u!3v 4v!4w"5w"4w!4x"5x"4x#5x"5x#5y#5x#5y#4y"6y#6z#6{$6z#6{#5{$6|$7|%7}%8~&8&9'9(9):);):);):*;);+;+;+<+<,<+<,=-=-=.>->/>0?/?0?0?1@2A1A2A2A3B3B4B5C4C5C5D6D7E8F9F:G:G;H J>J@J@K@LALBMCMCNDOEPGQHRISKTLVOWOXQYRYSZT[U]V^X^Y_[`[a^c_c`ebfcgdheigjhkimjmknlonpoqprrssttuuvvwwwwwyyyxzy{y{y{z{yzyyyyxwwwvvvuuttssqrqroqopmolnjlikhjgiehcgbf`d_c^b\a[`Y_Y^  .""#$%&()*,.135!6"9$:$;$<%;$;#:"8!76532227 =&7 23;$H3J6:!27:!644458 9867567789: ;;;<<<===>?>?D@AAABBBEF O2W@]GXESGSFT>XFd\zr!i]c\smrb |k""z#pN"yX#}^$yV$r$%$qH#rJ%^%uL%m@%h8%]$&^%&l=&`&l&a&uH&p@&~U&[&}S'xI(n9(yM(xI(k4(k1)q:(}N)R)o6*f&*f%*k-*j,*f$*e+c+e+e-f-g.g.h.h/j.j/j0k/l0l1m 1m0m 1n1p 1p1q 1r!2r 2r!2s 3t!3u 3u!4w!4v!4v!3w"5w!4w"4x"5x#5y#5x"5y"5y#6z#6z#5{$6|$7|%7|$6|$7}%7}&8~&8 &9'9(9'9(:(9):(:):);):*;*;+;+<,<,=-=->.>.>.=.>/>/?/?0?0?1@1A2A2A3B4B4C5C5C5D6D7E8E9F9G:G;HI>J?K@K@K AMBMCMDOEODOFPFQHRHSISJTKTLVOWOWPYRYSZT[U\W^X^Y^Z`[a^b^c`dafbgcgeigkhkiljmkmmnmonpoqpqqsrsrttutuuuuvvvwwvvvuvuuuttttrsrrqrpqopnomnlmjljkhjgiehcgcfae`d_c]a\`[_Y_X]W\   !"# $%()*+,.035 7!8!7 7664321101010037<%:"5541325456545 677899::;;<<<<=>>>?@BB>CBDEI&Q7YDW?M2L9YN`XdYn\ aGdLmT v` za!vV"rN"d;#e<"c7#b3$sL$z$m$e6$d4%oB%l>%{U%o%}X%k;&i8&o@&tF&n?&h5&o?&b&b&r?'d+'c''e+(e)(c%(d%)e')j0)p9)k/)d")d"*g%*d!*b*b*c+d,e-f-g.g.h.h/j/j/k/k0m 1m1n 1n1o1p1p 1p1q 2r!3s!3t 3u!3v 4u 3v!4v!3w!4w"4x!5x"4x"5y#5y"5x"5y"5z#6z#5z#6z"5{#6{$6|#7|$7|#7}%7|%7}%8}&8~&8'9'8'8(9(:):);*;);*;+;+<,<,=-<,<,=.>->.>/>/?0>0?0?1@1A2@2A3A3B4B4C5C6D6E8F9F9G:G;HI>J?J@K@KALAMAMCNDNDODPFPFQHRISJTKTLVLVOWOWPYQYSZT[U\W\W]Y^Z`[`\b^c^d`eafbgcgdieigkhkhkiljmknmonpopoqpqqrqsrsrtsttsssrsrrqrqqopopmnlmkmjlhkhjgiehdgcfae`d_c^b\a[`Z_Y^X]W\U[   ""#$&')+,-/13454432210/.//0023454420232334456789::;<;<=>>?@ABBBDDEF J':J*P@^Wc[ZHV8V1 ]5 fF t]rV!d.>->.>/=/?/?0?1@2A2A3A3B3A3B4B4B4C5D6D7E7E8F9F :G;G;HI>J?J?K@KALAMAMCNDOEPFPFQGRISIRJTLVMVOWOWPYQYSZS[U\ W]W^Y_[`\a^b^c`d`eafbgcgdigjfjgkhkjljmkmlnlomoopnpoqpqoqpqopopoomomnlnkmjljlikhjgjfiehcgcfbe`d`c^b]a\`[_Y^X]W]U[T[SY  "# $%&'))+-./1 22122311010/ ..//00/102210112344556787889::;<;=>=?>@ABB8BCCBCH O/W=XC^MbNXB]GjQ!eA!^9 cBiJ!lK"pN"mF"a6"iB#nF#i>#c5#i>#vQ$zV$wP%h:%e3%k:%a,%[#%Y&W&Y&`*&k7&h3&`'&`(&j5'xI'{M'g.']'_(f+(i-(f')c")b!)a*a*`*b+ b,d+d,e-f-e-f.g.h.g/h.j/ k/k/k0m0m1n1n0o 0o0p 1q 1p 1q 2r 2s 2t2u3v!3w!4v!3w!4w"4x!5x"5x!4y"5z#5z#6z#5{$6|#7|$6|$7|$6}%7|%7}%7}$8~&8~%8~&8'8(9'9(9(9):):*:*;+;+<,< ,<,=-=->.>/>.?.>/>.>/?0?1@2@2A3A3B3B4B4C5C6D7E7E8E9F:G;G;HJ?K?KALAMCM*CNDOEOEPFQGRHRIRJSKTLVMVNWOWPXPYRZSZT[U\W]X^Y_Z`[a\b^b^c`d_eafbgbgchdieififjhkhkiljljmkmlnmolnmnlmlnlmkmjljljkhjhjgjfiehegcgbfae`d`c^b]a\`[_Z_Y^X]V\U[T[SZSY   !""#% &'(**,-..///000/0//...-.///./010101333433457999::::;<=>???AABCBCC/BFO.Y<[: Q,P/T>_Po^!gF"V+ R*\: hG"oL"jC"X("U#"Y'"],#c5#{X$i$tM#^+$V%W%X%Y%Y&W&U&V&Y&_&&_%&Y&X&^ 'g-'l7'f*'^'](b#(a!(_(`)_*_*`+`*b+b,c,d,d-e-e.f.h.h.h.i/j.k/ k0l0m0m0n0o0o 0p 1p 0p1r 1q1r1s2s 2t 2u!4v!4w!4v 4w 4w!4w"4x"5x!4x"5x!5x"5y"5y!5z"5z#5z"5{#6{$5{$6|$7{$6{$5|$6}%7~&8~%8&8'9(8(9(9(:):)9):*:*;);*;);+;+<,<-=.>.>/>0?1@2@1@2A3A3A3B4B4C5C6D7D7E8E9F:G:G;HJ?J?K@KALALBMBNCNDOEP!FQHRHRIRJTKTKUMVNVOWPXPYRYSZT[T\V\W]X^Y_Z`[a\b^c]c_d_e`eafbgcgchdhehfihjhkilikjkjljkikhkhjhjgifiehegcgcfbeae`d_c^b]a[`[`Z_X^W]W\U[U[TZSZSYQX    !""#%&') +++,-.-.0../...-.././0110023345477999:::;<<=>>??@ABBC#BCDI O)O$IGL&T7_C ]7!O" L S'!V'![,!]/"U""R"Y&#a2#f9#oF#sM#j=#c3%e4%](%U%W%[$%^'&Z %W&W&X&X&Z&^ 'b&'_ '^'^'^)^*_*_)_+`+`*a*a+b,d+d-e-f.g.h.h.h.j/j/j/k/k/l0m0m0n0n 1o 0o1p0q 1q1r 1s 2t 2v 4w 4v 4w!4x"5x!4x"4x"5y!5y!4y"4y!5z#5z"5z#5z"5z#5{#6{$6|$6}%7~&8~&7~%8'8'9(9'9'8(9'9(:(:):(:):*;*;+;+<+;+<,<-=-<-=-=.>/>/?0?0@0?1@1@2@2A3A2A3A4B4C4C5C6D 7D7E8E8F9F:G:G:HJ>J?K@KAL$BMBNCNDODPFOFQHQHRIRJTKTLUMVNVNWPXPXQXSYSZT[U\W\W]Y^Y_Z`\a\b]b]c]c_d`eafbgbfcgcgdgegeififjgifiehehdgcgcfbeae`d_c_c]b\a\`[_Z_Y_X]W]W\U[UZTZRYQXOV   !""#$%%&(**++,-.--.------/...///10001233344445679999::<==>>>??ABBBBCCCEGGGIM" R*S+ O!!M!N!M!P!R "S"R"X'"a3#b4#\*#[&#a1#pG#wQ%h9%X%V%\%%a-%]%%Y&W&W&W'X&Z&\&\'^' ]'\'])^*_*_*_*_)`*_*`*a*c+d,e-f-g.g-h-h.j/j.j/k/l/l/m/n0m0n0n1o0p1q1r2r 1s 2t 2u 2v 3v 4w 4w!4x!4w!4x!4x"5x"4x"5y"5z#5{#6{"5{$6{#6|#6|$6}$7}%7}$7}%7~&7~%7~&8'8'9(9(:):):);*;);*;+;+;+<,<,<,=-=.=.>.>/?0?0@0?0@1@1?2@2A2A3A3B4B4C5C5D6D6C 7D7E8E8F9F:G:G;HJ&?K?K@KALBMBNCMDOEOFPEPGQHRIRJSKTLTLVLVNVOWPXQXRYRZT[U\U\V]X^Y^Y_Z`[a[a\b]b]c^d_e`eaebfcfbgcgdgdhcgcgcfbfbeae`d_c^b ]a\a\`[_Y^X^X]W]W\U[U[SZSYQXPWOVNV   !""#$%&(()**+,-, -,-,--,-,-..../01000223445779::::;<===>>???ABBBBCCDE2FEGIK JL L!K!K!L!M!N"O"N"Q#V#"W$"S#P#U#])#e7$b1%W%T%X!%Z!%W%V&V&V&W&W&X&Y&Z&Z'['['['\(])^)^*_*^)^*`*`)`*a*c+d,d+d,e-f-f-g,g-h-i/j/j/l/l0m0n0n1n0o0p1q1r1r2s 2t 2u 2u 3v4w 3w!4x!4x!3x!4x!5x"5x!5y"5y"4z#5z"5{"5z"5{#6|$6}$7}%7~%7&8'8&8'9'8(8(:):):):):);*;*:*;+;+<,<,;,=-=.>.>/>0?/?0?0@1?2@2A2A3A4B4C4B5C5C6D6D7E6E8F8F:F:G;GJ?K@K@LALBMBNCNDOEOEPFPFPHRIRJRJTKTLULTNVOWPXQXRYSZT[U\U\W]X^Y_Y_[`[a[a\b]c]c^d_d_d`d`eaebfae`d`c_c^b]b\a\`[_Z_Y_Y^X^X]W\V\U[TZSYRYQXPWOVNUMU   !""#$&&'())*++,,,-+,+,--.-./0/00212345567799999:<<<=>?AAACBCCCDEE EGFGIJ I!J!J"K!M"M"N"O#O#P#T#X"%\'%Y!%U%U$T$T%U%V&V&W'X'X&X&Y(Z'['[(\(\(\(^*^*^)_)`*a*c+d+d,e,f,e-f-g-g-h-i.i.j.j.l/m0m0m0n0n1o0p1p1q1s 2t 2t 1t 2u 3u3u 3w 3v3v 3w!3x!4x 4x!4x"5x!5y"5y"4z#5z"5z#5z"4{#6{#5|#6|$6}$6}%7~%7&8'8&8'9(9(9):(:):*;*:*;+;+<,;,=-=.>->.>/>/?/>/?0?0@1@1@2A2A 3A3B4C5C4C5C5C6D6D7E8E8E9F:G:G;G;H??AABCCDEFFGG H!I J!K!M!L"N"O#P#Q#S$T#T$W%T$T$T$U% U&V&V&W&X&W&X&Y'Y'[(\(\(])](])^)_)`)`)`)`*a*c,d,e+e,f,g-h-i.i.j.k/l0l/m0n0o0o1p1q1r1r2s1t 1t 2u 2v 3 v 2w3v 3w!4w 4x 4x!4x!3x!4x!5x!4y"5y!5z#5z"4z"5{#5{#6|$6|#6}$7}%7~%7&8'9(9'9(9(9):):*:*;+;+<,<+<,=-= .=->.>/>/>/?0?0@0?1@1@2A2A3A3B4B5C4C5C6D6D6E8E8E8F9F:G:G:G;G;HJ?K@K@LALBMBNCMDOCOEPFPFQHQHRIRJSKTLULUNVNVOWPXQXRYRZSZT[U\U\V\W]W^X^X_X_Z`Za[a\b\a[a\b\a\b\a\`[`Z`Z_Y_Y^X^X]W]W\V\U[UZTZSZSYQXPWOVMULTLTJSJS   !""#%&&'()***+**+,+,--/.//0001223445467999:;<==>???AABABCCDEEEFGG H I I!J!J!K"M"N"N"O"O#P#Q#Q#R%S%R$S$T$U$U&U&V&V&W&X&Y' Z([(\(\(])])](])^)^*_*`*b+c+d+d,f,f-g-g-g-i.j.k.k/l/m/n/n0o1o1o0q1q1q1s 1t 1t 2t2u 2v2v 3w 3w 2w!4x!4x 4x!4y"5z#4z"5y"5z"4z"5z"4z!5z"5{"5{#5{#6|$5|$6}#7}$7}%7~%7&8%8&8'9(9'9'9'9(9):):):*:*;*;+;+<,=-=,=-=.>.>/>/?0?0?1@0?1A2A1A3A3B4B5C5C6D6D7E8F8F9F9F:G:G;H???AAAABBDDDDEEEFGI J!I!J"K"K!M"N#O"O"P#Q$R$S$S%U$U%U&U%V&W&W&X&Y'Z'\(\(](])`)`*a)`*a*c+d+d,e,d,f-f-g-i-j-j-k.l/l0m0n0o0o1p1q1q1s 1s1t2s2t2u3v2v 3w 3x!4x 4x!4x!3x!4y"5y!5y"5z"5y"5z"5 {#5{"5{#5{#6|$6|#5}#6}$6}$7}%7}$7~%7~$7~%7&8&7'9(9'9(9):):):*:*;+;+;+<,<,;+=,<-=.>.>/>/?0>0?/?1@2A2A3A2B4C3C4B5C6D6D7E7F8E9F9F:G;G;HJ?K?K@LALBMBNCNDODOEPFPFQHQHRIRISJSKTLTLUNUNVOWPXQXRYRZSZS[T\U\V]W]X]X^X_X^X_X^X^W]W\V\U\U\U[T[SZSYQXPWOV NUMULTLSKSJSIRHQHQTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/stories/holotzcastle/script/0000755000175000001440000000000011177007633022457 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/script/nl/0000755000175000001440000000000011177007633023070 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/script/nl/level025.hcs0000644000175000001440000000605711177007633025135 0ustar jacobusers########################################## # Holotz's Castle story - Level 25 # Holotz appears ########################################## # This jump is just to scroll the screen up so the text is visible. # A better fix would be to redesign the level so Holotz isn't so high up. {[ MOVE main(0) dir=5 amount=1 ]} { [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] [ NARRATIVE text="Holotz." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } {[ MOVE enemy(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ] [ DIALOG main(0) text="Bij de kracht van Hutazin!..." txtAlign=5 speed=5 size=2 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE main(0) dir=6 amount=3 ] [ DIALOG main(0) text="Elementaire Poort, opent u!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ WAIT millis=3000 ]} {[ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=5 size=1 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=5 amount=1 ] [ DIALOG main(0) text="Het is weer mislukt!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ] [ MOVE enemy(0) dir=9 amount=1 ] [ DIALOG main(0) text="Jij daar!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG main(0) text="Waar is de gevangene?" txtAlign=5 speed=5 size=2 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG enemy(0) text="We hebben hem naar het Labyrint van Froj gebracht, zoals u zei" txtAlign=5 speed=5 size=1 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Goed gedaan" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Maar u moet wel weten" txtAlign=5 speed=5 size=1 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="dat hij schoenen had, meneer" txtAlign=5 speed=5 size=1 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Idioot! Wacht, I bedoel..." txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE enemy(0) dir=4 amount=1 ]} # When Holotz yells, the demon falls back one stair step {[ DIALOG main(0) text="Jij ongelovelijk achterlijke domkop!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] [ MOVE enemy(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Waarom zei je me dat niet!" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ik..." txtAlign=5 speed=5 size=1 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ze zullen ondertussen de toren wel al bereikt hebben" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Roep alle beesten op!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ja, meneer" txtAlign=5 speed=5 size=2 align=0 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(0) dir=7 amount=2 ]} {[ MOVE enemy(0) dir=7 amount=2 ] [ DIALOG main(0) text="We zullen die Lizarnites eens verassen" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/nl/level007.hcs0000644000175000001440000000344611177007633025134 0ustar jacobusers########################################## # Holotz's Castle story - Level 7 # Ludar enters the castle ########################################## { [ DIALOG main(0) text="eh... Ybelle, Wacht op mij!" txtAlign=4 speed=2 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] } { [ MOVE main(0) dir=6 amount=1 ] [ DIALOG main(0) text="Oh nee!" txtAlign=4 speed=5 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Wie heeft dat gat hier gemaakt?" txtAlign=4 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Help! Ybelle!" txtAlign=5 speed=1 size=3 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Waarom geeft hij geen antwoord?" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Eigenwijze pummel!" txtAlign=5 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, hey!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Die stenen lijken veel op degenen die Ybelle meenam" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { # EXPLAIN WHY YBELLE IS GRABBING STONES AFTER HE TOLD LUDAR NOT TO [ DIALOG main(0) text="Zou er hier een uitweg zijn?" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { # SHOULD GIVE USER A HINT THAT GAME IS STARTING AS LUDAR [ DIALOG main(0) text="Zo te zien is het mijn beurt om een poging te doen" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] } # MORE HINTS FOR THE USER AND A REMINDER THAT THIS GUY IS LUDAR { [ NARRATIVE text="Spatie ingedrukt houden laat Ludar hoger springen" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/nl/level030.hcs0000644000175000001440000000361611177007633025127 0ustar jacobusers########################################## # Holotz's Castle story - Level 30 # Ybelle and Ludar meet again ########################################## {[ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ MOVE main(0) dir=8 amount=6 ] [ MOVE enemy(0) dir=8 amount=6 ] [ MOVE enemy(1) dir=8 amount=6 ] [ MOVE enemy(2) dir=8 amount=6 ]} {[ MOVE main(0) dir=6 amount=3 ] [ MOVE enemy(0) dir=4 amount=3 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=8 amount=4 ]} {[ MOVE main(0) dir=6 amount=4 ] [ MOVE enemy(0) dir=4 amount=4 ] [ MOVE enemy(1) dir=4 amount=3 ] [ MOVE enemy(2) dir=6 amount=3 ]} {[ DIALOG main(0) text="Ludar!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ybelle!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] [ MOVE enemy(0) dir=6 amount=1 ]} {[ DIALOG main(0) text="Je leeft nog!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Jij bent nog niet dood!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] [ MOVE enemy(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Mooie schoenen" txtAlign=5 speed=5 size=2 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Wij werken beter als team" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Volg me!" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Hmm..." txtAlign=5 speed=5 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="Wat dacht je van samen?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Samen." txtAlign=5 speed=5 size=2 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=8 amount=3 ] [ MOVE enemy(0) dir=8 amount=3 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/nl/level001.hcs0000644000175000001440000000530311177007633025120 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle and Ludar arrive to the castle ########################################## { [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] } { [ NARRATIVE text="Ybelle en Ludar." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } { [ DIALOG main(0) text="Wow! Wat is er net gebeurd?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] [ MOVE enemy(0) dir=6 amount=3 ] } { [ DIALOG enemy(0) text="Ik zei toch dat je die steen niet moest aanraken!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, hou je kop..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Hoe kon ik dat nou weten?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Waar zijn we?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="HA! Vertel JIJ mij dat maar!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Als je er nou gewoon vanaf gebleven was..." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Domkop..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Drol..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="We moeten een weg terug naar huis vinden" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Volg mij, Ludar" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Mooi niet! Door jou kom ik steeds maar weer in de problemen." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Deze keer doen we het op mijn manier" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Nou..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Ik denk dat ik maar alleen ga" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=5 ] } { [ DIALOG enemy(0) text="???" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=8 amount=3 ] } { [ MOVE enemy(0) dir=6 amount=3 ] [ DIALOG enemy(0) text="eh... Ybelle, Wacht op mij!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ MOVE main(0) dir=6 amount=3 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/nl/level032.hcs0000644000175000001440000000160611177007633025126 0ustar jacobusers########################################## # Holotz's Castle story - Level 32 # Return to the land of Lizarno ########################################## {[ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCCredits.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="We zijn in Lizarno!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="We zijn thuis!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Hey, kijk die steen!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Niet aanraken!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/nl/level020.hcs0000644000175000001440000000721311177007633025123 0ustar jacobusers########################################## # Holotz's Castle story - Level 20 # Ybelle is captured (continued) ########################################## {[ MOVE enemy(0) dir=8 amount=0 ] [ MOVE enemy(1) dir=8 amount=0 ] [ MOVE enemy(2) dir=4 amount=0 ] [ MOVE enemy(3) dir=6 amount=0 ] [ MOVE enemy(4) dir=4 amount=0 ] [ MOVE enemy(5) dir=6 amount=0 ]} {[ WAIT millis=1000]} {[ DIALOG main(0) text="Halt, niet bewegen!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="Hee hee" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(1) text="Huh?" txtAlign=5 speed=5 size=3 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Pas op anders moet ik mijn Kung Fu op jullie toepassen!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ MOVE enemy(1) dir=4 amount=3 ] [ DIALOG enemy(1) text="Kijk!" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(1) dir=4 amount=1 ] [ DIALOG enemy(5) text="What?" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Hij heeft... schoenen" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Oh ho! Holotz zal dat niet leuk vinden" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Wat willen jullie?" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE enemy(5) dir=6 amount=4 ] [ MOVE main(0) dir=6 amount=1 ] [ DIALOG enemy(5) text="De vraag is..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Wat doe JIJ hier?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ik pakte een steen op en..." txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="En er opende een mystieke poor. Toch?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ja, precies!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Het lijkt erop dat Holotz's experimenten niet gelukt zijn" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="Ik vind het grappig dat je het tot zover heb weten te brengen..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(4) text="Wat doen we met hem?" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="We doen wat Holotz zegt..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...we brengen hem naar het Labyrint van Froj" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Daar zal hij blijven tot Holotz over zijn lot beslist heeft..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...Tenzij de vier gestoorde broers hem eerst vinden!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Har, har!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(2) text="Hur, hur, hur!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ] } {[ DIALOG main(0) text="Slik!" txtAlign=5 speed=5 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} # LET USER KNOW THEY'RE SWITCHING BACK TO LUDAR. {[ DIALOG main(0) text="Ik hoop dat het goed gaat met Ludar..." txtAlign=5 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=1 ]} { [ NARRATIVE text="Je Ludar van richting laten veranderen tijdens een sprong." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/nl/level019.hcs0000644000175000001440000000245411177007633025135 0ustar jacobusers########################################## # Holotz's Castle story - Level 19 # Ybelle is captured ########################################## {[ DIALOG main(0) text="AAAH!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCMainTitle_Fast.wav" loops=0 waitToEnd=0 ]} {[ MOVE enemy(0) dir=8 amount=4 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=4 amount=2 ] [ MOVE enemy(3) dir=6 amount=2 ] [ MOVE enemy(4) dir=4 amount=5 ] [ MOVE enemy(5) dir=6 amount=5 ] [ DIALOG main(0) text="Uh oh" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(2) text="!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=1 ] [ DIALOG enemy(3) text="!" txtAlign=5 speed=1 size=2 align=0 r=220 g=20 b=20 subtype=1 ]} {[ NARRATIVE text=" WORDT VERVOLGD... " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=3 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=1 ]} {[ DIALOG main(0) text="Eeeh!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ DIALOG main(0) text="Laat mij niet alleen achter!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ WAIT millis=3000]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/nl/level033.hcs0000644000175000001440000000064511177007633025131 0ustar jacobusers########################################## # Holotz's Castle story - Level 33 # The end ########################################## {[ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} { [ NARRATIVE text=" EINDE " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/nl/level002.hcs0000644000175000001440000000240211177007633025116 0ustar jacobusers########################################## # Holotz's Castle story - Level 2 # Ybelle enters the castle ########################################## { [ DIALOG main(0) text="Neeee!" txtAlign=4 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Dat deed pijn!" txtAlign=4 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="LUDAR!" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="?" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="Misschien kan hij mij niet horen." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Wat...?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] } { [ MOVE main(0) dir=4 amount=1 ] [ DIALOG main(0) text="Wat is de bedoeling van al die sleutels?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } # REMIND USER THAT THIS IS YBELLE. # TEACH THE USER THAT SPACE IS JUMP. # MAKE SURE THEY KNOW WHAT A "MAGIC PORTAL" IS, TO SET UP THE JOKE IN LEVEL 16. { [ NARRATIVE text="Druk op spatie om Ybelle in de magische poort te laten springen" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/nl/level016.hcs0000644000175000001440000001663111177007633025134 0ustar jacobusers########################################## # Holotz's Castle story - Level 16 # Ludar talks to the two flames ########################################## {[ DIALOG main(0) text="Oeps" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_UltraSlow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Oeh, nog een steen!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ NARRATIVE text="Ludar en de Twee Vlammen" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ] [ DIALOG main(0) text="...en nog een!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Halt!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="???" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Wie is daar?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(0) text="Ik zei HALT!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=4 ] [ DIALOG main(0) text="Oh, een pratende vlam!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Ik ben geen pratende vlam!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Oh!" txtAlign=5 speed=4 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Ik ben een sprekende vlam!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Hoe wist je wat ik dacht?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Ik weet alles!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ahem..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Nou ja, bijna alles" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ze leest gedachten..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="En ik lees..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...Boeken" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Hoe ben je hier gekomen?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Ik weet het..." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, Ze gaat mijn gedachten lezen!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Via de mystieke poort!!" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=3 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="hmpfxs#@!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Wacht, ga niet weg" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=5 ]} {[ DIALOG main(0) text="Ik heb geen tijd voor grapjes!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Wat heb je nodig?" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=3 ]} {[ DIALOG main(0) text="Ik moet Ybelle vinden" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="We moeten terug naar het Land van Lizarno" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm...een Lizarniet, Interessant" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=1 ]} {[ DIALOG enemy(1) text="Vanaf hier wordt het kasteel veel gevaarlijker" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Maar jij mist magische krachten" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="en je kunt het hoogste nivo niet bereiken" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Ja, wat jij nodig hebt, is..." txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Een paar schoenen!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Een paar schoenen!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, houd op met grapjes maken!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Maar je kunt ze alleen krijgen van" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="De Heer van De Schoenen" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Is er geen andere manier om een paar schoenen te krijgen?" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(1) text="Ja, je kunt ze krijgen in" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="De schoenenwinkel!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="De schoenenwinkel!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Dit is erg vermoeiend!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Wacht" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(1) text="Je kunt een paar vinden" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="in de kamer achter deze mystieke poort" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Maar je moet weten" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="dat nog niemand die levend verlaten heeft" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG main(0) text="Hmm... Nu ja, Ik moet het proberen" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Oh! Maar ik kan de poort niet openen" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Die steen is te hoog!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Nou, gebruik deze trap dan" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/nl/level014.hcs0000644000175000001440000001537311177007633025134 0ustar jacobusers########################################## # Holotz's Castle story - Level 14 # Ybelle finds the shoe maker ########################################## {[ DIALOG main(0) text="Pfff! Gelukkig ben ik eruit" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Maar, wat is dit voor een plek?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ NARRATIVE text="Ybelle in De Werkplaats van de Schoenenmaker" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=2 amount=3 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=6 amount=3 ]} {[ MOVE main(0) dir=9 amount=1 ] [ DIALOG enemy(0) text="Een bezoeker!" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=1 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ DIALOG main(0) text="Wat een vreemde gozer!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Wat een vreemde gozer!" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=1 ] } {[ DIALOG main(0) text="Eh.. Hallo?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Jij..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="lijkt..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="niet..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="uit..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="deze..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="buurt..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="te..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="komen" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Het leek erop dat hij in slaap zou vallen!!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="Ben... jij... de..." txtAlign=5 speed=1 size=0 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Luister... Oh" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="nieuwe..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Nieuw, zei je?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Nou, ja, Ik ben hier nieuw" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Wie ben jij?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ik... ben..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="De Heer van De Schoenen" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Je bent... gekomen... voor..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="een... nieuw... paar..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...Nietwaar?" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Nou, eigenlijk" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Neem..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Ik..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...deze" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Je... sprongen... zullen..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Weet u een weg hiervandaan?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } {[ DIALOG enemy(0) text="Even... denken..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Nee" txtAlign=5 speed=1 size=2 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Alleen... Holotz..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="weet dat..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Holotz?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ja..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hij... maakte..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="dit alles..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Waar kan ik hem vinden?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Dat kan... je niet..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hij zal... jou... vinden" txtAlign=5 speed=1 size=2 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="Nu... moet... ik..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="terug... aan... het... werk" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="M-maar...!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Nu... moet... ik..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Oh, laat deze onzin maar zitten!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Nu ja, Ik ga... bedankt voor de schoenen" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=7 amount=2 ]} {[ MOVE main(0) dir=7 amount=2 ]} {[ DIALOG main(0) text="Maar, waar moet ik nu heen?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Nu ja." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Wanneer je verdwaalt bent" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="dan is elke richting de goede" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ MOVE main(0) dir=2 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/en/0000755000175000001440000000000011177007633023061 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/script/en/level025.hcs0000644000175000001440000000576511177007633025133 0ustar jacobusers########################################## # Holotz's Castle story - Level 25 # Holotz appears ########################################## # This jump is just to scroll the screen up so the text is visible. # A better fix would be to redesign the level so Holotz isn't so high up. {[ MOVE main(0) dir=5 amount=1 ]} { [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] [ NARRATIVE text="Holotz." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } {[ MOVE enemy(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ] [ DIALOG main(0) text="By the power of Hutazin!..." txtAlign=5 speed=5 size=2 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE main(0) dir=6 amount=3 ] [ DIALOG main(0) text="Elemental Portal, open!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ WAIT millis=3000 ]} {[ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=5 size=1 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=5 amount=1 ] [ DIALOG main(0) text="It failed again!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ] [ MOVE enemy(0) dir=9 amount=1 ] [ DIALOG main(0) text="You!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG main(0) text="Where's the prisoner?" txtAlign=5 speed=5 size=2 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG enemy(0) text="We took him to the Labyrinth of Froj as you told us" txtAlign=5 speed=5 size=1 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Well done" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="But you must know" txtAlign=5 speed=5 size=1 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="that he had shoes, sir" txtAlign=5 speed=5 size=1 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Dolt! Wait, I mean..." txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE enemy(0) dir=4 amount=1 ]} # When Holotz yells, the demon falls back one stair step {[ DIALOG main(0) text="You utterly peabrained half-wit!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] [ MOVE enemy(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Why didn't you tell me!" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="I..." txtAlign=5 speed=5 size=1 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="They'll have reached the tower by now" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Summon all the beasts!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Yes, sir" txtAlign=5 speed=5 size=2 align=0 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(0) dir=7 amount=2 ]} {[ MOVE enemy(0) dir=7 amount=2 ] [ DIALOG main(0) text="We're going to give those Lizarnites a surprise" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/en/level007.hcs0000644000175000001440000000337311177007633025124 0ustar jacobusers########################################## # Holotz's Castle story - Level 7 # Ludar enters the castle ########################################## { [ DIALOG main(0) text="err... Ybelle, Wait for me!" txtAlign=4 speed=2 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] } { [ MOVE main(0) dir=6 amount=1 ] [ DIALOG main(0) text="Oh, no!" txtAlign=4 speed=5 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Who put that hole there?" txtAlign=4 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Help! Ybelle!" txtAlign=5 speed=1 size=3 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Why won't he answer?" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="You stubborn fool!" txtAlign=5 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, hey!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Those stones are similar to the one Ybelle took" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { # EXPLAIN WHY YBELLE IS GRABBING STONES AFTER HE TOLD LUDAR NOT TO [ DIALOG main(0) text="Could they be the way out of here?" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { # SHOULD GIVE USER A HINT THAT GAME IS STARTING AS LUDAR [ DIALOG main(0) text="I guess it's my turn to take a risk" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] } # MORE HINTS FOR THE USER AND A REMINDER THAT THIS GUY IS LUDAR { [ NARRATIVE text="Holding space makes Ludar jump higher" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/en/level030.hcs0000644000175000001440000000360111177007633025112 0ustar jacobusers########################################## # Holotz's Castle story - Level 30 # Ybelle and Ludar meet again ########################################## {[ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ MOVE main(0) dir=8 amount=6 ] [ MOVE enemy(0) dir=8 amount=6 ] [ MOVE enemy(1) dir=8 amount=6 ] [ MOVE enemy(2) dir=8 amount=6 ]} {[ MOVE main(0) dir=6 amount=3 ] [ MOVE enemy(0) dir=4 amount=3 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=8 amount=4 ]} {[ MOVE main(0) dir=6 amount=4 ] [ MOVE enemy(0) dir=4 amount=4 ] [ MOVE enemy(1) dir=4 amount=3 ] [ MOVE enemy(2) dir=6 amount=3 ]} {[ DIALOG main(0) text="Ludar!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ybelle!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] [ MOVE enemy(0) dir=6 amount=1 ]} {[ DIALOG main(0) text="You're alive!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="You're not dead!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] [ MOVE enemy(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Nice shoes" txtAlign=5 speed=5 size=2 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="We do better as a team" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Follow me!" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Hmm..." txtAlign=5 speed=5 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="How about together?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Together." txtAlign=5 speed=5 size=2 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=8 amount=3 ] [ MOVE enemy(0) dir=8 amount=3 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/en/level001.hcs0000644000175000001440000000517611177007633025121 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle and Ludar arrive to the castle ########################################## { [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] } { [ NARRATIVE text="Ybelle and Ludar." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } { [ DIALOG main(0) text="Whoa! What happened?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] [ MOVE enemy(0) dir=6 amount=3 ] } { [ DIALOG enemy(0) text="I told you not to touch that stone!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, be quiet..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="How was I to know?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Where are we?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="HA! You tell me!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="If you had just kept your hands off..." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Lump..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Nincompoop..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="We have to find a way to return home" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Follow me, Ludar" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="No way, José! You're always getting me into trouble" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="This time we'll do what I say" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Well..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="I guess I'll go alone" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=5 ] } { [ DIALOG enemy(0) text="???" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=8 amount=3 ] } { [ MOVE enemy(0) dir=6 amount=3 ] [ DIALOG enemy(0) text="err... Ybelle, Wait up!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ MOVE main(0) dir=6 amount=3 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/en/level032.hcs0000644000175000001440000000160611177007633025117 0ustar jacobusers########################################## # Holotz's Castle story - Level 32 # Return to the land of Lizarno ########################################## {[ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCCredits.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="We're in Lizarno!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="We're home!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Hey, look at that stone!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Don't touch it!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/en/level020.hcs0000644000175000001440000000702511177007633025115 0ustar jacobusers########################################## # Holotz's Castle story - Level 20 # Ybelle is captured (continued) ########################################## {[ MOVE enemy(0) dir=8 amount=0 ] [ MOVE enemy(1) dir=8 amount=0 ] [ MOVE enemy(2) dir=4 amount=0 ] [ MOVE enemy(3) dir=6 amount=0 ] [ MOVE enemy(4) dir=4 amount=0 ] [ MOVE enemy(5) dir=6 amount=0 ]} {[ WAIT millis=1000]} {[ DIALOG main(0) text="Halt, don't move!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="Hee hee" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(1) text="Huh?" txtAlign=5 speed=5 size=3 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Don't make me bust out my Kung Fu!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ MOVE enemy(1) dir=4 amount=3 ] [ DIALOG enemy(1) text="Look!" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(1) dir=4 amount=1 ] [ DIALOG enemy(5) text="What?" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="He has... shoes" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Oh ho! Holotz won't like that" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="What do you want?" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE enemy(5) dir=6 amount=4 ] [ MOVE main(0) dir=6 amount=1 ] [ DIALOG enemy(5) text="The question is..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="What are you doing here?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="I took a stone and..." txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="And a mystic portal opened. Right?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Yes, exactly!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Seems that Holotz's experiments haven't succeeded" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="I'm amused you have gotten this far..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(4) text="What do we do with him?" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="We do as Holotz said..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...we take him to the Labyrinth of Froj" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="There he'll stay until Holotz decides his fate..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...if the four crazy brothers don't find him first!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Har, har!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(2) text="Hur, hur, hur!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ] } {[ DIALOG main(0) text="Gulp!" txtAlign=5 speed=5 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} # LET USER KNOW THEY'RE SWITCHING BACK TO LUDAR. {[ DIALOG main(0) text="I hope Ludar's okay..." txtAlign=5 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=1 ]} { [ NARRATIVE text="You can change Ludar's direction mid-jump." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/en/level019.hcs0000644000175000001440000000244511177007633025126 0ustar jacobusers########################################## # Holotz's Castle story - Level 19 # Ybelle is captured ########################################## {[ DIALOG main(0) text="AAAH!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCMainTitle_Fast.wav" loops=0 waitToEnd=0 ]} {[ MOVE enemy(0) dir=8 amount=4 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=4 amount=2 ] [ MOVE enemy(3) dir=6 amount=2 ] [ MOVE enemy(4) dir=4 amount=5 ] [ MOVE enemy(5) dir=6 amount=5 ] [ DIALOG main(0) text="Uh oh" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(2) text="!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=1 ] [ DIALOG enemy(3) text="!" txtAlign=5 speed=1 size=2 align=0 r=220 g=20 b=20 subtype=1 ]} {[ NARRATIVE text=" TO BE CONTINUED... " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=3 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=1 ]} {[ DIALOG main(0) text="Eeeh!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ DIALOG main(0) text="Don't leave me here!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ WAIT millis=3000]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/en/level033.hcs0000644000175000001440000000064711177007633025124 0ustar jacobusers########################################## # Holotz's Castle story - Level 33 # The end ########################################## {[ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} { [ NARRATIVE text=" THE END " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/en/level002.hcs0000644000175000001440000000234111177007633025111 0ustar jacobusers########################################## # Holotz's Castle story - Level 2 # Ybelle enters the castle ########################################## { [ DIALOG main(0) text="Noooo!" txtAlign=4 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="That hurt!" txtAlign=4 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="LUDAR!" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="?" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="Maybe he can't hear me." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="What the...?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] } { [ MOVE main(0) dir=4 amount=1 ] [ DIALOG main(0) text="What's with all the keys?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } # REMIND USER THAT THIS IS YBELLE. # TEACH THE USER THAT SPACE IS JUMP. # MAKE SURE THEY KNOW WHAT A "MAGIC PORTAL" IS, TO SET UP THE JOKE IN LEVEL 16. { [ NARRATIVE text="Press space to make Ybelle jump into the magic portal" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/en/level016.hcs0000644000175000001440000001647611177007633025134 0ustar jacobusers########################################## # Holotz's Castle story - Level 16 # Ludar talks to the two flames ########################################## {[ DIALOG main(0) text="Oops" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_UltraSlow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Oh, another stone!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ NARRATIVE text="Ludar and the Two Flames" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ] [ DIALOG main(0) text="...and another!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Halt!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="???" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Who's here?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(0) text="I said HALT!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=4 ] [ DIALOG main(0) text="Oh, a speaking flame!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="I'm not a speaking flame!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Oh!" txtAlign=5 speed=4 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="I'm a talking flame!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="How did you know my thoughts?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="I know everything!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ahem..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Well, almost everything" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="She reads the mind..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="And I read..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...Books" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="How did you get here?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="I know..." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, She's going to read my mind!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="By the mystic portal!!" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=3 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="hmpfxs#@!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Wait, don't leave" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=5 ]} {[ DIALOG main(0) text="I don't have time for jokes!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="What do you need?" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=3 ]} {[ DIALOG main(0) text="I have to find Ybelle" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="We have to return to the Land of Lizarno" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm...a Lizarnite, how interesting" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=1 ]} {[ DIALOG enemy(1) text="From here the castle turns more dangerous" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="But you lack magical power" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="and cannot reach the highest level" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Yes, what you need is..." txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="A pair of shoes!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="A pair of shoes!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, stop joking!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="But you can only obtain them from" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="The Lord of The Shoes" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Isn't there any other way to get a pair of shoes?" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(1) text="Yes, you can obtain them in" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="The shoe store!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="The shoe store!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="This is exasperating!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Wait" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(1) text="You can find a pair" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="in the room beyond this mystic portal" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="But you must know" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="that nobody has left it alive" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG main(0) text="Hmm... Well, I must try" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Oh! But I can't open the portal" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="That stone is too high!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Well, then use this ladder" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/en/level014.hcs0000644000175000001440000001507411177007633025123 0ustar jacobusers########################################## # Holotz's Castle story - Level 14 # Ybelle finds the shoe maker ########################################## {[ DIALOG main(0) text="Whew! I'm glad to be out of there" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="But, what's this place?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ NARRATIVE text="Ybelle in The Shoemaker's Workshop" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=2 amount=3 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=6 amount=3 ]} {[ MOVE main(0) dir=9 amount=1 ] [ DIALOG enemy(0) text="A visitor!" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=1 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ DIALOG main(0) text="What a strange guy!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="What a strange guy!" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=1 ] } {[ DIALOG main(0) text="Err.. Hello?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="You..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="seem..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="not..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="to..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="be..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="from..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="here" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Looks like he was going to fall asleep!!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="Are... you... the..." txtAlign=5 speed=1 size=0 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Look... Oh" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="new..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="New, you say?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Why, yes, I am new here" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Who are you?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="I... am..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="The Lord of The Shoes" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="You've... come... for..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="a... new... pair..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...Right?" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Well, actually" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Take..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="I..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...these" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Your... jumps... will..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="be..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Do you know how to get out of here?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } {[ DIALOG enemy(0) text="Let... me... think..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="No" txtAlign=5 speed=1 size=2 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Only... Holotz..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="knows..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Holotz?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Yes..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="He... created..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="this..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Where can I find him?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="You... can't..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="He'll... find... you" txtAlign=5 speed=1 size=2 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="Now... I... must..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="return... to... work" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="B-but...!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Now... I... must..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Oh, forget this nonsense!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Well, I'm going... thanks for the shoes" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=7 amount=2 ]} {[ MOVE main(0) dir=7 amount=2 ]} {[ DIALOG main(0) text="But, where do I go now?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Oh well." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="When you're lost" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="any direction is forward" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ MOVE main(0) dir=2 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sr/0000755000175000001440000000000011177007633023103 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/script/sr/level025.hcs0000644000175000001440000000645611177007633025153 0ustar jacobusers########################################## # Holotz's Castle story - Level 25 # Holotz appears ########################################## # This jump is just to scroll the screen up so the text is visible. # A better fix would be to redesign the level so Holotz isn't so high up. {[ MOVE main(0) dir=5 amount=1 ]} { [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] [ NARRATIVE text="Холоц." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } {[ MOVE enemy(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ] [ DIALOG main(0) text="Тако ми моћи Хутазина!..." txtAlign=5 speed=5 size=2 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE main(0) dir=6 amount=3 ] [ DIALOG main(0) text="Пролазу елемената, отвори се!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ WAIT millis=3000 ]} {[ DIALOG main(0) text="Хммм..." txtAlign=5 speed=5 size=1 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=5 amount=1 ] [ DIALOG main(0) text="Опет није успело!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ] [ MOVE enemy(0) dir=9 amount=1 ] [ DIALOG main(0) text="Ти!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG main(0) text="Где је затвореник?" txtAlign=5 speed=5 size=2 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG enemy(0) text="Овели смо га у Фрохов лавиринт како сте нам рекли" txtAlign=5 speed=5 size=1 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Одлично" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Али морате знати" txtAlign=5 speed=5 size=1 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="да је имао ципеле, господине" txtAlign=5 speed=5 size=1 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Глупане! Чекај, хоћу да кажем..." txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE enemy(0) dir=4 amount=1 ]} # When Holotz yells, the demon falls back one stair step {[ DIALOG main(0) text="Ти потпуно безмозговни идиоте!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] [ MOVE enemy(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Зашто ми ниси рекао!" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ја..." txtAlign=5 speed=5 size=1 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="До сада су већ стигли до куле" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Призови све звери!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Да, господине" txtAlign=5 speed=5 size=2 align=0 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(0) dir=7 amount=2 ]} {[ MOVE enemy(0) dir=7 amount=2 ] [ DIALOG main(0) text="Приредићемо тим Лизарнићанима изненађење" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sr/level007.hcs0000644000175000001440000000377711177007633025156 0ustar jacobusers########################################## # Holotz's Castle story - Level 7 # Ludar enters the castle ########################################## { [ DIALOG main(0) text="ехеј... Ибело, чекај ме!" txtAlign=4 speed=2 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] } { [ MOVE main(0) dir=6 amount=1 ] [ DIALOG main(0) text="О, не!" txtAlign=4 speed=5 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ко је ставио ову рупу овде?" txtAlign=4 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Упомоћ! Ибело!" txtAlign=5 speed=1 size=3 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Зашто неће да ми одговори?" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Луда тврдоглава!" txtAlign=5 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ох, хеј!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Ови каменови су слични оном који је Ибела узела" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { # EXPLAIN WHY YBELLE IS GRABBING STONES AFTER HE TOLD LUDAR NOT TO [ DIALOG main(0) text="Да ли би они могли бити пут за излазак одавде?" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { # SHOULD GIVE USER A HINT THAT GAME IS STARTING AS LUDAR [ DIALOG main(0) text="Претпостављам да је на мене ред да преузмем ризик" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] } # MORE HINTS FOR THE USER AND A REMINDER THAT THIS GUY IS LUDAR { [ NARRATIVE text="Држањем размака Лудар скаче више" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sr/level030.hcs0000644000175000001440000000370511177007633025141 0ustar jacobusers########################################## # Holotz's Castle story - Level 30 # Ybelle and Ludar meet again ########################################## {[ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ MOVE main(0) dir=8 amount=6 ] [ MOVE enemy(0) dir=8 amount=6 ] [ MOVE enemy(1) dir=8 amount=6 ] [ MOVE enemy(2) dir=8 amount=6 ]} {[ MOVE main(0) dir=6 amount=3 ] [ MOVE enemy(0) dir=4 amount=3 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=8 amount=4 ]} {[ MOVE main(0) dir=6 amount=4 ] [ MOVE enemy(0) dir=4 amount=4 ] [ MOVE enemy(1) dir=4 amount=3 ] [ MOVE enemy(2) dir=6 amount=3 ]} {[ DIALOG main(0) text="Лударе!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ибело!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] [ MOVE enemy(0) dir=6 amount=1 ]} {[ DIALOG main(0) text="Жив си!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ти ниси мртва!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] [ MOVE enemy(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="Лепе ципеле" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Бољи смо заједно" txtAlign=5 speed=5 size=2 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Прати ме!" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Хмм..." txtAlign=5 speed=5 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="А да идемо заједно?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Заједно." txtAlign=5 speed=5 size=2 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=8 amount=3 ] [ MOVE enemy(0) dir=8 amount=3 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sr/level001.hcs0000644000175000001440000000557011177007633025141 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle and Ludar arrive to the castle ########################################## { [ DIALOG main(0) text="Ааах!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Аах!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] } { [ NARRATIVE text="Ибела и Лудар." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ух! Шта се десило?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] [ MOVE enemy(0) dir=6 amount=3 ] } { [ DIALOG enemy(0) text="Рекао сам ти да не дираш тај камен!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ма, ућути..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Како сам могла да знам?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Где смо?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="ХА! То ми ти кажи!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Да си само држала своје руке к себи..." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Тупсон..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Глупачица..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Морамо наћи начин да се вратимо кући" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Прати ме, Лударе" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Нема шансе! Увек ме уваљујеш у невоље" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Овај пут ћемо радити како ја кажем" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Па..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Онда ћу ићи сама" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=5 ] } { [ DIALOG enemy(0) text="???" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=8 amount=3 ] } { [ MOVE enemy(0) dir=6 amount=3 ] [ DIALOG enemy(0) text="ехеј... Ибело, чекај!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ MOVE main(0) dir=6 amount=3 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sr/level032.hcs0000644000175000001440000000167311177007633025145 0ustar jacobusers########################################## # Holotz's Castle story - Level 32 # Return to the land of Lizarno ########################################## {[ DIALOG main(0) text="Ааах!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Аах!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCCredits.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Ми смо у Лизарну!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ми смо кући!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Хеј, види овај камен!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Не додируј га!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sr/level020.hcs0000644000175000001440000000773411177007633025146 0ustar jacobusers########################################## # Holotz's Castle story - Level 20 # Ybelle is captured (continued) ########################################## {[ MOVE enemy(0) dir=8 amount=0 ] [ MOVE enemy(1) dir=8 amount=0 ] [ MOVE enemy(2) dir=4 amount=0 ] [ MOVE enemy(3) dir=6 amount=0 ] [ MOVE enemy(4) dir=4 amount=0 ] [ MOVE enemy(5) dir=6 amount=0 ]} {[ WAIT millis=1000]} {[ DIALOG main(0) text="Стој, не мрдај!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="Хее хее" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(1) text="Ух?" txtAlign=5 speed=5 size=3 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Не терајте ме да употребим свој кунг фу!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ MOVE enemy(1) dir=4 amount=3 ] [ DIALOG enemy(1) text="Видите!" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(1) dir=4 amount=1 ] [ DIALOG enemy(5) text="Шта?" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Она има... ципеле" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Уху! Холоцу се ово неће свидети" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Шта желите?" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE enemy(5) dir=6 amount=4 ] [ MOVE main(0) dir=6 amount=1 ] [ DIALOG enemy(5) text="Питање је..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Шта ти тражиш овде?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Узела сам камен и..." txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="И мистични пролаз се отворио. Зар не?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Управо тако!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Изгледа да Холоцови експерименти нису успели" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="Забавља ме то што си стигла овако далеко..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(4) text="Шта да радимо са њом?" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Ми радимо како Холоц каже..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...одвешћемо је у Фрохов лавиринт" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Тамо ће остати док Холоц не одлучи њену судбину..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...ако је четворица браће лудака не нађу прво!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Хар, хар!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(2) text="Хур, хур, хур!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ] } {[ DIALOG main(0) text="Гулп!" txtAlign=5 speed=5 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} # LET USER KNOW THEY'RE SWITCHING BACK TO LUDAR. {[ DIALOG main(0) text="Надам се да је Лудар добро..." txtAlign=5 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=1 ]} { [ NARRATIVE text="Можеш променити Лударов смер усред скока." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sr/level019.hcs0000644000175000001440000000251111177007633025142 0ustar jacobusers########################################## # Holotz's Castle story - Level 19 # Ybelle is captured ########################################## {[ DIALOG main(0) text="АААХ!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCMainTitle_Fast.wav" loops=0 waitToEnd=0 ]} {[ MOVE enemy(0) dir=8 amount=4 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=4 amount=2 ] [ MOVE enemy(3) dir=6 amount=2 ] [ MOVE enemy(4) dir=4 amount=5 ] [ MOVE enemy(5) dir=6 amount=5 ] [ DIALOG main(0) text="Ух ох" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(2) text="!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=1 ] [ DIALOG enemy(3) text="!" txtAlign=5 speed=1 size=2 align=0 r=220 g=20 b=20 subtype=1 ]} {[ NARRATIVE text=" НАСТАВИЋЕ СЕ... " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=3 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=1 ]} {[ DIALOG main(0) text="Ееех!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ DIALOG main(0) text="Не остављај ме овде!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ WAIT millis=3000]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sr/level033.hcs0000644000175000001440000000066111177007633025142 0ustar jacobusers########################################## # Holotz's Castle story - Level 33 # The end ########################################## {[ DIALOG enemy(0) text="Аах!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ DIALOG main(0) text="Ааах!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} { [ NARRATIVE text=" КРАЈ " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sr/level002.hcs0000644000175000001440000000251011177007633025131 0ustar jacobusers########################################## # Holotz's Castle story - Level 2 # Ybelle enters the castle ########################################## { [ DIALOG main(0) text="Нееее!" txtAlign=4 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Ово боли!" txtAlign=4 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="ЛУДАРЕ!" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="?" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="Можда не може да ме чује." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Шта бре...?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] } { [ MOVE main(0) dir=4 amount=1 ] [ DIALOG main(0) text="Шта су сви ови кључеви?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } # REMIND USER THAT THIS IS YBELLE. # TEACH THE USER THAT SPACE IS JUMP. # MAKE SURE THEY KNOW WHAT A "MAGIC PORTAL" IS, TO SET UP THE JOKE IN LEVEL 16. { [ NARRATIVE text="Притисни размак да би Ибела скочила у чаробни пролаз" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sr/level016.hcs0000644000175000001440000002021711177007633025142 0ustar jacobusers########################################## # Holotz's Castle story - Level 16 # Ludar talks to the two flames ########################################## {[ DIALOG main(0) text="Опа" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_UltraSlow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Гле, још један камен!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ NARRATIVE text="Лудар и два пламена" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ] [ DIALOG main(0) text="...и још један!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Стој!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="???" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Ко је то?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(0) text="Рекох СТОЈ!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=4 ] [ DIALOG main(0) text="Гле, пламен који говори!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Ја нисам пламен који говори!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Не?" txtAlign=5 speed=4 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Ја сам пламен који прича!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Како си знао моје мисли?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Ја знам све!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Хммм..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Па, скоро све" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Она чита мисли..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="А ја читам..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...књиге" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Хар, хар, хар!" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Хур, хур, хур!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Како си доспео овде?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Знам..." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Ух, сад ће да ми прочита мисли!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Кроз чаробни пролаз!!!" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Хар, хар, хар!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Хур, хур, хур!" txtAlign=5 speed=1 size=3 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="хрмпф#@!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Чекај, не одлази" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=5 ]} {[ DIALOG main(0) text="Немам времена за шале!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Шта ти је потребно?" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=3 ]} {[ DIALOG main(0) text="Морам да нађем Ибелу" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ми морамо да се вратимо у земљу Лизарно" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Хммм... Лизарнићанин, како занимљиво" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=1 ]} {[ DIALOG enemy(1) text="Одавде замак постаје све опаснији" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Али ти немаш чаробне моћи" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="и не можеш досећи највиши ниво" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Да, оно што ти треба је..." txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Пар ципела!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Пар ципела!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Ама, престаните да се шалите!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Али, њих ти може дати једино" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Господар ципела" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Зар не постоји неки други начин да добијем пар ципела?" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(1) text="Да, можеш их набавити у" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="продавници ципела!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="продавници ципела!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Хар, хар, хар!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Хур, хур, хур!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Ово је излуђујуће!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Чекај" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(1) text="Можеш наћи један пар" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="у соби иза овог чаробног пролаза" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Али мораш знати" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="да је још нико није напустио жив" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Ух!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG main(0) text="Хмм... Па, морам да покушам" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Ух! Али не могу да отворим пролаз" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Овај камен је превисоко!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Па, онда употреби ове мердевине" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sr/level014.hcs0000644000175000001440000001602211177007633025137 0ustar jacobusers########################################## # Holotz's Castle story - Level 14 # Ybelle finds the shoe maker ########################################## {[ DIALOG main(0) text="Уф! Драго ми је што сам отишла оданде" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Бре, шта је ово место?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ NARRATIVE text="Ибела у обућаревој радионици" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=2 amount=3 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=6 amount=3 ]} {[ MOVE main(0) dir=9 amount=1 ] [ DIALOG enemy(0) text="Посетилац!" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=1 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ DIALOG main(0) text="Како чудан лик!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Како чудан лик!" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=1 ] } {[ DIALOG main(0) text="Овај.. Здраво?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ти..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="како..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="ми..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="се..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="чини..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="ниси..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="одавде" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Хммм..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Изгледа као да је хтео да заспи!!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="Јеси... ли..." txtAlign=5 speed=1 size=0 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Види... овај" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="нов..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Нов, кажеш?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="О, да, ја сам нова овде" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Ко си ти?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ја... сам..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Господар ципела" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Дошао... си... по..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="нови... пар..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...зар не?" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Па, у ствари" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Узми..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="ја..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...ове" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Твоји... ће... скокови..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="бити..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Да ли знаш како да изађем одавде?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } {[ DIALOG enemy(0) text="Да... размислим..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Не" txtAlign=5 speed=1 size=2 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Само... Холоц..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="зна..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Холоц?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Да..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Он... је... направио..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="ово..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Где га могу наћи?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Не... можеш..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Он ће... наћи... тебе" txtAlign=5 speed=1 size=2 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="Сада... морам... да..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="се... вратим... на посао..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="А-али...!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Сада... морам... да..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ма, заборави на све ово!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Па, одлазим... хвала на ципелама" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=7 amount=2 ]} {[ MOVE main(0) dir=7 amount=2 ]} {[ DIALOG main(0) text="Али, куда ћу сада?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Па добро." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Кад си изгубљен" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="сваки смер је напред" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ MOVE main(0) dir=2 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/de/0000755000175000001440000000000011177007633023047 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/script/de/level025.hcs0000644000175000001440000000523111177007633025105 0ustar jacobusers########################################## # Holotz's Castle story - Level 25 # Holotz appears ########################################## { [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] [ NARRATIVE text="Holotz." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } {[ MOVE enemy(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ] [ DIALOG main(0) text="Bei der Macht von Hutazin!..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE main(0) dir=6 amount=3 ] [ DIALOG main(0) text="Elementares Portal, öffene dich!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ WAIT millis=3000 ]} {[ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=5 amount=1 ] [ DIALOG main(0) text="Es hat wieder nicht geklappt!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ] [ MOVE enemy(0) dir=9 amount=1 ] [ DIALOG main(0) text="Du!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG main(0) text="Wo ist der Lizarnit?" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG enemy(0) text="Wir haben ihn ins Labyrinth von Froj gebracht, wir ihr es uns sagtet." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Gut gemacht!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Aber ihr müsst wissen," txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="dass er Schuhe hatte, Herr!" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Trottel!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Trottel! Wieso hast du das mir nicht mitgeteilt!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ich..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Bei der Geschwindigkeit werden sie den Turm erreicht haben!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Holt all die Monster!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ja, Herr!" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(0) dir=7 amount=2 ]} {[ MOVE enemy(0) dir=7 amount=3 ] [ DIALOG main(0) text="Diesen Lizarniten werden wir eine schöne Überraschung bereiten!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/de/level007.hcs0000644000175000001440000000245011177007633025105 0ustar jacobusers########################################## # Holotz's Castle story - Level 7 # Ludar enters the castle ########################################## { [ DIALOG main(0) text="Ähm... Ybelle, Warte auf mich!" txtAlign=4 speed=2 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] } { [ MOVE main(0) dir=6 amount=1 ] [ DIALOG main(0) text="Oh, nein!" txtAlign=4 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Wo kam denn dieses Loch her?" txtAlign=4 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ybelle!" txtAlign=5 speed=1 size=3 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Das ist dumm!" txtAlign=5 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, schau!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Diese Steine sehen so aus wie der, den Ybelle angefasst hat." txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Was ist das hier für ein seltsamer Ort?" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/de/level030.hcs0000644000175000001440000000250111177007633025076 0ustar jacobusers########################################## # Holotz's Castle story - Level 30 # Ybelle and Ludar met again ########################################## {[ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ MOVE main(0) dir=8 amount=6 ] [ MOVE enemy(0) dir=8 amount=6 ] [ MOVE enemy(1) dir=8 amount=6 ] [ MOVE enemy(2) dir=8 amount=6 ]} {[ MOVE main(0) dir=6 amount=3 ] [ MOVE enemy(0) dir=4 amount=3 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=8 amount=4 ]} {[ MOVE main(0) dir=6 amount=4 ] [ MOVE enemy(0) dir=4 amount=4 ] [ MOVE enemy(1) dir=4 amount=3 ] [ MOVE enemy(2) dir=6 amount=3 ]} {[ DIALOG main(0) text="Ludar!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ybelle!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Du lebst!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Du bist nicht tot!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Nun, dann können wir zusammen weitermachen!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Zur Leiter, folge mir!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ MOVE main(0) dir=8 amount=3 ] [ MOVE enemy(0) dir=8 amount=3 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/de/level001.hcs0000644000175000001440000000541311177007633025101 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle and Ludar arrive to the castle ########################################## { [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] } { [ NARRATIVE text="Ybelle und Ludar." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } { [ DIALOG main(0) text="Was war das?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] [ MOVE enemy(0) dir=6 amount=3 ] } { [ DIALOG enemy(0) text="Und ich sage noch: FASS DEN STEIN NICHT AN!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ja ja, ist ja gut..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Woher soll ich denn ahnen, was dann passiert?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Wo sind wir eigentlich?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Ha! Woher soll ich das denn wissen?" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Wenn du nicht das angefasst hättest, was du nicht hättest anfassen sollen..." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Trampel..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Trottel..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Wir müssen wieder einen Weg nach Hause finden." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Folge mir, Ludar!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Nein! Du bringst mich ständig in Schwierigkeiten!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Diesmal machen wir, was ich sage!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Gut, dann gehe ich eben alleine..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=5 ] } { [ DIALOG enemy(0) text="???" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=8 amount=3 ] } { [ MOVE enemy(0) dir=6 amount=3 ] [ DIALOG enemy(0) text="Ähm... Ybelle! Warte auf mich!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ MOVE main(0) dir=6 amount=3 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/de/level032.hcs0000644000175000001440000000162311177007633025104 0ustar jacobusers########################################## # Holotz's Castle story - Level 32 # Return to the land of Lizarno ########################################## {[ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCCredits.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Es ist Lizarno!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Wir sind zurück!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Eh, schau dir diesen Stein an!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Fass ihn nicht an!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/de/level020.hcs0000644000175000001440000000650411177007633025104 0ustar jacobusers########################################## # Holotz's Castle story - Level 20 # Ybelle is captured (continued) ########################################## {[ MOVE enemy(0) dir=8 amount=0 ] [ MOVE enemy(1) dir=8 amount=0 ] [ MOVE enemy(2) dir=4 amount=0 ] [ MOVE enemy(3) dir=6 amount=0 ] [ MOVE enemy(4) dir=4 amount=0 ] [ MOVE enemy(5) dir=6 amount=0 ]} {[ WAIT millis=1000]} {[ DIALOG main(0) text="Halt, keine Bewegung!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="Je je" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(1) text="Hmmm" txtAlign=5 speed=5 size=3 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ich warne dich, ich bin gefährlich!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ MOVE enemy(1) dir=4 amount=3 ] [ DIALOG enemy(1) text="Schau..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(1) dir=4 amount=1 ] [ DIALOG enemy(5) text="Was?" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Er hat Schuhe." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Hmmm... Holotz wird nicht erfreut sein." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Was willst Du?" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE enemy(5) dir=6 amount=4 ] [ MOVE main(0) dir=6 amount=1 ] [ DIALOG enemy(5) text="Die Frage ist..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Wie kommst du hierher?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ich nahm einen Stein und..." txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="und ein mystisches Portal öffnete sich, richtig?." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ja, genau so!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Sieht aus, wie eins von Holotz's Experimenten." txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="Unvollendet." txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="Ich finde es lustig, das du so weit gegangen bist..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(4) text="Was wollen wir mit ihm machen?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Wie Holotz gesagt hat..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...wir bringen ihn ins Labyrinth von Froj." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Er bleibt dort, bis Holotz entscheidet, was mit ihm zu tun ist..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...wenn die vier verrückten Brüder ihn nicht vorher finden." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Har, har!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(2) text="Hur, hur, hur!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/de/level019.hcs0000644000175000001440000000244611177007633025115 0ustar jacobusers########################################## # Holotz's Castle story - Level 19 # Ybelle is captured ########################################## {[ DIALOG main(0) text="AAAH!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCMainTitle_Fast.wav" loops=0 waitToEnd=0 ]} {[ MOVE enemy(0) dir=8 amount=4 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=4 amount=2 ] [ MOVE enemy(3) dir=6 amount=2 ] [ MOVE enemy(4) dir=4 amount=5 ] [ MOVE enemy(5) dir=6 amount=5 ] [ DIALOG main(0) text="Oh, oh" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(2) text="!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=1 ] [ DIALOG enemy(3) text="!" txtAlign=5 speed=1 size=2 align=0 r=220 g=20 b=20 subtype=1 ]} {[ NARRATIVE text=" Fortsetzung folgt... " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=3 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=1 ]} {[ DIALOG main(0) text="Iiih!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ DIALOG main(0) text="Lass mich nicht hier!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ WAIT millis=3000]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/de/level033.hcs0000644000175000001440000000064711177007633025112 0ustar jacobusers########################################## # Holotz's Castle story - Level 33 # The end ########################################## {[ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} { [ NARRATIVE text=" THE END " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/de/level002.hcs0000644000175000001440000000175111177007633025103 0ustar jacobusers########################################## # Holotz's Castle story - Level 2 # Ybelle enters the castle ########################################## { [ DIALOG main(0) text="Nein!" txtAlign=4 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Das tat weh!" txtAlign=4 speed=2 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="LUDAR!" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="...scheint so, als könnte er mich nicht hören." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Nun..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] } { [ MOVE main(0) dir=4 amount=1 ] [ DIALOG main(0) text="Wieso liegen hier nur so viele Schlüssel rum?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/de/level016.hcs0000644000175000001440000001706711177007633025117 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ludar talks to the two flames ########################################## {[ DIALOG main(0) text="Uups!" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_UltraSlow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Oh, noch ein Stein!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ NARRATIVE text="Die zwei Flammen" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ] [ DIALOG main(0) text="Noch einer!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Halt!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="???" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Ist da jemand?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(0) text="Ich sagte HALT!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=4 ] [ DIALOG main(0) text="Oh, eine sprechende Flamme!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Ich bin keine sprechende Flamme!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Oh!" txtAlign=5 speed=4 size=2 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Ich bin eine redende Flamme!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Woher weißt du, was ich denke?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Ich weiß alles!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ähm..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Nun, fast alles" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Wir lesen Gedanken..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Und ich lese..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...Bücher" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Wie bist du hierher gekommen?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Ich weiß..." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, Du liest gerade meine Gedanken!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Beim mystischen Portal!" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=3 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="hmpfxs#@!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Warte, gehe nicht" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=5 ]} {[ DIALOG main(0) text="Ich habe keine Zeit für Witze!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Was willst du?" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=3 ]} {[ DIALOG main(0) text="Ich will Ybelle finden" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Wir müssen ins Land von Lizarno zurückkehren" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm...ein Lizarnit, wie interessant" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=1 ]} {[ DIALOG enemy(1) text="Von nun an dreht sich das Schloss" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="viel gefährlicher" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="aber du hast nicht genug magische Energie" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="um die höchste Ebene zu erreichen" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Ja, was du brauchst ist..." txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="ein paar Schuhe!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Ein paar Schuhe!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, veralber mich nicht!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Aber du bekommst sie nur beim" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Herr der der Schuhe" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Gibt es keinen anderen Weg, um an ein Paar Schuhe zu kommen?" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(1) text="Ja, du kannst sie im" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Schuhladen kaufen!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Schuhladen kaufen!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Das ist schier zum verzweifeln!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Warte!" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(1) text="Du kannst welche im Raum" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="hinter dem mystischen Portal bekommen." txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Aber du musst wissen," txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="dass niemand dort wieder lebend heraus gekommen ist!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG main(0) text="Hmm... Egal, ich muss es probieren" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Oh!, ich kann das Portal nicht öffnen" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Dieser Stein ist zu hoch!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Nun, warum benutzt du nicht diese Leiter?" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/de/level014.hcs0000644000175000001440000001427411177007633025112 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle finds the shoe maker ########################################## {[ DIALOG main(0) text="?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Was ist das für ein Ort?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ NARRATIVE text="Schuhmachers" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=2 amount=3 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=6 amount=3 ]} {[ MOVE main(0) dir=9 amount=1 ] [ DIALOG enemy(0) text="Ooh, ein Besucher!" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=1 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ DIALOG main(0) text="Was für eine seltsame Gestalt!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Was für eine seltsame Gestalt!" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=1 ] } {[ DIALOG main(0) text="Ähm... Hallo?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Du scheinst nicht..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...von hier zu sein." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Sieht aus, als ob er im Begriff ist einzuschlafen!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="Du bist neu hier,..." txtAlign=5 speed=1 size=0 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...gerade..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...angekommen?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Verstehe... neu hier, sagst du?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, ja, vielleicht" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Wer bist du?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ich bin..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...der Herr der Schuhe" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Ich gehe davon aus..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...du kommst..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...wegen ein Paar neuer Schuhe..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...richtig?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Nimm..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Bekomme ich..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...diese" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Bestimmt..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...bewegst du dich..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...sicherer mit ihnen..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Weisst du einen Weg, wie man hier raus kommt?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...nein" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...nur Holotz..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...weiss es" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Holotz?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ja..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Er erbaute..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...dieses Schloss" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Wo kann ich ihn finden?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...du kannst es nicht" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Er..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...wird dich finden" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Nun muss..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...ich" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...weiterarbeiten" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="A-aber...!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Nun muss ich..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Lass es, es ist Unsinn." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Nun, ich gehe... Danke für die Schuhe!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=7 amount=2 ]} {[ MOVE main(0) dir=7 amount=2 ]} {[ DIALOG main(0) text="Und, wie geht's nun weiter?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Ach, wen interessiert's..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ MOVE main(0) dir=2 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/it/0000755000175000001440000000000011177007633023073 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/script/it/level025.hcs0000644000175000001440000000514711177007633025137 0ustar jacobusers########################################## # Storia de "Il castello di Holotz" - Levello 25 # L'apparizione di Holotz ########################################## { [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] [ NARRATIVE text="Holotz." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } {[ MOVE enemy(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ] [ DIALOG main(0) text="Per il potere di Hutazin!..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE main(0) dir=6 amount=3 ] [ DIALOG main(0) text="Portale Elementale, apriti!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ WAIT millis=3000 ]} {[ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=5 amount=1 ] [ DIALOG main(0) text="Si è chiuso di nuovo!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ] [ MOVE enemy(0) dir=9 amount=1 ] [ DIALOG main(0) text="Tu!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG main(0) text="Dove si trova il lizarnita?" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG enemy(0) text="Lo abbiamo portato al Labirinto di Froj, come hai ordinato..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Bene" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Devi sapere, signore..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="che ha trovato... le Scarpe." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Idiota!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Inetto! Perchè non me lo hai detto subito?!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Io..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Di questo passo raggiungerà la torre" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Portate le bestie!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Sì, mio signore" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(0) dir=7 amount=2 ]} {[ MOVE enemy(0) dir=7 amount=3 ] [ DIALOG main(0) text="Faremo ai lizarniti una bella sorpresa!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/it/level007.hcs0000644000175000001440000000242711177007633025135 0ustar jacobusers########################################## # Storia de "Il castello di Holotz" - Levello 7 # Ludar entra nel castello ########################################## { [ DIALOG main(0) text="err... Ybelle, Aspettami!" txtAlign=4 speed=2 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] } { [ MOVE main(0) dir=6 amount=1 ] [ DIALOG main(0) text="Oh, no!" txtAlign=4 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Chi ha messo un buco qui?!" txtAlign=4 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ybelle!" txtAlign=5 speed=1 size=3 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Che testardo!" txtAlign=5 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, guarda!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Queste pietre sono simili a quella che ha preso Ybelle" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Ma cos'è questo posto?!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/it/level030.hcs0000644000175000001440000000250411177007633025125 0ustar jacobusers########################################## # Storia de "Il castello di Holotz" - Levello 30 # Ybelle e Ludar si incontrano ########################################## {[ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ MOVE main(0) dir=8 amount=6 ] [ MOVE enemy(0) dir=8 amount=6 ] [ MOVE enemy(1) dir=8 amount=6 ] [ MOVE enemy(2) dir=8 amount=6 ]} {[ MOVE main(0) dir=6 amount=3 ] [ MOVE enemy(0) dir=4 amount=3 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=8 amount=4 ]} {[ MOVE main(0) dir=6 amount=4 ] [ MOVE enemy(0) dir=4 amount=4 ] [ MOVE enemy(1) dir=4 amount=3 ] [ MOVE enemy(2) dir=6 amount=3 ]} {[ DIALOG main(0) text="Ludar!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ybelle!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Sei vivo!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Non sei morto!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Bene, ora potremo continuare insieme!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Alla scala, seguimi!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ MOVE main(0) dir=8 amount=3 ] [ MOVE enemy(0) dir=8 amount=3 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/it/level001.hcs0000644000175000001440000000527011177007633025126 0ustar jacobusers########################################## # Storia de "Il castello di Holotz" - Livello 1 # Ybelle e Ludar arrivano al castello ########################################## { [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] } { [ NARRATIVE text="Ybelle e Ludar." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } { [ DIALOG main(0) text="Cosa è successo?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] [ MOVE enemy(0) dir=6 amount=3 ] } { [ DIALOG enemy(0) text="Lo avevo detto io di non toccare quella pietra!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, taci..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="E io come potevo saperlo?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Dove siamo finiti?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="HA! E che ne so?" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Se solo tu avessi toccato quello che non dovevi..." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Che stupido..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Che stupido..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Dobbiamo trovare il modo per tornarcene a casa" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Seguimi, Ludar" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Noo... con te ci si mette sempre nei guai" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Questa volta sarò io a dire cosa fare" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Ok, allora andrò da solo!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=5 ] } { [ DIALOG enemy(0) text="???" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=8 amount=3 ] } { [ MOVE enemy(0) dir=6 amount=3 ] [ DIALOG enemy(0) text="eeh... Ybelle, Aspettami!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ MOVE main(0) dir=6 amount=3 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/it/level032.hcs0000644000175000001440000000163311177007633025131 0ustar jacobusers########################################## # Storia de "Il castello di Holotz" - Levello 32 # Ritorno alla terra di Lizarno ########################################## {[ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCCredits.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="È Lizarno!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Siamo tornati!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Ehi, guarda che bella quella pietra!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Non toccarla!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/it/level020.hcs0000644000175000001440000000645011177007633025130 0ustar jacobusers########################################## # Storia de "Il castello di Holotz" - Levello 20 # Ybelle viene catturato (parte II) ########################################## {[ MOVE enemy(0) dir=8 amount=0 ] [ MOVE enemy(1) dir=8 amount=0 ] [ MOVE enemy(2) dir=4 amount=0 ] [ MOVE enemy(3) dir=6 amount=0 ] [ MOVE enemy(4) dir=4 amount=0 ] [ MOVE enemy(5) dir=6 amount=0 ]} {[ WAIT millis=1000]} {[ DIALOG main(0) text="Fermi, non una mossa!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="Je je" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(1) text="Hmmm" txtAlign=5 speed=5 size=3 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Vi avviso, sono pericoloso!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ MOVE enemy(1) dir=4 amount=3 ] [ DIALOG enemy(1) text="Guardate..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(1) dir=4 amount=1 ] [ DIALOG enemy(5) text="Cosa?" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Lui ha le... Scarpe!" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Hmmm... Ad Holotz non piacerà" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Cosa volete?" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE enemy(5) dir=6 amount=4 ] [ MOVE main(0) dir=6 amount=1 ] [ DIALOG enemy(5) text="La domanda è..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Che cosa fai tu qui?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ho preso una pietra e..." txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="..e un portale magico si è aperto, giusto?." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Sì, esatto!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Sembra proprio uno degli esperimenti di Holotz..." txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="...senza successo" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="Mi stupisce che tu sia arrivato fino a qui..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(4) text="Che cosa ne facciamo?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Come Holotz ha ordinato..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...lo porteremo al Labirinto di Froj" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Starà lì finchè Holotz non deciderà cosa farne..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...sempre che i Quattro Fratelli Folli non lo trovino prima..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Har, har!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(2) text="Hur, hur, hur!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/it/level019.hcs0000644000175000001440000000246711177007633025144 0ustar jacobusers########################################## # Storia de "Il castello di Holotz" - Level 19 # Ybelle viene catturato (parte I) ########################################## {[ DIALOG main(0) text="AAAH!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCMainTitle_Fast.wav" loops=0 waitToEnd=0 ]} {[ MOVE enemy(0) dir=8 amount=4 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=4 amount=2 ] [ MOVE enemy(3) dir=6 amount=2 ] [ MOVE enemy(4) dir=4 amount=5 ] [ MOVE enemy(5) dir=6 amount=5 ] [ DIALOG main(0) text="Oh, oh" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(2) text="!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=1 ] [ DIALOG enemy(3) text="!" txtAlign=5 speed=1 size=2 align=0 r=220 g=20 b=20 subtype=1 ]} {[ NARRATIVE text=" CONTINUA... " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=3 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=1 ]} {[ DIALOG main(0) text="Eeeh!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ DIALOG main(0) text="Non lasciarmi qui!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ WAIT millis=3000]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/it/level033.hcs0000644000175000001440000000065711177007633025137 0ustar jacobusers########################################## # Storia de "Il castello di Holotz" - Levello 33 # Fine ########################################## {[ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} { [ NARRATIVE text=" FINE " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/it/level002.hcs0000644000175000001440000000172311177007633025126 0ustar jacobusers########################################## # Storia de "Il castello di Holotz" - Levello 2 # Ybelle entra nel castello ########################################## { [ DIALOG main(0) text="noO!" txtAlign=4 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Che male!" txtAlign=4 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="LUDAR!" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="...sembra non possa sentirmi" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Bene..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] } { [ MOVE main(0) dir=4 amount=1 ] [ DIALOG main(0) text="Che ci fanno tutte queste chiavi?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/it/level016.hcs0000644000175000001440000001714511177007633025140 0ustar jacobusers########################################## # Storia de "Il castello di Holotz" - Levello 16 # Ludar parla hai due Fuochi ########################################## {[ DIALOG main(0) text="Oops" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_UltraSlow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Oh, un'altra pietra!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ NARRATIVE text="I due Fuochi" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ] [ DIALOG main(0) text="Un'altra ancora!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Fermati!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="???" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="C'è qualcuno?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(0) text="Ho detto FERMATI!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=4 ] [ DIALOG main(0) text="Oh, una fiamma parlante!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Io non sono una fiamma parlante!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Oh!" txtAlign=5 speed=4 size=2 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Io sono una fiamma magica!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Come fai a sapere quello che penso" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Io so Tutto!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ahem..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Beh, diciamo quasi tutto" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Lei legge la mente..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Ed io leggo..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...i libri" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Come sei entrato qui?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Io lo so..." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, le basterà leggere la mia mente." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="con il portale magico!!" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=3 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="hmpfxs#@!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Aspetta, non andartene!" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=5 ]} {[ DIALOG main(0) text="Non ho tempo per scherzare!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Di cosa hai bisogno?" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=3 ]} {[ DIALOG main(0) text="Voglio trovare Ybelle..." txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Dobbiamo ritornare nella Terra di Lizarno" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm...un Lizarnita, interessante..." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=1 ]} {[ DIALOG enemy(1) text="Da questo punto in avanti il castello..." txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...si farà più pericoloso..." txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...e tu non hai abbastanza forza magica..." txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...per raggiungere il livello più alto." txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Sì, ciò che ti serve è..." txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="...un paio di scarpe!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="...un paio di scarpe!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, basta scherzare!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Ma potrai averle solamente dal.." txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...Signore delle Scarpe" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Non c'è nessun altro modo per avere un paio di Scarpe?" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(1) text="Sì, puoi averle andando..." txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...in un negozio di scarpe!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="...in un negozio di scarpe!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Sto perdendo la pazienza!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Calma" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(1) text="Ne troverai un paio.." txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...nella stanza oltre questo portale magico..." txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="...ma devi sapere" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...che nessuno è mai tornato indietro." txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG main(0) text="Hmm... Comunque, devo provare!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Oh!, ma non posso aprire il portale..." txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="...quella pietra è troppo alta!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Allora... usa questa scala!" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/it/level014.hcs0000644000175000001440000001412611177007633025132 0ustar jacobusers########################################## # Storia de "Il castello di Holotz" - Levello 1 # Ybelle trova il fabbricante di scarpe ########################################## {[ DIALOG main(0) text="?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Cos'è questo posto?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ NARRATIVE text="Il fabbricante di Scarpe" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=2 amount=3 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=6 amount=3 ]} {[ MOVE main(0) dir=9 amount=1 ] [ DIALOG enemy(0) text="Ooh, c'è qualcuno!" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=1 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ DIALOG main(0) text="Che tipo strano!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Che tipo strano!" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=1 ] } {[ DIALOG main(0) text="Err.. Ciao" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Tu non sembri essere..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...di queste parti" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Sembra stia per addormentarsi!!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="Sei entrato..." txtAlign=5 speed=1 size=0 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...poco..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...tempo fa?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Vediamo... Nuovo, hai detto?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, sì, certo..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Chi sei tu?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Io sono..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...il Signore delle Scarpe" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Suppongo..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...tu sia venuto..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...per un nuovo paio..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...vero?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Prendi..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Io..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...queste" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Tranquillo..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="... ti muoverai..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...meglio con esse..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Tu sai come uscire da qui?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...no" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...solo Holotz..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...lo sa" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Holotz?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Sì..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Lui ha creato..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...questo castello" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Dove posso trovarlo?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...non puoi" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Sarà lui..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...a trovare te" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Ora devo..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...tornare" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...al lavoro" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="M-ma...!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ora devo..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Meglio lasciarlo, è senza senso" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Beh, vado... grazie per le Scarpe" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=7 amount=2 ]} {[ MOVE main(0) dir=7 amount=2 ]} {[ DIALOG main(0) text="Ma dove andrò ora?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Oh, ma che importa ormai..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ MOVE main(0) dir=2 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ua/0000755000175000001440000000000011177007633023064 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/script/ua/level025.hcs0000644000175000001440000000553611177007633025132 0ustar jacobusers########################################## # Holotz's Castle story - Level 25 # Holotz appears ########################################## { [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] [ NARRATIVE text="Лорд Холоц" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } {[ MOVE enemy(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ] [ DIALOG main(0) text="Ім'ям Хутазина!..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE main(0) dir=6 amount=3 ] [ DIALOG main(0) text="Ворота стихій, відчиніться!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ WAIT millis=3000 ]} {[ DIALOG main(0) text="..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=5 amount=1 ] [ DIALOG main(0) text="Знову не спрацювало!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ] [ MOVE enemy(0) dir=9 amount=1 ] [ DIALOG main(0) text="Тиы!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG main(0) text="Де лізарнітка?" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG enemy(0) text="Ми її відправили до лабіринту Фроя, як ви наказали" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Добре" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Але знайте, господарю," txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="що у неї були чобітки" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ідиот!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Холоп! Як ти посмів приховувати це!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Я..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="З такою жвавістю вона вже могла досягнути вежі!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Випустити всіх монстрів!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Слухаю і підкоряюсь" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(0) dir=7 amount=2 ]} {[ MOVE enemy(0) dir=7 amount=3 ] [ DIALOG main(0) text="Зараз ми зробимо цим лізарнійцям сюрприз" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ua/level007.hcs0000644000175000001440000000250211177007633025120 0ustar jacobusers########################################## # Holotz's Castle story - Level 7 # Ludar enters the castle ########################################## { [ DIALOG main(0) text="... Івонна! Зачекай!" txtAlign=4 speed=2 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] } { [ MOVE main(0) dir=6 amount=1 ] [ DIALOG main(0) text="А бодай тобі!" txtAlign=4 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ну хто викопав цю яму!" txtAlign=4 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Івонна!" txtAlign=5 speed=1 size=3 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="У-уу..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Віслюк!" txtAlign=5 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ого!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Ці камни схожі на той, що взяла Івонна" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Що це за місце?" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ua/level030.hcs0000644000175000001440000000254411177007633025122 0ustar jacobusers########################################## # Holotz's Castle story - Level 30 # Ybelle and Ludar met again ########################################## {[ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ MOVE main(0) dir=8 amount=6 ] [ MOVE enemy(0) dir=8 amount=6 ] [ MOVE enemy(1) dir=8 amount=6 ] [ MOVE enemy(2) dir=8 amount=6 ]} {[ MOVE main(0) dir=6 amount=3 ] [ MOVE enemy(0) dir=4 amount=3 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=8 amount=4 ]} {[ MOVE main(0) dir=6 amount=4 ] [ MOVE enemy(0) dir=4 amount=4 ] [ MOVE enemy(1) dir=4 amount=3 ] [ MOVE enemy(2) dir=6 amount=3 ]} {[ DIALOG main(0) text="Людар!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Івонна!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ти жива!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="І ти цілий!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Тепер ми будемо разом!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="До сходів, давай за мною!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ MOVE main(0) dir=8 amount=3 ] [ MOVE enemy(0) dir=8 amount=3 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ua/level001.hcs0000644000175000001440000000576111177007633025124 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle and Ludar arrive to the castle ########################################## { [ DIALOG main(0) text="Aaa!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ааа!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] } { [ NARRATIVE text="Івонна та Людар." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } { [ DIALOG main(0) text="Що трапилося?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] [ MOVE enemy(0) dir=6 amount=3 ] } { [ DIALOG enemy(0) text="Я ж тобі говорив не чіпати той дивний камінь!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Замовкни..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Звідкіля мені було знати?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="А де ми є?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Ха-ха! Звідкіля їй було знати?" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Якби ти не влізла, то нічого б не трапилося..." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Бовдур..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Дурепа..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Доведеться шукати дорогу додому" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Пішли за мною, Людар" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Оце вже дзуськи... ти завжди ввязуєшся у всілякі негаразди" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Тепер ти слухай мене!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Що на нього найшло?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Ну и добре! Обійдуся без тебе." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=5 ] } { [ DIALOG enemy(0) text="???" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=8 amount=3 ] } { [ MOVE enemy(0) dir=6 amount=3 ] [ DIALOG enemy(0) text="е-ее... Івонна, Зачекай!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ MOVE main(0) dir=6 amount=3 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ua/level032.hcs0000644000175000001440000000165711177007633025130 0ustar jacobusers########################################## # Holotz's Castle story - Level 32 # Return to the land of Lizarno ########################################## {[ DIALOG main(0) text="А-аа!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ааа!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCCredits.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Це ж наша Лізарнія!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ми дома!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Дивись-но, ще камінь!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Не чіпай!!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ua/level020.hcs0000644000175000001440000000706311177007633025122 0ustar jacobusers########################################## # Holotz's Castle story - Level 20 # Ybelle is captured (continued) ########################################## {[ MOVE enemy(0) dir=8 amount=0 ] [ MOVE enemy(1) dir=8 amount=0 ] [ MOVE enemy(2) dir=4 amount=0 ] [ MOVE enemy(3) dir=6 amount=0 ] [ MOVE enemy(4) dir=4 amount=0 ] [ MOVE enemy(5) dir=6 amount=0 ]} {[ WAIT millis=1000]} {[ DIALOG main(0) text="Ані руш!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="Угх Угх" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(1) text="Мммм" txtAlign=5 speed=5 size=3 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Попереджаю, я небезпечна!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ MOVE enemy(1) dir=4 amount=3 ] [ DIALOG enemy(1) text="Дивися..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(1) dir=4 amount=1 ] [ DIALOG enemy(5) text="Що?" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="В неї чобітки" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Гм... Холоцу це б не сподобалося" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Чого вам треба?" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE enemy(5) dir=6 amount=4 ] [ MOVE main(0) dir=6 amount=1 ] [ DIALOG enemy(5) text="Відповідай!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Що ти тут робиш?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Я взяла камінь і..." txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="І відкрилася магічна брама, так?." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Да, точно!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Схоже, що черговий дослід Холоца" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="не вдався" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="Дивно як ти сюди пробралася..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(4) text="Що будемо з нею робити?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Як сказав Лорд Холоц..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...відправимо до лабиринту Фроя" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Посидить там, доки Господар не вирішить, що з нею робити..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...якщо чотири божевільний брата не знайдуть її раніше" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Ха-ха-ха!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(2) text="Хи-хи-хи-хи!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ua/level019.hcs0000644000175000001440000000247111177007633025130 0ustar jacobusers########################################## # Holotz's Castle story - Level 19 # Ybelle is captured ########################################## {[ DIALOG main(0) text="Ааа!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCMainTitle_Fast.wav" loops=0 waitToEnd=0 ]} {[ MOVE enemy(0) dir=8 amount=4 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=4 amount=2 ] [ MOVE enemy(3) dir=6 amount=2 ] [ MOVE enemy(4) dir=4 amount=5 ] [ MOVE enemy(5) dir=6 amount=5 ] [ DIALOG main(0) text="Ой, ой" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(2) text="!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=1 ] [ DIALOG enemy(3) text="!" txtAlign=5 speed=1 size=2 align=0 r=220 g=20 b=20 subtype=1 ]} {[ NARRATIVE text=" ДАЛІ БУДЕ... " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=3 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=1 ]} {[ DIALOG main(0) text="Ааа!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ DIALOG main(0) text="Не залишай мене!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ WAIT millis=3000]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ua/level033.hcs0000644000175000001440000000065511177007633025126 0ustar jacobusers########################################## # Holotz's Castle story - Level 33 # The end ########################################## {[ DIALOG enemy(0) text="Ааа!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ DIALOG main(0) text="Ой!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} { [ NARRATIVE text=" КОНЕЦ " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ua/level002.hcs0000644000175000001440000000176311177007633025123 0ustar jacobusers########################################## # Holotz's Castle story - Level 2 # Ybelle enters the castle ########################################## { [ DIALOG main(0) text="Ой!" txtAlign=4 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Боляче!" txtAlign=4 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="ЛЮДАР!" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Гм..." txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="...схоже, не чує" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Ну добре..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] } { [ MOVE main(0) dir=4 amount=1 ] [ DIALOG main(0) text="Для чого можуть бути всі ці ключі?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ua/level016.hcs0000644000175000001440000002034311177007633025123 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ludar talks to the two flames ########################################## {[ DIALOG main(0) text="Ой!" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_UltraSlow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="О! Ще один камінь!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ NARRATIVE text="Два Вогні" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ] [ DIALOG main(0) text="Ще один!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Стій!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="???" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Хто там?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(0) text="Я сказав СТІЙ!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=4 ] [ DIALOG main(0) text="Ого, балакаючий вогник!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Я не балакаючий вогник!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Ой!" txtAlign=5 speed=4 size=2 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Я глаголяще полум'я!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Звідки ти знаєшь, що я думаю?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Я знаю все!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Хм..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Ну або майже все" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Він читає думки..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="і книги..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...книги" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Буль, буль, буль!" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Муль, муль, муль!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Як ти сюди потрапив?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Я не знаю..." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Воно збирається прочитати мої думки!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Через магічну браму!!" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Буль, буль, буль!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Муль, муль, муль!" txtAlign=5 speed=1 size=3 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Біс його побери!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Чекай, не йди" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=5 ]} {[ DIALOG main(0) text="Мені не до жартів!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Що тобі потрібно?" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=3 ]} {[ DIALOG main(0) text="Я хочу знайти Івонну" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ми повинні повернутися в країнуну Лізарнію" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="А... лізарнійці,... як цікаво" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=1 ]} {[ DIALOG enemy(1) text="Тепер замок стане" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="небезпечніше" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="а в тебв не вистачить магічної сили" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="щоб дістатися до самого верху" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Точно! Тобі потрібна..." txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="пара чобіт!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="пара чобіт!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Досить насміхатися!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Але отримати їх ти можешь тільки від" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Пана чоботаря" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="А є ще якийсь спосіб дістати ці ваші чоботи?" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(1) text="Є. Ïх ще можливо дістати в" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Лавці!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Лавці!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Буль, буль, буль!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Муль, муль, муль!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Це вже зовсім нестерпно!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Зачекай" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(1) text="Ти можеш знайти чоботи" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="в кімнаті за цими магічними воротами!" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Але знай," txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="що ще ніхто не повертався звідти живим" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Ого!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG main(0) text="Гм... Я все-таки повинен спробувати" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Але я ж не можу відкрити ворота" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Цей камінь занадто високо!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Добре, візьми цю драбину." txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ua/level014.hcs0000644000175000001440000001502111177007633025116 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle finds the shoe maker ########################################## {[ DIALOG main(0) text="?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Куди я попала?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ NARRATIVE text="Чоботар" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=2 amount=3 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=6 amount=3 ]} {[ MOVE main(0) dir=9 amount=1 ] [ DIALOG enemy(0) text="О! Гості!" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=1 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ DIALOG main(0) text="Який дивний тип!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Таких гостей у мене ще не було!" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=1 ] } {[ DIALOG main(0) text="... Доброго дня?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ммм..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Ви, мабуть, прибули..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="... здалеку" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Гм..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Здається він збирається заснути!!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="Ви ввійшли в новий..." txtAlign=5 speed=1 size=0 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...зовсім..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...недавно?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="... Ви кажете новий?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="О так, звичайно" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Хто ви?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Я..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...Володар чобіт і черевиків!" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Гадаю,..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...ви прийшли..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...за новою парою..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...аджеж, так?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Візьміть..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Я..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...ці" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Звичайно..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="... в них буде..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...легче бігати..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Як звідси вибратися?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Гм..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...ні" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...тільки Холоц..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...знає" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Холоц?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Да..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Он побудував..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...весь цей замок" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="А де його знайти?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...це неможливо" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Він..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...сам знайде тебе" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="А теперь пора мені..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...повернутися" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...до роботи" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Але,... але!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Потрібно працювати..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Все даремно" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Ну добре, я піду... Спасибі за черевички!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=7 amount=2 ]} {[ MOVE main(0) dir=7 amount=2 ]} {[ DIALOG main(0) text="Куди ж мені тепер іти?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Да яка різниця" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ MOVE main(0) dir=2 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sv/0000755000175000001440000000000011177007633023107 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/script/sv/level025.hcs0000644000175000001440000000576511177007633025161 0ustar jacobusers########################################## # Holotz's Castle story - Level 25 # Holotz appears ########################################## # This jump is just to scroll the screen up so the text is visible. # A better fix would be to redesign the level so Holotz isn't so high up. {[ MOVE main(0) dir=5 amount=1 ]} { [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] [ NARRATIVE text="Holotz." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } {[ MOVE enemy(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ] [ DIALOG main(0) text="Med Hutazins krafter!..." txtAlign=5 speed=5 size=2 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE main(0) dir=6 amount=3 ] [ DIALOG main(0) text="Öppna, elementärportal!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ WAIT millis=3000 ]} {[ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=5 size=1 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=5 amount=1 ] [ DIALOG main(0) text="Det misslyckades igen!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ] [ MOVE enemy(0) dir=9 amount=1 ] [ DIALOG main(0) text="Du!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG main(0) text="Var är fången?" txtAlign=5 speed=5 size=2 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG enemy(0) text="Vi förde honom till Labyrinth of Froj som du sade åt oss" txtAlign=5 speed=5 size=1 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Bra gjort" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Men, herre, du måste veta" txtAlign=5 speed=5 size=1 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="att han hade skor" txtAlign=5 speed=5 size=1 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Dolt! Vänta, jag menar..." txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE enemy(0) dir=4 amount=1 ]} # When Holotz yells, the demon falls back one stair step {[ DIALOG main(0) text="Din dumma ärthjärna!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] [ MOVE enemy(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Varför sade du ingenting!" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Jag..." txtAlign=5 speed=5 size=1 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Nu har de säkert nått tornet" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Sammankalla alla odjur!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ja, herre" txtAlign=5 speed=5 size=2 align=0 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(0) dir=7 amount=2 ]} {[ MOVE enemy(0) dir=7 amount=2 ] [ DIALOG main(0) text="Vi tänker överraska de här lizarnites" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sv/level007.hcs0000644000175000001440000000345311177007633025151 0ustar jacobusers########################################## # Holotz's Castle story - Level 7 # Ludar enters the castle ########################################## { [ DIALOG main(0) text="err... Ybelle, Vänta på mig!" txtAlign=4 speed=2 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] } { [ MOVE main(0) dir=6 amount=1 ] [ DIALOG main(0) text="Oh, nej!" txtAlign=4 speed=5 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Vem gjorde det där hålet där?" txtAlign=4 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hjälp! Ybelle!" txtAlign=5 speed=1 size=3 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Varför svarar han inte?" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Din envisna dåre!" txtAlign=5 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, hey!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="De här stenarna liknar den som Ybelle tog" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { # EXPLAIN WHY YBELLE IS GRABBING STONES AFTER HE TOLD LUDAR NOT TO [ DIALOG main(0) text="Kan de leda till vägen ut härifrån?" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { # SHOULD GIVE USER A HINT THAT GAME IS STARTING AS LUDAR [ DIALOG main(0) text="Jag antar att det är min tur att ta vissa risker" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] } # MORE HINTS FOR THE USER AND A REMINDER THAT THIS GUY IS LUDAR { [ NARRATIVE text="Genom att hålla ned mellanslag kan Ludar hoppa högre" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sv/level030.hcs0000644000175000001440000000363311177007633025145 0ustar jacobusers########################################## # Holotz's Castle story - Level 30 # Ybelle and Ludar meet again ########################################## {[ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ MOVE main(0) dir=8 amount=6 ] [ MOVE enemy(0) dir=8 amount=6 ] [ MOVE enemy(1) dir=8 amount=6 ] [ MOVE enemy(2) dir=8 amount=6 ]} {[ MOVE main(0) dir=6 amount=3 ] [ MOVE enemy(0) dir=4 amount=3 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=8 amount=4 ]} {[ MOVE main(0) dir=6 amount=4 ] [ MOVE enemy(0) dir=4 amount=4 ] [ MOVE enemy(1) dir=4 amount=3 ] [ MOVE enemy(2) dir=6 amount=3 ]} {[ DIALOG main(0) text="Ludar!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ybelle!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] [ MOVE enemy(0) dir=6 amount=1 ]} {[ DIALOG main(0) text="Du lever!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Du är inte död!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] [ MOVE enemy(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Snygga skor" txtAlign=5 speed=5 size=2 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Vi fungerar bättre som ett lag" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Följ mig!" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Hmm..." txtAlign=5 speed=5 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="Ska vi göra göra det tillsammans?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Tillsammans." txtAlign=5 speed=5 size=2 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=8 amount=3 ] [ MOVE enemy(0) dir=8 amount=3 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sv/level001.hcs0000644000175000001440000000527611177007633025150 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle and Ludar arrive to the castle ########################################## { [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] } { [ NARRATIVE text="Ybelle och Ludar." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } { [ DIALOG main(0) text="Whoa! Vad hände?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] [ MOVE enemy(0) dir=6 amount=3 ] } { [ DIALOG enemy(0) text="Jag sade åt dig att inte röra den där stenen!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, tyst..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Hur skulle jag kunna vetat?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Var är vi?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="HA! Säg det!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Om du bara hade hållit dina fingrar borta..." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Lump..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Nincompoop..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Vi måste hitta en väg så vi kan återvända hem" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Följ mig, Ludar" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Aldrig i livet! Du gör alltid så att jag hamnar i trubbel" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Den här gången gör vi som jag säger" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Tja..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Jag antar att jag får fortsätta ensam" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=5 ] } { [ DIALOG enemy(0) text="???" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=8 amount=3 ] } { [ MOVE enemy(0) dir=6 amount=3 ] [ DIALOG enemy(0) text="err... Ybelle, Vänta!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ MOVE main(0) dir=6 amount=3 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sv/level032.hcs0000644000175000001440000000161311177007633025143 0ustar jacobusers########################################## # Holotz's Castle story - Level 32 # Return to the land of Lizarno ########################################## {[ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCCredits.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Vi är i Lizarno!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Vi är hemma!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Hey, se på den där stenen!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Rör den inte!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sv/level020.hcs0000644000175000001440000000721711177007633025146 0ustar jacobusers########################################## # Holotz's Castle story - Level 20 # Ybelle is captured (continued) ########################################## {[ MOVE enemy(0) dir=8 amount=0 ] [ MOVE enemy(1) dir=8 amount=0 ] [ MOVE enemy(2) dir=4 amount=0 ] [ MOVE enemy(3) dir=6 amount=0 ] [ MOVE enemy(4) dir=4 amount=0 ] [ MOVE enemy(5) dir=6 amount=0 ]} {[ WAIT millis=1000]} {[ DIALOG main(0) text="Stanna, stå still!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="Hee hee" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(1) text="Huh?" txtAlign=5 speed=5 size=3 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Tvinga mig inte att använda mina Kung Fu-kunskaper!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ MOVE enemy(1) dir=4 amount=3 ] [ DIALOG enemy(1) text="Titta!" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(1) dir=4 amount=1 ] [ DIALOG enemy(5) text="Vad?" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Han har... skor" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Oh ho! Holotz kommer inte tycka om det där" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Vad vill ni?" txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE enemy(5) dir=6 amount=4 ] [ MOVE main(0) dir=6 amount=1 ] [ DIALOG enemy(5) text="Frågan är..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Vad gör du här?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Jag tog en sten och..." txtAlign=5 speed=5 size=2 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Och en mystisk portal öppnade. Eller?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ja, precis!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Det förefaller som om Holotz experiment inte har varit så framgångsrika" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="Det roar mig att du har kommit så här långt..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(4) text="Vad ska vi göra med honom?" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Vi gör som Holotz sade..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...vi för honom till Labyrinth of Froj" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Där kommer han stanna tills Holotz beslutar vad som ska hända honom..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...om inte de fyra galna bröderna hittar honom först!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Har, har!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(2) text="Hur, hur, hur!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ] } {[ DIALOG main(0) text="Gulp!" txtAlign=5 speed=5 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} # LET USER KNOW THEY'RE SWITCHING BACK TO LUDAR. {[ DIALOG main(0) text="Jag hoppas Ludar mår bra..." txtAlign=5 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=1 ]} { [ NARRATIVE text="Du kan ändra Ludars riktning när han är halvvägs upp i luften." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sv/level019.hcs0000644000175000001440000000245411177007633025154 0ustar jacobusers########################################## # Holotz's Castle story - Level 19 # Ybelle is captured ########################################## {[ DIALOG main(0) text="AAAH!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCMainTitle_Fast.wav" loops=0 waitToEnd=0 ]} {[ MOVE enemy(0) dir=8 amount=4 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=4 amount=2 ] [ MOVE enemy(3) dir=6 amount=2 ] [ MOVE enemy(4) dir=4 amount=5 ] [ MOVE enemy(5) dir=6 amount=5 ] [ DIALOG main(0) text="Uh oh" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(2) text="!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=1 ] [ DIALOG enemy(3) text="!" txtAlign=5 speed=1 size=2 align=0 r=220 g=20 b=20 subtype=1 ]} {[ NARRATIVE text=" FORTSÄTTNING FÖLJER... " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=3 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=1 ]} {[ DIALOG main(0) text="Eeeh!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ DIALOG main(0) text="Lämna mig inte här!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ WAIT millis=3000]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sv/level033.hcs0000644000175000001440000000064411177007633025147 0ustar jacobusers########################################## # Holotz's Castle story - Level 33 # The end ########################################## {[ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} { [ NARRATIVE text=" SLUT " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sv/level002.hcs0000644000175000001440000000241511177007633025141 0ustar jacobusers########################################## # Holotz's Castle story - Level 2 # Ybelle enters the castle ########################################## { [ DIALOG main(0) text="Neeeej!" txtAlign=4 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Det där gjorde ont!" txtAlign=4 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="LUDAR!" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="?" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="Han kanske inte kan höra mig." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Vad i...?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] } { [ MOVE main(0) dir=4 amount=1 ] [ DIALOG main(0) text="Vad är det med alla dessa nycklar?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } # REMIND USER THAT THIS IS YBELLE. # TEACH THE USER THAT SPACE IS JUMP. # MAKE SURE THEY KNOW WHAT A "MAGIC PORTAL" IS, TO SET UP THE JOKE IN LEVEL 16. { [ NARRATIVE text="Tryck mellanslag för att få Ybelle att hoppa in i den magiska portalen" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sv/level016.hcs0000644000175000001440000001664211177007633025155 0ustar jacobusers########################################## # Holotz's Castle story - Level 16 # Ludar talks to the two flames ########################################## {[ DIALOG main(0) text="Oops" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_UltraSlow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Oh, ytterligare en sten!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ NARRATIVE text="Ludar och de två lågorna" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ] [ DIALOG main(0) text="...och en till!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Stanna!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="???" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Vem här?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(0) text="Jag sade STANNA!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=4 ] [ DIALOG main(0) text="Oh, en talande låga!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Jag är inte en talande låga!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Oh!" txtAlign=5 speed=4 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Jag är en pratande låga!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Hur visste du vad jag tänkte?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Jag vet allting!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ahem..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Tja, nästan allting" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Hon läser ens tankar..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Och jag läser..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...böcker" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Hur kom du hit?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text=Jag vet..." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, hon tänker läsa mina tankar!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Genom den mystiska portalen!!" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=3 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="hmpfxs#@!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Vänta, gå inte" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=5 ]} {[ DIALOG main(0) text="Jag har inte tid med skämt!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Vad behöver du?" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=3 ]} {[ DIALOG main(0) text="Jag måste finna Ybelle" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Vi måste återvända till Land of Lizarno" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm...en lizarnite, så intressant" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=1 ]} {[ DIALOG enemy(1) text="Från och med här förvandlas slottet till en mer farligare plats" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Du saknar dock magisk styrka" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="och kan inte nå den högsta nivån" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Ja, det du behöver är..." txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ett par skor!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Ett par skor!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, sluta skoja!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Men du kan bara skaffa dem av" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="skornas herre" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Finns det inte ett annat sätt att få tag i ett par skor?" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(1) text="Jo, du kan få tag i dem i" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Skoaffären!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Skoaffären!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Det här är irriterande!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Vänta" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(1) text="Du kan hitta ett par" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="i rummet bortom den här mystiska portalen" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Men du måste känna till" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="att ingen har lämnat det levande" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG main(0) text="Hmm... nåja, Jag måste försöka" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Oh! Men jag kan inte öppna portalen" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Den där stenen sitter för högt!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Tja, använd då den här stegen" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/sv/level014.hcs0000644000175000001440000001525211177007633025147 0ustar jacobusers########################################## # Holotz's Castle story - Level 14 # Ybelle finds the shoe maker ########################################## {[ DIALOG main(0) text="Whew! Vad skönt att få komma ut därifrån" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Men, vad är det här för ställe?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ NARRATIVE text="Ybelle i skomakarens verkstad" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=2 amount=3 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=6 amount=3 ]} {[ MOVE main(0) dir=9 amount=1 ] [ DIALOG enemy(0) text="En besökare!" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=1 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ DIALOG main(0) text="Vilken konstig snubbe!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Vilken konstig snubbe!" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=1 ] } {[ DIALOG main(0) text="Err.. Hallå?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Du..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="ser..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="inte ut..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="att..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="vara..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="här-..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="ifrån" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Det verkar som om han var på väg att somna!!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="Är... du... den..." txtAlign=5 speed=1 size=0 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ser... Oh" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="ny..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ny, säger du?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Ja, jag är ny här, varför undrar du?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Vem är du?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Jag... är..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="skornas herre" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Du har... kommit... för..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="ett... par... nya..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...visst?" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Tja, egentligen" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ta..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Jag..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...de här" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Du... kommer... att..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="hoppa..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Vet du hur man tar sig ut härifrån?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } {[ DIALOG enemy(0) text="Låt... mig... tänka..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Nej" txtAlign=5 speed=1 size=2 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Endast... Holotz..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="vet..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Holotz?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ja..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Han... skapade..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="det..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Var kan jag hitta honom?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Du... kan inte..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Han kommer... hitta... dig" txtAlign=5 speed=1 size=2 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="Nu... måste... jag..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="återgå... till... arbete" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="M-men...!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Nu... måste... jag..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Oh, glöm det här tramset!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Nåja, jag sticker... tack för skorna" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=7 amount=2 ]} {[ MOVE main(0) dir=7 amount=2 ]} {[ DIALOG main(0) text="Men, vart ska jag gå nu?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Jaja." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="När man är vilse" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="spelar det ingen roll åt vilket håll man går" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ MOVE main(0) dir=2 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ru/0000755000175000001440000000000011177007633023105 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/script/ru/level025.hcs0000644000175000001440000000552111177007633025145 0ustar jacobusers########################################## # Holotz's Castle story - Level 25 # Holotz appears ########################################## { [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] [ NARRATIVE text="Лорд Холоц" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } {[ MOVE enemy(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ] [ DIALOG main(0) text="Именем Хутазина!..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE main(0) dir=6 amount=3 ] [ DIALOG main(0) text="Врата стихий, отворитесь!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ WAIT millis=3000 ]} {[ DIALOG main(0) text="..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=5 amount=1 ] [ DIALOG main(0) text="Опять не сработало!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ] [ MOVE enemy(0) dir=9 amount=1 ] [ DIALOG main(0) text="Ты!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG main(0) text="Где лизарнитка?" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG enemy(0) text="Мы её отправили в лабиринт Фроя, как вы приказали" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Отлично" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Но знайте, господин," txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="что у неё были сапоги" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Идиот!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Подлец! Как ты посмел скрывать это!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Я..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="С такой прытью она уже могла достичь башни!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Выпустить всех чудовищ!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Слушаю и повинуюсь" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(0) dir=7 amount=2 ]} {[ MOVE enemy(0) dir=7 amount=3 ] [ DIALOG main(0) text="Сейчас мы устроим этим лизарнийцам сюрприз" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ru/level007.hcs0000644000175000001440000000247411177007633025151 0ustar jacobusers########################################## # Holotz's Castle story - Level 7 # Ludar enters the castle ########################################## { [ DIALOG main(0) text="... Ивонна! Подожди!" txtAlign=4 speed=2 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] } { [ MOVE main(0) dir=6 amount=1 ] [ DIALOG main(0) text="Чёрт!" txtAlign=4 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ну кто выкопал эту яму!" txtAlign=4 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ивонна!" txtAlign=5 speed=1 size=3 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="У-уу..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Осёл!" txtAlign=5 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ого!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Эти камни похожи на тот, что взяла Ивонна" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Что это за место?" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ru/level030.hcs0000644000175000001440000000254411177007633025143 0ustar jacobusers########################################## # Holotz's Castle story - Level 30 # Ybelle and Ludar met again ########################################## {[ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ MOVE main(0) dir=8 amount=6 ] [ MOVE enemy(0) dir=8 amount=6 ] [ MOVE enemy(1) dir=8 amount=6 ] [ MOVE enemy(2) dir=8 amount=6 ]} {[ MOVE main(0) dir=6 amount=3 ] [ MOVE enemy(0) dir=4 amount=3 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=8 amount=4 ]} {[ MOVE main(0) dir=6 amount=4 ] [ MOVE enemy(0) dir=4 amount=4 ] [ MOVE enemy(1) dir=4 amount=3 ] [ MOVE enemy(2) dir=6 amount=3 ]} {[ DIALOG main(0) text="Людар!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ивонна!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ты жива!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="И ты цел!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Теперь мы будем вместе!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="К лестнице, давай за мной!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ MOVE main(0) dir=8 amount=3 ] [ MOVE enemy(0) dir=8 amount=3 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ru/level001.hcs0000644000175000001440000000575711177007633025152 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle and Ludar arrive to the castle ########################################## { [ DIALOG main(0) text="Aaa!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ааа!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] } { [ NARRATIVE text="Ивонна и Людар." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } { [ DIALOG main(0) text="Что случилось?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] [ MOVE enemy(0) dir=6 amount=3 ] } { [ DIALOG enemy(0) text="Я же тебе говорил не трогать тот странный камень!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Заткнись..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Откуда мне было знать?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="А где мы?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Ха-ха! Откуда ей было знать?" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Если-б ты не влезла, то ничего бы не случилось..." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Придурок..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Тупица..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Придётся искать дорогу домой" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Пошли за мной, Людар" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Ну уж нет... ты всегда ввязываешся во всякие неприятности" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Теперь ты слушай меня!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Что на него нашло?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Ну и ладно! Обойдусь без тебя." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=5 ] } { [ DIALOG enemy(0) text="???" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=8 amount=3 ] } { [ MOVE enemy(0) dir=6 amount=3 ] [ DIALOG enemy(0) text="э-ээ... Ивонна, Подожди!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ MOVE main(0) dir=6 amount=3 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ru/level032.hcs0000644000175000001440000000166311177007633025146 0ustar jacobusers########################################## # Holotz's Castle story - Level 32 # Return to the land of Lizarno ########################################## {[ DIALOG main(0) text="А-аа!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ааа!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCCredits.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Это же наша Лизарния!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Мы дома!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Глянь-ка, ещё камень!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Не тронь!!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ru/level020.hcs0000644000175000001440000000706211177007633025142 0ustar jacobusers########################################## # Holotz's Castle story - Level 20 # Ybelle is captured (continued) ########################################## {[ MOVE enemy(0) dir=8 amount=0 ] [ MOVE enemy(1) dir=8 amount=0 ] [ MOVE enemy(2) dir=4 amount=0 ] [ MOVE enemy(3) dir=6 amount=0 ] [ MOVE enemy(4) dir=4 amount=0 ] [ MOVE enemy(5) dir=6 amount=0 ]} {[ WAIT millis=1000]} {[ DIALOG main(0) text="Стоять!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="Угх Угх" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(1) text="Мммм" txtAlign=5 speed=5 size=3 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Предупреждаю, я опасна!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ MOVE enemy(1) dir=4 amount=3 ] [ DIALOG enemy(1) text="Гляди..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(1) dir=4 amount=1 ] [ DIALOG enemy(5) text="Чего?" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="У неё сапоги" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Гм... Холоцу это бы не понравилось" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Чего вы хотите?" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE enemy(5) dir=6 amount=4 ] [ MOVE main(0) dir=6 amount=1 ] [ DIALOG enemy(5) text="Отвечай!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Что ты тут делаешь?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Я взяла камень и..." txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="И открылись волшебные врата, так?." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Да, точно!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Похоже, что очередной опыт Холоца" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="не удался" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="Удивительно как ты сюда пробралась..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(4) text="Что будем с ней делать?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Как сказал Лорд Холоц..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...отправим в лабиринт Фроя" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Посидит там, пока Хозяин не решит, что с ней сделать..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...если четыре сумасшедших брата не найдут её раньше" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Ха-ха-ха!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(2) text="Хи-хи-хи-хи!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ru/level019.hcs0000644000175000001440000000251311177007633025146 0ustar jacobusers########################################## # Holotz's Castle story - Level 19 # Ybelle is captured ########################################## {[ DIALOG main(0) text="Ааа!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCMainTitle_Fast.wav" loops=0 waitToEnd=0 ]} {[ MOVE enemy(0) dir=8 amount=4 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=4 amount=2 ] [ MOVE enemy(3) dir=6 amount=2 ] [ MOVE enemy(4) dir=4 amount=5 ] [ MOVE enemy(5) dir=6 amount=5 ] [ DIALOG main(0) text="Ой, ой" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(2) text="!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=1 ] [ DIALOG enemy(3) text="!" txtAlign=5 speed=1 size=2 align=0 r=220 g=20 b=20 subtype=1 ]} {[ NARRATIVE text=" ПРОДОЛЖЕНИЕ СЛЕДУЕТ... " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=3 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=1 ]} {[ DIALOG main(0) text="Ааа!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ DIALOG main(0) text="Не бросай меня!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ WAIT millis=3000]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ru/level033.hcs0000644000175000001440000000065511177007633025147 0ustar jacobusers########################################## # Holotz's Castle story - Level 33 # The end ########################################## {[ DIALOG enemy(0) text="Ааа!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ DIALOG main(0) text="Ой!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} { [ NARRATIVE text=" КОНЕЦ " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ru/level002.hcs0000644000175000001440000000177511177007633025147 0ustar jacobusers########################################## # Holotz's Castle story - Level 2 # Ybelle enters the castle ########################################## { [ DIALOG main(0) text="Ой!" txtAlign=4 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Больно!" txtAlign=4 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="ЛЮДАР!" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Гм..." txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="...похоже, не слышит" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Ну хорошо..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] } { [ MOVE main(0) dir=4 amount=1 ] [ DIALOG main(0) text="Для чего могут быть все эти ключи?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ru/level016.hcs0000644000175000001440000002036611177007633025151 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ludar talks to the two flames ########################################## {[ DIALOG main(0) text="Ой!" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_UltraSlow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="О! Ещё один камень!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ NARRATIVE text="Два Огня" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ] [ DIALOG main(0) text="Ещё один!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Стой!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="???" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Кто там?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(0) text="Я сказал СТОЙ!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=4 ] [ DIALOG main(0) text="Ого, говорящий огонёк!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Я не говорящий огонёк!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Ой!" txtAlign=5 speed=4 size=2 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Я глаголящее пламя!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Откуда ты знаешь, что я думаю?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Я знаю всё!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Хм..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Ну или почти всё" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Он читает мысли..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="и книги..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...книги" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Буль, буль, буль!" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Муль, муль, муль!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Как ты сюда попал?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Я не знаю..." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Оно собирается прочесть мои мысли!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Через волшебные врата!!" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Буль, буль, буль!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Муль, муль, муль!" txtAlign=5 speed=1 size=3 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Чёрт побери!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Погоди, не уходи" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=5 ]} {[ DIALOG main(0) text="Мне некогда шутить!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Что тебе надо?" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=3 ]} {[ DIALOG main(0) text="Я хочу найти Ивонну" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Мы должны вернуться в страну Лизарнию" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="А... лизарнийцы,... как интересно" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=1 ]} {[ DIALOG enemy(1) text="Теперь замок станет" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="опаснее" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="а у тебя не хватит волшебной силы" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="чтобы добраться до самого верха" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Точно! Тебе нужна..." txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="пара сапог!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="пара сапог!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Хватит смеяться!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Но получить их ты можешь только от" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="господина сапожника" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="А есть ещё какой-нибудь способ раздобыть эти ваши сапоги?" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(1) text="Есть. Их ещё можно достать в" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Лавке!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Лавке!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Буль, буль, буль!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Муль, муль, муль!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Это уже совершенно невыносимо!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Подожди" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(1) text="Ты можешь найти сапоги" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="в комнате за этими волшебными вратамиl" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Но знай," txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="что ещё никто не уходил оттуда живым" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Ого!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG main(0) text="Гм... Я всё-равно должен попробовать" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Но я же не могу открыть врата" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Этот камень слишком высоко!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Хорошо, возьми эту лестницу." txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/ru/level014.hcs0000644000175000001440000001503111177007633025140 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle finds the shoe maker ########################################## {[ DIALOG main(0) text="?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Куда я попала?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ NARRATIVE text="Сапожник" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=2 amount=3 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=6 amount=3 ]} {[ MOVE main(0) dir=9 amount=1 ] [ DIALOG enemy(0) text="О! Посетитель!" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=1 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ DIALOG main(0) text="Какой странный тип!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Таких гостей у меня ещё не бывало!" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=1 ] } {[ DIALOG main(0) text="... Здравствуйте?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ммм..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Вы, наверно, прибыли..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="... издалека" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Гм..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Кажется он собирается заснуть!!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="Вы вошли в новый..." txtAlign=5 speed=1 size=0 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...совсем..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...недавно?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="... Вы говорите новый?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="О да, конечно" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Кто вы?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Я..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...Господин сапог и туфель!" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Полагаю,..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...вы пришли..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...за новой парой..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...так, ведь?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Возьмите..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Я..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...эти" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Конечно..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="... в них будет..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...легче бегать..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Как отсюда выбраться?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Гм..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...нет" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...только Холоц..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...знает" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Холоц?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Да..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Он построил..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...весь этот замок" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="А где его найти?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...это невозможно" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Он..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...сам найдёт тебя" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="А теперь пора мне..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...вернуться" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...к работе" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Но,... но!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Надо работать..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Бесполезно" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Ну ладно, я пойду... Спасибо за сапоги!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=7 amount=2 ]} {[ MOVE main(0) dir=7 amount=2 ]} {[ DIALOG main(0) text="Куда же мне идти теперь?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Да какая разница" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ MOVE main(0) dir=2 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/es/0000755000175000001440000000000011177007633023066 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/script/es/level025.hcs0000644000175000001440000000511711177007633025127 0ustar jacobusers########################################## # Holotz's Castle story - Level 25 # Holotz appears ########################################## { [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] [ NARRATIVE text="Holotz." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } {[ MOVE enemy(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ] [ DIALOG main(0) text="¡Por el poder de Hutazin!..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE main(0) dir=6 amount=3 ] [ DIALOG main(0) text="¡Portal elemental, ábrete!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ WAIT millis=3000 ]} {[ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=5 amount=1 ] [ DIALOG main(0) text="¡Falló otra vez!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ] [ MOVE enemy(0) dir=9 amount=1 ] [ DIALOG main(0) text="¡Tú!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG main(0) text="¿Dónde está el lizarnita?" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG enemy(0) text="Lo metimos en el laberinto de Froj como nos dijo" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Bien hecho" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Pero debe saber" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="que llevaba zapatos, señor" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="¡Estúpido!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="¡Estúpido! ¡Cómo no me lo dijiste!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Yo..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="A este paso habrán llegado a la torre" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="¡Reúne a todas las bestias!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Sí, señor" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(0) dir=7 amount=2 ]} {[ MOVE enemy(0) dir=7 amount=3 ] [ DIALOG main(0) text="Vamos a dar una sorpresa a esos lizarnitas" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/es/level007.hcs0000644000175000001440000000241311177007633025123 0ustar jacobusers########################################## # Holotz's Castle story - Level 7 # Ludar enters the castle ########################################## { [ DIALOG main(0) text="err... Ybelle, espera" txtAlign=4 speed=2 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] } { [ MOVE main(0) dir=6 amount=1 ] [ DIALOG main(0) text="¡Oh, no!" txtAlign=4 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="¡Quién ha puesto ese agujero ahí!" txtAlign=4 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="¡Ybelle!" txtAlign=5 speed=1 size=3 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="¡Ese cabezota!" txtAlign=5 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, fíjate" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Esas piedras se parecen a la que Ybelle cogió" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="¿Qué es este sitio?" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/es/level030.hcs0000644000175000001440000000251411177007633025121 0ustar jacobusers########################################## # Holotz's Castle story - Level 30 # Ybelle and Ludar met again ########################################## {[ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ MOVE main(0) dir=8 amount=6 ] [ MOVE enemy(0) dir=8 amount=6 ] [ MOVE enemy(1) dir=8 amount=6 ] [ MOVE enemy(2) dir=8 amount=6 ]} {[ MOVE main(0) dir=6 amount=3 ] [ MOVE enemy(0) dir=4 amount=3 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=8 amount=4 ]} {[ MOVE main(0) dir=6 amount=4 ] [ MOVE enemy(0) dir=4 amount=4 ] [ MOVE enemy(1) dir=4 amount=3 ] [ MOVE enemy(2) dir=6 amount=3 ]} {[ DIALOG main(0) text="¡Ludar!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="¡Ybelle!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="¡Estás vivo!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="¡No estás muerto!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Bueno, ahora podremos continuar juntos" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="¡Por la escalera, sígueme!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ MOVE main(0) dir=8 amount=3 ] [ MOVE enemy(0) dir=8 amount=3 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/es/level001.hcs0000644000175000001440000000524411177007633025122 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle and Ludar arrive to the castle ########################################## { [ DIALOG main(0) text="¡Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="¡Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] } { [ NARRATIVE text="Ybelle y Ludar." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } { [ DIALOG main(0) text="¿Qué ha pasado?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] [ MOVE enemy(0) dir=6 amount=3 ] } { [ DIALOG enemy(0) text="¡Te dije que no tocaras ese pedrusco!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, calla ya..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="¿Qué iba a saber yo?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="¿Dónde estamos?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="¡JA! ¿Cómo quieres que lo sepa?" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Si no tocaras lo que no debes..." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Pesado..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Imbécil..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Hay que buscar una forma de volver a casa" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Sígueme, Ludar" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Ni lo sueñes... siempre me metes en algún lio" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Esta vez se hará lo que yo diga" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Bien, entonces me voy yo solo" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=5 ] } { [ DIALOG enemy(0) text="???" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=8 amount=3 ] } { [ MOVE enemy(0) dir=6 amount=3 ] [ DIALOG enemy(0) text="err... Ybelle, ¡Espérame!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ MOVE main(0) dir=6 amount=3 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/es/level032.hcs0000644000175000001440000000161111177007633025120 0ustar jacobusers########################################## # Holotz's Castle story - Level 32 # Return to the land of Lizarno ########################################## {[ DIALOG main(0) text="¡Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="¡Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCCredits.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="¡Es Lizarno!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="¡Hemos vuelto!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="¡Eh, mira esa piedra!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="¡No la toques!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/es/level020.hcs0000644000175000001440000000644311177007633025125 0ustar jacobusers########################################## # Holotz's Castle story - Level 20 # Ybelle is captured (continued) ########################################## {[ MOVE enemy(0) dir=8 amount=0 ] [ MOVE enemy(1) dir=8 amount=0 ] [ MOVE enemy(2) dir=4 amount=0 ] [ MOVE enemy(3) dir=6 amount=0 ] [ MOVE enemy(4) dir=4 amount=0 ] [ MOVE enemy(5) dir=6 amount=0 ]} {[ WAIT millis=1000]} {[ DIALOG main(0) text="¡Alto, ni un paso más!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="Je je" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(1) text="Hmmm" txtAlign=5 speed=5 size=3 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="¡Os lo advierto, soy peligroso!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ MOVE enemy(1) dir=4 amount=3 ] [ DIALOG enemy(1) text="Fíjate..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(1) dir=4 amount=1 ] [ DIALOG enemy(5) text="¿Qué pasa?" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Lleva zapatos" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Hmmm... a Holotz no le va a gustar" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="¿Qué queréis?" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE enemy(5) dir=6 amount=4 ] [ MOVE main(0) dir=6 amount=1 ] [ DIALOG enemy(5) text="La cuestión es..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="¿Qué haces tú aquí?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Cogí una piedra y..." txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Y se abrió un portal, ¿Verdad?." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="¡Sí, exacto!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Parece que los experimentos de Holotz" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="No han tenido mucho éxito" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="Me sorprende que hayas llegado tan lejos..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(4) text="¿Qué haremos con él?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Tal y como dijo Holotz..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...lo llevaremos al laberinto de Froj" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Allí se quedará hasta que Holotz decida qué hacer con él..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="... si los 4 hermanos locos no lo encuentran antes" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(2) text="Jur, jur, jur!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/es/level019.hcs0000644000175000001440000000245011177007633025127 0ustar jacobusers########################################## # Holotz's Castle story - Level 19 # Ybelle is captured ########################################## {[ DIALOG main(0) text="¡AAAH!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCMainTitle_Fast.wav" loops=0 waitToEnd=0 ]} {[ MOVE enemy(0) dir=8 amount=4 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=4 amount=2 ] [ MOVE enemy(3) dir=6 amount=2 ] [ MOVE enemy(4) dir=4 amount=5 ] [ MOVE enemy(5) dir=6 amount=5 ] [ DIALOG main(0) text="Oh, oh" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(2) text="!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=1 ] [ DIALOG enemy(3) text="!" txtAlign=5 speed=1 size=2 align=0 r=220 g=20 b=20 subtype=1 ]} {[ NARRATIVE text=" CONTINUARÁ... " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=3 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=1 ]} {[ DIALOG main(0) text="¡Eeeh!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ DIALOG main(0) text="¡No me dejéis aquí!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ WAIT millis=3000]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/es/level033.hcs0000644000175000001440000000065111177007633025124 0ustar jacobusers########################################## # Holotz's Castle story - Level 33 # The end ########################################## {[ DIALOG enemy(0) text="¡Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ DIALOG main(0) text="¡Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} { [ NARRATIVE text=" FIN " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/es/level002.hcs0000644000175000001440000000173111177007633025120 0ustar jacobusers########################################## # Holotz's Castle story - Level 2 # Ybelle enters the castle ########################################## { [ DIALOG main(0) text="¡NoO!" txtAlign=4 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="¡Eso dolió!" txtAlign=4 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="¡LUDAR!" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="...parece que no me oye" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="En fin..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] } { [ MOVE main(0) dir=4 amount=1 ] [ DIALOG main(0) text="¿Qué demonios hacen aquí todas estas llaves?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/es/level016.hcs0000644000175000001440000001701711177007633025131 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ludar talks to the two flames ########################################## {[ DIALOG main(0) text="Oops" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_UltraSlow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="¡Oh, otra piedra!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ NARRATIVE text="Las Dos Llamas" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ] [ DIALOG main(0) text="¡Y Otra!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="¡Alto ahí!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="???" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="¿Hay alguien aquí?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(0) text="¡He dicho alto ahí!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=4 ] [ DIALOG main(0) text="¡Oh, Una llama oradora!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="¡No soy una llama oradora!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="¡Oh!" txtAlign=5 speed=4 size=2 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="¡Soy una llama habladora!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="¿Cómo has sabido lo que pensaba?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="¡Yo lo sé todo!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ejem..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Bueno, casi todo" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ella lee la mente..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Yo leo..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...Libros" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="¡Jar, jar, jar!" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="¡Jur, jur, jur!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="¿Cómo has entrado aquí?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Yo lo sé..." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, ¡Va a leer mi mente!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="¡¡Por el portal místico!!" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="¡Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="¡Jur, jur, jur!" txtAlign=5 speed=1 size=3 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="hmpfxs#@!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Espera, no te vayas" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=5 ]} {[ DIALOG main(0) text="¡No tengo tiempo para bromas!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="¿Qué necesitas?" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=3 ]} {[ DIALOG main(0) text="Tengo que encontrar a Ybelle" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Debemos regresar a la Tierra de Lizarno" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm...un Lizarnita, qué interesante" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=1 ]} {[ DIALOG enemy(1) text="En adelante el castillo se vuelve" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="más peligroso" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="pero tú no tienes suficiente poder mágico" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="para llegar al nivel superior" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Sí, lo que necesitas es..." txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="¡Unos zapatos!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="¡Unos zapatos!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, dejaos de bromas!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Pero sólo puede dártelos" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="El Señor de Los Zapatos" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="¿No existe otra forma de conseguir unos zapatos?" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(1) text="Sí, puedes conseguirlos en" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="¡La zapatería!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="¡La zapatería!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="¡Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="¡Jur, jur, jur!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="¡Esto es demasiado!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Espera" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(1) text="Puedes conseguir unos zapatos" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="tras este portal místico" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Pero debes saber" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="que nadie ha salido con vida de allí" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="¡Oh!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG main(0) text="Hmm... Bueno, debo intentarlo" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="¡Oh!, pero no puedo abrir el portal" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Esa piedra está demasiado alto" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Bien, entonces usa esta escalera" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/es/level014.hcs0000644000175000001440000001407611177007633025131 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle finds the shoe maker ########################################## {[ DIALOG main(0) text="?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="¿Qué es este sitio?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ NARRATIVE text="La Zapatería" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=2 amount=3 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=6 amount=3 ]} {[ MOVE main(0) dir=9 amount=1 ] [ DIALOG enemy(0) text="Ooh, ¡Una visita!" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=1 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ DIALOG main(0) text="¡Vaya un tipo raro!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="!Vaya un tipo raro!" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=1 ] } {[ DIALOG main(0) text="Err.. ¿Hola?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="No pareces..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="De por aquí..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="¡¡Parece que se va a dormir!!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="¿Has entrado nuevo..." txtAlign=5 speed=1 size=0 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...hace..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...poco?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Esto... ¿Nuevo, dices?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, sí, claro" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="¿Quién eres tú?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Yo soy..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...El Señor de Los Zapatos" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Supongo..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...que vienes..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...a por unos zapatos nuevos..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...¿No?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Coge..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Yo..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...estos" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Seguro..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="... que te moverás..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...mejor con ellos..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="¿Sabes cómo salir de aquí?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...no" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...sólo Holotz..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...sabe eso" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="¿Holotz?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Sí..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Él creó..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...este castillo" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="¿Dónde puedo encontrarle?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...no puedes" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Él te..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...encontrará" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Ahora debo..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...seguir" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...trabajando" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="¡Pero...!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ahora debo..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Déjalo, es inútil" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Bien, me voy... y gracias por los zapatos" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=7 amount=2 ]} {[ MOVE main(0) dir=7 amount=2 ]} {[ DIALOG main(0) text="¿Y ahora por dónde voy?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Oh, es igual" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ MOVE main(0) dir=2 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/cs/0000755000175000001440000000000011177007633023064 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/script/cs/level025.hcs0000644000175000001440000000503711177007633025126 0ustar jacobusers########################################## # Holotz's Castle story - Level 25 # Holotz appears ########################################## { [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] [ NARRATIVE text="Holotz" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } {[ MOVE enemy(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ] [ DIALOG main(0) text="Silou Hutazina!..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE main(0) dir=6 amount=3 ] [ DIALOG main(0) text="Elementalni portale, otevri se!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ WAIT millis=3000 ]} {[ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=5 amount=1 ] [ DIALOG main(0) text="Opet selhal!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ] [ MOVE enemy(0) dir=9 amount=1 ] [ DIALOG main(0) text="Ty!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG main(0) text="Kde je Lizarnit?" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG enemy(0) text="Hodili jsme jej do Labyrintu Froj, jak jste nakazal." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Vyborne." txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ale mel byste vedet," txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="ze mel boty, pane." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Idiote!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Idiote! Proc jsi mi o tom nerekl?" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ja..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="S takovou rychlosti uz urcite dosahli veze." txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Vypustte vsechny bestie!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ano, pane." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(0) dir=7 amount=2 ]} {[ MOVE enemy(0) dir=7 amount=3 ] [ DIALOG main(0) text="Posleme tem Lizarnitum male prekvapeni..." txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/cs/level007.hcs0000644000175000001440000000241511177007633025123 0ustar jacobusers########################################## # Holotz's Castle story - Level 7 # Ludar enters the castle ########################################## { [ DIALOG main(0) text="Err... Ybelle, pockej na me!" txtAlign=4 speed=2 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] } { [ MOVE main(0) dir=6 amount=1 ] [ DIALOG main(0) text="Ale ne!" txtAlign=4 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Kde se tady vzala ta dira?" txtAlign=4 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ybelle!" txtAlign=5 speed=1 size=3 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Palicak jeden..." txtAlign=5 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="A hele." txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Tyhle kameny jsou podobne tomu, co na nej sahl Ybelle." txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Co je tohle za divne misto?" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/cs/level030.hcs0000644000175000001440000000245611177007633025124 0ustar jacobusers########################################## # Holotz's Castle story - Level 30 # Ybelle and Ludar met again ########################################## {[ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ MOVE main(0) dir=8 amount=6 ] [ MOVE enemy(0) dir=8 amount=6 ] [ MOVE enemy(1) dir=8 amount=6 ] [ MOVE enemy(2) dir=8 amount=6 ]} {[ MOVE main(0) dir=6 amount=3 ] [ MOVE enemy(0) dir=4 amount=3 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=8 amount=4 ]} {[ MOVE main(0) dir=6 amount=4 ] [ MOVE enemy(0) dir=4 amount=4 ] [ MOVE enemy(1) dir=4 amount=3 ] [ MOVE enemy(2) dir=6 amount=3 ]} {[ DIALOG main(0) text="Ludare!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ybelle!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ty zijes!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ty nejsi mrtvy!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Skvele, muzeme pokracovat spolu." txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Na zebrik, jdeme!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ MOVE main(0) dir=8 amount=3 ] [ MOVE enemy(0) dir=8 amount=3 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/cs/level001.hcs0000644000175000001440000000516611177007633025123 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle and Ludar arrive to the castle ########################################## { [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] } { [ NARRATIVE text="Ludar a Ybelle" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } { [ DIALOG main(0) text="Co se stalo?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] [ MOVE enemy(0) dir=6 amount=3 ] } { [ DIALOG enemy(0) text="Rikal jsem ti, abys na ten kamen nesahal!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Mlc uz..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Jak jsem to mohl tusit?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="A kde to vubec jsme?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Ha! To se pta ten pravy." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Kdybys nesahal, na co jsi nemel..." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Pitomec..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Idiot..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Musime najit cestu zpatky domu." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Nasleduj me, Ludare." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Ani ne... Vzdycky me dostanes do nejakeho prusvihu." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Tentokrat nas povedu ja." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Ok, jdi si sam." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=5 ] } { [ DIALOG enemy(0) text="???" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=8 amount=3 ] } { [ MOVE enemy(0) dir=6 amount=3 ] [ DIALOG enemy(0) text="Err... Ybelle, pockej na me!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ MOVE main(0) dir=6 amount=3 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/cs/level032.hcs0000644000175000001440000000160411177007633025120 0ustar jacobusers########################################## # Holotz's Castle story - Level 32 # Return to the land of Lizarno ########################################## {[ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCCredits.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="To je Lizarno!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Jsme zpatky!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Eh, podivej, ten kamen!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Nedotykej se ho!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/cs/level020.hcs0000644000175000001440000000627411177007633025125 0ustar jacobusers########################################## # Holotz's Castle story - Level 20 # Ybelle is captured (continued) ########################################## {[ MOVE enemy(0) dir=8 amount=0 ] [ MOVE enemy(1) dir=8 amount=0 ] [ MOVE enemy(2) dir=4 amount=0 ] [ MOVE enemy(3) dir=6 amount=0 ] [ MOVE enemy(4) dir=4 amount=0 ] [ MOVE enemy(5) dir=6 amount=0 ]} {[ WAIT millis=1000]} {[ DIALOG main(0) text="Ani hnout!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="Je je" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(1) text="Hmmm" txtAlign=5 speed=5 size=3 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Varuju vas, jsem nebezpecny!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ MOVE enemy(1) dir=4 amount=3 ] [ DIALOG enemy(1) text="Podivej..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(1) dir=4 amount=1 ] [ DIALOG enemy(5) text="Co?" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="On ma boty." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Hmmm... Holotzovi se to nebude libit." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Co chces?" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE enemy(5) dir=6 amount=4 ] [ MOVE main(0) dir=6 amount=1 ] [ DIALOG enemy(5) text="Otazka zni..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Co tu delas?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Sebral jsem kamen a..." txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="A otevrel se mysticky portal, ano?." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Jo, presne!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Vypada to, ze Holotzovy experimenty" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="neuspely." txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="Udivuje mne, ze se ti podarilo dostat takhle daleko..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(4) text="Co s nim udelame?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Jak naridil Holotz..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...vezmeme jej do Labyrintu Froj." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Zustane tam, nez Holotz rozhodne, co s nim..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...Jestli jej teda driv nenajdou 4 sileni bratri." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Har, har!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(2) text="Hur, hur, hur!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/cs/level019.hcs0000644000175000001440000000245511177007633025132 0ustar jacobusers########################################## # Holotz's Castle story - Level 19 # Ybelle is captured ########################################## {[ DIALOG main(0) text="Aaah!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCMainTitle_Fast.wav" loops=0 waitToEnd=0 ]} {[ MOVE enemy(0) dir=8 amount=4 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=4 amount=2 ] [ MOVE enemy(3) dir=6 amount=2 ] [ MOVE enemy(4) dir=4 amount=5 ] [ MOVE enemy(5) dir=6 amount=5 ] [ DIALOG main(0) text="Oh, oh..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(2) text="!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=1 ] [ DIALOG enemy(3) text="!" txtAlign=5 speed=1 size=2 align=0 r=220 g=20 b=20 subtype=1 ]} {[ NARRATIVE text=" POKRACOVANI PRISTE... " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=3 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=1 ]} {[ DIALOG main(0) text="Eeeh!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ DIALOG main(0) text="Nenechavejte me tady!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ WAIT millis=3000]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/cs/level033.hcs0000644000175000001440000000064511177007633025125 0ustar jacobusers########################################## # Holotz's Castle story - Level 33 # The end ########################################## {[ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} { [ NARRATIVE text=" KONEC " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/cs/level002.hcs0000644000175000001440000000171611177007633025121 0ustar jacobusers########################################## # Holotz's Castle story - Level 2 # Ybelle enters the castle ########################################## { [ DIALOG main(0) text="Nee!" txtAlign=4 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="To bolelo!" txtAlign=4 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="Ludare!" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="...vypada to, ze me neslysi." txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Dobre..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] } { [ MOVE main(0) dir=4 amount=1 ] [ DIALOG main(0) text="Co tu k sakru delaji vsechny tyhle klice?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/cs/level016.hcs0000644000175000001440000001647711177007633025140 0ustar jacobusers########################################## # Holotz's Castle story - Level 16 # Ludar talks to the two flames ########################################## {[ DIALOG main(0) text="Oops..." txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_UltraSlow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Hele, dalsi kamen!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ NARRATIVE text="Dva plameny" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ] [ DIALOG main(0) text="A dalsi!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Ani hnout!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="???" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Co to bylo?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(0) text="Povidam: Ani hnout!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=4 ] [ DIALOG main(0) text="Oh, povidajici plamen!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Nejsem povidajici plamen!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Oh!" txtAlign=5 speed=4 size=2 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Jsem mluvici plamen!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Jak jsi vedel, na co myslim?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Ja vim vsechno!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ahem..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Teda, skoro vsechno." txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="On cte myslenky..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...a ja ctu..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...knihy." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Jak ses sem dostal?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Ja vim..." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, chysta se mi precist myslenky!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Kouzelnym portalem!" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=3 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="hmpfxs#@!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Pockej, neodchazej." txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=5 ]} {[ DIALOG main(0) text="Nemam cas na forky!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Co potrebujes?" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=3 ]} {[ DIALOG main(0) text="Musim najit Ybelle." txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Musime se vratit do rise Lizarno." txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm... Lizarnit, zajimave." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=1 ]} {[ DIALOG enemy(1) text="Odted dale bude hrad" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="nebezpecnejsi" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="a ty nemas dost magicke sily," txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="abys dosahl nejvyssi urovne." txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Ano, potrebujes..." txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Boty!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Boty!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Hele, nechte toho vtipkovani!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Ale muzes je ziskat pouze od" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Pana bot." txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Neni zadny jiny zpusob, jak je ziskat?" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(1) text="Ano, muzes je dostat v" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Obuvnictvi!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Obuvnictvi!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Zacinaji me stvat!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Pockej." txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(1) text="Boty muzes taky najit" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="v mistnosti za timto mystickym portalem." txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Ale mel bys vedet," txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="ze z nej nikdy nikdo nevysel zivy." txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG main(0) text="Hmm... Presto to musim zkusit." txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Oh, ale ja ten portal nemuzu otevrit." txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Posledni kamen je prilis vysoko!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Tak pouzij tenhle zebrik." txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/cs/level014.hcs0000644000175000001440000001407311177007633025124 0ustar jacobusers########################################## # Holotz's Castle story - Level 14 # Ybelle finds the shoe maker ########################################## {[ DIALOG main(0) text="?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Co je tohle za divne misto?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ NARRATIVE text="Obuvnictvi" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=2 amount=3 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=6 amount=3 ]} {[ MOVE main(0) dir=9 amount=1 ] [ DIALOG enemy(0) text="Ooh, navstevnik!" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=1 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ DIALOG main(0) text="Co je to za podivina..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Co je to za podivina..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=1 ] } {[ DIALOG main(0) text="Err... A-hoj?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Nevypadas..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...ze jsi odsud." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Vypada, jako by se chystal kazdou chvili usnout!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="Vstoupil jsi novy..." txtAlign=5 speed=1 size=0 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...pred..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...kratkou dobou?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Podivej... Novy, rikas??" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, ano, samozrejme." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Kdo jsi?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Jsem..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...Pan bot." txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Predpokladam..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...ze sis prisel..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...pro novy par..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...Spravne?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Vem si..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Ja..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...tyhle." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Samozrejme..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...se s nimi budes..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...pohybovat rychleji..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Nevis, jak se odsud dostat?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...ne." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...Jen Holotz..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...vi." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Holotz?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ano..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="To on vytvoril..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...tenhle hrad." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Kde ho najdu?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...To nejde." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="On..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...najde tebe." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Nyni se musim..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...vratit..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...ke sve praci." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="A-ale...!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Nyni se musim..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="To nic, nech to plavat." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Tedy, ja jdu... Diky za boty." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=7 amount=2 ]} {[ MOVE main(0) dir=7 amount=2 ]} {[ DIALOG main(0) text="Ale kam vlastne pujdu?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="No, vzdyt je to docela jedno..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ MOVE main(0) dir=2 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/eu/0000755000175000001440000000000011177007633023070 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/script/eu/level025.hcs0000644000175000001440000000507711177007633025136 0ustar jacobusers########################################## # Holotz's Castle story - Level 25 # Holotz appears ########################################## { [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] [ NARRATIVE text="Holotz." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } {[ MOVE enemy(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ] [ DIALOG main(0) text="Hutazinen indarragatik!..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE main(0) dir=6 amount=3 ] [ DIALOG main(0) text="Oinarrizko ataria, ireki!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ WAIT millis=3000 ]} {[ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=5 amount=1 ] [ DIALOG main(0) text="Berriro huts egin du!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ] [ MOVE enemy(0) dir=9 amount=1 ] [ DIALOG main(0) text="Zu!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG main(0) text="Non dago lizarnoarra?" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG enemy(0) text="Frojen labirintoan sartu genuen berorrek agindu bezala" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ongi egina" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Baina jakin behar du" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="oinetakoak zeramatzala, Jauna" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ergela!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Ergela! Nolatan ez didazu ezer esan!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ni..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Honezkero dorrera iritsiko ziren" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Bil itzazu munstro guztiak!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Bai, Jauna" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(0) dir=7 amount=2 ]} {[ MOVE enemy(0) dir=7 amount=3 ] [ DIALOG main(0) text="Lizarnoar horiei ezusteko bat eman behar diegu" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/eu/level007.hcs0000644000175000001440000000236711177007633025135 0ustar jacobusers########################################## # Holotz's Castle story - Level 7 # Ludar enters the castle ########################################## { [ DIALOG main(0) text="err... Ybelle, itxaron" txtAlign=4 speed=2 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] } { [ MOVE main(0) dir=6 amount=1 ] [ DIALOG main(0) text="Oh, ez!" txtAlign=4 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Nork jarri du hor zulo hori!" txtAlign=4 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ybelle!" txtAlign=5 speed=1 size=3 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Burugogor halakoa!" txtAlign=5 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hara..." txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Harri horiek Ybellek harturikoaren antza dute" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Zer da toki hau?" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/eu/level030.hcs0000644000175000001440000000250511177007633025123 0ustar jacobusers########################################## # Holotz's Castle story - Level 30 # Ybelle and Ludar met again ########################################## {[ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ MOVE main(0) dir=8 amount=6 ] [ MOVE enemy(0) dir=8 amount=6 ] [ MOVE enemy(1) dir=8 amount=6 ] [ MOVE enemy(2) dir=8 amount=6 ]} {[ MOVE main(0) dir=6 amount=3 ] [ MOVE enemy(0) dir=4 amount=3 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=8 amount=4 ]} {[ MOVE main(0) dir=6 amount=4 ] [ MOVE enemy(0) dir=4 amount=4 ] [ MOVE enemy(1) dir=4 amount=3 ] [ MOVE enemy(2) dir=6 amount=3 ]} {[ DIALOG main(0) text="Ludar!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ybelle!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Bizirik zaude!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ez zaude hilik!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Tira, orain biok batera jarrai genezake" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Eskaileratik, jarraitu niri!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ MOVE main(0) dir=8 amount=3 ] [ MOVE enemy(0) dir=8 amount=3 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/eu/level001.hcs0000644000175000001440000000530511177007633025122 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle and Ludar arrive to the castle ########################################## { [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] } { [ NARRATIVE text="Ybelle eta Ludar." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } { [ DIALOG main(0) text="Zer gertatu da?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] [ MOVE enemy(0) dir=6 amount=3 ] } { [ DIALOG enemy(0) text="Esan nizun harritzar hura ez ukitzeko!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, isil zaitez..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Eta zer nekien nik?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Non gaude?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="JA! Nola nahi duzu nik jakitea?" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Ez bazenu behar ez dena ukituko..." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Gogaikarri hori..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Tentel hori..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Etxera itzultzeko bideren bat aurkitu behar dugu" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Jarrai nazazu, Ludar" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Ezta pentsatu ere... nahaspiletan sartu baizik ez nauzu egiten" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Oraingo honetan nik esandakoa egingo dugu" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Ados, orduan bakarrik joango naiz" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=5 ] } { [ DIALOG enemy(0) text="???" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=8 amount=3 ] } { [ MOVE enemy(0) dir=6 amount=3 ] [ DIALOG enemy(0) text="err... Ybelle, itxaron!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ MOVE main(0) dir=6 amount=3 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/eu/level032.hcs0000644000175000001440000000160211177007633025122 0ustar jacobusers########################################## # Holotz's Castle story - Level 32 # Return to the land of Lizarno ########################################## {[ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCCredits.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Lizarno da!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Itzuli gara!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Ei, ikusten harri hori?!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Ez ezazu ukitu!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/eu/level020.hcs0000644000175000001440000000645211177007633025127 0ustar jacobusers########################################## # Holotz's Castle story - Level 20 # Ybelle is captured (continued) ########################################## {[ MOVE enemy(0) dir=8 amount=0 ] [ MOVE enemy(1) dir=8 amount=0 ] [ MOVE enemy(2) dir=4 amount=0 ] [ MOVE enemy(3) dir=6 amount=0 ] [ MOVE enemy(4) dir=4 amount=0 ] [ MOVE enemy(5) dir=6 amount=0 ]} {[ WAIT millis=1000]} {[ DIALOG main(0) text="Geldi, ezta urrats bat gehiago ere!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="Je je" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(1) text="Hmmm" txtAlign=5 speed=5 size=3 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ohartarazi beharrean nago, oso arriskutsua naiz!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ MOVE enemy(1) dir=4 amount=3 ] [ DIALOG enemy(1) text="Begira..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(1) dir=4 amount=1 ] [ DIALOG enemy(5) text="Zer da?" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Oinetakoak daramatza" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Hmmm... Holotzi ez zaio gustatuko" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Zer da nahi duzuena?" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE enemy(5) dir=6 amount=4 ] [ MOVE main(0) dir=6 amount=1 ] [ DIALOG enemy(5) text="Kontua da..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Zer egiten duzu zuk hemen?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Harri bat hartu nuen, eta..." txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Eta atari bat ireki zen, ezta?." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Bai, hala da!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Badirudi Holotzen esperimentuek" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="ez dutela arrakastarik izan" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="Harrigarria da honen urrun heldu izana..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(4) text="Zer egingo dugu honekin?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Holotzek agindu bezala..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...Frojen labirintoan utziko dugu" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Bertan geldituko da Holotzek berekin zer egin erabaki arte..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="... 4 anai eroek lehenago aurkitzen ez badute" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(2) text="Jur, jur, jur!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/eu/level019.hcs0000644000175000001440000000244611177007633025136 0ustar jacobusers########################################## # Holotz's Castle story - Level 19 # Ybelle is captured ########################################## {[ DIALOG main(0) text="AAAH!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCMainTitle_Fast.wav" loops=0 waitToEnd=0 ]} {[ MOVE enemy(0) dir=8 amount=4 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=4 amount=2 ] [ MOVE enemy(3) dir=6 amount=2 ] [ MOVE enemy(4) dir=4 amount=5 ] [ MOVE enemy(5) dir=6 amount=5 ] [ DIALOG main(0) text="Oh, oh" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(2) text="!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=1 ] [ DIALOG enemy(3) text="!" txtAlign=5 speed=1 size=2 align=0 r=220 g=20 b=20 subtype=1 ]} {[ NARRATIVE text=" JARRAITUKO DU... " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=3 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=1 ]} {[ DIALOG main(0) text="Eeeh!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ DIALOG main(0) text="Ez nazazue hemen utzi!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ WAIT millis=3000]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/eu/level033.hcs0000644000175000001440000000065111177007633025126 0ustar jacobusers########################################## # Holotz's Castle story - Level 33 # The end ########################################## {[ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} { [ NARRATIVE text=" AMAIERA " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/eu/level002.hcs0000644000175000001440000000173111177007633025122 0ustar jacobusers########################################## # Holotz's Castle story - Level 2 # Ybelle enters the castle ########################################## { [ DIALOG main(0) text="Eeeeez!" txtAlign=4 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Hau kolpea!" txtAlign=4 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="LUDAR!" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="...dirudienez ez nau entzuten" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Tira..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] } { [ MOVE main(0) dir=4 amount=1 ] [ DIALOG main(0) text="Ze demonio egiten dute hemen giltza guzti hauek?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/eu/level016.hcs0000644000175000001440000001704611177007633025135 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ludar talks to the two flames ########################################## {[ DIALOG main(0) text="Oops" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_UltraSlow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Hara, beste harri bat!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ NARRATIVE text="Bi Sugarrak" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ] [ DIALOG main(0) text="Eta beste bat!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Geldi hor!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="???" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Nor dabil hor?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(0) text="Gelditzeko esan dut!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=4 ] [ DIALOG main(0) text="Oh, sugar bat berriketan!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Ez naiz berriketan ari den sugar bat!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Oh!" txtAlign=5 speed=4 size=2 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Hizketan ari den sugar bat naiz!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Nola jakin duzu zer narabilen buruan?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Nik dena dakit!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ejem..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Tira, ia dena" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Zure pentsamenduak irakurtzen ditu..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Nik irakurtzen ditudanak..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...liburuak dira" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Nola sartu zara hemen?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Nik badakit..." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, nire pentsamenduak irakurtzera doa!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Atari mistikotik!!" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=3 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="hmpfxs#@!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Itxaron, ez ezazu alde egin" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=5 ]} {[ DIALOG main(0) text="Ez dut txantxetarako astirik!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Zer behar duzu?" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=3 ]} {[ DIALOG main(0) text="Ybelle aurkitu beharra dut" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Lizarnoko lurretara itzuli beharra dugu" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm...Lizarnoar bat, bikain..." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=1 ]} {[ DIALOG enemy(1) text="Hemendik aurrera, gaztelua" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="arriskutsuagoa bilakatzen da" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="baina zuk ez duzu behar beste indar majiko" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="azken mailara iritsi ahal izateko" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Bai, behar duzuna da..." txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Oinetako parea!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Oinetako parea!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, utzi txantxak egiteari!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Baina bakar batek eman diezazkizuke:" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Zapaten Jaunak" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Ez dago zapata horiek lortzeko beste biderik?" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(1) text="Bai, bada zapatak lortzeko toki bat:" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Oinetako denda!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Oinetako denda!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Aski da!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Zaude" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(1) text="Oinetakoak atari mistiko" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="honen ostean ere lor ditzakezu" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Baina jakin beharko zenuke" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="inoiz inor ez dela handik bizirik irten" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG main(0) text="Hmm... Tira, saiatu beharra dut" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Oh!, baina ezin dut ataria ireki!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Harri hura garaiegi dago" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Ados, orduan erabili eskailera hau" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/eu/level014.hcs0000644000175000001440000001412511177007633025126 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle finds the shoe maker ########################################## {[ DIALOG main(0) text="?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Non nago? Zer da hau?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ NARRATIVE text="Zapatadenda" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=2 amount=3 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=6 amount=3 ]} {[ MOVE main(0) dir=9 amount=1 ] [ DIALOG enemy(0) text="Ooh, bisita bat!" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=1 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ DIALOG main(0) text="Ze tipo bitxia!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Ze tipo bitxia!" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=1 ] } {[ DIALOG main(0) text="Err.. Kaixo?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Ez dirudizu..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Inguru honetakoa..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Loak hartuko duela dirudi!!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="Orain dela gutxi..." txtAlign=5 speed=1 size=0 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...sartu zara,..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...berria?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Baaa... Berria, diozu?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, bai, noski" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Nor zara zu?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Ni..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...Zapaten Jauna naiz" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Zapata..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...berri batzuen bila..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...etorriko zara..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...Ezta?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Tori..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Zera..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...hauek" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Ziur..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...hauekin arinago..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...ibiliko zarela..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Ba al dakizu nola irteten den hemendik?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...ez" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...hori Holotzek..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...baino ez daki" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Holotzek?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Bai..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Berak sortu zuen..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...gaztelu hau" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Eta non aurki dezaket?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...ezin zenezake" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Berak..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...aurkituko zaitu" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Orain lanean..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...jarraitu" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...beharra dut" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Baina...!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Orain lanean..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Uztak Ybelle, eztuk ezer lortuko" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Bikain, ni banoa... eta eskerrik asko oinetakoengatik!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=7 amount=2 ]} {[ MOVE main(0) dir=7 amount=2 ]} {[ DIALOG main(0) text="Eta nondik joango naiz ni orain?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Oh, berdin dio" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ MOVE main(0) dir=2 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/fr/0000755000175000001440000000000011177007633023066 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/script/fr/level025.hcs0000644000175000001440000000517211177007633025130 0ustar jacobusers########################################## # Holotz's Castle story - Level 25 # Holotz appears ########################################## { [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] [ NARRATIVE text="Holotz." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } {[ MOVE enemy(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ] [ DIALOG main(0) text="Par le pouvoir de Hutazin!..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE main(0) dir=6 amount=3 ] [ DIALOG main(0) text="Portail Élementaire, ouvre toi!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ WAIT millis=3000 ]} {[ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=5 amount=1 ] [ DIALOG main(0) text="Encore raté!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ] [ MOVE enemy(0) dir=9 amount=1 ] [ DIALOG main(0) text="Toi!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG main(0) text="Où est le lizarnite?" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG enemy(0) text="On l'a enfermé dans le Labyrinthe de Froj comme vous nous aviez demandé" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Très bien" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Mais vous devez savoir" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="qu'il a des chaussures, maître" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Idiot!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Idiot! Pourquoi tu ne me l'as pas dit plus tôt?" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Je..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="À cette vitesse, ils doivent avoir atteint la tour" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Amène les bêtes!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Oui, maître" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(0) dir=7 amount=2 ]} {[ MOVE enemy(0) dir=7 amount=3 ] [ DIALOG main(0) text="On va faire une surprise à ces deux lizarnites" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/fr/level007.hcs0000644000175000001440000000240611177007633025125 0ustar jacobusers########################################## # Holotz's Castle story - Level 7 # Ludar enters the castle ########################################## { [ DIALOG main(0) text="Hé... Ybelle, Attends moi!" txtAlign=4 speed=2 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] } { [ MOVE main(0) dir=6 amount=1 ] [ DIALOG main(0) text="Oh, non!" txtAlign=4 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Qui a mis un trou ici?" txtAlign=4 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ybelle!" txtAlign=5 speed=1 size=3 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Quel têtu!" txtAlign=5 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, regarde" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Ces pierres sont semblables à celle que Ybelle a touché" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Quel est cet endroit?" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/fr/level030.hcs0000644000175000001440000000252111177007633025117 0ustar jacobusers########################################## # Holotz's Castle story - Level 30 # Ybelle and Ludar met again ########################################## {[ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ MOVE main(0) dir=8 amount=6 ] [ MOVE enemy(0) dir=8 amount=6 ] [ MOVE enemy(1) dir=8 amount=6 ] [ MOVE enemy(2) dir=8 amount=6 ]} {[ MOVE main(0) dir=6 amount=3 ] [ MOVE enemy(0) dir=4 amount=3 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=8 amount=4 ]} {[ MOVE main(0) dir=6 amount=4 ] [ MOVE enemy(0) dir=4 amount=4 ] [ MOVE enemy(1) dir=4 amount=3 ] [ MOVE enemy(2) dir=6 amount=3 ]} {[ DIALOG main(0) text="Ludar!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ybelle!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Tu es vivant!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Tu n'es pas mort!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Bien, maintenant nous pouvons continuer ensemble" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Prenons l'échelle, suis moi!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ MOVE main(0) dir=8 amount=3 ] [ MOVE enemy(0) dir=8 amount=3 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/fr/level001.hcs0000644000175000001440000000530711177007633025122 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle and Ludar arrive to the castle ########################################## { [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] } { [ NARRATIVE text="Ybelle et Ludar." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } { [ DIALOG main(0) text="Qu'est-ce qui s'est passé?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] [ MOVE enemy(0) dir=6 amount=3 ] } { [ DIALOG enemy(0) text="Je t'avais dit de ne pas toucher à cette pierre!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, la ferme..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Je ne pouvais pas savoir..." txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Où sommes-nous?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="HA! Qu'est-ce que j'en sais, moi?" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Si tu ne touchais par ce que tu ne dois pas toucher..." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Abruti..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Idiot..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="On doit trouver comment rentrer chez nous" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Suis-moi, Ludar" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Non... Tu m'attires toujours des ennuis" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Cette fois-ci, on fera ce que je dis" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Ok, alors j'y vais tout seul" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=5 ] } { [ DIALOG enemy(0) text="???" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=8 amount=3 ] } { [ MOVE enemy(0) dir=6 amount=3 ] [ DIALOG enemy(0) text="Hé... Ybelle, Attends moi!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ MOVE main(0) dir=6 amount=3 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/fr/level032.hcs0000644000175000001440000000162011177007633025120 0ustar jacobusers########################################## # Holotz's Castle story - Level 32 # Return to the land of Lizarno ########################################## {[ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCCredits.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="C'est Lizarno!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Nous sommes arrivé!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Eh, regardes cette pierre!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="N'y touches pas!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/fr/level020.hcs0000644000175000001440000000647211177007633025127 0ustar jacobusers########################################## # Holotz's Castle story - Level 20 # Ybelle is captured (continued) ########################################## {[ MOVE enemy(0) dir=8 amount=0 ] [ MOVE enemy(1) dir=8 amount=0 ] [ MOVE enemy(2) dir=4 amount=0 ] [ MOVE enemy(3) dir=6 amount=0 ] [ MOVE enemy(4) dir=4 amount=0 ] [ MOVE enemy(5) dir=6 amount=0 ]} {[ WAIT millis=1000]} {[ DIALOG main(0) text="Stop, ne bougez plus!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="Je je" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(1) text="Hmmm" txtAlign=5 speed=5 size=3 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Je vous préviens, Je suis dangereux!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ MOVE enemy(1) dir=4 amount=3 ] [ DIALOG enemy(1) text="Regardes..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(1) dir=4 amount=1 ] [ DIALOG enemy(5) text="Quoi?" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Il a des chaussures" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Hmmm... Holotz ne va pas aimer ça" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Que voulez-vous?" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE enemy(5) dir=6 amount=4 ] [ MOVE main(0) dir=6 amount=1 ] [ DIALOG enemy(5) text="La question est..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Que fais-tu ici?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="J'ai touché une pierre et..." txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Et un portail mystique s'est ouvert, c'est ça?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Oui, tout à fait!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Apparement les expériences de Holotz" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="n'ont pas réussi" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="C'est amusant que tu sois arrivé jusqu'ici..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(4) text="Que va-t'on faire de lui?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Comme l'a dit Holotz..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...nous allons l'abandonner dans le Labyrinthe de Froj" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Il y restera jusqu'à ce que Holotz décide de son sort..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...si les 4 frères fous ne le trouve pas avant" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Har, har!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(2) text="Hur, hur, hur!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/fr/level019.hcs0000644000175000001440000000244411177007633025132 0ustar jacobusers########################################## # Holotz's Castle story - Level 19 # Ybelle is captured ########################################## {[ DIALOG main(0) text="AAAH!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCMainTitle_Fast.wav" loops=0 waitToEnd=0 ]} {[ MOVE enemy(0) dir=8 amount=4 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=4 amount=2 ] [ MOVE enemy(3) dir=6 amount=2 ] [ MOVE enemy(4) dir=4 amount=5 ] [ MOVE enemy(5) dir=6 amount=5 ] [ DIALOG main(0) text="Oh, oh" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(2) text="!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=1 ] [ DIALOG enemy(3) text="!" txtAlign=5 speed=1 size=2 align=0 r=220 g=20 b=20 subtype=1 ]} {[ NARRATIVE text=" A SUIVRE... " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=3 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=1 ]} {[ DIALOG main(0) text="Hééé!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ DIALOG main(0) text="Ne me laissez pas là!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ WAIT millis=3000]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/fr/level033.hcs0000644000175000001440000000064411177007633025126 0ustar jacobusers########################################## # Holotz's Castle story - Level 33 # The end ########################################## {[ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} { [ NARRATIVE text=" FIN " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/fr/level002.hcs0000644000175000001440000000170411177007633025120 0ustar jacobusers########################################## # Holotz's Castle story - Level 2 # Ybelle enters the castle ########################################## { [ DIALOG main(0) text="noN!" txtAlign=4 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Et mince!" txtAlign=4 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="LUDAR!" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="...il n'a pas l'air de m'entendre" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Bon..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] } { [ MOVE main(0) dir=4 amount=1 ] [ DIALOG main(0) text="Que font toutes ces clés ici?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/fr/level016.hcs0000644000175000001440000001715411177007633025133 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ludar talks to the two flames ########################################## {[ DIALOG main(0) text="Oups" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_UltraSlow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Oh, une autre pierre!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ NARRATIVE text="Les Deux Flammes" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ] [ DIALOG main(0) text="Encore une!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Stop!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="???" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Il y a quelqu'un?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(0) text="J'ai dit STOP!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=4 ] [ DIALOG main(0) text="Oh, une flamme qui peut parler!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Je ne suis pas une flamme qui peut parler!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Oh!" txtAlign=5 speed=4 size=2 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Je suis une flamme qui parle!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Comment as-tu su ce que je pensais?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Je sais tout!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ahem..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Bon, presque tout" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Elle lit dans tes pensées..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Et je lis..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...des livres" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Comment est-tu entré ici?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Je sais..." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, Elle lit dans mes pensées!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Par le portail mystique!!" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=3 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="hmpfxs#@!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Attends, ne t'en va pas" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=5 ]} {[ DIALOG main(0) text="Je n'ai pas le temps de rire!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="De quoi as-tu besoin?" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=3 ]} {[ DIALOG main(0) text="Je dois retrouver Ybelle" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Nous devons retourner dans le Pays de Lizarno" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm...un Lizarnite, intéressant" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=1 ]} {[ DIALOG enemy(1) text="Maitenant, le château devient" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="dangereux" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="et tu n'as pas assez d'énergie magique" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="pour atteindre le dernier niveau" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Oui, tu as besoin d'une..." txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Paire de chaussures!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Paire de chaussures!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, arrétez de vous moquer de moi!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Mais tu ne peux les avoir que chez" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Le Prince de La Chaussure" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Il n'y a pas d'autre moyen d'avoir une paire de chaussures?" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(1) text="Si, tu peux en avoir une au..." txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Magasin de chaussures!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Magasin de chaussures!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Jar, jar, jar!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Jur, jur, jur!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="C'est exaspérant!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Attends" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(1) text="Tu peux avoir une paire" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="dans la pièce derrière ce portail mystique" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Mais tu dois savoir" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="que personne n'en est ressorti vivant" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG main(0) text="Hmm... Tant pis, je dois essayer" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Oh!, mais je ne peut pas ouvrir le portail" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Cette pierre est trop haute!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Et bien, alors utilise cette échelle" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/fr/level014.hcs0000644000175000001440000001425511177007633025130 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle finds the shoe maker ########################################## {[ DIALOG main(0) text="?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Quel est cet endroit?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ NARRATIVE text="Frabicant de chaussures" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=2 amount=3 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=6 amount=3 ]} {[ MOVE main(0) dir=9 amount=1 ] [ DIALOG enemy(0) text="Tiens, un visiteur!" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=1 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ DIALOG main(0) text="Quel type étrange!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Quel type étrange!" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=1 ] } {[ DIALOG main(0) text="Euh.. Bonjour?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Tu n'as pas l'air d'être..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...du coin" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Il donne l'impression qu'il va s'endormir!!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="Est-tu nouveau ici..." txtAlign=5 speed=1 size=0 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...depuis..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...longtemps?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Je vois... Nouveau, tu as dit?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Ah, oui, d'accord" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Qui est tu?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Je suis..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...Le Prince de la Chaussure" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Je suppose..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...que tu viens..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...pour une nouvelle paire..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...N'est-ce pas?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Prends..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Je..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...celles là" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Je suis sûr..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="... que tu te déplaceras..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...mieux avec..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Sais-tu comment sortir d'ici?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...non" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...seul Holotz..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...le sait" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Holotz?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Oui..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Il a créÂé..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...ce château" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Où puis-je le trouver?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...Tu ne peux pas" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Il..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...te trouveras" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="A présent je dois..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...retourner" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...travailler" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="M-mais...!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="A présent je dois..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Laissons-le, il délire" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Bon, J'y vais... Merci pour les chaussures" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=7 amount=2 ]} {[ MOVE main(0) dir=7 amount=2 ]} {[ DIALOG main(0) text="Et, où je vais maintenant?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Oh, Pourquoi pas par là ?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ MOVE main(0) dir=2 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/pt/0000755000175000001440000000000011177007633023102 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/holotzcastle/script/pt/level025.hcs0000644000175000001440000000507611177007633025147 0ustar jacobusers########################################## # Holotz's Castle story - Level 25 # Holotz appears ########################################## { [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] [ NARRATIVE text="Holotz." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } {[ MOVE enemy(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ] [ DIALOG main(0) text="Pelo poder de Hutazin!..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ MOVE main(0) dir=6 amount=3 ] [ DIALOG main(0) text="Portal elemental, abre-te!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE enemy(0) dir=9 amount=1 ]} {[ WAIT millis=3000 ]} {[ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=5 amount=1 ] [ DIALOG main(0) text="Falhou outra vez!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ] [ MOVE enemy(0) dir=9 amount=1 ] [ DIALOG main(0) text="Tu!" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG main(0) text="Onde está o lizarnita?" txtAlign=5 speed=5 size=3 align=1 r=80 g=80 b=200 subtype=0 ]} {[ DIALOG enemy(0) text="Levamo-lo para o labirinto de Froj como nos disseste" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Bem feito" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Mas deves saber" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="que calçava sapatos, senhor" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Estúpido!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Estúpido! Porque que não me disseste!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Eu..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="A este passo devem ter chegado à torre" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Reúne todas as bestas!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Sim, senhor" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(0) dir=7 amount=2 ]} {[ MOVE enemy(0) dir=7 amount=3 ] [ DIALOG main(0) text="Vamos fazer uma supresa a esses lizarnitas" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/pt/level007.hcs0000644000175000001440000000237411177007633025145 0ustar jacobusers########################################## # Holotz's Castle story - Level 7 # Ludar enters the castle ########################################## { [ DIALOG main(0) text="ermm... Ybelle, espera" txtAlign=4 speed=2 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] } { [ MOVE main(0) dir=6 amount=1 ] [ DIALOG main(0) text="Oh não!" txtAlign=4 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Quem pôs aquele buraco ali!?" txtAlign=4 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Ybelle!" txtAlign=5 speed=1 size=3 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Aquele teimoso!" txtAlign=5 speed=1 size=2 align=0 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, olha" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Estas pedras parecem-se com a que Ybelle pegou" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ] } { [ DIALOG main(0) text="Que sítio é este?" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=1 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/pt/level030.hcs0000644000175000001440000000247411177007633025142 0ustar jacobusers########################################## # Holotz's Castle story - Level 30 # Ybelle and Ludar met again ########################################## {[ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ MOVE main(0) dir=8 amount=6 ] [ MOVE enemy(0) dir=8 amount=6 ] [ MOVE enemy(1) dir=8 amount=6 ] [ MOVE enemy(2) dir=8 amount=6 ]} {[ MOVE main(0) dir=6 amount=3 ] [ MOVE enemy(0) dir=4 amount=3 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=8 amount=4 ]} {[ MOVE main(0) dir=6 amount=4 ] [ MOVE enemy(0) dir=4 amount=4 ] [ MOVE enemy(1) dir=4 amount=3 ] [ MOVE enemy(2) dir=6 amount=3 ]} {[ DIALOG main(0) text="Ludar!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Ybelle!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Estás vivo!" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Não estás morto!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Bem, agora podemos continuar juntos" txtAlign=5 speed=5 size=3 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Pela escada, segue-me!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ MOVE main(0) dir=8 amount=3 ] [ MOVE enemy(0) dir=8 amount=3 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/pt/level001.hcs0000644000175000001440000000523611177007633025137 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle and Ludar arrive to the castle ########################################## { [ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_Slow.wav" loops=-1 waitToEnd=0 ] } { [ NARRATIVE text="Ybelle e Ludar." txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] } { [ DIALOG main(0) text="Que aconteceu?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ] [ MOVE enemy(0) dir=6 amount=3 ] } { [ DIALOG enemy(0) text="Eu disse-te para não tocares naquela pedra!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Oh, cala-te..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Como é que eu ia saber?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Onde estamos?" txtAlign=5 speed=1 size=2 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Ah! Como queres que saiba?" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Se não tocasses no que não devias..." txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Idiota..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Imbecil..." txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ] } { [ DIALOG main(0) text="Temos de arranjar uma forma de voltar para casa" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Segue-me Ludar" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG enemy(0) text="Nem sonhes... metes-me sempre em confusões" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG enemy(0) text="Desta vez faremos o que eu disser" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Bom, então eu vou sozinho" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=5 ] } { [ DIALOG enemy(0) text="???" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=8 amount=3 ] } { [ MOVE enemy(0) dir=6 amount=3 ] [ DIALOG enemy(0) text="ermm... Ybelle, Espera por mim!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=0 ] } { [ MOVE main(0) dir=6 amount=3 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/pt/level032.hcs0000644000175000001440000000157411177007633025144 0ustar jacobusers########################################## # Holotz's Castle story - Level 32 # Return to the land of Lizarno ########################################## {[ DIALOG main(0) text="Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCCredits.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="É Lizarno!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Voltamos!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Eh, olha essa pedra!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Não lhe toques!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/pt/level020.hcs0000644000175000001440000000636111177007633025140 0ustar jacobusers########################################## # Holotz's Castle story - Level 20 # Ybelle is captured (continued) ########################################## {[ MOVE enemy(0) dir=8 amount=0 ] [ MOVE enemy(1) dir=8 amount=0 ] [ MOVE enemy(2) dir=4 amount=0 ] [ MOVE enemy(3) dir=6 amount=0 ] [ MOVE enemy(4) dir=4 amount=0 ] [ MOVE enemy(5) dir=6 amount=0 ]} {[ WAIT millis=1000]} {[ DIALOG main(0) text="Alto, não te mexas!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG enemy(0) text="He he" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(1) text="Hmmm" txtAlign=5 speed=5 size=3 align=0 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Advirto-vos, sou perigoso!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ MOVE enemy(1) dir=4 amount=3 ] [ DIALOG enemy(1) text="Olha..." txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ MOVE enemy(1) dir=4 amount=1 ] [ DIALOG enemy(5) text="O quê?" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Ele tem sapatos" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Hmmm... Holotz não vai gostar" txtAlign=5 speed=5 size=3 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Que queres?" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ MOVE enemy(5) dir=6 amount=4 ] [ MOVE main(0) dir=6 amount=1 ] [ DIALOG enemy(5) text="A questão é..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Que fazes tu aqui?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Peguei numa pedra e..." txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="E abriu-se um portal, certo?." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG main(0) text="Sim, exacto!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(5) text="Parece que as experiências de Holotz" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="Não tiveram muito sucesso" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=20 subtype=1 ]} {[ DIALOG enemy(5) text="Surpreende-me que tenham chegado tão longe..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(4) text="Que fazemos com ele?" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Tal como disse Holotz..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...vamos levá-lo ao labirinto de Froj" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="Ali ficará até que Holotz decida o que fazer com ele..." txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(5) text="...se os 4 irmãos loucos não o encontrarem antes" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Ah, ah!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=20 subtype=0 ] [ DIALOG enemy(2) text="Uh, uh, uh!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/pt/level019.hcs0000644000175000001440000000243711177007633025150 0ustar jacobusers########################################## # Holotz's Castle story - Level 19 # Ybelle is captured ########################################## {[ DIALOG main(0) text="AAAH!" txtAlign=5 speed=5 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCMainTitle_Fast.wav" loops=0 waitToEnd=0 ]} {[ MOVE enemy(0) dir=8 amount=4 ] [ MOVE enemy(1) dir=8 amount=4 ] [ MOVE enemy(2) dir=4 amount=2 ] [ MOVE enemy(3) dir=6 amount=2 ] [ MOVE enemy(4) dir=4 amount=5 ] [ MOVE enemy(5) dir=6 amount=5 ] [ DIALOG main(0) text="Oh, oh" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(2) text="!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=20 subtype=1 ] [ DIALOG enemy(3) text="!" txtAlign=5 speed=1 size=2 align=0 r=220 g=20 b=20 subtype=1 ]} {[ NARRATIVE text=" CONTINUA... " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] [ DIALOG main(0) text="??!" txtAlign=5 speed=3 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=1 ]} {[ DIALOG main(0) text="Eeeh!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ DIALOG main(0) text="Não me deixem aqui!" txtAlign=5 speed=1 size=3 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=5 amount=2 ]} {[ WAIT millis=3000]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/pt/level033.hcs0000644000175000001440000000065111177007633025140 0ustar jacobusers########################################## # Holotz's Castle story - Level 33 # The end ########################################## {[ DIALOG enemy(0) text="¡Aah!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ DIALOG main(0) text="¡Aaah!" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} { [ NARRATIVE text=" FIM " txtAlign=5 speed=1 size=3 align=5 r=128 g=20 b=20 subtype=0 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/pt/level002.hcs0000644000175000001440000000171711177007633025140 0ustar jacobusers########################################## # Holotz's Castle story - Level 2 # Ybelle enters the castle ########################################## { [ DIALOG main(0) text="Não!" txtAlign=4 speed=5 size=1 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Isso doeu!" txtAlign=4 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="LUDAR!" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Hmmm..." txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=1 ] } { [ DIALOG main(0) text="...parece que não me ouve" txtAlign=5 speed=1 size=2 align=1 r=130 g=30 b=180 subtype=0 ] } { [ DIALOG main(0) text="Enfim..." txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ] } { [ MOVE main(0) dir=4 amount=1 ] [ DIALOG main(0) text="Que diabos fazem aqui todas estas chaves?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=1 ] } holotz-castle-1.3.14-src/res/stories/holotzcastle/script/pt/level016.hcs0000644000175000001440000001663111177007633025146 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ludar talks to the two flames ########################################## {[ DIALOG main(0) text="Oops" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ SOUND file="sound/HCMainTitle_UltraSlow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Oh, outra pedra!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ NARRATIVE text="As Duas Chamas" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ] [ DIALOG main(0) text="Outra!" txtAlign=5 speed=1 size=1 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Alto!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="???" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ DIALOG main(0) text="Está alguém aqui?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(0) text="Eu disse alto!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ MOVE main(0) dir=4 amount=4 ] [ DIALOG main(0) text="Oh, uma chama oradora!" txtAlign=5 speed=1 size=2 align=1 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Não sou uma chama oradora!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="¡Oh!" txtAlign=5 speed=4 size=2 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Sou uma chama faladora!" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Como soubeste o que pensava?" txtAlign=5 speed=5 size=2 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Eu sei tudo!" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ahem..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Bom, quase tudo" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ela lê a mente..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Eu leio..." txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="...Livros" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Ah, ah, ah!" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Uh, uh, uh!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="?!" txtAlign=5 speed=5 size=3 align=1 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Como entraste aqui?" txtAlign=5 speed=1 size=3 align=1 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Eu sei..." txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, ela vai ler a minha mente!" txtAlign=5 speed=1 size=1 align=0 r=20 g=200 b=20 subtype=1 ]} {[ DIALOG enemy(0) text="Através do portal místico!!" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ah, ah, ah!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Uh, uh, uh!" txtAlign=5 speed=1 size=3 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="hmpfxs#@!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Espera, não te vás" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=5 ]} {[ DIALOG main(0) text="Não tenho tempo para piadas!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(0) text="Que precisas?" txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ] [ MOVE main(0) dir=4 amount=3 ]} {[ DIALOG main(0) text="Tenho que encontrar Ybelle" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG main(0) text="Temos de regressar à Terra de Lizarno" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm...um Lizarnita, que interessante" txtAlign=5 speed=1 size=1 align=1 r=20 g=20 b=180 subtype=1 ]} {[ DIALOG enemy(1) text="Daqui em diante o castelo torna-se" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="mais perigoso" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="mas tu não tens suficiente poder mágico" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="para chegar ao nível superior" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Sim, o que precisas é de..." txtAlign=5 speed=1 size=3 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Uns sapatos!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Uns sapatos!" txtAlign=5 speed=1 size=1 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh, deixem-se de piadas!" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="Mas só os pode dar-te" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="O Senhor dos Sapatos" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Não existe outra forma de conseguir uns sapatos?" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG enemy(1) text="Sim, podes consegui-los na" txtAlign=5 speed=1 size=2 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Sapataria!" txtAlign=5 speed=1 size=2 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Sapataria!!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(1) text="Ah, ah, ah!" txtAlign=5 speed=1 size=1 align=1 r=200 g=20 b=60 subtype=0 ] [ DIALOG enemy(0) text="Uh, uh, uh!" txtAlign=5 speed=1 size=2 align=0 r=20 g=20 b=180 subtype=0 ] [ DIALOG main(0) text="Isto é demais!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=4 ]} {[ DIALOG enemy(1) text="Espera" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(1) text="Podes conseguir uns sapatos" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(1) text="Por trás deste portal místico" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} {[ DIALOG enemy(0) text="Mas deves saber" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="que ninguém saiu com vida dali" txtAlign=5 speed=1 size=2 align=1 r=20 g=20 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh!" txtAlign=5 speed=5 size=1 align=1 r=20 g=200 b=20 subtype=1 ] [ MOVE main(0) dir=6 amount=2 ]} {[ DIALOG main(0) text="Hmm... Bom, tenho que tentar" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Oh!, mas não consigo abrir o portal" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ] [ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG main(0) text="Aquela pedra está demasiado alta" txtAlign=5 speed=5 size=1 align=0 r=20 g=200 b=20 subtype=0 ]} {[ DIALOG enemy(1) text="Bom, então usa esta escada" txtAlign=5 speed=1 size=1 align=0 r=200 g=20 b=60 subtype=0 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/script/pt/level014.hcs0000644000175000001440000001402111177007633025133 0ustar jacobusers########################################## # Holotz's Castle story - Level 1 # Ybelle finds the shoe maker ########################################## {[ DIALOG main(0) text="?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ] [ SOUND file="sound/HCCredits_Slow.wav" loops=-1 waitToEnd=0 ]} {[ DIALOG main(0) text="Que sítio é este?" txtAlign=5 speed=1 size=1 align=1 r=130 g=30 b=180 subtype=0 ]} {[ NARRATIVE text="A Sapataria" txtAlign=5 speed=1 size=3 align=7 r=128 g=20 b=20 subtype=0 ] [ MOVE main(0) dir=6 amount=1 ]} {[ MOVE main(0) dir=2 amount=3 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ MOVE main(0) dir=6 amount=3 ]} {[ MOVE main(0) dir=9 amount=1 ] [ DIALOG enemy(0) text="Oh, um visitante!" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=1 ]} {[ MOVE main(0) dir=9 amount=2 ]} {[ DIALOG main(0) text="Que tipo estranho!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ DIALOG enemy(0) text="Que tipo estranho!" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=1 ] } {[ DIALOG main(0) text="Ermm.. Olá?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Não pareces..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Ser daqui..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Parece que vai adormecer!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG enemy(0) text="És novo aqui..." txtAlign=5 speed=1 size=0 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...há..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...pouco?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Sim... Novo, dizes?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Oh sim, claro" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG main(0) text="Quem és tu?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Eu sou..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...O Senhor dos Sapatos" txtAlign=5 speed=1 size=2 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Suponho..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...que vens..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...por uns sapatos novos..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...Certo?" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Pega..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ] [ DIALOG main(0) text="Eu..." txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...nestes" txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ MOVE main(0) dir=6 amount=2 ]} {[ MOVE main(0) dir=4 amount=2 ]} {[ DIALOG enemy(0) text="De certeza..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="... que te moverás..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...melhor com eles..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Sabes como sair daqui?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Hmmm..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...não" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...só Holotz..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...sabe isso" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Holotz?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="Sim..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Ele criou..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...este castelo" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Onde posso encontrá-lo?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ]} {[ DIALOG enemy(0) text="...não podes" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Ele vai-te..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...encontrar" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="Agora tenho..." txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...de continuar" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG enemy(0) text="...a trabalhar" txtAlign=5 speed=1 size=1 align=0 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Mas...!" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ DIALOG enemy(0) text="Agora tenho..." txtAlign=5 speed=1 size=1 align=1 r=200 g=130 b=20 subtype=0 ]} {[ DIALOG main(0) text="Deixa-o, é inútil" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Bom, vou-me... obrigado por os sapatos" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=0 ] [ MOVE main(0) dir=7 amount=2 ]} {[ MOVE main(0) dir=7 amount=2 ]} {[ DIALOG main(0) text="E agora para onde vou?" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ]} {[ DIALOG main(0) text="Oh, tanto faz" txtAlign=5 speed=1 size=1 align=0 r=130 g=30 b=180 subtype=1 ] [ MOVE main(0) dir=4 amount=1 ]} {[ MOVE main(0) dir=2 amount=2 ]} holotz-castle-1.3.14-src/res/stories/holotzcastle/level033.hlv0000644000175000001440000000307311177007633023226 0ustar jacobusers@defaultN33?       B C`@@ C C?? CB,@,@ HBB,@,@BlBgf@gf@BlBgf@gf@ BB,@,@ CB,@,@AB@@*CB@@holotz-castle-1.3.14-src/res/stories/holotzcastle/level032.hlv.tga0000644000175000001440000054413011177007633024003 0ustar jacobusers                    !""#$$%%&''()**+,,-./012 2 3!4!5"5"6"7#7#8$8$9 $: %: %; &< &= '= '> (? (@ )A *B *C +D +E ,E ,F ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMzN{N|O|O}O~P~PPQQQRRSSTTUUVVWWXXYYYZZ[[[\\]]]^^__``aabbccddeeeffggghhiiijjkkllmm                 !"#$%&&''()**+,,--.//012 2 3!4!5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<_<_<`=`=a>b>c?c?d@e@fAfAgBhBiCjDkDlDlEmEnFnFoGpGqHqHrHsIsItJtJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRSSTTTUUVVVWWXXXYYZZ[[\\\]]^^__```aabbbccdddeeffgghhhiijjkklllmmn                    !!""#$$%&&''()*+,,-.//012 2 3 4!4!5"5"6"7#7#8$9$9 $: %: %; &< &= '> (? (? (@ )A )B *B *C +D +E ,E ,F ,G -G -H .H .I /J /K 0L 0L 1M 1N 2O 2P 3P 3Q 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<_=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\\]]^^__`aabbccddeeeffgghhiijjkkllmmnn                  !"#$$%&''())**+,,-.//012 2 3!4!5"5"6"7#7#8$8$9$9 $: %: %; &< &= '= '> (? (@ )A *B *C +D +E ,E ,F ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXYYZZ[[[\\]]]^^__``aabccddeeffggghhiiijjkkllmmno                   !"#$%&&''()**+,,,--.//012 2 3!4!5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<_<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCjCkDkDlDlEmEnFoGpGqHqHrHsIsItJtJuJvKvKwLxLyMyMzN{N|O}P~PPQQRRSSTTTUUVVVWWXXYYZZ[\\\]]^^__```aabbbccddeeffghhhiijjkklllmmnnnoo                    !!""#$$%&&''()**+,,-.//012 2 3 4!4!5"5"6"7#7#8$9$9 $: %: %; &< &= '= '> (? (? (@ )A )B *B *C +D +E ,E ,F ,G -G -H .H .I .J /J /K 0L 0L 0M 1M 1N 2O 2P 3Q 4R 4S 5T 5U 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<_=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\]]^^__`aabbccddeeeffggghhiijjkklmmnnoo                   !"#$$%&''())**+,,--.//012 2 3!4!5"6"7#7#8$9$9 $: %: %; %< &< &= '= '> (? (@ )A *B *C +D +E ,E ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyLyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYZZ[[\\\]]^^^__``aabccddeeffggghhiiijjkkllmmnoop                   !!""#$$%&&''()**+,,,--.//012 2 3!4!5"5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:[:\;];^<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCjCkDkDlDlEmEnFnFoGpGqHrHsIsItJuJvKvKwKxLxLyMyMzM{N{N|O}O~P~PPQQRRSSTTTUUVVVWWXXYYZZ[\\\]]^^__```aabbbccddeeffghhiijjkklllmmnnnoopp                    !!""#$$%%&''()**+,,-.//012 2 3 4!4!5"5"6"7#7#8$8$9 $: %: %; &< &= '= '> (? (? (@ )A )B *B *C +D +E ,E ,F ,F ,G -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 5U 6U 6V 7W 7X 8X 8Y 8Y8Z9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\]]^^__`aabbccddeeeffggghhiijjkklmmnnooppqq                  !"#$$%&''()**+,,--.//012 2 3!4!5"6"7#7#8$9$9 $: %: %; &< &= '= '> '? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I .J /J /K 0L 0L 0M 1M 1N 2N 2O 2P 3P 3Q 4R 4S 5S 5T 6U 6V 7W 7X 8X 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAfAgBhBiCjCkDkDlEmEnFnFoFpGpGqHqHrHsIsItJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYYZZ[[\\\]]^^^__```aabbccdddeeffgghhhiijjkkllmmnooppqq                    !!""#$$%&&''()*+,,-.//012 2 3!4!5"5"6#7#8$9$9 $: %: %; &< &= '= '> (? (? (@ )@ )A )B *B *C +C +D +E ,E ,F -G -H .H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHsIsItJuJvKvKwKxLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWWXXYYYZZ[[\\\]]^^__```aabbbccddeeffgghhiijjkklllmmnnnooppqqr                  !""#$$%%&''()**+,,-./012 2 3!4!5"5"6"7#7#8$8$9 $: %: %; &< &= '= '> (? (@ )A *B *C +D +E ,E ,F ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 5U 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgAhBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQQRRSSTTUUVVWWXXYYYZZ[[[\\]]]^^__``aabbccddeeeffggghhiijjkkllmmnnooppqqqrr                 !"#$%&&''()**+,,--.//012 2 3!4!5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<^<_<_<`=`=a>a>b>c?c?d@e@fAfAgBhBiCjCkDkDlDlEmEnFnFoGpGqHqHrHsIsItJtJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRSSTTTUUVVVWWXXXYYZZ[[\\\]]^^^__```aabbbccdddeeffgghhhiijjjkklllmmnnnoopppqqrrs                    !!""#$$%&&''()*+,,-.//012 2 3 4!4!5"5"6"7#7#8$9$9 $: %: %; &< &= '> (? (? (@ )A )B *B *C +C +D +E ,E ,F -G -H .H .I /J /K 0L 0L 1M 1N 2O 2P 3P 3Q 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<_=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\\]]^^__``aabbccdddeeffgghhiijjkklllmmnnnoopppqqrrss                  !"#$$%&''())**+,,-./012 2 3!4!5"5"6"7#7#8$8$9$9 $: %: %; &< &= '= '> (? (@ )A *B *C +D +E ,E ,F ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMzN{N|O}O~P~PPQQRRRSSTTUUVVWWXXYYZZ[[[\\]]]^^__``aabbccddeeffggghhiiijjkkllmmnnooppqqrrssst                  !"#$%&&''()**+,,,--.//012 2 3!4!5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<_<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCjDkDlDlEmEnFnFoGpGqHqHrHsIsItJtJuJvKvKwLxLyLyMyMzN{N|O}P~PPQQRRSSTTTUUVVVWWXXXYYZZ[\\\]]^^__```aabbbccdddeeffghhhiijjkklllmmnnnooppqqrrstt                    !!""#$$%&&''()*+,,-.//012 2 3 4!4!5"5"6"7#7#8$9$9 $: %: %; &< &= '> (? (? (@ )A )B *B *C +D +E ,E ,F ,G -G -H .H .I .J /J /K 0L 0L 0M 1M 1N 2O 2P 3Q 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<_=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\\]]^^__`aabbccddeeeffggghhiijjkklmmnnnoopppqqrrssttu                   !"#$$%&''())**+,,-.//012 2 3!4!5"6"7#7#8$8$9$9 $: %: %; &< &= '= '> (? (@ )A *B *C +D +E ,E ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYZZ[[\\]]]^^__``aabccddeeffggghhiiijjkkllmmnooppqqrrsssttuu                    !""#$%&&''()**+,,,--.//012 2 3!4!5"5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<_<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCjCkDkDlDlEmEnFoGpGqHrHsIsItJuJvKvKwKxLxLyMyMzN{N|O}P~PPQQRRSSTTTUUVVVWWXXYYZZ[\\\]]^^__```aabbbccddeeffghhhiijjkklllmmnnnooppqqrrsttuuv                    !!""#$$%%&''()**+,,-.//012 2 3 4!4!5"5"6"7#7#8$9$9 $: %: %; &< &= '= '> (? (? (@ )A )B *B *C +D +E ,E ,F ,F ,G -G -H .H .I .J /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 5U 6U 6V 7W 7X 8X 8Y 8Y8Z9Z9[:[:\:];];^<_<_=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\]]^^__`aabbccddeeeffggghhiijjkklmmnnooppqqqrrsssttuvv                  !"#$$%&''())**+,,--.//012 2 3!4!5"6"7#7#8$9$9 $: %: %; %< &< &= '= '> '? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5S 5T 6U 6V 7W 7X 8X 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAfAgBhBiCjCkDkDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYZZ[[\\\]]^^^__```aabbccdddeffggghhiiijjkkllmmnooppqqrrsssttuuuvvw                    !!""#$$%&&''()*+,,,--.//0012 2 3!4!5"5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (? (@ )@ )A )B *B *C +C +D +E ,E ,F -G -H .H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y9Z9[:[:\;];^<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHsIsItJuJvKvKwKxLxLyMyMzM{N{N|O}O~P~PPQQRRSSTTUUVVVWWXXYYZZ[\\\]]^^__```aabbbccddeeffghhiijjkklllmmnnnooppqqrrsttuuvvw                 !""#$$%%&''()**+,,-.//012 2 3!4!5"5"6"7#7#8$8$9 $: %: %; &< &= '= '> (? (? (@ )A )B *B *C +D +E ,E ,F ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 5U 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgAhBhBiCjCkDkDlDlDmEmEnFnFoGpGqHqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTTUUVVWWXXYYYZZ[[[\\]]^^__``aabbccddeeeffggghhiijjkkllmmnnooppqqqrrsssttuuvvww                !"#$%&&''()**+,,--.//012 2 3!4!5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4S 5S 5T 6U 6V 7W 7X 8X 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>a>b>c?c?d@e@fAfAgBhBiCjCkDkDlEmEnFnFoFpGpGqHqHrHsIsItJtJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRRSSTTTUUVVVWWXXXYYZZ[[\\\]]^^^__```aabbbccdddeeffgghhhiijjjkklllmmnnooppqqrrsssttuuuvvwwxx                  !!""#$$%&&''()*+,,-.//012 2 3 4!4!5"5"6"7#7#8$9$9 $: %: %; &< &= '= '> (? (? (@ )@ )A )B *B *C +C +D +E ,E ,F -G -H .H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<`=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHsIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\\]]^^__```aabbbccdddeeffgghhiijjkklllmmnnnooppqqrrssttuuvvwwxxx               !""#$$%%&''()**+,,-./012 2 3!4!5"5"6"7#7#8$8$9 $: %: %; &< &= '= '> (? (@ )A *B *C +D +E ,E ,F ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMzN{N|O}O~P~PPQQQRRSSTTUUVVWWXXYYZZ[[[\\]]]^^__``aabbccddeeeffggghhiiijjkkllmmnnooppqqqrrsssttuuuvvwwxxy              !"#$%&&''()**+,,--.//012 2 3!4!5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<_<_<`=`=a>b>c?c?d@e@fAfAgBhBiCjDkDlDlEmEnFnFoGpGqHqHrHsIsItJtJuJvKvKwLxLyLyMyMzN{N|O}P~PPQQRRSSTTTUUVVVWWXXXYYZZ[[\\\]]^^__```aabbbccdddeeffgghhhiijjkklllmmnnnooppqqrrssttuuvvwwxxyyy               !!""#$$%&&''()*+,,-.//012 2 3 4!4!5"5"6"7#7#8$9$9 $: %: %; &< &= '> (? (? (@ )A )B *B *C +D +E ,E ,F ,G -G -H .H .I .J /J /K 0L 0L 1M 1N 2O 2P 3P 3Q 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<_=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\\]]^^__`aabbccddeeeffggghhiijjkkllmmnnnoopppqqrrssttuuvvwwxxyyzz             !"#$$%&''())**+,,-.//012 2 3!4!5"5"6"7#7#8$8$9$9 $: %: %; &< &= '= '> (? (@ )A *B *C +D +E ,E ,F ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXYYZZ[[[\\]]]^^__``aabccddeeffggghhiiijjkkllmmnooppqqrrsssttuuuvvwwxxyyzz           !"#$%&&''()**+,,,--.//012 2 3!4!5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<_<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCjCkDkDlDlEmEnFoGpGqHrHsIsItJtJuJvKvKwLxLyMyMzN{N|O}P~PPQQRRSSTTTUUVVVWWXXYYZZ[\\\]]^^__```aabbbccddeeffghhhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{             !!""#$$%&&''()**+,,-.//012 2 3 4!4!5"5"6"7#7#8$9$9 $: %: %; &< &= '= '> (? (? (@ )A )B *B *C +D +E ,E ,F ,G -G -H .H .I .J /J /K 0L 0L 0M 1M 1N 2O 2P 3Q 4R 4S 5T 5U 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<_=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\]]^^__`aabbccddeeeffggghhiijjkklmmnnooppqqrrssttuvvwwxxyyzzz{{           !"#$$%&''())**+,,--.//012 2 3!4!5"6"7#7#8$9$9 $: %: %; %< &< &= '= '> '? (? (@ )A *B *C +D +E ,E ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyLyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYZZ[[\\\]]^^^__```aabccddeeffggghhiiijjkkllmmnooppqqrrsssttuuuvvwwxxyyyz{{|         !!""#$$%&&''()**+,,,--.//012 2 3!4!5"5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:[:\;];^<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCjCkDkDlDlEmEnFnFoGpGqHrHsIsItJuJvKvKwKxLxLyMyMzM{N{N|O}O~P~PPQQRRSSTTTUUVVVWWXXYYZZ[\\\]]^^__```aabbbccddeeffghhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{{|         !""#$$%%&''()**+,,-.//012 2 3 4!4!5"5"6"7#7#8$8$9 $: %: %; &< &= '= '> (? (? (@ )A )B *B *C +D +E ,E ,F ,F ,G -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 5U 6U 6V 7W 7X 8X 8Y 8Y8Z9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\]]^^__`aabbccddeeeffggghhiijjkklmmnnooppqqqrrsssttuuvvwwxyyzz{{|||}!      !"#$$%&''()**+,,--.//012 2 3!4!5"6"7#7#8$9$9 $: %: %; &< &= '= '> '? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I .J /J /K 0L 0L 0M 1M 1N 2N 2O 2P 3P 3Q 4R 4S 5S 5T 6U 6V 7W 7X 8X 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>a>b>c?c?d@e@fAfAgBhBiCjCkDkDlEmEnFnFoFpGpGqHqHrHsIsItJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYYZZ[[\\\]]^^^__```aabbccdddeeffgghhhiijjkkllmmnooppqqrrsssttuuuvvwwxxyyyz{{||}}};@2     !!""#$$%&&''()*+,,-.//012 2 3 4!4!5"5"6#7#8$9$9 $: %: %; &< &= '= '> (? (? (@ )@ )A )B *B *C +C +D +E ,E ,F -G -H .H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHsIsItJuJvKvKwKxLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWWXXYYYZZ[[\\\]]^^__```aabbbccddeeffgghhiijjkklllmmnnnooppqqrrssttuuvvwwxxxyyzzz{{||}}~gma   !""#$$%%&''()**+,,-./012 2 3!4!5"5"6"7#7#8$8$9 $: %: %; &< &= '= '> (? (@ )A *B *C +D +E ,E ,F ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 5U 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgAhBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQQRRSSTTUUVVWWXXYYYZZ[[[\\]]]^^__``aabbccddeeeffggghhiiijjkkllmmnnooppqqqrrsssttuuvvwwxxyyzz{{||}}}~% !"#$%&&''()**+,,--.//012 2 3!4!5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<^<_<_<`=`=a>a>b>c?c?d@e@fAfAgBhBiCjCkDkDlDlEmEnFnFoGpGqHqHrHsIsItJtJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRSSTTTUUVVVWWXXXYYZZ[[\\\]]^^__```aabbbccdddeeffgghhhiijjjkklllmmnnnoopppqqrrssttuuuvvwwxxyyyzz{{||}}}~~=D3 !!""#$$%&&''()*+,,-.//012 2 3 4!4!5"5"6"7#7#8$9$9 $: %: %; &< &= '> (? (? (@ )A )B *B *C +C +D +E ,E ,F -G -H .H .I /J /K 0L 0L 1M 1N 2O 2P 3P 3Q 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<_=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\\]]^^__``aabbccddeeffgghhiijjkklllmmnnnoopppqqrrssttuuvvwwxxxyyzzz{{|||}}~~Žipa !"#$$%&''())**+,,-./012 2 3!4!5"5"6"7#7#8$8$9$9 $: %: %; &< &= '= '> (? (@ )A *B *C +D +E ,E ,F ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMzN{N|O}O~P~PPQQRRRSSTTUUVVWWXXYYZZ[[[\\]]]^^__``aabbccddeeffggghhiiijjkkllmmnnooppqqrrsssttuuuvvwwxxyyzz{{||}}~~ ) !"#$%&&''()**+,,,--.//012 2 3!4!5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<_<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCjCkDkDlDlEmEnFnFoGpGqHqHrHsIsItJtJuJvKvKwLxLyLyMyMzN{N|O}P~PPQQRRSSTTTUUVVVWWXXXYYZZ[\\\]]^^__```aabbbccdddeeffghhhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{{||}}~~Ǿ5>) !!""#$$%&&''()*+,,-.//012 2 3 4!4!5"5"6"7#7#8$9$9 $: %: %; &< &= '> (? (? (@ )A )B *B *C +D +E ,E ,F ,G -G -H .H .I .J /J /K 0L 0L 0M 1M 1N 2O 2P 3Q 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<_=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\\]]^^__`aabbccddeeeffggghhiijjkklmmnnnoopppqqrrssttuvvwwxxyyzzz{{|||}}~~$=Si{ӅԍԖƽżújqa !"#$$%&''())**+,,-.//012 2 3!4!5"6"7#7#8$9$9 $: %: %; &< &= '= '> (? (@ )A *B *C +D +E ,E ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYZZ[[\\\]]^^__``aabccddeeffggghhiiijjkkllmmnooppqqrrsssttuuuvvwwxxyyz{{||}}#Ce҇֫ؼŻŻ#. !""#$%&&''()**+,,,--.//012 2 3!4!5"5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCjCkDkDlDlEmEnFoGpGqHrHsIsItJuJvKvKwKxLxLyMyMzN{N|O}P~PPQQRRSSTTTUUVVVWWXXYYZZ[\\\]]^^__```aabbbccddeeffghhhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{{||0Uwәֶ׺׺غùĹAK4 !!""#$$%%&''()**+,,-.//012 2 3 4!4!5"5"6"7#7#8$8$9 $: %: %; &< &= '= '> (? (? (@ )A )B *B *C +D +E ,E ,F ,F ,G -G -H .H .I .J /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 5U 6U 6V 7W 7X 8X 8Y 8Y8Z9Z9[:[:\:];];^<_<_<`=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\]]^^__`aabbccddeeeffggghhiijjkklmmnnooppqqqrrsssttuuvvwwxxyyzzz{{||:kҜֹ׹׹ø·jr_!!"#$$%&''()**+,,--.//012 2 3!4!5"6"7#7#8$9$9 $: %: %; %< &< &= '= '> '? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5S 5T 6U 6V 7W 7X 8X 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAfAgBhBiCjCkDkDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYZZ[[\\\]]^^^__```aabbccdddeffggghhiiijjkkllmmnooppqqrrsssttuuuvvwwxxyyyz{{|)bӡָ׸¶,7""#$$%&&''()*+,,,-.//0012 2 3!4!5"5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (? (@ )@ )A )B *B *C +C +D +E ,E ,F -G -H .H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y9Z9[:[:\;];^<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHsIsItJuJvKvKwKxLxLyMyMzM{N{N|O}O~P~PPQQRRSSTTUUVVWWXXYYZZ[\\\]]^^__```aabbbccddeeffghhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{{|CsԳնֶֶR]E#$$%%&''()**+,,-.//012 2 3!4!5"5"6"7#7#8$8$9 $: %: %; &< &= '= '> (? (@ )A )B *B *C +D +E ,E ,F ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 5U 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgAhBhBiCjCkDkDlDlEmEnFnFoGpGqHqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTTUUVVWWXXYYYZZ[[[\\]]^^__``aabbccddeeeffggghhiijjkkllmmnnooppqqqrrsssttuuvvwwxxyyzz{{)`ҝյֵֵմv -%&&''()**+,,--.//012 2 3!4!5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:[:\;];^<^<_<_<`=`=a>a>b>c?c?d@e@fAfAgBhBiCjCkDkDlEmEnFnFoFpGpGqHqHrHsIsItJtJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRRSSTTTUUVVVWWXXXYYZZ[[\\\]]^^^__```aabbbccdddeeffgghhhiijjjkklllmmnnnooppqqrrsssttuuuvvwwxxyyyz{{+oӭԳճճֳ>J-&''()*+,,-.//012 2 3 4!4!5"5"6"7#7#8$9$9 $: %: %; &< &= '= '> (? (? (@ )@ )A )B *B *C +C +D +E ,E ,F -G -H .H .I /J /K 0L 0L 1M 1N 2O 2P 3P 3Q 4R 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<`=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHsIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\\]]^^__``aabbbccdddeeffgghhiijjkklllmmnnnooppqqrrssttuuvvwwxxxyyzzz{{)oҭԲԱձձgrZ(()**+,,-./012 2 3!4!5"5"6"7#7#8$8$9 $: %: %; &< &= '= '> (? (@ )A *B *C +D +E ,E ,F ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMzN{N|O}O~P~PPQQQRRSSTTUUVVWWXXYYZZ[[[\\]]]^^__``aabbccddeeeffggghhiiijjkkllmmnnooppqqqrrsssttuuuvvwwxxyyzz{{[ѥӰ԰԰հ8E')**+,,,--.//012 2 3!4!5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<_<_<`=`=a>b>c?c?d?e@e@fAfAgBhBiCjDkDlDlEmEnFnFoGpGqHqHrHsIsItJtJuJvKvKwLxLyLyMyMzN{N|O}P~PPQQRRSSTTTUUVVVWWXXXYYZZ[[\\\]]^^__```aabbbccdddeeffgghhhiijjkklllmmnnnooppqqrrssttuuvvwwxxxyyzz{{@Оүүӯԯԯjv[- +,,-.//012 2 3 4!4!5"5"6"7#7#8$9$9 $: %: %; &< &= '> (? (? (@ )A )B *B *C +D +E ,E ,F ,G -G -H .H .I .J /J /K 0L 0L 1M 1N 2O 2P 3P 3Q 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<_=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\\]]^^__`aabbccddeeeffggghhiijjkkllmmnnnoopppqqrrssttuuvvwwxxyyzzz{{-|ѭҮӮԮԭ:H',,-.//012 3!4!5"5"6"7#7#8$8$9$9 $: %: %; &< &= '= '> (? (@ )A *B *C +D +E ,E ,F ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYZZ[[[\\]]]^^__``aabccddeeffggghhiiijjkkllmmnooppqqrrsssttuuuvvwwxxyyz{}"bХѬҬҬӬԬkw\ 0 -.//012 2 3!4!5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<_<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCjCkDkDlDlEmEnFoGpGqHrHsIsItJtJuJvKvKwLxLyMyMzN{N|O}P~PPQQRRSSTTTUUVVVWWXXYYZZ[\\\]]^^__```aabbbccddeeffghhhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{{IϗѫҫҪҪӪ:I&//012 2 3 4!4!5"5"6"7#7#8$9$9 $: %: %; &< &= '= '> (? (? (@ )A )B *B *C +D +E ,E ,F ,G -G -H .H .I .J /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 5U 6U 6V 7W 7X 8X 8Y 8Y8Z9Z9[:[:\;];^<_<_=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\]]^^__`aabbccddeeeffggghhiijjkklmmnnooppqqqrrssttuvvwwxxyyzzz{{~%̂ѩѩҩҩөӪmy\"4 012 2 3!4!5"6"7#7#8$9$9 $: %: %; %< &< &= '= '> '? (? (@ )@ )A *B *C +D +E ,E ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyLyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYZZ[[\\\]]^^^__```aabccddeeffggghhiiijjkkllmmnooppqqrrsssttuuuvvwwxxyyyz{{=ΙШШѨҨҨӨ>N)12 2 3!4!5"5"6#7#8$9$9 $: %: %; &< &= '= '> '? (? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:[:\;];^<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCjCkDkDlDlEmEnFnFoGpGqHrHsIsItJuJvKvKwKxLxLyMyMzM{N{N|O}O~P~PPQQRRSSTTTUUVVVWWXXYYZZ[\\\]]^^__```aabbbccddeeffghhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{{WϣЧѧѧҧҧӧҦn{\$7 3 4!4!5"5"6"7#7#8$8$9 $: %: %; &< &= '= '> (? (? (@ )A )B *B *C +D +E ,E ,F ,F ,G -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 5U 6U 6V 7W 7X 8X 8Y 8Y8Z9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTTUUVVWWXXYYYZZ[[[\\]]^^__`aabbccddeeeffggghhiijjkklmmnnooppqqqrrsssttuuvvwwxyyzz{{~"rϥХѥҥҥ@Q*!4!5"6"7#7#8$9$9 $: %: %; &< &= '= '> '? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I .J /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5S 5T 6U 6V 7W 7X 8X 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>a>b>c?c?d@e@fAfAgBhBiCjCkDkDlEmEnFnFoFpGpGqHqHrHsIsItJtJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYYZZ[[\\\]]^^^__```aabbccdddeeffgghhhiijjjkkllmmnooppqqrrsssttuuuvvwwxxyyyz{{.̉ϤФФѤУѣѣңn}\&9 "6#7#8$9$9 $: %: %; &< &= '= '> (? (? (@ )@ )A )B *B *C +C +D +E ,E ,F -G -H .H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<`=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHsIsItJuJvKvKwKxLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWWXXYYYZZ[[\\\]]^^__```aabbbccddeeffgghhiijjkklllmmnnnooppqqrrssttuuvvwwxxxyyzzz{{|7ΘϢϢТѢҢң9L!#7#8$8$9 $: %: %; &< &= '= '> (? (@ )A *B *C +D +E ,E ,F ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgAhBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQQRRSSTTUUVVWWXXYYYZZ[[[\\]]]^^__``aabbccddeeeffggghhiiijjkkllmmnnooppqqqrrsssttuuvvwwxxyyzz{{|FΜϡΠϠϡССѡҡye-B$9$9 $: %: %; &< &= '= '> '? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<^<_<_<`=`=a>a>b>c?c?d@e@fAfAgBhBiCjCkDkDlDlEmEnFnFoGpGqHqHrHsIsItJtJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRSSTTTUUVVVWWXXXYYZZ[[\\\]]^^__```aabbbccdddeeffgghhhiijjkklllmmnnnoopppqqrrssttuuvvwwxxyyyzz{{|S͞ΠϠϠРѠѠџџҟVh@$: %: %; &< &= '> (? (? (@ )A )B *B *C +D +E ,E ,F -G -H .H .I /J /K 0L 0L 1M 1N 2O 2P 3P 3Q 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<_=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\\]]^^__`aabbccddeeffgghhiijjkklllmmnnnoopppqqrrssttuuvvwwxxxyyzzz{{||aΞϞϞООўҞw9M&< &= '= '> (? (@ )A *B *C +D +E ,E ,F ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMzN{N|O}O~P~PPQQRRRSSTTTUUVWWXXYYZZ[[[\\]]]^^__``aabbccddeeffggghhiiijjkkllmmnnooppqqrrsssttuuuvvwwxxyyzz{{|} oΝΝϝНϜММќќhyQ)@ '= '> '? (? (? (@ )@ )A )B *B *C +D +E ,E ,F -G -H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<_<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCjCkDkDlDlEmEnFnFoGpGqHqHrHsIsItJtJuJvKvKwLxLyMyMzN{N|O}P~PPQQRRSSTTTUUVVVWWXXXYYZZ[\\\]]^^__```aabbbccdddeeffghhhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{{||~"|͛͛ΛϛϛЛћћќҜH\-'> (? (? (@ )A )B *B *C +D +E ,E ,F ,G -G -H .H .I .J /J /K 0L 0L 0M 1M 1N 2O 2P 3Q 4R 4S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<_=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\\]]^^__`aabbccddeeeffggghhiijjkklmmnnoopppqqrrssttuvvwwxxyyzzz{{|||+˂͚Κ͙͚ΚϚϚККњ~h5L(@ )A *B *C +D +E ,E ,F -G -H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyLyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYZZ[[\\\]]^^__``aabccddeeffggghhiiijjkkllmmnooppqqrrsssttuuuvvwwxxyyz{{||}2͙͙̈͘ΙϙϙЙљИјi|Q.F)B *B *C +D +E ,E ,F -G -H .H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCjCkDkDlDlEmEnFoGpGqHrHsIsItJuJvKvKwKxLxLyMyMzM{N{N|O}P~PPQQRRSSTTTUUVVVWWXXYYZZ[\\\]]^^__```aabbbccddeeffghhhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{{||};ˎ̗͗͗ΗϗϗЗЗїјXl=*C *C +D +E ,E ,F ,F ,G -G -H .H .I .J /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 5U 6U 6V 7W 7X 8X 8Y 8Y8Z9Z9[:[:\:];];^<_<_<`=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\]]^^__`aabbccddeeeffggghhiijjkklmmnnooppqqqrrsssttuuvvwwxxyyzzz{{|||}}Eˑ̖͖ΖϖϕϕЕЕѕЖЕЖїјwG^*+E ,E ,F -G -H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5S 5T 6U 6V 7W 7X 8X 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAfAgBhBiCjCkDkDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYYZZ[[\\\]]^^^__```aabbccdddeffgghhiiijjkkllmmnooppqqrrsssttuuuvvwwxxyyyz{{||}}K˓͔͔̔ΔΕϕϕЕЕѕЕЖјҙқӞ|c;S,F -G -H .H .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHsIsItJuJvKvKwKxLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYZZ[\\\]]^^__```aabbbccddeeffghhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{{||}}N˒͓͓̓͒ΓϓϓГϓДЕїњӟդթ׭kP3L-H .H .I .J /J /K 0K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 5U 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgAhBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTTUUVVWWXXYYYZZ[[[\\]]^^__``aabbccddeeeffggghhiijjkkllmmnnooppqqqrrsssttuuvvwwxxyyzz{{||}}}Nː̑̑͑͒ΒΒϒϒВ ВГВѕҗқԡէ׮شڻZr=.I .I /J /K 0L 0L 0M 1M 1N 2O 2P 3P 3Q 3R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:[:\;];^<^<_<_<`=`=a>a>b>c?c?d@e@fAfAgBhBiCjCkDkDlEmEnFnFoFpGpGqHqHrHsIsItJtJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRRSSTTTUUVVVWWXXXYYZZ[[\\\]]^^^__```aabbbccdddeeffgghhhiijjjkklllmmnnnooppqqrrsssttuuuvvwwxxyyyzz{{||}}}~Nˏ̐͐͐ΐϐА ϐϑВєҙӞդ׫ٳٹtKc+/K 0L 0L 1M 1N 2O 2P 3P 3Q 4R 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<`=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHsIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\\]]^^__``aabbbccdddeeffgghhiijjkklllmmnnnoopppqqrrssttuuvvwwxxxyyzzz{{||}}~Oˎ̏̏͏ΏΏΐϐΏΏϏϏΏАВҗӝե׮ٶ۽}b?Z0L 0M 1M 1N 2O 2P 3P 3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMzN{N|O}O~P~PPQQQRRSSTTUUVVWWXXYYZZ[[[\\]]]^^__``aabbccddeeffggghhiiijjkkllmmnnooppqqqrrsssttuuuvvwwxxyyzz{{||}}}~Iˍˍ͍͍͎̍Ύώ ώϏБєӛդ׮ظmO7S1N 2O 2P 3P 3Q 3R 4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<_<_<`=`=a>b>c?c?d?e@e@fAfAgBhBiCjDkDlDlEmEnFnFoGpGqHqHrHsIsItJtJuJvKvKwLxLyLyMyMzN{N|O}P~PPQQRRSSTTTUUVVVWWXXXYYZZ[\\\]]^^__```aabbbccdddeeffgghhhiijjkklllmmnnnooppqqrrssttuuvvwwxxxyyzz{{||}}}~~Š̌͌͋͌͌ΌόόЌ όόύёҘԠ֪ٶھ~^w>3P 2P 3P 3Q 4R 4S 5S 5T 5U 6U 6V 7V 7W 7X 8X 8Y 8Y9Z9[:[:\;];^<_<_=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\\]]^^__`aabbccddeeeffggghhiijjkkllmmnnnoopppqqrrssttuuvvwwxxyyzzz{{|||}}~~Xˊ̊̊̋͋΋ϋϋЋ ϋϋЌЎђӛեױٻvMh*3Q 4R 4S 5T 6U 6V 7W 7X 8X 8Y 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYZZ[[[\\]]]^^__``aabccddeeffggghhiiijjkkllmmnooppqqrrsssttuuuvvwwxxyyz{{||}}~~\ˉ͉̉ΉΉϊ ϊΊϊϋЍғӝթضeJf%4R 4S 5S 5T 5U 6U 6V 7W 7X 8X 8Y9Z9[:\;];^<_<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCjCkDkDlDlEmEnFoGpGqHrHsIsItJuJvKvKwLxLyMyMzN{N|O}P~PPQQRRSSTTTUUVVVWWXXYYZZ[\\\]]^^__```aabbbccddeeffghhhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{{||}}~~ ä͈͈ΈΈωΈΈψΈ ψϊЎҕԠ֬ٹ|_Gd!5T 5U 6U 6V 7W 7X 8X 8Y 8Y8Z9Z9[:[:\;];^<_<_=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\]]^^__`aabbccddeeeffggghhiijjkklmmnnooppqqqrrssttuvvwwxxyyzzz{{|||}}~~!dˆ͇̆̆͆͆·χχχ ψЊяҘգװټwXDa6V 7W 7X 8X 8Y9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyLyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYZZ[[\\\]]^^^__```aabbccddeeffggghhiiijjkkllmmnooppqqrrsssttuuuvvwwxxyyyz{{||}}~~!k˅̅̅ͅ΅΅υΆ υφЉяӚէ׳ؽsRA`7W 7X 8X 8Y9Z9[:[:\;];^<_<`=`=a>b>c?c?d?e@e@fAfAgAhBhBiCjCkDkDlDlEmEnFnFoGpGqHrHsIsItJuJvKvKwKxLxLyMyMzM{N{N|O}O~P~PPQQRRSSTTTUUVVVWWXXYYZZ[\\\]]^^__```aabbbccddeeffghhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{{||}}~~$k˄̄̄̈́̈́΄τυ υІЊґԜժ׶ٿ|oL?_8Y8Z9Z9[:[:\:];];^<^<_<_<`=`=a>b>c?c?d@e@fAgAhBhBiCjCkDkDlDlEmEnFnFoGpGqHqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTTUUVVWWXXYYYZZ[[[\\]]^^__`aabbccddeeeffggghhiijjkklmmnnooppqqqrrsssttuuvvwwxyyzz{{||}}~~&m˂˂̂͂͂΂ςςσ΃ σЅығԠլ׷{fA;\9[:[:\:];];^<^<_<_<`=`=a>a>b>c?c?d@e@fAfAgBhBiCjCkDkDlEmEnFnFoFpGpGqHqHrHsIsItJtJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYYZZ[[\\\]]^^^__```aabbccdddeeffgghhhiijjjkkllmmnooppqqrrsssttuuuvvwwxxyyyz{{||}}}~~(pˁ́́́΁ρςρ ΁ρςτыӖԢ֯׹~~}}}}~~~~~~~~~xpKEe:\;];^<_<`=`=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHsIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWWXXYYYZZ[[[\\\]]^^__```aabbbccddeeffgghhiijjkklllmmnnnooppqqrrssttuuvvwwxxxyyzzz{{||}}~~+rˀ̀̀̀΀ππ Ѐ΁πρЃыҖԥײ׻||||}}}}}|||||| |ywSKl ;^<^<_<_<`=`=a>b>c?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQQRRSSTTUUVVWWXXYYYZZ[[[\\]]]^^__``aabbccddeeeffggghhiiijjkkllmmnnooppqqqrrsssttuuuvvwwxxyyzz{{||}}}~~,v~~~~~ ~ЂыӖԤֳ׼zzz{{{{{{{{{{{{||{~[Rs)<`=`=a>a>b>c?c?d@e@fAfAgBhBiCjCkDkDlDlEmEnFnFoGpGqHqHrHsIsItJtJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRSSTTTUUVVVWWXXXYYZZ[[\\\]]^^__```aabbbccdddeeffgghhhiijjkklllmmnnnooppqqrrssttuuvvwwxxyyyzz{{||}}}~~2u}}}~~~~~~ ~}~сҊҕԤֲ׻yzzzzzyyyyyyyyyzzzbYz0=a>b>c?c?d@e@fAfAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\\]]^^__`aabbccddeeffgghhiijjkklllmmnnnoopppqqrrssttuuvvwwxxxyyzzz{{|||}}~~9x{{||||||||}чҕԤձֺ׾xxxxxxxxxxxxxxxxxxg`7@d?c?d@e@fAgBhBiCjCkDkDlDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyMzN{N|O}O~P~PPQQRRRSSTTTUUVWWXXYYZZ[[[\\]]]^^__``aabbccddeeffggghhiiijjkkllmmnnooppqqrrsssttuuuvvwwxxyyzz{{||}}~~?xz{{{{{{{ z{z{}цҒԢհֹֽ־׿ֿwwvvvvwwwwwwwwwwwwlh>Bh@e@fAfAgAhBhBiCjCkDkDlDlEmEnFnFoGpGqHqHrHsIsItJtJuJvKvKwLxLyMyMzN{N|O}P~PPQQRRSSTTTUUVVVWWXXYYZZ[\\\]]^^__```aabbbccdddeeffghhhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{{||}}~~Hxyyyyyyzz zyz}фҐԠԯָּս־ֽuuuvvvvvvuuuuuuuvvonFImAgAhBhBiCiCjCkDkDlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\]]^^__`aabbccddeeeffggghhiijjkklmmnnoopppqqrrssttuvvwwxxyyzzz{{|||}}~~ OxxxxxxwxxxxxxzтҎӟԬնպԼսssstttttttttttttuutttquLNsBhBiCjCkDkDlEmEnFnFoFpGpGqHqHrHrHsIsItJuJvKvKwLxLyLyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYZZ[[\\\]]^^^__``aabccddeeffggghhiiijjkkllmmnooppqqrrsssttuuuvvwwxxyyz{{||}}~~"[vvvwwwww wwwwzрҌӛԪյԹԻռջԻrsssssrrrrsssssssssssr|SUy%CjCkDkDlDlEmEnFoGpGqHrHsIsItJuJvKvKwKxLxLyMyMzM{N{N|O}P~PPQQRRSSTTTUUVVVWWXXYYZZ[\\\]]^^__```aabbbccddeeffghhhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{{||}}~~ /guuuuuuuuuu uuvx}шәӧӲԷչպԺqqqqqqrrrrrrrrqqqqqqqqrY\,DlDlEmEnFnFoGpGqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWXXYYYZZ[[[\\]]^^__`aabbccddeeeffggghhiijjkklmmnnooppqqqrrsssttuuvvwwxyyzzz{{|||}}~~ @pttttttttu tutu{чҕӥ԰ӶӸԹӸpooooppppppppppppqqqc`1EmEnFnFoFpGpGqHqHrHsIsItJuJvKvKwLxLyLyMyMzN{N|O}O~P~PPQQRRRSSTTTUUVVWWXXXYYZZ[[\\\]]^^^__```aabbccdddeeffgghhiiijjkkllmmnooppqqrrsssttuuuvvwwxxyyyz{{||}}~~ #Trrrrrrrrrssuz҃ӓӢӮӴӷԸӷnnnnoooooonnnnnnnnnoooofpBPwFoGpGqHrHsIsItJuJvKvKwKxLxLyMyMzM{N{N|O|O}O~P~PPQQRRSSTTUUVVWWWXXYYZZ[[\\\]]^^__```aabbbccddeeffghhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{{||}}~~ .drrrrrqqqq qqrwсҏџҫұҵӵҵlllmmmmmnnnnnnnnmmmmk~Q^,GqHqHrHrIsItJuJvKvKwLxLyMyMzM{N{N|O|O}O~P~PPQQQRRSSTTTUUVVWWXXYYYZZ[[[\\]]^^__``aabbccddeeeffggghhiijjkkllmmnnooppqqqrrsssttuuvvwwxxyyzz{{||}}}~~ Bnppppppppp pqpqu~эѝҩұҳҴѳkklllllkkkkllllllllllllllmmam]``````aaaaaaaaaafqЁΒ̜ˡʢˣˢˢ[[[[[[[[[[[\\\\\\\\]]]]\\\\\]]]] ]\]_dlZ}Hh+XXYYYZZ[[[\\\]]^^__```aabbbccddeeffgghhiijjkklllmmnnnooppqqrrssttuuvvwwxxxyyzzz{{||}}~~ &AZ__^^^^_________`_`dl{Ό̘˟ˡˡˡʡɠZZZZZZZZZZZZZZZZZZ[[[[[[[[[\\\\\\\\[[^dn|Ɗɖ˝œlyE_ZZ[[[\\]]]^^__``aabbccddeeeffggghhiiijjkkllmmnnooppqqqrrsssttuuuvvwwxxyyzz{{||}}}~~ %C\]]]]^^^^^^^]]^]^`htὐ˜˟ʠʟɟXXYYYYYYYYYYYYYYYZZZYYYYYYYZZZZZZZ ZZZ[^fqƌɗ˞ˡˢ̣ˡ[o3[[\\\]]^^__```aabbbccdddeeffgghhhiijjkklllmmnnnooppqqrrssttuuvvwwwxxyyyzz{{||}}}~~ /J[\\\\\\\\\\]]]]]]]^coЀ͐˙ʝʞɞɝʝȝɞXXXXWWWWWWWWWWXXXXXXXXYYYYYXXXYYX YZ_gsĂǏȘʝˠ̢̡ǖo~Id#]]^^__`aabbccddeeeffgghhiijjkkllmmnnnoopppqqrrssttuuvvwwxxxyyzzz{{|||}}~~!:U[[[[[[[[[[[[[[[[[ \[\`jz͊ʕʛɜʝɜʜȜȜɜȜɜȜɜȝVVVVVVWWWWWWWWWVVVVVVVVWWWWWWWWXXXW X[bkxƇɒə˞ˠˠˡˠ˟zd~Il-^__``aabccddeeffggghhiiijjkkllmmnnooppqqrrsssttuuuvvwwxxyyzz{{||}}~~,CVYZZZZZZZZZZZZ[Z^ft΅̓ɘəȚșȚȚȜɝɝɞTTTTUUUUUUUUUUUUUUUUVVVVUUUUVVVV VVX\cp~Ȍɗʜ˟ʟˠ˟ʞʟʞ˞ȗ}a~Fl*``aabbbccdddeeffghhhiijjkklllmmnnnooppqqrrsttuuvvwwxxxyyzzz{{||}}~~+v.mkkllmmnooppqqrrsssttuuuvvwwxxyyyz{{||};L`tNjǓǓ ƒǑȎɇ{m_WSRRRRRRRRRRRRRRRRRSSW`oNJŎƑőŐŐŐőƑƒƔǕǘțɝɡ˥̨ͬαϵкѽLLLMMMMMMMMLLMMMMMMMMMNNNNNNNNOOOOO NQVdyϓ֪ڻۿڽغ׶ԲӯЪΥ̞͡ʜɚɘɗȕȔǔȔǔȔȔǔ Ɠĉzj[J>>>????????@@@???????@@@@@ ?@BJZtΑӪչ׿׾׽׼׼׻׺ֶָճӰҫЦ̛͠˖ȐnjŇĆÃāÁ€€ÀÀ~~}}{xobUJECCCCCCCC DCCDEISamuy{||{{|}~‚ÅÉĎƔǛɣʩ̰ελϾɻĥuaSID>=>=============>>>>>>>>????? ?>>>@HYtϒҪԸֿ׿׿׾׽׼ֺֻ׹ַֹմԱӮѩϣΞ˗ɒnjƈÅÃÁ~~~~~}||{ {yul_RIDBBCBBBBBBBBBGO\jsxyzzzyyz{~‚ÇŌŒǘɠʦ˭̳͸νȶávbSJB?==<<======================== >=?HXtΑѪԸտֿ־־ֽ׽׼׻׺ַָֹյԳӯѪХ͟˙ɓȎƉąÂ€~}|||{{zyy wrh\NFC@@AAAAABBB AAAADLXfqvwxxxwwxxyz|€„ÉĎƔȜȣʪ˱ͶͻοȶţvcTHA=;;::;;;;;;;<<<<<<<<<<<<<<<<<=DUp͐ѩӸԿտվսռֻּջպչոշյճӱҬϧ΢̜ɖɐƋŇĂ}}|{{||{zyyyyxwvtoeXLDA>???@@?? >BHSamsuvwvvwwy{~ÇčŒǚȡɨʮ̳͹ͽȸťyeUIB=::9::::999:::::::::;;;;;;;;<<< ;>>>??> ==>@EO]ipsusstuvxzƒÉŐƖǞɥʭ˲̷ͻοǸŦ’{gUI@<988888999999999:::99999999::::9:?MĕϣҵӾӿӿӾԾԽӼԼԻԺպչոԷԶӴҲҮЫϦΠ̚ɔȍƈĂ|zxxwwwvusrpkbVJC>=<<= <<=>CKYemqsrstvx|ÇČŕǛȤɪʱ˵ͺ;ǹŨ}gVH@:78667777777788888888899999 988=H_̀ϞѳѼѿӿӿӾӽӼӻԺԺԹչոԷԶӵӴӲҰѬШΣ͝ʖȐNJŅĀ}zxvvuuvuttss rqoj`TJB><<;< ;;;;?GT`jnppprtvy~„ÊđƘǠʧʭʴ˹̻̾ȻƪÕ~jWI?977566666666666666677777777:EZzΚакҿҿӾҽҽҼӼӻӺӹӸҸҷӷӷӶҵӴҴҳұѭЪΥ͟˚ʓnjƇĀ}ywutsrssrrqpppomh_UI@;:::;::9=EP]hmoonoqrsvzÆčŕƝȥɫʰʶ̺̼ͿǻŪÖjWI?865544555555555566655555 578@TrΓϬϹмоѽѼѼѻһҺҺҹҸҷӷӶӵҵҳҲѱЯЫϧ̜͢ɕȏƉÂ}zvurqpqqponnmkf^QF>988988Ol̍ϩзѽонѽѼѻѻѺѹѹѸѷҷҷҶҵҴѳҳѳѱѮϬΨ̟ͣʘȑNJą~zvsrooooonmmlmm lkf^RF>877778776:@JW`fijkkknptw~†ÍĖǞǥȬɱʶʹ˽˾˿ǿŭĚlYK@9433223333333334443333333334444 345:Jf̈ͥεϼонмлккйѹѸѸѷѶѵѴҴѴѳѲѱЯЬΪΥ̡ʚɔǎņĀzwtqommllllkjj ihc[PF=85655655668?HU^dghiikmquzÊĒŚơǩɰʴʸ˻˽˿ƽŭĜ…nZK?83110111111122222222222333334:Ib̂͠ͲͺμλλϺϹϸϸϷ϶ϵедгѳѲвбϯϭΫΨͣ˝ʖǑNJŃ}wrpnllkkkllkjihh hfb[PF;653445444359>GR\bdfggijlqv|ĕƞǥȬɲʵʺʻʽʿƽưĝˆq\L?8310000000000000111111 112:Jb̞̂Ͱ͹ͼμλκκιθϸϷϷ϶ϵϴддгввϱбЯϭΫΨ̤˟ʙȓNjŅ~wspljjiijjiggf ed`ZPF=74233433249?IRZacefgikotyÉđĘšƨǮȳȷɺɻɽɾɿƿűĠÊt^M@720//../////////00000//// //29Icˀ̝̯͸ͼͻͺͺ͹ιθηηζ϶ϵϴϳϲϱббϰϮάΩͥˢʜɕǎňĀztoljhgffggffedd b^XPG>85300100348@JSZ_acdehjnt{ŒÕĝƦǫȱȴɷȻȼȼɾɿȿƿŲğËt`NA92/..,,-------.......... .../1:Id̃˞̰˸̻̻̺ͺ͹͸͸ͷͶͶ͵ʹͳγγβαΰίήͬͪͨͤ˞ɘǑƋă{vokiheedeeedcbaaa`^YRJC<6320/000/0226:AJTX]_bbegjpwĘšƨǭDzǶǸǺȻǻȼȽȾǾǿųâÏydQD:3/.-,,,,,----,,,,,,,,--- --.08He˄˟˯ʷ˻˼˻˺˺˹̸̸̷̶̵̴̹ʹͳͱͰ̨ͯͮͭͬͪ˥ˠɜǔƌń}uokgedcccba`___-_^]YUOG@853100011369>FNTY\^`cdhlsz‚ŒÕÝťūƯǴȶǸǻǻȼȽǼǽǾǿǿƿĵĥĒ~iVH<4.,+,++,,,,,,,,,,------,-/8Jfˆʠɰɸɺʻ˻˺˹˸˷˶˶˵̵̴̴̳̲̱̰Ͱ̨ͯͮͭͬͫ˥ʢɜȖƏŇxqkhdcaaa``_`_^)]\ZWRLE>:766778:>EJPVY[^^adimu}ØĠŨƭƱǴǷǹǺǺǻǻǼƼƽƾſĸĪřąp\K>6/++*)*********++++++ +*+/8Khˇʡʱʷɺʻʺʺʹʸʷ˷˶˶˵̵̴˳˳˲˱˱˰̯̮̭̬ˬ˪˨˧ˤʞɘǑƊāyrmgdb``__^]\\[$[YWUPKHDBBBDFHLPUXY\]_aejpyŒÔÜĤƪƮƳǵƶŹƹƺƻƻŻżŽžžľĿĺĭĝËtaPB82-+*)))))))))****)))) )().8LiɈȡɱȷȺȹȹɹɸɷɶʶʵʴɴʳʳʲʱ˱˱˰˯ˮ˭ˬ̬˪ʩʧʤȠǙƓŋăzrkfa_]]]\[ZYYXVUSQONMOQRTVWX[\_adls|˜àĦĬİŴŶķŸŹźŻżżĽľĿÿļIJģÐ|hXJ?61.)('(''''(((((((((( )).8LjɉȢȲȷȺȹȸȸɸɷɶȶȵɵɴɳʲʱʱʰ˰ʯʯʮʭʬˬˬ˫ʪ˪ʩʦɥȡțǔŎą|tmgb_][[[ZYXWWWVVTTUUUVUUXX[\ahow›ãĩĭűŴƵŷŷŸŹźĺĻļüýþÿ¿þôçØÈwgWJ>50-)(''&''&&&&&&&' &&'),9MkȉǣDzǸǺȹȸȷǶȶȵȵɵɴɳɲʲʱɰɯʯʮʮɭʬʬʫɫɪɩɨȧȥȡȝǖƐć~vnga][ZYYYZYXWVUUTTUVYZ^dir{—¥ëïIJĴĵöķĸøøùúûû¼»¼½ú°¤ÖĆudUH=3-+('&&%%%%%%%&&& %'*/?@@BDGLSZclwɽҾڽཙ漠꼤I₩¥¦꿟濛࿕qdXNGCA@>??>>>>?@AEJPW`itǾ~Ͻ׽߼佞輢뼥Hᄄᄃ￧₩¥¦ 쿢뿟濛߿տɿ~pbUKFA?>>=>=<<==>ADGMU]fpþzֽ̽ݼ⼜輡뼥ᄃᆭᆬᄂ쾢꾟徛޿Կƿ|m_SJC@>===<<<;<<>@BEJQYclwʽԽ۽὚漟껤ヲᆭᆬᄂᆪ 뾟徙ݾӿyk]PHB?>===<<<;;<<=@DHOV`jtǾ~ѽټ༙弞鼢ヲ・ᆬᄂ 꾟徙ݿпwhYMF@<;<;;:::;BFMU_hsɽҼڼ⻗溞깢﹧Dﻤﻣ 뼟漚༓ԾſxhXJB<9898776889;=AEKS\fpƾzϽ׼ߺ亜鹠빣ﻤ 點弙ܼоraSF=986776666777:BHOXaj¾v˼~Լۺ⺗繝깡︧ﺣ 뻟軚߼ӾtbQE=7756555556668:>BGNV_irʼ}ӻںṖ湛鸠츣︧﹥ﺥﺤ 꺞优ڼ˾}mZJ@:66555454555488=AEMT]gqɼ|һٺ߹幚鹟츢﷦﹤ﺤﺣ 캠軛໓վvdRE<743444442234578<@ELT\fqȽzлٺ޺乚鹞븢﷥︤ 측긞亗ۻνm\LA:6423333322212367;=BGMT\foȽxϻػݹ㸙緝븡﷦ ﷢鹛ṓֻȾwgVI?8632122211012569;?EJPW_hpȽyм׻޺乘踝귟﷣츟湙޺ӽĿrbSF>96210/000014569CHOU^fnǽwͼӺڹ߹⷗綜뷠ﶥ﷢跛⹔ٺν}¿oaTIA;74200000001233579:74321100123567;=BEJPW_fnǾvμ~Ժڹ߹㷗綛鶞ﶣ﷢鷛㷕ܸԼɽwj_TKEA<:87666689;>ADHLRV]dkžs˼{һعܸḓ嶘鷛붠ﳥﶢ쵠궜巗߸׹μ}ſqf]VNKGDDBAAABDFJNRV[`flſt˼zѻֺ۹޷巗趛뵝쵡ﳣﳤﴣﴢ뵞続ⷓ۸պ̼{žskd_ZXVTSQSTWZ_cglĿqȽv̼{лպڹ޸㷕涘鴜봟ﴤﳥﳣ쵞鵛嶗ි۸պм~˼yǽtĿq¿okjhghim¾oƽsʽxͼ|Һֺٸݸฑ䶕浘鴛괞촠ﳤﴤ봟鵛嵗ⶔݷ۸ٹֺҺѻл~λ}λ|л~ѻӺֺع۹ݷ᷒㵔嵖赚鴛괞쳠ﲤﳣﳢ총봜鵚絘嶖㶔ⶓᶑැ߸ݷ޷߶߶ⶒ㶔崕紘鴛곜곞철ﲤﱣﲢ첞첝볝鴜賚賛鴜곝봞쳟첟ﲣﱣﱣﱤTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/stories/holotzcastle/level016.hlv.tga0000644000175000001440000020401311177007633023776 0ustar jacobusers                                                                 ' , , % -5+        # ,764) ,26 -%             & 35-  ! #   * "                                       !              # ,2$  " +  ! "         % 52'  & +( ,61         * ,' " & ( , --( ' 2/            " $    ! %   *&                             #            "-    '        &          #(#         "          &                                                              ) 26;7;BC;6787;8/%          07?=46>BB<2111>> /,        " /.%   % -+#  $ "   #   ,.                                  (                           ,         * 5-$  & + , " % %           #   # -37:?649A7,+ .-*% * 4$          ) 37<?@=<;983/+ .0.,' "                 # + 1/ 2879;7)& ( 3-' &             +        #  " $ &! $)$%&                        3 ?1E                  ,.9!Q$0                    &$'1'                   ##!&                  ""    #          %&'4"                #%#-                    ,5                     #            #      ! !   " # $ ' % # "              #/:@CCEFJ!L"G!E!;<A F"? 5;A!C$<#7!/&        ) G ?;857=7/3807@? 7/2=!8 1,              + 3                  $ !                ! -)                                 $ 8& ) #-9                                       ) 54  " & & ' ) , -+ ( $                        & ( 138=CDAE:<@:;=@ :?!; 6599 40' !                    " 17:9EKLE::,@BH!E!@D!D"<5568 312.$                   ' 45"9DA;:4>B?79>C!;"-3:88 /4?&A(8& " !                 3 " $ !   " # " "  " & $! ' '%'$ ) @&4,' ;'6@)O$! "#'7% !  /&(   " # "     /    " !      # '! $>(DE*` $+"**  )$9      $     $ " %     6         # %   " !  # $ " " )+-!"!' +@  *"    %    ( !                      ! $$ ' +) %/!-     )    #     $      % # !   $             #  $%"#/                  " # .        " *#     '9                # ! #       4   #-)(, $     !                 # "              ! %*&%(      !/            ! ! !            .   # ) 6#;0;     -             !! !         $ # $    # $ % ' + * & $ & )" I/V4"? "      $            " #  E   #    # %  % ( + 2<; 47438!9":#:":!<$8%1!2!?)?+"S3o   '4             !       & $ # E+ * * 29>@BD=57;AD!C!;>E"D#D$F&>!?!B$>%A&F'B&^7g%                           ! % $ ' *( -    !           ' ' ' ' ' 56/* .83' $ ,0#,!!    "          $   " & ) ' %  % *             .   #     "*        % "     ' ( ( * ,$  % "                  '          #      !+ # & 0 3 / #  * %            '                   # %,53 . ) * #3 ' $           ! # $ * .-.032/., * ) ( #            #.,1/.04#=#AJ % %  ! % ' % , " % & ( -, /1?G!F!A G#<5C!O(J&C#A#B%D%B%A')03!:&#."$ ! #!!!#)4'3 ($(*&(&9'>$9/"6$;%?'C(F&CJ% -, . 1473)/# * 33-1?J"E :<: +1G"O(%D$!9= E&F'*1,3<%5"- +!0$!1#0% !!"!#1F$."+'9!."1(=$6%%9'?$:$;(D*H(F8J # ' + 3:>?4% ' * 467;EQ$L#@;<55<M&K'D%< D#g7\<#.( 2B'D)229$G.6?+=&& ' -0 ()+1%'&+.>+9<"\5S';(=%6'&9+D*B,H0P/O/Q-O*KL! -7:87/352-/:>48EJ"A?G"I%/7=I#J%I'-<= M+E++?#\4U8"5C( O2E1$=*7M0f'&$($-!%$5"3#5&&-E.I+E)C(C.N0S,N-P * 68:/) @% "   # & % % ,.3;D"L(;51:< <#9 ?$X3b, />%M/?3 5 <%@)(I/D@)F6#B#!0> #&0#",-C$3%'&9#5$7%:&<)-'>'?+I'C&A.Q,N*K,P .L * 7=7/& % $     # * ) /:I"L&>#47 >"@#;">$>&4#/6!<%8%6$:&:& 5$' )0"%!(%)90J' -"2';(?"4#7.$:-L+J(E$=,M,N(G,N.S(J & 58- !            # ' + 1353236>!<:?!G'!B'"7!7!@&=&6$<*(:),"    ') ,..1.0 3$:-M(F$='C,M(I'E+N+P,R % 6. :           ! " !   ! " ' ) ( ) .0./00!0"* /B%3 $3" !/%:( %%:"74+,."7'A)H#=*J+N&F(H+O*O+P $ $ !             5   ! # $ & ' ( +!.#$!$ !!2I  ' (>.!!$9)E/.23 5!8%B#?!:%B)K'I(I)J*O)N)O"A              $  " " " $ $ % )".## (2!1N$8  !"3(B404":#=%@ "=#?%B'G&F'I)K*O)M)N(L%G               $ * +)& ) ( & )" /&=+6#%$&#', (1#*'30J%7  !.-G+D'@ 3%=":54 6%A'E)J&E'G(I*N*O(L!@ ,    # !      B! ' ( #   ! " # ' , / . * * * , ,!-" 3%;)K1H;'=?'Q ;$N)2 .<#+ ;!Z0K  !*/H2Q(?/#8&@2/!7":(E*I)I*K(I(H(I*N)N(M&I 5  " ) ) % K$ % ., + .353/./1 3!4!3!3!6#9%9&7&3%1$1%3&6'>+S4GB+B?)K*(   $,3  6!J  *4<"]#0 ")9,B.I!1 0 1"5%=%>%=&@(E,L-O+M*L+M)L*O)M%H = 'S  ! " $ ( ( % ( % 2=<:9G!N&K&M'H$L'S+R,H'G'L)G&G'N+T1(L-%@%D(F+F+M13W7^G.R9&@"  &-+74M#.$2 ,(*A%8$)A1R(B$;%>&?+J/R,N*K-R,P+P*O&J:!          + .( ' ,4/' -35779 9697 ./1/4 =( E/@B,F3#3%')! (10D%1&4!+$14T$5%3T1Q'?)C*E(B,K0T.Q+L,P-R,Q+Q)O ?$               ! # 7"       % ' &-!6%5( "  $',9(4#**:&3 '(82N+A(<1P%:#5(?)B-J0R/Q1U0U/U-Q-S.U+Q$F 3                    :    $%%!$#""'(" ,7!$"$-;1F-@%1#.2L/I,E/K%"2*A+D4V7]1T1T3Y3Z/S2[2\.U+Q&K9               , #%)#($**"!'),72 @2B,90C-?#+2I(9$2);'9-F,E.H7Z8_2T1S6]0S3X6a6b3_1\1[+Q9          :     ! " #* .!)( *('#&#((!"8#I0>$'.<+8!$.?'3(67S2J.D.E/H5V4T.I5X7^4X6\6^7a9g6c5c3_,S$D +     F       ! !  ! ( + ( $ " $ ) -"+!1$"/#$)#" ( *&"%)&+-2 :+/&'2 @)0#&1A-;0B=#]-@,=0G2J:![; ^6V: `8]4T9_;c< i;g7a8d6b2\/V+Q @              # $ % ' ,4+% ) 3724:!>$75;#M/=C*2./7%9'%2$, -"6'.3%+2$-+!*"''0!10 4'$++-1-24!@+1,3?&Y7!L4I:"V/A1F2H6Q8V8W: ]: ^9]9^8]7^8a7_8b8d4^2Z0X *     I           ! $' //4./8 1/0.2 -' ,1!;((3$#% (0%I2OC-L.!'(*")"6$<0!3%. /3!;5"?3!=+02 >=%T6!I:#S:"T/@;"X8 S9!U6Q4L;![<"^="a>"e>!f; d;d< g:d= j=l8e6a2Y&F   N       % ) ' ( +.* /1-(' ,/9$&. # % 5$\9d7&/" ) ;+!_=qG/O2$,/"('&5%80!0(",*1!54"=.3().54!A5!E;#S2C6!K8!P0C1E3H1E.A,?-A2L/I+C)@-G2Q1P*E.N4[0U.R $ * + + * $ " $ # % $ ' + 32+3429 :!51@&'1) .0 4"Z7e:&6# />)tE@+?' 9%d?WqFF/K*   "     "!      !  "-!5$<#< Z! 1?A><:6.( ' ) 07?=>AH#P&S'V(R'S(S)Q*"I'#>!H'B&9#="G(O,N.'R3O+4 F(^7>g?s3%;#U2d?T9*)($!(%  '',2#%+6 %$ * ,+'!3,H/M#7-"8"91,35 -E 0>A==<1* + ) + 19E J"F!I!P$O%O$U'\*],\,X*Q)P(Z,^/ ^22R+Y-U,B#>#C(A(G(G'G*R3;@+P/O01$                      $*$%.!7!7321!;#?F  + 790' & )    $ * 4AA;37CH!E F!L#W)Z+Z,W+W+]-e1"^/ Y-Z.V-!R..?%?$I*M."J,H+I+L.N1L01"                     (/3!: 9!:"< :( 86+ #   R      # % $ $ # & + --/2<I#L%J$I"O&V+W,W-X/"Q-'D(C&H(M,O.#K,C)B)E*:&'  ""!3G")%3',?#/&84V/N*(@/O,J.M,J/P%>,,!81()/0, ),32 . . & , ."          I   ! # " % * .,) /1/.0:@!B#B&?%:#<#=#>$?'@*D-:(-!  (- *.3 D&- 2 B4J!) %2H-A%4&73Q)A+'<-H,G-I/N*F2.3%?#</.. ( ' & & ( * - / ( * $ !          " # $ & + .@.,0 9"=$>%@&A)@*;(;(?*A+A-E0B/#) ! $'( !2!<-5$%!4 D6 N(1*8&3(#00K(= -,+()+!4&@#<"8$;!:";$>"=!;9851 0 / - )    "       ' * ( & $ ' * ,E/4 7#8$6#9$<&?'B*B+>'C*K0L1"D+B*F.M4Y:0B-( "(!#'$!%(''&$"'-!#"#!""+",!*$1(;&7(;#3%8#4#5)B1S.O$;#8$; 7.,1621 / 0 / , & .  ) # ! % "  * -00>G"E%:#.6=#>%7#:$F&M*L,L-Q,Q+W/Z2\6)T2%K+R.`8*a;?D*E)Z4k@6I1) "$.!$! " #$!  *70E*9-@&4$1*<.F*@-F(=)?%8(@*F)C(@%=/ % & * & & ( + , + )" = " ! ' ) ( -8; ::M$L#D"@#A!L&V,X-T,Q*M'O(U-S.N)O)^1h6"a6'P0 L*U-\5!F.;%C&_5V51%* !"! !"#!"!#"!! (1)5%.,>'5!)#/'7-C(;$*'<$8 0*-3 72 , + , + ) &"  C        # $ % # ) & % ( /8:70+( 0:425> B#@%7"3; B(3$15C'<)B.?0$%&"  #&"#(&### "(+,6',&.$,-?(6$0 '"-&&')-#3#5#7$;$>'B'C#= 95 / + ( %       H            " & * % ) ,) ' ' % ) 20!' ( -2"2%>,66(.2$,*$ "'!#$&!#  /97!L! 6!H/>&/%-&0.A!* +%7%8&9!0$5&:';)B-L(C (C"9/./ + & &!              ; #    ! " $ & *"3&+/#&"   !! ! $&&)  ")5"+%02L/I(;(-I0O$8)   # $ ' $ & & !             C   ! " # *!9'72".  -!&)!"&%#'%(&#(+##".8/=)4#&.;8!Q,<->6R9 Z6T7V.D/F.G0L4T0N'=-/%>'C#<531 , (         :   $) () 2$-+ $$'&$,+1!5.06#C,1&%+0:$M9#O-8,56!I:"S3H.?/B9!U9!W:!Y9 V4N-A(:/H6W1P0Q7_=j;h2W*I&B#<7 - + &         H     ! "  ! # %)!*!+ '%*!)!%1"//!-1"26$>. 1)'-/7#C2 <-2093 @2A1@+8)4,8(2)3+7)6(5#.'70I+A+C-E*@ ./.)* % " $            ,! !    # &' !  # *#4( /%/$/$!1$'0$() + )&* ), &0"/+(&+)/ 1-0**+.090:,5*1*2(.$((1,;.A)7$.'5-C%3$& /&;$9-)/. ' !            !    %( ')!%$) #    %$!"!!'((.$'!#"$*6,<%0"*")&4 +%)<*B#6 1.-( ' &               K   ! "    ! " " " $ " " ( , ' # & )!( '*!.$+!%/$$4&.&'4$37%:3#3+&("/ /0 2,,.24!@6"F-4$%&+/=0?;#U=$Z5 K3I1E-?,>-B+?5S,D#4!2&=&>!500. ( #g           ' -+ ! ! ' ( % ' .+ ' ( ' ,/- +( 0 8%5%( # & +#2&.$2&$C.F0$'#*!) $*"'! & *'##%%#$(.(/"&%                              '& ! *!3%'" ,"5'*"# " ("3( .%' 5((1%#                              +    #3%("  # 7('0$$% /%>-6,#" ' 9,"I4=2(4(;-$*#%%.#-" #" &%"                          <$ !  & #    % ,0, #  $ %  !  # ,( # ! "    ! + 3'6*=-$:--$!                                       ' 5, //.0.;?=L%V*$P&=54+ 16@"=!>!C$71525"<&>%E(@'2!+ -0!-!, .!9&>*<+@-:)-"                      F   &   % .1202426984/3O(m54`.!S(F%8 .-B&v?ZU/);#) 0H,"N/'J+S0!E+:&5$2#."4&<+;)>*K2L1>(1"&        - &!                           +     #   $    ! 0032,' % -9< :6'  ( 7D'X3K+ ( A%I+>';&W6=e>c) ! +!8(3&9(F-J-C*;(.$'("'+*  --3 =)+2 <,2&*0?5 K%3#.  %&!!        # % ' ( - $  /;:?0[/3F F!K"Y(`,N&J$Z*L'8 39 "(#-4O &')=*?1M"2-"5(                ?  '   ' &   , 2,-( # -1@D"D!G"L&>!C#R(D#;!C&M*P*T*_/h3"Q+7!;#R-m9$Y0<"F'V0F+9&>'I*]3i:"a8_6S0H-3%$                            E  '   % 3;;5/2:E#G$L&D#A"F'E&@"F$V+c1 U+A"C$S-_4M+: Q,g7"S/@%F)R.]3^5Y3R3C--##  " %"   #   $                         " 0, " * 1<<63.4B @C!G""M&G$@ E"S*R)E$A"V,c2 P-9"="T-W0F(9"?%N,U/X3U5=,'     ! $"                            5               ! ) 3+# ( * ) /13-' /A!; & ) :?#.# 5N+K,5#1 :$F)J,B,2'&                                  -    & + * ) $ % ,23586%Y@%_B&a?$_9!U:"V9!U?#b8X-D*@$4"1"2,( !                         ! % )" '! !                                 !     # $   ! ! ! " $ % % & )# +$'!% (! '! $ " " # "                                            ! # & * 6&4%+! ( ' % $ & *# +$ *# (" &! % '! )" *# )# +$*#(! & $ % # &* %$                                      " $ # " $ # " # $ % (" *" (" (!("(! ' & &)"( %( %!!!$$  !%"%"'%# ! %                         $ !  " & '! $ (" )# '! & (" ,%,%)#&! # & # ! !  !                                  ! #  " & "   $ )# '" $ '! *# *$ (" (# -&0(+%&! "  ! !                    "      $ "   # # ! ! % (" '" $ # '! )# *$)# /(5,0),% (" $ $ &! & % $ # " !                      +             !  !   # % "  # $ % $ & 0(3+.()# #  ! $ "      "                   #  " % + *  *   $ ( $ ! " # & $ !  " % $ # & ( )! '! $ & (" *$ +$ +%0()=) @+H/U5V8?/,% % # $ % &! % # " #                             ( /' # + .) % + 5= 5) -/./20 ) ' .8"9$/ ) * .!0".!, 0#3%1$2&0%3'5*1),% '! % $ # " !                              " " ! # " ! # & ' ,5"2 , + / . % ! ( 5$;'5%1$0$1%/$ /%5(6)/&,$ .&/'0'1).(,% +$ *# (" '! & % $ " ! " !                                  # !  ! # $ # % &! (" & #                       # "  "! # " ! " &! $ # & '! )# *$ (" '! & % & &! (" & $ & % $ # ! # #   !                                            # " ! $ & % '!(#*$+$("+$,&-.'1)1)1*/(-&+% )# *#*#,$2%$0$%.#"5&-7'15&2.!'1#+>*D;)=8';6$<. /4#64#8/ 1/ 0. .2"9:%H;%K5"B4 C3D4 E0=1>3 C0?*4%(&*(2"' $",%$                 ! % *$ -& ,& (" #                              ! " # " ! $ &! )# +% )# '" '! & '! (! )" (" '! & # !                                 ! " # & % ' *# *# +# +$ *# *# +$ -% 0(1)/(-',& ,% -& .'0)/(-&-%.&.&/&-&*$)" )# )" & $ & $ !  ! "                        !   ! " # $ % & &! &! (" )# *$ *$ ,% ,& +% *$ +% ,& *$ (" & $ # # # $ & %#  "                         %             ! ! " # " $ '! *$ ,& .(.',& (# '" (# )$ )# '" % $ # $ # !    !                             ! # # $ % & &! '! '" (" (# ,& .',&,% +% )# '" (" )# *$ *$ +$ (" % & $ !   !                               " # " # $ % '! (# *$ -%.'/(0).'+% )# *$ )$ (" '" &! % &! &! (# *$ )# (# )# *$ (" & &! % # " # !    ! !                      "     ! # $ &! (" )# *$ *# )# *$ *$ (# % $ % &! & % $ % '! (" & % #                              " & &! (" +% -'.'-& *# )! ( & (! )# *$ )# &! % & % $ $ # "                           !  $ (! '! )# ,&,& ,% -% ,# 0$4'1',% )# &! # % % %! % $ !  !               .         ( #     !    " % %   # # $ $ '" +$*# +$ ( ' & # $ *! 3'3(,% (" % # " # $ # $ % '! &! % !     !   "                      " ) "  $ "    !  ! ! # % # " $ (! )# )# &! ' +" -! / 4"9&;)4(+$ '" $ " ! " # $ # " # $ " !                     ,               ) $           & # $ % % ' ) -4#?)=*2'*# % " !  ! " " !               8       $  ! $  # ! ' ( + $ " 4;=920-5AI$H$929E$H&E%F&E(:$( ' /;#?$A%B&D'E(Q.S0=),# & # !    ! " ! " " "   " # "                6     ( ! " " " * '   -6.+ 1=!C$4-;!F&@%6!:#?&9$) $ 7#L*P-G)K+Q-M,@'4"( #      ! " !                           "   $ $ %   &   - 6$.!' ' ( & % # !    ! " # " # # " # # % $ "                            ! # !   ( ( % $ % &! $ " !  ! " " # # # " " # $ & % $ #                                                       ! !                                 ! " ! # % # " " !         $%")(*-(*&'#"  #"                                                 "$%$ "                                                   ! "                                !   !       !                            " ! ! ! " " ! " " ! ! " " ! !                                                                                                                                                                  (           ! * /(                               ! ) ' $ # % * " " ( -+ $ ' !  $ 74#                  # + 2.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/stories/holotzcastle/level028.hlv0000644000175000001440000006226711177007633023244 0ustar jacobusers@defaultN33?22                 DD`@@-CC??CC83? @CCjf@03S@CC833@̌@ CCI@df@CC@cfv@CD@cfv@'DB?/@6DBjf@03S@EDB@cfv@'D Cjf@03S@6D C@cfv@ED C833@̌@'DGC@cfv@6DGC833@̌@ EDGCI@df@'DC833@̌@ 6DCI@df@ EDC`@@ 'DCI@df@ 6DC`@@EDC?? 'DC`@@6DC??EDC?̌?'DC??6DC?̌?EDCjf?03?1DD833@̌@ C[C`@@ *CC`@@ >CC`@@ RCC`@@ fCC`@@ zCC`@@ CC`@@ CC`@@ CC`@@ CC`@@ CC`@@ C[C`@@B Cjf@03S@B\C@cfv@BC833@̌@ BCI@df@'DDDDC)DCDDD6DD"DD'DD,DD1DDDDDD DDDDCDCDCD;DDEDD;DD@DDC)DC)DC)DC)DC)DD)D D)DD)DD)DD)DD)D"D)D"D$D"DD"DD,DD,DD,D$D,D)D1D)D6D)D;D)D@D)D@D$D@DD@DD@DD@DD@DD@DCEDCJDCODCTDCYDCYDDODDTDDJD)DOD)DTD)DTD$DTDDTDDYD)D^D)DcD)DhD)DmD)DmDD^DDcDDhDDmDChDCmDChDCmDChDCDlBClBClBClBClBClBClBClBCCCCwCCCmCC4CCCCBbCCOCC:CLC'CCCBC)DC$DCDCDCDCDCDCDCDCDCDcDDhDCcDCcDCcDCcDCmDCmDCmDChDCcDChDCcDCmDCmDChDCcDCcDCcDCmDCmDoCmD[ChD[CcD[CmDGCmD3ChD3CcD3ChDCcD ChD CmD CmDBmDBhDBcDBhDBmDBmDlBhDlBcDlB^DlBYDDYDD;D D@D DDDDD DD D DhDDmDDhDDhDDhD DmDDmD DmDDmDDhDChDCTDD DC DC DGCTDDODDJDDJD DJDDJDDYDBTDBODBJDBEDB@DB;DB6DB1DB,DB'DB"DBDBDBDBD CD CD C"D C'D C,D C1D C6D C;D C@D CED CJD COD CTD CYD CDGCDGCDGC"DGC'DGC,DGC1DGC6DGC;DGC@DGCEDGCJDGCODGCTDGCYDGCYDCTDCJDCODCEDC@DC;DC6DC1DC,DC'DC"DCDCDCDCDCDCDC"DC'DC,DC1DC6DC;DC@DCEDCJDCODCTDCYDCYDCTDCODCJDCEDC@DC;DC6DC1DC,DC'DC"DCDCDCDCYDCTDCODCEDCJDC@DC;DC6DC1DC,DC'DC"DCDCDCDCB DB DB DB DBCBHCBCBC?KCB?<CB?.CB?"CB?CB? D B?C B?C B?C B?*C B?=C B?VC B?LpC B?>\C B?+HCpB?"4C B? C B? C B? B B?B$B?.B B?KB$B?pB Bholotz-castle-1.3.14-src/res/stories/holotzcastle/level004.hlv0000644000175000001440000000330711177007633023224 0ustar jacobusersdefault233?       B$B@@@BBB CHBGCB3CCB*CBfCBfCoCholotz-castle-1.3.14-src/res/stories/holotzcastle/level010.hlv0000644000175000001440000001217311177007633023222 0ustar jacobusers(default233?    BB@@@*C[C33@ff@zC[C33@ff@>CBRCBICBBCBNCBHCBCGCCGCCGCC3CC=CC>CCGCCGCC[CCoCC3CC3CCGC@ BpB@CpB@0CBholotz-castle-1.3.14-src/res/stories/holotzcastle/level014.hlv.tga0000644000175000001440000027021611177007633024004 0ustar jacobusers ,P 'xtqonke}_wXtUrQ|tR{qQ{kL{jKyhIshGqfEoeDodCqcCqaAsbCtcCueDulJzpO|tS{qR{kL~iIkJlKnMpPqQCnPmPmPlQmR~nR|mQzmQxmQvmQsjOkkP]tVToRMkLGX=@O6:L24I.0E+/B).A'.A(/B(0A)/@(/@)1C+4E.3D..A(*=%(=#+?'-A).B*+?(&<#!754433479!;#>!%>"(A$)B%&L,%S2"K+C"B B "F%$M+"J)E#A@=<:10146:!#>%!?#?#=!=!=<;;= ?!@!B B4-+    #  !    *  9.9-,#6 (5 '6 (6 ) "("0(7.>3)"F5C2@0' & % # # ' :,L9J 7(K8L9 !$%&' ' *Q ;P :G 3'&3$# $ ( - "5(@2K;J::/+$:/+#XEVBP<*(('''*0)()+ " " " $ )"/'5)K8H 6+ !H6G4C 1B 0$ '/':-@3C5   $! 6 )5 '3%$ / #0 %0 $. #- " A|xtokfd|_x[wYvWrRpOzlKzgFweEueDreDqfEpgFpfFqeDscCsdDtdEueFuiItlLunMviJwgH{jIkKnNsSvXvXrUmPkOlPmQ~kQ{jOvjNshKogJmfImeIkdI`lPZsWWrWP_FEW>%+=##*<$*=$*<$*=$(<"':"&:!&:"';#%:!#9 !8 6544338 :!:%>")B&+C&(@#"A"I'P+J'C"@AAG&H& G'"F&!B"!<810122466       %A">"?%?(A!)B"(A $@!>!? ???@A B7!+  #!  / $/ %%  1 %)4%3%4% ! " " 7." ? ..!""!- $</C 1L9L9J8K9J7) &%$%$: )Q :R<9 *D 2E 1S NeIIcGEV=>R75K00H,.E*-D)-A(+@&*@%+<#+=#+<$*<$);#(;#';!';"(=$)=%)=&(<$&;#$9!"8 !8 7648 :;8 : ; :Q-V1T0P+E#A@?E#C!B ? ;";621321246 $##"-G&)A %>#= #="<";">#?"@!@ ? ? @!B = D!-"    "    + , ,". #2 %0 #6 '7 (6 )7 )6 )   &/)< 4A63'"# ! & $ #$ 3*:,NT=N 9? .* ' ,#1'3'/ $, !* . #8+E7P?L9, ") / $H8?16*%&+ *!+ R=QV:'->(-?')>%(;#)<$)<%)=%'<$%;"#9!=#:!!9 :"> !< <; ;:<A \6^9^8V2J'C!B!B G%E#C":89:545665545458!!"  !!##"#!-G&+E$)A '@&?$?"= : < ?"@$C!&D$&F%%E$#D"!@2' !&++ , ,!, "</@2?2</&' ' $  0(90<2;/!#% & </G9L:M;K8J 7< -' *&%&) I;V%G?4T?S=C3I7F5ZDYCXAXBS@2+6-5*1 %- !+'".#6+@3C56+' 1'=0L >X'HR#DA47.3)+ ", !Q;P ;!< -# &( R=O<  ! $ )!I7  " )"+#.%&  !  0 %7 )6 '4 &5 '6 )" # 1%/ $, Exqnjiecc~^z[vVoOkI|iG{iGzjIykIvhGsiGohFngFnfEneDoaAraBqbArbAqbBseDteEsgFthGuiIsfGvhHwgIxiKyiLxiLwhJvgIseGncFlcFibDc\?`[>]ZM19N34L02I.1H-3J/6K16K23H/.D*->%+=$+<$*;$);#&;"%:"$9 %9!%:!$9!#9 ":!!9 #;"%A$$@##?#$?"#> <!@!D#C"Z2`8`7Y3O+E#C#C!E#B!:9: ;:34567: <#;":64&! -E%)C"'@'@(C!)D"'C $?#=$>'@ *D$-J*/L,-J+'H'"C!B!B 'G&?95/(    '%# %+!*+ +! 4)?3?2:-7 ), !! $%&$' % $ & ) $ 6*.$=12 %H 5I 5H 5'&&') -%G ;P%CS"C@1J8I8VBG6WAYBW@V@W@<.2&/ $- !, @' *"7-<2<09-2'$ -#6*A5F8B41&A2J::-2&6 'G 5P ;Q ;R=0 $% ( T@T?H7!' J 6H 5 (!2+90:0 ("1)1&8+5 '4%2%3%- "!Uwpligc~cb}^yYtTnM~iIzgEwfDvfCtdCsfDuiGvjIrjJmgGmfEodCoaAqbBqbCrcCrdBqeCreCqeCocBqfFsiJylN{oR}pS{nRymOvjMrgJmdGgaDc`B_\>\X:WT7RQ4OO2GL.FK/BJ/=N39N56L22I.0F,0F+0D+.D,.C*.@'.?&,=%*=$*;$):#&<"%:"%:!':"&9"%:!#8 !9!9!9 !< #A##B#"A""?! #?#"E%"J* H)H'_7g<f;_8Q-E$D$C">77679869!"=%#?&!=$; 775542   0!!%>">!<!;!=#>#?#>"<";"<#>&A!&D#$C#!B @@A!@"A!B 03((     &+ , +!- !  &:-8 )5 &" $ +#) % "!$ % 4 'J 6H 5'( ) ) ( , ! + !* $* & / #A /R_]>\Z;[W9VS7TS6OP4LP2HN0FL0AJ.>J.7K12H./F+.E*,D),B',B(-C*/A(5F)5F*4E)3E)3D(2B&2C%7G%7I&8J)8J(5I&2E"4H5G4H3G3H3G5J!=!;!<#?&B *F#*C#(A"%?!< ;!= ? ?!@#C"&F%(D$%B!!?=<%6 0%  % + >, $4 &3%1#! " !   ' (' $ !!$ I8E6R@A43*1(.$& $* * + !, ">.I 5U>XAYCV@D30%1&3(4)3'2 '1 $0 #0 $1 % , "-"/&2(9.5*. "%2 &;,>.: +0#P ;+P :O :O 9*0$O :P;O :O :- "$ *",$N;K8 D 1" ! ( 0&* 7(  $$$ %,!*$zqige~c}a}`y\uWrRoOkK{hGwgEufFtfEreEqgErgFpeDodBmdCndCpdDrfFreFpcDocBnbBla@j`?ja?ia?$jcBjaBiaAh^?c\;aZ9^Z9[Y:ZX8YV7YW8VV9UW;TW;SW;OT8HN3AJ. ?P+G&C$C#E%"?"$@""> ;:44556554579 ;!:1#=$>%A'@%?$>#>"?";!; ::!;$>(B#'D%%B"!@!@"@#@#? =;; <!<7%*4'+,"/ $/ $2%$# (!)"&! "9## #   8 *P;G5,#.$@11'/%, "+ !, "* !,"' ! # %A 0U?V?U>T>1 %, !- !/ $2'4(9 +0 #0 $3&4'0&5*M;8+*0 $/ $&%/ #.!.!-!4 &R=Q

M">M!>O"?O$$=N":K6J6K5J6K7L#H&(G'.F"*D!&A$>#=!=C">=?=9:;;754458:!975536 ##!!!!: ;"<">$=#= :989 : ;!; ;;;;">'A (B"'A %@%A'B!$>!;99"=">43(C,3H&7F67+. "%/"(7 (   !""$' S?D4C 2O;B 1, !- #.$. $, "* A1& # # $ ( ,#Q><.R>XBU?9 *- ". #0 %:-L9F50 $1 %1 %;. #3 '< -, -!-", !' 2'5)4 '0 #,=,P ;Q F4, !F 2M 8N 8O :R=T?1&- "7 )H 5K7N9F6%%K9J7@ 0  ! #*"2);1B6 >/>08+  $ ,"3(&+ Lñzqib|`{_{`}`z\vWqQnOnN~nM{lKwhGtfDreDrfEqhFofEmbAla@k_?k`>k`?laAmbCkcCkaAiaAhaAibBhdDgdCfbBcbBa]=_]<]Z;[Z:[Y:[Z:YX;Z[=Z]?V[=PU9LR5GO1AK-=H+9E(7E'6E'7F(1H-0E+.E*,C(CO$DO$CN%CO%DP&ER(GT+HT,FS*DR)BP'@N$>M#=L""=#>#=$?">;:;778765333465435  <!; ; ::9989 :98:;"=$=#=!;!;!<"=$?$=#<!;9"=!=$=%>#="=!< ; :31&@+1I%8I8F56(1 $+ &! " !9- !S?R?Q=+ !* + , "- #, "&ZBP :)#!#& ' & < ,L 8N 87'*- 9 *J7[E=0:/9-5)1 $+ )/"&, ,!,(/#/".".!)A.> .Q

CoC@@@ CGC@A fCGC@A>C Cholotz-castle-1.3.14-src/res/stories/holotzcastle/level022.hlv0000644000175000001440000002067711177007633023235 0ustar jacobusers7default233?BB`@@ BB??HB C??B3C??HB[C??HBC??BC??HBC??BC??HBC??BC??HBDgf?gf?BCgf?gf?CCCCCCCCCCCCCCCCfCCzCCCCCCCCCCCCCCCCzCCRCC>CCfCCzCCCCCCCCCCCCCCCCCCCCzCCfCCfCCCCCCCCzCoCC[CC[CCGCCGCCGCCGCCGCCGCRCGC>CGC*C3C>C3CRC3CfC3CzC3CC3CC3CC3CC3CC3CCCCCCCzCCfCC>CC>C CRC CzC CC CC CC CCBCBCBCBCBzCBRCB*CB>CBRCBfCBRCBfCBzCBzCBCBCBCBCBCBCBCBCBCBCBCBCBCBzCDfCCRCC>CCfCCzCCCCCCCCCCCCRCCCCRCCCoCCCCCCCCCCCCCCCCCRCCCCRCCfCCCBC CCCC3CCGCC[CCoCCCCCCCCCCCCCCCCCC[CB CBCCCBCCCCCCCCCCCCDCBCBC3CCCC CC CCCC3CCeCCxCCPCRC[CCCCCfCB>CB>CB>C[CBBBBB CBCB3CBGCB[CBoCBCBCBCBCBCBCBCBCBCBCBCBCBCBDBDB DC DfCDRCD>C DB Dholotz-castle-1.3.14-src/res/stories/holotzcastle/level018.hlv0000644000175000001440000004327311177007633023237 0ustar jacobusersndefault233?--  C3C@@@1D)D33@ff@CCff@@CC@33@ CC@ACC@@CGD@@CVD@@CVD@33@'DC33@ff@ D.D33@ff@C.D@33@C.D@@C.Dff@@ C.D̜@@ C.D@A6DC33@ff@DC33@ff@;D[Cff@@'D[Cff@@1D3C@33@ED3C@33@D Č@@6D Č@@fCČ@@CČ@@zCC33@ff@CC@33@ CC@AfCD@33@C3C@33@C3C@33@4CC*CBJD=DED.D,D)D,DGD1D8D;DBDCDCDHB)DRCD>C=DHBVDfCGD1DBCCCCCCDCCCDGDODQD@DQD1DQD"DQD'D C@D C;D3C"D3C1D[CEDC,DC,DB6DB1DB@/DB4DBCD)CC1CCCCCMCC:CCLCCGCCUCCZCCPCCLBCB[CHBC?{C]C?DD?CD?CDholotz-castle-1.3.14-src/res/stories/holotzcastle/level012.hlv0000644000175000001440000001241311177007633023221 0ustar jacobusers(default233?( zC.D@@@CD@33@zC3C@33@CCff@@RCC33@ff@C8Dff@@HBDff@@C.Ď@@*C.D33@ff@zCCCCBBCDRC)DB)DzCCRCCBCfCB*CGCBGCBC>CDfCC? BC@& C Bholotz-castle-1.3.14-src/res/stories/holotzcastle/level008.hlv.tga0000644000175000001440000027170011177007633024006 0ustar jacobusers     ,(,(,( B<$9584735184<861:6407362=9<;7=9<8B>:5943.A=>:>:411/:6B>>:?;1/31:6?;B>3/85,,=973-,6495A=52621-400/6263..!@<2/<81-:6733/40/,5162@<2/B><8=940//=94/=94/62<8 A=:620.,30.,<8=9<8;721<8;7=92.A=951-?;2.;7618452;71-@<.,A==942:6>:;7>?;2-=9734040>:849551<8;784=9@<2.1->:?;1-6240<8@<7362;7621-53=9>:84>:<8=9<8,,!>983B>=9;75084:6>:7421 5122 51943/5195732-:6:695=9:6@<15184=9@<?;=9;7:6?;51@<622.=9<8?;@<=93/3/2-722.=9:6:6;7501-3/>:73:6:66295<89440=9<8>:4051:6=9<8>:=8=92-62>:9562B>>:3.62>:83:6=9@<@<;7>:>::5623/40?;<8:6<8>:8461A<XP0B>C?ID>:IEIEJF>:>:@<HDOKFBHDMIHDTPD@GCB>HDQMLHB@A@?=OKDBQM:9CAA=IEMJ95JG<<HDA=43FDJFLH:: DA22!=;CBKGKH/3)GF;=%EB97 PLIEFBHD66!97EAKGDADD!KGNJD@@=IED@OKFBGBNJB?MJC?55 ><<:@=NJPLJGC?>?!BB!D@IEC?JEJFB=OK:5HDFBEA>=@>97QM@?A@BA<<PLOKA>A?B?CB 89&OKIEB>B=GC@<KFGBGCFBLGMIVR><>>!QMKF:5B><8NJRNE@FBLHGC<7BASOGELHRNJGOKLH=<OKKGTPGBEAPLGBFCTPLJBB!>:GG!D@@<>:>9HDA=FBKGKGA<GCC>RNJFHCD@KGRNOKFBGBJFJFHDRNB>@<HCPLQMRNGB:5EAEAIE94KGB>@<MIJE<895OK>:D@EAB=FBMIC?=9GBJFOKEA<7JFHDFANIGCOKC>D?B>OKD@HDLHPL84?:HDB>EAIEJEIEFBMIMID?C?@<>:QMNJKGJFIEHCHDPLnd=RNOKVRFA\XZVa]FBRMID^YXTZVPLZVUQ]YNJXTRNTPZUa]SPHGJHa]RPgcGFSQQMSP[X:9\XML[WDAGFVTNL]YLL HG7:'TRYXSONM=@(SR TOYUJHGFOMIHTPIHLJNMLLb^a]RPHGSOLK 9A2YUVRLHQM`\UP[WTOTOVQ_[RNhdLKPP"d`SOE?"TOID^Z\XWSZV]YNJIDJI UTYW_[ZW\YQP_[XUYUVR`\VRVR_[TPIJ%`^ST!OKWV!MIHDRMHD_[VQXT`\UQXTRNQLfbYUSNSOUPb^_[VRUQZVa\]X\XPLJF[Vc_fba]UPQLZVZUWSNIVRQLNJc_VQHCNJ\XPLOKTOZVWSXSJFD@SN\X^ZOJKFWSZVSOc_PKXTWRXSWR\XRNWS^Y^ZC?TOTOKGPKUQ]X^YVR^Z_[VRTPOKMIc_^Y[W\X]Y_[VRc^۔xId`]XeaXShdjeyuZV_Z![Vied`idd`lh`\plidb]d``\e`rndaPP!LN$jiVV kiIJ%ZY b__^mj<=!nk]\b_KIIJ"gdRPgebb OO"FI&^][\#ea^]PT(hgPV0QU)SV)olVRON!ieFG$QPWVfcSS"fi&XX"eba]eaa\fbgcd__Y!lhXThdVTFH"VV"`_YWqngeliXX KR1V\-ZZ"]Yfblhnj^YmiPJ gbgb]ZXXca^[b_SR]\UV!USedd`[[!WX"dbWY%KQ1\[^[QN^\ rn`\kgb\idjfkgd`zvPQ$WZ%de!ecWQ#b\RMpllg[Wdc hfSRWW"XW!cadbjfhfniVY(lhge]Yfdkh``!fbjhTX+PS(hi#hfgg"\XljYTQL c^]Xqmjee_plfbhbfbjfqm^Zlh^Yc^rnpkgc_Zhdsnnjpk[VWSb^plplsoe_!ZUkgpklh_Zb]\W\Xso`\TOd_ie[V\Wd_jegblhTOKGidjemhd_VPfbgbgcsnc_lhgcfahcoke`a]okniVQhd^Zb\ `[^Yrmvqe`kfkgb^b]]X]Ysnkfiemisnwrkf|wԔUlhnjtofbsoyt˂~ojxr!ni|xqmrnuq}ytozztprnmhyt΁}vrZX!XX!oo"_`%{zTW'`b&vsnmutAB"cc"pnSR\]"xvWUiifh%WX"HN-ooef"tqjj fj)mn"T^6]b-ae)uu ]Zac$olNQ'RS#kisqW[+kq-ff!~zoktonj{vsomiqk$wridjgXXPR$gg!hg^^!xwnmzwdd S\5hm-bf+ojto~z{pk|\V$|w|wpmnmtrsqmjWX#hgWY'ddutqmbd'ef%ol`a$Zb2fg"pm`_lm&zxqk!{vsm#{v{xtnieg$bd%kn)ik&U[0^a)JN)vvgh!eg#yvcc![^)`b&eh'll!}{y}zhj'yugk,aa"gi&}} fj,ol|| ]c0W^1kr0xwxy!mioj]W tpniȆ~y{vɀ{vq }x!zuс|ׂ~ok}xwrvq݅z{plws|{vԂ} gbe`rn~yՁ}솂{v!a\xt~yql}xpkpk狇mhlgplsoniniȁ}{u#xtza[ ]Y~so{wytpkwrwq"|{ok{vvqsnxs҆lgrn{׀|b]zu upuo!vpxtڌ}xр{ztptopkql؅zz⍈Â}ΐДasjypvg#rjywf%zpqa*pc&ys|tzyr{!{}|vtm }v lc$ohqi%⏉kfsp"xv{yEF&st"tt!bafg#~|^^op#vx#bd#LS,~~rs#vuwv {)ux'bk7ai4or($nkci,usae)gh$wvbf*y0vt$t$zd&l%zml$wh`-vn!{vjj ad$wx rrtt!|{ }|Sa>x},hm1yi$y}~t lM2~%v&~ytt~utsshi$op!ce%ij#dj/uw%tqpr#^h:xx!yxonmr/"|j'}i*s`){k%}}vll*nq&ty,su&[b0nr*JR1%|{ yz"nn!qu+ko'jp1st"z|'||!mw8ss#iq5%{-rt$ ms2en4nz;$|}pcP${oyj 鐈x xwsf!y!yw 鎉{us!~uun&{m {f'p&yd$qY&~pv!{k*kW&w$q"{i%}n!{nxj te wivh|q~rq[!v\!|wnX qms }sp {h$}m"{rxh$s sk|n"x}n"|m#|!pc~{j\ m$vikU#|m z~qyywluh sg ujy(f(o$znt$h)uj+헍*#+" !)}*(#u"~+'|2朔yq&厇!})fW/%|{"pq!||0(ro)wy&&vw"cf8'/y|&*y}-wAjq8y{,0yviq4lq,ot+mo'0{{+&y&v=~#,$~gG,{"#}*su" **), "WeC}3v|0{$#$'y"}`=0& zz gk'uw##* y}9{*wx$yz#an? {|"nx9*~4|9u7}&(''&~3/4/pt83RX4#0 }*}|"+w{+oz;x}+(-y={.|8%*( ;wx9<*u`!u%p'朎 +w!}$y.県.狁"鎁!埚|z!z$,)?w!"w-&v,m6z*-))9l22/}3}"!p%q#u p x~fc#{Z$|x!x x"p*t&yzw xrs.s(%}m#ub$w2reX{r% 'zp{lvkvnto}}~~&Z{&win_g|q^o`!,{t)}!vp'up"'%~t)~,{z5陕 rh臄~ (YL0& xtp{,!jh%wz(jr vx#bf7wv*el w}x|+v|=V^+ei"0yv^h'ai#dl!gk!fo(i x3y-yl%|m5*vmv{)ss!(qr , y}Wd?z1v|/|{{#'rf{wtP11%uuRYtw")}zsv4{*lngi`n2{uwht,){/x2v8~$'$&&}.~+}+*kn3su+FDRH6g[Gx<~t2({6?<-A85*:Fk[.ZD(r:2:{@PW[a/su/mo4;I'8-IQns8{x0ch+Zalr)~os }Wa'pu%{}7<^]0vP7})z%e,q1CA fE!kc'{y)(|x+GLNTzz5/w{(MZEXg7x}?0 7=HCYFQ;)w2{){y!zz!X[vr*ih.hm 4?ENO^Auy5ww*vtmw7y}'z~,;`8iO0Y=h.,u]&v].m)[V*W\(BM/V\)S[1Q]/21ks(x|A1z-0cm9x6fqb:#sQ,i0~S5w[3o$m2vX1r6m.'u'kj{p{sh nYhu\ jWuS#c+d+vv#p^v%x te-(zb-~a,wW+WFn"y0y'gL!}mzw|g!y w!)ub#_'_6o6k?j>^[UMrmyu|')2x0WM$dM@kT2o.~8xh ud}ceLo(BI\D&h?xO7B}r:ab0f[O?FKg5tr-st.hg0@E>Dtt7tv3sw(IUBK\;qyD<-EE98J= I5%r3{l-tt{~"kl"GLrp-rn7ns @H4A&@RJmw?gk2mo"mu3vz.~%#3CzS>dG@rW@~g3u3pR-v^5b_(CN5FM-1=2OW.QZ0BP2*2\g1s{H=:4d,x=~l-un#o'{ bHs0NUP6/hP?zj<3}7GbU2C)1n]md0{t>y@L1Yc>ep^FvgC:wl1JtaO9+MqeHLy@yWDiF6ri.9K_c_p`;-|yKP-,+:)N[Gps?W`3ej'JU_f4%xz1MY(_g*gldpMHu9U~Ta;4yDFN/#ze1qf&de$jn&WY%4:dc/rn<*|ML2E38LN_iBU\7ce%[g:r{6x-%}3~P}RBt4FTC|T7c=dF/MH/KU6AM5?H01=2:G:GS;AP7)SEU5~DGW*'U$-f8?ULVb<7GCGC<9PK"jE{)zY,|b0t3e^s[}g ~f%|hS!wXxS$z$fBc?#tR0vU/zjud'dNq]u)wb)sQ5q5A>aG$|E>7*Y6^Bg6m81dGp*n6%$48cZ#bE&{L;wX;z^7Y=RHW@ nS+bR$wX/b4f^+iN8G*$M(c7={]6y=~j3!z.n.j"Y:!i7&UbE(9`G@rYKygkE=J=#5:emK_iEZeKUbQ,>97*#VIk]-^b5OT<*7'#0,\`=V[:W`39IJ5IE_kNxNkzEu~`mwb2/4A0 `P/dCSU*SZ+EK+& YX1pm>3VV(?@2HSR]DKU=Z`-KY?kvI;9F;.=A6C;-??7JG7KJ5KD-D8RSYmdS|TR^nUcjSlNFg4AtH;zLDq;9q;CFH7XN>Z;$FDYP sb#^H"@rW99!%!?Eyc5T,\?i4{73;."]<$a>1_=0  '%`[*yR:ECO9b&,q?Au@BNGK!#WG/iKQNp(NJ6TIBKVFnuEyF-c9N85=1"P:%X:2K3.D?!_jk?}H>d ~W)W*jQ]SpSvZ&cmO!~$PHT&i+l: \:#lK2jK,kZ"nT(`K^Jt*lY'mS8k=V>&963&+$ JAXO'QL%# qE(_5}c-v)t)}8o:]J+c90|;#V>*RE!|L8PBJ4->+ [.2oIW^J.=B/F,BN'?Q/IY/JZ$CZ5W*LhSjnbkyb[pVKs@e48nC;k9G[)8c0;h*sY/Z:29R3)Z3/j::e584:K,jK=D=';7jJ7F--X)I5H?;750{ M&",)4)+U29G)*O18J)1E;*ID XTLIqT%tR*|P5Y>lPN?qY'mP"iJ!m(T=kG(V+V#X)%gE/dB1YB%gQ*M9YB!ub,gP(cJ6oW=h-C-)6'8R6(`F6cF5 DNnW _S!vd0vc*q;|d;]@-/+F/$yL?fC9d;9h+>4(D, K1*G$HhIUx`DfS1yhEzaB91 9T,CnI[uQZwRh;^G$dZ?icDVv]LgRE{]kX=f!Pb4rp`Hre/nd:[`,1yz@,>4:G3GQDPWI-: !79GHDOIDQM6GM &A$B.@H@IECF?0?@15BBAKD8C<9HI 7HIYWepVPgVkxkSgi 3] 7b(?\0=wBB6<7:F5+56 (CF6``E}~&8-;1D6N;Y9Z>^?`8^ 6aAi?]ozl{jUqR{>Fs/>h+Db,7l<>n7HL;J;`6Il=Bl+Ff!T<4Z=5mA:p?6TP@3 A /L%.~FC2 e43V>48B.DP+q'EW+1j-DM.f7=PL40rN7U'9T!2b)9h-=V&.5 %/"WBU:,:'4+$3"I+/S74GBLgn@6hC(kC/zR1F6X?!WLcL.hD&|Y,I(L@dL)R!T((a>/a=,S=%aM*@+L3eQ,R>(\E1bJ;Z/9Z3<*I+,V=6F6l Ax<8JGfO*u_3u`,~d;uU>P/0'd 9e7:Z26S.3S"6D5P!85*P(2O0N . :)@)Z&3y[GqU:mQ2|c0Z96\=.@"*jT=t=[Z0F2;Y6ErYPXE6|bO~eZ6 6$2<B]?Tg=fd4u0Y? jU'a[:bqNU]>EhF\R&T6PW#nuLrXN*ZPFsN@vYHuMP& ' >-D8EE1=:6C7.2--"3<-=B.=B"6D%C&F5G(#4? (B4FMTb]G_XVji=Wd 7a L;KL@OC5LU9OYOTDeS&SR/NRB"22$7+9$8:#A/T 3^ 6` 4\ 3] 8d=l?pz2He\LYGbPh)?`<_>g)Bc0FQA> ==:MAV DV!>dTgM95 L<%L/!n@A\%79(-4 Q41_.79A|.@X ->$R%*P#5@'6$9!0!O +S+1=*%<%&; I(F$1 >$^/?DN1+c:7B)<#E+E') #') 80'F4F;* E#19.%)&t5MV/+d;2j>1j53{5B~B=@9U=!kK*I*!H9N9)[(7K+&Z>0N7&R:)29! O8/S9(]?7N7/7"S$8& 3"E-,:4$^ >l0@:7fJ1nW1lT1pW7fF6K,$ 1W)G,;(G./!($9 '6 , 2$,#,%?D(D,oC@oQ?iG.wS8]@5aC2E.hO8o@a|qDBM"?D!CcEZY;W&4. P F0()ZzM*`a6ZP1R^6Z@Y2 UZd2w[U?F@.L>Bj4io2gdOOv;N*XW/UgQQ J^/=rDHoBHh6?:.+"C#8E-PTD[UB[f(Ha 6` 8e;j7c.!=-C,A 5.*6JTIW`MS]4diU2CI$A&E-C%:F0DM4M^7Ra;IJ?L@EPL9GH8669 <$C/W 5` 7a 4] 4^ 7do 2_X8~GDRGSI_&:I 0J.J9J9B9; 59 9>:= :81A8_JU!B_-;+ L-05(4!(f>n72Fv(:m 7K$, F$B$6 5),%3"= #G,H+; 1I ,y%?7("Q%.4 1!c>/ ,,0)1.#*,';)%#4)!4t^"FQ.9U-5M0U+3u8Ak)8;7N5*J##4(c$.E !, :G'&G0$<%!%&:* I7,E4&9'& 6!7/% 3 0 !+k)K'%Z:3aF1aF2cD2R5,B# P (2 $(- #)' 6& + $3%6&[28sLGcF2eC:]>6U(6A3cC>w\AdSe\8:P$7( ES5EG,G]DN\5L7D#9-2 2171 7ZLcT(XN,UM!X2UE e1)(H'5M/C"&  nEe!' M@G+AY4CX0FT%@C;<< +! :+>(>6!2=MTI7B:Y`BT[L !5(=-=$6)**,.13:%E#D <765!<#A#@!=#A )E(5 !94EGS\PCQ%C,P 3Z 3[ 4] 5^ 8e=l@q=o0%OD /^'m37r=Au=9?6 <@=> 6?>PE`LH 1&*(' U.>m 8'2!-020-,#31&C+F +B$I&5  :6!# 0 [: '#"$#! $)/6 !  u_UB?/9(@,T"1j-@i/6"  X#9 ++ 16+$! )4!1( ' A( " ,$`P H*+L4+O4.N/'B#"7*? 5 &-1"!$$)"  w0(69"J0`96Q50e=8Q",E%2%X62kMB[WOI+9 Q%:)AA?F*CI,IJ#J/4#$+!!,&"9'ANiU^EaA R2 Qj  ELF-E&3_6b))-9'0,Z{(MLCQ4H7H3>;QIM>^WaY"9;&;8DD1>BHQG?KE20791('+/.14;!? >;;7!='D&G(H#A!<)?3D6U 4` 4] 3Z 5_ 9g 7c 3[-S&F"@"?!7E>MM>NC9HJ+A#A!?'G(J .R 7b9a;X4K4H(A:#B&E&H+O +O -P 5` 9f>nBu:mI.P !L&G(^ /e)2`/3U3? &< 1804259> DPWF SQ^Q ]P ^L Tfajbo h #0 d2X&C&/1*,#+!*$/!. 3/#6#/&4'A %<(<": 1.&$W6E.C - &$" "+)5 ." n]G :2).&9%A)U"/f9T'> %*+ ' ' % ! "      !  8#  * Z!Q795,# %! >&* '7 (("82 )#,*.&N%/W33L+54"5$3; 'T?6mFL83)'51G!4' 8:<=93;2 49 D$; #  ""'- 0 />UmEeJfx3@!Q%5^4lC ##1X%9W'F7;8E3.,672'%-+-//4 >!>"A!?!>%H,O ,S'G!;!<=&F 0W 3\ 2Z 3Z 6a 8f 7b *N(I&G$C.H+@K.AI$9H $C&F&D)J*L 0V 9g 7c3\ *O'H&E#B!@&H'I%E(J ,O 0Wo@r)-YD J &N $H E "K $Q.M'J+=*:)806 1=FC X +22-/C: 0%P+ $*+-/ /-!((-0-- 65121+ I(GM*6 9 &J/. "!!!" $#+ dP=32 !-!)0#? (4@ *. #$" #         )-''SK$ 20) $ "# =!% 6'! !) "/ '0 !/1%C$/A(2 / 3 6R+-\1A&  5(B#9:#8-.(4).:@F SRQ%-*d(0DW5<-Y1h)2 _(_q(2O&,O!<+.@4QC]H4:#2 2)2 */>1?);50+,23-'&+,+,,29$C'F'H ,P 1Y +M%B!;!='F *O 1Y 2Y 2Z 4^ 8c 8g /T(J$C$D )I1L2G-H&F)I*K )J ,O 6a;h 8f 5a 0W *M(JT)K /T)L )J -Q 1X 8d?p>n2>B %G$I$H#E !F$A#B !? $:": $6 +- *;@DM  !"# (" &!$ij&"" #,*+%&'%!))'+ 0.)1'**   B *,+ 8&2(!!# "( 4-2@8-#('+ !,0"7 #"C +6 &(# !   # 7 ' $ MC   !    1 (/"F, $# %(0)*!3 - .#1 <6 8F-> . @Q'@!9#4&:'74 01.,1C HBL$',/8$( "Kb1C%+ '/'3v@r"uM sS=&YI`DK =G=- / &%++(,/7H7=5C.49760)),*+,-,)),39&G+P .U 1Y 1Z /T )I"?!=&E(J 0U 1Z 0V 3Z 6a 7d/V(J(K +N .T&H&H(I)K(J *M /U;h;j 9f 6c 6` /V ,Q ,P .U 2\ /T 0U 3\ 5`@sG~$-W= A"B A = = @!< "= ;$6 #6 '2 '* -DI, > ' 0 , - )" ) %+SR "V<*+()+ ''&)#*'%,)+*/$ H-.&0 8'!  !"&?7' '!+!%/ %"3': '. !  7,   ! .    ,$- ;,'$ !' # $' +"" 62 7 . 1/ ? 0 )6>H7B?G))+1(11%=>JEMK32(.G[,>%/$#u:.!7V-TB EI$OuJ**T5K"I$"m'QC6 '!) '-0+01&,/&{)f'973/*&.'*-.,)'-4"= +M .T 1W 2Z 0X)J&E"?&F(I *M 0X 0Y 0V 3\ -R )L (I +N 1X 2\ 4] )L)K)L(I(I +O 2Y 8 ; "7 96 !1 "0 +",-FD< G! -& $('"YWL2 *+)*% ("(%''&,('**" #E 0, - 6 !7(  $ $#G9'&$  $'; * 0!< -4 '* 3&=!) 1'     /(  H$ ' './"/ "058 6 3 +/$=5      ;8>4^XRQ"71+0$ P-a%.a:hY0MU.X&!g/Pm"Y .$;3386 6   Q'QZR1#/941,*)&%*./*&16#? ,Q 0W 2Z 1Z)M )J$A&G(J&G +P 0X /U -S&F'G (I ,O 3Z 2[ 5_,Q ,Q&H'G (I ,P 7c=n :h;i =n>o=m :h;i:hoBtG~H&Bb 7U3C %< '; 7 37 3 3 / 0!. "&,,+6<L*6  ) % $!)# FI.%P2 "#""& "!&# F*9!/*"  MD'% %" $ - #+"  $  % -! ;&&    ' !     6"* ( %" &# #-, 0-1 43. 0H1!&"%"%!) "$ > 9+$: 8eX\^s$pZ!d  " c7n 7:J,WQ+S=8w/Dc:4!M. / )7&<618!z9}e)jb(em2l SNF%FC7-)183,,.+%$"#%,-*,77"? ,P 1Z /S*M)L)J(J'G)M,R,P'G#@$C(H -R 1Y 1Y 7b 0X +L%C(G (I /T ;i;j 7c =n>nn>oAsG~I,W O 1Y .I(G+@ (9 (: '1 #. . , ( $ "+$1 2o+ < - $!(  !&)  $&&" "$#   / C ,*!$)  ' #!#6+   "   5% % !    '      5) &%!&# ! $" -)+0/7 0 2+/(?1%'   <3/$ :1;4>>84AENP%20U.WR'I?,J7 # #  T92[ +%'23<:a3cN'S3$<<%:?&GK+H1 .87E/@.N.%,82,,/,'"!%+-*177'F ,R+O+N*O(K(K(J%E&F)M)K%D ;!<&F -R .S 4_ 4_ -R (G$C (I)K 1X:h 8e ;jo?p=AtG~I8d, )#.!C .2%+- + ' % # " 4,7 8* 7 +  44& # M3! #    #; 5$.$     ) %  .   # !      4" !# #  ( "*'1 2 . 2 3 14.+ 7#@':18/50/ /.*5/& !# , %* - !1,-.=6@<G 2#! 2$ A,)%  + $( !       = :$"&!         & &% % $         &(  &  $*"$!*) .0 / * ) ,'+$'*+&(&, $$- - . )- 20./B<:2H )  2np!LgD\>, !\,NHCc4h09.62 9261&14#04190426/=-;(>'K/#3/.,+&$)0(+27#A &F(L ,N,N,Q(H#C; ;#D!=85:*L .S 2Y 1Z'I">$C'F *K .S 4_ 4] 6ay 7a1% L *\'JjE #X(L h>j7$6.-1901.5151-054&5#6(6$7'Q*]0 '1+)+' &*)+06#A (H +M(J)M (I%F!<7 ;">54!='I*L .R"@:$B%B *L /R 4^ 5_ 6a 9e@qG~IH>p1$HN99/ ' & %! <-,"!  $ $ %%(   " !" $ #_/ 3  7 5 #()*))'#!+ 0$)         &                    $ (&!"'( '& ++( * / 0 *$*'$" " %( #' #(#(*+&+ 6'=6N86& 6.#P   % +*=7G)D(4, 0+(/-3--)410+2%3 '2":G'M + 1/ .,*+%!('-((/8#? (J'G'H+O'G"@ <7!=77$B$A%D%C(H!=7">(G +M .R 3] 6a;g?rBv?p $?#>#O: !5 / )'%$#   %   $"                L)!#!"## , 2) 2 * / %(,) & %  #   ' " $ " '# ( " $*'"+ /#;1@9rHI/L : +6%_8a@=(2(.,%(,',) ,%* /* 2 D(= +&) " ,.*%"#&),&(18%C%F$C(H)J#B"@9 ?:8#?"@"?#A!@15!<*K +N ,O 9f?pAt0Y, D/1&' ' ,%."0 #)   6'! !  &2#."   " . ,  "3 F'R+V,V,X,W,U+N(E%>"< ; ;!92 *"        %     #)  $$  ) * ),+ $"+$ %      $"  ! ## !# &'".%C0a D9 (7.?6^C"$+  $*E)D112+4*>%:.@7:01*'=#> & (.  .+*'$!%**&*4!<!@$@!<(J$B"?<6<: >!>98:0 :!< +M .U 3]As -S $  =., !* +*,"2&;*  * 0 &! %)#(*& !   + A$U+a-f/f/h0g0f/c/]-X+W+W+T*M'B#94 . &               >+$( !"' $% " ! -!" %"         "# # ! $$ $ # + ? 1- 7 .*%- * !/&C:4 6 -(+**#>4-$+' & 9 $=$$ > *  *)$(+')/!>:97%C&G!?:39 < =!;6180!;'H 0X 1Y 8eAt  . !$ /$$# % # $ .$0!''#$ "#&))1$'%&))#  ) ;!P)_-h/j0k1l 1m1n 2m2k1i0j2k1i1c/],V*S(J%? 72 + !                    & "%#%,# # & $ $%           #"&* *( !/ 3&*"#&%*/4 .. *   *$!&))))' # % ( + ". $. %* #' "' ! *$! !*.+,56:56#A ;873:: <5375$B -S -S 2Y :i 9    + "* % " " # $,  (  "%-(=4SLB:C6$A*M ,P -Q 2[0Y #%   ! &+!  ' '!+1$1+50MHjeG?3(0&-$)!$#5,>7/%      - E"Z*e-j0l 1m 2n!2o!3o"3p"4q#5q"4r#4s#5s#6s#5r#5o"4l!2i 1g0_-L%5"      "!       !%%$!   " #$!+6)$%$*  0 %" 3# "(+!/"1#2%4'5)6)6+5-7/8 3;"6=$;>&>@(A?+C>*B>'?=&;'& ##"%*--0.408&E<510386 =!?*N ,O -Q /U 3]"!#/ !    15  ( +"#7,H@5/83b_~}D>%(-(0.84IC=6.&(      % 9Q'a-i/k 1k!1l 1m!2n"3o!3p"4p#4q#5r#5r$5s$6t$6s$6 t$6s$5r$5q$4m"3b-N%;0, + #             "% & & %  ""&+ ! $  "' %*!. 0!2"3"5%5&6'7*9!-9#0;$3=(8?->A2EC8NF@VGB[GAWF:OC2GA.?A)9A'6))&%),/..4 9%E$B;57758!?"@+O .T 0W 2Y$D8!/ $ !   !#%4 "0,"+' #:2@9( -&QNonFA&-(2176IHrrPL     ( 8K$[*g.j0k!1l 2m!3n"3o#4p$5q$5r$5s%7t%6s%6s%7t&7t%6 r$6n"3d.Z+S'P%K#@,  b        " !  " $ # ! " *!' '(!"  "'+.!0 24!4"5$7'8)9 +9#-;&0<)6?.<@4ED=QHKbO\ySfP]yKLcG>RE5GC.>B)8+$ "-(&$).315"@(L+O'F!?I75:"@"B)J 0W 5^ 3\2,C"< 3- , ,+% ,/%, 1$ (.$/'*",&2,?:.( ! <8NLA;& -*<=II`a}VV*' "   ! / ?O%Z*b-i0j 1l 2l!2l!3l"2n!2n"4o#4o$4p$5q$5q%6r%6r%7s&6s&7t&7u&7r#6o#5m"3k"2j"1f /\*I!/             !" #  ' !" '+.1 2 4!5"5#7&: '9!*:!*;%.=(3>+7@1@B8JGEZO^zc}dQ^{JG\G:KD1@C+:C(6,$ &-)"$.25 9">*K.U /U%D#@618"?&H(J 0W 6`-QC%I#F#C"@!?><7*'/$1'- ! ())## $ 3/NK\\ECDAKJEB8472)$ '# GEst__A>DA/'  % 3EV'^*d.g/j!0k!2 l!3m!2m#3n"3o$4o$5p%6p$5q$6q%6r%6s&6t&7t'8s&8t'8t&7t&8u&7 s$6t%6s%6r%5m"3a-L#7+ %                  ! "  !! &+.0234"5"6$9 &>&'>()<$+<(.>)3>,8A1AC9LHH_Si}}UhKIaG:MD2BC+;C(7C&3'($#)34<$B(G*L-R*J#@6/:%F*P,P 1W 6`."9M&L$L#K$K#M#M#K!F#8-+,#6000 728363<::8,( )% 42HIRTHF?=?>64,) +' ! 20 KJ[Z``VVBB73 3, / /=L"Y)a-f.g/h0j!2k!1k"2l!2l"3m#3n$4o%5p&6q&6r&6r%6r'7s'7t(8t'8t(8t'8t'7u'8t'8u'7u'8u&7 s%5o"3d/Y)P%J">*                !!      ! %*.0135!7!5!7$<#&D/'E/)='*=(-=(2>+7@1?C8JGEZO^zc}dQ^{JG\G9LE0@D+:C(6C&3C#1)((',3 <#B$C'G(J*M#B:48 )J 0V 0V 3Z4]>(M&M$N%O%P%S$S #P #M%J*I2F5NBfa]YFB@=@>LJRRLM@@LLUWQTVXUVDD?@KKPO@@ 64 =< 55 ))  " .8DS$\(b-e.h 0i!1j!1k!2l"2l"3m#3n$4o%5p&6p%6p&7r&7r'7r(8s(9t(8s(9t)9t(9t(8u(8t'8u'8u%7 t$6q#5n"3k!2h 0]*H!. $         !!!  > $ # # '+.003448 !9!"9#=%&D.'A+);#+;$-='1?,6?/=B6ED>RJNeP_zUiQ_zKMdH@SE5GD.>C+9C(6C&3C#0C". ..++)4%C!@!>$C)M%F!;7 : +O ,Q +N 1X4]M%N%)P&R%V#%U"#S $Y,"iG!s]gUna}nfE=>;NMiinocdLMPRXZSTkn{~UWLMnqpsnqTV76 !'! 4+=)Q3T(!Y %b *e -f-g0 h 0i!0j!1k"1k"2l#2l"3m#4m$4m%5o&6p'7q'7r(8r(9s)8t)9t*:t*9t)8u)9t'8t(8u(8u'8 u&7v&7u%6u$6t$6s#5m"3`,K"6"          !!  G !   $ -6"5!,./02246!8!:" :#": #>'%>&';"):#*?*-C.0@.4@-:A2AC8HF?QHF[JI_IG[G@RF7ID2BC-*6A/;F8?G;DG'I (H%F+L -Q -S .Q 3\ 1X/(N%M$P$U %_2$iC#f;%lF$zf og^UfR{lyheKn]}wuqji\\NLEDNLppz|YUZU}oiNY4[/"c1%g.)g%+d+f -e/g0f/h /h 0i 1i"1j"2k#3k$3l#4m%4m&4n&6o&7o'7p(8p(7q)8q*8s+:s,;u,;s,;t,;u,;t+:u+:u*:u):u)8u):u(9u&8v(7v'8v&7v%7v&7w&7u%6r#4l"1`,L#8- ( %            ! "!!"$$&%%&(*+,4#3"/8%|2/15 5!236":(8"5!:"!P>#bS%TB&P>(M:)G2*@),<'/?*3J85RC7L<:E6?D5AC1@C0>C-$iK!fD"hE"dOUNXPmW w]"s] p]}qzy{y|^\IHKK\[cc_[YNi[ !"d#vL%h4'd+)d&*c!+e!,d-e-e/f/g /h 0h!1h 1i"2j"3k#3l#3k$4m&4m&5n&6o'7o(7p)8q)8q+9r,:q,;s-;s.(+C.-K8/Q?0UE3O=5G48B.:A-9B,8A*8B)6B&4A$1B#0C#.C!,FD+D)D)3",-,,-/55#B'G'G /W 4^ 7b;h :f 5` +O +K/L#-;=0(f;%iC#bB!_< f>#aETEXMnYpV"vb !nogg!h_hcnmged\xn"|#s$|X%wR$pD%h4(j2)m4+q8*i*+g%,h%,f -d.e/f/g /h 0g 1i"1j"2 k#3k#4k%4m&5n&5n'6o(8o)8p*9p*:q,;q.;s/=s.=t0>t0="u0>u/>u.=u-=u.,D4`W pj#UC$?($A,$@+&A+)UD+gZ*ZJ,L8/J62E/3B*4A)4B)3B'3C(2C&0B$.B"-B",C!+C +C*C)C(C(E' 2/--34"B *M-Q 0U 3[ 7c;i;h@ 9f 1U +H0E8>1:2A5&V0 X,#i@$oM#kUbSXFg\vsjl\[XV"!t!s! ~}m! yd!tN%xM'uG(i6'rD'xG)|M*|L*o3+g%,e"-e -d-e.f/g 0h!0g!1i!1j"2j$3j#3k%4l%4n&5m&6m'7n)8o)9p+:p,:q-;q.t2@ u3@u2@u1?u0?u/>u/=u.       !##$;$&'(()*,36#//>-eYiaNBI;E6=.6*6)>3FAHCH?D9<,=.OC_U N?!>-?-!H5%R@&gZ)~x)eW*H4.F//D,0B'1C*1C)1B'/C'.D'.B$-B#,C!*D *B)B)C)D(C'E'5!,9-3M"=)N 1Z 2Z 3] 9g=l;h;ir2?s3@s5Bt5At6Bu5B u4Au3@u2?u1?u/>u.=u,C6F9>6<6HALEC@DBMDC79,>0F8J=H<@3?0RD"pg&|'(mb)WD+]K,U@,H..F+.B&-C'-I.,M2,I++D%)C")C (C)C(C(C'D(D&E&5 *+&.2!=)J1\ :i o?qa;[=W$DOq3?r5@s7Bt8Du:Du:Eu9Du8Cu6Bu4Au3@u1?u/>u.X"+o+6~0>    "!""$*,)'&''*,**,7%H<C;;0ODpkplOFM@E9;4><PNVVA@?<D6<.;3?7C6?6B:A2=+ M<"pg%~'x(j])aQ*jZ*[G*F-,C(,@#+D'+P5*S8*I*)A )B(C(B(C(C'D'C&D'D%E&F%)18 <%D -R ,|%Yh-PY'kk}zztmypvppm|| !"z#%&o&\'^(l(|'''_*u@+v@+i*,g$-f"-'d .e.f 0g 0g!0h!1g"1i#2j#3j%3l&5k&4l'5n(7n*8n+9n-:o/:B<A9?;>9=5=:=;<-;#"E0#WD%cT']M'UA'WC(WB(L3)G+*L1)I,*J.)L0)H()B!(@(C &F"'E!&D&D'B&C&C%D%E%?,&,59#B)K 7dCwAt@rBv@q>lAhFgImKq#Qo2UXFW/MSU`$\n6cn(QWKT#Yb&utsuusrn{t{upmqr "#$~%m%a'\'wH(sA(n(%&'l)d)])n5+f#-d -d-e -e!0g!0g!1h!1g"1h#3j%3k%4l'6l(7m)7n+9$n-:o0Gu;Ev7Cu5Au2@u0>v/=v-;v,;u+:v*:u)9v)9v(8w(9v&8w'8w&8x'8w&8x%7x&8y&8x%7y%7y&7y%7z%7y%7z%7x%6w#5r#3e-O#:+ !      " ,3@ X",o,7~1?4B6E8F   C $)'&, :.8,2#5'1"+-5%B5C7C7J?K>E<<6>6QGLCGAIEB<><IHqrxxZVNKIICC@A===<=>>>>4?-I8H2"D,%H/%L5&O7(N5(M4(L1'S:'Q6(K.(F((A (C#'L.&R3'M,&F"&B&B&D%E%F&D%^F$&./8$B(K 3\ ?sCw@qAuBu?o6Z+1I+>U1HZ6KW?RNQ_;QY"KPV_/`i,TYPScbrppkqlwouingkhrr $%z%h&|T&zP(~U'q<)i.)yJ)v'{(i(\)}O*tA)h/*d$,f&-f%.e .e!/f 0g!1h!1h"1i#2j%2i%3k%4k'5k)6m*8m+9n,:n.Gv:Eu6Bv4Au1?v0>v.@@A9B7E:@+?#$P9%m]&xj&n_&m\'_I'U;'X?'iT'iT&hR'kW&_E&Q4&J'&C&F"%N*&O,%I!%F%F%D$E%E$)03 < )J *M 0X =oDxAs@sCw0;hA'S#$\1#e>$jE$gH!YJQJk]{p jf\Zb`XVVSlgyrl]cZnm!#%%&&l&l'V(o9)r>)zJ)|O)yI)s>*r<*j0+h1(f1(l5+n3,g&-d.d /g"/h$0h$1g$1i%2(j%4k&4k(5k)7m*8m+9m-:n/;o2=p6Aq:DrAItGLuQTw\\ydbzjfydcy]]yRUwIOvBJv=Fv9Du5Av2@v0?v/=v-J@=04%=2?69/9,>/E9UNYSRK@2QJOPEF=>>>GELIGBC>JFVQ\Wf_qm UNA;D@H@F;SHVJI5!D-#ZG$~r&&pa%eO&Y@&P5&]E&yh&wf&ub&s`&\B&J*&C&E &U5%dH%]?%L'%E$E%D%E$F$%+/8(H )L 0W =lDxBv?qBvDxCv/,HL &R("X4 Y8W9W=cN|h"}nkg`ahg]U[Srmojd\[Vif"$$$%%%&n'yL([(\({M)|P(d(n(Y(^'wJ(p8+)k.-e".d"-k,.p2-k*0i&0h&0h%2i$2j%5j&4k'6k)7l*8m,9n-;n0=o3?p8AqTL\VpnyzqmWNnm`bGI>>AADD@@AAIIIINNc_meg`RHM?UIUJO?`U nf!bS"R>#k]#$%jX%bL&_H&]E&~o&%&hP%bH%`E&Q3%R2%bE&aF$\=$X8$Q,$G$D%C$D$ $(+!<'F *L 2Y =nDxCwAsAtDxDw@p;'jRqakbjeonxxncwjwq`]RPNM_\uft`!z #$%z&u'c(f('n'vG(yM(u&'c(X(wF*l0,d$,)b#+i.,zH,}L,p2/h&0g%0h#2i&2i&3j&5j'6k)7l+8m,9m-:m0=n4?p9Cr>FrFLtRUxeb~~{ecxSVvHOvAIv:Ev6Bv4@v1?v/>v.;v,;v+;v*:v)9v(9v'8w(8w&8x&8x'8w&8x&8x%7y&7y$7y%7z%7{&8z&8{%8{&8{%8|&8|&7|&8|&7 {%7z&6x%6u$4p#2i!/_+X(U&U'V'V(V(W)X)X*X *Z + ^#-f'2u-:2@7E:H;I=J>K?L?M?L>L  F%0&.%-#6+XQ[ZGFMHVOMCD8OE^[VWa_fbXTPKPJWSlmz{icljqs_aFECACC=?>@EGDGHIVU^XULRI[R^WZRPEUKc[aR Q:"fV"#%p_$dO%\D%V=%}m%%%lW%J+$J*%J)$cI%z%n$X8%G!$F$D$D#   "'*#?&E +O 3[?rDxUCwBvDyF{E|$8aO$Q"#W1"aA!dE `G]Oib~! w!# mlWVWVierdmY~o #$%h'r'q('%&b'f(&%pJ%f9&k:(g2)e.)rD){K*xB,v@-q8.h,.f$/f#1h$2i%3k&5j(5l)7l+9l,8m.:n1=o4?p9Cr?GrFMtTVyif{ifyUWwIOvAIv;Fv7Bv4Av1?v/>v.@FHLNGHHFLGPL]Xe^d[`ZYOUKZMT@ H/!U>"o^#w$xh$gR$dM$sa%z%%%ua$P1$cI$s^$s$%%]?$J$#H!$C#D#E$$&'.#@'F -T 5`AuDxTDyG~HG~CwI,Q#Z/#`="]>ZA]LhXu ||~q!w"}|vrwp}ryc!|g"|#%&'c'''&%%k(p(&x$`@!Y/"_/&^,'k<(l'(|K,f*,b++b(,d%/h%1i&2i%3i&4j(5k(7l*8l+9m.:n1=n4?p9Cq>FrFLtQUxfb~~zecyTVvHOvAIv;Ev6Bv4@u0>v/>v..>/>0>0A2B3C5D6D9G;I=K@MCOEQGSHTGREQ  S!$-$=6C<:0H?a\rohenlnl`ZNINOEGFHPPYWTSMNTTmljjXVUSdcjljledonffKNFHVYabMMMKVTOOYYhee]aUcWaSXFT= dR"|o"}o#t#s$p]$fQ#$%%%{$s_$n$%%%$qZ$lS#cF#O)#E# #()+8$A)K 0X ;iCwDxWDyE{E{CxCvo8Aq=ErCJsMQuZ[zni~~|njy]]xOTvEMw?Hv:Ev6Bu3@u0>v/=v-;v,;u+:v*:v)9v(8v'9w(8w'8x'8w&8x&8x%8x%7y&7y%7z&8{&8{%8z&8{&8{%7|&8}'8 ~'9~(9(:)9(:*;);*<+<+<+<,=->/?0@0A1B3C5D6E8F:H=K@MCPGSKVNYPZNZLXIU  A#*3):2C;<3;1KBMEVQ^\nnihgelihi^_VX\]cdXWLMQQfg[\MMUUbcUWQPUTUSNLTUbequikUU__qqeehh{yxsh\ aR UA K4N6 qa"|#vg#q_"r`"dN#hR#yi#$$$q$lU#jQ#vb$|${g$jP$cE#I4# )+),1%C'E-P 6c?nCwDxQCwCxCvCsCq&7[N$P$!R4P@LCXMk]cY[Soc}p!}w |m!p$#}q!yi!|!"$$%&'z&v'o'}[&wX$b&{U&cF UCZ: j8(o'$%#nW!iK#vQ(l8,e'.g$1i$2h%3i%3j(5k(7k)7l,8l.:m/o6Ap;DrAHrFLtPSv[[xdbzifxdby]\xRTwIOwBJv=Fv9Du5Av2@v0>v/=v-0@0A2A4B6E 9G;I>LANFRMXS][d]f[dT_OZ  K #,"90A9C;;3A;PLQJMHSRdckia]}}y|bcefjkcdZY\]gi\]JKRTnpYYNNMLIHJH\Ynlba]]]\po |r!qd!gW!eR!ug!"##z###$}m#p\#o#z$ub#_C"X<"W:"V6#Z;#X8"R/"+$% 03-,09&D+M 3\ $\?Y1"d.({O)z%w#r\!ZI\DnC(n5.g'/h&0h$2"h&3j'5k(6l*7l+8m.:m.;n1=o5?p8Bq=ErBIsGLuNRvRTvTWvRUwOTvIOvCKv>Gu:Dv6Bv4Au1?u/>v.=v-.?/?0@1A2B4C6E7E9HFEDEMM]XSNb`}~prcebehj\]RTQTdgilX[TWrukk_`\[OMOM^^ddQQOLXQb[ws |p x !"##$$$$$%$$$$$q\#mV#]A"Q/"]@"eI#<2&6166(6 #5368 9$C,P 2Z :h?qDxCv^;i;i;h:h;f?lEo#<_I#(L&K/P2Z7aNhbigSJZNl]qZm" "j#r"y#`%|W&f%g%zY%z]#l"m$\'|U'wU%mJ$`4$b.'o>)i@&W8L8H:P8`5&a-*a',f'/g$2h%2i%3j&4k(5k(7l+8m,9m-:n0Fr@IsCKsFLtHNtGMuELuAIv>Gv;Ev7Cu5Au2?u0>v/.?/@0A2B4C5E7F:H9MLGFFCPKWS[W_\UUOPTU^`XZOPKNXZjlikoqjkSU^`mm__]^giXWUR^YXR[Ti_|szspgk]xl v!~r!"#%$##$$%%$$$y#~m#aF">-==*=L7;P<7O8*A82:*< %A%A&F)K .S 2X :e@sDxUCw!5]*-L7bY(=KM.%S, S2XAYO`]ddYWYOmb}}g!w[! }mT jO ~d"i#n$q%f%m$""%m'r%#g%g8&j;'xK)d0(V4 N=OAZAd@$_3&_+*g+.j)0i&2i&3j'3k'4k(6l*7l+8l-:m.;o1p6@p8Bq;Dr>Gs?GtAIt?Hu?Hu.>/@0?1A2B4C6E7F9GM5U 2X 0V 2V 5Z7`o?o>kY BP&EN=4/N5LAMEUJ^YZYi`}q!w!{i t]qefY_DkL!k""!#%&%##q#b$u&~]&pH%e'p(X(tS%nR"pS#qO&pF'g5*i4,o7-m.0k)1j(2j'3j'4j'6l(7l)8m+9m.:n/u.=u-.=/?0@1A1B4C6E7F9HdFbGbAe?iCqDwDxO>n5#:I"I#C(2/MDxDu>e@`A`BY)GI,FA%@B.A6;> B:M;`S`ZeRu^"wigYeUjbYTcRz_#w#""w$i&o&$ uncTr\ e$lN"lV"&p&}W'{Q(wJ*o>+k5,l7+wJ*|N,o4/h'1h&2j%3j&3k'5k(7l*8m+8m,9n.:o/;p1p3?q4@r5@r6Ar5As5At5@u3?u2?u1>v/>u-<u,;u+;v+:u*:u(9v)9v'8v&8w'7w'8w&7x&7x%7y&7y$6y%7y%6z%7z&8z%7{%8{&8{%7|&8}&8|&8}&8}'8~(:~(9(:(9*;);+<+<,=->.>/?0@0@1A3C5C7F8G<.F94G2:G+*k<(rJ(sM'qD)tB,r:/l-0i%1i%3j%3l'5k'6l(7l)8m*8n+9n-:o.;o0q2?r3?s3>r1?t2?t1>u/>u.=v-=u-/?0@1A3C5C6E7F:I=KANFRLXS]Zc]fZdT^NY   &4+C;IAMHNJRQabcdZXMKfgdgEHCFY[WXVX\_ST@B=?^`zzqr~y{{|~ yzq k\XEWA_K{m!""~q!"####|"w"$%$$$7dM|C5wFAf\6]]1W[!I`+IVGQABUH:RN5OT+FX!>`:d9b"3X-*F:-G"H"H#I"J"K"P!"Q#"K$)8JU0V](N[&JW'EI%>A$>?)C@4N=D??DBKI`WfOcOyl~!vY"tR#q#"y$rhejbm"l#~ !iI#e4'h3*l:)tL'm%x%wL)h*.j*/i&2h#1j&2i&2k&5l'5k(6l)6m*8m*9n,9o-9n-:p.;q./?0@1A3B4C6E6F9H=GHWXSSFFGHbbnn^_]_STJMCEDFDF>@;=SUjk\^qt~{~ m^T?I1U>td #$#"##""~"p"#$$$%,iK>-=>c`+L`*CX55A^I%x#m#X6!I!H!F!E!F!E!F"G"G"H"H#J"M"N"S$"V)"S("Q.(3DU#Kc(KX'FQ'HP*GK.GC.G@*DB%@B$AD>W<^n-Vd$DN@JEN HR$KV(XQ#dKeTmanmP gC"wY"|$# }|ztw#{"!{g cMa>"kA&a&t&&&V+l..m.0i&1h#1i%1j'3j&4j&5l'5l(6l)7m)7n+8o+9n,9o,9p.;q.;q-;r.;s-;t-;t,;t,:u+:v*;u*9u)9u*9u(9 u'8v(8v'8v&8v%7w&8w%7w&7w%7x&7x%7w%7x$6x$7x%7y%7z%7z%8z&8z%7{%7{&7{%7|&8}'8~(:(:):):);*;+;+<,=.>.?/?0@1@2B3C4D6E8G:H;=JLOPOQlm~}~z!"!~s iY_LR<N7T>jX#%$"$$###~n"#$%%$+/*.fT$]?!cF!t\"r##~#]<"J!!H!E!E!G!G!F!G!F"H"I"N"CM"S%"X/!c>!`@'^a8Qd9DX8D\=K?LANBOAN    "%+ 90KBJEFCPKc^gf\\POFFMNee_`RTLNJLPRHIGIMPPRFGKLhh !!#$#xk`McQ\HS<XAbOu!#$""###$#|k"p!#$#$$%$#~k"u_"qZ"#$%$rW"lQ!dD"O' F!E!F!F"G!F!G"H"K!Q""N!P""W. bDr[rW!ue]XGI/?0@1@2A3B4C6E6F9G:H;IK?L>L=K   O!"%)3*?7@9>6H?`[VVDE?@BCKLRSGHSUdecc^\`]XXOQQRGINOdcomwt }{q!#%%$}!{oxk dR_JeRn^u "$###r!"$#s"xf!{j!p[ mV!t_!x"#w"{g"mU!`C!]>!oV"y#w#ya"jL!bB![7!M$ F!F!E"F!@F"G!G!K!W,!W-"U*"iI ueyl{h zrXTF@B9C>FEHN#CHELDR)@S2FV+Xi,Se7.>/?0@0@2B3C4C5E6E8F:G;ISSKL>@JKopbdTS\YPMFGCFEHQTa`[Vb[rj|swl`Ppd#$%#!| |qdS`Mrbz !!#$$###$$z"{"zj!cJ t`!x"|h"kR!nX!lS!X8 P,Q/ R/O* K%K# K!!H!G!F!E!F"CF!G!L"[5!` /@0@0@1A2B3C4C5D7E8F9G:H9G:H   !"L#&+4*?7A;;6>7GE=?;=XZ][FETTdfPQNOURQJQPOOST_`qrpljaofwncTYIui!"" vijZm]fT\Iyj "#~!!#$$#$$#"#"~n!#$#|i"##r[ aD _B V4 I#L( T/ R- T0 T.!K"!I!H!F!F!CG"J!P#"W."eD gI ^@bHiTj[_KaN\PJCHBZUqodbRQKLDBD?DC=J,=Q4+U+`*j+{*i+}I.u;0q2/k)0k%2k&2k$2k$3l$4l%5m&5n&6p(7q'7p'7q'7r'7s&7s'7s&7u'7u&7t&7u&7u%7u%6v%6v$6v%6w$6w%6w$5w$6x%7x%6x$6y%6y$7y$6y$7z%6z%7{$7{%7|&8}&8|&8|%8}&8}'8~'9~(9(:):*;):*;*<+<,=,=->.>/?/@0@2A1A3B4C5D6E6E7F8F7F8F   !!"##%)/$7.:3:2=4B<@?BC[]UTEDNMPPACDESSQLVSffux!! l_cS!m^j[nadS`NjZjYgVvh!"t {l "###$$"|!#"~n!#$#p[ s^!t"ye!pX aD L(EM(Z9!cC!cD![7!N$!I!G!E!F!G!K!Q& \4!dA!mP!fK^DbH^C_JfWbT\MXPXVtquvQUGHCDDAMFME"@S=C\EKI=d@!yd! "t#p!"%%~"q s_qX }g"""$}%c%b&_('&&r)`*`*c*r*)*U,u:/o.0k(1j%0k&1j$2j$3k$4l$4m%5n&5p&5p'6p&6q&7r&6s&6s&7t&7t%6u%7u&7u%6u%7v%6v#5v$6w%6w$6x%6x$6x$5y$6y$7y$6y$7z%7{%7|%8{$7{%7|%8|&8}&8}'8}&8~(9(:);):*;+<+=-<-=.> .?/?0?0@1A2B3B3C5C5D6E6E6D6E   !"K#$%(- 0%5-:4=8?:A=IGIHBB@@EDIJBCJJbaWTTPc_yw}y!zp~u"!]KZGuh|q~s} wi]I]Io_{ z zl |!""#$$"}m!"|!s_ "#"iP bG kR!hO!v`!q!oV!Y9 S1U1 U3 S. M$ G E!D!PF!F!I!O#!W.!Y3 Z6 U/T2[@V=T>_MdT\JYKldlkVUIIEEFDVHdPo\z`"kO `K\Nh[|c!w_!wn %c%o#%%}$#$$&p&a%l'u''&'l)^+_+y)('(q+W,zA.n+0j%1k%1j"1k#2k#3l%3l%4m%4n%5n%4n&5o%5o&5o%5p%5q&6r&5s%6t$6u%7v$7u%7u$7u$6v$6v#6v$6w$5w$6w#6x$6x%6w#6x$6y$6y$7y$6y#7z$7z%7{$7{%7|%8{%7{$7{%7|%8|&8}&8}'8~'9~(9(:):*;)<+<,=->.>.?.>/@0@0@0A2A3B4B4C4C5D4D5D   !"#N$%(+/ 3'<3B;IBJBHBBB?AIJWTYVOM`]ifd_aW[Osnqhywm #"k\]Koazn| !!cQ[FdQjYr xhgSz $%%#v!"""yg s!"oY _DlT {h"jP!dI {f"pW![: R0J" E C E C!C!D!D!E G!H!?K M#V0 _= cI`PRKMGOEZK^RTGdW|vus^XWRQPMMRN\Rh`vlt\kQaQQHTIpYork$|_#n$t%m%s$""f#a%|%{&p'w('&v)~N*yE+~M+u*(')m+a,O.q1/j%/k$1j#2k"3k#2l$3m$4n$4o$4o%5p$5p%5q$5r%6r%5s$6t$6t%6t$5u$5u$6v$6v$5w$5w$6x$6w$6x$6y$6y$5y$6y$7z%7{$7{%7|%8{$7{%7|%8}&8}%8}&8}'8~&8~(9(:):);*;);+<,<->->.>.?/?0@1A2A3B2B3B3C4B4C   !"K#$%&().3#;-D7H=F<C>ABFIacje]Ue_jdTMQL_W\Q\Pqi~vm| xmz"!uh`NcSxl} !"hXQ9N5K3\GU=L2iV"##!x!|!v!|k!lV fM]A_DmV oY iP X9T3[=O,G DBACE C C!FE F H L!K P' U3hOw! uo]]LMNMbZrm[UWLmdtp`YYMc]ecfbf`khukpXrX nYZNTJqZ x"}n}j i"s_|g!k$r%~#!"z$$%%n'`(t((q)T*w@+v?+[+)(}*N,zA.t8.n+0k&/k%0i"0j#2j"2k"2l#3l#2m$3m$4n$4o$4p$4p$5q$5r%5s$5 t#5t$6u#6u$6v#6u#5u#6u#5v#6v$5v#4v$6w$6x$6x$5x#6x$6y$6y#6y$6y$7z%7{%7{$7{%7}&8}%8}&8}'7~'9 ~(9(:':(:):):);*;*;*<,<,=,>->.?/?0?0@1A2A2B3B3B2B !"C#%&')+.2!8(=/?5A:E?JGXXggXUMHXQ`V!PGPK\Vg^i^lbwn{!! vi}r |rm_YFO9zn#$# qajYdQVAG,N4_Im[q`mZve "u!dMS7S6R3U8r\ ~m!hN M+DCEEPC@ABC C C D E H M Q& N"!S+ X9dO{f]POGIFGSQgc\XPIWOd_hcbZpkwwzx{w~xoygv xsfiXwZ"f#vdua ~h!iYdOy]"###$%&&&'w(i)((q)W*j*~))'y)}H,zD-u9-m*/k&0l'0i"0j"1j!1k"1k"3m#2m#3o$4o#3p$4 q$4q#4q$5r#5r$5t$5t#6u$5u#5u$6u$5u#5v#5v#4v#5w$6w$5w$6x$6y$6y#6y$6y$7z%7z$7{%7{%6{%7{%6{%7}&8}%8}&8}&7~'9~(9(:'9):(:););*;+<,<,=-=->.>.?/?/?1@1A1A2A2B2A !"1#%&')+-06#9)@5E=OF\P e_ [YLKOKd\ gZ%VI]VjendgZ\LcU{ !|k^\J]KZIWD[JM7@&XD #$#~qrc!~q S<S:dPT;\jV~p z!q!cK]CfNaG]CfN oY dJ V8U5K&BCH"K%FBAB C C D D F J!L L !Q(P0U=pbaWKJHIGHOMga_[QMRQWX^^gdun}v|~qtw }g uX"oP"iL fNqZl#nU _< wT$|$%&%%&''''(('u)a)t)('')j+m+U,r1.k'/k%/j!0j!1l!2l"2l"3m#3m"3o#3o#4 p#4q$4q#4r#4r#5s$5t#5t"5u"4u#6v#5u#5v#4v#5w$5w#5x$6x#6y$6y#5x#5y$6y#6y$7z$6z%6{%7{$7{%7}&7}&8~'9(:'9(:):):);*;*:+;,<,=->-=.>/?1@1A1A2A P !"#$%&'),.14!;(E6RE`T!i\(j`+`Z'\Y&d_%vp'vl(\M$`S!la!aQ\K\JdT~u ~wynTAK6`O^NO;E.M6VB^Ly "|oYCjYl[V?XBP6C&F)_Ip^tb r_ dMhRp\bIU7P0U6]AfM kS!X9C@I#N*J$DCBBC D VDEHL&R/T7YFmbyq_TMJKLRSPOca][NKLLNOZ[fbeWo[~q|~i |e"w"t#t!vjkVfD"uT#e%tR$mB%|U&c%[&a'{&&q'W'm(''''(^)Z)i*u){)u)k*c*\+~J,o..j%.j"0i 1j 1j!0j!1l"2l!2l"2m!2m"2o#3o"3o#3p#3p"3q#5r#5q"4r#4s#5s#4t#4u#5u#4v#5v"5v#5w#5w#6w"5w#5w#4x$6x#6x$6y$6y$5x#5x#6y#6y$6z$6z%7{$6{%7z$7{%7{$6{$7{%7{%6{$7}%8}&8}%7}&7}&8~'8~'9'9 ':(:):);):);*;*;+<+<,=,<,=->.=.>/>0@1@0@1@  F"#$%&'*+.14";&A.P?!^P%cU+oc9ViBrm-h\'XE&XC#WC!O;WEaQdThYyo!#"ujk\ wlYGWDXF@'E-rd"rcYC[EXBU>uf{m ]GQ8T;X@W>U9M/N1W;R4G&E!D!E#M,V7Q.CAE3BAABCCC BCEGM)U8[C_Kh\k`XKQIPPWYZZgeXVA@@@EGORWTUCiRo a#yW#w#|# ~zjpO#e$|$o&n&m%yS%k9&uE(^'q'"s'''''&'f)f)}(i*O+|G+w@+v:,u:,o0.j&.i#.i#/i 0i 1j!1j 1k!1k!2k!1m!1m"2o#2o"3n!3o!2o"3q#3q"3r"3s#4t#4u"5u"4v"5u"5v#4v#5w#5w#4w#5x#6x$6x#5y#6y$6y#6z$6{%7z$6{%7{$7{$6{%7{%6|%7}&8}&7~'9'9(9(:(:);*;*;+;+<,=,=->.>.>.?/?0@1@  K"#$%&'*+.15!9&>)G3"Q>'^M.xmEǘÒmrk5]P(VC&O7#J2 J4R@ZHXFS@UCna"#vYGn`m__NbRYGT>XDm^tfeSaNn^ufWAgT{m^HR8J-D&@ @?A E&E$@>>=@F!H#FBA@?@ABC:CCDHK&V8_H`MeRfRgXeZ`[ffjipo]^IHHHIJUXcaeVue~!!"##$#t!h!!}"oO"pU!r!v%s&o%uO$nB%W&f'n''&&&&&&&(x({(U*s;+w?+u:,x@-q3-l(.k$.i#.i /i 0j 0k 0k!1l!1m!2n!2o!3o!2q"2q"3r"3s#4s"4t"4t"3u"4v"4u"4v#5v!5v"5w#5w"5w#5x#6x#5w"5x"5x#5y#6y#5z$6z$7z$6z$7{$7{$6|%7}&8}&7}&8~'9~&9'8'9(:):):*;*;+;+<,=,=-=-=.>.>/>/?  :88>?>== =<=@AAB@@??@ACCGD CEGI"Q3VBVFXI`Lj^e_b]icked__^JJDEIJcfomjdvlx""#$#$#v"}_#}$l$iB#rW ~!%n&w%d%zT%|S&yM'V'e(]'x'&''''m(l(^)t;+o1+s8+yB+|G+{F+s6,k(.i#.h".i 0i /i!0j 0k 0l!1l 1l!2m 2o!2p!3q!3r"3r!3q!2s"4s"3t"3 t!5u"4v"5u"5u"4v"5v"4v"5w#5w"5w#5x#5w#5x#5x"5y#6y#5z$6{$7{$6|%7|$7|%6}%8}%7}&8~'9}&8~'9'9(9):):*;*;*<+<+<+;,<,=,=-=->.>/?.?/?  ,""$%&')+.03 8$<'B-!K5%ZE+l[5|mBvMzjDm[4iY*cT%P;"C+B(F/K6O;S@UBXFaQ[JK7UBqcn`SAnawkXEP:D+P:tfT>>#8::;<8779;;:;;)<=>>???@?@@ABCBCCDDFG H.E9F>SEaRZQQI^Tkae_li\YTQ]\kimhqi~vv!y"z"m%$r$w$n$|Z$zT%}Y&k%#"$g&}%%w%|R'tD(\'V(q>(a(''s(p(e(U)r(x(S*zE*w@+s8+s7,o0-j(-g!-h -h/i/h0j /j 0l!1l 1m!1m 1n!2o!2p!1p!2q!2q 2r"3s"3t!3u"5u"4v"5v"4v"5w#5w"5x#5y#6y#5z$6y#6z$6{$6|%6|%7|%6|%7}%8}&8~'9}&8}%8~&9~'9(9(9(:):):);*;*<+<,<,=-=/>.>.>  ;""#%&')*-/4 6":&?*F0"O9'YD+`M1bL4^G1YB,XC(VC$L5!A)>&A(@)C.P<WEM8C,K7bQh[eVWDD,P<H1>$D,J3P:_L`NO8K3K2<7;B$B#;789::Y::;<=>=>???@@A@BCCCCDFGDF"J8IEQNkeaSUKd^tnxozvnbWjb{uoam\so |`"sN#mC%xS%c%h%a%wP%oA%b%%%$$t$%%&b&~T'''^(d(n(Y(W(v''p(v(t)O*|I*w@*n0,g$,g",f -f-g.g.h0h/i 0i0i 0k 0l 1m 1m!1m 1n 2o!1o!2q 2q!2q!3s!3s!2s!3t!3u"4u!4v"4v!4v"4v!5w#5w"5w#5w"5w#5w#4x#4x#5y#5y#6y#5z$6y#6z$5{$6|%7}%7|%7}&8}%7}&8~'8~&9'9(9):(:):*;*;*;+<,<,<,=,=-=->.>.>  9""#%&'(*,.14!8%<'@+ F0#K3&N7(P9(O8'K5%K4#J4"F/A)=%<$8 69";$7 =&YIxmhZG37476<$D,J3I1@&C(N7aNbNF+8:C'E)?:99:;:;<<=>>?@@@BABADEL(P+I H$J=EDKMqqe\OJ[[kic\nl}{phi]zqvhjVta pS"c:"a6#lB$uO%xS%zT%sI%j<%j:%a%%%%n&`&_&%&n&rA'a'n'Z'_']'_'d(l(v'r(l(~N*o3+o4+n0+h&+e"+f",h",f ,g.i/h/h0i/i /j 0l0n 1n!1n 1o!2p!2q 2q!2s!3s!2s!3u!3u!4v!3v!4v"4w#5w#4w"5w"4w"5x#5x"5x#5x"5x#5y#5y"6y#6{$6z#6{$6|%7|$6}%7|%7|%6}%8}&8~&8~&9'9(:):):*;):*;);*<+<+<,<+<,=-=.> 9  !"#$%&')+-036"9%<'?*C-!F/#G0#F/#F."E,!A*?(>&;"95557!@+I6RA_PWEG1I4D.44:!C,F.?%65; H/O8C(79><9899::;;<=>?K@A@@AAAACFK(L+G'I-M7J?MMkmhaNCXQe]YQpm}rgRm]n_m]|m!y_#sQ#|\$k$^$sK%xS%xQ&l>&k;%uL%}X%yR%yP%zR%pB&k9&]&&]&l8(vG({N(vF(m'''t(V({J)|L(wD)l0+i)+l-+h&+d+c+e+f ,f,f-g-h.h/i/i0l0l1m 0l1m 1n 1o 1p!1q 2r 3r!2r!3s!3t!4u!3u!4v!3v!4w"5w!4x"4x#5x"5x#5x#4y#5y#6y"5y#6z$6{$6z#6{$6{#6|%7|$7|%6|%7}%7}%8}&8~&8'9&9(9(:):):):);*;*:+;,<,=-=  "#6$&')*+.13 6"8$;&='?(@)@(?(>&=$;$:"864348!B.J7D.<%C-R@cSXF:!39!E-B)95558@#@#:88767779::;;;<=>>/??@@@@ABBBDFG#J-M/M,L5NJb__SQ?aRi\]Tge}{ymq^{l|n u_!q"v$v$%%u%xR$o%%|W%l?%nA&k<&j:&Z&q&g&~W&|S&tF&sB'Z'd'xJ(d'x'h(]'zI(xG)yG)n2*g&*h'+l/+k-*e"+d+d+e,f.f-g.h/i/k0l0k 0m 0n1n 1 n2o!2p 2p2p 2p1r!3s 3s!2s!3s!4u!3v 4v!4w"5w"4w!4x"5x"4x#5x"5x#5y#5x#5y#4y"6y#6z#6{$6z#6{#5{$6|$7|%7}%8~&8&9'9(9):);):);):*;);+;+;+<+<,<+<,=  .""#$%&()*,.135!6"9$:$;$<%;$;#:"8!76532227 =&7 23;$H3J6:!27:!644458 9867567789: ;;;<<<===>?>?D@AAABBBEF O2W@]GXESGSFT>XFd\zr!i]c\smrb |k""z#pN"yX#}^$yV$r$%$qH#rJ%^%uL%m@%h8%]$&^%&l=&`&l&a&uH&p@&~U&[&}S'xI(n9(yM(xI(k4(k1)q:(}N)R)o6*f&*f%*k-*j,*f$*e+c+e+e-f-g.g.h.h/j.j/j0k/l0l1m 1m0m 1n1p 1p1q 1r!2r 2r!2s 3t!3u 3u!4w!4v!4v!3w"5w!4w"4x"5x#5y#5x"5y"5y#6z#6z#5{$6|$7|%7|$6|$7}%7}&8~&8 &9'9(9'9(:(9):(:):);):*;*;+;+<,<,=   !"# $%()*+,.035 7!8!7 7664321101010037<%:"5541325456545 677899::;;<<<<=>>>?@BB>CBDEI&Q7YDW?M2L9YN`XdYn\ aGdLmT v` za!vV"rN"d;#e<"c7#b3$sL$z$m$e6$d4%oB%l>%{U%o%}X%k;&i8&o@&tF&n?&h5&o?&b&b&r?'d+'c''e+(e)(c%(d%)e')j0)p9)k/)d")d"*g%*d!*b*b*c+d,e-f-g.g.h.h/j/j/k/k0m 1m1n 1n1o1p1p 1p1q 2r!3s!3t 3u!3v 4u 3v!4v!3w!4w"4x!5x"4x"5y#5y"5x"5y"5z#6z#5z#6z"5{#6{$6|#7|$7|#7}%7|%7}%8}&8~&8'9'8'8(9(:):);*;);*;+;+<,<,=   ""#$&')+,-/13454432210/.//0023454420232334456789::;<;<=>>?@ABBBDDEF J':J*P@^Wc[ZHV8V1 ]5 fF t]rV!d=?>@ABB8BCCBCH O/W=XC^MbNXB]GjQ!eA!^9 cBiJ!lK"pN"mF"a6"iB#nF#i>#c5#i>#vQ$zV$wP%h:%e3%k:%a,%[#%Y&W&Y&`*&k7&h3&`'&`(&j5'xI'{M'g.']'_(f+(i-(f')c")b!)a*a*`*b+ b,d+d,e-f-e-f.g.h.g/h.j/ k/k/k0m0m1n1n0o 0o0p 1q 1p 1q 2r 2s 2t2u3v!3w!4v!3w!4w"4x!5x"5x!4y"5z#5z#6z#5{$6|#7|$6|$7|$6}%7|%7}%7}$8~&8~%8~&8'8(9'9(9(9):):*:*;+;   !""#% &'(**,-..///000/0//...-.///./010101333433457999::::;<=>???AABCBCC/BFO.Y<[: Q,P/T>_Po^!gF"V+ R*\: hG"oL"jC"X("U#"Y'"],#c5#{X$i$tM#^+$V%W%X%Y%Y&W&U&V&Y&_&&_%&Y&X&^ 'g-'l7'f*'^'](b#(a!(_(`)_*_*`+`*b+b,c,d,d-e-e.f.h.h.h.i/j.k/ k0l0m0m0n0o0o 0p 1p 0p1r 1q1r1s2s 2t 2u!4v!4w!4v 4w 4w!4w"4x"5x!4x"5x!5x"5y"5y!5z"5z#5z"5{#6{$5{$6|$7{$6{$5|$6}%7~&8~%8&8'9(8(9(9(:):)9):*:*;);*;);+;   !""#%&') +++,-.-.0../...-.././0110023345477999:::;<<=>>??@ABBC#BCDI O)O$IGL&T7_C ]7!O" L S'!V'![,!]/"U""R"Y&#a2#f9#oF#sM#j=#c3%e4%](%U%W%[$%^'&Z %W&W&X&X&Z&^ 'b&'_ '^'^'^)^*_*_)_+`+`*a*a+b,d+d-e-f.g.h.h.h.j/j/j/k/k/l0m0m0n0n 1o 0o1p0q 1q1r 1s 2t 2v 4w 4v 4w!4x"5x!4x"4x"5y!5y!4y"4y!5z#5z"5z#5z"5z#5{#6{$6|$6}%7~&8~&7~%8'8'9(9'9'8(9'9(:(:):(:):*;*;  !""#$%%&(**++,-.--.------/...///10001233344445679999::<==>>>??ABBBBCCCEGGGIM" R*S+ O!!M!N!M!P!R "S"R"X'"a3#b4#\*#[&#a1#pG#wQ%h9%X%V%\%%a-%]%%Y&W&W&W'X&Z&\&\'^' ]'\'])^*_*_*_*_)`*_*`*a*c+d,e-f-g.g-h-h.j/j.j/k/l/l/m/n0m0n0n1o0p1q1r2r 1s 2t 2u 2v 3v 4w 4w!4x!4w!4x!4x"5x"4x"5y"5z#5{#6{"5{$6{#6|#6|$6}$7}%7}$7}%7~&7~%7~&8'8'9(9(:):):);*;);*;  !""#$%&(()**+,-, -,-,--,-,-..../01000223445779::::;<===>>???ABBBBCCDE2FEGIK JL L!K!K!L!M!N"O"N"Q#V#"W$"S#P#U#])#e7$b1%W%T%X!%Z!%W%V&V&V&W&W&X&Y&Z&Z'['['['\(])^)^*_*^)^*`*`)`*a*c+d,d+d,e-f-f-g,g-h-i/j/j/l/l0m0n0n1n0o0p1q1r1r2s 2t 2u 2u 3v4w 3w!4x!4x!3x!4x!5x"5x!5y"5y"4z#5z"5{"5z"5{#6|$6}$7}%7~%7&8'8&8'9'8(8(:):):):):);*;   !""#$&&'())*++,,,-+,+,--.-./0/00212345567799999:<<<=>?AAACBCCCDEE EGFGIJ I!J!J"K!M"M"N"O#O#P#T#X"%\'%Y!%U%U$T$T%U%V&V&W'X'X&X&Y(Z'['[(\(\(\(^*^*^)_)`*a*c+d+d,e,f,e-f-g-g-h-i.i.j.j.l/m0m0m0n0n1o0p1p1q1s 2t 2t 1t 2u 3u3u 3w 3v3v 3w!3x!4x 4x!4x"5x!5y"5y"4z#5z"5z#5z"4{#6{#5|#6|$6}$6}%7~%7&8'8&8'9(9(9):(:):   ""#$%%''(()+**+++,*+,,,-.--//000113346778999:<==>??AABCCDEFFGG H!I J!K!M!L"N"O#P#Q#S$T#T$W%T$T$T$U% U&V&V&W&X&W&X&Y'Y'[(\(\(])](])^)_)`)`)`)`*a*c,d,e+e,f,g-h-i.i.j.k/l0l/m0n0o0o1p1q1r1r2s1t 1t 2u 2v 3 v 2w3v 3w!4w 4x 4x!4x!3x!4x!5x!4y"5y!5z#5z"4z"5{#5{#6|$6|#6}$7}%7~%7&8'9(9'9(9(9):):   !""#%&&'()***+**+,+,--/.//0001223445467999:;<==>???AABABCCDEEEFGG H I I!J!J!K"M"N"N"O"O#P#Q#Q#R%S%R$S$T$U$U&U&V&V&W&X&Y' Z([(\(\(])])](])^)^*_*`*b+c+d+d,f,f-g-g-g-i.j.k.k/l/m/n/n0o1o1o0q1q1q1s 1t 1t 2t2u 2v2v 3w 3w 2w!4x!4x 4x!4y"5z#4z"5y"5z"4z"5z"4z!5z"5{"5{#5{#6|$5|$6}#7}$7}%7~%7&8%8&8'9(9'9'9'9(9):):  !!""##$%'('())*)***)*++,--,-.//00011123434556779999::;<==>???AAAABBDDDDEEEFGI J!I!J"K"K!M"N#O"O"P#Q$R$S$S%U$U%U&U%V&W&W&X&Y'Z'\(\(](])`)`*a)`*a*c+d+d,e,d,f-f-g-i-j-j-k.l/l0m0n0o0o1p1q1q1s 1s1t2s2t2u3v2v 3w 3x!4x 4x!4x!3x!4y"5y!5y"5z"5y"5z"5 {#5{"5{#5{#6|$6|#5}#6}$6}$7}%7}$7~%7~$7~%7&8&7'9(9'9(9):TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/stories/holotzcastle/level027.hlv0000644000175000001440000011233711177007633023235 0ustar jacobusers@default233?X-'                                                                    BB`@@z CC@@@@CDgf?gf?CGDgf@gf@ C3D,@,@RC3D@@CtDgf@gf@BtDgf@gf@CGDgf?gf?CCgf?gf?CCgf@gf@ CC@@@@fCC@@ *CC,@,@C Cgf?gf?C C??CBgf?gf?CB@@ CB,@,@ CB@@@@ CC@@@@ CoC@@@@ C[C,@,@ CGC,@,@ C3C@@@@C Cgf@gf@C[Cgf@gf@fC[C@@ CC@@@@ CC,@,@CCgf@gf@CC@@RCC@@CCgf@gf@>CD@@@@CD@@@@CD@@@@CD@@@@DD@@@@EDD@@@@,DD@@@@RC`D@@@@C`D@@@@C`D@@@@C`D@@@@D`D@@@@D`D@@@@,D`D@@@@@D`D@@@@CD@@@@CD@@@@CD@@@@DD@@@@CD@@@@DD@@@@"DD@@@@1DD@@@@@DD@@@@ODD@@@@C`D@@@@C`D@@@@C`D@@@@C`D@@@@D`D@@@@D`D@@@@D`D@@@@,D`D@@@@@D`D@@@@ D`D@@@@1D`D@@@@ED`D@@@@JD3C??JD3C??JD3Cgf?gf?JD3C@@ JD3C@@@@CC??CC??CC??CCgf@gf@CC??CC??CCgf?gf?CC??CC??CC??*C`Dgf@gf@C`Dgf@gf@ C`D,@,@D`D??,D`D??D`D@@C`Dgf?gf?6D[D??"D[D??D[D??C[D??JD[D??DQD??DQD??,DQD??@DQD??,DGD??;DGD??'D=Dgf@gf@6D=Dgf@gf@  DGD,@,@ ;D3D,@,@ "D3D,@,@ DD,@,@ ,DD@@@@@DDgf@gf@DD@@DD@@ 6DD@@@@ "DD,@,@CD??CDgf?gf?CDgf?gf?CD@@C`D@@ C`D,@,@ C`D@@@@CCCCCCCCCCCCCCCCzCCCCC{CC{CCCCCCCCCCCfCClCCtCCpCCCCCCCCCCCDfC3DCGDCtDfCDBDCoDCD>C`DC`D>C`DB`DRCC>CCCCCLCCHCCzCGCCGCC@CCACCHCCBCBCBCBCBEDtDDDqDBDtD1D`D2D`D3DD)DD'D`D(DD"DDDDDDDDD`DDDDDDDDDCDCDC D;D`D:5943.A=>:>:411/:6B>>:?;1/31:6?;B>3/85,,=973-,6495A=52621-400/6263..!@<2/<81-:6733/40/,5162@<2/B><8=940//=94/=94/62<8 A=:620.,30.,<8=9<8;721<8;7=92.A=951-?;2.;7618452;71-@<.,A==942:6>:;7>?;2-=9734040>:849551<8;784=9@<2.1->:?;1-6240<8@<7362;7621-53=9>:84>:<8=9<8,,!>983B>=9;75084:6>:7421 5122 51943/5195732-:6:695=9:6@<15184=9@<?;=9;7:6?;51@<622.=9<8?;@<=93/3/2-722.=9:6:6;7501-3/>:73:6:66295<89440=9<8>:4051:6=9<8>:=8=92-62>:9562B>>:3.62>:83:6=9@<@<;7>:>::5623/40?;<8:6<8>:8461A<XP0B>C?ID>:IEIEJF>:>:@<HDOKFBHDMIHDTPD@GCB>HDQMLHB@A@?=OKDBQM:9CAA=IEMJ95JG<<HDA=43FDJFLH:: DA22!=;CBKGKH/3)GF;=%EB97 PLIEFBHD66!97EAKGDADD!KGNJD@@=IED@OKFBGBNJB?MJC?55 ><<:@=NJPLJGC?>?!BB!D@IEC?JEJFB=OK:5HDFBEA>=@>97QM@?A@BA<<PLOKA>A?B?CB 89&OKIEB>B=GC@<KFGBGCFBLGMIVR><>>!QMKF:5B><8NJRNE@FBLHGC<7BASOGELHRNJGOKLH=<OKKGTPGBEAPLGBFCTPLJBB!>:GG!D@@<>:>9HDA=FBKGKGA<GCC>RNJFHCD@KGRNOKFBGBJFJFHDRNB>@<HCPLQMRNGB:5EAEAIE94KGB>@<MIJE<895OK>:D@EAB=FBMIC?=9GBJFOKEA<7JFHDFANIGCOKC>D?B>OKD@HDLHPL84?:HDB>EAIEJEIEFBMIMID?C?@<>:QMNJKGJFIEHCHDPLnd=RNOKVRFA\XZVa]FBRMID^YXTZVPLZVUQ]YNJXTRNTPZUa]SPHGJHa]RPgcGFSQQMSP[X:9\XML[WDAGFVTNL]YLL HG7:'TRYXSONM=@(SR TOYUJHGFOMIHTPIHLJNMLLb^a]RPHGSOLK 9A2YUVRLHQM`\UP[WTOTOVQ_[RNhdLKPP"d`SOE?"TOID^Z\XWSZV]YNJIDJI UTYW_[ZW\YQP_[XUYUVR`\VRVR_[TPIJ%`^ST!OKWV!MIHDRMHD_[VQXT`\UQXTRNQLfbYUSNSOUPb^_[VRUQZVa\]X\XPLJF[Vc_fba]UPQLZVZUWSNIVRQLNJc_VQHCNJ\XPLOKTOZVWSXSJFD@SN\X^ZOJKFWSZVSOc_PKXTWRXSWR\XRNWS^Y^ZC?TOTOKGPKUQ]X^YVR^Z_[VRTPOKMIc_^Y[W\X]Y_[VRc^۔xId`]XeaXShdjeyuZV_Z![Vied`idd`lh`\plidb]d``\e`rndaPP!LN$jiVV kiIJ%ZY b__^mj<=!nk]\b_KIIJ"gdRPgebb OO"FI&^][\#ea^]PT(hgPV0QU)SV)olVRON!ieFG$QPWVfcSS"fi&XX"eba]eaa\fbgcd__Y!lhXThdVTFH"VV"`_YWqngeliXX KR1V\-ZZ"]Yfblhnj^YmiPJ gbgb]ZXXca^[b_SR]\UV!USedd`[[!WX"dbWY%KQ1\[^[QN^\ rn`\kgb\idjfkgd`zvPQ$WZ%de!ecWQ#b\RMpllg[Wdc hfSRWW"XW!cadbjfhfniVY(lhge]Yfdkh``!fbjhTX+PS(hi#hfgg"\XljYTQL c^]Xqmjee_plfbhbfbjfqm^Zlh^Yc^rnpkgc_Zhdsnnjpk[VWSb^plplsoe_!ZUkgpklh_Zb]\W\Xso`\TOd_ie[V\Wd_jegblhTOKGidjemhd_VPfbgbgcsnc_lhgcfahcoke`a]okniVQhd^Zb\ `[^Yrmvqe`kfkgb^b]]X]Ysnkfiemisnwrkf|wԔUlhnjtofbsoyt˂~ojxr!ni|xqmrnuq}ytozztprnmhyt΁}vrZX!XX!oo"_`%{zTW'`b&vsnmutAB"cc"pnSR\]"xvWUiifh%WX"HN-ooef"tqjj fj)mn"T^6]b-ae)uu ]Zac$olNQ'RS#kisqW[+kq-ff!~zoktonj{vsomiqk$wridjgXXPR$gg!hg^^!xwnmzwdd S\5hm-bf+ojto~z{pk|\V$|w|wpmnmtrsqmjWX#hgWY'ddutqmbd'ef%ol`a$Zb2fg"pm`_lm&zxqk!{vsm#{v{xtnieg$bd%kn)ik&U[0^a)JN)vvgh!eg#yvcc![^)`b&eh'll!}{y}zhj'yugk,aa"gi&}} fj,ol|| ]c0W^1kr0xwxy!mioj]W tpniȆ~y{vɀ{vq }x!zuс|ׂ~ok}xwrvq݅z{plws|{vԂ} gbe`rn~yՁ}솂{v!a\xt~yql}xpkpk狇mhlgplsoniniȁ}{u#xtza[ ]Y~so{wytpkwrwq"|{ok{vvqsnxs҆lgrn{׀|b]zu upuo!vpxtڌ}xр{ztptopkql؅zz⍈Â}ΐДasjypvg#rjywf%zpqa*pc&ys|tzyr{!{}|vtm }v lc$ohqi%⏉kfsp"xv{yEF&st"tt!bafg#~|^^op#vx#bd#LS,~~rs#vuwv {)ux'bk7ai4or($nkci,usae)gh$wvbf*y0vt$t$zd&l%zml$wh`-vn!{vjj ad$wx rrtt!|{ }|Sa>x},hm1yi$y}~t lM2~%v&~ytt~utsshi$op!ce%ij#dj/uw%tqpr#^h:xx!yxonmr/"|j'}i*s`){k%}}vll*nq&ty,su&[b0nr*JR1%|{ yz"nn!qu+ko'jp1st"z|'||!mw8ss#iq5%{-rt$ ms2en4nz;$|}pcP${oyj 鐈x xwsf!y!yw 鎉{us!~uun&{m {f'p&yd$qY&~pv!{k*kW&w$q"{i%}n!{nxj te wivh|q~rq[!v\!|wnX qms }sp {h$}m"{rxh$s sk|n"x}n"|m#|!pc~{j\ m$vikU#|m z~qyywluh sg ujy(f(o$znt$h)uj+헍*#+" !)}*(#u"~+'|2朔yq&厇!})fW/%|{"pq!||0(ro)wy&&vw"cf8'/y|&*y}-wAjq8y{,0yviq4lq,ot+mo'0{{+&y&v=~#,$~gG,{"#}*su" **), "WeC}3v|0{$#$'y"}`=0& zz gk'uw##* y}9{*wx$yz#an? {|"nx9*~4|9u7}&(''&~3/4/pt83RX4#0 }*}|"+w{+oz;x}+(-y={.|8%*( ;wx9<*u`!u%p'朎 +w!}$y.県.狁"鎁!埚|z!z$,)?w!"w-&v,m6z*-))9l22/}3}"!p%q#u p x~fc#{Z$|x!x x"p*t&yzw xrs.s(%}m#ub$w2reX{r% 'zp{lvkvnto}}~~&Z{&win_g|q^o`!,{t)}!vp'up"'%~t)~,{z5陕 rh臄~ (YL0& xtp{,!jh%wz(jr vx#bf7wv*el w}x|+v|=V^+ei"0yv^h'ai#dl!gk!fo(i x3y-yl%|m5*vmv{)ss!(qr , y}Wd?z1v|/|{{#'rf{wtP11%uuRYtw")}zsv4{*lngi`n2{uwht,){/x2v8~$'$&&}.~+}+*kn3su+FDRH6g[Gx<~t2({6?<-A85*:Fk[.ZD(r:2:{@PW[a/su/mo4;I'8-IQns8{x0ch+Zalr)~os }Wa'pu%{}7<^]0vP7})z%e,q1CA fE!kc'{y)(|x+GLNTzz5/w{(MZEXg7x}?0 7=HCYFQ;)w2{){y!zz!X[vr*ih.hm 4?ENO^Auy5ww*vtmw7y}'z~,;`8iO0Y=h.,u]&v].m)[V*W\(BM/V\)S[1Q]/21ks(x|A1z-0cm9x6fqb:#sQ,i0~S5w[3o$m2vX1r6m.'u'kj{p{sh nYhu\ jWuS#c+d+vv#p^v%x te-(zb-~a,wW+WFn"y0y'gL!}mzw|g!y w!)ub#_'_6o6k?j>^[UMrmyu|')2x0WM$dM@kT2o.~8xh ud}ceLo(BI\D&h?xO7B}r:ab0f[O?FKg5tr-st.hg0@E>Dtt7tv3sw(IUBK\;qyD<-EE98J= I5%r3{l-tt{~"kl"GLrp-rn7ns @H4A&@RJmw?gk2mo"mu3vz.~%#3CzS>dG@rW@~g3u3pR-v^5b_(CN5FM-1=2OW.QZ0BP2*2\g1s{H=:4d,x=~l-un#o'{ bHs0NUP6/hP?zj<3}7GbU2C)1n]md0{t>y@L1Yc>ep^FvgC:wl1JtaO9+MqeHLy@yWDiF6ri.9K_c_p`;-|yKP-,+:)N[Gps?W`3ej'JU_f4%xz1MY(_g*gldpMHu9U~Ta;4yDFN/#ze1qf&de$jn&WY%4:dc/rn<*|ML2E38LN_iBU\7ce%[g:r{6x-%}3~P}RBt4FTC|T7c=dF/MH/KU6AM5?H01=2:G:GS;AP7)SEU5~DGW*'U$-f8?ULVb<7GCGC<9PK"jE{)zY,|b0t3e^s[}g ~f%|hS!wXxS$z$fBc?#tR0vU/zjud'dNq]u)wb)sQ5q5A>aG$|E>7*Y6^Bg6m81dGp*n6%$48cZ#bE&{L;wX;z^7Y=RHW@ nS+bR$wX/b4f^+iN8G*$M(c7={]6y=~j3!z.n.j"Y:!i7&UbE(9`G@rYKygkE=J=#5:emK_iEZeKUbQ,>97*#VIk]-^b5OT<*7'#0,\`=V[:W`39IJ5IE_kNxNkzEu~`mwb2/4A0 `P/dCSU*SZ+EK+& YX1pm>3VV(?@2HSR]DKU=Z`-KY?kvI;9F;.=A6C;-??7JG7KJ5KD-D8RSYmdS|TR^nUcjSlNFg4AtH;zLDq;9q;CFH7XN>Z;$FDYP sb#^H"@rW99!%!?Eyc5T,\?i4{73;."]<$a>1_=0  '%`[*yR:ECO9b&,q?Au@BNGK!#WG/iKQNp(NJ6TIBKVFnuEyF-c9N85=1"P:%X:2K3.D?!_jk?}H>d ~W)W*jQ]SpSvZ&cmO!~$PHT&i+l: \:#lK2jK,kZ"nT(`K^Jt*lY'mS8k=V>&963&+$ JAXO'QL%# qE(_5}c-v)t)}8o:]J+c90|;#V>*RE!|L8PBJ4->+ [.2oIW^J.=B/F,BN'?Q/IY/JZ$CZ5W*LhSjnbkyb[pVKs@e48nC;k9G[)8c0;h*sY/Z:29R3)Z3/j::e584:K,jK=D=';7jJ7F--X)I5H?;750{ M&",)4)+U29G)*O18J)1E;*ID XTLIqT%tR*|P5Y>lPN?qY'mP"iJ!m(T=kG(V+V#X)%gE/dB1YB%gQ*M9YB!ub,gP(cJ6oW=h-C-)6'8R6(`F6cF5 DNnW _S!vd0vc*q;|d;]@-/+F/$yL?fC9d;9h+>4(D, K1*G$HhIUx`DfS1yhEzaB91 9T,CnI[uQZwRh;^G$dZ?icDVv]LgRE{]kX=f!Pb4rp`Hre/nd:[`,1yz@,>4:G3GQDPWI-: !79GHDOIDQM6GM &A$B.@H@IECF?0?@15BBAKD8C<9HI 7HIYWepVPgVkxkSgi 3] 7b(?\0=wBB6<7:F5+56 (CF6``E}~&8-;1D6N;Y9Z>^?`8^ 6aAi?]ozl{jUqR{>Fs/>h+Db,7l<>n7HL;J;`6Il=Bl+Ff!T<4Z=5mA:p?6TP@3 A /L%.~FC2 e43V>48B.DP+q'EW+1j-DM.f7=PL40rN7U'9T!2b)9h-=V&.5 %/"WBU:,:'4+$3"I+/S74GBLgn@6hC(kC/zR1F6X?!WLcL.hD&|Y,I(L@dL)R!T((a>/a=,S=%aM*@+L3eQ,R>(\E1bJ;Z/9Z3<*I+,V=6F6l Ax<8JGfO*u_3u`,~d;uU>P/0'd 9e7:Z26S.3S"6D5P!85*P(2O0N . :)@)Z&3y[GqU:mQ2|c0Z96\=.@"*jT=t=[Z0F2;Y6ErYPXE6|bO~eZ6 6$2<B]?Tg=fd4u0Y? jU'a[:bqNU]>EhF\R&T6PW#nuLrXN*ZPFsN@vYHuMP& ' >-D8EE1=:6C7.2--"3<-=B.=B"6D%C&F5G(#4? (B4FMTb]G_XVji=Wd 7a L;KL@OC5LU9OYOTDeS&SR/NRB"22$7+9$8:#A/T 3^ 6` 4\ 3] 8d=l?pz2He\LYGbPh)?`<_>g)Bc0FQA> ==:MAV DV!>dTgM95 L<%L/!n@A\%79(-4 Q41_.79A|.@X ->$R%*P#5@'6$9!0!O +S+1=*%<%&; I(F$1 >$^/?DN1+c:7B)<#E+E') #') 80'F4F;* E#19.%)&t5MV/+d;2j>1j53{5B~B=@9U=!kK*I*!H9N9)[(7K+&Z>0N7&R:)29! O8/S9(]?7N7/7"S$8& 3"E-,:4$^ >l0@:7fJ1nW1lT1pW7fF6K,$ 1W)G,;(G./!($9 '6 , 2$,#,%?D(D,oC@oQ?iG.wS8]@5aC2E.hO8o@a|qDBM"?D!CcEZY;W&4. P F0()ZzM*`a6ZP1R^6Z@Y2 UZd2w[U?F@.L>Bj4io2gdOOv;N*XW/UgQQ J^/=rDHoBHh6?:.+"C#8E-PTD[UB[f(Ha 6` 8e;j7c.!=-C,A 5.*6JTIW`MS]4diU2CI$A&E-C%:F0DM4M^7Ra;IJ?L@EPL9GH8669 <$C/W 5` 7a 4] 4^ 7do 2_X8~GDRGSI_&:I 0J.J9J9B9; 59 9>:= :81A8_JU!B_-;+ L-05(4!(f>n72Fv(:m 7K$, F$B$6 5),%3"= #G,H+; 1I ,y%?7("Q%.4 1!c>/ ,,0)1.#*,';)%#4)!4t^"FQ.9U-5M0U+3u8Ak)8;7N5*J##4(c$.E !, :G'&G0$<%!%&:* I7,E4&9'& 6!7/% 3 0 !+k)K'%Z:3aF1aF2cD2R5,B# P (2 $(- #)' 6& + $3%6&[28sLGcF2eC:]>6U(6A3cC>w\AdSe\8:P$7( ES5EG,G]DN\5L7D#9-2 2171 7ZLcT(XN,UM!X2UE e1)(H'5M/C"&  nEe!' M@G+AY4CX0FT%@C;<< +! :+>(>6!2=MTI7B:Y`BT[L !5(=-=$6)**,.13:%E#D <765!<#A#@!=#A )E(5 !94EGS\PCQ%C,P 3Z 3[ 4] 5^ 8e=l@q=o0%OD /^'m37r=Au=9?6 <@=> 6?>PE`LH 1&*(' U.>m 8'2!-020-,#31&C+F +B$I&5  :6!# 0 [: '#"$#! $)/6 !  u_UB?/9(@,T"1j-@i/6"  X#9 ++ 16+$! )4!1( ' A( " ,$`P H*+L4+O4.N/'B#"7*? 5 &-1"!$$)"  w0(69"J0`96Q50e=8Q",E%2%X62kMB[WOI+9 Q%:)AA?F*CI,IJ#J/4#$+!!,&"9'ANiU^EaA R2 Qj  ELF-E&3_6b))-9'0,Z{(MLCQ4H7H3>;QIM>^WaY"9;&;8DD1>BHQG?KE20791('+/.14;!? >;;7!='D&G(H#A!<)?3D6U 4` 4] 3Z 5_ 9g 7c 3[-S&F"@"?!7E>MM>NC9HJ+A#A!?'G(J .R 7b9a;X4K4H(A:#B&E&H+O +O -P 5` 9f>nBu:mI.P !L&G(^ /e)2`/3U3? &< 1804259> DPWF SQ^Q ]P ^L Tfajbo h #0 d2X&C&/1*,#+!*$/!. 3/#6#/&4'A %<(<": 1.&$W6E.C - &$" "+)5 ." n]G :2).&9%A)U"/f9T'> %*+ ' ' % ! "      !  8#  * Z!Q795,# %! >&* '7 (("82 )#,*.&N%/W33L+54"5$3; 'T?6mFL83)'51G!4' 8:<=93;2 49 D$; #  ""'- 0 />UmEeJfx3@!Q%5^4lC ##1X%9W'F7;8E3.,672'%-+-//4 >!>"A!?!>%H,O ,S'G!;!<=&F 0W 3\ 2Z 3Z 6a 8f 7b *N(I&G$C.H+@K.AI$9H $C&F&D)J*L 0V 9g 7c3\ *O'H&E#B!@&H'I%E(J ,O 0Wo@r)-YD J &N $H E "K $Q.M'J+=*:)806 1=FC X +22-/C: 0%P+ $*+-/ /-!((-0-- 65121+ I(GM*6 9 &J/. "!!!" $#+ dP=32 !-!)0#? (4@ *. #$" #         )-''SK$ 20) $ "# =!% 6'! !) "/ '0 !/1%C$/A(2 / 3 6R+-\1A&  5(B#9:#8-.(4).:@F SRQ%-*d(0DW5<-Y1h)2 _(_q(2O&,O!<+.@4QC]H4:#2 2)2 */>1?);50+,23-'&+,+,,29$C'F'H ,P 1Y +M%B!;!='F *O 1Y 2Y 2Z 4^ 8c 8g /T(J$C$D )I1L2G-H&F)I*K )J ,O 6a;h 8f 5a 0W *M(JT)K /T)L )J -Q 1X 8d?p>n2>B %G$I$H#E !F$A#B !? $:": $6 +- *;@DM  !"# (" &!$ij&"" #,*+%&'%!))'+ 0.)1'**   B *,+ 8&2(!!# "( 4-2@8-#('+ !,0"7 #"C +6 &(# !   # 7 ' $ MC   !    1 (/"F, $# %(0)*!3 - .#1 <6 8F-> . @Q'@!9#4&:'74 01.,1C HBL$',/8$( "Kb1C%+ '/'3v@r"uM sS=&YI`DK =G=- / &%++(,/7H7=5C.49760)),*+,-,)),39&G+P .U 1Y 1Z /T )I"?!=&E(J 0U 1Z 0V 3Z 6a 7d/V(J(K +N .T&H&H(I)K(J *M /U;h;j 9f 6c 6` /V ,Q ,P .U 2\ /T 0U 3\ 5`@sG~$-W= A"B A = = @!< "= ;$6 #6 '2 '* -DI, > ' 0 , - )" ) %+SR "V<*+()+ ''&)#*'%,)+*/$ H-.&0 8'!  !"&?7' '!+!%/ %"3': '. !  7,   ! .    ,$- ;,'$ !' # $' +"" 62 7 . 1/ ? 0 )6>H7B?G))+1(11%=>JEMK32(.G[,>%/$#u:.!7V-TB EI$OuJ**T5K"I$"m'QC6 '!) '-0+01&,/&{)f'973/*&.'*-.,)'-4"= +M .T 1W 2Z 0X)J&E"?&F(I *M 0X 0Y 0V 3\ -R )L (I +N 1X 2\ 4] )L)K)L(I(I +O 2Y 8 ; "7 96 !1 "0 +",-FD< G! -& $('"YWL2 *+)*% ("(%''&,('**" #E 0, - 6 !7(  $ $#G9'&$  $'; * 0!< -4 '* 3&=!) 1'     /(  H$ ' './"/ "058 6 3 +/$=5      ;8>4^XRQ"71+0$ P-a%.a:hY0MU.X&!g/Pm"Y .$;3386 6   Q'QZR1#/941,*)&%*./*&16#? ,Q 0W 2Z 1Z)M )J$A&G(J&G +P 0X /U -S&F'G (I ,O 3Z 2[ 5_,Q ,Q&H'G (I ,P 7c=n :h;i =n>o=m :h;i:hoBtG~H&Bb 7U3C %< '; 7 37 3 3 / 0!. "&,,+6<L*6  ) % $!)# FI.%P2 "#""& "!&# F*9!/*"  MD'% %" $ - #+"  $  % -! ;&&    ' !     6"* ( %" &# #-, 0-1 43. 0H1!&"%"%!) "$ > 9+$: 8eX\^s$pZ!d  " c7n 7:J,WQ+S=8w/Dc:4!M. / )7&<618!z9}e)jb(em2l SNF%FC7-)183,,.+%$"#%,-*,77"? ,P 1Z /S*M)L)J(J'G)M,R,P'G#@$C(H -R 1Y 1Y 7b 0X +L%C(G (I /T ;i;j 7c =n>nn>oAsG~I,W O 1Y .I(G+@ (9 (: '1 #. . , ( $ "+$1 2o+ < - $!(  !&)  $&&" "$#   / C ,*!$)  ' #!#6+   "   5% % !    '      5) &%!&# ! $" -)+0/7 0 2+/(?1%'   <3/$ :1;4>>84AENP%20U.WR'I?,J7 # #  T92[ +%'23<:a3cN'S3$<<%:?&GK+H1 .87E/@.N.%,82,,/,'"!%+-*177'F ,R+O+N*O(K(K(J%E&F)M)K%D ;!<&F -R .S 4_ 4_ -R (G$C (I)K 1X:h 8e ;jo?p=AtG~I8d, )#.!C .2%+- + ' % # " 4,7 8* 7 +  44& # M3! #    #; 5$.$     ) %  .   # !      4" !# #  ( "*'1 2 . 2 3 14.+ 7#@':18/50/ /.*5/& !# , %* - !1,-.=6@<G 2#! 2$ A,)%  + $( !       = :$"&!         & &% % $         &(  &  $*"$!*) .0 / * ) ,'+$'*+&(&, $$- - . )- 20./B<:2H )  2np!LgD\>, !\,NHCc4h09.62 9261&14#04190426/=-;(>'K/#3/.,+&$)0(+27#A &F(L ,N,N,Q(H#C; ;#D!=85:*L .S 2Y 1Z'I">$C'F *K .S 4_ 4] 6ay 7a1% L *\'JjE #X(L h>j7$6.-1901.5151-054&5#6(6$7'Q*]0 '1+)+' &*)+06#A (H +M(J)M (I%F!<7 ;">54!='I*L .R"@:$B%B *L /R 4^ 5_ 6a 9e@qG~IH>p1$HN99/ ' & %! <-,"!  $ $ %%(   " !" $ #_/ 3  7 5 #()*))'#!+ 0$)         &                    $ (&!"'( '& ++( * / 0 *$*'$" " %( #' #(#(*+&+ 6'=6N86& 6.#P   % +*=7G)D(4, 0+(/-3--)410+2%3 '2":G'M + 1/ .,*+%!('-((/8#? (J'G'H+O'G"@ <7!=77$B$A%D%C(H!=7">(G +M .R 3] 6a;g?rBv?p $?#>#O: !5 / )'%$#   %   $"                L)!#!"## , 2) 2 * / %(,) & %  #   ' " $ " '# ( " $*'"+ /#;1@9rHI/L : +6%_8a@=(2(.,%(,',) ,%* /* 2 D(= +&) " ,.*%"#&),&(18%C%F$C(H)J#B"@9 ?:8#?"@"?#A!@15!<*K +N ,O 9f?pAt0Y, D/1&' ' ,%."0 #)   6'! !  &2#."   " . ,  "3 F'R+V,V,X,W,U+N(E%>"< ; ;!92 *"        %     #)  $$  ) * ),+ $"+$ %      $"  ! ## !# &'".%C0a D9 (7.?6^C"$+  $*E)D112+4*>%:.@7:01*'=#> & (.  .+*'$!%**&*4!<!@$@!<(J$B"?<6<: >!>98:0 :!< +M .U 3]As -S $  =., !* +*,"2&;*  * 0 &! %)#(*& !   + A$U+a-f/f/h0g0f/c/]-X+W+W+T*M'B#94 . &               >+$( !"' $% " ! -!" %"         "# # ! $$ $ # + ? 1- 7 .*%- * !/&C:4 6 -(+**#>4-$+' & 9 $=$$ > *  *)$(+')/!>:97%C&G!?:39 < =!;6180!;'H 0X 1Y 8eAt  . !$ /$$# % # $ .$0!''#$ "#&))1$'%&))#  ) ;!P)_-h/j0k1l 1m1n 2m2k1i0j2k1i1c/],V*S(J%? 72 + !                    & "%#%,# # & $ $%           #"&* *( !/ 3&*"#&%*/4 .. *   *$!&))))' # % ( + ". $. %* #' "' ! *$! !*.+,56:56#A ;873:: <5375$B -S -S 2Y :i 9    + "* % " " # $,  (  "%-(=4SLB:C6$A*M ,P -Q 2[0Y #%   ! &+!  ' '!+1$1+50MHjeG?3(0&-$)!$#5,>7/%      - E"Z*e-j0l 1m 2n!2o!3o"3p"4q#5q"4r#4s#5s#6s#5r#5o"4l!2i 1g0_-L%5"      "!       !%%$!   " #$!+6)$%$*  0 %" 3# "(+!/"1#2%4'5)6)6+5-7/8 3;"6=$;>&>@(A?+C>*B>'?=&;'& ##"%*--0.408&E<510386 =!?*N ,O -Q /U 3]"!#/ !    15  ( +"#7,H@5/83b_~}D>%(-(0.84IC=6.&(      % 9Q'a-i/k 1k!1l 1m!2n"3o!3p"4p#4q#5r#5r$5s$6t$6s$6 t$6s$5r$5q$4m"3b-N%;0, + #             "% & & %  ""&+ ! $  "' %*!. 0!2"3"5%5&6'7*9!-9#0;$3=(8?->A2EC8NF@VGB[GAWF:OC2GA.?A)9A'6))&%),/..4 9%E$B;57758!?"@+O .T 0W 2Y$D8!/ $ !   !#%4 "0,"+' #:2@9( -&QNonFA&-(2176IHrrPL     ( 8K$[*g.j0k!1l 2m!3n"3o#4p$5q$5r$5s%7t%6s%6s%7t&7t%6 r$6n"3d.Z+S'P%K#@,  b        " !  " $ # ! " *!' '(!"  "'+.!0 24!4"5$7'8)9 +9#-;&0<)6?.<@4ED=QHKbO\ySfP]yKLcG>RE5GC.>B)8+$ "-(&$).315"@(L+O'F!?I75:"@"B)J 0W 5^ 3\2,C"< 3- , ,+% ,/%, 1$ (.$/'*",&2,?:.( ! <8NLA;& -*<=II`a}VV*' "   ! / ?O%Z*b-i0j 1l 2l!2l!3l"2n!2n"4o#4o$4p$5q$5q%6r%6r%7s&6s&7t&7u&7r#6o#5m"3k"2j"1f /\*I!/             !" #  ' !" '+.1 2 4!5"5#7&: '9!*:!*;%.=(3>+7@1@B8JGEZO^zc}dQ^{JG\G:KD1@C+:C(6,$ &-)"$.25 9">*K.U /U%D#@618"?&H(J 0W 6`-QC%I#F#C"@!?><7*'/$1'- ! ())## $ 3/NK\\ECDAKJEB8472)$ '# GEst__A>DA/'  % 3EV'^*d.g/j!0k!2 l!3m!2m#3n"3o$4o$5p%6p$5q$6q%6r%6s&6t&7t'8s&8t'8t&7t&8u&7 s$6t%6s%6r%5m"3a-L#7+ %                  ! "  !! &+.0234"5"6$9 &>&'>()<$+<(.>)3>,8A1AC9LHH_Si}}UhKIaG:MD2BC+;C(7C&3'($#)34<$B(G*L-R*J#@6/:%F*P,P 1W 6`."9M&L$L#K$K#M#M#K!F#8-+,#6000 728363<::8,( )% 42HIRTHF?=?>64,) +' ! 20 KJ[Z``VVBB73 3, / /=L"Y)a-f.g/h0j!2k!1k"2l!2l"3m#3n$4o%5p&6q&6r&6r%6r'7s'7t(8t'8t(8t'8t'7u'8t'8u'7u'8u&7 s%5o"3d/Y)P%J">*                !!      ! %*.0135!7!5!7$<#&D/'E/)='*=(-=(2>+7@1?C8JGEZO^zc}dQ^{JG\G9LE0@D+:C(6C&3C#1)((',3 <#B$C'G(J*M#B:48 )J 0V 0V 3Z4]>(M&M$N%O%P%S$S #P #M%J*I2F5NBfa]YFB@=@>LJRRLM@@LLUWQTVXUVDD?@KKPO@@ 64 =< 55 ))  " .8DS$\(b-e.h 0i!1j!1k!2l"2l"3m#3n$4o%5p&6p%6p&7r&7r'7r(8s(9t(8s(9t)9t(9t(8u(8t'8u'8u%7 t$6q#5n"3k!2h 0]*H!. $         !!!  > $ # # '+.003448 !9!"9#=%&D.'A+);#+;$-='1?,6?/=B6ED>RJNeP_zUiQ_zKMdH@SE5GD.>C+9C(6C&3C#0C". ..++)4%C!@!>$C)M%F!;7 : +O ,Q +N 1X4]M%N%)P&R%V#%U"#S $Y,"iG!s]gUna}nfE=>;NMiinocdLMPRXZSTkn{~UWLMnqpsnqTV76 !'! 4+=)Q3T(!Y %b *e -f-g0 h 0i!0j!1k"1k"2l#2l"3m#4m$4m%5o&6p'7q'7r(8r(9s)8t)9t*:t*9t)8u)9t'8t(8u(8u'8 u&7v&7u%6u$6t$6s#5m"3`,K"6"          !!  G !   $ -6"5!,./02246!8!:" :#": #>'%>&';"):#*?*-C.0@.4@-:A2AC8HF?QHF[JI_IG[G@RF7ID2BC-*6A/;F8?G;DG'I (H%F+L -Q -S .Q 3\ 1X/(N%M$P$U %_2$iC#f;%lF$zf og^UfR{lyheKn]}wuqji\\NLEDNLppz|YUZU}oiNY4[/"c1%g.)g%+d+f -e/g0f/h /h 0i 1i"1j"2k#3k$3l#4m%4m&4n&6o&7o'7p(8p(7q)8q*8s+:s,;u,;s,;t,;u,;t+:u+:u*:u):u)8u):u(9u&8v(7v'8v&7v%7v&7w&7u%6r#4l"1`,L#8- ( %            ! "!!"$$&%%&(*+,4#3"/8%|2/15 5!236":(8"5!:"!P>#bS%TB&P>(M:)G2*@),<'/?*3J85RC7L<:E6?D5AC1@C0>C-$iK!fD"hE"dOUNXPmW w]"s] p]}qzy{y|^\IHKK\[cc_[YNi[ !"d#vL%h4'd+)d&*c!+e!,d-e-e/f/g /h 0h!1h 1i"2j"3k#3l#3k$4m&4m&5n&6o'7o(7p)8q)8q+9r,:q,;s-;s.(+C.-K8/Q?0UE3O=5G48B.:A-9B,8A*8B)6B&4A$1B#0C#.C!,FD+D)D)3",-,,-/55#B'G'G /W 4^ 7b;h :f 5` +O +K/L#-;=0(f;%iC#bB!_< f>#aETEXMnYpV"vb !nogg!h_hcnmged\xn"|#s$|X%wR$pD%h4(j2)m4+q8*i*+g%,h%,f -d.e/f/g /h 0g 1i"1j"2 k#3k#4k%4m&5n&5n'6o(8o)8p*9p*:q,;q.;s/=s.=t0>t0="u0>u/>u.=u-=u.,D4`W pj#UC$?($A,$@+&A+)UD+gZ*ZJ,L8/J62E/3B*4A)4B)3B'3C(2C&0B$.B"-B",C!+C +C*C)C(C(E' 2/--34"B *M-Q 0U 3[ 7c;i;h@ 9f 1U +H0E8>1:2A5&V0 X,#i@$oM#kUbSXFg\vsjl\[XV"!t!s! ~}m! yd!tN%xM'uG(i6'rD'xG)|M*|L*o3+g%,e"-e -d-e.f/g 0h!0g!1i!1j"2j$3j#3k%4l%4n&5m&6m'7n)8o)9p+:p,:q-;q.t2@ u3@u2@u1?u0?u/>u/=u.       !##$;$&'(()*,36#//>-eYiaNBI;E6=.6*6)>3FAHCH?D9<,=.OC_U N?!>-?-!H5%R@&gZ)~x)eW*H4.F//D,0B'1C*1C)1B'/C'.D'.B$-B#,C!*D *B)B)C)D(C'E'5!,9-3M"=)N 1Z 2Z 3] 9g=l;h;ir2?s3@s5Bt5At6Bu5B u4Au3@u2?u1?u/>u.=u,C6F9>6<6HALEC@DBMDC79,>0F8J=H<@3?0RD"pg&|'(mb)WD+]K,U@,H..F+.B&-C'-I.,M2,I++D%)C")C (C)C(C(C'D(D&E&5 *+&.2!=)J1\ :i o?qa;[=W$DOq3?r5@s7Bt8Du:Du:Eu9Du8Cu6Bu4Au3@u1?u/>u.X"+o+6~0>    "!""$*,)'&''*,**,7%H<C;;0ODpkplOFM@E9;4><PNVVA@?<D6<.;3?7C6?6B:A2=+ M<"pg%~'x(j])aQ*jZ*[G*F-,C(,@#+D'+P5*S8*I*)A )B(C(B(C(C'D'C&D'D%E&F%)18 <%D -R ,|%Yh-PY'kk}zztmypvppm|| !"z#%&o&\'^(l(|'''_*u@+v@+i*,g$-f"-'d .e.f 0g 0g!0h!1g"1i#2j#3j%3l&5k&4l'5n(7n*8n+9n-:o/:B<A9?;>9=5=:=;<-;#"E0#WD%cT']M'UA'WC(WB(L3)G+*L1)I,*J.)L0)H()B!(@(C &F"'E!&D&D'B&C&C%D%E%?,&,59#B)K 7dCwAt@rBv@q>lAhFgImKq#Qo2UXFW/MSU`$\n6cn(QWKT#Yb&utsuusrn{t{upmqr "#$~%m%a'\'wH(sA(n(%&'l)d)])n5+f#-d -d-e -e!0g!0g!1h!1g"1h#3j%3k%4l'6l(7m)7n+9$n-:o0Gu;Ev7Cu5Au2@u0>v/=v-;v,;u+:v*:u)9v)9v(8w(9v&8w'8w&8x'8w&8x%7x&8y&8x%7y%7y&7y%7z%7y%7z%7x%6w#5r#3e-O#:+ !      " ,3@ X",o,7~1?4B6E8F   C $)'&, :.8,2#5'1"+-5%B5C7C7J?K>E<<6>6QGLCGAIEB<><IHqrxxZVNKIICC@A===<=>>>>4?-I8H2"D,%H/%L5&O7(N5(M4(L1'S:'Q6(K.(F((A (C#'L.&R3'M,&F"&B&B&D%E%F&D%^F$&./8$B(K 3\ ?sCw@qAuBu?o6Z+1I+>U1HZ6KW?RNQ_;QY"KPV_/`i,TYPScbrppkqlwouingkhrr $%z%h&|T&zP(~U'q<)i.)yJ)v'{(i(\)}O*tA)h/*d$,f&-f%.e .e!/f 0g!1h!1h"1i#2j%2i%3k%4k'5k)6m*8m+9n,:n.Gv:Eu6Bv4Au1?v0>v.@@A9B7E:@+?#$P9%m]&xj&n_&m\'_I'U;'X?'iT'iT&hR'kW&_E&Q4&J'&C&F"%N*&O,%I!%F%F%D$E%E$)03 < )J *M 0X =oDxAs@sCw0;hA'S#$\1#e>$jE$gH!YJQJk]{p jf\Zb`XVVSlgyrl]cZnm!#%%&&l&l'V(o9)r>)zJ)|O)yI)s>*r<*j0+h1(f1(l5+n3,g&-d.d /g"/h$0h$1g$1i%2(j%4k&4k(5k)7m*8m+9m-:n/;o2=p6Aq:DrAItGLuQTw\\ydbzjfydcy]]yRUwIOvBJv=Fv9Du5Av2@v0?v/=v-J@=04%=2?69/9,>/E9UNYSRK@2QJOPEF=>>>GELIGBC>JFVQ\Wf_qm UNA;D@H@F;SHVJI5!D-#ZG$~r&&pa%eO&Y@&P5&]E&yh&wf&ub&s`&\B&J*&C&E &U5%dH%]?%L'%E$E%D%E$F$%+/8(H )L 0W =lDxBv?qBvDxCv/,HL &R("X4 Y8W9W=cN|h"}nkg`ahg]U[Srmojd\[Vif"$$$%%%&n'yL([(\({M)|P(d(n(Y(^'wJ(p8+)k.-e".d"-k,.p2-k*0i&0h&0h%2i$2j%5j&4k'6k)7l*8m,9n-;n0=o3?p8AqTL\VpnyzqmWNnm`bGI>>AADD@@AAIIIINNc_meg`RHM?UIUJO?`U nf!bS"R>#k]#$%jX%bL&_H&]E&~o&%&hP%bH%`E&Q3%R2%bE&aF$\=$X8$Q,$G$D%C$D$ $(+!<'F *L 2Y =nDxCwAsAtDxDw@p;'jRqakbjeonxxncwjwq`]RPNM_\uft`!z #$%z&u'c(f('n'vG(yM(u&'c(X(wF*l0,d$,)b#+i.,zH,}L,p2/h&0g%0h#2i&2i&3j&5j'6k)7l+8m,9m-:m0=n4?p9Cr>FrFLtRUxeb~~{ecxSVvHOvAIv:Ev6Bv4@v1?v/>v.;v,;v+;v*:v)9v(9v'8w(8w&8x&8x'8w&8x&8x%7y&7y$7y%7z%7{&8z&8{%8{&8{%8|&8|&7|&8|&7 {%7z&6x%6u$4p#2i!/_+X(U&U'V'V(V(W)X)X*X *Z + ^#-f'2u-:2@7E:H;I=J>K?L?M?L>L  F%0&.%-#6+XQ[ZGFMHVOMCD8OE^[VWa_fbXTPKPJWSlmz{icljqs_aFECACC=?>@EGDGHIVU^XULRI[R^WZRPEUKc[aR Q:"fV"#%p_$dO%\D%V=%}m%%%lW%J+$J*%J)$cI%z%n$X8%G!$F$D$D#   "'*#?&E +O 3[?rDxUCwBvDyF{E|$8aO$Q"#W1"aA!dE `G]Oib~! w!# mlWVWVierdmY~o #$%h'r'q('%&b'f(&%pJ%f9&k:(g2)e.)rD){K*xB,v@-q8.h,.f$/f#1h$2i%3k&5j(5l)7l+9l,8m.:n1=o4?p9Cr?GrFMtTVyif{ifyUWwIOvAIv;Fv7Bv4Av1?v/>v.@FHLNGHHFLGPL]Xe^d[`ZYOUKZMT@ H/!U>"o^#w$xh$gR$dM$sa%z%%%ua$P1$cI$s^$s$%%]?$J$#H!$C#D#E$$&'.#@'F -T 5`AuDxTDyG~HG~CwI,Q#Z/#`="]>ZA]LhXu ||~q!w"}|vrwp}ryc!|g"|#%&'c'''&%%k(p(&x$`@!Y/"_/&^,'k<(l'(|K,f*,b++b(,d%/h%1i&2i%3i&4j(5k(7l*8l+9m.:n1=n4?p9Cq>FrFLtQUxfb~~zecyTVvHOvAIv;Ev6Bv4@u0>v/>v..>/>0>0A2B3C5D6D9G;I=K@MCOEQGSHTGREQ  S!$-$=6C<:0H?a\rohenlnl`ZNINOEGFHPPYWTSMNTTmljjXVUSdcjljledonffKNFHVYabMMMKVTOOYYhee]aUcWaSXFT= dR"|o"}o#t#s$p]$fQ#$%%%{$s_$n$%%%$qZ$lS#cF#O)#E# #()+8$A)K 0X ;iCwDxWDyE{E{CxCvo8Aq=ErCJsMQuZ[zni~~|njy]]xOTvEMw?Hv:Ev6Bu3@u0>v/=v-;v,;u+:v*:v)9v(8v'9w(8w'8x'8w&8x&8x%8x%7y&7y%7z&8{&8{%8z&8{&8{%7|&8}'8 ~'9~(9(:)9(:*;);*<+<+<+<,=->/?0@0A1B3C5D6E8F:H=K@MCPGSKVNYPZNZLXIU  A#*3):2C;<3;1KBMEVQ^\nnihgelihi^_VX\]cdXWLMQQfg[\MMUUbcUWQPUTUSNLTUbequikUU__qqeehh{yxsh\ aR UA K4N6 qa"|#vg#q_"r`"dN#hR#yi#$$$q$lU#jQ#vb$|${g$jP$cE#I4# )+),1%C'E-P 6c?nCwDxQCwCxCvCsCq&7[N$P$!R4P@LCXMk]cY[Soc}p!}w |m!p$#}q!yi!|!"$$%&'z&v'o'}[&wX$b&{U&cF UCZ: j8(o'$%#nW!iK#vQ(l8,e'.g$1i$2h%3i%3j(5k(7k)7l,8l.:m/o6Ap;DrAHrFLtPSv[[xdbzifxdby]\xRTwIOwBJv=Fv9Du5Av2@v0>v/=v-0@0A2A4B6E 9G;I>LANFRMXS][d]f[dT_OZ  K #,"90A9C;;3A;PLQJMHSRdckia]}}y|bcefjkcdZY\]gi\]JKRTnpYYNNMLIHJH\Ynlba]]]\po |r!qd!gW!eR!ug!"##z###$}m#p\#o#z$ub#_C"X<"W:"V6#Z;#X8"R/"+$% 03-,09&D+M 3\ $\?Y1"d.({O)z%w#r\!ZI\DnC(n5.g'/h&0h$2"h&3j'5k(6l*7l+8m.:m.;n1=o5?p8Bq=ErBIsGLuNRvRTvTWvRUwOTvIOvCKv>Gu:Dv6Bv4Au1?u/>v.=v-.?/?0@1A2B4C6E7E9HFEDEMM]XSNb`}~prcebehj\]RTQTdgilX[TWrukk_`\[OMOM^^ddQQOLXQb[ws |p x !"##$$$$$%$$$$$q\#mV#]A"Q/"]@"eI#<2&6166(6 #5368 9$C,P 2Z :h?qDxCv^;i;i;h:h;f?lEo#<_I#(L&K/P2Z7aNhbigSJZNl]qZm" "j#r"y#`%|W&f%g%zY%z]#l"m$\'|U'wU%mJ$`4$b.'o>)i@&W8L8H:P8`5&a-*a',f'/g$2h%2i%3j&4k(5k(7l+8m,9m-:n0Fr@IsCKsFLtHNtGMuELuAIv>Gv;Ev7Cu5Au2?u0>v/.?/@0A2B4C5E7F:H9MLGFFCPKWS[W_\UUOPTU^`XZOPKNXZjlikoqjkSU^`mm__]^giXWUR^YXR[Ti_|szspgk]xl v!~r!"#%$##$$%%$$$y#~m#aF">-==*=L7;P<7O8*A82:*< %A%A&F)K .S 2X :e@sDxUCw!5]*-L7bY(=KM.%S, S2XAYO`]ddYWYOmb}}g!w[! }mT jO ~d"i#n$q%f%m$""%m'r%#g%g8&j;'xK)d0(V4 N=OAZAd@$_3&_+*g+.j)0i&2i&3j'3k'4k(6l*7l+8l-:m.;o1p6@p8Bq;Dr>Gs?GtAIt?Hu?Hu.>/@0?1A2B4C6E7F9GM5U 2X 0V 2V 5Z7`o?o>kY BP&EN=4/N5LAMEUJ^YZYi`}q!w!{i t]qefY_DkL!k""!#%&%##q#b$u&~]&pH%e'p(X(tS%nR"pS#qO&pF'g5*i4,o7-m.0k)1j(2j'3j'4j'6l(7l)8m+9m.:n/u.=u-.=/?0@1A1B4C6E7F9HdFbGbAe?iCqDwDxO>n5#:I"I#C(2/MDxDu>e@`A`BY)GI,FA%@B.A6;> B:M;`S`ZeRu^"wigYeUjbYTcRz_#w#""w$i&o&$ uncTr\ e$lN"lV"&p&}W'{Q(wJ*o>+k5,l7+wJ*|N,o4/h'1h&2j%3j&3k'5k(7l*8m+8m,9n.:o/;p1p3?q4@r5@r6Ar5As5At5@u3?u2?u1>v/>u-<u,;u+;v+:u*:u(9v)9v'8v&8w'7w'8w&7x&7x%7y&7y$6y%7y%6z%7z&8z%7{%8{&8{%7|&8}&8|&8}&8}'8~(:~(9(:(9*;);+<+<,=->.>/?0@0@1A3C5C7F8G<.F94G2:G+*k<(rJ(sM'qD)tB,r:/l-0i%1i%3j%3l'5k'6l(7l)8m*8n+9n-:o.;o0q2?r3?s3>r1?t2?t1>u/>u.=v-=u-/?0@1A3C5C6E7F:I=KANFRLXS]Zc]fZdT^NY   &4+C;IAMHNJRQabcdZXMKfgdgEHCFY[WXVX\_ST@B=?^`zzqr~y{{|~ yzq k\XEWA_K{m!""~q!"####|"w"$%$$$7dM|C5wFAf\6]]1W[!I`+IVGQABUH:RN5OT+FX!>`:d9b"3X-*F:-G"H"H#I"J"K"P!"Q#"K$)8JU0V](N[&JW'EI%>A$>?)C@4N=D??DBKI`WfOcOyl~!vY"tR#q#"y$rhejbm"l#~ !iI#e4'h3*l:)tL'm%x%wL)h*.j*/i&2h#1j&2i&2k&5l'5k(6l)6m*8m*9n,9o-9n-:p.;q./?0@1A3B4C6E6F9H=GHWXSSFFGHbbnn^_]_STJMCEDFDF>@;=SUjk\^qt~{~ m^T?I1U>td #$#"##""~"p"#$$$%,iK>-=>c`+L`*CX55A^I%x#m#X6!I!H!F!E!F!E!F"G"G"H"H#J"M"N"S$"V)"S("Q.(3DU#Kc(KX'FQ'HP*GK.GC.G@*DB%@B$AD>W<^n-Vd$DN@JEN HR$KV(XQ#dKeTmanmP gC"wY"|$# }|ztw#{"!{g cMa>"kA&a&t&&&V+l..m.0i&1h#1i%1j'3j&4j&5l'5l(6l)7m)7n+8o+9n,9o,9p.;q.;q-;r.;s-;t-;t,;t,:u+:v*;u*9u)9u*9u(9 u'8v(8v'8v&8v%7w&8w%7w&7w%7x&7x%7w%7x$6x$7x%7y%7z%7z%8z&8z%7{%7{&7{%7|&8}'8~(:(:):):);*;+;+<,=.>.?/?0@1@2B3C4D6E8G:H;=JLOPOQlm~}~z!"!~s iY_LR<N7T>jX#%$"$$###~n"#$%%$+/*.fT$]?!cF!t\"r##~#]<"J!!H!E!E!G!G!F!G!F"H"I"N"CM"S%"X/!c>!`@'^a8Qd9DX8D\=K?LANBOAN    "%+ 90KBJEFCPKc^gf\\POFFMNee_`RTLNJLPRHIGIMPPRFGKLhh !!#$#xk`McQ\HS<XAbOu!#$""###$#|k"p!#$#$$%$#~k"u_"qZ"#$%$rW"lQ!dD"O' F!E!F!F"G!F!G"H"K!Q""N!P""W. bDr[rW!ue]XGI/?0@1@2A3B4C6E6F9G:H;IK?L>L=K   O!"%)3*?7@9>6H?`[VVDE?@BCKLRSGHSUdecc^\`]XXOQQRGINOdcomwt }{q!#%%$}!{oxk dR_JeRn^u "$###r!"$#s"xf!{j!p[ mV!t_!x"#w"{g"mU!`C!]>!oV"y#w#ya"jL!bB![7!M$ F!F!E"F!@F"G!G!K!W,!W-"U*"iI ueyl{h zrXTF@B9C>FEHN#CHELDR)@S2FV+Xi,Se7.>/?0@0@2B3C4C5E6E8F:G;ISSKL>@JKopbdTS\YPMFGCFEHQTa`[Vb[rj|swl`Ppd#$%#!| |qdS`Mrbz !!#$$###$$z"{"zj!cJ t`!x"|h"kR!nX!lS!X8 P,Q/ R/O* K%K# K!!H!G!F!E!F"CF!G!L"[5!` /@0@0@1A2B3C4C5D7E8F9G:H9G:H   !"L#&+4*?7A;;6>7GE=?;=XZ][FETTdfPQNOURQJQPOOST_`qrpljaofwncTYIui!"" vijZm]fT\Iyj "#~!!#$$#$$#"#"~n!#$#|i"##r[ aD _B V4 I#L( T/ R- T0 T.!K"!I!H!F!F!CG"J!P#"W."eD gI ^@bHiTj[_KaN\PJCHBZUqodbRQKLDBD?DC=J,=Q4+U+`*j+{*i+}I.u;0q2/k)0k%2k&2k$2k$3l$4l%5m&5n&6p(7q'7p'7q'7r'7s&7s'7s&7u'7u&7t&7u&7u%7u%6v%6v$6v%6w$6w%6w$5w$6x%7x%6x$6y%6y$7y$6y$7z%6z%7{$7{%7|&8}&8|&8|%8}&8}'8~'9~(9(:):*;):*;*<+<,=,=->.>/?/@0@2A1A3B4C5D6E6E7F8F7F8F   !!"##%)/$7.:3:2=4B<@?BC[]UTEDNMPPACDESSQLVSffux!! l_cS!m^j[nadS`NjZjYgVvh!"t {l "###$$"|!#"~n!#$#p[ s^!t"ye!pX aD L(EM(Z9!cC!cD![7!N$!I!G!E!F!G!K!Q& \4!dA!mP!fK^DbH^C_JfWbT\MXPXVtquvQUGHCDDAMFME"@S=C\EKI=d@!yd! "t#p!"%%~"q s_qX }g"""$}%c%b&_('&&r)`*`*c*r*)*U,u:/o.0k(1j%0k&1j$2j$3k$4l$4m%5n&5p&5p'6p&6q&7r&6s&6s&7t&7t%6u%7u&7u%6u%7v%6v#5v$6w%6w$6x%6x$6x$5y$6y$7y$6y$7z%7{%7|%8{$7{%7|%8|&8}&8}'8}&8~(9(:);):*;+<+=-<-=.> .?/?0?0@1A2B3B3C5C5D6E6E6D6E   !"K#$%(- 0%5-:4=8?:A=IGIHBB@@EDIJBCJJbaWTTPc_yw}y!zp~u"!]KZGuh|q~s} wi]I]Io_{ z zl |!""#$$"}m!"|!s_ "#"iP bG kR!hO!v`!q!oV!Y9 S1U1 U3 S. M$ G E!D!PF!F!I!O#!W.!Y3 Z6 U/T2[@V=T>_MdT\JYKldlkVUIIEEFDVHdPo\z`"kO `K\Nh[|c!w_!wn %c%o#%%}$#$$&p&a%l'u''&'l)^+_+y)('(q+W,zA.n+0j%1k%1j"1k#2k#3l%3l%4m%4n%5n%4n&5o%5o&5o%5p%5q&6r&5s%6t$6u%7v$7u%7u$7u$6v$6v#6v$6w$5w$6w#6x$6x%6w#6x$6y$6y$7y$6y#7z$7z%7{$7{%7|%8{%7{$7{%7|%8|&8}&8}'8~'9~(9(:):*;)<+<,=->.>.?.>/@0@0@0A2A3B4B4C4C5D4D5D   !"#N$%(+/ 3'<3B;IBJBHBBB?AIJWTYVOM`]ifd_aW[Osnqhywm #"k\]Koazn| !!cQ[FdQjYr xhgSz $%%#v!"""yg s!"oY _DlT {h"jP!dI {f"pW![: R0J" E C E C!C!D!D!E G!H!?K M#V0 _= cI`PRKMGOEZK^RTGdW|vus^XWRQPMMRN\Rh`vlt\kQaQQHTIpYork$|_#n$t%m%s$""f#a%|%{&p'w('&v)~N*yE+~M+u*(')m+a,O.q1/j%/k$1j#2k"3k#2l$3m$4n$4o$4o%5p$5p%5q$5r%6r%5s$6t$6t%6t$5u$5u$6v$6v$5w$5w$6x$6w$6x$6y$6y$5y$6y$7z%7{$7{%7|%8{$7{%7|%8}&8}%8}&8}'8~&8~(9(:):);*;);+<,<->->.>.?/?0@1A2A3B2B3B3C4B4C   !"K#$%&().3#;-D7H=F<C>ABFIacje]Ue_jdTMQL_W\Q\Pqi~vm| xmz"!uh`NcSxl} !"hXQ9N5K3\GU=L2iV"##!x!|!v!|k!lV fM]A_DmV oY iP X9T3[=O,G DBACE C C!FE F H L!K P' U3hOw! uo]]LMNMbZrm[UWLmdtp`YYMc]ecfbf`khukpXrX nYZNTJqZ x"}n}j i"s_|g!k$r%~#!"z$$%%n'`(t((q)T*w@+v?+[+)(}*N,zA.t8.n+0k&/k%0i"0j#2j"2k"2l#3l#2m$3m$4n$4o$4p$4p$5q$5r%5s$5 t#5t$6u#6u$6v#6u#5u#6u#5v#6v$5v#4v$6w$6x$6x$5x#6x$6y$6y#6y$6y$7z%7{%7{$7{%7}&8}%8}&8}'7~'9 ~(9(:':(:):):);*;*;*<,<,=,>->.?/?0?0@1A2A2B3B3B2B !"C#%&')+.2!8(=/?5A:E?JGXXggXUMHXQ`V!PGPK\Vg^i^lbwn{!! vi}r |rm_YFO9zn#$# qajYdQVAG,N4_Im[q`mZve "u!dMS7S6R3U8r\ ~m!hN M+DCEEPC@ABC C C D E H M Q& N"!S+ X9dO{f]POGIFGSQgc\XPIWOd_hcbZpkwwzx{w~xoygv xsfiXwZ"f#vdua ~h!iYdOy]"###$%&&&'w(i)((q)W*j*~))'y)}H,zD-u9-m*/k&0l'0i"0j"1j!1k"1k"3m#2m#3o$4o#3p$4 q$4q#4q$5r#5r$5t$5t#6u$5u#5u$6u$5u#5v#5v#4v#5w$6w$5w$6x$6y$6y#6y$6y$7z%7z$7{%7{%6{%7{%6{%7}&8}%8}&8}&7~'9~(9(:'9):(:););*;+<,<,=-=->.>.?/?/?1@1A1A2A2B2A !"1#%&')+-06#9)@5E=OF\P e_ [YLKOKd\ gZ%VI]VjendgZ\LcU{ !|k^\J]KZIWD[JM7@&XD #$#~qrc!~q S<S:dPT;\jV~p z!q!cK]CfNaG]CfN oY dJ V8U5K&BCH"K%FBAB C C D D F J!L L !Q(P0U=pbaWKJHIGHOMga_[QMRQWX^^gdun}v|~qtw }g uX"oP"iL fNqZl#nU _< wT$|$%&%%&''''(('u)a)t)('')j+m+U,r1.k'/k%/j!0j!1l!2l"2l"3m#3m"3o#3o#4 p#4q$4q#4r#4r#5s$5t#5t"5u"4u#6v#5u#5v#4v#5w$5w#5x$6x#6y$6y#5x#5y$6y#6y$7z$6z%6{%7{$7{%7}&7}&8~'9(:'9(:):):);*;*:+;,<,=->-=.>/?1@1A1A2A P !"#$%&'),.14!;(E6RE`T!i\(j`+`Z'\Y&d_%vp'vl(\M$`S!la!aQ\K\JdT~u ~wynTAK6`O^NO;E.M6VB^Ly "|oYCjYl[V?XBP6C&F)_Ip^tb r_ dMhRp\bIU7P0U6]AfM kS!X9C@I#N*J$DCBBC D VDEHL&R/T7YFmbyq_TMJKLRSPOca][NKLLNOZ[fbeWo[~q|~i |e"w"t#t!vjkVfD"uT#e%tR$mB%|U&c%[&a'{&&q'W'm(''''(^)Z)i*u){)u)k*c*\+~J,o..j%.j"0i 1j 1j!0j!1l"2l!2l"2m!2m"2o#3o"3o#3p#3p"3q#5r#5q"4r#4s#5s#4t#4u#5u#4v#5v"5v#5w#5w#6w"5w#5w#4x$6x#6x$6y$6y$5x#5x#6y#6y$6z$6z%7{$6{%7z$7{%7{$6{$7{%7{%6{$7}%8}&8}%7}&7}&8~'8~'9'9 ':(:):);):);*;*;+<+<,=,<,=->.=.>/>0@1@0@1@  F"#$%&'*+.14";&A.P?!^P%cU+oc9ViBrm-h\'XE&XC#WC!O;WEaQdThYyo!#"ujk\ wlYGWDXF@'E-rd"rcYC[EXBU>uf{m ]GQ8T;X@W>U9M/N1W;R4G&E!D!E#M,V7Q.CAE3BAABCCC BCEGM)U8[C_Kh\k`XKQIPPWYZZgeXVA@@@EGORWTUCiRo a#yW#w#|# ~zjpO#e$|$o&n&m%yS%k9&uE(^'q'"s'''''&'f)f)}(i*O+|G+w@+v:,u:,o0.j&.i#.i#/i 0i 1j!1j 1k!1k!2k!1m!1m"2o#2o"3n!3o!2o"3q#3q"3r"3s#4t#4u"5u"4v"5u"5v#4v#5w#5w#4w#5x#6x$6x#5y#6y$6y#6z$6{%7z$6{%7{$7{$6{%7{%6|%7}&8}&7~'9'9(9(:(:);*;*;+;+<,=,=->.>.>.?/?0@1@  K"#$%&'*+.15!9&>)G3"Q>'^M.xmEǘÒmrk5]P(VC&O7#J2 J4R@ZHXFS@UCna"#vYGn`m__NbRYGT>XDm^tfeSaNn^ufWAgT{m^HR8J-D&@ @?A E&E$@>>=@F!H#FBA@?@ABC:CCDHK&V8_H`MeRfRgXeZ`[ffjipo]^IHHHIJUXcaeVue~!!"##$#t!h!!}"oO"pU!r!v%s&o%uO$nB%W&f'n''&&&&&&&(x({(U*s;+w?+u:,x@-q3-l(.k$.i#.i /i 0j 0k 0k!1l!1m!2n!2o!3o!2q"2q"3r"3s#4s"4t"4t"3u"4v"4u"4v#5v!5v"5w#5w"5w#5x#6x#5w"5x"5x#5y#6y#5z$6z$7z$6z$7{$7{$6|%7}&8}&7}&8~'9~&9'8'9(:):):*;*;+;+<,=,=-=-=.>.>/>/?  :88>?>== =<=@AAB@@??@ACCGD CEGI"Q3VBVFXI`Lj^e_b]icked__^JJDEIJcfomjdvlx""#$#$#v"}_#}$l$iB#rW ~!%n&w%d%zT%|S&yM'V'e(]'x'&''''m(l(^)t;+o1+s8+yB+|G+{F+s6,k(.i#.h".i 0i /i!0j 0k 0l!1l 1l!2m 2o!2p!3q!3r"3r!3q!2s"4s"3t"3 t!5u"4v"5u"5u"4v"5v"4v"5w#5w"5w#5x#5w#5x#5x"5y#6y#5z$6{$7{$6|%7|$7|%6}%8}%7}&8~'9}&8~'9'9(9):):*;*;*<+<+<+;,<,=,=-=->.>/?.?/?  ,""$%&')+.03 8$<'B-!K5%ZE+l[5|mBvMzjDm[4iY*cT%P;"C+B(F/K6O;S@UBXFaQ[JK7UBqcn`SAnawkXEP:D+P:tfT>>#8::;<8779;;:;;)<=>>???@?@@ABCBCCDDFG H.E9F>SEaRZQQI^Tkae_li\YTQ]\kimhqi~vv!y"z"m%$r$w$n$|Z$zT%}Y&k%#"$g&}%%w%|R'tD(\'V(q>(a(''s(p(e(U)r(x(S*zE*w@+s8+s7,o0-j(-g!-h -h/i/h0j /j 0l!1l 1m!1m 1n!2o!2p!1p!2q!2q 2r"3s"3t!3u"5u"4v"5v"4v"5w#5w"5x#5y#6y#5z$6y#6z$6{$6|%6|%7|%6|%7}%8}&8~'9}&8}%8~&9~'9(9(9(:):):);*;*<+<,<,=-=/>.>.>  ;""#%&')*-/4 6":&?*F0"O9'YD+`M1bL4^G1YB,XC(VC$L5!A)>&A(@)C.P<WEM8C,K7bQh[eVWDD,P<H1>$D,J3P:_L`NO8K3K2<7;B$B#;789::Y::;<=>=>???@@A@BCCCCDFGDF"J8IEQNkeaSUKd^tnxozvnbWjb{uoam\so |`"sN#mC%xS%c%h%a%wP%oA%b%%%$$t$%%&b&~T'''^(d(n(Y(W(v''p(v(t)O*|I*w@*n0,g$,g",f -f-g.g.h0h/i 0i0i 0k 0l 1m 1m!1m 1n 2o!1o!2q 2q!2q!3s!3s!2s!3t!3u"4u!4v"4v!4v"4v!5w#5w"5w#5w"5w#5w#4x#4x#5y#5y#6y#5z$6y#6z$5{$6|%7}%7|%7}&8}%7}&8~'8~&9'9(9):(:):*;*;*;+<,<,<,=,=-=->.>.>  9""#%&'(*,.14!8%<'@+ F0#K3&N7(P9(O8'K5%K4#J4"F/A)=%<$8 69";$7 =&YIxmhZG37476<$D,J3I1@&C(N7aNbNF+8:C'E)?:99:;:;<<=>>?@@@BABADEL(P+I H$J=EDKMqqe\OJ[[kic\nl}{phi]zqvhjVta pS"c:"a6#lB$uO%xS%zT%sI%j<%j:%a%%%%n&`&_&%&n&rA'a'n'Z'_']'_'d(l(v'r(l(~N*o3+o4+n0+h&+e"+f",h",f ,g.i/h/h0i/i /j 0l0n 1n!1n 1o!2p!2q 2q!2s!3s!2s!3u!3u!4v!3v!4v"4w#5w#4w"5w"4w"5x#5x"5x#5x"5x#5y#5y"6y#6{$6z#6{$6|%7|$6}%7|%7|%6}%8}&8~&8~&9'9(:):):*;):*;);*<+<+<,<+<,=-=.> 9  !"#$%&')+-036"9%<'?*C-!F/#G0#F/#F."E,!A*?(>&;"95557!@+I6RA_PWEG1I4D.44:!C,F.?%65; H/O8C(79><9899::;;<=>?K@A@@AAAACFK(L+G'I-M7J?MMkmhaNCXQe]YQpm}rgRm]n_m]|m!y_#sQ#|\$k$^$sK%xS%xQ&l>&k;%uL%}X%yR%yP%zR%pB&k9&]&&]&l8(vG({N(vF(m'''t(V({J)|L(wD)l0+i)+l-+h&+d+c+e+f ,f,f-g-h.h/i/i0l0l1m 0l1m 1n 1o 1p!1q 2r 3r!2r!3s!3t!4u!3u!4v!3v!4w"5w!4x"4x#5x"5x#5x#4y#5y#6y"5y#6z$6{$6z#6{$6{#6|%7|$7|%6|%7}%7}%8}&8~&8'9&9(9(:):):):);*;*:+;,<,=-=  "#6$&')*+.13 6"8$;&='?(@)@(?(>&=$;$:"864348!B.J7D.<%C-R@cSXF:!39!E-B)95558@#@#:88767779::;;;<=>>/??@@@@ABBBDFG#J-M/M,L5NJb__SQ?aRi\]Tge}{ymq^{l|n u_!q"v$v$%%u%xR$o%%|W%l?%nA&k<&j:&Z&q&g&~W&|S&tF&sB'Z'd'xJ(d'x'h(]'zI(xG)yG)n2*g&*h'+l/+k-*e"+d+d+e,f.f-g.h/i/k0l0k 0m 0n1n 1 n2o!2p 2p2p 2p1r!3s 3s!2s!3s!4u!3v 4v!4w"5w"4w!4x"5x"4x#5x"5x#5y#5x#5y#4y"6y#6z#6{$6z#6{#5{$6|$7|%7}%8~&8&9'9(9):);):);):*;);+;+;+<+<,<+<,=  .""#$%&()*,.135!6"9$:$;$<%;$;#:"8!76532227 =&7 23;$H3J6:!27:!644458 9867567789: ;;;<<<===>?>?D@AAABBBEF O2W@]GXESGSFT>XFd\zr!i]c\smrb |k""z#pN"yX#}^$yV$r$%$qH#rJ%^%uL%m@%h8%]$&^%&l=&`&l&a&uH&p@&~U&[&}S'xI(n9(yM(xI(k4(k1)q:(}N)R)o6*f&*f%*k-*j,*f$*e+c+e+e-f-g.g.h.h/j.j/j0k/l0l1m 1m0m 1n1p 1p1q 1r!2r 2r!2s 3t!3u 3u!4w!4v!4v!3w"5w!4w"4x"5x#5y#5x"5y"5y#6z#6z#5{$6|$7|%7|$6|$7}%7}&8~&8 &9'9(9'9(:(9):(:):);):*;*;+;+<,<,=   !"# $%()*+,.035 7!8!7 7664321101010037<%:"5541325456545 677899::;;<<<<=>>>?@BB>CBDEI&Q7YDW?M2L9YN`XdYn\ aGdLmT v` za!vV"rN"d;#e<"c7#b3$sL$z$m$e6$d4%oB%l>%{U%o%}X%k;&i8&o@&tF&n?&h5&o?&b&b&r?'d+'c''e+(e)(c%(d%)e')j0)p9)k/)d")d"*g%*d!*b*b*c+d,e-f-g.g.h.h/j/j/k/k0m 1m1n 1n1o1p1p 1p1q 2r!3s!3t 3u!3v 4u 3v!4v!3w!4w"4x!5x"4x"5y#5y"5x"5y"5z#6z#5z#6z"5{#6{$6|#7|$7|#7}%7|%7}%8}&8~&8'9'8'8(9(:):);*;);*;+;+<,<,=   ""#$&')+,-/13454432210/.//0023454420232334456789::;<;<=>>?@ABBBDDEF J':J*P@^Wc[ZHV8V1 ]5 fF t]rV!d=?>@ABB8BCCBCH O/W=XC^MbNXB]GjQ!eA!^9 cBiJ!lK"pN"mF"a6"iB#nF#i>#c5#i>#vQ$zV$wP%h:%e3%k:%a,%[#%Y&W&Y&`*&k7&h3&`'&`(&j5'xI'{M'g.']'_(f+(i-(f')c")b!)a*a*`*b+ b,d+d,e-f-e-f.g.h.g/h.j/ k/k/k0m0m1n1n0o 0o0p 1q 1p 1q 2r 2s 2t2u3v!3w!4v!3w!4w"4x!5x"5x!4y"5z#5z#6z#5{$6|#7|$6|$7|$6}%7|%7}%7}$8~&8~%8~&8'8(9'9(9(9):):*:*;+;   !""#% &'(**,-..///000/0//...-.///./010101333433457999::::;<=>???AABCBCC/BFO.Y<[: Q,P/T>_Po^!gF"V+ R*\: hG"oL"jC"X("U#"Y'"],#c5#{X$i$tM#^+$V%W%X%Y%Y&W&U&V&Y&_&&_%&Y&X&^ 'g-'l7'f*'^'](b#(a!(_(`)_*_*`+`*b+b,c,d,d-e-e.f.h.h.h.i/j.k/ k0l0m0m0n0o0o 0p 1p 0p1r 1q1r1s2s 2t 2u!4v!4w!4v 4w 4w!4w"4x"5x!4x"5x!5x"5y"5y!5z"5z#5z"5{#6{$5{$6|$7{$6{$5|$6}%7~&8~%8&8'9(8(9(9(:):)9):*:*;);*;);+;   !""#%&') +++,-.-.0../...-.././0110023345477999:::;<<=>>??@ABBC#BCDI O)O$IGL&T7_C ]7!O" L S'!V'![,!]/"U""R"Y&#a2#f9#oF#sM#j=#c3%e4%](%U%W%[$%^'&Z %W&W&X&X&Z&^ 'b&'_ '^'^'^)^*_*_)_+`+`*a*a+b,d+d-e-f.g.h.h.h.j/j/j/k/k/l0m0m0n0n 1o 0o1p0q 1q1r 1s 2t 2v 4w 4v 4w!4x"5x!4x"4x"5y!5y!4y"4y!5z#5z"5z#5z"5z#5{#6{$6|$6}%7~&8~&7~%8'8'9(9'9'8(9'9(:(:):(:):*;*;  !""#$%%&(**++,-.--.------/...///10001233344445679999::<==>>>??ABBBBCCCEGGGIM" R*S+ O!!M!N!M!P!R "S"R"X'"a3#b4#\*#[&#a1#pG#wQ%h9%X%V%\%%a-%]%%Y&W&W&W'X&Z&\&\'^' ]'\'])^*_*_*_*_)`*_*`*a*c+d,e-f-g.g-h-h.j/j.j/k/l/l/m/n0m0n0n1o0p1q1r2r 1s 2t 2u 2v 3v 4w 4w!4x!4w!4x!4x"5x"4x"5y"5z#5{#6{"5{$6{#6|#6|$6}$7}%7}$7}%7~&7~%7~&8'8'9(9(:):):);*;);*;  !""#$%&(()**+,-, -,-,--,-,-..../01000223445779::::;<===>>???ABBBBCCDE2FEGIK JL L!K!K!L!M!N"O"N"Q#V#"W$"S#P#U#])#e7$b1%W%T%X!%Z!%W%V&V&V&W&W&X&Y&Z&Z'['['['\(])^)^*_*^)^*`*`)`*a*c+d,d+d,e-f-f-g,g-h-i/j/j/l/l0m0n0n1n0o0p1q1r1r2s 2t 2u 2u 3v4w 3w!4x!4x!3x!4x!5x"5x!5y"5y"4z#5z"5{"5z"5{#6|$6}$7}%7~%7&8'8&8'9'8(8(:):):):):);*;   !""#$&&'())*++,,,-+,+,--.-./0/00212345567799999:<<<=>?AAACBCCCDEE EGFGIJ I!J!J"K!M"M"N"O#O#P#T#X"%\'%Y!%U%U$T$T%U%V&V&W'X'X&X&Y(Z'['[(\(\(\(^*^*^)_)`*a*c+d+d,e,f,e-f-g-g-h-i.i.j.j.l/m0m0m0n0n1o0p1p1q1s 2t 2t 1t 2u 3u3u 3w 3v3v 3w!3x!4x 4x!4x"5x!5y"5y"4z#5z"5z#5z"4{#6{#5|#6|$6}$6}%7~%7&8'8&8'9(9(9):(:):   ""#$%%''(()+**+++,*+,,,-.--//000113346778999:<==>??AABCCDEFFGG H!I J!K!M!L"N"O#P#Q#S$T#T$W%T$T$T$U% U&V&V&W&X&W&X&Y'Y'[(\(\(])](])^)_)`)`)`)`*a*c,d,e+e,f,g-h-i.i.j.k/l0l/m0n0o0o1p1q1r1r2s1t 1t 2u 2v 3 v 2w3v 3w!4w 4x 4x!4x!3x!4x!5x!4y"5y!5z#5z"4z"5{#5{#6|$6|#6}$7}%7~%7&8'9(9'9(9(9):):   !""#%&&'()***+**+,+,--/.//0001223445467999:;<==>???AABABCCDEEEFGG H I I!J!J!K"M"N"N"O"O#P#Q#Q#R%S%R$S$T$U$U&U&V&V&W&X&Y' Z([(\(\(])])](])^)^*_*`*b+c+d+d,f,f-g-g-g-i.j.k.k/l/m/n/n0o1o1o0q1q1q1s 1t 1t 2t2u 2v2v 3w 3w 2w!4x!4x 4x!4y"5z#4z"5y"5z"4z"5z"4z!5z"5{"5{#5{#6|$5|$6}#7}$7}%7~%7&8%8&8'9(9'9'9'9(9):):  !!""##$%'('())*)***)*++,--,-.//00011123434556779999::;<==>???AAAABBDDDDEEEFGI J!I!J"K"K!M"N#O"O"P#Q$R$S$S%U$U%U&U%V&W&W&X&Y'Z'\(\(](])`)`*a)`*a*c+d+d,e,d,f-f-g-i-j-j-k.l/l0m0n0o0o1p1q1q1s 1s1t2s2t2u3v2v 3w 3x!4x 4x!4x!3x!4y"5y!5y"5z"5y"5z"5 {#5{"5{#5{#6|$6|#5}#6}$6}$7}%7}$7~%7~$7~%7&8&7'9(9'9(9):TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/stories/holotzcastle/level013.hlv0000644000175000001440000002032311177007633023221 0ustar jacobusers2default233?2-  B3C@@@ fCC33@ff@CC@33@B C@33@CC33@ff@ DC@33@DCff@@;D C33@ff@ODGCff@@6DC@33@"DC33@ff@HB CCGCCBC C*CCCCCoCC3CCCDCDoCD[CJDC1DGCTD C@D C@DGC@DC,DC;DCJDCYDCRCC@. C4C?&pCB?DB? DBholotz-castle-1.3.14-src/res/stories/holotzcastle/level019.hlv0000644000175000001440000004041711177007633023235 0ustar jacobusers2default233?BCB`@@C~D33@ff@C~D33@ff@CjD33@ff@RCjD33@ff@CjD33@ff@>CjD33@ff@holotz-castle-1.3.14-src/res/stories/holotzcastle/level025.hlv.tga0000644000175000001440000041312311177007633024002 0ustar jacobusers ,                            !    %      "# $,*     %( &*,066/&      '-"*- /39<;3,)($     $0+)-& $-6=;0)&$    !42  )-(+;=/     !7 #! #&,( 1>3    "%#;;! ),*'&'* '=:!#$!     ()!&># !+,+*' %(#? %"),(     !"!!,-#(B$ #+'$#"%&C(!).-#       $'+'$/0$)FF'(-"!#*CB, +6/#"     ',#(51%-JK,,-  +=?2& %98#&#    !-+0;92) %+6KQ6.-",/,$+432.)$89))#    ,2%$2:></$&1:ABEMR> 0/.BRZ[SA-%!$/(-10(%350+%  '+    &50%1?@8=JKGCAEJ<  23#(?UacaeiV7%$-8,()+/$&,+,-+%"%'& &-(    2:*2EJRN;-&-:4$:E>=M`eYF:E`_?($,/2:BA=958;4'"&$ &*$ '-.'%+0-!    ,=6! #;JN<$ 1/#6Th.keM3",QbS;&'12-*/9@CEGKQJ5&" ($ +5 4.#    &?A-,::(!0.! +>Vpvmh`K,  ;R]U: %'$,4 ) $)2=M`C) %( &286- "      !:G?0!%46)',)# !#-DavycF:9, %1H[Q7,2<?<:5("6ZlV4"")&! ")-)!$"     -<GF26LPE4"!)'  &/6<QuhC' #.O]UKHGC?:3(!FlgC)$(&"$&&"     &:MB$ ,N^YSK:-/',<?;NvyO) 8NVOB5,(% 8eiI3&!"")*$     %+KK, @]WCALNIE;-#+:D;3GszM" ! .;9+ 2`fG8,&+"     #DR<#2U`E*(6CKQ HELPE78SzR&!+-! 3ciI8, '      9ON>1/4<QfX4 )9Tox{ lUI[zzJ""&)! 4iuS6&")#    ';QY[`gloeE(5a~~{sk yb8"#"#!1f`4 %)'     ) !!&=Vflnk`J1! ?ntVDFOY`dhdO4 #(Xp7" ")*&      !&)#-?ED>93-(# .Uvd7" ',/29CG@0%'$ "'&   I@$''#$))!    !*,)-1* $(& )IprL(&5B97. "0<;/'CI"$*,)*,)!       ).12,!,-)9f|[0 !3BJLE2!!  ,CPJA8-!" DL$"*-,'      #+*!*15MwxC!  /APXQB3-,"!%,>RPC?B@5+(**$#NJ#!$"      $,;\|l7 &8L[^XNA4+*.6BSTC0/7A@94.(" /c}?      "8\nU-!-APWXSLGA?GTVF1%$)262-(# :zo4     $! 5RV@)!",3:BIKFCJPH6'$#&**$   <} p5       '$#8KD5,!"") $*.15=EE7("!&+(3j C#!   $"     ((,?C4- '"(#%.=JA)$+(  "'VP(!+34+&("    ',!&6A8(&+((-'&4JJ0%,'!'% LX+)4:>?8)#,'       &-+&"!0@<, "($&1/$ !#+DQA+%+-#%,&I  c0 -:;603;4" ,+     &*-*!':C5#"#&##27, "!"5KPC61*!"-2'C y>.? 2& &6<2($! ! -,"      !*+!&<B2" !%''.?='4 "$9MQ@1(##-9IOE99V J#%>I9'"1?CB>957984,2,# #$     '(!%9=2)##$'4FB(*" +FRB.%$" 3L`s~xv O*/LN4 $1<@A?=<<;:8-!$#(*$    ') '+)%#" &54-.-& /G1%" "$*EP=+"%)'#-F_js||eI1"!3RU5"&)-.,&,361' $&!#),&     &*# !$).0-(#! )1*$(/&)BKB:3(  " %)'!"6OR<(!&/565<PZTIEN]d\K=;?5%-Q^B"  "&),) %!!     #(&!! #'*&! !,+! *2/$%6A?=;1" $$$(2::325BZj]A.(,3777<GLH;./4+!&76&&FcT,! #%# *-% ##"%    "&#!  ! &+%"/3* 9"*.+,46)"%*4BNUW]ckvwcK<641-*),2<GH>94)#36)!:`a:$ !# !,-#'$!,+     $%&*' )50$ #&$'+5/  %+8IQZ`fijg_UI>92+% #,<LQRM:# #04)/XmX9&"%+&)8:0(  '041./'%14-     &( &*& "15( ')$&44%!#)7GNRSPLIEDC=4.+%   #'-;GS[M/(31$'HjuhL, %+.,# ,Oa[OCAGLJF=+"3:1%      '.( "%##+".4*(,'!%04-%"  $1?GKOI<1-,./+&$$&$#'.:RZG416 *#4Nj|pF" %+.0/+# 5ftga^WNEG@0"'-.*&'1;6$     #--)+.0-#! &1'.3'&-("!%+14/$. )04:EG7'!$# &% (>U[VSO='#'.GoyR' &-21/+%4gt`ZSD3+*.43.,/5863149:,    %''*-34-"!$" !(5;3'$"12$&+(#$%'/:5$ $(&*8A6$"($(;LZfaD+! !#!9kzN% !*24.(!'Py~hVK<+$+,.00+*)*,/%     &.0&!%1#  "#&0<>5* %31").(&'%(7B8& #&$(7@4"%#(#",CdgD*!!#=tyD(064) 0XyxqcL4$ "&%#    &0,%#&#  "$(18;8/&$%.7."'/.'&'$,CL>-%#" #$),2<=."'$9ei?$" #Cy ?+560'0PhruxraG- "(.463.'#    ,0%"""!&+19;87;?8*"%-.&"%&%3NQB71. -,-39?C;)$&"!@lh:$&F|G(&-65,"&3:BRfsmSBDOU[_]YK5$#    &1-! "+37@OM5# )-&#)1EWO>;<:6=GPRB*"&)*($*Rs`4 &')HzQ;9:6+(8Uosmgc_^aab`O2"#*(    !1"*!#'8TT5!"*+#"/DWVB325786326ARaU6##*01,%"%>isP, "),2QsgI;73+  -K`e[I=86AU^QA92)     -5* "# 3V_D.())#3TbO6)%&((&$%-B`gM1'#!).207SsiA&  %)1F`aG0'%#$/40(!$:Td_O;(      #"!%22&#%'(+% $ "4VleJ/$$  0VhV:)  -Mi`D5/' #&)*,/5?VgY=*%&'()6TaJ-  !#%"#$!#<^kbL6+*--*#    %(!!#*3,"&'(+.)'*%#)4Igye6""'EcgS7# !9]`H=<80+))'%(%! "&.8BKLE7/--*'7Z^9 "#)+# '/64+  (D[d`UKIF;-    ")& !""   $1. $ &/2576.)&'*++2Oyq= #  /KhmU4! 1SW=49?AA@?=941/&$+../8A>5.)$"8_^6!$").''.269><1%%4HY_[WQE.      (& !""!! !.""#%-4:=71,('$!%Eqm@%!$"2OnpM* 0QR6')2<@>?8' ").+#!'281'#)Ejf="!$#$-#"(/32.*+3@B;1("!),)  ':FFBCA0    %' "!*/'"!!%.675,%$)&,IbU=-(((%! &2<B=1*%'&$#"#0MO:*&)-.-.48?8-#!'-.'!"#%(*)0>KX_ _F( $'&"!*-%#,56.' $0=DE@:673( $-+'/=7!    $(# #,,&" '/5.# #%.FK5+-.--*%#;$%(/440*'&'&%%/DH;0+*('&%(+.3,&# %'+&  $""(1L\RG\fM."'+(# $--&*56," '2;@BA<60!"#!+@>(     " $'$  &34'!%95""*,+*(#! "&.46;8.)%*5=60.+(&%#"$#! ""$(% # '6G;&-ISO=,%"!$'*&#! "(11.5:."(/2.-38.$! !#.DC)    %" !  #071)" )' $#! ! "%.;GE4'# $'.-*,*&% #!!"#!$)( $.:IJC;2+(+&  &-/2@@,  +7:987, &1BC-    &!"!!"#  ",7<6,  !"""!"$#"&/4.%    #"#&"!  !    (8CED?4,)" !')(/@G3 *39?E9! '3AC/    %!"$%$# !"&1==4"!%$%#%&&%" !"#! #"! !   #" $+137=:2,$ !%*)$%7H@( !#2GB% #3FH1      #$!""!#%#""#&,4<3&! "#% &$$$"! !&&#! !      !%)(,5<8-  #%$&*+% ,CI6$)GE( !2KM2      ! $"!#"!  !" !%',73& !$# $##"! "!"( ('#!"!     %(*0780$ $% $#(.*"(=NC+)FH, $(4HL4     "#&!"#$&$" !!   #$%-0$    !"#$#"!"#!$ '"! !"!  #!%',14.+,,($#$'0.%&8NJ1%CO;)#$#$'*,---9E8     #(* $#$&"!!   !""!%&   !#"!!!% $ # $ &!$ # " "! ##!     !)5;>=92-, /87.+6KN8#%D[SA7521/-,)(" *>:%    "!-0#  "! &'# !"$" !#'  ! " # " " #!'!$ " # "!!"""!    #"#.9=<;85 8BG@8<KO>*-Kg`G:52/+$#9:)!     #%7C;)!%($ !&('&#" !$  ! "!$!#"&!$!#!$!%!$ $ "!! "!   %'%'-2.& #+.,-17866;CJH@BNOA1#&6Mg]8&$# "68+#""     !#&6LciR1 "$" %*($&()&# !%$ ! "!#!$!#!%!$!# "!!  "-69<BC?6022,%(/35578:>@?BQO@7+$.4D`X0  24(      $! &<Q`o~zS*!)169;=>=:610.)'(&# !$%#"! "!#"$"%"$"$"$"%"%"&"%!# "!" !0MYVNHIIJKE7-.0/-./147=EO\T=53*!%-.,;^Z/"%'&%$%)2."    #" 5Q^UPgq>! "&3GYcfgilibTF8+&&$  !"$%#"! "!#"$"$"%#&"%"$"%"&"%"$"%!#!%!# # "!"8ao^LCDKPPLF>70'""(1:H^r}d;-24-%'/.%"7`]1!1>CB?=<:7,    "! )E\S7-CrY-  '2:=DThmih jlmnrm^E/'$" !"$&$#! " #!#!$!#"$"%"$"$"%#(#'#%#'#%"%"&"$"%"$!$!$!$!&"'!% "!)JrrQ??CADJKB2" (9IZp C%(16.!'1&6ae<##(4BGFC?=;:3'    !+-$,&17BY`C%+[r>%"! (5H[gjmohR?9::<=AM\bVB5,%!#%&$ % "!#!$!%!&!#"$"%#%#&#%$'$&$'$($&#%"%"&#'"&"$"%!%!'!%!# " &>dyiD6<?:6=CB6%'7K[bd}  X)(64#",3*2_sX@>BEA6,(&#%'"    )!3DKB769AVkrqr_6 FaRSM>6F^lnkig]H/! #+<S_\RB0'%&%$% & # $!#"$"%"%"$"%#%$&$'$&#%#&#'"&"%"$"$"%"&!#& " / Q rsU7.16520.,3<:/))7GQSOEY  E()65$ ,/%,Y~]KC;.!      #5HS\afmtz_48v     tsWE>:2' "-?PZ]WD3)&$ $ & #!$!'!#"$"'"%#%$'$&%'%(%'%($'$&$(#)#&"%"$"%"$!#%!$!4 S p e A)$&((+0/(*8?><>EI?4-(8q  |N<71$(,'  /^\8*"     !$%)$#*7GJBFVjw~|umkvv`A)1f         _F6( "&+2:HVS?- % $ & (!'!$!*"&"$"%#%#'$)$*$)$($'%'%(&(%(%'%(%)%*%(%'$&%)&*$)#&#%"%"$!$!/!K!k ` 9 $ "!"'/780/8CHJMA-!$C}  `?,#)01/.2H{ F!    7 $####$%'*-6BC7**4AKKFB;7>MYXN?:Gh  s      c>% ""#%0DQH 7 + (!*!)!&!$"("3"0"&"%#%$&$'%*&.&-&,%)%'%(&(&(&(&)&(&*&*&,&*%(%'%+&+$)$($&#%"%"$"$"-!I!j!a!9 $ "%.7>B@>CKNQRM=)*N  K)#8O]efgke-    6$%  #*1:7($*,+)% $7Oeppptxu]?1=NV^m   m?%!#"! !$1 F L D 8!/!*!&"%"&"1"C"="0#'#%$&$)%*%+&,(,(0',&)&(')'*')')'+','*')'*')'+'-'+&)&(%(%)$'$&#%"% "%"8"["p!\!6!% # ' 0 88>DFGGEFC;-"%=]  S'(Fw        p; !      $!'21$)&,( %2>OampncN5"!#&1?Qr  l>($)0562,&! ! ) 7 B!G!B!6!*"% "-#E#U#D$1$,$'$&%'%(%*%,&-'-(-(-'+')(*(+(*(+(,).(-(,(+(,(+(*(.'.','*&(&*%*%)%($&.#&#,#S"s"o"P!3!,!-!3 9 8 1,06861.,.383' -BPj  X,%$%,?]      k<"$    ! $0/!$/- )31 5;:95.$ '>l  lG=KY^]UA,#!! " % +!2!9!?"="1"*#.#?#X#]$@$,$.%*%'&+&.&,'.'-',(,*.(+(*(*(*),)+)-),)-*/)-(+).(.(,(,(,'-'*')'*&*&*%'$& #9#j#u#\"@"8"9!;!=!: 1 ) &&)&"  (4:4,*.<KH]  }^Z\i    hWTTRF1%&     !#'/,!./#"/6/$ "!%>l  |sxrfeeV8'" " # %!'!+"6"="9#7#F#Z$e$Y$:%/%2%+%(&)&(&+(0'.','+(-(.(-)-),)+)-+2+5*1*/*.)-),),)-),), ),)/)1(,(*'*'*'+',&,&*&(%(%' $&%F%i$b$E#6"9"="<!6!/!( $ #!!  $/=ABDGLJ@P         Z6$&%      "#%*,&,0)+6A<, !&?k   gLHZaN9 - & %!)!*!&"% ".#;#B#O$m$$x%h%Z%H%@&2&(')',(.).(,)-)/).),)+*,*.*1,5+2*0*.*-*,*,)+).*2*0)+(*(*'+')&( %(%'%)'I&Y'T';%/$5#7"1"+"'!#!$ " "! "'+4@P\UI@;Gr        aI>/&%    "!""$)*&%-/19HK='! !&=b}~mYA5F^a Y M C!A!B!="4"+"*#0#<#O$q$ % % % & & &Z'@')(*(,(-),)-)/*0*.*,*,*,+-+-+-+-,0,4,5,4,2,1,.+-+-*, *-+1*/).),)+(*(+(*(+')&( &*(=*P+P)8'/$3$3$,"%"$"$!# "!$&' (8WcO>79@LTV WXeypH+)31"&%    %#"$()"$(*-<MN<' ! %4?CIPH98G Y f l!m!n"h"Z#L#D#C$N$k$% % % & & ' 'a'5(*)+),)+*-*.*/+1+/+.,/,.-/-0-2-6.7-4-2-0-.,.-.,-+-+-+-,1+0*/*.),)+)+(*') ')*8+N,P+;'/&5&3%+$&#%"$!#!# ""&($"'<_dG4/030(#"#3N/$31# "'"    #)&!#%(%(;O <'  !#$'2FPJ> 9 @ P!b!i!m"s"y#~#}#x$q$v%%%& & & ' 'j(B(,(*)+*,+-+/,/,0-0-/-/-1-3.5.6-3-1-0-/-.-/-.,.-.,0,1+0+1*0*/),)+(*')),+8-Q.S+<)3'6&4&-$)#'#&"$"$!# " $' #%6UpiK6)%$" +FJ4&,51# #&()&     !(--( " &+'';PP<'* #"!#$##$*8GP O A 9!;!="?"A"H#Z#o#~$$ % %%g&J&I'Y']'N(:(.),)+)+*,*-+.,/+--1-2-3.2-1-002/3/2/3/4/3/404/4/3/2/1.1-0-/-0-1-2,3,2+0*/*,)+(*(,*3-@/V.U,?(4'8&9%5%2#.#+#("%"$"$!# " $ ('(:]{~iS@+  )@J=323,#"+-,)%     &'#!#*/,(# (/)! '=OP@0'#! "&'()*'%#$(-6 E T P!B!5","' #,#8$D$Q$f%z%x&`&A&.'+'0(7)0).),*, *,+.-/-1.1-0-1-2.3/4/2.00113030305171816151403/2/1/2/3/5/6/5.7.6.5,3,2*-*,)+)1,D.R-b-^+F(:'>&C&E$A$<$6#/#*"&"%!#!$ $ ' *6[lXSH. %6@:2-+&! +/*"    %176422/*!+0'+'<OUPF<4,'$$&''&+21'"!#&( - 8 M!V!H"7")"$#%#'$,$.$0%;%I&I&<'/')(+(/)4)3*2*0*,+-+-,./2.1.2-1.2/3/40503/2/1122414131426283;5<4;39272625141516292;2:08/9.7.6-3,.+-*, )4,O,`+q*q)_(M&F&F%G%E$@$:$6#/#*"'"&"%!#!$ ) 7 S{gC=MK/ #05,$"!"%.+     '4:84321.% -.! &:O\de\M>3,('$")6)! !" % ) 0!C!O"F"2"'#%#%$'$*%+%)%.&5&4'1'+(*)+),)0*3*4+5+.,.-.-003.0/1/1151818291513122324 35353637486>7A :E 9C 5;4:4837484:3:2:1:1<2='09/5-0,.+-+-*,*8*F+W*j)w(w'i'X&J&C%>%:%6$5$2#,#("&"%"$!%!7 ]  J*1KK2!#./$,/$    '36-$ !#!!&(')0/ *8IZgo eS:)! *98+"! " # '!0!@"I"=",#&#%$&$'%*%+%*&/&4'4'0(.(+)+ *,*-+2+7,;,2-/-1.1/2/203165:3<3;36253736354658695:8@ :E :D 8@7=6;597=7? 5<4;39293:3<3=4@ 4A 2</6-1-/,."+-+4*5+=)H)[(h(k'f'\&Q&C%6%2%4$2$,#'#&"%"'"2!V! }E+/FL:*""-!&/+    !(.43*#&(*, ,/3.! +(07<BPexvT."/=7+'$# " #!,!:!E"D"7#+#%$&$&%'%*&/&1&5'6'2(1(0).),*,+-+2,;,=-7-1/4040304151425374;5:36374859586868698:9<:@ 9?:B :A 9@ 9>7< 8?8@6>6<5;4:4;5=5?5@ 3>2<08/2-/,.$+.+-*.*4);)D(N(Z'f'h&T&;&2%3%1$)$&#%#-"?"^!! ! \C:>FC9.$ #-"!,/%     #&*-/,& %%''%&.5/%"$(*'#!-30,*1Fkj7 '6=2)+ ( &!+!8!D"F"<#4#,$($&%'%(&-&4':';(7(1)0)1*1*0+.+-,.,4-A-B.8.305261415362536394:4948696:6;7;7: 797:9=;A 0)9 , + ,!7!D"E";#3#2$3$-%)%(&,&3';'>(;(6)1)/*0*1+2+1,0,1-9.F.F0905163837395948485<6?6<6;7<7>9@9?9>9=9<;=<@ =D >F @LAMBQ@N?K @L>I R@U;H 8@7B 45>5=2:15/2/1.0.1-/,.-.,0+1*/*1)8)O(q('m'T&D&5%*%($2$]# # " "!T!C R n k>).>C8( !*0* '10'")*, *%!    )-'$$$##&)%!(283+'-I{a8*)3DE6- ,!1!>"F";#/#*$.$3%3%.&/&4'='?(<(8)5)1*0*/+1,3-4-7.A.I/E0:16376=5;6=5:7;6;6>8E8D9B9@;E =F ;B ;@<@>C >B ?E @H AJALBNBPDSFWAP?J ?G Q=L :C 9?8?7>6;13:261402/1.0/0-/./-1-3+5*8*>)J)f(( ''i&G&1%1%O$$ # #q"I"5!,!5 U  yD('5DD7(!")20% ".3*" $*-*&')*)%$"    "+* %&$!&-8A<43Cl {K/*-;QQ=0 ,!,!4"B"A#2#'#%$)$.%1%0&4'='@(;(5)4)4*4*1+1,2-4.7.=/F/G0@1927486<8?7=8; :BH ?J >F >D @F AF BH CLDO DLDMESFUFVDRCNAJ@G ?H @M@K :> 8<7;593736251403/101/0.3-5,8,>+A*A*A)J)b(|( ' 'p&O%U%$ $ #}#D#/",!-!I y W9/.:E8)(25+! #-51&"" %*-+&!!#%# !"!     $,( '&!<%-5AD:3<`  a4$#,C]Z= . +!,!.!8"C"<#.#%$&$'%,%.&.&2';(<(3).)0*3+6+5,3,1-2.5.9/A0D0@1826495;7=6;9> :>:==E >O @Q >J ?H AL BM BL BK DLDMGTHZHVGTHSGSFOEOGRIWHUGUDQDNBI AF ?B >@ =? <> ;= 9<9> 7=5:473624140204/6.8.;->,>,=+8+3*2);)N(p( ' & & % $$O#/#("*"-!/!B!k  w`J95<FE:5:5'"!#-46.'# *2/)#     %-+ &(#="*6@F=-':o J'#4Ri\ = - +!.!4"A"E#:$,%($&%)%+&.&-'1(:(8)0)+*-+2+7,9,7-3.2.4/:0@0=182536587:7:7::?C @J BRAN @L AM ESGUHUGQGPJYOhQlNcL]KZJTITJVJWITEMDICG BE @C ?B >@  !$-@I?/"0i  I$ ,JhiO 7 /!0!4">"H#E#7$/$*%)%*&0&5'8':(>):)0*,+/+2,7-<-=.:/8/90=1>18253556586:8<8<;A>D ?F BL CNDM FPJYL`MaLYKTN\UlWsSlPbO\MXMWN[N]N[MVLRINHOFLFJDH BE AC ?B ?A >B =B ;? 8:7946473:2=1<08/5/3.1-0-/,.+-+-*,)1)E(i' ' &}&T%9%0$-#,#-"."1!7!F S ZZ\TNQ[g[:$!%&!(,& ,),81      '14332/*#""$2FF2"&U  X+'<`lU : /!1!6!="HT#>#4$1%/%,&/&8'D'J(M)I)>*2*.+0,2-4-8.>/A/@0A1?2<26355667688<9?;A=C ?D @D AF CI EKFKFJ GLJRN^QfQaNVOWS`TgVjSaPWPWOTPWQ\SaQ[OTORNTKTJRIOGMFJDF CE AE ?D >B ;?9;8;58594<3=29271402/1/2.1-/,.+-*,)1)C(Z'_'N&:&1%/$/#-#-"-".!/!4!= = DPY]aoyK* !"&*+' &+$#-* 39*     '/3/+$  """)<K@(D!D vD?Woa> * (!/!9"B"F#>#3$1%2&4%4&9'C'J(N(M)J*C*9+4,3,0-0.4/:/>0@1@2>3:364667798:9<:@=B?D AC BD CF EH FIHKIOLXP^RaSdTdS]QWRVU[XbV^TX!SURUT[S]RXRVTXR[P[NXLUJQJNGKEHCF DH BH =A:>9?9=6<5<4;3736241302/2/3.2-/,.+-*,*-)6(E(F';'4&1%0%/$/$.#-#."-!/!3 0 *+5CNXh i9*+--.-*$#)'#**!'87#      !" "  *0-&"(9IH5$4m  ujslM 0 $!'!0";"A#>#2$+$,&/&3&:&B'G(D(=)<*@G+<,9,4-1.1/3/407182:3:374667798:9;:>;B?F BF CF DG FH GIILKPOYRcTeTbUdWeWbV]W\V[X\[cZcZcWZVYX]WbW`X^X_XaUbT`R\NWLSJPHLGKFMDL ?F (5'1&/%.$.#.#."+",!.!. ( $#)/5Dp H/.-*%"')')"!.;2 #"    #!!+?U]P7,7HI9''N   ~]8 & "!'!2":"9#4#*$'&)'0&:'B'@(9)1)0*6+;,;,8-6.5/5/405162637494857788:9;;<<>=ECL FMGK IKJMMQOTRZT_U`W`Xd[g\f\e\d\a\_]b\a\_Z_]f_k\h\f\d]g\m [hS]PYNTKPKQJTFPBJ ?F =D6:574635241303/3/2.0-/,.,/+3*<)@):(2(.(,'*&*%)%+$/#3#2"-")!*!- * $! !*T  O0*%# #+('#"'69*%&   "$,4D[t{`NQO='$<d  Z 7 %!#!("4"7#0#*%(%'&(/'.'6':(5)/)+*,+1+6,7-6.6.5/505162738484959788::;;<<>=>?FEP FOIQJPLONQPURWTYUZX^Zd]i`n`obp bo cm bkahaeadahcp!ct#bp!anajaj_l_p!^m XcT^RZOXPZLXHUDO BK @J >G ?@@GGS JVMVOVPURUSVVYX_Zd`mct!dw"ex#gz$hy$iy$iv$ht$hq#gm!fj!fm!iw%j~'j}'hx%gs"en `k_l_k[hYcV_S]R_O]JVHTEQBK @H >B<@9>7<6:584635241302/1.0.4-:,?+=*7*4*5)6)6(2'.&0%5%=$>#8#5"3"4!6!4 + $!#B h9'!',(#'3;2!%,)%  $$9`wqZFCVktnZ<$#.76/ 8DT d Y!?!/"/#6$5$+%'2&)',&.'1'2(2).)+*,+-,.,1-5.6/303142536374;5>7?8=9;<==>>??@@@AHJZO\P\S\T[UYWZ[`^haqh}%m)l(k'o*p+p*o(o}(nz'lu&lq$9n|(r-u0r.l}&kw$gp!bkak`l_kZdWeUeO]JTHP GP DL BF ?C>A;=9<7<6;59473535241304/6.:-@,>,9+3*3*9*A(A'='9&:&=%>$8$1#0#4":"A!>!1 & "!":r w?& $-,'%(3=:-! !&#   %!(FebF0%.9AJSF- +9<5+()+9 V b!X!H#@#<$4%+%'&(&)'.'1.(0)/).*.+-+-,.-1.5/60403132435485;7@8B9A;?<>=>?@@@@BDLPeVjUcVaXaY`[`^gcq i}%k(n(o*r+x1~5y1v-u-t,s~*2rz)qx(r*v.y3y2t+p(kw%fp#em!hv%g|%`p[iUaOYKR HM EJ CG AD @C>B<>;<9;7;6;5:49372515090?/A.?-9,2+0+6*@)H)J(A';':&9%6%0$,#."6"E!I!: ( "!#9r w>$!/4-('-6<;2&!   '%/RcI-!#!#.EM=/*,3>FA83/,& , @!V!_"]"R#E#6$.$*%*&-&/'0(.(,)-*.-+.,.-0.2.3/30415253546577:8>9C;FA?AACBFERMcVkYiZg\g^f`gclj~$s-v0t-u-x.{25~3|1{1|/z.z.y-x-,y/z1{/{-u+p}(lx&m}'o,l)ex#`oZfR[LR GK FJ DGBE@B?A=?<=;<9:7:6;5;4:37281@0C/?.8.3-1,5+=*G*M)G(9(2'1&0%.$+$)#(#.">"L!C!. # "!#@| k9%  1;5*#!%.792$    "$(+& !<ZV8% %5FLGDJPSPD>;94) & .!=!J"Q"P#E#:$5%4%2&2'1'.(+)+v*.+/,1,0-1.2/203152738485778899;:@E?CAEBGCMG\ LcVg[l^malblephv"n'v/z1y/z/}23555542210~13332|/u*r~*s,s-o*i&fv"ao V`NUIM HI EFCDBC?A>?=><=:;8:7;6>5<483:2B1C0;/3.0-2,;,G+I*F)<)1(,'+',&.%/%-$(#%#("4"J!K!6 & "!%C} f;($!%7C:'(47,  "$&%1+IVC.$"! !&5DLOSQKA99<@> 3 )!*!0"7">#A#<$8$6%8&9&7'4(/(+)+*,x+/,0-1.2/202132437495:7:899::;;==C>H?IAIBJDPF\Gf Mc Wd^ncrdogs!jv#lw$q'u+y-{.256897655654458751{.u~+u,v-t-o)jx%gv#\fQWKN GIFGDFBCAB?@>?=>;<:;8<7?6=5:4=3B2A1803/1.6-B,H+A*7*0),(*(+'-&0&1%,$'$&#'#3"K"Y!K!4!% "(DnnP:.'#!  !,:GH8#+72!   %;QJ0##!!" #-6<<5/*'-6CK D 7!4"6"8#6#1$.%/%0&4'5'3(0)-)+*,+.,0-1(.2/302132435485:8<9<:<;<<=>@?EAKCPEVF`Hi Ih M_ X`bneu gq jr!mt#ou%ry&w*{-}.23;A>:;>>Z=;89==:63|/{/y/y/r*lw&ju#`iTYMO JJHIFFDEBCAB?@>?<=;<:>8@7=5;4>3A2=1704/3.:-F-H,:+/*,)+),(-'/'2'1%+%)$*#.#;"O"c!d!K!.!&.EZcgdYH=750*%$#%*,-2<GOM@-$65#   !(7JN:$"" ! %)'#!  "+?X [ J!A!=";"8#2$-$)%(&*'-(1(3)3*1*.+/,0-1.2/3041524354657798;:>;???@@BBIDUHeHo Il K_ NW Zbdniv"n|%q&s(v)x*~.2677;A@@CDCECA>;?B=;61}.x{+uw)sw(pw'kr#agUZOP KLIIHHFFCDBC@A?@>@<@;B:A7<6:5>4A3=281708/?.J-H,:+0*,*/)0(2(4'4'0&-%/$5$=#B"I"X!j!_!B!4<NSLO[b`YTNI?4/3=GMNORPG:/# #54!  #$%/<F;,"! "    &= d j!P!="9"5#2#.$,$(%'&(&('*(.)2)5*5+2,0-0-0.2/3051626355768899::=<@=A?A@ABCCIG\Ir Kv Kd MUPR Ychv n%s)w+{,~../5;;<>BDEIIJKIFDA?@A>841~.{|,vy*su'mo#agX\PR MNKKIIGGFFCDBC@A?C=E<DNQONLF9+$"$43!  %)(-;D?2(#$!  !!  'C l j!D!."+")#)#+$-%+%(&(')(,)/*3*4+2,0-0.1/1021527374757789::;;<=?>B@CACCEENHg K{ Mt M\ OQ QR W^iz s'w+}.112359=?BDFJNOOPMIGCA@B<76530|~.wz*ps$bgWZRS OP MMKKIIGGEECDAC@F>H=E;=:;8:6:5?4@3;27170>/F.L-L,B+;*8*6)5(4'2(2'8&B%A$8#.#*"1"K!c!^ L KXgkbQB<853;ED FIF;2-,(!#"$21   "*21.6?9*!!#$   "#$+:V q a!9!%"$#%#%$)$-%.&,&*'*(,m)-*1+2,0,/-/.0/10213274;5<7=8=9<;=<>>@?BAEBHDNG]Jt M~ Pm NUQQ ST X^ g{t(z,/45/+,026>GKOSUWTKA;89;72/24540{},ov"aiW\ TU QQ NNLLJJIIGGDEBDAI?I>D<>;<9:8:7=5@4?2:1708/;.C-L,M,K+E*;)4(3(3(6'?'C%9$.$)#'#+"=!U > 3:M_nkR=3-*/:@B=1%#'""0/   "#,3872177+$'&%#"" "$'/CX i !O!0"%"$#%#%$&%+%.&1&0'0(/)/*/+/,.-/.0/10213263;5@5C8D9E:I<=:;9:8:5<4?3>2<1908/:.A-I,Q+R*F)8)5(;(D'F'?%3%,$)#*#/"="T!V!< ) &-<UmdOA81.130(!#%,,#!0.   (2862,' -*'-)#!$# "%)7Td ^ N!;!*"%"$#%#%$&%(%,&0'4'5(5)3*1+.+-,.-/.0/102162=3B6G7F8D9I;Wm?j AeCfFn Gt Iv Kr Pi S] TU TT WX [ldlv%|'$!~y{ !!'0<=@C:64::+}"{#un}i{by\uXq Tj Rb PY NQKKIIGHFKDMAI@B>?<=;<9:897:5<3<2<1;09/7.7-=,I+W+R*A)>(G(L(F':%1"%,$+#.#7"D"Z!c!O 3 &!&9V^UNF</*&! $&*30"!/-   ".9>7+"#*-%#$!  !"'6U] F 3!.!)"%"$#%$&-%'&)&+'/(4(6)5*1+.,.-/.0/205182>3E4F5D7@9?:H?=>;<9:78594839291:09/8.8-A,T+]*P)K(O(G':&1&,%*$+$3#;"C"R!e!f N 3%$-@IGIKC2($ "$$"&64$  .,    )5>?9-! "#&-*!!#$"  "2PV < *!*"(#%#%$&%'&('*(-)0)3*1+.,.-0.4/:0?1B2E3E4@7=8:9<;Jk?aAcCkFk HcJYLSOR SV X] Y_ b[e ^eosr}tzy| $# "(2987ALM=,u|o{mwinfhbf _f \f Yi Wm So Qm Ng L_ JXHTFOEGCCAA?@=><=:;9:895746261608/9.9->,R+e*`)R)L(>'0&*&)%($,$6#:#7";!O!f f O5*,498<FG8*&" !%(&"%7$,,  +7;7/&!!+-('-1/( "#"   !/J S @!/!*","+#(#&$&%'&(')(*),*1+3+2,3-7.</@0B1B2A4>597889:>;M=d?e@TCMEQGRIOKLMMPP TT Z\ ]a ^c _h aenrs|vzz{$%%)&##'2=A:=P[Q<* !#!zs~owloiieebb ^^ [^ X` Ve Ri Pl Mi Kc JYHNFGDDBB@A?@<><=:<9;7:58241304/7.;-B,X+j+b*P)G(<'/')&(%(%.$8#6#,")"5!O!h i O7-+,.4@K@ -&'(+,-,& (:$*,"   *78-#!1@A?=<6.& !!""   $1F O B!6!0"1"0#,#'$&%'&(')(*)+*/+4,8-;.=p0>1<2:3847678;9@;Gc@`BODFFFHHJJLLNNQQ TT YY __ cdcgc|gmrv{}}~%),.,()0=IIAH^aO<*$&'#~xsypsllhhddaa ]] ZZ WZ U] Qa Ne Lc K\HOGHDEBCAA@A>?=><>;?8=6;47341307.>.O-f,j+U*E)C(?(4'+&(%(%1$8#2#)"$"'!6!V t f>)"&.<LF.%'+.-+'$"!,>=%%,&"  !18-/BHB>=8/&#! "!!"!  &/;C C ;!8!7"8"7#1$)$&%'&(')(*o)+*-+2,8-:.9/806152535467;8D:J@P@RAWASCIEEGGIILLNNQQ SS VV YY ^^ ddjkn}oty~"'38;95=JRWUTgzjRE=751+ {vxrrllhhdd`` ]] YY VV SS QS NWL\ IZGUENCGADAB@A>@=?;?:A8B7B4;3;2G1b0z.u-W,<+4*7)>(:'0&-&3%8$3$+#%#%"$!&!C t uB$  "2LUA-'&$!-C?'"++%! !$  &.,"5E?)!&'*.16: 4, ( $!%!+"6#C#C$7$*%'&(')y(*)+*,*-+0,0-/.0/1021335475=7I:P=L@IBLARBRDKFFHHJJMMOO RR UU XX [[ ^^ eemovx #'+7?CBAKX^a``xtWKHB:3*!y{ttoojjfgbc ^_ [[ XX UU RR OR MVJXHYFUDQBLAFAC@A=?<>:>8A7E6F3M2d1{1z/_.B-2,/,3*:(:'6'6&:%9$0$(#%#%"$!&!C s tB$  )>SK6-'#" -EA(%,,'#!   %(%0DE3!#+..136 1+& $ "!#"&",#9#D$?%1%(&(')z(*),*.+0,1,/-/.0/1132435475?8M9O=G?BAGBPCTEOGJIIKKNNPP ST VW YZ \] `` eemox!%'*-/3?FMMNZgkiko}]USJA:,"|~wwqrmohjdf`b \^ YZ VV SS PP NQKRITGUEVCTBMAF@B?@<>;=9A8I6S5e3{1y0`/C.4.0-/,1*5(6'6';&@%<%1$(#%#%"$"&!@ p wI*"! #1HJ9,% !"!.GE)")-,%    "#%&%&(&"! "<I9'!,570++-0,) & $!#!#"$"&#1#?$E%=%3&/',(+{).*/+/,/-/.0/102132435467@8N:PGLQW\iusqrc\YSH?1&!z|tworjlfhac ^` Z\ WX TT QQ NNLNILGMERDWCTBJAD?A>?E9,!"##%4LK,&)(&   "&)+,+("'CG."(495+&'*,*)& % #!$!#"$"%#+#7$C%G%D&A':(3(/).*-+-,.-/.0/102132435577@8M:P;E>@@ABGDNFUHUJRLQOT RW UZ X] [` _d chgllsqw}#/8@HPT[_gpz|zie`[OA1'#|vzqtlmggcc_` [] XY UU RR OO LLJJHIFNDVCYCNBE@B?A.*'!&5=9.! $%)6PQ2  &(%$&!   !#" )EG,!#&'*13-# #()$#! " "!#!#"$#'$-$7%?&E&I'I(?)2),*,+-,.-/.0/102132446577>9L:P$:$1#'"$"$!*!G j c<)($"%.574(#"!"#"#0MX>##'&'"  #" )GI-"&&%$(.*"#'%!!! " "!#!#"$=#&$($+%/&7&D'O(F)4)+*,+-,.-/.0/102133546597=9G:LG?DAFCGFJINKPMPPQ SS VV YY ]] aa eejjostz%1>CJWbkpz:yqnhYC4-'"{twopjjeeaa ]^ YY VV SS PP MMKKIIFHDPBXAV@R>Q;W:h8 6 5k3N1=04/1.0-0,1+0+.*-*-),(-'-&0%5$:$6#+"%!*!B b _>-+-,,-.2530/,*&"!(AXL- "))*&  !   !$"+IJ/!$'&"!"+,#!$&$ ! " "!#!#"$#&$'o%)&0&B'Q(H)4)+*,+-,.-/.0/1021335485;8>9A;FK@ICGDFGHILKNNOQQ TT WW ZZ ^^ bb ffkkprv| $,9HT_kpxxriZF90+(%"}uwpqkkfg`a \\ WW TT QQ NNKKIIGHEMCWA[?^=`;c9l8{ 6s5S3<1402/1.0-0,0+/*.),)-(-'*&*%.$7#,"&!/!D Z WD92/.362,*.100.,*%#5PV<"'.56,!'02/,)$   ! #4QU8#$*("!(-(#&" ! "!$!%"&#&$'%)&3&E'P(D)1*,0+-,.-/.0/1022436495;8<9=;@M@MCGDEGGIJLONQQR TT WW [[ ^^ bb ggllqrw}!%+5DXhpx5wn`OA730+&"~wztvloei`b [\ WW TT QQ OOLLIJELCT@Z>^<\;Z9^8l5e4I382402/1.0-0,0+0*/*/).(.',&(%,$4$8#0"("-!9!I L E?=5*'.791'# #$$%&&%$-EZI)(7JTM>,#(/750,+)"  "#'*/36C]jW?," *-%%, ))%" !! " %!*!-"."+#'$'%*&3&F'O(A)0*,/+-,.-/.0/10224374:5:8;9;;<M@OBHDEGGIILMNQQS TT WW [[ __ ccggllrrx}~ "&,3?Rgt}/}rgYNA:2)#y}swoslpglch]a Z\ WX SS QQ NOIKELCP@P>PTpxlV?+ #-$!)-,*&" !! % *!/!1"1#/#*$'%+&5&G'N(@)0*,.+-,.-/.0/102253648598:9:;<M@PCIEEGGIILLOQ QT TU XX [[ __ cchhmmrrx{!"&,4>Ncr3}pe\RH<-$z}twpsjmegbd _c \a X\ UW RS OO KKILELBK@G>DBNVO>/,)!'(    '031.)#!%4Mhz|kK,#*,%")**'$%& + .!/!,",#/#,$*$)%/&>&L'L(<)0*,.+-,.-/.0/10224364758899:;==C>M@QCMEGGGJJLLOP QT TV XX [[ __ cchhmmrrx|!#',5>L_m{3{l^RLF6)"x{rtmohicc__ [\ Y[ UY RU PQ MMJJGJDKBH@C>A=A;G9W8e5[4F3;2602/1.0-/,.+.*/*1)1(.'*&(%'$)$4#?#D"@!6!+ # )79,!!,=9'$0O    ]LJMLEFF9'$.?NC5% '$   "%*.0*"'9SonA#!#%))$#))&)/1- . 1 2 1!,!'"(#+#+$+$,%6&F&K'A(3)-*,.+-,.-/.0/10224354758899:;=L@VCUEMGIIILLOO QR TU XY [[ __ cchhmmrrx~"%)-5>L]jyv|m[JA9/("x{rtmnhicc__ [[ XY TW QT OP LLIIGJDKBH@B>?N@[CaEZGPIKLLNNQR TU WW [[ _` cdghlmrtx~!&*/5=IYguoxm_M>4-&"~xzrtlnghcc__ [[ WW TU QT NQLMIJGJDLBI@C>@DY    or     pS=( -:7"(  !" ! )R|~U.#%##%)% *9BEIJF=!5!.!) &!% "&"'#+$6$@%G&E&9'.(+)+*,0+-,.-/.0/10224354657798:;?Q@[CfEh G_IULQNPQR TU WW [[ ^` bf gllqqvw}$)/5=GUdp5tj`RC6-%!}~wxqrlmghbc ^^ [[ WW TT QR NPLMIJGJDLBL@F>DO@QC[Eg Gk If K] NWQW TX WY Z\ ^c bi flkppuv|!&,2:CO_jvnd[QD:1)#|}vvppklfhbc ^^ ZZ WW TT QQ NOKLIIGHDIBL@J>L<82/6>7("',*  ')">s_5%%#&,.3@RYL;1* (!'")")#&!#!#!$"(",#7$C$@%4&-&)')(*)+4*,+-,.-/.0/202133648596<9D:JH@EBKDXFf Ip Kl Mb P^ S^ V^ Ya ]e ah eijloptyz#(.5>IVcmy/mXNF>93-'zzttoojjefab ]^ YY VV SS PQ MOKMIJFFCEAG?L>VmPB:4/-+'!zzssmmiide`a \\ YY UU RR PP MNJMHJFGCEAE?L=_?@ABEDNFaHv Jv Lb OV RV UX XZ [\ __ ccggmmqrv|#',3;CMYcjqw}~|xuquziL;3,(%##stlmgice_a [\ XX UU RR OO LLJKHJFHCFAE?O=g;n:Y7F6@5@3@2@1?0</:.8-5,3+/*-),(-'*&(%'$$&#-#A"X"d!a!S E ??=5,'*5CJJKMSVSH?6/142.-*&!"-8<ATmp_M?:7-!    .-/Y \9.>]s}ygR>1'"!"!%"&#(#-#-!'!$!#"&"+#6#:$2%+%(&(')(*1)+*,+-,/-7.F/S0W1W2W3Y4Z7Y8N:B<=>?@BBJDUFe Gt Io L[ NPQR TU WX ZZ ^^ aa ggmmrrv}{!%).5;DNYcjoFnmleag`L:2,'"wk{fwas^m Zb WY TT QQ NNLLIIGGDFBD@E>U=m;k:O7>6<4;3>2@1?0?/@.>-;,6+0*,)+(+(-'+&(%'%'$'#2#L"Z"T!O!N A 2*'" "',,--0,57273*(*+(" .NgniZK?0   &0+  );Zxz^LdnU<-'($#$ '!*!,".!-!( $!#"$"&#.#6$7%1%*&(')(*)+*,+-,3,A-R.S/J1C2A3B4H5N8L9A<>>BALDUF\GeIp Ij KWNOPP SS VV YY \\ `` eellrrw{}"&+2:AIS[cfbabcbXTYXL=72*#zne`\Yv Vb SV PP NNKKIIGGDEBD@J>^5K7L:EhPAMCIEIFSFdGg IZKQMOPP SS VV YY \\ __ bb ffjjnps}{ "'++*,.02456=KN?368.$}ztvmnjkgjdu[VRPw Mg Kc Ib GaD`B_@]>c=o;g9K7;684635251402/1.0-/,4+>*B)=(5(0'+&.&:%N$k$#"c"D!2!* $ "#),./0.'"#&%  )+-:>- #")EC&(=D9+    "!!#")7><0" !"",61'"! $ &!&!#"$h#%#-$<%?%8&2'.(,(*)+*,+/,<-O.O.?091;2B3I5J6H8M:P=L@GCGDHEPE_Fg HcJYMROO RR UU WW ZZ ]] aa cdggkmoyt| %'$$%()+--.3@G9,+/+$|xus{surrllffaf `~\WS Ng LX JTHRGRDVAX?Z>^(:'7&>%[%{$##c"="*!# "#'()/0-,.0-(# $*)'1<4#$/32+")EB%,9>:1%   ! &(#! "#%06.$"! % (!*!&"%"$#%#.$?%E%?&8'0'+(,)+*,+.+8,I-N.G/C0E1H3G5B6A7H8M;M>J@IBICJDSE`Gf Ja LTNOQQ SS VV XX [[ ^^ aa ddhjkuot|!"!#$%&((*3=6,'''%~xsowknjjiijjfi`u[YWUy Q^ NSKMIJFIDIAI?K=M;S:V7K6=5746251404/4.4-4,4+4+5 *6)8(;'B'O&d%%$~#^#=")"$!# "6$'%##',2543/-,*)((($#)9?88DRWSI:/,)")EB%"+472%  !  &%"#%/4-$#$( , /!/!,"*#+#3$E$L%H&@&7'4(5)5)3*3+9,C-F.D/D1D2C3?495:7C8I:JG,>-;.90918273646576<7@9E;J=M>I@DADCNE_Gg J]LRNNPP RR UU WW ZZ ]] _a be ekhrk|ot",1&y{rujlffbb __ ^c ^|]YT Qi OTMPJQHQFRCOAN?L=L+8,3-2/10113243546697>8C:IJB=9DVP/#(%  !#$&"%&#!%+20)# " #!&z"("*#.#2$4%5%3&1&0'1(4)7)8*7+3,1-0/0011326394<5>6C8J9P;RB?@@DCPC[F_H[J[M\ O\ QZ RY VY WZ Z] \` _c ae dkgujpw}{{}}~~}|}}~$wytvqroollkllnjlef`` \] Z` Wq URR Rf QS MMKLHKEKCHAE?C=B??CALBSDVGWIYJ[L] N^ Q^ S] U\ W] Y^ \a ^b ae clfykq|vzxzy}yv}v~wxxxxz {{rroommjjhhfgdfbd `b \` Y_ Wa Uq SQN Ng MRLLKLILFIDEBC>?<=;?9F8L7E5;492:1906/2.0-/,1,5+8*C)[(u( ' & &%L$3#2#-")!&!$ "#)'"  'DO>9ID( %-10,0CVF%!    #++$!(0-+,,$!)4<;0&#$(./,' % "!#x"'",#1#2$3%3%2&2'2'1(2)3*6*7,9->.B/E0G1J2K3K4K5L6R7_9]:J;>=?>D@LANCKEKGMIQKUMY O[ Q] S_ U` Wa Ya [a ]b `h crgzl{qysyszpwpuptqurwrzr~rwwwmmjjhhffddbd `b ]_ [_ Y` W` U] Sd Q OMK{ IWHKGJEICEAB@A=>;<:=9D7K5F4:3627190;/:.9-8,<+A*I*\)r(x'x'&y%P%3$+#0#3"-"(!& $'*'" 0II0.EC'%,./,:RL,  "(-.)'+01+%&,21,)*-5=FNP?*  !',0- ( $!%!("0"9#B#E$F$D%C&B&A'A(A*?+?,C,M-X.\.X/P0F1@2<3<4?6L7`8a9L:?<=:;9<8B6K5G3:241306/:.>-B-F,F+H*Q)f)u(m'm&s&_%;$(#-#3"/"(!$!% & )+'"    ",;IA+-FC'*/.,--6KN6   ',,**+)%#$,7?CDDEEDCJXM0!z"(.0. . 1!;!D"I"J#H$G$E%E%B&B'E(H*J-M.T-[-`._.Z/M0=161324375D5Z7e8V:F;AL?I@DBDCDFFHHIIKKMNNPPT RX T\ V` Xd Zj \p `p cj fhghhhffeeffgggkhth~hnxvqjtdiad `d ^c ]a [^ Y[ WY VZ T\ RZ PV NVMg K IH F`CMBI@C?@>?<=;<:;8;7D5K4E39241303/6.=-B,C+@*?*K)i(w(s's&j%M%2$&#*"1!'!# # &(,(%"! %!(19=?7+2ID'",/'"$*/>MC/$!  %&$"##$&',3;?BCA=4-:T<(  $)/7 B J!O!N"H"?#9#4$4%4%3&4'7(=*E-N-T-T-M.J.M-F/:/30213244;4N5b8d8S:H;KF?AABBCDEFFHHIIKKLLNNPR QT SY V` Wj Yr [m ^d `` aa bb aa aa bb be cncvc{c}hpmj~fx`m ^l \m [l Ye X] VX UW SV QY PZ NX L^ Kx I H Fx DVBLAK?E>A<=;<:;9:8>5G4J3@261302/2.5-9-<,8+4*6)N)z( ''p&U%:%+$&#%#)"1!(!$ # &($! %"-7>91-*(6NJ-!)22*$%)+3DKE=8/"    !#%'&%%$%')*+'#"/HUL9' |$*6J X V!L!A":"6#2#,$*$)%)&*&*(0*8+@,D-A,8,9,A-C.>/8041324374A5U7e7b8Y:W;S=F>@?@ABBCDEFFGGIIJJLLNNOO QR RX Uf Vr Wn Zb [\ \\ \\ ]^ ]b ^f ^j _r_t_o _j dmiqgrfxbz\t Zs Yt Xs Vm Ub TZ RT QS OT NVLW Ja I G F DfBJAG?I>H=C;=:;9:897>5I4I3=251302/2.4-8,8+1*0*;)\( ( 'x&T&=%.$'$&#%#)"0!'!$ # &'%! ' '2:7," "$7WV9'"!%+/5:;720/**5>@=<8*  "%&%#'7IUL4'l/<O`_ K 8!0!."3"4#1#-$*%(%''((*).*5+7+3+3+6,:,;-=.=/9041324374E5\6j7n8p:f??@ABBCCDFFGGIIJJKLMMNNPT Ra St Tx Vo Wd X` Ya Ze Ym Zu [x[v[m [c ]_ `a hhdg cm_p Yn Wl Vk Uo Sq Rl Q` PU NOMNKNJOIYG{ F C BhAI?B>D=GAO`hdO 8 *!&!'"."4#7#5$2$,%+&,'-)2*6)5*3*4*4+3,3-7.=L/90413243;4M5_6l7{ 9{ ;c>??@ABBCCDEEGGHJIMKNLNMSNc P~ R S T U~ Vy Vw V| W W| Wu Xi Y^ ZZ ]] aa __ ]_ Y^ V] T\ S\ Rc Qm Pr Ng MULLKKIIHHGMEf C B A| ?Q>A=@0:0413263?4G5Q6j7 9t;R??@@ABCCGDPFYG`Ib Jb Ke Lt M NPQRSR S T| Tq Um Uf U\ UV XX ZZ -UU SS RR QR PS OW Na Mo Lk KWJKIIGGFFDFCTB} @ ? >b=E0:16293>3>4A5W6} 7 9o;[C?F@MAZBl C} F G H I J K L NOOOPPQ Qj Qf Rf R^ RU RR SS RR PP 2OP NPNQMPLZ Kk Jm IXHJGGFFCDBCAH@d? > =z i?s@ A B C D F G H Iy Iz K L L LMMN Nx Ol Pi P` PU NNNNNNMM/LNLOKMJLITIg Ho G_FLDECDBCAB@D?V> < ; :a9N8H7D7>6;6:5;4@2N0S/H.:.3-/,.+/*H*}) ( ( '&P&3%,%+$*#'#%"$!&!- , &!"$% ",22;OSJAGctgL1 %" #+'    *T  ]1#!n"# % $!$!#"$"$#(#*$,%*&(%)&:'a' ( ) ) *p+M+8,4-8.>.E/H0J1I2H3G4Q4m5 6 7 8 : ; < = > ? @p AeBbChDo Fq Go Gl Hi Ib I` Jj J| K K L M Mw Mg MULLLLKKKLJLJMIKIJHJGOG`Fn DhCRBEAB@A?C>L=`< ; : 9^8N7L6J5A6:57463;1J/W.O.;-0,.+-+2*W) ) ( ''^&;%-$,$*#&#%"$ !&!. / +'$"%'%!  %.5:CP\Z_THHSfN:.)&#!"),&!&,&   "  &I i@/%"!"# $ #!$"% #'#(%(%)%/&K&|' ' ( ) ) *+e,],-`._/V/J0A1?2A3J4Y4c5j6| 7 8 : ; < ={ >e?V?N@NATB\C`E`E\FVGPGLHOHZIt I I JJ K} I` IOIJIKILHKHJGHFIEKDVChBm A[@G?A?D>R=j< ; : 9i8L7A5E5J5F4<46352;0M/Z.O-9,.+-*7)j) ( '}'Q&<&0%.$,#'#%"$!#!( / 553-((%%!!$-7=AHWfnqrqjcYC6:FOK=787652.-040)#   $*%   !"   $@xnQC6*"!# $ #!% "'"(#)#*$+$.%=%d& &'\([(|) * * + , , - .y/U/=06172?3I3J4E5J6W7`8c:f ;]M?N?O@NAMBLBICHDH FIFLFWGj G G GG G G\GMGLFIFH-DHDICHBGBNAa@n ?a?K>D=Q0S.X-F,4,.+-*-*E)( ( '[&6&1%0%1$.$*#&#%"$!&!+ 0 3694/.,+1=HZluy{|yrjaSLH?1,/3.+,14433.(" !%!   ! 56gmRLH9)""#$ % &!(!)"+",#-#0$5$I%v%&e'<'4(I(n) * * + , , - .y/O/7051<2H3G3=495;6=7@7G8O:O;II?F?A@AABBDBGCI3CLESEbE E ED DiDNDICFCECGBHBIAG@G@P?a?m>`=K,0+-*,*0)U( ( ''H&3%3$/$*#&#%"$!'!- 1 0*,45212=Xp||xtgSC:3-,.+(&""!#''%       " ,TylF>JH7&!# $ %!&'")",#.#3$M%z%~&P&/'*'.(=)M)X*]*_+g,- - .r/L/G0T1[2Q2?364657596@7J8K9E:@;@??@?@@D@JAOBOANCQCVCdC CB Bo BKBDACADAG@H ?I?P>\>j=i58 4635252:1F0Q/L/@.C-Q-O,:+.*, )1)`( ' 'n&<&3%5%2$*#%#%"$#!%!+!3 8 4(&,/./8F`|{nYHA=5+""#$%#    !"Dsn@/>JA/#"! " "!# "%"&#(#/$L$w%u%H&-&(')(-)0)3*5+;+P,~- - .z/}/ 0 1p1L293546 5<6G6K8H9@9<:<;=;<<==>7>A>H>O@T@V@WAYA\@a@ @ @ @t @K@B?A?F?M>Q>S>Z=c=jpqC-5A8.%! " " !#!#"$"%#2#S$s$h%D%/&*&)')(*),*0+:+Z, , - . / 0 0h1B253535485B5K6N7G8>9;9::;;<;>N#>P?T>U>W>\>q> > > >\>H>I=S=^=e8;7F7j6 5y 5N4835362615080=/G.X-B,;,G+L+A*6)1)2(=(o' & &]%5%3$0$)#%#%"$!#!& + 2 ; = 5,-:TkvxjQ6%$  TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/stories/holotzcastle/level031.hlv0000644000175000001440000007507711177007633023241 0ustar jacobusers@defaultN33?                     C05E`@@< >CGC,@,@*CGC@@ 4CGC@@@@ CGC@@@@ CGC,@,@CGC@@ CD@@@@ CD@@@@ CD@@@@ CD@@@@ CD@@@@ CD@@@@ CD@@@@ CD@@@@ CD@@@@ CD@@@@CVD@@ RC.D,@,@BVDgf@gf@ CC@@@@ C.D@@@@ *CC@@@@ @B8E@@@@ C8E@@@@ RC8E@@@@ C8E@@@@ C8E@@@@ B8E,@,@ C8E,@,@ fC8E,@,@ C8E,@,@ C8E,@,@C8E@@C8E@@>C8E@@B8E@@B8Egf@gf@*C8Egf@gf@C8Egf@gf@C8Egf@gf@zC8Egf?gf?tB8E?? C8E??C8E??C8E??C8E??C8E??qC8E??IC8E??B8E??B8E??2C8E??C8E??C8E??C8E??^C8E??B8E?? C8E??C8E??zCB@@jdCCfCClCCC3ECp1EC2EzC3E>C05EC2EBp1EHB.EB-EC.E>Cp,EfC.EC-EC0+EC)ECp'EC(EfC(E*C(EB(EHB(EHB0&EB#EC#ERCp"EC0!ECp"EC#EC0!ECEC0ECEC0EzCpE*CEBEHB0EBE>CpEC0ECECpECECDCDC`DzCD*C`DB`DHB`DCD*CDfC`DC`DC`DC`DC`DCDzC`D>C`DCDBDHBDHBDBDC`D*C`DRC`DzCDC`DCDC`DB3DRCGDCDCBDC.D>C.DCDC)DCVDCVDCDfCCBCCCCCCCfCCBCRCCzCCCCRCCzCCCCCCCCBC`CCnCChCCgCC?B E?, LCE@" CE@CD@ CD?pCD? C0 E@$ CEholotz-castle-1.3.14-src/res/stories/holotzcastle/level003.hlv0000644000175000001440000000221311177007633023216 0ustar jacobusersdefault233?       BGC@@@HBGCBGCCGCholotz-castle-1.3.14-src/res/stories/holotzcastle/level007.hlv0000644000175000001440000000315311177007633023226 0ustar jacobusersdefault233?    *CB@@@BGCCGC*CGCholotz-castle-1.3.14-src/res/stories/holotzcastle/level021.hlv0000644000175000001440000002647311177007633023234 0ustar jacobusersFdefault233?#!    BC`@@HB Dgf@gf@BDgf@gf@ CD@@@@B D??BD??C D??CD??>C$D??C$Dgf?gf?zC$Dgf?gf?C Dgf?gf? fC$D@@@@ *C$D@@@@C$D??C$D??RC$D?? RCC@@@@ zCC@@@@ zCC@@@@ CD@@@@C$D??DB??CC??hfCC*CCBCHBCHBoCHBCfC3CfCGCfC[CfCCCoCCoCCfCCCCCCCCC CC CCBCBCBCfCoCCcCCdCC\CCnCCnCCCCCBC>C D{C DCCBCBCBCBCBC9C D;CD?CDECDJCDvC@ DqC DvC@ DC3CC,CC%CC(CC1CC3CC/CDqCDwCD}CDCDCDCCCCCCCCCCCDCDCDCDCCCCCCCCCCCCCCDC@DCDCDCDCDCDC@DCDC@DCDC@DCDCDCD@DDDDDDDD@D@DDDD@D DD@ DD D@DDDDD@DDDD? B B?# HC B?) C4C?pBC?* CC?!\CC?CC?CCholotz-castle-1.3.14-src/res/stories/holotzcastle/level024.hlv0000644000175000001440000004316311177007633023232 0ustar jacobusersdefault233?)-      JDB`@@/TD C??TD[Cgf?gf?TDCgf@gf@TDC@@ TDC,@,@ TDD,@,@ TDD@@@@ TD.D@@@@JD3C??JDCgf?gf?JDCgf@gf@JDC@@ JDC,@,@ JDD@@@@ JD$D@@@@@DBD??,DBD??DBDgf?gf?DBDgf?gf?CBDgf@gf@CBDgf@gf@JD$D??TD.D??;D.D??,D.Dgf@gf@6DDgf?gf?EDDgf?gf?'DDgf?gf? CC@@@@ CC@@@@ CC,@,@ C$D@@@@ DD@@@@ >CC@@@@ CC@@@@ C.D@@@@ zC.D,@,@ fC.D@@ RC.Dgf@gf@ >C.Dgf?gf? *C.D?? C D?? C D?? C D??'DC??6DC?? EDD??vOD COD3COD[CODCODCODCODCODCODCODCODDODDODDOD$DOD.DED=D@JDC3C>C CfC3CgCDaC D`CDdCDCCCCCC1DC;DC6DC'DC@D3C'D3C@D[CED[C2DC@1DC:DCDC>DC8DD>DD;D@D\CiC^CoC? \CD? HCC @ CC @CCholotz-castle-1.3.14-src/res/stories/holotzcastle/level002.hlv0000644000175000001440000000221311177007633023215 0ustar jacobusersdefault233?       BB@@@HBGCBGCCGCholotz-castle-1.3.14-src/res/stories/holotzcastle/level003.hlv.tga0000644000175000001440000015035711177007633024005 0ustar jacobusers  ,(83:6=9@<@<;7>:>::5623/40?;<8:6<8>:8461A<@<C?B>>::6=994B>:6:5B>EA;79562<7@<83LE'.)43/61B>A=95=9>::6:6>9507284;78462@;84>:>:;7<78396:6406284732.:684:6A=3/,(?;=9-)2/51=9<82/309530+(40;7<873:6:69573)%624/62;77362/+.*2/3/5230/++'-(,)*',)-),((%($*',)*'&#,),),) -*/,.+-)/,1.1.-*'$  (B>EAIEJEIEFBMIMID?C?@<>:QMNJKGJFIEHCHDPLSOSOUQSOTPSOQLIELHLHOJYU\X\WNJD?PL]YLGoe<3.EAQL_[\WEANIJFRNWSQM84MHFCKHJFJGJFIF]YWSGCMIA=JFRNFCHDJG C?D@KFNJYUIED@YUEA1->::SOOKC?EBOKFB94C@RNKHOKRNPLNJOKMI>;KHJFMIOJB>FAIEHDD?D@OKPLJFB=>:@;D@C?@<:7856251@<?;63:6?;D@EAD@;6:5@<>9<7GBLHIED@@;! ! (KGPKUQ]X^YVR^Z_[VRTPOKMIc_^Y[W\X]Y_[VRc^hdc_e`falgkghcYTeac_d_plrnvqd`^Yc^vrfa R.*2VQgbsoto[Wb^`\jfuplhB?_[eajehdZV`[WThdd`ZVgcTPVS`\QM^ZZW[XKGWTa^a]plWTTPa^\W<7HDIFhd[WUP\W_[NJLHPM[W]Yb^\XWSc_WSXSXTZV%QNYU[WVRMIGCYU`\[WURRNQMVQJEA=<8FAC@=:ROTPIDKHPMVSPMIEHDFCD@C?E@WR_[XTPKFA%# %# (b\ `[^Yrmvqe`kfkgb^b]]X]Ysnkfiemisnwrkf|w{vsovq}x˃م}rmȀ{{v~x"午͐rn~yւ~׋싆#fcsp!tpvrnk{~RM|wz{uqlgokea{vjfrmgcgctpienihd_[SOidzuqn~okd`kghdPLYTPLqngchdtp`\XT]Yc^hewsyuwsojfarna]^Zb^kgnia\hcnieaSOOK^[ielhkgc`b^ieUPFB@<SOTPLHc_hc[VTOUPb_]YTQPLPLRNTQXTfbkg`\YVVS., ., (uo!vpxtڌ}xр{ztptopkql؅zz⍈̑Â}ΐВ{!ɖ#Ο֎"Е!)Ʃ!zvǵncuq!tppmoksqwu !ki KG~ vsjgxu!vqqnmitqwtpm~xwq#oi#|w!!!!{v zzfasnWSz{xplrnlhgcql~wsxthdlhhdso}qmpl}{wa][Xc_ol{w}ywstpzwheWRHD_[b^ZWvqyujfeac_ea_[WTYU\Xa]fbkfuqwsnjhefa74 74 (kU#|m z~qyywluh sg ujy("vqy'w%vjZzmkYiPziu\zeT?_GgPeP`IvO c|v!}$VT &vsWTwrts*OO0- zdb liyyqp !db mili \\^^utqpih wsgcje!|w ytzv| jd!oiGD!qn{v~ztpfbqn~yzwtpxsxt}~|xxs mitozzvhcPLb_gcea{w{tornplojfa_[ieokrnplol{xtpmlg:7 :7 eX{r% 'zp{lvkvnto}}~~&|_Y }o"{pt i] XKeX[D[CmQlIrYR3_> b=Y:U;xY<' *"/ "3 %+ 6 &, -!* $+ !)"xj*yi-M@t0~saM|,8JB<0q!ypcp- {x3NK dauqkism|x~|{xzt!ZVe_!sm~smy|qofm`nd_V\V,*"qf uo{{sjaunzx}pzrxsxuq tq !x-nd"zo$'%wohV&wc'sdh^x ~(r!ylunslp-{)~%w{s~t|ysvoD:H>UQji zt!~z}{pvhoai^ ldzz ~v w #~+vlOB q`%oZ$ri}u ^OUF^LS=S3`F]5_BJ(X2U.H#R6Y425       , "1 /.!0"+#3 - "+ %'$%)hR-iU3A)r[4nZ#O>%yi0~o!r=4)5&qa'peyk V?n5$>`;(W=h2}n"woy'|s.SH ]N%oe}p$bXmb m^!eW"[J#bV!bQ]O2#{o|))}rqezvk fZ ul~wvr!t|rxj!r&~x|nlgg"s([QfY|p!"~tsvmWRk`p`aXv!y$nd`W\Wb[pb"w(|%}uwnqkzxrvpE<H?NNms iw$yv~u"~o viqcke~ } .t1iUB1hN-gM(eQr`ZFS6UCJ,G)P+T!O$H M(G :FD$/     2); )-$,- 0 ,+%'("$I03Q63! T@6T;-@&$lW6eV$ubC,YC*^K"YOS!,p_2.(LH*>:YN#p^#^Z{qu,sd3B7#SG&`S k\#VHbQ&`L*UE"K8!YF!lR,F@)i[xp)8z%0p_%tll]$VG#d\}o%xjlarao_&qdkf\Vha{q!yyuvi+}q0REUJl`#%$}{  zo!QHm\#tb#i\x$s"bXTG GFPH TO~p'|%}uvnrjxrrlumF<H>bV mj }fi*{l"y({u$|u vkm[}w~ +3g3aC"=%hG3^E&Q?[H@/C5F*@#AFE!CI!> @G!9 8$6 "&   K;4 3A 3; *: (.'1'*24 &4'+ #. %1#2$ 9!A#*.!P5/\A)^H7"$=#+L,'N6)1QN,x F8A:LB|j,y,t(yo!wn~|iae]nfB8D:|g!y w!)ub#_'_6o6k?j>^[UMrmyu|')2x0WM$`4.2fI2P0+O*H+:5!5:"7=>=;>=99 <1# )@6K4; +@,+$B.4+$$/(-%/#( ' !-J1-> & '/P6A-"mZ8g[!jT: N6->:B7P?YTh<\J3.6'K5'B&'B"%7&!"( #B'+2%-""7# [K0>zl4IXR#^L$IB!M5,N@'TH'QE"M<B?XL K< RB%M? FBlU/yi,wk%g\z+7o`3G;?2$N=)k\-z-w&q$}!})ug(L>VHXRgX kc ug'sd(MB6+ 4& 1*>6g`"u.{n)vj!sjyqtm^VXPaY;1<2t,%~*/f` X0|Q1f2Q-,:#56$/<!5;:<< A;9 :6$7 #0 ) <&$!  $; .;." %! ; 1**.(, ##$$+" &4 +C( +VC2NA:5#/< # M)'+'80M:"OE*J1(% //$   '0$$H4*xjBn]8qNHB#E2';1%8-@7B8"4./'8-H9&A7H:!:4K=#fM2eS+m`%_Syj/z;q]:E2>*"I4(]K-vg2rf(rb'uj'|r)qd(I;L<"NCSKcQ)iS-fR-D6-! *$ 4 3"3.514<8856 39 3"65#&!5 '  !  $   5!   <.3+$"!" ) "5 ).2$d84b(RM-P7P> '*!)#)' '      +]O2jY6}cM4-',"0%!9-$<-$- !(>. 935-6(!R93UD.WF+[M&YJ"n]5g\2OG.)"' 5,?<#jW5`T)^O&lY-d]%cV)B3@.$A2!H<I>"E?!Z@16(! ! 1&VL%l]/hZ*]Q#TI\PYNG=D:J@-$.%}c-v)t)}8o:]J+c90|;#V>*RE!|L8PBJ4->$N-B&2$3!9'='3%51/3 477 1/ - . "/ +5# !!     1'1 %/ &8)*   B*O D LF        #$ <2eFBZG6* !   3$"3"1 @1%N>,QB(O?$IC#UI2A2%&4)YF2SC-K=$dP3SM%NC':,:, 9, 4(D, K1*G,!8/A3(+   1)H6*A2$Q@0P<03,$- 3'8+;2!?2$;'%  :."F<'J<*F9$@6B8>4-$,"4+ IfO*u_3u`,~d;uU>P/0'd 9e7:Z26S.3S"6D5P!85*P(2O0N . I 4O2$  > 03&K8C /Q8H8C1B*7)3$"3!/ &,$   0)'#G02'  E6  D 9S   @:? .              8,               +6$!#%     5("9+"8*"<''   *$ -#   #3*92=2!7.4+/&&&-'!fJ1nW1lT1pW7fF6K,$ 1W)G,;(G./!($9 '6 , 2$,#,%U 6: +,$    E .= (%!/ $5 )@ . 3 *&"5''/ '(8 *6',    >0.=7 ;9"                                  !          !' (!"    BZ:3aF1aF2cD2R5,B# P (2 $(- #)' 6& 0"    " !/""&% !   ( /&+#3 '"$ ' :%7%27+4*L                                               *H*+L4+O4.N/'B#"7*? 5 &-1"!$$)"  &1 &  * &R (     & ,-+/02$2%*/. $&                           P795,# %! >&* '7 (("(   )9,  ' &*     !"             z$ 20) $ "# =!% 6'! 2 %  &                           Q   !    1 (/"   5 +       !                      4! .    ,$- +#    0%                                       '6 B''+) 1'     /(                                                  #:&%G/-L0/Q31a;:wGFOO:&    ' !                                           3$"W<9|TP`]b^`]_]eckkpp % !    '                              !,&$'!.#"B2/Q;8\C?rQMje{ˉΈ́ͅ΁~Ѐ~}.   # !                  40.VOKk`[gZV[NJWHE]LHqZUlgzsxϒ圕噓㕐ߐ݌ۈم & &% % $                 A@!$>"%?$'@&)?(+8&(*!  >>>hiiʿĺ丹럙癔㓏  #/;K!&])/h.6l08n29o3;q5;w8@?GFMGODK}AHzAGzCI|FL}JO|KQrIM_?CK368%'$ +++RRR~~~Ƚ¸霖喑⑍ #   *4?N!'_)0m/7{6>;E@JBLDMENGQISMWQZS\T\U]V_Za]ebielci^cTZqHLU58:$&" ///^__ƻ丹럙癔㓏)  ! -9I$Z%,f*3o/7{4=:C?IBLEPGRHSJTLVNXPYR\U^V_Xa[d^f`iclhpkrmtlrjpbhVZqEHP021 ---_``ɾø졚蛕䖐-   )2<L%\%,i*3u0:5@9E=H?IAMCOFQGRITJULWMXNXQZR]U^W_Yb\e^gbjdlgpjrmtovpwnuip`dPSe<>B')# )))Z[[ƻꝗ昒  &6F!W!)b&/k*4w/:5@8D;G=J?LBNDPEQGSHSIUJULWNWOYP[R\T^W`Xa\d]f`ickemhplrnupwqwqvnsgkZ]wGIM./& ***VWWȾ¸丹럙蚔 1N%b&/r,6}0<4@7B9E;H>J?K?LBNCO DPEQGRHSITKULVMWOYQ[S\U^W`YaZb]e`hbidkgniplrnspurwrxqunpad~KMN/0%000[\\ź霕 %M%q+63>7C8E9G;HK?L@L@LBNCODPDQGRHRITKULVMWNYQ[R[U^V_XaZb]e^gahdjflhnjplrnspurvtxtwpscf}KMK..# >>>hiiǼ靗3`$-2=8D9G:HK?L@LAMANCNDP!FQFRHSITJULVMWMXPZR[S]U^XaYb[d^f`hbiekgmiokqnrptqvtxvzwyqsceyIJI--$ ...SSS~~~ Ⱦø丹럙   $ E!n*44A8F:H;IK?K@LAMBNBNDPEQFQGQHSITKULVMWOXPZQ[T]V_X`Ya[c]e_gahdjflhmjolrnsqvrwvyxzxzrtddzKLN11*  >>>fgg Ĺ젚3  %.6F!a%.~0<6D9F:H;IK?K?LAMBNBNDOEQFQGRHRITJULVMWNXPZRZS\U^X`Ya[c\d^f`gciejgmiolpnsptswuxy{{|uviiTS^;:='&% ...SSS~~~ ŻB  % 1?P&\#,d%0n)4~0<5B8F:G:H;HK?K@L@MBNBNCOEPGQGRHSITJULVLWNXPZQ[S\U^V_X`Zb\d^f`gbiekgminkpmrotruuxxz{|}~~||rqa`zOM\<;B,*)   >>>fgg Ƽ  (<O%^#-j(3v,8/<2?3A6C8E9G:G:H;H;J=J>K=K?K@LALANCO)EPFQGRHSITJUKVLVNXPYQZS\U]V_X`Za[c]e_fahdjelhnjolqosruuxwzz|}Ӏ҂΁}{urifXVdDBE0.)///SSS~~~ ǽ·   4O%e%0u+70=3@3B5C6E7E7E9G:G:H:H;J=J>K3>K@LALBNCOCOEPFQGQHRITJTKVLUMWOYQZS\T]V_XaYb\c]e_eagdiekgmiolqorrutwwzz|}Ӏօ׆؉Պ̇|sn`\eHEC1/+  +++EEEjkk Ⱦ¸丹  " +/4BZ!*r+60>3@4C6D6D7E7F8F8F9G:G:G;HK >K?LAMBNCNCOEPFQFQGRITJTLV*MWNYPZR[T\U^X_Ya\b]d_eagbhdjglinlqnrqtuwxyz{}Ӂքو܍ߐߓݕՒĉyse`lQMWD@F852*(# ###222FFFVWWkll ɿø丹  2J#X *]#,a$.j(2x-92?4C6D6E7E7E8F7F8F9F9G9G:G;H;HK@L@MBNCNDOEPFQGRGRHSJULULVMWNXPYRZS\U^W`Ya[b\d^dafbhdjflinkonrqutwvyz{}~ԁքوݎ䖒盕矙䠚ۜʕzupxd^bUPXNKVPLURMUUQTUTTUU UVVWXXabbwxx ɿø丹  6U(n(4z.:~/<0>0?4A4C6E7EG7E8F8E8F9F8G9G:H;H;HK@L@MANBNDOEPFQFRGRHSITLULVMWNXPYR[S\U^W_X`[a\c]d`fbgdiekhmkonqptsvvyzz|~Ӏքىݍߑ䖒蝖좜걧᯦Ԫ¢ ɿù丹  (>Y"+r*60>3A4B4C5C6E6E7E6E7F6E8F8F9G:H;HJ9?L@L@MANBNCOEPFQGRGRHSITKULVLWNXPYR[S\U^W_X`[a\c^d`fagciekhmjonqptsvvxyz|~Ӏքوݍߐ㖑蝖좛úŻȽ ɿø丹  3M&d&0v-91@3A6C5D6D5E6E7E7E7F8F8F9G:G:H;HK?K@L@MAMBNCODPFQGQGRHSITKULV*MWOYQZR[T]V^X`Y`[b]c_eafbhejgmjolpprsuvxyz|}Ҁքوۋߐ㖒蜖롚ź ɿø丹  (>X"+o+6~0>3A5C6D5D6E6D7D6E6E6E7F7F8F8F9F9G:G:H;HJ>K?K?K@MANBNCOEPEQFQGRHRITJTLV*MWOYQZQ[T]V^W_Y`[b\c^dafbhejglimlporruuxyz||փوۋߐ║暕렚ĺ Ⱦ¸丹   3M&c&1v.:3@5D6D6E7D7E7E6E7E7E6E7F7F8F9G8F8F9G:G:H;H;IJ>K>K@LAMBNCOEP1FQGRHRITJTLULVMWOYQYR[T\V^W_X`[b]c^dafbgejgkhmkporrtuwxyz|~Ղ؇ۋߐ┑暕韙烈Ĺʿ ǽ·  " ,3@ X",o,7~1?4B6E8F7F7E7F7F7E 7E7F7E6F8F8F8G8F9F:G:G :H;H;IJ?K?L@L@MANCOEPFQGR.ITJTLULVMVOXQYRZT\U]X^X_[a\b^dafbgdifkhmkonqrttwwyz{~~Ղ؆ۊޏ┐晕韙øɾ Ƽ  1I$W!+^%/i(4w/;4A7E8F9G9G9G7F9F8F7E7F8F7F8F9G9G9F:G:G:F;H;H;I<=J=J>K?K@K?LALBNCNCOEPFQFRGRHSJTKULVMWNXPYRZT\U]W^W_Ya\b^d_eagchekhlkonqqssvvyzz}~Ԃׅډݍᒎ嘓螘Ƚ Ż  5T )k)5y0<~2?4B6D9G;I;H:H;H:H9H9G9G8F8F7F8G8G9G9F9G9G;H;H;IK>K?L@LALAMCNCODOEPFQHS.JTKULVMWMXPYQZS\U]V^W_Ya[b\c_eafcgejhlkomqossuvxyz}~Ԁօوݍ䗓蜗죝ƻ ù젚,,,-.3@X!+p+73@6D8E9G:HJ>K?L@LALAMCNCOEPEPFQGQHRITKUKULVNXOXQZR[T\U^V_Y`[a\b_caebgeihkinlporrtuwxz||Ԁփه܋䗑眖롛蘒źʿ Ⱦ¸丹럙X)X*X *Z + ^#-f'2u-:2@7E:H;I=J>K?L?M?L>L>KK?L?L@LAMBNCODOEPFPGQHRISJTKTLUMVOWPYRZS[U]V^X_[`\b^c_ebgdifkimlnnqqttvxy{|Ղ؆ۋߏ┐晕韙øɽƼ靗w)8w+9w+8z,:z-;|/=~1?4B7E:HLK?L@L?LAMANBODOEPEQFQHQHSJTJTLUMVNWPYRZS[U]V^X_Z`\b^c_e`fchfkgljnnpqstvwxz{}}ԁׅۉގ┏噓韗ǻĺ霕->.>/>0>0A2B3C5D6D9G;I=K@MCOEQGSHTGREQBO?M>L=J;I;H:H:G9G8F8G9G8G9G9F:G:G:G;H;HK?L@L?LAMCODOEPEQGQ0HSJTKTLULVNWOXQYS[U]V^X^X`[b\c_e`fcheigkjmlpprsuvxxy||Ԁׄو݌䗒蛖롛易ĹʿȾ¸丹럙蚔/?0@0A1B3C5D6E8F:H=K@MCPGSKVNYPZNZLXIUFRCP@M>JJ?K@L?LAMANBNDODPEQFQGQHSISJTKULVNWOXPYR[T\V]V^X_[a\c^c`ebgdigkimlporrtuwxyz{ւن܋ߐ㕐晔ꟙ¶ȼŻꝗ旒.>0@0A2A4B6E9G;I>LANFRMXS][d]f[dT_OZITEQBO?L=JJ>K@L@L8AMBNDODOEQFPFQGRHSJTKULVMWOXPYR[T\U]V^X_Z`\a^c_d`fchfjilkomqqstvwxy{}}Ղ׆ۉގⓎ䗒蝗죜ŹɿȾ¸졚蛕䖐.?/?0@1A2B4C6E7E9HK=JJ>K?L?L@LAMBNCNDOEPFQFQGQHSITJTKUMVNWPYQZRZU\V]X_Z_Za]b^d`fbgejhljnmopssuvwxy|}ׄو݌㕑盖롛易¶ǼŻ丹럙癔㓏.>.?/@0A2B4C5E7F:HK=J;H;HQ:H9G9G8F8G7F8F8F9G8F9G:G:H;H;HJ>K?K?L@LAMBMCNDODPEPFQGQHRJSJTKUMVNWOXQYR[T\U]X^Y_Za\b^c`ebgeigkimlooqrstvwxz{~ւ؆ۊߎⓏ嘓鞘ùȾǽ¸霖喑⑍.>/@0?1A2B4C6E7F9GK?K?L@LAMBNCOEPEPFQ3HRJSJTKTKUMWOWPYRZT\U\V]X_Y`[a]c_dbfdhfjhlknmpqssuuwyz}}ԁׄڈ݌㕑盖롛易Żɿú丹럙癔㓏!.=/?0@1A1B4C6E7F9HKJ>K?KAM:BNDODOEPEQFQHRHSITKTLUMWOWPXQZT[T\U]X^Y_[a\b^d_ebgdigkjmloprrttvxy|{~ւن܊ߏⓏ嘓鞗죜·ƼŻ졚霕喑⑍ߌ.>/?0@0@1A3C5C7F8GKJ>K?K?L@LAMBNCNDODPFPFQGQHSJTJTKUMVNWOXQYRZT\U]W^X_Z`[b]c_eafchfjimlonqqssuvwzz}}Ԁ׃ڈ݌㕑暔ꟘøǽƼ·ꝗ昒㓏݉.>/?0@1A3C5C6E7F:I=KANFRLXS]Zc]fZdT^NYITEQBN?LJ?K?K@L@MANCN;DOEOFQGQHRISJTKULUMWOWPXQZT\U\V]W^X`[a\b_c`ebgdigkjmmoorrutvxx{|~~ցمۊߎᒎ䖒蛕롚履ùȾǽø丹럙蚔䕐ᐍތۈ.>/?0@1A3B4C6E6F9HJ>K?K?LAMCNDOEPFQFQHR7JTJTKUMVOWPXQZR[S\U\V]X_Y_[a]b_ebfdigkimlompqrttuwyz|}Ԁ׃ڈ݋ߏⓏ晓鞗죛úȾǽù졚霖旒⒍ߎ܉م.>.?/?0@1@2B3C4D6E8G:HKKj?K@LAMBMCNCNDOEOFQGQGRHSISJTLUMWOXPYQZR[T\V]W^Y_[a\b^dafdheihkjmmooqrttvwx{{~~ց؅ۈݍ㕐暓鞘úȾǽù靗昒㓏݋چ׃.=/? 0@1A2B3C5D7F8G:IK?LANBOAN>K=K=I;H:H8G9F8F7F8F7E7E7F7E7F7E7E8F9F9G:G:H;H;IK?K@L@LAMANCNDODOEPGQGRHRISJTKULVNWOXQYRZS[U]V^X_[`[a^c_ebgdigkhlknmpprrtuvxy||~ւن܊ލᒍ䖐盕ꠘùǼƼøꞗ癔䔏ᐌތۈ؃ր,=.=.>/?0@1@2A3B4C6E6F9G:H;IK?L >L=K=JK?L@L@MBNBNCNDPEQGR^HSJSKTKUMVOWPXPYR[U\V]W^Y_[a]c_dafdgeigjjllnoqqssuvxzz}}Ԁ׃ه܊ߎⓎ䗑蛕롚¸ƻʿɿƻ·럙蚔䕐⑍ߌ܉مց}},=.>.>/?0@0@2B3C4C5E6E8F:G;IK>K?L@LAMBNCNCODOEPFPGQGRISJSKTLVOWOXPYR[T[U]V]X_Z`[a^c_ebgdhfjhljnmporqstvwx{{~~Հׄڈ݋ߏⓎ嘒蛕렚ĺȽǽĺ럙蚔喑⑍ߎ݉مׂ~}{{,<-=.> /@0@0@1A2B3C4C5D7E8F9G:H9G:H9G8F8F7F7E6E7E6E7E6E6E7E6E6D7E7F8F9F8G:G:G;HJ>K?K@LALBMBNCN>EPEPFPGQHRJSKTLVNVOXQYQZS[U\U\W^Y_[a\b_dafbgdhgjhlknmpprrtvwxy|{}~ւ؅ڈ݌ߏ┎嘒蚕렚¸ƻɾȾƻ¸럙蚔喑⒎ߎ݊چ׃~|{yy,=,=->.>/?/@0@2A1A3B4C5D6E6E7F8F7F8F6F6E6E6D6E5D6D6D6E6D5D6D7E6E6D7E7E8E8F9F9G:H;HJ?K@L@LBMBNCNDOEPFQ:HRISJTLUMVOWPXPYR[T[U\V]X_Z`[a^c_dafcgeigkjllonqqssuvxyz||~}ւنۈ݌┎嗒蚕Ꟙøƻɾɾƻøꞗ蚔喑⒎݊ۇ؃ր}{zywv+=-<-=.> .?/?0?0@1A2B3B3C5C5D6E6E6D6E6E6D5C5D6D5C6D5D6D6D 7D6D7E8E7F9F9E8G9G:G;HHK?L@LALBMBMCMDOEOFPFPGQISJSJTLVNVOXPXRZS[T\V\W^Y_Za\b^c_dafchejhljnmpoqqstvvxzz{|Ԁ}ւ؅ۈ݌ߏ⒎䖑皕鞘좛烈¸źǼɾɾǼź¸丹졚靗癔䕐⑍ߎ݊ۇ؃ր~|zywwtt+<,=->.>.?.>/@0@0@0A2A3B4B4C4C5D4D5D5D5C5D5C4D5C5D4D5D5D6D7E7E8F9F9G:G;H;HK?K?L@LBMAMCN->.>.?/?0@1A2A3B2B3B3C4B4C4C5C5D5C5C4C5D5D5D6D5D6D6D7D7E8FL9F9G:H;H:HJ>K?L@LAMAMBMBNDODPEPFQGQISJSKTLVNVNWPXQYRZT[V\W^X^Z`\a\b^d`fbgeigkilknmporrttvwwzy}{Ԁ~ւ؅ڈ݋ߍᑍ㔐易蛕Ꞙ좛烈·¸øùø¸·丹졚ꝗ蚔旒㓏ᐌߌ݉چ؃ց~}{zxwuurspq*<,<,=,>->.?/?0?0@1A2A2B3B3B2B3C4C3B3B4C2B4B4C3B4C5C4C4C5C5D5D5D5C6C6D7D7E8F 9F9G:G:H:H;GJ>K?K?LALALCNEP8FPFQHRJSJTLUMVNVNWPYRZSZT[U\W]Y_Z`[a^c_d`fcgejgkjmlompprqttuxwzy|zԀ}ւׄن܊ތⓎ䖑晓靖렚烈丹럙霕昒䕐⒎ތ܉م׃ց~|{yxwvursopno*;+<,<,=-=->.>.?/?/?1@1A1A2A2B2A3B2B3B2B3B4B4C3C4C4D4C5C6D7D7E6E7E8F9F9G:G:H;HJ>K?L@LAMBMCNDOEP7FQGQISISKTLVMVNWPXQYRZTZU[V]W^X_Z`\b^c`eafchejhljmlonpqrrstuwwyx{z~}Ձ~׃نۉ݌ߏᑍ㔐嗒皕靗렚좛咽丹졚럙霖癔喑㓏ᐍߎ݋ۈم׃Հ~}{zywwuurspqoolm*;*:+;,<,=->-=.>/?1@1A1A2A 2@1A3A2B2A2B3B4B3B3B4B4C5D4C4C5D6D7D6E7E8F9F 9G:G:G;HJ>J?K?L@LALAMCN:DODOFPFQGRISJSLULVMWOWPXQYSZT[U[V]W^Y_Z`\a^d`ebfchejhljnkonppqqstuvwyx{z}|Ԁ~ց؄ڇ܊ތ⒎㔐嗒皕蜖ꞗ렙咽丹렙ꝗ蛕癔喑㓏⑍ތ܉ڇ؄ց}|{zywwuurspqnolmjl);*;*;+<+<,=,<,=->.=.>/>0@1@0@1@1A2@1@2A2A3B3A3B3B4C4C5C5C6D5D7D7E7E8F9F8F:G:H;H?L@LAMBMCNDOCOEPEPGQHRJSKTKULUNVPWQYQYSZTZU\U]W^Y_[a\b^d_ebgchfjhkjnlnnppqrstuvvxx{z}|~}ց׃نۈ݊ߍ⒎㔐䖑易蛔靕鞗렙졚丹젚럙靗霕蚔旒䕐㓏⑍ߌ݊ۈن׃ց~}|{yywwttrsoqnolmilhj*;*;+;+<,=,=->.>.>.?/?0@1@0@0@1@1@2A3A3B3B4C3B4B4C5C5C5D5C6D7E7E8F 8F9F:G:H;HJ>K?L@KALAMCNDODOFP6GRISJSKTLUMVNVOXPXQZSZT[U\W]W^Y`[a\b^d`fbgchfjhljmlnmooqrsttvvxwzy{z}|~ց؄نۉ݊ތᑍⓎ䕏䖐昒皔蚔蜕靖靗ꞗꟗ렙 럙ꞗꝗ靗霖蛕蚔癔旒䖐䔏⒎ᐌތ݊ۉن؄ց~}{{yyxvvttqrpqmokljlhjeh):*;*;+;+<,=,=-=-=.>.>/>/?0@1@0@1@0@1@1@2A2B2A3A3B3A3B4C4C5C4B5C5D6D7E7E8F8F9F:G:H;H;IJ?K?K?LAMBMCN6DOEPFPGQGRISJSKTLUMVNWOXPYQZSYT[U\V^X^Y`[a]b_d`fbgchfigkillnmoopqsrsutvvxxzz||~}Հ~ׂ؄نۈ܊݌ߎᑌ⒍㔎䕏䖐嗑昒晒昒嗑䖐䕏㔎⒍ᑌߎ݌܊ۈن؄ׂՀ~~}|{yywwuutsqroplnkmjkgjehcg):):*;*;*<+<+<+;,<,=,=-=->.>/?.?/?/?0?1@1@0@2A 2A2B3B2A2B3B4C4B4B3B4C5D5D6D7E7E8F8F9F:G:H;HJ?K@KALAMBN6CNDOEOFQGQIRJSJSKTLUMVNWOXQYQYSZT[U\W^X^Y`[a^c^d`fbgcgeihkikjmlooqqqrrttuvwwyxzz||~}Հ~ց׃مڇۉ݊݌ߍߏᑍ⒍Ⓨ⒍ᑍߎߍ݌݊ۉڇن׃ցՀ~~}|{zyyxvvttrspqopmnjlhkgiehcfae):):);*;*<+<,<,=-=/>.>.>/?.?/?/?0@0?0@1@2@2A3B3A3B4B3B3B4B5C5C6D7E7E8E9F:G:H;HJ>K?K@LAMBMBN6DODOFPFPHRIRJSJSKTLVMVOWOXPYQYSZT[U]W^Y_Z`\b]c_d`fbfcgeigkhkjmlonpoqprqsttvvwxyyzz||~}~ց׃؄نڇۈۉ݊݋݌ތߍߎߍތ݌݋݊ۉۈڇن؄׃ց~~}|{zyyxwwuutsqropmolnjlhkgiehbfae`c(:):*;*;*;+<,<,<,=,=-=->.>.>.=/?.?/?/>/?0@1@1A2A1@2A3B3B4B4B5C5C6D6D7E8E8F9F:G:H;HJ>K@KALAMAMBNCNDNEOFPGQHRIRISKTKUMVNV(OXQYQYRZT[U]W^Y_Z`[a]b^d`ebecgeigihkimlmmoopoqprrttuuvwwyxzz{{}|~~ցׂ׃؄ننڇۈۉۈڇنن؄׃ׂց~}}{{zzyyxwvuustrrpqopmnkmjkhjfiegcfae_c]b):):*;):*;);*<+<+<,<+<,=-=.>.?.>.>/?0>0?0?1@0@0@1A1A2A2A2B2B2A3A3B4B4C5C5D6D6D7E8F9F:G:H:G;HK?K@KAL3BMBMCNDOEOFPFQGQIRISKTKULUMVNWOXQYRYSZT\U]W^Y^Y`[a\b^c`eafcgdheigkikjmlomonopqqrrstuuvvwwxyyzz||}|~}~Հ~ցׂ׃׃׃ׂցՀ~}~}}{|{zyyywwvvuuttrrpqopmolmjlhkgiehcgbe`d_b]b\`(:):):):);*;*:+;,<,=-=-=.=.>.>.?/?0?/?1?1@1A2A2A3B4B3B3B5B5C5D6D6D7E8F9F:G:G;H)=I=J=J>K>K@K@LALBLCMDNDOEPFPFQHRISJSKTKULUMVNWOXQYRYSZT\U]W^X^Y`[a\b^c_d`ebgcgehfihkjm knmonpoqprrttttuvvwwwxyyzz{z||}|~}}~}}{|{{zzyyxwwwwvuttssrrpqopmolnjlikhjfiegbfae`d^b]a\`Z_(9):);):);):*;);+;+;+<+<,<+<,=-=-=.>->/>0?/?0?0?1@2A1A2A2A3B3B4B5C4C5C5D6D7E8F9F:G:G;H J>J@J@K@LALBMCMCNDOEPGQHRISKTLVOWOXQYRYSZT[U]V^X^Y_[`[a^c_c`ebfcgdheigjhkimjmknlonpoqprrssttuuvvwwwwwyyyxzy{y{y{z{yzyyyyxwwwvvvuuttssqrqroqopmolnjlikhjgiehcgbf`d_c^b\a[`Y_Y^(9'9(:(9):(:):);):*;*;+;+<,<,=-=->.>.>.=.>/>/?/?0?0?1@1A2A2A3B4B4C5C5C5D6D7E8E9F9G:G;HI>J?K@K@K AMBMCMDOEODOFPFQHRHSISJTKTLVOWOWPYRYSZT[U\W^X^Y^Z`[a^b^c`dafbgcgeigkhkiljmkmmnmonpoqpqqsrsrttutuuuuvvvwwvvvuvuuuttttrsrrqrpqopnomnlmjljkhjgiehcgcfae`d_c]a\`[_Y_X]W\'8(9(:):);*;);*;+;+<,<,=-<,<,=.>->.>/>/?0>0?0?1@1A2@2A3A3B4B4C5C6D6E8F9F9G:G;HI>J?J@K@KALAMAMCNDNDODPFPFQHRISJTKTLVLVOWOWPYQYSZT[U\W\W]Y^Z`[`\b^c^d`eafbgcgdieigkhkhkiljmknmonpopoqpqqrqsrsrtsttsssrsrrqrqqopopmnlmkmjlhkhjgiehdgcfae`d_c^b\a[`Z_Y^X]W\U[&8'9(9'9':':(:):):*;+<*<+<,<,<-<->.>->.>/=/?/?0?1@2A2A3A3B3A3B4B4B4C5D6D7E7E8F9F :G;G;HI>J?J?K@KALAMAMCNDOEPFPFQGRISIRJTLVMVOWOWPYQYSZS[U\ W]W^Y_[`\a^b^c`d`eafbgcgdigjfjgkhkjljmkmlnlomoopnpoqpqoqpqopopoomomnlnkmjljlikhjgjfiehcgcfbe`d`c^b]a\`[_Y^X]W]U[T[SY'8(9'9(9(9):):*:*;+;+<,< ,<,=-=->.>/>.?.>/>.>/?0?1@2@2A3A3B3B4B4C5C6D7E7E8E9F:G;G;HJ?K?KALAMCM*CNDOEOEPFQGRHRIRJSKTLVMVNWOWPXPYRZSZT[U\W]X^Y_Z`[a\b^b^c`d_eafbgbgchdieififjhkhkiljljmkmlnmolnmnlmlnlmkmjljljkhjhjgjfiehegcgbfae`d`c^b]a\`[_Z_Y^X]V\U[T[SZSY&8'9(8(9(9(:):)9):*:*;);*;);+;+<,<-=.>.>/>0?1@2@1@2A3A3A3B4B4C5C6D7D7E8E9F:G:G;HJ?J?K@KALALBMBNCNDOEP!FQHRHRIRJTKTKUMVNVOWPXPYRYSZT[T\V\W]X^Y_Z`[a\b^c]c_d_e`eafbgcgchdhehfihjhkilikjkjljkikhkhjhjgifiehegcgcfbeae`d_c^b]a[`[`Z_X^W]W\U[U[TZSZSYQX'8'9(9'9'8(9'9(:(:):(:):*;*;+;+<+;+<,<-=-<-=-=.>/>/?0?0@0?1@1@2@2A3A2A3A4B4C4C5C6D 7D7E8E8F9F:G:G:HJ>J?K@KAL$BMBNCNDODPFOFQHQHRIRJTKTLUMVNVNWPXPXQXSYSZT[U\W\W]Y^Y_Z`\a\b]b]c]c_d`eafbgbfcgcgdgegeififjgifiehehdgcgcfbeae`d_c_c]b\a\`[_Z_Y_X]W]W\U[UZTZRYQXOV~&8'8'9(9(:):):);*;);*;+;+;+<,<,<,=-=.=.>.>/?0?0@0?0@1@1?2@2A2A3A3B4B4C5C5D6D6C 7D7E8E8F9F:G:G;HJ&?K?K@KALBMBNCMDOEOFPEPGQHRIRJSKTLTLVLVNVOWPXQXRYRZT[U\U\V]X^Y^Y_Z`[a[a\b]b]c^d_e`eaebfcfbgcgdgdhcgcgcfbfbeae`d_c^b ]a\a\`[_Y^X^X]W]W\U[U[SZSYQXPWOVNV&8'8&8'9'8(8(:):):):):);*;*:*;+;+<,<,;,=-=.>.>/>0?/?0?0@1?2@2A2A3A4B4C4B5C5C6D6D7E6E8F8F:F:G;GJ?K@K@LALBMBNCNDOEOEPFPFPHRIRJRJTKTLULTNVOWPXQXRYSZT[U\U\W]X^Y_Y_[`[a[a\b]c]c^d_d_d`d`eaebfae`d`c_c^b]b\a\`[_Z_Y_Y^X^X]W\V\U[TZSYRYQXPWOVNUMU~%7&8'8&8'9(9(9):(:):*;*:*;+;+<,;,=-=.>->.>/>/?/>/?0?0@1@1@2A2A 3A3B4C5C4C5C5C6D6D7E8E8E9F:G:G;G;H.>/>/>/?0?0@0?1@1@2A2A3A3B4B5C4C5C6D6D6E8E8E8F9F:G:G:G;G;HJ?K@K@LALBMBNCMDOCOEPFPFQHQHRIRJSKTLULUNVNVOWPXQXRYRZSZT[U\U\V\W]W^X^X_X_Z`Za[a\b\a[a\b\a\b\a\`[`Z`Z_Y_Y^X^X]W]W\V\U[UZTZSZSYQXPWOVMULTLTJSJS~%7&8%8&8'9(9'9'9'9(9):):):*:*;*;+;+<,=-=,=-=.>.>/>/?0?0?1@0?1A2A1A3A3B4B5C5C6D6D7E8F8F9F9F:G:G;H.>/>/?0>0?/?1@2A2A3A2B4C3C4B5C6D6D7E7F8E9F9F:G;G;HJ?K?K@LALBMBNCNDODOEPFPFQHQHRIRISJSKTLTLUNUNVOWPXQXRYRZSZS[T\U\V]W]X]X^X_X^X_X^X^W]W\V\U\U\U[T[SZSYQXPWOVNUMULTLSKSJSIRHQHQTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/stories/holotzcastle/level009.hlv0000644000175000001440000000721711177007633023235 0ustar jacobusers default233?BlB@@@ BC33@ff@BC@33@BCff@@CoC@@CoC@33@*CoČ@@>CoCff@@RCC@@fCC@33@zCČ@@BBBGCCBC3C>C CHBGC>CGCzCGCholotz-castle-1.3.14-src/res/stories/holotzcastle/level005.hlv0000644000175000001440000000335311177007633023226 0ustar jacobusersdefault233? fCoC@@@B[C33@ff@RC3CRCCRC CCBC[CHBCBBHBBholotz-castle-1.3.14-src/res/stories/holotzcastle/level015.hlv0000644000175000001440000003206711177007633023233 0ustar jacobusers<default233?*%    B8D`@@BB̌@@*CCff@@CB33@ff@CC33@ff@CGD@@CGD33@ff@CGDff@@DGC@33@zCĎ@@BD33@ff@'DĎ@@C8Dff@@CC@33@CC@33@RCCfCCfCCCBD CfC DCDCDzC=DC8DC3DD$DCDCD DCDD'DDC=D*C3D"D DDDCD>CBCC>CC*CC?CC@CCholotz-castle-1.3.14-src/res/stories/holotzcastle/level008.hlv0000644000175000001440000000315311177007633023227 0ustar jacobusersdefault233?    RCGC@@@BGCCGC*CGCholotz-castle-1.3.14-src/res/stories/holotzcastle/level025.hlv0000644000175000001440000000331311177007633023224 0ustar jacobusersdefault233?  >CB`@@HBC??holotz-castle-1.3.14-src/res/stories/milanb/0000755000175000001440000000000011177007633017702 5ustar jacobusersholotz-castle-1.3.14-src/res/stories/milanb/level011.hlv0000755000175000001440000002317311177007633021757 0ustar jacobusersUdefaultfff?<PBD@ACD??B`D??BdD??B@VD??GCGD??B@8D??\CD??fC@D??>CD??CB??CB??3CB??LCB??CB??+CB??ACB??BB??BD??BD??BD??yC9D??)CC??B5C??RCHC??CDC@oDCFDCCChCCDB DB@yDBdDBVDICVD CVDBCBBCB5CCC^CCCB0CCCB@DBD@ #C%Dholotz-castle-1.3.14-src/res/stories/milanb/level001.hlv0000755000175000001440000001252311177007633021753 0ustar jacobusers(default233?( XB8D@@@ &CD??BD??C.D??*C.Dgf?gf?BC??CC??[CC??UCDC??&CD??B@D??`B@*DYC)DC@(D^CCB@D\CD[CC`BCBClBBCCJCBkC CCpBC_CB @ BC @& CBholotz-castle-1.3.14-src/res/stories/milanb/level006.hlv0000755000175000001440000001651311177007633021763 0ustar jacobusers<defaultfff?$                BB@ATBB??BEC??BC??ClC??D C??"DC??'DC??BC??CC??CC??CC??CC??CC??CC??CC??CC??CC??CC??CjC??DjC??CB??BFCCCxBC1CC_CCjCBC CDrCCqC]CXCvCC$DCDC$DB@%DC@DChB CCGCxBCCCPBC!CB@ C C @ CC@ CCholotz-castle-1.3.14-src/res/stories/milanb/level004.hlv0000755000175000001440000002017311177007633021756 0ustar jacobusers<defaultfff?    hBCff@AC D??C@ D??C D??MC D??D D??BC??DCC??OCC??dB@ DBC&CCDB D'CCCCCCCCCC DC D#CoCvCqCCC,CCCBCB]CBDCC D(CC @5CBholotz-castle-1.3.14-src/res/stories/milanb/level010.hlv0000755000175000001440000001432711177007633021757 0ustar jacobusersPdefaultfff?                `BB@@5CB??CB??BC??uCC??BDC??CEC??B~C??vCC??CC??/CC??CC??CC??CC??CB??CC??'CBRCBCBCBC CB CCCSC CCCdBHCCICRCHCCGCCICCCCCPCCCCBCpBCCCRCCCCCCtBCCBDBCDCDCCCCACDCCBCC@DCCCC CCCnCCholotz-castle-1.3.14-src/res/stories/milanb/level012.hlv0000755000175000001440000000411311177007633021751 0ustar jacobusersdefaultfff?  LBB@AC"C??CC??CC??UCC??C"C??B"C??SCBOCBWCBholotz-castle-1.3.14-src/res/stories/milanb/level003.hlv0000755000175000001440000001252311177007633021755 0ustar jacobusers(default233?(              zC.D@@@ CD??yCZC??CC??C8D??HBD??C.D??*C.Dgf?gf?]CD??BC??HCC?? zCCBB CDB(DzCCfCBBC,CCfCCB@DHB5DmCC@CC? 6CpB0@& BC?8CCholotz-castle-1.3.14-src/res/stories/milanb/level007.hlv0000755000175000001440000001553711177007633021771 0ustar jacobusers-defaultfff? <    XBB@@gC-C??C+C??@+D)C??mD'C?? D&C??FCB??C1C??CB??@&DB??ID1C??gDB??@D0C??C4C??@D4C?? D4C??[CBCBCBCBQCBBBB1C=C1CC2CC2CC2CC2CCBCBCBC0CD0C D2CD1CD1CD2C D*C D,CD+CD+C D"CD$C@D#CDCDB,DB6DBCB+D2C6D2CODB@CDBCD3CPD1CZDB@lDBYD1CmD2CdD.CcDB@wDBwD/C DB`D0CDBDBD0CD.C=C!C=CC1C.C(C2CFC1CNC2C2C$C;CCDCC4CCFCCJC&C8C,CBC'CTC3COC'CICC@CC7C3C^D2CaD2C@`D/CfD1C`D(C@bD*CdD'CaD CcDCbDCaDCdD"C@fD+CgD2C`D3CdD4CfD5C@aD%C_D+C@ @ DBholotz-castle-1.3.14-src/res/stories/milanb/level002.hlv0000755000175000001440000001242711177007633021757 0ustar jacobusersFdefaultfff?( %     \BC@@ C.C??C.C??C/C??D-C??C+C??/C+C??bC-C??CC??@DC??*DC??NCC??8DCtBBBC D|C@4D~C0@AaCB@BCB0@@ DBholotz-castle-1.3.14-src/res/stories/milanb/level009.hlv0000755000175000001440000002721711177007633021771 0ustar jacobusersAdefaultfff?2           TBC@A%BB??CCB??CB??CC??CC?? DC??DC??DC??'DC??1DC??;DC??ODC??YDC??cDC??JDC??TDC??@^DC??hDC??CB?? DZC??C C??CYC??CC??BC??BC??BC??BC??CC??B0C??B0C??C0C??C0C??1DC??6DC??ODC??@TDC??CC??)RCCCCUCCUCCdCC]CC\CCCBCBCBCBCBCBCBCBCBCCCCCCCCCCCC'DZCCGCCNCCPCCXCC[CC\CC\CCBCBCBJDBD2C DBDB!DBhDBYDB@;DB @7CoCholotz-castle-1.3.14-src/res/stories/milanb/level005.hlv0000755000175000001440000002027711177007633021764 0ustar jacobusers7defaultfff?#                      `BC@AC[C??CZC??DC?? CYC??_CB??DB??@DZC??CB??CB??CC??CC??CC??DZC??CC??@DC?? DC??@DC??BC??DB??CC??BC*CC>CCBCBC0CCfC[CBBCBCBDBC4CC3CC4CC3CC2CDCCC"DCDCDCCCCCCC @/CoCholotz-castle-1.3.14-src/res/stories/milanb/level008.hlv0000755000175000001440000001647711177007633021776 0ustar jacobusers#defaultfff?      CC@A!BC??BC??BC??CC??CC??(CC??=CC??SCC??fCC??zCC??CC??CC??CC??CC??CC??CC??CC??CC??CC??CC??CC??)CB??BB??BC??CEC??CDC??CB??CB??CB??BDC??CC??CC??CC?? CBCBCBCBCBCB?CBCGCCBCBCBCBCCHC0@^CBholotz-castle-1.3.14-src/res/font/0000755000175000001440000000000011177007633015716 5ustar jacobusersholotz-castle-1.3.14-src/res/font/font.ttf0000644000175000001440000016771011177007633017417 0ustar jacobusersGDEF c } NGPOSʞ}pVGSUBS\OS/2koVcmapH )cvt 9fpgm (glyf(^FheadS 6hheaD$hmtx*VvlocamaxpQh nameb8D<postÄ1 prep; h`|_<I#I#j Lj Llm[J@hGBGSf @ JPfEd@ f5iq=!3xZ<36D{*}xF?Ny}Zr)`6N3sf\x\o?u`ZLs<Ls4y6{${BFzHfqqq``99*9d<Zq$qJ(+o#7@##35^R\sd5^5bs#5`b?Nyyyyyyr6666\\x\\3 ZLsLsLsLsLsLf4444 zzzzzz{fqqqqq9999qZqqqqqH@@@@rfqrfqq3s`\x9Fs/q+o+o{B3LNT ZsZTZTZtV$ Rrxx|`}ZZ~A6;rr?&fLsr<rbs{$x uHt*"N05HJ7znvE~Aq;oo?% :q$fqbZ{JX#s7n?<vx Uv7qqE+o999U?%od%%%993 q33'#hZdV=+/ / /s6pX@ ~ 1BSax~_    " & 0 : !"""""""""+"H"`"e%  0AR^x}    & 0 9 !"""""""""+"H"`"d%{q[WD6)!/,+*'0QNFEC@=1ۗa~{utho  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ardeixpkvjsgwl|cnm}byqz, %Id@QX Y!-,%Id@QX Y!-,  P y PXY%%# P y PXY%-,KPX EDY!-,%E`D-,KSX%%EDY!!-,ED-@%2%%A:B2SAS//2ݖ}ٻ֊A}G}G͖2ƅ%]%]@@%d%d%A2dA  d   A(]%]@%..%A  %d%@~}}~}}|d{T{%zyxw v utsrqponl!kjBjSih}gBfedcba:`^ ][ZYX YX WW2VUTUBTSSRQJQP ONMNMLKJKJIJI IH GFEDC-CBAK@?>=>=<=<; <@; :987876765 65 43 21 21 0/ 0 / .- .- ,2+*%+d*)*%)('%(A'%&% &% $#"!! d d BBBdB-B}d       -d@--d++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++5fqu-J3T99NR7s`s3VV9s3D{o{RoHT3fs +b-{T#\q#H99`#fy```{w``b{{Rffw;{J/}oo5jo{-{T7fD)fs""""] n'W~)H_uND$gV0 + W - X t /  7 ^ " ^ y3Iq#V'SyX?{m Nf0| 032o  U !3!`!u!!""|""""####(#4#$?$K$W$c$o${$$$$%% %,%8%D%P%\%&\&h&t&&&&'n'y'''''(((((((((())))** **D*+ +++*+5++++++,,),5,A,^,,-2-----.. ..../6/Y//0>0t001122L2X222233m33344424R444556555566:6[6y6667"797S7778898_888929w9::o::;;J;;;< <( >B>`>>? ?I??@@@@T@_@@@AA(AoAAAABB!B6BJBgBBBBC*CVCCCDDEEF8FFFGHG^GGGHHIUIIJ'JQJK-K5K=KEKMKKLQLLff@ /10!%!!fsr)d @@ <2991/0K TX @ 878Y P ]7# PW 6<NM@1<20KTKT[X@878Y@0 @ P ` p ]!o x~=TX-ih`@1      91/<<<<<<<2220@   ]!! %3%%#!7%7%T%DWi_i0퉠f(n-OUH^FB>2 hF7E(-(1:&'&'5&'&'&76?36&'&' 67654'&-/kijzTYKoVL6AHP\qx(2=88#h2@>0(-M #rzMntG% @#^a+5XQ54k+7ZQ;.q))-832654'&'2#"&546327654'&% 2 &546LA#?.Uc+:S3'7)6n(br¹ ZFk0W34Fۻ(Kg/A:!-7#Jۻۼ!, 8&3267 6'&7 '#"'&'&7676&54632&'&h7*Ԡ_I{Ti-$ h]Ehϻ*L޸SUo0A@fQX?@v~%sYWoEX&s$$*i 7X345xB@ 10KTKT[X@878Y@ @P`p]o~u(''&76$+IҰ9_K utAvXXtZT776'Z6$+HҰ:_KstAvXXt<(N@,       <2<2991<22990  -7%Lr[f~hADf+'P3/nQh`x #@   <<1/<<0%%!Nff- frA_&T2@ 104$t2T.Z310%3X0 E 1/0# 0B-@B/9910KSXY"i3}"327654'&2 Ni7I1RHO  06w]鍚ssyz K@B  1/20KSXY"KTX  @878Y] %!@*Ft \0d  "%!676767654'&7632RxLfc%&Op2S%jXE[n$>uqGLIU+#=f,8\p3'&'&'32654'&77654'&'67632%QH{zCǂ |V@R2RXvjH lXP .T,bypA/~ Qwu;?jHLO$h{7d6 @   B    <291/<290KSXY"K TK T[X@878Y@* *HYiw+&+6NO O Vfuz ]] %'!7%7fºo-dL$&nT@D"%%67632!"&'767676'&#"80_k,,$^h~4X6 el= }8"s[{Ll+"3276'&'&&'&>32# 76767C<4P-4O(CgI ;kD]SEr=^^o@]~Z&T 4iW]y~KD6*c@B991/0KSXY"KTX@878Y@X9Hg]]% *T> #1"2764'&'.54$32 $54627654'&#"e:99::::9534363[\eu66667666g г "Əُ40--.Q40-[%%7676#"543 !"&264'&" m^xu|h:lL_p8888pq')o[=V\s[BAAB<@<21/00(%HJ8<01P %@  <210774ʲP-'VN}7 M@*B$#29190KSXY" s{ ,xc@ #<210% %xc|z\^Y_IFO@+B$#<9190KSXY" Ar%KN,''7676?6765&7632\'*Z9@`8Xx`g$"\X, `0&0}'Y5/00.: Gv2(ŸLE@ZV+ HqZ327654'&#"#"&63276'&'&'&'&#"76767'&'&'&5476$32%% @7]e3X0d4}DR{``Y9QV KNR_E%~Rk{KO}c81,Mhu/aRcMI%'a ;8JCk/FB@`2(C#'V9J>}IJ}b{㢶h @A       B    91/<90KSXY" ]@:Xvp VXP ghxv|rwx ]]%!%!jhT6H(BfB~$\Z %767676'7676'&'&! +Lf[_s5]-r3 ?{i}|d%G}s4R`j(N0` ˘r@&'&767'$'&76!2'%>B+,kjlSbV{UZ27mtPUr'' dG` 32767'&)5i%BܞHإhPaIP6O%"~60 .@   21/0 ]%%%%%6^lGN>BN# )@ 21/0 ]%!%NիPCcH7`s 7'%# !2&'&'&!26VmUuu^oPVBx\STWKvuŽ'SUmnHF B" |l]`fR; ,@ 8  221/<20P ]%f-1K= m=+|xxR91/0KTX@878Y@ 0@P`]x=+o` /76'gm~'fWfNCzK@jLj @(B  291/<290KSXY"]@ ((764GFCUgvw    (+*66650 A@E@@@ b`hgwp  ,]q]q I:9C (1|e1`Rj %@ :1/0@ 0P]%%`3C 7 j @4  B    >  91/<290KSXY"p]@V   && & 45 i|{y   #,'( 4<VY ej vy ]]~ؙ=V=+Z" y@B6 991/<2990KSXY" ]@068HGif FIWXeiy ]]Zxȴ5NlЄxzs " 654& ! [ZZ[4:xyssss [[<:32764&#! +b66lbCŁ8w34fڮrxs " 654&# ! ޚ[ZZ[46l!#y;:xssssG*Oab[": &'&! 32764'&#A{>pJF`]~f4444f~W1D+k؍j/0./0&'&'&'&327676'&/&'&54$32x ~ Agk* zE^tĪ v ^[K1vE{fe8thV6rC&2fͮYqG7#xhm?,a`@J@@@1/20K TX@878Y@  @ p ]Š*/64/ 3276'! '&4DesWevm!e+'͌j$ŒhQ(@'B91/290KSXY"P]@b*GGZ} *&&))% 833<<7HEEIIGYVfiizvvyyu)]] @¢&L>6^ {@I      B     91/<2290KSXY"]@  ($ >>4 0 LMB @ Yjkg ` {|      !   # $ %  <:5306 9 ? 0FFJ@E@BBB@@ D M @@XVY Pfgab```d d d wv{xwtyywpx   []] 6R`\&rU8x$L ]@F      B    91/<290KSXY"K TK T[KT[X  @878Y@ '' 486 KX[fkww       &()&(' ) 54<;:;4 4 8 ? H O X _ eejjhiil l xyyx}  x   @]]  ˁw.6d7.@(B@@ 91/290KSXY" ]@<5000F@@@QQQe &)78@ ghxp ]]ޙ{NճMa9B @BB 991/0KSXY"K TK T[X @ 878Y@@ )&8HGH    / 59? GJO UYfio wx ]] BƂ:NjC,HFS@C210K TX@878YKTKT[X@878Y%#%!FO_X[B-@B/9910KSXY" mE-Ӿ<@C<10KTKT[X@878Y3#5aۃ}usB @ 91290 % !,D <O10%7NR!-Vf1@ D10K TKT[X@878Y@Iaؚz\{ ,"3276=7#"'&767676'&>3 x--NkA@/'?Cg}X^]\BSeZ vHHVD)(LL~faanylѩR;:K''|LH 4'&"276>32#"&' :;;::;;:h:{{:hTQQQQQQQQdaadTqJ{&'&3267#"!2co-0_ YcPNM]-U56= :Q{Qfq++$$>:#qd#"3226&"rXTz:||:;vv;:^hDdaDDaQQQQq{!3267# 32.#"gjb.ck){t_lA@ ^Zc44S*,8 Cj~==oF'&%''5463'1Y&*6Ǯw*R$lcq/)DN`S *4&#"326'&#%326=#"32sigttgis$} 0^Ob9||9*Ì  a+[cb::bcB`.x'&>32d@00~Vvp+<bOBucJ\d/JedwZ+@F<21/0@  @ P ` p ]% J$_Z8(% '76''U@IAd%RA-3 D#sy!9<9A'A2*4H @)B F 291/<90KSXY" ]@_ ')+Vfgsw    ('(++@ h` ]q] *sSC#HBd,"F1/0@ @P`p]dXH,<3&>326'&#"6'&#">32)E`+=6,*Wai-;+S] ,}7?yz|v\k*<0c%;M_lPKgb|ZQf&'&#">32d"U0VdBucqߡms5_ZZedwqu{ "326'&2#"hx<;igx<<QQQR98$%>32#"&4'&"276s lO:{{z:;;::;;:@daa`QQQQQQQQq  26&"#"32:;vv;::||:>ȤQQQQdaDDad2p(GI&'&'&>32VAKd7dG;ҪK:.{;-%Cznfco{-&'&#"&'7767654'&/.546322A_f'4 Z?PSZloKQngE0F2-@f?vk! .#,KL##&&8EK($)$7%%?#"'&'57wO,&RGQG idPD\(U.~PEw7h@x$3276'#"'&n*Wf\lXCud@NaM_q?4fcxMQ@'B91/290KSXY"K TX@878YKTKT[X@878Y@Hj{  &&)) 55::0FFIIFH@VVYYPffiigh`ut{{uz>]]-u i#5 @IU U U U   B     91/<2290KSXY"K TKT[KT[KT[K T[X  @878YK TK T[KT[X @ 878Y@" 5 IIF @ [[U P nnf yy          %%#'!%""%' $ ! # 9669 0FHF@B@@@D D D @@VVVPQRRPS T U cdejejjjn a g ouuy}x}zzxy  { v } @/   y]]# xsOzr#VyU Z@F      B   91/<290KSXY"K TKT[KT[KT[X  @878YKTX @ 878Y@   & =1 UWX f vzvt        )&% * :9746 9 0 IFE J @ YVYYWVYVV Y P o x  /]]   dk5)`bHϹq+767'#_X``TqnT|He0444FNjƸ( @B 2991/0KSXY"K TK T[X @ 878YKTX  @878Y@B&GI  + 690 @@E@@CWY_ ``f``b ]] <z<گ#!RK&u*%'&'&=4'&/76=46;'&s!0u6O}bWk>D4+L $-no-''2CcK~:#HY^ݓ( %Bn\7GG=R,:10:NTZu*77676=476?'&=4&+76s!0u6O}bWk>D4+L #.no-''2CcK~:#HY^ݓ( %Bn\7GG=Rc &#"'&'&'&#"6767676cZc&^ ^XbRI`Q<\F;>MSHh )7H L"p|6 b@ <2991/0K TX @ 878YKTKT[KT[X  @878Y P ]% 6| PBx#!Q@+     "  "<<<221<9990%.'>7#&73JDFHAMf fIX⸹)**'# 32!b`@!    <<1/2<2990K TX@878Y66].#"!!!!53#535632NL=ty-=))׏/я^R#/@I -'! - -'!0 *$0* $ $(st*(s099999999919999999907'#"&''7.5467'7>324&#"326{r%$&(r;t=:x=q%%&&s7t@?s9q(&%%s>v:@t8s'%$|pprR@F  B     fe f e<2299991/2<2<290KSXY"K TX@878Y@(' ' ')((79  ]]!#!5!5'!5!3 3!!!c`Tþ{yT9{3{JD{3@ <210##  \= >@54&.#"#"&'532654/.5467.54632{?>?>S8alӃ\]>9̭IXW:fqր][;;ȦI.Z.L-[.K''PGZsweZ54m@''TLf{xf[1,pE<@dd1<20K TK T[X@878YK TK T[KT[KT[X@878YKTKT[X@878Y@````pppp]^O "N"/IC@&=>:A$104G$ 7aD=0^* D^ J21/02#"$'&5476$"3267>54&'..#"3267#"&54632mmllmmmmllmm^^``^^⃄^]]^\^BB@zBCFInmmmmnnmmmmng^^^傁^^__^]⃅]^^! "s;)_@3(%%  * "(kl"k *22999199990!!#5#"&546;54&#"5>32"326=P,]uu>DIE~bRhP{@p?Dq[[""CO@Mr%# @I    B   o o n<2991<2990KSXY" 5 5%-+#-+#RR^@ 10!#!^d10!!d/8L`@6EBC?2H09JC 9 $HE301B54&'.'2#"$'&5476$#32654&'2#'.+#^^``^^⃄^]]^\^ㄘmmllmmmmllmm}{{nWXfi`C.;I6Bf^^^傁^^__^]⃅]^^gnmmmmnnmmmmnb>KL?gwyVpMI`3Db+/10K TKT[X@878Y!!Vu=  @  Z[Z10"32654&'2#"&546PnnPPnoO@v+..ooPOmmOOp1.-rB .@     <2<21/<<0!!#!5!!!-Ө-}}^J@$}}B ~9190KSX2Y"!!56754&#"5>32 "?XhU4zHM98rn81^BQ##{l0b(H@'    #)~&~ )999190#"&'532654&+532654&#"5>32 \e9}F4wCmxolV^^ad_(fQI7Z`mR|yOFJLl?<:=svcE`sRf1@ D10K TKT[X@878Y3#fV` M@%  !   NF!2912<990"`""]3326533267#"&'#"&'#% )I#ER2bf*V H<9 NPOONN;9 %@]] 91290!###"&54$yfNHF103#F#u@  ' 1/90!#"&'532654&'T76xv.W+"J/;<+->i0Y[ 0.W= ,@   |]|| 12035733! c)t'+n`d.@  klk 9910!!2#"&546"32654&PXγгi~hi}|P{ݿܾsH# @I  B   o op<<991<2990KSXY"5 %5 +-+-#^R^  ^R^  j 5&{'X5jd?&{'X5tdbj 5&u'X5jdN,%77676767#"&5476?67676767'*Z9@`8Xx`g$"\X,`00}'Y5/00.: Gv(ŸLE@ZV+ Hh'C$h&$euh&$huh&$fuh&$duhm !@T   !!  ! !!!B     !  VV!"2299999991/<9990KSXY" #]@  s P#f iu {yyv v!# ]]4&#"326!.54632#!#TY?@WX??Y!X=>sr?<҈_Z?YWA?XXN)sIsrFv)H@9  B     <291/<0KSXY"]@gww  ]!!!!!!#!59=qժF՞ru@&&z-6A'C(6&(eu6&(hr6&(duR'C@,xR&,e/uRn&,h/uRk&,d/u  g@    2  y<291/220@(   ]]! )#53!!3 !iP`P5~.,ZHaf1@4Gf@Ns<'C2s&2e'us&2h'us&2f'us&2d'u? @M    B   <291<290KSXY"  ' 7 7w55v8vL57y5yy5f +@< +,  )&  *&& &,+,* # )#3,99999999199999990@*WZWU!je!{vu! FYVjddj(|svz( ]] 324&'.#"&5!27!"&''3>_'y=_''NOy;WfNPƀ[gX@CHp@CpDfbMKYg[KKX4/'C84/&8eu4/&8hu4/&8du.&<esu =@   ? 2291/0@ ?_]332+#32654&#'ђ/@0-'!  **.  !' $'$-F099991/990@@'(     ! "&  : :!MM I!I"jj  ]]4632#"&'532654&/.5467.#"#:A9`@IPAtx;e\`Wqqs`/Q*%jd_[?T>7;[gpz\f&DCRz\f&DvRz\f&DRz\7&DRz\&DjRz\&DR{o{3>@C'-%= 4%:.-*1 %?47&%7& =&-7"E?<9999912<<29990@0+0,0-0.0/00@+@,@-@.@/@0P+P,P-P.P/P0+0@@@@@@@@@??? ??0,0-0.0/@,@-@.@/P,P-P.P/ooo oo`,`-`.`/p,p-p.p/,-./]q].#">32!3267#"&'#"&5463!54&#"5>32"326=DJԄ ̷hddjMI؏`TeZ߬o0Z^Z55*,ywxx..''`f{bsٴ)quJ{&Fzqf&HCqf&Hvqf&Hq&Hjf&Cof&v\f&Y&jqu('@^%{&%#${##{#({'(#&'('%$%(('"#" ! B('&%"! ## #)&' ! (%#" QE)999999919990KSXY"?*]@v%+("/#/$)%-&-'*(6%F%X X!` `!f"u u!u"%#%$&&&''(6$6%F$E%Z Z!b b!z{     {zzv v!x"**']].#"32654&#"432''%'3%F2X)6 ~r4*!M!ü޼z&77kc\̑oabZQf&QGL@Dquf&RCsquf&Rvsquf&Rsqu7&Rsqu&Rjso )@ r <<103#3#!!oAH +@<+,&  )&  *&& &,+,* # #Q)E,22999999199999990@p(?-YVUV jf!{    { z{ {!"#$%{&%--&YVUZ(ifej(ztvz($$]] 32654&'.#".5327#"&'')gA\*g>}66]C_56`?`!*(Ou))Hn.Mw834OMx43N@xf&XC{@xf&Xv{@xf&X{@x&Xj{f&\v^V>@ GF2210@ `]%#3>32#"&4&#"326s:{{8daa&\j^r@&&e-uqJf&Fvr@&&i-uqJf&Fq$J@$ "    GE%<<1/<20`&&&]!5!533##5#"3232654&#"F:||ǧN}}daDDas&*ku`SH&JxR&,l/uy` F1/0@ @P`p]3#`u ?@   : y<<991/900P]3%!!'79Pw^Mo;jnH ^@  z z <<991/90KTX @ 878Y@ @ P ` sz p ]37#'7Ǹ}Lɸ{JZjXjs ;@   299991/220!!!!! !# !39OAg@AժF|pm|q{'3@1 . ("%4"1 K1 Q+E499912<2290@%?5_5p55555????? ooooo ]q].#"!3267#"&'#"32>32%"32654& H ̷jbdjQGьBN5Z44*,nmnm98olkp݇u&6zou{&Vz&6iuof&V.&<dsuB&=iuf&]V#@@   B   !$  $912299990KSX29Y"K TX$$$@878Y.#"!!#"&'53267#5!>32&P,`r<::d/4a/am"?$Ɨ5dzɏ!!J?f7@ u91290K TKT[X@878Y3#'#f?f7@ u91<90K TKT[X@878Y373x)9H W@ VV1<0K TX@878YKTKT[KT[X@878Y332673#"&v aWV` v HKKJLDf,@ d10K TX@878Y3# _@ V xV10K TK T[X@878YK TK T[K T[X@878Y4&#"3267#"&54632X@AWWA@Xzssss?XW@AWX@sssLu @   '1/90!33267#"&546w-+76 >&Dzs5=X.. W]0iJ7c@$   VwVv99991<<99990K TK T[X@878Y'.#"#>3232673#"&9! &$}f[&@%9! &$}f[&@Z7IR!7IRfB@991<20K TKT[X@878Y3#3#߉fxN@@"   mm  9991/<20%!5654#"!5!&5! Dz?1/aL"a*>w؍TU'6nEY{PZ͌iCzq/#@1 " $ #" #h#$9999991/<229990K TX$$$@878Y@V             ##(]]#3267#"&5467!##"#>3!i/7.%7vy"Pµ)6< yJ\:1fd.xo@E}7 %''%%''xV 2@tA;nrfYCPFCS)x {D'vN(@8aLJr m A2i==00*ֵ"JOZ\'fus'76&! ! 7# '&'%nؘL½U[w7 pHpk ϐAt12&'&'"#"%327654'&'&/&'&54764X0k@;>z0],r 2<$%4({ZL، j3Ee049Vu["_,^8NC  !_oQTTh<lrT'e/utE %/76'2aDqs#KNxRbPPD/gx032767656'&'&/&# '576'%2!4"B{I0!=I;CUwiVfLD!c^XN- F H9$7FlNN@k xFO()lf )32767654'&/ !%%;B|D-T>C96c\H Z*lPNX+ 6xI6#EO()@f(]-64 v#RX%%!324'&'&#%!*b 9b {J!O(.&96 N0'^Sy/oLLj'furj'hu&luxs %%%nc#;y3(Z#22h %9<#II+BW*` 6'&'&76%#!%%6KFTnjcaw03iDs':NVO^   OK׃o<>J4DdZ %767676'7676'&'&! +Lf[_s5]-r3 ?{i}|d%G}s4R`j(N0` ˘Z\6'%H00TA  %3%#76 %}&7.>uHy #aEP!1P_|E# 60 %%%%%6^lGN>B6(!32%&'6767+%#"'%6;DTV. YX -PlPzP- XE 0VTLfZkTAF1; ~Xs0#"'!276'&'&'7654'&#6;2P2!p0ػe#Y9 ppV(O@y7j !rmuu &SotJJ#|L1s33;+6\0[@@xerj %%7%jhAx1BT`<rj&luLj  I:9C (1|e1l%'76!]dDT`MM\`HTDP 09fj ~ؙ=V=+fR; %f-1K= m=+|xs " 654& ! [ZZ[4:xyssss [[rjj/Bm6ZHP*<:32764&#! +b66lbCŁ8w34fڮrxr@&'&767'$'&76!2'%>B+,kjlSbV{UZ27mtPUr'' dG@Š*/6ޙ{uM@ճMaWds '2&76' "'&'&%6'&'&#276`DF8TM&|gDR)%ś*63('3)yYo$ mٗb' ee*޺<Ϻ/*$,UDR<ە$L   ˁw.6d7xY' %%%(Uj*PZO 7UuH7!&'&#"'&'&x;_ {fi>&lgo0DJ;ˠP.H$ %!%%%{ Tb܄K[d(fZO<*F!%qi> 09Z0d+MN 767%&+%! 6׀6ft tK":B %84= 1= ?c4IZR20l %767%&+%$6%#T@Z9G :B~8 Mh'|=4XM*6282δH %76'&%$6N~?S ft_VP8'$ =F&6;7HB@J''&6! '3 767T(Y'Z½{X,gR7 <2'aK&rR;`tp%%276'&'&'&676! ! '&'so&_abY}M:;̺DzDnƌdW|4ƺ7O# "676?3%$476?'&X?@?<s%HGB}>IuaKӐ&'_ JLzh4-( bz\{ ,"3276=7#"'&767676'&>3 x--NkA@/'?Cg}X^]\BSeZ vHHVD)(LL~faanylѩR;:K''|LD6/&3676763 '"'&=4767&'&567676!23%&4e;He7F B(1o\IdS$x]d⌔H>f. 0DD Ax_BT@Vn@`:ZGu iRu*{0BKvR4m+"; +.A!`.<#!!2'&'&76767676&'#767654Z<$`, 4:-:0=fq`F<22;^U:KJ9 =k&ab C-"Nm#Z^CA `>RK M> 1I' " 5 7FEG'%wI010TA ` %3%#76 %36}&&7%.>ByQ"'uEO!0xP_8Aq{!3267# 32.#"gjb.ck){t_lA@ ^Zc44S*,8 Cj~==o'%32%&'6?+%#"'%6;WgV(Y -PPPP- E .VTBf Z[TQ61K ~OP0#"'!276'&'&'7654'&#6;222!p0ػe#0ppV(C*@y7j !r9y &SoaJJ#|<8335\0[@@xeog %%7%gh>{1dBN@T`Vn<ogH&X%Z  %I:9<C (1ixX%7+327655- %j1-HJ)w0w1ԢZ j  yӔ=P=F|:t %:-:xK(t=vm4=^xqu{ "326'&2#"hx<;igx<<QQQR98y3! $Xyx$%>32#"&4'&"276s lO:{{z:;;::;;:@daa`QQQQQQQQqJ{&'&3267#"!2co-0_ YcPNM]-U56= :Q{Qfq++$$>:#Š/6+767'#_X``TqnT|He0444FNjƸ(Z: '2&76' &'&'&%6'&'&#276dL>C%_,p&|ODPC*6ΦTZ+)yYm& iU&: o*޺O:4*S*l1DR<+MkJ   Jˁw 68lXD@` %%%%H+`80lҀ`\4$X#57676=%#'$&#PEBp^V(2J`*GI6?7MYU 5:VZ&'_Is %%%!%jZ4?8U25;lnF7'5%%LqA n(AA-Xl<$#!32&'&767654i9L4 3%B !"Kb{sDA _Y5 2 Q '&6! '3 767 Y'gwh{XlgZ2<Q'aK&ԏ~eR;5a1pUZ$4/&#"3276676  '&/#%nMm8KQL@r憉xe=z@PzNS]OԂ֛/7c%?'&&'&=6767676'x`]@#u+8-"N)?,L2 4:hl/jdIY6G88dyoJ A. #U+*.-qf'Cq'jd$+532765# ##5353!!676y`QkV&3̹lUC! R r`2B=jjJ.EGf&v '76&! ! 7'&7%afuL2½Uգ/LHytEϐ$i!uso{-&'&#"&'7767654'&/.546322A_f'4 Z?PSZloKQngE0F2-@f?vk! .#,KL##&&8EK($)$%/J$H\8(Y'j% '76''U@IAd%RA-3 D#sy!9<9A'A2;j )%6/&+3276/76'324/8NN_>, #4\5\4< n;K@>VXZZ??8A3PYZ=FIcI2|GHR6U% %6'&+76%327(<^N#z^=~Z$i$]n&TZZ\%@&:>3<P*P<**ZTGIS!dx"7'%%6763 Q0c5?O0U|6D4&djLJ'9BjD%Zf&v`ogf'CH&%Xd %%%%7%XVr@ LXpd<`(`y/10!!yy/10!!y@ 10#53ӤR?@ q103#ӤR՘?@ 10%3#ӤR@m '@   1<20#53#53ӤRӤR??m '@   1<203#%3#ӤRӤRլ@@m '@    1<20%3#%3#ӤRfӤR@@9; '@  YW Y <<1<203!!#!5!oo\]9;>@   Y W Y <<2<<2122220%!#!5!!5!3!!!oooo\\3!   \ 104632#"&3~|}}||} #@   1/<<220%3#%3#%3#q L #'3?K@D$%&%&'$'B@ .(F4 :&$L%IC'1+C =  1 =I 7+ ! L9912<<2220KSXY"KTK T[K T[K T[K T[KT[XL@LL878Y"32654&'2#"&5462#"&546!3#"32654&2#"&546"32654&WddWUccUt%ZVcbWWcdWccWUccܻۻۻۼܻۻs#G@%Bon29190KSXY" 5s-+#R#I@&Bop<9190KSXY"5 +-#^R^  1@: "+ /) 2+"!)#&  , & &*!/<29999999999122<20K TK T[K T[KT[KT[KT[X222@878Y@z  1Ti lnooooiko o!o"o#n$l%i'i-  !"#$%&'()*+,-2   USjg ]].#"!!!!3267#"#734&5465#7332[f A78 ʝf[Y`(77(6bbiZȻ{.# .{ZiHH"{/ #/{"G'F >@!    b b cbc91<<2<<903#######5Jq7rqr/B^^h-)b@'! '!* $$*9991990K TK T[KT[KT[KT[X*@**878Y>54&#"#"&54632#"&54324&#"32IH7$$0e՘ݢe WOmVPmmWKt,>bFأ[t}t{`8@91/90@cmpxyvn]] !3!^DC?wq@gg120!#!# }w; ]@    91990@0QVPZ spvupz  Z pp{ t  ]]!! !!5 7AJI3!-10!!ת+@B10KSXY"3#-\HF103#F=} *@    91903##'%\sB}}`s-Pb; /@- !$'!!0 $*0999919990@     $$$   $$ $ ***///***55500055 5 :::???:::EEE@@@EE E JJJOOOJJJV !"&'()]]32654&#".#"326#"&54632>32#"&1TevYR1UfvYRF^_HDa^/XZie7XXjeߦ~᧯w/%&@  & iji&1026732#"&'.#" #"&546327j Pd@7*8  kOeD=!0 l9TA6?&#Hn!bSA8?S;?@.9*-" *19" <-<<219999990#"'&'&'&#"5>32326#"'&'&'&#"5>32326ian ^Xbian ^Vgian ^Xbian ^VoNE;=LTNE;=KڲOE;=LSNE;=K'>@"     <291<2<<990!!!!!'7!5!7!}/H{};fըfӪ T@.B $# <2291/90KSXY" 5 !!@po V@/B$ # <<291/90KSXY"55 !5AǪ#u"@91990  9%-/J@(   L<2<2991/<22990K TX@878YKTX@878Y@0P]]#!##53546;#"3#JcM`/яNPhc/J@!    L<<991/<22990K TX@878YKTX@878Y@0P ]!#!"!!##53546JcM/ѹ{Phc/яN<jsRfvJ7VfC?fw@ 91<90K TX@878YKTX@878YKTX@878Y@ //- ]?f@ 91290K TK T[K T[K T[X@878YKTX@878YKTX@878Y@ "  ]6@   ] <291<290KTKT[KT[KT[K T[K T[X@878YKTKT[X@878Y@T /9IFYi       "5GK S[ e]])9Hj@ VV120K TX@878YKTX@878YKTKT[X@878YDf10!t N_( ` 0 &:v '7 w0W  ( t    N _ (   `  0 &Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved.Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved.Holotz SansHolotz SansRomanRomanFontForge 1.0 : Holotz Sans : 19-3-2005FontForge 1.0 : Holotz Sans : 19-3-2005Holotz SansHolotz SansVersion Release 1.0 Version Release 1.0 HolotzSans-RomanHolotzSans-RomanBitstream Vera is a trademark of Bitstream, Inc.Bitstream Vera is a trademark of Bitstream, Inc.Bitstream Inc.Bitstream Inc.http://www.bitstream.comhttp://www.bitstream.comCopyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera". This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org.Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces. The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera". This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names. The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org.+m  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm sfthyphenetauni0400 afii10023 afii10051 afii10052 afii10053 afii10054 afii10055 afii10056 afii10057 afii10058 afii10059 afii10060 afii10061uni040D afii10062 afii10145 afii10017 afii10018 afii10019 afii10020 afii10021 afii10022 afii10024 afii10025 afii10026 afii10027 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038 afii10039 afii10040 afii10041 afii10042 afii10043 afii10044 afii10045 afii10046 afii10047 afii10048 afii10049 afii10065 afii10066 afii10067 afii10068 afii10069 afii10070 afii10072 afii10073 afii10074 afii10075 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10082 afii10083 afii10084 afii10085 afii10086 afii10087 afii10088 afii10089 afii10090 afii10091 afii10092 afii10093 afii10094 afii10095 afii10096 afii10097uni0450 afii10071 afii10099 afii10100 afii10101 afii10102 afii10103 afii10104 afii10105 afii10106 afii10107 afii10108 afii10109uni045D afii10110 afii10193Euroc6459c6460c6461c6462c6463c6466c6467c6468c6469 F }~LMMNQRRSabcdl 2XDFLTlatnfracligaliga 8P  MR07 cObLIJ 4 "X~X~X ,latnkernL,tvxxTnHR    z > T  bD&\:n.Hb| "$%*K-r294K7D9:;< R&Y\99999 &&&&&K 8$9&*247a9}:D 5: 6; =A EJ gpox qzTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/bar/3/0000755000175000001440000000000011177007633020404 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/bar/3/bar.tga0000644000175000001440000000131411177007633021644 0ustar jacobusers  '_ɂ۫Yɂ٨@~Yȁz@~RR}Cj2l4h5a+cx$W۫'_ɂ۫Yɂ٨@~Yȁz@~RR}Cj2l4h5a+cx$W۫'_ɂ۫Yɂ٨@~Yȁz@~RR}Cj2l4h5a+cx$W۫'_ɂ۫Yɂ٨TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/bar/1/0000755000175000001440000000000011177007633020402 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/bar/1/bar.tga0000644000175000001440000000115711177007633021647 0ustar jacobusers 9F`؉V[7BBP#ShV~K4>GV&\X\~K4@FU%LShuG9F@N"PQ|uG;H ;G u6QuuG=J 9E~Dd[Z>L!4@~DtKT>K!6BP|E}T=J 1<P|?~W=J -8yE|=]=J +4o<|I}T?L!*3o<|K}T=J!-8v?WQxL6A 2=_OX~K.7 3?WUXP/: 8DVehP2= 7D~WUhP1< 8D}TZh~K5A *3|K\|w@6BTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/bar/4/0000755000175000001440000000000011177007633020405 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/bar/4/bar.tga0000644000175000001440000000132611177007633021650 0ustar jacobusers   &CR%_}hq7\~ 0x#$Ed6@Vm@~Y|b0jBx|1^mJu!T۫a@ɂ۫Yɂ٨@~Yȁz@~RR}Cj2l4h5a+cx$W۫'_ɂ۫Yɂ٨@~Yȁz@~RR}Cj2l4h5a+cx$W۫TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/bar/6/0000755000175000001440000000000011177007633020407 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/bar/6/bar.tga0000644000175000001440000000111011177007633021641 0ustar jacobusers  TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/0000755000175000001440000000000011177007633020617 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/11/0000755000175000001440000000000011177007633021040 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/11/floor.tga0000644000175000001440000000222711177007633022661 0ustar jacobusers ===<<<;;;888;;;777000666999666333222000888???AAA???<<<;;;888 ;;;KKKHHHFFFHHHEEEBBBJJJOOOKKKIIIKKKSSSWWWVVVRRROOO;;;;;;FFFWWW[[[^^^fffjjjfffdddccceeepppjjjhhhjjjPPP<<<===FFFYYY}}}|||lllfffzzzdddPPP;;;AAAKKK[[[{{{\\\111wwwzzzzzzaaa}}}iiiOOO:::BBBPPPaaaxxx]]]$$$pppyyyooodddMMMmmmMMM666???PPPffflll000YYYaaalllsssUUU888hhhMMM::: ;;;MMMdddoooZZZ===!!!JJJLLL^^^zzzaaaMMM>>>999KKK___yyyYYY=== ===ttt```LLL???:::KKK]]]vvvrrrHHH111bbb^^^HHH;;;666KKKdddiiiOOO iii```FFF666///HHHfffdddHHHVVVLLLcccKKK555222JJJiiitttPPPDDDDDD\\\xxx{{{fffQQQ:::666OOOmmmhhhVVVOOORRRxxxpppTTT:::666QQQdddWWWDDD SSSlllqqqQQQ888:::QQQaaaGGG???@@@QQQJJJ___ttt999PPPbbbhhhKKK888===KKKbbbXXX===KKKYYYrrr kkkeeePPPBBBzzzcccGGG666 999???PPP```ccc[[[kkktttpppiiijjjUUUHHHiiirrrqqqfffHHH333333>>>???JJJNNNOOOTTTVVVSSSNNNOOOTTTNNNKKKQQQSSSQQQLLLJJJ555///555999;;;:::===<<<666222888DDDEEEBBB;;;555TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/8/0000755000175000001440000000000011177007633020766 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/8/floor.tga0000644000175000001440000000233611177007633022610 0ustar jacobusers ===<<<;;;888;;;777000666999666333222///000===@@@???<<<;;;888 ;;;KKKHHHFFFHHHEEEBBBJJJOOOKKKIIIDDD===111CCCVVVRRROOO;;;;;;FFFWWW[[[ ^^^fffjjjfffdddccc\\\VVV;;;EEEhhhjjjPPP888===FFFYYY}}}uuu ooo|||cccaaaKKKJJJzzzSSS999...AAAKKK[[[rrrlll~~~CCCUUUhhhwww^^^>>>AAA+++000***BBBGGGaaa ___]]]YYY999QQQooo}}}qqqKKKBBBUUUMMM666???;;;JJJ|||lll]]]IIIsssyyy^^^>>>hhhMMM:::;;;DDD;;;<<>>777AAAJJJ???AAAbbb000111IIINNNuuu{{{]]]LLL???:::KKKQQQRRRJJJXXXddd;;;444000RRRcccxxx^^^HHH;;;666===GGGcccuuuZZZGGGCCC>>>GGGIIIZZZtttsss```FFF666---555FFFxxxAAALLL333zzz~~~333ddduuuzzzcccHHH555111999[[[VVVZZZQQQnnn}}}WWWJJJ```ssshhhTTT===444777666BBBmmm@@@yyywwwnnnuuuyyypppDDD+++BBBPPPbbbdddTTT:::666KKKnnn[[[nnn}}}jjj\\\oooqqqQQQ888:::QQQmmmhhh~~~hhhKKK888===KKKbbb~~~bbbcccGGG666999???PPP```ggg oootttpppiiijjjmmmeeeLLLPPPrrrqqqfffHHH333333>>>???JJJNNNOOOTTTVVVSSSNNNOOOTTTNNNGGG999SSSQQQLLLJJJ555///555999;;;:::===<<<666222888DDDEEEBBB111:::555TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/2/0000755000175000001440000000000011177007633020760 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/2/floor.tga0000644000175000001440000000265111177007633022602 0ustar jacobusers  I6lQnR_GR>S=V@T>E45'?/F4H5N:U?]FiOuW{\ G5kOoS[C;-5'9*8*3&."-"+ 2%<-B1[ClQqT!M9kPnRT?6(?/P;VA S>D34'D4R>F4:+S>_GU?A0T>U?D30$;+L9XD^IZFF65*E6R?@00$?/M9N:(4'3%-!.",!."9.TJ/cY?aX?[T@VP@[S?OF.3+)0$2%8)N:Q<C33&?/H5B2KC-KC-C3A04'C2`H]EK89*N:bIWD^V=NG2A2C29+Q<jO`GK86(D3R=K:WO8aY?UAQ<B0ZB\DXAG55'C2J7B3 ZSAc[GI9 B24'E4-!5'0#/#9*5)5-eaXplb:1* #-!."2%B1L8D4MF/MF10%%* 7(9*M9[DO=XO7\T=>16)H52%3&G5V@K9ME,IB.3'4'T?."1%D3P;D48/JD2fcZb_VSM(2*#(F4*0$0#-"1$9+>080G?+PI4B;(0)9-F6I8>/''3&N9U?T>A10#A0WAR=;-C4K:>00$A1P<O<@02%E3XAvXpTWA>.Q<bIU?<,G5S>F40$6(<-;,9*@0_GuWz[wYpTXAA0T>aHL91$5'@/<,9+G5L9F4E4Q<fMtWXAT>N:>.0#?/J6=-*2%<-<,>.G4K9I7G5J7Q=V@5'6(5'0$($*, +)'*+ *)(1$7)9*9+TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/5/0000755000175000001440000000000011177007633020763 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/5/floor.tga0000644000175000001440000000231611177007633022603 0ustar jacobusers ===<<<;;;888;;;777000666999666333222000888???AAA???<<<;;;888 ;;;KKKHHHFFFHHHEEEBBBJJJOOOKKKIIIKKKSSSWWWVVVRRROOO;;;;;;FFFWWW[[[^^^fffjjjfffdddccceeepppjjjhhhjjjPPP<<<===FFFYYY}}}zzzdddPPP;;;AAAKKK[[[llniizzziiiOOO:::BBBPPPaaa aaj==uuunnn}}}mmmMMM666???PPPfffbbg99NN]]p}}}hhhMMM:::;;;MMMdddlll{{{ddd\\r''++iiinnn```NNN>>>999KKK___yyy^^s__yggg66''55bbbtttxxx^^^LLL???:::KKK]]]vvvppphhhaa0066"" ##77qqqttt^^^HHH;;;666KKKdddrrreeeAA&&##((jjjttt```FFF666///HHHfffrrraaa99 //CCccceeezzzcccKKK555222JJJiiisssNNDDcc|,,66gggfffsssuuu{{{fffQQQ::: 666OOOmmm~~~rrrddq``oggg``|aayvvvuuupppTTT:::666QQQnnnvvv~~~}}}vvvnnntttqqqQQQ888:::QQQmmm|||uuuhhhKKK888 ===KKKbbbcccGGG666999???PPP```ggg oootttpppiiijjjmmmeee___iiirrrqqqfffHHH333333>>>???JJJNNNOOOTTTVVVSSSNNNOOOTTTNNNKKKQQQSSSQQQLLLJJJ555///555999;;;:::===<<<666222888DDDEEEBBB;;;555TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/7/0000755000175000001440000000000011177007633020765 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/7/floor.tga0000644000175000001440000000231611177007633022605 0ustar jacobusers ===<<<;;;888;;;777000666999666333222000888???AAA???<<<;;;888 ;;;KKKHHHFFFHHHEEEBBBJJJOOOKKKIIIKKKSSSWWWVVVRRROOO;;;;;;FFFWWW[[[^^^fffjjjfffdddccceeepppjjjhhhjjjPPP<<<===FFFYYY}}}zzzdddPPP;;;AAAKKK[[[lllrrizzziiiOOO:::BBBPPPaaa ccabb=uuunnn}}}mmmMMM666???PPPfffccbdd9mmNbb]}}}hhhMMM:::;;;MMMdddlll{{{dddbb\WW'YYYY+iiinnn```NNN>>>999KKK___yyydd^gg_gggXX6YY'TTSSWW5bbbtttxxx^^^LLL???:::KKK]]]vvvppphhhjja[[0XX6UU\\"PP OOYY#YY7qqqttt^^^HHH;;;666KKKdddrrreeehhA]]&MMPPUUZZ#XX(jjjttt```FFF666///HHHfffrrraaaaa9PP LLdd/eeCccceeezzzcccKKK555222JJJiiisssaaNaaDjjc[[,\\6gggfffsssuuu{{{fffQQQ::: 666OOOmmm~~~rrrhhdee`ggghh`hhavvvuuupppTTT:::666QQQnnnvvv~~~}}}vvvnnntttqqqQQQ888:::QQQmmm|||uuuhhhKKK888 ===KKKbbbcccGGG666999???PPP```ggg oootttpppiiijjjmmmeee___iiirrrqqqfffHHH333333>>>???JJJNNNOOOTTTVVVSSSNNNOOOTTTNNNKKKQQQSSSQQQLLLJJJ555///555999;;;:::===<<<666222888DDDEEEBBB;;;555TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/16/0000755000175000001440000000000011177007633021045 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/16/floor.tga0000644000175000001440000000147411177007633022671 0ustar jacobusers  ]t $9LlSh $9]l]t$L]h $9Lt $9t $9t $ 9hts $ s5\g\s $ $ s\2ItR\s s s\mmmk,\s\s\yyy\yyy\TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/15/0000755000175000001440000000000011177007633021044 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/15/floor.tga0000644000175000001440000000240011177007633022656 0ustar jacobusers  888;;;<<>>MMM___CCCOOO{{{|||yyyXXXBBB\\\BBB ???LLL```IIImmmvvvgggMMM???rrrYYYBBB;;;HHH^^^NNNgggzzzSSSEEEDDD|||yyyyyySSSBBB666FFF```eeeNNNIII]]]ggg}}}ggg>>>LLLBBB555KKKcccqqqeee]]]vvvpppcccTTT<<>>QQQYYYdddqqqlllOOOBBB:::TTTpppPPP\\\uuubbbIIIBBB888QQQqqqVVV^^^ZZZMMM@@@BBB888KKKhhhZZZjjjzzzcccmmmJJJ:::666GGGcccfff___]]]dddiiibbbKKK=== 333HHHfffqqqrrriii___eeemmmjjjfff^^^___\\\ggg```PPP???999555JJJLLLQQQSSSQQQKKKNNNTTTOOONNNSSSVVVTTTOOONNNJJJ???>>>333555;;;BBBEEEDDD888222666<<<===:::;;;999555///TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/13/0000755000175000001440000000000011177007633021042 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/13/floor.tga0000644000175000001440000000172011177007633022660 0ustar jacobusers  #XBtV\E(#WBqTZC&%YBnRQ="%R=aHN:3&*I7M9?.E38)C2@0=.K8+ G5<-I6aI:+Q=J7:+N;dJ+ L8U?B1.#7)9*">.V@Q<3&$#)A0E3G4A16(/# *J7V@H59*?/P<U?>. &I6_G]EF58*F4ZC[CC2 #?/\D`GL88);,N:XAU@<- -!?/C2H5J7?./#-!9*?.<,0$1#G6T>T?G6?/B0I6@03&C2O;N:H5E4&%+ :,N;V@K8@0 L9\EdJS><-O;fLkPgM`HWAT>O:F3>.C2I6D2B1K8WAYBS>E34'H5_GeKgMjOS?P<N:G5>.:*D2E3 H5S?^EO:H53&<-I6Q=`HnS!*=-F4C33'."1$5'4&.!(1$:+=->.=-TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/3/0000755000175000001440000000000011177007633020761 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/3/floor.tga0000644000175000001440000000317011177007633022600 0ustar jacobusers  @4]FqTgMZCR= T?QA<>.9IGhRkPdJ_GeLpSoSZB0<QHlUkPfL`H]F\EZGFB28HC`LdKdJeKhNlPhM[C"D=CYH_H]EV@O=G=@A-B>,ADBQ@U@XA_GhNaH[C+A8@9::7=:=<7>+C M P M I 7DC@C>B=E?JAMDF@6<*A F I K M RU USN !J )F(E!G H !J %J K O M<@8892C"J L O !K ,C;@HCOEQEJD6A'<4B>C0AE rUnRjPcPGF0:@CQHVE[E`GeKfM]NAF,<=@QCSBPDnRkOgM^JEA08D@YGYCP=F9@9<=6D'FA 4AKAK:@/J?N>P=LA8?);8AICF@:?,B J O RRL &G?CL=Q=!C 6==6;:,@!D%E,C+D H M TUTR K (D7;?4D3 A 6=E:SAQCMC OBHC1CC %G 5DAAGBJBMAM<M:F4 :<TGdMcI^FXBV@XBXGAD*?7CJCSAWAT?P<P;J7"C @EQBV@T?S>V@[DTE5?>$B:@NA]FdJfLhNkOU@H 5GEDJBLDNCREUEME1BD H .B9<A>HANCQBJ:A1O "L #I $K L J 'E3@1>"B F K N O O K H .?96B3PGNEHD;F%G G %F 9AC=A:=8><?@4FH I G 2@E;R>ZCaHeL`NEE/:@BWH_HdJgMjOfMUI2@@ 'D?CQB\EM9T?^FbMOC:7ODdOgNcJaHcIcJYH>@*<@E_OlRrUB5F8E<W@ 383;.@#J P SUTSQOQPQM "F 4=?4B2TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/1/0000755000175000001440000000000011177007633020757 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/1/floor.tga0000644000175000001440000000315011177007633022574 0ustar jacobusers  C2_FrUgMZCR=U? F59*T?mQlPdJ_GeLpSoSZB <-ZCpTlPfL`H]F]E^FO;<,R<eKdJeKhNlPhM[C4&J7^F`H]EWAQ<L9K8=.-!<-N:T>V@XA_GhNaH[C;+E3B1A0D3F4C2=-8*-"%4'H5M9K8I7L9Q<U?N:A0:+3&/#+ *1%7) 3&0#7)=-;,5(0$7);,7)4'P;E3A0B18**0$7)=-G5Q=WAXAT>D35&C2K8?/1$rUnRlPiNS><,M9ZC[C]EaHfLhMeKO;9*H6W@V@ nRkOhMbIN::+M9]EZCR=J7F4:+."B1R=M9@/P;Q<R<R=D36'E4R=N:E4=-6(1$/#+ (:+K8P;R= 2%B0C1C2;,3&8*=.<-5'-!1%6(4'2$:+A0B1E30#B1J7V@T? U?R=A1/"9+F4L8P<R=R>P;N:F4C2[CgMdJ^FXBV@YB]EN:8*F4S=V@XBWAT?P<P;J74&N:V@W@T?S>V@\DYBB1+ 5(F4S>^FdJfLhNkOU@,!H5Q<R=T?U?XBZCV@A1.!5(?.C1I7P<U?V@L9B17(:*9*;,8*3%:+A0>.3&)-"6(9*4'.!4'<-@/D2YBW@S=L8:++ 8*F4J7G5D2F5J7F43&$/#@0K7S>ZCaHgLfLQ<:+K8]EaHdJgMjOhM]EA0+ 9*L8V@]EM9T?_FfLV?A0W@iNhNcJaHcIdJ^FI67)N9gLnRrUD3I6K7I6;,, 9+G5K8O:Q<S=R<O:?/1#A1R=U>W@=->.=-:+1$(-!4&5'0$+ /#0#-"+ *6(@0C1C2TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/14/0000755000175000001440000000000011177007633021043 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/14/floor.tga0000644000175000001440000000240011177007633022655 0ustar jacobusers  BBBAAA???<<<;;;888BBBWWWVVVRRROOO;;;BBBWWWpppjjjhhhjjjPPP<<<BBBMMMrrrzzzdddPPP;;; BBBRRRuuuiiiOOO:::BBB[[[nnnYYY888dddmmmMMM666 BBBSSSyyyIIIPPP???===]]]hhhMMM::: BBB\\\BBBXXXyyy|||{{{OOOCCC___MMM>>> BBBYYYrrr???MMMgggvvvmmmIII```LLL???BBBSSSyyyyyy|||DDDEEESSSzzzgggNNN^^^HHH;;;BBBLLL>>>ggg}}}ggg]]]IIINNNeee```FFF666BBBOOOSSSVVV<<>>{{{~~~yyyxxx{{{fffQQQ:::BBBIIIbbbuuu\\\PPPpppTTT:::BBB@@@MMMZZZ^^^VVVqqqQQQ888:::JJJmmmccczzzjjjZZZhhhKKK888===KKKbbbiiiddd]]]___fffcccGGG666999???PPP```ggg \\\___^^^fffjjjmmmeee___iiirrrqqqfffHHH333333>>>???JJJNNNOOOTTTVVVSSSNNNOOOTTTNNNKKKQQQSSSQQQLLLJJJ555///555999;;;:::===<<<666222888DDDEEEBBB;;;555TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/9/0000755000175000001440000000000011177007633020767 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/9/floor.tga0000644000175000001440000000234011177007633022604 0ustar jacobusers ===<<<;;;888;;;777000666999666333222000888???AAA???<<<;;;888 ;;;KKKHHHFFFHHHEEEBBB777...///>>>IIIKKKSSSWWWVVVRRROOO;;;;;;FFFWWW[[[^^^KKK 666\\\ccceeepppjjjhhhjjjPPP<<< ===FFFYYY}}}~~~FFF###>>>uuuzzzdddLLL;;;AAAKKK[[[ooo???000MMMNNNssstttiiiCCC:::BBBPPPaaa___LLLTTT}}}XXXRRRyyymmmAAA444???PPPfffsssSSS jjj{{{eee999777;;;MMMddd|||OOO???XXXmmmyyyPPP<<<666333777CCCJJJ???666\\\jjj~~~xxxvvvcccNNN<<<999:::KKKOOOggg___YYYPPPLLLxxxmmm|||xxx{{{ooofffOOOGGG;;;666CCCTTTttt___^^^hhhsssgggOOOqqq```FFF666--->>>fff}}}hhhaaakkkSSSGGGooocccKKK555222IIIiiiuuujjjnnneeezzzSSSIIInnnxxx{{{fffQQQ:::666OOOmmmwwwnnnuuu\\\kkkpppTTT:::666QQQnnn }}}AAAgggqqqQQQ888:::QQQmmmbbbcccXXX{{{hhhKKK888===KKKbbbUUUMMM```]]]xxxcccGGG666999???PPP```ggg ooo@@@000PPPjjjiii>>>777JJJmmmqqqfffHHH333333>>>???JJJNNNBBB***+++444MMMOOOTTTHHH333---///777JJJ555///555999;;;:::...111,,,///222888DDDEEEAAA:::111))),,,555TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/4/0000755000175000001440000000000011177007633020762 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/4/floor.tga0000644000175000001440000000311211177007633022575 0ustar jacobusers  ===<<<;;;888;;;777000666999666333222000888???AAA???<<<;;;888 ;;;KKKHHHFFFHHHEEEBBBJJJOOOKKKIIIKKKSSSWWWVVVRRROOO;;;;;;FFFWWW[[[^^^fffjjjfffdddccceeepppjjjhhhjjjPPP<<<===FFFYYY}}}zzzdddPPP;;;AAAKKK[[[zzziiiOOO:::BBBPPPaaa ooo}}}mmmMMM666???PPPfffssshhhMMM:::;;;MMMdddyyyaaaMMM>>>999KKK___yyy~~~xxxvvv```LLL???:::KKK]]]vvv|||xxx^^^HHH;;;666KKKdddsss```FFF666///HHHfff}}}zzzuuuzzzcccKKK555222JJJiiiuuuooo}}}~~~yyyxxx{{{fffQQQ:::666OOOmmmwwwnnnuuupppTTT:::666QQQnnn }}}qqqQQQ888 :::QQQmmmhhhKKK888===KKKbbbcccGGG666999???PPP```ggg oootttpppiiijjjmmmeee___iiirrrqqqfffHHH333333>>>???JJJNNNOOOTTTVVVSSSNNNOOOTTTNNNKKKQQQSSSQQQLLLJJJ555///555999;;;:::===<<<666222888DDDEEEBBB;;;555TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/10/0000755000175000001440000000000011177007633021037 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/10/floor.tga0000644000175000001440000000233411177007633022657 0ustar jacobusers ===<<<;;;888;;;777000666999666333222000888???AAA???<<<;;;888 ;;;KKKHHHFFFHHHEEEBBBJJJOOOKKKIIIKKKSSSWWWSSSJJJIII999;;;DDDJJJWWW[[[ ^^^fffjjjfffdddccceeepppaaaLLLGGGJJJ333(((===DDDKKK||| uuuzzzuuuHHHFFFCCC;;;444...777>>>555PPPjjjyyyooommmPPP:::???:::CCCVVV^^^oooaaaNNN:::777666OOOuuuxxxyyyrrrvvv~~~{{{sss___uuummmMMM666666---IIIeee{{{ssshhhMMM:::333,,,JJJfffhhhxxxyyyaaaMMM>>>222...:::___iii___kkk~~~xxxvvv```LLL???333999<<<444BBBRRRJJJPPPdddpppwwwuuuooottt\\\HHH444,,,///EEEHHH:::000111 444,,,///555;;;EEEXXXgggoooPPP:::///---999HHHZZZpppbbbXXXSSSPPPYYYbbbTTT@@@444BBB666999888222///+++888___sssqqqjjjvvvuuuooo}}}vvvUUUCCC:::111...333222222KKK___wwwnnnuuuvvveee___AAA666:::666QQQnnn}}}qqqXXX000777 :::QQQmmmSSS999444===KKKbbb___999...999???PPP```ggg oootttpppiiijjjmmmeee___iiirrrqqqfffFFF222333>>>???JJJNNNOOOTTTVVVSSSNNNOOOTTTNNNKKKQQQSSSQQQLLLJJJ555///555999;;;:::===<<<666222888DDDEEEBBB;;;555TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/12/0000755000175000001440000000000011177007633021041 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/12/floor.tga0000644000175000001440000000172011177007633022657 0ustar jacobusers  (\EtVXB#&ZCqTWB#"Q=nRYB%3&N:aHR=%E3?.M9I7*K8=.@0C28)aII6<-G5+ dJN;:+J7Q=:+9*7).#B1U?L8+ #$3&Q<V@>."/#6(A1G4E3A0) >.U?P<?/9*H5V@J7* C2[CZCF48*F5]E_GI6& <-U@XAN:;,8)L8`G\D?/# 0$<,?.9*-!/#?.J7H5C2?/-!E4H5N:O;C23&@0I6B0?/G6T?T>G61# `HgMkPfLO;<-S>dJ\EL9@0K8V@N;:,+ %&jOgMeK_GH54'E3S>YBWAK8B1D2I6C2>.F3O:T>WA nS`HQ=I6<-3&H5O:^ES?H5E3D2:*>.G5N:P<S?=->.=-:+1$(.!4&5'1$."3'C3F4=-*!TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/floor/6/0000755000175000001440000000000011177007633020764 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/floor/6/floor.tga0000644000175000001440000000231611177007633022604 0ustar jacobusers ===<<<;;;888;;;777000666999666333222000888???AAA???<<<;;;888 ;;;KKKHHHFFFHHHEEEBBBJJJOOOKKKIIIKKKSSSWWWVVVRRROOO;;;;;;FFFWWW[[[^^^fffjjjfffdddccceeepppjjjhhhjjjPPP<<<===FFFYYY}}}zzzdddPPP;;;AAAKKK[[[lllirizzziiiOOO:::BBBPPPaaa aca=b=uuunnn}}}mmmMMM666???PPPfffbcb9d9NmN]b]}}}hhhMMM:::;;;MMMdddlll{{{ddd\b\'W'Y+Y+iiinnn```NNN>>>999KKK___yyy^d^_g_ggg6X6'Y'TS5W5bbbtttxxx^^^LLL???:::KKK]]]vvvppphhhaja0[06X6U"\" P O#Y#7Y7qqqttt^^^HHH;;;666KKKdddrrreeeAhA&]&MPU#Z#(X(jjjttt```FFF666///HHHfffrrraaa9a9 P L/d/CeCccceeezzzcccKKK555222JJJiiisssNaNDaDcjc,[,6\6gggfffsssuuu{{{fffQQQ::: 666OOOmmm~~~rrrdhd`e`ggg`h`ahavvvuuupppTTT:::666QQQnnnvvv~~~}}}vvvnnntttqqqQQQ888:::QQQmmm|||uuuhhhKKK888 ===KKKbbbcccGGG666999???PPP```ggg oootttpppiiijjjmmmeee___iiirrrqqqfffHHH333333>>>???JJJNNNOOOTTTVVVSSSNNNOOOTTTNNNKKKQQQSSSQQQLLLJJJ555///555999;;;:::===<<<666222888DDDEEEBBB;;;555TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/char/0000755000175000001440000000000011177007633020413 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/chaser/0000755000175000001440000000000011177007633021660 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/chaser/1/0000755000175000001440000000000011177007633022020 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/chaser/1/dead.spr0000644000175000001440000001341211177007633023444 0ustar jacobusers  Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaaaaaapaahapaxaaaaaaaaaxaaahaxaaAXapaaaahaaaxaxaaaaxahaaaaaaaaaaaaaa Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaaaaaapaahapaxaaaaaaaaaxaaahaxaaAXapaa)!!!! a9IIA!)aAaaa9€rQAAAAA!b Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaaaaaapaahapaxaaaaaaaaaxaA1AIA!1`yaa!1a9a9Q`aaaZ!Z¡ajZʡʠ bI`@a`@b Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaa aapaahxA᱁aaaaaa9AQ!1Aa9QraҡҡʡrAbI@@a!bajaaaaZ 1  1 #Z#Z A铠 o`A#Z###ZAj S@Qޢr#C¢Q#Z#Z##b⚂#Z#Z#Z##cCƒC##Z#Z##ʣcC###Z#Zz"ˡºB Q@ˡ z@)!¡Axàa`Ӂ`za9 Aa9A ʡZ! a9I@Q!ZA1QAj KOɣKĬKOũ)Nhrh K)KKh' **̋ԫԋ hˋ. oݫ*JÈo-I  holotz-castle-1.3.14-src/res/theme/default/char/chaser/1/hang.spr0000644000175000001440000000316411177007633023467 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/default/char/chaser/1/right.spr0000644000175000001440000000645711177007633023677 0ustar jacobusers  aAӜaaaaaaaaaaaAxaaAa PAhAxaaaaxaaaaxaaaaaaaaAhApaa AhaaAp PApaAxaAA`AhaAxaA PA`AA`aa A` ` PA@0a A  P XAA P P PA`Aa AApAhAaaaA`AAAxAhaAaaA`AhAaaa A X XAhAaa H HA`AhAhAhA AAAAa 8ƂuAhA`Ap `8ƲAaa׽aւAp PAxA XaaxaAh XaaaaaA PaaAxaaa h Paaaaa pAhaxaA `ApApaaApAxaAAXPAxaAhAhAxa(( HAxaa08@@A`AhaaHP ` ` Xaaa` X0H `A`AxaAxAx0aaaaAaa uY΂a4E)aqUZӜAAƺւaAhApA`ApA`aAxaApaxAaaa XAxaaaxaa P XA`aaaAx @0A`ApApaA PAx X P hApaAxAh hAXA` Xaxaaxa P haa P PAhAxa 8Ƃ4xx xhphphppxhhpxXxxPXhpPPpxPh88PhpxPH@XpPPholotz-castle-1.3.14-src/res/theme/default/char/chaser/1/up.spr0000644000175000001440000000323511177007633023175 0ustar jacobusers  Qmk]upӜy΂]XPނxpX`xxx mkQyӜpu]PX]ނpx`Xxxxholotz-castle-1.3.14-src/res/theme/default/char/chaser/1/jump.spr0000644000175000001440000000134011177007633023517 0ustar jacobusers<paւu hpp p hp h hpp hppholotz-castle-1.3.14-src/res/theme/default/char/chaser/1/stop.spr0000644000175000001440000000316411177007633023537 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/default/char/chaser/1/jumpright.spr0000644000175000001440000000152411177007633024561 0ustar jacobusers y΂aaXUyahaaHAhApaXaxA@AhAxaa@AhApApA@ P PAhAxa@ PAhApaaaaxaaaaaaAhApaAhaaAp PApA`AhaAxaA PA`A` ` PA@ H H  P X H HA`Ap P P PA`A H PA`aaApAhAaaa H PaaaAxAhaAaaA`aa HaaApApApholotz-castle-1.3.14-src/res/theme/default/char/chaser/1/left.spr0000644000175000001440000000645711177007633023514 0ustar jacobusers  aaaӜAaaaaaaaaaAxaaaAxAh PaAaaxaaaaaaaxaaaaApAhaaaaaAxaAp PApaaAh aaA`AA` PAaAxaAhA`AA a0@A P `A` A X P aAA` P P PAAA`aaaAAhApAAAhA`aaAaAhAxAAAh X XA aaaAAhAhAhA` H H aaaAAAA  8Ƃ `ApA`Ahu׽aaA8ƂւaAx PApaxa XAaaaaa XAhaaaAxaa PAaaxAh paaaaa P haaAxApaaApAp `AaAxAhAhaAxPXAAaaAx H((aaAhA`@@80aaa X ` `PHaAxA` `H0 X`aaa0AxAxaaAa uaY΂qaE)4ӜZUAAAhaA`ApaA`ApaAaxApaAxaaAx X aaA` X Paaax0 @Axaaa PAaApApA`aAp h P XAxaax X A`AX hAhAxaa h PaaxaAxAh P P 8Ƃ4 xxphxphhhxppxxXxphXPphpPPphP88hPxpX@HPxPPholotz-castle-1.3.14-src/res/theme/default/char/chaser/1/down.spr0000644000175000001440000000323511177007633023520 0ustar jacobusers  Qmk]upӜy΂]XPނxpX`xxx mkQyӜpu]PX]ނpx`Xxxxholotz-castle-1.3.14-src/res/theme/default/char/chaser/1/slide.spr0000644000175000001440000000152411177007633023650 0ustar jacobusers  ւpx]xxpxֶh]p]8Ƃhx]X]h`ӜXpq`{phxXhhPx`XxXp`hpxxhh`xhpxxholotz-castle-1.3.14-src/res/theme/default/char/chaser/1/jumpleft.spr0000644000175000001440000000152411177007633024376 0ustar jacobusers y΂aXaApAhHaaahyUApApAha@aAxAhA@axaXaApAh Pa@AxAh P PA@aaaaaxaaApAhaaaAp PApaaAhA` PAaAxaAhA` H H@A P `A`ApA` H H X P aaA` P HAA` P P Paaa P HaaaAAhAp HaaA`aaAaAhAxApApaaApholotz-castle-1.3.14-src/res/theme/default/char/chaser/1/fall.spr0000644000175000001440000000316411177007633023470 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/default/char/guest/0000755000175000001440000000000011177007633021542 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/guest/1/0000755000175000001440000000000011177007633021702 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/guest/1/dead.spr0000644000175000001440000001150611177007633023330 0ustar jacobusers @ y~ jnqvpuUY "69lpUY|p333uZOOOuuu999 gi'''AA Mkkk++ j2i? M+++R777oooKKK _px,WXW  Up,+++$@6 _x O,= D [[[*EKK go9PHOCUCoooM:FPG Y8LM13H[[[7G7OPKGJF O!L GOIEP'=+5:MQIFMEIIPD1*NKL! @ae"# }ilcgos$&ccc#npLVWnruuu999 gi'''AA Mkkk++ j2i? M+++R777oooKKK _px,WXW  Up,+++$@6 _x O,= D [[[*EKK go9PHOCUCoooM:FPG Y8LM13H[[[7G7OPKGJF O!L GOIEP'=+5:MQIFMEIIPD1*NKL! @qv .0~`cWZ,-gkILMODGccc33323}zOOOuuu999 gi'''AA Mkkk++ j2i? M+++R777oooKKK _px,WXW  Up,+++$@6 _x O,= D [[[*EKK go9PHOCUCoooM:FPG Y8LM13H[[[7G7OPKGJF O!L GOIEP'=+5:MQIFMEIIPD1*NKL!holotz-castle-1.3.14-src/res/theme/default/char/guest/1/hang.spr0000644000175000001440000001150611177007633023350 0ustar jacobusers @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RF KG @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quyF7.Zk$%BB7 n&h"m62E0 4?MI82GJ>NG=#F/,<>K<=MD2+3BG2=G@@22<KV  -.LU/<V H4holotz-castle-1.3.14-src/res/theme/default/char/guest/1/right.spr0000644000175000001440000001465711177007633023562 0ustar jacobusers  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0QQW JJJ ;ttt9ZZZHHHhihhh:::mayzy>>>@MP=.M /777###(II/ <9C&( =U7$+*2G7"%( >;&6&&,2:&1+1!C A\6 $ A]qe6 @::<'''66>bbjVV_ QQ_cci VVr==S::Ff--i; ;;;JJJmmWW~"""7771199CCC**,,,ooo!!!### muFFFSSS%=.M #3###-JI/ D=C&( 9KL0$+ 2>?!"# GF8 *#/L5#C3 :)+ RC ; @'RT>)A  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0 5 vvvuu;AAA>>9lll```,.VXp:::m-<@<>>>,,,KWZ;-? /777### 0 A?4 (2<@/ 038?-$- 5A:) $'<<7) :6%!82$(# ,K\31 D][@( @::<'''66>bbjVV_ QQ_cci VVr==S::F xxx--i* xxx??[AAAooo{{yyyEEErrr$$$"""NNNdddFFF888 i u333999%93.HM("`!YN ;$Y"&^$QA 03HQRN' '33& FON60. 4NLH"2( 6I5 +%+ '/)/+ ; *9E CE=#( 8 holotz-castle-1.3.14-src/res/theme/default/char/guest/1/up.spr0000644000175000001440000000633511177007633023063 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/default/char/guest/1/jump.spr0000644000175000001440000000316411177007633023407 0ustar jacobusers @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<Mholotz-castle-1.3.14-src/res/theme/default/char/guest/1/stop.spr0000644000175000001440000000316411177007633023421 0ustar jacobusers @GGGkkkEEELLLzzzHHH^^^EITTTUFHL>>@ Xfx,,O!!!338 u|p OOO''79quyRRR000.ZkKKK+++'H4+.&B[[[111 /#:4###  -+* >>>/<0+1C>= M/;N" G6J S 2DG32> 0 ?X?  IZ@holotz-castle-1.3.14-src/res/theme/default/char/guest/1/jumpright.spr0000644000175000001440000000316411177007633024445 0ustar jacobusers @bbb///GGGOOOnnzDDGnn66~@@::E888777k55%%III hhh...{{{.h O kkkMMM@@@-o~BPAGGG{{{- EHA PPP8{}OQ>7"7JBPM>@H+:CO:M@ <* JF =B2 AI=>?H: T M2C&@&<M HI -holotz-castle-1.3.14-src/res/theme/default/char/guest/1/left.spr0000644000175000001440000001465711177007633023377 0ustar jacobusers  @,,,GGI jjtDDM (ll~ ffr``~##0rr>>g WQQ; JJJ9ttthiHHHZZZ>>>yzyam:::hhh###777/M =.@MP /II( (&C9<*+$7U= (%"7G2,&6&;&>1+:&2!C1 $6\ A6eq] A @'''::< VV_bbj66> cciQQ_VVr::F==S ;i--fWW~mmJJJ;;;9911777"""!!!ooo,,,**CCCSSSFFFum #######3M =.% /IJ- (&C=D +$0LK9 #"!?>2 #* 8FG #5L/+):3 C' @; C R A)>TR @,,,GGI jjtDDM (ll~ ffr``~ ##0rr>>g 5;uuvvv9>>AAAVXp,.```lll>>><@<-m:::###777/? ;-KWZ,,, 4?A 0  /@<2(-?830 ):A5- $7<<'$!%6:) #(2$83\K ,(@[] D1 @'''::< VV_bbj66> cciQQ_VVr ::F==S *i--xxx??[xxxyyy{{oooAAAdddNNN"""$$$rrrEEE999333u i 888FFFM.H93% NY"`!( AQ&^$$Y"; 'NRQH30 NOF& 33'HLN 4.065I 6(2"+/)/ '+% + CE9 * ; 8(#=Eholotz-castle-1.3.14-src/res/theme/default/char/guest/1/down.spr0000644000175000001440000000633511177007633023406 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/default/char/guest/1/slide.spr0000644000175000001440000001465711177007633023545 0ustar jacobusers @wwwSSSAAAccc+++hhh???AAA<<<[[^xxx$$$!!!000 Rvc3333hyr008hoooGGGG )T=PN?JPP> GOO=J- C@$@N3 P )RSBN  @444///GGGwww```EEE{{{:[[[___99{!!lW##l,,,YYd3333hO r008 i{@*$@q-6'9GL'''- x kPN[2Lms~iWY;SSS )sb Gj<{E0^V[N9,3%<IP OD+QQ>GS @+++cccAAApppAAA///sss$$$xxxVVfmUUzCCCcv$$$$ppt h3333a008r^GGGooo!#1 )TG?NP= >PPJOOG-J=$@C N@ ) P3SRNB  @ ;;;^^^oooYYY99{hYY,,,''' /2 xE SSS;\ |s E{-DZf m=Pd8OF=K holotz-castle-1.3.14-src/res/theme/default/char/guest/1/jumpleft.spr0000644000175000001440000000316411177007633024262 0ustar jacobusers @///bbbGGGnnzOOO888::E@@66~nnDDGhhh III%%55k777MMMkkk Oh.{{{...BPA~o-@@@AHE -{{{GGG7>QO}{8PPP H@>MPBJ7"@M:OC:+FJ *< I A 2B= M T:H?>= M<&@&C2-  IHholotz-castle-1.3.14-src/res/theme/default/char/guest/1/fall.spr0000644000175000001440000001150611177007633023351 0ustar jacobusers  @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @ jjj888GGGkkkEEESSSAAAtttgggLLLzzz'''~~~sssIII~~~ppp$$>"HHH^^^!!dkkkAAAQQQdPPYd{44e ^} x |9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RFKG%  @GGGkkkEEELLLzzz"HHH^^^-dPPYd nGGGGyyy22Z s}EE===eeeooo+++ x |(((FFFeee---9q|{LLLddd UUU>>>  .Zk$$$[[[AJ/ p&h"m61E7AJMI82GJ>NG9,4,<>K<=MD0D.2=G@@22<3BG  -KVU/.L<V H43holotz-castle-1.3.14-src/res/theme/default/char/static/0000755000175000001440000000000011177007633021702 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/static/8/0000755000175000001440000000000011177007633022051 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/static/8/dead.spr0000644000175000001440000000527611177007633023506 0ustar jacobusers 0aE)u84]ZZe)U l(BY1Qmk!R yAaR4Be) !{9IJ9 ]u<$!,c cmksRs8E)U9BAR]Ae)!y cRy4 cyΦ1iJmkUA{9%9%2ғ! 'ܪ=|M\9%9%>{9%9%=|-ם'ܪ'ܪ 'ܩ=|M\9%9%9%9%9%9%=|=|=|2ғ'ܪ!'ܩ=|M\9%9%9%9%<9%9%9%9%9%9%9%=|2ғ-ם=|M\9%9%9%Hf9%9%9%9%=|El9%9%9%9%9%9%' 9%9%9%Hf&ݬ9%9%9%9%9%9%9%9%Ic9%9%9%9%6ϋ9%9%QT9%9%&ݬ9%9%9%9%L^9%9%9%9%&ݬ9%9%BqL^9%9%9%9%9%&ݬ9%9%;ʀ6ΊGgQT9%9%9%9%9%<9%9%/՘/՘GhQT9%9%&k9%9%9%6ΊGhQT9%9%9%9%9%>{Gg9%9%9%9%9%9%9%9%;ʀ7ΉGg9%9%9%9%;ʀ(ۧ/՘Gg9%9%9%;ʀ /՘GgQT9%9%<9%9%9%/՘/ՙGhQT9%9%9%9%9%9%/՘/ՙGhQT9%9%&ݬ9%9%9%9%*٤/ՙGhQT9%9%Hf9%9%&ݬ9%9%9%/՘(ۧ;ʀ9%9%9%9%9%9%9%9%<9%9%;ʀ9%9%9%9%9%( 9%9%9%9%9%9%9%9%9%9%>{9%9%9%9%9%9%9%9%<9%9%9%9%9%9%9%&ݬ9%9%>{9%9%9%9%9%9%<9%9%9%>{9%9%&k̋9%9%9%9%9%9%̋9%9%9%9%̋9%9%9%9%9%&k9%9%9%9%&ݬ<9%>{9%9%9%9%9%>{9%9%9%>{9%9%<9%9%,؟>{9%9%9%9%9%9%9%9%9%9%9%9%Hf9%9%9%9%9%Hf9%9%9%9%9%9%9%( @ 9%9%9%9%%n%n9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%%n9%9%/I9%9%+X͍%n9%9%9%%n9%9%͍%n9%9%%n9%9%%n%n9%9%+X9%9%+X9%9%9%9%9%9%/I9%9%9%2>9%9%9%469%9%9%9%9%9%9%9%9%9%9%9%9%9%( 9%9%9%9%9%'e9%9%9%9%9%'e!|'e9%9%9%9%!|ӛӛ9%9%9%ӛ9%9%'e9%9%9%9%9%9%9%9%9%holotz-castle-1.3.14-src/res/theme/default/char/static/8/jumpright.spr0000644000175000001440000000006611177007633024612 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/static/8/left.spr0000644000175000001440000000006611177007633023533 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/static/8/down.spr0000644000175000001440000000006611177007633023550 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/static/8/slide.spr0000644000175000001440000000006611177007633023701 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/static/8/jumpleft.spr0000644000175000001440000000006611177007633024427 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/static/8/fall.spr0000644000175000001440000000006611177007633023517 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/static/2/0000755000175000001440000000000011177007633022043 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/static/2/dead.spr0000644000175000001440000000527611177007633023500 0ustar jacobusers 0aE)u84]ZZe)U l(BY1Qmk!R yAaR4Be) !{9IJ9 ]u<$!,c cmksRs8E)U9BAR]Ae)!y cRy4 cyΦ1iJmkUA32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RF KG @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quyF7.Zk$%BB7 n&h"m62E0 4?MI82GJ>NG=#F/,<>K<=MD2+3BG2=G@@22<KV  -.LU/<V H4holotz-castle-1.3.14-src/res/theme/default/char/static/2/right.spr0000644000175000001440000001465711177007633023723 0ustar jacobusers  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0QQW JJJ ;ttt9ZZZHHHhihhh:::mayzy>>>@MP=.M /777###(II/ <9C&( =U7$+*2G7"%( >;&6&&,2:&1+1!C A\6 $ A]qe6 @::<'''66>bbjVV_ QQ_cci VVr==S::Ff--i; ;;;JJJmmWW~"""7771199CCC**,,,ooo!!!### muFFFSSS%=.M #3###-JI/ D=C&( 9KL0$+ 2>?!"# GF8 *#/L5#C3 :)+ RC ; @'RT>)A  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0 5 vvvuu;AAA>>9lll```,.VXp:::m-<@<>>>,,,KWZ;-? /777### 0 A?4 (2<@/ 038?-$- 5A:) $'<<7) :6%!82$(# ,K\31 D][@( @::<'''66>bbjVV_ QQ_cci VVr==S::F xxx--i* xxx??[AAAooo{{yyyEEErrr$$$"""NNNdddFFF888 i u333999%93.HM("`!YN ;$Y"&^$QA 03HQRN' '33& FON60. 4NLH"2( 6I5 +%+ '/)/+ ; *9E CE=#( 8 holotz-castle-1.3.14-src/res/theme/default/char/static/2/up.spr0000644000175000001440000000633511177007633023224 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/default/char/static/2/jump.spr0000644000175000001440000000316411177007633023550 0ustar jacobusers @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<Mholotz-castle-1.3.14-src/res/theme/default/char/static/2/stop.spr0000644000175000001440000003012511177007633023557 0ustar jacobusers   9s{R 9B9RRRmkRMkMkRRZs{ZBIJiJ1mkӜq0s{iJBZQiJ1mk cq{qӜ{,cmkmk{qqqssZZ0ӜU,cMkӜ{mks09Mk11,cMks4ӜӜq{s{siJR(BiJ,cU4{mk,cZs ca cs cZRRZmk{qR9ZuRQs  9s{R 9B9RRRmkRMkMkRRZs{ZBIJiJ1mkӜq0s{iJBZQiJ1mk cq{qӜ{,cmkmk{qqqssZZ0ӜU,cMkӜ{mks09Mk11,cMks4ӜӜq{s{siJR(BiJ,cU4{mk,cZs ca cs cZRRZmk{q zR#Zu #Qs  9s{R 9B9RRRmkRMkMkRRZs{ZBIJiJ1mkӜq0s{iJBZQiJ1mk cq{qӜ{,cmkmk{qqqssZ [|0ӜU,cMkӜ{mks09Mkl*R4ncs4ӜӜq{s{siJ0;{ :,cU4{mk,cZs caH-[sLX$ZRRZmk{q CJ:Zuh JQs  9s{R 9B9RRRmkRMkMkRRZs{ZBIJiJ1mkӜq0s{iJBZQiJ1mk c1tq{qӜ{,cmkmk{qqqssZCuTRtӜU,cMkӜ{mks09Mk11pS7"7JBPM>@H+:CO:M@ <* JF =B2 AI=>?H: T M2C&@&<M HI -holotz-castle-1.3.14-src/res/theme/default/char/static/2/left.spr0000644000175000001440000001465711177007633023540 0ustar jacobusers  @,,,GGI jjtDDM (ll~ ffr``~##0rr>>g WQQ; JJJ9ttthiHHHZZZ>>>yzyam:::hhh###777/M =.@MP /II( (&C9<*+$7U= (%"7G2,&6&;&>1+:&2!C1 $6\ A6eq] A @'''::< VV_bbj66> cciQQ_VVr::F==S ;i--fWW~mmJJJ;;;9911777"""!!!ooo,,,**CCCSSSFFFum #######3M =.% /IJ- (&C=D +$0LK9 #"!?>2 #* 8FG #5L/+):3 C' @; C R A)>TR @,,,GGI jjtDDM (ll~ ffr``~ ##0rr>>g 5;uuvvv9>>AAAVXp,.```lll>>><@<-m:::###777/? ;-KWZ,,, 4?A 0  /@<2(-?830 ):A5- $7<<'$!%6:) #(2$83\K ,(@[] D1 @'''::< VV_bbj66> cciQQ_VVr ::F==S *i--xxx??[xxxyyy{{oooAAAdddNNN"""$$$rrrEEE999333u i 888FFFM.H93% NY"`!( AQ&^$$Y"; 'NRQH30 NOF& 33'HLN 4.065I 6(2"+/)/ '+% + CE9 * ; 8(#=Eholotz-castle-1.3.14-src/res/theme/default/char/static/2/down.spr0000644000175000001440000000633511177007633023547 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/default/char/static/2/slide.spr0000644000175000001440000001465711177007633023706 0ustar jacobusers @wwwSSSAAAccc+++hhh???AAA<<<[[^xxx$$$!!!000 Rvc3333hyr008hoooGGGG )T=PN?JPP> GOO=J- C@$@N3 P )RSBN  @444///GGGwww```EEE{{{:[[[___99{!!lW##l,,,YYd3333hO r008 i{@*$@q-6'9GL'''- x kPN[2Lms~iWY;SSS )sb Gj<{E0^V[N9,3%<IP OD+QQ>GS @+++cccAAApppAAA///sss$$$xxxVVfmUUzCCCcv$$$$ppt h3333a008r^GGGooo!#1 )TG?NP= >PPJOOG-J=$@C N@ ) P3SRNB  @ ;;;^^^oooYYY99{hYY,,,''' /2 xE SSS;\ |s E{-DZf m=Pd8OF=K holotz-castle-1.3.14-src/res/theme/default/char/static/2/jumpleft.spr0000644000175000001440000000316411177007633024423 0ustar jacobusers @///bbbGGGnnzOOO888::E@@66~nnDDGhhh III%%55k777MMMkkk Oh.{{{...BPA~o-@@@AHE -{{{GGG7>QO}{8PPP H@>MPBJ7"@M:OC:+FJ *< I A 2B= M T:H?>= M<&@&C2-  IHholotz-castle-1.3.14-src/res/theme/default/char/static/2/fall.spr0000644000175000001440000001150611177007633023512 0ustar jacobusers  @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @ jjj888GGGkkkEEESSSAAAtttgggLLLzzz'''~~~sssIII~~~ppp$$>"HHH^^^!!dkkkAAAQQQdPPYd{44e ^} x |9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RFKG%  @GGGkkkEEELLLzzz"HHH^^^-dPPYd nGGGGyyy22Z s}EE===eeeooo+++ x |(((FFFeee---9q|{LLLddd UUU>>>  .Zk$$$[[[AJ/ p&h"m61E7AJMI82GJ>NG9,4,<>K<=MD0D.2=G@@22<3BG  -KVU/.L<V H43holotz-castle-1.3.14-src/res/theme/default/char/static/5/0000755000175000001440000000000011177007633022046 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/static/5/dead.spr0000644000175000001440000000527611177007633023503 0ustar jacobusers 0aE)u84]ZZe)U l(BY1Qmk!R yAaR4Be) !{9IJ9 ]u<$!,c cmksRs8E)U9BAR]Ae)!y cRy4 cyΦ1iJmkUA32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RF KG @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quyF7.Zk$%BB7 n&h"m62E0 4?MI82GJ>NG=#F/,<>K<=MD2+3BG2=G@@22<KV  -.LU/<V H4holotz-castle-1.3.14-src/res/theme/default/char/static/1/right.spr0000644000175000001440000001465711177007633023722 0ustar jacobusers  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0QQW JJJ ;ttt9ZZZHHHhihhh:::mayzy>>>@MP=.M /777###(II/ <9C&( =U7$+*2G7"%( >;&6&&,2:&1+1!C A\6 $ A]qe6 @::<'''66>bbjVV_ QQ_cci VVr==S::Ff--i; ;;;JJJmmWW~"""7771199CCC**,,,ooo!!!### muFFFSSS%=.M #3###-JI/ D=C&( 9KL0$+ 2>?!"# GF8 *#/L5#C3 :)+ RC ; @'RT>)A  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0 5 vvvuu;AAA>>9lll```,.VXp:::m-<@<>>>,,,KWZ;-? /777### 0 A?4 (2<@/ 038?-$- 5A:) $'<<7) :6%!82$(# ,K\31 D][@( @::<'''66>bbjVV_ QQ_cci VVr==S::F xxx--i* xxx??[AAAooo{{yyyEEErrr$$$"""NNNdddFFF888 i u333999%93.HM("`!YN ;$Y"&^$QA 03HQRN' '33& FON60. 4NLH"2( 6I5 +%+ '/)/+ ; *9E CE=#( 8 holotz-castle-1.3.14-src/res/theme/default/char/static/1/up.spr0000644000175000001440000000633511177007633023223 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/default/char/static/1/jump.spr0000644000175000001440000000316411177007633023547 0ustar jacobusers @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<Mholotz-castle-1.3.14-src/res/theme/default/char/static/1/stop.spr0000644000175000001440000000570111177007633023560 0ustar jacobusers x  `K`K@  `!` 2ll`K`KS\l d[dtt`}@@` *`*`**@@S `2:  `!`!:CC\@@} d[dtt`}@@@ *@@@! u!!@u! @@`K`K ``K`K d@2@@`  `2u`K::C`KS\l d[du`}}@@@ * JS**@@`*``@2@2`dd`   @@2d @@2d ` @@  `!`!`2:C`KS\l d[dtt`}@@@ * @!!@@ u u@@!!@@!!C`@@C@ `@2@2`` dd   @@  `!`!`2:C`KS\l d[dtt`}@@@ *  @K@K@@  @l`:@@@`: `@2@2`@ dd   @@  `!`!`2:C`KS\l d[dtt`}@@@ * 2 2 @`2@ @@@`!`!@ BB  @@  `!`!`2:C`KS\l d[dtt`}@@@ *  @ @   @`!`!@``@@  `!`!`2:C`KS\l d[dtt`}@@@ *holotz-castle-1.3.14-src/res/theme/default/char/static/1/jumpright.spr0000644000175000001440000000316411177007633024605 0ustar jacobusers @bbb///GGGOOOnnzDDGnn66~@@::E888777k55%%III hhh...{{{.h O kkkMMM@@@-o~BPAGGG{{{- EHA PPP8{}OQ>7"7JBPM>@H+:CO:M@ <* JF =B2 AI=>?H: T M2C&@&<M HI -holotz-castle-1.3.14-src/res/theme/default/char/static/1/left.spr0000644000175000001440000001465711177007633023537 0ustar jacobusers  @,,,GGI jjtDDM (ll~ ffr``~##0rr>>g WQQ; JJJ9ttthiHHHZZZ>>>yzyam:::hhh###777/M =.@MP /II( (&C9<*+$7U= (%"7G2,&6&;&>1+:&2!C1 $6\ A6eq] A @'''::< VV_bbj66> cciQQ_VVr::F==S ;i--fWW~mmJJJ;;;9911777"""!!!ooo,,,**CCCSSSFFFum #######3M =.% /IJ- (&C=D +$0LK9 #"!?>2 #* 8FG #5L/+):3 C' @; C R A)>TR @,,,GGI jjtDDM (ll~ ffr``~ ##0rr>>g 5;uuvvv9>>AAAVXp,.```lll>>><@<-m:::###777/? ;-KWZ,,, 4?A 0  /@<2(-?830 ):A5- $7<<'$!%6:) #(2$83\K ,(@[] D1 @'''::< VV_bbj66> cciQQ_VVr ::F==S *i--xxx??[xxxyyy{{oooAAAdddNNN"""$$$rrrEEE999333u i 888FFFM.H93% NY"`!( AQ&^$$Y"; 'NRQH30 NOF& 33'HLN 4.065I 6(2"+/)/ '+% + CE9 * ; 8(#=Eholotz-castle-1.3.14-src/res/theme/default/char/static/1/down.spr0000644000175000001440000000633511177007633023546 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/default/char/static/1/slide.spr0000644000175000001440000001465711177007633023705 0ustar jacobusers @wwwSSSAAAccc+++hhh???AAA<<<[[^xxx$$$!!!000 Rvc3333hyr008hoooGGGG )T=PN?JPP> GOO=J- C@$@N3 P )RSBN  @444///GGGwww```EEE{{{:[[[___99{!!lW##l,,,YYd3333hO r008 i{@*$@q-6'9GL'''- x kPN[2Lms~iWY;SSS )sb Gj<{E0^V[N9,3%<IP OD+QQ>GS @+++cccAAApppAAA///sss$$$xxxVVfmUUzCCCcv$$$$ppt h3333a008r^GGGooo!#1 )TG?NP= >PPJOOG-J=$@C N@ ) P3SRNB  @ ;;;^^^oooYYY99{hYY,,,''' /2 xE SSS;\ |s E{-DZf m=Pd8OF=K holotz-castle-1.3.14-src/res/theme/default/char/static/1/jumpleft.spr0000644000175000001440000000316411177007633024422 0ustar jacobusers @///bbbGGGnnzOOO888::E@@66~nnDDGhhh III%%55k777MMMkkk Oh.{{{...BPA~o-@@@AHE -{{{GGG7>QO}{8PPP H@>MPBJ7"@M:OC:+FJ *< I A 2B= M T:H?>= M<&@&C2-  IHholotz-castle-1.3.14-src/res/theme/default/char/static/1/fall.spr0000644000175000001440000001150611177007633023511 0ustar jacobusers  @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @ jjj888GGGkkkEEESSSAAAtttgggLLLzzz'''~~~sssIII~~~ppp$$>"HHH^^^!!dkkkAAAQQQdPPYd{44e ^} x |9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RFKG%  @GGGkkkEEELLLzzz"HHH^^^-dPPYd nGGGGyyy22Z s}EE===eeeooo+++ x |(((FFFeee---9q|{LLLddd UUU>>>  .Zk$$$[[[AJ/ p&h"m61E7AJMI82GJ>NG9,4,<>K<=MD0D.2=G@@22<3BG  -KVU/.L<V H43holotz-castle-1.3.14-src/res/theme/default/char/static/9/0000755000175000001440000000000011177007633022052 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/static/9/dead.spr0000644000175000001440000000527611177007633023507 0ustar jacobusers 0aE)u84]ZZe)U l(BY1Qmk!R yAaR4Be) !{9IJ9 ]u<$!,c cmksRs8E)U9BAR]Ae)!y cRy4 cyΦ1iJmkUA)7;'48-          @      '  4   %+Y$)(*  *.  ";+9=7IS  "$'*9=&)(+.=C   0*7~C*.#& "$& "$AX)7;'48-          @        $       &     +  %)+  "@ !$,TZ&)D\b"%   $'&38  ,;I2!*?*2*8>+:? :NT  (+*- *. $F</7G"-91BG&37 +.$15$'(+ %(!') "$8Kn9M@Vftefl^}MgoNipIbi9LR+:?$041BF""-1Ywiolgn]|bZyWs|]}g]{kcVt|!-0,;?;OT@U[9LR5FK8KQ,;@+:>)7;'48-          @             %       /        (7     "-< )+   )7D  "'5:  !#%'  (0%2?( +/ '*  #&   $' *:B1BM +4)8=#14 &*%)!-0!.1  =R[G^i5FQ %4FL""/3*-!,0$04-=A%( +.%(/@E 1%4%-8$*#%#&"%".2&27 $&".1 "$.H%R,;@2DI,;@,<@-)7;'48-          @                                      "         $            #        ,#'    #   $6'     #%)'+    /@E !(,".2"$#& $ " +/#/3$&".1 "$.HE&))6;(,"$&(%(  %'"!$ +/(+),(*!!      +.%26#% #/2.=A)6;'37/?D'+!          holotz-castle-1.3.14-src/res/theme/default/char/ball/2/hang.spr0000644000175000001440000000316411177007633023135 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/default/char/ball/2/right.spr0000644000175000001440000001150611177007633023334 0ustar jacobusers @ *9=+9=   %'7IO=Om9LR,;@8KQ5FK9LR@U[;OT,;?            @  *9=+9=*.-;?'590@E,;@ngloiYw"-1+:>9LR]|etmE\9LR)7;'48-         holotz-castle-1.3.14-src/res/theme/default/char/ball/2/jump.spr0000644000175000001440000000152411177007633023171 0ustar jacobusers 99a0yGgjFJ#!Aa@ @@ @CyʱȂ)kRGRZB99AC)!!@ !ȂʍLL냪{LIsjs)kR d1mmL ˃{L˃m,{d1 9gRZgR&JGRA999AJ&JRgR9@aaA@@@ @ @@Aaa@holotz-castle-1.3.14-src/res/theme/default/char/ball/2/stop.spr0000644000175000001440000000316411177007633023205 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/default/char/ball/2/jumpright.spr0000644000175000001440000000474611177007633024240 0ustar jacobusers 99 @@ @aA#!FJgjGya0@!!C)A99BZGRR)kȂCy@ R)kjsIsL냪{냍LLʇȂ! d1{,m˃L냊{˃ 냍Lmmd1 9gRR&JJA999AGR&JgRZgR9@aaA@@ @ @@@Aaa@  @ @aA99 C)99BZGR#!FJgjGya0@!!Is냪{냍LR)kȂCy@ R)kjs˃냊{˃ LʇȂ! d1{,m&JA999ALmmd1 9gRRA@ @ @GR&JgRZgR9@aa@@Aaa@ @a 9ZA99 C)냍GR#!FJgjGya0@!!Is LR)kȂCy@ R)kjs˃A9LʇȂ! d1{,m&J@ ALmmd1 9gRRA@GR&JgRZgR9@aa@@Aaa@holotz-castle-1.3.14-src/res/theme/default/char/ball/2/left.spr0000644000175000001440000001150611177007633023151 0ustar jacobusers @+9=*9=  0*7~)7;'48-          @+9=*9=    0*7~)7;'48-      @ +9=*9=  -     holotz-castle-1.3.14-src/res/theme/default/char/ball/2/down.spr0000644000175000001440000000316411177007633023167 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/default/char/ball/2/slide.spr0000644000175000001440000000316411177007633023320 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/default/char/ball/2/jumpleft.spr0000644000175000001440000000474611177007633024055 0ustar jacobusers 99a0yGgjFJ#!Aa@ @@ @CyʱȂ)kRGRZB99AC)!!@ !ȂʍLL냪{LIsjs)kR d1mmL ˃{L˃m,{d1 9gRZgR&JGRA999AJ&JRgR9@aaA@@@ @ @@Aaa@ 99Aa@ @ a0yGgjFJ#!GRZB99C) @CyʱȂ)kRL냪{Is!!@ !ȂʍL ˃{˃js)kR d1mmLA999A&Jm,{d1 9gRZgR&JGR@ @ @ARgR9@aaA@@aa@ a@99AZ9 a0yGgjFJ#!GRC) @CyʱȂ)kRL Is!!@ !ȂʍL9A˃js)kR d1mmLA @&Jm,{d1 9gRZgR&JGR@ARgR9@aaA@@aa@holotz-castle-1.3.14-src/res/theme/default/char/ball/2/fall.spr0000644000175000001440000000316411177007633023136 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/default/char/ball/3/0000755000175000001440000000000011177007633021467 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/ball/3/dead.spr0000644000175000001440000002032511177007633023114 0ustar jacobusers,c[^^},cR?ߊR4ll 2uIM)Mev1٭RjU(E4,>]mmIM4$Ck]](E,JS,(E]uIM4#! $4k]٭jU(E4,4(E=1uIM)Mev1lWlRߊR,c;]^\,c c< kR־}٭vdg\TS[&d<}1 dgd|r<}1l}]<<<]}VlRފR,c;]=;,c cYxjR֞IZ4l<UU6t 22 f'481٭]o|e{Ju]]{Dsz UZ]|sCs`pcĚu] tdkj@izÊF48{٭5htsds#s${EmĖ1ūt{铏1l}yYYy6tR]iR,c;] c cVĪrR]mmIM4$Ck]](E,JS,(E]uIM4#! $4k]٭jU(E4,4(E=1uIM)Mev1lWlRߊR,c;]^\,cholotz-castle-1.3.14-src/res/theme/default/char/ball/3/jump.spr0000644000175000001440000000333211177007633023171 0ustar jacobusers)65S.*)6ww * **![m)M)Mme_\!RjU(E4,mmIM4$Ck]](E,JS,(EuIM4#! $4k]jU(E4,4(E|F![m)M)Mme֝=z\g!)M6p*)Kn))n))65S.*)w * *9Οξ*!uIM)MevƂ!RjU(E4,mmIM4$Ck]]](E,JS,(EuIM4#! $4k]]jU(E4,4(EF!{uIM)MevƂg!)Ξ[p*)K))n),c[^^},cR?ߊR4ll 2uIM)Mev1٭RjU(E4,>]mmIM4$Ck]](E,JS,(E]uIM4#! $4k]٭jU(E4,4(E=1uIM)Mev1lWlRߊR,c;]^\,cholotz-castle-1.3.14-src/res/theme/default/char/ball/3/stop.spr0000644000175000001440000000554411177007633023212 0ustar jacobusers )65S.*)6ww * *5Wx*!n6W!n6w?+n6WxB Mw Mn6wVLn5VwxxRF!,m56WWwWWg!)Mn5666p*)Kn))n))65S.*)6ww * *5Wx*!n6W!n[mmIM4$Ck]](E,JS,(E[uIM4#! $4k]LxRF!,m56WWwWWg!)Mn5666p*)Kn))n))65S.*)6ww * **![m)M)Mme_\!RjU(E4,mmIM4$Ck]](E,JS,(EuIM4#! $4k]jU(E4,4(E|F![m)M)Mme֝=z\g!)M6p*)Kn))n))65S.*)w * *9Οξ*!uIM)MevƂ!RjU(E4,mmIM4$Ck]]](E,JS,(EuIM4#! $4k]]jU(E4,4(EF!{uIM)MevƂg!)Ξ[p*)K))n),c[^^},cR?ߊR4ll 2uIM)Mev1٭RjU(E4,>]mmIM4$Ck]](E,JS,(E]uIM4#! $4k]٭jU(E4,4(E=1uIM)Mev1lWlRߊR,c;]^\,cholotz-castle-1.3.14-src/res/theme/default/char/ball/3/jumpright.spr0000644000175000001440000000270611177007633024233 0ustar jacobusersz#8# xwVl wV5 K xV5 U?xV\c]\c4TJ wV xwVU4l  xxwwVU5K  7#vU *l z#8# xwVl wV5 K xV U?L]\c]\c4]TJ wu xwVU4 xxwwVU5K  7#vU *l z#8# xwVl wVaaK aaTH U?aa]L"aa]\c aa]\cA 4aa]TJ aa]u xwVaau xxwwVU5aa 7#vU *l holotz-castle-1.3.14-src/res/theme/default/char/ball/3/left.spr0000644000175000001440000000365711177007633023162 0ustar jacobusers  8#z#l Vwx 5Vw 5VxK 5Vx?U3 5Vxaaaaaaaa4Vwx4 45VwJ l 4UVwxK 5UVwwxx l *U v7#  8#z#l Vwx 5Vw 5VxK Vx?Uc\Ƃc\ƺ]Tƺւ4 VwJ l 4UVwxK 5UVwwxx l *U v7#  8#z#l Vwx 5Vw VxK LƂ?Uc\ƺ]c\ƺ]Tƺ]4 uƂwJ 4UVwxK 5UVwwxx l *U v7#  8#z#l VwxaaVwH TaaK "Lƺ]aa?U c\ƺ]aaA c\ƺ]aaTƺ]aa4 uƺ]aaJ uaaVwxaa5UVwwxx l *U v7# holotz-castle-1.3.14-src/res/theme/default/char/ball/3/down.spr0000644000175000001440000000333211177007633023165 0ustar jacobusers)65S.*)6ww * **![m)M)Mme_\!RjU(E4,mmIM4$Ck]](E,JS,(EuIM4#! $4k]jU(E4,4(E|F![m)M)Mme֝=z\g!)M6p*)Kn))n))65S.*)w * *9Οξ*!uIM)MevƂ!RjU(E4,mmIM4$Ck]]](E,JS,(EuIM4#! $4k]]jU(E4,4(EF!{uIM)MevƂg!)Ξ[p*)K))n),c[^^},cR?ߊR4ll 2uIM)Mev1٭RjU(E4,>]mmIM4$Ck]](E,JS,(E]uIM4#! $4k]٭jU(E4,4(E=1uIM)Mev1lWlRߊR,c;]^\,cholotz-castle-1.3.14-src/res/theme/default/char/ball/3/slide.spr0000644000175000001440000000333211177007633023316 0ustar jacobusers)65S.*)6ww * **![m)M)Mme_\!RjU(E4,mmIM4$Ck]](E,JS,(EuIM4#! $4k]jU(E4,4(E|F![m)M)Mme֝=z\g!)M6p*)Kn))n))65S.*)w * *9Οξ*!uIM)MevƂ!RjU(E4,mmIM4$Ck]]](E,JS,(EuIM4#! $4k]]jU(E4,4(EF!{uIM)MevƂg!)Ξ[p*)K))n),c[^^},cR?ߊR4ll 2uIM)Mev1٭RjU(E4,>]mmIM4$Ck]](E,JS,(E]uIM4#! $4k]٭jU(E4,4(E=1uIM)Mev1lWlRߊR,c;]^\,cholotz-castle-1.3.14-src/res/theme/default/char/ball/3/jumpleft.spr0000644000175000001440000000270611177007633024050 0ustar jacobusers 8#z#l Vwx 5Vw 5VxK Vx?Uc\Ƃc\ƺ]Tƺւ4 VwJ l 4UVwxK 5UVwwxx l *U v7#  8#z#l Vwx 5Vw VxK LƂ?Uc\ƺ]c\ƺ]Tƺ]4 uƂwJ 4UVwxK 5UVwwxx l *U v7#  8#z#l VwxaaVwH TaaK "Lƺ]aa?U c\ƺ]aaA c\ƺ]aaTƺ]aa4 uƺ]aaJ uaaVwxaa5UVwwxx l *U v7# holotz-castle-1.3.14-src/res/theme/default/char/ball/3/fall.spr0000644000175000001440000000006611177007633023135 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/ball/1/0000755000175000001440000000000011177007633021465 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/ball/1/dead.spr0000644000175000001440000002320111177007633023106 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<y>>?bbֻ̘ԯk?@@>>ԯʥ^>>?yaʥ_y ^k? ##(### yy ##(@###>>? @>>?###@##( y!-!XX_#####( {\zwJS4MM{\ܧǓ~~S4>>?!zΠۼȱԶRI:0T@1$vȱ|nh^>>?!mnӵ£yI S4dhRS4J$$)###S4I^IS4J##(D6Z!###>>? @>>?######  )#S?dI=G F/Bk?O^OD-9###-*1D-@ac\lVD-9  ÒyI6Zakkk?U)#>>?O}y6+: -":yVT]C/9 \Ej^jI8Z  =+WwHқu]j=)3Og-":  +!:|[U֞)#k?[vmzX=,W|[kkG;A  E.:YkU|PprXwD-9  ^FV̕iOkk?UD-9-*,lXcJ2>=)3)#  888 @   0*-  +$@+6S7E}^n[EP~wz J8@^9L|Hh`^{_:M=)2 =)2iAWT_|LwISkUqf=R=)2 vQg[UrNB0X!29%PhCOyRm]9K+$%#$ĒxtP&4   !+fAn]|Gb@+6  y]lU@,X   <'DV|YwO2@[=MepB!2*+py[=MO2@RyxH<(P   E1CbET  @+6|Hd\gA!+   !mJ_azF0;  +$^9KTpS}oKxB.L$$=+8gCXRkYr_:M@4: F3<jBVew}PqyJd\vSkg?S=)2 =)2vQcu`}QmzGa]9K=)2 {U@JS7ES5DO2@@+6+$  @ ("-&(" ("?*5O3AZ7Hb>PlIZT7FH4>.#' ZKRS4C\7I;"/ H/;n{S4C7%. 7%.];LG-:  D(6Z7H7%..#'S4CE)7  D'5S4C(" M9C  \6I?*5 cFT^FQ  ;"/O3A.#'_>O Z7H("1$+_F];LE(6   G+8Z7H7%. 7%.S4ClzF-9 ;"/\6IS4C7%.  @holotz-castle-1.3.14-src/res/theme/default/char/ball/1/hang.spr0000644000175000001440000000316411177007633023134 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>?holotz-castle-1.3.14-src/res/theme/default/char/ball/1/right.spr0000644000175000001440000002320111177007633023326 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/default/char/ball/1/up.spr0000644000175000001440000002320111177007633022635 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/default/char/ball/1/jump.spr0000644000175000001440000002320111177007633023164 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/default/char/ball/1/stop.spr0000644000175000001440000000316411177007633023204 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>?holotz-castle-1.3.14-src/res/theme/default/char/ball/1/jumpright.spr0000644000175000001440000002320111177007633024222 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/default/char/ball/1/left.spr0000644000175000001440000002320111177007633023143 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/default/char/ball/1/down.spr0000644000175000001440000002320111177007633023160 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/default/char/ball/1/slide.spr0000644000175000001440000002320111177007633023311 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/default/char/ball/1/jumpleft.spr0000644000175000001440000002320111177007633024037 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/default/char/ball/1/fall.spr0000644000175000001440000002320111177007633023127 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/default/char/ball/4/0000755000175000001440000000000011177007633021470 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/ball/4/dead.spr0000644000175000001440000001030711177007633023114 0ustar jacobusers 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/default/char/ball/4/hang.spr0000644000175000001440000000006611177007633023135 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/ball/4/right.spr0000644000175000001440000002732511177007633023344 0ustar jacobusers  9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk cYu{mkZiJ9e)9iJZ{Z4mkZiJ9e)e)9iJZuYZӜ8mkZiJ9e)e)9iJZU8QZmkZiJ9e)e)9iJZq8ƊR{mkZiJ9e)e)9iJZmkus c{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk{Yu{mkZiJ9e)9iJZsRQ4mkZiJ9e)e)9iJZuZӜ8mkZiJ9e)e)9iJZU8QZQmkZiJ9e)e)9iJZq8R{mkZiJ9e)e)9iJZmku{{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZZ{4mkZiJ9e)e)9iJZsRZӜ8mkZiJ9e)e)9iJZU8QZZ{mkZiJ9e)e)9iJZq8Y{ cmkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9B1IDbRIRDbIB1b9B1) B9B1"1)b9QAb9AQb9)"1B1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) )b9AZDbdjrdjDbZAb9)B9"1)A"1AIDbdjrdjDbIA"1AB9"1A#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 H9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e))AIQZQRrdjQIAIAB9"1)B1IQIQRrdjQIAb9B1)"1AIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9AZDbdjrdjDbZQIAB9"1B9AIQZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1  9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIAZDbdjZRDbZAb9AB9 B9Ab9B1IDbRIRDbIB1b9B1) QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/default/char/ball/4/up.spr0000644000175000001440000000006611177007633022644 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/ball/4/jump.spr0000644000175000001440000002732511177007633023202 0ustar jacobusers  9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk cYu{mkZiJ9e)9iJZ{Z4mkZiJ9e)e)9iJZuYZӜ8mkZiJ9e)e)9iJZU8QZmkZiJ9e)e)9iJZq8ƊR{mkZiJ9e)e)9iJZmkus c{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk{Yu{mkZiJ9e)9iJZsRQ4mkZiJ9e)e)9iJZuZӜ8mkZiJ9e)e)9iJZU8QZQmkZiJ9e)e)9iJZq8R{mkZiJ9e)e)9iJZmku{{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZZ{4mkZiJ9e)e)9iJZsRZӜ8mkZiJ9e)e)9iJZU8QZZ{mkZiJ9e)e)9iJZq8Y{ cmkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9B1IDbRIRDbIB1b9B1) B9B1"1)b9QAb9AQb9)"1B1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) )b9AZDbdjrdjDbZAb9)B9"1)A"1AIDbdjrdjDbIA"1AB9"1A#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 H9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e))AIQZQRrdjQIAIAB9"1)B1IQIQRrdjQIAb9B1)"1AIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9AZDbdjrdjDbZQIAB9"1B9AIQZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1  9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIAZDbdjZRDbZAb9AB9 B9Ab9B1IDbRIRDbIB1b9B1) QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/default/char/ball/4/stop.spr0000644000175000001440000002732511177007633023214 0ustar jacobusers  9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk cYu{mkZiJ9e)9iJZ{Z4mkZiJ9e)e)9iJZuYZӜ8mkZiJ9e)e)9iJZU8QZmkZiJ9e)e)9iJZq8ƊR{mkZiJ9e)e)9iJZmkus c{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk{Yu{mkZiJ9e)9iJZsRQ4mkZiJ9e)e)9iJZuZӜ8mkZiJ9e)e)9iJZU8QZQmkZiJ9e)e)9iJZq8R{mkZiJ9e)e)9iJZmku{{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZZ{4mkZiJ9e)e)9iJZsRZӜ8mkZiJ9e)e)9iJZU8QZZ{mkZiJ9e)e)9iJZq8Y{ cmkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9B1IDbRIRDbIB1b9B1) B9B1"1)b9QAb9AQb9)"1B1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) )b9AZDbdjrdjDbZAb9)B9"1)A"1AIDbdjrdjDbIA"1AB9"1A#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 H9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e))AIQZQRrdjQIAIAB9"1)B1IQIQRrdjQIAb9B1)"1AIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9AZDbdjrdjDbZQIAB9"1B9AIQZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1  9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIAZDbdjZRDbZAb9AB9 B9Ab9B1IDbRIRDbIB1b9B1) QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/default/char/ball/4/jumpright.spr0000644000175000001440000002732511177007633024240 0ustar jacobusers  9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk cYu{mkZiJ9e)9iJZ{Z4mkZiJ9e)e)9iJZuYZӜ8mkZiJ9e)e)9iJZU8QZmkZiJ9e)e)9iJZq8ƊR{mkZiJ9e)e)9iJZmkus c{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk{Yu{mkZiJ9e)9iJZsRQ4mkZiJ9e)e)9iJZuZӜ8mkZiJ9e)e)9iJZU8QZQmkZiJ9e)e)9iJZq8R{mkZiJ9e)e)9iJZmku{{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZZ{4mkZiJ9e)e)9iJZsRZӜ8mkZiJ9e)e)9iJZU8QZZ{mkZiJ9e)e)9iJZq8Y{ cmkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9B1IDbRIRDbIB1b9B1) B9B1"1)b9QAb9AQb9)"1B1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) )b9AZDbdjrdjDbZAb9)B9"1)A"1AIDbdjrdjDbIA"1AB9"1A#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 H9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e))AIQZQRrdjQIAIAB9"1)B1IQIQRrdjQIAb9B1)"1AIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9AZDbdjrdjDbZQIAB9"1B9AIQZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1  9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIAZDbdjZRDbZAb9AB9 B9Ab9B1IDbRIRDbIB1b9B1) QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/default/char/ball/4/left.spr0000644000175000001440000002732511177007633023161 0ustar jacobusers  9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk cYu{mkZiJ9e)9iJZ{Z4mkZiJ9e)e)9iJZuYZӜ8mkZiJ9e)e)9iJZU8QZmkZiJ9e)e)9iJZq8ƊR{mkZiJ9e)e)9iJZmkus c{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk{Yu{mkZiJ9e)9iJZsRQ4mkZiJ9e)e)9iJZuZӜ8mkZiJ9e)e)9iJZU8QZQmkZiJ9e)e)9iJZq8R{mkZiJ9e)e)9iJZmku{{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZZ{4mkZiJ9e)e)9iJZsRZӜ8mkZiJ9e)e)9iJZU8QZZ{mkZiJ9e)e)9iJZq8Y{ cmkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9B1IDbRIRDbIB1b9B1) B9B1"1)b9QAb9AQb9)"1B1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) )b9AZDbdjrdjDbZAb9)B9"1)A"1AIDbdjrdjDbIA"1AB9"1A#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 H9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e))AIQZQRrdjQIAIAB9"1)B1IQIQRrdjQIAb9B1)"1AIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9AZDbdjrdjDbZQIAB9"1B9AIQZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1  9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIAZDbdjZRDbZAb9AB9 B9Ab9B1IDbRIRDbIB1b9B1) QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/default/char/ball/4/down.spr0000644000175000001440000000006611177007633023167 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/ball/4/slide.spr0000644000175000001440000000006611177007633023320 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/ball/4/jumpleft.spr0000644000175000001440000002732511177007633024055 0ustar jacobusers  9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk cYu{mkZiJ9e)9iJZ{Z4mkZiJ9e)e)9iJZuYZӜ8mkZiJ9e)e)9iJZU8QZmkZiJ9e)e)9iJZq8ƊR{mkZiJ9e)e)9iJZmkus c{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk{Yu{mkZiJ9e)9iJZsRQ4mkZiJ9e)e)9iJZuZӜ8mkZiJ9e)e)9iJZU8QZQmkZiJ9e)e)9iJZq8R{mkZiJ9e)e)9iJZmku{{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZZ{4mkZiJ9e)e)9iJZsRZӜ8mkZiJ9e)e)9iJZU8QZZ{mkZiJ9e)e)9iJZq8Y{ cmkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9B1IDbRIRDbIB1b9B1) B9B1"1)b9QAb9AQb9)"1B1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) )b9AZDbdjrdjDbZAb9)B9"1)A"1AIDbdjrdjDbIA"1AB9"1A#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 H9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e))AIQZQRrdjQIAIAB9"1)B1IQIQRrdjQIAb9B1)"1AIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9AZDbdjrdjDbZQIAB9"1B9AIQZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1  9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIAZDbdjZRDbZAb9AB9 B9Ab9B1IDbRIRDbIB1b9B1) QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/default/char/ball/4/fall.spr0000644000175000001440000002732511177007633023145 0ustar jacobusers  9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk cYu{mkZiJ9e)9iJZ{Z4mkZiJ9e)e)9iJZuYZӜ8mkZiJ9e)e)9iJZU8QZmkZiJ9e)e)9iJZq8ƊR{mkZiJ9e)e)9iJZmkus c{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk{Yu{mkZiJ9e)9iJZsRQ4mkZiJ9e)e)9iJZuZӜ8mkZiJ9e)e)9iJZU8QZQmkZiJ9e)e)9iJZq8R{mkZiJ9e)e)9iJZmku{{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZZ{4mkZiJ9e)e)9iJZsRZӜ8mkZiJ9e)e)9iJZU8QZZ{mkZiJ9e)e)9iJZq8Y{ cmkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9B1IDbRIRDbIB1b9B1) B9B1"1)b9QAb9AQb9)"1B1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) )b9AZDbdjrdjDbZAb9)B9"1)A"1AIDbdjrdjDbIA"1AB9"1A#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 H9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e))AIQZQRrdjQIAIAB9"1)B1IQIQRrdjQIAb9B1)"1AIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9AZDbdjrdjDbZQIAB9"1B9AIQZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1  9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIAZDbdjZRDbZAb9AB9 B9Ab9B1IDbRIRDbIB1b9B1) QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/default/char/dummy/0000755000175000001440000000000011177007633021546 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/dummy/dead.spr0000644000175000001440000000006611177007633023173 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/dummy/hang.spr0000644000175000001440000000006611177007633023213 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/dummy/right.spr0000644000175000001440000000006611177007633023413 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/dummy/up.spr0000644000175000001440000000006611177007633022722 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/dummy/jump.spr0000644000175000001440000000006611177007633023251 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/dummy/stop.spr0000644000175000001440000000006611177007633023263 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/dummy/jumpright.spr0000644000175000001440000000006611177007633024307 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/dummy/left.spr0000644000175000001440000000006611177007633023230 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/dummy/down.spr0000644000175000001440000000006611177007633023245 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/dummy/slide.spr0000644000175000001440000000006611177007633023376 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/dummy/jumpleft.spr0000644000175000001440000000006611177007633024124 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/dummy/fall.spr0000644000175000001440000000006611177007633023214 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/main/0000755000175000001440000000000011177007633021337 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/main/2/0000755000175000001440000000000011177007633021500 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/main/2/dead.spr0000644000175000001440000002662311177007633023134 0ustar jacobusers zObpjzzojz Z Zojrz Z.b.bojOjzzrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZrpjrjrObzz Zojzpjrzrrrzrzz ZojzrojzrzObpjzzojz Z Zojrz Z.b.bojOjz6zrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-Zpjrj6rObzz Zojzpjrzrrrzrzz ZojzrojzrzOb6pjzzojz Z Zojrz Z.b.bojOjzzrNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.b6zzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZpjrjrObzz Zojzpjrzrrrzrzz ZojzrojzrzObpjzzojz Z Zojr6z Z.b.bojOj56zrNbI-Zzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-ZԓrԓObz Zojpjrzrrrzrzz ZojzrojzrzObpjzzojz Z Zojrz Z.b.bojOj[zrNbI-Zzzrzpjoj.bIP{.bzpj.brrrԓpj ZQ.b6riAQrzzroj ZzriA.bͱzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-Z:֬rԓ[Obz Zojpjrzrrrzrz ZojzrojzrzOb[pjzzojz Z Zojrz Z.bojOjͱzrւI-ZzzűrzpjojIW.bzpj.brrr֬pj ZQ.briAQrzzroj ZzriA.b[ֱzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-Z֬r׬Obz Zojpjrzrrrzrz ZojzrojzrOb6ԓzojz Z Zojr6[6z Z.bojOj[=[ֱzrIz[zpjojP{Œ6zpj.brrr֬pj ZP{.b6[ԓiAQzzroj ZriAzOb ZQrH9Ioj6zr Z Zi9 Zojzrr.b.b.bjrzzqӋ6j-Zx=łr=ł Zoj6ӓrzrrzrz6qojzrojz6rŕ~xŶz Z Zojrz Z΂ojOj׬r]IWzűzpj΂6=Wpjrr涬 Z6.b[xiAS׬z׬oj ZŶiAWޱzOb ZQrH9Ir Z Zi9 Zojzrr.b.brzzW{xxźŐju{֞ނ׬=ނxޙ ZojŜxr׬󂙽rrz׬z=WojzrojzŐr;֛łޞ{ւ֜͂׬ Zuojr^ Zނoj;^^޿3zւ׬^׬]Zξ{ւpjΑr ZZΕ^{ނiAS׬׬Ζ Z޶{׬Ob ZQ׬H9I=r Z Zi9 Zojrr.b.bαrzzW{xx޺Őju{֞ނ=xޙ Zoj=xr׬ނrrz΂z~Zւojzrojz޶ނ=;=ނ;΂tŶ;=^=u]͂;];=;=ֶ涬]=tł=~t;΂~ΕuT΂S~ֶtut׬łu׬׬Z{ւ{=޶~~{=u~{ւ;׬׬=׬׬;=΂ނ=;=ނ;΂tŶ;=^=u]͂;];=;=ֶ涬]=tł=~t;΂~ΕuT΂S~ֶtut׬łu׬׬Z{ւ{=޶~~{=u~{ւ;׬׬=׬׬;=΂^=^=;Ż΂;~~żނ;^^]~;~~ޞ]~͂=]]ł]ނ޾]ł~ł޿łżނ]΂=΂]ł=~]~^͂~^^^=ނ^^=^=^^^=ނނ==^^=ނ^޻޻ނ]֛=^޻޻ނֻ޼=ޞނ=ނ^^ނ^]^==]^=^=<=~====]===^]]==]^^]==]]]^^=^]=^==]^^=<====]=]^]]]^=^]^ holotz-castle-1.3.14-src/res/theme/default/char/main/2/hang.spr0000644000175000001440000000126411177007633023146 0ustar jacobusers zzjzzrrzzjojzzrrojNbzzrNbzzzrojzrojjrNbzrrojojojjojOb Zzzzrrr Z-ZjjojNbzzzroj-ZNbNbNbzzojOb-Z.bNbrrNbObNbojjzrojoj Z ZzjNbNbojNb ZQ ZjzzrojojNb ZNbjpjobjzzrjojrojojrrrrojojzzojjrjjaojojojNbzzrojojojojjNb ZzrrrrojObNb-ZzzrrojNb.bzzholotz-castle-1.3.14-src/res/theme/default/char/main/2/right.spr0000644000175000001440000000545311177007633023352 0ustar jacobusers rrzObzojNbzz Zzzoj ZNbrzrrzrr-Zrrjojrzrz-brzzjNb.bObNbzzQNbrzoj.b ZNbjzjrojNb-b.bojojOb.b-Z-Z.bObNbojoj-ZNbNbojojrojNbr Z-Z.brrr Zr-Z-ZzrrNbrrzIojrzObjrQQrzzQ.bojz Z-Z ZrzojzojzzjNb.Zojrzzroj-ZQNbrzrrojrNbQrzrrrjz-ZjzzzzzrrzNb Zzrrzrrpjoj.b ZjzzzjOb-Z Z ZjzzzzOb Zjzzzrpj-ZIjrrNbQ RzzNb ZrrNb RQzrzpjNbrjjQQrzrr-Zojoj-ZQzzzojojNb.b Rzzrr R R Z Zrrojz0ojrzojNbjrrNbNbojrQNbpj-ZNbojNbIjzr.b-ZNbj-ZIrrNboj.bzzojNbojzzj.bjzzzojNb-ZrrzrzzzojojrzrzrjNbzrojojpjrrrrOb-ZNbojojrrrrrojNbrzr-ZrrojrzrzNbrojojzzrNb.bojrrObjjjojzrzzzzrrrpjzrzojzzzjzzjrrojNbzr Z-ZzzzrzrpjojrpjNbrQ ZrjojojrrojjjojojNbrjrjzzojojjzrzzojjojojrzzzpjzzrrojzzrrzrrrpjrojojzpjzrrojojojzojjrrzrrojNbNbzzpjojzpjojObojrrojrholotz-castle-1.3.14-src/res/theme/default/char/main/2/up.spr0000644000175000001440000000265511177007633022662 0ustar jacobusers rObrOb-Zrr.b R ZNb ZQrrrNb ZrojQrrrrojojr-Zojrrrroj.bojrrrrrrrrrNbrrrjrrjrrrrNbrrrObrrojrrrNbrrrojojNbrrrNbrrj Z.brrrrojNbrjIQrNbrrjNb.bojojIrojNb-Z Z ZQNbojNbrNbIAI ZNbObojNb ZQ9Q ZNb ZNbNbNbojNbojojNbObr-ZObrQ ZNb Z R.brrQojr ZNbrrroj-Zrojojrrrrrrrrroj.bojrrrrjrrjrrrNbrrrrojrrObrrrNbrrrrNbojojrrrNbrrr.b ZjrrNbrrrQIjrNbojrrrrIojoj.bNbjrrNbrNbojNbQ Z Z-ZNbojrObNb ZIAINbrNb ZQ9Q ZNbojNbNb ZNbojNbNbojojholotz-castle-1.3.14-src/res/theme/default/char/main/2/jump.spr0000644000175000001440000000145411177007633023205 0ustar jacobusers rpjrzrrrojObzrrrjojrrjjoj-ZrrojojrrrrrojNb-Z ZzrrrojojrojojObNb.b-Zrrrrroj ZNbNb-Z-ZrrrrOb-Z.b-ZzrojojNb-Z.bQrr Zoj RzrrrrrrjjjrrrpjrrrrrjrrrrojObrrjrrrjzrjNbojrjpjjrrrojzrrojrrrojjQrrj.b-Z-ZpjrNb Z-Z ZQIholotz-castle-1.3.14-src/res/theme/default/char/main/2/stop.spr0000644000175000001440000000133411177007633023214 0ustar jacobuserszObpjzzojz Z Zojrz Z.b.bojOjzzrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZrpjrjrObzz Zojzpjrzrrrzrzz Zojzrojzrholotz-castle-1.3.14-src/res/theme/default/char/main/2/jumpright.spr0000644000175000001440000000145411177007633024243 0ustar jacobusers Nb-Z-ZrNbObojojNb-ZzrObNbjrrrNbObzrrrrrrrrjojNbzrrrrrrrjrrjjrrrjojjrrrpjjObjrrrjrojrrrrjjrrrrjrojojojrrrrjrojNbNbzrrrjjrNb.bNbzrrrjjrObOb-ZzrrrrpjrrojOb-Z-ZzrrrrpjrNbNbzrrrrrrrrrrrrrjholotz-castle-1.3.14-src/res/theme/default/char/main/2/left.spr0000644000175000001440000000545311177007633023167 0ustar jacobusers rrObzNbojz ZzzrNb Zojzzr-Zrrzrrzzr-bzrzrojjrrNbQzzNbOb.bNbjzjzjNb Z.bojzObojoj.b-bNbojrojojNbOb.b-Z-Z.brNbojrojojNbNb-Zr Zrrr.b-Z ZzrrNbrrz-Z-ZrjObzrojIzzrQQzoj.bQr Z-Z ZojzojzNbjzz-Zojrzzroj.ZNbrojrrzrNbQzjrrrzrQ ZNbzrrzzzzzj-Z Z.bojpjrrzrrz Z Z-ZObjzzzj ZObzzzzjI-Zpjrzzzj ZNbzz RQNbrrjNbpjzrzQ RNbrr-ZrrzrQQjjrojzzzQ-Zojojrrzz R.bNbojzojrr Z Z R R0rojNbojzNbNbrrj-ZpjNbQroj-Z.brzjINbojNbNbrrI-ZjNbNbojzz.boj.bjzzoj-ZNbojzzzjrrzrzzrojojzzrzNbjrzrrrrpjojojrrojojNb-ZObrNbojrrr-ZrzrrojrrrzNbzojojroj.bNbrzzojjjjObrrpjrrrzzzzrzNbojrrjzzjzzzojzrzNbpjrojpjrzrzzz-Z Zrzojojjjojrrojojjr ZQrzzjrjrNbojzzrzjojojpjzzzrojojjrrzzojrrzzpjzojojrpjrrrzrrjojzojojojrrzojpjzzNbNbojrrzrojrrojObojpjzholotz-castle-1.3.14-src/res/theme/default/char/main/2/down.spr0000644000175000001440000000265511177007633023205 0ustar jacobusers rObrOb-Zrr.b R ZNb ZQrrrNb ZrojQrrrrojojr-Zojrrrroj.bojrrrrrrrrrNbrrrjrrjrrrrNbrrrObrrojrrrNbrrrojojNbrrrNbrrj Z.brrrrojNbrjIQrNbrrjNb.bojojIrojNb-Z Z ZQNbojNbrNbIAI ZNbObojNb ZQ9Q ZNb ZNbNbNbojNbojojNbObr-ZObrQ ZNb Z R.brrQojr ZNbrrroj-Zrojojrrrrrrrrroj.bojrrrrjrrjrrrNbrrrrojrrObrrrNbrrrrNbojojrrrNbrrr.b ZjrrNbrrrQIjrNbojrrrrIojoj.bNbjrrNbrNbojNbQ Z Z-ZNbojrObNb ZIAINbrNb ZQ9Q ZNbojNbNb ZNbojNbNbojojholotz-castle-1.3.14-src/res/theme/default/char/main/2/slide.spr0000644000175000001440000000116411177007633023330 0ustar jacobusers @rrrojNbzojojrrrObObrzzrNbrrrjrrrrNb-Zrjrrrrjrjrjrzroj-bpjrpjzzzzojojjrojzrojzrojrjjroj Zrrojzrjjojj-Z-Zjzojojzrroj-bNb.b ZNbrrojIzrOb-bNboj-Zrrroj Zrj.bojjojojrojNbzr.bNbNbjoj-ZNb.bholotz-castle-1.3.14-src/res/theme/default/char/main/2/jumright.spr0000644000175000001440000000145411177007633024063 0ustar jacobusers Nb-Z-ZrNbObojojNb-ZzrObNbjrrrNbObzrrrrrrrrjojNbzrrrrrrrjrrjjrrrjojjrrrpjjObjrrrjrojrrrrjjrrrrjrojojojrrrrjrojNbNbzrrrjjrNb.bNbzrrrjjrObOb-ZzrrrrpjrrojOb-Z-ZzrrrrpjrNbNbzrrrrrrrrrrrrrjholotz-castle-1.3.14-src/res/theme/default/char/main/2/jumpleft.spr0000644000175000001440000000145411177007633024060 0ustar jacobusers ObNbr-Z-ZNbNbObrz-ZNbojojObNbrrrjNbojjrrrrrrrrzjjrrjrrrrrrrzpjrrrjojjrrrrjrrrjObjjjrrrrojojojojrjrrrrNbNbojrjrrrrNb.bNbrjjrrrz-ZObObrjjrrrz-Z-ZObojrrpjrrrrzNbNbrpjrrrrzrrrrrrzrrrrrjrrholotz-castle-1.3.14-src/res/theme/default/char/main/2/fall.spr0000644000175000001440000000316411177007633023150 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/default/char/main/5/0000755000175000001440000000000011177007633021503 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/main/5/dead.spr0000644000175000001440000001476411177007633023142 0ustar jacobusers Ӝ}]U~U0qU}Z0޺ޚxUZ cQ]ﶵqy44ΖsZQBpWySsƂEqW0sy΂114}׽{9{U]Y׽QY]ނ{Ӝ4Y00ƶy΂ނAA׽A&AAA&AaaAAߺvzYV9ς-vsV߻߻ߴO~ԥԥV߻ߚz׻߹Q߻UҖVԥ߻Yvv2ߚחkuUV052ϷEo~tNvco}5zחRcRVYƗԥԥzςR5ԥƻߖvƂςAAA&AAA&AaaAAXwҕww3u6ro,fPtwwwqpPMnwwV6wv/ІmlpwwծծІnttww6S~3}tVt[m23}FmnSqMn|jSmV6s0/~[}sqS6}ҕwSpptSҕAASA&AAA&AaaAAXT}T4RPNwӞK^.uQTTTONw/Lfo}o}ЅTT3TSwv}}K\NuTTvo}ldo}vvlSe~nЅl'>lf0o~KflIKe31u-niKlr1o}o}Nu1r󞲖l}Ѕ}rT1NuNuQ}AAA&AAA&AaaAAX1m1uІu gJV eu111.w o ok^Mmmmu111fnmmmm*TpvnummMmo~nf~u\C ^vv~fud'>k^nvK^\HC]u~d,fhCduІO~~mmmmvO~юdmu,e,e/~uAAA&AAA&AaaAA:Mmuu\mmmm\eUmmE Tuu]U])MJTJTmmumUjUjTjTLeMm,e]JU\JTJT,ejUjULe\K:D]]eM\K5)MeMmMm+]MK2L\umd T UK\mm edJTJTKk\\AAA&AAA&AaaAA\Tk\jTKLDJT<LDD'lf0o~KflIKe31u-niKlr1o}o}Nu1r󞲖l}Ѕ}rT1NuNuQT}Җ.u3 `1m1uІu gJV eu111.w o ok^Mmmmu111fnmmmm*TpvnummMmo~nf~u\C ^vv~fud'>k^nvK^\HC]u~d,fhCduІO~~mmmmvO~юdmu,e,e/~u Mmuu\mmmm\eUmmE Tuu]U])MJTJTmmumUjUjTjTLeMm,e]JU\JTJT,ejUjULe\K:D]]eM\K5)MeMmMm+]MK2L\umd T UK\mm edJTJTKk\\ \Tk\jTKLDJT<LDD'32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RF KG @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quyF7.Zk$%BB7 n&h"m62E0 4?MI82GJ>NG=#F/,<>K<=MD2+3BG2=G@@22<KV  -.LU/<V H4holotz-castle-1.3.14-src/res/theme/default/char/main/1/right.spr0000644000175000001440000001465711177007633023357 0ustar jacobusers  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0QQW JJJ ;ttt9ZZZHHHhihhh:::mayzy>>>@MP=.M /777###(II/ <9C&( =U7$+*2G7"%( >;&6&&,2:&1+1!C A\6 $ A]qe6 @::<'''66>bbjVV_ QQ_cci VVr==S::Ff--i; ;;;JJJmmWW~"""7771199CCC**,,,ooo!!!### muFFFSSS%=.M #3###-JI/ D=C&( 9KL0$+ 2>?!"# GF8 *#/L5#C3 :)+ RC ; @'RT>)A  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0 5 vvvuu;AAA>>9lll```,.VXp:::m-<@<>>>,,,KWZ;-? /777### 0 A?4 (2<@/ 038?-$- 5A:) $'<<7) :6%!82$(# ,K\31 D][@( @::<'''66>bbjVV_ QQ_cci VVr==S::F xxx--i* xxx??[AAAooo{{yyyEEErrr$$$"""NNNdddFFF888 i u333999%93.HM("`!YN ;$Y"&^$QA 03HQRN' '33& FON60. 4NLH"2( 6I5 +%+ '/)/+ ; *9E CE=#( 8 holotz-castle-1.3.14-src/res/theme/default/char/main/1/up.spr0000644000175000001440000000633511177007633022660 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/default/char/main/1/jump.spr0000644000175000001440000000152411177007633023202 0ustar jacobusers (BMk(BiJ{mk c1IJӜZR{1E),c$!9i HPR@HaqR1mk,c(BAXØ `xiJ1 apðxp8ppx(Xh`` H)`!`0 @ `@ ` `  ` @  @   @   8P`H8 X@ P00 X(P88Hholotz-castle-1.3.14-src/res/theme/default/char/main/1/stop.spr0000644000175000001440000000316411177007633023216 0ustar jacobusers @GGGkkkEEELLLzzzHHH^^^EITTTUFHL>>@ Xfx,,O!!!338 u|p OOO''79quyRRR000.ZkKKK+++'H4+.&B[[[111 /#:4###  -+* >>>/<0+1C>= M/;N" G6J S 2DG32> 0 ?X?  IZ@holotz-castle-1.3.14-src/res/theme/default/char/main/1/jumpright.spr0000644000175000001440000000316411177007633024242 0ustar jacobusers @bbb///GGGOOOnnzDDGnn66~@@::E888777k55%%III hhh...{{{.h O kkkMMM@@@-o~BPAGGG{{{- EHA PPP8{}OQ>7"7JBPM>@H+:CO:M@ <* JF =B2 AI=>?H: T M2C&@&<M HI -holotz-castle-1.3.14-src/res/theme/default/char/main/1/left.spr0000644000175000001440000000645711177007633023173 0ustar jacobusers  e)(JaMsQ(JA(qm{ ,sq { 1aP48AIJ8sMQ IJZ9{`h9Mk!1@`` )hRa``@@@`@  a@@  @@  @` !! )! A0@ 0X`@0 `@pX@@ $!9aZ k9A0 kZ Qqr AQQ8he`zmIJ9 41!!mke)E BR(Bp`h A!!@1` ) a a``@@`@@  a`@ `@` @`@`  ``(( !`@ @@8 @`P @( 8 P P e)(JaMsQ(JA(qm{ ,sq {1a0Q84s8繲Bre cmk9:ch9!1@` )Ze)a` a``@ a` @@` ``    @ @!8 0XH@((@ XX@@ 0 $!9aZ k9A0 kZ Qqr AQQ(he{YÐA{ a{σ mkB,ciJ!è $!s(B91p@`h A9(B a@H`I1 aa`c#@@""` b@@ bb#   Bbc @`A @((@`! @ @( `@@8`(@8 `8`( 8 @holotz-castle-1.3.14-src/res/theme/default/char/main/1/down.spr0000644000175000001440000000633511177007633023203 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/default/char/main/1/slide.spr0000644000175000001440000001465711177007633023342 0ustar jacobusers @wwwSSSAAAccc+++hhh???AAA<<<[[^xxx$$$!!!000 Rvc3333hyr008hoooGGGG )T=PN?JPP> GOO=J- C@$@N3 P )RSBN  @444///GGGwww```EEE{{{:[[[___99{!!lW##l,,,YYd3333hO r008 i{@*$@q-6'9GL'''- x kPN[2Lms~iWY;SSS )sb Gj<{E0^V[N9,3%<IP OD+QQ>GS @+++cccAAApppAAA///sss$$$xxxVVfmUUzCCCcv$$$$ppt h3333a008r^GGGooo!#1 )TG?NP= >PPJOOG-J=$@C N@ ) P3SRNB  @ ;;;^^^oooYYY99{hYY,,,''' /2 xE SSS;\ |s E{-DZf m=Pd8OF=K holotz-castle-1.3.14-src/res/theme/default/char/main/1/jumpleft.spr0000644000175000001440000000316411177007633024057 0ustar jacobusers @///bbbGGGnnzOOO888::E@@66~nnDDGhhh III%%55k777MMMkkk Oh.{{{...BPA~o-@@@AHE -{{{GGG7>QO}{8PPP H@>MPBJ7"@M:OC:+FJ *< I A 2B= M T:H?>= M<&@&C2-  IHholotz-castle-1.3.14-src/res/theme/default/char/main/1/fall.spr0000644000175000001440000001150611177007633023146 0ustar jacobusers  @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @ jjj888GGGkkkEEESSSAAAtttgggLLLzzz'''~~~sssIII~~~ppp$$>"HHH^^^!!dkkkAAAQQQdPPYd{44e ^} x |9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RFKG%  @GGGkkkEEELLLzzz"HHH^^^-dPPYd nGGGGyyy22Z s}EE===eeeooo+++ x |(((FFFeee---9q|{LLLddd UUU>>>  .Zk$$$[[[AJ/ p&h"m61E7AJMI82GJ>NG9,4,<>K<=MD0D.2=G@@22<3BG  -KVU/.L<V H43holotz-castle-1.3.14-src/res/theme/default/char/main/4/0000755000175000001440000000000011177007633021502 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/main/4/dead.spr0000644000175000001440000002541111177007633023130 0ustar jacobuserszObpjzzojz Z Zojrz Z.b.bojOjzzrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZrpjrObzAArA&AAA&AaaAAzObpjzzojz Z Zojrz Z.b.bojOjz6zrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZpjrObzAArA&AAA&AaaAAzOb6pjzzojz Z Zojrz Z.b.bojOjzzrNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.b6zzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZpjrObzAArA&AAA&AaaAAzObpjzzojz Z Zojr6z Z.b.bojOj56zrNbI-Zzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-ZԓObAArA&AAA&AaaAAzObpjzzojz Z Zojrz Z.b.bojOj[zrNbI-Zzzrzpjoj.bIP{.bzpj.brrrԓpj ZQ.b6riAQrzzroj ZzriA.bͱzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-Z:֬ObAArA&AAA&AaaAAzOb[pjzzojz Z Zojrz Z.bojOjͱzrւI-ZzzűrzpjojIW.bzpj.brrr֬pj ZQ.briAQrzzroj ZzriA.b[ֱzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-Z֬ObAArA&AAA&AaaAAOb6ԓzojz Z Zojr6[6z Z.bojOj[=[ֱzrIz[zpjojP{Œ6zpj.brrr֬pj ZP{.b6[ԓiAQzzroj ZriAzOb ZQrH9Ioj6zr Z Zi9 Zojzrr.b.b.bjrzzqӋ6j-Zx=łłłAArA&AAA&AaaAAŕ~xŶz Z Zojrz Z΂ojOj׬r]IWzűzpj΂6=Wpjrr涬 Z6.b[xiAS׬z׬oj ZŶiAWޱzOb ZQrH9Ir Z Zi9 Zojzrr.b.brzzW{xxźŐju{֞ނނxނAArA&AAA&AaaAA;֛łޞ{ւ֜͂׬ Zuojr^ Zނoj;^^޿3zւ׬^׬]Zξ{ւpjΑr ZZΕ^{ނiAS׬׬Ζ Z޶{׬Ob ZQ׬H9I=r Z Zi9 Zojrr.b.bαrzzW{xx޺Őju{֞ނ=xނAArA&AAA&AaaAAނ=;=ނ;΂tŶ;=^=u]͂;];=;=ֶ涬]=tł=~t;΂~ΕuT΂S~ֶtut׬łu׬׬Z{ւ{=޶~{=AAA&AAA&AaaAAނ=;=ނ;΂tŶ;=^=u]͂;];=;=ֶ涬]=tł=~t;΂~ΕuT΂S~ֶtut׬łu׬׬Z{ւ{=޶~{=AAA&AAA&AaaAA^=^=;Ż΂;~~żނ;^^]~;~~ޞ]~͂=]]ł]ނ޾]ł~ł޿łżނ]΂=΂AA΂A&AAA&AaaAA^^^=ނ^^=^=^^^=ނނ==^^=ނ^޻޻ނ]֛=^޻޻ނֻ޼=ޞނ=AAނA&AAA&AaaAA^==]^=^=<=~====]===^]]==]^^]AA]A&AAA&AaaAA==]^^=<====]=]^AA]A&AAA&AaaAAAAA&AAA&AaaAAholotz-castle-1.3.14-src/res/theme/default/char/main/4/hang.spr0000644000175000001440000000126411177007633023150 0ustar jacobusers zzjzzrrzzjojzzrrojNbzzrNbzzzrojzrojjrNbzrrojojojjojOb Zzzzrrr Z-ZjjojNbzzzroj-ZNbNbNbzzojOb-Z.bNbrrNbObNbojjzrojoj Z ZzjNbNbojNb ZQ ZjzzrojojNb ZNbjpjobjzzrjojrojojrrrrojojzzojjrjjaojojojNbzzrojojjNb ZzraANb-Zzaa&holotz-castle-1.3.14-src/res/theme/default/char/main/4/right.spr0000644000175000001440000000545311177007633023354 0ustar jacobusers rrzObzojNbzz Zzzoj ZNbrzrrzrr-Zrrjojrzrz-brzzjNb.bObNbzzQNbrzoj.b ZNbjzjrojNb-b.bojojOb.b-Z-Z.bObNbojoj-ZNbNbojojrojNbr Z-Z.brrrr-Z-ZzrraazrzaaAazaaaazojzojzzjNb.Zojrzzroj-ZQNbrzrrojrNbQrzrrrjz-ZjzzzzzrrzNb Zzrrzrrpjoj.b ZjzzzjOb-Z Z ZjzzzzOb Zjzzzrpj-ZIjrrNbQ RzzNb ZrrNb RQzrzpjNbjQQraQaa&a&aaa0ojrzojNbjrrNbNbojrQNbpj-ZNbojNbIjzr.b-ZNbj-ZIrrNboj.bzzojNbojzzj.bjzzzojNb-ZrrzrzzzojojrzrzrjojojA&-ZNbaaNbazrzNbrojojzzrNb.bojrrObjjjojzrzzzzrrrpjzrzojzzzjzzjrrojNbzr Z-ZzzzrzrpjojrpjNbrQ ZrjojojrrojjjojojNbrjrjzzojojjzrzzojjojojrzzzpjzzrrojzzrrrrpjrojojzaaojaaaaA&&aaaholotz-castle-1.3.14-src/res/theme/default/char/main/4/up.spr0000644000175000001440000000265511177007633022664 0ustar jacobusersrObrOb-Zrr.b R ZNb ZQrrrNb ZrojQrrrrojojr-Zojrrrroj.bojrrrrrrrrrNbrrrjrrjrrrrNbrrrObrrojrrrNbrrrojojNbrrrNbrrj Z.brrrrojNbrjIQrNbrrjNb.bojojIrojNb-Z Z ZQNbojNbNbIAI ZNbObaa9Q ZNbaaa&aObr-ZObrQ ZNb Z R.brrQojr ZNbrrroj-Zrojojrrrrrrrrroj.bojrrrrjrrjrrrNbrrrrojrrObrrrNbrrrrNbojojrrrNbrrr.b ZjrrNbrrrQIjrNbojrrrrIojoj.bNbjrrNbrNbojNbQ Z Z-ZNbojrObNb ZIAINbNb ZQ9aaaaa&aholotz-castle-1.3.14-src/res/theme/default/char/main/4/jump.spr0000644000175000001440000000145411177007633023207 0ustar jacobusersrpjrzrrrojObzrrrjojrrjjoj-ZrrojojrrrrrojNb-Z ZzrrrojojrojojObNb.b-Zrrrrroj ZNbNb-Z-ZrrrrOb-Z.b-ZzrojojNb-Z.bQrr Zoj RzrrrrrrjjjrrrpjrrrrrjrrrrojObrrjrrrjzrjNb';rjpjjrrroj&aarrrojjrrj.bE4-ZpjrNb Z-Z ZQIholotz-castle-1.3.14-src/res/theme/default/char/main/4/stop.spr0000644000175000001440000000133411177007633023216 0ustar jacobusers zObpjzzojz Z Zojrz Z.b.bojOjzzrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZrpjrObzAArA&AAA&AaaAAholotz-castle-1.3.14-src/res/theme/default/char/main/4/jumpright.spr0000644000175000001440000000145411177007633024245 0ustar jacobusersNb-Z-ZrNbObojojNb-ZzrObNbjrrrNbObzrrrrrrrrjojNbzrrrrrrrjrrjjrrrjojjrrrpjjObjrrrjrojrrrrjjrrrrjrojojojrrrrjrojNbNbzrrrjjrNbzrrrjjrArrrrpjrraarrrpjra&&rr&&aaaaholotz-castle-1.3.14-src/res/theme/default/char/main/4/left.spr0000644000175000001440000000545311177007633023171 0ustar jacobusers rrObzNbojz ZzzrNb Zojzzr-Zrrzrrzzr-bzrzrojjrrNbQzzNbOb.bNbjzjzjNb Z.bojzObojoj.b-bNbojrojojNbOb.b-Z-Z.brNbojrojojNbNb-Zrrrr.b-Z Zzaarrz-Z-ZaazrzaAaaaaojzojzNbjzz-Zojrzzroj.ZNbrojrrzrNbQzjrrrzrQ ZNbzrrzzzzzj-Z Z.bojpjrrzrrz Z Z-ZObjzzzj ZObzzzzjI-Zpjrzzzj ZNbzz RQNbrrjNbpjzrzQ RNbrrrQQjaaQa&a&aaa0rojNbojzNbNbrrj-ZpjNbQroj-Z.brzjINbojNbNbrrI-ZjNbNbojzz.boj.bjzzoj-ZNbojzzzjrrzrzzrojojzzjrzr&AojojaaNb-ZNbarzNbzojojroj.bNbrzzojjjjObrrpjrrrzzzzrzNbojrrjzzjzzzojzrzNbpjrojpjrzrzzz-Z Zrzojojjjojrrojojjr ZQrzzjrjrNbojzzrzjojojpjzzzrojojjrrzzojrrzzzojojrpjrraojaa&&Aaaaaaaholotz-castle-1.3.14-src/res/theme/default/char/main/4/down.spr0000644000175000001440000000265511177007633023207 0ustar jacobusersrObrOb-Zrr.b R ZNb ZQrrrNb ZrojQrrrrojojr-Zojrrrroj.bojrrrrrrrrrNbrrrjrrjrrrrNbrrrObrrojrrrNbrrrojojNbrrrNbrrj Z.brrrrojNbrjIQrNbrrjNb.bojojIrojNb-Z Z ZQNbojNbNbIAI ZNbObaa9Q ZNbaaa&aObr-ZObrQ ZNb Z R.brrQojr ZNbrrroj-Zrojojrrrrrrrrroj.bojrrrrjrrjrrrNbrrrrojrrObrrrNbrrrrNbojojrrrNbrrr.b ZjrrNbrrrQIjrNbojrrrrIojoj.bNbjrrNbrNbojNbQ Z Z-ZNbojrObNb ZIAINbNb ZQ9aaaaa&aholotz-castle-1.3.14-src/res/theme/default/char/main/4/slide.spr0000644000175000001440000000116411177007633023332 0ustar jacobusers @rrrojNbzojojrrrObObrzzrNbrrrjrrrrNb-Zrjrrrrjrjrjrzroj-bpjrpjzzzzojojjrojzrojzrojrjjroj Zrrojzrjjojj-Z-Zjzojojzrroj-bNb.b ZNbrrojIzrOb-bNboj-Zrrroj Zr.bojjojojrojNbNbNb&aNbholotz-castle-1.3.14-src/res/theme/default/char/main/4/jumpleft.spr0000644000175000001440000000145411177007633024062 0ustar jacobusersObNbr-Z-ZNbNbObrz-ZNbojojObNbrrrjNbojjrrrrrrrrzjjrrjrrrrrrrzpjrrrjojjrrrrjrrrjObjjjrrrrojojojojrjrrrrNbNbojrjrrrrNbrjjrrrzArjjrrrzaarrpjrrrrarpjrrrrr&&aa&&aaholotz-castle-1.3.14-src/res/theme/default/char/main/4/fall.spr0000644000175000001440000000316411177007633023152 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/default/char/main/6/0000755000175000001440000000000011177007633021504 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/main/6/dead.spr0000644000175000001440000000107411177007633023131 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/default/char/main/6/hang.spr0000644000175000001440000000107411177007633023151 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/default/char/main/6/right.spr0000644000175000001440000000246511177007633023356 0ustar jacobusers X333)k3333333)Jkk1333y)33k,c<k)J)3׽3,c33)kJ3333333łނJ3BJsœނœłJœłނނ333)k3333333)Jkk1Jmk33Q<334)3׽33333333BBł3333J3Błނނ33œłނBBނނholotz-castle-1.3.14-src/res/theme/default/char/main/6/up.spr0000644000175000001440000000246511177007633022665 0ustar jacobusers XL33333L333L33333L L3LL1Ӝ333){kk3ւ333{33J33)33sBł333k3œłނނ33JœނނBނނL33333L333L33333L L3LL1Ӝ3333{J3k3{ւ3k33333333333Bނނ33"kœłނBœނBłނނholotz-castle-1.3.14-src/res/theme/default/char/main/6/jump.spr0000644000175000001440000000107411177007633023207 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/default/char/main/6/stop.spr0000644000175000001440000000107411177007633023221 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/default/char/main/6/jumpright.spr0000644000175000001440000000107411177007633024245 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/default/char/main/6/left.spr0000644000175000001440000000246511177007633023173 0ustar jacobusers XL33333L333L33333L L3LL1Ӝ333){kk3ւ333{33J33)33sBł333k3œłނނ33JœނނBނނL33333L333L33333L L3LL1Ӝ3333{J3k3{ւ3k33333333333Bނނ33"kœłނBœނBłނނholotz-castle-1.3.14-src/res/theme/default/char/main/6/down.spr0000644000175000001440000000246511177007633023210 0ustar jacobusers XL33333L333L33333L L3LL1Ӝ333){kk3ւ333{33J33)33sBł333k3œłނނ33JœނނBނނL33333L333L33333L L3LL1Ӝ3333{J3k3{ւ3k33333333333Bނނ33"kœłނBœނBłނނholotz-castle-1.3.14-src/res/theme/default/char/main/6/slide.spr0000644000175000001440000000107411177007633023334 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/default/char/main/6/jumpleft.spr0000644000175000001440000000107411177007633024062 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/default/char/main/6/fall.spr0000644000175000001440000000107411177007633023152 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/default/char/maker/0000755000175000001440000000000011177007633021512 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/maker/1/0000755000175000001440000000000011177007633021652 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/maker/1/dead.spr0000644000175000001440000001150611177007633023300 0ustar jacobusers @ y~ jnqvpuUY "69lpUY|p333uZOOOuuu999 gi'''AA Mkkk++ j2i? M+++R777oooKKK _px,WXW  Up,+++$@6 _x O,= D [[[*EKK go9PHOCUCoooM:FPG Y8LM13H[[[7G7OPKGJF O!L GOIEP'=+5:MQIFMEIIPD1*NKL! @ae"# }ilcgos$&ccc#npLVWnruuu999 gi'''AA Mkkk++ j2i? M+++R777oooKKK _px,WXW  Up,+++$@6 _x O,= D [[[*EKK go9PHOCUCoooM:FPG Y8LM13H[[[7G7OPKGJF O!L GOIEP'=+5:MQIFMEIIPD1*NKL! @qv .0~`cWZ,-gkILMODGccc33323}zOOOuuu999 gi'''AA Mkkk++ j2i? M+++R777oooKKK _px,WXW  Up,+++$@6 _x O,= D [[[*EKK go9PHOCUCoooM:FPG Y8LM13H[[[7G7OPKGJF O!L GOIEP'=+5:MQIFMEIIPD1*NKL!holotz-castle-1.3.14-src/res/theme/default/char/maker/1/hang.spr0000644000175000001440000001150611177007633023320 0ustar jacobusers @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RF KG @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quyF7.Zk$%BB7 n&h"m62E0 4?MI82GJ>NG=#F/,<>K<=MD2+3BG2=G@@22<KV  -.LU/<V H4holotz-castle-1.3.14-src/res/theme/default/char/maker/1/right.spr0000644000175000001440000001465711177007633023532 0ustar jacobusers  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0QQW JJJ ;ttt9ZZZHHHhihhh:::mayzy>>>@MP=.M /777###(II/ <9C&( =U7$+*2G7"%( >;&6&&,2:&1+1!C A\6 $ A]qe6 @::<'''66>bbjVV_ QQ_cci VVr==S::Ff--i; ;;;JJJmmWW~"""7771199CCC**,,,ooo!!!### muFFFSSS%=.M #3###-JI/ D=C&( 9KL0$+ 2>?!"# GF8 *#/L5#C3 :)+ RC ; @'RT>)A  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0 5 vvvuu;AAA>>9lll```,.VXp:::m-<@<>>>,,,KWZ;-? /777### 0 A?4 (2<@/ 038?-$- 5A:) $'<<7) :6%!82$(# ,K\31 D][@( @::<'''66>bbjVV_ QQ_cci VVr==S::F xxx--i* xxx??[AAAooo{{yyyEEErrr$$$"""NNNdddFFF888 i u333999%93.HM("`!YN ;$Y"&^$QA 03HQRN' '33& FON60. 4NLH"2( 6I5 +%+ '/)/+ ; *9E CE=#( 8 holotz-castle-1.3.14-src/res/theme/default/char/maker/1/up.spr0000644000175000001440000000633511177007633023033 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/default/char/maker/1/jump.spr0000644000175000001440000000316411177007633023357 0ustar jacobusers @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<Mholotz-castle-1.3.14-src/res/theme/default/char/maker/1/stop.spr0000644000175000001440000000316411177007633023371 0ustar jacobusers @GGGkkkEEELLLzzzHHH^^^EITTTUFHL>>@ Xfx,,O!!!338 u|p OOO''79quyRRR000.ZkKKK+++'H4+.&B[[[111 /#:4###  -+* >>>/<0+1C>= M/;N" G6J S 2DG32> 0 ?X?  IZ@holotz-castle-1.3.14-src/res/theme/default/char/maker/1/jumpright.spr0000644000175000001440000000316411177007633024415 0ustar jacobusers @bbb///GGGOOOnnzDDGnn66~@@::E888777k55%%III hhh...{{{.h O kkkMMM@@@-o~BPAGGG{{{- EHA PPP8{}OQ>7"7JBPM>@H+:CO:M@ <* JF =B2 AI=>?H: T M2C&@&<M HI -holotz-castle-1.3.14-src/res/theme/default/char/maker/1/left.spr0000644000175000001440000001465711177007633023347 0ustar jacobusers  @,,,GGI jjtDDM (ll~ ffr``~##0rr>>g WQQ; JJJ9ttthiHHHZZZ>>>yzyam:::hhh###777/M =.@MP /II( (&C9<*+$7U= (%"7G2,&6&;&>1+:&2!C1 $6\ A6eq] A @'''::< VV_bbj66> cciQQ_VVr::F==S ;i--fWW~mmJJJ;;;9911777"""!!!ooo,,,**CCCSSSFFFum #######3M =.% /IJ- (&C=D +$0LK9 #"!?>2 #* 8FG #5L/+):3 C' @; C R A)>TR @,,,GGI jjtDDM (ll~ ffr``~ ##0rr>>g 5;uuvvv9>>AAAVXp,.```lll>>><@<-m:::###777/? ;-KWZ,,, 4?A 0  /@<2(-?830 ):A5- $7<<'$!%6:) #(2$83\K ,(@[] D1 @'''::< VV_bbj66> cciQQ_VVr ::F==S *i--xxx??[xxxyyy{{oooAAAdddNNN"""$$$rrrEEE999333u i 888FFFM.H93% NY"`!( AQ&^$$Y"; 'NRQH30 NOF& 33'HLN 4.065I 6(2"+/)/ '+% + CE9 * ; 8(#=Eholotz-castle-1.3.14-src/res/theme/default/char/maker/1/down.spr0000644000175000001440000000633511177007633023356 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/default/char/maker/1/slide.spr0000644000175000001440000001465711177007633023515 0ustar jacobusers @wwwSSSAAAccc+++hhh???AAA<<<[[^xxx$$$!!!000 Rvc3333hyr008hoooGGGG )T=PN?JPP> GOO=J- C@$@N3 P )RSBN  @444///GGGwww```EEE{{{:[[[___99{!!lW##l,,,YYd3333hO r008 i{@*$@q-6'9GL'''- x kPN[2Lms~iWY;SSS )sb Gj<{E0^V[N9,3%<IP OD+QQ>GS @+++cccAAApppAAA///sss$$$xxxVVfmUUzCCCcv$$$$ppt h3333a008r^GGGooo!#1 )TG?NP= >PPJOOG-J=$@C N@ ) P3SRNB  @ ;;;^^^oooYYY99{hYY,,,''' /2 xE SSS;\ |s E{-DZf m=Pd8OF=K holotz-castle-1.3.14-src/res/theme/default/char/maker/1/jumpleft.spr0000644000175000001440000000316411177007633024232 0ustar jacobusers @///bbbGGGnnzOOO888::E@@66~nnDDGhhh III%%55k777MMMkkk Oh.{{{...BPA~o-@@@AHE -{{{GGG7>QO}{8PPP H@>MPBJ7"@M:OC:+FJ *< I A 2B= M T:H?>= M<&@&C2-  IHholotz-castle-1.3.14-src/res/theme/default/char/maker/1/fall.spr0000644000175000001440000001150611177007633023321 0ustar jacobusers  @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @ jjj888GGGkkkEEESSSAAAtttgggLLLzzz'''~~~sssIII~~~ppp$$>"HHH^^^!!dkkkAAAQQQdPPYd{44e ^} x |9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RFKG%  @GGGkkkEEELLLzzz"HHH^^^-dPPYd nGGGGyyy22Z s}EE===eeeooo+++ x |(((FFFeee---9q|{LLLddd UUU>>>  .Zk$$$[[[AJ/ p&h"m61E7AJMI82GJ>NG9,4,<>K<=MD0D.2=G@@22<3BG  -KVU/.L<V H43holotz-castle-1.3.14-src/res/theme/default/char/random/0000755000175000001440000000000011177007633021673 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/random/2/0000755000175000001440000000000011177007633022034 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/random/2/dead.spr0000644000175000001440000002003011177007633023452 0ustar jacobusers  @+9=*9=  0*7~)7;'48-          @      '  4   %+Y$)(*  *.  ";+9=7IS  "$'*9=&)(+.=C   0*7~C*.#& "$& "$AX)7;'48-          @        $       &     +  %)+  "@ !$,TZ&)D\b"%   $'&38  ,;I2!*?*2*8>+:? :NT  (+*- *. $F</7G"-91BG&37 +.$15$'(+ %(!') "$8Kn9M@Vftefl^}MgoNipIbi9LR+:?$041BF""-1Ywiolgn]|bZyWs|]}g]{kcVt|!-0,;?;OT@U[9LR5FK8KQ,;@+:>)7;'48-          @             %       /        (7     "-< )+   )7D  "'5:  !#%'  (0%2?( +/ '*  #&   $' *:B1BM +4)8=#14 &*%)!-0!.1  =R[G^i5FQ %4FL""/3*-!,0$04-=A%( +.%(/@E 1%4%-8$*#%#&"%".2&27 $&".1 "$.H%R,;@2DI,;@,<@-)7;'48-          @                                      "         $            #        ,#'    #   $6'     #%)'+    /@E !(,".2"$#& $ " +/#/3$&".1 "$.HE&))6;(,"$&(%(  %'"!$ +/(+),(*!!      +.%26#% #/2.=A)6;'37/?D'+!          holotz-castle-1.3.14-src/res/theme/default/char/random/2/hang.spr0000644000175000001440000000316411177007633023503 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/default/char/random/2/right.spr0000644000175000001440000001150611177007633023702 0ustar jacobusers @ *9=+9=   %'7IO=Om9LR,;@8KQ5FK9LR@U[;OT,;?            @  *9=+9=*.-;?'590@E,;@ngloiYw"-1+:>9LR]|etmE\9LR)7;'48-         holotz-castle-1.3.14-src/res/theme/default/char/random/2/jump.spr0000644000175000001440000000316411177007633023541 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/default/char/random/2/stop.spr0000644000175000001440000000316411177007633023553 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/default/char/random/2/jumpright.spr0000644000175000001440000000316411177007633024577 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/default/char/random/2/left.spr0000644000175000001440000001150611177007633023517 0ustar jacobusers @+9=*9=  0*7~)7;'48-          @+9=*9=    0*7~)7;'48-      @ +9=*9=  -     holotz-castle-1.3.14-src/res/theme/default/char/random/2/down.spr0000644000175000001440000000316411177007633023535 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/default/char/random/2/slide.spr0000644000175000001440000000316411177007633023666 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/default/char/random/2/jumpleft.spr0000644000175000001440000000316411177007633024414 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/default/char/random/2/fall.spr0000644000175000001440000000316411177007633023504 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/default/char/random/5/0000755000175000001440000000000011177007633022037 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/random/5/dead.spr0000644000175000001440000001174311177007633023470 0ustar jacobusers Ӝ}]U~U0qU}Z0޺ޚxUZ cQ]ﶵqy44ΖsZQBpWySsƂEqW0sy΂114}׽{9{U]Y׽QY]ނ{Ӝ4Y00ƶyζy΂u]u׽޾8Ƃy}y΂{ulf0o~KflIKe31u-niKlr1o}o}Nu1r󞲖l}Ѕ}rT1NuNuQT}Җ.u3 `1m1uІu gJV eu111.w o ok^Mmmmu111fnmmmm*TpvnummMmo~nf~u\C ^vv~fud'>k^nvK^\HC]u~d,fhCduІO~~mmmmvO~юdmu,e,e/~u Mmuu\mmmm\eUmmE Tuu]U])MJTJTmmumUjUjTjTLeMm,e]JU\JTJT,ejUjULe\K:D]]eM\K5)MeMmMm+]MK2L\umd T UK\mm edJTJTKk\\ \Tk\jTKLDJT<LDD'32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RF KG @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quyF7.Zk$%BB7 n&h"m62E0 4?MI82GJ>NG=#F/,<>K<=MD2+3BG2=G@@22<KV  -.LU/<V H4holotz-castle-1.3.14-src/res/theme/default/char/random/3/right.spr0000644000175000001440000001465711177007633023715 0ustar jacobusers  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0QQW JJJ ;ttt9ZZZHHHhihhh:::mayzy>>>@MP=.M /777###(II/ <9C&( =U7$+*2G7"%( >;&6&&,2:&1+1!C A\6 $ A]qe6 @::<'''66>bbjVV_ QQ_cci VVr==S::Ff--i; ;;;JJJmmWW~"""7771199CCC**,,,ooo!!!### muFFFSSS%=.M #3###-JI/ D=C&( 9KL0$+ 2>?!"# GF8 *#/L5#C3 :)+ RC ; @'RT>)A  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0 5 vvvuu;AAA>>9lll```,.VXp:::m-<@<>>>,,,KWZ;-? /777### 0 A?4 (2<@/ 038?-$- 5A:) $'<<7) :6%!82$(# ,K\31 D][@( @::<'''66>bbjVV_ QQ_cci VVr==S::F xxx--i* xxx??[AAAooo{{yyyEEErrr$$$"""NNNdddFFF888 i u333999%93.HM("`!YN ;$Y"&^$QA 03HQRN' '33& FON60. 4NLH"2( 6I5 +%+ '/)/+ ; *9E CE=#( 8 holotz-castle-1.3.14-src/res/theme/default/char/random/3/up.spr0000644000175000001440000000633511177007633023216 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/default/char/random/3/jump.spr0000644000175000001440000000316411177007633023542 0ustar jacobusers @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<Mholotz-castle-1.3.14-src/res/theme/default/char/random/3/stop.spr0000644000175000001440000000316411177007633023554 0ustar jacobusers @GGGkkkEEELLLzzzHHH^^^EITTTUFHL>>@ Xfx,,O!!!338 u|p OOO''79quyRRR000.ZkKKK+++'H4+.&B[[[111 /#:4###  -+* >>>/<0+1C>= M/;N" G6J S 2DG32> 0 ?X?  IZ@holotz-castle-1.3.14-src/res/theme/default/char/random/3/jumpright.spr0000644000175000001440000000316411177007633024600 0ustar jacobusers @bbb///GGGOOOnnzDDGnn66~@@::E888777k55%%III hhh...{{{.h O kkkMMM@@@-o~BPAGGG{{{- EHA PPP8{}OQ>7"7JBPM>@H+:CO:M@ <* JF =B2 AI=>?H: T M2C&@&<M HI -holotz-castle-1.3.14-src/res/theme/default/char/random/3/left.spr0000644000175000001440000001465711177007633023532 0ustar jacobusers  @,,,GGI jjtDDM (ll~ ffr``~##0rr>>g WQQ; JJJ9ttthiHHHZZZ>>>yzyam:::hhh###777/M =.@MP /II( (&C9<*+$7U= (%"7G2,&6&;&>1+:&2!C1 $6\ A6eq] A @'''::< VV_bbj66> cciQQ_VVr::F==S ;i--fWW~mmJJJ;;;9911777"""!!!ooo,,,**CCCSSSFFFum #######3M =.% /IJ- (&C=D +$0LK9 #"!?>2 #* 8FG #5L/+):3 C' @; C R A)>TR @,,,GGI jjtDDM (ll~ ffr``~ ##0rr>>g 5;uuvvv9>>AAAVXp,.```lll>>><@<-m:::###777/? ;-KWZ,,, 4?A 0  /@<2(-?830 ):A5- $7<<'$!%6:) #(2$83\K ,(@[] D1 @'''::< VV_bbj66> cciQQ_VVr ::F==S *i--xxx??[xxxyyy{{oooAAAdddNNN"""$$$rrrEEE999333u i 888FFFM.H93% NY"`!( AQ&^$$Y"; 'NRQH30 NOF& 33'HLN 4.065I 6(2"+/)/ '+% + CE9 * ; 8(#=Eholotz-castle-1.3.14-src/res/theme/default/char/random/3/down.spr0000644000175000001440000000633511177007633023541 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/default/char/random/3/slide.spr0000644000175000001440000001465711177007633023700 0ustar jacobusers @wwwSSSAAAccc+++hhh???AAA<<<[[^xxx$$$!!!000 Rvc3333hyr008hoooGGGG )T=PN?JPP> GOO=J- C@$@N3 P )RSBN  @444///GGGwww```EEE{{{:[[[___99{!!lW##l,,,YYd3333hO r008 i{@*$@q-6'9GL'''- x kPN[2Lms~iWY;SSS )sb Gj<{E0^V[N9,3%<IP OD+QQ>GS @+++cccAAApppAAA///sss$$$xxxVVfmUUzCCCcv$$$$ppt h3333a008r^GGGooo!#1 )TG?NP= >PPJOOG-J=$@C N@ ) P3SRNB  @ ;;;^^^oooYYY99{hYY,,,''' /2 xE SSS;\ |s E{-DZf m=Pd8OF=K holotz-castle-1.3.14-src/res/theme/default/char/random/3/jumpleft.spr0000644000175000001440000000316411177007633024415 0ustar jacobusers @///bbbGGGnnzOOO888::E@@66~nnDDGhhh III%%55k777MMMkkk Oh.{{{...BPA~o-@@@AHE -{{{GGG7>QO}{8PPP H@>MPBJ7"@M:OC:+FJ *< I A 2B= M T:H?>= M<&@&C2-  IHholotz-castle-1.3.14-src/res/theme/default/char/random/3/fall.spr0000644000175000001440000001150611177007633023504 0ustar jacobusers  @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @ jjj888GGGkkkEEESSSAAAtttgggLLLzzz'''~~~sssIII~~~ppp$$>"HHH^^^!!dkkkAAAQQQdPPYd{44e ^} x |9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RFKG%  @GGGkkkEEELLLzzz"HHH^^^-dPPYd nGGGGyyy22Z s}EE===eeeooo+++ x |(((FFFeee---9q|{LLLddd UUU>>>  .Zk$$$[[[AJ/ p&h"m61E7AJMI82GJ>NG9,4,<>K<=MD0D.2=G@@22<3BG  -KVU/.L<V H43holotz-castle-1.3.14-src/res/theme/default/char/random/1/0000755000175000001440000000000011177007633022033 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/random/1/dead.spr0000644000175000001440000002320111177007633023454 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<y>>?bbֻ̘ԯk?@@>>ԯʥ^>>?yaʥ_y ^k? ##(### yy ##(@###>>? @>>?###@##( y!-!XX_#####( {\zwJS4MM{\ܧǓ~~S4>>?!zΠۼȱԶRI:0T@1$vȱ|nh^>>?!mnӵ£yI S4dhRS4J$$)###S4I^IS4J##(D6Z!###>>? @>>?######  )#S?dI=G F/Bk?O^OD-9###-*1D-@ac\lVD-9  ÒyI6Zakkk?U)#>>?O}y6+: -":yVT]C/9 \Ej^jI8Z  =+WwHқu]j=)3Og-":  +!:|[U֞)#k?[vmzX=,W|[kkG;A  E.:YkU|PprXwD-9  ^FV̕iOkk?UD-9-*,lXcJ2>=)3)#  888 @   0*-  +$@+6S7E}^n[EP~wz J8@^9L|Hh`^{_:M=)2 =)2iAWT_|LwISkUqf=R=)2 vQg[UrNB0X!29%PhCOyRm]9K+$%#$ĒxtP&4   !+fAn]|Gb@+6  y]lU@,X   <'DV|YwO2@[=MepB!2*+py[=MO2@RyxH<(P   E1CbET  @+6|Hd\gA!+   !mJ_azF0;  +$^9KTpS}oKxB.L$$=+8gCXRkYr_:M@4: F3<jBVew}PqyJd\vSkg?S=)2 =)2vQcu`}QmzGa]9K=)2 {U@JS7ES5DO2@@+6+$  @ ("-&(" ("?*5O3AZ7Hb>PlIZT7FH4>.#' ZKRS4C\7I;"/ H/;n{S4C7%. 7%.];LG-:  D(6Z7H7%..#'S4CE)7  D'5S4C(" M9C  \6I?*5 cFT^FQ  ;"/O3A.#'_>O Z7H("1$+_F];LE(6   G+8Z7H7%. 7%.S4ClzF-9 ;"/\6IS4C7%.  @holotz-castle-1.3.14-src/res/theme/default/char/random/1/hang.spr0000644000175000001440000000316411177007633023502 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>?holotz-castle-1.3.14-src/res/theme/default/char/random/1/right.spr0000644000175000001440000002320111177007633023674 0ustar jacobusers  @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/default/char/random/1/up.spr0000644000175000001440000002320111177007633023203 0ustar jacobusers  @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/default/char/random/1/jump.spr0000644000175000001440000002320111177007633023532 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/default/char/random/1/stop.spr0000644000175000001440000000316411177007633023552 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>?holotz-castle-1.3.14-src/res/theme/default/char/random/1/jumpright.spr0000644000175000001440000002320111177007633024570 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/default/char/random/1/left.spr0000644000175000001440000002320111177007633023511 0ustar jacobusers  @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/default/char/random/1/down.spr0000644000175000001440000002320111177007633023526 0ustar jacobusers  @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/default/char/random/1/slide.spr0000644000175000001440000002320111177007633023657 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/default/char/random/1/jumpleft.spr0000644000175000001440000002320111177007633024405 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/default/char/random/1/fall.spr0000644000175000001440000002320111177007633023475 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/default/char/random/4/0000755000175000001440000000000011177007633022036 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/random/4/dead.spr0000644000175000001440000001341211177007633023462 0ustar jacobusers  Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaaaaaapaahapaxaaaaaaaaaxaaahaxaaAXapaaaahaaaxaxaaaaxahaaaaaaaaaaaaaa Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaaaaaapaahapaxaaaaaaaaaxaaahaxaaAXapaa)!!!! a9IIA!)aAaaa9€rQAAAAA!b Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaaaaaapaahapaxaaaaaaaaaxaA1AIA!1`yaa!1a9a9Q`aaaZ!Z¡ajZʡʠ bI`@a`@b Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaa aapaahxA᱁aaaaaa9AQ!1Aa9QraҡҡʡrAbI@@a!bajaaaaZ 1  1 #Z#Z A铠 o`A#Z###ZAj S@Qޢr#C¢Q#Z#Z##b⚂#Z#Z#Z##cCƒC##Z#Z##ʣcC###Z#Zz"ˡºB Q@ˡ z@)!¡Axàa`Ӂ`za9 Aa9A ʡZ! a9I@Q!ZA1QAj KOɣKĬKOũ)Nhrh K)KKh' **̋ԫԋ hˋ. oݫ*JÈo-I  holotz-castle-1.3.14-src/res/theme/default/char/random/4/hang.spr0000644000175000001440000000316411177007633023505 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/default/char/random/4/right.spr0000644000175000001440000000645711177007633023715 0ustar jacobusers  aAӜaaaaaaaaaaaAxaaAa PAhAxaaaaxaaaaxaaaaaaaaAhApaa AhaaAp PApaAxaAA`AhaAxaA PA`AA`aa A` ` PA@0a A  P XAA P P PA`Aa AApAhAaaaA`AAAxAhaAaaA`AhAaaa A X XAhAaa H HA`AhAhAhA AAAAa 8ƂuAhA`Ap `8ƲAaa׽aւAp PAxA XaaxaAh XaaaaaA PaaAxaaa h Paaaaa pAhaxaA `ApApaaApAxaAAXPAxaAhAhAxa(( HAxaa08@@A`AhaaHP ` ` Xaaa` X0H `A`AxaAxAx0aaaaAaa uY΂a4E)aqUZӜAAƺւaAhApA`ApA`aAxaApaxAaaa XAxaaaxaa P XA`aaaAx @0A`ApApaA PAx X P hApaAxAh hAXA` Xaxaaxa P haa P PAhAxa 8Ƃ4xx xhphphppxhhpxXxxPXhpPPpxPh88PhpxPH@XpPPholotz-castle-1.3.14-src/res/theme/default/char/random/4/up.spr0000644000175000001440000000323511177007633023213 0ustar jacobusers  Qmk]upӜy΂]XPނxpX`xxx mkQyӜpu]PX]ނpx`Xxxxholotz-castle-1.3.14-src/res/theme/default/char/random/4/jump.spr0000644000175000001440000000134011177007633023535 0ustar jacobusers<paւu hpp p hp h hpp hppholotz-castle-1.3.14-src/res/theme/default/char/random/4/stop.spr0000644000175000001440000000316411177007633023555 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/default/char/random/4/jumpright.spr0000644000175000001440000000152411177007633024577 0ustar jacobusers y΂aaXUyahaaHAhApaXaxA@AhAxaa@AhApApA@ P PAhAxa@ PAhApaaaaxaaaaaaAhApaAhaaAp PApA`AhaAxaA PA`A` ` PA@ H H  P X H HA`Ap P P PA`A H PA`aaApAhAaaa H PaaaAxAhaAaaA`aa HaaApApApholotz-castle-1.3.14-src/res/theme/default/char/random/4/left.spr0000644000175000001440000000645711177007633023532 0ustar jacobusers  aaaӜAaaaaaaaaaAxaaaAxAh PaAaaxaaaaaaaxaaaaApAhaaaaaAxaAp PApaaAh aaA`AA` PAaAxaAhA`AA a0@A P `A` A X P aAA` P P PAAA`aaaAAhApAAAhA`aaAaAhAxAAAh X XA aaaAAhAhAhA` H H aaaAAAA  8Ƃ `ApA`Ahu׽aaA8ƂւaAx PApaxa XAaaaaa XAhaaaAxaa PAaaxAh paaaaa P haaAxApaaApAp `AaAxAhAhaAxPXAAaaAx H((aaAhA`@@80aaa X ` `PHaAxA` `H0 X`aaa0AxAxaaAa uaY΂qaE)4ӜZUAAAhaA`ApaA`ApaAaxApaAxaaAx X aaA` X Paaax0 @Axaaa PAaApApA`aAp h P XAxaax X A`AX hAhAxaa h PaaxaAxAh P P 8Ƃ4 xxphxphhhxppxxXxphXPphpPPphP88hPxpX@HPxPPholotz-castle-1.3.14-src/res/theme/default/char/random/4/down.spr0000644000175000001440000000323511177007633023536 0ustar jacobusers  Qmk]upӜy΂]XPނxpX`xxx mkQyӜpu]PX]ނpx`Xxxxholotz-castle-1.3.14-src/res/theme/default/char/random/4/slide.spr0000644000175000001440000000152411177007633023666 0ustar jacobusers  ւpx]xxpxֶh]p]8Ƃhx]X]h`ӜXpq`{phxXhhPx`XxXp`hpxxhh`xhpxxholotz-castle-1.3.14-src/res/theme/default/char/random/4/jumpleft.spr0000644000175000001440000000152411177007633024414 0ustar jacobusers y΂aXaApAhHaaahyUApApAha@aAxAhA@axaXaApAh Pa@AxAh P PA@aaaaaxaaApAhaaaAp PApaaAhA` PAaAxaAhA` H H@A P `A`ApA` H H X P aaA` P HAA` P P Paaa P HaaaAAhAp HaaA`aaAaAhAxApApaaApholotz-castle-1.3.14-src/res/theme/default/char/random/4/fall.spr0000644000175000001440000000316411177007633023506 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/default/char/random/6/0000755000175000001440000000000011177007633022040 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/char/random/6/dead.spr0000644000175000001440000002662311177007633023474 0ustar jacobusers zObpjzzojz Z Zojrz Z.b.bojOjzzrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZrpjrjrObzz Zojzpjrzrrrzrzz ZojzrojzrzObpjzzojz Z Zojrz Z.b.bojOjz6zrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-Zpjrj6rObzz Zojzpjrzrrrzrzz ZojzrojzrzOb6pjzzojz Z Zojrz Z.b.bojOjzzrNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.b6zzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZpjrjrObzz Zojzpjrzrrrzrzz ZojzrojzrzObpjzzojz Z Zojr6z Z.b.bojOj56zrNbI-Zzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-ZԓrԓObz Zojpjrzrrrzrzz ZojzrojzrzObpjzzojz Z Zojrz Z.b.bojOj[zrNbI-Zzzrzpjoj.bIP{.bzpj.brrrԓpj ZQ.b6riAQrzzroj ZzriA.bͱzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-Z:֬rԓ[Obz Zojpjrzrrrzrz ZojzrojzrzOb[pjzzojz Z Zojrz Z.bojOjͱzrւI-ZzzűrzpjojIW.bzpj.brrr֬pj ZQ.briAQrzzroj ZzriA.b[ֱzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-Z֬r׬Obz Zojpjrzrrrzrz ZojzrojzrOb6ԓzojz Z Zojr6[6z Z.bojOj[=[ֱzrIz[zpjojP{Œ6zpj.brrr֬pj ZP{.b6[ԓiAQzzroj ZriAzOb ZQrH9Ioj6zr Z Zi9 Zojzrr.b.b.bjrzzqӋ6j-Zx=łr=ł Zoj6ӓrzrrzrz6qojzrojz6rŕ~xŶz Z Zojrz Z΂ojOj׬r]IWzűzpj΂6=Wpjrr涬 Z6.b[xiAS׬z׬oj ZŶiAWޱzOb ZQrH9Ir Z Zi9 Zojzrr.b.brzzW{xxźŐju{֞ނ׬=ނxޙ ZojŜxr׬󂙽rrz׬z=WojzrojzŐr;֛łޞ{ւ֜͂׬ Zuojr^ Zނoj;^^޿3zւ׬^׬]Zξ{ւpjΑr ZZΕ^{ނiAS׬׬Ζ Z޶{׬Ob ZQ׬H9I=r Z Zi9 Zojrr.b.bαrzzW{xx޺Őju{֞ނ=xޙ Zoj=xr׬ނrrz΂z~Zւojzrojz޶ނ=;=ނ;΂tŶ;=^=u]͂;];=;=ֶ涬]=tł=~t;΂~ΕuT΂S~ֶtut׬łu׬׬Z{ւ{=޶~~{=u~{ւ;׬׬=׬׬;=΂ނ=;=ނ;΂tŶ;=^=u]͂;];=;=ֶ涬]=tł=~t;΂~ΕuT΂S~ֶtut׬łu׬׬Z{ւ{=޶~~{=u~{ւ;׬׬=׬׬;=΂^=^=;Ż΂;~~żނ;^^]~;~~ޞ]~͂=]]ł]ނ޾]ł~ł޿łżނ]΂=΂]ł=~]~^͂~^^^=ނ^^=^=^^^=ނނ==^^=ނ^޻޻ނ]֛=^޻޻ނֻ޼=ޞނ=ނ^^ނ^]^==]^=^=<=~====]===^]]==]^^]==]]]^^=^]=^==]^^=<====]=]^]]]^=^]^ holotz-castle-1.3.14-src/res/theme/default/char/random/6/hang.spr0000644000175000001440000000126411177007633023506 0ustar jacobusers zzjzzrrzzjojzzrrojNbzzrNbzzzrojzrojjrNbzrrojojojjojOb Zzzzrrr Z-ZjjojNbzzzroj-ZNbNbNbzzojOb-Z.bNbrrNbObNbojjzrojoj Z ZzjNbNbojNb ZQ ZjzzrojojNb ZNbjpjobjzzrjojrojojrrrrojojzzojjrjjaojojojNbzzrojojojojjNb ZzrrrrojObNb-ZzzrrojNb.bzzholotz-castle-1.3.14-src/res/theme/default/char/random/6/right.spr0000644000175000001440000000545311177007633023712 0ustar jacobusers rrzObzojNbzz Zzzoj ZNbrzrrzrr-Zrrjojrzrz-brzzjNb.bObNbzzQNbrzoj.b ZNbjzjrojNb-b.bojojOb.b-Z-Z.bObNbojoj-ZNbNbojojrojNbr Z-Z.brrr Zr-Z-ZzrrNbrrzIojrzObjrQQrzzQ.bojz Z-Z ZrzojzojzzjNb.Zojrzzroj-ZQNbrzrrojrNbQrzrrrjz-ZjzzzzzrrzNb Zzrrzrrpjoj.b ZjzzzjOb-Z Z ZjzzzzOb Zjzzzrpj-ZIjrrNbQ RzzNb ZrrNb RQzrzpjNbrjjQQrzrr-Zojoj-ZQzzzojojNb.b Rzzrr R R Z Zrrojz0ojrzojNbjrrNbNbojrQNbpj-ZNbojNbIjzr.b-ZNbj-ZIrrNboj.bzzojNbojzzj.bjzzzojNb-ZrrzrzzzojojrzrzrjNbzrojojpjrrrrOb-ZNbojojrrrrrojNbrzr-ZrrojrzrzNbrojojzzrNb.bojrrObjjjojzrzzzzrrrpjzrzojzzzjzzjrrojNbzr Z-ZzzzrzrpjojrpjNbrQ ZrjojojrrojjjojojNbrjrjzzojojjzrzzojjojojrzzzpjzzrrojzzrrzrrrpjrojojzpjzrrojojojzojjrrzrrojNbNbzzpjojzpjojObojrrojrholotz-castle-1.3.14-src/res/theme/default/char/random/6/up.spr0000644000175000001440000000265511177007633023222 0ustar jacobusers rObrOb-Zrr.b R ZNb ZQrrrNb ZrojQrrrrojojr-Zojrrrroj.bojrrrrrrrrrNbrrrjrrjrrrrNbrrrObrrojrrrNbrrrojojNbrrrNbrrj Z.brrrrojNbrjIQrNbrrjNb.bojojIrojNb-Z Z ZQNbojNbrNbIAI ZNbObojNb ZQ9Q ZNb ZNbNbNbojNbojojNbObr-ZObrQ ZNb Z R.brrQojr ZNbrrroj-Zrojojrrrrrrrrroj.bojrrrrjrrjrrrNbrrrrojrrObrrrNbrrrrNbojojrrrNbrrr.b ZjrrNbrrrQIjrNbojrrrrIojoj.bNbjrrNbrNbojNbQ Z Z-ZNbojrObNb ZIAINbrNb ZQ9Q ZNbojNbNb ZNbojNbNbojojholotz-castle-1.3.14-src/res/theme/default/char/random/6/jump.spr0000644000175000001440000000145411177007633023545 0ustar jacobusers rpjrzrrrojObzrrrjojrrjjoj-ZrrojojrrrrrojNb-Z ZzrrrojojrojojObNb.b-Zrrrrroj ZNbNb-Z-ZrrrrOb-Z.b-ZzrojojNb-Z.bQrr Zoj RzrrrrrrjjjrrrpjrrrrrjrrrrojObrrjrrrjzrjNbojrjpjjrrrojzrrojrrrojjQrrj.b-Z-ZpjrNb Z-Z ZQIholotz-castle-1.3.14-src/res/theme/default/char/random/6/stop.spr0000644000175000001440000000133411177007633023554 0ustar jacobuserszObpjzzojz Z Zojrz Z.b.bojOjzzrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZrpjrjrObzz Zojzpjrzrrrzrzz Zojzrojzrholotz-castle-1.3.14-src/res/theme/default/char/random/6/jumpright.spr0000644000175000001440000000145411177007633024603 0ustar jacobusers Nb-Z-ZrNbObojojNb-ZzrObNbjrrrNbObzrrrrrrrrjojNbzrrrrrrrjrrjjrrrjojjrrrpjjObjrrrjrojrrrrjjrrrrjrojojojrrrrjrojNbNbzrrrjjrNb.bNbzrrrjjrObOb-ZzrrrrpjrrojOb-Z-ZzrrrrpjrNbNbzrrrrrrrrrrrrrjholotz-castle-1.3.14-src/res/theme/default/char/random/6/left.spr0000644000175000001440000000545311177007633023527 0ustar jacobusers rrObzNbojz ZzzrNb Zojzzr-Zrrzrrzzr-bzrzrojjrrNbQzzNbOb.bNbjzjzjNb Z.bojzObojoj.b-bNbojrojojNbOb.b-Z-Z.brNbojrojojNbNb-Zr Zrrr.b-Z ZzrrNbrrz-Z-ZrjObzrojIzzrQQzoj.bQr Z-Z ZojzojzNbjzz-Zojrzzroj.ZNbrojrrzrNbQzjrrrzrQ ZNbzrrzzzzzj-Z Z.bojpjrrzrrz Z Z-ZObjzzzj ZObzzzzjI-Zpjrzzzj ZNbzz RQNbrrjNbpjzrzQ RNbrr-ZrrzrQQjjrojzzzQ-Zojojrrzz R.bNbojzojrr Z Z R R0rojNbojzNbNbrrj-ZpjNbQroj-Z.brzjINbojNbNbrrI-ZjNbNbojzz.boj.bjzzoj-ZNbojzzzjrrzrzzrojojzzrzNbjrzrrrrpjojojrrojojNb-ZObrNbojrrr-ZrzrrojrrrzNbzojojroj.bNbrzzojjjjObrrpjrrrzzzzrzNbojrrjzzjzzzojzrzNbpjrojpjrzrzzz-Z Zrzojojjjojrrojojjr ZQrzzjrjrNbojzzrzjojojpjzzzrojojjrrzzojrrzzpjzojojrpjrrrzrrjojzojojojrrzojpjzzNbNbojrrzrojrrojObojpjzholotz-castle-1.3.14-src/res/theme/default/char/random/6/down.spr0000644000175000001440000000265511177007633023545 0ustar jacobusers rObrOb-Zrr.b R ZNb ZQrrrNb ZrojQrrrrojojr-Zojrrrroj.bojrrrrrrrrrNbrrrjrrjrrrrNbrrrObrrojrrrNbrrrojojNbrrrNbrrj Z.brrrrojNbrjIQrNbrrjNb.bojojIrojNb-Z Z ZQNbojNbrNbIAI ZNbObojNb ZQ9Q ZNb ZNbNbNbojNbojojNbObr-ZObrQ ZNb Z R.brrQojr ZNbrrroj-Zrojojrrrrrrrrroj.bojrrrrjrrjrrrNbrrrrojrrObrrrNbrrrrNbojojrrrNbrrr.b ZjrrNbrrrQIjrNbojrrrrIojoj.bNbjrrNbrNbojNbQ Z Z-ZNbojrObNb ZIAINbrNb ZQ9Q ZNbojNbNb ZNbojNbNbojojholotz-castle-1.3.14-src/res/theme/default/char/random/6/slide.spr0000644000175000001440000000116411177007633023670 0ustar jacobusers @rrrojNbzojojrrrObObrzzrNbrrrjrrrrNb-Zrjrrrrjrjrjrzroj-bpjrpjzzzzojojjrojzrojzrojrjjroj Zrrojzrjjojj-Z-Zjzojojzrroj-bNb.b ZNbrrojIzrOb-bNboj-Zrrroj Zrj.bojjojojrojNbzr.bNbNbjoj-ZNb.bholotz-castle-1.3.14-src/res/theme/default/char/random/6/jumpleft.spr0000644000175000001440000000145411177007633024420 0ustar jacobusers ObNbr-Z-ZNbNbObrz-ZNbojojObNbrrrjNbojjrrrrrrrrzjjrrjrrrrrrrzpjrrrjojjrrrrjrrrjObjjjrrrrojojojojrjrrrrNbNbojrjrrrrNb.bNbrjjrrrz-ZObObrjjrrrz-Z-ZObojrrpjrrrrzNbNbrpjrrrrzrrrrrrzrrrrrjrrholotz-castle-1.3.14-src/res/theme/default/char/random/6/fall.spr0000644000175000001440000000316411177007633023510 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/default/contfloor/0000755000175000001440000000000011177007633021503 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/contfloor/2/0000755000175000001440000000000011177007633021644 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/contfloor/2/c.tga0000644000175000001440000000014011177007633022556 0ustar jacobusers 3H7N0C.A4J3G1E/B7N.B,>.A5L1E2F0CTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/cr.tga0000644000175000001440000000014011177007633022740 0ustar jacobusers ):,>+-@)-A.B'.A3G*:TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/c1.tga0000644000175000001440000000014011177007633022637 0ustar jacobusers   --@&#0,7N -/C1F:R1E.B2G;TTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/c3.tga0000644000175000001440000000014011177007633022641 0ustar jacobusers 1E -& .B/C#02G1F, -;T:R7N-@TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/cd.tga0000644000175000001440000000013611177007633022727 0ustar jacobusers   #*;$+&63H3I/B+<3H6M/BTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/s2.tga0000644000175000001440000000030011177007633022656 0ustar jacobusers  )9   -%  .A,>(8 -$#$2,>2F . 3H6L5J4I0D'6&6(8*;8O)92F (9.D(;*<-BTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/cl.tga0000644000175000001440000000014011177007633022732 0ustar jacobusers (88O1E 1E5K!.1E3I ):6L2FTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/cdr.tga0000644000175000001440000000014011177007633023104 0ustar jacobusers 0G4H 1?0D;R >P'2/B0C2H5I;R1D;S6NTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/s6.tga0000644000175000001440000000030611177007633022670 0ustar jacobusers  1E7N*; 6L5K1E 3I1E)9/C1F! 4K6N!.1F6L,> /C/B,= /C-@/C -0D/C3H2H/C0E 2G.A#22G$3'TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/c7.tga0000644000175000001440000000014011177007633022645 0ustar jacobusers -@7N:R;T -,1F2G#0/C.B & -1ETRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/cur.tga0000644000175000001440000000016011177007633023127 0ustar jacobusers  :R/B/D0F1C0C;Q3H:R2G =P 0?6M4I&1TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/sv.tga0000644000175000001440000000027511177007633022775 0ustar jacobusers  /C6M7M9Q3H7N0C.A*<2F4I-@ -A3I3H7M4J3G1E/B-@1E2G3H4J3I1E7N.B,>.A.B/D/C /B0D/C3I5L1E2F0C/B3I4H*:TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/s8.tga0000644000175000001440000000035311177007633022674 0ustar jacobusers   1E6L3I/C4K1F/C/C0D2H2G7N5K1E1F6N6L/B-@/C.A2G *;1E)9!!.,>,=/C3H0E#2$3       - 'TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/cu.tga0000644000175000001440000000013711177007633022751 0ustar jacobusers .A/C(:.B"0#2+<!'!/ TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/sh.tga0000644000175000001440000000030711177007633022753 0ustar jacobusers  -@3H/C*:4I2G/C4H2F1E/D3I*<-@.B/B.A/B.A0C0C1E,>2F7N3G.B1E3H4J7N5L9Q7M7N3I7M3H1E/C6M3I0D/C-A4J/BTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/s4.tga0000644000175000001440000000030611177007633022666 0ustar jacobusers   +=?Y2F%43H0C !.6M9Q&6,>0D,8O0D 3G1E $3(8""0-? -8O0C0D-?)+<8O#0D-@3GTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/cul.tga0000644000175000001440000000016011177007633023121 0ustar jacobusers  6M:R1C:R4I2G0C/B&1 =P;Q/D 0?3H0FTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/i.tga0000644000175000001440000000073611177007633022577 0ustar jacobusers  5K,?*</B-?-@-?0C5L-@):2G3I1E+>.B4J-A3H.B-@ /C1E-?-@1E1F.A3I0D-?2F1E.@,>2G*<-A3I/C1E2F3H 2G4I2H8P5L2G2H7N5J1E0D3H 7N3H0D.A/C1E0D2F/C0E4J6M 3I2H1F0D-?+<-?0D.A3H6L5J.@2F/C);*<+=+>3I4I4J '8*<-?0D,>/B*;)90C/C3G4H /B.A/B6K1D0C/C.A5K6L4I0C 1E0D.A4I2G0D3I.B6M5K/C0D 7N7N2G.A4J5K6M2G2F3H5K;TTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/2/c9.tga0000644000175000001440000000014011177007633022647 0ustar jacobusers ;T2G.B1E:R1F/C -7N,#0&-@ - TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/0000755000175000001440000000000011177007633021645 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/contfloor/3/c.tga0000644000175000001440000000014011177007633022557 0ustar jacobusers 3H7N0C.A4J3G1E/B7N.B,>.A5L1E2F0CTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/cr.tga0000644000175000001440000000014011177007633022741 0ustar jacobusers ):,>+-@)-A.B'.A3G*:TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/c1.tga0000644000175000001440000000014011177007633022640 0ustar jacobusers   --@&#0,7N -/C1F:R1E.B2G;TTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/c3.tga0000644000175000001440000000014011177007633022642 0ustar jacobusers 1E -& .B/C#02G1F, -;T:R7N-@TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/cd.tga0000644000175000001440000000013611177007633022730 0ustar jacobusers   #*;$+&63H3I/B+<3H6M/BTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/s2.tga0000644000175000001440000000030011177007633022657 0ustar jacobusers  )9   -%  .A,>(8 -$#$2,>2F . 3H6L5J4I0D'6&6(8*;8O)92F (9.D(;*<-BTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/cl.tga0000644000175000001440000000014011177007633022733 0ustar jacobusers (88O1E 1E5K!.1E3I ):6L2FTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/cdr.tga0000644000175000001440000000014011177007633023105 0ustar jacobusers 0G4H 1?0D;R >P'2/B0C2H5I;R1D;S6NTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/s6.tga0000644000175000001440000000030611177007633022671 0ustar jacobusers  1E7N*; 6L5K1E 3I1E)9/C1F! 4K6N!.1F6L,> /C/B,= /C-@/C -0D/C3H2H/C0E 2G.A#22G$3'TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/c7.tga0000644000175000001440000000014011177007633022646 0ustar jacobusers -@7N:R;T -,1F2G#0/C.B & -1ETRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/cur.tga0000644000175000001440000000016011177007633023130 0ustar jacobusers  :R/B/D0F1C0C;Q3H:R2G =P 0?6M4I&1TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/sv.tga0000644000175000001440000000027511177007633022776 0ustar jacobusers  /C6M7M9Q3H7N0C.A*<2F4I-@ -A3I3H7M4J3G1E/B-@1E2G3H4J3I1E7N.B,>.A.B/D/C /B0D/C3I5L1E2F0C/B3I4H*:TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/s8.tga0000644000175000001440000000035311177007633022675 0ustar jacobusers   1E6L3I/C4K1F/C/C0D2H2G7N5K1E1F6N6L/B-@/C.A2G *;1E)9!!.,>,=/C3H0E#2$3       - 'TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/cu.tga0000644000175000001440000000013711177007633022752 0ustar jacobusers .A/C(:.B"0#2+<!'!/ TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/sh.tga0000644000175000001440000000030711177007633022754 0ustar jacobusers  -@3H/C*:4I2G/C4H2F1E/D3I*<-@.B/B.A/B.A0C0C1E,>2F7N3G.B1E3H4J7N5L9Q7M7N3I7M3H1E/C6M3I0D/C-A4J/BTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/s4.tga0000644000175000001440000000030611177007633022667 0ustar jacobusers   +=?Y2F%43H0C !.6M9Q&6,>0D,8O0D 3G1E $3(8""0-? -8O0C0D-?)+<8O#0D-@3GTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/cul.tga0000644000175000001440000000016011177007633023122 0ustar jacobusers  6M:R1C:R4I2G0C/B&1 =P;Q/D 0?3H0FTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/i.tga0000644000175000001440000000074111177007633022574 0ustar jacobusers  5K,?*</B-?-@-?0C5L-@):2G3I1E+>.B4J-A3H.B-@ /C1E-?-@/B*;)9@R 6I3G4H /B.A:LAU1D0C/C.A5K6L4I0C 1E0D.A4I2G0D3I.B6M5K/C0D 7N7N2G.A4J5K6M2G2F3H5K;TTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/3/c9.tga0000644000175000001440000000014011177007633022650 0ustar jacobusers ;T2G.B1E:R1F/C -7N,#0&-@ - TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/0000755000175000001440000000000011177007633021643 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/contfloor/1/c.tga0000644000175000001440000000007411177007633022563 0ustar jacobusers TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/cr.tga0000644000175000001440000000014011177007633022737 0ustar jacobusers TTTTTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/c1.tga0000644000175000001440000000014011177007633022636 0ustar jacobusers ˵ˢiQ.i.TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/c3.tga0000644000175000001440000000014011177007633022640 0ustar jacobusers i.Q.iTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/cd.tga0000644000175000001440000000007411177007633022727 0ustar jacobusers TTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/s2.tga0000644000175000001440000000007411177007633022665 0ustar jacobusers TTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/cdl.tga0000644000175000001440000000014111177007633023076 0ustar jacobusers  yEyTETRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/cl.tga0000644000175000001440000000014011177007633022731 0ustar jacobusers TTTTTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/cdr.tga0000644000175000001440000000012511177007633023106 0ustar jacobusers EyTyETRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/s6.tga0000644000175000001440000000031011177007633022662 0ustar jacobusers  TTTTTTTTTTTTTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/c7.tga0000644000175000001440000000014011177007633022644 0ustar jacobusers i.Q.ˢi˵TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/cur.tga0000644000175000001440000000014111177007633023125 0ustar jacobusers  ETyEyTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/sv.tga0000644000175000001440000000007411177007633022771 0ustar jacobusers TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/s8.tga0000644000175000001440000000012011177007633022663 0ustar jacobusers TTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/cu.tga0000644000175000001440000000010011177007633022736 0ustar jacobusers TTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/sh.tga0000644000175000001440000000013411177007633022750 0ustar jacobusers  TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/s4.tga0000644000175000001440000000031011177007633022660 0ustar jacobusers  TTTTTTTTTTTTTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/cul.tga0000644000175000001440000000014111177007633023117 0ustar jacobusers  EyTyETRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/i.tga0000644000175000001440000000013411177007633022566 0ustar jacobusers TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/contfloor/1/c9.tga0000644000175000001440000000014011177007633022646 0ustar jacobusers .i.QiTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/ladder/0000755000175000001440000000000011177007633020731 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/ladder/2/0000755000175000001440000000000011177007633021072 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/ladder/2/ladder.tga0000644000175000001440000000135311177007633023024 0ustar jacobusers 1: M\x%1:F&YN1 "(=m-U[gamugfbG^=QP. @pJjQ[073::Lft6=&+bo" MX17drH07MX  yJ:ANY8PNX7 9mOsnUm6h6f4rThXXb/\!:0@nJ^P@E/3 Hp3:&+ft.3:A-3dr`l-3"'hu]k"'1Ddr [g 1Cq-DCLWaYdYen|zCeGz  =jBicpGP8@AJF[ '/UNM^hd ' '=mTj 'ftN[bo" j|etL[8DH07u I[O_s_>I=Hct\k8Pw '=q0:#'/=I[.7@nHp*3ftdr,2-4`lhu '7 =,3bq ' dr'/O_fmBO>.?HQ{ "U-DCLwdnprjbeU]Gz,4Fs-g %l7@?HyctWdR_TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/ladder/1/0000755000175000001440000000000011177007633021071 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/ladder/1/ladder.tga0000644000175000001440000000142011177007633023016 0ustar jacobusers 6:bldnU\r} #pz),$(_h {!@M=D9>48FN!/>IYb *X69FNVPXdngqLVZt$W 7~,j5:  IfE 6CgB&G@E!ai#)!JQr|v,7z  q! 0c"F$'CJBH>C/QC ',NSx_gmxyOV#&-KC 6]y1K ,ly37t~-6hr+0^h27mxMdOW  /HM| VrBn2P$(0427NUV_Ya:oB Xw@r`pxmw|\e16+/NVIi~y AGs q}TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/narrative/0000755000175000001440000000000011177007633021471 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/narrative/1/0000755000175000001440000000000011177007633021631 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/narrative/1/2.tga0000644000175000001440000000233411177007633022471 0ustar jacobusers  _]\Z}_]\Z}_]\Z}_]\Z}_]\Z}{{{{{{{{{{z{{z{{z{{z{{z{{^\\~\^\\~\^\\~\^\\~\^\\~\AY`C\cAY`C\cAY`C\cAY`C\cAY`C\c#04#14$14#14#04#14$14#14#04#14$14#14#04#14$14#14#04#14$14#14/AE/AF0AE/AE/AF0AE/AE/AF0AE/AE/AF0AE/AE/AF0AE;RV;RW:QW;RW;RV;RW:QW;RW;RV;RW:QW;RW;RV;RW:QW;RW;RV;RW:QW;RWGbiGbhFahGbiGbhFahGbiGbhFahGbiGbhFahGbiGbhFahGbiSrzSryRrzSrzSryRrzSrzSryRrzSrzSryRrzSrzSryRrzSrz^^^^^^^^^^jjjjjjjjjjjjjjjjjjjjvvvvvvvvvvTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/narrative/1/3.tga0000644000175000001440000000215311177007633022471 0ustar jacobusers  !$   *9=>U\D^d=U[>TZ/AF _]\Z}8MS*;A!#+>AA[b\\\\~\~Kho{{mfY{kuzz{z{kz{{z {z{z{zz^\\~\\\~\\~\\\~{AY`C\cC]cC\cC]cC\c C]cC\cD^dD^e\\\z{ #04#14$14#14$04#14$04C]eA[`=T[\/AE/AF0AE/AF0AE/BE/AF/AE0AE/AE/AF=TZ>UZ;RV;RW:QW;RW;QW;RW;QW"$GbiGbhFahGbiGbhFbhGbhGahGaiGbhGahGbhFahSrzSryRrzSrzRrySrzRqzRrzSrzE^e.@D^^^^_[JgoBZa jjjjkjkjjjjcNktvvvvvvvvvE_eUu}dQpxIfnoTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/narrative/1/1.tga0000644000175000001440000000215311177007633022467 0ustar jacobusers  !$ /AF>TZ=U[D^d>U\*9=  Kho\~\~\ \\A[b+>A!#*;A8MSZ}\]_k{z{zzukY{fm{{ zz{z{z{z{{z{\~\\\~\\~\\\~\^ {z\\\D^eD^dC\cC]cC\cC]cC\cC]cC\cAY`\=T[A[`C]e$04#14$04#14$14#14#04>UZ=TZ/AF/AE0AE/AE/AF/BE0AE/AF0AE/AF/AE"$;QW;RW;QW;RW:QW;RW;RVFahGbhGahGbhGaiGahGbhFbhGbhGbiFahGbhGbi.@DE^eSrzRrzRqzSrzRrySrzRrzSrySrzBZaJgo[_^^^^ NktcjjjjkjkjjjjUu}E_evvvvvvvvvIfnQpxdoTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/narrative/1/6.tga0000644000175000001440000000125611177007633022477 0ustar jacobusers  ui]ui]ui]uf u eZ|NluTu}uuf7MSui]ui]ui]m4INKhoZ|u4INui\vi]TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/narrative/1/4.tga0000644000175000001440000000125611177007633022475 0ustar jacobusers  ]iu]iu]iu fu ueZ|NluTu}u7MSfu]iu]iu]iu4INmKhoZ|4INu\iu]ivTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/narrative/1/7.tga0000644000175000001440000000215311177007633022475 0ustar jacobusers  oIfnQpxdUu}E_evvvvvvvvv NktcjjjjkjkjjjjBZaJgo[_^^^^.@DE^eSrzRrzRqzSrzRrySrzRrzSrySrzFahGbhGahGbhGaiGahGbhFbhGbhGbiFahGbhGbi"$;QW;RW;QW;RW:QW;RW;RV>UZ=TZ/AF/AE0AE/AE/AF/BE0AE/AF0AE/AF/AE\=T[A[`C]e$04#14$04#14$14#14#04 {z\\\D^eD^dC\cC]cC\cC]cC\cC]cC\cAY`{\~\\\~\\~\\\~\^ zz{z{z{z{{zk{z{zzukY{fm{{Kho\~\~\ \\A[b+>A!#*;A8MSZ}\]_ /AF>TZ=U[D^d>U\*9=  !$TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/narrative/1/5.tga0000644000175000001440000000022011177007633022464 0ustar jacobusers  TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/narrative/1/8.tga0000644000175000001440000000233411177007633022477 0ustar jacobusers  vvvvvvvvvvjjjjjjjjjjjjjjjjjjjj^^^^^^^^^^SrzSryRrzSrzSryRrzSrzSryRrzSrzSryRrzSrzSryRrzSrzGbiGbhFahGbiGbhFahGbiGbhFahGbiGbhFahGbiGbhFahGbi;RV;RW:QW;RW;RV;RW:QW;RW;RV;RW:QW;RW;RV;RW:QW;RW;RV;RW:QW;RW/AE/AF0AE/AE/AF0AE/AE/AF0AE/AE/AF0AE/AE/AF0AE#04#14$14#14#04#14$14#14#04#14$14#14#04#14$14#14#04#14$14#14AY`C\cAY`C\cAY`C\cAY`C\cAY`C\c^\\~\^\\~\^\\~\^\\~\^\\~\z{{z{{z{{z{{z{{{{{{{{{{{{_]\Z}_]\Z}_]\Z}_]\Z}_]\Z}TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/narrative/1/9.tga0000644000175000001440000000215311177007633022477 0ustar jacobusers  odQpxIfnvvvvvvvvvE_eUu} jjjjkjkjjjjcNkt^^^^_[JgoBZaSrzSryRrzSrzRrySrzRqzRrzSrzE^e.@DGbiGbhFahGbiGbhFbhGbhGahGaiGbhGahGbhFah;RV;RW:QW;RW;QW;RW;QW"$/AE/AF0AE/AF0AE/BE/AF/AE0AE/AE/AF=TZ>UZ#04#14$14#14$04#14$04C]eA[`=T[\AY`C\cC]cC\cC]cC\c C]cC\cD^dD^e\\\z{ ^\\~\\\~\\~\\\~{z{{z {z{z{zz{{mfY{kuzz{z{k _]\Z}8MS*;A!#+>AA[b\\\\~\~Kho   *9=>U\D^d=U[>TZ/AF!$TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/object/0000755000175000001440000000000011177007633020744 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/object/2/0000755000175000001440000000000011177007633021105 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/object/2/normal.spr0000644000175000001440000001017411177007633023126 0ustar jacobusers  @ @@n@ @ w w w@@Gn@@@`on@@@@@@@@@@ @ @@n@ @ ww w w@'gn@@@`on@@@@@@@@@@ @ @@n@ @ ww w w@@gn@@@`on@@@@@@@@@@ @ @@n@ @ w w w@@gn@@@`on@@@@@@@@@@ @ @@n@ @ w w w@@gn@@@`on@@@@@'@@@@@ @ @@n@ @ w w w@@gn@@@`on@@@@@@@@@@ @ @@nע@ @ w w w@@gn@@@`on@@@@@@@@@@@ @@n@ @ w w w@@gn@@@`on@@'@@@@@@@@ @@n@ @ w w w@@gn@@@`o'n@@@@@@@@@@holotz-castle-1.3.14-src/res/theme/default/object/2/acquired.spr0000644000175000001440000001210411177007633023426 0ustar jacobusers  A AE)e)E)A ae)D5>5E) AE)11+111a E)5>515~e)a a11113D5>D1E)AAe)$D>116>>d?d?E) Ae)$w~>6e)e)5>>d?E) Ae)䆄>D51a AE)e)e)E)A E)d??d?>5D5E) AA E)d???>5e)AAe)d?d?1E)AAE)E)a  aa B(BB aBMVhMBa BIJR(LRRIJ aBVVhURhUBa IJRRRLUVHIJB BHH_RiJHV__h_hWBa BHHVHV(B!(BVV_hWBa BVUIJAB(B(BB aBhW_h_VVMBa aa aBhW__VVB BhWhWIJB BBa aa   !RZR! !R fveR !R cMkdmkmk c! RKnvmmkm,R! ! cmkmkmk m nvl cR! !Rkl,wMk,cn,w,wwoR !Rk,nnZ1ZKnv,woR !R,v n c$!a!RZZR! RowwvLn fR  RowwvKnR! !Roo cR! !RR!  AAAE),cmk,cE)AAe),cN~~,cAE),cs/}se)A,cn~//O,ce)AAe)so}Oos,cE)AAE),cnoO{OO,cAE),cnOφ~Mk9Mkn~O,cAE),cOOs1E),cmkmk,cE)A,cN~,cAA,cn~,cE)AAE),cs,cE)AAE),c,ce)AAAA!E)!Aa9q9AA!90S!A9449a!ҞS4s09!Aa94443ӦS9Aa90sӜss!a90s0R0ҞSs!A90sSӦB9qq9A!󧳧S󦲞!A!E)E)!A!SҞ09AA909aa99!AA!!aae)1e)aIJ4IJaae)RvӜe)aIJӜU׽vURe)Ӝ6vRe)aRUvUӜIJaIJז׽Vֿe)IJVVMk6ve)aIJvURIJ44IJae)ֿv6Ӝe)ae)11e)ae)v6IJaaIJ󜶿UӜIJIJRe)aae)e)1B1ZU׽UZ1 cXϙ8U1ZUYyy c1UXϙ9y9Ϲ c1 cyyyYϙUZZYxϹ׹U1Zuyxϖ{XϙϹU1ZuߙY c!ZU׽׽UZ1UיyXU11BB11UיXuZZuUZZUU c111 IJRIJ s8ƚ8ƎsIJ{YΛ8IJ s8|<<{ IJ8ƛ: 0-yxb\VT՜}0- Qُpلm?آp۩ k.<~(E *0cg2B1Ead+0+/ts9797rt*0TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/rope/2/middle.tga0000644000175000001440000000015411177007633022537 0ustar jacobusers 63e^d_e^d_63TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/default/rope/1/0000755000175000001440000000000011177007633020603 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/default/rope/1/top.tga0000644000175000001440000000076011177007633022105 0ustar jacobusers /,RL7<|~(r{/, $!0- mR`l'$ ;6'{taѺ)T_|5G> $!}sT+6NH8ijA;+~GGG^V?  ž /+x*(!22/woXx40)A<+ʷ b|Z3/"1,!θ@:*a݇ f]DgLE3;8(✘|`A;+_X@72$ٕzmePQJ6tƽfXRD 5: 6; =A EJ gpox qzTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/bar/3/0000755000175000001440000000000011177007633020602 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/bar/3/bar.tga0000644000175000001440000000131411177007633022042 0ustar jacobusers  '_ɂ۫Yɂ٨@~Yȁz@~RR}Cj2l4h5a+cx$W۫'_ɂ۫Yɂ٨@~Yȁz@~RR}Cj2l4h5a+cx$W۫'_ɂ۫Yɂ٨@~Yȁz@~RR}Cj2l4h5a+cx$W۫'_ɂ۫Yɂ٨TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/bar/1/0000755000175000001440000000000011177007633020600 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/bar/1/bar.tga0000644000175000001440000000115711177007633022045 0ustar jacobusers 9F`؉V[7BBP#ShV~K4>GV&\X\~K4@FU%LShuG9F@N"PQ|uG;H ;G u6QuuG=J 9E~Dd[Z>L!4@~DtKT>K!6BP|E}T=J 1<P|?~W=J -8yE|=]=J +4o<|I}T?L!*3o<|K}T=J!-8v?WQxL6A 2=_OX~K.7 3?WUXP/: 8DVehP2= 7D~WUhP1< 8D}TZh~K5A *3|K\|w@6BTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/bar/4/0000755000175000001440000000000011177007633020603 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/bar/4/bar.tga0000644000175000001440000000132611177007633022046 0ustar jacobusers   &CR%_}hq7\~ 0x#$Ed6@Vm@~Y|b0jBx|1^mJu!T۫a@ɂ۫Yɂ٨@~Yȁz@~RR}Cj2l4h5a+cx$W۫'_ɂ۫Yɂ٨@~Yȁz@~RR}Cj2l4h5a+cx$W۫TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/bar/6/0000755000175000001440000000000011177007633020605 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/bar/6/bar.tga0000644000175000001440000000111011177007633022037 0ustar jacobusers  TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/floor/0000755000175000001440000000000011177007633021015 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/floor/8/0000755000175000001440000000000011177007633021164 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/floor/8/floor.tga0000644000175000001440000000233211177007633023002 0ustar jacobusers       '#.)#-)" *& ,'!1,&3.'.)#!  !'#.)#94,B;2<6-@:1>80G@6LE:E>53.'"  "0+$>8/B<3LE:XOCUMARJ?QI>WOC]TG[RFXOCKD:<6-.)# ($;5-MF;XOCf\NshXg]Oe[MqfVncT\SFYQDPH=94,#!.)#>80RJ?\SFj`Q|p_wd~r`zn]wducj_Q]TG`WIXOC>80# %!1,&>80NG80LE:bYKuiYuckucncTuiYtiYlaRf\NTL@G@6<6--)"%!.*#@:1RJ?qfVsb{o^zg zn]vkZrgWodTe[MXOCTL@IB81,&#,'!B;2_VHxl[|p_odTym\vdwk[j`QlaR|p_shX\SFYQDMF;.)# # 1,&IB7f\N~r`xfxl[vkZ{o^shX_VHtiYshX`WITL@G@6+'! ($;5-PH=f\N~ram{hxl[rgWlaR^UH`WI_VH`WIRJ?C=3+'! # ;5-IB8YQDtiY~kosblaRg]OkaRh^PPH=NG4SK?kaR{o^uc|p_wk[tiYqfVj_QQI>PH=e[M`WIB;2#  3.'@:1PH=XOCWOC YQDlaRj`QTL@VMAZQE[RF_VHQI>/+$ .)#94,E>4C=3<6-94,>80QI>PH=;5-<6-MF;RJ?MF;@:1($  '#1,&93+<6-94,5/(2-&72*94,5/(4/(B;2JC9B<35/(($  "($/+$3.'+'!&")%.*#/+$0+$94,@9193+,'!"   " #&"%"&"($*& &"     TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/floor/2/0000755000175000001440000000000011177007633021156 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/floor/2/floor.tga0000644000175000001440000000313011177007633022771 0ustar jacobusers     !$!! $!"   " ($&1--:5,95 )50+730>92@;-:5 )&   # )&&1--:59ICASM;LE?RK=OIFZSKaYDXQ2@;!+(! !!+(/=8=NHATMKaYVofTlcQh`Pg^Vof\vmZtjVofJ`X;LE-:5'$# '2.:KELbZVofdvqexcvolZukXqhNe]9IC",( )&-:5=OIQh`Zuki|z|xh{\vm_zpVof=OI#-)$/+0>9=OIMc[Vofb~ty~r~ui|ZukNe]:KE&1-#-)/=8=OIKaYa}rslsrj~dvSkbEZR;LE,95$/+.;6?RKQh`o~yxtpmcvVofSkbH]U0>9 ",(+73ASM]xnvzmwui|j~zqZukXqhLbZ-:5 #-)0>9G\Udv|vtyq]xnrq_zpSkbEZR*72 '2.:KENe]dv|vpj~]wn_zp]xn_zpQh`BUN*72#-):KEH]UXqhr~j~exi}gzNe]Mc[cv_zpG\U+73  '$4C=CWPRiai}yzuroh{Pg^Ne]cv_zpASM#-)'$2@;?RKNe]Vof Xqhj~i|SkbTmdXriZtj]xnPg^.<7 $!-:59ICCWPBUN;LE9IC=OIPg^Ne]:KE;LELbZQh`LbZ?RK(3/  &1-0>98HB;LE9IC4C=1?:7FA9IC4C=3B=ASMI^VATM4C='2.!  " !+('2..<72@;*72&0,(40.;6.<7/=89IC?QJ8HB+73!+(    ($!+('$ ",(&0,%0,&0,(3/)50&0,'$    TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/floor/5/0000755000175000001440000000000011177007633021161 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/floor/5/floor.tga0000644000175000001440000000233211177007633022777 0ustar jacobusers       $'#*."*- &*!(,&-1'/3#*.!  !$'#*.,592=B-7<1<@0:>6BG:FL5@E'/3"  "$,0/9>3=B:FLCQXAOU?LR>KQCQWGV]FT[CQX:FK-7<#*. %(-6;;HMCQXN^fXjsO_gM]eVhqTfnFU\DSY=JP,59 #!#*.0:>?LRFU\Qbj_s|dy`t~]qzdycxQbjGV]IY`CQX0:>!#"%&-10:>:FLK[bYlucxkcxTfnYluYktRdlN^f@NT6AG-7<"*-"%#+.1<@?LRVhqbv^r{g} ]qzZmvWjrTfoM]eCQX@NT8DI&-1 #!(,2=BHX_[ox_s|Tfo\pydy[nwQbjRdl_s|XjsFU\DSY;HM#*. !#&-17CIN^f`t~f{[oxZmv^r{XjsHX_YktXjsIY`@NT6AG!(+ %(-6;=JPN^fau~mh~[oxWjrRdlHW^IY`HX_IY`?LR3>C!(+ !#-6;8DIDSYYktkobvRdlO_gRckPah=JPKQ=JPM]eIY`2=B!# '/31<@=JPCQXCQW DSYRdlQbj@NTAOVESZFT[HX_>KQ$,/ #*.,594?E3>C-7<,590:>>KQ=JP-6;-7<;HM?LR;HM1<@%(  $'&-1+59-7<,59(15&.2*37,59(15(042=B9DJ3=B(15%(  "%($,/'/3!(+#&&)#+.$,/$,0,591;@+59!(,"  "  ##&#%#&%( &*#&   TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/floor/7/0000755000175000001440000000000011177007633021163 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/floor/7/floor.tga0000644000175000001440000000233211177007633023001 0ustar jacobusers       '#.)#-)" *& ,'!1,&3.'.)#!  !'#.)#94,B;2<6-@:1>80G@6LE:E>53.'"  "0+$>8/B<3LE:XOCUMARJ?QI>WOC]TG[RFXOCKD:<6-.)# ($;5-MF;XOCf\NshXg]Oe[MqfVncT\SFYQDPH=94,#!.)#>80RJ?\SFj`Q|p_wd~r`zn]wducj_Q]TG`WIXOC>80# %!1,&>80NG80LE:bYKuiYuckucncTuiYtiYlaRf\NTL@G@6<6--)"%!.*#@:1RJ?qfVsb{o^zg zn]vkZrgWodTe[MXOCTL@IB81,&#,'!B;2_VHxl[|p_odTym\vdwk[j`QlaR|p_shX\SFYQDMF;.)# # 1,&IB7f\N~r`xfxl[vkZ{o^shX_VHtiYshX`WITL@G@6+'! ($;5-PH=f\N~ram{hxl[rgWlaR^UH`WI_VH`WIRJ?C=3+'! # ;5-IB8YQDtiY~kosblaRg]OkaRh^PPH=NG4SK?kaR{o^uc|p_wk[tiYqfVj_QQI>PH=e[M`WIB;2#  3.'@:1PH=XOCWOC YQDlaRj`QTL@VMAZQE[RF_VHQI>/+$ .)#94,E>4C=3<6-94,>80QI>PH=;5-<6-MF;RJ?MF;@:1($  '#1,&93+<6-94,5/(2-&72*94,5/(4/(B;2JC9B<35/(($  "($/+$3.'+'!&")%.*#/+$0+$94,@9193+,'!"   " #&"%"&"($*& &"     TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/floor/3/0000755000175000001440000000000011177007633021157 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/floor/3/floor.tga0000644000175000001440000000315011177007633022774 0ustar jacobusers    (((,,,((("""&&&,,,)))""" %%%)))///;;;EEECCC ???AAAIIIKKKDDD222 ###+++222;;;DDDVVVaaaYYY___]]]jjjpppfffKKK444''''''444HHH[[[cccppp~~~zzzxxxoooYYYDDD... +++<<>>FFFGGGHHHUUU^^^TTTAAA444### &&&///333... 555999888999===???999...$$$   %%%###  TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/floor/1/0000755000175000001440000000000011177007633021155 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/floor/1/floor.tga0000644000175000001440000000310611177007633022773 0ustar jacobusers          ")""1 , /$$5&&7""1"   ")""1++?22H--A00F..C55L99S44K&&7$   $##3..C22H99SBB_@@]>>Z==XBB_FFeEEcBB_99R--A""1  *,,@99SBB_MMoWW~NNqLLnUU{SSxEEcDDb<>ZEEcPPt^^cc``\\ccccPPsFFeIIiBB_..C% '$$5..C;;UBB_KKl^^iiaaXXaaeeZZPPtEEc<>ZUU{aa^^ff \\ZZVV|TTyLLnBB_??[77O$$5% /22HGGg[[^^TTy\\ccZZPPtRRv^^WW~EEcDDb99S""1 %$$577OMMo``ee[[ZZ^^WW~GGgXXWW~IIi??[55L . *,,@<>Z22H . %,,@77ODDbXXjjnnaaRRvNNqPPtOOr<>ZPPt^^cc^^ZZXXUU{PPs==X<>Z99S00F+  )$$5**=--A++?''9$$5))<++?''9''822H77P22H''9*  $*""2&&7 .)+""2##3++?//D**= /$   "$ %)+,)        TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/floor/9/0000755000175000001440000000000011177007633021165 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/floor/9/floor.tga0000644000175000001440000000234411177007633023006 0ustar jacobusers        &"  "#**"    #-./0/,+,/,) (2'@*D(A*E(A!703 6/*&,3( 5&.!6+G.L,H*F%=&? -,)*01/)/2%=*E+F-J(B3 "8&' 6#:4/##&,*%= )D+F"7 $:!74!7-  +10#9)D"$< 5)2%> 50*#'--./',*2!6 52 54-')'#(0/#:$;)D'?'@$<%<#9$<&?%=$<!6 5/,   %! &,!7&>22/% !%&013.&!  "+-"%, 5  +1*-$$%#"/!6#: !*!6!7"8/,  -.'0#:#9$9 )//0# ,.0 3%;!62+*)/ 6&>!7"82( ! &!$%.1,+/ 4$=&@#: 5/$  !"%/1,%% !"*%#)(   %&$ !$$!        #    TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/floor/4/0000755000175000001440000000000011177007633021160 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/floor/4/floor.tga0000644000175000001440000000313411177007633022777 0ustar jacobusers     !$ ! $ "  "($1,&:4-93, 5/)72+>80@:2:4-)%   # )% 1,&:4-IA9SKALD;RI?OG=ZQFaWKXOD@:2+'!! !+'!=6/NF=TLAaWKodVlaTh^Qg\PocVvj\thZodV`VJLD;:4-'## 2-'KC:bXLodVtdquesco}luiZqfXe[NIA9,(")% :4-OG=h^QuiZyiz|xxhvj\zm_odVOG=-(#/*$>80OG=cYMocV~qby~r~uyiuiZe[NKC:1,&-(#=6/OG=aWK}pas}lsr{jtdk`SZPELD;93,/*$;5.RI?h^Qo~yxtp~mscodVk`S]SH>80 ,("72+SKAxl]vz~mwuyi{jzquiZqfXbXL:4- -(#>80\SGtd|vtyqxl]rqzm_k`SZPE71* 2-'KC:e[Ntd|vp{jwk]zm_xl]zm_h^QULB71*-(#KC:]SHqfXr~{jueziwge[NcYMsczm_\SG72+  '#C<4WNCi^Rziyzuroxhg\Pe[Nsczm_SKA-(#'#@:2RI?e[NodVocV qfX{jyik`SmbTrfXthZxl]g\P<6. $ :4-IA9WNCULBLD;IA9OG=g\Pe[NKC:LD;bXLh^QbXLRI?3.( 1,&>80HA8LD;IA9C<4?91F?7IA9C<4B;3SKA^TITLAC<42-'!  "+'!2-'<6.@:271*0+&4/(;5.<6.=6/IA9QH?HA872++'!    ($+'!'# ,("0+&0+%0+&3.(5/)0+&'#      TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/floor/10/0000755000175000001440000000000011177007633021235 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/floor/10/floor.tga0000644000175000001440000000234411177007633023056 0ustar jacobusers  111000///)))''',,,***""" &&&"""!$579:::888444 666555,,,///444...#%%   #&*38=JSY^^^RRRPPP TTTVVVSSSWWW\\\PPP6:>!$''')+->ABU\b|wwwpppsssvvvuuuooocfiMPR'(,111789FHJbhnzzztwwein57; 111;;;UUU {{{qqqeeeBBB  ---888[[[{{{iii[[[CCC###222>>>hhh }}}hhhUUUCCC"""000>>>fff sssVVV===###$$$333ZZZccc???### (((KKKMMM%%% !!<<:6GB:LG5E@'3/"   " $0,/>93B>:LGCXRAUO?RM>QKCWQG]WF[UCXR:KF-<7#.+ (%-;7;MHCXRNf_XskOg`Me^VqiTnfF\VDYS=PJ,95# !#.+0>:?RMF\VQjc_|tdz`~u]zqdzcxQjbG]WI`YCXR0>:#!%"&1.0>:::LGKb[YumcxkcxTnfYumYtlRldNf_@TO6GB-<7"-*%"#.+1@!+( #!-;78IDDYSYtlkobwRldOg`RkdPha=PJQK=PJMe^I`Y2B=#! '3/1@<=PJCXRCWQ DYSRldQjc@TOAVPEZTF[UH_X>QK$/, #.+,954E@3C>-<7,950>:>QK=PJ-;7-<7;MH?RM;MH1@<(%   '$&1.+95-<7,95(51&2.*74,95(51(402B=9JE3B>(51(%  " (%$/,'3/!+(&#)&#.+$/,$0,,951@;+95!,)"   "  # &#%#&#(% *'&#    TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/char/0000755000175000001440000000000011177007633020611 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/chaser/0000755000175000001440000000000011177007633022056 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/chaser/1/0000755000175000001440000000000011177007633022216 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/chaser/1/dead.spr0000644000175000001440000001341211177007633023642 0ustar jacobusers  Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaaaaaapaahapaxaaaaaaaaaxaaahaxaaAXapaaaahaaaxaxaaaaxahaaaaaaaaaaaaaa Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaaaaaapaahapaxaaaaaaaaaxaaahaxaaAXapaa)!!!! a9IIA!)aAaaa9€rQAAAAA!b Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaaaaaapaahapaxaaaaaaaaaxaA1AIA!1`yaa!1a9a9Q`aaaZ!Z¡ajZʡʠ bI`@a`@b Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaa aapaahxA᱁aaaaaa9AQ!1Aa9QraҡҡʡrAbI@@a!bajaaaaZ 1  1 #Z#Z A铠 o`A#Z###ZAj S@Qޢr#C¢Q#Z#Z##b⚂#Z#Z#Z##cCƒC##Z#Z##ʣcC###Z#Zz"ˡºB Q@ˡ z@)!¡Axàa`Ӂ`za9 Aa9A ʡZ! a9I@Q!ZA1QAj KOɣKĬKOũ)Nhrh K)KKh' **̋ԫԋ hˋ. oݫ*JÈo-I  holotz-castle-1.3.14-src/res/theme/dungeons/char/chaser/1/hang.spr0000644000175000001440000000316411177007633023665 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/dungeons/char/chaser/1/right.spr0000644000175000001440000000645711177007633024075 0ustar jacobusers  aAӜaaaaaaaaaaaAxaaAa PAhAxaaaaxaaaaxaaaaaaaaAhApaa AhaaAp PApaAxaAA`AhaAxaA PA`AA`aa A` ` PA@0a A  P XAA P P PA`Aa AApAhAaaaA`AAAxAhaAaaA`AhAaaa A X XAhAaa H HA`AhAhAhA AAAAa 8ƂuAhA`Ap `8ƲAaa׽aւAp PAxA XaaxaAh XaaaaaA PaaAxaaa h Paaaaa pAhaxaA `ApApaaApAxaAAXPAxaAhAhAxa(( HAxaa08@@A`AhaaHP ` ` Xaaa` X0H `A`AxaAxAx0aaaaAaa uY΂a4E)aqUZӜAAƺւaAhApA`ApA`aAxaApaxAaaa XAxaaaxaa P XA`aaaAx @0A`ApApaA PAx X P hApaAxAh hAXA` Xaxaaxa P haa P PAhAxa 8Ƃ4xx xhphphppxhhpxXxxPXhpPPpxPh88PhpxPH@XpPPholotz-castle-1.3.14-src/res/theme/dungeons/char/chaser/1/up.spr0000644000175000001440000000323511177007633023373 0ustar jacobusers  Qmk]upӜy΂]XPނxpX`xxx mkQyӜpu]PX]ނpx`Xxxxholotz-castle-1.3.14-src/res/theme/dungeons/char/chaser/1/jump.spr0000644000175000001440000000134011177007633023715 0ustar jacobusers<paւu hpp p hp h hpp hppholotz-castle-1.3.14-src/res/theme/dungeons/char/chaser/1/stop.spr0000644000175000001440000000316411177007633023735 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/dungeons/char/chaser/1/jumpright.spr0000644000175000001440000000152411177007633024757 0ustar jacobusers y΂aaXUyahaaHAhApaXaxA@AhAxaa@AhApApA@ P PAhAxa@ PAhApaaaaxaaaaaaAhApaAhaaAp PApA`AhaAxaA PA`A` ` PA@ H H  P X H HA`Ap P P PA`A H PA`aaApAhAaaa H PaaaAxAhaAaaA`aa HaaApApApholotz-castle-1.3.14-src/res/theme/dungeons/char/chaser/1/left.spr0000644000175000001440000000645711177007633023712 0ustar jacobusers  aaaӜAaaaaaaaaaAxaaaAxAh PaAaaxaaaaaaaxaaaaApAhaaaaaAxaAp PApaaAh aaA`AA` PAaAxaAhA`AA a0@A P `A` A X P aAA` P P PAAA`aaaAAhApAAAhA`aaAaAhAxAAAh X XA aaaAAhAhAhA` H H aaaAAAA  8Ƃ `ApA`Ahu׽aaA8ƂւaAx PApaxa XAaaaaa XAhaaaAxaa PAaaxAh paaaaa P haaAxApaaApAp `AaAxAhAhaAxPXAAaaAx H((aaAhA`@@80aaa X ` `PHaAxA` `H0 X`aaa0AxAxaaAa uaY΂qaE)4ӜZUAAAhaA`ApaA`ApaAaxApaAxaaAx X aaA` X Paaax0 @Axaaa PAaApApA`aAp h P XAxaax X A`AX hAhAxaa h PaaxaAxAh P P 8Ƃ4 xxphxphhhxppxxXxphXPphpPPphP88hPxpX@HPxPPholotz-castle-1.3.14-src/res/theme/dungeons/char/chaser/1/down.spr0000644000175000001440000000323511177007633023716 0ustar jacobusers  Qmk]upӜy΂]XPނxpX`xxx mkQyӜpu]PX]ނpx`Xxxxholotz-castle-1.3.14-src/res/theme/dungeons/char/chaser/1/slide.spr0000644000175000001440000000152411177007633024046 0ustar jacobusers  ւpx]xxpxֶh]p]8Ƃhx]X]h`ӜXpq`{phxXhhPx`XxXp`hpxxhh`xhpxxholotz-castle-1.3.14-src/res/theme/dungeons/char/chaser/1/jumpleft.spr0000644000175000001440000000152411177007633024574 0ustar jacobusers y΂aXaApAhHaaahyUApApAha@aAxAhA@axaXaApAh Pa@AxAh P PA@aaaaaxaaApAhaaaAp PApaaAhA` PAaAxaAhA` H H@A P `A`ApA` H H X P aaA` P HAA` P P Paaa P HaaaAAhAp HaaA`aaAaAhAxApApaaApholotz-castle-1.3.14-src/res/theme/dungeons/char/chaser/1/fall.spr0000644000175000001440000000316411177007633023666 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/dungeons/char/guest/0000755000175000001440000000000011177007633021740 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/guest/1/0000755000175000001440000000000011177007633022100 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/guest/1/dead.spr0000644000175000001440000001150611177007633023526 0ustar jacobusers @ y~ jnqvpuUY "69lpUY|p333uZOOOuuu999 gi'''AA Mkkk++ j2i? M+++R777oooKKK _px,WXW  Up,+++$@6 _x O,= D [[[*EKK go9PHOCUCoooM:FPG Y8LM13H[[[7G7OPKGJF O!L GOIEP'=+5:MQIFMEIIPD1*NKL! @ae"# }ilcgos$&ccc#npLVWnruuu999 gi'''AA Mkkk++ j2i? M+++R777oooKKK _px,WXW  Up,+++$@6 _x O,= D [[[*EKK go9PHOCUCoooM:FPG Y8LM13H[[[7G7OPKGJF O!L GOIEP'=+5:MQIFMEIIPD1*NKL! @qv .0~`cWZ,-gkILMODGccc33323}zOOOuuu999 gi'''AA Mkkk++ j2i? M+++R777oooKKK _px,WXW  Up,+++$@6 _x O,= D [[[*EKK go9PHOCUCoooM:FPG Y8LM13H[[[7G7OPKGJF O!L GOIEP'=+5:MQIFMEIIPD1*NKL!holotz-castle-1.3.14-src/res/theme/dungeons/char/guest/1/hang.spr0000644000175000001440000001150611177007633023546 0ustar jacobusers @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RF KG @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quyF7.Zk$%BB7 n&h"m62E0 4?MI82GJ>NG=#F/,<>K<=MD2+3BG2=G@@22<KV  -.LU/<V H4holotz-castle-1.3.14-src/res/theme/dungeons/char/guest/1/right.spr0000644000175000001440000001465711177007633023760 0ustar jacobusers  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0QQW JJJ ;ttt9ZZZHHHhihhh:::mayzy>>>@MP=.M /777###(II/ <9C&( =U7$+*2G7"%( >;&6&&,2:&1+1!C A\6 $ A]qe6 @::<'''66>bbjVV_ QQ_cci VVr==S::Ff--i; ;;;JJJmmWW~"""7771199CCC**,,,ooo!!!### muFFFSSS%=.M #3###-JI/ D=C&( 9KL0$+ 2>?!"# GF8 *#/L5#C3 :)+ RC ; @'RT>)A  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0 5 vvvuu;AAA>>9lll```,.VXp:::m-<@<>>>,,,KWZ;-? /777### 0 A?4 (2<@/ 038?-$- 5A:) $'<<7) :6%!82$(# ,K\31 D][@( @::<'''66>bbjVV_ QQ_cci VVr==S::F xxx--i* xxx??[AAAooo{{yyyEEErrr$$$"""NNNdddFFF888 i u333999%93.HM("`!YN ;$Y"&^$QA 03HQRN' '33& FON60. 4NLH"2( 6I5 +%+ '/)/+ ; *9E CE=#( 8 holotz-castle-1.3.14-src/res/theme/dungeons/char/guest/1/up.spr0000644000175000001440000000633511177007633023261 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/dungeons/char/guest/1/jump.spr0000644000175000001440000000316411177007633023605 0ustar jacobusers @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<Mholotz-castle-1.3.14-src/res/theme/dungeons/char/guest/1/stop.spr0000644000175000001440000000316411177007633023617 0ustar jacobusers @GGGkkkEEELLLzzzHHH^^^EITTTUFHL>>@ Xfx,,O!!!338 u|p OOO''79quyRRR000.ZkKKK+++'H4+.&B[[[111 /#:4###  -+* >>>/<0+1C>= M/;N" G6J S 2DG32> 0 ?X?  IZ@holotz-castle-1.3.14-src/res/theme/dungeons/char/guest/1/jumpright.spr0000644000175000001440000000316411177007633024643 0ustar jacobusers @bbb///GGGOOOnnzDDGnn66~@@::E888777k55%%III hhh...{{{.h O kkkMMM@@@-o~BPAGGG{{{- EHA PPP8{}OQ>7"7JBPM>@H+:CO:M@ <* JF =B2 AI=>?H: T M2C&@&<M HI -holotz-castle-1.3.14-src/res/theme/dungeons/char/guest/1/left.spr0000644000175000001440000001465711177007633023575 0ustar jacobusers  @,,,GGI jjtDDM (ll~ ffr``~##0rr>>g WQQ; JJJ9ttthiHHHZZZ>>>yzyam:::hhh###777/M =.@MP /II( (&C9<*+$7U= (%"7G2,&6&;&>1+:&2!C1 $6\ A6eq] A @'''::< VV_bbj66> cciQQ_VVr::F==S ;i--fWW~mmJJJ;;;9911777"""!!!ooo,,,**CCCSSSFFFum #######3M =.% /IJ- (&C=D +$0LK9 #"!?>2 #* 8FG #5L/+):3 C' @; C R A)>TR @,,,GGI jjtDDM (ll~ ffr``~ ##0rr>>g 5;uuvvv9>>AAAVXp,.```lll>>><@<-m:::###777/? ;-KWZ,,, 4?A 0  /@<2(-?830 ):A5- $7<<'$!%6:) #(2$83\K ,(@[] D1 @'''::< VV_bbj66> cciQQ_VVr ::F==S *i--xxx??[xxxyyy{{oooAAAdddNNN"""$$$rrrEEE999333u i 888FFFM.H93% NY"`!( AQ&^$$Y"; 'NRQH30 NOF& 33'HLN 4.065I 6(2"+/)/ '+% + CE9 * ; 8(#=Eholotz-castle-1.3.14-src/res/theme/dungeons/char/guest/1/down.spr0000644000175000001440000000633511177007633023604 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/dungeons/char/guest/1/slide.spr0000644000175000001440000001465711177007633023743 0ustar jacobusers @wwwSSSAAAccc+++hhh???AAA<<<[[^xxx$$$!!!000 Rvc3333hyr008hoooGGGG )T=PN?JPP> GOO=J- C@$@N3 P )RSBN  @444///GGGwww```EEE{{{:[[[___99{!!lW##l,,,YYd3333hO r008 i{@*$@q-6'9GL'''- x kPN[2Lms~iWY;SSS )sb Gj<{E0^V[N9,3%<IP OD+QQ>GS @+++cccAAApppAAA///sss$$$xxxVVfmUUzCCCcv$$$$ppt h3333a008r^GGGooo!#1 )TG?NP= >PPJOOG-J=$@C N@ ) P3SRNB  @ ;;;^^^oooYYY99{hYY,,,''' /2 xE SSS;\ |s E{-DZf m=Pd8OF=K holotz-castle-1.3.14-src/res/theme/dungeons/char/guest/1/jumpleft.spr0000644000175000001440000000316411177007633024460 0ustar jacobusers @///bbbGGGnnzOOO888::E@@66~nnDDGhhh III%%55k777MMMkkk Oh.{{{...BPA~o-@@@AHE -{{{GGG7>QO}{8PPP H@>MPBJ7"@M:OC:+FJ *< I A 2B= M T:H?>= M<&@&C2-  IHholotz-castle-1.3.14-src/res/theme/dungeons/char/guest/1/fall.spr0000644000175000001440000001150611177007633023547 0ustar jacobusers  @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @ jjj888GGGkkkEEESSSAAAtttgggLLLzzz'''~~~sssIII~~~ppp$$>"HHH^^^!!dkkkAAAQQQdPPYd{44e ^} x |9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RFKG%  @GGGkkkEEELLLzzz"HHH^^^-dPPYd nGGGGyyy22Z s}EE===eeeooo+++ x |(((FFFeee---9q|{LLLddd UUU>>>  .Zk$$$[[[AJ/ p&h"m61E7AJMI82GJ>NG9,4,<>K<=MD0D.2=G@@22<3BG  -KVU/.L<V H43holotz-castle-1.3.14-src/res/theme/dungeons/char/static/0000755000175000001440000000000011177007633022100 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/static/8/0000755000175000001440000000000011177007633022247 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/static/8/dead.spr0000644000175000001440000000527611177007633023704 0ustar jacobusers 0aE)u84]ZZe)U l(BY1Qmk!R yAaR4Be) !{9IJ9 ]u<$!,c cmksRs8E)U9BAR]Ae)!y cRy4 cyΦ1iJmkUA{9%9%2ғ! 'ܪ=|M\9%9%>{9%9%=|-ם'ܪ'ܪ 'ܩ=|M\9%9%9%9%9%9%=|=|=|2ғ'ܪ!'ܩ=|M\9%9%9%9%<9%9%9%9%9%9%9%=|2ғ-ם=|M\9%9%9%Hf9%9%9%9%=|El9%9%9%9%9%9%' 9%9%9%Hf&ݬ9%9%9%9%9%9%9%9%Ic9%9%9%9%6ϋ9%9%QT9%9%&ݬ9%9%9%9%L^9%9%9%9%&ݬ9%9%BqL^9%9%9%9%9%&ݬ9%9%;ʀ6ΊGgQT9%9%9%9%9%<9%9%/՘/՘GhQT9%9%&k9%9%9%6ΊGhQT9%9%9%9%9%>{Gg9%9%9%9%9%9%9%9%;ʀ7ΉGg9%9%9%9%;ʀ(ۧ/՘Gg9%9%9%;ʀ /՘GgQT9%9%<9%9%9%/՘/ՙGhQT9%9%9%9%9%9%/՘/ՙGhQT9%9%&ݬ9%9%9%9%*٤/ՙGhQT9%9%Hf9%9%&ݬ9%9%9%/՘(ۧ;ʀ9%9%9%9%9%9%9%9%<9%9%;ʀ9%9%9%9%9%( 9%9%9%9%9%9%9%9%9%9%>{9%9%9%9%9%9%9%9%<9%9%9%9%9%9%9%&ݬ9%9%>{9%9%9%9%9%9%<9%9%9%>{9%9%&k̋9%9%9%9%9%9%̋9%9%9%9%̋9%9%9%9%9%&k9%9%9%9%&ݬ<9%>{9%9%9%9%9%>{9%9%9%>{9%9%<9%9%,؟>{9%9%9%9%9%9%9%9%9%9%9%9%Hf9%9%9%9%9%Hf9%9%9%9%9%9%9%( @ 9%9%9%9%%n%n9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%9%%n9%9%/I9%9%+X͍%n9%9%9%%n9%9%͍%n9%9%%n9%9%%n%n9%9%+X9%9%+X9%9%9%9%9%9%/I9%9%9%2>9%9%9%469%9%9%9%9%9%9%9%9%9%9%9%9%9%( 9%9%9%9%9%'e9%9%9%9%9%'e!|'e9%9%9%9%!|ӛӛ9%9%9%ӛ9%9%'e9%9%9%9%9%9%9%9%9%holotz-castle-1.3.14-src/res/theme/dungeons/char/static/8/jumpright.spr0000644000175000001440000000006611177007633025010 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/static/8/left.spr0000644000175000001440000000006611177007633023731 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/static/8/down.spr0000644000175000001440000000006611177007633023746 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/static/8/slide.spr0000644000175000001440000000006611177007633024077 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/static/8/jumpleft.spr0000644000175000001440000000006611177007633024625 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/static/8/fall.spr0000644000175000001440000000006611177007633023715 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/static/2/0000755000175000001440000000000011177007633022241 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/static/2/dead.spr0000644000175000001440000000527611177007633023676 0ustar jacobusers 0aE)u84]ZZe)U l(BY1Qmk!R yAaR4Be) !{9IJ9 ]u<$!,c cmksRs8E)U9BAR]Ae)!y cRy4 cyΦ1iJmkUA32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RF KG @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quyF7.Zk$%BB7 n&h"m62E0 4?MI82GJ>NG=#F/,<>K<=MD2+3BG2=G@@22<KV  -.LU/<V H4holotz-castle-1.3.14-src/res/theme/dungeons/char/static/2/right.spr0000644000175000001440000001465711177007633024121 0ustar jacobusers  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0QQW JJJ ;ttt9ZZZHHHhihhh:::mayzy>>>@MP=.M /777###(II/ <9C&( =U7$+*2G7"%( >;&6&&,2:&1+1!C A\6 $ A]qe6 @::<'''66>bbjVV_ QQ_cci VVr==S::Ff--i; ;;;JJJmmWW~"""7771199CCC**,,,ooo!!!### muFFFSSS%=.M #3###-JI/ D=C&( 9KL0$+ 2>?!"# GF8 *#/L5#C3 :)+ RC ; @'RT>)A  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0 5 vvvuu;AAA>>9lll```,.VXp:::m-<@<>>>,,,KWZ;-? /777### 0 A?4 (2<@/ 038?-$- 5A:) $'<<7) :6%!82$(# ,K\31 D][@( @::<'''66>bbjVV_ QQ_cci VVr==S::F xxx--i* xxx??[AAAooo{{yyyEEErrr$$$"""NNNdddFFF888 i u333999%93.HM("`!YN ;$Y"&^$QA 03HQRN' '33& FON60. 4NLH"2( 6I5 +%+ '/)/+ ; *9E CE=#( 8 holotz-castle-1.3.14-src/res/theme/dungeons/char/static/2/up.spr0000644000175000001440000000633511177007633023422 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/dungeons/char/static/2/jump.spr0000644000175000001440000000316411177007633023746 0ustar jacobusers @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<Mholotz-castle-1.3.14-src/res/theme/dungeons/char/static/2/stop.spr0000644000175000001440000003012511177007633023755 0ustar jacobusers   9s{R 9B9RRRmkRMkMkRRZs{ZBIJiJ1mkӜq0s{iJBZQiJ1mk cq{qӜ{,cmkmk{qqqssZZ0ӜU,cMkӜ{mks09Mk11,cMks4ӜӜq{s{siJR(BiJ,cU4{mk,cZs ca cs cZRRZmk{qR9ZuRQs  9s{R 9B9RRRmkRMkMkRRZs{ZBIJiJ1mkӜq0s{iJBZQiJ1mk cq{qӜ{,cmkmk{qqqssZZ0ӜU,cMkӜ{mks09Mk11,cMks4ӜӜq{s{siJR(BiJ,cU4{mk,cZs ca cs cZRRZmk{q zR#Zu #Qs  9s{R 9B9RRRmkRMkMkRRZs{ZBIJiJ1mkӜq0s{iJBZQiJ1mk cq{qӜ{,cmkmk{qqqssZ [|0ӜU,cMkӜ{mks09Mkl*R4ncs4ӜӜq{s{siJ0;{ :,cU4{mk,cZs caH-[sLX$ZRRZmk{q CJ:Zuh JQs  9s{R 9B9RRRmkRMkMkRRZs{ZBIJiJ1mkӜq0s{iJBZQiJ1mk c1tq{qӜ{,cmkmk{qqqssZCuTRtӜU,cMkӜ{mks09Mk11pS7"7JBPM>@H+:CO:M@ <* JF =B2 AI=>?H: T M2C&@&<M HI -holotz-castle-1.3.14-src/res/theme/dungeons/char/static/2/left.spr0000644000175000001440000001465711177007633023736 0ustar jacobusers  @,,,GGI jjtDDM (ll~ ffr``~##0rr>>g WQQ; JJJ9ttthiHHHZZZ>>>yzyam:::hhh###777/M =.@MP /II( (&C9<*+$7U= (%"7G2,&6&;&>1+:&2!C1 $6\ A6eq] A @'''::< VV_bbj66> cciQQ_VVr::F==S ;i--fWW~mmJJJ;;;9911777"""!!!ooo,,,**CCCSSSFFFum #######3M =.% /IJ- (&C=D +$0LK9 #"!?>2 #* 8FG #5L/+):3 C' @; C R A)>TR @,,,GGI jjtDDM (ll~ ffr``~ ##0rr>>g 5;uuvvv9>>AAAVXp,.```lll>>><@<-m:::###777/? ;-KWZ,,, 4?A 0  /@<2(-?830 ):A5- $7<<'$!%6:) #(2$83\K ,(@[] D1 @'''::< VV_bbj66> cciQQ_VVr ::F==S *i--xxx??[xxxyyy{{oooAAAdddNNN"""$$$rrrEEE999333u i 888FFFM.H93% NY"`!( AQ&^$$Y"; 'NRQH30 NOF& 33'HLN 4.065I 6(2"+/)/ '+% + CE9 * ; 8(#=Eholotz-castle-1.3.14-src/res/theme/dungeons/char/static/2/down.spr0000644000175000001440000000633511177007633023745 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/dungeons/char/static/2/slide.spr0000644000175000001440000001465711177007633024104 0ustar jacobusers @wwwSSSAAAccc+++hhh???AAA<<<[[^xxx$$$!!!000 Rvc3333hyr008hoooGGGG )T=PN?JPP> GOO=J- C@$@N3 P )RSBN  @444///GGGwww```EEE{{{:[[[___99{!!lW##l,,,YYd3333hO r008 i{@*$@q-6'9GL'''- x kPN[2Lms~iWY;SSS )sb Gj<{E0^V[N9,3%<IP OD+QQ>GS @+++cccAAApppAAA///sss$$$xxxVVfmUUzCCCcv$$$$ppt h3333a008r^GGGooo!#1 )TG?NP= >PPJOOG-J=$@C N@ ) P3SRNB  @ ;;;^^^oooYYY99{hYY,,,''' /2 xE SSS;\ |s E{-DZf m=Pd8OF=K holotz-castle-1.3.14-src/res/theme/dungeons/char/static/2/jumpleft.spr0000644000175000001440000000316411177007633024621 0ustar jacobusers @///bbbGGGnnzOOO888::E@@66~nnDDGhhh III%%55k777MMMkkk Oh.{{{...BPA~o-@@@AHE -{{{GGG7>QO}{8PPP H@>MPBJ7"@M:OC:+FJ *< I A 2B= M T:H?>= M<&@&C2-  IHholotz-castle-1.3.14-src/res/theme/dungeons/char/static/2/fall.spr0000644000175000001440000001150611177007633023710 0ustar jacobusers  @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @ jjj888GGGkkkEEESSSAAAtttgggLLLzzz'''~~~sssIII~~~ppp$$>"HHH^^^!!dkkkAAAQQQdPPYd{44e ^} x |9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RFKG%  @GGGkkkEEELLLzzz"HHH^^^-dPPYd nGGGGyyy22Z s}EE===eeeooo+++ x |(((FFFeee---9q|{LLLddd UUU>>>  .Zk$$$[[[AJ/ p&h"m61E7AJMI82GJ>NG9,4,<>K<=MD0D.2=G@@22<3BG  -KVU/.L<V H43holotz-castle-1.3.14-src/res/theme/dungeons/char/static/5/0000755000175000001440000000000011177007633022244 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/static/5/dead.spr0000644000175000001440000000527611177007633023701 0ustar jacobusers 0aE)u84]ZZe)U l(BY1Qmk!R yAaR4Be) !{9IJ9 ]u<$!,c cmksRs8E)U9BAR]Ae)!y cRy4 cyΦ1iJmkUA32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RF KG @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quyF7.Zk$%BB7 n&h"m62E0 4?MI82GJ>NG=#F/,<>K<=MD2+3BG2=G@@22<KV  -.LU/<V H4holotz-castle-1.3.14-src/res/theme/dungeons/char/static/1/right.spr0000644000175000001440000001465711177007633024120 0ustar jacobusers  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0QQW JJJ ;ttt9ZZZHHHhihhh:::mayzy>>>@MP=.M /777###(II/ <9C&( =U7$+*2G7"%( >;&6&&,2:&1+1!C A\6 $ A]qe6 @::<'''66>bbjVV_ QQ_cci VVr==S::Ff--i; ;;;JJJmmWW~"""7771199CCC**,,,ooo!!!### muFFFSSS%=.M #3###-JI/ D=C&( 9KL0$+ 2>?!"# GF8 *#/L5#C3 :)+ RC ; @'RT>)A  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0 5 vvvuu;AAA>>9lll```,.VXp:::m-<@<>>>,,,KWZ;-? /777### 0 A?4 (2<@/ 038?-$- 5A:) $'<<7) :6%!82$(# ,K\31 D][@( @::<'''66>bbjVV_ QQ_cci VVr==S::F xxx--i* xxx??[AAAooo{{yyyEEErrr$$$"""NNNdddFFF888 i u333999%93.HM("`!YN ;$Y"&^$QA 03HQRN' '33& FON60. 4NLH"2( 6I5 +%+ '/)/+ ; *9E CE=#( 8 holotz-castle-1.3.14-src/res/theme/dungeons/char/static/1/up.spr0000644000175000001440000000633511177007633023421 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/dungeons/char/static/1/jump.spr0000644000175000001440000000316411177007633023745 0ustar jacobusers @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<Mholotz-castle-1.3.14-src/res/theme/dungeons/char/static/1/stop.spr0000644000175000001440000000570111177007633023756 0ustar jacobusers x  `K`K@  `!` 2ll`K`KS\l d[dtt`}@@` *`*`**@@S `2:  `!`!:CC\@@} d[dtt`}@@@ *@@@! u!!@u! @@`K`K ``K`K d@2@@`  `2u`K::C`KS\l d[du`}}@@@ * JS**@@`*``@2@2`dd`   @@2d @@2d ` @@  `!`!`2:C`KS\l d[dtt`}@@@ * @!!@@ u u@@!!@@!!C`@@C@ `@2@2`` dd   @@  `!`!`2:C`KS\l d[dtt`}@@@ *  @K@K@@  @l`:@@@`: `@2@2`@ dd   @@  `!`!`2:C`KS\l d[dtt`}@@@ * 2 2 @`2@ @@@`!`!@ BB  @@  `!`!`2:C`KS\l d[dtt`}@@@ *  @ @   @`!`!@``@@  `!`!`2:C`KS\l d[dtt`}@@@ *holotz-castle-1.3.14-src/res/theme/dungeons/char/static/1/jumpright.spr0000644000175000001440000000316411177007633025003 0ustar jacobusers @bbb///GGGOOOnnzDDGnn66~@@::E888777k55%%III hhh...{{{.h O kkkMMM@@@-o~BPAGGG{{{- EHA PPP8{}OQ>7"7JBPM>@H+:CO:M@ <* JF =B2 AI=>?H: T M2C&@&<M HI -holotz-castle-1.3.14-src/res/theme/dungeons/char/static/1/left.spr0000644000175000001440000001465711177007633023735 0ustar jacobusers  @,,,GGI jjtDDM (ll~ ffr``~##0rr>>g WQQ; JJJ9ttthiHHHZZZ>>>yzyam:::hhh###777/M =.@MP /II( (&C9<*+$7U= (%"7G2,&6&;&>1+:&2!C1 $6\ A6eq] A @'''::< VV_bbj66> cciQQ_VVr::F==S ;i--fWW~mmJJJ;;;9911777"""!!!ooo,,,**CCCSSSFFFum #######3M =.% /IJ- (&C=D +$0LK9 #"!?>2 #* 8FG #5L/+):3 C' @; C R A)>TR @,,,GGI jjtDDM (ll~ ffr``~ ##0rr>>g 5;uuvvv9>>AAAVXp,.```lll>>><@<-m:::###777/? ;-KWZ,,, 4?A 0  /@<2(-?830 ):A5- $7<<'$!%6:) #(2$83\K ,(@[] D1 @'''::< VV_bbj66> cciQQ_VVr ::F==S *i--xxx??[xxxyyy{{oooAAAdddNNN"""$$$rrrEEE999333u i 888FFFM.H93% NY"`!( AQ&^$$Y"; 'NRQH30 NOF& 33'HLN 4.065I 6(2"+/)/ '+% + CE9 * ; 8(#=Eholotz-castle-1.3.14-src/res/theme/dungeons/char/static/1/down.spr0000644000175000001440000000633511177007633023744 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/dungeons/char/static/1/slide.spr0000644000175000001440000001465711177007633024103 0ustar jacobusers @wwwSSSAAAccc+++hhh???AAA<<<[[^xxx$$$!!!000 Rvc3333hyr008hoooGGGG )T=PN?JPP> GOO=J- C@$@N3 P )RSBN  @444///GGGwww```EEE{{{:[[[___99{!!lW##l,,,YYd3333hO r008 i{@*$@q-6'9GL'''- x kPN[2Lms~iWY;SSS )sb Gj<{E0^V[N9,3%<IP OD+QQ>GS @+++cccAAApppAAA///sss$$$xxxVVfmUUzCCCcv$$$$ppt h3333a008r^GGGooo!#1 )TG?NP= >PPJOOG-J=$@C N@ ) P3SRNB  @ ;;;^^^oooYYY99{hYY,,,''' /2 xE SSS;\ |s E{-DZf m=Pd8OF=K holotz-castle-1.3.14-src/res/theme/dungeons/char/static/1/jumpleft.spr0000644000175000001440000000316411177007633024620 0ustar jacobusers @///bbbGGGnnzOOO888::E@@66~nnDDGhhh III%%55k777MMMkkk Oh.{{{...BPA~o-@@@AHE -{{{GGG7>QO}{8PPP H@>MPBJ7"@M:OC:+FJ *< I A 2B= M T:H?>= M<&@&C2-  IHholotz-castle-1.3.14-src/res/theme/dungeons/char/static/1/fall.spr0000644000175000001440000001150611177007633023707 0ustar jacobusers  @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @ jjj888GGGkkkEEESSSAAAtttgggLLLzzz'''~~~sssIII~~~ppp$$>"HHH^^^!!dkkkAAAQQQdPPYd{44e ^} x |9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RFKG%  @GGGkkkEEELLLzzz"HHH^^^-dPPYd nGGGGyyy22Z s}EE===eeeooo+++ x |(((FFFeee---9q|{LLLddd UUU>>>  .Zk$$$[[[AJ/ p&h"m61E7AJMI82GJ>NG9,4,<>K<=MD0D.2=G@@22<3BG  -KVU/.L<V H43holotz-castle-1.3.14-src/res/theme/dungeons/char/static/9/0000755000175000001440000000000011177007633022250 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/static/9/dead.spr0000644000175000001440000000527611177007633023705 0ustar jacobusers 0aE)u84]ZZe)U l(BY1Qmk!R yAaR4Be) !{9IJ9 ]u<$!,c cmksRs8E)U9BAR]Ae)!y cRy4 cyΦ1iJmkUA)7;'48-          @      '  4   %+Y$)(*  *.  ";+9=7IS  "$'*9=&)(+.=C   0*7~C*.#& "$& "$AX)7;'48-          @        $       &     +  %)+  "@ !$,TZ&)D\b"%   $'&38  ,;I2!*?*2*8>+:? :NT  (+*- *. $F</7G"-91BG&37 +.$15$'(+ %(!') "$8Kn9M@Vftefl^}MgoNipIbi9LR+:?$041BF""-1Ywiolgn]|bZyWs|]}g]{kcVt|!-0,;?;OT@U[9LR5FK8KQ,;@+:>)7;'48-          @             %       /        (7     "-< )+   )7D  "'5:  !#%'  (0%2?( +/ '*  #&   $' *:B1BM +4)8=#14 &*%)!-0!.1  =R[G^i5FQ %4FL""/3*-!,0$04-=A%( +.%(/@E 1%4%-8$*#%#&"%".2&27 $&".1 "$.H%R,;@2DI,;@,<@-)7;'48-          @                                      "         $            #        ,#'    #   $6'     #%)'+    /@E !(,".2"$#& $ " +/#/3$&".1 "$.HE&))6;(,"$&(%(  %'"!$ +/(+),(*!!      +.%26#% #/2.=A)6;'37/?D'+!          holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/2/hang.spr0000644000175000001440000000316411177007633023333 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/2/right.spr0000644000175000001440000001150611177007633023532 0ustar jacobusers @ *9=+9=   %'7IO=Om9LR,;@8KQ5FK9LR@U[;OT,;?            @  *9=+9=*.-;?'590@E,;@ngloiYw"-1+:>9LR]|etmE\9LR)7;'48-         holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/2/jump.spr0000644000175000001440000000152411177007633023367 0ustar jacobusers 99a0yGgjFJ#!Aa@ @@ @CyʱȂ)kRGRZB99AC)!!@ !ȂʍLL냪{LIsjs)kR d1mmL ˃{L˃m,{d1 9gRZgR&JGRA999AJ&JRgR9@aaA@@@ @ @@Aaa@holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/2/stop.spr0000644000175000001440000000316411177007633023403 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/2/jumpright.spr0000644000175000001440000000474611177007633024436 0ustar jacobusers 99 @@ @aA#!FJgjGya0@!!C)A99BZGRR)kȂCy@ R)kjsIsL냪{냍LLʇȂ! d1{,m˃L냊{˃ 냍Lmmd1 9gRR&JJA999AGR&JgRZgR9@aaA@@ @ @@@Aaa@  @ @aA99 C)99BZGR#!FJgjGya0@!!Is냪{냍LR)kȂCy@ R)kjs˃냊{˃ LʇȂ! d1{,m&JA999ALmmd1 9gRRA@ @ @GR&JgRZgR9@aa@@Aaa@ @a 9ZA99 C)냍GR#!FJgjGya0@!!Is LR)kȂCy@ R)kjs˃A9LʇȂ! d1{,m&J@ ALmmd1 9gRRA@GR&JgRZgR9@aa@@Aaa@holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/2/left.spr0000644000175000001440000001150611177007633023347 0ustar jacobusers @+9=*9=  0*7~)7;'48-          @+9=*9=    0*7~)7;'48-      @ +9=*9=  -     holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/2/down.spr0000644000175000001440000000316411177007633023365 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/2/slide.spr0000644000175000001440000000316411177007633023516 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/2/jumpleft.spr0000644000175000001440000000474611177007633024253 0ustar jacobusers 99a0yGgjFJ#!Aa@ @@ @CyʱȂ)kRGRZB99AC)!!@ !ȂʍLL냪{LIsjs)kR d1mmL ˃{L˃m,{d1 9gRZgR&JGRA999AJ&JRgR9@aaA@@@ @ @@Aaa@ 99Aa@ @ a0yGgjFJ#!GRZB99C) @CyʱȂ)kRL냪{Is!!@ !ȂʍL ˃{˃js)kR d1mmLA999A&Jm,{d1 9gRZgR&JGR@ @ @ARgR9@aaA@@aa@ a@99AZ9 a0yGgjFJ#!GRC) @CyʱȂ)kRL Is!!@ !ȂʍL9A˃js)kR d1mmLA @&Jm,{d1 9gRZgR&JGR@ARgR9@aaA@@aa@holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/2/fall.spr0000644000175000001440000000316411177007633023334 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/3/0000755000175000001440000000000011177007633021665 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/ball/3/dead.spr0000644000175000001440000002032511177007633023312 0ustar jacobusers,c[^^},cR?ߊR4ll 2uIM)Mev1٭RjU(E4,>]mmIM4$Ck]](E,JS,(E]uIM4#! $4k]٭jU(E4,4(E=1uIM)Mev1lWlRߊR,c;]^\,c c< kR־}٭vdg\TS[&d<}1 dgd|r<}1l}]<<<]}VlRފR,c;]=;,c cYxjR֞IZ4l<UU6t 22 f'481٭]o|e{Ju]]{Dsz UZ]|sCs`pcĚu] tdkj@izÊF48{٭5htsds#s${EmĖ1ūt{铏1l}yYYy6tR]iR,c;] c cVĪrR]mmIM4$Ck]](E,JS,(E]uIM4#! $4k]٭jU(E4,4(E=1uIM)Mev1lWlRߊR,c;]^\,cholotz-castle-1.3.14-src/res/theme/dungeons/char/ball/3/jump.spr0000644000175000001440000000333211177007633023367 0ustar jacobusers)65S.*)6ww * **![m)M)Mme_\!RjU(E4,mmIM4$Ck]](E,JS,(EuIM4#! $4k]jU(E4,4(E|F![m)M)Mme֝=z\g!)M6p*)Kn))n))65S.*)w * *9Οξ*!uIM)MevƂ!RjU(E4,mmIM4$Ck]]](E,JS,(EuIM4#! $4k]]jU(E4,4(EF!{uIM)MevƂg!)Ξ[p*)K))n),c[^^},cR?ߊR4ll 2uIM)Mev1٭RjU(E4,>]mmIM4$Ck]](E,JS,(E]uIM4#! $4k]٭jU(E4,4(E=1uIM)Mev1lWlRߊR,c;]^\,cholotz-castle-1.3.14-src/res/theme/dungeons/char/ball/3/stop.spr0000644000175000001440000000554411177007633023410 0ustar jacobusers )65S.*)6ww * *5Wx*!n6W!n6w?+n6WxB Mw Mn6wVLn5VwxxRF!,m56WWwWWg!)Mn5666p*)Kn))n))65S.*)6ww * *5Wx*!n6W!n[mmIM4$Ck]](E,JS,(E[uIM4#! $4k]LxRF!,m56WWwWWg!)Mn5666p*)Kn))n))65S.*)6ww * **![m)M)Mme_\!RjU(E4,mmIM4$Ck]](E,JS,(EuIM4#! $4k]jU(E4,4(E|F![m)M)Mme֝=z\g!)M6p*)Kn))n))65S.*)w * *9Οξ*!uIM)MevƂ!RjU(E4,mmIM4$Ck]]](E,JS,(EuIM4#! $4k]]jU(E4,4(EF!{uIM)MevƂg!)Ξ[p*)K))n),c[^^},cR?ߊR4ll 2uIM)Mev1٭RjU(E4,>]mmIM4$Ck]](E,JS,(E]uIM4#! $4k]٭jU(E4,4(E=1uIM)Mev1lWlRߊR,c;]^\,cholotz-castle-1.3.14-src/res/theme/dungeons/char/ball/3/jumpright.spr0000644000175000001440000000270611177007633024431 0ustar jacobusersz#8# xwVl wV5 K xV5 U?xV\c]\c4TJ wV xwVU4l  xxwwVU5K  7#vU *l z#8# xwVl wV5 K xV U?L]\c]\c4]TJ wu xwVU4 xxwwVU5K  7#vU *l z#8# xwVl wVaaK aaTH U?aa]L"aa]\c aa]\cA 4aa]TJ aa]u xwVaau xxwwVU5aa 7#vU *l holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/3/left.spr0000644000175000001440000000365711177007633023360 0ustar jacobusers  8#z#l Vwx 5Vw 5VxK 5Vx?U3 5Vxaaaaaaaa4Vwx4 45VwJ l 4UVwxK 5UVwwxx l *U v7#  8#z#l Vwx 5Vw 5VxK Vx?Uc\Ƃc\ƺ]Tƺւ4 VwJ l 4UVwxK 5UVwwxx l *U v7#  8#z#l Vwx 5Vw VxK LƂ?Uc\ƺ]c\ƺ]Tƺ]4 uƂwJ 4UVwxK 5UVwwxx l *U v7#  8#z#l VwxaaVwH TaaK "Lƺ]aa?U c\ƺ]aaA c\ƺ]aaTƺ]aa4 uƺ]aaJ uaaVwxaa5UVwwxx l *U v7# holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/3/down.spr0000644000175000001440000000333211177007633023363 0ustar jacobusers)65S.*)6ww * **![m)M)Mme_\!RjU(E4,mmIM4$Ck]](E,JS,(EuIM4#! $4k]jU(E4,4(E|F![m)M)Mme֝=z\g!)M6p*)Kn))n))65S.*)w * *9Οξ*!uIM)MevƂ!RjU(E4,mmIM4$Ck]]](E,JS,(EuIM4#! $4k]]jU(E4,4(EF!{uIM)MevƂg!)Ξ[p*)K))n),c[^^},cR?ߊR4ll 2uIM)Mev1٭RjU(E4,>]mmIM4$Ck]](E,JS,(E]uIM4#! $4k]٭jU(E4,4(E=1uIM)Mev1lWlRߊR,c;]^\,cholotz-castle-1.3.14-src/res/theme/dungeons/char/ball/3/slide.spr0000644000175000001440000000333211177007633023514 0ustar jacobusers)65S.*)6ww * **![m)M)Mme_\!RjU(E4,mmIM4$Ck]](E,JS,(EuIM4#! $4k]jU(E4,4(E|F![m)M)Mme֝=z\g!)M6p*)Kn))n))65S.*)w * *9Οξ*!uIM)MevƂ!RjU(E4,mmIM4$Ck]]](E,JS,(EuIM4#! $4k]]jU(E4,4(EF!{uIM)MevƂg!)Ξ[p*)K))n),c[^^},cR?ߊR4ll 2uIM)Mev1٭RjU(E4,>]mmIM4$Ck]](E,JS,(E]uIM4#! $4k]٭jU(E4,4(E=1uIM)Mev1lWlRߊR,c;]^\,cholotz-castle-1.3.14-src/res/theme/dungeons/char/ball/3/jumpleft.spr0000644000175000001440000000270611177007633024246 0ustar jacobusers 8#z#l Vwx 5Vw 5VxK Vx?Uc\Ƃc\ƺ]Tƺւ4 VwJ l 4UVwxK 5UVwwxx l *U v7#  8#z#l Vwx 5Vw VxK LƂ?Uc\ƺ]c\ƺ]Tƺ]4 uƂwJ 4UVwxK 5UVwwxx l *U v7#  8#z#l VwxaaVwH TaaK "Lƺ]aa?U c\ƺ]aaA c\ƺ]aaTƺ]aa4 uƺ]aaJ uaaVwxaa5UVwwxx l *U v7# holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/3/fall.spr0000644000175000001440000000006611177007633023333 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/ball/1/0000755000175000001440000000000011177007633021663 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/ball/1/dead.spr0000644000175000001440000002320111177007633023304 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<y>>?bbֻ̘ԯk?@@>>ԯʥ^>>?yaʥ_y ^k? ##(### yy ##(@###>>? @>>?###@##( y!-!XX_#####( {\zwJS4MM{\ܧǓ~~S4>>?!zΠۼȱԶRI:0T@1$vȱ|nh^>>?!mnӵ£yI S4dhRS4J$$)###S4I^IS4J##(D6Z!###>>? @>>?######  )#S?dI=G F/Bk?O^OD-9###-*1D-@ac\lVD-9  ÒyI6Zakkk?U)#>>?O}y6+: -":yVT]C/9 \Ej^jI8Z  =+WwHқu]j=)3Og-":  +!:|[U֞)#k?[vmzX=,W|[kkG;A  E.:YkU|PprXwD-9  ^FV̕iOkk?UD-9-*,lXcJ2>=)3)#  888 @   0*-  +$@+6S7E}^n[EP~wz J8@^9L|Hh`^{_:M=)2 =)2iAWT_|LwISkUqf=R=)2 vQg[UrNB0X!29%PhCOyRm]9K+$%#$ĒxtP&4   !+fAn]|Gb@+6  y]lU@,X   <'DV|YwO2@[=MepB!2*+py[=MO2@RyxH<(P   E1CbET  @+6|Hd\gA!+   !mJ_azF0;  +$^9KTpS}oKxB.L$$=+8gCXRkYr_:M@4: F3<jBVew}PqyJd\vSkg?S=)2 =)2vQcu`}QmzGa]9K=)2 {U@JS7ES5DO2@@+6+$  @ ("-&(" ("?*5O3AZ7Hb>PlIZT7FH4>.#' ZKRS4C\7I;"/ H/;n{S4C7%. 7%.];LG-:  D(6Z7H7%..#'S4CE)7  D'5S4C(" M9C  \6I?*5 cFT^FQ  ;"/O3A.#'_>O Z7H("1$+_F];LE(6   G+8Z7H7%. 7%.S4ClzF-9 ;"/\6IS4C7%.  @holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/1/hang.spr0000644000175000001440000000316411177007633023332 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>?holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/1/right.spr0000644000175000001440000002320111177007633023524 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/1/up.spr0000644000175000001440000002320111177007633023033 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/1/jump.spr0000644000175000001440000002320111177007633023362 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/1/stop.spr0000644000175000001440000000316411177007633023402 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>?holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/1/jumpright.spr0000644000175000001440000002320111177007633024420 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/1/left.spr0000644000175000001440000002320111177007633023341 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/1/down.spr0000644000175000001440000002320111177007633023356 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/1/slide.spr0000644000175000001440000002320111177007633023507 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/1/jumpleft.spr0000644000175000001440000002320111177007633024235 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/1/fall.spr0000644000175000001440000002320111177007633023325 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/4/0000755000175000001440000000000011177007633021666 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/ball/4/dead.spr0000644000175000001440000001030711177007633023312 0ustar jacobusers 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/4/hang.spr0000644000175000001440000000006611177007633023333 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/ball/4/right.spr0000644000175000001440000002732511177007633023542 0ustar jacobusers  9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk cYu{mkZiJ9e)9iJZ{Z4mkZiJ9e)e)9iJZuYZӜ8mkZiJ9e)e)9iJZU8QZmkZiJ9e)e)9iJZq8ƊR{mkZiJ9e)e)9iJZmkus c{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk{Yu{mkZiJ9e)9iJZsRQ4mkZiJ9e)e)9iJZuZӜ8mkZiJ9e)e)9iJZU8QZQmkZiJ9e)e)9iJZq8R{mkZiJ9e)e)9iJZmku{{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZZ{4mkZiJ9e)e)9iJZsRZӜ8mkZiJ9e)e)9iJZU8QZZ{mkZiJ9e)e)9iJZq8Y{ cmkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9B1IDbRIRDbIB1b9B1) B9B1"1)b9QAb9AQb9)"1B1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) )b9AZDbdjrdjDbZAb9)B9"1)A"1AIDbdjrdjDbIA"1AB9"1A#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 H9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e))AIQZQRrdjQIAIAB9"1)B1IQIQRrdjQIAb9B1)"1AIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9AZDbdjrdjDbZQIAB9"1B9AIQZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1  9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIAZDbdjZRDbZAb9AB9 B9Ab9B1IDbRIRDbIB1b9B1) QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/4/up.spr0000644000175000001440000000006611177007633023042 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/ball/4/jump.spr0000644000175000001440000002732511177007633023400 0ustar jacobusers  9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk cYu{mkZiJ9e)9iJZ{Z4mkZiJ9e)e)9iJZuYZӜ8mkZiJ9e)e)9iJZU8QZmkZiJ9e)e)9iJZq8ƊR{mkZiJ9e)e)9iJZmkus c{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk{Yu{mkZiJ9e)9iJZsRQ4mkZiJ9e)e)9iJZuZӜ8mkZiJ9e)e)9iJZU8QZQmkZiJ9e)e)9iJZq8R{mkZiJ9e)e)9iJZmku{{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZZ{4mkZiJ9e)e)9iJZsRZӜ8mkZiJ9e)e)9iJZU8QZZ{mkZiJ9e)e)9iJZq8Y{ cmkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9B1IDbRIRDbIB1b9B1) B9B1"1)b9QAb9AQb9)"1B1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) )b9AZDbdjrdjDbZAb9)B9"1)A"1AIDbdjrdjDbIA"1AB9"1A#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 H9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e))AIQZQRrdjQIAIAB9"1)B1IQIQRrdjQIAb9B1)"1AIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9AZDbdjrdjDbZQIAB9"1B9AIQZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1  9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIAZDbdjZRDbZAb9AB9 B9Ab9B1IDbRIRDbIB1b9B1) QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/4/stop.spr0000644000175000001440000002732511177007633023412 0ustar jacobusers  9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk cYu{mkZiJ9e)9iJZ{Z4mkZiJ9e)e)9iJZuYZӜ8mkZiJ9e)e)9iJZU8QZmkZiJ9e)e)9iJZq8ƊR{mkZiJ9e)e)9iJZmkus c{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk{Yu{mkZiJ9e)9iJZsRQ4mkZiJ9e)e)9iJZuZӜ8mkZiJ9e)e)9iJZU8QZQmkZiJ9e)e)9iJZq8R{mkZiJ9e)e)9iJZmku{{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZZ{4mkZiJ9e)e)9iJZsRZӜ8mkZiJ9e)e)9iJZU8QZZ{mkZiJ9e)e)9iJZq8Y{ cmkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9B1IDbRIRDbIB1b9B1) B9B1"1)b9QAb9AQb9)"1B1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) )b9AZDbdjrdjDbZAb9)B9"1)A"1AIDbdjrdjDbIA"1AB9"1A#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 H9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e))AIQZQRrdjQIAIAB9"1)B1IQIQRrdjQIAb9B1)"1AIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9AZDbdjrdjDbZQIAB9"1B9AIQZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1  9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIAZDbdjZRDbZAb9AB9 B9Ab9B1IDbRIRDbIB1b9B1) QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/4/jumpright.spr0000644000175000001440000002732511177007633024436 0ustar jacobusers  9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk cYu{mkZiJ9e)9iJZ{Z4mkZiJ9e)e)9iJZuYZӜ8mkZiJ9e)e)9iJZU8QZmkZiJ9e)e)9iJZq8ƊR{mkZiJ9e)e)9iJZmkus c{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk{Yu{mkZiJ9e)9iJZsRQ4mkZiJ9e)e)9iJZuZӜ8mkZiJ9e)e)9iJZU8QZQmkZiJ9e)e)9iJZq8R{mkZiJ9e)e)9iJZmku{{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZZ{4mkZiJ9e)e)9iJZsRZӜ8mkZiJ9e)e)9iJZU8QZZ{mkZiJ9e)e)9iJZq8Y{ cmkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9B1IDbRIRDbIB1b9B1) B9B1"1)b9QAb9AQb9)"1B1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) )b9AZDbdjrdjDbZAb9)B9"1)A"1AIDbdjrdjDbIA"1AB9"1A#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 H9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e))AIQZQRrdjQIAIAB9"1)B1IQIQRrdjQIAb9B1)"1AIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9AZDbdjrdjDbZQIAB9"1B9AIQZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1  9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIAZDbdjZRDbZAb9AB9 B9Ab9B1IDbRIRDbIB1b9B1) QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/4/left.spr0000644000175000001440000002732511177007633023357 0ustar jacobusers  9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk cYu{mkZiJ9e)9iJZ{Z4mkZiJ9e)e)9iJZuYZӜ8mkZiJ9e)e)9iJZU8QZmkZiJ9e)e)9iJZq8ƊR{mkZiJ9e)e)9iJZmkus c{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk{Yu{mkZiJ9e)9iJZsRQ4mkZiJ9e)e)9iJZuZӜ8mkZiJ9e)e)9iJZU8QZQmkZiJ9e)e)9iJZq8R{mkZiJ9e)e)9iJZmku{{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZZ{4mkZiJ9e)e)9iJZsRZӜ8mkZiJ9e)e)9iJZU8QZZ{mkZiJ9e)e)9iJZq8Y{ cmkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9B1IDbRIRDbIB1b9B1) B9B1"1)b9QAb9AQb9)"1B1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) )b9AZDbdjrdjDbZAb9)B9"1)A"1AIDbdjrdjDbIA"1AB9"1A#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 H9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e))AIQZQRrdjQIAIAB9"1)B1IQIQRrdjQIAb9B1)"1AIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9AZDbdjrdjDbZQIAB9"1B9AIQZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1  9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIAZDbdjZRDbZAb9AB9 B9Ab9B1IDbRIRDbIB1b9B1) QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/4/down.spr0000644000175000001440000000006611177007633023365 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/ball/4/slide.spr0000644000175000001440000000006611177007633023516 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/ball/4/jumpleft.spr0000644000175000001440000002732511177007633024253 0ustar jacobusers  9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk cYu{mkZiJ9e)9iJZ{Z4mkZiJ9e)e)9iJZuYZӜ8mkZiJ9e)e)9iJZU8QZmkZiJ9e)e)9iJZq8ƊR{mkZiJ9e)e)9iJZmkus c{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk{Yu{mkZiJ9e)9iJZsRQ4mkZiJ9e)e)9iJZuZӜ8mkZiJ9e)e)9iJZU8QZQmkZiJ9e)e)9iJZq8R{mkZiJ9e)e)9iJZmku{{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZZ{4mkZiJ9e)e)9iJZsRZӜ8mkZiJ9e)e)9iJZU8QZZ{mkZiJ9e)e)9iJZq8Y{ cmkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9B1IDbRIRDbIB1b9B1) B9B1"1)b9QAb9AQb9)"1B1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) )b9AZDbdjrdjDbZAb9)B9"1)A"1AIDbdjrdjDbIA"1AB9"1A#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 H9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e))AIQZQRrdjQIAIAB9"1)B1IQIQRrdjQIAb9B1)"1AIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9AZDbdjrdjDbZQIAB9"1B9AIQZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1  9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIAZDbdjZRDbZAb9AB9 B9Ab9B1IDbRIRDbIB1b9B1) QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/dungeons/char/ball/4/fall.spr0000644000175000001440000002732511177007633023343 0ustar jacobusers  9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk cYu{mkZiJ9e)9iJZ{Z4mkZiJ9e)e)9iJZuYZӜ8mkZiJ9e)e)9iJZU8QZmkZiJ9e)e)9iJZq8ƊR{mkZiJ9e)e)9iJZmkus c{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmk{Yu{mkZiJ9e)9iJZsRQ4mkZiJ9e)e)9iJZuZӜ8mkZiJ9e)e)9iJZU8QZQmkZiJ9e)e)9iJZq8R{mkZiJ9e)e)9iJZmku{{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZZ{4mkZiJ9e)e)9iJZsRZӜ8mkZiJ9e)e)9iJZU8QZZ{mkZiJ9e)e)9iJZq8Y{ cmkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) 9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9B1IDbRIRDbIB1b9B1) B9B1"1)b9QAb9AQb9)"1B1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9B1b9AIDbdjrdjDbZQb9B1)"1B9Ab9AZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 89iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) B1IQZDbdjrdjDbZQIB1)"1)B1b9QZDbdjrdjDbZQb9B1 !1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0u{mkZiJ9e)9iJZ8Q4mkZiJ9e)e)9iJZuYΒӜ8mkZiJ9e)e)9iJZU8QmkZiJ9e)e)9iJZq{8mkZiJ9e)e)9iJZmkss{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIQZDbdjrdjDbZQIAB9"1)AIQZDbdjrdjDbZQIA)"1!1Irz%ƫƫ%zrIAAAIZz%ƫƫ%zZI!1A1!1b9ZCb%ƫƫ%CbZb9QAA#bACbrƫƫrCbA#bQAA#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmk0Mk{mkZiJ9e)9iJZ8ZQ4mkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU8ZmkZiJ9e)e)9iJZqsRY8mkZiJ9e)e)9iJZmkIJs{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e) )b9AZDbdjrdjDbZAb9)B9"1)A"1AIDbdjrdjDbIA"1AB9"1A#brQrzƫƫzrQr#bQAA#brzZzƫzrzr#bQAA#brz%zƫzrCbr#bQAAIrzrzƫzrCbZIAAAIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 H9iJZmk{QQ{mkZiJe)9iJZmkYQ{mkZiJ9e)9iJZ8ޒZmkZiJ9e)e)9iJZuYΒ c8mkZiJ9e)e)9iJZU{ZmkZiJ9e)e)9iJZmkIJ{Y8mkZiJ9e)e)9iJZmksu{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e))AIQZQRrdjQIAIAB9"1)B1IQIQRrdjQIAb9B1)"1AIZCbrzƫƫrCbZIAAQIZCbrƫƫ%zZIAAQ#bZCb%ƫƫ%zr#bQAQ#brz%ƫƫ%zr#bQAQ#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1 9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ8Q,cmkZiJ9e)e)9iJZuYΒ cZmkZiJ9e)e)9iJZsRZmkZiJ9e)e)9iJZRs8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9Ab9AZDbdjrdjDbZQIAB9"1B9AIQZDbdjrdjDbZQIAB9"1Q#brz%ƫƫ%zZ#bQAQ#brz%ƫ$ƫ%zZ#bQAQ#brCb%ƫ$%CbZ#bQA1Q#bZQrjrQZIA(QIAb9ZzcjYcjzZb9AI!1  9iJZmk{QQ{mkZiJe)9iJZmkYu{mkZiJ9e)9iJZ84mkZiJ9e)e)9iJZsӜmkZiJ9e)e)9iJZs{QQ{mkZiJ9e)e)9iJZq8Y8mkZiJ9e)e)9iJZmku{mkZiJ9e)e)9iJZmk{QQ{mkZiJ9e)B9AIAZDbdjZRDbZAb9AB9 B9Ab9B1IDbRIRDbIB1b9B1) QIAb9ZzcjYcjzZb9AI!1 holotz-castle-1.3.14-src/res/theme/dungeons/char/dummy/0000755000175000001440000000000011177007633021744 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/dummy/dead.spr0000644000175000001440000000006611177007633023371 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/dummy/hang.spr0000644000175000001440000000006611177007633023411 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/dummy/right.spr0000644000175000001440000000006611177007633023611 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/dummy/up.spr0000644000175000001440000000006611177007633023120 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/dummy/jump.spr0000644000175000001440000000006611177007633023447 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/dummy/stop.spr0000644000175000001440000000006611177007633023461 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/dummy/jumpright.spr0000644000175000001440000000006611177007633024505 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/dummy/left.spr0000644000175000001440000000006611177007633023426 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/dummy/down.spr0000644000175000001440000000006611177007633023443 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/dummy/slide.spr0000644000175000001440000000006611177007633023574 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/dummy/jumpleft.spr0000644000175000001440000000006611177007633024322 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/dummy/fall.spr0000644000175000001440000000006611177007633023412 0ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/main/0000755000175000001440000000000011177007633021535 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/main/2/0000755000175000001440000000000011177007633021676 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/main/2/dead.spr0000644000175000001440000002662311177007633023332 0ustar jacobusers zObpjzzojz Z Zojrz Z.b.bojOjzzrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZrpjrjrObzz Zojzpjrzrrrzrzz ZojzrojzrzObpjzzojz Z Zojrz Z.b.bojOjz6zrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-Zpjrj6rObzz Zojzpjrzrrrzrzz ZojzrojzrzOb6pjzzojz Z Zojrz Z.b.bojOjzzrNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.b6zzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZpjrjrObzz Zojzpjrzrrrzrzz ZojzrojzrzObpjzzojz Z Zojr6z Z.b.bojOj56zrNbI-Zzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-ZԓrԓObz Zojpjrzrrrzrzz ZojzrojzrzObpjzzojz Z Zojrz Z.b.bojOj[zrNbI-Zzzrzpjoj.bIP{.bzpj.brrrԓpj ZQ.b6riAQrzzroj ZzriA.bͱzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-Z:֬rԓ[Obz Zojpjrzrrrzrz ZojzrojzrzOb[pjzzojz Z Zojrz Z.bojOjͱzrւI-ZzzűrzpjojIW.bzpj.brrr֬pj ZQ.briAQrzzroj ZzriA.b[ֱzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-Z֬r׬Obz Zojpjrzrrrzrz ZojzrojzrOb6ԓzojz Z Zojr6[6z Z.bojOj[=[ֱzrIz[zpjojP{Œ6zpj.brrr֬pj ZP{.b6[ԓiAQzzroj ZriAzOb ZQrH9Ioj6zr Z Zi9 Zojzrr.b.b.bjrzzqӋ6j-Zx=łr=ł Zoj6ӓrzrrzrz6qojzrojz6rŕ~xŶz Z Zojrz Z΂ojOj׬r]IWzűzpj΂6=Wpjrr涬 Z6.b[xiAS׬z׬oj ZŶiAWޱzOb ZQrH9Ir Z Zi9 Zojzrr.b.brzzW{xxźŐju{֞ނ׬=ނxޙ ZojŜxr׬󂙽rrz׬z=WojzrojzŐr;֛łޞ{ւ֜͂׬ Zuojr^ Zނoj;^^޿3zւ׬^׬]Zξ{ւpjΑr ZZΕ^{ނiAS׬׬Ζ Z޶{׬Ob ZQ׬H9I=r Z Zi9 Zojrr.b.bαrzzW{xx޺Őju{֞ނ=xޙ Zoj=xr׬ނrrz΂z~Zւojzrojz޶ނ=;=ނ;΂tŶ;=^=u]͂;];=;=ֶ涬]=tł=~t;΂~ΕuT΂S~ֶtut׬łu׬׬Z{ւ{=޶~~{=u~{ւ;׬׬=׬׬;=΂ނ=;=ނ;΂tŶ;=^=u]͂;];=;=ֶ涬]=tł=~t;΂~ΕuT΂S~ֶtut׬łu׬׬Z{ւ{=޶~~{=u~{ւ;׬׬=׬׬;=΂^=^=;Ż΂;~~żނ;^^]~;~~ޞ]~͂=]]ł]ނ޾]ł~ł޿łżނ]΂=΂]ł=~]~^͂~^^^=ނ^^=^=^^^=ނނ==^^=ނ^޻޻ނ]֛=^޻޻ނֻ޼=ޞނ=ނ^^ނ^]^==]^=^=<=~====]===^]]==]^^]==]]]^^=^]=^==]^^=<====]=]^]]]^=^]^ holotz-castle-1.3.14-src/res/theme/dungeons/char/main/2/hang.spr0000644000175000001440000000126411177007633023344 0ustar jacobusers zzjzzrrzzjojzzrrojNbzzrNbzzzrojzrojjrNbzrrojojojjojOb Zzzzrrr Z-ZjjojNbzzzroj-ZNbNbNbzzojOb-Z.bNbrrNbObNbojjzrojoj Z ZzjNbNbojNb ZQ ZjzzrojojNb ZNbjpjobjzzrjojrojojrrrrojojzzojjrjjaojojojNbzzrojojojojjNb ZzrrrrojObNb-ZzzrrojNb.bzzholotz-castle-1.3.14-src/res/theme/dungeons/char/main/2/right.spr0000644000175000001440000000545311177007633023550 0ustar jacobusers rrzObzojNbzz Zzzoj ZNbrzrrzrr-Zrrjojrzrz-brzzjNb.bObNbzzQNbrzoj.b ZNbjzjrojNb-b.bojojOb.b-Z-Z.bObNbojoj-ZNbNbojojrojNbr Z-Z.brrr Zr-Z-ZzrrNbrrzIojrzObjrQQrzzQ.bojz Z-Z ZrzojzojzzjNb.Zojrzzroj-ZQNbrzrrojrNbQrzrrrjz-ZjzzzzzrrzNb Zzrrzrrpjoj.b ZjzzzjOb-Z Z ZjzzzzOb Zjzzzrpj-ZIjrrNbQ RzzNb ZrrNb RQzrzpjNbrjjQQrzrr-Zojoj-ZQzzzojojNb.b Rzzrr R R Z Zrrojz0ojrzojNbjrrNbNbojrQNbpj-ZNbojNbIjzr.b-ZNbj-ZIrrNboj.bzzojNbojzzj.bjzzzojNb-ZrrzrzzzojojrzrzrjNbzrojojpjrrrrOb-ZNbojojrrrrrojNbrzr-ZrrojrzrzNbrojojzzrNb.bojrrObjjjojzrzzzzrrrpjzrzojzzzjzzjrrojNbzr Z-ZzzzrzrpjojrpjNbrQ ZrjojojrrojjjojojNbrjrjzzojojjzrzzojjojojrzzzpjzzrrojzzrrzrrrpjrojojzpjzrrojojojzojjrrzrrojNbNbzzpjojzpjojObojrrojrholotz-castle-1.3.14-src/res/theme/dungeons/char/main/2/up.spr0000644000175000001440000000265511177007633023060 0ustar jacobusers rObrOb-Zrr.b R ZNb ZQrrrNb ZrojQrrrrojojr-Zojrrrroj.bojrrrrrrrrrNbrrrjrrjrrrrNbrrrObrrojrrrNbrrrojojNbrrrNbrrj Z.brrrrojNbrjIQrNbrrjNb.bojojIrojNb-Z Z ZQNbojNbrNbIAI ZNbObojNb ZQ9Q ZNb ZNbNbNbojNbojojNbObr-ZObrQ ZNb Z R.brrQojr ZNbrrroj-Zrojojrrrrrrrrroj.bojrrrrjrrjrrrNbrrrrojrrObrrrNbrrrrNbojojrrrNbrrr.b ZjrrNbrrrQIjrNbojrrrrIojoj.bNbjrrNbrNbojNbQ Z Z-ZNbojrObNb ZIAINbrNb ZQ9Q ZNbojNbNb ZNbojNbNbojojholotz-castle-1.3.14-src/res/theme/dungeons/char/main/2/jump.spr0000644000175000001440000000145411177007633023403 0ustar jacobusers rpjrzrrrojObzrrrjojrrjjoj-ZrrojojrrrrrojNb-Z ZzrrrojojrojojObNb.b-Zrrrrroj ZNbNb-Z-ZrrrrOb-Z.b-ZzrojojNb-Z.bQrr Zoj RzrrrrrrjjjrrrpjrrrrrjrrrrojObrrjrrrjzrjNbojrjpjjrrrojzrrojrrrojjQrrj.b-Z-ZpjrNb Z-Z ZQIholotz-castle-1.3.14-src/res/theme/dungeons/char/main/2/stop.spr0000644000175000001440000000133411177007633023412 0ustar jacobuserszObpjzzojz Z Zojrz Z.b.bojOjzzrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZrpjrjrObzz Zojzpjrzrrrzrzz Zojzrojzrholotz-castle-1.3.14-src/res/theme/dungeons/char/main/2/jumpright.spr0000644000175000001440000000145411177007633024441 0ustar jacobusers Nb-Z-ZrNbObojojNb-ZzrObNbjrrrNbObzrrrrrrrrjojNbzrrrrrrrjrrjjrrrjojjrrrpjjObjrrrjrojrrrrjjrrrrjrojojojrrrrjrojNbNbzrrrjjrNb.bNbzrrrjjrObOb-ZzrrrrpjrrojOb-Z-ZzrrrrpjrNbNbzrrrrrrrrrrrrrjholotz-castle-1.3.14-src/res/theme/dungeons/char/main/2/left.spr0000644000175000001440000000545311177007633023365 0ustar jacobusers rrObzNbojz ZzzrNb Zojzzr-Zrrzrrzzr-bzrzrojjrrNbQzzNbOb.bNbjzjzjNb Z.bojzObojoj.b-bNbojrojojNbOb.b-Z-Z.brNbojrojojNbNb-Zr Zrrr.b-Z ZzrrNbrrz-Z-ZrjObzrojIzzrQQzoj.bQr Z-Z ZojzojzNbjzz-Zojrzzroj.ZNbrojrrzrNbQzjrrrzrQ ZNbzrrzzzzzj-Z Z.bojpjrrzrrz Z Z-ZObjzzzj ZObzzzzjI-Zpjrzzzj ZNbzz RQNbrrjNbpjzrzQ RNbrr-ZrrzrQQjjrojzzzQ-Zojojrrzz R.bNbojzojrr Z Z R R0rojNbojzNbNbrrj-ZpjNbQroj-Z.brzjINbojNbNbrrI-ZjNbNbojzz.boj.bjzzoj-ZNbojzzzjrrzrzzrojojzzrzNbjrzrrrrpjojojrrojojNb-ZObrNbojrrr-ZrzrrojrrrzNbzojojroj.bNbrzzojjjjObrrpjrrrzzzzrzNbojrrjzzjzzzojzrzNbpjrojpjrzrzzz-Z Zrzojojjjojrrojojjr ZQrzzjrjrNbojzzrzjojojpjzzzrojojjrrzzojrrzzpjzojojrpjrrrzrrjojzojojojrrzojpjzzNbNbojrrzrojrrojObojpjzholotz-castle-1.3.14-src/res/theme/dungeons/char/main/2/down.spr0000644000175000001440000000265511177007633023403 0ustar jacobusers rObrOb-Zrr.b R ZNb ZQrrrNb ZrojQrrrrojojr-Zojrrrroj.bojrrrrrrrrrNbrrrjrrjrrrrNbrrrObrrojrrrNbrrrojojNbrrrNbrrj Z.brrrrojNbrjIQrNbrrjNb.bojojIrojNb-Z Z ZQNbojNbrNbIAI ZNbObojNb ZQ9Q ZNb ZNbNbNbojNbojojNbObr-ZObrQ ZNb Z R.brrQojr ZNbrrroj-Zrojojrrrrrrrrroj.bojrrrrjrrjrrrNbrrrrojrrObrrrNbrrrrNbojojrrrNbrrr.b ZjrrNbrrrQIjrNbojrrrrIojoj.bNbjrrNbrNbojNbQ Z Z-ZNbojrObNb ZIAINbrNb ZQ9Q ZNbojNbNb ZNbojNbNbojojholotz-castle-1.3.14-src/res/theme/dungeons/char/main/2/slide.spr0000644000175000001440000000116411177007633023526 0ustar jacobusers @rrrojNbzojojrrrObObrzzrNbrrrjrrrrNb-Zrjrrrrjrjrjrzroj-bpjrpjzzzzojojjrojzrojzrojrjjroj Zrrojzrjjojj-Z-Zjzojojzrroj-bNb.b ZNbrrojIzrOb-bNboj-Zrrroj Zrj.bojjojojrojNbzr.bNbNbjoj-ZNb.bholotz-castle-1.3.14-src/res/theme/dungeons/char/main/2/jumright.spr0000644000175000001440000000145411177007633024261 0ustar jacobusers Nb-Z-ZrNbObojojNb-ZzrObNbjrrrNbObzrrrrrrrrjojNbzrrrrrrrjrrjjrrrjojjrrrpjjObjrrrjrojrrrrjjrrrrjrojojojrrrrjrojNbNbzrrrjjrNb.bNbzrrrjjrObOb-ZzrrrrpjrrojOb-Z-ZzrrrrpjrNbNbzrrrrrrrrrrrrrjholotz-castle-1.3.14-src/res/theme/dungeons/char/main/2/jumpleft.spr0000644000175000001440000000145411177007633024256 0ustar jacobusers ObNbr-Z-ZNbNbObrz-ZNbojojObNbrrrjNbojjrrrrrrrrzjjrrjrrrrrrrzpjrrrjojjrrrrjrrrjObjjjrrrrojojojojrjrrrrNbNbojrjrrrrNb.bNbrjjrrrz-ZObObrjjrrrz-Z-ZObojrrpjrrrrzNbNbrpjrrrrzrrrrrrzrrrrrjrrholotz-castle-1.3.14-src/res/theme/dungeons/char/main/2/fall.spr0000644000175000001440000000316411177007633023346 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/dungeons/char/main/5/0000755000175000001440000000000011177007633021701 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/main/5/dead.spr0000644000175000001440000001476411177007633023340 0ustar jacobusers Ӝ}]U~U0qU}Z0޺ޚxUZ cQ]ﶵqy44ΖsZQBpWySsƂEqW0sy΂114}׽{9{U]Y׽QY]ނ{Ӝ4Y00ƶy΂ނAA׽A&AAA&AaaAAߺvzYV9ς-vsV߻߻ߴO~ԥԥV߻ߚz׻߹Q߻UҖVԥ߻Yvv2ߚחkuUV052ϷEo~tNvco}5zחRcRVYƗԥԥzςR5ԥƻߖvƂςAAA&AAA&AaaAAXwҕww3u6ro,fPtwwwqpPMnwwV6wv/ІmlpwwծծІnttww6S~3}tVt[m23}FmnSqMn|jSmV6s0/~[}sqS6}ҕwSpptSҕAASA&AAA&AaaAAXT}T4RPNwӞK^.uQTTTONw/Lfo}o}ЅTT3TSwv}}K\NuTTvo}ldo}vvlSe~nЅl'>lf0o~KflIKe31u-niKlr1o}o}Nu1r󞲖l}Ѕ}rT1NuNuQ}AAA&AAA&AaaAAX1m1uІu gJV eu111.w o ok^Mmmmu111fnmmmm*TpvnummMmo~nf~u\C ^vv~fud'>k^nvK^\HC]u~d,fhCduІO~~mmmmvO~юdmu,e,e/~uAAA&AAA&AaaAA:Mmuu\mmmm\eUmmE Tuu]U])MJTJTmmumUjUjTjTLeMm,e]JU\JTJT,ejUjULe\K:D]]eM\K5)MeMmMm+]MK2L\umd T UK\mm edJTJTKk\\AAA&AAA&AaaAA\Tk\jTKLDJT<LDD'lf0o~KflIKe31u-niKlr1o}o}Nu1r󞲖l}Ѕ}rT1NuNuQT}Җ.u3 `1m1uІu gJV eu111.w o ok^Mmmmu111fnmmmm*TpvnummMmo~nf~u\C ^vv~fud'>k^nvK^\HC]u~d,fhCduІO~~mmmmvO~юdmu,e,e/~u Mmuu\mmmm\eUmmE Tuu]U])MJTJTmmumUjUjTjTLeMm,e]JU\JTJT,ejUjULe\K:D]]eM\K5)MeMmMm+]MK2L\umd T UK\mm edJTJTKk\\ \Tk\jTKLDJT<LDD'32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RF KG @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quyF7.Zk$%BB7 n&h"m62E0 4?MI82GJ>NG=#F/,<>K<=MD2+3BG2=G@@22<KV  -.LU/<V H4holotz-castle-1.3.14-src/res/theme/dungeons/char/main/1/right.spr0000644000175000001440000001465711177007633023555 0ustar jacobusers  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0QQW JJJ ;ttt9ZZZHHHhihhh:::mayzy>>>@MP=.M /777###(II/ <9C&( =U7$+*2G7"%( >;&6&&,2:&1+1!C A\6 $ A]qe6 @::<'''66>bbjVV_ QQ_cci VVr==S::Ff--i; ;;;JJJmmWW~"""7771199CCC**,,,ooo!!!### muFFFSSS%=.M #3###-JI/ D=C&( 9KL0$+ 2>?!"# GF8 *#/L5#C3 :)+ RC ; @'RT>)A  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0 5 vvvuu;AAA>>9lll```,.VXp:::m-<@<>>>,,,KWZ;-? /777### 0 A?4 (2<@/ 038?-$- 5A:) $'<<7) :6%!82$(# ,K\31 D][@( @::<'''66>bbjVV_ QQ_cci VVr==S::F xxx--i* xxx??[AAAooo{{yyyEEErrr$$$"""NNNdddFFF888 i u333999%93.HM("`!YN ;$Y"&^$QA 03HQRN' '33& FON60. 4NLH"2( 6I5 +%+ '/)/+ ; *9E CE=#( 8 holotz-castle-1.3.14-src/res/theme/dungeons/char/main/1/up.spr0000644000175000001440000000633511177007633023056 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/dungeons/char/main/1/jump.spr0000644000175000001440000000152411177007633023400 0ustar jacobusers (BMk(BiJ{mk c1IJӜZR{1E),c$!9i HPR@HaqR1mk,c(BAXØ `xiJ1 apðxp8ppx(Xh`` H)`!`0 @ `@ ` `  ` @  @   @   8P`H8 X@ P00 X(P88Hholotz-castle-1.3.14-src/res/theme/dungeons/char/main/1/stop.spr0000644000175000001440000000316411177007633023414 0ustar jacobusers @GGGkkkEEELLLzzzHHH^^^EITTTUFHL>>@ Xfx,,O!!!338 u|p OOO''79quyRRR000.ZkKKK+++'H4+.&B[[[111 /#:4###  -+* >>>/<0+1C>= M/;N" G6J S 2DG32> 0 ?X?  IZ@holotz-castle-1.3.14-src/res/theme/dungeons/char/main/1/jumpright.spr0000644000175000001440000000316411177007633024440 0ustar jacobusers @bbb///GGGOOOnnzDDGnn66~@@::E888777k55%%III hhh...{{{.h O kkkMMM@@@-o~BPAGGG{{{- EHA PPP8{}OQ>7"7JBPM>@H+:CO:M@ <* JF =B2 AI=>?H: T M2C&@&<M HI -holotz-castle-1.3.14-src/res/theme/dungeons/char/main/1/left.spr0000644000175000001440000000645711177007633023371 0ustar jacobusers  e)(JaMsQ(JA(qm{ ,sq { 1aP48AIJ8sMQ IJZ9{`h9Mk!1@`` )hRa``@@@`@  a@@  @@  @` !! )! A0@ 0X`@0 `@pX@@ $!9aZ k9A0 kZ Qqr AQQ8he`zmIJ9 41!!mke)E BR(Bp`h A!!@1` ) a a``@@`@@  a`@ `@` @`@`  ``(( !`@ @@8 @`P @( 8 P P e)(JaMsQ(JA(qm{ ,sq {1a0Q84s8繲Bre cmk9:ch9!1@` )Ze)a` a``@ a` @@` ``    @ @!8 0XH@((@ XX@@ 0 $!9aZ k9A0 kZ Qqr AQQ(he{YÐA{ a{σ mkB,ciJ!è $!s(B91p@`h A9(B a@H`I1 aa`c#@@""` b@@ bb#   Bbc @`A @((@`! @ @( `@@8`(@8 `8`( 8 @holotz-castle-1.3.14-src/res/theme/dungeons/char/main/1/down.spr0000644000175000001440000000633511177007633023401 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/dungeons/char/main/1/slide.spr0000644000175000001440000001465711177007633023540 0ustar jacobusers @wwwSSSAAAccc+++hhh???AAA<<<[[^xxx$$$!!!000 Rvc3333hyr008hoooGGGG )T=PN?JPP> GOO=J- C@$@N3 P )RSBN  @444///GGGwww```EEE{{{:[[[___99{!!lW##l,,,YYd3333hO r008 i{@*$@q-6'9GL'''- x kPN[2Lms~iWY;SSS )sb Gj<{E0^V[N9,3%<IP OD+QQ>GS @+++cccAAApppAAA///sss$$$xxxVVfmUUzCCCcv$$$$ppt h3333a008r^GGGooo!#1 )TG?NP= >PPJOOG-J=$@C N@ ) P3SRNB  @ ;;;^^^oooYYY99{hYY,,,''' /2 xE SSS;\ |s E{-DZf m=Pd8OF=K holotz-castle-1.3.14-src/res/theme/dungeons/char/main/1/jumpleft.spr0000644000175000001440000000316411177007633024255 0ustar jacobusers @///bbbGGGnnzOOO888::E@@66~nnDDGhhh III%%55k777MMMkkk Oh.{{{...BPA~o-@@@AHE -{{{GGG7>QO}{8PPP H@>MPBJ7"@M:OC:+FJ *< I A 2B= M T:H?>= M<&@&C2-  IHholotz-castle-1.3.14-src/res/theme/dungeons/char/main/1/fall.spr0000644000175000001440000001150611177007633023344 0ustar jacobusers  @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @ jjj888GGGkkkEEESSSAAAtttgggLLLzzz'''~~~sssIII~~~ppp$$>"HHH^^^!!dkkkAAAQQQdPPYd{44e ^} x |9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RFKG%  @GGGkkkEEELLLzzz"HHH^^^-dPPYd nGGGGyyy22Z s}EE===eeeooo+++ x |(((FFFeee---9q|{LLLddd UUU>>>  .Zk$$$[[[AJ/ p&h"m61E7AJMI82GJ>NG9,4,<>K<=MD0D.2=G@@22<3BG  -KVU/.L<V H43holotz-castle-1.3.14-src/res/theme/dungeons/char/main/4/0000755000175000001440000000000011177007633021700 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/main/4/dead.spr0000644000175000001440000002541111177007633023326 0ustar jacobuserszObpjzzojz Z Zojrz Z.b.bojOjzzrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZrpjrObzAArA&AAA&AaaAAzObpjzzojz Z Zojrz Z.b.bojOjz6zrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZpjrObzAArA&AAA&AaaAAzOb6pjzzojz Z Zojrz Z.b.bojOjzzrNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.b6zzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZpjrObzAArA&AAA&AaaAAzObpjzzojz Z Zojr6z Z.b.bojOj56zrNbI-Zzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-ZԓObAArA&AAA&AaaAAzObpjzzojz Z Zojrz Z.b.bojOj[zrNbI-Zzzrzpjoj.bIP{.bzpj.brrrԓpj ZQ.b6riAQrzzroj ZzriA.bͱzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-Z:֬ObAArA&AAA&AaaAAzOb[pjzzojz Z Zojrz Z.bojOjͱzrւI-ZzzűrzpjojIW.bzpj.brrr֬pj ZQ.briAQrzzroj ZzriA.b[ֱzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-Z֬ObAArA&AAA&AaaAAOb6ԓzojz Z Zojr6[6z Z.bojOj[=[ֱzrIz[zpjojP{Œ6zpj.brrr֬pj ZP{.b6[ԓiAQzzroj ZriAzOb ZQrH9Ioj6zr Z Zi9 Zojzrr.b.b.bjrzzqӋ6j-Zx=łłłAArA&AAA&AaaAAŕ~xŶz Z Zojrz Z΂ojOj׬r]IWzűzpj΂6=Wpjrr涬 Z6.b[xiAS׬z׬oj ZŶiAWޱzOb ZQrH9Ir Z Zi9 Zojzrr.b.brzzW{xxźŐju{֞ނނxނAArA&AAA&AaaAA;֛łޞ{ւ֜͂׬ Zuojr^ Zނoj;^^޿3zւ׬^׬]Zξ{ւpjΑr ZZΕ^{ނiAS׬׬Ζ Z޶{׬Ob ZQ׬H9I=r Z Zi9 Zojrr.b.bαrzzW{xx޺Őju{֞ނ=xނAArA&AAA&AaaAAނ=;=ނ;΂tŶ;=^=u]͂;];=;=ֶ涬]=tł=~t;΂~ΕuT΂S~ֶtut׬łu׬׬Z{ւ{=޶~{=AAA&AAA&AaaAAނ=;=ނ;΂tŶ;=^=u]͂;];=;=ֶ涬]=tł=~t;΂~ΕuT΂S~ֶtut׬łu׬׬Z{ւ{=޶~{=AAA&AAA&AaaAA^=^=;Ż΂;~~żނ;^^]~;~~ޞ]~͂=]]ł]ނ޾]ł~ł޿łżނ]΂=΂AA΂A&AAA&AaaAA^^^=ނ^^=^=^^^=ނނ==^^=ނ^޻޻ނ]֛=^޻޻ނֻ޼=ޞނ=AAނA&AAA&AaaAA^==]^=^=<=~====]===^]]==]^^]AA]A&AAA&AaaAA==]^^=<====]=]^AA]A&AAA&AaaAAAAA&AAA&AaaAAholotz-castle-1.3.14-src/res/theme/dungeons/char/main/4/hang.spr0000644000175000001440000000126411177007633023346 0ustar jacobusers zzjzzrrzzjojzzrrojNbzzrNbzzzrojzrojjrNbzrrojojojjojOb Zzzzrrr Z-ZjjojNbzzzroj-ZNbNbNbzzojOb-Z.bNbrrNbObNbojjzrojoj Z ZzjNbNbojNb ZQ ZjzzrojojNb ZNbjpjobjzzrjojrojojrrrrojojzzojjrjjaojojojNbzzrojojjNb ZzraANb-Zzaa&holotz-castle-1.3.14-src/res/theme/dungeons/char/main/4/right.spr0000644000175000001440000000545311177007633023552 0ustar jacobusers rrzObzojNbzz Zzzoj ZNbrzrrzrr-Zrrjojrzrz-brzzjNb.bObNbzzQNbrzoj.b ZNbjzjrojNb-b.bojojOb.b-Z-Z.bObNbojoj-ZNbNbojojrojNbr Z-Z.brrrr-Z-ZzrraazrzaaAazaaaazojzojzzjNb.Zojrzzroj-ZQNbrzrrojrNbQrzrrrjz-ZjzzzzzrrzNb Zzrrzrrpjoj.b ZjzzzjOb-Z Z ZjzzzzOb Zjzzzrpj-ZIjrrNbQ RzzNb ZrrNb RQzrzpjNbjQQraQaa&a&aaa0ojrzojNbjrrNbNbojrQNbpj-ZNbojNbIjzr.b-ZNbj-ZIrrNboj.bzzojNbojzzj.bjzzzojNb-ZrrzrzzzojojrzrzrjojojA&-ZNbaaNbazrzNbrojojzzrNb.bojrrObjjjojzrzzzzrrrpjzrzojzzzjzzjrrojNbzr Z-ZzzzrzrpjojrpjNbrQ ZrjojojrrojjjojojNbrjrjzzojojjzrzzojjojojrzzzpjzzrrojzzrrrrpjrojojzaaojaaaaA&&aaaholotz-castle-1.3.14-src/res/theme/dungeons/char/main/4/up.spr0000644000175000001440000000265511177007633023062 0ustar jacobusersrObrOb-Zrr.b R ZNb ZQrrrNb ZrojQrrrrojojr-Zojrrrroj.bojrrrrrrrrrNbrrrjrrjrrrrNbrrrObrrojrrrNbrrrojojNbrrrNbrrj Z.brrrrojNbrjIQrNbrrjNb.bojojIrojNb-Z Z ZQNbojNbNbIAI ZNbObaa9Q ZNbaaa&aObr-ZObrQ ZNb Z R.brrQojr ZNbrrroj-Zrojojrrrrrrrrroj.bojrrrrjrrjrrrNbrrrrojrrObrrrNbrrrrNbojojrrrNbrrr.b ZjrrNbrrrQIjrNbojrrrrIojoj.bNbjrrNbrNbojNbQ Z Z-ZNbojrObNb ZIAINbNb ZQ9aaaaa&aholotz-castle-1.3.14-src/res/theme/dungeons/char/main/4/jump.spr0000644000175000001440000000145411177007633023405 0ustar jacobusersrpjrzrrrojObzrrrjojrrjjoj-ZrrojojrrrrrojNb-Z ZzrrrojojrojojObNb.b-Zrrrrroj ZNbNb-Z-ZrrrrOb-Z.b-ZzrojojNb-Z.bQrr Zoj RzrrrrrrjjjrrrpjrrrrrjrrrrojObrrjrrrjzrjNb';rjpjjrrroj&aarrrojjrrj.bE4-ZpjrNb Z-Z ZQIholotz-castle-1.3.14-src/res/theme/dungeons/char/main/4/stop.spr0000644000175000001440000000133411177007633023414 0ustar jacobusers zObpjzzojz Z Zojrz Z.b.bojOjzzrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZrpjrObzAArA&AAA&AaaAAholotz-castle-1.3.14-src/res/theme/dungeons/char/main/4/jumpright.spr0000644000175000001440000000145411177007633024443 0ustar jacobusersNb-Z-ZrNbObojojNb-ZzrObNbjrrrNbObzrrrrrrrrjojNbzrrrrrrrjrrjjrrrjojjrrrpjjObjrrrjrojrrrrjjrrrrjrojojojrrrrjrojNbNbzrrrjjrNbzrrrjjrArrrrpjrraarrrpjra&&rr&&aaaaholotz-castle-1.3.14-src/res/theme/dungeons/char/main/4/left.spr0000644000175000001440000000545311177007633023367 0ustar jacobusers rrObzNbojz ZzzrNb Zojzzr-Zrrzrrzzr-bzrzrojjrrNbQzzNbOb.bNbjzjzjNb Z.bojzObojoj.b-bNbojrojojNbOb.b-Z-Z.brNbojrojojNbNb-Zrrrr.b-Z Zzaarrz-Z-ZaazrzaAaaaaojzojzNbjzz-Zojrzzroj.ZNbrojrrzrNbQzjrrrzrQ ZNbzrrzzzzzj-Z Z.bojpjrrzrrz Z Z-ZObjzzzj ZObzzzzjI-Zpjrzzzj ZNbzz RQNbrrjNbpjzrzQ RNbrrrQQjaaQa&a&aaa0rojNbojzNbNbrrj-ZpjNbQroj-Z.brzjINbojNbNbrrI-ZjNbNbojzz.boj.bjzzoj-ZNbojzzzjrrzrzzrojojzzjrzr&AojojaaNb-ZNbarzNbzojojroj.bNbrzzojjjjObrrpjrrrzzzzrzNbojrrjzzjzzzojzrzNbpjrojpjrzrzzz-Z Zrzojojjjojrrojojjr ZQrzzjrjrNbojzzrzjojojpjzzzrojojjrrzzojrrzzzojojrpjrraojaa&&Aaaaaaaholotz-castle-1.3.14-src/res/theme/dungeons/char/main/4/down.spr0000644000175000001440000000265511177007633023405 0ustar jacobusersrObrOb-Zrr.b R ZNb ZQrrrNb ZrojQrrrrojojr-Zojrrrroj.bojrrrrrrrrrNbrrrjrrjrrrrNbrrrObrrojrrrNbrrrojojNbrrrNbrrj Z.brrrrojNbrjIQrNbrrjNb.bojojIrojNb-Z Z ZQNbojNbNbIAI ZNbObaa9Q ZNbaaa&aObr-ZObrQ ZNb Z R.brrQojr ZNbrrroj-Zrojojrrrrrrrrroj.bojrrrrjrrjrrrNbrrrrojrrObrrrNbrrrrNbojojrrrNbrrr.b ZjrrNbrrrQIjrNbojrrrrIojoj.bNbjrrNbrNbojNbQ Z Z-ZNbojrObNb ZIAINbNb ZQ9aaaaa&aholotz-castle-1.3.14-src/res/theme/dungeons/char/main/4/slide.spr0000644000175000001440000000116411177007633023530 0ustar jacobusers @rrrojNbzojojrrrObObrzzrNbrrrjrrrrNb-Zrjrrrrjrjrjrzroj-bpjrpjzzzzojojjrojzrojzrojrjjroj Zrrojzrjjojj-Z-Zjzojojzrroj-bNb.b ZNbrrojIzrOb-bNboj-Zrrroj Zr.bojjojojrojNbNbNb&aNbholotz-castle-1.3.14-src/res/theme/dungeons/char/main/4/jumpleft.spr0000644000175000001440000000145411177007633024260 0ustar jacobusersObNbr-Z-ZNbNbObrz-ZNbojojObNbrrrjNbojjrrrrrrrrzjjrrjrrrrrrrzpjrrrjojjrrrrjrrrjObjjjrrrrojojojojrjrrrrNbNbojrjrrrrNbrjjrrrzArjjrrrzaarrpjrrrrarpjrrrrr&&aa&&aaholotz-castle-1.3.14-src/res/theme/dungeons/char/main/4/fall.spr0000644000175000001440000000316411177007633023350 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/dungeons/char/main/6/0000755000175000001440000000000011177007633021702 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/main/6/dead.spr0000644000175000001440000000107411177007633023327 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/dungeons/char/main/6/hang.spr0000644000175000001440000000107411177007633023347 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/dungeons/char/main/6/right.spr0000644000175000001440000000246511177007633023554 0ustar jacobusers X333)k3333333)Jkk1333y)33k,c<k)J)3׽3,c33)kJ3333333łނJ3BJsœނœłJœłނނ333)k3333333)Jkk1Jmk33Q<334)3׽33333333BBł3333J3Błނނ33œłނBBނނholotz-castle-1.3.14-src/res/theme/dungeons/char/main/6/up.spr0000644000175000001440000000246511177007633023063 0ustar jacobusers XL33333L333L33333L L3LL1Ӝ333){kk3ւ333{33J33)33sBł333k3œłނނ33JœނނBނނL33333L333L33333L L3LL1Ӝ3333{J3k3{ւ3k33333333333Bނނ33"kœłނBœނBłނނholotz-castle-1.3.14-src/res/theme/dungeons/char/main/6/jump.spr0000644000175000001440000000107411177007633023405 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/dungeons/char/main/6/stop.spr0000644000175000001440000000107411177007633023417 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/dungeons/char/main/6/jumpright.spr0000644000175000001440000000107411177007633024443 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/dungeons/char/main/6/left.spr0000644000175000001440000000246511177007633023371 0ustar jacobusers XL33333L333L33333L L3LL1Ӝ333){kk3ւ333{33J33)33sBł333k3œłނނ33JœނނBނނL33333L333L33333L L3LL1Ӝ3333{J3k3{ւ3k33333333333Bނނ33"kœłނBœނBłނނholotz-castle-1.3.14-src/res/theme/dungeons/char/main/6/down.spr0000644000175000001440000000246511177007633023406 0ustar jacobusers XL33333L333L33333L L3LL1Ӝ333){kk3ւ333{33J33)33sBł333k3œłނނ33JœނނBނނL33333L333L33333L L3LL1Ӝ3333{J3k3{ւ3k33333333333Bނނ33"kœłނBœނBłނނholotz-castle-1.3.14-src/res/theme/dungeons/char/main/6/slide.spr0000644000175000001440000000107411177007633023532 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/dungeons/char/main/6/jumpleft.spr0000644000175000001440000000107411177007633024260 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/dungeons/char/main/6/fall.spr0000644000175000001440000000107411177007633023350 0ustar jacobusers  L33333L333L33333L L3LL1Ӝ {+ 333+ ւL33{33 33333333333333łނ3Aނނ!ނނނ@kłނނholotz-castle-1.3.14-src/res/theme/dungeons/char/maker/0000755000175000001440000000000011177007633021710 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/maker/1/0000755000175000001440000000000011177007633022050 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/maker/1/dead.spr0000644000175000001440000001150611177007633023476 0ustar jacobusers @ y~ jnqvpuUY "69lpUY|p333uZOOOuuu999 gi'''AA Mkkk++ j2i? M+++R777oooKKK _px,WXW  Up,+++$@6 _x O,= D [[[*EKK go9PHOCUCoooM:FPG Y8LM13H[[[7G7OPKGJF O!L GOIEP'=+5:MQIFMEIIPD1*NKL! @ae"# }ilcgos$&ccc#npLVWnruuu999 gi'''AA Mkkk++ j2i? M+++R777oooKKK _px,WXW  Up,+++$@6 _x O,= D [[[*EKK go9PHOCUCoooM:FPG Y8LM13H[[[7G7OPKGJF O!L GOIEP'=+5:MQIFMEIIPD1*NKL! @qv .0~`cWZ,-gkILMODGccc33323}zOOOuuu999 gi'''AA Mkkk++ j2i? M+++R777oooKKK _px,WXW  Up,+++$@6 _x O,= D [[[*EKK go9PHOCUCoooM:FPG Y8LM13H[[[7G7OPKGJF O!L GOIEP'=+5:MQIFMEIIPD1*NKL!holotz-castle-1.3.14-src/res/theme/dungeons/char/maker/1/hang.spr0000644000175000001440000001150611177007633023516 0ustar jacobusers @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RF KG @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quyF7.Zk$%BB7 n&h"m62E0 4?MI82GJ>NG=#F/,<>K<=MD2+3BG2=G@@22<KV  -.LU/<V H4holotz-castle-1.3.14-src/res/theme/dungeons/char/maker/1/right.spr0000644000175000001440000001465711177007633023730 0ustar jacobusers  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0QQW JJJ ;ttt9ZZZHHHhihhh:::mayzy>>>@MP=.M /777###(II/ <9C&( =U7$+*2G7"%( >;&6&&,2:&1+1!C A\6 $ A]qe6 @::<'''66>bbjVV_ QQ_cci VVr==S::Ff--i; ;;;JJJmmWW~"""7771199CCC**,,,ooo!!!### muFFFSSS%=.M #3###-JI/ D=C&( 9KL0$+ 2>?!"# GF8 *#/L5#C3 :)+ RC ; @'RT>)A  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0 5 vvvuu;AAA>>9lll```,.VXp:::m-<@<>>>,,,KWZ;-? /777### 0 A?4 (2<@/ 038?-$- 5A:) $'<<7) :6%!82$(# ,K\31 D][@( @::<'''66>bbjVV_ QQ_cci VVr==S::F xxx--i* xxx??[AAAooo{{yyyEEErrr$$$"""NNNdddFFF888 i u333999%93.HM("`!YN ;$Y"&^$QA 03HQRN' '33& FON60. 4NLH"2( 6I5 +%+ '/)/+ ; *9E CE=#( 8 holotz-castle-1.3.14-src/res/theme/dungeons/char/maker/1/up.spr0000644000175000001440000000633511177007633023231 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/dungeons/char/maker/1/jump.spr0000644000175000001440000000316411177007633023555 0ustar jacobusers @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<Mholotz-castle-1.3.14-src/res/theme/dungeons/char/maker/1/stop.spr0000644000175000001440000000316411177007633023567 0ustar jacobusers @GGGkkkEEELLLzzzHHH^^^EITTTUFHL>>@ Xfx,,O!!!338 u|p OOO''79quyRRR000.ZkKKK+++'H4+.&B[[[111 /#:4###  -+* >>>/<0+1C>= M/;N" G6J S 2DG32> 0 ?X?  IZ@holotz-castle-1.3.14-src/res/theme/dungeons/char/maker/1/jumpright.spr0000644000175000001440000000316411177007633024613 0ustar jacobusers @bbb///GGGOOOnnzDDGnn66~@@::E888777k55%%III hhh...{{{.h O kkkMMM@@@-o~BPAGGG{{{- EHA PPP8{}OQ>7"7JBPM>@H+:CO:M@ <* JF =B2 AI=>?H: T M2C&@&<M HI -holotz-castle-1.3.14-src/res/theme/dungeons/char/maker/1/left.spr0000644000175000001440000001465711177007633023545 0ustar jacobusers  @,,,GGI jjtDDM (ll~ ffr``~##0rr>>g WQQ; JJJ9ttthiHHHZZZ>>>yzyam:::hhh###777/M =.@MP /II( (&C9<*+$7U= (%"7G2,&6&;&>1+:&2!C1 $6\ A6eq] A @'''::< VV_bbj66> cciQQ_VVr::F==S ;i--fWW~mmJJJ;;;9911777"""!!!ooo,,,**CCCSSSFFFum #######3M =.% /IJ- (&C=D +$0LK9 #"!?>2 #* 8FG #5L/+):3 C' @; C R A)>TR @,,,GGI jjtDDM (ll~ ffr``~ ##0rr>>g 5;uuvvv9>>AAAVXp,.```lll>>><@<-m:::###777/? ;-KWZ,,, 4?A 0  /@<2(-?830 ):A5- $7<<'$!%6:) #(2$83\K ,(@[] D1 @'''::< VV_bbj66> cciQQ_VVr ::F==S *i--xxx??[xxxyyy{{oooAAAdddNNN"""$$$rrrEEE999333u i 888FFFM.H93% NY"`!( AQ&^$$Y"; 'NRQH30 NOF& 33'HLN 4.065I 6(2"+/)/ '+% + CE9 * ; 8(#=Eholotz-castle-1.3.14-src/res/theme/dungeons/char/maker/1/down.spr0000644000175000001440000000633511177007633023554 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/dungeons/char/maker/1/slide.spr0000644000175000001440000001465711177007633023713 0ustar jacobusers @wwwSSSAAAccc+++hhh???AAA<<<[[^xxx$$$!!!000 Rvc3333hyr008hoooGGGG )T=PN?JPP> GOO=J- C@$@N3 P )RSBN  @444///GGGwww```EEE{{{:[[[___99{!!lW##l,,,YYd3333hO r008 i{@*$@q-6'9GL'''- x kPN[2Lms~iWY;SSS )sb Gj<{E0^V[N9,3%<IP OD+QQ>GS @+++cccAAApppAAA///sss$$$xxxVVfmUUzCCCcv$$$$ppt h3333a008r^GGGooo!#1 )TG?NP= >PPJOOG-J=$@C N@ ) P3SRNB  @ ;;;^^^oooYYY99{hYY,,,''' /2 xE SSS;\ |s E{-DZf m=Pd8OF=K holotz-castle-1.3.14-src/res/theme/dungeons/char/maker/1/jumpleft.spr0000644000175000001440000000316411177007633024430 0ustar jacobusers @///bbbGGGnnzOOO888::E@@66~nnDDGhhh III%%55k777MMMkkk Oh.{{{...BPA~o-@@@AHE -{{{GGG7>QO}{8PPP H@>MPBJ7"@M:OC:+FJ *< I A 2B= M T:H?>= M<&@&C2-  IHholotz-castle-1.3.14-src/res/theme/dungeons/char/maker/1/fall.spr0000644000175000001440000001150611177007633023517 0ustar jacobusers  @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @ jjj888GGGkkkEEESSSAAAtttgggLLLzzz'''~~~sssIII~~~ppp$$>"HHH^^^!!dkkkAAAQQQdPPYd{44e ^} x |9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RFKG%  @GGGkkkEEELLLzzz"HHH^^^-dPPYd nGGGGyyy22Z s}EE===eeeooo+++ x |(((FFFeee---9q|{LLLddd UUU>>>  .Zk$$$[[[AJ/ p&h"m61E7AJMI82GJ>NG9,4,<>K<=MD0D.2=G@@22<3BG  -KVU/.L<V H43holotz-castle-1.3.14-src/res/theme/dungeons/char/random/0000755000175000001440000000000011177007633022071 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/random/2/0000755000175000001440000000000011177007633022232 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/random/2/dead.spr0000644000175000001440000002003011177007633023650 0ustar jacobusers  @+9=*9=  0*7~)7;'48-          @      '  4   %+Y$)(*  *.  ";+9=7IS  "$'*9=&)(+.=C   0*7~C*.#& "$& "$AX)7;'48-          @        $       &     +  %)+  "@ !$,TZ&)D\b"%   $'&38  ,;I2!*?*2*8>+:? :NT  (+*- *. $F</7G"-91BG&37 +.$15$'(+ %(!') "$8Kn9M@Vftefl^}MgoNipIbi9LR+:?$041BF""-1Ywiolgn]|bZyWs|]}g]{kcVt|!-0,;?;OT@U[9LR5FK8KQ,;@+:>)7;'48-          @             %       /        (7     "-< )+   )7D  "'5:  !#%'  (0%2?( +/ '*  #&   $' *:B1BM +4)8=#14 &*%)!-0!.1  =R[G^i5FQ %4FL""/3*-!,0$04-=A%( +.%(/@E 1%4%-8$*#%#&"%".2&27 $&".1 "$.H%R,;@2DI,;@,<@-)7;'48-          @                                      "         $            #        ,#'    #   $6'     #%)'+    /@E !(,".2"$#& $ " +/#/3$&".1 "$.HE&))6;(,"$&(%(  %'"!$ +/(+),(*!!      +.%26#% #/2.=A)6;'37/?D'+!          holotz-castle-1.3.14-src/res/theme/dungeons/char/random/2/hang.spr0000644000175000001440000000316411177007633023701 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/dungeons/char/random/2/right.spr0000644000175000001440000001150611177007633024100 0ustar jacobusers @ *9=+9=   %'7IO=Om9LR,;@8KQ5FK9LR@U[;OT,;?            @  *9=+9=*.-;?'590@E,;@ngloiYw"-1+:>9LR]|etmE\9LR)7;'48-         holotz-castle-1.3.14-src/res/theme/dungeons/char/random/2/jump.spr0000644000175000001440000000316411177007633023737 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/dungeons/char/random/2/stop.spr0000644000175000001440000000316411177007633023751 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/dungeons/char/random/2/jumpright.spr0000644000175000001440000000316411177007633024775 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/dungeons/char/random/2/left.spr0000644000175000001440000001150611177007633023715 0ustar jacobusers @+9=*9=  0*7~)7;'48-          @+9=*9=    0*7~)7;'48-      @ +9=*9=  -     holotz-castle-1.3.14-src/res/theme/dungeons/char/random/2/down.spr0000644000175000001440000000316411177007633023733 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/dungeons/char/random/2/slide.spr0000644000175000001440000000316411177007633024064 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/dungeons/char/random/2/jumpleft.spr0000644000175000001440000000316411177007633024612 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/dungeons/char/random/2/fall.spr0000644000175000001440000000316411177007633023702 0ustar jacobusers @+9=*9=  0*7~)7;'48-         holotz-castle-1.3.14-src/res/theme/dungeons/char/random/5/0000755000175000001440000000000011177007633022235 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/random/5/dead.spr0000644000175000001440000001174311177007633023666 0ustar jacobusers Ӝ}]U~U0qU}Z0޺ޚxUZ cQ]ﶵqy44ΖsZQBpWySsƂEqW0sy΂114}׽{9{U]Y׽QY]ނ{Ӝ4Y00ƶyζy΂u]u׽޾8Ƃy}y΂{ulf0o~KflIKe31u-niKlr1o}o}Nu1r󞲖l}Ѕ}rT1NuNuQT}Җ.u3 `1m1uІu gJV eu111.w o ok^Mmmmu111fnmmmm*TpvnummMmo~nf~u\C ^vv~fud'>k^nvK^\HC]u~d,fhCduІO~~mmmmvO~юdmu,e,e/~u Mmuu\mmmm\eUmmE Tuu]U])MJTJTmmumUjUjTjTLeMm,e]JU\JTJT,ejUjULe\K:D]]eM\K5)MeMmMm+]MK2L\umd T UK\mm edJTJTKk\\ \Tk\jTKLDJT<LDD'32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RF KG @BBB<<<???ttt111MMMVVV\\\QQQEEEaaa GGGkkkEEEcccqqqLLLzzz"""LLLHHH^^^@@@mmm))bTTTUF MMMMZZZ333++of|CCC u|p9quyF7.Zk$%BB7 n&h"m62E0 4?MI82GJ>NG=#F/,<>K<=MD2+3BG2=G@@22<KV  -.LU/<V H4holotz-castle-1.3.14-src/res/theme/dungeons/char/random/3/right.spr0000644000175000001440000001465711177007633024113 0ustar jacobusers  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0QQW JJJ ;ttt9ZZZHHHhihhh:::mayzy>>>@MP=.M /777###(II/ <9C&( =U7$+*2G7"%( >;&6&&,2:&1+1!C A\6 $ A]qe6 @::<'''66>bbjVV_ QQ_cci VVr==S::Ff--i; ;;;JJJmmWW~"""7771199CCC**,,,ooo!!!### muFFFSSS%=.M #3###-JI/ D=C&( 9KL0$+ 2>?!"# GF8 *#/L5#C3 :)+ RC ; @'RT>)A  @GGI,,,DDMjjt  ll~( ``~ffr>>grr##0 5 vvvuu;AAA>>9lll```,.VXp:::m-<@<>>>,,,KWZ;-? /777### 0 A?4 (2<@/ 038?-$- 5A:) $'<<7) :6%!82$(# ,K\31 D][@( @::<'''66>bbjVV_ QQ_cci VVr==S::F xxx--i* xxx??[AAAooo{{yyyEEErrr$$$"""NNNdddFFF888 i u333999%93.HM("`!YN ;$Y"&^$QA 03HQRN' '33& FON60. 4NLH"2( 6I5 +%+ '/)/+ ; *9E CE=#( 8 holotz-castle-1.3.14-src/res/theme/dungeons/char/random/3/up.spr0000644000175000001440000000633511177007633023414 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/dungeons/char/random/3/jump.spr0000644000175000001440000000316411177007633023740 0ustar jacobusers @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<Mholotz-castle-1.3.14-src/res/theme/dungeons/char/random/3/stop.spr0000644000175000001440000000316411177007633023752 0ustar jacobusers @GGGkkkEEELLLzzzHHH^^^EITTTUFHL>>@ Xfx,,O!!!338 u|p OOO''79quyRRR000.ZkKKK+++'H4+.&B[[[111 /#:4###  -+* >>>/<0+1C>= M/;N" G6J S 2DG32> 0 ?X?  IZ@holotz-castle-1.3.14-src/res/theme/dungeons/char/random/3/jumpright.spr0000644000175000001440000000316411177007633024776 0ustar jacobusers @bbb///GGGOOOnnzDDGnn66~@@::E888777k55%%III hhh...{{{.h O kkkMMM@@@-o~BPAGGG{{{- EHA PPP8{}OQ>7"7JBPM>@H+:CO:M@ <* JF =B2 AI=>?H: T M2C&@&<M HI -holotz-castle-1.3.14-src/res/theme/dungeons/char/random/3/left.spr0000644000175000001440000001465711177007633023730 0ustar jacobusers  @,,,GGI jjtDDM (ll~ ffr``~##0rr>>g WQQ; JJJ9ttthiHHHZZZ>>>yzyam:::hhh###777/M =.@MP /II( (&C9<*+$7U= (%"7G2,&6&;&>1+:&2!C1 $6\ A6eq] A @'''::< VV_bbj66> cciQQ_VVr::F==S ;i--fWW~mmJJJ;;;9911777"""!!!ooo,,,**CCCSSSFFFum #######3M =.% /IJ- (&C=D +$0LK9 #"!?>2 #* 8FG #5L/+):3 C' @; C R A)>TR @,,,GGI jjtDDM (ll~ ffr``~ ##0rr>>g 5;uuvvv9>>AAAVXp,.```lll>>><@<-m:::###777/? ;-KWZ,,, 4?A 0  /@<2(-?830 ):A5- $7<<'$!%6:) #(2$83\K ,(@[] D1 @'''::< VV_bbj66> cciQQ_VVr ::F==S *i--xxx??[xxxyyy{{oooAAAdddNNN"""$$$rrrEEE999333u i 888FFFM.H93% NY"`!( AQ&^$$Y"; 'NRQH30 NOF& 33'HLN 4.065I 6(2"+/)/ '+% + CE9 * ; 8(#=Eholotz-castle-1.3.14-src/res/theme/dungeons/char/random/3/down.spr0000644000175000001440000000633511177007633023737 0ustar jacobusers @ooocccGGw1HHvNNattu///pbb$$})nrrrAAA000LLLhr777AAA Al ***(((B?POG,7OSQLM<O-N>>FHR/1BK?6%+&S+R5@SS'2V :'YX3P @cccooo1GGwttuNNavHH)$$}bbp///rrrnLLL000AAAAAA777rh(((*** l A,GOP?BMLQSO7F>>N-O<1/RH6?KB+S&+%S@5R'S :V23XY'Pholotz-castle-1.3.14-src/res/theme/dungeons/char/random/3/slide.spr0000644000175000001440000001465711177007633024076 0ustar jacobusers @wwwSSSAAAccc+++hhh???AAA<<<[[^xxx$$$!!!000 Rvc3333hyr008hoooGGGG )T=PN?JPP> GOO=J- C@$@N3 P )RSBN  @444///GGGwww```EEE{{{:[[[___99{!!lW##l,,,YYd3333hO r008 i{@*$@q-6'9GL'''- x kPN[2Lms~iWY;SSS )sb Gj<{E0^V[N9,3%<IP OD+QQ>GS @+++cccAAApppAAA///sss$$$xxxVVfmUUzCCCcv$$$$ppt h3333a008r^GGGooo!#1 )TG?NP= >PPJOOG-J=$@C N@ ) P3SRNB  @ ;;;^^^oooYYY99{hYY,,,''' /2 xE SSS;\ |s E{-DZf m=Pd8OF=K holotz-castle-1.3.14-src/res/theme/dungeons/char/random/3/jumpleft.spr0000644000175000001440000000316411177007633024613 0ustar jacobusers @///bbbGGGnnzOOO888::E@@66~nnDDGhhh III%%55k777MMMkkk Oh.{{{...BPA~o-@@@AHE -{{{GGG7>QO}{8PPP H@>MPBJ7"@M:OC:+FJ *< I A 2B= M T:H?>= M<&@&C2-  IHholotz-castle-1.3.14-src/res/theme/dungeons/char/random/3/fall.spr0000644000175000001440000001150611177007633023702 0ustar jacobusers  @GGGkkkEEELLLzzzooo```444HHH^^^RRR777(((ddd$$$<<<88nITTTUFH!!dRRR555mmmeeeFFF XfxOOO333 u|p9quy.Zk,;9Q; H4+.&7BE>32JFPM5AIF/1GNG&QNEBK7E'P4JEF%8"K7 :=R H<XBW42Z.P=<M @ jjj888GGGkkkEEESSSAAAtttgggLLLzzz'''~~~sssIII~~~ppp$$>"HHH^^^!!dkkkAAAQQQdPPYd{44e ^} x |9q|{.Zk7D8 p&h"m728.5?MHM5AJ1DED:G?(FFOEBOBJN=F<N FLGLFB13J< 5=81 DFEUAD9W(?2-(RFKG%  @GGGkkkEEELLLzzz"HHH^^^-dPPYd nGGGGyyy22Z s}EE===eeeooo+++ x |(((FFFeee---9q|{LLLddd UUU>>>  .Zk$$$[[[AJ/ p&h"m61E7AJMI82GJ>NG9,4,<>K<=MD0D.2=G@@22<3BG  -KVU/.L<V H43holotz-castle-1.3.14-src/res/theme/dungeons/char/random/1/0000755000175000001440000000000011177007633022231 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/random/1/dead.spr0000644000175000001440000002320111177007633023652 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<y>>?bbֻ̘ԯk?@@>>ԯʥ^>>?yaʥ_y ^k? ##(### yy ##(@###>>? @>>?###@##( y!-!XX_#####( {\zwJS4MM{\ܧǓ~~S4>>?!zΠۼȱԶRI:0T@1$vȱ|nh^>>?!mnӵ£yI S4dhRS4J$$)###S4I^IS4J##(D6Z!###>>? @>>?######  )#S?dI=G F/Bk?O^OD-9###-*1D-@ac\lVD-9  ÒyI6Zakkk?U)#>>?O}y6+: -":yVT]C/9 \Ej^jI8Z  =+WwHқu]j=)3Og-":  +!:|[U֞)#k?[vmzX=,W|[kkG;A  E.:YkU|PprXwD-9  ^FV̕iOkk?UD-9-*,lXcJ2>=)3)#  888 @   0*-  +$@+6S7E}^n[EP~wz J8@^9L|Hh`^{_:M=)2 =)2iAWT_|LwISkUqf=R=)2 vQg[UrNB0X!29%PhCOyRm]9K+$%#$ĒxtP&4   !+fAn]|Gb@+6  y]lU@,X   <'DV|YwO2@[=MepB!2*+py[=MO2@RyxH<(P   E1CbET  @+6|Hd\gA!+   !mJ_azF0;  +$^9KTpS}oKxB.L$$=+8gCXRkYr_:M@4: F3<jBVew}PqyJd\vSkg?S=)2 =)2vQcu`}QmzGa]9K=)2 {U@JS7ES5DO2@@+6+$  @ ("-&(" ("?*5O3AZ7Hb>PlIZT7FH4>.#' ZKRS4C\7I;"/ H/;n{S4C7%. 7%.];LG-:  D(6Z7H7%..#'S4CE)7  D'5S4C(" M9C  \6I?*5 cFT^FQ  ;"/O3A.#'_>O Z7H("1$+_F];LE(6   G+8Z7H7%. 7%.S4ClzF-9 ;"/\6IS4C7%.  @holotz-castle-1.3.14-src/res/theme/dungeons/char/random/1/hang.spr0000644000175000001440000000316411177007633023700 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>?holotz-castle-1.3.14-src/res/theme/dungeons/char/random/1/right.spr0000644000175000001440000002320111177007633024072 0ustar jacobusers  @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/dungeons/char/random/1/up.spr0000644000175000001440000002320111177007633023401 0ustar jacobusers  @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/dungeons/char/random/1/jump.spr0000644000175000001440000002320111177007633023730 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/dungeons/char/random/1/stop.spr0000644000175000001440000000316411177007633023750 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>?holotz-castle-1.3.14-src/res/theme/dungeons/char/random/1/jumpright.spr0000644000175000001440000002320111177007633024766 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/dungeons/char/random/1/left.spr0000644000175000001440000002320111177007633023707 0ustar jacobusers  @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/dungeons/char/random/1/down.spr0000644000175000001440000002320111177007633023724 0ustar jacobusers  @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/dungeons/char/random/1/slide.spr0000644000175000001440000002320111177007633024055 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/dungeons/char/random/1/jumpleft.spr0000644000175000001440000002320111177007633024603 0ustar jacobusers @>>?###@##( yy #####( <<bb<< y<<bb<<y>>?bbbbbb@@<<bbbbbb<<>>?y<<bb<<y ##(### yy ##(@###>>? @"""ffhiin--Ijj8''<<EE"" 899uuvvVV22--I"""iimjjWWaaLLffhffhQQoogg^^..jjiim"""--I<<VVEE8 ''8jj--Iiinffh""" @ &&&99= ;;HQQz  m''~4 4//--m;;H&&& ~<<ssggSS++''  \\}}__??QQy99=99=QQyZZnn]],, ''--JJSSVV~ &&&;;Hm4 4~''m  QQz;;H 99=&&&  @)))CCCDDE??T ??Spp~\??SDDE)))\ ppCCC ~<<]]ZZZZ??T[[uu^^33[[uu^^33??T<<]]ZZZZ~ CCCpp \)))DDE??S\~pp??S ??TDDECCC))) @  >>>LLN ..;KKK>>>KKK66q~ jjLLN ..;jj66q  --JJSSVV~ZZnn]],,\\}}__??~<<ssggSS++ 66q//--jj..; LLNjj ~66qKKK>>>KKK..; LLN>>>  @@@@((( 8hhDDF (((DDF%'''XX%@@@XX 'hh''<<VVEE8QQoogg^^..WWaaLL899uuvvVV22''hh'<<EE"" XX@@@%XX'''%DDF((( DDFhh8 (((@@@holotz-castle-1.3.14-src/res/theme/dungeons/char/random/1/fall.spr0000644000175000001440000002320111177007633023673 0ustar jacobusers @###>>?##(@ yy <<bb<< ##(###y<<bb<<y@bbbbbb>>?>>?<<bbbbbb<<@y<<bb<<y#####( yy @##(>>?### @"""iinffhjj--I'88 ""EE<<'--I22VVvvuu99ffhLLaaWWjjiim""""""iimjj..^^ggooQQffhEEVV<<--I' 88'--Ijjffhiin""" @ 99=&&& QQz;;H 4~''m &&&;;Hm--//4''++SSggss<<~99=QQy??__}}\\  ,,]]nnZZQQy99=~VVSSJJ--''4m;;H&&&  m''~4 ;;HQQz &&&99=   @CCC))) ??TDDE)))DDE??S\~pp??SCCCpp \??TZZZZ]]<<~ 33^^uu[[33^^uu[[ ~ZZZZ]]<<??T\ ppCCC??Spp~\??SDDE)))DDE??T )))CCC @  >>>KKK..; LLN>>> LLNjj ~66qKKK66qjj..;~VVSSJJ-- ,,]]nnZZ??__}}\\  ++SSggss<<~..;jj--//66qKKK66q~ jjLLN >>>LLN ..;KKK>>> @(((@@@ DDFhh8 %XX'''%DDF(((' XX@@@EEVV<<''hh..^^ggooQQ88LLaaWWhh''22VVvvuu99@@@XX ""EE<<'(((DDF%'''XX% 8hhDDF @@@(((holotz-castle-1.3.14-src/res/theme/dungeons/char/random/4/0000755000175000001440000000000011177007633022234 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/random/4/dead.spr0000644000175000001440000001341211177007633023660 0ustar jacobusers  Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaaaaaapaahapaxaaaaaaaaaxaaahaxaaAXapaaaahaaaxaxaaaaxahaaaaaaaaaaaaaa Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaaaaaapaahapaxaaaaaaaaaxaaahaxaaAXapaa)!!!! a9IIA!)aAaaa9€rQAAAAA!b Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaaaaaapaahapaxaaaaaaaaaxaA1AIA!1`yaa!1a9a9Q`aaaZ!Z¡ajZʡʠ bI`@a`@b Qmk]uӜy]paxh PPAPAHaxaaaxAHahaxaa aapaahxA᱁aaaaaa9AQ!1Aa9QraҡҡʡrAbI@@a!bajaaaaZ 1  1 #Z#Z A铠 o`A#Z###ZAj S@Qޢr#C¢Q#Z#Z##b⚂#Z#Z#Z##cCƒC##Z#Z##ʣcC###Z#Zz"ˡºB Q@ˡ z@)!¡Axàa`Ӂ`za9 Aa9A ʡZ! a9I@Q!ZA1QAj KOɣKĬKOũ)Nhrh K)KKh' **̋ԫԋ hˋ. oݫ*JÈo-I  holotz-castle-1.3.14-src/res/theme/dungeons/char/random/4/hang.spr0000644000175000001440000000316411177007633023703 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/dungeons/char/random/4/right.spr0000644000175000001440000000645711177007633024113 0ustar jacobusers  aAӜaaaaaaaaaaaAxaaAa PAhAxaaaaxaaaaxaaaaaaaaAhApaa AhaaAp PApaAxaAA`AhaAxaA PA`AA`aa A` ` PA@0a A  P XAA P P PA`Aa AApAhAaaaA`AAAxAhaAaaA`AhAaaa A X XAhAaa H HA`AhAhAhA AAAAa 8ƂuAhA`Ap `8ƲAaa׽aւAp PAxA XaaxaAh XaaaaaA PaaAxaaa h Paaaaa pAhaxaA `ApApaaApAxaAAXPAxaAhAhAxa(( HAxaa08@@A`AhaaHP ` ` Xaaa` X0H `A`AxaAxAx0aaaaAaa uY΂a4E)aqUZӜAAƺւaAhApA`ApA`aAxaApaxAaaa XAxaaaxaa P XA`aaaAx @0A`ApApaA PAx X P hApaAxAh hAXA` Xaxaaxa P haa P PAhAxa 8Ƃ4xx xhphphppxhhpxXxxPXhpPPpxPh88PhpxPH@XpPPholotz-castle-1.3.14-src/res/theme/dungeons/char/random/4/up.spr0000644000175000001440000000323511177007633023411 0ustar jacobusers  Qmk]upӜy΂]XPނxpX`xxx mkQyӜpu]PX]ނpx`Xxxxholotz-castle-1.3.14-src/res/theme/dungeons/char/random/4/jump.spr0000644000175000001440000000134011177007633023733 0ustar jacobusers<paւu hpp p hp h hpp hppholotz-castle-1.3.14-src/res/theme/dungeons/char/random/4/stop.spr0000644000175000001440000000316411177007633023753 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/dungeons/char/random/4/jumpright.spr0000644000175000001440000000152411177007633024775 0ustar jacobusers y΂aaXUyahaaHAhApaXaxA@AhAxaa@AhApApA@ P PAhAxa@ PAhApaaaaxaaaaaaAhApaAhaaAp PApA`AhaAxaA PA`A` ` PA@ H H  P X H HA`Ap P P PA`A H PA`aaApAhAaaa H PaaaAxAhaAaaA`aa HaaApApApholotz-castle-1.3.14-src/res/theme/dungeons/char/random/4/left.spr0000644000175000001440000000645711177007633023730 0ustar jacobusers  aaaӜAaaaaaaaaaAxaaaAxAh PaAaaxaaaaaaaxaaaaApAhaaaaaAxaAp PApaaAh aaA`AA` PAaAxaAhA`AA a0@A P `A` A X P aAA` P P PAAA`aaaAAhApAAAhA`aaAaAhAxAAAh X XA aaaAAhAhAhA` H H aaaAAAA  8Ƃ `ApA`Ahu׽aaA8ƂւaAx PApaxa XAaaaaa XAhaaaAxaa PAaaxAh paaaaa P haaAxApaaApAp `AaAxAhAhaAxPXAAaaAx H((aaAhA`@@80aaa X ` `PHaAxA` `H0 X`aaa0AxAxaaAa uaY΂qaE)4ӜZUAAAhaA`ApaA`ApaAaxApaAxaaAx X aaA` X Paaax0 @Axaaa PAaApApA`aAp h P XAxaax X A`AX hAhAxaa h PaaxaAxAh P P 8Ƃ4 xxphxphhhxppxxXxphXPphpPPphP88hPxpX@HPxPPholotz-castle-1.3.14-src/res/theme/dungeons/char/random/4/down.spr0000644000175000001440000000323511177007633023734 0ustar jacobusers  Qmk]upӜy΂]XPނxpX`xxx mkQyӜpu]PX]ނpx`Xxxxholotz-castle-1.3.14-src/res/theme/dungeons/char/random/4/slide.spr0000644000175000001440000000152411177007633024064 0ustar jacobusers  ւpx]xxpxֶh]p]8Ƃhx]X]h`ӜXpq`{phxXhhPx`XxXp`hpxxhh`xhpxxholotz-castle-1.3.14-src/res/theme/dungeons/char/random/4/jumpleft.spr0000644000175000001440000000152411177007633024612 0ustar jacobusers y΂aXaApAhHaaahyUApApAha@aAxAhA@axaXaApAh Pa@AxAh P PA@aaaaaxaaApAhaaaAp PApaaAhA` PAaAxaAhA` H H@A P `A`ApA` H H X P aaA` P HAA` P P Paaa P HaaaAAhAp HaaA`aaAaAhAxApApaaApholotz-castle-1.3.14-src/res/theme/dungeons/char/random/4/fall.spr0000644000175000001440000000316411177007633023704 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/dungeons/char/random/6/0000755000175000001440000000000011177007633022236 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/char/random/6/dead.spr0000644000175000001440000002662311177007633023672 0ustar jacobusers zObpjzzojz Z Zojrz Z.b.bojOjzzrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZrpjrjrObzz Zojzpjrzrrrzrzz ZojzrojzrzObpjzzojz Z Zojrz Z.b.bojOjz6zrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-Zpjrj6rObzz Zojzpjrzrrrzrzz ZojzrojzrzOb6pjzzojz Z Zojrz Z.b.bojOjzzrNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.b6zzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZpjrjrObzz Zojzpjrzrrrzrzz ZojzrojzrzObpjzzojz Z Zojr6z Z.b.bojOj56zrNbI-Zzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-ZԓrԓObz Zojpjrzrrrzrzz ZojzrojzrzObpjzzojz Z Zojrz Z.b.bojOj[zrNbI-Zzzrzpjoj.bIP{.bzpj.brrrԓpj ZQ.b6riAQrzzroj ZzriA.bͱzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-Z:֬rԓ[Obz Zojpjrzrrrzrz ZojzrojzrzOb[pjzzojz Z Zojrz Z.bojOjͱzrւI-ZzzűrzpjojIW.bzpj.brrr֬pj ZQ.briAQrzzroj ZzriA.b[ֱzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZojNbj-Z֬r׬Obz Zojpjrzrrrzrz ZojzrojzrOb6ԓzojz Z Zojr6[6z Z.bojOj[=[ֱzrIz[zpjojP{Œ6zpj.brrr֬pj ZP{.b6[ԓiAQzzroj ZriAzOb ZQrH9Ioj6zr Z Zi9 Zojzrr.b.b.bjrzzqӋ6j-Zx=łr=ł Zoj6ӓrzrrzrz6qojzrojz6rŕ~xŶz Z Zojrz Z΂ojOj׬r]IWzűzpj΂6=Wpjrr涬 Z6.b[xiAS׬z׬oj ZŶiAWޱzOb ZQrH9Ir Z Zi9 Zojzrr.b.brzzW{xxźŐju{֞ނ׬=ނxޙ ZojŜxr׬󂙽rrz׬z=WojzrojzŐr;֛łޞ{ւ֜͂׬ Zuojr^ Zނoj;^^޿3zւ׬^׬]Zξ{ւpjΑr ZZΕ^{ނiAS׬׬Ζ Z޶{׬Ob ZQ׬H9I=r Z Zi9 Zojrr.b.bαrzzW{xx޺Őju{֞ނ=xޙ Zoj=xr׬ނrrz΂z~Zւojzrojz޶ނ=;=ނ;΂tŶ;=^=u]͂;];=;=ֶ涬]=tł=~t;΂~ΕuT΂S~ֶtut׬łu׬׬Z{ւ{=޶~~{=u~{ւ;׬׬=׬׬;=΂ނ=;=ނ;΂tŶ;=^=u]͂;];=;=ֶ涬]=tł=~t;΂~ΕuT΂S~ֶtut׬łu׬׬Z{ւ{=޶~~{=u~{ւ;׬׬=׬׬;=΂^=^=;Ż΂;~~żނ;^^]~;~~ޞ]~͂=]]ł]ނ޾]ł~ł޿łżނ]΂=΂]ł=~]~^͂~^^^=ނ^^=^=^^^=ނނ==^^=ނ^޻޻ނ]֛=^޻޻ނֻ޼=ޞނ=ނ^^ނ^]^==]^=^=<=~====]===^]]==]^^]==]]]^^=^]=^==]^^=<====]=]^]]]^=^]^ holotz-castle-1.3.14-src/res/theme/dungeons/char/random/6/hang.spr0000644000175000001440000000126411177007633023704 0ustar jacobusers zzjzzrrzzjojzzrrojNbzzrNbzzzrojzrojjrNbzrrojojojjojOb Zzzzrrr Z-ZjjojNbzzzroj-ZNbNbNbzzojOb-Z.bNbrrNbObNbojjzrojoj Z ZzjNbNbojNb ZQ ZjzzrojojNb ZNbjpjobjzzrjojrojojrrrrojojzzojjrjjaojojojNbzzrojojojojjNb ZzrrrrojObNb-ZzzrrojNb.bzzholotz-castle-1.3.14-src/res/theme/dungeons/char/random/6/right.spr0000644000175000001440000000545311177007633024110 0ustar jacobusers rrzObzojNbzz Zzzoj ZNbrzrrzrr-Zrrjojrzrz-brzzjNb.bObNbzzQNbrzoj.b ZNbjzjrojNb-b.bojojOb.b-Z-Z.bObNbojoj-ZNbNbojojrojNbr Z-Z.brrr Zr-Z-ZzrrNbrrzIojrzObjrQQrzzQ.bojz Z-Z ZrzojzojzzjNb.Zojrzzroj-ZQNbrzrrojrNbQrzrrrjz-ZjzzzzzrrzNb Zzrrzrrpjoj.b ZjzzzjOb-Z Z ZjzzzzOb Zjzzzrpj-ZIjrrNbQ RzzNb ZrrNb RQzrzpjNbrjjQQrzrr-Zojoj-ZQzzzojojNb.b Rzzrr R R Z Zrrojz0ojrzojNbjrrNbNbojrQNbpj-ZNbojNbIjzr.b-ZNbj-ZIrrNboj.bzzojNbojzzj.bjzzzojNb-ZrrzrzzzojojrzrzrjNbzrojojpjrrrrOb-ZNbojojrrrrrojNbrzr-ZrrojrzrzNbrojojzzrNb.bojrrObjjjojzrzzzzrrrpjzrzojzzzjzzjrrojNbzr Z-ZzzzrzrpjojrpjNbrQ ZrjojojrrojjjojojNbrjrjzzojojjzrzzojjojojrzzzpjzzrrojzzrrzrrrpjrojojzpjzrrojojojzojjrrzrrojNbNbzzpjojzpjojObojrrojrholotz-castle-1.3.14-src/res/theme/dungeons/char/random/6/up.spr0000644000175000001440000000265511177007633023420 0ustar jacobusers rObrOb-Zrr.b R ZNb ZQrrrNb ZrojQrrrrojojr-Zojrrrroj.bojrrrrrrrrrNbrrrjrrjrrrrNbrrrObrrojrrrNbrrrojojNbrrrNbrrj Z.brrrrojNbrjIQrNbrrjNb.bojojIrojNb-Z Z ZQNbojNbrNbIAI ZNbObojNb ZQ9Q ZNb ZNbNbNbojNbojojNbObr-ZObrQ ZNb Z R.brrQojr ZNbrrroj-Zrojojrrrrrrrrroj.bojrrrrjrrjrrrNbrrrrojrrObrrrNbrrrrNbojojrrrNbrrr.b ZjrrNbrrrQIjrNbojrrrrIojoj.bNbjrrNbrNbojNbQ Z Z-ZNbojrObNb ZIAINbrNb ZQ9Q ZNbojNbNb ZNbojNbNbojojholotz-castle-1.3.14-src/res/theme/dungeons/char/random/6/jump.spr0000644000175000001440000000145411177007633023743 0ustar jacobusers rpjrzrrrojObzrrrjojrrjjoj-ZrrojojrrrrrojNb-Z ZzrrrojojrojojObNb.b-Zrrrrroj ZNbNb-Z-ZrrrrOb-Z.b-ZzrojojNb-Z.bQrr Zoj RzrrrrrrjjjrrrpjrrrrrjrrrrojObrrjrrrjzrjNbojrjpjjrrrojzrrojrrrojjQrrj.b-Z-ZpjrNb Z-Z ZQIholotz-castle-1.3.14-src/res/theme/dungeons/char/random/6/stop.spr0000644000175000001440000000133411177007633023752 0ustar jacobuserszObpjzzojz Z Zojrz Z.b.bojOjzzrNbNbI-Zzzzrzpjoj.bIQ.bzpj.brrrpjpj ZQ.briAQrzzroj ZzriA.bzzOb ZQrH9Iojzr Z Zi9 Zojzrr.b.b.bjrzz ZObojNbrj-Z-ZrpjrjrObzz Zojzpjrzrrrzrzz Zojzrojzrholotz-castle-1.3.14-src/res/theme/dungeons/char/random/6/jumpright.spr0000644000175000001440000000145411177007633025001 0ustar jacobusers Nb-Z-ZrNbObojojNb-ZzrObNbjrrrNbObzrrrrrrrrjojNbzrrrrrrrjrrjjrrrjojjrrrpjjObjrrrjrojrrrrjjrrrrjrojojojrrrrjrojNbNbzrrrjjrNb.bNbzrrrjjrObOb-ZzrrrrpjrrojOb-Z-ZzrrrrpjrNbNbzrrrrrrrrrrrrrjholotz-castle-1.3.14-src/res/theme/dungeons/char/random/6/left.spr0000644000175000001440000000545311177007633023725 0ustar jacobusers rrObzNbojz ZzzrNb Zojzzr-Zrrzrrzzr-bzrzrojjrrNbQzzNbOb.bNbjzjzjNb Z.bojzObojoj.b-bNbojrojojNbOb.b-Z-Z.brNbojrojojNbNb-Zr Zrrr.b-Z ZzrrNbrrz-Z-ZrjObzrojIzzrQQzoj.bQr Z-Z ZojzojzNbjzz-Zojrzzroj.ZNbrojrrzrNbQzjrrrzrQ ZNbzrrzzzzzj-Z Z.bojpjrrzrrz Z Z-ZObjzzzj ZObzzzzjI-Zpjrzzzj ZNbzz RQNbrrjNbpjzrzQ RNbrr-ZrrzrQQjjrojzzzQ-Zojojrrzz R.bNbojzojrr Z Z R R0rojNbojzNbNbrrj-ZpjNbQroj-Z.brzjINbojNbNbrrI-ZjNbNbojzz.boj.bjzzoj-ZNbojzzzjrrzrzzrojojzzrzNbjrzrrrrpjojojrrojojNb-ZObrNbojrrr-ZrzrrojrrrzNbzojojroj.bNbrzzojjjjObrrpjrrrzzzzrzNbojrrjzzjzzzojzrzNbpjrojpjrzrzzz-Z Zrzojojjjojrrojojjr ZQrzzjrjrNbojzzrzjojojpjzzzrojojjrrzzojrrzzpjzojojrpjrrrzrrjojzojojojrrzojpjzzNbNbojrrzrojrrojObojpjzholotz-castle-1.3.14-src/res/theme/dungeons/char/random/6/down.spr0000644000175000001440000000265511177007633023743 0ustar jacobusers rObrOb-Zrr.b R ZNb ZQrrrNb ZrojQrrrrojojr-Zojrrrroj.bojrrrrrrrrrNbrrrjrrjrrrrNbrrrObrrojrrrNbrrrojojNbrrrNbrrj Z.brrrrojNbrjIQrNbrrjNb.bojojIrojNb-Z Z ZQNbojNbrNbIAI ZNbObojNb ZQ9Q ZNb ZNbNbNbojNbojojNbObr-ZObrQ ZNb Z R.brrQojr ZNbrrroj-Zrojojrrrrrrrrroj.bojrrrrjrrjrrrNbrrrrojrrObrrrNbrrrrNbojojrrrNbrrr.b ZjrrNbrrrQIjrNbojrrrrIojoj.bNbjrrNbrNbojNbQ Z Z-ZNbojrObNb ZIAINbrNb ZQ9Q ZNbojNbNb ZNbojNbNbojojholotz-castle-1.3.14-src/res/theme/dungeons/char/random/6/slide.spr0000644000175000001440000000116411177007633024066 0ustar jacobusers @rrrojNbzojojrrrObObrzzrNbrrrjrrrrNb-Zrjrrrrjrjrjrzroj-bpjrpjzzzzojojjrojzrojzrojrjjroj Zrrojzrjjojj-Z-Zjzojojzrroj-bNb.b ZNbrrojIzrOb-bNboj-Zrrroj Zrj.bojjojojrojNbzr.bNbNbjoj-ZNb.bholotz-castle-1.3.14-src/res/theme/dungeons/char/random/6/jumpleft.spr0000644000175000001440000000145411177007633024616 0ustar jacobusers ObNbr-Z-ZNbNbObrz-ZNbojojObNbrrrjNbojjrrrrrrrrzjjrrjrrrrrrrzpjrrrjojjrrrrjrrrjObjjjrrrrojojojojrjrrrrNbNbojrjrrrrNb.bNbrjjrrrz-ZObObrjjrrrz-Z-ZObojrrpjrrrrzNbNbrpjrrrrzrrrrrrzrrrrrjrrholotz-castle-1.3.14-src/res/theme/dungeons/char/random/6/fall.spr0000644000175000001440000000316411177007633023706 0ustar jacobusers @lllp {l!URQ H} xK n~ p k t |~ o~ \ w n {}z mholotz-castle-1.3.14-src/res/theme/dungeons/contfloor/0000755000175000001440000000000011177007633021701 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/0000755000175000001440000000000011177007633022042 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/c.tga0000644000175000001440000000014011177007633022754 0ustar jacobusers 3H7N0C.A4J3G1E/B7N.B,>.A5L1E2F0CTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/cr.tga0000644000175000001440000000014011177007633023136 0ustar jacobusers ):,>+-@)-A.B'.A3G*:TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/c1.tga0000644000175000001440000000014011177007633023035 0ustar jacobusers   --@&#0,7N -/C1F:R1E.B2G;TTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/c3.tga0000644000175000001440000000014011177007633023037 0ustar jacobusers 1E -& .B/C#02G1F, -;T:R7N-@TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/cd.tga0000644000175000001440000000013611177007633023125 0ustar jacobusers   #*;$+&63H3I/B+<3H6M/BTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/s2.tga0000644000175000001440000000030011177007633023054 0ustar jacobusers  )9   -%  .A,>(8 -$#$2,>2F . 3H6L5J4I0D'6&6(8*;8O)92F (9.D(;*<-BTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/cl.tga0000644000175000001440000000014011177007633023130 0ustar jacobusers (88O1E 1E5K!.1E3I ):6L2FTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/cdr.tga0000644000175000001440000000014011177007633023302 0ustar jacobusers 0G4H 1?0D;R >P'2/B0C2H5I;R1D;S6NTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/s6.tga0000644000175000001440000000030611177007633023066 0ustar jacobusers  1E7N*; 6L5K1E 3I1E)9/C1F! 4K6N!.1F6L,> /C/B,= /C-@/C -0D/C3H2H/C0E 2G.A#22G$3'TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/c7.tga0000644000175000001440000000014011177007633023043 0ustar jacobusers -@7N:R;T -,1F2G#0/C.B & -1ETRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/cur.tga0000644000175000001440000000016011177007633023325 0ustar jacobusers  :R/B/D0F1C0C;Q3H:R2G =P 0?6M4I&1TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/sv.tga0000644000175000001440000000027511177007633023173 0ustar jacobusers  /C6M7M9Q3H7N0C.A*<2F4I-@ -A3I3H7M4J3G1E/B-@1E2G3H4J3I1E7N.B,>.A.B/D/C /B0D/C3I5L1E2F0C/B3I4H*:TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/s8.tga0000644000175000001440000000035311177007633023072 0ustar jacobusers   1E6L3I/C4K1F/C/C0D2H2G7N5K1E1F6N6L/B-@/C.A2G *;1E)9!!.,>,=/C3H0E#2$3       - 'TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/cu.tga0000644000175000001440000000013711177007633023147 0ustar jacobusers .A/C(:.B"0#2+<!'!/ TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/sh.tga0000644000175000001440000000030711177007633023151 0ustar jacobusers  -@3H/C*:4I2G/C4H2F1E/D3I*<-@.B/B.A/B.A0C0C1E,>2F7N3G.B1E3H4J7N5L9Q7M7N3I7M3H1E/C6M3I0D/C-A4J/BTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/s4.tga0000644000175000001440000000030611177007633023064 0ustar jacobusers   +=?Y2F%43H0C !.6M9Q&6,>0D,8O0D 3G1E $3(8""0-? -8O0C0D-?)+<8O#0D-@3GTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/cul.tga0000644000175000001440000000016011177007633023317 0ustar jacobusers  6M:R1C:R4I2G0C/B&1 =P;Q/D 0?3H0FTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/i.tga0000644000175000001440000000073611177007633022775 0ustar jacobusers  5K,?*</B-?-@-?0C5L-@):2G3I1E+>.B4J-A3H.B-@ /C1E-?-@1E1F.A3I0D-?2F1E.@,>2G*<-A3I/C1E2F3H 2G4I2H8P5L2G2H7N5J1E0D3H 7N3H0D.A/C1E0D2F/C0E4J6M 3I2H1F0D-?+<-?0D.A3H6L5J.@2F/C);*<+=+>3I4I4J '8*<-?0D,>/B*;)90C/C3G4H /B.A/B6K1D0C/C.A5K6L4I0C 1E0D.A4I2G0D3I.B6M5K/C0D 7N7N2G.A4J5K6M2G2F3H5K;TTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/2/c9.tga0000644000175000001440000000014011177007633023045 0ustar jacobusers ;T2G.B1E:R1F/C -7N,#0&-@ - TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/0000755000175000001440000000000011177007633022043 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/c.tga0000644000175000001440000000014011177007633022755 0ustar jacobusers 3H7N0C.A4J3G1E/B7N.B,>.A5L1E2F0CTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/cr.tga0000644000175000001440000000014011177007633023137 0ustar jacobusers ):,>+-@)-A.B'.A3G*:TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/c1.tga0000644000175000001440000000014011177007633023036 0ustar jacobusers   --@&#0,7N -/C1F:R1E.B2G;TTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/c3.tga0000644000175000001440000000014011177007633023040 0ustar jacobusers 1E -& .B/C#02G1F, -;T:R7N-@TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/cd.tga0000644000175000001440000000013611177007633023126 0ustar jacobusers   #*;$+&63H3I/B+<3H6M/BTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/s2.tga0000644000175000001440000000030011177007633023055 0ustar jacobusers  )9   -%  .A,>(8 -$#$2,>2F . 3H6L5J4I0D'6&6(8*;8O)92F (9.D(;*<-BTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/cl.tga0000644000175000001440000000014011177007633023131 0ustar jacobusers (88O1E 1E5K!.1E3I ):6L2FTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/cdr.tga0000644000175000001440000000014011177007633023303 0ustar jacobusers 0G4H 1?0D;R >P'2/B0C2H5I;R1D;S6NTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/s6.tga0000644000175000001440000000030611177007633023067 0ustar jacobusers  1E7N*; 6L5K1E 3I1E)9/C1F! 4K6N!.1F6L,> /C/B,= /C-@/C -0D/C3H2H/C0E 2G.A#22G$3'TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/c7.tga0000644000175000001440000000014011177007633023044 0ustar jacobusers -@7N:R;T -,1F2G#0/C.B & -1ETRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/cur.tga0000644000175000001440000000016011177007633023326 0ustar jacobusers  :R/B/D0F1C0C;Q3H:R2G =P 0?6M4I&1TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/sv.tga0000644000175000001440000000027511177007633023174 0ustar jacobusers  /C6M7M9Q3H7N0C.A*<2F4I-@ -A3I3H7M4J3G1E/B-@1E2G3H4J3I1E7N.B,>.A.B/D/C /B0D/C3I5L1E2F0C/B3I4H*:TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/s8.tga0000644000175000001440000000035311177007633023073 0ustar jacobusers   1E6L3I/C4K1F/C/C0D2H2G7N5K1E1F6N6L/B-@/C.A2G *;1E)9!!.,>,=/C3H0E#2$3       - 'TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/cu.tga0000644000175000001440000000013711177007633023150 0ustar jacobusers .A/C(:.B"0#2+<!'!/ TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/sh.tga0000644000175000001440000000030711177007633023152 0ustar jacobusers  -@3H/C*:4I2G/C4H2F1E/D3I*<-@.B/B.A/B.A0C0C1E,>2F7N3G.B1E3H4J7N5L9Q7M7N3I7M3H1E/C6M3I0D/C-A4J/BTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/s4.tga0000644000175000001440000000030611177007633023065 0ustar jacobusers   +=?Y2F%43H0C !.6M9Q&6,>0D,8O0D 3G1E $3(8""0-? -8O0C0D-?)+<8O#0D-@3GTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/cul.tga0000644000175000001440000000016011177007633023320 0ustar jacobusers  6M:R1C:R4I2G0C/B&1 =P;Q/D 0?3H0FTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/i.tga0000644000175000001440000000074111177007633022772 0ustar jacobusers  5K,?*</B-?-@-?0C5L-@):2G3I1E+>.B4J-A3H.B-@ /C1E-?-@/B*;)9@R 6I3G4H /B.A:LAU1D0C/C.A5K6L4I0C 1E0D.A4I2G0D3I.B6M5K/C0D 7N7N2G.A4J5K6M2G2F3H5K;TTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/3/c9.tga0000644000175000001440000000014011177007633023046 0ustar jacobusers ;T2G.B1E:R1F/C -7N,#0&-@ - TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/0000755000175000001440000000000011177007633022041 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/c.tga0000644000175000001440000000007411177007633022761 0ustar jacobusers 3333TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/cr.tga0000644000175000001440000000014011177007633023135 0ustar jacobusers 2.#j2.#j2.#j2.#jTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/c1.tga0000644000175000001440000000014011177007633023034 0ustar jacobusers X<4JZX<4]$x Ix$+Z+1TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/c3.tga0000644000175000001440000000014011177007633023036 0ustar jacobusers ZJX<4 x]$X<4+$xI1+ZTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/cd.tga0000644000175000001440000000007411177007633023125 0ustar jacobusers j#.2TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/s2.tga0000644000175000001440000000007411177007633023063 0ustar jacobusers j#.2TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/cdl.tga0000644000175000001440000000014111177007633023274 0ustar jacobusers  j&2#.2&.22TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/cl.tga0000644000175000001440000000014011177007633023127 0ustar jacobusers j#.2j#.2j#.2j#.2TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/cdr.tga0000644000175000001440000000012511177007633023304 0ustar jacobusers 2&j2.#2.&2TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/s6.tga0000644000175000001440000000031011177007633023060 0ustar jacobusers  2.#j2.#j2.#j2.#j2.#j2.#j2.#j2.#j2.#j2.#j2.#j2.#jTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/c7.tga0000644000175000001440000000014011177007633023042 0ustar jacobusers Z+1Ix$+X<4]$x X<4JZTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/cur.tga0000644000175000001440000000014111177007633023323 0ustar jacobusers  22.&2.#2&jTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/sv.tga0000644000175000001440000000007411177007633023167 0ustar jacobusers 3333TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/s8.tga0000644000175000001440000000012011177007633023061 0ustar jacobusers 222222.#jTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/cu.tga0000644000175000001440000000010011177007633023134 0ustar jacobusers 22.#jTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/sh.tga0000644000175000001440000000013411177007633023146 0ustar jacobusers  333333333333TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/s4.tga0000644000175000001440000000031011177007633023056 0ustar jacobusers  j#.2j#.2j#.2j#.2j#.2j#.2j#.2j#.2j#.2j#.2j#.2j#.2TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/cul.tga0000644000175000001440000000014111177007633023315 0ustar jacobusers  2&.2#.2j&2TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/i.tga0000644000175000001440000000013411177007633022764 0ustar jacobusers 333333333333TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/contfloor/1/c9.tga0000644000175000001440000000014011177007633023044 0ustar jacobusers 1+Z+$xI x]$X<4ZJX<4TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/ladder/0000755000175000001440000000000011177007633021127 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/ladder/2/0000755000175000001440000000000011177007633021270 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/ladder/2/ladder.tga0000644000175000001440000000116111177007633023217 0ustar jacobusers   (&1.;6F!#Xqgqvz|zv,9 |stsqs|sohhl'2^y|qoqgqhnr#-G[_zz|z|yg!*  &.;BUZtx|sCW#  ""+*7Ph]xp|yxqsnh |zvwohde^y_|fgRg`ryxtnmfnne$/w|{dNd:K$ EY3A#. TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/ladder/3/0000755000175000001440000000000011177007633021271 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/ladder/3/ladder.tga0000644000175000001440000000221411177007633023220 0ustar jacobusers 0> *7 &2>Q(&2>Q(&2>QRi(4(>Q&2( *7 *7 *70> *7  *7 *7 *70> *7  *7 *7 *7CV#5E!!5E!5E!5E0> *7  *7 *7 *70> *7  *7 *7 *70> *7  *7 *7 *7K`(4(>Q&2(&2*7 *7 *70> *7  >Q(&2>Q(&2F\0> *7  *7 *7 *70> *7  *7 *7 *70> *7  *7 *7 *7K`(4(>Q&2(&2>Q(&2>Q(&2F\0> *7  *7 *7 *70> *7  *7 *7 *70> *7  *7 *7 *7K`(4(>Q&2(&2>Q(&2>Q(&2>Q0> *7  *7 *7 *70> 8H8H8H3BTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/ladder/1/0000755000175000001440000000000011177007633021267 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/ladder/1/ladder.tga0000644000175000001440000000132211177007633023215 0ustar jacobusers WqQhFZXqLb9I/>f=NVn`{6G0>H]1?LbZt4C 0>G[?S,89JAT@SBUDYDZDYa~Tl2C 0=LcLdKc_{hdc~ccccccca}lRi4D/=Qh[wEZQhXqWqXq WqXqWqXqWqUmMccMd5E0=PhFZK`Ja4E/=QhEZOePi5F/>RiG[XqZt6F/=UmG\Xq`{7G0>WpI^Wqa}8H0=Ri;MUn`}7H0=Md4DRj`|8H 0=NeG[*8)9/C2F6I3F4G8LQCYe^y8G/=VpZsI`F^[vZu[uXq\w[v]y_z`{b~ghrXq8G 0=Xq`{BVF\UmTmUlTlUmTmUnVoWqMba}Me7G0=XrH]I_Mc6F0>WrH]RhTj5F/=WqMdXq[t9I0=0>.<0=*5@STRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/narrative/0000755000175000001440000000000011177007633021667 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/narrative/1/0000755000175000001440000000000011177007633022027 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/narrative/1/2.tga0000644000175000001440000000233411177007633022667 0ustar jacobusers  _]\Z}_]\Z}_]\Z}_]\Z}_]\Z}{{{{{{{{{{z{{z{{z{{z{{z{{^\\~\^\\~\^\\~\^\\~\^\\~\AY`C\cAY`C\cAY`C\cAY`C\cAY`C\c#04#14$14#14#04#14$14#14#04#14$14#14#04#14$14#14#04#14$14#14/AE/AF0AE/AE/AF0AE/AE/AF0AE/AE/AF0AE/AE/AF0AE;RV;RW:QW;RW;RV;RW:QW;RW;RV;RW:QW;RW;RV;RW:QW;RW;RV;RW:QW;RWGbiGbhFahGbiGbhFahGbiGbhFahGbiGbhFahGbiGbhFahGbiSrzSryRrzSrzSryRrzSrzSryRrzSrzSryRrzSrzSryRrzSrz^^^^^^^^^^jjjjjjjjjjjjjjjjjjjjvvvvvvvvvvTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/narrative/1/3.tga0000644000175000001440000000215311177007633022667 0ustar jacobusers  !$   *9=>U\D^d=U[>TZ/AF _]\Z}8MS*;A!#+>AA[b\\\\~\~Kho{{mfY{kuzz{z{kz{{z {z{z{zz^\\~\\\~\\~\\\~{AY`C\cC]cC\cC]cC\c C]cC\cD^dD^e\\\z{ #04#14$14#14$04#14$04C]eA[`=T[\/AE/AF0AE/AF0AE/BE/AF/AE0AE/AE/AF=TZ>UZ;RV;RW:QW;RW;QW;RW;QW"$GbiGbhFahGbiGbhFbhGbhGahGaiGbhGahGbhFahSrzSryRrzSrzRrySrzRqzRrzSrzE^e.@D^^^^_[JgoBZa jjjjkjkjjjjcNktvvvvvvvvvE_eUu}dQpxIfnoTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/narrative/1/1.tga0000644000175000001440000000215311177007633022665 0ustar jacobusers  !$ /AF>TZ=U[D^d>U\*9=  Kho\~\~\ \\A[b+>A!#*;A8MSZ}\]_k{z{zzukY{fm{{ zz{z{z{z{{z{\~\\\~\\~\\\~\^ {z\\\D^eD^dC\cC]cC\cC]cC\cC]cC\cAY`\=T[A[`C]e$04#14$04#14$14#14#04>UZ=TZ/AF/AE0AE/AE/AF/BE0AE/AF0AE/AF/AE"$;QW;RW;QW;RW:QW;RW;RVFahGbhGahGbhGaiGahGbhFbhGbhGbiFahGbhGbi.@DE^eSrzRrzRqzSrzRrySrzRrzSrySrzBZaJgo[_^^^^ NktcjjjjkjkjjjjUu}E_evvvvvvvvvIfnQpxdoTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/narrative/1/6.tga0000644000175000001440000000125611177007633022675 0ustar jacobusers  ui]ui]ui]uf u eZ|NluTu}uuf7MSui]ui]ui]m4INKhoZ|u4INui\vi]TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/narrative/1/4.tga0000644000175000001440000000125611177007633022673 0ustar jacobusers  ]iu]iu]iu fu ueZ|NluTu}u7MSfu]iu]iu]iu4INmKhoZ|4INu\iu]ivTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/narrative/1/7.tga0000644000175000001440000000215311177007633022673 0ustar jacobusers  oIfnQpxdUu}E_evvvvvvvvv NktcjjjjkjkjjjjBZaJgo[_^^^^.@DE^eSrzRrzRqzSrzRrySrzRrzSrySrzFahGbhGahGbhGaiGahGbhFbhGbhGbiFahGbhGbi"$;QW;RW;QW;RW:QW;RW;RV>UZ=TZ/AF/AE0AE/AE/AF/BE0AE/AF0AE/AF/AE\=T[A[`C]e$04#14$04#14$14#14#04 {z\\\D^eD^dC\cC]cC\cC]cC\cC]cC\cAY`{\~\\\~\\~\\\~\^ zz{z{z{z{{zk{z{zzukY{fm{{Kho\~\~\ \\A[b+>A!#*;A8MSZ}\]_ /AF>TZ=U[D^d>U\*9=  !$TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/narrative/1/5.tga0000644000175000001440000000022011177007633022662 0ustar jacobusers  TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/narrative/1/8.tga0000644000175000001440000000233411177007633022675 0ustar jacobusers  vvvvvvvvvvjjjjjjjjjjjjjjjjjjjj^^^^^^^^^^SrzSryRrzSrzSryRrzSrzSryRrzSrzSryRrzSrzSryRrzSrzGbiGbhFahGbiGbhFahGbiGbhFahGbiGbhFahGbiGbhFahGbi;RV;RW:QW;RW;RV;RW:QW;RW;RV;RW:QW;RW;RV;RW:QW;RW;RV;RW:QW;RW/AE/AF0AE/AE/AF0AE/AE/AF0AE/AE/AF0AE/AE/AF0AE#04#14$14#14#04#14$14#14#04#14$14#14#04#14$14#14#04#14$14#14AY`C\cAY`C\cAY`C\cAY`C\cAY`C\c^\\~\^\\~\^\\~\^\\~\^\\~\z{{z{{z{{z{{z{{{{{{{{{{{{_]\Z}_]\Z}_]\Z}_]\Z}_]\Z}TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/narrative/1/9.tga0000644000175000001440000000215311177007633022675 0ustar jacobusers  odQpxIfnvvvvvvvvvE_eUu} jjjjkjkjjjjcNkt^^^^_[JgoBZaSrzSryRrzSrzRrySrzRqzRrzSrzE^e.@DGbiGbhFahGbiGbhFbhGbhGahGaiGbhGahGbhFah;RV;RW:QW;RW;QW;RW;QW"$/AE/AF0AE/AF0AE/BE/AF/AE0AE/AE/AF=TZ>UZ#04#14$14#14$04#14$04C]eA[`=T[\AY`C\cC]cC\cC]cC\c C]cC\cD^dD^e\\\z{ ^\\~\\\~\\~\\\~{z{{z {z{z{zz{{mfY{kuzz{z{k _]\Z}8MS*;A!#+>AA[b\\\\~\~Kho   *9=>U\D^d=U[>TZ/AF!$TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/object/0000755000175000001440000000000011177007633021142 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/object/2/0000755000175000001440000000000011177007633021303 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/object/2/normal.spr0000644000175000001440000001017411177007633023324 0ustar jacobusers  @ @@n@ @ w w w@@Gn@@@`on@@@@@@@@@@ @ @@n@ @ ww w w@'gn@@@`on@@@@@@@@@@ @ @@n@ @ ww w w@@gn@@@`on@@@@@@@@@@ @ @@n@ @ w w w@@gn@@@`on@@@@@@@@@@ @ @@n@ @ w w w@@gn@@@`on@@@@@'@@@@@ @ @@n@ @ w w w@@gn@@@`on@@@@@@@@@@ @ @@nע@ @ w w w@@gn@@@`on@@@@@@@@@@@ @@n@ @ w w w@@gn@@@`on@@'@@@@@@@@ @@n@ @ w w w@@gn@@@`o'n@@@@@@@@@@holotz-castle-1.3.14-src/res/theme/dungeons/object/2/acquired.spr0000644000175000001440000001210411177007633023624 0ustar jacobusers  A AE)e)E)A ae)D5>5E) AE)11+111a E)5>515~e)a a11113D5>D1E)AAe)$D>116>>d?d?E) Ae)$w~>6e)e)5>>d?E) Ae)䆄>D51a AE)e)e)E)A E)d??d?>5D5E) AA E)d???>5e)AAe)d?d?1E)AAE)E)a  aa B(BB aBMVhMBa BIJR(LRRIJ aBVVhURhUBa IJRRRLUVHIJB BHH_RiJHV__h_hWBa BHHVHV(B!(BVV_hWBa BVUIJAB(B(BB aBhW_h_VVMBa aa aBhW__VVB BhWhWIJB BBa aa   !RZR! !R fveR !R cMkdmkmk c! RKnvmmkm,R! ! cmkmkmk m nvl cR! !Rkl,wMk,cn,w,wwoR !Rk,nnZ1ZKnv,woR !R,v n c$!a!RZZR! RowwvLn fR  RowwvKnR! !Roo cR! !RR!  AAAE),cmk,cE)AAe),cN~~,cAE),cs/}se)A,cn~//O,ce)AAe)so}Oos,cE)AAE),cnoO{OO,cAE),cnOφ~Mk9Mkn~O,cAE),cOOs1E),cmkmk,cE)A,cN~,cAA,cn~,cE)AAE),cs,cE)AAE),c,ce)AAAA!E)!Aa9q9AA!90S!A9449a!ҞS4s09!Aa94443ӦS9Aa90sӜss!a90s0R0ҞSs!A90sSӦB9qq9A!󧳧S󦲞!A!E)E)!A!SҞ09AA909aa99!AA!!aae)1e)aIJ4IJaae)RvӜe)aIJӜU׽vURe)Ӝ6vRe)aRUvUӜIJaIJז׽Vֿe)IJVVMk6ve)aIJvURIJ44IJae)ֿv6Ӝe)ae)11e)ae)v6IJaaIJ󜶿UӜIJIJRe)aae)e)1B1ZU׽UZ1 cXϙ8U1ZUYyy c1UXϙ9y9Ϲ c1 cyyyYϙUZZYxϹ׹U1Zuyxϖ{XϙϹU1ZuߙY c!ZU׽׽UZ1UיyXU11BB11UיXuZZuUZZUU c111 IJRIJ s8ƚ8ƎsIJ{YΛ8IJ s8|<<{ IJ8ƛ: 0-yxb\VT՜}0- Qُpلm?آp۩ k.<~(E *0cg2B1Ead+0+/ts9797rt*0TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/rope/2/middle.tga0000644000175000001440000000015411177007633022735 0ustar jacobusers 63e^d_e^d_63TRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/rope/1/0000755000175000001440000000000011177007633021001 5ustar jacobusersholotz-castle-1.3.14-src/res/theme/dungeons/rope/1/top.tga0000644000175000001440000000016111177007633022276 0ustar jacobusers ǴŸĸsTRUEVISION-XFILE.holotz-castle-1.3.14-src/res/theme/dungeons/rope/1/edge.tga0000644000175000001440000000014511177007633022402 0ustar jacobusers >NDVGVDU3?(/Xir^sJY099FO`JYPmASQhSj>Pp>PTRUEVISION-XFILE.holotz-castle-1.3.14-src/Makefile.win320000644000175000001440000000033111177007633016555 0ustar jacobusers# Makefile Para Holotz's Castle. (C) Juan Carlos Seijo Prez - 2004. # Makefile for Holotz's Castle. all: HC .PHONY: HC HC: make -C src -f Makefile.win32 .PHONY: clean clean: make -C src -f Makefile.win32 clean holotz-castle-1.3.14-src/HCedHome/0000755000175000001440000000000011177007633015573 5ustar jacobusersholotz-castle-1.3.14-src/HCedHome/res/0000755000175000001440000000000011177007633016364 5ustar jacobusersholotz-castle-1.3.14-src/HCedHome/res/EnemyMenu/0000755000175000001440000000000011177007633020266 5ustar jacobusersholotz-castle-1.3.14-src/HCedHome/res/EnemyMenu/2.tga0000644000175000001440000000244211177007633021126 0ustar jacobusers    +f]H4"]!" 1%0 " xJ$<t " "(  Hq 0<Z k r i Y 7!J : &^ }  { [ / p  } G "c)~  | ,')'H}M {  X'''O`P=vC" { 3"""ACAſcg  Ucdc+>-O y  e V  n $U  n $lmllym\z  e  # m{nlp"  UHJHK]L%e," { 3"$"",  X'g-'0  | ,p  } G &^ }  { [ /  <Z k r q i Y 7"('   TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/EnemyMenu/0_hi.tga0000644000175000001440000000477211177007633021614 0ustar jacobusers 222===222667YY[}}||rrzppxppwppvppurrv||~}}~YYZ666667ZZ[YYmAAX==T==S==P==LAALYYaZZZ666OOPZZx66\C-*'"+66BZZaOOOQQR\\~66fP=;952-("(66?\\_QQQOOPQQ~[JIHEA<83-& 'QQUOOO667QQdWVUSPLHC=70)!%QQU666ZZ]\\laca^[XSNHA:2+"&\\_ZZZ77877jmonmkgb^XRKC<3*"77>777ZZ]ZZ}vxz{zxvrnhb\TLD;2)&ZZ^ZZZ223}}77}~yslf]ULC:0'77?}}}222==?}}YY}vnf^TJA7,"'YY^}}~=====ArrAAwne\RH=3(AAIrrt=====Bpp==vlcXNC8-"==Hppt=====Bpp==}sh^SH=2'==Kppu=====Cpp==yncXMA6*==Mppv=====Bpp==~rg[PE8-!==Oppv=====BrrAAuk_SG;/$AARrrx=====@}}YYxmaUI=1:YYh}}===224}}77zncVJ>377U}}222ZZ_ZZ{nbWK?GZZrZZ[77977zncVJ?77]777ZZ`\\ymaUIQ\\xZZ[668QQvj_SXQQv667OORQQ~sg\`QQ|OOPQQT\\66xnp66w\\QQROORZZ66}y66ZZOOP668ZZ_YYAA========AAYYZZ\667668YY^}}||rrpppppppprr||}}YY\667223==?==A==@==>223TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/EnemyMenu/0.tga0000644000175000001440000000362711177007633021132 0ustar jacobusers   &10-*'" %?>=;952-("7J IHEA<83-&  >UWVUSPLHC=70)!7_aca^[XSNHA:2+"gjmonmkgb^XRKC<3*"Rsvxz{zxvrnhb\TLD;2) x}~yslf]ULC:0'A}vnf^TJA7," ewne\RH=3(vlcXNC8-" }sh^SH=2'yncXMA6*~rg[PE8-!uk_SG;/$]xmaUI=1% 'zncVJ>3&{nbWK?27zncVJ?3 xymaUI=vj_SG, ~sg\P4txncW- 4}shF #TvtX8TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/EnemyMenu/1_hi.tga0000644000175000001440000000236111177007633021605 0ustar jacobusers 120?A?=?A=AC?IIHefb\6}}9f}>@<OPM||t}~wQRP[\YZ4}Cr@C=342|\Hfdfa898CDBfhcu~0}@=}[w }z [}?@=332|\A========A\|332NNM||rppppppr||NOM232>?=?B=@C<@D?=232TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/EnemyMenu/3.tga0000644000175000001440000000245011177007633021126 0ustar jacobusers .7'.'..7JXsnIW*2*2IWnsJXDQsJW*2*2JWsDQ*2psJW,4 &,4JWsp*2>J|vcuv|>J@L~~@LKYKY-5vv-5%,ewew%,*2M\M\*2>Jqq>J@L||@L*2KY~~KY*2>Jpp>J FRv vFR`rvv`r2;3=4> 7BM\M\7B4>3=2; LYLY+2ss+2JWJW+2ss+2JWJW*2oo*29DUd9DTRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/EnemyMenu/1.tga0000644000175000001440000000102111177007633021115 0ustar jacobusers e}}c}}}}d}}h }}`&z}|Jy \}t4V+Fp}f2 Ep{}&*E=dP #_}}}y}0} c}u(A}9]&>_w}|s[)CTRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/EnemyMenu/2_hi.tga0000644000175000001440000000346511177007633021614 0ustar jacobusers  '~wyw qqq 333ڋWWSSZZѝSSS[[[ꓓnnn[[BB33377733RRRww(((cccZZ2266//&&Ö⧧縸jjj999곳˩ح𫫫HHHد޺ŢըԫΧ///###~~~eeeݶʻ-9JTCCC333iiiJS @KvvvCCC Ȥϭ=HkqƲ((( ch6?2<& (hnɁrrr vvvZa  &1uuu@@@vw%e,~  ~~~ YYY񲲲DFDH}M {  l&vvv xxx111O`P=vC" }wz888 ===ÑYYYRTRcg  X]𥥥 PPPּ:L<O y  OVꚚ VVV^`^V  :B111 󝝝)+)U  6>666 wwwstslym\z  >>s% [娪DDD LN?[ TdfYVYFX  PЋ,,, KKKѻ}N-  4JXiu홙###ܞۋ`'"l;;; ```.dځ̂MMMmmmqqq~~~n%ݺxxxpppkkk```JJJCCC444!!!***DDD0T趸AAA  ,,,r@z|o fff쵷555 +++moa JJJȻ즪&&&TWG===ûstj &&&333TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/EnemyMenu/4_hi.tga0000644000175000001440000000261311177007633021610 0ustar jacobusers mmmeeeooo +++ͮĪ޽Ҵαý̜ÎɑuisSKRҘT\C̔T\CҘzZcHNV>x_Ҙo(((<<<ٮW`EfpQ{bnҘ|T\CҘT\C̔zT\CcmOҘ̔NV>ɑ͕ccc޵ozXҘɑƏҘnҘ NV>̔ҘuT\CzҘfpQ|֡RRRӛ6;+fpQNV>cmOҘKRϘ@@@ XXX份ȢQWBcmOozXNV>~ҘozX|ɑNV>ЖYaI+++קyÎҘV^Eŕ̡޳͖888Ɂ uuu555CCC܁VVV UUUWWWxxxWWW999666333&&&(((TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/EnemyMenu/4.tga0000644000175000001440000000202211177007633021122 0ustar jacobusers >D1irS`jMT\C]fJcmOrɑҘT\CҘЖ~T]C27'?E2ŎɑuisSKRҘ T\C̔T\CҘzZcHNV>x_ҘeYbE ,0#ΕW`EfpQ{bnҘ|T\CҘ T\C̔zT\CcmOҘ̔NV>ɑ̔KS<$( ҘozXҘɑƏҘnҘ NV>̔ҘuT\CzҘfpQ|Ҙ lvUҘ6;+fpQNV>cmOҘKR̔JQ:EK6KR~ҘozX|ɑNV>ЖT\CgEK6 dmNugҘT\CnҘT\B  38)lvU{b05&~lvU38) TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/0000755000175000001440000000000011177007633020075 5ustar jacobusersholotz-castle-1.3.14-src/HCedHome/res/MainMenu/2.tga0000644000175000001440000000362711177007633020743 0ustar jacobusers NdEY>P|!+G[Pge9Js@R b~w!+NeYrp@S'2,9 Yrx2@NeYrp@S-:&1 )Yr Yr>PNeWpkBU@Rs~)5 Nd>PRjPgUnMcTlTlNd >PxMcNeNes@R&1re)5>PI^NeNe'2,9*6/<2@}Nd H]^zMcUn-:&1*6*6Yse)5CVx)BUk@Rs*6*62@}Nd @SpTlTl*6*6 Ys|!+@Sps@R*6*6 2@=Ox'2,9,9'2Rjq-:&1-:&1>PxMcUn*6*6 H]x%;L@SpNeNe*6*6 ~hv3BFZkNeNe*6*6 $/UnNeNe*6*6 &2rPfLbNeNeNe*6*6|i SlNeNe*6*6nK`ca}NeNe*6*6 !+^y{NeNe'2,9~RjNeNex>PdSjVova~TlUnNe#Wp|@SusOf"DWBU  )wt +8TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/0_hi.tga0000644000175000001440000000305211177007633021411 0ustar jacobusers PPP???WWWzzz||| &&&DDD̗𠠠WWW睝cc}88^Kfff|||ffjQed@@s555ď==wkipyy33uL uUUUUU222??q lWyyy@@@88m, G55555uuu<<m,*LQ(uuuuuzz e,*Pdd55BBB 66655R&P) [[[ꓓ<d dd--ddd^^ ),@@@@@+++uu n6dd泳IIIvvvJJ )L +++碢 7f]]򛛛 ~~~ KD}}sss==3""=uu55L<\\\ 777yyWW\\\888uuu[[55ddzzz559řYY==t[[s첲)))SSS```霜XXX 666nnnXXX"""---TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/8_hi.tga0000644000175000001440000000153711177007633021427 0ustar jacobusers ###tttŁttt######֠?P?P֠###TTTn{n{TTTTTTTTT######n{ݰԛn{ņ###xʄӚjw###ttt֠GW֠ttt?P*':?PŅւӚ$?Pϐ⽇?PŅttt֠UdӚmz֠ttt###$7###n{n{ņ######TTTTTTTTTn{n{TTT###֠?P?P֠######tttŁttt###TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/0.tga0000644000175000001440000000201611177007633020730 0ustar jacobusers  *13 ;ebD &Lfip- SL upBlW> jm, Gxm,*LQ(dG^,*Pdd#'%&P),)ddd{!N),pn6\I)L%o7f^KDt 13MdL'  W~; )NnqG$->I% TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/1_hi.tga0000644000175000001440000000427511177007633021422 0ustar jacobusers  :::cccaaa^^^YYYLLLAAABBBFFFXXXtttmmmllluuu}}}tttllluuu}}}wwwsssXXX111cccһ݁݁ ˭@@@|||  뷷LLL888 .59A;B;B;B;B;B9A.5 VVV /6.\g?sCxDyDyDyCx?s.\g/6 hhh9A>r{{>r9Arrr;BCx拳Cx;Bwww;BDyꍶDy;Brrr;BDyꎶDy;B𛛛 vvv;BDy ꎶDy;Bdddwww;BDyꎶDy;BBBB mmm;BDyꍶDy;B333 sss;BDy拳Cx;B&&& rrr;BCxҕĎ{>r9Avvv;BCxqPE{DyDyCx?s.\g/6 }}};BCxqK|)S^@I;B;B;B;B9A.5 CCCuuu;BCxꕻP)S^*/  vvvlll;BCx莶Ez@I ̵noo***mmm;BCx荴Cx;BYYYDDD---!!!ttt;BDy鍵Dy;B|||}}};BDyꍶDy;Brrruuu;BDyꎶDy;Bqqqlll;BDyꎶDy;Bqqqmmm;BDyꎶDy;Brrrttt;BDyꍶDy;Bwww{{{;BCx拳Cx;Bqqqmmm9A>r{{>r9AhhhNNN /6.\g?sCxDyCx?s.\g/6 MMM*** .59A;B;B;B9A.5 𘘘### iii  TTT׈%%%xxxjjjrrrvvvwwwlllkkk\\\>>>TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/3.tga0000644000175000001440000000271611177007633020742 0ustar jacobusers !#03?CNT^cnt}ou"$25@EPT_enu~&) #&36BFQV`fow*- %&46CGRXahpw*- &(48DITXciry*- &)69EJTZcjs{*- (*7;FKV[ekt{*- )+8<GLW]fmu}-/ *-:=IMX]gnw~?C ,.:?JOY_ioxAE ,/;@KPZ`jpyAE -1=ALQ[akqzCG  !/2>BMR\clr{NR!#03?COS]dmt}OT "$14@EPT_env}V[#%26BFQV`gpvls%'37CGRWagqwqx%(58DHTXciryqx &)69EJTYdjs{y (+7;GKU[dku{&) ),8<HLW\gmu}*- *-:>INX]hmw~*- ah*- v~/2>B MQMQ36{{36TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/1.tga0000644000175000001440000000344011177007633020733 0ustar jacobusers    .59A;B;B;B;B;B9A.5  /6.\g?sCxDyDyDyCx?s.\g/6 9A>r{{>r9A;BCx拳Cx;B;BDyꍶDy;B;BDyꎶDy;B ;BDy ꎶDy;B;BDyꎶDy;B ;BDyꍶDy;B ;BDy拳Cx;B ;BCxҕĎ{>r9A;BCxqPE{DyDyCx?s.\g/6 ;BCxqK|)S^@I;B;B;B;B9A.5 ;BCxꕻP)S^*/  ;BCx莶Ez@I ;BCx荴Cx;B;BDy鍵Dy;B;BDyꍶDy;B;BDyꎶDy;B;BDyꎶDy;B;BDyꎶDy;B;BDyꍶDy;B;BCx拳Cx;B9A>r{{>r9A /6.\g?sCxDyCx?s.\g/6  .59A;B;B;B9A.5   TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/2_hi.tga0000644000175000001440000000477011177007633021423 0ustar jacobusers 333+l~EY>PPkkkLLL㍭PgeKKKKRRR씜@R b~qмxxx1YrpAAAAllll,9 YrP6Yrp3<<<Rqy&1 )Yr YrP<Wpk𚴼OOO111:kys~)5 NdpVPgUnSSS9992vTlNd >Pqٺ6McNeSSSRRR씜@R&1)ؚV e)5 >P(I^NeSSSllll,9*6zqNd H]^zMcSSSRqy&1*6\욽@e)5CVx)BUUUU111:kys *6U򧧧d Nd @Snccc9992vTl*6cpppfff荵O |!+@SeeeeRRR씜@R*6eeee@@@J=Oeeeellll,9,9eeee 222Sq-:eeeeWu}&1>Pnccc SUn*6cnnnRRRYx%;L@SUUU SNe*6U򊊊<<<<hv3BFZSSS SNe*6S񐐐6666SSS SNe*6S񐐐6666rPfLbPPP ONe*6S񐐐<<<<i 2999 111:vNe*6S񐐐PPPZK`c8888666 6sNe*6Py^y{MMMM666 6sNe'29222555aosfff666 6sNex6666ےY-qg}s]΃ 6666yNe#Wp|6666 ̝PPP <<<<s6666 333[[[fff UUUU<<<<(((yyy\\\SSSJJJ 666AtZPPP ~~~ ttt]E=555 www333[[[yyyUUU###eee999TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/3_hi.tga0000644000175000001440000000437011177007633021420 0ustar jacobusers JJJ悂!#03?CNT^cnt}:[[[UUU"$25@EPT_enu~5MMMcccnnn#&36BFQV`fowQQQeeeeee%&46CGRXahpwSSSnnnccc&(48DITXcirySSSUUU&)69EJTZcjs{SSSOOO (*7;FKV[ekt{UUU111::: )+8<GLW]fmu}nccc666666 *-:=IMX]gnw~eeee666666 ,.:?JOY_ioxeeee666666 ,/;@KPZ`jpycnnn999222 -1=ALQ[akqzUPPP뚚  !/2>BMR\clr{S퐐SSS퐐!#03?COS]dmt}S퐐UUU "$14@EPT_env}P뚚cccnnn#%26BFQV`gpv9222nnnccc%'37CGRWagqw6666UUU%(58DHTXciry6666OOO &)69EJTYdjs{6666111::: (+7;GKU[dku{6666666666 ),8<HLW\gmu}6666666666 *-:>INX]hmw~6666HHHHHH ah 6666É1PPPjjj4̺k3RJJJ +++@2 19WӾPPP BBB˔skewѠfffzzz <<<888999RRR}}}~~~eeemmm[[[:::222TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/4_hi.tga0000644000175000001440000000312711177007633021420 0ustar jacobusers +++666RRRnnnGGG 222<<EGGGwwwϝGN  } $j)`e jmdi  ` 5;fff555uuu傞5<  x| 2|7dh  ZZZ@@@fj$ $p)W[6>>ll""``` ||| eeeee888@@ss hhhBBeeeee 66666PP缼555 eeeee 66666BBPPP555mmeeeee66666WWWڴ++eeeee66666]]]}}eeeee6666611:::>>>LLnnccc6666699222\\UUU66666RR𔔔hhܥXXX<<<>>llllluuufffPPPttVVV韟NNN???558 CCC000llljjj TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/6.tga0000644000175000001440000000231411177007633020737 0ustar jacobusers  )4CG\k)6oH] WpXq CWg,9CWg%0e%0%/v|;LKb8HAT fqt4C*6tm%0DW|toCV 4C,8zCVy[u&#-|4CBT`zZt *6x!+ La@S5DEZXqy4Cu 03$ DVhrCV  "UY?mw|Y_bFIL7PS;LXD _bG_rswvyzAn`dHyrmrwy|~(+"#btypuynCof&,br VZ@yknkpz[*GA~}yIL6.0#hmunsY\B ASodkpPy\`EkpP|]yu|]! VY@TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/4.tga0000644000175000001440000000163511177007633020742 0ustar jacobusers  !#*>Rfi$4J_t ;(@Wn V5Ng s 'C_z 26Ts  ; { Rg  Q  PV j :  oz \ \  BJGe X!7VjS  #H 1vr o   &8U d  /39< j,7 =fzjQ0p wEw rK ~ " )##t#ax%<i u3 |g 6*TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/12.tga0000644000175000001440000000305311177007633021015 0ustar jacobusers %0$/$/*6*6 *6*6d@S 4C *6*6BV2@u3B 4C*6*6r\w Ofx9Je*6*6+7~tpe)5Ph2@@Sp*6*6~4COf[u@Sp*6*6tl@S9J .;@Sp*6*6p@S.;@Sp*6*6p@S Of[u@Sp*6*6x_{*6$/ )5Qh2@@Sp*6*6%0[u[u Rip@Sp*6*6%0@R)5(3!+@Sp*6*6x_{*6$/g%0@Sp*6*6p@S4Cm$FZx*6*6p@S Wp *6*6rBU$m4C*6*6x@S9J  *6*6",4C*6*6 Qhpe :K3A,8OeOe*6$/ >Pׁׁ%0>PɁɁ%0 :K3A,8*6$/TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/7.tga0000644000175000001440000000155211177007633020743 0ustar jacobusers hh    zzh h00 DDII77hh 9911PP    hhTRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/7_hi.tga0000644000175000001440000000220411177007633021416 0ustar jacobusers ###tttttt######????###TTTnnnnTTTTTTTTT######nnnn### ###tttttt??44?? LL&&ZZ??==??tttGG ttt###xx###nnvvkknn######TTTTTTTTTnnnnTTT###????######tttttt###TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/5.tga0000644000175000001440000000202211177007633020732 0ustar jacobusers rydkw~PV9= w~ek25 *-8;nuhoho47;?dkw~ry*-qwfm ~SW36owfm 8;RV25 V[<@ QUs{pwQUPU<@Z`NS ciPU pvPU pvPU x58{MR AEMR ^dMR KPpwKP 25KPRWKP*-KPOTKP>AKP')GL%'TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/11_hi.tga0000644000175000001440000000251711177007633021500 0ustar jacobusers 000<>>=AB=CE=DF=EG=DF=CE<@A011000pss|rppppppr|py{011<=>}fC==<=<==Cf}<@A=?@rCCr=CDAEFr==p=CE Y`b}=,>KK@,=p=CD 233||5/Nizwa>=p=CD =??}Z @dɂÐɇj9=p=BD AEFuBLqĎʈf*=p=BD Y_`}>'Uz“—̃^=p=BD 233||54]ʂ×}T=p=BD =>>}Z?edžőtD=p=BD =?@rACgȄď˄e/=p=BD =ABp=>[qvhL=p=BD =BDp=*?001TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/8.tga0000644000175000001440000000121411177007633020737 0ustar jacobusers ? tt? X X X ՝$X dqӉ? 3E? t4FtҘڪעtq}Ȉt? AQ? &p|X X X X ? tt? TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/10.tga0000644000175000001440000000237611177007633021022 0ustar jacobusers  .(G>+F=+?:/QQQ A8'3,G>+kcTUUU @8'  tn_ZZZG>+F=+~xj___G>+uddd G>+$ G>+hhhYYYG>+1+(#G>+ {{{<<< /)-'G>+ qqqG>+C:)1+G>+ZZZ͍aaaG>+5. G>+zse___wwwǒ&&&G>+92#G>+222GGG555G>+=6%G>+ h`Qw222TTTG>+B9(G>+RI8voazmG>+F=*G>+G>+ G>+ G>+ G>+G>+G>+!G>+ [V+% G>+d`DxoyyV}~ZxG>+)$G>+hdGxdG>+xG>+-'-'G>+liJxbG>+xG>+81"1+G>+onNx`G>+xG>+ 5. G>+srQx^G>+xG>+.)C;)G>+wwTxjvuSxxUxG>+/)3,B:(@8'>6%;4$92#]^BuzWotSinNcgJ\`EVY@OR;HK6AC09<+ TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/9.tga0000644000175000001440000000172111177007633020743 0ustar jacobusers  S n|{lWmHHHHaf44SShhs9KKՕtt!!**㞞44344uoo@ffjj@R NNCCU [GGxx kHH&&!!f""XX~  ~33||SSSSOO-66-llTRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/5_hi.tga0000644000175000001440000000311111177007633021412 0ustar jacobusers (((***mmmeee[[[@@@PPP fffwejՎPPP)))fP˻ddd {{{L )|pP藗sss| 8 NzzzRդ瞲ڣggg2229r555---UUU@@@7yyysUUUcccbqr̈́{nccc~~~̡$P)wmmm`/\kfffځ;s@ @@@PӖj響((( PPP@ӇXXX dddlllfӇ"""pppɂcccLLL  rrrρP·(((Vy{@ʇ++++OS͈+̠tttr pw+ə~~~&&&t +ərrr mmmY+ərrr Y+Ǚrrr (@Κrrr MMMJPrrr VVV2Nüнddd {{{䩵VVV rrrooo GGG;;;TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/12_hi.tga0000644000175000001440000000433011177007633021474 0ustar jacobusers  JJJSSS\\\zzz)))fff///ݤ CCC666Gb񑑑 ddd塡)))rrr6666S񐐐PPP CCC{{{yyy6S񐐐pppCCC666 EEEennn6S񐐐ׁ9BѴ6S񐐐́Hi6S񐐐<662("q==16S񐐐0kqun6S񐐐𥫭uYxJ(ne6S񐐐2Wv re6S񐐐6W䎎dh$?e6S񐐐6iRnwq````/Шde6S񐐐:6ǒu*HXe6S񐐐OE;fse6S񐐐Ur끍hFWWW}e6S񐐐nnnc펫̊uuu ddde6S񐐐cccntwww555SSS΁26цڝ===|||\\\SSSPPP999888MMMfffTRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/10_hi.tga0000644000175000001440000000373011177007633021475 0ustar jacobusers G>+F=+c_VμxxxRRR666uuu3,G>+phY Ŕhhh<<+F=+~xj Ԫƒccciii$$$}pG>+uդ{nG>+nlg222piZG>+hhhYYYI@-}u𓓓666ngXG>+ {{{<<< sog퐐666ngXG>+ qqqG>+zo퐐666ngXG>+ZZZ͍aaaG>+}p퐐666ngXG>+zse___wwwǒ&&&G>+}p퐐:::jcTG>+222GGG555G>+zmꚚOOO겯ZRAG>+h`Qw222TTTG>+qj[111SSSWO=G>+RI8voazmG>+ngX666SSSWO=G>+ngX666UUUUL;G>+ngX666cccI@-G>+ngX666eeeG>+ngX666nnn}G>+ngX666~rG>+ngX666}pG>+ngX666}pG>+ [V+ngX666{nG>+d`DxoyyV}~ZxG>+sl]<<<222piZG>+hdGxdG>+xG>+I@-{tPPP666ngXG>+liJxbG>+xG>+NH:샃666ngXG>+onNx`G>+xG>+MD2onk暚666ngXG>+srQx^G>+xG>+I@-URM@@@ 666}xkI@-G>+I@-UL;WO=cwyngXmiafff///Қ}Ŷ´ƹ===ʆHHHmmmeeecccUUUSSSPPP999666///TRUEVISION-XFILE.holotz-castle-1.3.14-src/HCedHome/res/MainMenu/6_hi.tga0000644000175000001440000000335111177007633021421 0ustar jacobusers  555í(CK5^jí((( |||Matyyy BBBhjk)6okUUUwwwe{~qqq /// #include #include #include /** Clase de gestin de una interfaz de usuario. * Gestiona los elementos de la interfaz y se encarga de gestionar el foco * dentro de cada uno de ellos en base al estado del teclado y del ratn. * Esta clase se encarga de dibujar cada uno de los elementos visibles de la * interfaz as como de su actualizacin. */ class JUI : public JDrawable { vector elements; /**< Elementos de esta interfaz. */ vector visibles; /**< Elementos visibles. */ vector invisibles; /**< Elementos ocultos. */ vector focusables; /**< Elementos enfocables. */ /** Crea una interfaz vaca. Se deben aadir elementos mediante Add() o bien * cargar una interfaz desde fichero con Load(). */ JUI(); /** Actualiza la interfaz. */ s32 Update(); /** Dibuja la interfaz. */ void Draw(); /** Destruye la interfaz. Destruye cada elemento del vector de elementos. */ void Destroy(); /** Destructor de la clase. */ ~JUI() {Destroy();} }; #endif // _JUI_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/UI/JWindow.h0000600000175000001440000000157511177007633017666 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ holotz-castle-1.3.14-src/JLib/JLib/UI/JUIElement.cpp0000600000175000001440000000157511177007633020601 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ holotz-castle-1.3.14-src/JLib/JLib/UI/JWindow.cpp0000600000175000001440000000157511177007633020221 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ holotz-castle-1.3.14-src/JLib/JLib/UI/JListBox.cpp0000600000175000001440000000157511177007633020336 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ holotz-castle-1.3.14-src/JLib/JLib/UI/JListBox.h0000600000175000001440000000157511177007633020003 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ holotz-castle-1.3.14-src/JLib/JLib/Math/0000744000175000001440000000000011177007633016506 5ustar jacobusersholotz-castle-1.3.14-src/JLib/JLib/Math/JMath.h0000600000175000001440000000247011177007633017657 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Inclusin general para tipos y funciones matemticas. * @file JMath.h * @author Juan Carlos Seijo Prez * @date 29/03/2003 * @version 0.0.1 - 29/03/2003 - Primera versin. */ #ifndef _JMATH_INCLUDED #define _JMATH_INCLUDED #include #include #include #include #include #include #endif // _JMATH_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Math/J2DPolygon.h0000600000175000001440000000647711177007633020616 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Polgono cerrado genrico * @file J2DPolygon.h * @author Juan Carlos Seijo Prez * @date 01/02/2004 */ #ifndef _J2DPOLYGON_INCLUDED #define _J2DPOLYGON_INCLUDED #include #include #include #include #include /** Polgono cerrado genrico. * Consta de varios vrtices conectados correlativamente. */ class J2DPolygon : public JLoadSave { protected: s32 numVertices; /**< Nmero de vrtices del polgono */ J2DPoint* vertices; /**< Vrtices del polgono */ J2DVector* segments; /**< Segmentos del polgono */ J2DVector* normals; /**< Normales a los segmentos del polgono */ public: /** Constructor. * Crea un polgono vaco. */ J2DPolygon() : numVertices(0), vertices(0), segments(0), normals(0) {} /** Constructor. * Crea un polgono cerrado a partir de los vrtices dados. * @param _numVertices Nmero de vrtices. * @param _vertices Vrtices. */ J2DPolygon(s32 _numVertices, J2DPoint *_vertices) : numVertices(0), vertices(0), segments(0), normals(0) {Init(_numVertices, _vertices);} /** Inicializa el polgono con los vrtices dados. * @param _numVertices Nmero de vrtices. * @param _vertices Vrtices. */ void Init(s32 _numVertices, J2DPoint *_vertices); /** Destructor. * Libera memoria. */ virtual ~J2DPolygon() {Destroy();} /** Destruye el objeto y lo deja como si se acabar de crear con J2DPolygon. */ void Destroy(); /** Determina si el punto dado est dentro del polgono. * Por convenio, si un polgono est definido en * sentido antihorario (CCW) entonces un punto est dentro si cae dentro del * contorno cerrado del polgono. Si se define en sentido horario (CW), los puntos * de dentro del contorno cerrado del polgono estn fuera. * @param x coordenada x del punto. * @param y coordenada y del punto. * @return true si el punto dado est dentro, false en caso contrario. */ bool IsInside(J2DScalar x, J2DScalar y); /** Carga el polgono * @param f Fichero posicionado en este recurso * @return 0 Si todo fue bien, 1 si hay error de E/S y 2 si hay error * en los datos. */ u32 Load(JFile &f); /** Salva el polgono * @param f Fichero posicionado en este recurso * @return 0 Si todo fue bien, 1 si hay error de E/S y 2 si hay error * en los datos. */ u32 Save(JFile &f); }; #endif // _J2DPOLYGON_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Math/JMatrix.h0000600000175000001440000001746311177007633020242 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Matriz 3x3. * @file JMatrix.h * @author Juan Carlos Seijo Prez * @date 30/04/2003 * @version 0.0.1 - 30/04/2003 - Primera versin. */ #ifndef _JMATRIX_INCLUDED #define _JMATRIX_INCLUDED #include /** Representa una matriz tridimensional mediante 3 vectores en columna. */ class JMatrix { public: JVector C[3]; /**< Vectores columna */ public: /** Crea una nueva matriz. La matriz es la matriz identidad. */ JMatrix() { // Matriz identidad C[0].x = 1; C[1].y = 1; C[2].z = 1; } /** Crea la matriz a partir de tres vectores columna. * @param c0 Vector columna 0. * @param c1 Vector columna 1. * @param c2 Vector columna 2. */ JMatrix(const JVector& c0, const JVector& c1, const JVector& c2) { C[0] = c0; C[1] = c1; C[2] = c2; } /** Acceso indexado. * @note Si se usa con el del vector el acceso es M[columna][fila], * (y NO el estndar M[fila][columna]). * @param i ndice del vector columna a recuperar (0, 1 2). */ JVector& operator [] (s32 i) { return C[i]; } /** Comparacin de matrices. * @param m Matriz a comparar con esta. * @return true en caso de ser iguales, false si no. */ const bool operator == (const JMatrix& m) const { return C[0]==m.C[0] && C[1]==m.C[1] && C[2]==m.C[2]; } /** Comparacin de matrices. * @param m Matriz a comparar con esta. * @return true en caso de ser diferentes, false si no. */ const bool operator != (const JMatrix& m) const { return !(m == *this); } /** Asigna una matriz a esta. * @param m Matriz a asignar a esta. * @return Este objeto matriz. */ const JMatrix& operator = (const JMatrix& m) { C[0] = m.C[0]; C[1] = m.C[1]; C[2] = m.C[2]; return *this; } /** Incremento. Suma cada elemento de esta matriz con el * correspondiente de la matriz dada. * @param m Matriz a sumar a esta. * @return Este objeto matriz. */ const JMatrix& operator +=(const JMatrix& m) { C[0] += m.C[0]; C[1] += m.C[1]; C[2] += m.C[2]; return *this; } /** Decremento. Resta cada elemento de la matriz dada del * correspondiente de esta matriz. * @param m Matriz a restar de esta. * @return Este objeto matriz. */ const JMatrix& operator -=(const JMatrix& m) { C[0] -= m.C[0]; C[1] -= m.C[1]; C[2] -= m.C[2]; return *this; } /** Multiplica cada elemento de esta matriz por el escalar dado. * Esta operacin afecta al objeto matriz actual. * @param s Escalar por el que multiplicar. * @return Este objeto matriz. */ const JMatrix& operator *= (const JScalar& s) { C[0] *= s; C[1] *= s; C[2] *= s; return *this; } /** Multiplica esta matriz por la dada, en ese orden. * Esta operacin afecta al objeto matriz actual. * @param m Matriz por la que multiplicar. * @return Este objeto matriz. */ const JMatrix& operator *= (const JMatrix& m) { // NOTA: No cambiar las columnas en medio de la operacin JMatrix temp = (*this); C[0] = temp * m.C[0]; C[1] = temp * m.C[1]; C[2] = temp * m.C[2]; return *this; } /** Suma la matriz dada a esta. * Esta operacin devuelve un nuevo objeto matriz. * @param m Matriz a sumar a esta. * @return Nuevo objeto matriz resultado de la operacin. */ const JMatrix operator + (const JMatrix& m) const { return JMatrix(C[0] + m.C[0], C[1] + m.C[1], C[2] + m.C[2]); } /** Resta la matriz dada de esta. * Esta operacin devuelve un nuevo objeto matriz. * @param m Matriz a restar a esta. * @return Nuevo objeto matriz resultado de la operacin. */ const JMatrix operator - (const JMatrix& m) const { return JMatrix(C[0] - m.C[0], C[1] - m.C[1], C[2] - m.C[2]); } /** Multiplicacin copia por un escalar. * Esta operacin crea un nuevo objeto matriz. * @param s Escalar por el que multiplicar cada elemento. * @return Nuevo objeto matriz resultado de la operacin. */ const JMatrix operator * (const JScalar& s) const { return JMatrix(C[0]*s, C[1]*s, C[2]*s); } /** Multiplicacin propia por un escalar. * Esta operacin acta sobre este objeto. * @param s Escalar por el que multiplicar cada elemento de la matriz. * @param m Matriz a multiplicar. * @return Este objeto matriz resultado de la operacin. */ friend inline const JMatrix operator * (const JScalar& s, const JMatrix& m) { return m * s; } /** Post-Multiplicacin copia por un vector (m * v). * @param v Vector por el que multiplicar. * @return Vector resultado de la operacin. */ const JVector operator * (const JVector& v) const { return(C[0]*v.x + C[1]*v.y + C[2]*v.z); } /** Pre-Multiplicacin copia por un vector (v * m). * @param v Vector por el que multiplicar. * @param m Matriz a multiplicar. * @return Vector resultado de la operacin. */ inline friend const JVector operator * (const JVector& v, const JMatrix& m) { return JVector(m.C[0].Dot(v), m.C[1].Dot(v), m.C[2].Dot(v)); } /** Multiplica esta matriz por la dada en ese orden. * Esta operacin crea una nueva matriz. * @param m Matriz a multiplicar. * @return Nuevo objeto matriz resultado de la operacin. */ const JMatrix operator * (const JMatrix& m) const { return JMatrix((*this) * m.C[0], (*this) * m.C[1], (*this) * m.C[2]); } /** Devuelve la matriz traspuesta a esta. * @return Nueva matriz resultado de la trasposicin. */ JMatrix Transpose() const { return JMatrix(JVector(C[0].x, C[1].x, C[2].x), JVector(C[0].y, C[1].y, C[2].y), JVector(C[0].z, C[1].z, C[2].z)); } /** Devuelve el determinante de esta matriz. * @return Valor del determinante de esta matriz. */ const JScalar Determinant() const { return C[0].Dot(C[1].Cross(C[2])); } /** Devuelve una nueva matriz adjunta a esta. * @return Matriz adjunta. */ JMatrix Adjoint() const { JMatrix m; m[0][0] = (C[1].y * C[2].z - C[2].y * C[1].z); m[1][0] = -(C[0].y * C[2].z - C[2].y * C[0].z); m[2][0] = (C[0].y * C[1].z - C[1].y * C[0].z); m[0][1] = -(C[1].x * C[2].z - C[2].x * C[1].z); m[1][1] = (C[0].x * C[2].z - C[2].x * C[0].z); m[2][1] = -(C[0].x * C[1].z - C[1].x * C[0].z); m[0][2] = (C[1].x * C[2].y - C[2].x * C[1].y); m[1][2] = -(C[0].x * C[2].y - C[2].x * C[0].y); m[2][2] = (C[0].x * C[1].y - C[1].x * C[0].y); return m; } /** Devuelve una nueva matriz, inversa de esta. * @return Matriz inversa a esta. */ const JMatrix Inverse() const { JMatrix m; JScalar j = Determinant(); if (j != 0) { // La inversa es la matriz adjunta traspuesta dividida por el determinante m = Adjoint(); m = m.Transpose(); m *= 1.0f/Determinant(); } return m; } }; #endif // _JMATRIX_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Math/J2DVector.h0000600000175000001440000001625111177007633020420 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Definicin de vector en 2D * @file J2DVector.h * @author Juan Carlos Seijo Prez * @date 05/01/2004 * @version 0.0.1 - 05/01/2004 - Primera versin. */ #ifndef _J2DVECTOR_INCLUDED #define _J2DVECTOR_INCLUDED #include #include #include typedef float J2DScalar; /**< Escalar en 2D. */ /** Encapsula un vector en el plano y las operaciones ms comunes. */ class J2DVector : public JLoadSave { public: J2DScalar x; /**< Coordenada x. */ J2DScalar y; /**< Coordenada y. */ public: /** Crea un vector en el plano de coordenadas (0,0). */ J2DVector() : x(0), y(0) {}; /** Crea un vector en el plano con las componentes dadas. * @param _x Componente x del vector. * @param _y Componente y del vector. */ J2DVector(const J2DScalar& _x, const J2DScalar& _y) : x(_x), y(_y) {}; /** Crea un vector en el plano apartir del array dado. * @param arr Array con los dos valores x, y, en ese orden. */ J2DVector(const J2DScalar *arr) : x(arr[0]), y(arr[1]) {}; /** Devuelve la coordenada x. * @return Coordenada x. */ const J2DScalar& X() { return x; } /** Devuelve la coordenada y. * @return Coordenada y. */ const J2DScalar& Y() { return y; } /** Establece la coordenada x. * @param _x Coordenada x. */ void X(const J2DScalar& _x) { x = _x; } /** Establece la coordenada y. * @param _y Coordenada y. */ void Y(const J2DScalar& _y) { y = _y; } /** Comparacin de vectores. * @param v vector a comparar. * @return true si son iguales, false si no. */ const bool operator == (const J2DVector& v) const { return (v.x==x && v.y==y); } /** Comparacin de vectores. * @param v vector a comparar. * @return true si son diferentes, false si no. */ const bool operator != (const J2DVector& v) const { return (v.x!=x || v.y!=y); } /** Devuelve un vector que es la negacin de este. * @return Vector negado. */ const J2DVector operator - () const { return J2DVector(-x, -y); } /** Asignacin. * @param v Vector a asignar a este. * @return Este vector. */ const J2DVector& operator = (const J2DVector& v) { x = v.x; y = v.y; return *this; } /** Asignacin. * @param xx Nuevo valor de x. * @param yy Nuevo valor de y. */ void Pos(J2DScalar xx, J2DScalar yy) { x = xx; y = yy; } /** Incremento. * @param v Vector por el que se incrementar el valor de este. * @return Este vector. */ const J2DVector& operator += (const J2DVector& v) { x += v.x; y += v.y; return *this; } /** Decremento. * @param v Vector por el que se decrementar el valor de este. * @return Este vector. */ const J2DVector& operator -= (const J2DVector& v) { x -= v.x; y -= v.y; return *this; } /** Multiplicacin por escalar. Multiplica cada componente por el escalar * dado. * @param s Escalar por el que multiplicar. * @return Este vector. */ const J2DVector& operator *= (const J2DScalar& s) { x *= s; y *= s; return *this; } /** Divisin por escalar.Divide cada componente por el escalar dado. * @param s Escalar por el que dividir. * @return Este vector. */ const J2DVector& operator /= (const J2DScalar& s) { const J2DScalar r = 1/s; x *= r; y *= r; return *this; } /** Suma. Devuelve un nuevo vector que es la suma de este y el dado. * @param v Vector a sumar con este. * @return Vector resultado de la suma. */ const J2DVector operator + (const J2DVector& v) const { return J2DVector(x + v.x, y + v.y); } /** Resta. Devuelve un nuevo vector que es la resta de este y el dado. * @param v Vector a restar de este. * @return Vector resultado de la resta. */ const J2DVector operator - (const J2DVector& v) const { return J2DVector(x - v.x, y - v.y); } /** Post-multiplicacin por escalar. * Es el resultado de hacer v * s, en ese orden. * @param s Escalar por el que multiplicar. * @return Nuevo objeto vector resultado de la multiplicacin. */ const J2DVector operator * (const J2DScalar& s) const { return J2DVector( x*s, y*s); } /** Pre-multiplicacin por escalar. * Es el resultado de hacer s * v, en ese orden. * @param s Escalar por el que multiplicar. * @param v Vector. * @return Nuevo objeto vector resultado de la multiplicacin. */ friend inline const J2DVector operator * (const J2DScalar& s, const J2DVector& v) { return v*s; } /** Divide todas las componentes. * Este mtodo no modifica al objeto vector actual. * @param s Escalar por el que dividir. * @return Nuevo objeto vector con el resultado. */ const J2DVector operator / (J2DScalar s) const { s = 1/s; return J2DVector(s*x, s*y); } /** Realiza el producto escalar por el vector dado. * El producto escalar de dos vectores v1 y v2 se define como * v1 v2 = (x1*x2) + (y1*y2) + (z1*z2) * @param v Vector con el que calcular el producto escalar. * @return Valor del producto escalar. */ const J2DScalar Dot(const J2DVector& v) const { return x*v.x + y*v.y; } /** Calcula la longitud (norma) * @return La longitud del vector. */ const float Length() const { return (J2DScalar)sqrt((double)this->Dot(*this)); } /** Calcula y devuelve un vector perpendicular a este. * El vector normal resultado es N=(y, -x), con x e y las componentes de este vector. * @return Vector normal */ const J2DVector Normal() const { return J2DVector(y, -x); } /** Carga el objeto * @param f Fichero posicionado sobre este objeto */ u32 Load(JFile &f) { // Carga las coordenadas de los puntos if (0 != f.Read(&x, sizeof(x)) && 0 != f.Read(&y, sizeof(y))) { return 0; } return 1; } /** Salva el objeto * @param f Fichero posicionado sobre este objeto */ u32 Save(JFile &f) { // Salva las coordenadas de los puntos if (0 != f.Write(&x, sizeof(x)) && 0 != f.Write(&y, sizeof(y))) { return 0; } return 1; } }; typedef J2DVector J2DPoint; // Posicin 2D #endif // _J2DVECTOR_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Math/J2DSegment.h0000600000175000001440000002243211177007633020556 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Segmento en el plano. * @file J2DSegment.h * @author Juan Carlos Seijo Prez * @date 05/01/2004 * @version 0.0.1 - 05/01/2004 - Primera versin. */ #ifndef _J2DSEGMENT_INCLUDED #define _J2DSEGMENT_INCLUDED #include #include /** Encapsula un segmento en el plano. Coordenadas medidas como * en pantalla (eje y positivo hacia abajo). */ class J2DSegment : public JLoadSave { protected: bool vertical; /**< Flag de verticalidad */ float lastX, lastY; /**< ltimo punto de interseccin */ float x1, y1, x2, y2; /**< Inicio y fin del segmento */ float m; /**< Pendiente */ float n; /**< Desplazamiento */ /** Compara dos valores decimales con el margen 'epsilon' actual de la clase. * @param a Primer valor. * @param b Segundo valor. */ bool NearlyEquals(float a, float b) const { return (a >= b - epsilon && a <= b + epsilon); } /** Recalcula la pendiente. */ void RecalcM() { if (x1 == x2) { vertical = true; m = n = 0; } else { m = (y2 - y1)/(x2 - x1); n = y1 - (m * x1); vertical = false; } } public: static const float epsilon; /**< Margen de comparacin entre dos puntos */ /** Crea un nuevo segmento. */ J2DSegment() {} /** Crea un nuevo segmento a partir de sus extremos. * @param _x1 Coordenada x del primer extremo. * @param _y1 Coordenada y del primer extremo. * @param _x2 Coordenada x del segundo extremo. * @param _y2 Coordenada y del segundo extremo. */ J2DSegment(float _x1, float _y1, float _x2, float _y2) : x1(_x1), y1(_y1), x2(_x2), y2(_y2) { RecalcM(); } /** Determina si el segmento es vertical. * @return true en caso de que sea vertical, false si no. */ bool Vertical() const {return vertical;} /** Devuelve la coordenada x del primer extremo. * @return Coordenada x del primer extremo. */ float X1() const {return x1;} /** Devuelve la coordenada y del primer extremo. * @return Coordenada y del primer extremo. */ float Y1() const {return y1;} /** Devuelve la coordenada x del segundo extremo. * @return Coordenada x del segundo extremo. */ float X2() const {return x2;} /** Devuelve la coordenada y del segundo extremo. * @return Coordenada y del segundo extremo. */ float Y2() const {return y2;} /** Devuelve la pendiente 'm' en la ecuacin de la recta y = mx + n. * @return Pendiente. */ float M() const {return m;} /** Devuelve el desplazamiento vertical 'n' en la ecuacin de la recta y = mx + n. * @return Pendiente. */ float N() const {return n;} /** Establece la coordenada x del primer segmento. * @param _x1 Coordenada x del primer segmento. */ void X1(float _x1) {x1 = _x1; RecalcM();} /** Establece la coordenada y del primer segmento. * @param _y1 Coordenada y del primer segmento. */ void Y1(float _y1) {y1 = _y1; RecalcM();} /** Establece la coordenada x del segundo segmento. * @param _x2 Coordenada x del segundo segmento. */ void X2(float _x2) {x2 = _x2; RecalcM();} /** Establece la coordenada y del segundo segmento. * @param _y2 Coordenada y del segundo segmento. */ void Y2(float _y2) {y2 = _y2; RecalcM();} /** Establece las coordenadas de los extremos. * @param _x1 Coordenada x del primer segmento. * @param _y1 Coordenada y del primer segmento. * @param _x2 Coordenada x del segundo segmento. * @param _y2 Coordenada y del segundo segmento. */ void Pos(float _x1, float _y1, float _x2, float _y2) {X1(_x1); Y1(_y1); X2(_x2); Y2(_y2); RecalcM();} /** Devuelve la coordenada x del ltimo punto de corte. * @return Coordenada x del ltimo punto de corte. */ float LastX() {return lastX;} /** Devuelve la coordenada y del ltimo punto de corte. * @return Coordenada y del ltimo punto de corte. */ float LastY() {return lastY;} /** Determina si el valor x se encuentra entre min y max, inclusive. * @param x Valor a probar. * @param min Valor mnimo. * @param max Valor mximo. * @return true si x est entre min y max, false si no. */ bool Between(float x, float min, float max) const { return (min <= x && x <= max); } /** Comprueba si el punto pertenece al segmento. * @param x Coordenada x del punto a probar. * @param y Coordenada y del punto a probar. * @return true si lo contiene, false si no. * @see epsilon. */ bool Contains(float x, float y) const { if (vertical) { return x1 == x && (Between(y, y1, y2) || Between(y, y2, y1)); } return (NearlyEquals(y, ((m * x) + n)) && (Between(x, x1, x2) || Between(x, x2, x1))); } /** Comprueba si el punto est en el rectngulo formado por el segmento. * @param x Coordenada x del punto a probar. * @param y Coordenada y del punto a probar. * @return true si lo est, false si no. */ bool InRect(float x, float y) const { float xMin, xMax, yMin, yMax; if (x1 < x2) { xMin = x1; xMax = x2; } else { xMin = x2; xMax = x1; } if (y1 < y2) { yMin = y1; yMax = y2; } else { yMin = y2; yMax = y1; } return (Between(x, xMin, xMax) && Between(y, yMin, yMax)); } /** Comprueba si se cortan los segmentos. En caso de cortarse, el punto * de corte se obtiene con LastX() y LastY(). * @param other Segmento con el que comprobar el corte. * @return true si se cortan, false si no. */ bool Cuts(const J2DSegment &other) { bool cut; if (vertical) { // Paralelos if (other.Vertical()) { //printf("Paralelos verticales\n"); cut = (Contains(lastX = other.X1(), lastY = other.Y1()) || Contains(lastX = other.X2(), lastY = other.Y2())); } else { // No paralelos //printf("No Paralelos, primero vertical\n"); lastX = x1; lastY = (other.M() * x1) + other.N(); cut = (Contains(lastX, lastY) && other.Contains(lastX, lastY)); // cut = InRect(lastX, lastY) && other.InRect(lastX, lastY); } } else if (other.Vertical()) { // No paralelos //printf("No Paralelos, segundo vertical\n"); lastX = other.X1(); lastY = (M() * other.X1()) + N(); cut = (Contains(lastX, lastY) && other.Contains(lastX, lastY)); // cut = InRect(lastX, lastY) && other.InRect(lastX, lastY); } else // Paralelos if (m == other.M()) // UFFFF!, aunque vienen de enteros, no creo que haya problemas { if ((s32)n != other.N()) { //printf("Paralelos no coincidentes n1=%d, n2=%d\n", (s32)n, (s32)other.N()); cut = false; } else { //printf("Coincidentes\n"); cut = (Contains(lastX = other.X1(), lastY = other.Y1()) || Contains(lastX = other.X2(), lastY = other.Y2()) || other.Contains(lastX = X1(), lastY = Y1()) || other.Contains(lastX = X2(), lastY = Y2())); // cut = InRect(lastX, lastY) && other.InRect(lastX, lastY); } } else { // No Paralelos //printf("No Paralelos\n"); lastX = (other.N() - n)/(m - other.M()); lastY = n + (m * lastX); cut = (Contains(lastX, lastY) && other.Contains(lastX, lastY)); // cut = InRect(lastX, lastY) && other.InRect(lastX, lastY); } //if (cut) ////printf("(%d,%d)-(%d,%d) corta a (%d,%d)-(%d,%d) en (%d, %d)\n", (s32)x1, (s32)y1, // (s32)x2, (s32)y2, (s32)other.X1(), (s32)other.Y1(), (s32)other.X2(), (s32)other.Y2(), (s32)lastX, (s32)lastY); return cut; } /** Carga el segmento. * @param f Fichero abierto y posicionado para cargar el objeto. * @return 0 si todo fue bien, 1 en caso de error de E/S, 2 en caso * de error de integridad. */ u32 Load(JFile &f) { if (0 != f.Read(&x1, sizeof(x1)) && 0 != f.Read(&y1, sizeof(y1)) && 0 != f.Read(&x2, sizeof(x2)) && 0 != f.Read(&y2, sizeof(y2))) { RecalcM(); return 0; } return 1; } /** Salva el segmento. * @param f Fichero abierto y posicionado para salvar el objeto. * @return 0 si todo fue bien, 1 en caso de error de E/S, 2 en caso * de error de integridad. */ u32 Save(JFile &f) { if (0 != f.Write(&x1, sizeof(x1)) && 0 != f.Write(&y1, sizeof(y1)) && 0 != f.Write(&x2, sizeof(x2)) && 0 != f.Write(&y2, sizeof(y2))) { return 0; } return 1; } }; const float J2DSegment::epsilon = 0.9f; #endif // _J2DSEGMENT_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Math/JCoordAxes.h0000600000175000001440000000701111177007633020651 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Eje de coordenadas (base + origen) * @file JCoordAxes.h * @author: Juan Carlos Seijo Prez * @date 30/04/2003 * @version 0.0.1 - 30/04/2003 - Primera versin. */ #ifndef _JCOORDAXES_INCLUDED #define _JCOORDAXES_INCLUDED #include /** Encapsula unos ejes coordenados consistentes en una base definida * por 3 vectores y un punto en el espacio, el origen. */ class JCoordAxes : public JBasis { public: JPoint O; /**< Origen de coordenadas relativo al origen del padre. */ public: /** Crea unos ejes coordenados. */ JCoordAxes(){} /** Crea unos ejes coordenados a partir de los vectores base y el origen. * @param o Origen de coordenadas. * @param v0 Vector base 0 * @param v1 Vector base 1 * @param v2 Vector base 2 */ JCoordAxes(const JPoint& o, const JVector& v0, const JVector& v1, const JVector& v2) : JBasis (v0, v1, v2), O(o){}; /** Crea unos ejes coordenados a partir de la base y el origen. * @param o Origen de coordenadas. * @param b Base de vectores. */ JCoordAxes(const JPoint& o, const JBasis& b) : JBasis (b), O(o) {}; /** Devuelve el origen de coordenadas. * @return Origen de coordenadas. */ const JPoint& Position() const { return O; } /** Establece el origen de coordenadas. * @param p Nuevo origen de coordenadas. */ void Position(const JPoint& p) { O = p; } /** Transforma las coordenadas de un punto a coordenadas locales. * Dado un punto en el sistema de referencia al que se refiere la * base de estos ejes coordenados, devuelve el punto correspondiente * respecto de esta base. * @param p Punto a transformar. * @return Punto referido a la base de estos ejes coordenados. */ const JPoint transformPointToLocal(const JPoint& p) const { // Traslada al origen local y luego proyecta en la base local return TransformVectorToLocal(p - O); } /** Transforma las coordenadas de un punto a coordenadas del padre. * Dado un punto en este sistema de referencia, devuelve el punto * correspondiente respecto del sistema de referencia en el que estn * expresados los vectores de esta base. * @param p Punto a transformar. * @return Punto referido a la base padre de estos ejes coordenados. */ const JPoint TransformPointToParent(const JPoint& p) const { // Transforma las coordenadas y traslada este origen return TransformVectorToParent(p) + O; } /** Traslada el origen por el vector dado. * @param v Vector de desplazamiento. */ void Translate(const JVector& v) { O += v; } }; #endif // _JCOORDAXES_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Math/JBasis.h0000600000175000001440000001332411177007633020027 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Base ortonormal respecto a un padre. * @file JBasis.h * @author Juan Carlos Seijo Prez * @date 30/04/2003 * @version 0.0.1 - 30/04/2003 - Primera versin. */ #ifndef _JBASIS_INCLUDED #define _JBASIS_INCLUDED #include #include /** Base de vectores ortonormales, respecto a un padre. */ class JBasis { public: JMatrix R; /**< Vectores base en columnas */ public: /** Crea una base. */ JBasis(){}; /** Crea una base a partir de sus vectores columna. */ JBasis(const JVector& v0, const JVector& v1, const JVector& v2) : R(v0, v1, v2){}; /** Crea una base a partir de una matriz. Las columnas son los vectores * base. */ JBasis(const JMatrix& m) : R(m) {} /** Acceso indexado a los vectores columna. * @param i ndice del vector columna a ser recuperado (0, 1 2). * @return Vector columna pedido. */ const JVector& operator [] (s32 i) const { return R.C[i]; } /** Funcin de acceso al primer vector columna. * Es equivalente a usar operator [0]. * @return Primer vector columna. */ const JVector& X() const { return R.C[0]; } /** Funcin de acceso al segundo vector columna. * Es equivalente a usar operator [1]. * @return Segundo vector columna. */ const JVector& Y() const { return R.C[1]; } /** Funcin de acceso al tercer vector columna. * Es equivalente a usar operator [2]. * @return Tercer vector columna. */ const JVector& Z() const { return R.C[2]; } /** Devuelve la matriz de base. Sus columnas son los vectores que * forman la base. * @return Matriz de base. */ const JMatrix& Basis() const { return R; } /** Establece la base a partir de sus vectores. * @param v0 Primer vector base. * @param v1 Segundo vector base. * @param v2 Tercer vector base. */ void Basis(const JVector& v0, const JVector& v1, const JVector& v2) { this->R[0] = v0; this->R[1] = v1; this->R[2] = v2; } /** Rotacin de mano derecha en torno al primer vector base (X). * @param a Angulo de rotacin en radianes. */ void RotateAboutX(const JScalar& a) { if(0 != a) // No se rota 0 { JVector b1 = this->Y()*cosf(a) + this->Z()*sinf(a); // Rota X JVector b2 = -this->Y()*sinf(a) + this->Z()*cosf(a); // Rota Z // Establece la base this->R[1] = b1; this->R[2] = b2; // X no camia } } /** Rotacin de mano derecha en torno al segundo vector base (Y). * @param a Angulo de rotacin en radianes. */ void RotateAboutY(const JScalar& a) { if(0 != a) // No se rota 0 { JVector b2 = this->Z()*cosf(a) + this->X()*sinf(a); // Rota Z JVector b0 = -this->Z()*sinf(a) + this->X()*cosf(a); // Rota Y // Establece la base this->R[2] = b2; this->R[0] = b0; // Y no camia } } /** Rotacin de mano derecha en torno al tercer vector base (Z). * @param a Angulo de rotacin en radianes. */ void RotateAboutZ(const JScalar& a) { if(0 != a) // No se rota 0 { // No cambiar la base mientras se hace la operacin JVector b0 = this->X()*cosf(a) + this->Y()*sinf(a); // Rota X JVector b1 = -this->X()*sinf(a) + this->Y()*cosf(a); // Rota Y // Establece la base this->R[0] = b0; this->R[1] = b1; // Z no cambia } } /** Rotacin de mano derecha en torno al eje dado. * @param theta Angulo de rotacin en radianes. * @param u Vector director del eje de rotacin. */ void Rotate(const JScalar& theta, const JVector& u) { JBasis ZInv, ZZ, YInv, YY, U; JVector v; // Giro hasta el plano YZ v = u; v.x = 0.0f; ZZ.RotateAboutZ(acosf(1.0f - v.Length())); ZInv = ZZ.R.Inverse(); // Giro hasta el plano XY v = u; v.z = 0.0f; YY.RotateAboutY(acosf(1.0f - v.Length())); YInv = YY.R.Inverse(); // Giro en eje Z U.R = this->R; U.RotateAboutZ(theta); this->R = ZInv.R * YInv.R * U.R * YY.R * ZZ.R; } // Rotacin, la longitud 'da' es theta, la direccin unitaria de 'da' es u void Rotate(const JVector& da); /** Espresa en coordenadas de esta base el vector dado en coordenadas * de la base padre. * @param v Vector expresado en coordenadas de la base padre. * @return Vector expresado en coordenadas de esta base. */ const JVector TransformVectorToLocal(const JVector& v) const { return JVector(R.C[0].Dot(v), R.C[1].Dot(v), R.C[2].Dot(v)); } /** Espresa en coordenadas de la base padre el vector dado en coordenadas * de esta base. * @param v Vector expresado en coordenadas de esta base. * @return Vector expresado en coordenadas de la base padre. */ const JPoint TransformVectorToParent(const JVector& v) const { return R.C[0] * v.x + R.C[1] * v.y + R.C[2] * v.z; } }; #endif // _JBASIS_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Math/JVector.h0000600000175000001440000002035611177007633020233 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Vector en 3D. * @file JVector.h * @author Juan Carlos Seijo Prez * @date 30/04/2003 * @version 0.0.1 - 30/04/2003 - Primera versin. */ #ifndef _JVECTOR_INCLUDED #define _JVECTOR_INCLUDED #include #include #include typedef float JScalar; /**< Escalar decimal */ /** Encapsula un vector en el espacio de coordenadas (x, y, z) y * las operaciones ms comunes entre vectores. */ class JVector { public: JScalar x; // Coordenada x JScalar y; // Coordenada y JScalar z; // Coordenada z public: /** Crea un vector. */ JVector() : x(0), y(0), z(0) {}; /** Crea un vector con los valores dados. * @param _x Valor de la componente x * @param _y Valor de la componente y * @param _z Valor de la componente z */ JVector(const JScalar& _x, const JScalar& _y, const JScalar& _z) : x(_x), y(_y), z(_z) {}; /** Crea un vector a partir del array de valores. * El array debe contener al menos 3 elementos que se asignarn, * respectivamente, a las componentes 'x', 'y' y 'z'. */ JVector(const JScalar *arr) : x(arr[0]), y(arr[1]), z(arr[2]) {}; /** Acceso indexado. * @param i ndice de la componente a recuperar (0 para x, 1 para y, * 2 para z). * @return Coordenada pedida. */ JScalar& operator [] (const s32 i) { return *((&x) + i); } /** Determina si el vector dado es igual a este. * Dos vectores son iguales si todas sus componentes son iguales. * El resultado podra no ser el esperado debido a errores de precisin. * En estos casos se debe usar el mtodo NearlyEquals() para tener en * cuenta esta imprecisin. * @param v Vector a comparar con este. * @return true si son iguales, false si no. */ const bool operator == (const JVector& v) const { return (v.x==x && v.y==y && v.z==z); } /** Determina si el vector dado es diferente a este. * El resultado podra no ser el esperado debido a errores de precisin. * En estos casos se debe usar el mtodo NearlyEquals() para tener en * cuenta esta imprecisin. * @param v Vector a comparar con este. * @return true si son diferentes, false si no. */ const bool operator != (const JVector& v) const { return !(v == *this); } /** Devuelve un vector que es la negacin de este, es decir, * con todas las coordenadas cambiadas de signo. */ const JVector operator - () const { return JVector(-x, -y, -z); } /** Asigna otro vector a este. * @param v Vector que se quiere asignar a este. * @return Este objeto. */ const JVector& operator = (const JVector& v) { x = v.x; y = v.y; z = v.z; return *this; } /** Suma un vector dado a este vector. A diferencia del operador * '+', este operador no crea un objeto nuevo. * @param v Vector a sumar a este. * @return Este objeto. */ const JVector& operator += (const JVector& v) { x += v.x; y += v.y; z += v.z; return *this; } /** Resta un vector dado a este vector. A diferencia del operador * '-', este operador no crea un objeto nuevo. * @param v Vector a restar a este. * @return Este objeto. */ const JVector& operator -= (const JVector& v) { x -= v.x; y -= v.y; z -= v.z; return *this; } /** Multiplica cada componente por el escalar dado. * @param s Escalar por el que multiplicar. * @return Este objeto. */ const JVector& operator *= (const JScalar& s) { x *= s; y *= s; z *= s; return *this; } /** Divide cada componente por un escalar. * A diferencia del operador '/' este no crea un nuevo objeto. * @param s Escalar por el que dividir. * @return Este objeto. */ const JVector& operator /= (const JScalar& s) { const JScalar r = 1/s; x *= r; y *= r; z *= r; return *this; } /** Devuelve la suma de este vector y el vector dado. * Este mtodo no modifica el objeto vector actual, devuelve * un nuevo objeto. * @param v Vector a sumar a este. * @return Vector resultado de la suma de este y el vector dado. */ const JVector operator + (const JVector& v) const { return JVector(x + v.x, y + v.y, z + v.z); } /** Devuelve la resta de este vector y el vector dado. * Este mtodo no modifica el objeto vector actual, devuelve * un nuevo objeto. * @param v Vector a restar a este. * @return Vector resultado de la resta de este y el vector dado. */ const JVector operator - (const JVector& v) const { return JVector(x - v.x, y - v.y, z - v.z); } /** Post-multiplicacin por escalar. * Es el resultado de hacer v * s, en ese orden. * @param s Escalar por el que multiplicar. * @return Nuevo objeto vector resultado de la multiplicacin. */ const JVector operator * (const JScalar& s) const { return JVector( x*s, y*s, z*s); } /** Pre-multiplicacin por escalar. * Es el resultado de hacer s * v, en ese orden. * @param s Escalar por el que multiplicar. * @param v Vector. * @return Nuevo objeto vector resultado de la multiplicacin. */ friend inline const JVector operator * (const JScalar& s, const JVector& v) { return v*s; } /** Divide todas las componentes. * Este mtodo no modifica al objeto vector actual. * @param s Escalar por el que dividir. * @return Nuevo objeto vector con el resultado. */ const JVector operator / (JScalar s) const { s = 1/s; return JVector(s*x, s*y, s*z); } /** Realiza el producto vectorial de este vector por el vector dado, * en ese orden. * @param v Vector con el que realizar el producto vectorial. * @return Nuevo objeto vector con el resultado. */ const JVector Cross(const JVector& v) const { return JVector(y*v.z - z*v.y, z*v.x - x*v.z, x*v.y - y*v.x); } /** Realiza el producto escalar por el vector dado. * El producto escalar de dos vectores v1 y v2 se define como * v1 v2 = (x1*x2) + (y1*y2) + (z1*z2) * @param v Vector con el que calcular el producto escalar. * @return Valor del producto escalar. */ const JScalar Dot(const JVector& v) const { return x*v.x + y*v.y + z*v.z; } /** Determina la longitud (norma) del vector. * @return Longitud del vector. */ const JScalar Length() const { return (JScalar)sqrt((double)this->Dot(*this)); } /** Devuelve un vector unitario en el sentido de este. * Esta operacin no modifica a este vector actual. * @return Nuevo vector unitario. */ const JVector Unit() const { return (*this) / Length(); } /** Convierte este vector en vector unitario (longitud 1). */ void Normalize() { (*this) /= Length(); } /** Determina si dos vectores son iguales con un margen de error 'e'. * Esta funcin se usa en los casos en que a precisin del redondeo decimal * se deba tener en cuenta. * @param v Vector a comparar con este. * @param e Margen de error positivo/negativo en cada componente. * @return true si son iguales dentro del margen dado false si no. */ const bool NearlyEquals(const JVector& v, const JScalar e) const { return fabs(x - v.x) < e && fabs(y - v.y) < e && fabs(z - v.z) < e; } }; typedef JVector JPoint; /**< Posicin 3D */ #endif // _JVECTOR_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Math/J2DPolygon.cpp0000600000175000001440000000575111177007633021143 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Polgono cerrado genrico * @file J2DPolygon.cpp. * @author Juan Carlos Seijo Prez. * @date 01/02/2004 * @version 0.0.1 - 01/02/2004 - Primera versin. */ #include #include void J2DPolygon::Init(s32 _numVertices, J2DPoint *_vertices) { Destroy(); numVertices = _numVertices; vertices = new J2DPoint[numVertices]; memcpy(vertices, _vertices, numVertices * sizeof(J2DPoint)); segments = new J2DVector[numVertices]; normals = new J2DVector[numVertices]; // El vector normal en sentido CCW de (x, y) es (y, -x) for (s32 i = 0; i < numVertices - 1; ++i) { segments[i] = _vertices[i] - _vertices[i + 1]; normals[i].Pos(segments[i].y, -segments[i].x); } segments[numVertices - 1] = _vertices[numVertices - 1] - _vertices[0]; normals[numVertices - 1].Pos(segments[numVertices - 1].y, -segments[numVertices - 1].x); } void J2DPolygon::Destroy() { JDELETE_ARRAY(vertices); JDELETE_ARRAY(normals); JDELETE_ARRAY(segments); } bool J2DPolygon::IsInside(J2DScalar x, J2DScalar y) { J2DVector v(x, y); J2DVector vNorm, vTemp; J2DScalar s = 1; // Dejamos como caso ms probable que est fuera (en sentido CCW) for (s32 i = 0; s >= 0 && i < numVertices; ++i) { vNorm = normals[i]; vTemp = vertices[i] - v; //printf("vNorm (%f, %f). ", vNorm.X(), vNorm.Y()); //printf("vTemp (%f, %f). ", vTemp.X(), vTemp.Y()); s = (vNorm).Dot(vTemp); //printf("Dot (%f).\n", s); } return s >= 0; } u32 J2DPolygon::Load(JFile &f) { // Salva el nmero de vrtices if (0 == f.Read(&numVertices, sizeof(numVertices))) { return 1; } // Salva los vrtices u32 ret = 0; J2DPoint *v = new J2DPoint[numVertices]; for (s32 i = 0; 0 == ret && i < numVertices; ++i) { ret = v[i].Load(f); } if (ret == 0) { // Inicializa el polgono Init(numVertices, v); } JDELETE_ARRAY(v); return ret; } u32 J2DPolygon::Save(JFile &f) { // Salva el nmero de vrtices if (0 == f.Write(&numVertices, sizeof(numVertices))) { return 1; } // Salva los vrtices u32 ret = 0; for (s32 i = 0; 0 == ret && i < numVertices; ++i) { ret = vertices[i].Save(f); } return ret; } holotz-castle-1.3.14-src/JLib/JLib/Util/0000744000175000001440000000000011177007633016532 5ustar jacobusersholotz-castle-1.3.14-src/JLib/JLib/Util/JFLTK.h0000600000175000001440000000665211177007633017560 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Utility funtions for FLTK v1.1.4 (www.fltk.org). * @file JFLTK.h * @author Juan Carlos Seijo Prez * @date 07/01/2004 * @version 0.0.1 - 07/01/2004 - First version */ #ifndef _JFLTK_INCLUDED #define _JFLTK_INCLUDED #include /** Shifts the selected elements in the browser a line up. * @param brw Browser. */ void JFLTK_SelectedUp(Fl_Browser *brw) { for (s32 i = 2; i <= brw->size(); ++i) { if (0 != brw->selected(i) && 0 == brw->selected(i - 1)) { brw->move(i - 1, i); } } } /** Shifts the selected elements in the browser a line down. * @param brw Browser. */ void JFLTK_SelectedDown(Fl_Browser *brw) { for (s32 i = brw->size() - 1; i >= 1; --i) { if (0 != brw->selected(i)) { if (0 == brw->selected(i + 1)) { brw->move(i + 1, i); } } } } /** Removes the selected elements in the browser. * @param brw Browser. */ void JFLTK_RemoveSelected(Fl_Browser *brw) { // Borra los seleccionados for (s32 i = 1; i <= brw->size(); ++i) { if (0 != brw->selected(i)) { brw->remove(i); --i; } } } /** Checks if the browser has the string already. * @param brw Browser. * @param text Text to find. * @return The index in the list if it exists already, else 0 (zero). */ s32 JFLTK_Contains(Fl_Browser *brw, const s8 *text) { bool exists = false; s32 i = 0; for (i = 1; i <= brw->size() && !exists; ++i) { if (0 == strcmp(brw->text(i), text)) exists = true; } if (exists) return i - 1; return 0; } /** Request a name and checks that the name didn't exist in the browser already. * 'filename' is a posible name for the file or the default value. * @param filename Name of the file from which to extract the default value or default value.. * @param brw Browser to check coincidences.. * @return Choosen name of 0 (zero) if the user cancels the operation. */ const s8 * JFLTK_InputName(const s8 *filename, Fl_Browser *brw) { const s8 *name = ""; s8 *s; if (filename) { // Shows the name of the file without extension by default // Search the first dot from the end if (0 != (s = strrchr(filename, '.'))) *s = 0; // Searchs the first slash from the end if (0 == (s = strrchr(filename, '/'))) name = filename; else name = s + 1; } name = fl_input("Nombre", name); while (name != 0 && JFLTK_Contains(brw, name)) { fl_ask("El nombre ya existe,\npor favor elija otro."); name = fl_input("Nombre", name); } return name; } #endif // _JFLTK_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JFS.h0000600000175000001440000003476411177007633017335 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Virtual filesystem. * @file JFS.h * @author Juan Carlos Seijo Prez * @date 23/12/2003 * @version 0.0.1 - 23/12/2003 - First version. */ #ifndef _JFS_INCLUDED #define _JFS_INCLUDED #include #include #include #include #include #include #include #include #include #include #include /*** Identification string for JFS files */ #define JRES_JFS_FILE "JLIBJFS " /*** Major version number */ #define JRES_JFS_MAJOR 1 /*** Minor version number */ #define JRES_JFS_MINOR 0 /*** Size of the header */ #define JRES_JFS_HEADER_SIZE 10 /*** Version of the exporter */ #define JRES_JFS_EXPORT_VERSION "///~ JFS V1.0" /*** Begin of export id */ #define JRES_JFS_EXPORT_BEGIN "///~ RESOURCES BEGIN" /*** End of export id */ #define JRES_JFS_EXPORT_END "///~ RESOURCES END" /*** Export warning label */ #define JRES_JFS_EXPORT_WARNING " - DO NOT EDIT THIS FILE MANUALLY. USE JLib's JFSBrowser INSTEAD" // Built-in resource identifiers /*** Resource block id */ #define JRES_RESOURCEBLOCK 0x80000000 /*** Resource link id */ #define JRES_RESOURCELINK 0x40000000 /*** Image file id */ #define JRES_IMAGE 0x20000000 /*** Sound file id */ #define JRES_SOUND 0x10000000 /*** Text file id */ #define JRES_TEXT 0x08000000 /*** Image sprite id */ #define JRES_IMAGESPRITE 0x04000000 /*** Font file id */ #define JRES_FONT 0x02000000 /*** Generic data id */ #define JRES_BINARY 0x01000000 // Resource flags /*** Compression flag */ #define JRES_FLAGS_COMPRESSED 0x00000001 /*** Opened block flag (edit mode) */ #define JRES_FLAGS_BLOCK_OPENED 0x80000000 /** Selected resource flag (edit mode) */ #define JRES_FLAGS_SELECTED 0x40000000 /** Save pending flag (edit mode) */ #define JRES_FLAGS_IMPORTED 0x20000000 /*** Check if the resource is compressed */ #define JFS_COMPRESSED(p) ((p)->Header().flags & JRES_FLAGS_COMPRESSED) /** Check if the resource is a block */ #define JFS_IS_BLOCK(p) ((p)->Header().type == JRES_RESOURCEBLOCK) /** Check if the resource is a link */ #define JFS_IS_LINK(p) ((p)->Header().type == JRES_RESOURCELINK) /** Checks if the resource is opened (has no sense for other resource than a block) */ #define JFS_OPENED(p) ((p)->Header().flags & JRES_FLAGS_BLOCK_OPENED) /** Checks if the reosurce is a block and it is opened */ #define JFS_BLOCKOPENED(p) (((p)->Header().type == JRES_RESOURCEBLOCK) && ((p)->Header().flags & JRES_FLAGS_BLOCK_OPENED)) /** Checks if the resource is seleced */ #define JFS_SELECTED(p) ((p)->Header().flags & JRES_FLAGS_SELECTED) class JFS; /** Resource header. */ class JResourceHeader : public JLoadSave { public: u32 id; /**< Unique resource id */ u32 pid; /**< Parent resource id */ u32 type; /**< Resource type */ u32 flags; /**< Additional flags */ u32 size; /**< Size of the data this resource contains in the file */ /** Loads the header. * @param f File opened and correctly positioned from which to load the data. * @return 0 if ok, 1 if I/O error, 2 if data integrity error. */ virtual u32 Load(JRW &f); /** Saves the header. * @param f File opened and correctly positioned where to save the data. * @return 0 if ok, 1 if I/O error, 2 if data integrity error. */ virtual u32 Save(JRW &f); /** Size of this header in the file. * @return Size of the header in the file. */ virtual u32 Size() {return 20;} }; /** Basic resource. */ class JResource : public JLoadSave { friend class JFS; private: u32 instanceCount; /**< Number of existing instances of this resource */ protected: JResourceHeader header; /**< Resource header */ JLoadSave *data; /**< Unique instance of the data of the object this resource refers to */ bool loaded; /**< Indicates whether this resource has benn loaded or not */ public: /** Creates an empty resource. */ JResource() : instanceCount(0), data(0), loaded(false) {} /** Returns the data size for this resource. * @return Data size of this resource. */ u32 Size() {return header.size;} /** Returns the type of resource. * @return Type of this resource as in the header. */ u32 Type() const {return header.type;} /** Returns this resource's id. * @return Resource id. */ u32 Id() const {return header.id;} /** Returns the data of this resource. * @return Dta of this resource. */ JLoadSave* Data() const {return data;} /** Checks if the resource has been loaded already. * @return true if so, false if not. */ bool Loaded() {return loaded;} /** Destroys the resource, unloads it and frees its allocated memory. */ virtual ~JResource() {} /** Loads the resource. * @param f File opened and correctly positioned from which to load the resource data. * @param where Pointer to the object in where to load resource data. * @return 0 if ok, 1 if I/O error, 2 if data integrity error. */ virtual u32 Load(JRW &f, JLoadSave *where); /** Returns this resource's header. * @return Resource header. */ JResourceHeader & Header() {return header;} /** Returns the resource type based upon the file extension. * @param filename File name (.txt, .png, .tga, .jpg, .bmp, .xpm, .wav, .spr, .jfs). * @return Resource type, one of JRES_XXX. */ static u32 TypeOf(const char *filename); }; /** Resource list iterator. */ typedef std::vector::iterator JResIterator; /** Resource index entry. */ struct JFSIndexEntry { u32 offset; /**< Offset of the resource from the beginning of the file. */ JString name; /**< String with the resource id in text form. */ JResource *res; /**< Resource. */ }; /** Virtual filesystem. * Consists on a file organized in a hierarchy of blocks. * At least always one block exists, the root block from which the other resources in the file hang. * A resource is identified biunivocally from its id. */ class JFS : public JTree { protected: JString resFilename; /**< Name of the file */ JString prefix; /**< Export prefix for identifiers at the '.h' export file */ JRW resFile; /**< Resource file */ JTree::Iterator *it; /**< Auxiliar iterator */ std::vector index; /**< Resource offset index */ u32 defaultFlags; /**< Default flags when adding a resource */ s32 compressionLevel; /**< Compression level */ /** Chenges the size of the file. Places resFile ready to write. * @param offset Offset at which to change the size. * @param numBytes Number of bytes to increment size. * @return true if ok, false if the operation couldn't be accomplished. */ bool ResizeAt(u32 offset, u32 numBytes); /** Loads the resource header and checks if it's in the expected format. * @return 0 if ok, 1 if I/O error, 2 if data integrity error. */ s32 LoadHeader(); /** Load the resource offset index. * @return 0 if ok, 1 if I/O error, 2 if data integrity error. */ s32 LoadIndex(); /** Saves the resource header. * @return 0 if ok, 1 if I/O error, 2 if data integrity error. */ s32 SaveHeader(); /** Saves the resource offset index. * @return 0 if ok, 1 if I/O error, 2 if data integrity error. */ s32 SaveIndex(); /** Adds a resource in the current position of the tree's global iterator. * @param res Resource to add. * @return 0 if successful, -1 if not. */ s32 AddTreeResource(JResource *res); /** Adds an entry to the resource offset index and adjusts the following indices. * @param offset Offset to add. * @param name Name of the resource to add. * @param res Resource to add. * @return 0 if ok, 1 if I/O error, 2 if data integrity error. */ u32 AddToIndex(u32 offset, const JString &name, JResource *res); /** Checks the resource header and loads the index. * @return 0 if ok, 1 if I/O error, 2 if data integrity error. */ s32 Load(); /** Creates the tree structure based upon the actual index. Destroys any previously existing structure. * @return 0 if ok, -1 if an error ocurred. */ s32 BuildTree(); public: /** Creates an empty virtual resource filesystem. Any of Open or Create must be called before using it. */ JFS() : it(0), defaultFlags(0), compressionLevel(9) {} /** Adds a file to the current block. * @param filename Name of the file to import. * @param flags Import flags. * @return 0 if ok, <0 if error. */ s32 AddResource(const char *filename, u32 flags = 0); /** Creates a resource block in the actual block. * @param filename Name of the block to create. * @return 0 if ok, <0 if error. */ s32 AddBlock(const char *name); /** Opens an existing virtual resource filesystem file. * @param _name Name of the file. * @param edit Edit mode indicator. If not editing, only the index is read and waits for resource queries. * If editing, the tree structure is also created. * @return 0 if it exists and could be loaded, -1 if _name is 0, -2 if the file couldn't be opened, 1 if the file couldn't be loaded. */ s32 Open(const char *_name = 0, bool edit = false); /** Creates a new JFS file. * @param _name Name of the file. * @return 0 if it could be created, 1 if not. */ s32 Create(const char *name = 0); /** Imports a file or a directory structure. * The directories are added as blocks containing the files as resources. .png, .tga, .bmp, .jpg, etc. files are added as image resources, * .wav files as sound resource, .spr as image sprites, .txt files as text resources, .jfs files as blocks (if not accompained of a .h * definition file (a file with its same name but extension '.h', in the same directory), unique id's are created for its resources. * The rest of files are treated as binary data (egenric resources). * @param filename File or base directory where to import. * @param where Tree node from which import. If it's a opened block or root imports inside, else imports at the same level and * where 'after' says. * @param after Indicates whether to add before or after the current node. * @return 0 If import succeeded, -1 if not. */ s32 Import(const char *filename, JTree::Node *where = 0, bool after = true); /** Import from a JFS file. * @param _name Name of the file to import. * @return 0 If import succeeded, -1 if the file didn't exist, -2 if its not a valid JFS file. * -3 if error during import. */ s32 ImportJFS(const char *_name); /** Loads the given resource. * @param id Resource id of the resource to be loaded. * @param where Pointer to the object where to load the resource. * @return 0 if ok, 1 if I/O error and 2 if data integrity error. */ u32 Load(u32 id, JLoadSave *where); /** Returns an instance of the resource with the given name. If not loaded, loads it. * @param _name Name of the resource. * @return Requested reosurce or 0 (zero) if it wasn't found or an error occured. */ JLoadSave * Get(const JString &_name); /** Returns an instance of the resource with the given id. * @param id Resource id. * @return Requested reosurce or 0 (zero) if it wasn't found or an error occured. */ JLoadSave * Get(u32 id); /** Deletes the requested resource. * @param _name Name of the resource to delete. * @return true if it could be deleted false if not. */ bool Delete(JString &_name); /** Returns the name of the JFS file. * @return Name of the JFS file. */ const JString & Name() {return resFilename;} /** Sets the current preffix. * @param p Preffix. */ void Prefix(const JString &p) {prefix = p;} /** Gets the current preffix. * @return p Current preffix. */ const char * Prefix() {return prefix.Str();} /** Sets the default flags. * @param p Default flags to set. */ void DefaultFlags(u32 flags) {defaultFlags = flags;} /** Gets the default flags. * @return Default flags. */ u32 DefaultFlags() {return defaultFlags;} /** Sets the default compression level. * @param c Default compression level to set. */ void CompressionLevel(s32 c) {compressionLevel = c;} /** Returns the default compression level. * @return Default compression level. */ s32 CompressionLevel() {return compressionLevel;} /** Returns a textual resource id based upon a filename and the current preffix. * @param name Name of the file the resource comes from. * @return Id string representation. */ const JString IdFromFilename(const char *name); /** Returns a file name from a resource id and the current preffix. * @param name Name of the id. * @return Filename. */ const JString FilenameFromId(const char *name); /** Exports the index in C header format to the given file. * @param filename Name of the file where to export the identifiers. * @return true if export succeeded, false if not. */ bool ExportIndex(const char *filename); /** Export the resource structure to a directory structure. * @return 0 if ok, <0 if not. */ s32 Export(); /** Destroys this object. */ ~JFS() {JDELETE(it);} }; #endif // _JFS_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JTextUtil.h0000600000175000001440000000312611177007633020573 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 24/05/2003 // @description: Funciones de manejo de texto de windows /////////////////////////////////////////////////////////////////////////////// #ifndef _JTEXTUTIL_INCLUDED #define _JTEXTUTIL_INCLUDED #include #include //#include // Crea una superficie en formato RGBA de 32 bits con los caracteres en // 16 filas y 16 columnas para el formato de fuente especificado. // NOTA: Es responsabilidad del llamador liberar la memoria del buffer devuelto // por esta funcin. //u32* GetFontSurface(JFontFormat format); #endif // _JTEXTUTIL_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JTimer.h0000600000175000001440000000703311177007633020072 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Timer. * @file JTimer.h. * @author Juan Carlos Seijo Prez. * @date 21/04/2003. * @version 0.0.1 - 21/04/2003 - First version. */ #ifndef _JTIMER_INCLUDED #define _JTIMER_INCLUDED #include #include #include #include #ifdef WIN32 #include #else #include #include #endif // WIN32 /** Generic timer. Includes functions to count fixed periods of milliseconds (ms), time between calls, etc. */ class JTimer { protected: u32 start; /**< First measure (cycle 0) */ u32 pause; /**< Pause measure (millis) */ u32 last; /**< Last measure (millis) */ u32 cycleTime; /**< Cycle period (millis) */ u32 cur; /**< Current measure (millis) */ u32 lastQueryCycle; /**< Cycle of the last query */ public: /** Creates and initializes the timer. * @param millis Milliseconds per cycle. */ JTimer(u32 millis = 1L); /** Starts the timer. * @param millis Milliseconds per cycle (0 to use the value given at creation time, by default is zero). */ void Start(u32 millis = 0L); /** Pauses this timer. */ void Pause(); /** Resumes this timer. */ void Continue(); /** Queries the number of ms since the start of the last cycle. * @return Number of ms since the start of the last cycle. */ u32 Lap(); /** Queries the number of ms to end the current cycle. * @return Number of ms to end the current cycle. */ u32 Rem(); /** Queries the time in ms between calls to Tick(). * @return Time in ms between calls to Tick(). */ u32 Tick(); /** Queries the number of cycles since Start(). * @return Number of cycles since Start(). */ u32 Cycles(); /** Queries if the cycle has changed since the last call to Lap(), Rem() or Start().. * @return 0 if not, different if so. */ u32 Changed(); /** Queries the number of ms since Start() was called. * @return Number of ms since Start() was called. */ u32 TotalLap(); /** Waits for the cycle to complete. */ void WaitCycle(); /** Returns the number of seconds since the epoch (00:00h, 01/01/1970). * @return Number of seconds since the epoch (00:00h, 01/01/1970). */ static time_t CurS(); /** Returns the number of milliseconds since the current second started. * @return Number of milliseconds since the current second started. */ static u16 CurMs(); /** Returns the timestamp as a string. * @return Timestamp as a string. */ static const s8 * StrTime(); /** Returns the cycle period in ms. * @return Cycle period in ms. */ u32 CycleTime() {return cycleTime;} }; #endif // _JTIMER_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JTextUtil.cpp0000600000175000001440000001057511177007633021134 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 24/05/2003 // @description: Funciones de manejo de texto de windows /////////////////////////////////////////////////////////////////////////////// #include // Crea una superficie en formato RGBA de 32 bits con un mapa de caracteres en // 16 filas y 16 columnas para el formato de fuente especificado. // NOTA: Es responsabilidad del llamador liberar la memoria del buffer devuelto // por esta funcin. //u32* GetFontSurface(JFontFormat format) //{ // HDC hDCSurf, hDCScr; // hDCScr = GetDC(0); // hDCSurf = CreateCompatibleDC(hDCScr); // // // Crea la fuente a partir de las de windows // HFONT font = CreateFont(-format.fontSize, // 0, // 0, // 0, // format.fontWeight, // format.cursive, // format.underscore, // 0, // ANSI_CHARSET, // OUT_DEFAULT_PRECIS, // CLIP_DEFAULT_PRECIS, // ANTIALIASED_QUALITY, // DEFAULT_PITCH | FF_SWISS, // format.fontName); // // // Dibuja el texto en memoria // HBITMAP hBMP, hBMPOld; // BITMAPINFO bi; // // RECT rc; // s8 str[272]; // 255 caracteres + 15 saltos de lnea \n\r + 1 '/0' // for (s32 i = 0, cnt = 0; i < 271; ++i) // { // if (i > 0 && i < 271 && i % 16 == 0) // { // // cr + lf // str[i] = '\n'; // str[++i] = '\r'; // ++i; // } // // str[i] = cnt++; // } // // str[271] = 0; // // // // Calcula el tamao del rectngulo con la fuente escogida // SIZE sz; // HFONT oldFont = (HFONT)SelectObject(hDCSurf, font); // GetTextExtentPoint32(hDCScr, str, (s32)strlen(str), &sz); // rc.top = 0; // rc.left = 0; // rc.right = sz.cx; // rc.bottom = sz.cy; // // // Pinta sobre la superficie en memoria // bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); // bi.bmiHeader.biBitCount = 32; // bi.bmiHeader.biCompression = BI_RGB; // bi.bmiHeader.biPlanes = 1; // bi.bmiHeader.biWidth = rc.right; // bi.bmiHeader.biHeight = rc.bottom; // bi.bmiHeader.biSizeImage = 0; // // void *bits, *surf; // hBMP = CreateDIBSection(hDCSurf, &bi, DIB_RGB_COLORS, &bits, 0, 0x0); // hBMPOld = (HBITMAP)SelectObject(hDCSurf, hBMP); // // // Establece el color de fuente // SetBkColor(hDCSurf, RGB(0, 0, 0)); // SetTextColor(hDCSurf, RGB(format.b, format.g, format.r)); // TextOut(hDCSurf, 0, 0, str, (s32)strlen(str)); // // // Optimizar para MMX // surf = (void *)new u32[rc.right * rc.bottom]; // CopyMemory(surf, bits, rc.right * rc.bottom * 4); // // // Asigna valores alfa para la superficie en funcin de la // // proximidad de los pixels al texto // u32 val; // u32 color = RGB(format.b, format.g, format.r); // u8 alpha; // // for (u32 i = 0; i < (u32)bi.bmiHeader.biWidth * bi.bmiHeader.biHeight; ++i) // { // val = *(((u32 *)surf) + i); // // if (val > 0) // val = val; // // // Asignamos un valor al canal alfa inversamente proporcional al valor del color // alpha = (u8)(255 * ((double)val/(double)color)); // // if (alpha > 0) // alpha = alpha; // // *(((u32*)surf) + i) |= ((u32)alpha) << 24; // } // // SelectObject(hDCSurf, hBMPOld); // SelectObject(hDCSurf, oldFont); // DeleteDC(hDCSurf); // ReleaseDC(0, hDCScr); // // return (u32 *)surf; //} holotz-castle-1.3.14-src/JLib/JLib/Util/JCompatibility.h0000600000175000001440000000255511177007633021627 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Definitions for cross-platform compatibility. * @file JCompatibility.h * @author Juan Carlos Seijo Prez * @date 09/01/2004 * @version 0.0.1 - 09/01/2004 - First version. */ #ifndef _JCOMPATIBILITY_INCLUDED #define _JCOMPATIBILITY_INCLUDED #include #ifdef _WIN32 #define sleep _sleep #define mode_t u16 #ifndef S_IFBLK #define S_IFBLK 0 #endif #ifndef S_IFLNK #define S_IFLNK 0 #endif #endif #endif // _JCOMPATIBILITY_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JGLApp.cpp0000600000175000001440000000720311177007633020307 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clase de aplicacin OpenGL. * @file JGLApp.cpp * @author Juan Carlos Seijo Prez * @date 01/04/2003 * @version 0.0.1 - 01/04/2003 - Primera versin. */ #include // Constructor JGLApp::JGLApp(const JString &strTitle, s32 w, s32 h, bool fullScr, s32 _depth, u32 otherFlags) : JApp(strTitle, w, h, fullScr, _depth, otherFlags) { } // Inicializa la aplicacin bool JGLApp::Init() { if (-1 == SDL_Init(SDL_INIT_EVERYTHING)) { return false; } // Establece los valores de profundidad por canal s32 rd = 5, gd = 6, bd = 5, ad = 0, db = 1; switch (depth) { case 24: rd = gd = bd = ad = 8; break; case 32: rd = gd = bd = ad = 8; break; default: break; } SDL_GL_SetAttribute( SDL_GL_RED_SIZE, rd ); SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, gd ); SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, bd ); SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, ad ); SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, depth ); SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, db ); flags |= SDL_OPENGL | SDL_OPENGLBLIT; if (fullScreen) flags |= SDL_FULLSCREEN; if ( (screen = SDL_SetVideoMode(width, height, depth, flags)) == 0 ) { fprintf(stderr, "No se pudo establecer el modo OpenGL: %s\n", SDL_GetError()); SDL_Quit(); return false; } SDL_GL_GetAttribute( SDL_GL_RED_SIZE, &rd ); SDL_GL_GetAttribute( SDL_GL_GREEN_SIZE, &gd ); SDL_GL_GetAttribute( SDL_GL_BLUE_SIZE, &bd ); SDL_GL_GetAttribute( SDL_GL_ALPHA_SIZE, &ad ); SDL_GL_GetAttribute( SDL_GL_DOUBLEBUFFER, &db ); fprintf(stderr, "Setvideomode(): \n"); fprintf(stderr, "W=%d H=%d BPP=%d\n", screen->w, screen->h, screen->format->BitsPerPixel); fprintf(stderr, "OpenGL: %s\n", screen->flags & SDL_OPENGL ? "YES" : "NO"); fprintf(stderr, "OpenGL blitting: %s\n", screen->flags & SDL_OPENGLBLIT ? "YES" : "NO"); fprintf(stderr, "FullScreen: %s\n", screen->flags & SDL_FULLSCREEN ? "YES" : "NO"); fprintf(stderr, "R:%d G:%d B:%d A:%d D-Buffer:%d\n", rd, gd, bd, ad, db); fprintf(stderr, "\n"); glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0f, (GLfloat)width/(GLfloat)height, 0.1f, 10000.0f); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glClearColor(0.0f, 0.2f, 0.2f, 1.0f); glClearDepth(1.0f); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST); // Establecemos el ttulo SDL_WM_SetCaption(title, 0); // Activamos la repeticin de teclas SDL_EnableKeyRepeat(300, 30); // Inicializamos el array de teclas keys = SDL_GetKeyState(&numKeys); return true; // Todo OK } // Destructor JGLApp::~JGLApp() { SDL_Quit(); } holotz-castle-1.3.14-src/JLib/JLib/Util/JTimer.cpp0000600000175000001440000000700611177007633020425 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Timer. * @file JTimer.cpp. * @author Juan Carlos Seijo Prez. * @date 21/04/2003. * @version 0.0.1 - 21/04/2003 - Primera versin. */ #include // Construye e inicializa un nuevo timer de baja resolucin JTimer::JTimer(u32 millis) : pause(0), last(0), cur(0), lastQueryCycle(0) { if (millis == 0L) millis = 1L; cycleTime = millis; start = SDL_GetTicks(); } // Comenzar void JTimer::Start(u32 millis) { if (millis != 0L) cycleTime = millis; start = SDL_GetTicks(); last = 0; cur = 0; lastQueryCycle = 0; pause = 0; } // Pausar void JTimer::Pause() { if (!pause) { pause = SDL_GetTicks(); cur = pause; // Para la consulta durante la pausa } } // Continuar tras pausa void JTimer::Continue() { if (pause) { start += SDL_GetTicks() - pause; pause = 0; } } // Consulta el nmero de ms ocurridos desde el comienzo del ltimo ciclo u32 JTimer::Lap() { if (!pause) cur = SDL_GetTicks(); return(cur - start); } // Consulta el nmero de ms que faltan para terminar el ciclo actual u32 JTimer::Rem() { return(SDL_GetTicks() - start)%cycleTime; } // Consulta el tiempo transcurrido entre llamadas a Tick() u32 JTimer::Tick() { u32 ret = last; if (!pause) cur = SDL_GetTicks(); ret = cur - last; last = cur; return ret; } // Consulta el nmero de ciclos desde el comienzo u32 JTimer::Cycles() { if (!pause) cur = SDL_GetTicks(); return ((cur - start) / cycleTime); } // Consulta si hemos pasado a otro ciclo desde la ltima consulta // y devuelve el nmero de ciclos transcurridos u32 JTimer::Changed() { if (!pause) cur = SDL_GetTicks(); u32 ret; ret = ((cur - start) / cycleTime) - lastQueryCycle; // Ciclo actual - ltimo consultado lastQueryCycle += ret; return (ret); } // Consulta el nmero de ms ocurridos desde el comienzo u32 JTimer::TotalLap() { if (!pause) cur = SDL_GetTicks(); return (cur - start); } // Espera a que se complete el ciclo void JTimer::WaitCycle() { u32 val; if (!pause) { do { cur = SDL_GetTicks(); val = (cur - start) / cycleTime; } while (!(val - lastQueryCycle)); lastQueryCycle = val; } } /** Devuelve el n de segundos de la poca (00:00h del 01/01/1970). */ time_t JTimer::CurS() { return time(0); } /** Devuelve el n de milisegundos del segundo actual. */ u16 JTimer::CurMs() { #ifdef WIN32 timeb t; ftime(&t); return t.millitm; #else timeval tv; gettimeofday(&tv, 0); return tv.tv_usec/1000; #endif // WIN32 } /** Devuelve el timestamp como cadena de texto. */ const s8 * JTimer::StrTime() { time_t t; time(&t); return (ctime(&t)); } holotz-castle-1.3.14-src/JLib/JLib/Util/JUtil.cpp0000600000175000001440000001403411177007633020261 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Macros y funciones de utilidad diversa. * @file JUtil.cpp. * @author Juan Carlos Seijo Prez * @date 16/10/2003 * @version 0.0.1 - 16/10/2003 - Primera versin. */ #include // Carga una fuente de un fichero Targa, con caracteres de 8x8 pxels, // 16 filas y 16 columnas (256). void JDumpTGAFontBits(const JString &TGAFileName, const JString &outFileName) { JImage img; if (!img.Load(TGAFileName)) return; u8 *chars[256]; u8 *ptr; u32 rowSize; s32 ind, imgInd; rowSize = (u32)(img.Line(1) - img.Line(0)); for (s32 j = 0; j < 16; ++j) { // Avanza al primer caracter de la siguiente fila ptr = img.Line(j * 8); for (s32 i = 0; i < 16; ++i) { ind = ((15 - j) * 16) + i; // = (row * nCharsRow) + col // Reservamos 8 bytes para cada caracter chars[ind] = new u8[8]; memset(chars[ind], 0, 8 * sizeof(s8)); for (s32 y = 0; y < 8; ++y) { imgInd = (y * rowSize); for (s32 x = 0; x < 8; ++x) { if (0xFF & *(ptr + imgInd)) { // 7 - y empieza a rellenar por abajo, ya que en memoria est invertido chars[ind][y] |= 0x80 >> x; } imgInd += 4; } } // Avanza al siguiente caracter de la fila ptr += 32; } } // Vuelca en formato de array los datos de la fuente al fichero dado JTextFile outFile(outFileName); if (outFile.Open()) { outFile.Printf("const u8 font[256][] = {\n"); for (s32 row = 0; row < 16; ++row) { for (s32 col = 0; col < 16; ++col) { outFile.Printf("{"); for (s32 idx = 0; idx < 8; ++idx) { outFile.Printf("0x%02x,", chars[(row * 16) + col][idx]); } outFile.Printf("},\n"); } } outFile.Printf("};\n"); } else { printf("DumpTGAFontBits: Error al abrir el archivo.\n"); } for (s32 i = 0; i < 256; ++i) delete[] chars[i]; } JVideoMode * JListVideoModes(s32 *count, s32 depth) { bool uninit = false; s32 bpps[] = {32, 24, 16, 8}; s32 *pBpps = bpps, nBpps = 4; if (depth != 0) { pBpps = &depth; nBpps = 1; } if (SDL_WasInit(SDL_INIT_VIDEO) == 0) { // Video no inicializado, lo inicializa if (-1 == SDL_Init(SDL_INIT_VIDEO)) { // No se puede iniciar el video return 0; } // Deinicializar SDL al final uninit = true; } std::vector modes; SDL_Rect **modeList = 0; JVideoMode *mode; // Busca los modos de vdeo sin aceleracin para la profundidad actual y comprueba para el resto de profundidades modeList = SDL_ListModes(0, SDL_FULLSCREEN); if ((long)modeList == 0 || (long)modeList == -1) { return 0; } s32 rec; for (s32 k = 0; k < nBpps; ++k) { for (s32 j = 0; modeList[j] != 0; ++j) { if (0 != (rec = SDL_VideoModeOK(modeList[j]->w, modeList[j]->h, pBpps[k], SDL_HWSURFACE | SDL_FULLSCREEN)) && (j == 0 || (modeList[j]->w != modeList[j - 1]->w || modeList[j]->h != modeList[j - 1]->h))) { mode = new JVideoMode; mode->w = modeList[j]->w; mode->h = modeList[j]->h; mode->bpp = pBpps[k]; mode->hw = true; modes.push_back(mode); } } } JVideoMode *result = 0; if (modes.size() == 0) { result = 0; } else { if (count) *count = modes.size(); result = new JVideoMode [modes.size() + 1]; for (u32 i = 0; i < modes.size(); ++i) { memcpy(&result[i], modes[i], sizeof(JVideoMode)); delete modes[i]; } // ltimo elemento result[modes.size()].w = result[modes.size()].h = -1; modes.clear(); } if (uninit) { SDL_QuitSubSystem(SDL_INIT_VIDEO); } return result; } void JDumpImage(JImage *img, s32 n) { SDL_Surface *s = img->Surface(); SDL_PixelFormat *fmt = s->format; if (0 != SDL_LockSurface(s)) { return; } fprintf(stderr, "%dx%d@%d CKEY: %08x ALPHA: %d SRCALPHA: %s SRCCOLORKEY: %s RLE: %s\n", s->w, s->h, fmt->BitsPerPixel, fmt->colorkey, fmt->alpha, s->flags & SDL_SRCALPHA ? "yes" : "no", s->flags & SDL_SRCCOLORKEY ? "yes" : "no", s->flags & SDL_RLEACCEL ? "yes" : "no", s->flags & SDL_RLEACCEL ? "yes" : "no"); fprintf(stderr, "RGBAmask: R: 0x%08x G: 0x%08x B: 0x%08x A: 0x%08x\n", fmt->Rmask, fmt->Gmask, fmt->Bmask, fmt->Amask); fprintf(stderr, "RGBAshift: R: 0x%08x G: 0x%08x B: 0x%08x A: 0x%08x\n", fmt->Rshift, fmt->Gshift, fmt->Bshift, fmt->Ashift); fprintf(stderr, "RGBAloss: R: 0x%08x G: 0x%08x B: 0x%08x A: 0x%08x\n", fmt->Rloss, fmt->Gloss, fmt->Bloss, fmt->Aloss); // Muestra el valor de algunos pxeles if (n != 0) { fprintf(stderr, "First %d pixels:\n", n); for (s32 j = 0, count = 1; count <= n && j < s->h; ++j) { for (s32 i = 0; count <= n && i < s->w; ++i) { fprintf(stderr, "%08x ", img->GetPixel(i, j)); if (count % 10 == 0) fprintf(stderr, "\n"); ++count; } } fprintf(stderr, "First %d pixels != CKEY:\n", n); for (s32 j = 0, count = 1; count <= n && j < s->h; ++j) { for (s32 i = 0; count <= n && i < s->w; ++i) { if (img->GetPixel(i, j) != fmt->colorkey) { fprintf(stderr, "%08x ", img->GetPixel(i, j)); if (count % 10 == 0) fprintf(stderr, "\n"); ++count; } } } fprintf(stderr, "\n"); } SDL_UnlockSurface(s); } holotz-castle-1.3.14-src/JLib/JLib/Util/JStack.h0000644000175000001440000000752011177007633020070 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Pérez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Pérez * jacob@mainreactor.net */ /** Stack template * @file JStack.h * @author Juan Carlos Seijo Pérez * @date 23/10/2005 * @version 0.0.1 - 23/10/2005 - First version. */ #ifndef _JSTACK_INCLUDED #define _JSTACK_INCLUDED #include #include #include /** This class encapsulates a stack. */ template class JStack { protected: int maxSize; /**< Current maximum size of the stack */ int size; /**< Number of elements in the stack */ int grow; /**< Grow amount of the stack */ T *elements; /**< Elements in the stack */ public: /** Creates an empty stack. * @param sz Initial capacity of the stack. If needed, the stack will grow its capacity * to allow more elements to be added. */ JStack(int sz = max) : maxSize(sz), size(0), grow(sz) {elements = new T[maxSize];} /** Places an element at the top of the stack. * @param element Element to push. */ void Push(const T& element) { if (size == maxSize) { T *newElements = new T[maxSize*2]; for (int i = 0; i < size; ++i) newElements[i] = elements[i]; delete[] elements; elements = newElements; maxSize *= 2; } elements[size] = element; ++size; } /** Removes the element at the top of the stack. If Size() is MaxSize()/2, shrinks the stack memory. */ void Pop() { if (size > 0) { --size; if (size <= (maxSize/2) && (maxSize > (grow*2))) { T *newElements = new T[(maxSize/2) + grow]; for (int i = 0; i < size; ++i) newElements[i] = elements[i]; delete[] elements; elements = newElements; maxSize = (maxSize/2) + grow; } } } /** Returns the number of elements in the stack. * @return Number of elements in the stack. */ int Size() {return size;} /** Checks if this stack is empty. * @return true if it's empty, false otherwise. */ bool Empty() {return size <= 0;} /** Returns the current capacity of this stack (total number of elements that can be * pushed before growing the stack is necessary). * @return Current capacity of the stack. */ int MaxSize() {return maxSize;} /** Returns the element at the top of the stack. * @return Element at the top of the stack. */ T& Top() {assert(size > 0 || printf("JStack: size = 0 and Top() invoked!\n")); return elements[size - 1];} /** Returns the element at the given position of the stack. WARNING: this method does not check bound so one * must ensure the index is inside the range of the stack. * @param i Index to retrieve. * @return Element at the given index. */ T& operator[](int i) {assert(i < size || printf("JStack: operator[%d], size = %d!\n", i, size)); return elements[i];} /** Destroys the stack and frees allocated resources. */ ~JStack() {JDELETE_ARRAY(elements); size = 0;} }; #endif // _JSTACK_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JNeuralNetwork.h0000644000175000001440000001777411177007633021637 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Pérez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Pérez * jacob@mainreactor.net */ /** Linked list class * @file JNeuralNetwork.h * @author Juan Carlos Seijo Pérez * @date 23/10/2005 * @version 0.0.1 - 23/10/2005 - First version. */ #ifndef _JNEURALNETWORK_INCLUDED #define _JNEURALNETWORK_INCLUDED #include #include #include #include /** This template provides a neural network. */ template class JNeuralNetwork { public: class Iterator; /** Network node. */ class Node { friend class JNeuralNetwork; friend class Iterator; T data; /**< Node data */ std::vector links; /**< Vector of links. */ Node(const Node& n) {} public: Node() {} Node(const T &d) : data(d) {} void Link(Node *n) {links.push_back(n);} void DLink(Node *n) {links.push_back(n); n->links.push_back(this);} bool Linked(Node *n) {for (s32 i = 0; i < links.size(); ++i) if (links[i] == n) return true; return false;} bool DLinked(Node *n) {return Linked(n) && n->Linked(this);} void Unlink(Node *n) {for (s32 i = 0; i < links.size(); ++i) if (links[i] == n) {links.erase(links.begin() + i); return;}} void DUnlink(Node *n) {Unlink(n); n->Unlink(this);} void Isolate() {links.clear();} s32 NumLinks() {return links.size();} Node * NodeAt(s32 index) {return links[index];} T& Data() {return data;} Node & operator=(const Node &n) {data = n.data; links.clear(); links.insert(n.links); return *this;} ~Node() {links.clear();} }; /** List iterator. */ class Iterator { friend class JNeuralNetwork; Node *cur; /**< Node this iterator points to */ public: /** Creates an empty iterator (pointing to nowhere). */ Iterator() : cur(0) {} /** Creates an iterator pointing to the given node. * @param node Node this iterator must point to. */ Iterator(Node *node) : cur(node) {} /** Assings another iterator to this iterator. * @param other Other iterator. * @return This iterator. */ Iterator & operator=(const Iterator &other) {cur = other.cur; return *this;} /** Test equality between iterators. * @param other Other iterator. * @return true if they are equal, false otherwise. */ bool operator==(const Iterator &other) {return cur == other.cur;} /** Test inequality between iterators. * @param other Other iterator. * @return true if they are different, false otherwise. */ bool operator!=(const Iterator &other) {return cur != other.cur;} /** Goes to the element linked by the given path. */ void Move(s32 pathNum) {if (pathNum >= cur->NumLinks()) return; cur = cur->links[pathNum];} /** Returns the number of links in the current node. */ s32 NumLinks() {return cur->links.size();} void Unlink(s32 i) {if (cur->links.size() > i) erase(cur->links.begin() + i);} void DUnlink(s32 i) {if (cur->links.size() > i) {erase(cur->links.begin() + i); cur->links[i]->Unlink(cur);}} void Link(Node *n) {cur->links.push_back(n);} void DLink(Node *n) {cur->links.push_back(n); n.links.push_back(cur);} bool Linked(Node *n) {for (s32 i = 0; i < cur->links.size(); ++i) if (cur->links[i] == n) return true; return false;} bool DLinked(Node *n) {return cur->Linked(n) && n->Linked(cur);} void Unlink(Node *n) {for (s32 i = 0; i < cur->links.size(); ++i) if (cur->links[i] == n) {erase(cur->links.begin() + i); return;}} void DUnlink(Node *n) {cur->Unlink(n); n->Unlink(cur);} void Isolate() {for (s32 i = 0; i < cur->links.size(); ++i) links[i]->Unlink(this); cur->links.clear();} /** Gives the node at the given link number. */ Node * NodeAt(s32 index) {return cur->links[index];} /** Returns the current node. * @return Current node. */ const Node* GetNode() {return cur;} /** Returns the data of the current element. * @return Data of the current element. */ T& Data() {return cur->data;} /** Returns the data of the current element. * @return Data of the current element. */ T& operator*() {return cur->data;} }; protected: std::vector nodes; /**< List of network nodes. */ Iterator begin; /**< Iterator to the first element. */ Iterator end; /**< Iterator to one past the last element. */ public: /** Creates an empty network. */ JNeuralNetwork() {} /** Creates and adds a node to the network. * @param data Data of the node to be added. * @return Created node. */ Node * New(const T& data) { Node *n = new Node(data); nodes.push_back(n); return n; } /** Adds a node to the network. * @param data Data of the node to be added. */ void Add(Node *n) { nodes.push_back(n); } /** Removes the given element. */ void Del(Node *n) { if (n) { n->Isolate(); for (s32 i = 0; i < nodes.size(); ++i) { if (nodes[i] == n) { delete nodes[i]; nodes.erase(nodes.begin() + i); return; } } } } /** Returns the first node with the given data. * @return First node containing the given data or null if it isn't found. */ Node * Get(const T &data) { for (s32 i = 0; i < nodes.size(); ++i) { if (*nodes[i] == data) { return nodes[i]; } } return 0; } /** Returns the first node with the given data. * @return First node containing the given data or null if it isn't found. */ Node * Find(const T &data) { for (s32 i = 0; i < nodes.size(); ++i) { if (*nodes[i] == data) { return nodes[i]; } } return 0; } /** Returns a logical iterator to the first element of the network. * If the list is empty, this iterator is the same (in the sense of operator=) to that of End(). * @return Iterator at the first element or at one past the last element if the list is empty. */ const Iterator & Begin() {begin.cur = nodes.begin(); return begin;} /** Returns an iterator to one past the last element of the list. * @return Iterator at one past the last element. */ const Iterator & End() {end.cur = nodes.end(); return end;} /* /\** Returns an iterator to the first element of the internal list. */ /* * @return Iterator at the first element. */ /* *\/ */ /* const std::vector::iterator & GBegin() {return nodes.begin();} */ /* /\** Returns an iterator to one past the last element of the list. */ /* * @return Iterator at one past the last element. */ /* *\/ */ /* const std::vector::iterator & GEnd() {return nodes.end();} */ /** Returns the list of nodes. * @return List of nodes. */ std::vector& Nodes() {return nodes;} /** Returns the number of nodes in the network. * @return Number of nodes in the network. */ int Size() {return nodes.size();} /** Destroys the list, frees used resources. */ ~JNeuralNetwork() { for (s32 i = 0; i < nodes.size(); ++i) { delete nodes[i]; } } }; #endif // _JNEURALNETWORK_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JList.h0000644000175000001440000002357211177007633017743 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Pérez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Pérez * jacob@mainreactor.net */ /** Linked list class * @file JList.h * @author Juan Carlos Seijo Pérez * @date 23/10/2005 * @version 0.0.1 - 23/10/2005 - First version. */ #ifndef _JLIST_INCLUDED #define _JLIST_INCLUDED #include #include #include /** This template provides a doubly-linked list. */ template class JList { public: class Iterator; /** List node. */ class Node { friend class JList; friend class Iterator; T data; /**< Node data */ Node *prev; /**< Previous node */ Node *next; /**< Next node */ public: Node() {} Node(const T& n) {data = n.data; prev = n.prev; next = n.next;} Node(const T &d, Node *p, Node *n) : data(d), prev(0), next(0) {} Link(const T &d, Node *p, Node *n) {data = d; prev = p; next = n; n->prev = this; p->next = this;} Unlink() {prev->next = next; next->prev = prev;} Node & operator=(const Node &n) {data = n.data; prev = n.prev; next = n.next; return *this;} }; /** List iterator. */ class Iterator { friend class JList; Node *cur; /**< Node this iterator points to */ public: /** Creates an empty iterator (pointing to nowhere). */ Iterator() : cur(0) {} /** Creates an iterator pointing to the given node. * @param node Node this iterator must point to. */ Iterator(Node *node) : cur(node) {} /** Assings another iterator to this iterator. * @param other Other iterator. * @return This iterator. */ Iterator & operator=(const Iterator &other) {cur = other.cur; return *this;} /** Test equality between iterators. * @param other Other iterator. * @return true if they are equal, false otherwise. */ bool operator==(const Iterator &other) {return cur == other.cur;} /** Test inequality between iterators. * @param other Other iterator. * @return true if they are different, false otherwise. */ bool operator!=(const Iterator &other) {return cur != other.cur;} /** Goes to the next element. */ void Next() {if (cur->next == 0) return; cur = cur->next;} /** Goes to the next element. */ void operator++() {if (cur->next == 0) return; cur = cur->next;} /** Goes to the previous element. */ void Prev() {if (cur->prev == 0) return; cur = cur->prev;} /** Goes to the previous element. */ void operator--() {if (cur->prev == 0) return; cur = cur->prev;} /** Returns the data of the current element. * @return Data of the current element. */ T& Data() {return cur->data;} /** Returns the data of the current element. * @return Data of the current element. */ T& operator*() {return cur->data;} }; protected: Node first; /**< First element */ Node last; /**< Last element */ int grow; /**< Growing amount */ int size; /**< Current size of the list */ int nextFree; /**< Next free node */ JStack mem; /**< Memory allocator */ Iterator begin; /**< Iterator to first element */ Iterator end; /**< Iterator to last element */ public: /** Creates an empty list. * @param growBy Grow amount, i.e. the initial capacity of the list before grow is necessary and the * memory steps of the grow phase. Note that the underlying memory allocator is a JStack so the growing * takes place first as the growBy, then at 2*growBy, then at 4*growBy, and so on. The value affects * considerably the insertion of new elements, as a rule of thumb select a value that is close to your * needs (if known, of course). If not known, the default (128) is conservative and gives good speed results. */ JList(unsigned int _growBy = growBy) : grow(_growBy), size(0), nextFree(0), mem(1) { mem.Push(new Node[grow]); first.next = &last; last.prev = &first; end.cur = &last; } /** Inserts the given data at the front of the list. * @param data Data to be inserted. */ void PushFront(const T& data) { if (nextFree >= grow) { nextFree = 0; mem.Push(new Node[grow]); //printf("mem has now %d max items\n", mem.MaxSize()); } mem.Top()[nextFree].Link(data, &first, first.next); ++nextFree; ++size; } /** Inserts the given data at the back of the list. * @param data Data to be inserted. */ void PushBack(const T& data) { if (nextFree >= grow) { nextFree = 0; mem.Push(new Node[grow]); //printf("mem has now %d max items\n", mem.MaxSize()); } mem.Top()[nextFree].Link(data, last.prev, &last); ++nextFree; ++size; } /** Inserts the given data before the element at the given iterator. * @param data Data to be inserted. * @param it Iterator to the element before which insert. */ void Insert(const T& data, Iterator &it) { if (nextFree >= grow) { nextFree = 0; mem.Push(new Node[grow]); //printf("mem has now %d max items\n", mem.MaxSize()); } mem.Top()[nextFree].Link(data, it.cur->prev, it.cur); ++nextFree; ++size; } /** Removes the element at the back of the list. WARNING: This method doesn't check for * existing elements in the list, one must check it if necessary from outside. */ void PopBack() { assert(nextFree != 0 || printf("JList PopBack with no elements!\n")); // DBG /////////// // printf(" Están así : FIRST-"); // Node *n = first.next; // int jj = 0; // while (n != &last || jj++ > 5) // { // if (n->data) // { // printf("%s-", n->data); // } // n = n->next; // } // printf("LAST\n"); // DBG /////////// if (last.prev != &(mem.Top()[nextFree - 1])) { // Not at the top of the stack, replaces that element with this one Node n(*last.prev); *last.prev = mem.Top()[nextFree - 1]; n.Unlink(); } else { last.prev->Unlink(); } // DBG /////////// // printf(" Tras Unlink(): FIRST-"); // n = first.next; // jj = 0; // while (n != &last || jj++ > 5) // { // if (n->data) // { // printf("%s-", n->data); // } // n = n->next; // } // printf("LAST\n\n"); // DBG /////////// if (--nextFree == 0) { nextFree = grow; mem.Pop(); } --size; } /** Removes the element at the front of the list. WARNING: This method doesn't check for * existing elements in the list, one must check it if necessary from outside. */ void PopFront() { assert(nextFree != 0 || printf("JList PopBack with no elements!\n")); if (first.next != &(mem.Top()[nextFree - 1])) { // Not at the top of the stack, replaces that element with this one Node n(*first.next); *first.next = mem.Top()[nextFree - 1]; n.Unlink(); } else { first.next->Unlink(); } if (--nextFree == 0) { nextFree = grow; mem.Pop(); } --size; } /** Removes the element at the given position and places the iterator in the next element. * WARNING: this method does not check if the iterator is valid, one must must check it outside if * needed. * @param it Iterator at the element to be removed. */ void Remove(Iterator &it) { assert(nextFree != 0 || printf("JList PopBack with no elements!\n")); if (it.cur != &(mem.Top()[nextFree - 1])) { // Not at the top of the stack, replaces that element with this one Node n(*it.cur); *it.cur = mem.Top()[nextFree - 1]; n.Unlink(); it.cur = n.next; } else { it.cur->Unlink(); it.cur = it.cur->next; } if (--nextFree == 0) { nextFree = grow; mem.Pop(); } --size; } /** Returns an iterator at the first element of the list. * If the list is empty, this iterator is the same (in the sense of operator=) to that of End(). * @return Iterator at the first element or at one past the last element if the list is empty. */ const Iterator & Begin() {begin.cur = first.next; return begin;} /** Returns an iterator at one past the last element of the list. * @return Iterator at one past the last element. */ const Iterator & End() {return end;} /** Returns the number of elements in the list. * @return Number of elements in the list. */ int Size() {return size;} /** Returns the maximum number of elements that fit in the list. * @return Maximum number of elements that fit in the list before growing is necessary. */ int MaxSize() {return mem.MaxSize();} /** Destroys the list, frees used resources. */ ~JList() { while (!mem.Empty()) { delete[] mem.Top(); mem.Pop(); } } }; #endif // _JLIST_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JBasicList.h0000644000175000001440000001606411177007633020703 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Pérez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Pérez * jacob@mainreactor.net */ /** Basic linked list class. * @file JBasicList.h * @author Juan Carlos Seijo Pérez * @date 03/11/2005 * @version 0.0.1 - 03/11/2005 - First version. */ #ifndef _JBASICLIST_INCLUDED #define _JBASICLIST_INCLUDED #include #include /** This template provides a doubly-linked list with basic memory management. */ template class JBasicList { public: class Iterator; /** List node. */ class Node { friend class JBasicList; friend class Iterator; T data; /**< Node data */ Node *prev; /**< Previous node */ Node *next; /**< Next node */ public: Node() {} Node(const T& n) {data = n.data; prev = n.prev; next = n.next;} Node(const T &d, Node *p, Node *n) : data(d), prev(p), next(n) {n->prev = p->next = this;} inline Link(const T &d, Node *p, Node *n) {data = d; prev = p; next = n; n->prev = p->next = this;} inline Unlink() {prev->next = next; next->prev = prev;} Node & operator=(const Node &n) {data = n.data; prev = n.prev; next = n.next; return *this;} }; /** List iterator. */ class Iterator { friend class JBasicList; Node *cur; /**< Node this iterator points to */ public: /** Creates an empty iterator (pointing to nowhere). */ Iterator() : cur(0) {} /** Creates an iterator pointing to the given node. * @param node Node this iterator must point to. */ Iterator(Node *node) : cur(node) {} /** Assings another iterator to this iterator. * @param other Other iterator. * @return This iterator. */ Iterator & operator=(const Iterator &other) {cur = other.cur; return *this;} /** Test equality between iterators. * @param other Other iterator. * @return true if they are equal, false otherwise. */ bool operator==(const Iterator &other) {return cur == other.cur;} /** Test inequality between iterators. * @param other Other iterator. * @return true if they are different, false otherwise. */ bool operator!=(const Iterator &other) {return cur != other.cur;} /** Goes to the next element. */ inline void Next() {if (cur->next == 0) return; cur = cur->next;} /** Goes to the next element. */ void operator++() {if (cur->next == 0) return; cur = cur->next;} /** Goes to the previous element. */ inline void Prev() {if (cur->prev == 0) return; cur = cur->prev;} /** Goes to the previous element. */ void operator--() {if (cur->prev == 0) return; cur = cur->prev;} /** Returns the data of the current element. * @return Data of the current element. */ inline T& Data() {return cur->data;} /** Returns the data of the current element. * @return Data of the current element. */ inline T& operator*() {return cur->data;} }; protected: Node first; /**< First element */ Node last; /**< Last element */ int size; /**< Current size of the list */ Iterator begin; /**< Iterator to first element */ Iterator end; /**< Iterator to last element */ public: /** Creates an empty list. */ JBasicList() : size(0) { first.next = &last; last.prev = &first; end.cur = &last; } /** Inserts the given data at the front of the list. * @param data Data to be inserted. */ inline void PushFront(const T& data) { new Node(data, &first, first.next); ++size; } /** Inserts the given data at the back of the list. * @param data Data to be inserted. */ inline void PushBack(const T& data) { new Node(data, last.prev, &last); ++size; } /** Inserts the given data before the element at the given iterator. * @param data Data to be inserted. * @param it Iterator to the element before which insert. */ inline void Insert(const T& data, Iterator &it) { new Node(data, it.cur->prev, it.cur); ++size; } /** Removes the element at the back of the list. */ inline void PopBack() { if (last.prev != &first) { Node *tmp = last.prev; last.prev->Unlink(); delete tmp; --size; } } /** Removes the element at the front of the list. */ inline void PopFront() { if (first.next != &last) { Node *tmp = first.next; first.next->Unlink(); delete tmp; --size; } } /** Removes the element at the given position and places the iterator in the next element. * WARNING: this method does not check if the iterator is valid, one must must check it outside if * needed. * @param it Iterator at the element to be removed. */ inline void Remove(Iterator &it) { assert(it.cur != &last && it.cur != &first); Node *tmp = it.cur; it.cur = it.cur->next; tmp->Unlink(); delete tmp; --size; } /** Returns an iterator at the first element of the list. * If the list is empty, this iterator is the same (in the sense of operator=) to that of End(). * @return Iterator at the first element or at one past the last element if the list is empty. */ inline const Iterator & Begin() {begin.cur = first.next; return begin;} /** Returns the data of the first element in the list. * @return data of the first element in the list. */ inline const T& Front() {return first.cur->next->data;} /** Returns an iterator at one past the last element of the list. * @return Iterator at one past the last element. */ inline const Iterator & End() {return end;} /** Returns the data of the last element in the list. * @return data of the first element in the list. */ inline const T& Back() {return end.cur->prev->data;} /** Returns the number of elements in the list. * @return Number of elements in the list. */ inline int Size() {return size;} /** Destroys the list, frees used resources. */ ~JBasicList() { Node *n = first.next, *tmp; while (n != &last) { tmp = n->next; delete n; n = tmp; } } }; #endif // _JBASICLIST_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JThread.cpp0000600000175000001440000000323711177007633020556 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clase base para threads. * @file JThread.cpp * @author Juan Carlos Seijo Prez * @date 18/04/2004 * @version 0.0.1 - 18/04/2004 - Primera versin. */ #include JThread::JThread(int (* func)(void *), void *data) : valid(false), paused(false), terminate(false), thread(0), id(0) { if (func) { s32 ret; if (0 == (ret = SDL_WasInit(SDL_INIT_EVENTTHREAD))) { ret = SDL_Init(SDL_INIT_EVENTTHREAD); } if (ret == 0) { // Si no se dan datos asociados, se pasar este objeto a la funcin if (data == 0) { data = this; } thread = SDL_CreateThread(func, data); id = SDL_GetThreadID(thread); fprintf(stderr, "Nuevo thread: 0x%x", id); } else { fprintf(stderr, "No se pudo iniciar el sistema de threads."); } } } holotz-castle-1.3.14-src/JLib/JLib/Util/JLoadSave.h0000600000175000001440000000552511177007633020514 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Interface for the objects to be loaded from and saved to a JRW object. * @file JLoadSave.h * @author Juan Carlos Seijo Pérez * @date 24/12/2003 * @version 0.0.1 - 24/12/2003 - First version. */ #ifndef _JLOADSAVE_INCLUDED #define _JLOADSAVE_INCLUDED #include #include #include #include /** Interface for the objects to be loaded from and saved to a JRW object. * Has methods to be implemented in the child classes to save and load from a JRW source. */ class JLoadSave { public: /** Loads the object from the actual position of the given source. * @param jrw JRW object correctly positioned. * @return 0 if ok, 1 if I/O error, 2 if data integrity error. */ virtual u32 Load(JRW &jrw){return 0;}; /** Saves the object to the actual position of the given source. * @param jrw JRW object correctly positioned. * @return 0 if ok, 1 if I/O error, 2 if data integrity error. */ virtual u32 Save(JRW &jrw){return 0;}; /** Loads an array of objects in the given source's actual position. * The format is: [numObjects (4bytes)][obj_1]...[obj_numObjects] * @param numObjects Number of objects in the array. * @param ls JLoadSave object array. * @param f JRW object correctly positioned. * @return 0 if ok, 1 if I/O error, 2 if data integrity error. */ virtual u32 LoadList(u32 *numObjects, JLoadSave *ls, JRW &f) {return 0;} /** Saves an array of objects in the given source's actual position. * The format is: [numObjects (4bytes)][obj_1]...[obj_numObjects] * @param numObjects Number of objects in the array. * @param ls JLoadSave object array. * @param f JRW object correctly positioned. * @return 0 if ok, 1 if I/O error, 2 if data integrity error. */ virtual u32 SaveList(u32 numObjects, JLoadSave *ls, JRW &f) {return 0;} /** Destroys the object. */ virtual ~JLoadSave() {} }; #endif // _JLOADSAVE_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JUtil.h0000600000175000001440000001315411177007633017730 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Macros y funciones de utilidad diversa. * @file JUtil.h. * @author Juan Carlos Seijo Prez * @date 16/10/2003 * @version 0.0.1 - 16/10/2003 - Primera versin. */ #ifndef _JUTIL_INCLUDED #define _JUTIL_INCLUDED #include #include #include #include #include class JImage; /** Devuelve la palabra (32) menos significativa */ #define JLOWORD(x) ((x) & 0x0000FFFF) /** Devuelve la palabra ms significativa */ #define JHIWORD(x) ((x) & 0xFFFF0000) /** Devuelve el byte menos significativo */ #define JLOBYTE(x) ((x) & 0x00FF) /** Devuelve el byte ms significativo */ #define JHIBYTE(x) ((x) & 0xFF00) /** Devuelve el mnimo entre dos nmeros. * @param a Primer nmero. * @param b Segundo nmero. * @return Menor de los dos nmeros. */ inline float JMin(float a, float b) { return a < b ? a : b; } /** Devuelve el mximo entre dos nmeros. * @param a Primer nmero. * @param b Segundo nmero. * @return Mayor de los dos nmeros. */ inline float JMax(float a, float b) { return a > b ? a : b; } /** Recorta el valor por arriba y por abajo para que no sobrepase min y max. * @param v Valor a recortar. * @param min Valor mnimo que puede tomar. * @param max Valor mximo que puede tomar. */ inline void JClamp(s8& v, s8 min, s8 max) { if (v < min) {v = min; return;} if (v > max) {v = max; return;} } /** Recorta el valor por arriba y por abajo para que no sobrepase min y max. * @param v Valor a recortar. * @param min Valor mnimo que puede tomar. * @param max Valor mximo que puede tomar. */ inline void JClamp(u8& v, u8 min, u8 max) { if (v < min) {v = min; return;} if (v > max) {v = max; return;} } /** Recorta el valor por arriba y por abajo para que no sobrepase min y max. * @param v Valor a recortar. * @param min Valor mnimo que puede tomar. * @param max Valor mximo que puede tomar. */ inline void JClamp(s16& v, s16 min, s16 max) { if (v < min) {v = min; return;} if (v > max) {v = max; return;} } /** Recorta el valor por arriba y por abajo para que no sobrepase min y max. * @param v Valor a recortar. * @param min Valor mnimo que puede tomar. * @param max Valor mximo que puede tomar. */ inline void JClamp(u16& v, u16 min, u16 max) { if (v < min) {v = min; return;} if (v > max) {v = max; return;} } /** Recorta el valor por arriba y por abajo para que no sobrepase min y max. * @param v Valor a recortar. * @param min Valor mnimo que puede tomar. * @param max Valor mximo que puede tomar. */ inline void JClamp(s32& v, s32 min, s32 max) { if (v < min) {v = min; return;} if (v > max) {v = max; return;} } /** Recorta el valor por arriba y por abajo para que no sobrepase min y max. * @param v Valor a recortar. * @param min Valor mnimo que puede tomar. * @param max Valor mximo que puede tomar. */ inline void JClamp(u32& v, u32 min, u32 max) { if (v < min) {v = min; return;} if (v > max) {v = max; return;} } /** Recorta el valor por arriba y por abajo para que no sobrepase min y max. * @param v Valor a recortar. * @param min Valor mnimo que puede tomar. * @param max Valor mximo que puede tomar. */ inline void JClamp(float& v, float min, float max) { if (v < min) {v = min; return;} if (v > max) {v = max; return;} } /** Escribe un fichero raw con los bits de la fuente del fichero TGA dado. * @param TGAFileName Nombre del fichero targa con la fuente ordenada. * deben ser caracteres de 8x8 organizados en 16 filas por 16 columnas. * @param outFileName Nombre del fichero de salida. */ void JDumpTGAFontBits(const s8 *TGAFileName, const s8 *outFileName); /** Modo grfico. */ struct JVideoMode { s32 w; /**< Anchura del modo. */ s32 h; /**< Altura del modo. */ s32 bpp; /**< Profundidad de color en bits del modo. */ bool hw; /**< Indicador de aceleracin hardware. */ }; /** Devuelve un puntero a una tabla con los modos grficos disponibles. Es necesario * borrar con JDELETE_ARRAY() el array resultante. * @param depth Profundidad para la que se quieren obtener los modos. * @param count Salida con el nmero de modos encontrados. * @return Lista de modos disponibles en pantalla completa tanto acelerados como no acelerados por HW. * El ltimo elemento del array tiene anchura y altura -1. * Si devuelve 0 es que no existe ningn modo. */ JVideoMode * JListVideoModes(s32 *count, s32 depth = 0); /** Muestra en stderr las propiedades de una imagen, los n primeros * pxeles y los n primeros pxeles diferentes de la CKEY. * @param img Imagen a examinar. * @param n Nmero de pxeles a mostrar. */ void JDumpImage(JImage *img, s32 n = 10); #endif // _JUTIL_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JFile.cpp0000600000175000001440000002711411177007633020226 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 15/06/2003 // @description: Clase base de ficheros /////////////////////////////////////////////////////////////////////////////// #include #include u32 JFile::MAX_BLOCK_SIZE = JFILE_DEF_MAX_BLOCK_SIZE; // Constructor JFile::JFile(const s8 *filename) : file(0), buff(0), name(0), exists(false), size(0), buffSize(0) { if (filename != 0) { name = new s8 [strlen(filename) + 1]; strcpy(name, filename); Refresh(); } } // Destructor JFile::~JFile() { Close(); // Quiz no sea necesario, ya que puede hacerlo el programador JDELETE_ARRAY(name); } // Vuelve a consultar la informacin del fichero s32 JFile::Refresh() { if (name) { s32 ret; if (0 != (ret = stat(name, &statInfo))) { if (errno == ENOENT) exists = false; } else { exists = true; } return ret; } return -2; } // Abre el fichero. mode como en open() de C. Si no existe actualiza // el flag de existencia. bool JFile::Open(const s8 *filename, const s8 *mode) { Close(); if (filename) { JDELETE_ARRAY(name); name = new s8 [strlen(filename) + 1]; strcpy(name, filename); // Refresca la informacin de fichero 'statInfo' Refresh(); } if (name != 0) { if (0 != (file = fopen(name, mode))) { return true; } } return false; } // Lee el fichero. Si no se especifica readsize o es cero, lo lee entero u32 JFile::Read(u32 readSize) { if (!readSize) readSize = statInfo.st_size; FreeBuffer(); buff = new s8[readSize]; return (buffSize = (u32)fread(buff, sizeof(s8), readSize, file)); } u32 JFile::ZRead() { FreeBuffer(); u32 len, lenUncomp; // Original & compressed size if (!ReadLE32(&lenUncomp) || !ReadLE32(&len)) { return 0; } unsigned char *buffComp = new unsigned char[len]; if (!buffComp) { return 0; } buffSize = lenUncomp; buff = new s8[lenUncomp]; if (!buff) { delete[] buffComp; return 0; } if (0 >= fread(buffComp, len, 1, file) && !feof(file)) { delete[] buffComp; delete[] buff; return 0; } // For compatibility with zlib unsigned long lenUL, lenUncompUL; lenUncompUL = lenUncomp; lenUL = len; if (Z_OK != uncompress((Bytef*)buff, (uLongf*)&lenUncompUL, (Bytef*)buffComp, lenUL)) { delete[] buffComp; delete[] buff; return 0; } delete[] buffComp; return (u32)(lenUncompUL + 8); } // Carga todo el fichero. Equivalente a Open() + Read(0). bool JFile::Load(const s8 *filename, const s8 *mode) { if (Open(filename, mode)) { return 0 < Read(); } return false; } // Lee del fichero u32 JFile::Read(void *_buff, u32 _size) { return (u32)fread(_buff, sizeof(s8), _size, file); } u32 JFile::ReadBool(bool *_buff) {u8 b; if (0 < Read(&b, 1)) {*_buff = (b ? true : false); return 1;} return 0;} u32 JFile::Read8(u8 *_buff) {if (0 < Read(_buff, 1)) return 1; return 0;} u32 JFile::Read8(s8 *_buff) {if (0 < Read(_buff, 1)) return 1; return 0;} u32 JFile::ReadLE16(u16 *_buff) {if (0 < Read(_buff, 2)) {*_buff = SDL_SwapLE16(*_buff); return 2;} return 0;} u32 JFile::ReadLE16(s16 *_buff) {if (0 < Read(_buff, 2)) {*_buff = SDL_SwapLE16(*_buff); return 2;} return 0;} u32 JFile::ReadBE16(u16 *_buff) {if (0 < Read(_buff, 2)) {*_buff = SDL_SwapBE16(*_buff); return 2;} return 0;} u32 JFile::ReadBE16(s16 *_buff) {if (0 < Read(_buff, 2)) {*_buff = SDL_SwapBE16(*_buff); return 2;} return 0;} u32 JFile::ReadLE32(u32 *_buff) {if (0 < Read(_buff, 4)) {*_buff = SDL_SwapLE32(*_buff); return 4;} return 0;} u32 JFile::ReadLE32(s32 *_buff) {if (0 < Read(_buff, 4)) {*_buff = SDL_SwapLE32(*_buff); return 4;} return 0;} u32 JFile::ReadBE32(u32 *_buff) {if (0 < Read(_buff, 4)) {*_buff = SDL_SwapBE32(*_buff); return 4;} return 0;} u32 JFile::ReadBE32(s32 *_buff) {if (0 < Read(_buff, 4)) {*_buff = SDL_SwapBE32(*_buff); return 4;} return 0;} u32 JFile::ZRead(void * &_buff) { u32 len, lenUncomp; // Original & compressed size if (!ReadLE32(&lenUncomp) || !ReadLE32(&len)) { return 0; } unsigned char *buffComp = new unsigned char[len]; if (!buffComp) { return 0; } unsigned char *buffUncomp = new unsigned char[lenUncomp]; if (!buffUncomp) { delete[] buffComp; return 0; } if (0 >= fread(buffComp, len, 1, file) && !feof(file)) { delete[] buffComp; delete[] buffUncomp; return 0; } // For compatibility with zlib unsigned long lenUL, lenUncompUL; lenUncompUL = lenUncomp; lenUL = len; if (Z_OK != uncompress((Bytef*)buffUncomp, (uLongf*)&lenUncompUL, (Bytef*)buffComp, lenUL)) { delete[] buffComp; delete[] buffUncomp; return 0; } delete[] buffComp; return (u32)(lenUncompUL); } // Lee del fichero al buffer dado y deja el puntero // en su posicin original u32 JFile::Peep(void *_buff, u32 _size) { s32 p = Pos(); u32 r = (u32)fread(_buff, _size, 1, file); Pos(p); return r; } u32 JFile::WriteBool(bool *_buff) {u8 b = ((*_buff) ? 1 : 0);return Write(&b, 1);} u32 JFile::Write8(u8 *_buff) {return Write(_buff, 1);} u32 JFile::Write8(s8 *_buff) {return Write(_buff, 1);} u32 JFile::WriteLE16(u16 *_buff) {u16 v = SDL_SwapLE16(*_buff); return Write(&v, 2);} u32 JFile::WriteLE16(s16 *_buff) {u16 v = SDL_SwapLE16(*_buff); return Write(&v, 2);} u32 JFile::WriteBE16(u16 *_buff) {u16 v = SDL_SwapBE16(*_buff); return Write(&v, 2);} u32 JFile::WriteBE16(s16 *_buff) {u16 v = SDL_SwapBE16(*_buff); return Write(&v, 2);} u32 JFile::WriteLE32(u32 *_buff) {u32 v = SDL_SwapLE32(*_buff); return Write(&v, 4);} u32 JFile::WriteLE32(s32 *_buff) {u32 v = SDL_SwapLE32(*_buff); return Write(&v, 4);} u32 JFile::WriteBE32(u32 *_buff) {u32 v = SDL_SwapBE32(*_buff); return Write(&v, 4);} u32 JFile::WriteBE32(s32 *_buff) {u32 v = SDL_SwapBE32(*_buff); return Write(&v, 4);} // Escribe en el fichero u32 JFile::Write(const void *_buff, u32 _size) { return (u32) fwrite(_buff, sizeof(s8), _size, file); } u32 JFile::ZWrite(const void *_buff, u32 _size, s32 level) { u32 sizeComp; sizeComp = compressBound(_size); unsigned char *buffComp = new unsigned char[sizeComp + 8]; if (!buffComp) { return 0; } // For compatibility with zlib unsigned long sizeCompUL, sizeUL; sizeCompUL = sizeComp; sizeUL = _size; if (Z_OK != compress2((Bytef*)buffComp, (uLongf*)&sizeCompUL, (Bytef*)_buff, sizeUL, level)) { delete[] buffComp; return 0; } sizeComp = (u32)sizeCompUL; // Tamao original + Tamao comprimido + datos comprimidos if (0 == WriteLE32(&_size) || 0 == WriteLE32(&sizeComp) || fwrite(buffComp, sizeComp, 1, file) <= 0) { delete[] buffComp; return 0; } delete[] buffComp; return sizeComp + 8; } // Cierra el fichero. Devuelve true si liber memoria, false si no lo hizo. bool JFile::Close() { if (!(file || buff)) return false; if (file) { fclose(file); file = 0; } FreeBuffer(); return true; } // Situa el puntero al inicio void JFile::Rewind() { rewind(file); } // Libera la memoria del buffer de forma segura void JFile::FreeBuffer() { if (buff) { delete[] buff; buff = 0; } } // Determina si existe el fichero bool JFile::Exists(const s8 *name) { if (name != 0) { struct stat s; if (0 != stat(name, &s)) { if (errno == ENOENT) { return false; } } return true; } return false; } // Determina si existe el fichero u32 JFile::Size(const s8 *name) { if (name == 0) return 0; struct stat s; if (0 == stat(name, &s)) { return s.st_size; } return 0; } // Determina si el fichero dado es del tipo dado bool JFile::IsOfType(const s8 *name, mode_t mode) { if (name == 0) return false; struct stat s; if (0 == stat(name, &s)) { return 0 != (s.st_mode & mode); } return false; } // Determina si existe el fichero bool JFile::IsFile(const s8 *name) { return IsOfType(name, S_IFREG); } // Determina si existe el fichero bool JFile::IsDir(const s8 *name) { return IsOfType(name, S_IFDIR); } // Determina si existe el fichero bool JFile::IsLink(const s8 *name) { return IsOfType(name, S_IFLNK); } // Determina si existe el fichero bool JFile::IsCharDev(const s8 *name) { return IsOfType(name, S_IFCHR); } // Determina si existe el fichero bool JFile::IsBlockDev(const s8 *name) { return IsOfType(name, S_IFBLK); } bool JFile::ResizeBack(u32 numBytes) { if (numBytes == 0) { return false; } if (0 != fseek(file, 0, SEEK_END)) { return false; } u32 pos = ftell(file); if (0 != fseek(file, numBytes, SEEK_END) || 0 != fseek(file, pos, SEEK_SET)) { return false; } return true; } bool JFile::ResizeAt(u32 byte, s32 numBytes) { if (numBytes < 0) { return false; } if (numBytes == 0) { // Tan solo lo deja preparado para copiar en la zona dada fseek(file, byte, SEEK_SET); return true; } if (0 != fseek(file, 0, SEEK_END)) { return false; } u32 oldEnd = ftell(file); if (byte > oldEnd) { byte = oldEnd; } u32 remSize = oldEnd - byte; // Espacio restante por desplazar u32 copiedSize = 0; // Espacio ya copiado // Establece un tamao de bloque de copia adecuado u32 blockSize = MAX_BLOCK_SIZE < remSize ? MAX_BLOCK_SIZE : remSize; // printf("BlockSize es %d\n", blockSize); // Cambia el tamao del fichero fseek(file, numBytes, SEEK_END); int ret; if (!remSize) { fseek(file, 0, SEEK_SET); return true; } // Guarda la nueva posicin de fin u32 newEnd = ftell(file); u8 *copyBuff = new u8[blockSize]; // Desplaza el trozo final while (remSize >= blockSize) { if (0 != fseek(file, oldEnd - copiedSize - blockSize, SEEK_SET)) perror("1"); if (0 > (ret = fread(copyBuff, blockSize, 1, file)) || feof(file)) perror("2"); if (0 != fseek(file, newEnd - copiedSize - blockSize, SEEK_SET)) perror("3"); if (0 >= (ret = fwrite(copyBuff, blockSize, 1, file))) perror("4"); copiedSize += blockSize; remSize -= blockSize; } if (remSize > 0) { // Copia el trozo final, si queda algo blockSize = remSize; if (0 != fseek(file, oldEnd - copiedSize - blockSize, SEEK_SET)) perror("1"); if (0 > (ret = fread(copyBuff, blockSize, 1, file)) || feof(file)) perror("2"); if (0 != fseek(file, newEnd - copiedSize - blockSize, SEEK_SET)) perror("3"); if (0 >= (ret = fwrite(copyBuff, blockSize, 1, file))) perror("4"); copiedSize += blockSize; remSize -= blockSize; } // fprintf(stderr, "Total por copiar %d bytes, copiados %d bytes newEnd es %d\n", remSize, copiedSize, newEnd); if (copiedSize != oldEnd - byte) { fprintf(stderr, "No coincide el tamao copiado (orig era %d, copiados %d)\n", oldEnd - byte, copiedSize); } if (remSize != 0) { fprintf(stderr, "Faltan datos por copiar (remSize != 0)\n"); } // Deja el puntero al comienzo de la zona vaca fseek(file, byte, SEEK_SET); fflush(file); delete[] copyBuff; return true; } holotz-castle-1.3.14-src/JLib/JLib/Util/JThread.h0000600000175000001440000000662111177007633020223 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Base class for threads. * @file JThread.h * @author Juan Carlos Seijo Prez * @date 18/04/2004 * @version 0.0.1 - 18/04/2004 - First version. */ #ifndef _JTHREAD_INCLUDED #define _JTHREAD_INCLUDED #include #include #include /** Base class for threads. */ class JThread { protected: bool valid; /**< Validity flag for this thread */ bool paused; /**< Pause flag of this thread */ bool terminate; /**< Termination flag of this thread */ SDL_Thread *thread; /**< SDL thread id for this thread */ u32 id; /**< Thread id */ public: /** Creates a new thread that will execute the given function. * A method can be implemented in a child class and the be passed as the execution function * if it is defined as 'static int Func(void *data)' or any other name instead of Func * and using the constructor as JThread(&Func, data). * A sample of the way Func could be implemented is: *

	 * while (!terminate)
	 * {
	 *   while (paused) 
	 *     sleep(0);
	 *
	 *   // Code to execute
	 * }
	 * 
* @param func Function to execute. If zero, the thread is not launched. * @param data Additional data to pass to the function. */ JThread(int (* func)(void *), void *data = 0); /** Returns the thread id for this thread. * @return Thread id of this thread. */ u32 GetId() {return id;} /** Checks if this thread must terminate. * @return true if so, false if not. */ bool MustTerminate() {return terminate;} /** Signals this thread to end. This does not guarantee that it ends, * because it depends on the implementation to use MustTerminate() * as end condition. */ void Terminate() {terminate = true; paused = false; valid = false; SDL_WaitThread(thread, 0);} /** Checks if this thread is paused. * @return true if so, false if not. */ bool Paused() {return paused;} /** Pauses this thread. */ void Pause() {paused = true;} /** Resumes this thread. */ void Continue() {paused = false;} /** Kills this thread. This aproximation must be avoided, is better to implement * an exit mechanism in the child class as: *
	 * while (!terminate)
	 * {
	 *   while (paused) 
	 *     sleep(0);
	 *
	 *   // Code to execute
	 * }
	 * 
*/ void Kill() {SDL_KillThread(thread);} /** Determines if this thread is valid.. * @return true if so, false if not. */ bool Valid() {return valid;} }; #endif // _JTHREAD_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JObject.cpp0000600000175000001440000000460511177007633020555 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clase base de todos los objetos. * @file JObject.cpp * @author Juan Carlos Seijo Pérez * @date 15/11/2003 * @version 0.0.1 - 15/11/2003 - Primera versión */ #include #ifdef _JLIB_DEBUG #include #include s32 JObject::instanceCount; s32 JObject::instanceID; std::vector JObject::objects; JObject::JObject() { objects.push_back(this); ++instanceCount; instanceNum = ++instanceID; fprintf(stderr, "#%d Created: 0x%x. JObjects: %d.\n", instanceNum, this, instanceCount); } JObject::~JObject() { --instanceCount; fprintf(stderr, "#%d Destroyed: 0x%x. Remaining JObjects: %d - %s", instanceNum, this, instanceCount, instanceCount == 0 ? "NO LEAKS!" : ""); s32 first = 0, last; first = (*objects.begin())->instanceNum; last = first + 1; for (std::vector::iterator it = objects.begin(); it != objects.end(); ++it) { if (*it == this) { fprintf(stderr, "*** %d *** ", (*it)->instanceNum); objects.erase(it); --it; } else { // Calculates ranges of instance numbers so the output is not too big if (last == (*it)->instanceNum) { // Correlatives: only increments the range ++last; } else { // Not correlatives, prints the range and jumps to the next fprintf(stderr, "[%d-%d] ", first, last - 1); first = (*it)->instanceNum; last = first + 1; } } } if (first != last - 1) fprintf(stderr, "[%d-%d] ", first, last - 1); fprintf(stderr, "\n"); } #endif // _JLIB_DEBUG holotz-castle-1.3.14-src/JLib/JLib/Util/JRW.cpp0000644000175000001440000000503611177007633017706 0ustar jacobusers/** Wrapper de SDL_RWops * @file JRW.cpp * @author Juan Carlos Seijo Prez * @date 23/Mar/2005 * @version 0.0.1 - 23/Mar/2005 - Primera versin. */ #include u32 JRW::ZRead(void **buff) { u32 len, lenUncomp; // Original & compressed size if (!ReadLE32(&lenUncomp) || !ReadLE32(&len)) { // perror("ZRead - Error 1"); return 0; } // printf("ZRead: lenUncomp %d, len %d\n", lenUncomp, len); u8 *buffComp = new u8[len]; if (!buffComp) { // perror("ZRead - Error 2"); return 0; } u8 *buff_out = new u8[lenUncomp]; if (!buff_out) { // perror("ZRead - Error 3"); delete[] buffComp; return 0; } if (0 >= SDL_RWread(rwops, buffComp, len, 1)) { // perror("ZRead - Error 4"); delete[] buffComp; delete[] buff_out; return 0; } // For compatibility with zlib unsigned long lenUL, lenUncompUL; lenUncompUL = lenUncomp; lenUL = len; if (Z_OK != uncompress((Bytef*)buff_out, (uLongf*)&lenUncompUL, (Bytef*)buffComp, lenUL)) { // perror("ZRead - Error 5"); delete[] buffComp; delete[] buff_out; return 0; } delete[] buffComp; *buff = buff_out; // perror("Todo ok"); return (u32)lenUncompUL; } u32 JRW::Import(const char *filename) { JRW f; if (!f.Create(filename, "rb")) { return 0; } u32 size = f.Seek(0, SEEK_END); f.Seek(0, SEEK_SET); u8 *buff = new u8[size]; if (!buff) { return 0; } u32 ret; ret = f.Read(buff, size, 1); if (!ret) { delete[] buff; return 0; } Create(buff, size); return ret; } u32 JRW::ZWrite(const void *buff, u32 size, s32 level) { u32 sizeComp; sizeComp = compressBound(size); unsigned char *buffComp = new unsigned char[sizeComp + 8]; if (!buffComp) { return 0; } // For compatibility with zlib unsigned long sizeCompUL, sizeUL; sizeCompUL = sizeComp; sizeUL = size; if (Z_OK != compress2((Bytef*)buffComp, (uLongf*)&sizeComp, (Bytef*)buff, size, level)) { delete[] buffComp; return 0; } sizeComp = (u32)sizeCompUL; // Tamao original + Tamao comprimido + datos comprimidos if (0 == WriteLE32(&size) || 0 == WriteLE32(&sizeComp) || SDL_RWwrite(rwops, buffComp, sizeComp, 1) <= 0) { delete[] buffComp; return 0; } delete[] buffComp; return sizeComp; } u32 JRW::Export(const char *filename, u32 size) { JRW f; if (!f.Create(filename, "wb")) { return 0; } u8 *buff = new u8[size]; if (!buff) { return 0; } u32 ret; ret = Read(buff, size, 1); if (!ret) { delete[] buff; return 0; } ret = f.Write(buff, size, 1); delete[] buff; return ret; } holotz-castle-1.3.14-src/JLib/JLib/Util/JFile.h0000600000175000001440000004115611177007633017675 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** File base class. * @file JFile.h * @author Juan Carlos Seijo Prez * @date 15/06/2003 * @version 0.0.1 - 15/06/2003 - First versio. */ #ifndef _JFILE_INCLUDED #define _JFILE_INCLUDED #include #include #include #include #include #include #include #include #include #include #include /*** Maximum block size by default */ #define JFILE_DEF_MAX_BLOCK_SIZE 2097152 /** Encapsulates a file. Allows to read, write, resize, insert, compress, etc. */ class JFile { protected: FILE *file; /**< File pointer */ s8 *buff; /**< Auxilliary read buffer */ s8 *name; /**< File name */ bool exists; /**< Existence flag */ struct stat statInfo; /**< File information */ u32 size; /**< Size of the file */ u32 buffSize; /**< Size of the auxilliary buffer */ static u32 MAX_BLOCK_SIZE; /**< Max size of copy block buffer */ /** Determines if the given file is of the given type. * @param name Name of the file to check. * @param mode Type of file. * @return true if so, false if not. */ static bool IsOfType(const s8 *name, mode_t mode); public: /** Creates an empty file object. * @param filename Name of the file (optional). */ JFile(const s8 *filename = 0); /** Destroys the object and frees allocated resources. */ virtual ~JFile(); /** Gathers again the file information, (size, permissions, etc.). * @return 0 (zero) if success, -1 if error and -2 if a name was not given. */ s32 Refresh(); /** Opens the file. * @param filename Name of the file to open. * @param mode Opening modes in fopen(): {w|r|a}[+][{b|t}]. * by default is "r+b" (read-write, but don't create it if it doesn't exist and binario). */ virtual bool Open(const s8 *filename = 0, const s8 *mode = "r+b"); /** Reads to the internal buffer. * @param readSize Size in bytes to read from the file. If zero, the whole file is read. * @return Number of bytes read or zero if an error occurred. */ virtual u32 Read(u32 readSize = 0); /** Reads from the file to the internal buffer, uncompressing the read data. * @return Number of bytes of the uncompressed buffer or zero if an error ocurred. */ virtual u32 ZRead(); /** Reads from the file to the given buffer. * @param _buff Buffer to fill with the data read. * @param _size Size in bytes to read. If zero, the whole file is read. * @return Number of bytes read or zero if an error occurred. */ virtual u32 Read(void *_buff, u32 _size); /** Reads a boolean. WARNING: It is read as a single byte. * @param _buff Variable to store the result. * @return Number of bytes read or zero if an error ocurred. */ virtual u32 ReadBool(bool *_buff); /** Reads a byte. * @param _buff Variable to store the result. * @return Number of bytes read or zero if an error ocurred. */ virtual u32 Read8(u8 *_buff); /** Reads a byte. * @param _buff Variable to store the result. * @return Number of bytes read or zero if an error ocurred. */ virtual u32 Read8(s8 *_buff); /** Reads a data in little-endian format. * @param _buff Variable to store the result in the machine's endianness. * @return Number of bytes read or zero if an error ocurred. */ virtual u32 ReadLE16(u16 *_buff); /** Reads a data in little-endian format. * @param _buff Variable to store the result in the machine's endianness. * @return Number of bytes read or zero if an error ocurred. */ virtual u32 ReadLE16(s16 *_buff); /** Reads a data in big-endian format. * @param _buff Variable to store the result in the machine's endianness. * @return Number of bytes read or zero if an error ocurred. */ virtual u32 ReadBE16(u16 *_buff); /** Reads a data in big-endian format. * @param _buff Variable to store the result in the machine's endianness. * @return Number of bytes read or zero if an error ocurred. */ virtual u32 ReadBE16(s16 *_buff); /** Reads a data in little-endian format. * @param _buff Variable to store the result in the machine's endianness. * @return Number of bytes read or zero if an error ocurred. */ virtual u32 ReadLE32(u32 *_buff); /** Reads a data in little-endian format. * @param _buff Variable to store the result in the machine's endianness. * @return Number of bytes read or zero if an error ocurred. */ virtual u32 ReadLE32(s32 *_buff); /** Reads a data in big-endian format. * @param _buff Variable to store the result in the machine's endianness. * @return Number of bytes read or zero if an error ocurred. */ virtual u32 ReadBE32(u32 *_buff); /** Reads a data in big-endian format. * @param _buff Variable to store the result in the machine's endianness. * @return Number of bytes read or zero if an error ocurred. */ virtual u32 ReadBE32(s32 *_buff); /** Reads from the file to the given buffer, uncompressing the data. The first 4 bytes read are * the uncompressed size. The next 4 are the size to read compressed. Then the data comes. * @param _buff Buffer to fill with the uncompressed data. The memory is reserved using operator new from inside, * the caller should delete it after using it. * @return Uncompressed size. */ virtual u32 ZRead(void * &_buff); /** Reads from the file to the given buffer and leaves the poiter in its original position. * @param _buff Buffer to fill with the data read. * @param _size Size in bytes to read from the file. If zero, reads the whole file. * @return Number of bytes read or zero if an error occurred. */ virtual u32 Peep(void *_buff, u32 _size); /** Loads the whole file. Is the same as Open() + Read(0). * @param filename Name of the file to load. * @param mode Opening mode as that of fopen(): {w|r|a}[+][{b|t}]. By default, "rb" is used. * @return true if loaded successfuly, false if not. */ virtual bool Load(const s8 *filename, const s8 *mode = "rb"); /** Writes in the file. * @param _buff Buffer with the data to write. * @param _size Size in bytes to write. * @return Number of bytes written or zero if an error occurred. */ virtual u32 Write(const void *_buff, u32 _size); /** Writes a boolean. It is stored as a single byte. * @param _buff Variable with the value to store. * @return Number of bytes written or zero if an error ocurred. */ u32 WriteBool(bool *_buff); /** Writes a byte. * @param _buff Variable with the value to store. * @return Number of bytes written or zero if an error ocurred. */ u32 Write8(u8 *_buff); /** Writes a byte. * @param _buff Variable with the value to store. * @return Number of bytes written or zero if an error ocurred. */ u32 Write8(s8 *_buff); /** Writes a data in little-endian format. * @param _buff Variable with the value to store in the machine's endianness. * @return Number of bytes written or zero if an error ocurred. */ u32 WriteLE16(u16 *_buff); /** Writes a data in little-endian format. * @param _buff Variable with the value to store in the machine's endianness. * @return Number of bytes written or zero if an error ocurred. */ u32 WriteLE16(s16 *_buff); /** Writes a data in big-endian format. * @param _buff Variable with the value to store in the machine's endianness. * @return Number of bytes written or zero if an error ocurred. */ u32 WriteBE16(u16 *_buff); /** Writes a data in big-endian format. * @param _buff Variable with the value to store in the machine's endianness. * @return Number of bytes written or zero if an error ocurred. */ u32 WriteBE16(s16 *_buff); /** Writes a data in little-endian format. * @param _buff Variable with the value to store in the machine's endianness. * @return Number of bytes written or zero if an error ocurred. */ u32 WriteLE32(u32 *_buff); /** Writes a data in little-endian format. * @param _buff Variable with the value to store in the machine's endianness. * @return Number of bytes written or zero if an error ocurred. */ u32 WriteLE32(s32 *_buff); /** Writes a data in big-endian format. * @param _buff Variable with the value to store in the machine's endianness. * @return Number of bytes written or zero if an error ocurred. */ u32 WriteBE32(u32 *_buff); /** Writes a data in big-endian format. * @param _buff Variable with the value to store in the machine's endianness. * @return Number of bytes written or zero if an error ocurred. */ u32 WriteBE32(s32 *_buff); /** Writes compressed to the file. The format is * [size uncompressed][size compressed][compressed data]. * @param _buff Buffer with the data to write. * @param _size Size of the data to write. * @param level Compression level, 1 (lowest) to 9 (greatest). * @return Number of bytes written (including the 8 of the header) or zero if an error occurred. */ virtual u32 ZWrite(const void *_buff, u32 _size, s32 level = 9); /** Returns the internal read buffer. * @return Internal buffer. NEVER must be deleted from outside the class. */ virtual s8 *Buffer() {return buff;} /** Returns the size of the internal buffer. Its the size of the last Read operation to the internal buffer. * @return Size of the internal buffer. */ virtual u32 BufferSize() {return buffSize;} /** Returns the size of the file. If the file could have changed its size since its creation, * is necessary a call to Refresh. * @return Size in bytes of the file. */ inline u32 FileSize() {return statInfo.st_size;} /** Frees the internal buffer. */ virtual void FreeBuffer(); /** Places the file pointer at the beginning of the file. */ virtual void Rewind(); /** Closes the file. * @return true if memory was freed, false if it was not necessary. */ virtual bool Close(); /** Returns the internal file pointer. * @return Internal file pointer. */ virtual const FILE * File() {return file;} /** Returns the name of the file. * @return Name of the file. */ virtual const s8 * Name() {return name;} /** Returns the current position in bytes from the beginning of the file. * @return Current position in bytes from the beginning of the file. */ virtual s32 Pos() {return ftell(file);} /** Sets the current position of the file pointer. * @param pos New position, in bytes. * @return true if the position waswithin the file, false if not. */ virtual bool Pos(s32 pos) {return 0 == fseek(file, pos, SEEK_SET);} /** Seeks to the given position. * @param pos Position to seek. * @param whence Source of the seeking (SEEK_SET, SEEK_CUR, SEEK_END). * @return true if reached, false if not. */ virtual bool Seek(s32 pos, u32 whence) {return 0 == fseek(file, pos, whence);} /** Determines if this file exists. If the file has been created from outside the class, * Refresh() must be called. * @return true if it exists, false if not. */ virtual bool Exists() {return exists;} /** Returns the size of this file in bytes. * @return Size in bytes of the file. */ virtual u32 Size() {return statInfo.st_size;} /** Determines if this file is a regular file or not (link, directory, etc.) * @return true if so, false if not. */ bool IsFile() {return 0 != (statInfo.st_mode & S_IFREG);} /** Determines if it's a directory. * @return true if so, false if not. */ bool IsDir() {return 0 != (statInfo.st_mode & S_IFDIR);} /** Determines if it's a link to another file. * @return true if so, false if not. */ bool IsLink() {return 0 != (statInfo.st_mode & S_IFLNK);} /** Determines if it's a character device. * @return true if so, false if not. */ bool IsCharDev() {return 0 != (statInfo.st_mode & S_IFCHR);} /** Determines if it's a block device. * @return true if so, false if not. */ bool IsBlockDev() {return 0 != (statInfo.st_mode & S_IFBLK);} /** Determines if a file with the given name exists. * @param name Name of the file to test. * @return true if it exists, false if not. */ static bool Exists(const s8 *name); /** Determines the size of the given file. * @param name Name of the file. * @return Size in bytes of the file. If it does not exist, it returns 0 (zero). */ static u32 Size(const s8 *name); /** Determines if it's a regular file. * @param name Name of the file. * @return true if so, false if not. */ static bool IsFile(const s8 *name); /** Determines if it's a directory. * @param name Name of the file. * @return true if so, false if not. */ static bool IsDir(const s8 *name); /** Determines if it's a link. * @param name Name of the file. * @return true if so, false if not. */ static bool IsLink(const s8 *name); /** Determines if it's a character device. * @param name Name of the file. * @return true if so, false if not. */ static bool IsCharDev(const s8 *name); /** Determines if it's a block device. * @param name Name of the file. * @return true if so, false if not. */ static bool IsBlockDev(const s8 *name); /** Ensures all the data are written in the physical media. * @return true if succeeded, false otherwise. */ bool Flush() {return 0 == fflush(file);} /** Resizes this file, moving in disk the necessary bytes from the insert position * After it, the file is ready to write in the new region. * The opening mode must be binary and read and write (not only "wb", but "r+b"). * @param byte Position of the first byte left blank. * @param numBytes Number of blank bytes to insert. * @return true if it succeeds, false if not. */ bool ResizeAt(u32 byte, s32 numBytes); /** Resizes this file, moving in disk the necessary bytes from the beginning of the file. * After it, the file is ready to write in the new region. * The opening mode must be binary and read and write (not only "wb", but "r+b"). * @param numBytes Number of blank bytes to insert. * @return true if it succeeds, false if not. */ bool ResizeFront(u32 numBytes) {return ResizeAt(0, numBytes);} /** Changes the size of the file at the end of it (thus, no need to move any bytes). * The opening mode must be binary and read and write (not only "wb", but "r+b"). * @param numBytes Number of blank bytes to insert. * @return true if it succeeds, false if not. */ bool ResizeBack(u32 numBytes); /** Sets the maximum transfer block size for a resize operation like ResizeAt() or ResizeFront(). * Its default value is JFILE_DEF_MAX_BLOCK_SIZE (2MB). Ideally this value should be that of the maximum DMA * transfer block in order to obtain the best results (above this value, there are no significant benefits * and furthermore the memory needed must be previously allocated by the class so it can be a penalty). * @param max New New block size (at least 1). */ static void MaxBlockSize(u32 max) {MAX_BLOCK_SIZE = (max > 0) ? max : 1;} /** Returns the maximum transfer block size for resize operations like ResizeAt() and ResizeFront(). * By default this value is JFILE_DEF_MAX_BLOCK_SIZE (2MB). * @return Maximum transfer block size. */ static u32 MaxBlockSize() {return MAX_BLOCK_SIZE;} }; #endif // _JFILE_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JTextFile.cpp0000600000175000001440000001437211177007633021075 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clase para manejo de ficheros de texto. * @file JTextFile.cpp. * @author Juan Carlos Seijo Prez * @date 15/06/2003 * @version 0.0.1 - 15/06/2003 - Primera versin. */ #include s8 JTextFile::line = '\n'; // Constructor JTextFile::JTextFile(const s8 *_name) : JFile(_name), ptr(0) { } // Destructor JTextFile::~JTextFile() { JFile::Close(); } // Develve el puntero a la posicin actual s8 * JTextFile::GetPos() { return ptr; } // Establece el puntero a la posicin actual bool JTextFile::SetPos(s8 *_ptr) { if (_ptr >= buff && _ptr < buff + buffSize) { ptr = _ptr; return true; } return false; } // Lee el fichero como en la clase base pero asigna el puntero de desplazamiento. u32 JTextFile::Read(u32 readSize) { u32 sz; sz = JFile::Read(readSize); ptr = buff; return sz; } // Carga todo el fichero como en la clase base pero asigna el puntero de desplazamiento y // aade un cero al final bool JTextFile::Load(const char *filename, const char *mode) { if (!Open(filename, mode)) { return false; } u32 ret; FreeBuffer(); buff = new char[statInfo.st_size + 1]; if (!buff) { return false; } ret = fread(buff, sizeof(char), statInfo.st_size, file); if (ret < 0) { return false; } ptr = buff; buffSize = ret + 1; buff[buffSize - 1] = '\0'; return true; } // Lee el prximo nmero decimal. Salta todos los caracteres que no sean nmeros. bool JTextFile::ReadFloat(float *f) { //while (isspace(*ptr)) ++ptr; s8 str[16]; if (ReadWord(str)) { *f = (float)atof(str); return true; } return false; } // Lee el prximo nmero entero. Salta todos los caracteres que no sean nmeros. bool JTextFile::ReadInteger(s32 *i) { //while (isspace(*ptr)) ++ptr; s8 str[16]; if (ReadWord(str)) { *i = atoi(str); return true; } return false; } // Avanza hasta el comienzo de la cadena dada. Comienza desde el principio si jump // es true y se alcanza el final del fichero (hasta que se alcanza la posicin de inicio). bool JTextFile::FindNext(const s8 *str, bool jump) { s8 *tmp; tmp = strstr(ptr, str); if (tmp > 0) ptr = tmp; else { if (jump) { tmp = strstr(buff, str); if (tmp > 0) ptr = tmp; else return false; } else return false; } return true; } u32 JTextFile::CountString(const s8 *str, s8* init, s8* end) { u32 count = 0; s8 *pos = GetPos(); if (init == 0) { init = pos; } if (end == 0) { end = buff + buffSize - 1; } if (!SetPos(init) || !SetPos(end)) { // Posicin no vlida return 0; } SetPos(init); while (FindNext(str) && ptr < end) { ++count; ++ptr; } SetPos(pos); return count; } // Lee y avanza el puntero bool JTextFile::ReadWord(s8 *str) { s8 *ptrEnd = buff + buffSize + 1; s32 i = 0; while (isspace(*ptr) && ptr < ptrEnd) ++ptr; while (!isspace(*ptr) && ptr < ptrEnd) { str[i++] = *ptr; ++ptr; } str[i] = 0; return i > 0; } bool JTextFile::ReadQuotedWord(s8 *str) { s8 *org = ptr, *end; s32 i = 0; while (isspace(*ptr)) ++ptr; if (*ptr != '"') { // No hay comillas de inicio ptr = org; return false; } ++ptr; end = ptr; if (0 >= (end = strstr(ptr, "\""))) { // No hay comillas de cierre ptr = org; return false; } while (*ptr != '"') { str[i++] = *ptr; ++ptr; } ++ptr; str[i] = 0; return true; } // Salta la siguiente palabra y avanza el puntero bool JTextFile::SkipNextWord() { while (isspace(*ptr)) ++ptr; while (!isspace(*ptr)) ++ptr; while (isspace(*ptr)) ++ptr; return true; } // Mueve el puntero al comienzo del documento void JTextFile::StartOfDocument() { ptr = buff; } // Mueve el puntero al comienzo de la siguiente lnea con texto. bool JTextFile::NextLine() { s8 *ptrOrg = ptr, *ptrEnd = buff + buffSize - 1; while (*ptr != line && ptr < ptrEnd) { ++ptr; } if (ptr == ptrEnd) return false; while (isspace(*ptr)) { ++ptr; } return ptrOrg != ptr; } // Lee una lnea del fichero desde la posicin actual (sin contar espacios). bool JTextFile::ReadLine(s8 *str) { s8 *orgPtr = ptr; // Se salta los blancos while (isspace(*ptr)) ++ptr; s8 *tmp = ptr; if (NextLine()) { --ptr; // Vuelve atrs el nmero de blancos saltados while (isspace(*ptr)) --ptr; ++ptr; strncpy(str, tmp, ptr - tmp); str[ptr - tmp] = '\0'; return true; } ptr = orgPtr; return false; } // Escribe en el fichero sin salto de lnea u32 JTextFile::Print(const s8 *str) { if (!file) return 0; return(fputs(str, file)); } // Escribe en el fichero con salto de lnea u32 JTextFile::PrintLine(const s8 *str) { if (!file) return 0; fputs(str, file); return(fputc(line, file)); } // Escribe en el fichero con formato y sin salto de lnea u32 JTextFile::Printf(const s8 *fmt, ... ) { if (!file) return 0; va_list vlist; s8 str[MAX_LINE_LENGTH]; va_start(vlist, fmt); vsprintf(str, fmt, vlist); va_end(vlist); return(fputs(str, file)); } // Lectura tipo scanf s32 JTextFile::Scanf(const char *format, ...) { va_list vlist; s32 ret; u32 strSize = buffSize - (ptr - buff); if (strSize == 0) { return 0; } char *str = new char[strSize + 1]; memcpy(str, ptr, strSize); str[strSize] = '\0'; va_start(vlist, format); ret = vsscanf(str, format, vlist); va_end(vlist); delete[] str; return ret; } holotz-castle-1.3.14-src/JLib/JLib/Util/JApp.h0000600000175000001440000004407511177007633017541 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Base application class. Allows to init SDL and the other subsystems as sound. * @file JApp.h * @author Juan Carlos Seijo Prez * @date 01/04/2003 * @version 0.0.1 - First version - 01/04/2003 */ #ifndef _JAPP_INCLUDED #define _JAPP_INCLUDED #include #include #include #include #include #include #include #include #ifdef _WIN32 #else #include #define _sleep sleep #endif /** Application base class. You should inherit from this class and override * the Update and Draw methods to create an application. The following example * creates a 400x300 window and fills the window with a diferent color each frame: * You can try to execute it with the '-h' option to see what standard parameters a JApp * accepts by default. *
 * 
 * #include 
 * #include 
 * #include 
 * 
 * class MyApp : public JApp
 * {
 *   int myData;
 * 
 * public:
 *   MyApp() :   JApp("App window title", 400, 300, false, 16), myData(0)
 *   {}
 * 
 *   bool Update() 
 *   {
 *     UpdateEvents();
 * 
 *     ++myData;
 *     if (Keys()[SDLK_ESCAPE] != 0)
 *     {
 *       Exit();
 *     }
 *   }
 * 
 *   bool Draw() {SDL_FillRect(screen, 0, myData); Flip();}
 * };
 * 
 * int main(int argc, char **argv)
 * {
 *   MyApp app;
 *   
 *   // Optionally, parses the command line
 *   app.ParseArgs(argc, argv);
 * 
 *   // Initializes SDL.
 *   if (!app.Init())
 *   {
 *     printf("Error initializing app.\n");
 *     return -1;
 *   }
 * 
 *   // The aplication stays here until Exit() is called.
 *   return app.MainLoop();
 * }
 *
 * 
*/ class JApp { protected: bool active; /**< Is the application active (first plane)? */ bool paused; /**< Is paused the application? */ bool endLoop; /**< Must exit the app? */ JString title; /**< Window title */ s32 width; /**< Window width */ s32 height; /**< Window height */ s32 depth; /**< Color depth */ bool fullScreen; /**< Fullscreen flag */ bool doInput; /**< Must capture events (keyboard, mouse, WM)? */ u32 flags; /**< SDL additional flags */ u32 appPauseTime; /**< Time at which the application is paused */ u8 *keys; /**< Keyboard state */ SDLMod keyMods; /**< Key modifiers state (Shift, Ctrl, etc.) */ s32 numKeys; /**< Number of keyboard keys */ s32 mouseX; /**< Mouse X position */ s32 mouseY; /**< Mouse Y position */ u8 mouseBt; /**< Mouse button mask */ s32 mouseRelX; /**< Mouse X relative increment */ s32 mouseRelY; /**< Mouse Y relative increment */ s16 joyAxisX; /**< Joystick X offset */ s16 joyAxisY; /**< Joystick Y offset */ u8 joyButton; /**< Joystick button */ JTimer timer; /**< Application timer */ s32 fps; /**< Frames per second */ bool dumpVideoInfo; /**< Must dump video info at init? */ JMixer mixer; /**< Audio mixer */ bool soundEnabled; /**< Is sound enabled? */ char *iconName; /**< Application icon filename */ static JApp* thisApp; /**< Pointer to this application */ void (*__OnActive)(bool active, s32 state); /**< Active event callback */ void (*__OnKeyUp )(SDL_keysym key); /**< Key up event callback */ void (*__OnKeyDown)(SDL_keysym key); /**< Key down event callback */ void (*__OnMouseMove)(s32 x, s32 y, s32 bt, s32 xRel, s32 yRel); /**< Mouse move event callback */ void (*__OnMouseDown)(s32 bt, s32 x, s32 y); /**< Mouse button down event callback */ void (*__OnMouseUp)(s32 bt, s32 x, s32 y); /**< Mouse button up event callback */ void (*__OnJoyMove)(s32 joyNum, s32 axis, s32 value); /**< Joystick move event callback */ void (*__OnJoyBall)(s32 joyNum, s32 ballIndex, s32 xRel, s32 yRel); /**< Joystick ball event callback */ void (*__OnJoyHat)(s32 joyNum, s32 hatIndex, s32 value); /**< Joystick hat event callback */ void (*__OnJoyUp)(s32 joyNum, s32 btIndex); /**< Joystick button up event callback */ void (*__OnJoyDown)(s32 joyNum, s32 btIndex); /**< Joystick button down event callback */ void (*__OnQuit)(); /**< Quit event callback */ void (*__OnSysWM)(); /**< Window manager event callback */ void (*__OnResize)(s32 w, s32 h); /**< Resize event callback */ void (*__OnExpose)(); /**< Window exposure (unhide) event callback */ void (*__OnUser)(s32 code, void *data1, void *data2); /**< User event callback */ SDL_Surface *screen; /**< Primary surface as of SDL_GetVideoSurface() */ SDL_Joystick *joystick; /**< Joystick device */ public: /** Creates the application. The audio mixer must be initialized in the child class. * @param strTitle Window title. * @param w Window width. * @param h Window height. * @param fullScr Fullscreen flag. * @param _depth Bits per pixel (color depth, 8, 16, 24, 32, etc.) * @param otherFlags SDL Additional flags */ JApp(const JString& strTitle, s32 w = 1024, s32 h = 768, bool fullScr = true, s32 _depth = 16, u32 otherFlags = 0); /** Checks for events to process. In case the associated callback is registered, calls it. * @return true if event polling succeded, false if not. */ virtual bool UpdateEvents(); /** Initializes the app. Creates the window with the paraameters given at construction time. * Normally the child application class overrides this method to initialize its objects and calls the parent (this class) * to do the SDL initialization stuff. * @return true if the creation succeded false if not. */ virtual bool Init(); /** Updates the application objects (graphics, sounds, A.I., etc.). Must be implemented in the child class. * JApp will call this method before Draw in the child class (by means of MainLoop(). * @return true if success, false else. */ virtual bool Update() = 0; /** Draws the application. As Update(), must be implemented in the child class. * @return true if ok, false else. */ virtual bool Draw() = 0; /** Main loop. The default implementation calls Update() and if it succeded then calls Draw. The application remains * here until Exit() is called or Update() or Draw() fail. * @return Application exit code. */ virtual s32 MainLoop(); /** Returns the window width. * @return Window width. */ s32 Width() {return width;} /** Returns the window height. * @return Window Height. */ s32 Height() {return height;} /** Changes the window size. * @param w New width. * @param h New height. * @param _fullScreen true if the app must be fullscreen, false if windowed. */ void Resize(s32 w, s32 h, bool _fullScreen); /** Returns the fullscreen flag. * @return true if fullscreen, false if windowed. */ bool IsFullscreen() {return fullScreen;} /** Returns the color depth. * @return Color depth in bits (normally 8, 16, 24 or 32). */ s32 Depth() {return depth;} /** Ends the application, exiting from the main loop. */ void Exit() {endLoop = true;} /** Returns the active flag. * @return true if the application is active (foreground) false if not. */ bool IsActive() {return active;} /** Returns the pause state of the application. * @return true if paused false otherwise. */ bool IsPaused() {return paused;} /** Pauses or resumes the application. * @param doPause true pauses the application, false resumes. * @return if pausing (doPause is true), returns the number * of milliseconds from the start of the application. If resuming, * (doPause false), returns the number of milliseconds * during pause mode. */ u32 Pause(bool doPause); /** Returns the window title. * @return Window title. */ const JString &Title() {return title;} /** Sets the window title. * @param newTitle New window title.. */ void Title(JString &newTitle) {title = newTitle; SDL_WM_SetCaption(title, 0);} /** Returns the execution time in milliseconds. * @return Execution time in milliseconds. */ u32 AppTime() {return SDL_GetTicks();} /** Returns the main SDL surface. The surface is created after Init() * @return SDL main surface. */ SDL_Surface * Screen() {return screen;} /** Establishes if events must be captured. * @param b true if they must be false otherwise. */ void DoInput(bool b) {doInput = b;} /** Determines if events must be captured. * @return true if so false if not. */ bool DoInput() {return doInput;} /** Sets the active event callback. * @param _OnActive Callback. */ void SetOnActive (void (*_OnActive)(bool active, s32 state)) {__OnActive = _OnActive;} /** Sets the kay up event callback. * @param _OnKeyUp Callback. */ void SetOnKeyUp (void (*_OnKeyUp )(SDL_keysym key)) {__OnKeyUp = _OnKeyUp ;} /** Sets the key down event callback. * @param _OnKeyDown Callback. */ void SetOnKeyDown (void (*_OnKeyDown)(SDL_keysym key)) {__OnKeyDown = _OnKeyDown;} /** Sets the mouse move event callback. * @param _OnMouseMove Callback. */ void SetOnMouseMove (void (*_OnMouseMove)(s32 x, s32 y, s32 bt, s32 xRel, s32 yRel)) {__OnMouseMove = _OnMouseMove;} /** Sets the mouse button down event callback. * @param _OnMouseDown Callback. */ void SetOnMouseDown (void (*_OnMouseDown)(s32 bt, s32 x, s32 y)) {__OnMouseDown = _OnMouseDown;} /** Sets the mouse button up event callback. * @param _OnMouseUp Callback. */ void SetOnMouseUp (void (*_OnMouseUp)(s32 bt, s32 x, s32 y)) {__OnMouseUp = _OnMouseUp;} /** Sets the joystick move event callback. * @param _OnJoyMove Callback. */ void SetOnJoyMove (void (*_OnJoyMove)(s32 joyNum, s32 axis, s32 value)) {__OnJoyMove = _OnJoyMove;} /** Sets the joystick ball event callback. * @param _OnJoyBall Callback. */ void SetOnJoyBall (void (*_OnJoyBall)(s32 joyNum, s32 ballIndex, s32 xRel, s32 yRel)) {__OnJoyBall = _OnJoyBall;} /** Sets the joystick hat event callback. * @param _OnJoyHat Callback. */ void SetOnJoyHat (void (*_OnJoyHat)(s32 joyNum, s32 hatIndex, s32 value)) {__OnJoyHat = _OnJoyHat;} /** Sets the joystick button up event callback. * @param _OnJoyUp Callback. */ void SetOnJoyUp (void (*_OnJoyUp)(s32 joyNum, s32 btIndex)) {__OnJoyUp = _OnJoyUp;} /** Sets the joystick button down event callback. * @param _OnJoyDown Callback. */ void SetOnJoyDown (void (*_OnJoyDown)(s32 joyNum, s32 btIndex)) {__OnJoyDown = _OnJoyDown;} /** Sets the quit event callback. * @param _OnQuit Callback. */ void SetOnQuit (void (*_OnQuit)()) {__OnQuit = _OnQuit;} /** Sets the window manager event callback. * @param _OnSysWM Callback. */ void SetOnSysWM (void (*_OnSysWM)()) {__OnSysWM = _OnSysWM;} /** Sets the resize event callback. * @param _OnResize Callback. */ void SetOnResize (void (*_OnResize)(s32 w, s32 h)) {__OnResize = _OnResize;} /** Sets the video expose event callback. * @param _OnExpose Callback. */ void SetOnExpose (void (*_OnExpose)()) {__OnExpose = _OnExpose;} /** Sets the user event callback. * @param _OnUser Callback. */ void SetOnUser(void (*_OnUser)(s32 code, void *data1, void *data2)) {__OnUser = _OnUser;} /** Returns mouse X position. * @return Mouse X position. */ s32 MouseX() {return mouseX;} /** Returns mouse Y position. * @return Mouse Y position. */ s32 MouseY() {return mouseY;} /** Returns the relative X mouse position (since the last move). * @return Relative X mouse position. */ s32 MouseRelX() {return mouseRelX;} /** Returns the relative Y mouse position (since the last move). * @return Relative Y mouse position. */ s32 MouseRelY() {return mouseRelY;} /** Returns the mouse button press mask. * @return Mouse button state mask. */ u8 MouseBt() {return mouseBt;} /** Returns the keyboard key state. The state for a certain key is determined * with Keys()[SDLK_XXX], where SDLK_XXX is the key to query. * If the value is 0, the key is not pressed, else, it is pressed. * @return Key state array. */ u8 * Keys() {return keys;} /** Returns the key modifier mask. The bits of this mask are those for SDL * KMOD_XXX, with XXX=LCTRL, LSHIFT, etc. * @return Key modifiers bit mask. */ SDLMod KeyMods() {return keyMods;} /** Returns the joystick X axis * @return joystick X axis */ s16 JoystickX() {return joyAxisX;} /** Returns the joystick Y axis * @return joystick Y axis */ s16 JoystickY() {return joyAxisY;} /** Returns the joystick buttonstate. Note: It does not differentiate between buttons. * @return joystick button */ u8 JoystickButton() {return joyButton;} /** Updates the given region of the primary surface. If all parameters are 0, * the whole window is updated. This is simply a wrapper for SDL_UpdateRect(...). * @param x X position of the rectangle to update. * @param y Y position of the rectangle to update. * @param w Width of the rectangle to update. * @param h Height of the rectangle to update.. */ void UpdateRect(s32 x, s32 y, s32 w, s32 h) {SDL_UpdateRect(screen, x, y, w, h);} /** Update the given rects. As UpdateRect() is only a wrapper for SDL_UpdateRects(). * @param num Number of rects to update. * @param rc Array with the rects to update. */ void UpdateRects(s32 num, SDL_Rect *rc) {SDL_UpdateRects(screen, num, rc);} /** Swaps front and back buffer (if SDL_DOUBLEBUF is used as flag during SDL initializacion) * or updates the whole screen. This is a wrapper for SDL_Flip(). * @return true if ok, false if an error ocurred.. */ bool Flip() {return -1 != SDL_Flip(screen);} /** Returns the audio mixer. Must be initialized in the child class. * @return Audio mixer. */ JMixer & Mixer() {return mixer;} /** Returns this application instance. * @return Pointer to this application. */ static JApp * App() {return thisApp;} /** Sets the number of frames per second (FPS). Its the maximum number of times Draw() is called per second. * @param newFPS New FPS value. */ void FPS(s32 newFPS); /** Returns the FPS (frames per second). Its the maximum number of times Draw() is called per second. * @return FPS value. */ s32 FPS() {return fps;} /** Returns a pointer to the current video mode video info. Is Exactly a wrapper for SDL_GetVideoInfo(). * If called before Init() or Resize() it contains the 'best' intended video mode. * @return Information about the current video mode or about the video system in general. */ const SDL_VideoInfo *VideoInfo() {return SDL_GetVideoInfo();} /** Show the video info in the standard output. */ void DumpVideoInfo(); /** Parses the application argument. * @param args Command line arguments. * @param argc Arguments left. * @return Number of parameters used. */ virtual int ParseArg(char *args[], int argc); /** Shows the usage string. It contains the default arguments a JApp can be passed. * @param program Program's name. */ virtual void PrintUsage(char *program); /** Parses the application arguments. * @param argc Command line argument count. * @param argv Command line arguments. */ void ParseArgs(s32 argc, char **argv); /** Enables or disables sound playback. * @param enable true if it must be enabled, false if not. */ void SoundEnabled(bool enable) {soundEnabled = (enable && mixer.Valid());} /** Shows or hides the mouse cursor. * @param b true to show, false to hide. */ void MouseCursor(bool b) {SDL_ShowCursor(b ? SDL_ENABLE : SDL_DISABLE);} /** Returns the viewing state of the mouse cursor. * @param b true if showing, false if not. */ bool MouseCursor() {return SDL_ENABLE == SDL_ShowCursor(SDL_QUERY);} /** Sets the file name of the icon to be used for the window. Must be called before init. * In Windows must have exactly 32x32 pixels. * @param filename Filename of the icon, 0 to use the default icon. */ void Icon(const char *filename); /** Returns the sound mixer state. * @return true if active, false if not or the mixer couldn't be initialized properly. * @see JMixer::Valid(), Mixer(). */ bool SoundEnabled() {return soundEnabled;} /** Destroys this application, frees resources and quits the SDL subsystems initialized. */ void Destroy(); /** Destroys the object. */ virtual ~JApp(); }; #endif // JAPP_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JArray.h0000644000175000001440000000655311177007633020106 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Pérez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Pérez * jacob@mainreactor.net */ /** Dynamic array template. * @file JArray.h * @author Juan Carlos Seijo Pérez * @date 23/10/2005 * @version 0.0.1 - 23/10/2005 - First version. */ #ifndef _JARRAY_INCLUDED #define _JARRAY_INCLUDED #include #include /** This class allows to track the size of a dinamically created array of elements, grow and shrink it. * Basically unloads from the task of keeping a variable with the array size associated to an array. */ template class JArray { protected: int maxSize; /**< Maximum number of elements this array can store */ T *elements; /**< Array with the elements */ public: /** Creates an empty array. By default the memory is zeroed. */ JArray(int sz = max) : maxSize(sz) {elements = new T[maxSize]; Zero();} /** Grows by the specified amount (by default, the amount is the max template parameter). * @param amount Amount to grow. */ void Grow(unsigned int amount = max) { T *newElements = new T[maxSize + amount]; memset(newElements, 0, sizeof(T) * (maxSize + amount)); for (int i = 0; i < maxSize; ++i) newElements[i] = elements[i]; delete[] elements; elements = newElements; maxSize += amount; } /** Shrinks by the specified amount (by default, the amount is the max template parameter).. * If the amount is greater than the maximum size the it shrinks by the max size (making the array 0 sized). * @param amount Amount to shrink. */ void Shrink(unsigned int amount = max) { if (amount >= maxSize) { Clear(); return; } T *newElements = new T[maxSize - amount]; memset(newElements, 0, sizeof(T) * (maxSize - amount)); for (int i = 0; i < maxSize - amount; ++i) newElements[i] = elements[i]; delete[] elements; elements = newElements; maxSize -= amount; } /** Fills the array (its memory) with zeros. */ void Zero() {memset(elements, 0, sizeof(T) * maxSize);} /** Clears the array, shrinking it to 0 capacity. */ void Clear() {JDELETE_ARRAY(elements); maxSize = 0;} /** Returns the capacity of the array. */ int MaxSize() {return maxSize;} /** Returns the element at the given index. * @param i Index of the element. * @return Element at that index. */ T& operator[](int i) {return elements[i];} /** Destroys the array and frees allocated resources. */ ~JArray() {JDELETE_ARRAY(elements); maxSize = 0;} }; #endif // _JARRAY_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JTextFile.h0000600000175000001440000001300311177007633020530 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Class to manipulate text files. * @file JTextFile.h. * @author Juan Carlos Seijo Prez * @date 15/06/2003 * @version 0.0.1 - 15/06/2003 - First version. */ #ifndef _JTEXTFILE_INCLUDED #define _JTEXTFILE_INCLUDED #include #include #include #include #include /** Max line length. */ #define MAX_LINE_LENGTH 1024 /** This class allows to manipulate text files. Contains methods to load, save, write formatted strings, * and search words among others. */ class JTextFile : public JFile { protected: s8 *ptr; /**< Seek pointer */ static s8 line; /**< End of line character */ public: /** Creates a new file with the given name. * @param _name Name of the file. */ JTextFile(const s8 *_name = 0); /** Frees allocated resources and closes the file. */ ~JTextFile(); /** Seeks to the first character of the next occurrence of the given string. * @param str String to look for. * @param jump Indicates whether it must jump to the beginning of the file if the end of the file is reached. * @return true if the word was found, false if not. */ bool FindNext(const s8 *str, bool jump = false); /** Reads the file as in the base class but assigns the seek pointer also. * @param readSize Size to read or zeor to read the whole file. * @return Number of bytes read or 0 (zero) if an error occurred. */ virtual u32 Read(u32 readSize = 0); /** Loads the whole file as in the base class but assigns the seek pointer. * @param filename Name of the file to load. * @param mode Open mode as in fopen() (like {w|r|a}[+][{b|t}]). * by default is "rb" (read, binary). * @return true if succeeded, false otherwise. */ virtual bool Load(const char *filename, const char *mode = "rb"); /** Advances the seek pointer to the next word. * @return true if another word existed, false if not. */ bool SkipNextWord(); /** Reads the next word and moves the pointer. * @param str Buffer where to put the read word. * @return true if another word existed, false if not. */ bool ReadWord(s8 *str); /** Reads the next double-quoted word and moves the pointer. * @param str Buffer where to put the read double-quoted word. * @return true if another word existed, false if not. */ bool ReadQuotedWord(s8 *str); /** Reads the next decimal number. Skips all characters that are not numbers (or the decimal dot or a sign). * @param f Variable to store the result. * @return true if there was a number, false if not. */ bool ReadFloat(float *f); /** Reads the next integer. Skips all characters that are not numbers (or signs). * @param i Variable to store the result. * @return true if there was a number, false if not. */ bool ReadInteger(s32 *i); /** Advances the pointer to the next line. * @return true if there was next line, false if not. */ bool NextLine(); /** Moves the pointer to the start of the document. */ void StartOfDocument(); /** Reads the line under the actual position. * @param str Variable to store the result. * @return true if there was next line, false if not. */ bool ReadLine(s8 *str); /** Returns the pointer to the current position. * @return Pointer to the current position. */ s8 * GetPos(); /** Sets the current position. * @param _ptr New current position. * @return true if the position existed, false if not. */ bool SetPos(s8 *_ptr); /** Writes in the file without line-feed. * @param str String to write. * @return Number of characters written. */ u32 Print(const s8 *str); /** Writes in the file with line-feed. * @param str String to write. * @return Number of characters written. */ u32 PrintLine(const s8 *str); /** Writes in the file with format and without line-feed. * @param fmt Format string, printf-like. * @return Number of characters written. */ u32 Printf(const s8 *fmt, ... ); /** Counts the number of occurrences of the given string among the file. * @param str String to search. * @param init Start position. * @param end End position. * @return Number of coincidences. */ u32 CountString(const s8 *str, s8* init = 0, s8* end = 0); /** Reads like scanf. * @param format Format string. * @param format Format parameters. * @return Number of parameters read successfuly. */ s32 Scanf(const char *format, ...); }; #endif // _JTEXTFILE_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JFS.cpp0000600000175000001440000006360511177007633017664 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Sistema de ficheros virtual. * @file JFS.cpp * @author Juan Carlos Seijo Prez * @date 23/12/2003 * @version 0.0.1 - 23/12/2003 - Primera versin. */ #include // Carga la cabecera u32 JResourceHeader::Load(JRW &f) { if (0 != f.ReadLE32(&id) && 0 != f.ReadLE32(&pid) && 0 != f.ReadLE32(&type) && 0 != f.ReadLE32(&size) && 0 != f.ReadLE32(&flags)) { return 0; } return 1; } // Salva la cebecera u32 JResourceHeader::Save(JRW &f) { if (0 != f.WriteLE32(&id) && 0 != f.WriteLE32(&pid) && 0 != f.WriteLE32(&type) && 0 != f.WriteLE32(&size) && 0 != f.WriteLE32(&flags)) { return 0; } return 1; } u32 JResource::TypeOf(const char *filename) { const int size = 13; const char *prefix[size] = {".txt", ".c", ".cpp", ".h", ".png", ".tga", ".jpg", ".bmp", ".xpm", ".wav", ".spr", ".ttf", ".jfs"}; u32 types[size] = {JRES_TEXT, JRES_TEXT, JRES_TEXT, JRES_TEXT, JRES_IMAGE, JRES_IMAGE, JRES_IMAGE, JRES_IMAGE, JRES_IMAGE, JRES_SOUND, JRES_IMAGESPRITE, JRES_FONT, JRES_RESOURCEBLOCK}; for (int i = 0; i < size; ++i) { if (strstr(filename, prefix[i])) { return types[i]; } } return JRES_BINARY; } // Carga el recurso. u32 JResource::Load(JRW &f, JLoadSave *where) { u32 resp = 0; if (0 == (resp |= where->Load(f))) { loaded = true; data = where; } return resp; } bool JFS::ResizeAt(u32 offset, u32 numBytes) { u32 orgPos = resFile.Tell(); // TODO: Ver si hace falta resFile.Close(); //resFile.Destroy(); JFile f; if (!f.Open(resFilename, "r+b")) { perror("JFS::ResizeAt - No se pudo abrir el fichero"); return false; } // printf("Resizeando en byte %d, %d bytes\n", offset, numBytes); if (!f.ResizeAt(offset, numBytes)) { perror("No se pudo cambiar el tamao del fichero"); f.Close(); // Deja el jrw como estaba resFile.Create(resFilename, "r+b"); resFile.Seek(orgPos, SEEK_SET); return false; } orgPos = f.Pos(); f.Close(); // Deja el jrw listo para escribir if (!resFile.Create(resFilename, "r+b")) { perror("JFS::ResizeAt - No se pudo volver a crear e jrw"); return false; } resFile.Seek(orgPos, SEEK_SET); return true; } // Carga la cabecera del fichero s32 JFS::LoadHeader() { resFile.Seek(0, SEEK_SET); // Lee la cabecera char ident[9]; if (!resFile.Read(ident, 8)) { fprintf(stderr, "No se pudo leer la cabecera del fichero %s\n", resFilename.Str()); return -1; } ident[8] = '\0'; if (strcmp(ident, JRES_JFS_FILE) != 0) { fprintf(stderr, "%s no es un fichero JFS\n", resFilename.Str()); return -2; } u8 major, minor; if (!resFile.Read(&major, 1) || !resFile.Read(&minor, 1)) { fprintf(stderr, "No se pudo leer la versin de %s\n", resFilename.Str()); return -3; } fprintf(stderr, "%s versin %d.%d\n", ident, major, minor); return 0; } // Salva la cabecera del fichero s32 JFS::SaveHeader() { resFile.Seek(0, SEEK_SET); // Escribe la cabecera if (!resFile.Write(JRES_JFS_FILE, 8)) { fprintf(stderr, "No se pudo leer la cabecera del fichero %s\n", resFilename.Str()); return -1; } u8 major = JRES_JFS_MAJOR, minor = JRES_JFS_MINOR; if (!resFile.Write(&major, 1) || !resFile.Write(&minor, 1)) { fprintf(stderr, "No se pudo leer la versin de %s\n", resFilename.Str()); return -3; } fprintf(stderr, "Salvado %s, %s versin %d.%d\n", resFilename.Str(), JRES_JFS_FILE, major, minor); return 0; } // Carga el ndice de recursos s32 JFS::LoadIndex() { resFile.Seek(0, SEEK_END); fprintf(stderr, "Fin de fichero en %d\n", resFile.Tell()); // Lee el ndice al final del fichero resFile.Seek(-8, SEEK_END); fprintf(stderr, "Tamao del ndice en %d\n", resFile.Tell()); u32 indexSize, indexCount; if (!resFile.ReadLE32(&indexSize) || !resFile.ReadLE32(&indexCount)) { fprintf(stderr, "No se pudo cargar el ndice\n"); return -1; } resFile.Seek(-indexSize - 8, SEEK_END); index.resize(indexCount, 0); for (u32 i = 0; i < indexCount; ++i) { index[i] = new JFSIndexEntry; if (!index[i]) { // No hay memoria return -2; } index[i]->res = new JResource; if (!index[i]->res || !resFile.ReadLE32(&index[i]->offset) || !fprintf(stderr, "Leo en %d el offset %d\n", resFile.Tell() - 4, index[i]->offset) || (0 != index[i]->name.Load(resFile)) || (0 != index[i]->res->Header().Load(resFile))) { // Error al cargar la entrada return -3; } } return 0; } // Salva el ndice de recursos s32 JFS::SaveIndex() { // Escribe el ndice a partir del final del ltimo recurso resFile.Seek(index[index.size() - 1]->offset + index[index.size() - 1]->res->Size(), SEEK_SET); fprintf(stderr, "index[index.size() - 1]->offset = %d, index[index.size() - 1]->res->Header().size = %d\n", index[index.size() - 1]->offset, index[index.size() - 1]->res->Header().size); u32 curPos = resFile.Tell(); for (u32 i = 0; i < index.size(); ++i) { fprintf(stderr, "Escribo offset %d en %d, ", index[i]->offset, resFile.Tell()); if (!index[i] || !resFile.WriteLE32(&index[i]->offset) || (0 != index[i]->name.Save(resFile)) || (0 != index[i]->res->Header().Save(resFile))) { return -1; } fprintf(stderr, "acabo en %d\n", resFile.Tell()); } u32 indexSize = resFile.Tell() - curPos; u32 indexCount = index.size(); curPos = resFile.Tell(); resFile.Seek(0, SEEK_END); fprintf(stderr, "Fin de fichero est en %d\n", resFile.Tell()); fprintf(stderr, "Escribo indexSize en %d como %d\n", resFile.Tell(), indexSize); if (0 == resFile.WriteLE32(&indexSize) || 0 == resFile.WriteLE32(&indexCount)) { fprintf(stderr, "OOops, hubo un fallo gordo no se pudo salvar el tamao o el count\n"); return -2; } fprintf(stderr, "Fin de fichero en %d\n", resFile.Tell()); return 0; } // Carga el fichero de recursos s32 JFS::Load() { s32 ret = 0; if (0 != (ret = LoadHeader())) { fprintf(stderr, "Error cargando la cabecera\n"); return ret; } if (0 != (ret = LoadIndex())) { fprintf(stderr, "Error cargando el ndice\n"); return ret; } return 0; } // Carga el recurso dado. u32 JFS::Load(u32 id, JLoadSave *where) { if (id < index.size() && where) { if (index[id] && index[id]->res) { if (index[id]->res->data) { // Ya cargado return 1; } // Se posiciona para cargar el recurso resFile.Seek(index[id]->offset, SEEK_SET); index[id]->res->data = where; return where->Load(resFile); } } // Id o lugar de carga no vlidos return 2; } // Devuelve el recurso pedido JLoadSave * JFS::Get(const JString &_name) { for (u32 i = 0; i < index.size(); ++i) { if (index[i] && index[i]->name == _name) { if (index[i]->res) { return index[i]->res->data; } // Encontrado pero no cargado return 0; } } return 0; } // Devuelve el recurso pedido JLoadSave * JFS::Get(u32 id) { if (id < index.size() && index[id] && index[id]->res) { return index[id]->res->data; } return 0; } // Borra el recurso dado bool JFS::Delete(JString &_name) { // JResource *res; // bool found = false; // for (it->FirstInBranch(); !found && it->HasNext(); it->Next()) // { // res = it->Data(); // if (res->Type() != JRES_RESOURCEBLOCK && _name == res->Name()) // { // found = true; // it->RemoveNode(); // } // } // if (found) // { // return true; // } return false; } u32 JFS::AddToIndex(u32 offset, const JString &name, JResource *res) { if (!res || res->header.id > index.size()) { // ndice fuera de rango o no hay recurso return 1; } JFSIndexEntry *e = new JFSIndexEntry; e->offset = offset; e->name = name; e->res = res; if (res->header.id == index.size()) { fprintf(stderr, "\n+++ AddToIndex: Al final\n"); // caso especial, va al final y no hay que ajustar nada index.push_back(e); return 0; } fprintf(stderr, "\n+++ AddToIndex: Entre medias\n"); std::vector::iterator itt = index.begin(); itt += res->header.id; index.insert(itt, e); // Actualiza los ndices posteriores for (u32 i = res->header.id + 1; i < index.size(); ++i) { fprintf(stderr, "\n+++ AddToIndex: Actualizo el id de %d\n", i); ++index[i]->res->Header().id; } return 0; } s32 JFS::AddTreeResource(JResource *res) { // Aade el recurso al rbol. Si el nodo actual es un bloque lo hace dentro de l, tras el ltimo nodo; // si es un recurso de otro tipo, lo inserta tras l. if (it->Data()) { fprintf(stderr, "\nAddTreeResource: El nodo ya tiene datos!\n"); return -1; } it->Data(res); // Asigna el identificador if (it->node->prev) { if (it->node->prev->child) { // Si el anterior tiene hijos, el id es el prximo al ltimo de la rama JTree::Iterator *itTmp = NewIterator(it->node->prev->child); do { itTmp->LastInBranch(); } while (itTmp->Child()); res->Header().id = itTmp->node->data->Header().id + 1; // fprintf(stderr, "Asigno id de hijo del anterior %d %s\n", itTmp->node->data->Header().id + 1, index[itTmp->node->data->Header().id]->name.Str()); delete itTmp; } else { // fprintf(stderr, "Asigno id de hijo del anterior %d %s\n", it->node->prev->data->Header().id + 1, index[it->node->prev->data->Header().id]->name.Str()); res->Header().id = it->node->prev->data->Header().id + 1; } } else { res->Header().id = it->node->parent->data->Header().id + 1; } res->Header().pid = it->node->parent->data->Header().id; return 0; } s32 JFS::AddResource(const char *filename, u32 flags) { JFile importFile; if (!importFile.Open(filename, "r+b")) { perror ("No se pudo abrir el fichero a importar"); return -1; } // Aade un nuevo recurso al rbol, AddTreeResource calcula su id y su pid JResource *res = new JResource; if (0 != AddTreeResource(res)) { fprintf(stderr, "No se pudo aadir el nodo al rbol.\n"); delete res; return -2; } // Estos valores no los conoce AddTreeResource res->Header().type = JResource::TypeOf(filename); res->Header().flags = flags; // El offset es el del elemento con el id anterior u32 offset = index[res->Header().id-1]->offset + index[res->Header().id-1]->res->Size(); fprintf(stderr, "AddResource: offset anterior %d + size anterior %d + hdr size %d\n", index[res->Header().id-1]->offset, index[res->Header().id-1]->res->Size(), index[res->Header().id-1]->res->header.Size()); fprintf(stderr, "AddResource: Por tanto offset %d\n", offset); // Carga el buffer con los datos a salvar if (importFile.Size()) { u8 *buff = new u8[importFile.Size()]; if (!buff) { fprintf(stderr, "No hay memoria para importar el fichero\n"); return -3; } if (0 == importFile.Read(buff, importFile.Size())) { fprintf(stderr, "Error al leer los datos del fichero a importar\n"); delete[] buff; return -4; } if (JFS_COMPRESSED(res)) { // Los datos deben comprimirse. Hay que hacerlo en memoria pues no sabemos a priori // cunto ocuparn u32 sizeComp, size; unsigned long sizeUL, sizeCompUL; size = importFile.Size(); sizeUL = size; // Zlib header says it can be computed with compressBounds but if so, it fails to compress2. // ZLib manual says that it must be 0.1% plus 12 bytes larger 8-? sizeComp = compressBound(size); sizeCompUL = sizeComp; printf("---> sizeComp es %lu, (uLongf*)&sizeComp es %lu\n", sizeUL, *((uLongf*)&sizeUL)); unsigned char *buffComp = new unsigned char[sizeComp + 8]; if (!buffComp) { delete[] buff; return -5; } s32 ret; if (Z_OK != (ret = compress2((Bytef*)buffComp, (uLongf*)&sizeCompUL, (Bytef*)buff, sizeUL, compressionLevel))) { printf("ret=%d, Z_MEM_ERROR=%d, Z_BUF_ERROR=%d, Z_STREAM_ERROR=%d\n", ret, Z_MEM_ERROR, Z_BUF_ERROR, Z_STREAM_ERROR); delete[] buff; delete[] buffComp; return -6; } sizeComp = (u32)sizeCompUL; res->Header().size = sizeof(size) + sizeof(sizeComp) + sizeComp; // Hace crecer el fichero de recursos desde la posicin posterior al recurso actual. if (!ResizeAt(offset, res->Size())) { delete[] buff; delete[] buffComp; return -7; } // Tamao original + Tamao comprimido + datos comprimidos // Esto lo guarda en el formato que espera ZRead al cargar if (0 == resFile.WriteLE32(&size) || 0 == resFile.WriteLE32(&sizeComp) || 0 == resFile.Write(buffComp, sizeComp)) { delete[] buff; delete[] buffComp; return -8; } delete[] buffComp; } else { res->Header().size = importFile.Size(); if (!ResizeAt(offset, res->Size())) { delete[] buff; return -10; } if (0 == resFile.Write(buff, res->Header().size)) { delete[] buff; return -11; } } delete[] buff; } else { // Fichero vaco res->Header().size = 0; } // Aade la entrada nueva al ndice y ajusta las entradas por detrs AddToIndex(offset, filename, res); return 0; } s32 JFS::AddBlock(const char *name) { // Aade el recurso al rbol. Si el nodo actual es un bloque lo hace dentro de l, tras el ltimo nodo; // si es un recurso de otro tipo, lo inserta tras l. JResource *res = new JResource; if (0 != AddTreeResource(res)) { fprintf(stderr, "Error al aadir un bloque al rbol.\n"); delete res; return -1; } // Esta informacin no la conoce AddTreeBlock res->header.type = JRES_RESOURCEBLOCK; res->header.flags = JRES_FLAGS_BLOCK_OPENED; res->header.size = 0; // El offset es el del elemento con el id anterior u32 offset = index[res->header.id-1]->offset + index[res->header.id-1]->res->Size(); // Hace crecer el fichero de recursos desde la posicin posterior al recurso actual. if (!ResizeAt(offset, res->Size())) { fprintf(stderr, "Error al hacer resize!\n"); return -10; } fprintf(stderr, "Aado al ndice el bloque.\n"); // Aade la entrada nueva al ndice y ajusta las entradas por detrs AddToIndex(offset, name, res); return 0; } s32 JFS::BuildTree() { if (!index.size()) { // No hay ndice fprintf(stderr, "BuildTree: No hay un ndice cargado!\n"); return -1; } // Borra todo el rbol it->Root(); it->RemoveNode(); if (it->Data()) { delete it->Data(); it->Data(0); } // Organiza los recursos en forma de rbol u32 i; u32 pid = 0; for (i = 0; i < index.size() - 1; ++i) { it->Data(index[i]->res); pid = index[i + 1]->res->Header().pid; if (index[i]->res->Header().type == JRES_RESOURCEBLOCK && pid == index[i]->res->Header().id) { // Recurso actual es bloque y tiene hijos it->AddBranchGo(0); } else if (pid == index[i]->res->Header().pid) { // Siguiente recurso al mismo nivel que el actual it->AddNodeGo(0); } else { while (it->Parent() && it->node->data->header.pid != pid) {} it->LastInBranch(); it->AddNodeGo(0); } } it->Data(index[i]->res); return 0; } s32 JFS::Open(const char *_name, bool edit) { if (!_name || ! JFile::Exists(_name)) { // Nombre nulo o no exists el fichero return -1; } char str[4096]; getcwd(str, sizeof(str)); resFilename = str; resFilename += "/"; resFilename += _name; if (!resFile.Create(resFilename, "r+b")) { // No se pudo abrir el fichero return -2; } if (0 != Load()) { return -3; } if (it) { delete it; } it = NewIterator(); it->Data(0); return BuildTree(); } s32 JFS::Create(const char *_name) { if (!_name) { // Nombre nulo return -1; } char str[4096]; getcwd(str, sizeof(str)); resFilename = str; resFilename += "/"; resFilename += _name; if (!resFile.Create(resFilename, "w+b")) { // No se pudo abrir el fichero return -2; } if (0 != SaveHeader()) { // No se pudo salvar la cabecera return -3; } // ndice vaco inicialmente u32 indexSize = 0, indexCount = 0; if (0 == resFile.WriteLE32(&indexSize) || 0 == resFile.WriteLE32(&indexCount)) { return -4; } // Adicin manual del primer recurso root->data = new JResource; root->data->header.id = 0; root->data->header.pid = 0; root->data->header.type = JRES_RESOURCEBLOCK; root->data->header.flags = JRES_FLAGS_BLOCK_OPENED; root->data->header.size = 0; // El offset es el tamao de la cabecera u32 offset = JRES_JFS_HEADER_SIZE; // Hace crecer el fichero de recursos desde la posicin posterior al recurso actual. if (!ResizeAt(offset, root->data->Size())) { return -10; } AddToIndex(JRES_JFS_HEADER_SIZE, _name, root->data); SaveIndex(); if (it) { delete it; } it = NewIterator(); return 0; } s32 JFS::Import(const char *filename, JTree::Node *where, bool after) { static s32 depth = 0; fprintf(stderr, "Recursin %d, size es %d importo %s\n", depth, Size(), filename); char str[256]; getcwd(str, 256); printf("CWD es %s\n", str); if (!filename || resFilename == "") { return -2; } if (depth == 0) { if (it) { delete it; } // Si nos dan un nodo (se asume que es de este rbol) mueve el iterador interno a esa posicin, // si no, se posicionar el iterador al comienzo del rbol it = NewIterator(where); } printf("Depth es %d!\n", depth); if (JFile::IsDir(filename)) { if (depth == 0) { if (JFS_BLOCKOPENED(it->Data()) || it->node == root) { printf("Aado rama inicial!\n"); // Si es un bloque abierto o root if (it->Child()) { // Tiene ya elementos, inserta antes del primero it->AddNodeGo(0, false); } else { // No tiene elementos, aade uno dentro it->AddBranchGo(0); } } else { printf("Aado nodo inicial!\n"); // Bloque cerrado distinto de root o nodo, lo aade tras ste it->AddNodeGo(0, after); } } ++depth; AddBlock(filename); fprintf(stderr, "Importando directorio: %*c%s\n", it->node->depth+1, '.', filename); s32 n, k; // Si es un directorio lo importa recursivamente struct dirent64 **namelist; n = scandir64(filename, &namelist, 0, alphasort); if (n < 0) { perror("scandir"); it->Parent(); --depth; return -1; } s32 num = 0; if (n > 0) { chdir(filename); getcwd(str, 256); printf("CWD es %s\n", str); // Aade una entrada vaca para el primer elemento del directorio printf("Aado rama nueva al directorio!\n"); it->AddBranchGo(0); // index[itt->node->data->Header().id]->name.Str() k = 0; while (k < n) { if (JFile::IsFile(namelist[k]->d_name) || (JFile::IsDir(namelist[k]->d_name) && (0 != strcmp(namelist[k]->d_name, ".") && 0 != strcmp(namelist[k]->d_name, "..")))) { ++num; // Procesa recursivamente sus elementos printf("Voy a importar %s\n", namelist[k]->d_name); Import(namelist[k]->d_name); it->AddNodeGo(0); } free(namelist[k]); ++k; } printf("No hay ms elementos en %s\n", filename); // el ltimo nodo (o la rama si el directorio estaba vaco) est vaco, lo borra if (it->Data()) { printf("Horror, FALLO!!\n"); } else { it->RemoveNode(); } free(namelist); chdir(".."); getcwd(str, 256); printf("CWD es %s\n", str); } // printf("it->Parent()\n"); if (num) { // Slo pasa al padre si se importaron elementos del directorio pues si no // ya estamos en el padre tras hacer RemoveNode it->Parent(); } } else if (JFile::IsFile(filename)) { if (depth == 0) { if (JFS_BLOCKOPENED(it->Data()) || it->node == root) { printf("Aado rama!\n"); // Si es un bloque abierto o root if (it->Child()) { // Tiene ya elementos, inserta antes del primero it->AddNodeGo(0, false); } else { // No tiene elementos, aade uno dentro it->AddBranchGo(0); } } else { printf("Aado nodo!\n"); // Bloque cerrado distinto de root o nodo, lo aade tras ste it->AddNodeGo(0, after); } } ++depth; s32 ret = AddResource(filename, defaultFlags); fprintf(stderr, "Importando archivo: %s depth=%d, Addresource()=%d\n", filename, it->node->depth, ret); } if (!it->Data()) { printf("-----> Nodo vaco, lo quito!! <-----\n"); it->RemoveNode(); } --depth; if (depth == 0) { // tras la ltima entrada actualiza el ndice en disco return SaveIndex(); } return 0; } s32 JFS::Export() { JString dirName; int i = 1; // Busca un subdirectorio que no exista para exportar do { dirName.Format("export%d", i++); } while(JFile::Exists(dirName)); // char str[256]; // getcwd(str, 256); // printf("Estoy en %s\n", str); // printf("Creo %s\n", dirName.Str()); #ifndef _WIN32 if (0 != mkdir(dirName, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH)) #else if (0 != mkdir(dirName)) #endif //_WIN32 { perror("Error creating export base directory"); return -1; } chdir(dirName); // No exporta el nodo raz u32 id, lastPid; for (id = 1, lastPid = 0; id < index.size(); ++id) { // printf("Lastpid es %s, cur.pid es %s\n", index[lastPid]->name.Str(), index[index[id]->res->Header().pid]->name.Str()); while (lastPid && lastPid >= index[id]->res->Header().pid) { // Sube un directorio hasta que el padre sea el mismo que el del recurso actual // getcwd(str, 256); // printf("Estoy en %s\n", str); chdir(".."); lastPid = index[lastPid]->res->Header().pid; //getcwd(str, 256); //printf("Subo a %s\n", str); } //printf("Ahora lastpid es %s, cur.pid es %s\n", index[lastPid]->name.Str(), index[index[id]->res->Header().pid]->name.Str()); if (JFS_IS_BLOCK(index[id]->res)) { // Bloque, slo crea un directorio dirName = index[id]->name; //printf("Creo %s\n", dirName.Str()); #ifndef _WIN32 if (0 != mkdir(dirName, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH)) #else if (0 != mkdir(dirName)) #endif //_WIN32 { perror("Error creating directory"); printf("%s\n", dirName.Str()); return -1; } int ret = chdir(dirName); //getcwd(str, 256); //printf("Cambio a %s\n", str); if (ret != 0) { perror("chdir fall"); } else { // Cambio de padre lastPid = index[id]->res->Header().pid; } } else { //char str[256]; //getcwd(str, 256); //printf("Estoy en %s\n", str); //printf("Creo archivo %s size es %d\n", index[id]->name.Str(), index[id]->res->Header().size); // Abre el fichero de destino JFile f; if (!f.Open(index[id]->name, "w+b")) { return -3; } // Fichero regular (pronto tambin links... :) // Este es el mismo cdigo que para cargar un recurso resFile.Seek(index[id]->offset, SEEK_SET); if (index[id]->res->Header().size) { u8 *buff; u32 size; // Lee los datos desde el formato adecuado if (JFS_COMPRESSED(index[id]->res)) { if (0 == (size = resFile.ZRead((void **)&buff))) { fprintf(stderr, "JFS::Export - Error reading compressed resource\n"); delete[] buff; return -4; } } else { size = index[id]->res->Header().size; buff = new u8[size]; if (0 == resFile.Read(buff, size)) { fprintf(stderr, "JFS::Export - Error reading resource\n"); delete[] buff; return -5; } } // Escribe el fichero de destino if (!f.Write(buff, size)) { delete[] buff; return -6; } delete[] buff; } } } while (lastPid && lastPid > 0) { // Sube un directorio hasta que el padre sea el mismo que el del recurso actual //getcwd(str, 256); //printf("FIN: Estoy en %s\n", str); chdir(".."); lastPid = index[lastPid]->res->Header().pid; //getcwd(str, 256); //printf("FIN: Cambio a %s\n", str); } chdir(".."); //getcwd(str, 256); //printf(".. a %s\n", str); chdir(".."); //getcwd(str, 256); //printf("2 .. a %s\n", str); return 0; } const JString JFS::FilenameFromId(const char *name) { JString ret = name; ret.Lowercase(); s32 dotPos = ret.FindLast('_'); // Pone el punto de la extensin (esto no funciona en id's que provengan de archivos con espacios sin extensin) if (dotPos >= 0) { ret[dotPos] = '.'; } return ret; } const JString JFS::IdFromFilename(const char *name) { JString ret; if (prefix.Length()) { ret = prefix + "_" + name; } else { ret = name; } ret.Uppercase(); ret.Replace(' ', '_'); ret.Replace('.', '_'); ret.Replace('-', '_'); return ret; } bool JFS::ExportIndex(const char *filename) { JTextFile f; if (!f.Open(filename, "w+b")) { perror("JFS::ExportIndex"); return false; } if (!f.PrintLine(JRES_JFS_EXPORT_VERSION) || !f.PrintLine(JRES_JFS_EXPORT_WARNING) || !f.PrintLine(JRES_JFS_EXPORT_BEGIN"\n")) { perror("JFS::ExportIndex"); return false; } char str[4096]; JString exportName; s32 j = 0; for (u32 i = 0; i < index.size(); ++i) { exportName = IdFromFilename(index[i]->name.Str()); j = index[i]->res->Header().pid; while (j > 0) { exportName = IdFromFilename(index[j]->name.Str()) + ("_" + exportName); j = index[j]->res->Header().pid; } snprintf(str, sizeof(str), "#define %-40s %d", exportName.Str(), i); if (!f.PrintLine(str)) { perror("JFS::ExportIndex"); return false; } } if (!f.PrintLine("\n"JRES_JFS_EXPORT_END)) { perror("JFS::ExportIndex"); return false; } return true; } holotz-castle-1.3.14-src/JLib/JLib/Util/JApp.cpp0000600000175000001440000003001111177007633020055 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clase para gestin de una ventana grfica. * @file JApp.cpp * @author Juan Carlos Seijo Prez * @date 01/04/2003 * @version 0.0.1 - Primera versin - 01/04/2003 */ #include JApp * JApp::thisApp = 0; // Constructor JApp::JApp(const JString &strTitle, s32 w, s32 h, bool fullScr, s32 _depth, u32 otherFlags) : active(true), paused(false), endLoop(false), title(strTitle), width(w), height(h), depth(_depth), fullScreen(fullScr), doInput(true), flags(otherFlags), appPauseTime(0), keys(0), keyMods(KMOD_NONE), numKeys(0), mouseX(0), mouseY(0), mouseBt(0), mouseRelX(0), mouseRelY(0), joyAxisX(0), joyAxisY(0), joyButton(0), fps(25), dumpVideoInfo(false), soundEnabled(false), iconName(0), screen(0), joystick(0) { __OnActive = 0; __OnKeyUp = 0; __OnKeyDown = 0; __OnMouseMove = 0; __OnMouseDown = 0; __OnMouseUp = 0; __OnJoyMove = 0; __OnJoyBall = 0; __OnJoyHat = 0; __OnJoyUp = 0; __OnJoyDown = 0; __OnQuit = 0; __OnSysWM = 0; __OnResize = 0; __OnExpose = 0; __OnUser = 0; thisApp = this; } // Inicializa la aplicacin bool JApp::Init() { if (-1 == SDL_Init(SDL_INIT_EVERYTHING)) { return false; } if (dumpVideoInfo) { DumpVideoInfo(); } if (fullScreen) flags |= SDL_FULLSCREEN; // Establecemos el icono if (iconName) { JImage imgIcon; if (!imgIcon.Load(iconName)) { fprintf(stderr, "Couldn't load icon!: %s\n", iconName); } else { imgIcon.ColorKey(0, SDL_SRCCOLORKEY); SDL_WM_SetIcon(imgIcon.Surface(), 0); } } if ( (screen = SDL_SetVideoMode(width, height, depth, flags)) == 0 ) { fprintf(stderr, "Error: Couldn't set video mode %s\n", SDL_GetError()); SDL_Delay(2000); SDL_Quit(); return false; } if(SDL_NumJoysticks() > 0) { SDL_JoystickEventState(SDL_ENABLE); joystick = SDL_JoystickOpen(0); if(!joystick) { fprintf(stderr, "Warning: Joystick not initialized: %s\n", SDL_GetError()); } } else { joystick = 0; } // Initializes the font subsystem if (!JFont::Init()) { return false; } // Establecemos el ttulo SDL_WM_SetCaption(title, 0); // Activamos la repeticin de teclas SDL_EnableKeyRepeat(300, 30); // Inicializamos el array de teclas keys = SDL_GetKeyState(&numKeys); FPS(fps); return true; // Todo OK } // Comprueba los eventos bool JApp::UpdateEvents() { keys = SDL_GetKeyState(&numKeys); keyMods = SDL_GetModState(); SDL_Event e; while (SDL_PollEvent(&e)) { switch(e.type) { case SDL_ACTIVEEVENT: // Pasamos a estado de pausa switch (e.active.state) { case SDL_APPMOUSEFOCUS: //printf("Mouse focus %s!\n", e.active.gain == 0 ? "LOST" : "GAINED"); break; case SDL_APPINPUTFOCUS: //printf("Input focus %s!\n", e.active.gain == 0 ? "LOST" : "GAINED"); break; case SDL_APPACTIVE: // Pausa o reanuda la aplicacin e.active.gain == 0 ? Pause(true) : Pause(false); break; } if (__OnActive) { __OnActive(e.active.gain != 0, (s32)e.active.state); } else { /**< @todo Averiguar por qu da problemas. */ //active = (e.active.gain != 1); } break; case SDL_KEYDOWN: // Actualiza el estado del teclado keys = SDL_GetKeyState(&numKeys); keyMods = SDL_GetModState(); if (__OnKeyDown) { __OnKeyDown(e.key.keysym); } break; case SDL_KEYUP: // Actualiza el estado del teclado keys = SDL_GetKeyState(&numKeys); keyMods = SDL_GetModState(); if (__OnKeyUp) { __OnKeyUp(e.key.keysym); } break; case SDL_MOUSEMOTION: // Actualiza el estado del ratn SDL_GetMouseState(&mouseX, &mouseY); SDL_GetRelativeMouseState(&mouseRelX, &mouseRelY); if (__OnMouseMove) { __OnMouseMove(e.motion.x, e.motion.y, e.motion.state, e.motion.xrel, e.motion.yrel); } break; case SDL_MOUSEBUTTONDOWN: // Actualiza el estado de los botones del ratn mouseBt = SDL_GetMouseState(&mouseX, &mouseY); if (__OnMouseDown) { __OnMouseDown(e.button.button, e.button.x, e.button.y); } break; case SDL_MOUSEBUTTONUP: // Actualiza el estado de los botones del ratn mouseBt = SDL_GetMouseState(&mouseX, &mouseY); if (__OnMouseUp) { __OnMouseUp(e.button.button, e.button.x, e.button.y); } break; case SDL_JOYAXISMOTION: switch(e.jaxis.axis) { case 0: joyAxisX = e.jaxis.value; break; case 1: joyAxisY = e.jaxis.value; break; default: break; } if (__OnJoyMove) { __OnJoyMove(e.jaxis.which, e.jaxis.axis, e.jaxis.value); } break; case SDL_JOYBALLMOTION: if (__OnJoyBall) { __OnJoyBall(e.jball.which, e.jball.ball, e.jball.xrel, e.jball.yrel); } break; case SDL_JOYHATMOTION: if (__OnJoyHat) { __OnJoyHat(e.jhat.which, e.jhat.hat, e.jhat.value); } break; case SDL_JOYBUTTONDOWN: joyButton = 1; if (__OnJoyDown) { __OnJoyDown(e.jbutton.which, e.jbutton.button); } break; case SDL_JOYBUTTONUP: joyButton = 0; if (__OnJoyUp) { __OnJoyUp(e.jbutton.which, e.jbutton.button); } break; case SDL_QUIT: if (__OnQuit) { __OnQuit(); } Exit(); break; case SDL_SYSWMEVENT: if (__OnSysWM) { __OnSysWM(); } break; case SDL_VIDEORESIZE: if (__OnResize) { __OnResize(e.resize.w, e.resize.h); } else { Resize(e.resize.w, e.resize.h, fullScreen); } break; case SDL_VIDEOEXPOSE: if (__OnExpose) { __OnExpose(); } break; case SDL_USEREVENT: if (__OnUser) { __OnUser(e.user.code, e.user.data1, e.user.data2); } break; default: break; } } return true; } // Bucle principal s32 JApp::MainLoop() { while (!endLoop) { UpdateEvents(); if (active) { if (timer.Changed()) { if (Update()) { Draw(); } else { printf("Error updating the app.\n"); } } } else { sleep(1); } } return 0; } // Pausa la aplicacin. Devuelve los ms que lleva en pausa (false) o // los transcurridos desde el inicio de la aplicacin (true). u32 JApp::Pause(bool doPause) { paused = doPause; if (paused) { appPauseTime = SDL_GetTicks(); } else { appPauseTime = SDL_GetTicks() - appPauseTime; } return appPauseTime; } // Cambia el tamao de la ventana void JApp::Resize(s32 w, s32 h, bool _fullScreen) { if ((fullScreen = _fullScreen)) flags |= SDL_FULLSCREEN; else flags &= ~SDL_FULLSCREEN; SDL_Surface *surf; surf = SDL_SetVideoMode(w, h, depth, flags); if (surf) { screen = surf; width = w; height = h; } } void JApp::FPS(s32 newFPS) { fps = newFPS; if (fps < 0) { fps = 25; } timer.Start(1000/fps); } int JApp::ParseArg(char *args[], int argc) { if (args[0][0]!='-') return -1; // error switch (args[0][1]) { // '-f' Fullscreen case 'f': flags |= SDL_FULLSCREEN; return 0; // no arguments used // '-w' En ventana case 'w': flags &= ~SDL_FULLSCREEN; return 0; // no arguments used // '-i' Muestra informacin del video case 'i': dumpVideoInfo = true; return 0; // no arguments used // '-m' Modo grfico/tamao de ventana case 'm': { s32 w, h, bpp; if (3 ==sscanf(args[0] + 2, "%d%*c%d%*c%d", &w, &h, &bpp)) { if (w > 0 && h > 0 && bpp > 0) { width = w; height = h; depth = bpp; } } } return 0; // no arguments used case '-': { switch (*(args[0] + 2)) { case 'f': if (strcmp((args[0] + 2), "fps") == 0) { if (argc<1) // I need at least 1 more argument return -2; fps = atoi(args[1]); } return 1; // 1 argument used } } } return -1; // error } void JApp::PrintUsage(char *program) { fprintf(stderr, "JApp v1.0. (C) Juan Carlos Seijo Prez / 2002-2004.\n\n"); fprintf(stderr, "Usage: %s [-f]ullscreen [-w]indowed [--fps nnn] [-mWxHxBPP] [-i]nfo_of_video\n", program); fprintf(stderr, "\n"); exit(0); } void JApp::ParseArgs(s32 argc, char **argv) { s32 i = 0; while (++i < argc) { switch (*argv[i]) { case '-': switch (*(argv[i] + 1)) { // '-h' opcin: ayuda case 'h': PrintUsage(argv[0]); break; default: // TODO: Preguntar a Miriam // int n = ParseArg(argv+i, argc-2); int n = ParseArg(argv+i, argc-i); if (n>=0) i += n; else if (n==-1) fprintf(stderr, "Unknown option: %s. Use -h to get help.\n", argv[i]); else if (n==-2) fprintf(stderr, "Not enough arguments to option: %s. Use -h to get help.\n", argv[i]); else if (n<0) fprintf(stderr, "Error in option option %s. Use -h to get help.\n", argv[i]); break; } break; default: // treats it as the file name to load int n = ParseArg(argv+i, argc-i); if (n>=0) i += n; else if (n<0) fprintf(stderr, "Error in parameter: %s. Use -h to get help.\n", argv[i]); break; } } } void JApp::DumpVideoInfo() { const SDL_VideoInfo *vi = VideoInfo(); fprintf(stdout, "hw_available: %s\n", vi->hw_available ? "yes" : "no"); fprintf(stdout, "wm_available: %s\n", vi->wm_available ? "yes" : "no"); fprintf(stdout, " blit_hw: %s\n", vi->blit_hw ? "yes" : "no"); fprintf(stdout, " blit_hw_CC: %s\n", vi->blit_hw_CC ? "yes" : "no"); fprintf(stdout, " blit_hw_A: %s\n", vi->blit_hw_A ? "yes" : "no"); fprintf(stdout, " blit_sw: %s\n", vi->blit_sw ? "yes" : "no"); fprintf(stdout, " blit_sw_CC: %s\n", vi->blit_sw_CC ? "yes" : "no"); fprintf(stdout, " blit_sw_A: %s\n", vi->blit_sw_A ? "yes" : "no"); fprintf(stdout, " blit_fill: %s\n", vi->blit_fill ? "yes" : "no"); fprintf(stdout, "video memory: %d\n\n", vi->video_mem); fprintf(stdout, "Current pixel format:\n"); fprintf(stdout, " BitsPerPixel: %d\n", vi->vfmt->BitsPerPixel); fprintf(stdout, "BytesPerPixel: %d\n", vi->vfmt->BytesPerPixel); fprintf(stdout, " RGBAmask: R: 0x%08x G: 0x%08x B: 0x%08x A: 0x%08x\n", vi->vfmt->Rmask, vi->vfmt->Gmask, vi->vfmt->Bmask, vi->vfmt->Amask); fprintf(stdout, " RGBAshift: R: 0x%08x G: 0x%08x B: 0x%08x A: 0x%08x\n", vi->vfmt->Rshift, vi->vfmt->Gshift, vi->vfmt->Bshift, vi->vfmt->Ashift); fprintf(stdout, " RGBAloss: R: 0x%08x G: 0x%08x B: 0x%08x A: 0x%08x\n", vi->vfmt->Rloss, vi->vfmt->Gloss, vi->vfmt->Bloss, vi->vfmt->Aloss); fprintf(stdout, " ColorKey: 0x%08x\n", vi->vfmt->colorkey); fprintf(stdout, " Alpha: 0x%02x\n", vi->vfmt->alpha); } void JApp::Icon(const char *filename) { free(iconName); if (filename) { iconName = strdup(filename); } } void JApp::Destroy() { free(iconName); } JApp::~JApp() { Destroy(); SDL_Quit(); } holotz-castle-1.3.14-src/JLib/JLib/Util/JRW.h0000644000175000001440000002745511177007633017364 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** SDL_RWops wrapper. * @file JRW.h * @author Juan Carlos Seijo Prez * @date 23/Mar/2005 * @version 0.0.1 - 23/03/2005 - First version. */ #ifndef _JRW_INCLUDED #define _JRW_INCLUDED #include #include #include #include #include /** Encapsulates a SDL_RWops object. It's a simple wrapper. */ class JRW : public JObject { public: SDL_RWops *rwops; /**< Pointer to the SDL_RWops object. */ /** Creates an empty object. One of the Create methods must be called in order to use it. */ JRW() : rwops(0) {} /** Creates (and destroys any existing) SDL_RWops structure to access a file. * @param file Name of the file. * @param mode Open mode (as fopen() of stdio.h) * @return true if it succeeds, false if not. */ bool Create(const char *file, const char *mode) { Destroy(); return (0 != (rwops = SDL_RWFromFile(file, mode))); } /** Creates (and destroys any existing) SDL_RWops structure to access a file. * @param fp File pointer. * @param autoclose Close flag when destroyed. * @return true if it succeeds, false if not. */ bool Create(FILE *fp, int autoclose = 0) { Destroy(); return (0 != (rwops = SDL_RWFromFP(fp, autoclose))); } /** Creates (and destroys any existing) SDL_RWops structure to access a memory block. * @param mem Pointer to the memory block. * @param size Size in bytes of the block. * @return true if it succeeds, false if not. */ bool Create(void *mem, int size) { Destroy(); return (0 != (rwops = SDL_RWFromMem(mem, size))); } /** Creates (and destroys any existing) SDL_RWops structure to access a memory block. * @param mem Pointer to the memory block. * @param size Size in bytes of the block. * @return true if it succeeds, false if not. */ bool Create(const void *mem, int size) { Destroy(); return (0 != (rwops = SDL_RWFromConstMem(mem, size))); } /** Destroys the object and frees the allocated resources. */ void Destroy() { if (rwops) { SDL_RWclose(rwops); rwops = 0; } } /** Destroys the object. */ virtual ~JRW() { Destroy(); } /** Seeks to the given offset. * @param offset Bytes to seek. * @param whence Position from where to start counting (SEEK_SET, SEEK_CUR, SEEK_END) * @return Reached offset (note that could be less than the requested one). */ s32 Seek(s32 offset, s32 whence) {return SDL_RWseek(rwops, offset, whence);} /** Reurns the given position. * @return Position (offset) from the beginning of the object. */ s32 Tell() {return SDL_RWtell(rwops);} /** Reads data. * @param ptr Read destination. * @param size Number of bytes to read. * @param maxnum Number of times to read size bytes (by default 1) * @return Number of read objects or -1 if failed. */ s32 Read(void *ptr, int size, int maxnum = 1) {return SDL_RWread(rwops, ptr, size, maxnum);} /** Reads from the source to the given pointer, uncompressing the data. The first 4 bytes read are * the uncompressed size. The next 4 bytes are the compressed size to read. Then comes the compressed data. * @param buff Buffer to fill with the read data uncompressed. * @return Uncompressed size of the data. */ u32 ZRead(void **buff); /** Reads a bool data. The bool is stored as a single byte. * @param buff Variable with the result. * @return Number of bytes read or 0 (zero) if an error occured. */ u32 ReadBool(bool *buff) {u8 b; if (0 < SDL_RWread(rwops, &b, 1, 1)) {*buff = (b != 0) ? true:false; return 1;} return 0;} /** Reads a bool data. The bool is stored as a single byte. * @param buff Variable with the result. * @return Number of bytes read or 0 (zero) if an error occured. */ u32 Read8(u8 *buff) {if (0 < SDL_RWread(rwops, buff, 1, 1)) return 1; return 0;} /** Reads a bool data. The bool is stored as a single byte. * @param buff Variable with the result. * @return Number of bytes read or 0 (zero) if an error occured. */ u32 Read8(s8 *buff) {if (0 < SDL_RWread(rwops, buff, 1, 1)) return 1; return 0;} /** Reads a 16-bit unsigned data in little-endian format. * @param buff Variable with the result in the machine weight. * @return Number of bytes read or 0 (zero) if an error occured. */ u32 ReadLE16(u16 *buff) {if (0 < SDL_RWread(rwops, buff, 2, 1)) {*buff = SDL_SwapLE16(*buff); return 2;} return 0;} /** Reads a 16-bit signed data in little-endian format. * @param buff Variable with the result in the machine weight. * @return Number of bytes read or 0 (zero) if an error occured. */ u32 ReadLE16(s16 *buff) {if (0 < SDL_RWread(rwops, buff, 2, 1)) {*buff = SDL_SwapLE16(*buff); return 2;} return 0;} /** Reads a 16-bit unsigned data in big-endian format. * @param buff Variable with the result in the machine weight. * @return Number of bytes read or 0 (zero) if an error occured. */ u32 ReadBE16(u16 *buff) {if (0 < SDL_RWread(rwops, buff, 2, 1)) {*buff = SDL_SwapBE16(*buff); return 2;} return 0;} /** Reads a 16-bit signed data in big-endian format. * @param buff Variable with the result in the machine weight. * @return Number of bytes read or 0 (zero) if an error occured. */ u32 ReadBE16(s16 *buff) {if (0 < SDL_RWread(rwops, buff, 2, 1)) {*buff = SDL_SwapBE16(*buff); return 2;} return 0;} /** Reads a 32-bit unsigned data in little-endian format. * @param buff Variable with the result in the machine weight. * @return Number of bytes read or 0 (zero) if an error occured. */ u32 ReadLE32(u32 *buff) {if (0 < SDL_RWread(rwops, buff, 4, 1)) {*buff = SDL_SwapLE32(*buff); return 4;} return 0;} /** Reads a 32-bit signed data in little- endian format. * @param buff Variable with the result in the machine weight. * @return Number of bytes read or 0 (zero) if an error occured. */ u32 ReadLE32(s32 *buff) {if (0 < SDL_RWread(rwops, buff, 4, 1)) {*buff = SDL_SwapLE32(*buff); return 4;} return 0;} /** Reads a 32-bit unsigned data in big-endian format. * @param buff Variable with the result in the machine weight. * @return Number of bytes read or 0 (zero) if an error occured. */ u32 ReadBE32(u32 *buff) {if (0 < SDL_RWread(rwops, buff, 4, 1)) {*buff = SDL_SwapBE32(*buff); return 4;} return 0;} /** Reads a 32-bit signed data in big-endian format. * @param buff Variable with the result in the machine weight. * @return Number of bytes read or 0 (zero) if an error occured. */ u32 ReadBE32(s32 *buff) {if (0 < SDL_RWread(rwops, buff, 4, 1)) {*buff = SDL_SwapBE32(*buff); return 4;} return 0;} /** Imports from a file. * @param filename Name of the file to import. * @return Number of bytes imported or 0 (zero) if an error occured. */ u32 Import(const char *filename); /** Writes data to the source. * @param ptr Pointer to the data to be written. * @param size Number of bytes to write. * @param maxnum Number of times to write size bytes (1 by default) * @return maxnum or -1 if failed. */ s32 Write(const void *ptr, int size, int maxnum = 1) {return SDL_RWwrite(rwops, ptr, size, maxnum);} /** Writes in the file, compressing the data. The format is: * [size uncompressed][size compressed][compressed data]. * @param buff Pointer to the data to be written compressed. * @param size Size in bytes of the data to write. * @param level Compression level, from 1 (less compression) to 9 (best compression). * @return Number of bytes written or 0 if an error occured. */ u32 ZWrite(const void *buff, u32 size, s32 level); /** Writes a bool data. The bool is stored as a single byte. * @param buff Variable with the data. * @return Number of bytes written or 0 (zero) if an error occured. */ u32 WriteBool(bool *buff) {u8 b = (*buff)? 1 : 0; return SDL_RWwrite(rwops, &b, 1, 1);} /** Writes a byte. * @param buff Variable with the data. * @return Number of bytes written or 0 (zero) if an error occured. */ u32 Write8(u8 *buff) {return SDL_RWwrite(rwops, buff, 1, 1);} /** Writes a byte. * @param buff Variable with the data. * @return Number of bytes written or 0 (zero) if an error occured. */ u32 Write8(s8 *buff) {return SDL_RWwrite(rwops, buff, 1, 1);} /** Writes a 16-bit unsigned data in little-endian format. * @param buff Variable with the data in the machine weight. * @return Number of bytes written or 0 (zero) if an error occured. */ u32 WriteLE16(u16 *buff) {u16 v = SDL_SwapLE16(*buff); return SDL_RWwrite(rwops, &v, 2, 1);} /** Writes a 16-bit signed data in little-endian format. * @param buff Variable with the data in the machine weight. * @return Number of bytes written or 0 (zero) if an error occured. */ u32 WriteLE16(s16 *buff) {s16 v = SDL_SwapLE16(*buff); return SDL_RWwrite(rwops, &v, 2, 1);} /** Writes a 16-bit unsigned data in big-endian format. * @param buff Variable with the data in the machine weight. * @return Number of bytes written or 0 (zero) if an error occured. */ u32 WriteBE16(u16 *buff) {u16 v = SDL_SwapBE16(*buff); return SDL_RWwrite(rwops, &v, 2, 1);} /** Writes a 16-bit signed data in big-endian format. * @param buff Variable with the data in the machine weight. * @return Number of bytes written or 0 (zero) if an error occured. */ u32 WriteBE16(s16 *buff) {s16 v = SDL_SwapBE16(*buff); return SDL_RWwrite(rwops, &v, 2, 1);} /** Writes a 32-bit unsigned data in little-endian format. * @param buff Variable with the data in the machine weight. * @return Number of bytes written or 0 (zero) if an error occured. */ u32 WriteLE32(u32 *buff) {u32 v = SDL_SwapLE32(*buff); return SDL_RWwrite(rwops, &v, 4, 1);} /** Writes a 32-bit signed data in little-endian format. * @param buff Variable with the data in the machine weight. * @return Number of bytes written or 0 (zero) if an error occured. */ u32 WriteLE32(s32 *buff) {s32 v = SDL_SwapLE32(*buff); return SDL_RWwrite(rwops, &v, 4, 1);} /** Writes a 32-bit unsigned data in big-endian format. * @param buff Variable with the data in the machine weight. * @return Number of bytes written or 0 (zero) if an error occured. */ u32 WriteBE32(u32 *buff) {u32 v = SDL_SwapBE32(*buff); return SDL_RWwrite(rwops, &v, 4, 1);} /** Writes a 32-bit signed data in big-endian format. * @param buff Variable with the data in the machine weight. * @return Number of bytes written or 0 (zero) if an error occured. */ u32 WriteBE32(s32 *buff) {s32 v = SDL_SwapBE32(*buff); return SDL_RWwrite(rwops, &v, 4, 1);} /** Export to file. * @param filename Name of the file to export to. * @param size Size of the data to export. * @return Number of bytes written, 0 (zero) if an error occured. */ u32 Export(const char *filename, u32 size); /** Close the file. Only for a JRW created from a file. */ s32 Close() {s32 ret = SDL_RWclose(rwops); rwops = 0; return ret;} }; #endif // _JRW_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JTypes.h0000600000175000001440000001164611177007633020123 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** JLib's types definition file. * @file JTypes.h * @author Juan Carlos Seijo Prez * @date 01/04/2003 * @version 0.0.1 - 01/04/2003 - First version. */ #ifndef _JTYPES_INCLUDED #define _JTYPES_INCLUDED #include #ifdef _WIN32 /** Macro para los tipos de 64 bits en constante para windows. */ #define S64(X) X##i64 /** Macro para los tipos de 64 bits en constante para windows. */ #define U64(X) X##ui64 #else /** Macro para los tipos de 64 bits en constante para no-windows. */ #define S64(X) X##LL /** Macro para los tipos de 64 bits en constante para no-windows. */ #define U64(X) X##ULL #endif typedef char s8; typedef unsigned char u8; typedef short s16; typedef unsigned short u16; typedef int s32; typedef unsigned int u32; #ifdef _WIN32 typedef __int64 s64; typedef unsigned __int64 u64; #else typedef long long int s64; typedef unsigned long long int u64; #endif #define S8_MIN ((s8)(0x80)) #define S8_MAX ((s8)(0x7F)) #define U8_MIN ((u8)(0x00)) #define U8_MAX ((u8)(0xFF)) #define S16_MIN ((s16)(0x8000)) #define S16_MAX ((s16)(0x7FFF)) #define U16_MIN ((u16)(0x0000)) #define U16_MAX ((u16)(0xFFFF)) #define S32_MIN ((s32)(0x80000000)) #define S32_MAX ((s32)(0x7FFFFFFF)) #define U32_MIN ((u32)(0x00000000)) #define U32_MAX ((u32)(0xFFFFFFFF)) #define S64_MIN (S64(0x8000000000000000)) #define S64_MAX (S64(0x7FFFFFFFFFFFFFFF)) #define U64_MIN (U64(0x0000000000000000)) #define U64_MAX (U64(0xFFFFFFFFFFFFFFFF)) // Casts to and from void * avoiding compiler warnings // This is absolutely tricky and a different approach should be used if possible // It's intended to be used when you want to pass a void* that contain a value instead // of and address (i.e. as parameter of callback functions that accept a void* as additional data). // Be aware of the fact that YOU CAN ONLY USE THE MACROS WITH A NUMBER LOWER OR EQUAL TO THE // BITS OF THE UNDERLYING ARCHITECTURE YOU COMPILE FOR. That is, if you intend to compile only for a 32-bits // architecture, you can use all of them. If your target architecture is 16-bit based, you could only // use the 8bit and 16bit macros listed here, and using any of the 32-bit macros in this case could // translate in a segmentation fault during execution. Notice that he 'double' and 'long' types are normally // twice the size of the architecture #define JCAST_8_TO_VOIDPTR(val) ((void *)size_t(*((u8 *)&(val)))) #define JCAST_16_TO_VOIDPTR(val) ((void *)size_t(*((u16 *)&(val)))) #define JCAST_32_TO_VOIDPTR(val) ((void *)size_t(*((u32 *)&(val)))) #define JCAST_64_TO_VOIDPTR(val) ((void *)size_t(*((u64 *)&(val)))) #define JCAST_S8_TO_VOIDPTR(val) JCAST_8_TO_VOIDPTR((val)) #define JCAST_U8_TO_VOIDPTR(val) JCAST_8_TO_VOIDPTR((val)) #define JCAST_S16_TO_VOIDPTR(val) JCAST_16_TO_VOIDPTR((val)) #define JCAST_U16_TO_VOIDPTR(val) JCAST_16_TO_VOIDPTR((val)) #define JCAST_S32_TO_VOIDPTR(val) JCAST_32_TO_VOIDPTR((val)) #define JCAST_U32_TO_VOIDPTR(val) JCAST_32_TO_VOIDPTR((val)) #define JCAST_FLOAT_TO_VOIDPTR(val) JCAST_32_TO_VOIDPTR((val)) #define JCAST_S64_TO_VOIDPTR(val) JCAST_64_TO_VOIDPTR((val)) #define JCAST_U64_TO_VOIDPTR(val) JCAST_64_TO_VOIDPTR((val)) #define JCAST_DOUBLE_TO_VOIDPTR(val) JCAST_64_TO_VOIDPTR((val)) #define JCAST_VOIDPTR_TO_TYPE(p, type) (*((type *)&(p))) #define JCAST_VOIDPTR_TO_S8(p) JCAST_VOIDPTR_TO_TYPE(p, s8) #define JCAST_VOIDPTR_TO_U8(p) JCAST_VOIDPTR_TO_TYPE(p, u8) #define JCAST_VOIDPTR_TO_S16(p) JCAST_VOIDPTR_TO_TYPE(p, s16) #define JCAST_VOIDPTR_TO_U16(p) JCAST_VOIDPTR_TO_TYPE(p, u16) #define JCAST_VOIDPTR_TO_S32(p) JCAST_VOIDPTR_TO_TYPE(p, s32) #define JCAST_VOIDPTR_TO_U32(p) JCAST_VOIDPTR_TO_TYPE(p, u32) #define JCAST_VOIDPTR_TO_S64(p) JCAST_VOIDPTR_TO_TYPE(p, s64) #define JCAST_VOIDPTR_TO_U64(p) JCAST_VOIDPTR_TO_TYPE(p, u64) #define JCAST_VOIDPTR_TO_FLOAT(p) JCAST_VOIDPTR_TO_TYPE(p, float) #define JCAST_VOIDPTR_TO_DOUBLE(p) JCAST_VOIDPTR_TO_TYPE(p, double) #endif // _JTYPES_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JString.h0000600000175000001440000005226111177007633020263 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Text string class. * @file JString.h * @author Juan Carlos Seijo Prez * @date 19/04/2003 * @version 0.0.1 - 19/04/2003 - First version. */ #ifndef _JSTRING_INCLUDED #define _JSTRING_INCLUDED #include #include #include #include #include #include class JString : public JLoadSave { friend bool operator==(const char *s1, const JString& s2); friend bool operator==(const JString& s1, const char *s2); friend bool operator!=(const char *s1, const JString& s2); friend bool operator!=(const JString& s1, const char *s2); friend bool operator>(const char *s1, const JString& s2); friend bool operator<(const char *s1, const JString& s2); friend bool operator>=(const char *s1, const JString& s2); friend bool operator<=(const char *s1, const JString& s2); //friend const JString operator+(const char *s1, const JString &s2); friend const JString operator+(const JString &s1, const char *s2); friend const JString operator+(const JString &s1, const JString &s2); protected: char *data; // Caracteres u32 length; // Longitud public: /** Creates an empty string. */ inline JString(); /** Creates a string that is a copy of the given string. * @param s String to be copied. */ inline JString(const char *s); /** Creates a string from a substring of the given string. * @param s String. * @param start Start of the substring. * @param end Of the substring, -1 for the string length. */ inline JString(const JString& s, u32 start, u32 end = (u32)-1); /** Creates a string from a substring of the given string. * @param s String. * @param start Start of the substring. * @param end Of the substring, -1 for the string length. */ inline JString(const char *s, u32 start, u32 end = (u32)-1); /** Creates a string that is a copy of the given string. * @param s String to be copied. */ inline JString(const JString& s); /** Destroys this string and frees the allocated resources. */ inline virtual ~JString(); /** Clears the string. */ inline void Clear(); /** Compares this string to another one. * @param s Another string. * @return true if they are equal, false otherwise. */ inline bool Equals(const JString& s) const; /** Compares this string to another one. * @param s Another string. * @return true if they are equal, false otherwise. */ inline bool operator==(const JString& s) const; /** Compares this string to another one. * @param s Another string. * @return 0 i they are equal, >0 if this string is ASCII-greater than the given, <0 if its ASCII-lower. */ inline s32 CompareTo(const JString& s) const; /** Compares this string to another one. * @param s Another string. * @return 0 i they are equal, >0 if this string is ASCII-greater than the given, <0 if its ASCII-lower. */ inline s32 CompareTo(const char *s) const; /** Test if this string is ASCII-greater than another. * @param s Another string. * @return true if so, false otherwise. */ inline bool operator>(const JString& s) const; /** Test if this string is ASCII-lower than another. * @param s Another string. * @return true if so, false otherwise. */ inline bool operator<(const JString& s) const; /** Test if this string is ASCII-greater or equal than another. * @param s Another string. * @return true if so, false otherwise. */ inline bool operator>=(const JString& s) const; /** Test if this string is ASCII-lower or equal than another. * @param s Another string. * @return true if so, false otherwise. */ inline bool operator<=(const JString& s) const; /** Compares this string to another one. * @param s Another string. * @return true if they are different, false otherwise. */ inline bool operator!=(const JString& s) const; /** Returns the char at the given pos. * @param pos Index of the character to be retrieved. */ inline char& operator[](s32 pos); /** Assigns a copy of the given string to this one. * @param s Another string. */ inline void operator=(const char *s); /** Assigns a copy of the given string to this one. * @param s Another string. */ inline void operator=(const JString &s); /** Returns the internal character array. * @return internal character array. */ inline const char* Str() const; /** Appends the given string to this one. * @param s Another string. */ inline void Append(const JString& s); /** Appends the given string to this one. * @param s Another string. */ inline void Append(const char * s); /** Appends the given string to this one. * @param s Another string. */ inline void operator+=(const JString& s); /** Appends the given string to this one. * @param s Another string. */ inline void operator+=(const char *s); /** Appends the given char to this string. * @param c Character to append. */ inline void Append(char c); /** Appends the given char to this string. * @param c Character to append. */ inline void operator+=(char c); /** Creates a string from a format string (as printf uses). * @param fmt Format string. * @param ... Format parameters. * @return true if it could be formatted, false otherwise. */ inline bool Format(const char *fmt, ...); /** Converts this string to uppercase. */ inline void Uppercase(); /** Converts this string to lowercase. */ inline void Lowercase(); /** Searchs for the given character from the given position within the string. * @param c Character to be found. * @param from Index within the string where to start the search (inclusive). * @return index of the character searched or -1 if it wasn't found. */ inline s32 Find(char c, u32 from = 0); /** Searchs for the last index of the given character from the given position within the string. * @param c Character to be found. * @param from Index within the string where to start the search (inclusive). * @return index of the character searched or -1 if it wasn't found. */ inline s32 FindLast(char c, u32 from = 0); /** Searchs for the index of the given string from the given position within this string. * @param str String to be found. * @param from Index within the string where to start the search (inclusive). * @return index of the character searched or -1 if it wasn't found. */ inline s32 Find(const char *str, u32 from = 0); /** Searchs for the last index of the given string from the given position within this string. * @param str String to be found. * @param from Index within the string where to start the search (inclusive). * @return index of the character searched or -1 if it wasn't found. */ inline s32 FindLast(const char *str, u32 from = 0); /** Replaces pat with rep from the given index, max number of times within this string. * @param pat Character to look for. * @param rep Character to replace pat with. * @param from Start index within the string where to start the search (inclusive). * @param max Maximum number of replacements to be made. * @return Number of replacements doen. */ inline s32 Replace(const char pat, const char rep, u32 from = 0, u32 max = 0); /** Replaces pat with rep from the given index, max number of times within this string. * @param pat String pattern to look for. * @param rep String replacement to replace pat with. * @param from Start index within the string where to start the search (inclusive). * @param max Maximum number of replacements to be made. * @return Number of replacements doen. */ inline s32 Replace(const char *pat, const char *rep, u32 from = 0, u32 max = 0); /** Returns a string that is a substring of this string. * @param start Substring start position. * @param end Substring end position. * @return Substring. */ inline const JString Substring(u32 start, u32 end = (u32)-1); /** Cast to const char * type. * @return const char * string. */ inline operator const char *() const {return data;} // Cast a cadena /** Returns the length of this string. * @return Length of this string. */ inline u32 Length() const {return length;} // Devuelve la longitud // Lee la cadena de un fichero (longitud + cadena) /** Reads a string from a JRW object (length in four bytes + characters) * @param f JRW object. * @return 0 if succeeded, 1 if I/O error, 2 if data integrity error. */ inline u32 Load(JRW &f); // Escribe la cadena a un fichero (longitud + cadena) /** Writes a string to a JRW object (length in four bytes + characters) * @param f JRW object. * @return 0 if succeeded, 1 if I/O error, 2 if data integrity error. */ inline u32 Save(JRW &f); }; /** Test the equality of two strings. * @param s1 First string. * @param s1 Second string. * @return true if they are equal, false otherwise. */ inline bool operator==(const char *s1, const JString& s2) { return (strcmp(s1, s2.data) == 0); } /** Test the equality of two strings. * @param s1 First string. * @param s1 Second string. * @return true if they are equal, false otherwise. */ inline bool operator==(const JString& s1, const char *s2) { return (strcmp(s1.data, s2) == 0); } /** Test if the given strings are different. * @param s1 First string. * @param s1 Second string. * @return true if so, false otherwise. */ inline bool operator!=(const char *s1, const JString& s2) { return (strcmp(s1, s2.data) != 0); } /** Test if the given strings are different. * @param s1 First string. * @param s1 Second string. * @return true if so, false otherwise. */ inline bool operator!=(const JString& s1, const char *s2) { return (strcmp(s1.data, s2) != 0); } /** Test if the first string is ASCII-greater than the second. * @param s1 First string. * @param s1 Second string. * @return true if so, false otherwise. */ inline bool operator>(const char *s1, const JString& s2) { return (strcmp(s1, s2.data) > 0); } /** Test if the first string is ASCII-lower than the second. * @param s1 First string. * @param s1 Second string. * @return true if so, false otherwise. */ inline bool operator<(const char *s1, const JString& s2) { return (strcmp(s1, s2.data) < 0); } /** Test if the first string is ASCII-greater or equal than the second. * @param s1 First string. * @param s1 Second string. * @return true if so, false otherwise. */ inline bool operator>=(const char *s1, const JString& s2) { return (strcmp(s1, s2.data) >= 0); } /** Test if the first string is ASCII-lower or equal than the second. * @param s1 First string. * @param s1 Second string. * @return true if so, false otherwise. */ inline bool operator<=(const char *s1, const JString& s2) { return (strcmp(s1, s2.data) <= 0); } // Constructor JString::JString() : length(0) { data = new char[1]; data [0] = '\0'; } // Constructor JString::JString(const char *s) { if (s) { length = (u32)strlen(s); data = new char[length + 1]; strcpy(data, s); } else { data = new char[1]; data [0] = '\0'; length = 0; } } // Constructor de subcadena inline JString::JString(const JString& s, u32 start, u32 end) { if (end == (u32)-1) end = s.Length(); if (start >= 0 && start < s.Length() && end > start && end <= s.Length()) { length = end - start; data = new char[length + 1]; strncpy(data, s.data + start, length); data[length] = '\0'; } else { data = new char[1]; data [0] = '\0'; length = 0; } } // Constructor de subcadena inline JString::JString(const char *s, u32 start, u32 end) { if (s) { u32 len = (u32)strlen(s); if (end == (u32)-1) end = len; if (start >= 0 && start < len && end > start && end <= len) { length = end - start; data = new char[length + 1]; strncpy(data, s + start, length); data[length] = '\0'; } else { data = new char[1]; data [0] = '\0'; length = 0; } } else { data = new char[1]; data [0] = '\0'; length = 0; } } // Constructor copia JString::JString(const JString &s) { length = s.length; data = new char[length + 1]; strcpy(data, s.data); } // Destructor JString::~JString() { delete[] data; } // Borra la cadena inline void JString::Clear() { delete[] data; data = new char[1]; // La cadena no tiene estado 'nulo', como mucho estar vaca data [0] = '\0'; length = 0; } // Son iguales? inline bool JString::Equals(const JString& s) const { return (strcmp(data, s.data) == 0); } // Son iguales? inline bool JString::operator==(const JString& s) const { return (strcmp(data, s.data) == 0); } // Comparacin de cadenas inline s32 JString::CompareTo(const JString &s) const { return (strcmp(data, s.data)); } // Comparacin de cadenas inline s32 JString::CompareTo(const char *s) const { return (strcmp(data, s)); } // Es la primera mayor? inline bool JString::operator>(const JString& s) const { return (strcmp(data, s.data) > 0); } // Es la primera menor? inline bool JString::operator<(const JString& s) const { return (strcmp(data, s.data) < 0); } // Es la primera mayor o igual? inline bool JString::operator>=(const JString& s) const { return (strcmp(data, s.data) >= 0); } // Es la primera menor o igual? inline bool JString::operator<=(const JString& s) const { return (strcmp(data, s.data) <= 0); } // Son diferentes? inline bool JString::operator!=(const JString& s) const { return (strcmp(data, s.data) != 0); } // Devuelve el caracter en la posicin dada inline char& JString::operator[](s32 pos) { return data[pos]; } // Asignacin inline void JString::operator=(const char *s) { if (s) { u32 len; len = (u32)strlen(s); if (len > length) { delete[] data; data = new char[len + 1]; } length = len; strcpy(data, s); } else { delete[] data; data = new char[1]; data[0] = '\0'; length = 0; } } // Asignacin inline void JString::operator=(const JString &s) { if (s.Length() > length) { delete[] data; data = new char[s.length + 1]; } length = s.length; strcpy(data, s.data); } // Devuelve el array de caracteres inline const char* JString::Str() const { return ((const char*)data); } // Concatenacin de cadenas inline void JString::Append(const JString& s) { if (s.length) { u32 len; len = s.length; char *strAux = new char[length + len + 1]; strAux[0] = 0; strcpy(strAux, data); delete[] data; // Evita contar los caracteres en strcat(), ya que sabemos la longitud strcpy(strAux + length, s.data); data = strAux; length += len; } } // Concatenacin de cadenas inline void JString::Append(const char *s) { u32 len = (u32)strlen(s); if (len) { char *strAux = new char[length + len + 1]; strAux[0] = 0; strcpy(strAux, data); delete[] data; // Evita contar los caracteres en strcat(), ya que sabemos la longitud strcpy(strAux + length, s); data = strAux; length += len; } } // Concatenacin de cadenas inline void JString::operator+=(const JString& s) { if (s.length) { u32 len; len = s.length; char *strAux = new char[length + len + 1]; strAux[0] = 0; strcpy(strAux, data); // Evita contar los caracteres en strcat(), ya que sabemos la longitud strcpy(strAux + length, s.data); delete[] data; data = strAux; length += len; } } // Concatenacin de cadenas inline void JString::operator+=(const char *s) { u32 len = (u32)strlen(s); if (len) { char *strAux = new char[length + len + 1]; strAux[0] = 0; strcpy(strAux, data); delete[] data; // Evita contar los caracteres en strcat(), ya que sabemos la longitud strcpy(strAux + length, s); data = strAux; length += len; } } // Concatena la cadena inline const JString operator+(const JString &s1, const char *s2) { JString s(s1); s.Append(s2); return s; } inline const JString operator+(const JString &s1, const JString &s2) { JString s(s1); s.Append(s2); return s; } inline const JString operator+(const char *s1, const JString& s2) { JString s(s1); s.Append(s2); return s; } // Concatena un caracter inline void JString::Append(char c) { if (c) { char *strAux = new char[length + 2]; strAux[0] = 0; if (data) { strcpy(strAux, data); delete[] data; } strAux[length] = c; data = strAux; length += 1; strAux[length] = 0; } } // Concatena un caracter inline void JString::operator+=(char c) { if (c) { char *strAux = new char[length + 2]; strAux[0] = 0; if (data) { strcpy(strAux, data); delete[] data; } strAux[length] = c; data = strAux; length += 1; strAux[length] = 0; } } // Formatea la cadena tipo printf inline bool JString::Format(const char *fmt, ...) { int n, size = 0; char *p = 0; va_list ap; while (1) { // Intenta escribir hasta que la escritura tenga xito va_start(ap, fmt); n = vsnprintf (p, size, fmt, ap); va_end(ap); // Si tiene xito, sale del bucle para asignar la nueva cadena if (n > -1 && n < size) break; // Si no, intenta determinar el espacio necesario if (n > -1) // Esto ocurre con glibc >= 2.1 { // Justo lo necesario size = n+1; } else // Esto ocurre con glibc < 2.1 { // Incrementa el tamao size += (64 + size); } if (p) { delete[] p; } if ((p = new char[size]) == 0) { // No hay memoria return false; } } delete[] data; data = p; length = size - 1; return true; } // Convierte a maysculas void JString::Uppercase() { char *p = data; while (*p) { *p = toupper(*p); ++p; } } // Convierte a minsculas void JString::Lowercase() { char *p = data; while (*p) { *p = tolower(*p); ++p; } } // Devuelve la posicin del primer carcter c desde el comienzo de la cadena s32 JString::Find(char c, u32 from) { if (from >= length) { return -1; } char *p; if ((p = strchr(data + from, c))) { if (p > data) return p - data; else return data - p; } return -1; } // Devuelve la posicin del ltimo carcter c desde el comienzo de la cadena s32 JString::FindLast(char c, u32 from) { if (from >= length) { return -1; } char *p; if ((p = strrchr(data + from, c))) { if (p > data) return p - data; else return data - p; } return -1; } // Devuelve la posicin de la cadena str desde el comienzo de la cadena s32 JString::Find(const char *str, u32 from) { if (from >= length) { return -1; } char *p; if ((p = strstr(data + from, str))) { if (p > data) return p - data; else return data - p; } return -1; } // Reemplaza las ocurrencias 'pat' con 'rep' desde 'from', hasta 'max' veces s32 JString::Replace(const char pat, const char rep, u32 from, u32 max) { s32 i, num = 0; while ((i = Find(pat, from)) > -1) { data[i] = rep; ++num; } return num; } // Reemplaza las ocurrencias 'pat' con 'rep' desde 'from', hasta 'max' veces s32 JString::Replace(const char *pat, const char *rep, u32 from, u32 max) { s32 cur, patLen, repLen, num = 0; patLen = strlen(pat); repLen = strlen(rep); if (patLen == repLen) { // Caso especial, esto se hace ms rpido while ((cur = Find(pat, from)) > -1) { strncpy(data + cur, rep, repLen); ++num; from = cur + patLen; } return num; } JString str(*this, 0, from); while ((cur = Find(pat, from)) > -1) { str += Substring(from, cur); str += rep; ++num; from = cur + patLen; } str += Substring(from); *this = str; return num; } // Devuelve una subcadena de esta cadena inline const JString JString::Substring(u32 start, u32 end) { return JString(*this, start, end); } // Lee la cadena de un fichero (longitud + cadena) inline u32 JString::Load(JRW &f) { f.ReadLE32(&length); delete[] data; data = new char[length + 1]; f.Read(data, length); data[length] = 0; return 0; } // Escribe la cadena a un fichero (longitud + cadena) inline u32 JString::Save(JRW &f) { f.WriteLE32(&length); f.Write(data, length); return 0; } #endif // _JSTRING_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JObject.h0000600000175000001440000000441111177007633020215 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clase base de todos los objetos. * @file JObject.h * @author Juan Carlos Seijo Prez * @date 15/11/2003 * @version 0.0.1 - 15/11/2003 - Primera versin */ #ifndef _JOBJECT_INCLUDED #define _JOBJECT_INCLUDED #include #ifdef WIN32 #include #endif #ifdef _JLIB_DEBUG #include #endif /** Borra el puntero si no es nulo */ #define JDELETE(p) if (p){delete p;p = 0;} /** Borra el array si no es nulo */ #define JDELETE_ARRAY(p) if(p){delete[] p;p = 0;} /** Borra el array y cada uno de sus punteros si no son nulos ni l mismo es nulo */ #define JDELETE_POINTER_ARRAY(p, sz) if(p){for (s32 __i___ = 0; __i___ < sz; ++__i___) JDELETE((p)[__i___]); delete[] (p); (p) = 0;} /** Borra el array y cada uno de sus arrays si no son nulos ni l mismo es nulo */ #define JDELETE_ARRAY_ARRAY(p, sz) if(p){for (s32 __i___ = 0; __i___ < sz; ++__i___) JDELETE_ARRAY((p)[__i___]); delete[] (p); (p) = 0;} /** Clase base de todos los objetos. */ class JObject { #ifdef _JLIB_DEBUG protected: static std::vector objects; static s32 instanceCount; static s32 instanceID; s32 instanceNum; public: /** Crea un nuevo objeto. */ JObject(); /** Destruye el objeto. */ virtual ~JObject(); #else // NOT _JLIB_DEBUG public: /** Destruye el objeto. */ virtual ~JObject(){} #endif // _JLIB_DEBUG }; #endif // _JOBJECT_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JTree.h0000600000175000001440000002333011177007633017707 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Simple recursive tree. *
 * The tree is organized as:
 *
 *(parent of cur and root of the whole tree)
 * |  (cur, iterator here)
 * |   |  
 * v   v  
 * O===O===O <-- (child)
 *     |
 *     O <-- (next)
 *     |
 *     O===O
 *     |   |
 *     O   O
 *     |
 *     O===O===O
 *     ^
 *     |
 *  (branch)
 * 
* * @file JTree.h. * @author Juan Carlos Seijo Prez * @date 26/10/2003 * @version 0.0.1 - 26/10/2003 - First version. */ #ifndef _JTREE_INCLUDED #define _JTREE_INCLUDED #include #include #include /** Simple recursive tree. The type must have a default constructor. */ template class JTree : public JObject { public: /** Tree node. */ class Node { public: T data; /**< Node data */ Node *prev; /**< Previous node */ Node *next; /**< Next node */ Node *child; /**< Child node */ Node *parent; /**< Parent node */ u32 depth; /**< This node's depth */ /** Creates a new node. The type T requires a default constructor. */ Node() : prev(0), next(0), child(0), parent(0) { if (parent) depth = parent->depth + 1; else depth = 0; } /** Creates a new node. * @param _data Node data. * @param _prev Previous node. * @param _next Next node. * @param _parent Parent node. */ Node(T _data, Node *_prev = 0, Node *_next = 0, Node *_parent = 0, Node *_gPrev = 0, Node *_gNext = 0) : data(_data), prev(_prev), next(_next), child(0), parent(_parent) { if (parent) depth = parent->depth + 1; else depth = 0; } }; Node* root; /**< Root node. Its the parent of the first node */ Node* end; /**< Is the next of the last of each branch */ std::list nodes; /**< All the nodes as a list. */ typename std::list::iterator itG; /**< Global node iterator. */ /** Creates an empty tree. */ JTree() { root = new Node; root->parent = root; nodes.push_back(root); } /** Destroys the tree. Deletes created nodes (BUT NOT its contents if they are pointers) */ ~JTree() { nodes.clear(); } /** Tree iterator. */ class Iterator { public: JTree *tree; /**< Tree this iterator belongs to. */ Node *node; /**< Actual node. */ /** Creates an iterator from a tree. */ Iterator(JTree &t) { tree = &t; node = *(tree->nodes.begin()); if (node->child) { // Skips root to be at the first element node = node->child; } } /** Creates an iterator froam a tree and a node belonging to it. * @param t Tree. * @param n Node of the tree. */ Iterator(JTree &t, Node *n) { tree = &t; node = n ? n : *(tree->nodes.begin()); } /** Assigns the data of the current node. * @param data New data. */ void Data(T data) { node->data = data; } /** Returns the data of the current node. * @return Current node data. */ T& Data() { return node->data; } /** Goes to the next node. * @return true if it exists, false if not. */ bool Next() { if (node->next) { node = node->next; return true; } return false; } /** Goes to the previous node. * @return true if it exists, false if not. */ bool Prev() { if (node->prev) { node = node->prev; return true; } return false; } /** Goes to the parent node. * @return true if it exists, false if not. */ bool Parent() { if (node->parent != tree->root) { node = node->parent; return true; } return false; } /** Goes to the child node. * @return true if it exists, false if not. */ bool Child() { if (node->child) { node = node->child; return true; } return false; } /** Adds a node. * @param nodeData Data for the new node. * @param after true to put it after the current node, * false to put it before. */ void AddNode(T nodeData, bool after = true) { if (after) { node->next = new Node(nodeData, node, node->next, node->parent); tree->nodes.push_back(node->next); } else { node->prev = new Node(nodeData, node->prev, node, node->parent); tree->nodes.push_back(node->prev); } } /** Adds a node and places the iterator there. * @param nodeData Node data. * @param after true to put it after the current node, * false to put it before. */ void AddNodeGo(T nodeData, bool after = true) { if (after) { node->next = new Node(nodeData, node, node->next, node->parent); node = node->next; } else { node->prev = new Node(nodeData, node->prev, node, node->parent); node = node->prev; } tree->nodes.push_back(node); } /** Adds a child node if it didn't exist yet. * @param nodeData Data of the child node. */ void AddBranch(T nodeData) { if (!node->child) { node->child = new Node(nodeData, 0, 0, node); tree->nodes.push_back(node->child); } } /** Adds a child node if it didn't exist yet and places the iterator there. * @param nodeData Data of the child node. */ void AddBranchGo(T nodeData) { if (!node->child) { node->child = new Node(nodeData, 0, 0, node); node = node->child; tree->nodes.push_back(node); } } /** Removes a node and its childs. The iterator after this operation is placed * in th eprevious node or in th eparent node if it doesn't exist. */ void RemoveNode() { if (node != tree->root) { // Places the iterator in the previous node or int the parent node Node *n = (node->prev) ? node->prev : node->parent; if (node->next) node->next->prev = node->prev; if (node->prev) node->prev->next = node->next; // Tell the father this node was unique if (!node->next && !node->prev && node->parent) node->parent->child = 0; tree->nodes.remove(node); JDELETE(node); node = n; } } /** Goes to the first node in branch. */ void FirstInBranch() { while (Prev()); } /** Goes to the last node in branch. * @see Root() */ void LastInBranch() { while (Next()); } /** Goes to the first node in the tree. */ void FirstInTree() { while (Parent()) {} FirstInBranch(); } /** Goes to the first node in the tree. * @see FirstInTree() */ void Root() { FirstInTree(); } /** Checks if the current node has childs. * @return true if so, false if not. */ bool HasChilds() { return (0 != node->child); } /** Checks if the current node has previous. * @return true if so, false if not. */ bool HasPrev() { return (0 != node->prev); } /** Checks if the current node has next. * @return true if so, false if not. */ bool HasNext() { return (0 != node->next); } }; /** Returns a new iterator. The caller must delete (with operator delete) the object after using it. * @return Iterator at the root node. */ Iterator * NewIterator() {return new Iterator(*this);} /** Returns a new iterator in the given node. * The caller must delete (with operator delete) the object after using it. * @param n Node at which the iterator must be placed. * @return Iterator at the given node. */ Iterator * NewIterator(Node *n) {return new Iterator(*this, n);} /** Goes to the begin of the global node list. */ void Begin() {itG = nodes.begin();} /** Check if it's at the end of the global node list. * @return true if so, false if not. */ bool End() {return itG == nodes.end();} /** Returns the object at the current position in the global list of nodes. * @return Object at the current position in the global list of nodes. */ T& Cur() {return (*itG)->data;} /** Goes to the previous node in the global list of nodes. */ void Prev() {--itG;} /** Goes to the next node in the global list of nodes. */ void Next() {++itG;} /** Returns the number of elements in the tree. * @return Total number of elements in the tree. */ s32 Size() {return nodes.size();} /** Clear the whole tree (BUT not its contents if they were pointers). */ void Clear() {nodes.clear();} friend class Iterator; }; #endif // _JTREE_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Util/JGLApp.h0000600000175000001440000000404311177007633017753 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** OpenGL application base class. * @file JGLApp.h * @author Juan Carlos Seijo Prez * @date 01/04/2003 * @version 0.0.1 - 01/04/2003 - First version. */ #ifndef _JGLAPP_INCLUDED #define _JGLAPP_INCLUDED #ifdef WIN32 #include #endif #include #include #include #include #include class JGLApp : public JApp { public: /** Creates the app. * @param strTitle Window title. * @param w Window width. * @param h Window height. * @param fullScr Fullscreen mode flag. * @param _depth Color depth. * @param otherFlags SDL additional flags. By default SDL_OPENGL | SDL_OPENGLBLIT are used. */ JGLApp(const JString &strTitle, s32 w = 640, s32 h = 480, bool fullScr = false, s32 _depth = 16, u32 otherFlags = 0); /** Ends the application. The base class (JApp) quits SDL. */ virtual ~JGLApp(); /** Inits the app. * @return true if succeeded, false if not. */ virtual bool Init(); /** Swaps front and back buffer if dowblu buffered, else simply updates the screen. */ void SwapBuffers() {SDL_GL_SwapBuffers();} }; #endif // JGLAPP_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/0000744000175000001440000000000011177007633017355 5ustar jacobusersholotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLAxes.cpp0000600000175000001440000000561511177007633021317 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 01/04/2003 // @description: Ejes coordenados /////////////////////////////////////////////////////////////////////////////// #include // Crea unos ejes coordenados JGLAxes::JGLAxes(bool bshowDivs, float flength, float fxRed, float fxGreen, float fxBlue, float fyRed, float fyGreen, float fyBlue, float fzRed, float fzGreen, float fzBlue) { showDivs = bshowDivs; length = flength; xRed = fxRed; xGreen = fxGreen; xBlue = fxBlue; yRed = fyRed; yGreen = fyGreen; yBlue = fyBlue; zRed = fzRed; zGreen = fzGreen; zBlue = fzBlue; nList = 0; RebuildList(); } // Crea la lista de OpenGL void JGLAxes::RebuildList() { if (nList != 0) glDeleteLists(nList, 1); nList = glGenLists(1); glNewList(nList, GL_COMPILE); glPointSize(2.0f); glBegin(GL_LINES); glColor3f(xRed, xGreen, xBlue); glVertex3f(-length, 0.0f, 0.0f); glVertex3f( length, 0.0f, 0.0f); glEnd(); // Pone varias divisiones if (showDivs) { glBegin(GL_POINTS); for (float i = -length + (0.1f * length); i < length; i += (0.1f * length)) glVertex3f(i, 0.0f, 0.0f); glEnd(); } glBegin(GL_LINES); glColor3f(yRed, yGreen, yBlue); glVertex3f(0.0f, -length, 0.0f); glVertex3f(0.0f, length, 0.0f); glEnd(); // Pone varias divisiones if (showDivs) { glBegin(GL_POINTS); for (float i = -length + (0.1f * length); i < length; i += (0.1f * length)) glVertex3f(0.0f, i, 0.0f); glEnd(); } glBegin(GL_LINES); glColor3f(zRed, zGreen, zBlue); glVertex3f(0.0f, 0.0f, -length); glVertex3f(0.0f, 0.0f, length); glEnd(); // Pone varias divisiones if (showDivs) { glBegin(GL_POINTS); for (float i = -length + (0.1f * length); i < length; i += (0.1f * length)) glVertex3f(0.0f, 0.0f, i); glEnd(); } glEndList(); } // Pinta los ejes void JGLAxes::Draw() { glCallList(nList); } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JTextMenu.cpp0000600000175000001440000002124511177007633021742 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Menu en pantalla compuesto de cadenas de texto. * @file JTextMenu.cpp * @author Juan Carlos Seijo Prez * @date 28/03/2004 * @version 0.0.1 - 28/03/2004 - Primera versin. */ #include bool JTextMenuEntry::Init(JTextMenuConfig &cfg) { // Borra posibles imgenes anteriores Destroy(); // Renderiza segn el tipo elegido switch (cfg.renderMode) { default: case JTEXTMENU_SOLID: image = cfg.font->RenderTextSolid(text, cfg.color); hiImage = cfg.font->RenderTextSolid(text, cfg.hiColor); break; case JTEXTMENU_SHADED: image = cfg.font->RenderTextShaded(text, cfg.color, cfg.backColor); hiImage = cfg.font->RenderTextShaded(text, cfg.hiColor, cfg.hiBackColor); break; case JTEXTMENU_BLENDED: image = cfg.font->RenderTextBlended(text, cfg.color); hiImage = cfg.font->RenderTextBlended(text, cfg.hiColor); break; } if (image != 0 && hiImage != 0) return true; return false; } bool JTextMenuEntry::Select() { if (Action) { Action(data); return true; } return false; } JTextMenu::JTextMenu() { curOption = options.NewIterator(); maxW = maxH = 0; } void JTextMenu::ApplyLayout(JTree::Iterator *it) { s32 xOff = 0, yOff = 0; s32 localW = 0, localH = 0; do { // Determina la anchura y altura mximas entre todas las opciones de esta rama if (config.layout != JTEXTMENU_SAMELINE) { xOff = it->Data()->Image()->Width(); } else { xOff += it->Data()->Image()->Width(); } if (config.layout != JTEXTMENU_SAMELINE) { if (yOff > 0) { // El nmero de espacios entre lneas es uno menos que el nmero de opciones yOff += config.lineDistance; } yOff += it->Data()->Image()->Height(); } else { yOff = 0; } localW = xOff > localW ? xOff : localW; localH = yOff > localH ? yOff : localH; // Distribuye a los hijos if (it->Child()) { ApplyLayout(it); } } while (it->Next()); xOff = 0; it->FirstInBranch(); switch (config.layoutV) { // La posicin y del men es la del borde inferior case JTEXTMENU_DOWN: yOff = -localH; break; // La posicin y del men es la del centro case JTEXTMENU_CENTER: yOff = -localH/2; break; // La posicin y del men es la del borde superior case JTEXTMENU_UP: default: yOff = 0; break; } // Aplica la distribucin de men do { switch (config.layout) { // La posicin x del men es la del borde izquierdo case JTEXTMENU_LEFT: it->Data()->Image()->Pos(0, yOff); it->Data()->HiImage()->Pos(0, yOff); yOff += it->Data()->Image()->Height() + config.lineDistance; break; // La posicin x del men es la del borde derecho case JTEXTMENU_RIGHT: xOff = -it->Data()->Image()->Width(); it->Data()->Image()->Pos(xOff, yOff); it->Data()->HiImage()->Pos(xOff, yOff); yOff += it->Data()->Image()->Height() + config.lineDistance; break; // La posicin x del men es la del centro case JTEXTMENU_CENTER: xOff = -it->Data()->Image()->Width()/2; it->Data()->Image()->Pos(xOff, yOff); it->Data()->HiImage()->Pos(xOff, yOff); yOff += it->Data()->Image()->Height() + config.lineDistance; break; // La posicin x del men es la del borde izquierdo case JTEXTMENU_SAMELINE: it->Data()->Image()->Pos(xOff, 0); it->Data()->HiImage()->Pos(xOff, 0); xOff += it->Data()->Image()->Width(); break; default: break; } } while (it->Next()); it->Parent(); } bool JTextMenu::RenderBranch(JTree::Iterator *it) { bool ok = true; s32 xOff = 0, yOff = 0; do { // Renderiza esta opcin ok = it->Data()->Init(config); // Determina la anchura y altura mximas entre todas las opciones de esta rama if (config.layout != JTEXTMENU_SAMELINE) { xOff = it->Data()->Image()->Width(); } else { xOff += it->Data()->Image()->Width(); } if (config.layout != JTEXTMENU_SAMELINE) { if (yOff > 0) { // El nmero de espacios entre lneas es uno menos que el nmero de opciones yOff += config.lineDistance; } yOff += it->Data()->Image()->Height(); } else { yOff = it->Data()->Image()->Height(); } maxW = xOff > maxW ? xOff : maxW; maxH = yOff > maxH ? yOff : maxH; // Renderiza los hijos if (ok && it->Child()) { ok = RenderBranch(it); } } while (ok && it->Next()); it->Parent(); return ok; } bool JTextMenu::Init(JTextMenuConfig &cfg) { if (curOption == 0 || cfg.font == 0) { // Parmetro invlido return false; } memcpy(&config, &cfg, sizeof(config)); // Altura de lnea if (config.lineDistance < 0) { config.lineDistance = config.font->LineDistance(); } // Renderiza las opciones de men curOption->Root(); if (RenderBranch(curOption)) { curOption->Root(); ApplyLayout(curOption); curOption->Root(); return true; } return false; } void JTextMenu::Draw() { JTree::Iterator *it = new JTree::Iterator(*curOption); s32 xOff, yOff; it->FirstInBranch(); do { // Si es la opcin seleccionada muestra su imagen resaltada if (it->Data() == curOption->Data()) { xOff = (s32)it->Data()->HiImage()->X(); yOff = (s32)it->Data()->HiImage()->Y(); it->Data()->HiImage()->Draw((s32)(X() + xOff), (s32)(Y() + yOff)); } else { xOff = (s32)it->Data()->Image()->X(); yOff = (s32)it->Data()->Image()->Y(); it->Data()->Image()->Draw((s32)(X() + xOff), (s32)(Y() + yOff)); } } while (it->Next()); delete it; } void JTextMenu::TrackKeyboard(SDL_keysym key) { // Actualiza el estado segn el teclado if (config.trackKeyboard) { switch (key.sym) { case SDLK_TAB: // SHIFT + TAB if (JApp::App()->KeyMods() & KMOD_SHIFT) { // Opcin anterior if (!curOption->Prev()) curOption->LastInBranch(); } // TAB else { // Opcin siguiente if (!curOption->Next()) curOption->FirstInBranch(); } break; case SDLK_UP: case SDLK_LEFT: // Opcin anterior if (!curOption->Prev()) curOption->LastInBranch(); break; case SDLK_DOWN: case SDLK_RIGHT: // Opcin siguiente if (!curOption->Next()) curOption->FirstInBranch(); break; case SDLK_KP_ENTER: case SDLK_RETURN: // Ejecuta la accin asociada if (!curOption->Data()->Select() && config.autoEnter) { // Si no hay accin asociada y se especific autoEnter, intenta descender // a la opcin hija. curOption->Child(); } break; case SDLK_ESCAPE: // Va a la opcin padre. curOption->Parent(); break; default: break; } // switch (key) } // Track keyboard } void JTextMenu::TrackMouse(s32 bt, s32 x, s32 y) { // Actualiza el estado segn el ratn if (config.trackMouse) { JTree::Iterator *it = new JTree::Iterator(*curOption); s32 mx, my; bool found = false; mx = JApp::App()->MouseX(); my = JApp::App()->MouseY(); it->FirstInBranch(); // Comprueba si est sobre alguna opcin do { if (mx > it->Data()->Image()->X() + X() && mx < it->Data()->Image()->X() + X() + it->Data()->Image()->Width() && my > it->Data()->Image()->Y() + Y() && my < it->Data()->Image()->Y() + Y() + it->Data()->Image()->Height()) { // Est dentro, hace que sea la opcin resaltada found = true; // Borra el iterador actual delete(curOption); curOption = it; } } while (!found && it->Next()); if (found) { // Si ahora est pulsado, activa el flag de pulsacin if (bt & SDL_BUTTON_LEFT) { // Ejecuta la accin asociada if (!curOption->Data()->Select() && config.autoEnter) { // Si no hay accin asociada y se especific autoEnter, intenta descender // a la opcin hija. curOption->Child(); } } } // Si encontr una opcin bajo el cursor el iterador sobre esa opcin // pasa a ser el iterador de opcin actual, no lo borra if (!found) delete it; } // Track mouse } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLText.cpp0000600000175000001440000001212211177007633021332 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 30/04/2003 // @description: Texto en pantalla con funciones de fonto (OpenGL) /////////////////////////////////////////////////////////////////////////////// #include extern JGLApp *g_pApp; // Constructor JGLText::JGLText() { list = 0; } // Destructor JGLText::~JGLText() { // Borra la lista if (list != 0) glDeleteLists(list, 255); } // Inicializa la fuente bool JGLText::Init(const char* name /* = "Courier New"*/, int fontSize /*= 12*/, int fontWeight /*= 30*/, bool cursive /*= false*/, bool underscore /*= false*/, bool bitmapFont /*= true*/) { strcpy(font.name, name); font.fontSize = fontSize; font.fontWeight = fontWeight; font.cursive = cursive; font.underscore = underscore; font.bitmapFont = bitmapFont; return BuildFont(); } // Inicializa la fuente bool JGLText::Init(JFont *_font) { if (!_font) { // Pone la fuente por defecto return Init(); } else { memcpy(&font, _font, sizeof(JFont)); } return BuildFont(); } // Crea las listas de fuente bool JGLText::BuildFont() { if (list != 0) glDeleteLists(list, 255); list = glGenLists(255); if (list != 0) { // Crea la fuente a partir de las de windows HFONT fnt = CreateFont(-font.fontSize, 0, 0, 0, font.fontWeight, font.cursive, font.underscore, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_SWISS, font.name); HFONT fntOld = (HFONT)SelectObject(g_pApp->hDC, fnt); // Crea la lista de OpenGL if (font.bitmapFont) { wglUseFontBitmaps(g_pApp->hDC, 0, 255, list); } else { wglUseFontOutlines(g_pApp->hDC, 0, 255, list, 0.0f, 0.0f, WGL_FONT_POLYGONS, 0); } // Toma la anchura de cada caracter GetCharWidth32(g_pApp->hDC, 0, 255, widths); SelectObject(g_pApp->hDC, fntOld); DeleteObject(fnt); return true; } return false; } // Comienza la escritura de texto void JGLText::Begin() { // Cambia a 2D glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); glOrtho(0.0, g_pApp->width, g_pApp->height, 0.0, -1.0, 1.0); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); // PARA TEXTURAS // Push the neccessary Attributes on the stack /* glPushAttrib(GL_TEXTURE_BIT|GL_ENABLE_BIT); glBindTexture(GL_TEXTURE_2D, fontID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glEnable(GL_TEXTURE_2D);*/ // Always Draw in Front //glDisable(GL_DEPTH_TEST); //glDisable(GL_CULL_FACE); } // Dibuja en pantalla la cadena dada en la posicin dada void JGLText::Draw(int x, int y, const char *text) { float xoff = (float)x, yoff = (float)y; size_t len = strlen(text); glRasterPos2f(xoff, yoff); // Dibuja los caracteres en pantalla for (unsigned int i = 0; i < len; ++i) { if (text[i] == 10) { yoff += font.fontSize; xoff = (float)x; glRasterPos2f(xoff, yoff); } else { glCallList(text[i]); xoff += widths[text[i]]; } glRasterPos2f(xoff, yoff); } } // Muestra un mensaje (tipo 'printf()') void JGLText::Printf(int x, int y, const char *str, ...) { va_list vlist; char _str[1024]; va_start(vlist, str); vsprintf(_str, str, vlist); va_end(vlist); Draw(x, y, _str); } // Finaliza la escritura de texto void JGLText::End() { // Restaura las matrices originales glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_MODELVIEW); glPopMatrix(); } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JImage.h0000600000175000001440000002334111177007633020657 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Imagen genrica * @file JImage.h. * @author Juan Carlos Seijo Prez * @date 14/10/2003 * @version 0.0.1 - 14/10/2003 - Primera varsin. * @version 0.0.2 - 01/06/2004 - Adicin de mtodos de referencia y copia. * @version 0.0.3 - 04/04/2005 - Adicin de mtodos de manejo de JRW. */ #ifndef _JIMAGE_INCLUDED #define _JIMAGE_INCLUDED #include #include #include #include #include #include /** Imgen genrica. */ class JImage : public JDrawable { protected: SDL_Surface *surface; /**< Superficie SDL. */ public: /** Crea una imagen vaca. */ JImage(); /** Crea una imagen de anchura altura y profundidad dadas. * Si la profundidad es cero, se toma la del framebuffer. * @param w Anchura. * @param h Altura. * @param _bpp Profundidad en bits por pixel. */ JImage(u32 w, u32 h, u32 _bpp = 0); /** Crea la imagen a partir de la superficie SDL dada. * No hace una copia, establece esta como la superficie interna. * @param surf Superficie SDL con los datos. */ JImage(SDL_Surface *surf) {surface = surf;} /** Crea una imagen copia de la imagen dada. * @param img Imagen que se quiere copiar. * @see Ref(). */ JImage(JImage &img); /** Libera la memoria asociada. */ virtual ~JImage() {Destroy();} /** Libera la memoria asociada. */ void Destroy(); /** Carga la imagen desde fichero. * @param filename Nombre del fichero con la imagen. * @param toDisplayFormat Indica si se debe convertir al formato de pantalla. * @param cKey Color transparente. * @return true si todo fue bien, false en caso contrario. */ bool Load(const char *filename, bool toDisplayFormat = true, u32 cKey = 0x00000000); /** Crea la superficie de imagen vaca. * Si data no es cero carga una copia en la superficie. * @param w Anchura. * @param h Altura. * @param _bpp Profundidad en bits por pixel. * @param data Datos de la superficie en el formato correcto o cero para crearla vaca. * @param rMask Mscara de bits para el rojo. * @param gMask Mscara de bits para el verde. * @param bMask Mscara de bits para el azul. * @param aMask Mscara de bits para el alfa. */ bool Create(u32 w, u32 h, u32 _bpp, void *data = 0, u32 rMask = 0, u32 gMask = 0, u32 bMask = 0, u32 aMask = 0); /** Devuelve la anchura. * @return Anchura. */ s32 Width() {return surface->w;}; /** Devuelve la altura. * @return Altura. */ s32 Height() {return surface->h;}; /** Devuelve la profundidad de color en bits * @return Profundidad de color en bits. */ s32 BitsPP() {return surface->format->BitsPerPixel;}; /** Devuelve la profundidad de color en bytes * @return Profundidad de color en bytes. */ s32 BytesPP() {return surface->format->BytesPerPixel;}; /** Devuelve los datos. * @return Datos asociados. */ u8 * Pixels() {return ((u8 *)surface->pixels);}; /** Devuelve el tamao de lnea, en bytes. * @return El tamao de lnea, en bytes. */ s32 Pitch() {return surface->pitch;}; /** Devuelve un puntero a la lnea dada * @param nRow Lnea (coordenada y) a obtener un puntero a su comienzo. * @return puntero a la lnea dada. */ u8 * Line(u32 nRow) {return (Pixels() + (surface->pitch * nRow));}; /** Devuelve el tamao total en bytes de la imagen. * @return Tamao total en bytes de la imagen. */ u32 Size() {return Width() * Height() * BytesPP();}; /** Bloquea la superficie. * @return 0 si todo va bien, -1 en caso de error. */ inline s32 Lock() {if (SDL_MUSTLOCK(surface)) return SDL_LockSurface(surface); return 0;} /** Desbloquea la superficie. */ void Unlock() {if (SDL_MUSTLOCK(surface)) SDL_UnlockSurface(surface);} /** Establece el alfa global de la superficie, habilita el flag de alfa de superficie y deshabilita el alfa por pxel. * @param alpha Nuevo valor de transparencia. * @return 0 si todo va bien, -1 en caso de error. */ s32 Alpha(u8 alpha, u32 flags = SDL_SRCALPHA | SDL_RLEACCEL) {return SDL_SetAlpha(surface, flags, alpha);} /** Devuelve el alfa asociado a la superficie * @return Alfa de la superficie. */ u8 Alpha() {return surface->format->alpha;} /** Establece el color transparente y habilita el uso de color transparente en la superficie. * @param key Color transparente. * @return 0 si todo va bien, -1 en caso de error. */ s32 ColorKey(u32 key, u32 flags = SDL_SRCCOLORKEY | SDL_RLEACCEL) {return SDL_SetColorKey(surface, flags, key);} /** Devuelve el color transparente * @return Color transparente. */ u32 ColorKey() {return surface->format->colorkey;} /** Pega el contenido de una imagen en esta. No comprueba que * no se sobrepasen los lmites de la imagen. * @return true si todo fue bien, false en caso contrario. */ bool Paste(JImage *srcImg, s32 xSrc, s32 ySrc, s32 wSrc, s32 hSrc, s32 xDst = 0, s32 yDst = 0); /** Devuelve la superficie. * @return Superficie de datos de la imagen. */ SDL_Surface * Surface() const {return surface;} /** Devuelve el formato de pixel de esta imagen. * @return Formato de pixel de esta imagen. */ SDL_PixelFormat * Format() {return surface->format;} /** Dibuja la imagen. */ virtual void Draw(); /** Dibuja la imagen en la posicin dada. * @param x Posicin x en pantalla. * @param y Posicin y en pantalla. */ virtual void Draw(s32 x, s32 y); /** Devuelve el valor del pixel en la posicin dada. * La imagen debe estar bloqueada. * @param x Posicin x desde la esquina superior izquierda. * @param y Posicin y desde la esquina superior izquierda. * @return Color del pixel pedido. */ u32 GetPixel(s32 x, s32 y); /** Establece el valor del pixel en la posicin dada. * La imagen debe estar bloqueada. * @param x Posicin x desde la esquina superior izquierda. * @param y Posicin y desde la esquina superior izquierda. * @param color Color del pixel dado. */ void PutPixel(s32 x, s32 y, u32 color); /** Guarda la imagen como BMP * @param file Nombre del fichero donde se guardar. * @return true si todo fue bien, false en caso contrario. */ bool SaveAsBMP(const char *file); /** Carga la imagen. * @param f Fichero abierto y posicionado para cargar el objeto. * @return 0 si todo va bien, 1 en caso de error de E/S. * 2 en caso de incoherencia de los datos. */ virtual u32 Load(JRW &f); /** Salva la imagen. * @param f Fichero abierto y posicionado para salvar el objeto. * @return 0 si todo va bien, 1 en caso de error de E/S. * 2 en caso de incoherencia de los datos. */ virtual u32 Save(JRW &f); /** Carga el objeto desde la posicin actual del fichero dado. El objeto debe contener los datos de fichero * en formato de imagen estndar de SDL_Image (TGA, BMP, JPG, etc.) * @param jrw Objeto JRW posicionado correctamente. * @return 0 si todo va bien, 1 en caso de error de E/S. * 2 en caso de incoherencia de los datos. */ virtual u32 LoadImage(JRW &jrw); /** Crea una referencia de la imagen dada. Los datos apuntan al mismo sitio * y cualquier modificacin en una se reflejar en la otra. La imagen no * se destruye hasta que se borran todas las referencias. Si la imagen dada * est vaca, no crea la referencia. */ void Ref(JImage &img); /** Devuelve una referencia de la imagen asignada. Los datos apuntan al mismo sitio * y cualquier modificacin en una se reflejar en la otra. La imagen no * se destruye hasta que se borran todas las referencias. Si la imagen dada * est vaca, no crea la referencia. */ void operator =(JImage &img); /** Devuelve una copia de la imagen dada. Es equivalente al constructor copia. */ void Copy(JImage &img); /** Rellena la imagen con el color dado. * @param color Color con el que rellenar. */ void Fill(u32 color) {SDL_FillRect(surface, &surface->clip_rect, color);} /** Escala la imagen el porcentaje dado en cada direccin. No altera esta imagen. * @param xp Porcentaje de escalado en la direccin x. * @param yp Porcentaje de escalado en la direccin y. * @return Nueva imagen escalada. */ JImage * Scale(float xp, float yp); /** Convierte esta imagen al formato de la dada. Tambin toma sus flags. * @param fmt Formato de pixel al que convertir. * @param flags Flags a asignar. * @return true si se pudo convertir, false si no. */ bool Convert(SDL_PixelFormat *fmt, u32 flags); /** Retruns a string with information about this image. * @return String with information about this image. */ JString Dump() {return DumpFromSurface(surface);} /** Retruns a string with information about an sdl surface. * @return String with information about an sdl surface. */ static JString DumpFromSurface(SDL_Surface *s); }; #endif // _JIMAGE_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLMesh.h0000600000175000001440000002346611177007633020764 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Definiciones para geometra 3D para OpenGL. * @file JGLMesh.h * @author Juan Carlos Seijo Prez * @date 10/05/2004 * @version 0.0.1 - 10/05/2004 - Primera versin. * @notes: Ficheros ASE - Curiosidad de MAX 5, pongo el ejemplo: * Supongamos una escena con tres bolas que comparten el mismo material multi/subobjeto * compuesto de tres submateriales de id 1, 2 y 3, respectivamente. Si las bolas * tienen id's 1, 2 y 3 respectivamente se asignarn de esa forma los submateriales * a cada una de ellas. Sin embargo si alguna de ellas tiene un valor diferente (mayor), * el material que aplica MAX es el resto de dividir el id de la bola menos uno entre el nmero * de submateriales del material y todo eso ms uno. * As si las bolas tienen id's 1, 22 y 7, respectivamente, * - a la bola con MTLID 1 se le asigna el submaterial: ((1-1)%3) + 1 = (0%3) + 1 = 0 + 1 = 1 * - a la bola con MTLID 23 se le asigna el submaterial: ((23-1)%3) + 1 = (21%3) + 1 = 0 + 1 = 1 * - a la bola con MTLID 7 se le asigna el submaterial: ((8-1)%3) + 1 = (7%3) + 1 = 1 + 1 = 2 * * Notad que en el fichero ASE el MTLID es uno menos que en la escena ya. */ #ifndef _JGLMESH_INCLUDED #define _JGLMESH_INCLUDED #include #include #include #include #include #include #include /** Color RGB. Todas las componentes van de 0.0f a 1.0f. */ struct JColor { float r; /**< Componente roja. */ float g; /**< Componente verde. */ float b; /**< Componente azul. */ float a; /**< Componente alfa. */ }; class JMaterial { public: /** Crea un material vaco. */ JMaterial(): texture(0) {} JGLTexture *texture; /**< Textura asociada. */ s32 parentId; /**< Id del padre. */ s32 id; /**< Id. */ bool isSubMaterial; /**< Indica si es submaterial. */ bool isMulti; /**< Indica si es Multi/sub-objeto. */ s32 numSubMaterials; /**< Nmeor de submateriales. */ s8 mtlClass[32]; /**< Tipo de material. */ JColor ambient; /**< Color ambiente. */ JColor diffuse; /**< Color difuso. */ JColor specular; /**< Color especular. */ float shine; /**< Cantidad de brillo. */ float shineStrenght; /**< Intensidad de brillo. */ float transparency; /**< Transparencia. */ float selfIllum; /**< Iluminacin propia. */ /** Devuelve la textura asociada a este material. * @return La textura asociada a este material. */ JGLTexture * Texture() { return texture; } /** Libera los recursos asociados. */ void Destroy(); /** Destruye el material y libera los recursos asociados. */ ~JMaterial() {Destroy();} }; typedef JVector JVertex; /** Coordenada de textura. */ struct JTextureVertex { float u; /**< Componente u. */ float v; /**< Componente v. */ }; /** Cara. */ class JFace { public: /** Crea el objeto. */ JFace() : material(0) {} s32 v1; /**< Vrtice 1. */ s32 v2; /**< Vrtice 2. */ s32 v3; /**< Vrtice 3. */ JMaterial *material; /**< material asociado. */ JVector normal; /**< Vector normal. */ }; /** Cara con textura. */ struct JTextureFace { s32 v1; /**< Vrtice 1. */ s32 v2; /**< Vrtice 2. */ s32 v3; /**< Vrtice 3. */ }; /** Clase de objeto 3D para OpenGL. Un objeto se compone de * vrtices agrupados en caras, posiblemente texturizadas. * Ntese que los materiales se asignan a nivel de geometra. */ class JGLMeshObject { public: JString name; /**< Nombre. */ s32 numVertices; /**< Nmero de vrtices. */ s32 numTVertices; /**< Nmero de vrtices de textura. */ s32 numFaces; /**< Nmero de caras. */ s32 numTFaces; /**< Nmero de caras de textura. */ JVertex *vertices; /**< Vrtices. */ JTextureVertex *tVertices; /**< Vrtices de textura. */ JVector *vertexNormals; /**< Normales a los vrtices. */ JFace *faces; /**< Caras. */ JTextureFace *tFaces; /**< Caras de textura. */ /** Crea el objeto vaco. */ JGLMeshObject() : vertices(0), tVertices(0), vertexNormals(0), faces(0), tFaces(0) {} /** Devuelve el nombre de esta geometra. * @return nombre de esta geometra. */ const JString & Name() { return name; } /** Establece el nombre de esta geometra. * @param newName nombre de esta geometra. */ void Name(const JString & newName) { name = newName; } /** Devuelve el nmero de vrtices de la geometra. * @return Nmero de vrtices de la geometra. */ s32 NumVertices() { return numVertices; } /** Devuelve el nmero de vrtices de textura de la geometra. * @return El nmero de vrtices de textura de la geometra. */ s32 NumTVertices() { return numTVertices; } /** Devuelve el nmero de caras de la geometra. * @return El nmero de caras de la geometra. */ s32 NumFaces() { return numFaces; } /** Devuelve el nmero de caras de textura de la geometra. * @return El nmero de caras de textura de la geometra. */ s32 NumTFaces() { return numTFaces; } /** Devuelve los vrtices de la geometra. * @return Vrtices de la geometra. */ JVertex * Vertices() { return vertices; } /** Devuelve los vrtices de textura de la geometra. * @return Vrtices De Textura de la geometra. */ JTextureVertex * TVertices() { return tVertices; } /** Devuelve las normales a los vrtices de la geometra. * @return Las normales a los vrtices de la geometra. */ JVector * VertexNormals() { return vertexNormals; } /** Devuelve las caras de la geometra. * @return Las caras de la geometra. */ JFace * Faces() { return faces; } /** Devuelve las caras de textura de la geometra. * @return Las caras de textura de la geometra. */ JTextureFace * TFaces() { return tFaces; } /** Libera los recursos asociados a este objeto. */ void Destroy(); /** Destruye el objeto. */ virtual ~JGLMeshObject() {Destroy();} }; /** Clase de geometra 3D para OpenGL. Consiste de una serie de objetos 3D * y sus correspondientes materiales. */ class JGLMesh : public JDrawable { protected: s32 numMaterials; /**< Nmero de materiales. */ s32 numObjects; /**< Nmero de objetos. */ JMaterial *materials; /**< Materiales. */ JGLMeshObject *objects; /**< Objetos 3D de esta geometra. */ JTextFile f; /**< Fichero de carga de objetos. */ /** Carga los materiales de la geometra desde el fichero ASE abierto por LoadASE. * @return true si se pudieron cargar, false si no. */ bool LoadASEMaterials(); /** Carga los objetos de la geometra desde el fichero ASE abierto por LoadASE. * @return true si se pudieron cargar, false si no. */ bool LoadASEObjects(); public: /** Construye la geometra vaca, lista para cargarse con Load(). */ JGLMesh() : materials(0), objects(0) {} /** Devuelve el nmero de materiales de la geometra. * @return El nmero de materiales de la geometra. */ s32 NumMaterials() { return numMaterials; } /** Devuelve el nmero de objetos de esta geometra. * @return El nmero de objetos de esta geometra. */ s32 NumObjects() { return numObjects; } /** Devuelve los materiales de la geometra. * @return Los materiales de la geometra. */ JMaterial * Materials() { return materials; } /** Devuelve los objetos de esta geometra. * @return los objetos de esta geometra. */ JGLMeshObject * Objects() { return objects; } /** Dibuja la geometra. */ void Draw(); /** Carga la geometra desde el fichero dado. * Por ahora el fichero puede ser formato ASE nicamente. * @return true si se pudo cargar, false si no. */ bool LoadASE(const JString &filename); /** Carga la geometra desde el fichero J3D dado. Los ficheros J3D se generan a partir de Blender (www.blender.org) * con ayuda del script de exportacin 'JExporter'. * @return true si se pudo cargar, false si no. */ bool LoadJ3D(const JString &filename); /** Libera los recursos asociados a este objeto. */ void Destroy(); /** Destruye el objeto. */ virtual ~JGLMesh() {Destroy();} }; #endif // _JGLMESH_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JImageMenu.h0000600000175000001440000001301111177007633021475 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Menu en pantalla compuesto de imgenes. * @file JImageMenu.h * @author Juan Carlos Seijo Prez * @date 28/04/2004 * @version 0.0.1 - 28/04/2004 - Primera versin. * @version 0.0.2 - 25/09/2004 - Modificacin del mtodo 2D de Pos() para aceptar floats (quita libertad sino). */ #ifndef _JIMAGEMENU_INCLUDED #define _JIMAGEMENU_INCLUDED #include #include #include #include #include #include /** Distribucin del men. */ typedef enum { JIMAGEMENU_LEFT = 1, /**< Alineado a la izquierda. */ JIMAGEMENU_RIGHT, /**< Alineado a la derecha. */ JIMAGEMENU_CENTER, /**< Centrado. */ JIMAGEMENU_SAMELINE, /**< Todas las opciones en la misma lnea. */ JIMAGEMENU_FREE, /**< Opciones en cualquier posicin */ } JImageMenuLayout; /** Estructura de configuracin del men. */ struct JImageMenuConfig { JImageMenuLayout layout; /**< Distribucin del men. */ bool trackMouse; /**< Indica si puede manejarse con ratn. */ bool trackKeyboard; /**< Indica si puede manejarse con teclado. */ bool trackJoystick; /**< Indica si puede manejarse con joystick/pad. */ bool autoEnter; /**< Indica si desciende si no hay accin asociada. */ }; /** Opcin de men bsica. */ class JImageMenuEntry { protected: JImage *image; /**< Imagen asociada a la opcin. */ JImage *hiImage; /**< Imagen asociada a la opcin resaltada. */ void (*Action)(void *data); /**< Accin asociada a la opcin de men. */ void *data; /**< Datos asociados a la opcin de men. */ public: /** Creates a menu entry. * @param img Image for the item unhighlighted. * @param hiImg Image for the item highlighted. * @param pAct Pointer to function to call when the item is selected. * @param actionData Pointer to additional data to be passed to the action function. In case you want to pass * a value (not a pointer to the value) to store it into the pointer itself, you can use the macros * JCAST_TSS_TO_VOIDPTR in JLib/Util/JTypes.h, where T in TSS is the signedness of the type (S or U) * and SS is the size in bits (8, 16 or 32). Read carefully the comments in that file before using them. */ JImageMenuEntry(JImage *img, JImage *hiImg, void (*pAct)(void *) = 0, void *actionData = 0) : image(img), hiImage(hiImg), Action(pAct), data(actionData) {} /** Selecciona la opcin de men, llamando a la callback asociada, si existe. * @return true en caso de haber accin asociada, false si no. */ bool Select(); /** Devuelve la imagen asociada. * @return La imagen asociada. */ JImage * Image() {return image;} /** Devuelve la imagen asociada al estado resaltado. * @return La imagen asociada al estado resaltado. */ JImage * HiImage() {return hiImage;} /** Destruye el objeto. */ ~JImageMenuEntry() {} }; /** Encapsula un men de texto en pantalla. */ class JImageMenu : public JDrawable { JTree options; /**< rbol de opciones de men. */ JTree::Iterator *curOption; /**< Opcin actual. */ JImageMenuConfig config; /**< Parmetros de configuracin del men. */ /** Aplica la distribucin de men. */ void ApplyLayout(JTree::Iterator *it); public: /** Crea un men vaco. */ JImageMenu(); /** Inicializa el men con la configuracin dada. Esta funcin debe * ser llamada despus de haber rellenado el rbol del men. * @param cfg Configuracin del men. * @return true Si todo fue bien, false si no se encontr la * fuente dada. */ bool Init(JImageMenuConfig &cfg); /** Devuelve el iterador de opcin actual. * @return Iterador de opcin actual. */ JTree::Iterator * Menu() {return curOption;} /** Establece la posicin del men. La alineacin se hace respecto de * esta posicin. * @param x Posicin x. * @param y Posicin y. */ virtual void Pos(float x, float y); /** Funcin de dibujo del men. */ virtual void Draw(); /** Procesa tecla arriba */ virtual void TrackKeyboard(SDL_keysym key); /** Procesa movimiento de mouse */ virtual void TrackMouse(s32 bt, s32 x, s32 y); /** Destruye el objeto y libera la memoria asociada. */ virtual ~JImageMenu() { for (options.Begin(); options.End(); options.Next()) JDELETE(options.Cur()); options.Clear(); } }; #endif // _JIMAGEMENU_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLText.h0000600000175000001440000000455711177007633021014 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 30/04/2003 // @description: Texto en pantalla con funciones de formato (OpenGL) /////////////////////////////////////////////////////////////////////////////// #ifndef _JGLTEXT_INCLUDED #define _JGLTEXT_INCLUDED #include #include #include #include #include #include class JGLText : public JObject { public: GLuint list; // Lista base OpenGL JFont font; // Formato de fuente int widths[256]; // Anchuras por caracter int lineHeight; // Altura de lnea // Constructor JGLText(); // Destructor ~JGLText(); // Inicializa la fuente bool Init(const char* name = "Courier New", int fontSize = 12, int fontWeight = 30, bool cursive = false, bool underscore = false, bool bitmapFont = true); // Inicializa la fuente bool Init(JFont *_font); // Crea las listas de fuente bool BuildFont(); // Comienza la escritura de texto void Begin(); // Dibuja en pantalla la cadena dada en la posicin dada void Draw(int x, int y, const char *text); // Muestra un mensaje (tipo 'printf()') void Printf(int x, int y, const char *str, ...); // Finaliza la escritura de texto void End(); }; #endif // _JGLTEXT_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLConsole.cpp0000600000175000001440000000657111177007633022023 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 20/10/2003 // @description: Consola de texto para OpenGL independiente de la plataforma. /////////////////////////////////////////////////////////////////////////////// #include // Constructor JGLConsole::JGLConsole() { nextLine = 0; lines = 0; visible = true; isFull = false; chars = (u8 (*)[8])JGLCONSOLEFONT1; ChangeSettings(10, JGLCONSOLE_FONT1); } // Destructor JGLConsole::~JGLConsole() { if (lines) delete[] lines; } // Cambia los valores por defecto de la consola void JGLConsole::ChangeSettings(s32 _maxLines, JGLCONSOLE_FONT _font) { if (lines) { delete[] lines; } maxLines = _maxLines > 0 ? _maxLines : 10; font = _font; switch (font) { case JGLCONSOLE_FONT1: chars = (u8 (*)[8])JGLCONSOLEFONT2; break; default: case JGLCONSOLE_FONT2: chars = (u8 (*)[8])JGLCONSOLEFONT1; break; } lines = new JGLConsoleLine[maxLines]; for (s32 i = 0; i < maxLines; ++i) { *lines[i].str = 0; } nextLine = 0; } // Dibuja la consola si est visible void JGLConsole::Draw() { if (visible) { //s32 rp[4]; //glGetIntegerv(GL_CURRENT_RASTER_POSITION, rp); for (s32 i = 0, len = 0; i < maxLines; ++i) { if (*lines[i].str) { len = (u32)strlen(lines[i].str); //Printf("(%d, %d, %d, %d)", rp[0], rp[1], rp[2], rp[3]); //glRasterPos2d(rp[0], rp[1] + (8 * lines[i].line)); //glRasterPos2d(rp[0], 10); glRasterPos2d(0, 10); for (s32 j = 0; j < len; ++j) { GLenum e; glBitmap(8, 8, 0, 0, 0, 0, ((u8 *)&chars[(u8)lines[i].str[j]])); e = glGetError(); e = e; } } } } } // Aade una cadena a la consola (tipo 'printf()') void JGLConsole::Printf(const s8 *str, ...) { if (nextLine == maxLines) { nextLine = 0; isFull = true; } if (isFull) { // Desplaza el texto de la consola una lnea hacia arriba for (s32 i = 0; i < maxLines; ++i) { --lines[i].line; } } va_list vlist; s8 _str[JGLCONSOLE_MAX_LINE]; va_start(vlist, str); vsprintf(_str, str, vlist); va_end(vlist); strcpy(lines[nextLine].str, _str); lines[nextLine].line = isFull ? maxLines - 1 : nextLine; ++nextLine; } // Borra la consola void JGLConsole::Clear() { for (s32 i = 0; i < maxLines; ++i) { *lines[i].str = 0; } nextLine = 0; } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JASEFormat.h0000600000175000001440000001301611177007633021414 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Etiquetas de ficheros ASE * @file JASEFormat.h * @author Juan Carlos Seijo Prez * @date 20/09/2003 * @version 0.0.1 - 20/09/2003 - Primera versin. */ #ifndef _JASEFORMAT_INCLUDED #define _JASEFORMAT_INCLUDED #include #include // Tags del formato ASE. Son las cadenas a utilizar por scanf ms adelante. /** Cabecera de fichero. */ #define JASETAG_FILE_HEADER "*3DSMAX_ASCIIEXPORT" /** La versin para la que se hace, no cuenta para validar el ase. */ #define JASETAG_FILE_VERSION "200" /** Escena. */ #define JASETAG_SCENE "*SCENE" /** Ordinal del primer cuadro. */ #define JASETAG_SCENE_FIRSTFRAME "*SCENE_FIRSTFRAME" /** Ordinal del ltimo cuadro. */ #define JASETAG_SCENE_LASTFRAME "*SCENE_LASTFRAME" /** Lista de materiales. */ #define JASETAG_MATERIAL_LIST "*MATERIAL_LIST" /** Nmero de materiales. */ #define JASETAG_MATERIAL_COUNT "*MATERIAL_COUNT" /** Material. */ #define JASETAG_MATERIAL "*MATERIAL" /** Nemro de submateriales. */ #define JASETAG_SUBMATERIAL_COUNT "*NUMSUBMTLS" /** Submaterial. */ #define JASETAG_SUBMATERIAL "*SUBMATERIAL" /** Tipo de material. */ #define JASETAG_MATERIAL_CLASS "*MATERIAL_CLASS" /** Material Multi/sub-objeto. */ #define JASEVAL_MULTI_SUBOBJECT "\"Multi/Sub-Object\"" /** Material estndar. */ #define JASEVAL_STANDARD "\"Standard\"" /** Color ambiente del material. */ #define JASETAG_MATERIAL_AMBIENT "*MATERIAL_AMBIENT" /** Color difuso del material. */ #define JASETAG_MATERIAL_DIFFUSE "*MATERIAL_DIFFUSE" /** Color especular del material. */ #define JASETAG_MATERIAL_SPECULAR "*MATERIAL_SPECULAR" /** Flag de brillo del material. */ #define JASETAG_MATERIAL_SHINE "*MATERIAL_SHINE" /** Intensidad de brillo del material. */ #define JASETAG_MATERIAL_SHINESTRENGTH "*MATERIAL_SHINESTRENGTH" /** Transparencia del material. */ #define JASETAG_MATERIAL_TRANSPARENCY "*MATERIAL_TRANSPARENCY" /** Iluminacin propia. */ #define JASETAG_MATERIAL_SELFILLUM "*MATERIAL_SELFILLUM" /** Tipo XP. */ #define JASETAG_MATERIAL_XP_TYPE "*MATERIAL_XP_TYPE" /** Mapa difuso del material. */ #define JASETAG_MATERIAL_MAP_DIFFUSE "*MAP_DIFFUSE" /** Subnmero del mapa del material. */ #define JASETAG_MATERIAL_MAP_SUBNO "*MAP_SUBNO" /** Textura del material. */ #define JASETAG_MATERIAL_BITMAP "*BITMAP" /** Objeto. */ #define JASETAG_GEOMOBJECT "*GEOMOBJECT" /** Nombre. */ #define JASETAG_NODE_NAME "*NODE_NAME" /** Geometra. */ #define JASETAG_MESH "*MESH" /** Tiempo dentro de la animacin. */ #define JASETAG_TIMEVALUE "*TIMEVALUE" /** Nmerod evrtices. */ #define JASETAG_MESH_NUMVERTEX "*MESH_NUMVERTEX" /** Nmero de caras. */ #define JASETAG_MESH_NUMFACES "*MESH_NUMFACES" /** Lista de vrtices. */ #define JASETAG_MESH_VERTEX_LIST "*MESH_VERTEX_LIST" /** Vrtice. */ #define JASETAG_MESH_VERTEX "*MESH_VERTEX" /** Lista de caras. */ #define JASETAG_MESH_FACE_LIST "*MESH_FACE_LIST" /** Cara. */ #define JASETAG_MESH_FACE "*MESH_FACE" /** Primer vrtice. */ #define JASETAG_MESH_A "A:" /** Segundo vrtice. */ #define JASETAG_MESH_B "B:" /** Tercer vrtice. */ #define JASETAG_MESH_C "C:" /** ID del material asociado. */ #define JASETAG_MESH_MTLID "*MESH_MTLID" /** Nemro de vrtices con textura. */ #define JASETAG_MESH_NUMTVERTEX "*MESH_NUMTVERTEX" /** Lista de vrtices con textura. */ #define JASETAG_MESH_TVERTLIST "*MESH_TVERTLIST" /** Vrtice con textura. */ #define JASETAG_MESH_TVERT "*MESH_TVERT" /** Nmero de caras con textura. */ #define JASETAG_MESH_NUMTVFACES "*MESH_NUMTVFACES" /** Lista de caras con textura. */ #define JASETAG_MESH_TFACELIST "*MESH_TFACELIST" /** Cara con textura. */ #define JASETAG_MESH_TFACE "*MESH_TFACE" /** Lista de normales. */ #define JASETAG_MESH_NORMALS "*MESH_NORMALS" /** Normales de cara. */ #define JASETAG_MESH_FACENORMAL "*MESH_FACENORMAL" /** Normales de vrtice. */ #define JASETAG_MESH_VERTEXNORMAL "*MESH_VERTEXNORMAL" /** Nemro de material. */ #define JASETAG_MATERIAL_REF "*MATERIAL_REF" #endif // _JASEFORMAT_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JASELoader.cpp0000600000175000001440000004046711177007633021737 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 20/09/2003 // @description: Cargador de ficheros ASE /////////////////////////////////////////////////////////////////////////////// #include #include s32 JASELoader::Load(const s8 *fileName, JASEFormat *fmt) { if (!fmt) return 3; if (!f.Open(fileName) || !f.Read()) return 1; // La cabecera debe coincidir, no exigimos tanto a la versin, // al menos lo intentamos if (!f.FindNext(JASETAG_FILE_HEADER) || !f.SkipNextWord()) return false; // Versin del fichero f.ReadInteger(&fmt->fileVersion); // Primer frame if (!f.FindNext(JASETAG_SCENE_FIRSTFRAME) || !f.SkipNextWord()) fmt->firstFrame = 0; else f.ReadInteger(&fmt->firstFrame); // ltimo frame if (!f.FindNext(JASETAG_SCENE_LASTFRAME) || !f.SkipNextWord()) fmt->lastFrame = 0; else f.ReadInteger(&fmt->lastFrame); if (LoadMaterials(fmt)) if (LoadObjects(fmt)) return 0; return 2; } // Carga los materiales del fichero ASE. // Devuelve true si todo fue bien, false en caso contrario. bool JASELoader::LoadMaterials(JASEFormat *fmt) { f.StartOfDocument(); if (!f.FindNext(JASETAG_MATERIAL_COUNT)) return false; f.SkipNextWord(); f.ReadInteger(&fmt->numMaterials); // Contamos como materiales los submateriales que haya f.StartOfDocument(); s32 c = 0; while (f.FindNext(JASETAG_SUBMATERIAL_COUNT)) { f.SkipNextWord(); f.ReadInteger(&c); fmt->numMaterials += c; } f.StartOfDocument(); fmt->materials = new JASEMaterial[fmt->numMaterials]; fmt->numTextures = 0; memset(fmt->materials, 0, sizeof(JASEMaterial) * fmt->numMaterials); JASEMaterial *mats = fmt->materials; s32 i = 0; while (i < fmt->numMaterials) { // En el nivel superior no hay submateriales mats[i].parentId = -1; mats[i].isSubMaterial = false; f.FindNext(JASETAG_MATERIAL_LIST); f.SkipNextWord(); f.FindNext(JASETAG_MATERIAL_COUNT); f.SkipNextWord(); f.FindNext(JASETAG_MATERIAL); f.SkipNextWord(); f.ReadInteger(&mats[i].id); // Tipo de material f.FindNext(JASETAG_MATERIAL_CLASS); f.SkipNextWord(); f.ReadWord(mats[i].mtlClass); // Color ambiente f.FindNext(JASETAG_MATERIAL_AMBIENT); f.SkipNextWord(); f.ReadFloat(&mats[i].ambient.r); f.ReadFloat(&mats[i].ambient.g); f.ReadFloat(&mats[i].ambient.b); // Color difuso f.FindNext(JASETAG_MATERIAL_DIFFUSE); f.SkipNextWord(); f.ReadFloat(&mats[i].diffuse.r); f.ReadFloat(&mats[i].diffuse.g); f.ReadFloat(&mats[i].diffuse.b); // Color especular f.FindNext(JASETAG_MATERIAL_SPECULAR); f.SkipNextWord(); f.ReadFloat(&mats[i].specular.r); f.ReadFloat(&mats[i].specular.g); f.ReadFloat(&mats[i].specular.b); // Brillo f.FindNext(JASETAG_MATERIAL_SHINE); f.SkipNextWord(); f.ReadFloat(&mats[i].shine); // Fuerza de brillo f.FindNext(JASETAG_MATERIAL_SHINESTRENGTH); f.SkipNextWord(); f.ReadFloat(&mats[i].shineStrenght); // Transparencia f.FindNext(JASETAG_MATERIAL_TRANSPARENCY); f.SkipNextWord(); f.ReadFloat(&mats[i].transparency); s8 str[32]; // Cadena auxiliar if (0 == strcmp(mats[i].mtlClass, JASEVAL_MULTI_SUBOBJECT)) { // Material multi/subobjeto: procesamos los submateriales // No tiene el parmetro selfIllum mats[i].isMulti = true; f.FindNext(JASETAG_SUBMATERIAL_COUNT); f.SkipNextWord(); f.ReadInteger(&mats[i].numSubMaterials); for (s32 j = i+1; j < i + 1 + mats[i].numSubMaterials; ++j) { mats[j].parentId = mats[i].id; f.FindNext(JASETAG_SUBMATERIAL); f.SkipNextWord(); f.ReadInteger(&mats[j].id); // Slo est permitido un nivel de jerarqua, as que no comprobamos // si es Multi/Sub-object f.FindNext(JASETAG_MATERIAL_CLASS); f.SkipNextWord(); f.ReadWord(mats[j].mtlClass); mats[j].isSubMaterial = true; // Color ambiente f.FindNext(JASETAG_MATERIAL_AMBIENT); f.SkipNextWord(); f.ReadFloat(&mats[j].ambient.r); f.ReadFloat(&mats[j].ambient.g); f.ReadFloat(&mats[j].ambient.b); // Color difuso f.FindNext(JASETAG_MATERIAL_DIFFUSE); f.SkipNextWord(); f.ReadFloat(&mats[j].diffuse.r); f.ReadFloat(&mats[j].diffuse.g); f.ReadFloat(&mats[j].diffuse.b); // Color especular f.FindNext(JASETAG_MATERIAL_SPECULAR); f.SkipNextWord(); f.ReadFloat(&mats[j].specular.r); f.ReadFloat(&mats[j].specular.g); f.ReadFloat(&mats[j].specular.b); // Brillo f.FindNext(JASETAG_MATERIAL_SHINE); f.SkipNextWord(); f.ReadFloat(&mats[j].shine); // Fuerza de brillo f.FindNext(JASETAG_MATERIAL_SHINESTRENGTH); f.SkipNextWord(); f.ReadFloat(&mats[j].shineStrenght); // Transparencia f.FindNext(JASETAG_MATERIAL_TRANSPARENCY); f.SkipNextWord(); f.ReadFloat(&mats[j].transparency); // Iluminacin propia f.FindNext(JASETAG_MATERIAL_SELFILLUM); f.SkipNextWord(); f.ReadFloat(&mats[j].selfIllum); // Si tiene una textura asociada aparecer en la lnea siguiente a // MATERIAL_XP_TYPE f.FindNext(JASETAG_MATERIAL_XP_TYPE); f.NextLine(); f.ReadWord(str); if (strcmp(str, JASETAG_MATERIAL_MAP_DIFFUSE) == 0) { ++fmt->numTextures; mats[j].hasTexture = true; mats[j].textureId = fmt->GetTextureId(); f.FindNext(JASETAG_MATERIAL_BITMAP); f.SkipNextWord(); f.ReadWord(mats[j].texture); u32 len = (u32)strlen(mats[j].texture); memmove(&mats[j].texture[0], &mats[j].texture[1], len - 1); mats[j].texture[len - 2] = 0; } } } else { // Material standard u otro mats[i].isMulti = false; mats[i].numSubMaterials = 0; // Iluminacin propia f.FindNext(JASETAG_MATERIAL_SELFILLUM); f.SkipNextWord(); f.ReadFloat(&mats[i].selfIllum); // Si tiene una textura asociada aparecer en la lnea siguiente a // MATERIAL_XP_TYPE f.FindNext(JASETAG_MATERIAL_XP_TYPE); f.NextLine(); f.ReadWord(str); if (strcmp(str, JASETAG_MATERIAL_MAP_DIFFUSE) == 0) { ++fmt->numTextures; mats[i].hasTexture = true; mats[i].textureId = fmt->GetTextureId(); f.FindNext(JASETAG_MATERIAL_BITMAP); f.SkipNextWord(); f.ReadWord(mats[i].texture); u32 len = (u32)strlen(mats[i].texture); memmove(&mats[i].texture[0], &mats[i].texture[1], len - 1); mats[i].texture[len - 2] = 0; } } // Acumulamos los submateriales procesados y/o el actual i += mats[i].numSubMaterials + 1; } return true; } // Carga los objetos (geometra) del fichero ASE. // Devuelve true si todo fue bien, false en otro caso. bool JASELoader::LoadObjects(JASEFormat *fmt) { f.StartOfDocument(); // Cuenta los objetos fmt->numObjects = 0; while (f.FindNext(JASETAG_GEOMOBJECT)) { f.SkipNextWord(); ++fmt->numObjects; } // Crea el array de objetos fmt->objects = new JASEMesh[fmt->numObjects]; JASEMesh *objs = fmt->objects; f.StartOfDocument(); for (s32 i = 0; i < fmt->numObjects; ++i) { // Nombre f.FindNext(JASETAG_NODE_NAME); f.SkipNextWord(); f.ReadWord(objs[i].name); // Quita las comillas u32 len = (u32)strlen(objs[i].name); memmove(&objs[i].name[0], &objs[i].name[1], len - 1); objs[i].name[len - 2] = 0; // Procesa la geometra... f.FindNext(JASETAG_MESH); f.SkipNextWord(); s8 *oldPos = f.GetPos(); // Nmero de vrtices: crea el array de vrtices y de normales if (i == 64) i = i; f.FindNext(JASETAG_MESH_NUMVERTEX); f.SkipNextWord(); f.ReadInteger(&objs[i].numVertices); objs[i].vertices = new JASEVertex[objs[i].numVertices]; JASEVertex *verts = objs[i].vertices; // Nmero de caras: crea el array de caras f.FindNext(JASETAG_MESH_NUMFACES); f.SkipNextWord(); f.ReadInteger(&objs[i].numFaces); objs[i].faces = new JASEFace[objs[i].numFaces]; JASEFace *faces = objs[i].faces; // Lista de vrtices f.FindNext(JASETAG_MESH_VERTEX_LIST); f.SkipNextWord(); for (s32 j = 0; j < objs[i].numVertices; ++j) { f.FindNext(JASETAG_MESH_VERTEX); f.SkipNextWord(); f.SkipNextWord(); // Saltamos el ndice de vrtice // OJO! MAX da la vuelta... hay que cambiar Y por -Z f.ReadFloat(&verts[j].x); f.ReadFloat(&verts[j].z); f.ReadFloat(&verts[j].y); verts[j].z = -verts[j].z; } // Buscamos primero la referencia del material... s32 mtlRef; f.FindNext(JASETAG_MATERIAL_REF);f.SkipNextWord(); f.ReadInteger(&mtlRef); // ...Buscamos el material correspondiente a esa referencia... s32 mtlIndex = 0; while (mtlIndex < fmt->numMaterials && fmt->materials[mtlIndex].id != mtlRef) { // Avanzamos el n de submateriales que indique este material y vamos al siguiente if (fmt->materials[mtlIndex].isMulti) mtlIndex += fmt->materials[mtlIndex].numSubMaterials; else ++mtlIndex; } // Si no lo encuentra, salimos if (fmt->materials[mtlIndex].id != mtlRef) return false; // Si lo encontr, volvemos al punto de inicio f.SetPos(oldPos); // Asignamos el material a la cara (queda pendiente ponerle textura) ... s32 vInd; if (fmt->materials[mtlIndex].isMulti) { // Lista de caras s32 m; f.FindNext(JASETAG_MESH_FACE_LIST); f.SkipNextWord(); for (s32 k = 0; k < objs[i].numFaces; ++k) { // A: f.FindNext(JASETAG_MESH_A); f.SkipNextWord(); f.ReadInteger(&faces[k].v1); // B: f.FindNext(JASETAG_MESH_B); f.SkipNextWord(); f.ReadInteger(&faces[k].v2); // C: f.FindNext(JASETAG_MESH_C); f.SkipNextWord(); f.ReadInteger(&faces[k].v3); // MTLID f.FindNext(JASETAG_MESH_MTLID); f.SkipNextWord(); f.ReadInteger(&m); // Si es Multi/subobjeto debemos atender al MTLID de las caras... // v. nota al comienzo del .h faces[k].material = &fmt->materials[mtlIndex + 1 + (m%fmt->materials[mtlIndex].numSubMaterials)]; } } else { // MATERIAL_REF // Lista de caras f.FindNext(JASETAG_MESH_FACE_LIST); f.SkipNextWord(); for (s32 k = 0; k < objs[i].numFaces; ++k) { f.FindNext(JASETAG_MESH_FACE); // A: f.FindNext(JASETAG_MESH_A); f.SkipNextWord(); f.ReadInteger(&faces[k].v1); // B: f.FindNext(JASETAG_MESH_B); f.SkipNextWord(); f.ReadInteger(&faces[k].v2); // C: f.FindNext(JASETAG_MESH_C); f.SkipNextWord(); f.ReadInteger(&faces[k].v3); // Al no tener un material Multi asignado, todas las caras tienen el // material indicado en MATERIAL_REF faces[k].material = &fmt->materials[mtlIndex]; } } // Texturas. // El nmero de vrtices de textura puede ser (y, en general, ser) // diferente al nmero de vrtices totales f.FindNext(JASETAG_MESH_NUMTVERTEX); f.SkipNextWord(); f.ReadInteger(&objs[i].numTVertices); // Creamos el array de vrtices de textura y lo rellenamos objs[i].tVertices = new JASETextureVertex[objs[i].numTVertices]; if (f.FindNext(JASETAG_MESH_TVERTLIST)) { f.SkipNextWord(); for (s32 b = 0; b < objs[i].numTVertices; ++b) { f.FindNext(JASETAG_MESH_TVERT); f.SkipNextWord(); f.SkipNextWord(); // OJO: Comprobar que x e y corresponden a las mismas U, V en OpenGL f.ReadFloat(&objs[i].tVertices[b].u); f.ReadFloat(&objs[i].tVertices[b].v); } } // El nmero de caras de textura puede es // igual al nmero de caras totales if (f.FindNext(JASETAG_MESH_NUMTVFACES)) { f.SkipNextWord(); f.ReadInteger(&objs[i].numTFaces); // Creamos el array de caras de textura y lo rellenamos if (objs[i].numTFaces > 0) { objs[i].tFaces = new JASETextureFace[objs[i].numTFaces]; f.FindNext(JASETAG_MESH_TFACELIST); f.SkipNextWord(); for (s32 c = 0; c < objs[i].numTFaces; ++c) { f.FindNext(JASETAG_MESH_TFACE); f.SkipNextWord(); f.SkipNextWord(); f.ReadInteger(&objs[i].tFaces[c].v1); f.ReadInteger(&objs[i].tFaces[c].v2); f.ReadInteger(&objs[i].tFaces[c].v3); } } } // Calcula las normales a las caras objs[i].vertexNormals = new JASEVertex[objs[i].numVertices]; memset(objs[i].vertexNormals, 0, sizeof(JASEVertex) * objs[i].numVertices); JASEVertex *vNorm = objs[i].vertexNormals; JVector v1, v2, v3, vt1, vt2, vn; for (s32 d = 0; d < objs[i].numFaces; ++d) { if (d == 35) d = d; v1 = JVector(objs[i].vertices[faces[d].v1].x, objs[i].vertices[faces[d].v1].y, objs[i].vertices[faces[d].v1].z); v2 = JVector(objs[i].vertices[faces[d].v2].x, objs[i].vertices[faces[d].v2].y, objs[i].vertices[faces[d].v2].z); v3 = JVector(objs[i].vertices[faces[d].v3].x, objs[i].vertices[faces[d].v3].y, objs[i].vertices[faces[d].v3].z); vt1 = (v3 - v1); vt2 = (v3 - v2); vn = vt1.Cross(vt2); vn.Normalize(); faces[d].normal.x = vn.x; faces[d].normal.y = vn.y; faces[d].normal.z = vn.z; } // Asigna las normales a cada vrtice s32 *shared = new s32[objs[i].numVertices]; memset(shared, 0, sizeof(s32) * objs[i].numVertices); for (s32 k = 0; k < objs[i].numFaces; ++k) { if (i == 219 && k == 68) i = i; // Si algn da quieres quedarte con las normales del ASE... /* f.FindNext(JASETAG_MESH_FACENORMAL); f.SkipNextWord(); f.SkipNextWord(); f.ReadFloat(&faces[k].normal.x); f.ReadFloat(&faces[k].normal.z); // Por el cambio de MAX y -> -z f.ReadFloat(&faces[k].normal.y); faces[k].normal.z = -faces[k].normal.z; */ // Suma las normales dadas a cada vrtice de la cara. Resultado: // al final todas las normales estarn promediadas en cada vrtice. f.FindNext(JASETAG_MESH_VERTEXNORMAL); f.SkipNextWord(); f.ReadInteger(&vInd); vNorm[vInd].x += faces[k].normal.x; vNorm[vInd].y += faces[k].normal.y; vNorm[vInd].z += faces[k].normal.z; ++shared[vInd]; f.FindNext(JASETAG_MESH_VERTEXNORMAL); f.SkipNextWord(); f.ReadInteger(&vInd); vNorm[vInd].x += faces[k].normal.x; vNorm[vInd].y += faces[k].normal.y; vNorm[vInd].z += faces[k].normal.z; ++shared[vInd]; f.FindNext(JASETAG_MESH_VERTEXNORMAL); f.SkipNextWord(); f.ReadInteger(&vInd); vNorm[vInd].x += faces[k].normal.x; vNorm[vInd].y += faces[k].normal.y; vNorm[vInd].z += faces[k].normal.z; ++shared[vInd]; } // Promedia y normaliza las normales sumadas para cada vrtice for (s32 h = 0; h < objs[i].numVertices; ++h) { vn = JVector(objs[i].vertexNormals[h].x, objs[i].vertexNormals[h].y, objs[i].vertexNormals[h].z); vn /= JScalar(shared[h]); vn.Normalize(); objs[i].vertexNormals[h].x = vn.x; objs[i].vertexNormals[h].y = vn.y; objs[i].vertexNormals[h].z = vn.z; } delete[] shared; } return true; } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLGrid.h0000600000175000001440000000436611177007633020753 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 01/04/2003 // @description: Cuadrcula /////////////////////////////////////////////////////////////////////////////// #ifndef _JGLGRID_INCLUDED #define _JGLGRID_INCLUDED #include #include #include #include #include class JGLGrid : public JDrawable { public: GLuint nList; // ndice de lista de OpengGL float scale; // Escala de cuadrante s32 divs; // Divisiones por cuadrante JGLColorf color; // Color u8 orient; // Orientacin static const u8 XY; // Cuadrcula en plano XY static const u8 YZ; // Cuadrcula en plano YZ static const u8 ZX; // Cuadrcula en plano ZX // Crea unos ejes coordenados JGLGrid(s32 _divs = 10, float fScale = 10.0f, JGLColorf _color = JGLColorf(0.0f, 1.0f, 0.0f, 1.0f), const u8 _orient = ZX); // Crea la lista de OpenGL void RebuildList(); // Pinta la cuadrcula void Draw(); }; #endif // _JGLGRID_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/Makefile0000600000175000001440000000077211177007633021015 0ustar jacobusers# Makefile para JLib. # (C) Juan Carlos Seijo Prez - 2003. ADD_INCLUDE=-I. -I/usr/local/include GRAPHICS=JLib/Graphics UTIL=JLib/Util MATH=JLib/Math SOUND=JLib/Sound PHYSICS=JLib/Physics JSPRITED=JLib/JSprited JSCENED=JLib/JScened TARGET=libJLib.so libJLib.a JSprited JScened DBG_FLAG=-g OPTIM=-O4 -mcpu=pentium2 -march=pentium2 WITH_LIBS=-lSDL -lSDL_image -lGL -lGLU -lfltk -lfltk_images all: *.o *.o: *.cpp *.h echo $? g++ $(DBG_FLAG) $(ADD_INCLUDE) -c -o $@ $< .PHONY: clean clean: rm -rf *.o holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLConsoleFont.h0000600000175000001440000005657411177007633022327 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 20/10/2003 // @description: Consola de texto para OpenGL independiente de la plataforma. /////////////////////////////////////////////////////////////////////////////// #ifndef _JGLCONSOLEFONT_INCLUDED #define _JGLCONSOLEFONT_INCLUDED #include const u8 JGLCONSOLEFONT1[256][8] = { {0x00,0x00,0x00,0x40,0x80,0x80,0x80,0x40,}, {0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,}, {0x00,0x00,0x00,0xc0,0x80,0xc0,0x40,0xc0,}, {0x00,0x00,0x00,0xc0,0x40,0xc0,0x40,0xc0,}, {0x00,0x00,0x00,0x40,0x40,0xc0,0x80,0x80,}, {0x00,0x00,0x00,0xc0,0x40,0xc0,0x80,0xc0,}, {0x00,0x00,0x00,0xc0,0xc0,0xc0,0x80,0x80,}, {0x00,0x00,0x00,0x80,0x80,0x80,0x40,0xc0,}, {0x00,0x00,0x00,0x40,0x80,0x40,0x80,0x40,}, {0x00,0x00,0x00,0x40,0x40,0xc0,0xc0,0xc0,}, {0x00,0x00,0x00,0x90,0xa0,0xa0,0xa0,0x90,}, {0x00,0x00,0x00,0x90,0x90,0x90,0x90,0x90,}, {0x00,0x00,0x00,0xb0,0xa0,0xb0,0x90,0xb0,}, {0x00,0x00,0x00,0xb0,0x90,0xb0,0x90,0xb0,}, {0x00,0x00,0x00,0x90,0x90,0xb0,0xa0,0xa0,}, {0x00,0x00,0x00,0xb0,0x90,0xb0,0xa0,0xb0,}, {0x00,0x00,0x00,0x98,0x98,0x98,0x90,0x90,}, {0x00,0x00,0x00,0x90,0x90,0x90,0x88,0x98,}, {0x00,0x00,0x00,0x98,0x98,0x80,0x98,0x98,}, {0x00,0x00,0x00,0x88,0x88,0x98,0x98,0x98,}, {0x00,0x00,0x00,0xc8,0x90,0xd0,0x50,0xc8,}, {0x00,0x00,0x00,0xd0,0x90,0xd0,0x50,0xd0,}, {0x00,0x00,0x00,0xd8,0x90,0xd8,0x48,0xd8,}, {0x00,0x00,0x00,0xd8,0x88,0xd8,0x48,0xd8,}, {0x00,0x00,0x00,0xc8,0x88,0xd8,0x50,0xd0,}, {0x00,0x00,0x00,0xd8,0x88,0xd8,0x50,0xd8,}, {0x00,0x00,0x00,0xd8,0x98,0xd8,0x50,0xd0,}, {0x00,0x00,0x00,0xd0,0x90,0xd0,0x48,0xd8,}, {0x00,0x00,0x00,0xc8,0x90,0xc8,0x50,0xc8,}, {0x00,0x00,0x00,0xc8,0x88,0xd8,0x58,0xd8,}, {0x00,0x00,0x00,0xc8,0x50,0xd0,0x50,0xc8,}, {0x00,0x00,0x00,0xd0,0x50,0xd0,0x50,0xd0,}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, {0x00,0x10,0x00,0x10,0x10,0x20,0x20,0x20,}, {0x00,0x00,0x00,0x00,0x00,0x28,0x6c,0x6c,}, {0x00,0x44,0xfe,0x44,0x44,0x44,0xfe,0x44,}, {0x00,0x10,0x7c,0x12,0x7c,0x90,0x7c,0x10,}, {0x00,0x04,0x4a,0x24,0x10,0x48,0xa4,0x40,}, {0x00,0x70,0x8c,0x88,0x54,0x20,0x40,0x38,}, {0x00,0x00,0x00,0x00,0x00,0x10,0x30,0x30,}, {0x00,0x18,0x20,0x20,0x20,0x20,0x10,0x08,}, {0x00,0x20,0x10,0x08,0x08,0x08,0x08,0x30,}, {0x00,0x00,0x54,0x38,0x7c,0x38,0x54,0x00,}, {0x00,0x00,0x10,0x10,0x7c,0x10,0x10,0x00,}, {0x00,0x10,0x30,0x20,0x00,0x00,0x00,0x00,}, {0x00,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,}, {0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,}, {0x00,0x00,0x40,0x20,0x10,0x08,0x04,0x00,}, {0x00,0xbc,0x42,0xa2,0x92,0x8a,0x84,0x7a,}, {0x00,0x08,0x08,0x28,0x18,0x08,0x08,0x08,}, {0x00,0x7e,0x80,0x40,0x3c,0x02,0x84,0x78,}, {0x00,0x60,0x90,0x88,0x04,0x3c,0x04,0xfc,}, {0x00,0x02,0x02,0x3e,0x42,0x82,0x82,0x82,}, {0x00,0xf0,0x08,0x04,0x02,0xfc,0x80,0xfe,}, {0x00,0x3c,0x42,0x82,0x84,0xf8,0x80,0x70,}, {0x00,0x80,0x80,0x40,0x20,0x1c,0x02,0xfe,}, {0x00,0x7c,0x82,0x82,0x82,0x7c,0x82,0x7c,}, {0x00,0xe0,0x10,0x08,0x7c,0x82,0x82,0x7c,}, {0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,}, {0x00,0x10,0x30,0x20,0x00,0x30,0x30,0x00,}, {0x00,0x08,0x10,0x20,0x40,0x20,0x10,0x08,}, {0x00,0x00,0x00,0x7c,0x00,0x7c,0x00,0x00,}, {0x00,0x20,0x10,0x08,0x04,0x08,0x10,0x20,}, {0x00,0x10,0x00,0x10,0x18,0x04,0x44,0x38,}, {0x00,0x38,0x40,0x9c,0xaa,0x92,0x44,0x38,}, {0x00,0x82,0x82,0x82,0x7e,0x22,0x12,0x0c,}, {0x00,0xfc,0x82,0x84,0xf8,0x84,0x82,0xfc,}, {0x00,0x7e,0x80,0x80,0x40,0x20,0x10,0x0e,}, {0x00,0xfc,0x82,0x82,0x84,0x88,0x90,0xe0,}, {0x00,0xfe,0x80,0x80,0x7c,0x20,0x10,0x0e,}, {0x00,0x80,0x80,0x80,0x78,0x20,0x10,0x0e,}, {0x00,0x7c,0x82,0x82,0x46,0x20,0x10,0x0e,}, {0x00,0x82,0x82,0x82,0xfe,0x82,0x82,0x82,}, {0x00,0xfe,0x10,0x10,0x10,0x10,0x10,0xfe,}, {0x00,0x7c,0x82,0x82,0x44,0x08,0x10,0xe0,}, {0x00,0x82,0x84,0x88,0x90,0xe0,0x90,0x88,}, {0x00,0xfe,0x80,0x80,0x40,0x20,0x10,0x08,}, {0x00,0x82,0x82,0x8a,0x96,0xa2,0xc0,0x80,}, {0x00,0x82,0x86,0x8a,0x92,0xa0,0xc0,0x80,}, {0x00,0x70,0x88,0x84,0x82,0x42,0x22,0x1c,}, {0x00,0x80,0x80,0xf0,0x88,0x84,0x82,0xfc,}, {0x00,0x72,0x8c,0x8c,0x82,0x42,0x22,0x1c,}, {0x00,0x82,0x84,0x88,0xf0,0x88,0x84,0xf8,}, {0x00,0xf0,0x08,0x04,0x38,0x40,0x20,0x1e,}, {0x00,0x08,0x08,0x08,0x08,0x08,0x08,0xfe,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x82,0x82,}, {0x00,0x06,0x0a,0x12,0x22,0x42,0x82,0x82,}, {0x00,0x12,0x36,0x5a,0x92,0x82,0x82,0x82,}, {0x00,0x82,0x44,0x28,0x10,0x28,0x44,0x82,}, {0x00,0xe0,0x10,0x08,0x14,0x22,0x42,0x42,}, {0x00,0xfe,0x40,0x20,0x10,0x08,0x04,0xfe,}, {0x00,0x38,0x20,0x20,0x20,0x20,0x20,0x38,}, {0x00,0x00,0x04,0x08,0x10,0x20,0x40,0x00,}, {0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x38,}, {0x00,0x00,0x00,0x00,0x00,0x44,0x28,0x10,}, {0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, {0x00,0x00,0x00,0x00,0x00,0x08,0x18,0x30,}, {0x00,0x7e,0x82,0x7e,0x02,0x1c,0x00,0x00,}, {0x00,0xfc,0x82,0x84,0xf8,0x80,0x80,0x00,}, {0x00,0x7e,0x80,0x40,0x3e,0x00,0x00,0x00,}, {0x00,0x7e,0x82,0x42,0x3e,0x02,0x02,0x00,}, {0x00,0x38,0x40,0xfc,0x42,0x3c,0x00,0x00,}, {0x00,0x80,0x80,0x70,0x20,0x1e,0x00,0x00,}, {0x00,0x38,0x04,0x7e,0x84,0x78,0x00,0x00,}, {0x00,0x82,0x82,0x84,0xf8,0x80,0x00,0x00,}, {0x00,0xfe,0x08,0x08,0x10,0x00,0x08,0x00,}, {0x00,0x78,0x84,0x82,0x0c,0x00,0x08,0x00,}, {0x00,0x82,0x84,0xf8,0x90,0x88,0x00,0x00,}, {0x00,0x3e,0x40,0x80,0x80,0x80,0x00,0x00,}, {0x00,0x82,0x82,0x42,0x2a,0x14,0x00,0x00,}, {0x00,0x82,0x82,0x84,0xc8,0xb0,0x00,0x00,}, {0x00,0x78,0x84,0x82,0x42,0x3c,0x00,0x00,}, {0x00,0x80,0xf8,0x84,0x82,0xfc,0x00,0x00,}, {0x00,0x02,0x7e,0x82,0x42,0x3c,0x00,0x00,}, {0x00,0x80,0x80,0xc0,0xa0,0x9e,0x00,0x00,}, {0x00,0xf8,0x04,0x18,0x20,0x1e,0x00,0x00,}, {0x00,0x06,0x08,0x10,0x10,0xf8,0x10,0x00,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x00,0x00,}, {0x00,0x0e,0x12,0x22,0x42,0x82,0x00,0x00,}, {0x00,0x2c,0x52,0x82,0x82,0x82,0x00,0x00,}, {0x00,0x82,0x44,0x38,0x44,0x82,0x00,0x00,}, {0x00,0xe0,0x10,0x08,0x14,0x22,0x00,0x00,}, {0x00,0x3e,0x20,0x10,0x08,0xf8,0x00,0x00,}, {0x00,0x18,0x20,0x20,0x40,0x20,0x20,0x18,}, {0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,}, {0x00,0x30,0x08,0x08,0x04,0x08,0x08,0x30,}, {0x00,0x00,0x00,0x00,0x0c,0x92,0x60,0x00,}, {0x00,0x00,0xd1,0x8a,0xca,0x92,0xc9,0x00,}, {0x00,0x3e,0x40,0xf8,0x40,0xfc,0x20,0x1e,}, {0x00,0x00,0x00,0x99,0x91,0x9b,0x8b,0x9b,}, {0x00,0x60,0x30,0x18,0x00,0x00,0x00,0x00,}, {0x00,0x60,0x90,0x10,0x38,0x10,0x12,0x0c,}, {0x00,0xcc,0x66,0x33,0x00,0x00,0x00,0x00,}, {0x00,0x54,0x00,0x00,0x00,0x00,0x00,0x00,}, {0x00,0x10,0x10,0x10,0x10,0x38,0x7c,0x10,}, {0x00,0x10,0x7c,0x10,0x10,0x10,0x7c,0x10,}, {0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x10,}, {0x00,0x8a,0x55,0x2a,0x10,0x48,0xa4,0x42,}, {0x00,0xfc,0x02,0x7c,0x80,0x7e,0x10,0x38,}, {0x00,0x10,0x20,0x40,0x20,0x10,0x00,0x00,}, {0x00,0x78,0x44,0x44,0x74,0x44,0x44,0x78,}, {0x00,0x00,0x00,0x8a,0x8a,0x9a,0x92,0x92,}, {0x00,0xfe,0x80,0x7c,0x02,0xfe,0x10,0x38,}, {0x00,0x00,0x00,0x8b,0x89,0x9b,0x91,0x93,}, {0x00,0x00,0x00,0x89,0x89,0x9b,0x92,0x92,}, {0x00,0x00,0x00,0x00,0x00,0x0c,0x18,0x30,}, {0x00,0x00,0x00,0x00,0x00,0x60,0x30,0x18,}, {0x00,0x00,0x00,0x00,0x00,0x24,0x48,0x90,}, {0x00,0x00,0x00,0x00,0x00,0x48,0x24,0x12,}, {0x00,0x00,0x38,0x7c,0x7c,0x7c,0x38,0x00,}, {0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,}, {0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,}, {0x00,0x00,0x00,0x00,0x00,0x08,0x54,0x20,}, {0x00,0x00,0x00,0x00,0x00,0x4a,0x4e,0xea,}, {0x00,0xfc,0x02,0x7c,0x80,0x7e,0x10,0x38,}, {0x00,0x10,0x08,0x04,0x08,0x10,0x00,0x00,}, {0x00,0x6e,0x90,0x90,0x9c,0x92,0x92,0x6c,}, {0x00,0x00,0x00,0x9a,0x8a,0x9a,0x91,0x9b,}, {0x00,0xfe,0x80,0x78,0x04,0xfc,0x10,0x38,}, {0x00,0x38,0x10,0x38,0x44,0xee,0x00,0x44,}, {0x00,0x00,0x00,0x99,0x9a,0x9a,0x92,0x91,}, {0x00,0x20,0x20,0x20,0x10,0x10,0x00,0x10,}, {0x00,0x10,0x7c,0x80,0x40,0x20,0x1e,0x08,}, {0x00,0x7e,0x20,0x10,0x7c,0x20,0x24,0x18,}, {0x00,0x00,0x54,0x28,0x44,0x28,0x54,0x00,}, {0x38,0x10,0x7c,0x10,0xfe,0x10,0x28,0xc6,}, {0x00,0x10,0x10,0x10,0x00,0x10,0x10,0x10,}, {0x00,0xf0,0x0c,0x32,0x4c,0xb0,0x40,0x3c,}, {0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0x6c,}, {0x00,0x38,0x44,0xba,0xa2,0xba,0x44,0x38,}, {0x00,0x00,0x00,0x00,0x38,0x38,0x08,0x30,}, {0x00,0x00,0x12,0x24,0x48,0x24,0x12,0x00,}, {0x00,0x00,0x04,0x04,0x7c,0x00,0x00,0x00,}, {0x00,0x7c,0xaa,0xaa,0xb2,0xaa,0x92,0x7c,}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,}, {0x00,0x00,0x00,0x93,0x91,0x93,0x8a,0x9b,}, {0x00,0x00,0x00,0x00,0x30,0x48,0x48,0x30,}, {0x00,0x7c,0x00,0x10,0x10,0x7c,0x10,0x10,}, {0x00,0x00,0x00,0x3c,0x10,0x08,0x24,0x18,}, {0x00,0x00,0x00,0x30,0x08,0x18,0x08,0x38,}, {0x00,0x00,0x00,0x00,0x00,0x20,0x10,0x08,}, {0x00,0x80,0x80,0x84,0xf8,0x88,0x88,0x00,}, {0x00,0xe8,0x28,0x28,0x68,0xa8,0xa8,0x7c,}, {0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,}, {0x00,0x18,0x08,0x00,0x00,0x00,0x00,0x00,}, {0x00,0x00,0x00,0x38,0x10,0x10,0x30,0x10,}, {0x00,0x00,0x00,0x10,0x28,0x28,0x28,0x10,}, {0x00,0x00,0x48,0x24,0x12,0x24,0x48,0x00,}, {0x00,0x82,0x4e,0x2a,0x10,0x48,0x44,0x42,}, {0x00,0x86,0x44,0x22,0x16,0x48,0x44,0x42,}, {0x00,0x82,0x4e,0xea,0x50,0xc8,0x44,0xc2,}, {0x00,0x38,0x44,0x40,0x30,0x10,0x00,0x10,}, {0x00,0x82,0x7e,0x22,0x12,0x0c,0x04,0x08,}, {0x00,0x82,0x7e,0x22,0x12,0x0c,0x04,0x02,}, {0x00,0x82,0x7e,0x22,0x12,0x0c,0x0a,0x04,}, {0x00,0x82,0x7e,0x22,0x12,0x0c,0x14,0x0a,}, {0x00,0x82,0x7e,0x22,0x12,0x0c,0x00,0x12,}, {0x00,0x82,0x7e,0x22,0x12,0x0c,0x12,0x0c,}, {0x00,0x8e,0xf8,0x48,0x4c,0x28,0x28,0x1e,}, {0x00,0x18,0x08,0x7e,0x80,0x40,0x20,0x1e,}, {0x00,0xfe,0x40,0x38,0x10,0x0e,0x04,0x08,}, {0x00,0xfe,0x40,0x38,0x10,0x0e,0x04,0x02,}, {0x00,0xfe,0x40,0x38,0x10,0x0e,0x0a,0x04,}, {0x00,0xfe,0x40,0x38,0x10,0x0e,0x00,0x12,}, {0x00,0xfe,0x10,0x10,0x10,0xfe,0x08,0x10,}, {0x00,0xfe,0x10,0x10,0x10,0xfe,0x10,0x08,}, {0x00,0xfe,0x10,0x10,0x10,0xfe,0x28,0x10,}, {0x00,0xfe,0x10,0x10,0x10,0xfe,0x00,0x44,}, {0x00,0x78,0x44,0x44,0x74,0x44,0x44,0x78,}, {0x00,0x82,0x86,0x8a,0x92,0xa0,0xc0,0x9e,}, {0x00,0x78,0x84,0x82,0x42,0x3c,0x08,0x10,}, {0x00,0x78,0x84,0x82,0x42,0x3c,0x08,0x04,}, {0x00,0x78,0x84,0x82,0x42,0x3c,0x14,0x08,}, {0x00,0x78,0x84,0x82,0x42,0x3c,0x14,0x0a,}, {0x00,0x78,0x84,0x82,0x42,0x3c,0x00,0x12,}, {0x00,0x00,0x44,0x28,0x10,0x28,0x44,0x00,}, {0x00,0xb0,0x48,0xa4,0x92,0x4a,0x24,0x1a,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x10,0x20,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x10,0x08,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x28,0x10,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x00,0x44,}, {0x00,0xe0,0x10,0x18,0x24,0x42,0x52,0x08,}, {0x00,0xfc,0x40,0x70,0x48,0x70,0x40,0xfc,}, {0x00,0xb8,0x84,0x84,0x88,0x90,0x48,0x30,}, {0x00,0x7e,0x82,0x7e,0x02,0x1c,0x08,0x10,}, {0x00,0x7e,0x82,0x7e,0x02,0x1c,0x08,0x04,}, {0x00,0x7e,0x82,0x7e,0x02,0x1c,0x14,0x08,}, {0x00,0x7e,0x82,0x7e,0x02,0x1c,0x28,0x14,}, {0x00,0x7e,0x82,0x7e,0x02,0x1c,0x00,0x24,}, {0x00,0x7e,0x82,0x7e,0x02,0x1c,0x24,0x18,}, {0x00,0x7c,0x90,0x7c,0x12,0x6c,0x00,0x00,}, {0x00,0x18,0x08,0x7e,0x80,0x40,0x20,0x1e,}, {0x00,0x38,0x40,0xfc,0x42,0x3c,0x10,0x20,}, {0x00,0x38,0x40,0xfc,0x42,0x3c,0x08,0x04,}, {0x00,0x38,0x40,0xfc,0x42,0x3c,0x28,0x10,}, {0x00,0x38,0x40,0xfc,0x42,0x3c,0x00,0x24,}, {0x00,0xfe,0x08,0x08,0x10,0x00,0x08,0x10,}, {0x00,0xfe,0x08,0x08,0x10,0x00,0x08,0x04,}, {0x00,0xfe,0x08,0x08,0x10,0x00,0x28,0x10,}, {0x00,0xfe,0x08,0x08,0x10,0x00,0x00,0x48,}, {0x00,0x7c,0x82,0x82,0x7c,0x28,0x4c,0x32,}, {0x00,0x82,0x82,0x84,0xc8,0xb0,0x00,0xf0,}, {0x00,0x78,0x84,0x82,0x42,0x3c,0x10,0x20,}, {0x00,0x78,0x84,0x82,0x42,0x3c,0x08,0x04,}, {0x00,0x78,0x84,0x82,0x42,0x3c,0x14,0x08,}, {0x00,0x78,0x84,0x82,0x42,0x3c,0x28,0x14,}, {0x00,0x78,0x84,0x82,0x42,0x3c,0x00,0x12,}, {0x00,0x00,0x10,0x00,0x7c,0x00,0x10,0x00,}, {0x00,0xf8,0xe4,0x9a,0x46,0x3e,0x00,0x00,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x10,0x20,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x10,0x08,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x28,0x10,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x00,0x44,}, {0x00,0xe0,0x10,0x18,0x24,0x42,0x10,0x08,}, {0x00,0xc0,0x5c,0x62,0x62,0x62,0x5c,0xc0,}, {0x00,0x00,0x00,0xdb,0x89,0xdb,0x52,0xdb,}, }; const u8 JGLCONSOLEFONT2[256][8] = { {0x00,0x00,0x00,0x40,0x80,0x80,0x80,0x40,}, {0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,}, {0x00,0x00,0x00,0xc0,0x80,0xc0,0x40,0xc0,}, {0x00,0x00,0x00,0xc0,0x40,0xc0,0x40,0xc0,}, {0x00,0x00,0x00,0x40,0x40,0xc0,0x80,0x80,}, {0x00,0x00,0x00,0xc0,0x40,0xc0,0x80,0xc0,}, {0x00,0x00,0x00,0xc0,0xc0,0xc0,0x80,0x80,}, {0x00,0x00,0x00,0x80,0x80,0x80,0x40,0xc0,}, {0x00,0x00,0x00,0x40,0x80,0x40,0x80,0x40,}, {0x00,0x00,0x00,0x40,0x40,0xc0,0xc0,0xc0,}, {0x00,0x00,0x00,0x90,0xa0,0xa0,0xa0,0x90,}, {0x00,0x00,0x00,0x90,0x90,0x90,0x90,0x90,}, {0x00,0x00,0x00,0xb0,0xa0,0xb0,0x90,0xb0,}, {0x00,0x00,0x00,0xb0,0x90,0xb0,0x90,0xb0,}, {0x00,0x00,0x00,0x90,0x90,0xb0,0xa0,0xa0,}, {0x00,0x00,0x00,0xb0,0x90,0xb0,0xa0,0xb0,}, {0x00,0x00,0x00,0x98,0x98,0x98,0x90,0x90,}, {0x00,0x00,0x00,0x90,0x90,0x90,0x88,0x98,}, {0x00,0x00,0x00,0x98,0x98,0x80,0x98,0x98,}, {0x00,0x00,0x00,0x88,0x88,0x98,0x98,0x98,}, {0x00,0x00,0x00,0xc8,0x90,0xd0,0x50,0xc8,}, {0x00,0x00,0x00,0xd0,0x90,0xd0,0x50,0xd0,}, {0x00,0x00,0x00,0xd8,0x90,0xd8,0x48,0xd8,}, {0x00,0x00,0x00,0xd8,0x88,0xd8,0x48,0xd8,}, {0x00,0x00,0x00,0xc8,0x88,0xd8,0x50,0xd0,}, {0x00,0x00,0x00,0xd8,0x88,0xd8,0x50,0xd8,}, {0x00,0x00,0x00,0xd8,0x98,0xd8,0x50,0xd0,}, {0x00,0x00,0x00,0xd0,0x90,0xd0,0x48,0xd8,}, {0x00,0x00,0x00,0xc8,0x90,0xc8,0x50,0xc8,}, {0x00,0x00,0x00,0xc8,0x88,0xd8,0x58,0xd8,}, {0x00,0x00,0x00,0xc8,0x50,0xd0,0x50,0xc8,}, {0x00,0x00,0x00,0xd0,0x50,0xd0,0x50,0xd0,}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}, {0x00,0x10,0x00,0x10,0x10,0x20,0x20,0x20,}, {0x00,0x00,0x00,0x00,0x00,0x28,0x6c,0x6c,}, {0x00,0x44,0xfe,0x44,0x44,0x44,0xfe,0x44,}, {0x00,0x10,0x7c,0x12,0x7c,0x90,0x7c,0x10,}, {0x00,0x04,0x4a,0x24,0x10,0x48,0xa4,0x40,}, {0x00,0x70,0x8c,0x88,0x54,0x20,0x40,0x38,}, {0x00,0x00,0x00,0x00,0x00,0x10,0x30,0x30,}, {0x00,0x18,0x20,0x20,0x20,0x20,0x10,0x08,}, {0x00,0x20,0x10,0x08,0x08,0x08,0x08,0x30,}, {0x00,0x00,0x54,0x38,0x7c,0x38,0x54,0x00,}, {0x00,0x00,0x10,0x10,0x7c,0x10,0x10,0x00,}, {0x00,0x10,0x30,0x20,0x00,0x00,0x00,0x00,}, {0x00,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,}, {0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,}, {0x00,0x00,0x40,0x20,0x10,0x08,0x04,0x00,}, {0x00,0x7c,0xfe,0xb2,0x9a,0x8e,0xfe,0x7c,}, {0x00,0x08,0x08,0x08,0x08,0x38,0x38,0x18,}, {0x00,0xfe,0xfe,0xe0,0x7c,0x0e,0xfe,0x7c,}, {0x00,0x7c,0xfe,0x86,0x1e,0x06,0xfe,0xfe,}, {0x00,0x06,0x06,0xfe,0xfe,0xc6,0xc6,0xc6,}, {0x00,0xfe,0xfe,0x06,0xfe,0xc0,0xfe,0xfe,}, {0x00,0x7c,0xfe,0xc6,0xfc,0xc0,0xfe,0x7e,}, {0x00,0x30,0x30,0x30,0x18,0x0c,0xfe,0xfe,}, {0x00,0x7c,0xfe,0xc6,0x7c,0xc6,0xfe,0x7c,}, {0x00,0x30,0x18,0x7c,0xfe,0xc6,0xfe,0x7c,}, {0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,}, {0x00,0x10,0x30,0x20,0x00,0x30,0x30,0x00,}, {0x00,0x08,0x10,0x20,0x40,0x20,0x10,0x08,}, {0x00,0x00,0x00,0x7c,0x00,0x7c,0x00,0x00,}, {0x00,0x20,0x10,0x08,0x04,0x08,0x10,0x20,}, {0x00,0x10,0x00,0x10,0x18,0x04,0x44,0x38,}, {0x00,0x38,0x40,0x9c,0xaa,0x92,0x44,0x38,}, {0x00,0x82,0x82,0xfe,0xfe,0x82,0xfe,0x7c,}, {0x00,0xfc,0xfe,0x84,0xf8,0x84,0xfe,0xfc,}, {0x00,0x7e,0xfe,0x80,0x80,0x80,0xfe,0x7e,}, {0x00,0xfc,0xfe,0x82,0x82,0x82,0xfe,0xfc,}, {0x00,0x7e,0xfe,0x80,0xfc,0x80,0xfe,0x7e,}, {0x00,0x80,0x80,0x80,0xf8,0x80,0xfe,0x7e,}, {0x00,0x7c,0xfe,0x82,0x8e,0x80,0xfe,0x7e,}, {0x00,0x82,0x82,0xfe,0xfe,0x82,0x82,0x82,}, {0x00,0xfe,0xfe,0x10,0x10,0x10,0xfe,0xfe,}, {0x00,0x7c,0xfe,0x82,0x02,0x02,0xfe,0xfc,}, {0x00,0x86,0x8c,0x98,0x90,0xf0,0x98,0x8c,}, {0x00,0xfe,0xfe,0x80,0x80,0x80,0x80,0x80,}, {0x00,0x82,0x82,0x82,0x92,0xba,0xee,0xc6,}, {0x00,0x86,0x8e,0x9a,0xb2,0xe2,0xc2,0x82,}, {0x00,0x7c,0xfe,0x82,0x82,0x82,0xfe,0x7c,}, {0x00,0x80,0x80,0xfc,0xfe,0x82,0xfe,0xfc,}, {0x00,0x7a,0xfc,0x8a,0x82,0x82,0xfe,0x7c,}, {0x00,0x82,0x86,0xfc,0xfe,0x82,0xfe,0xfc,}, {0x00,0xfc,0xfe,0x02,0x7c,0x80,0xfe,0x7e,}, {0x00,0x10,0x10,0x10,0x10,0x10,0xfe,0xfe,}, {0x00,0x7c,0xfe,0x82,0x82,0x82,0x82,0x82,}, {0x00,0x38,0x6c,0xc6,0x82,0x82,0x82,0x82,}, {0x00,0x28,0x7c,0xd6,0x92,0x92,0x82,0x82,}, {0x00,0xc6,0x6c,0x38,0x38,0x6c,0xc6,0x82,}, {0x00,0x10,0x10,0x10,0x38,0x6c,0xc6,0x82,}, {0x00,0xfe,0xfe,0x60,0x38,0x0c,0xfe,0xfe,}, {0x00,0x38,0x38,0x20,0x20,0x20,0x38,0x38,}, {0x00,0x06,0x0c,0x18,0x30,0x60,0xc0,0x80,}, {0x00,0x38,0x38,0x08,0x08,0x08,0x38,0x38,}, {0x00,0x00,0x00,0x00,0x44,0x6c,0x38,0x10,}, {0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,}, {0x00,0x00,0x00,0x00,0x08,0x18,0x38,0x70,}, {0x00,0x7e,0xfe,0x82,0x7e,0x02,0x3c,0x00,}, {0x00,0xfc,0xfe,0x82,0x82,0xfc,0x80,0x80,}, {0x00,0x7e,0xfe,0x80,0x80,0x7e,0x00,0x00,}, {0x00,0x7e,0xfe,0x82,0x82,0x7e,0x02,0x02,}, {0x00,0x7e,0xfe,0x80,0xfe,0x82,0x7c,0x00,}, {0x00,0x80,0x80,0xf8,0x80,0xfe,0x7e,0x00,}, {0x00,0xfc,0xfe,0x02,0x7e,0x82,0x7c,0x00,}, {0x00,0x82,0x82,0xfe,0xfc,0x80,0x80,0x80,}, {0x00,0x38,0x38,0x10,0x10,0x10,0x00,0x10,}, {0x00,0x78,0xfc,0x84,0x04,0x04,0x00,0x04,}, {0x00,0x86,0x8c,0xf8,0xf0,0x98,0x80,0x80,}, {0x00,0x38,0x78,0x40,0x40,0x40,0x40,0x40,}, {0x00,0x82,0x82,0xfe,0xfe,0x6c,0x00,0x00,}, {0x00,0x82,0x82,0xc2,0xfe,0xbc,0x00,0x00,}, {0x00,0x7c,0xfe,0x82,0x82,0x7c,0x00,0x00,}, {0x00,0x80,0xfc,0xfe,0x82,0xfc,0x00,0x00,}, {0x00,0x02,0x7e,0xfe,0x82,0x7e,0x00,0x00,}, {0x00,0x80,0x80,0xc0,0xfe,0xbe,0x00,0x00,}, {0x00,0xfc,0xfe,0x3c,0x60,0x3e,0x00,0x00,}, {0x00,0x1c,0x3c,0x20,0x20,0xf8,0x20,0x20,}, {0x00,0x7c,0xfe,0x82,0x82,0x82,0x00,0x00,}, {0x00,0x10,0x38,0x6c,0xc6,0x82,0x00,0x00,}, {0x00,0x7c,0xd6,0x92,0x82,0x82,0x00,0x00,}, {0x00,0xc6,0x6c,0x7c,0xc6,0x82,0x00,0x00,}, {0x00,0x10,0x10,0x7c,0xfe,0x82,0x00,0x00,}, {0x00,0x7e,0x7e,0x30,0x08,0xfc,0x00,0x00,}, {0x00,0x18,0x38,0x20,0x40,0x20,0x38,0x18,}, {0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,}, {0x00,0x30,0x38,0x08,0x04,0x08,0x38,0x30,}, {0x00,0x00,0x00,0x00,0x0c,0x92,0x60,0x00,}, {0x00,0x00,0xd1,0x8a,0xca,0x92,0xc9,0x00,}, {0x00,0x3e,0x40,0xf8,0x40,0xfc,0x20,0x1e,}, {0x00,0x00,0x00,0x99,0x91,0x9b,0x8b,0x9b,}, {0x00,0x60,0x30,0x18,0x00,0x00,0x00,0x00,}, {0x00,0x60,0x90,0x10,0x38,0x10,0x12,0x0c,}, {0x00,0xcc,0x66,0x33,0x00,0x00,0x00,0x00,}, {0x00,0x54,0x00,0x00,0x00,0x00,0x00,0x00,}, {0x00,0x10,0x10,0x10,0x10,0x38,0x7c,0x10,}, {0x00,0x10,0x7c,0x10,0x10,0x10,0x7c,0x10,}, {0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x10,}, {0x00,0x8a,0x55,0x2a,0x10,0x48,0xa4,0x42,}, {0x00,0xfc,0x02,0x7c,0x80,0x7e,0x10,0x38,}, {0x00,0x10,0x20,0x40,0x20,0x10,0x00,0x00,}, {0x00,0x78,0x44,0x44,0x74,0x44,0x44,0x78,}, {0x00,0x00,0x00,0x8a,0x8a,0x9a,0x92,0x92,}, {0x00,0xfe,0x80,0x7c,0x02,0xfe,0x10,0x38,}, {0x00,0x00,0x00,0x8b,0x89,0x9b,0x91,0x93,}, {0x00,0x00,0x00,0x89,0x89,0x9b,0x92,0x92,}, {0x00,0x00,0x00,0x00,0x00,0x0c,0x18,0x30,}, {0x00,0x00,0x00,0x00,0x00,0x60,0x30,0x18,}, {0x00,0x00,0x00,0x00,0x00,0x24,0x48,0x90,}, {0x00,0x00,0x00,0x00,0x00,0x48,0x24,0x12,}, {0x00,0x00,0x38,0x7c,0x7c,0x7c,0x38,0x00,}, {0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,}, {0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,}, {0x00,0x00,0x00,0x00,0x00,0x08,0x54,0x20,}, {0x00,0x00,0x00,0x00,0x00,0x4a,0x4e,0xea,}, {0x00,0xfc,0x02,0x7c,0x80,0x7e,0x10,0x38,}, {0x00,0x10,0x08,0x04,0x08,0x10,0x00,0x00,}, {0x00,0x6e,0x90,0x90,0x9c,0x92,0x92,0x6c,}, {0x00,0x00,0x00,0x9a,0x8a,0x9a,0x91,0x9b,}, {0x00,0xfe,0x80,0x78,0x04,0xfc,0x10,0x38,}, {0x00,0x38,0x10,0x38,0x44,0xee,0x00,0x44,}, {0x00,0x00,0x00,0x99,0x9a,0x9a,0x92,0x91,}, {0x00,0x20,0x20,0x20,0x10,0x10,0x00,0x10,}, {0x00,0x10,0x7c,0x80,0x40,0x20,0x1e,0x08,}, {0x00,0x7e,0x20,0x10,0x7c,0x20,0x24,0x18,}, {0x00,0x00,0x54,0x28,0x44,0x28,0x54,0x00,}, {0x38,0x10,0x7c,0x10,0xfe,0x10,0x28,0xc6,}, {0x00,0x10,0x10,0x10,0x00,0x10,0x10,0x10,}, {0x00,0xf0,0x0c,0x32,0x4c,0xb0,0x40,0x3c,}, {0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0x6c,}, {0x00,0x38,0x44,0xba,0xa2,0xba,0x44,0x38,}, {0x00,0x00,0x00,0x00,0x38,0x38,0x08,0x30,}, {0x00,0x00,0x12,0x24,0x48,0x24,0x12,0x00,}, {0x00,0x00,0x04,0x04,0x7c,0x00,0x00,0x00,}, {0x00,0x7c,0xaa,0xaa,0xb2,0xaa,0x92,0x7c,}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,}, {0x00,0x00,0x00,0x93,0x91,0x93,0x8a,0x9b,}, {0x00,0x00,0x00,0x00,0x30,0x48,0x48,0x30,}, {0x00,0x7c,0x00,0x10,0x10,0x7c,0x10,0x10,}, {0x00,0x00,0x00,0x3c,0x10,0x08,0x24,0x18,}, {0x00,0x00,0x00,0x30,0x08,0x18,0x08,0x38,}, {0x00,0x00,0x00,0x00,0x00,0x20,0x10,0x08,}, {0x00,0x80,0x80,0x84,0xf8,0x88,0x88,0x00,}, {0x00,0xe8,0x28,0x28,0x68,0xa8,0xa8,0x7c,}, {0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,}, {0x00,0x18,0x08,0x00,0x00,0x00,0x00,0x00,}, {0x00,0x00,0x00,0x38,0x10,0x10,0x30,0x10,}, {0x00,0x00,0x00,0x10,0x28,0x28,0x28,0x10,}, {0x00,0x00,0x48,0x24,0x12,0x24,0x48,0x00,}, {0x00,0x82,0x4e,0x2a,0x10,0x48,0x44,0x42,}, {0x00,0x86,0x44,0x22,0x16,0x48,0x44,0x42,}, {0x00,0x82,0x4e,0xea,0x50,0xc8,0x44,0xc2,}, {0x00,0x38,0x44,0x40,0x30,0x10,0x00,0x10,}, {0x00,0x82,0xfe,0xfe,0x82,0x7c,0x10,0x20,}, {0x00,0x82,0xfe,0xfe,0x82,0x7c,0x10,0x08,}, {0x00,0x82,0xfe,0xfe,0x82,0x7c,0x28,0x10,}, {0x00,0x82,0xfe,0xfe,0x82,0x7c,0x48,0x34,}, {0x00,0x82,0xfe,0xfe,0x82,0x7c,0x00,0x44,}, {0x00,0x82,0xfe,0xfe,0x82,0x7c,0x28,0x38,}, {0x00,0x8e,0xf8,0x48,0x4c,0x28,0x28,0x1e,}, {0x00,0x18,0x08,0x7e,0x80,0x40,0x20,0x1e,}, {0x00,0x7e,0x80,0xf8,0x80,0x7e,0x04,0x08,}, {0x00,0x7e,0x80,0xf8,0x80,0x7e,0x04,0x02,}, {0x00,0x7e,0x80,0xf8,0x80,0x7e,0x0a,0x04,}, {0x00,0x7e,0x80,0xf8,0x80,0x7e,0x00,0x12,}, {0x00,0xfe,0x10,0x10,0x10,0xfe,0x08,0x10,}, {0x00,0xfe,0x10,0x10,0x10,0xfe,0x10,0x08,}, {0x00,0xfe,0x10,0x10,0x10,0xfe,0x28,0x10,}, {0x00,0xfe,0x10,0x10,0x10,0xfe,0x00,0x44,}, {0x00,0x78,0x44,0x44,0x74,0x44,0x44,0x78,}, {0x00,0x86,0x8e,0x9a,0xb2,0xe2,0xc2,0xba,}, {0x00,0x7c,0x82,0x82,0x82,0x7c,0x10,0x20,}, {0x00,0x7c,0x82,0x82,0x82,0x7c,0x10,0x08,}, {0x00,0x7c,0x82,0x82,0x82,0x7c,0x28,0x10,}, {0x00,0x7c,0x82,0x82,0x82,0x7c,0x48,0x34,}, {0x00,0x7c,0x82,0x82,0x82,0x7c,0x00,0x44,}, {0x00,0x00,0x44,0x28,0x10,0x28,0x44,0x00,}, {0x00,0xb0,0x48,0xa4,0x92,0x4a,0x24,0x1a,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x10,0x20,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x10,0x08,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x28,0x10,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x00,0x44,}, {0x00,0xe0,0x10,0x18,0x24,0x42,0x52,0x08,}, {0x00,0xfc,0x40,0x70,0x48,0x70,0x40,0xfc,}, {0x00,0xb8,0x84,0x84,0x88,0x90,0x48,0x30,}, {0x00,0x7e,0x82,0x7e,0x02,0x1c,0x08,0x10,}, {0x00,0x7e,0x82,0x7e,0x02,0x1c,0x08,0x04,}, {0x00,0x7e,0x82,0x7e,0x02,0x1c,0x14,0x08,}, {0x00,0x7e,0x82,0x7e,0x02,0x1c,0x28,0x14,}, {0x00,0x7e,0x82,0x7e,0x02,0x1c,0x00,0x24,}, {0x00,0x7e,0x82,0x7e,0x02,0x1c,0x24,0x18,}, {0x00,0x7c,0x90,0x7c,0x12,0x6c,0x00,0x00,}, {0x00,0x18,0x08,0x7e,0x80,0x40,0x20,0x1e,}, {0x00,0x7e,0x80,0xfe,0x82,0x7c,0x10,0x20,}, {0x00,0x7e,0x80,0xfe,0x82,0x7c,0x08,0x04,}, {0x00,0x7e,0x80,0xfe,0x82,0x7c,0x28,0x10,}, {0x00,0x7e,0x80,0xfe,0x82,0x7c,0x00,0x24,}, {0x00,0x38,0x38,0x10,0x10,0x00,0x10,0x20,}, {0x00,0x38,0x38,0x10,0x10,0x00,0x10,0x08,}, {0x00,0x38,0x38,0x10,0x10,0x00,0x28,0x10,}, {0x00,0x38,0x38,0x10,0x10,0x00,0x00,0x44,}, {0x00,0x7c,0x82,0x82,0x7c,0x28,0x4c,0x32,}, {0x00,0x82,0x82,0xc2,0xfe,0xbc,0x00,0x7c,}, {0x00,0x7c,0x82,0x82,0x82,0x7c,0x10,0x20,}, {0x00,0x7c,0x82,0x82,0x82,0x7c,0x10,0x08,}, {0x00,0x7c,0x82,0x82,0x82,0x7c,0x28,0x10,}, {0x00,0x7c,0x82,0x82,0x82,0x7c,0x48,0x34,}, {0x00,0x7c,0x82,0x82,0x82,0x7c,0x00,0x44,}, {0x00,0x00,0x10,0x00,0x7c,0x00,0x10,0x00,}, {0x00,0xf8,0xe4,0x9a,0x46,0x3e,0x00,0x00,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x10,0x20,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x10,0x08,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x28,0x10,}, {0x00,0x7c,0x82,0x82,0x82,0x82,0x00,0x44,}, {0x00,0xe0,0x10,0x18,0x24,0x42,0x10,0x08,}, {0x00,0xc0,0x5c,0x62,0x62,0x62,0x5c,0xc0,}, {0x00,0x00,0x00,0xdb,0x89,0xdb,0x52,0xdb,}, }; #endif // _JGLCONSOLEFONT_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JImage.cpp0000600000175000001440000003103011177007633021204 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Imagen genrica * @file JImage.cpp. * @author Juan Carlos Seijo Prez * @date 14/10/2003 * @version 0.0.1 - 14/10/2003 - Primera varsin. * @version 0.0.2 - 01/06/2004 - Adicin de mtodos de referencia y copia. */ #include // Constructor JImage::JImage() : surface(0) { } JImage::JImage(u32 w, u32 h, u32 _bpp) : surface(0) { Create(w, h, _bpp); } // Constructor copia JImage::JImage(JImage &img) { surface = SDL_ConvertSurface(img.Surface(), img.Surface()->format, img.Surface()->flags); } // Carga la imagen desde fichero. Soporta '.tga', '.bmp', '.jpg' y otros bool JImage::Load(const char *filename, bool toDisplayFormat, u32 cKey) { surface = IMG_Load(filename); if (surface != 0) { if (toDisplayFormat) { SDL_Surface *surf = SDL_DisplayFormat(surface); if (0 != surf) { SDL_FreeSurface(surface); surface = surf; ColorKey(cKey); } } return true; } return false; } void endian_swap2(void *_data, u32 bytes) { u32 i; u16 *data = (u16*)_data; for(i = 0; i < bytes>>1; ++i) { data[i] = SDL_Swap16(data[i]); } } void endian_swap4(void *_data, u32 bytes) { u32 i; u32 *data = (u32*)_data; for(i = 0; i < bytes>>2; ++i) { data[i] = SDL_Swap32(data[i]); } } // Crea la superficie vaca // Si data no es cero carga una copia en la superficie. bool JImage::Create(u32 w, u32 h, u32 _bpp, void *data, u32 rMask, u32 gMask, u32 bMask, u32 aMask) { Destroy(); if (_bpp == 0) { _bpp = SDL_GetVideoSurface()->format->BitsPerPixel; } if (rMask == 0 && gMask == 0 && bMask == 0 && aMask == 0) { rMask = SDL_GetVideoSurface()->format->Rmask; gMask = SDL_GetVideoSurface()->format->Gmask; bMask = SDL_GetVideoSurface()->format->Bmask; aMask = SDL_GetVideoSurface()->format->Amask; } // Si hay datos los carga a una superficie temporal... if (data) { SDL_Surface *tmp; if(SDL_BYTEORDER == SDL_BIG_ENDIAN) { if(_bpp == 16) { endian_swap2(data, _bpp/8 * w * h); } else if(_bpp == 32) { endian_swap4(data, _bpp/8 * w * h); } } tmp = SDL_CreateRGBSurfaceFrom(data, w, h, _bpp, _bpp/8 * w, rMask, gMask, bMask, aMask); if (tmp == 0) { printf("JImage::Create(): Error al crear tmp!\n"); return false; } surface = SDL_DisplayFormat(tmp); SDL_FreeSurface(tmp); if(surface == 0) { fprintf(stderr, "CreateRGBSurface failed: %s\n", SDL_GetError()); return false; } return true; } else { surface = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, _bpp, rMask, gMask, bMask, aMask); if(surface == 0) { fprintf(stderr, "CreateRGBSurface failed: %s\n", SDL_GetError()); return false; } Fill(ColorKey()); } return true; } // Dibuja la imagen void JImage::Draw() { SDL_Rect rc; rc.x = (s16)pos.x; rc.y = (s16)pos.y; rc.w = (u16)surface->w; rc.h = (u16)surface->h; SDL_BlitSurface(surface, 0, SDL_GetVideoSurface(), &rc); } // Dibuja la imagen en la posicin dada. void JImage::Draw(s32 x, s32 y) { SDL_Rect rc; rc.x = (s16)x; rc.y = (s16)y; rc.w = (u16)surface->w; rc.h = (u16)surface->h; SDL_BlitSurface(surface, 0, SDL_GetVideoSurface(), &rc); } // Pega el contenido de una imagen en esta. bool JImage::Paste(JImage *srcImg, s32 xSrc, s32 ySrc, s32 wSrc, s32 hSrc, s32 xDst, s32 yDst) { SDL_Rect srcRc, dstRc; srcRc.x = (s16)xSrc; srcRc.y = (s16)ySrc; srcRc.w = (u16)wSrc; srcRc.h = (u16)hSrc; dstRc.x = (s16)xDst; dstRc.y = (s16)yDst; dstRc.w = (u16)wSrc; dstRc.h = (u16)hSrc; return 0 == SDL_BlitSurface(srcImg->surface, &srcRc, surface, &dstRc); } // Devuelve el valor del pixel en la posicin dada. // La imagen debe estar bloqueada. u32 JImage::GetPixel(s32 x, s32 y) { s32 bpp = surface->format->BytesPerPixel; u8 *p = (u8 *)surface->pixels + y * surface->pitch + x * bpp; switch(bpp) { case 1: return *p; case 2: return *(u16 *)p; case 3: if(SDL_BYTEORDER == SDL_BIG_ENDIAN) { return p[0] << 16 | p[1] << 8 | p[2]; } else { return p[0] | p[1] << 8 | p[2] << 16; } case 4: return *(u32 *)p; default: return 0; } } // Establece el valor del pixel en la posicin dada. // La imagen debe estar bloqueada. void JImage::PutPixel(s32 x, s32 y, u32 color) { s32 bpp = surface->format->BytesPerPixel; u8 *p = (u8 *)surface->pixels + y * surface->pitch + x * bpp; switch(bpp) { case 1: *p = (u8)color; break; case 2: *(u16 *)p = (u16)color; break; case 3: if(SDL_BYTEORDER == SDL_BIG_ENDIAN) { p[0] = ((u8)(color >> 16)) & 0xff; p[1] = ((u8)(color >> 8)) & 0xff; p[2] = ((u8)color) & 0xff; } else { p[0] = ((u8)color) & 0xff; p[1] = ((u8)(color >> 8)) & 0xff; p[2] = ((u8)(color >> 16)) & 0xff; } break; case 4: *(u32 *)p = color; break; } } // Guarda la imagen como BMP bool JImage::SaveAsBMP(const char *file) { return (0 == SDL_SaveBMP(surface, file)); } // Carga la imagen. u32 JImage::Load(JRW &f) { Destroy(); s32 w, h; u32 ckey, sz, Rmask, Gmask, Bmask, Amask; u8 bpp, *data; if (f.ReadLE32(&w) && f.ReadLE32(&h) && f.Read8(&bpp) && f.ReadLE32(&Rmask) && f.ReadLE32(&Gmask) && f.ReadLE32(&Bmask) && f.ReadLE32(&Amask) && f.ReadLE32(&ckey) && f.ReadLE32(&sz)) { data = new u8[sz]; if (f.Read(data, sz)) { if (Create(w, h, bpp, data, Rmask, Gmask, Bmask, Amask)) { ColorKey(ckey); delete[] data; return 0; } } delete[] data; } return 1; } // Salva la imagen. u32 JImage::Save(JRW &f) { u32 sz = Size(); if (f.WriteLE32(&surface->w) && f.WriteLE32(&surface->h) && f.Write8(&surface->format->BitsPerPixel) && f.WriteLE32(&surface->format->Rmask) && f.WriteLE32(&surface->format->Gmask) && f.WriteLE32(&surface->format->Bmask) && f.WriteLE32(&surface->format->Amask) && f.WriteLE32(&surface->format->colorkey) && f.WriteLE32(&sz)) { if (0 == Lock()) { // Salva cada lnea, pues hemos de tener en cuenta el pitch en memoria for (s32 j = 0; j < surface->h; ++j) { u8 *data = Line(j); if (0 == f.Write(data, surface->w * BytesPP())) { // Error E/S Unlock(); return 1; } } Unlock(); return 0; } } return 2; } u32 JImage::LoadImage(JRW &jrw) { Destroy(); if (0 == (surface = IMG_Load_RW(jrw.rwops, 0))) { return 1; } return 0; } JImage * JImage::Scale(float xp, float yp) { if (-1 == Lock()) { return 0; } s32 newW = (s32)(surface->w * xp), newH = (s32)(surface->h * yp); float dx = 1.0f/xp, dy = 1.0f/yp; // Tamao de 1 pixel original en coordenadas de la nueva imagen SDL_Color samp; // Muestra actual JImage *img = new JImage(newW, newH, surface->format->BitsPerPixel); if (-1 == img->Lock()) { return 0; } // Recorre los puntos de la nueva imagen float nx0, ny0; // Primer pixel interviniente en la imagen original para un pixel de la nueva float rAccum, gAccum, bAccum, aAccum; // Acumulados de las componentes de la imagen float xSize, ySize, ratio, x1, x2, y1, y2; for (s32 j = 0; j < newH; ++j) { for (s32 i = 0; i < newW; ++i) { nx0 = float(i)/xp; ny0 = float(j)/yp; rAccum = gAccum = bAccum = aAccum = 0.0f; for (float ny = ny0; ny < ny0 + dy; ++ny) // Acumula los pxeles intervinientes de la imagen original en el nuevo pixel { for (float nx = nx0; nx < nx0 + dx; ++nx) { SDL_GetRGBA(GetPixel((s32)nx, (s32)ny), surface->format, &samp.r, &samp.g, &samp.b, &samp.unused); // Averigua la cuota de participacin del pixel. // Para ello vemos el cociente entre la superficie de pixel original en la nueva imagen // y la supeficie total de un pixel en unidades de la nueva imagen x1 = JMax(nx * xp, i); x2 = JMin((nx + 1) * xp, (i + 1)); y1 = JMax(ny * yp, j); y2 = JMin((ny + 1) * yp, (j + 1)); xSize = x2 - x1; ySize = y2 - y1; ratio = (xSize * ySize); rAccum += float(samp.r) * ratio; gAccum += float(samp.g) * ratio; bAccum += float(samp.b) * ratio; aAccum += float(samp.unused) * ratio; } } // Finalmente aade el pixel a la nueva imagen img->PutPixel(i, j, SDL_MapRGBA(surface->format, (u8)rAccum, (u8)gAccum, (u8)bAccum, (u8)aAccum)); } } Unlock(); img->Unlock(); return img; } // Destructor void JImage::Destroy() { if (surface != 0) { SDL_FreeSurface(surface); surface = 0; } } void JImage::Ref(JImage &img) { Destroy(); /**< @todo Quitar esto cuando SDL soporte crear referencias con alguna funcin. */ surface = img.surface; if (surface != 0) { ++surface->refcount; pos = img.Pos(); } } void JImage::operator =(JImage &img) { Destroy(); /**< @todo Quitar esto cuando SDL soporte crear referencias con alguna funcin. */ surface = img.surface; if (surface != 0) { ++surface->refcount; pos = img.Pos(); } } void JImage::Copy(JImage &img) { Destroy(); surface = SDL_CreateRGBSurfaceFrom(img.Pixels(), img.Width(), img.Height(), img.BitsPP(), img.Surface()->pitch, img.Format()->Rmask, img.Format()->Gmask, img.Format()->Bmask, img.Format()->Amask); } bool JImage::Convert(SDL_PixelFormat *fmt, u32 flags) { SDL_Surface *tmp; if (0 != (tmp = SDL_ConvertSurface(surface, fmt, flags))) { Destroy(); surface = tmp; return true; } return false; } JString JImage::DumpFromSurface(SDL_Surface *s) { JString s1, s2, s3, s4, s5, s6; SDL_PixelFormat *fmt = s->format; s1.Format("%dx%d@%d COLOR_KEY: %08x SURFACE_ALPHA: %d\n", s->w, s->h, fmt->BitsPerPixel, fmt->colorkey, fmt->alpha); s2.Format("pitch: %d clip_rect: x%d y%d w%d h%d pixels: %p\n", s->pitch, s->clip_rect.x, s->clip_rect.y, s->clip_rect.w, s->clip_rect.h, s->pixels); s3.Format("RGBAmask: R: 0x%08x G: 0x%08x B: 0x%08x A: 0x%08x\n", fmt->Rmask, fmt->Gmask, fmt->Bmask, fmt->Amask); s4.Format("RGBAshift: R: 0x%08x G: 0x%08x B: 0x%08x A: 0x%08x\n", fmt->Rshift, fmt->Gshift, fmt->Bshift, fmt->Ashift); s5.Format("RGBAloss: R: 0x%08x G: 0x%08x B: 0x%08x A: 0x%08x\n", fmt->Rloss, fmt->Gloss, fmt->Bloss, fmt->Aloss); s6.Format("Flags:\n" "SDL_SWSURFACE: %s\n" "SDL_HWSURFACE: %s\n" "SDL_ASYNCBLIT: %s\n" "SDL_ANYFORMAT: %s\n" "SDL_HWPALETTE: %s\n" "SDL_DOUBLEBUF: %s\n" "SDL_FULLSCREEN: %s\n" "SDL_OPENGL: %s\n" "SDL_OPENGLBLIT: %s\n" "SDL_RESIZABLE: %s\n" "SDL_HWACCEL: %s\n" "SDL_SRCCOLORKEY: %s\n" "SDL_RLEACCEL: %s\n" "SDL_SRCALPHA: %s\n" "SDL_PREALLOC: %s\n", (s->flags & SDL_SWSURFACE) ? "yes" : "no", (s->flags & SDL_HWSURFACE) ? "yes" : "no", (s->flags & SDL_ASYNCBLIT) ? "yes" : "no", (s->flags & SDL_ANYFORMAT) ? "yes" : "no", (s->flags & SDL_HWPALETTE) ? "yes" : "no", (s->flags & SDL_DOUBLEBUF) ? "yes" : "no", (s->flags & SDL_FULLSCREEN) ? "yes" : "no", (s->flags & SDL_OPENGL) ? "yes" : "no", (s->flags & SDL_OPENGLBLIT) ? "yes" : "no", (s->flags & SDL_RESIZABLE) ? "yes" : "no", (s->flags & SDL_HWACCEL) ? "yes" : "no", (s->flags & SDL_SRCCOLORKEY) ? "yes" : "no", (s->flags & SDL_RLEACCEL) ? "yes" : "no", (s->flags & SDL_SRCALPHA) ? "yes" : "no", (s->flags & SDL_PREALLOC) ? "yes" : "no"); JString str; str += s1; str += s2; str += s3; str += s4; str += s5; str += s6; return str; } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLAxes.h0000600000175000001440000000357611177007633020770 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 01/04/2003 // @description: Ejes coordenados /////////////////////////////////////////////////////////////////////////////// #ifndef _JGLAXES_INCLUDED #define _JGLAXES_INCLUDED #include #include #include #include class JGLAxes : public JDrawable { public: GLuint nList; float length; float xRed, xGreen, xBlue; float yRed, yGreen, yBlue; float zRed, zGreen, zBlue; bool showDivs; // Crea unos ejes coordenados JGLAxes(bool bshowDivs = true, float flength = 2.0f, float fxRed = 1.0f, float fxGreen = 0.0f, float fxBlue = 0.0f, float fyRed = 0.0f, float fyGreen = 1.0f, float fyBlue = 0.0f, float fzRed = 0.0f, float fzGreen = 0.0f, float fzBlue = 1.0f); // Crea la lista de OpenGL void RebuildList(); // Pinta los ejes void Draw(); }; #endif // _JGLAXES_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLImage.cpp0000600000175000001440000000530011177007633021430 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clase para la presentacin de imgenes OpenGL. * @file JGLImage.cpp * @author Juan Carlos Seijo Prez * @date 19/05/2004 * @version 0.0.1 - 19/05/2004 - Primera versin. */ #include bool JGLImage::Init(JImage *image, bool withMipmaps) { if (image == 0) { return false; } s32 w = JGLTexture::Next2Power(image->Width()); s32 h = JGLTexture::Next2Power(image->Height()); JImage *img; // Si la anchura o la altura no son potencia de dos, tenemos que // cambiar el tamao de la imagen if (w != image->Width() || h != image->Height()) { img = new JImage(w, h, image->BitsPP()); if (!img || !img->Paste(image, 0, 0, image->Width(), image->Height(), 0, 0)) { JDELETE(img); return false; } } else { img = image; } bool ok = texture.Create(img, withMipmaps); if (img != image) { delete img; } if (!ok) { return false; } // Crea la lista de visualizacin listIndex = glGenLists(1); if (listIndex == 0) { texture.Destroy(); return false; } float tw, th, halfW, halfH; tw = float(image->Width())/float(w); th = float(image->Height())/float(h); halfW = float(image->Width())/2.0f; halfH = float(image->Height())/2.0f; //fprintf(stderr, "Imagen tw%f th%f iw%d ih%d w%d h%d\n", tw, th, image->Width(), image->Height(), w, h); glNewList(listIndex, GL_COMPILE); texture.GLBind(); // 2-3-5-7 // |\|\|\| CCW // 0-1-4-6 glBegin(GL_TRIANGLE_STRIP); // Bottom left //glColor4f(1.0f, 1.0f, 1.0f, 1.0f); texture.GLCoord2f(0.0f, th); glVertex3f(-halfW, -halfH, 0.0f); // Bottom right texture.GLCoord2f(tw, th); glVertex3f(halfW, -halfH, 0.0f); // Top left texture.GLCoord2f(0.0f, 0.0f); glVertex3f(-halfW, halfH, 0.0f); // Top right texture.GLCoord2f(tw, 0.0f); glVertex3f(halfW, halfH, 0.0f); glEnd(); glEndList(); return ok; } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JSprite.h0000600000175000001440000001553411177007633021110 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Sprite genrico. * @file JSprite.h * @author Juan Carlos Seijo Prez * @date 18/10/2003 * @version 0.0.1 - 18/10/2003 - Primera versin. * @note *
 * Combinaciones de loop, goBack y backwards (L,G,B)
 *
 * Tiempo  0   1   2   3   4  ...
 * Frame  123 123 123
 *
 * Loop(false), GoBack(false), Backwards(false)
 * Sprite o-- -o- --o --o --o ...
 *
 * Loop(false), GoBack(false), Backwards(true)
 *        --o -o- o-- o-- o-- ...
 *
 * Loop(true), GoBack(false), Backwards(false)
 *        o-- -o- --o o-- -o- ...
 *
 * Loop(true), GoBack(true), Backwards(false)
 *        o-- -o- --o -o- o-- -o- --o -o- ...
 *
 * Loop(true), GoBack(false), Backwards(true)
 *        --o -o- o-- --o -o- o-- --o ...
 *
 * Loop(true), GoBack(true), Backwards(true)
 *        --o -o- o-- -o- --o -o- o-- ...
 *
 * (No tiene efecto activar GoBack sin Loop.)
 * 
*/ #ifndef _JSPRITE_INCLUDED #define _JSPRITE_INCLUDED #include #include #include #include #include #include /** Sprite genrico. */ class JSprite : public JDrawable { protected: JTimer timer; /**< Cronmetro del sprite */ u32 fps; /**< Cuadros por segundo */ u32 numFrames; /**< Nmero de cuadros */ JDrawable **frames; /**< Cuadros */ u32 lastFrame; /**< ltimo cuadro */ u32 firstFrame; /**< Primer cuadro */ s32 frameAdvance; /**< Incremento de frame */ u32 curFrame; /**< ndice del cuadro actual */ bool loop; /**< Debe iniciar desde donde empez? */ bool goBack; /**< Debe volver hacia atrs cuando llegue al final? */ bool backwards; /**< Debe ir siempre hacia atrs? */ bool paused; /**< Debe pausar? */ public: /** Crea un sprite vaco. Se debe usar init para inicializarlo. */ JSprite() : fps(1), numFrames(0), frames(0), lastFrame(0), firstFrame(0), frameAdvance(0), curFrame(0), loop(false), goBack(false), backwards(false), paused(false) {} /** Inicializa el sprite con los parmetros dados. No crea el array de frames, * puesto que lo debe hacer la clase hija. * @param nFrames Nmero de frames del sprite. * @param _FPS Velocidad en cuadros por segundo. * @param mustLoop Indicador de repeticin. * @param mustGoBack Indicador de sentido invertido. * @param mustGoBackwards Indicador de vuelta al comienzo. */ void Init(u32 nFrames, u32 _FPS, bool mustLoop = false, bool mustGoBack = false, bool mustGoBackwards = false); /** Pasa al siguiente frame si han pasado 1/fps segundos. * @return El n de frame actual si ha cambiado, -1 si no cambi * y -2 si est en pausa. */ s32 Update(); /** Dibuja el sprite. Las x, y del sprite dan la posicin global; las x, y de cada frame, * el offset rpto. a la posicin global */ virtual void Draw() {frames[curFrame]->Draw();} /** Destruye el sprite, liberando la memoria asociada. */ void Destroy(); /** Destruye el sprite, liberando la memoria asociada. */ virtual ~JSprite() {Destroy();} /** Devuelve el nmero de cuadros por segundo. * @return Nmero de cuadros por segundo. */ const u32 FPS() {return fps;} /** Establece el nmero de cuadros por segundo. * @param newFPS Nmero de cuadros por segundo. */ void FPS(const u32 newFPS); /** Devuelve el nmero de cuadros totales en el sprite. @return Nmero de cuadros totales en el sprite. */ const u32 NumFrames() {return numFrames;} /** Devuelve el ndice del cuadro actual. * @return ndice del cuadro actual. */ const u32 CurFrame() {return curFrame;} /** Establece el ndice del cuadro actual. * @param newFrame ndice del cuadro actual. */ void CurFrame(const u32 newFrame) { if (newFrame >= 0 && newFrame < numFrames) curFrame = newFrame; } /** Devuelve el frame en la posicin indicada. * @param i ndice del frame a recuperar. * @return Frame en la posicin i. */ JDrawable * Frame(u32 i) {return frames[i];} /** Determina si debe volver al comienzo. * @return true si al llegar al final el sprite vuelve al comienzo, * false si no. */ bool Loop() {return loop;} /** Establece si al llegar al final, el sprite vuelve al comienzo * @param mustLoop Nuevo valor de la propiedad. */ void Loop(bool mustLoop) {loop = mustLoop;} /** Determina si debe volver al comienzo. * @return true si debe volver hacia atrs cuando llegue al final, false si no. */ bool GoBack() {return goBack;} /** Establece si debe volver al comienzo. * @param mustGoBack true si debe volver hacia atrs cuando llegue al final, false si no. */ void GoBack(bool mustGoBack) {goBack = mustGoBack;} /** Determina si debe ir hacia atrs. * @return true si debe ir siempre hacia atrs, false si no. */ bool Backwards() {return backwards;} /** Establece si debe ir siempre hacia atrs. * @param mustGoBackwards true si debe ir hacia atrs, false si no. */ void Backwards(bool mustGoBackwards) {backwards = mustGoBackwards;} /** Pausa o reanuda la animacin. * @param pause true para pausarla, false para reanudarla. */ void Paused(bool pause) {paused = pause;} /** Determina si estn en pausa la animacin. * @return true si est en pausa, false si no. */ bool Paused() {return paused;} /** Va al frame anterior. * @return true si haba frame anterior, false si no. */ bool PrevFrame(); /** Va al frame siguiente * @return true si haba frame posterior, false si no. */ bool NextFrame(); /** Va al primer frame. */ void FirstFrame() {curFrame = firstFrame;} /** Va al ltimo frame */ void LastFrame() {curFrame = lastFrame;} }; #endif // _JSPRITE_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JImageSprite.cpp0000600000175000001440000002503111177007633022377 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Sprite de imgenes. * @file JImageSprite.cpp. * @author Juan Carlos Seijo Prez. * @date 18/10/2003. * @version 0.0.1 - 18/10/2003 - Primera versin. * @version 0.0.2 - 01/06/2004 - Adicin de mtodo de copia. */ #include // Constructor copia JImageSprite::JImageSprite(JImageSprite &spr) : wMax(0), hMax(0) { Ref(spr); } // Carga el sprite desde un fichero. // Si frameW != 0 y frameH == 0, considera que las frames estn en horizontal. // Si frameW == 0 y frameH != 0, considera que las frames estn en vertical. // Si frameW != 0 y frameH != 0, intenta encajarlas en H o V, si no intenta encajar los cuadrados. // Si frameW == 0 y frameH == 0 o hay una incoherencia o un error, devuelve false. // Si todo va bien, devuelve true. bool JImageSprite::Load(const JString &fileName, u32 frameW, u32 frameH, u32 _numFrames, u32 colorKey) { Destroy(); JImage img; wMax = 0; hMax = 0; if (!img.Load(fileName)) return false; if (_numFrames != 0) { numFrames = _numFrames; } // Para recorrer la imagen u32 iMax, jMax; if (frameW == 0) { if (frameH == 0) { return false; } else { // Frames en vertical. if (numFrames == 0) { // Averigua las que caben en la altura de la imagen... s32 mod = img.Height() % frameH; s32 numFr = img.Height()/frameH; // ERROR: No hay un nmero entero de frames if (mod != 0) return false; numFrames = numFr; } // Lmites de recorrido de la imagen iMax = 1; jMax = numFrames; frameW = img.Width(); } } else { if (frameH == 0) { // Frames en horizontal. if (numFrames == 0) { // Averigua las que caben en la anchura de la imagen... s32 mod = img.Width() % frameW; s32 numFr = img.Width()/frameW; // ERROR: No hay un nmero entero de frames if (mod != 0) return false; numFrames = numFr; } // Límites de recorrido de la imagen iMax = numFrames; jMax = 1; frameH = img.Height(); } else { // Frames con ancho y alto. // Las supone dispuestas en un cuadrado de (n x frameW) x (m x frameH). s32 modi, modj; modi = img.Width()%frameW; modj = img.Height()%frameH; // ERROR: No hay un nmero entero de frames if (modi != 0 || modj != 0) return false; iMax = img.Width()/frameW; jMax = img.Height()/frameH; // Si no se da el nmero de frames se asumen n x m if (numFrames == 0) { numFrames = iMax * jMax; } } frames = (JDrawable**)new JImage*[numFrames]; JImage *tmpImg; // Extrae los frames del sprite de la imagen for (u32 j = 0, count = 0; j < jMax && count < numFrames; ++j) { for (u32 i = 0; i < iMax && count < numFrames; ++i, ++count) { frames[(j * iMax) + i] = tmpImg = new JImage(frameW, frameH); tmpImg->Paste(&img, i * frameW, j * frameH, frameW, frameH); tmpImg->ColorKey(colorKey); } } // Tamao fijo de frame wMax = frameW; hMax = frameH; return true; } return false; } // Crea el sprite a partir varios ficheros de imagen, uno por frame. // Si todo va bien, devuelve true. bool JImageSprite::Load(JString *imageFiles, u32 _numFrames, u32 colorKey) { Destroy(); bool error = false; wMax = hMax = 0; numFrames = _numFrames; JImage *tmpImg; frames = (JDrawable**)new JImage*[numFrames]; u32 i; for (i = 0; i < numFrames && !error; ++i) { frames[i] = tmpImg = new JImage(); if (tmpImg->Load(imageFiles[i])) { tmpImg->ColorKey(colorKey); // Asigna la anchura y altura mximas del sprite if (wMax < tmpImg->Width()) wMax = tmpImg->Width(); if (hMax < tmpImg->Height()) hMax = tmpImg->Height(); } else { delete tmpImg; error = true; } } if (error) { // Error al cargar for (u32 j = 0; j < i; ++j) { delete frames[i]; frames[i] = 0; } } return !error; } // Dibuja el sprite en pantalla void JImageSprite::Draw() { SDL_Rect rc; rc.x = (s16)(X() + frames[curFrame]->X()); rc.y = (s16)(Y() + frames[curFrame]->Y()); SDL_BlitSurface(((JImage *)frames[curFrame])->Surface(), 0, SDL_GetVideoSurface(), &rc); } // Utilidad para alinear arriba los frames del sprite void JImageSprite::AlignUp() { for (u32 i = 0; i < numFrames; ++i) { frames[i]->Pos((s32)frames[i]->X(), 0); } } // Utilidad para alinear abajo los frames del sprite void JImageSprite::AlignDown() { for (u32 i = 0; i < numFrames; ++i) { frames[i]->Pos((s32)frames[i]->X(), (s32)(hMax - ((JImage*)frames[i])->Height())); } } // Utilidad para alinear a la izquierda los frames del sprite void JImageSprite::AlignLeft() { for (u32 i = 0; i < numFrames; ++i) { frames[i]->Pos(0, (s32)frames[i]->Y()); } } // Utilidad para alinear derecha los frames del sprite void JImageSprite::AlignRight() { for (u32 i = 0; i < numFrames; ++i) { frames[i]->Pos((s32)(wMax - ((JImage*)frames[i])->Width()), (s32)frames[i]->Y()); } } // Utilidad para ajustar al mximo el borde del sprite void JImageSprite::AdjustSize() { bool done; s32 x, y, w, h; s32 du = 0, dd = 0, dl = 0, dr = 0; // Cantidad de borde sobrante JImage *img = 0, *tmpImg = 0; SDL_Rect rc; // Anchura y altura mximas del sprite wMax = hMax = 0; for (u32 n = 0; n < numFrames; ++n) { img = (JImage *)frames[n]; if (0 == img->Lock()) { w = img->Width(); h = img->Height(); // Calcula por arriba done = false; for (y = 0; y < h && !done; ++y) { for (x = 0; x < w && !done; ++x) { if (img->GetPixel(x, y) != img->ColorKey()) done = true; } } du = y - 1; // Calcula por abajo done = false; for (y = h - 1; y >= 0 && !done; --y) { for (x = 0; x < w && !done; ++x) { if (img->GetPixel(x, y) != img->ColorKey()) done = true; } } dd = h - 1 - y - 1; // Calcula por la izquierda done = false; for (x = 0; x < w && !done; ++x) { for (y = 0; y < h && !done; ++y) { if (img->GetPixel(x, y) != img->ColorKey()) done = true; } } dl = x - 1; // Calcula por la derecha done = false; for (x = w - 1; x >= 0 && !done; --x) { for (y = 0; y < h && !done; ++y) { if (img->GetPixel(x, y) != img->ColorKey()) done = true; } } dr = w - 1 - x - 1; rc.x = (s16)dl; rc.y = (s16)du; rc.w = (u16)(w - dl - dr); rc.h = (u16)(h - du - dd); if (wMax < rc.w) wMax = rc.w; if (hMax < rc.h) hMax = rc.h; img->Unlock(); // Si no hay cambios lo deja if (rc.w < w || rc.h < h) { // Reduce el area de la imagen tmpImg = new JImage(rc.w, rc.h, img->BitsPP()); tmpImg->Paste(img, rc.x, rc.y, rc.w, rc.h); tmpImg->ColorKey(img->ColorKey()); // Actualiza la posicin relativa del frame dentro del sprite // para no alterarla tmpImg->Pos((s32)(tmpImg->X() + rc.x), (s32)(tmpImg->Y() + rc.y)); delete frames[n]; frames[n] = tmpImg; } } } } // Carga el sprite. u32 JImageSprite::Load(JRW &f) { if (f.ReadLE32(&fps) && f.ReadLE32(&numFrames) && f.ReadBool(&loop) && f.ReadBool(&goBack) && f.ReadBool(&backwards)) { JImage *img; s32 xPos, yPos; u32 ok = 0; u32 i; frames = (JDrawable**)new JImage*[this->numFrames]; for (i = 0; i < numFrames && ok == 0; ++i) { frames[i] = img = new JImage; // Carga las coordenadas relativas del frame if (0 == f.ReadLE32(&xPos) || 0 == f.ReadLE32(&yPos)) { ok = 1; // Fallo de lectura } else { img->Pos(xPos, yPos); // Carga la imagen ok |= ((JImage *)frames[i])->Load(f); if (ok == 0) { // Asigna la anchura y altura mximas del sprite if (wMax < ((JImage *)frames[i])->Width()) wMax = ((JImage *)frames[i])->Width(); if (hMax < ((JImage *)frames[i])->Height()) hMax = ((JImage *)frames[i])->Height(); } } } if (ok == 0) { Init(numFrames, fps, loop, goBack, backwards); } else { // Borra lo creado si hubo un error for (u32 j = 0; j < i; ++j) { delete frames[j]; } delete[] frames; frames = 0; } return ok; } return 1; } // Salva el sprite u32 JImageSprite::Save(JRW &f) { if (f.WriteLE32(&fps) && f.WriteLE32(&numFrames) && f.WriteBool(&loop) && f.WriteBool(&goBack) && f.WriteBool(&backwards)) { JImage *img; s32 xPos, yPos; u32 ok = 0; for (u32 i = 0; i < numFrames; ++i) { img = ((JImage *)frames[i]); // Salva las coordenadas relativas del frame xPos = (s32)img->X(); yPos = (s32)img->Y(); f.WriteLE32(&xPos); f.WriteLE32(&yPos); ok |= img->Save(f); } return ok; } return 1; } void JImageSprite::Ref(JImageSprite& spr) { Destroy(); Init(spr.NumFrames(), spr.FPS(), spr.Loop(), spr.GoBack(), spr.Backwards()); paused = spr.Paused(); wMax = spr.MaxW(); hMax = spr.MaxH(); frames = (JDrawable**)new JImage*[spr.NumFrames()]; // Referencia los frames del sprite for (u32 i = 0; i < numFrames; ++i) { frames[i] = new JImage; ((JImage *)frames[i])->Ref(*((JImage *)spr.Frame(i))); } } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JControlImage.h0000600000175000001440000000646211177007633022225 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Control de interfaz de usuario compuesto por imgenes. * @file JControlImage.h. * @author Juan Carlos Seijo Prez. * @date 27/10/2003. * @version 0.0.1 - 27/10/2003 - Primera versin. */ #ifndef _JIMAGECONTROL_INCLUDED #define _JIMAGECONTROL_INCLUDED #include #include #include #include /** Control de interfaz de usuario compuesto por imgenes. */ class JControlImage : public JControl { protected: JImage imgNormal; /**< Imagen en estado normal */ JImage imgDisabled; /**< Imagen en estado deshabilitado */ JImage imgFocused; /**< Imagen en estado enfocado */ JImage imgSelected; /**< Imagen en estado seleccionado */ /** Destructor */ void Destroy(); public: /** Crea un control de imgenes vaco. Init o Load deben ser llamados antes de usarlo. */ JControlImage() : JControl(), imgNormal(0), imgDisabled(0), imgFocused(0), imgSelected(0) {} /** Inicializa el control a partir de las imgenes dadas. * @return true si se inicializ correctamente, false si no. */ bool Init(JImage &normal, JImage &disabled, JImage &focused, JImage &selected); /** Funcin de dibujo cuando est visible */ virtual void DrawVisible(); /** Funcin de dibujo cuando est enfocado */ virtual void DrawFocus(); /** Funcin de dibujo cuando est deshabilitado */ virtual void DrawDisabled(); /** Funcin de dibujo cuando est seleccionado */ virtual void DrawSelected(); /** Funcin de actualizacin cuando est visible */ virtual s32 UpdateVisible(); /** Funcin de actualizacin cuando est enfocado */ virtual s32 UpdateFocus(); /** Funcin de actualizacin cuando est deshabilitado */ virtual s32 UpdateDisabled(); /** Funcin de actualizacin cuando est seleccionado */ virtual s32 UpdateSelected(); /** Carga el control desde un fichero. * @param f Fichero abierto y posicionado para cargar el objeto. * @return 0 si todo va bien, 1 en caso de error de E/S, * 2 en caso de incoherencia de los datos. */ u32 Load(JRW &f); /** Salva la interfaz a un fichero de definicin de interfaz. * @param f Fichero abierto y posicionado para salvar el objeto. * @return 0 si todo va bien, 1 en caso de error de E/S, * 2 en caso de incoherencia de los datos. */ u32 Save(JRW &f); }; #endif // _JIMAGECONTROL_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JTextMenu.h0000600000175000001440000001550311177007633021407 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Menu en pantalla compuesto de cadenas de texto. * @file JTextMenu.h * @author Juan Carlos Seijo Prez * @date 28/03/2004 * @version 0.0.1 - 28/03/2004 - Primera versin. */ #ifndef _JTEXTMENU_INCLUDED #define _JTEXTMENU_INCLUDED #include #include #include #include #include #include #include /** Modo de renderizado de la fuente del men. */ typedef enum { JTEXTMENU_SOLID = 1, /**< Slido con colorkey. */ JTEXTMENU_SHADED, /**< Antialiasing con fondo slido. */ JTEXTMENU_BLENDED, /**< Antialiasing con fondo transparente. */ } JTextMenuRenderStyle; /** Distribucin del men. */ typedef enum { JTEXTMENU_LEFT = 1, /**< Alineado a la izquierda. */ JTEXTMENU_RIGHT, /**< Alineado a la derecha. */ JTEXTMENU_CENTER, /**< Centrado. */ JTEXTMENU_SAMELINE, /**< Todas las opciones en la misma lnea. */ JTEXTMENU_UP, /**< Alineado arriba. */ JTEXTMENU_DOWN, /**< Alineado abajo. */ } JTextMenuLayout; /** Estructura de configuracin del men. */ struct JTextMenuConfig { JFont * font; /**< Fuente a usar. */ SDL_Color color; /**< Color de fuente. */ SDL_Color backColor; /**< Color de fondo (JTEXTMENU_SHADED). */ SDL_Color hiColor; /**< Color resaltado. */ SDL_Color hiBackColor; /**< Color de fondo resaltado (JTEXTMENU_SHADED). */ s32 lineDistance; /**< Separacin entre lneas (-1 para la predeterminada de la fuente). */ JTextMenuLayout layout; /**< Distribucin del men en horizontal. */ JTextMenuLayout layoutV; /**< Distribucin del men en vertical. */ JTextMenuRenderStyle renderMode; /**< Modo de renderizado. */ bool trackMouse; /**< Indica si puede manejarse con ratn. */ bool trackKeyboard; /**< Indica si puede manejarse con teclado. */ bool trackJoystick; /**< Indica si puede manejarse con joystick/pad. */ bool autoEnter; /**< Indica si desciende si no hay accin asociada. */ }; /** Opcin de men bsica. */ class JTextMenuEntry { protected: public: JImage *image; /**< Imagen asociada a la opcin. */ JImage *hiImage; /**< Imagen asociada a la opcin resaltada. */ JString text; /**< Texto de la opcin de men. */ void (*Action)(void *data); /**< Accin asociada a la opcin de men. */ void *data; /**< Datos asociados a la opcin de men. */ public: JTextMenuEntry(const JString &str, void (*pAct)(void *) = 0, void *actionData = 0) : image(0), hiImage(0), text(str), Action(pAct), data(actionData) {} /** Selecciona la opcin de men, llamando a la callback asociada, si existe. * @return true en caso de haber accin asociada, false si no. */ bool Select(); /** Devuelve la imagen asociada. * @return La imagen asociada. */ JImage * Image() {return image;} /** Devuelve la imagen asociada al estado resaltado. * @return La imagen asociada al estado resaltado. */ JImage * HiImage() {return hiImage;} /** Renderiza la opcin de men con la configuracin dada. * @param cfg Configuracin de men. * @return true Si todo fue bien, false si no se pudo renderizar. */ bool Init(JTextMenuConfig &cfg); /** Devuelve el texto de esta opcin. */ const JString& Text() {return text;} /** Destruye el objeto y libera las imagenes asociadas. */ void Destroy() { JDELETE(image); JDELETE(hiImage); } /** Destruye el objeto y libera las imagenes asociadas. */ virtual ~JTextMenuEntry() { Destroy(); } }; /** Encapsula un men de texto en pantalla. */ class JTextMenu : public JDrawable { JTree options; /**< rbol de opciones de men. */ JTree::Iterator *curOption; /**< Opcin actual. */ JTextMenuConfig config; /**< Parmetros de configuracin del men. */ s32 maxW; /**< Anchura mxima. */ s32 maxH; /**< Altura mxima. */ /** Mtodo recursivo de renderizacin de las opciones del men. * @param it Iterador de la opcin actual. * @return true Si todo fue bien, false si no hay memoria. */ bool RenderBranch(JTree::Iterator *it); /** Aplica la distribucin de men. */ void ApplyLayout(JTree::Iterator *it); public: /** Crea un men vaco. Init debe ser llamada antes de utilizar el objeto. */ JTextMenu(); /** Inicializa el men con la configuracin dada. Esta funcin debe * ser llamada despus de haber rellenado el rbol del men. * @param cfg Configuracin del men. * @return true Si todo fue bien, false si no se encontr la * fuente dada. */ bool Init(JTextMenuConfig &cfg); /** Devuelve el iterador de opcin actual. * @return Iterador de opcin actual. */ JTree::Iterator * Menu() {return curOption;} /** Funcin de dibujo del men. */ virtual void Draw(); /** Procesa tecla arriba */ virtual void TrackKeyboard(SDL_keysym key); /** Procesa movimiento de mouse */ virtual void TrackMouse(s32 bt, s32 x, s32 y); /** Devuelve la anchura mxima del men. * @return Anchura mxima del men. */ s32 MaxW() {return maxW;} /** Devuelve la altura mxima del men. * @return Altura mxima del men. */ s32 MaxH() {return maxH;} /** Destruye el objeto y libera la memoria asociada. */ virtual ~JTextMenu() { for (options.Begin(); !options.End(); options.Next()) { JDELETE(options.Cur()); } options.Clear(); JDELETE(curOption); } }; #endif // _JTEXTMENU_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JASEFormat.cpp0000600000175000001440000000324511177007633021752 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Formato de ficheros ASE * @file JASEFormat.cpp * @author Juan Carlos Seijo Prez * @date 20/09/2003 * @version 0.0.1 - 20/09/2003 - Primera versin. */ #include u32 JASEFormat::nextTextureId; u32 JASEFormat::textureBaseId; // Destructor JASEFormat::~JASEFormat() { if (materials) delete[] materials; if (objects) { for (s32 i = 0; i < numObjects; ++i) { if (objects[i].vertices) delete[] objects[i].vertices; if (objects[i].tVertices) delete[] objects[i].tVertices; if (objects[i].vertexNormals) delete[] objects[i].vertexNormals; if (objects[i].faces) delete[] objects[i].faces; if (objects[i].tFaces) delete[] objects[i].tFaces; } delete[] objects; } }; holotz-castle-1.3.14-src/JLib/JLib/Graphics/JControl.h0000600000175000001440000002426111177007633021257 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clase base de un control de interfaz de usuario. * @file JControl.h. * @author Juan Carlos Seijo Prez. * @date 27/10/2003. * @version 0.0.1 - 27/10/2003 - Primera versin. */ #ifndef _JCONTROL_INCLUDED #define _JCONTROL_INCLUDED #include #include #include class JUI; /** Tipo de control. */ typedef enum { JCONTROLTYPE_IMAGE = 0, /**< Imgenes estticas. */ JCONTROLTYPE_IMAGESPRITE, /**< Sprite de imgenes. */ JCONTROLTYPE_MESH, /**< Geometra. */ JCONTROLTYPE_MESHSPRITE, /**< Sprite de geometra. */ } JControlType; /** Clase base de un control de interfaz de usuario. */ class JControl : public JDrawable { friend class JUI; private: static u32 controlCount; /**< Lleva cuenta del n de controles. */ protected: JControlType type; /**< Tipo de control. */ u32 id; /**< Identificador de control. */ u32 parentId; /**< Identificador del control padre. */ JControl * parent; /**< Control padre. */ u32 focusIndex; /**< ndice de enfoque. */ u32 state; /**< Estado del control. */ void (*focus)(JControl *c, void *data); /**< Funcin de enfoque. */ void (*unfocus)(JControl *c, void *data); /**< Funcin de desenfoque. */ void (*enable)(JControl *c, void *data); /**< Funcin de habilitacin. */ void (*disable)(JControl *c, void *data); /**< Funcin de deshabilitacin. */ void (*appear)(JControl *c, void *data); /**< Funcin de aparicin. */ void (*disappear)(JControl *c, void *data); /**< Funcin de desaparicin. */ void (*select)(JControl *c, void *data); /**< Funcin de seleccin. */ void (*unselect)(JControl *c, void *data); /**< Funcin de deseleccin. */ void *focusData; /**< Datos adicionales de enfoque. */ void *unfocusData; /**< Datos adicionales de desenfoque. */ void *enableData; /**< Datos adicionales de habilitacin. */ void *disableData; /**< Datos adicionales de deshabilitar. */ void *appearData; /**< Datos adicionales de aparicin. */ void *disappearData; /**< Datos adicionales de desaparicin. */ void *selectData; /**< Datos adicionales de seleccin. */ void *unselectData; /**< Datos adicionales de deseleccin. */ /** Accin a realizar cuando recibe el enfoque. */ void OnFocus() {if (focus) focus(this, focusData);}; /** Accin a realizar cuando pierde el enfoque. */ void OnUnfocus() {if (unfocus) unfocus(this, unfocusData);}; /** Accin a realizar cuando es activado. */ void OnEnable() {if (enable) enable(this, enableData);}; /** Accin a realizar cuando es desactivado. */ void OnDisable() {if (disable) disable(this, disableData);}; /** Accin a realizar cuando aparece. */ void OnAppear() {if (appear) appear(this, appearData);}; /** Accin a realizar cuando desaparece. */ void OnDisappear() {if (disappear) disappear(this, disappearData);}; /** Accin a realizar cuando se selecciona. */ void OnSelect() {if (select) select(this, selectData);}; /** Accin a realizar cuando se deselecciona. */ void OnUnselect() {if (unselect) unselect(this, unselectData);}; public: static const u32 VISIBLE; /**< Flag de visibilidad. */ static const u32 FOCUSED; /**< Flag de enfoque. */ static const u32 ENABLED; /**< Flag de habilitacin. */ static const u32 SELECTED; /**< Flag de seleccin. */ /** Crea un control vaco. */ JControl(JControl *_parent = 0, u32 _state = VISIBLE & ENABLED); /** Devuelve el identificador de este control. * @return Identificador del control. */ u32 Id() {return id;} /** Devuelve el control padre. * @return Control padre de este, 0 si no tiene. */ JControl * Parent() {return parent;} /** Funcin de dibujo. */ virtual void Draw(); /** Funcin de actualizacin cuando est visible. * @return Dependiente de la implementacin. */ virtual s32 Update(); /** Funcin de dibujo cuando est nicamente visible. */ virtual void DrawVisible() = 0; /** Funcin de dibujo cuando est enfocado. */ virtual void DrawFocus() = 0; /** Funcin de dibujo cuando est deshabilitado. */ virtual void DrawDisabled() = 0; /** Funcin de dibujo cuando est seleccionado. */ virtual void DrawSelected() = 0; /** Funcin de actualizacin cuando est nicamente visible. * @return Mscara de estado del control. */ virtual s32 UpdateVisible() = 0; /** Funcin de actualizacin cuando est enfocado. * @return Dependiente de la implementacin. */ virtual s32 UpdateFocus() = 0; /** Funcin de actualizacin cuando est deshabilitado. * @return Dependiente de la implementacin. */ virtual s32 UpdateDisabled() = 0; /** Funcin de actualizacin cuando est seleccionado. * @return Dependiente de la implementacin. */ virtual s32 UpdateSelected() = 0; /** Muestra el control. */ virtual void Appear(); /** Oculta el control. */ virtual void Disappear(); /** Habilita el control. */ virtual void Enable(); /** Deshabilita el control. */ virtual void Disable(); /** Enfoca el control. */ virtual void Focus(); /** Desenfoca el control. */ virtual void Unfocus(); /** Selecciona el control. */ virtual void Select(); /** Deselecciona el control. */ virtual void Unselect(); /** Establece la funcin para cuando recibe el enfoque. * @param func Funcin callback a llamara cuando se produce el evento. * @param data Datos adicionales. */ void SetOnFocus(void (*func)(JControl*, void *), void *data = 0) {focus = func; focusData = data;}; /** Establece la funcin para cuando pierde el enfoque. * @param func Funcin callback a llamara cuando se produce el evento. * @param data Datos adicionales. */ void SetOnUnfocus(void (*func)(JControl*, void *), void *data = 0) {unfocus = func; unfocusData = data;}; /** Establece la funcin para cuando es activado. * @param func Funcin callback a llamara cuando se produce el evento. * @param data Datos adicionales. */ void SetOnEnable(void (*func)(JControl*, void *), void *data = 0) {enable = func; enableData = data;}; /** Establece la funcin para cuando es desactivado. * @param func Funcin callback a llamara cuando se produce el evento. * @param data Datos adicionales. */ void SetOnDisable(void (*func)(JControl*, void *), void *data = 0) {disable = func; disableData = data;}; /** Establece la funcin para cuando aparece. * @param func Funcin callback a llamara cuando se produce el evento. * @param data Datos adicionales. */ void SetOnAppear(void (*func)(JControl*, void *), void *data = 0) {appear = func; appearData = data;}; /** Establece la funcin para cuando desaparece. * @param func Funcin callback a llamara cuando se produce el evento. * @param data Datos adicionales. */ void SetOnDisappear(void (*func)(JControl*, void *), void *data = 0) {disappear = func; disappearData = data;}; /** Establece la funcin para cuando se selecciona. * @param func Funcin callback a llamara cuando se produce el evento. * @param data Datos adicionales. */ void SetOnSelect(void (*func)(JControl*, void *), void *data = 0) {select = func; selectData = data;}; /** Establece la funcin para cuando se deselecciona. * @param func Funcin callback a llamara cuando se produce el evento. * @param data Datos adicionales. */ void SetOnUnselect(void (*func)(JControl*, void *), void *data = 0) {unselect = func; unselectData = data;}; /** Determina si el control est visible. * @return true si lo est, false si no. */ bool Visible() {return 0 != (state & VISIBLE);} /** Determina si el control est enfocado. * @return true si lo est, false si no. */ bool Focused() {return 0 != (state & FOCUSED);} /** Determina si el control est seleccionado. * @return true si lo est, false si no. */ bool Selected() {return 0 != (state & SELECTED);} /** Determina si el control est activado. * @return true si lo est, false si no. */ bool Enabled() {return 0 != (state & ENABLED);} /** Carga el control desde un fichero. * @param f Fichero abierto y posicionado para cargar el objeto. * @return 0 si todo va bien, 1 en caso de error de E/S, * 2 en caso de incoherencia de los datos. */ u32 Load(JRW &f); /** Salva la interfaz a un fichero de definicin de interfaz. * @param f Fichero abierto y posicionado para salvar el objeto. * @return 0 si todo va bien, 1 en caso de error de E/S, * 2 en caso de incoherencia de los datos. */ u32 Save(JRW &f); /** Libera la memoria asociada. */ virtual ~JControl(); }; #endif // _JCONTROL_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLCamera.h0000600000175000001440000000661211177007633021252 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 29/04/2003 // @description: Cmara. // // ^ __> Vista (ejes locales de cmara): // | up ^ y (yaw) // | __________> | // /---\ eye-target * | // | x |O---------------------->*** | x (pitch) // \---/ eye target o--------> // z (roll) /////////////////////////////////////////////////////////////////////////////// #ifndef _JGLCAMERA_INCLUDED #define _JGLCAMERA_INCLUDED #include #include #include #include #include #include class JGLCamera : public JObject { public: float humanize; // Factor de irregularidad de movimiento float spring; // Factor de suavizado de movimiento float zoom; // Factor de zoom JPoint orgTarget; // Objetivo original JPoint orgEye; // Punto de vista original JVector orgUp; // Sentido vertical original JPoint target; // Objetivo JCoordAxes camera; // Base de la cmara // Crea una cmara JGLCamera(JPoint _eye, JPoint _target, JVector _up); // Calcula los vectores base en funcin del ojo y el objetivo void ComputeBasis(); // Modifica la posicin de la cmara (eye) la cantidad indicada void Translate(JVector deltaPos); // Mueve la cmara (eye) a la posicin indicada void TranslateTo(JVector pos); // Rota la cmara en torno: // - al eje x (Pitch, direccin perpendicular al plano eye-target/up) // - al eje y (Roll, direccin eye-target) // - al eje z (Yaw, direccin up) void Rotate(float x, float y, float z); // Modifica la posicin del objetivo la cantidad indicada void TargetTranslate(JVector deltaTarget); // Mueve la posicin de objetivo a la posicin indicada void TargetTranslateTo(JVector pos); // Rota la cmara en torno a un eje pasando por el objetivo void TargetRotate(float x, float y, float z); // Zoom. Especifica la cantidad de zoom void Zoom(float amount); // Ajusta la perspectiva (ms o menos distorsin) void Perspective(float distortAmount); // Establece la proyeccin de cmara void Set(); // Reset de cmara void Reset(); }; #endif // _JGLCAMERA_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JControl.cpp0000600000175000001440000000754611177007633021621 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clase base de un control de interfaz de usuario. * @file JControl.cpp. * @author Juan Carlos Seijo Prez. * @date 27/10/2003. * @version 0.0.1 - 27/10/2003 - Primera versin. */ #include u32 JControl::controlCount; const u32 JControl::VISIBLE = 0x00000001; const u32 JControl::FOCUSED = 0x00000002; const u32 JControl::ENABLED = 0x00000004; const u32 JControl::SELECTED = 0x00000008; // Constructor JControl::JControl(JControl *_parent, u32 _state) : parent(_parent), focusIndex(++controlCount), state(_state), focus(0), unfocus(0), enable(0), disable(0), appear(0), disappear(0), select(0), unselect(0), focusData(0), unfocusData(0), enableData(0), disableData(0), appearData(0), disappearData(0), selectData(0), unselectData(0) { id = controlCount; } // Destructor JControl::~JControl() { --controlCount; } // Actualiza el control. Devuelve el estado del control. void JControl::Draw() { if (Visible()) { if (Enabled()) { if (Selected()) { DrawSelected(); } else if (Focused()) { DrawFocus(); } else { DrawVisible(); } } else { DrawDisabled(); } } } // Actualiza el control. Devuelve el estado del control. s32 JControl::Update() { if (Visible()) { if (Enabled()) { if (Selected()) { return UpdateSelected(); } else if (Focused()) { return UpdateFocus(); } else { return UpdateVisible(); } } else { return UpdateDisabled(); } } return state; } // Muestra el control void JControl:: Appear() { if (!Visible()) { state &= VISIBLE; OnAppear(); } } // Oculta el control void JControl:: Disappear() { if (Visible()) { state &= ~VISIBLE; OnDisappear(); } } // Habilita el control void JControl:: Enable() { if (!Enabled()) { state &= ENABLED; OnEnable(); } } // Deshabilita el control void JControl:: Disable() { if (Enabled()) { state &= ~ENABLED; OnDisable(); } } // Enfoca el control void JControl:: Focus() { if (!Focused()) { state &= FOCUSED; OnFocus(); } } // Desenfoca el control void JControl:: Unfocus() { if (Focused()) { state &= ~FOCUSED; OnUnfocus(); } } // Selecciona el control void JControl:: Select() { if (!Selected()) { state &= SELECTED; OnSelect(); } } // Deselecciona el control void JControl:: Unselect() { if (Selected()) { state &= ~SELECTED; OnUnselect(); } } u32 JControl::Load(JRW &f) { // Carga el ndice de control y del control padre if (0 == f.ReadLE32(&id) || 0 == f.ReadLE32(&parentId)) { return 1; } return 0; } u32 JControl::Save(JRW &f) { // Carga el ndice de control y del control padre if (0 == f.WriteLE32(&id) || 0 == f.WriteLE32(&parentId)) { return 1; } return 0; } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLGrid.cpp0000600000175000001440000000571511177007633021305 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 01/04/2003 // @description: Ejes coordenados /////////////////////////////////////////////////////////////////////////////// #include const u8 JGLGrid::XY = 0; // Cuadrcula en plano XY const u8 JGLGrid::YZ = 1; // Cuadrcula en plano YZ const u8 JGLGrid::ZX = 2; // Cuadrcula en plano ZX // Crea unos ejes coordenados JGLGrid::JGLGrid(s32 _divs, float fScale, JGLColorf _color, const u8 _orient) { scale = fScale; color = _color; divs = _divs; orient = _orient; nList = 0; RebuildList(); } // Crea la lista de OpenGL void JGLGrid::RebuildList() { if (nList != 0) glDeleteLists(nList, 1); nList = glGenLists(1); float delta; delta = scale/divs; glNewList(nList, GL_COMPILE); // Pinta la cuadrcula glBegin(GL_LINES); glColor3f(color.r, color.g, color.b); switch(orient) { case XY: { for (s32 i = 0; i <= 2 * divs; ++i) { glVertex3f(scale - (i * delta), scale, 0.0f); glVertex3f(scale - (i * delta), -scale, 0.0f); glVertex3f(scale, scale - (i * delta), 0.0f); glVertex3f(-scale, scale - (i * delta), 0.0f); } break; } case YZ: { for (s32 i = 0; i <= 2 * divs; ++i) { glVertex3f(0.0f, scale - (i * delta), scale); glVertex3f(0.0f, scale - (i * delta), -scale); glVertex3f(0.0f, scale, scale - (i * delta)); glVertex3f(0.0f, -scale, scale - (i * delta)); } break; } default: case ZX: { for (s32 i = 0; i <= 2 * divs; ++i) { glVertex3f(scale - (i * delta), 0.0f, scale); glVertex3f(scale - (i * delta), 0.0f, -scale); glVertex3f(scale, 0.0f, scale - (i * delta)); glVertex3f(-scale, 0.0f, scale - (i * delta)); } break; } } glEnd(); glEndList(); } // Pinta la cuadrcula void JGLGrid::Draw() { glCallList(nList); } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JUI.cpp0000600000175000001440000000517211177007633020507 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clase de gestin de una interfaz de usuario. * @file JUI.cpp * @author Juan Carlos Seijo Prez * @date 13/06/2004 * @version 0.0.1 - 13/06/2004 - Primera versin. */ #include bool JUI::Init() { return true; } void JUI::Draw() { for (int i = 0; i < numControls; ++i) { controls[i]->Draw(); } } s32 JUI::Update() { for (int i = 0; i < numControls; ++i) { controls[i]->Update(); } return 0; } s32 JUI::TrackMouse(s32 x, s32 y, s32 bt) { return 0; } s32 JUI::TrackKeyboard(s32 x, s32 y, s32 bt) { return 0; } u32 JUI::Load(JRW &f) { Destroy(); // Carga el nmero de controles de la interfaz if (0 == f.ReadLE32(&numControls)) { return 1; } // Crea el array de controles de la interfaz controls = new JControl *[numControls]; // Carga los controles de la interfaz u32 t = 0; for (int i = 0; i < numControls; ++i) { if (0 == f.Read(&t, sizeof(t))) { Destroy(); return 2; } switch (t) { case JCONTROLTYPE_IMAGE: controls[i] = new JControlImage; break; case JCONTROLTYPE_IMAGESPRITE: break; case JCONTROLTYPE_MESH: break; case JCONTROLTYPE_MESHSPRITE: break; default: fprintf(stderr, "Control de interfaz de usuario no reconocido.\n"); Destroy(); return 2; } if (0 != controls[i]->Load(f)) { return 2; } } return 0; } u32 JUI::Save(JRW &f) { // Salva el nmero de controles de la interfaz if (0 == f.WriteLE32(&numControls)) { return 1; } // Salva los controles de la interfaz for (int i = 0; i < numControls; ++i) { if (0 != controls[i]->Save(f)) { return 2; } } return 0; } void JUI::Destroy() { if (controls != 0) { for (int i = 0; i < numControls; ++i) { JDELETE(controls[i]); } } JDELETE_ARRAY(controls); } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLConsole.h0000600000175000001440000000536511177007633021470 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 20/10/2003 // @description: Consola de texto para OpenGL independiente de la plataforma. /////////////////////////////////////////////////////////////////////////////// #ifndef _JGLCONSOLE_INCLUDED #define _JGLCONSOLE_INCLUDED #include #include #include #include #include #include #include #define JGLCONSOLE_MAX_LINE 128 typedef enum { JGLCONSOLE_FONT1 = 1, JGLCONSOLE_FONT2 } JGLCONSOLE_FONT; // Lnea de texto en la consola typedef struct _JGLConsoleLine { s8 str[JGLCONSOLE_MAX_LINE]; // Cadena a mostrar s32 line; // Lnea en la que se muestra } JGLConsoleLine; class JGLConsole : public JDrawable { s32 maxLines; // N de lneas en pantalla bool visible; // Flag de visibilidad s32 nextLine; // Siguiente lnea libre bool isFull; // Indicador de texto en la ltima lnea u8 (*chars)[8]; // Puntero a los caracteres JGLCONSOLE_FONT font; // Fuente usada JGLConsoleLine *lines; // Lneas en pantalla public: // Constructor JGLConsole(); // Destructor ~JGLConsole(); // Inicializa la consola void ChangeSettings(s32 _maxLines, JGLCONSOLE_FONT _font); // Dibuja la consola si est visible void Draw(); // Aade una cadena a la consola (tipo 'printf()') void Printf(const s8 *str, ...); // Borra la consola void Clear(); // Muestra/oculta la consola void SetVisible(bool b) {visible = b;} // Determina si la consola est visible bool IsVisible() {return visible;} }; #endif // _JGLCONSOLE_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLColor.h0000600000175000001440000001061211177007633021133 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 01/04/2003 // @description: Funciones y estructuras para color. /////////////////////////////////////////////////////////////////////////////// #ifndef _JGLCOLOR_INCLUDED #define _JGLCOLOR_INCLUDED #include #include // Estructura de definicin de color tipo float class JGLColorf : public JObject { public: float r; // Componente roja (0.0f - 1.0f) float g; // Componente verde (0.0f - 1.0f) float b; // Componente azul (0.0f - 1.0f) float a; // Componente alfa (0.0f - 1.0f) // Constructor JGLColorf() : r(1.0f), g(1.0f), b(1.0f), a(1.0f) {}; // Constructor JGLColorf(float _r, float _g, float _b, float _a = 0.0f) : r(_r), g(_g), b(_b), a(_a) {}; // Constructor JGLColorf(float *arr) : r(arr[0]), g(arr[1]), b(arr[2]), a(arr[3]) {}; // Asignacin de colores const JGLColorf& operator = (const JGLColorf &c) { r = c.r; g = c.g; b = c.b; a = c.a; return *this; } // Adicin de colores const JGLColorf& operator += (const JGLColorf &c) { r += c.r; g += c.g; b += c.b; a += c.a; return *this; } }; const JGLColorf RED = JGLColorf(1.0f, 0.0f, 0.0f, 1.0f); const JGLColorf GREEN = JGLColorf(0.0f, 1.0f, 0.0f, 1.0f); const JGLColorf BLUE = JGLColorf(0.0f, 0.0f, 1.0f, 1.0f); const JGLColorf BLACK = JGLColorf(0.0f, 0.0f, 0.0f, 1.0f); const JGLColorf YELLOW = JGLColorf(1.0f, 1.0f, 0.0f, 1.0f); const JGLColorf CYAN = JGLColorf(0.0f, 1.0f, 1.0f, 1.0f); const JGLColorf MAGENTA = JGLColorf(1.0f, 0.0f, 1.0f, 1.0f); const JGLColorf ORANGE = JGLColorf(1.0f, 0.5f, 0.0f, 1.0f); const JGLColorf PINK = JGLColorf(1.0f, 0.0f, 0.5f, 1.0f); const JGLColorf PURPLE = JGLColorf(0.5f, 0.0f, 1.0f, 1.0f); const JGLColorf INDIGO = JGLColorf(0.0f, 0.5f, 1.0f, 1.0f); const JGLColorf YELLOWGREEN = JGLColorf(0.5f, 1.0f, 0.0f, 1.0f); const JGLColorf TURQUOISE = JGLColorf(0.0f, 1.0f, 0.5f, 1.0f); const JGLColorf GRAY = JGLColorf(0.5f, 0.5f, 0.5f, 1.0f); const JGLColorf WHITE = JGLColorf(1.0f, 1.0f, 1.0f, 1.0f); const JGLColorf LIGHTGRAY = JGLColorf(0.25f, 0.25f, 0.25f, 1.0f); // Estructura de definicin de color tipo unsigned byte class JGLColorub { public: u8 r; // Componente roja (0 - 255) u8 g; // Componente verde (0 - 255) u8 b; // Componente azul (0 - 255) u8 a; // Componente alfa (0 - 255) // Constructor JGLColorub() : r(255), g(255), b(255), a(255) {}; // Constructor JGLColorub(u8 _r, u8 _g, u8 _b, u8 _a = 255) : r(_r), g(_g), b(_b), a(_a) {}; // Asignacin de colores const JGLColorub& operator = (JGLColorub& c) { r = c.r; g = c.g; b = c.b; a = c.a; return *this; } }; // Pasa de color decimal (0-1) a byte (0-255) inline JGLColorub JGLColorf2ub(JGLColorf &color) { return JGLColorub((u8)color.r*255, (u8)color.g*255, (u8)color.b*255, (u8)color.a*255); }; // Pasa de color byte (0-255) a decimal (0-1) inline JGLColorf JGLColorub2f(JGLColorub &color) { return JGLColorf(color.r/255.0f, color.g/255.0f, color.b/255.0f, color.a/255.0f); }; #endif // _JGLCOLOR_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLTexture.h0000600000175000001440000001173511177007633021524 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clase para gestin de texturas. El objeto JGLTexture consta de las * coordenadas de textura dentro de la superficie de datos y de un ndice * de textura OpenGL. El llamador es responsable de que la textura sea vlida * (por ejemplo de ancho y alto como potencia de 2, donde se aplique o * dimensiones mnimas y/o mximas dependientes de la implementacin OpenGL). * @file JGLTexture.h * @author Juan Carlos Seijo Prez * @date 01/04/2003 * @version 0.0.1 - 01/04/2003 - Primera Versin. */ #ifndef _JGLTEXTURE_INCLUDED #define _JGLTEXTURE_INCLUDED #include #include #include #include #include #ifndef GL_CLAMP_TO_EDGE #define GL_CLAMP_TO_EDGE GL_CLAMP #endif//GL_CLAMP_TO_EDGE /** Clase para gestin de texturas */ class JGLTexture : public JObject { /** Instancia de textura. Sirve para llevar cuenta de las referencias a una misma textura creadas. */ struct JInstance { JInstance() : id(0), refCount(0) {} u32 id; bool hasMipmaps; s32 width; s32 height; s32 bpp; u32 refCount; } *instance; // Crea la textura. u32 Create(); public: // Constructor JGLTexture(); // Constructor copia, referencia la textura. JGLTexture(JGLTexture &other); // Constructor copia, referencia la textura. JGLTexture(const JGLTexture &other); // Determina si esta textura es vlida bool Valid() {return instance != 0;} // Crea la textura a partir de un buffer. u32 Create(JImage *image, bool withMipmaps = true, s32 internalFormat = 4, s32 border = 0, s32 format = GL_RGBA, s32 type = GL_UNSIGNED_BYTE); // Crea la textura desde un fichero bmp, targa, jpg, png, xpm o pcx. // Devuelve el id de textura y no se queda una copia. u32 Load(const char *fileName, bool withMipmaps = true, s32 internalFormat = 4, s32 border = 0, s32 format = GL_RGBA, s32 type = GL_UNSIGNED_BYTE); // Libera la memoria asociada void Destroy(); // Devuelve la siguiente potencia de dos por encima del valor dado. static u32 Next2Power(u32 value); // Devuelve el identificador de textura u32 ID() {return instance ? instance->id : 0;} // Devuelve la superficie de textura, debe estar enlazada a OpenGL (bind) u8* Data() {u8 *data; glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); return data;} // Devuelve la anchura de la textura u32 Width() {return instance->width;} // Devuelve la altura de la textura u32 Height() {return instance->height;} // Devuelve la profundidad de color u32 BitsPP() {return instance->bpp;} // Enlaza la textura a OpenGL void GLBind() {glBindTexture(GL_TEXTURE_2D, instance->id);} // Establece la repeticin x e y static void GLRepeat() {glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);} // Establece clamp x e y static void GLClamp() {glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);} // Establece clamp to edge x e y static void GLClampToEdge() {glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);} // Establece el parmetro OpenGL dado para las texturas 2D static void GLParameter(u32 param, u32 value) {glTexParameteri(GL_TEXTURE_2D, param, value);} // Establece las coordenadas de textura void GLCoord2f(float s, float t) {glTexCoord2f(s, t);} // Establece las coordenadas de textura void GLCoord2fv(const float *v) {glTexCoord2fv(v);} // Establece las coordenadas de textura void GLCoord2d(s32 s, s32 t) {glTexCoord2i(s, t);} // Establece las coordenadas de textura void GLCoord2dv(const s32 *v) {glTexCoord2iv(v);} // Referencia la textura dada. void Ref(JGLTexture &other); // Referencia la textura dada. JGLTexture & operator=(JGLTexture &other); // Referencia la textura dada. void Ref(const JGLTexture &other); // Referencia la textura dada. JGLTexture & operator=(const JGLTexture &other); // Destructor virtual ~JGLTexture() {Destroy();} }; #endif // _JGLTEXTURE_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JImageMenu.cpp0000600000175000001440000001361411177007633022041 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Menu en pantalla compuesto de imagnes. * @file JImageMenu.cpp * @author Juan Carlos Seijo Prez * @date 28/04/2004 * @version 0.0.1 - 28/04/2004 - Primera versin. * @version 0.0.2 - 25/09/2004 - Modificacin del mtodo 2D de Pos() para aceptar floats (quita libertad sino). */ #include bool JImageMenuEntry::Select() { if (Action) { Action(data); return true; } return false; } JImageMenu::JImageMenu() { curOption = options.NewIterator(); } void JImageMenu::ApplyLayout(JTree::Iterator *it) { // Si es distribucin libre, lo especificarn desde fuera if (config.layout == JIMAGEMENU_FREE) { return; } s32 maxX = 0; s32 xOff = 0, yOff = 0; // Determina la anchura mxima entre todas las opciones de esta rama do { maxX = maxX < it->Data()->Image()->Width() ? it->Data()->Image()->Width() : maxX; // Renderiza los hijos if (it->Child()) { ApplyLayout(it); } } while (it->Next()); it->FirstInBranch(); // Aplica la distribucin de men do { switch (config.layout) { case JIMAGEMENU_LEFT: it->Data()->Image()->Pos(0, yOff); it->Data()->HiImage()->Pos(0, yOff); yOff += it->Data()->Image()->Height(); break; case JIMAGEMENU_RIGHT: xOff = -it->Data()->Image()->Width(); it->Data()->Image()->Pos(xOff, yOff); it->Data()->HiImage()->Pos(xOff, yOff); yOff += it->Data()->Image()->Height(); break; case JIMAGEMENU_CENTER: xOff = -(it->Data()->Image()->Width()/2); it->Data()->Image()->Pos(xOff, yOff); it->Data()->HiImage()->Pos(xOff, yOff); yOff += it->Data()->Image()->Height(); break; case JIMAGEMENU_SAMELINE: it->Data()->Image()->Pos(xOff, 0); it->Data()->HiImage()->Pos(xOff, 0); xOff += it->Data()->Image()->Width(); break; default: break; } } while (it->Next()); it->Parent(); } bool JImageMenu::Init(JImageMenuConfig &cfg) { if (curOption == 0) { // No es una aplicacin vlida o no se aadieron opciones return false; } memcpy(&config, &cfg, sizeof(config)); // Renderiza las opciones de men curOption->Root(); ApplyLayout(curOption); return true; } void JImageMenu::Pos(float x, float y) { pos.x = x; pos.y = y; if (curOption) { // Renderiza las opciones de men curOption->Root(); ApplyLayout(curOption); } } void JImageMenu::Draw() { JTree::Iterator *it = new JTree::Iterator(*curOption); JImage * img; it->FirstInBranch(); do { // Si es la opcin seleccionada muestra su imagen resaltada if (it->Data() == curOption->Data()) { img = it->Data()->HiImage(); } else { img = it->Data()->Image(); } img->Draw((s32)(X() + img->X()), (s32)(Y() + img->Y())); } while (it->Next()); delete it; } void JImageMenu::TrackKeyboard(SDL_keysym key) { // Actualiza el estado segn el teclado if (config.trackKeyboard) { switch (key.sym) { case SDLK_TAB: // SHIFT + TAB if (JApp::App()->KeyMods() & KMOD_SHIFT) { // Opcin anterior curOption->Prev(); } // TAB else { // Opcin siguiente curOption->Next(); } break; case SDLK_UP: case SDLK_LEFT: // Opcin anterior curOption->Prev(); break; case SDLK_DOWN: case SDLK_RIGHT: // Opcin siguiente curOption->Next(); break; case SDLK_KP_ENTER: case SDLK_RETURN: // Ejecuta la accin asociada if (!curOption->Data()->Select() && config.autoEnter) { // Si no hay accin asociada y se especific autoEnter, intenta descender // a la opcin hija. curOption->Child(); } break; case SDLK_ESCAPE: // Va a la opcin padre. curOption->Parent(); break; default: break; } // switch (key) } // Track keyboard } void JImageMenu::TrackMouse(s32 bt, s32 x, s32 y) { // Actualiza el estado segn el ratn if (config.trackMouse) { JTree::Iterator *it = new JTree::Iterator(*curOption); s32 mx, my; bool found = false; mx = JApp::App()->MouseX(); my = JApp::App()->MouseY(); it->FirstInBranch(); // Comprueba si est sobre alguna opcin do { if (mx > it->Data()->Image()->X() + X() && mx < it->Data()->Image()->X() + X() + it->Data()->Image()->Width() && my > it->Data()->Image()->Y() + Y() && my < it->Data()->Image()->Y() + Y() + it->Data()->Image()->Height()) { // Est dentro, hace que sea la opcin resaltada found = true; // Borra el iterador actual delete(curOption); curOption = it; } } while (!found && it->Next()); if (found) { // Si ahora est pulsado, activa el flag de pulsacin if (bt & SDL_BUTTON_LEFT) { // Ejecuta la accin asociada if (!curOption->Data()->Select() && config.autoEnter) { // Si no hay accin asociada y se especific autoEnter, intenta descender // a la opcin hija. curOption->Child(); } } } // Si encontr una opcin bajo el cursor el iterador sobre esa opcin // pasa a ser el iterador de opcin actual, no lo borra if (!found) delete it; } // Track mouse } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JSprite.cpp0000600000175000001440000000614611177007633021442 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Sprite genrico. * @file JSprite.cpp. * @author Juan Carlos Seijo Prez. * @date 18/10/2003. * @version 0.0.1 - 18/10/2003 - Primera versin. */ #include // Inicializa el sprite con los parmetros dados. No crea el array de frames, // puesto que lo debe hacer la clase hija. void JSprite::Init(u32 nFrames, u32 _FPS, bool mustLoop, bool mustGoBack, bool mustGoBackwards) { if (nFrames) numFrames = nFrames; loop = mustLoop; goBack = mustGoBack; backwards = mustGoBackwards; if (backwards) { firstFrame = numFrames - 1; lastFrame = 0; frameAdvance = -1; } else { firstFrame = 0; lastFrame = numFrames - 1; frameAdvance = 1; } curFrame = firstFrame; FPS(_FPS); } // Pasa al siguiente frame si han pasado 1/fps segundos. // Devuelve el frame actual si ha cambiado, -1 si no cambi // y -2 si est en pausa. s32 JSprite::Update() { if (!paused) { if (timer.Changed()) { // Cambia de frame if (curFrame == lastFrame) { if (loop) { // Si debe volver cambia el sentido if (goBack) { s32 tmp; tmp = lastFrame; lastFrame = firstFrame; firstFrame = tmp; frameAdvance *= -1; curFrame += frameAdvance; return curFrame; } else { curFrame = firstFrame; return curFrame; } } return -1; } else { curFrame += frameAdvance; return curFrame; } } } return -2; } // Establece el nmero de cuadros por segundo void JSprite::FPS(const u32 newFPS) { fps = newFPS; if (fps) timer.Start(1000L/fps); else timer.Pause(); } // Va al frame anterior bool JSprite::PrevFrame() { if (curFrame > 0) { --curFrame; return true; } return false; } // Va al frame siguiente bool JSprite::NextFrame() { if (curFrame < numFrames - 1) { ++curFrame; return true; } return false; } // Destruye el sprite, liberando la memoria asociada void JSprite::Destroy() { if (frames) { for (u32 i = 0; i < numFrames; ++i) { JDELETE(frames[i]); } delete[] frames; frames = 0; } } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JImageSprite.h0000600000175000001440000001060711177007633022047 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Sprite de imgenes. * @file JImageSprite.h * @author Juan Carlos Seijo Prez. * @date 18/10/2003. * @version 0.0.1 - 18/10/2003 - Primera versin. * @version 0.0.2 - 01/06/2004 - Adicin de mtodo de copia. */ #ifndef _JIMAGESPRITE_INCLUDED #define _JIMAGESPRITE_INCLUDED #include #include #include #include #include /** Sprite de imgenes. */ class JImageSprite : public JSprite { protected: s32 wMax; /**< Anchura del frame mayor. */ s32 hMax; /**< Altura del frame mayor. */ public: /** Crea el objeto. */ JImageSprite() : JSprite(), wMax(0), hMax(0) {} /** Crea un sprite de imgenes a partir de otro dado. */ JImageSprite(JImageSprite &spr); /** Carga el sprite desde un fichero. * Si _numFrames == 0 toma las que tenga internamente (0 por defecto). * Si frameW != 0 y frameH == 0, considera que las frames estn en horizontal. * Si frameW == 0 y frameH != 0, considera que las frames estn en vertical. * Si frameW != 0 y frameH != 0, intenta encajarlas en H o V, si no intenta encajar los cuadrados. * Si frameW == 0 y frameH == 0 o numFrames == 0 o hay una incoherencia o un error, devuelve false. * @param fileName Nombre del fichero. * @param frameW Anchura de cuadro. * @param frameH Altura de cuadro. * @param _numFrames Nmero de frames. * @param colorKey Color transparente. * @return Si todo va bien, devuelve true, si no, false. */ bool Load(const JString &fileName, u32 frameW, u32 frameH = 0, u32 _numFrames = 0, u32 colorKey = 0x00000000); /** Carga el sprite desde varios ficheros de imgenes. * @param imageFiles Array con los nombres de los ficheros. * @param _numFrames Nmero de ficheros (frames) del sprite. * @param colorKey Color transparente. * Si todo va bien, devuelve true. */ bool Load(JString *imageFiles, u32 _numFrames, u32 colorKey = 0x00000000); /** Dibuja el sprite en pantalla. */ virtual void Draw(); /** Alinea arriba los frames del sprite. */ void AlignUp(); /** Alinear abajo los frames del sprite. */ void AlignDown(); /** Alinea a la izquierda los frames del sprite. */ void AlignLeft(); /** Alinea a la derecha los frames del sprite. */ void AlignRight(); /** Ajusta al mximo el borde del sprite. */ void AdjustSize(); /** Devuelve la anchura mxima. * @return Anchura mxima. */ s32 MaxW() const {return wMax;} /** Devuelve la altura mxima. * @return Altura mxima. */ s32 MaxH() const {return hMax;} /** Devuelve el frame actual en forma de Image. * @return Frame actual en forma de image. */ JImage * CurImage() {return (JImage *)frames[curFrame];} /** Carga el sprite. * @param f Fichero posicionado para cargar el sprite. * @return 0 si todo fue bien, 1 en caso de error de E/S, 2 en caso * de error en los datos. */ u32 Load(JRW &f); /** Salva el sprite. * @param f Fichero posicionado para salvar el sprite. * @return 0 si todo fue bien, 1 en caso de error de E/S, 2 en caso * de error en los datos. */ u32 Save(JRW &f); /** Libera la memoria asociada. */ virtual ~JImageSprite(){} /** Crea una referencia del sprite dado. Las imagenes se referencian, de forma que no * se crea una copia de las mismas, ocupan la misma memoria. Es equivalente al * constructor copia. */ void Ref(JImageSprite &); }; #endif // _JIMAGESPRITE_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JJ3DFormat.h0000644000175000001440000001316411177007633021400 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Pérez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Pérez * jacob@mainreactor.net */ /** Etiquetas de ficheros J3D * @file JJ3DFormat.h * @author Juan Carlos Seijo Pérez * @date 20/09/2003 * @version 0.0.1 - 20/09/2003 - Primera versión. */ #ifndef _JJ3DFORMAT_INCLUDED #define _JJ3DFORMAT_INCLUDED #include #include // Tags del formato J3D. Son las cadenas a utilizar por scanf más adelante. /** Cabecera de fichero. */ #define JJ3DTAG_TEXT_FILE_HEADER "J3DT" /** Cabecera de fichero. */ #define JJ3DTAG_BIN_FILE_HEADER "J3DB" /** La versión para la que se hace, no cuenta para validar el ase. */ #define JJ3DTAG_FILE_VERSION "0100" /** Escena. */ #define JJ3DTAG_SCENE "*SCENE" /** Ordinal del primer cuadro. */ #define JJ3DTAG_SCENE_FIRSTFRAME "*SCENE_FIRSTFRAME" /** Ordinal del último cuadro. */ #define JJ3DTAG_SCENE_LASTFRAME "*SCENE_LASTFRAME" /** Lista de materiales. */ #define JJ3DTAG_MATERIAL_LIST "*MATERIAL_LIST" /** Número de materiales. */ #define JJ3DTAG_MATERIAL_COUNT "*MATERIAL_COUNT" /** Material. */ #define JJ3DTAG_MATERIAL "*MATERIAL" /** Núemro de submateriales. */ #define JJ3DTAG_SUBMATERIAL_COUNT "*NUMSUBMTLS" /** Submaterial. */ #define JJ3DTAG_SUBMATERIAL "*SUBMATERIAL" /** Tipo de material. */ #define JJ3DTAG_MATERIAL_CLASS "*MATERIAL_CLASS" /** Material Multi/sub-objeto. */ #define JJ3DVAL_MULTI_SUBOBJECT "\"Multi/Sub-Object\"" /** Material estándar. */ #define JJ3DVAL_STANDARD "\"Standard\"" /** Color ambiente del material. */ #define JJ3DTAG_MATERIAL_AMBIENT "*MATERIAL_AMBIENT" /** Color difuso del material. */ #define JJ3DTAG_MATERIAL_DIFFUSE "*MATERIAL_DIFFUSE" /** Color especular del material. */ #define JJ3DTAG_MATERIAL_SPECULAR "*MATERIAL_SPECULAR" /** Flag de brillo del material. */ #define JJ3DTAG_MATERIAL_SHINE "*MATERIAL_SHINE" /** Intensidad de brillo del material. */ #define JJ3DTAG_MATERIAL_SHINESTRENGTH "*MATERIAL_SHINESTRENGTH" /** Transparencia del material. */ #define JJ3DTAG_MATERIAL_TRANSPARENCY "*MATERIAL_TRANSPARENCY" /** Iluminación propia. */ #define JJ3DTAG_MATERIAL_SELFILLUM "*MATERIAL_SELFILLUM" /** Tipo XP. */ #define JJ3DTAG_MATERIAL_XP_TYPE "*MATERIAL_XP_TYPE" /** Mapa difuso del material. */ #define JJ3DTAG_MATERIAL_MAP_DIFFUSE "*MAP_DIFFUSE" /** Subnúmero del mapa del material. */ #define JJ3DTAG_MATERIAL_MAP_SUBNO "*MAP_SUBNO" /** Textura del material. */ #define JJ3DTAG_MATERIAL_BITMAP "*BITMAP" /** Objeto. */ #define JJ3DTAG_GEOMOBJECT "*GEOMOBJECT" /** Nombre. */ #define JJ3DTAG_NODE_NAME "*NODE_NAME" /** Geometría. */ #define JJ3DTAG_MESH "*MESH" /** Tiempo dentro de la animación. */ #define JJ3DTAG_TIMEVALUE "*TIMEVALUE" /** Númerod evértices. */ #define JJ3DTAG_MESH_NUMVERTEX "*MESH_NUMVERTEX" /** Número de caras. */ #define JJ3DTAG_MESH_NUMFACES "*MESH_NUMFACES" /** Lista de vértices. */ #define JJ3DTAG_MESH_VERTEX_LIST "*MESH_VERTEX_LIST" /** Vértice. */ #define JJ3DTAG_MESH_VERTEX "*MESH_VERTEX" /** Lista de caras. */ #define JJ3DTAG_MESH_FACE_LIST "*MESH_FACE_LIST" /** Cara. */ #define JJ3DTAG_MESH_FACE "*MESH_FACE" /** Primer vértice. */ #define JJ3DTAG_MESH_A "A:" /** Segundo vértice. */ #define JJ3DTAG_MESH_B "B:" /** Tercer vértice. */ #define JJ3DTAG_MESH_C "C:" /** ID del material asociado. */ #define JJ3DTAG_MESH_MTLID "*MESH_MTLID" /** Núemro de vértices con textura. */ #define JJ3DTAG_MESH_NUMTVERTEX "*MESH_NUMTVERTEX" /** Lista de vértices con textura. */ #define JJ3DTAG_MESH_TVERTLIST "*MESH_TVERTLIST" /** Vértice con textura. */ #define JJ3DTAG_MESH_TVERT "*MESH_TVERT" /** Número de caras con textura. */ #define JJ3DTAG_MESH_NUMTVFACES "*MESH_NUMTVFACES" /** Lista de caras con textura. */ #define JJ3DTAG_MESH_TFACELIST "*MESH_TFACELIST" /** Cara con textura. */ #define JJ3DTAG_MESH_TFACE "*MESH_TFACE" /** Lista de normales. */ #define JJ3DTAG_MESH_NORMALS "*MESH_NORMALS" /** Normales de cara. */ #define JJ3DTAG_MESH_FACENORMAL "*MESH_FACENORMAL" /** Normales de vértice. */ #define JJ3DTAG_MESH_VERTEXNORMAL "*MESH_VERTEXNORMAL" /** Núemro de material. */ #define JJ3DTAG_MATERIAL_REF "*MATERIAL_REF" #endif // _JJ3DFORMAT_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JASELoader.h0000600000175000001440000000542511177007633021377 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Cargador de ficheros ASE. * @author: Juan Carlos Seijo Prez * @date: 20/09/2003 * @notes: Curiosidad de MAX 5, pongo el ejemplo: * Supongamos una escena con tres bolas que comparten el mismo material multi/subobjeto * compuesto de tres submateriales de id 1, 2 y 3, respectivamente. Si las bolas * tienen id's 1, 2 y 3 respectivamente se asignarn de esa forma los submateriales * a cada una de ellas. Sin embargo si alguna de ellas tiene un valor diferente (mayor), * el material que aplica MAX es el resto de dividir el id de la bola menos uno entre el nmero * de submateriales del material y todo eso ms uno. * As si las bolas tienen id's 1, 22, 8, respectivamente, * - a la bola con MTLID 1 se le asigna el submaterial: ((1-1)%3) + 1 = (0%3) + 1 = 0 + 1 = 1 * - a la bola con MTLID 23 se le asigna el submaterial: ((23-1)%3) + 1 = (21%3) + 1 = 0 + 1 = 1 * - a la bola con MTLID 7 se le asigna el submaterial: ((8-1)%3) + 1 = (7%3) + 1 = 1 + 1 = 2 * * Notad que en el ASE el MTLID es uno menos que en la escena ya. */ #ifndef _JASELOADER_INCLUDED #define _JASELOADER_INCLUDED #include #include #include /** Cargador de ficheros ASE. */ class JASELoader : public JObject { JTextFile f; /**< Fichero ASE */ /** Carga los objetos (geometra) del fichero ASE. * @return true si todo fue bien, false en otro caso. */ bool LoadObjects(JASEFormat *fmt); /** Carga los materiales del fichero ASE. * @return true si todo fue bien, false en otro caso. */ bool LoadMaterials(JASEFormat *fmt); public: /** Carga un fichero ase. * @return: 0 - si el fichero se carg correctamente, * 1 - si no existe el fichero, * 2 - si el formato est corrupto, * 3 - si fmt es nulo. */ s32 Load(const s8 *fileName, JASEFormat *fmt); }; #endif // _JASELOADER_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JControlImage.cpp0000600000175000001440000000567411177007633022564 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Control de interfaz de usuario compuesto por imgenes. * @file JControlImage.cpp * @author Juan Carlos Seijo Prez. * @date 27/10/2003. * @version 0.0.1 - 27/10/2003 - Primera versin. */ #include // Destructor void JControlImage::Destroy() { imgNormal.Destroy(); imgDisabled.Destroy(); imgFocused.Destroy(); imgSelected.Destroy(); } bool JControlImage::Init(JImage &normal, JImage &disabled, JImage &focused, JImage &selected) { imgNormal.Ref(normal); imgDisabled.Ref(disabled); imgFocused.Ref(focused); imgSelected.Ref(selected); return true; } // Funcin de dibujo cuando est visible void JControlImage::DrawVisible() { imgNormal.Draw(); } // Funcin de dibujo cuando est enfocado void JControlImage::DrawFocus() { imgFocused.Draw(); } // Funcin de dibujo cuando est deshabilitado void JControlImage::DrawDisabled() { imgDisabled.Draw(); } // Funcin de dibujo cuando est seleccionado void JControlImage::DrawSelected() { imgSelected.Draw(); } // Funcin de actualizacin cuando est visible s32 JControlImage::UpdateVisible() { return state; } // Funcin de actualizacin cuando est enfocado s32 JControlImage::UpdateFocus() { return state; } // Funcin de actualizacin cuando est deshabilitado s32 JControlImage::UpdateDisabled() { return state; } // Funcin de actualizacin cuando est seleccionado s32 JControlImage::UpdateSelected() { return state; } u32 JControlImage::Load(JRW &f) { // Carga la parte comn del control (id e id del padre) if (0 != JControl::Load(f)) { return 2; } // Carga las imgenes de control if (0 != imgNormal.Load(f) || 0 != imgFocused.Load(f) || 0 != imgSelected.Load(f) || 0 != imgDisabled.Load(f)) { return 2; } return 0; } u32 JControlImage::Save(JRW &f) { // Salva la parte comn del control (id e id del padre) if (0 != JControl::Save(f)) { return 2; } // Salva las imgenes de control if (0 != imgNormal.Save(f) || 0 != imgFocused.Save(f) || 0 != imgSelected.Save(f) || 0 != imgDisabled.Save(f)) { return 2; } return 0; } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JUI.h0000600000175000001440000000537011177007633020154 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clase de gestin de una interfaz de usuario. * @file JUI.h * @author Juan Carlos Seijo Prez * @date 13/06/2004 * @version 0.0.1 - 13/06/2004 - Primera versin. */ #ifndef _JUI_INCLUDED #define _JUI_INCLUDED #include #include #include #include /** Clase de gestin de una interfaz de usuario. */ class JUI : public JDrawable { s32 numControls; /**< Nmero de controles que contiene la interfaz. */ JControl **controls; /**< Controles que conforman la interfaz. */ public: /** Contruye el objeto vacio. Init debe ser llamado para comenzar a usarlo. */ JUI() : numControls(0), controls(0) {} /** Inicializa la interfaz. */ bool Init(); /** Devuelve los controles de esta interfaz. */ JControl **& Controls() {return controls;} /** Dibuja la interfaz de usuario. */ void Draw(); /** Actualiza la interfaz de usuario. * @return Siempre 0. */ s32 Update(); /** Actualiza la interfaz en funcin del ratn. */ s32 TrackMouse(s32 x, s32 y, s32 bt); /** Actualiza la interfaz en funcin del teclado. */ s32 TrackKeyboard(s32 x, s32 y, s32 bt); /** Carga la interfaz desde un fichero de definicin de interfaz. * @param f Fichero abierto y posicionado para cargar el objeto. * @return 0 si todo va bien, 1 en caso de error de E/S, * 2 en caso de incoherencia de los datos. */ u32 Load(JRW &f); /** Salva la interfaz a un fichero de definicin de interfaz. * @param f Fichero abierto y posicionado para salvar el objeto. * @return 0 si todo va bien, 1 en caso de error de E/S, * 2 en caso de incoherencia de los datos. */ u32 Save(JRW &f); /** Destruye los controles de la interfaz. */ void Destroy(); /** Destruye el objeto. */ ~JUI() {Destroy();}; }; #endif // _JUI_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLLight.h0000600000175000001440000001031311177007633021122 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 01/11/2003 // @description: Luz OpenGL. /////////////////////////////////////////////////////////////////////////////// #ifndef _JGLLIGHT_INCLUDED #define _JGLLIGHT_INCLUDED #include #include #include #include #include #include // Clase para gestin de texturas class JGLLight : public JObject { s32 number; // Nmero de luz OpenGL JVector pos; // Posicin JVector dir; // Direccin float cutOff; // ngulo de apertura JGLColorf ambient; // Color ambiente JGLColorf diffuse; // Color difuso JGLColorf specular; // Color especular public: // Constructor JGLLight(s32 index = 0) : number(index){} // Destructor ~JGLLight() {} // Devuelve el nmero de orden OpenGL (GL_LIGHT0, etc.) s32 Number() {return number;} // Establece el nmero de orden (GL_LIGHT0, etc.) void Number(s32 n) {number = n;} // Devuelve la posicin JVector & Pos() {return pos;} // Establece la posicin void Pos(float x, float y, float z) {pos.x = x; pos.y = y; pos.z = z; glLightfv(number, GL_POSITION, (float *)&pos);} // Establece la posicin void Pos(JVector &newPos) {pos = newPos; glLightfv(number, GL_POSITION, (float *)&pos);} // Devuelve la direccin const JVector & GetDir() {return dir;} // Establece la direccin void Dir(float x, float y, float z) {dir.x = x; dir.y = y; dir.z = z; glLightfv(number, GL_POSITION, (float *)&dir);} // Establece la direccin void Dir(JVector &newDir) {dir = newDir; glLightfv(number, GL_SPOT_DIRECTION, (float *)&dir);} // Devuelve el ngulo de apertura float CutOff() {return cutOff;} // Establece el ngulo de apertura void CutOff(float _cutOff) {cutOff = _cutOff; glLightfv(number, GL_SPOT_CUTOFF, &cutOff);} // Devuelve el color ambiente JGLColorf & Ambient() {return ambient;} // Establece el color ambiente void Ambient(float r, float g, float b, float a) {ambient.r = r; ambient.g = g; ambient.b = b; ambient.a = a; glLightfv(number, GL_AMBIENT, (float *)&ambient);} // Establece el color ambiente void Ambient(JGLColorf &color) {ambient = color; glLightfv(number, GL_AMBIENT, (float *)&ambient);} // Devuelve el color difuso JGLColorf & Diffuse() {return diffuse;} // Establece el color difuso void Diffuse(float r, float g, float b, float a) {diffuse.r = r; diffuse.g = g; diffuse.b = b; diffuse.a = a; glLightfv(number, GL_DIFFUSE, (float *)&diffuse);} // Establece el color difuso void Diffuse(JGLColorf &color) {diffuse = color; glLightfv(number, GL_DIFFUSE, (float *)&diffuse);} // Devuelve el color especular JGLColorf & Specular() {return specular;} // Establece el color especular void Specular(float r, float g, float b, float a) {specular.r = r; specular.g = g; specular.b = b; specular.a = a; glLightfv(number, GL_SPECULAR, (float *)&specular);} // Establece el color especular void Specular(JGLColorf &color) {specular = color; glLightfv(number, GL_SPECULAR, (float *)&specular);} }; #endif // _JGLLIGHT_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLVector.h0000600000175000001440000000266011177007633021323 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Vector en pantalla (OpenGL). * @file JGLVector.h. * @author Juan Carlos Seijo Prez * @date 30/04/2003 * @version 0.0.1 - 30/04/2003 - Primera versin. */ #ifndef _JGLVECTOR_INCLUDED #define _JGLVECTOR_INCLUDED #include #include #include #include /** Vector en pantalla para OpenGL. */ class JGLVector : public JVector { public: /** Dibuja el vector en pantalla. * @param pos Posicin de origen del vector. */ void Draw(JVector &pos); }; #endif // _JGLVECTOR_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLLight.cpp0000600000175000001440000000224611177007633021463 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 01/04/2003 // @description: Funciones para texturas. /////////////////////////////////////////////////////////////////////////////// #include holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLTexture.cpp0000600000175000001440000001567511177007633022066 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clase para gestin de texturas. El objeto JGLTexture consta de las * coordenadas de textura dentro de la superficie de datos y de un ndice * de textura OpenGL. El llamador es responsable de que la textura sea vlida * (por ejemplo de ancho y alto como potencia de 2, donde se aplique o * dimensiones mnimas y/o mximas dependientes de la implementacin OpenGL). * @file JGLTexture.cpp * @author Juan Carlos Seijo Prez * @date 01/04/2003 * @version 0.0.1 - 01/04/2003 - Primera Versin. */ #include // Constructor JGLTexture::JGLTexture() : instance(0) {} // Libera la memoria asociada void JGLTexture::Destroy() { if (instance) { --(instance->refCount); if (instance->refCount == 0) { {s32 rettt = glGetError(); if (rettt) printf("%s (%d) Error OpenGL: %s\n", __FILE__, __LINE__, gluErrorString(rettt));}; if (!glIsTexture(instance->id)) printf("JGLTexture::Destroy() id es %d, IsTexture=%d\n", instance->id, glIsTexture(instance->id)); {s32 rettt = glGetError(); if (rettt) printf("%s (%d) Error OpenGL: %s\n", __FILE__, __LINE__, gluErrorString(rettt));}; glDeleteTextures(1, (GLuint *)&instance->id); delete instance; } instance = 0; } } u32 JGLTexture::Next2Power(u32 value) { u32 newVal = 1; while (value > newVal) { newVal <<= 1; } return newVal; } // Crea la textura a partir de un buffer. u32 JGLTexture::Create(JImage *image, bool withMipmaps /*= false*/, s32 internalFormat /*= 4*/, s32 border /*= 0*/, s32 format /*= GL_RGBA*/, s32 type /*= GL_UNSIGNED_BYTE*/) { {s32 rettt = glGetError(); if (rettt) printf("%s (%d) Error OpenGL: %s\n", __FILE__, __LINE__, gluErrorString(rettt));}; // Si no hay datos if(!image) return 0; Destroy(); instance = new JGLTexture::JInstance; ++(instance->refCount); instance->width = image->Width(); instance->height = image->Height(); instance->bpp = image->BitsPP(); instance->hasMipmaps = withMipmaps; // Genera la textura con el ID asociado en el array {s32 rettt = glGetError(); if (rettt) printf("%s (%d) Error OpenGL: %s\n", __FILE__, __LINE__, gluErrorString(rettt));}; glGenTextures(1, (GLuint *)&instance->id); {s32 rettt = glGetError(); if (rettt) printf("%s (%d) Error OpenGL: %s\n", __FILE__, __LINE__, gluErrorString(rettt));}; if (0 == instance->id) { fprintf(stderr, "JGLTexture: No se pudo generar la textura.\n"); JDELETE(instance); return 0; } // Enlaza el ID a la textura {s32 rettt = glGetError(); if (rettt) printf("%s (%d) Error OpenGL: %s\n", __FILE__, __LINE__, gluErrorString(rettt));}; glBindTexture(GL_TEXTURE_2D, instance->id); {s32 rettt = glGetError(); if (rettt) printf("%s (%d) Error OpenGL: %s\n", __FILE__, __LINE__, gluErrorString(rettt));}; // Crea los mipmaps, si es necesario if (instance->hasMipmaps) { {s32 rettt = glGetError(); if (rettt) printf("%s (%d) Error OpenGL: %s\n", __FILE__, __LINE__, gluErrorString(rettt));}; if (0 != gluBuild2DMipmaps(GL_TEXTURE_2D, internalFormat, image->Width(), image->Height(), format, type, image->Pixels())) { fprintf(stderr, "No se pudieron construir los mipmaps: %s\n", gluErrorString(glGetError())); Destroy(); return 0; } {s32 rettt = glGetError(); if (rettt) printf("%s (%d) Error OpenGL: %s\n", __FILE__, __LINE__, gluErrorString(rettt));}; } else { glGetError(); image->Lock(); glTexImage2D(GL_TEXTURE_2D, 0, internalFormat, image->Width(), image->Height(), border, format, type, image->Pixels()); image->Unlock(); u32 ret = glGetError(); if (ret != 0) { fprintf(stderr, "Fallo al invocar glTexImage2D(). Error de OpenGL: %s\n", gluErrorString(ret)); fprintf(stderr, "Invocado con internalFormat %d, width %d, height %d, border %d, format %d (GL_RGBA es %d), type %d (GL_UNSIGNED_BYTE es %d), pixels es %p\n", internalFormat, image->Width(), image->Height(), border, format, type, image->Pixels()); Destroy(); return 0; } } {s32 rettt = glGetError(); if (rettt) printf("%s (%d) Error OpenGL: %s\n", __FILE__, __LINE__, gluErrorString(rettt));}; // Calidad de la textura if (instance->hasMipmaps) { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); } else { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); } {s32 rettt = glGetError(); if (rettt) printf("%s (%d) Error OpenGL: %s\n", __FILE__, __LINE__, gluErrorString(rettt));}; return instance->id; } // Crea la textura desde un fichero bmp, tga o jpg. // Devuelve el id de textura. u32 JGLTexture::Load(const char *fileName, bool withMipmaps /*= false*/, s32 internalFormat /*= 4*/, s32 border /*= 0*/, s32 format /*= GL_RGBA*/, s32 type /*= GL_UNSIGNED_BYTE*/) { {s32 rettt = glGetError(); if (rettt) printf("%s (%d) Error OpenGL: %s\n", __FILE__, __LINE__, gluErrorString(rettt));}; if (fileName == 0) return 0; JImage image; if (!image.Load(fileName, 0)) { return 0; } return Create(&image, withMipmaps, internalFormat, border, format, type); } // Constructor copia, referencia la textura. JGLTexture::JGLTexture(JGLTexture &other) : instance(0) { Ref(other); } // Constructor copia, referencia la textura. JGLTexture::JGLTexture(const JGLTexture &other) : instance(0) { Ref(other); } // Referencia la textura dada. void JGLTexture::Ref(JGLTexture &other) { Destroy(); if (other.instance != 0) { instance = other.instance; ++(instance->refCount); } } // Referencia la textura dada. void JGLTexture::Ref(const JGLTexture &other) { Destroy(); if (other.instance != 0) { instance = other.instance; ++(instance->refCount); } } // Referencia la textura dada. JGLTexture & JGLTexture::operator=(JGLTexture &other) { Ref(other); return *this; } // Referencia la textura dada. JGLTexture & JGLTexture::operator=(const JGLTexture &other) { Ref(other); return *this; } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLCamera.cpp0000600000175000001440000001056211177007633021604 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /////////////////////////////////////////////////////////////////////////////// // @author: Juan Carlos Seijo Prez // @date: 29/04/2003 // @description: Cmara. // // ^ __> Vista (ejes locales de cmara): // | up ^ z (yaw) // | __________> | // /---\ eye-target * | // | x |O---------------------->*** | x (pitch) // \---/ eye target o--------> // y (roll) /////////////////////////////////////////////////////////////////////////////// #include // Crea una cmara JGLCamera::JGLCamera(JPoint _eye, JPoint _target, JVector _up) { orgEye = _eye; orgTarget = _target; orgUp = _up; Reset(); } // Calcula los vectores base en funcin del ojo y el objetivo void JGLCamera::ComputeBasis() { // Usa el eje z de esta cmara para apuntar al objetivo camera.R[2] = (camera.O - target).Unit(); // El eje x ser perpendicular al plano formado por up y eye-target camera.R[0] = camera.R[1].Cross(camera.R[2]).Unit(); // El eje y es ortogonal a los anteriores camera.R[1] = camera.R[2].Cross(camera.R[0]).Unit(); } // Modifica la posicin de la cmara (eye) la cantidad indicada void JGLCamera::Translate(JVector deltaPos) { deltaPos = camera.TransformVectorToParent(deltaPos); camera.O += deltaPos; ComputeBasis(); } // Mueve la cmara (eye) a la posicin indicada void JGLCamera::TranslateTo(JVector pos) { camera.O = pos; ComputeBasis(); } // Rota la cmara en torno al eje x pasando por el objetivo void JGLCamera::Rotate(float x, float y, float z) { JScalar tLen = (camera.O - target).Length(); camera.O = target; camera.RotateAboutX(x); camera.RotateAboutY(y); camera.RotateAboutZ(z); camera.O += camera.R[2] * tLen; } // Modifica la posicin del objetivo la cantidad indicada void JGLCamera::TargetTranslate(JVector deltaTarget) { deltaTarget = camera.TransformVectorToParent(deltaTarget); target += deltaTarget; ComputeBasis(); } // Mueve la posicin de objetivo a la posicin indicada void JGLCamera::TargetTranslateTo(JVector pos) { target = camera.TransformVectorToParent(pos); ComputeBasis(); } // Rota la cmara en torno: // - al eje x (Pitch, direccin perpendicular al plano eye-target/up) // - al eje y (Yaw, direccin up) // - al eje z (Roll, direccin eye-target) void JGLCamera::TargetRotate(float x, float y, float z) { float tLen = (camera.O - target).Length(); target = camera.O; camera.RotateAboutX(x); // Giramos la cantidad indicada camera.RotateAboutY(y); camera.RotateAboutZ(z); target -= camera.R[2] * tLen; // Desplazamos la longitud original en la nueva direccin } // Zoom. Especifica la distancia eye-target void JGLCamera::Zoom(float distance) { if (distance <= 0) return; camera.O = target; camera.O -= (camera.R[2] * distance); ComputeBasis(); } // Ajusta la perspectiva (ms o menos distorsin) void JGLCamera::Perspective(float distortAmount) { } // Establece la proyeccin de cmara void JGLCamera::Set() { glLoadIdentity(); gluLookAt(camera.O.x, camera.O.y, camera.O.z, target.x, target.y, target.z, camera.Y().x, camera.Y().y, camera.Y().z); } // Reset de cmara void JGLCamera::Reset() { camera.O = orgEye; target = orgTarget; // Inicializamos el eje Y de la base al vector up que nos dan camera.R[1] = orgUp; ComputeBasis(); } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JFont.h0000600000175000001440000002041611177007633020543 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Fuente para mostrar texto en pantalla. * @file JFont.h * @author Juan Carlos Seijo Prez * @date 27/03/2004 * @version 0.0.1 - 27/03/2004 - Primera versin. */ #ifndef _JFONT_INCLUDED #define _JFONT_INCLUDED #include #include #include /** Alineacin del texto a renderizar. */ typedef enum JFontAlign { JFONTALIGN_LEFT = 0, /**< Alineado a la izquierda. */ JFONTALIGN_RIGHT, /**< Alineado a la derecha. */ JFONTALIGN_CENTER, /**< Centrado. */ }; /** Clase wrapper de la clase SDL_Font de la librera SDL_ttf. * Permite mostrar texto en pantalla. */ class JFont { /** Tipo de renderizado a usar */ typedef enum JFontRenderType { JFONTRENDERTYPE_SOLID = 0, /**< Slido con colorkey. */ JFONTRENDERTYPE_SHADED, /**< Con antialiasing en fondo slido. */ JFONTRENDERTYPE_BLENDED, /**< Con antializasing en fondo transparente. */ }; TTF_Font *font; /** Funcin de renderizado de las PrintfXXX. * @param type Tipo de render a emplear. * @param align Alineacin del texto. * @param fg Color de fuente. * @param bg Color de fondo (slo para JFONTRENDERTYPE_SHADED). * @param str Texto a renderizar. */ JImage * Printf(JFontRenderType type, JFontAlign align, SDL_Color &fg, SDL_Color &bg, char *str); public: /** Crea una fuente vaca. */ JFont() : font(0) {} /** Recupera la versin de ejecucin de SDL_ttf. El objeto devuelto tiene * tres campos: major, minor y patch, que identifican la versin. * @return La versin de ejecucin SDL_ttf. */ const SDL_version * GetLinkedVersion() {return TTF_Linked_Version();} /** Inicializa el subsistema de fuentes. Slo es necesaria la primera vez. * @return true si todo va bien, false en caso contrario. */ static bool Init() { if (TTF_WasInit() == 0) { return (-1 != TTF_Init()); } return true; } /** Devuelve la cadena de error del ltimo error. * @return Cadena de error del ltimo error. */ static const char * GetError() { return TTF_GetError(); } /** Abre la fuente del fichero indicado. * @param filename Nombre del fichero .ttf o .fon. * @param size Tamao en pixels (aproximado). * @return true si se pudo abrir, false si no. */ bool Open(const char * filename, s32 size) { Destroy(); return (0 != (font = TTF_OpenFont(filename, size))); } /** Establece el estilo. * @param style Nuevo estilo. Puede ser una combinacin de * TTF_STYLE_NORMAL, TTF_STYLE_BOLD, TTF_STYLE_ITALIC o TTF_STYLE_UNDERLINE. */ void Style(s32 style) { TTF_SetFontStyle(font, style); } /** Recupera el estilo. * @return Estilo actual como combinacin de TTF_STYLE_NORMAL, * TTF_STYLE_BOLD, TTF_STYLE_ITALIC y TTF_STYLE_UNDERLINE. */ s32 Style() { return TTF_GetFontStyle(font); } /** Devuelve la altura mxima de la fuente. * @return Altura mxima de la fuente. */ s32 Height() { return TTF_FontHeight(font); } /** Devuelve el ascenso de la fuente. * @return Ascenso de la fuente. */ s32 Ascent() { return TTF_FontAscent(font); } /** Devuelve el descenso de la fuente. * @return Descenso de la fuente. */ s32 Descent() { return TTF_FontDescent(font); } /** Devuelve la separacin recomendada de lnea. * @return Separacin recomendada de lnea. */ s32 LineDistance() { return TTF_FontLineSkip(font); } /** Renderiza el texto dado de forma rpida. * @param text Texto a renderizar. * @param fg Color de fuente. */ JImage * RenderTextSolid(const char * text, SDL_Color &fg) { SDL_Surface *s = TTF_RenderUTF8_Solid(font, text, fg); return s != 0 ? new JImage(s) : 0; } /** Renderiza el texto UNICODE dado de forma rpida. * @param text Texto a renderizar. * @param fg Color de fuente. */ JImage * RenderUNICODESolid(const u16 *text, SDL_Color &fg) { SDL_Surface *s = TTF_RenderUNICODE_Solid(font, text, fg); return s != 0 ? new JImage(s) : 0; } /** Renderiza el caracter dado de forma rpida. * @param c Caracter a renderizar. * @param fg Color de fuente. */ JImage * RenderGlyphSolid(char c, SDL_Color &fg) { SDL_Surface *s = TTF_RenderGlyph_Solid(font, c, fg); return s != 0 ? new JImage(s) : 0; } /** Renderiza el texto dado suavizado sobre fondo slido. * @param text Texto a renderizar. * @param fg Color de fuente. * @param bg Color de fondo. */ JImage * RenderTextShaded(const char * text, SDL_Color &fg, SDL_Color &bg) { SDL_Surface *s = TTF_RenderUTF8_Shaded(font, text, fg, bg); return s != 0 ? new JImage(s) : 0; } /** Renderiza el texto UNICODE dado suavizado sobre fondo slido. * @param text Texto a renderizar. * @param fg Color de fuente. * @param bg Color de fondo. */ JImage * RenderUNICODEShaded(const u16 *text, SDL_Color &fg, SDL_Color &bg) { SDL_Surface *s = TTF_RenderUNICODE_Shaded(font, text, fg, bg); return s != 0 ? new JImage(s) : 0; } /** Renderiza el caracter dado suavizado sobre fondo slido. * @param c Caracter a renderizar. * @param fg Color de fuente. * @param bg Color de fondo. */ JImage * RenderGlyphShaded(char c, SDL_Color &fg, SDL_Color &bg) { SDL_Surface *s = TTF_RenderGlyph_Shaded(font, c, fg, bg); return s != 0 ? new JImage(s) : 0; } /** Renderiza el texto dado suavizado sobre fondo transparente. * @param text Texto a renderizar. * @param fg Color de fuente. */ JImage * RenderTextBlended(const char * text, SDL_Color &fg) { SDL_Surface *s = TTF_RenderUTF8_Blended(font, text, fg); return s != 0 ? new JImage(s) : 0; } /** Renderiza el texto dado suavizado sobre fondo transparente. * @param text Texto a renderizar. * @param fg Color de fuente. */ JImage * RenderUNICODEBlended(const u16 * text, SDL_Color &fg) { SDL_Surface *s = TTF_RenderUNICODE_Blended(font, text, fg); return s != 0 ? new JImage(s) : 0; } /** Renderiza el caracter dado suavizado sobre fondo transparente. * @param c Caracter a renderizar. * @param fg Color de fuente. */ JImage * RenderGlyphBlended(char c, SDL_Color &fg) { SDL_Surface *s = TTF_RenderGlyph_Blended(font, c, fg); return s != 0 ? new JImage(s) : 0; } /** Destruye el objeto, liberando la memoria asociada. */ void Destroy() { if (font != 0) { TTF_CloseFont(font); font = 0; } } /** Renderiza el texto con formato dado de forma rpida. * @param align Alineacin del texto. * @param fg Color de fuente. * @param strFormat Texto a renderizar. * @param ... Argumentos adicionales tipo printf(). */ JImage * PrintfSolid(JFontAlign align, SDL_Color &fg, const char *strFormat, ...); /** Renderiza el texto con formato suavizado sobre fondo slido. * @param align Alineacin del texto. * @param fg Color de fuente. * @param bg Color de fondo. * @param strFormat Texto a renderizar. * @param ... Argumentos adicionales tipo printf(). */ JImage * PrintfShaded(JFontAlign align, SDL_Color &fg, SDL_Color &bg, const char *strFormat, ...); /** Renderiza el texto con formato suavizado sobre fondo transparente. * @param align Alineacin del texto. * @param fg Color de fuente. * @param strFormat Texto a renderizar. * @param ... Argumentos adicionales tipo printf(). */ JImage * PrintfBlended(JFontAlign align, SDL_Color &fg, const char *strFormat, ...); /** Destruye el objeto, liberando la memoria asociada. */ ~JFont() { Destroy(); } }; #endif // _JFONT_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JDrawable.h0000600000175000001440000000637411177007633021365 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clase base de todos los objetos dibujables. * @file JDrawable.h. * @author Juan Carlos Seijo Prez. * @date 15/11/2003. * @version 0.0.1 - 15/11/2003 - Primera versin. * @version 0.0.2 - 25/09/2004 - Modificacin del mtodo 2D de Pos() para aceptar floats (quita libertad sino). */ #ifndef _JDRAWABLE_INCLUDED #define _JDRAWABLE_INCLUDED #include #include #include #include #include /** Clase base de todos los objetos dibujables. */ class JDrawable : public JObject { protected: JVector pos; /**< Posicin del objeto. */ public: /** Libera memoria. */ virtual ~JDrawable() {} /** Dibuja el objeto. Debe ser implementada en la clase hija. */ virtual void Draw() {return;} /** Actualiza el objeto. */ virtual s32 Update() {return 0;} /** Recupera la posicin de este objeto. * @return Posicin del objeto. */ virtual const JVector & Pos() const {return pos;} /** Establece la posicin de este objeto. * @param newPos Nueva posicin del objeto. */ virtual void Pos(const JVector &newPos) {pos = newPos;} /** Establece la posicin de este objeto. * @param x Nueva coordenada x. * @param y Nueva coordenada y. * @param z Nueva coordenada z. */ virtual void Pos(float x, float y, float z) {pos.x = x; pos.y = y; pos.z = z;} /* Establece la posicin de este objeto. til para 2D. * @param x Nueva coordenada x. * @param y Nueva coordenada y. */ virtual void Pos(float x, float y) {pos.x = x; pos.y = y;} /** Establece la posicin x de este objeto. * @param x Nueva coordenada x. */ virtual void X(float x) {pos.x = x;} /** Devuelve la posicin x de este objeto. * @return Coordenada x del objeto. */ virtual float X() const {return pos.x;} /** Establece la posicin y de este objeto. * @param y Nueva coordenada y. */ virtual void Y(float y) {pos.y = y;} /** Devuelve la posicin y de este objeto. * @return Coordenada y del objeto. */ virtual float Y() const {return pos.y;} /** Establece la posicin z de este objeto. * @param z Nueva coordenada z. */ virtual void Z(float z) {pos.z = z;} /** Devuelve la posicin z de este objeto. * @return Coordenada z del objeto. */ virtual float Z() const {return pos.z;} }; #endif // _JDRAWABLE_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLMesh.cpp0000600000175000001440000004503411177007633021312 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clases de geometra 3D para OpenGL. * @file JGLMesh.cpp * @author Juan Carlos Seijo Prez * @date 10/05/2004 * @version 0.0.1 - 10/05/2004 - Primera versin. */ #include /** Dibuja la geometra. */ void JGLMesh::Draw() { // Pinta el objeto cargado for (int i = 0; i < numObjects; ++i) { // Por cada cara (flat) for (int j = 0; j < objects[i].numFaces; ++j) { if (objects[i].faces[j].material->Texture()) { glDisable(GL_COLOR_MATERIAL); glEnable(GL_TEXTURE_2D); objects[i].faces[j].material->Texture()->GLBind(); glBegin(GL_TRIANGLES); glNormal3fv((GLfloat*)&objects[i].vertexNormals[objects[i].faces[j].v1]); glTexCoord2f(objects[i].tVertices[objects[i].tFaces[j].v1].u, objects[i].tVertices[objects[i].tFaces[j].v1].v); glVertex3fv((GLfloat*)&objects[i].vertices[objects[i].faces[j].v1]); glNormal3fv((GLfloat*)&objects[i].vertexNormals[objects[i].faces[j].v2]); glTexCoord2f(objects[i].tVertices[objects[i].tFaces[j].v2].u, objects[i].tVertices[objects[i].tFaces[j].v2].v); glVertex3fv((GLfloat*)&objects[i].vertices[objects[i].faces[j].v2]); glNormal3fv((GLfloat*)&objects[i].vertexNormals[objects[i].faces[j].v3]); glTexCoord2f(objects[i].tVertices[objects[i].tFaces[j].v3].u, objects[i].tVertices[objects[i].tFaces[j].v3].v); glVertex3fv((GLfloat*)&objects[i].vertices[objects[i].faces[j].v3]); glEnd(); } else { glDisable(GL_TEXTURE_2D); glEnable(GL_COLOR_MATERIAL); glColor3fv((GLfloat*)&objects[i].faces[j].material->diffuse); glBegin(GL_TRIANGLES); glNormal3fv((GLfloat*)&objects[i].vertexNormals[objects[i].faces[j].v1]); glVertex3fv((GLfloat*)&objects[i].vertices[objects[i].faces[j].v1]); glNormal3fv((GLfloat*)&objects[i].vertexNormals[objects[i].faces[j].v2]); glVertex3fv((GLfloat*)&objects[i].vertices[objects[i].faces[j].v2]); glNormal3fv((GLfloat*)&objects[i].vertexNormals[objects[i].faces[j].v3]); glVertex3fv((GLfloat*)&objects[i].vertices[objects[i].faces[j].v3]); glEnd(); } } } } void JMaterial::Destroy() { JDELETE(texture); } void JGLMeshObject::Destroy() { JDELETE_ARRAY(vertices); JDELETE_ARRAY(tVertices); JDELETE_ARRAY(vertexNormals); JDELETE_ARRAY(faces); JDELETE_ARRAY(tFaces); } void JGLMesh::Destroy() { JDELETE_ARRAY(materials); JDELETE_ARRAY(objects); } bool JGLMesh::LoadASE(const JString &filename) { // Destruye posibles geometras anteriores Destroy(); if (!f.Load(filename)) return false; // La cabecera debe coincidir, no exigimos tanto a la versin, // al menos lo intentamos if (!f.FindNext(JASETAG_FILE_HEADER) || !f.SkipNextWord()) return false; /* // Versin del fichero f.ReadInteger(&fileVersion); // Primer frame if (!f.FindNext(JASETAG_SCENE_FIRSTFRAME) || !f.SkipNextWord()) firstFrame = 0; else f.ReadInteger(&firstFrame); // ltimo frame if (!f.FindNext(JASETAG_SCENE_LASTFRAME) || !f.SkipNextWord()) lastFrame = 0; else f.ReadInteger(&lastFrame); */ if (LoadASEMaterials()) if (LoadASEObjects()) return true; return false; } // Carga los materiales del fichero ASE. // Devuelve true si todo fue bien, false en caso contrario. bool JGLMesh::LoadASEMaterials() { f.StartOfDocument(); if (!f.FindNext(JASETAG_MATERIAL_COUNT)) return false; f.SkipNextWord(); f.ReadInteger(&numMaterials); // Contamos como materiales los submateriales que haya f.StartOfDocument(); s32 c = 0; while (f.FindNext(JASETAG_SUBMATERIAL_COUNT)) { f.SkipNextWord(); f.ReadInteger(&c); numMaterials += c; } f.StartOfDocument(); materials = new JMaterial[numMaterials]; memset(materials, 0, sizeof(JMaterial) * numMaterials); JMaterial *mats = materials; s32 i = 0; while (i < numMaterials) { // En el nivel superior no hay submateriales mats[i].parentId = -1; mats[i].isSubMaterial = false; f.FindNext(JASETAG_MATERIAL_LIST); f.SkipNextWord(); f.FindNext(JASETAG_MATERIAL_COUNT); f.SkipNextWord(); f.FindNext(JASETAG_MATERIAL); f.SkipNextWord(); f.ReadInteger(&mats[i].id); // Tipo de material f.FindNext(JASETAG_MATERIAL_CLASS); f.SkipNextWord(); f.ReadWord(mats[i].mtlClass); // Color ambiente f.FindNext(JASETAG_MATERIAL_AMBIENT); f.SkipNextWord(); f.ReadFloat(&mats[i].ambient.r); f.ReadFloat(&mats[i].ambient.g); f.ReadFloat(&mats[i].ambient.b); // Color difuso f.FindNext(JASETAG_MATERIAL_DIFFUSE); f.SkipNextWord(); f.ReadFloat(&mats[i].diffuse.r); f.ReadFloat(&mats[i].diffuse.g); f.ReadFloat(&mats[i].diffuse.b); // Color especular f.FindNext(JASETAG_MATERIAL_SPECULAR); f.SkipNextWord(); f.ReadFloat(&mats[i].specular.r); f.ReadFloat(&mats[i].specular.g); f.ReadFloat(&mats[i].specular.b); // Brillo f.FindNext(JASETAG_MATERIAL_SHINE); f.SkipNextWord(); f.ReadFloat(&mats[i].shine); // Fuerza de brillo f.FindNext(JASETAG_MATERIAL_SHINESTRENGTH); f.SkipNextWord(); f.ReadFloat(&mats[i].shineStrenght); // Transparencia f.FindNext(JASETAG_MATERIAL_TRANSPARENCY); f.SkipNextWord(); f.ReadFloat(&mats[i].transparency); s8 str[32]; // Cadena auxiliar if (0 == strcmp(mats[i].mtlClass, JASEVAL_MULTI_SUBOBJECT)) { // Material multi/subobjeto: procesamos los submateriales // No tiene el parmetro selfIllum mats[i].isMulti = true; f.FindNext(JASETAG_SUBMATERIAL_COUNT); f.SkipNextWord(); f.ReadInteger(&mats[i].numSubMaterials); for (s32 j = i+1; j < i + 1 + mats[i].numSubMaterials; ++j) { mats[j].parentId = mats[i].id; f.FindNext(JASETAG_SUBMATERIAL); f.SkipNextWord(); f.ReadInteger(&mats[j].id); // Slo est permitido un nivel de jerarqua, as que no comprobamos // si es Multi/Sub-object f.FindNext(JASETAG_MATERIAL_CLASS); f.SkipNextWord(); f.ReadWord(mats[j].mtlClass); mats[j].isSubMaterial = true; // Color ambiente f.FindNext(JASETAG_MATERIAL_AMBIENT); f.SkipNextWord(); f.ReadFloat(&mats[j].ambient.r); f.ReadFloat(&mats[j].ambient.g); f.ReadFloat(&mats[j].ambient.b); // Color difuso f.FindNext(JASETAG_MATERIAL_DIFFUSE); f.SkipNextWord(); f.ReadFloat(&mats[j].diffuse.r); f.ReadFloat(&mats[j].diffuse.g); f.ReadFloat(&mats[j].diffuse.b); // Color especular f.FindNext(JASETAG_MATERIAL_SPECULAR); f.SkipNextWord(); f.ReadFloat(&mats[j].specular.r); f.ReadFloat(&mats[j].specular.g); f.ReadFloat(&mats[j].specular.b); // Brillo f.FindNext(JASETAG_MATERIAL_SHINE); f.SkipNextWord(); f.ReadFloat(&mats[j].shine); // Fuerza de brillo f.FindNext(JASETAG_MATERIAL_SHINESTRENGTH); f.SkipNextWord(); f.ReadFloat(&mats[j].shineStrenght); // Transparencia f.FindNext(JASETAG_MATERIAL_TRANSPARENCY); f.SkipNextWord(); f.ReadFloat(&mats[j].transparency); // Iluminacin propia f.FindNext(JASETAG_MATERIAL_SELFILLUM); f.SkipNextWord(); f.ReadFloat(&mats[j].selfIllum); // Si tiene una textura asociada aparecer en la lnea siguiente a // MATERIAL_XP_TYPE f.FindNext(JASETAG_MATERIAL_XP_TYPE); f.NextLine(); f.ReadWord(str); if (strcmp(str, JASETAG_MATERIAL_MAP_DIFFUSE) == 0) { char texFile[256]; mats[j].texture = new JGLTexture; f.FindNext(JASETAG_MATERIAL_BITMAP); f.SkipNextWord(); f.ReadWord(texFile); // Quita las comillas u32 len = (u32)strlen(texFile); memmove(&texFile[0], &texFile[1], len - 1); texFile[len - 2] = 0; /**< @todo Comprobar rendimiento con mipmaps y sin ellos. */ // Carga la textura con mipmaps mats[j].texture->Load(texFile, true); } } } else { // Material standard u otro mats[i].isMulti = false; mats[i].numSubMaterials = 0; // Iluminacin propia f.FindNext(JASETAG_MATERIAL_SELFILLUM); f.SkipNextWord(); f.ReadFloat(&mats[i].selfIllum); // Si tiene una textura asociada aparecer en la lnea siguiente a // MATERIAL_XP_TYPE f.FindNext(JASETAG_MATERIAL_XP_TYPE); f.NextLine(); f.ReadWord(str); if (strcmp(str, JASETAG_MATERIAL_MAP_DIFFUSE) == 0) { char texFile[256]; mats[i].texture = new JGLTexture; f.FindNext(JASETAG_MATERIAL_BITMAP); f.SkipNextWord(); f.ReadWord(texFile); u32 len = (u32)strlen(texFile); memmove(&texFile[0], &texFile[1], len - 1); texFile[len - 2] = 0; // Quita las comillas u32 leng = (u32)strlen(texFile); memmove(&texFile[0], &texFile[1], leng - 1); texFile[leng - 2] = 0; /**< @todo Comprobar rendimiento con mipmaps y sin ellos. */ // Carga la textura con mipmaps mats[i].texture->Load(texFile, true); } } // Acumulamos los submateriales procesados y/o el actual i += mats[i].numSubMaterials + 1; } return true; } // Carga los objetos (geometra) del fichero ASE. // Devuelve true si todo fue bien, false en otro caso. bool JGLMesh::LoadASEObjects() { f.StartOfDocument(); // Cuenta los objetos numObjects = 0; while (f.FindNext(JASETAG_GEOMOBJECT)) { f.SkipNextWord(); ++numObjects; } // Crea el array de objetos objects = new JGLMeshObject[numObjects]; JGLMeshObject *objs = objects; f.StartOfDocument(); char str[256]; for (s32 i = 0; i < numObjects; ++i) { // Nombre f.FindNext(JASETAG_NODE_NAME); f.SkipNextWord(); f.ReadWord(str); // Quita las comillas u32 len = (u32)strlen(str); memmove(&str[0], &str[1], len - 1); str[len - 2] = 0; objs[i].name = str; // Procesa la geometra... f.FindNext(JASETAG_MESH); f.SkipNextWord(); s8 *oldPos = f.GetPos(); // Nmero de vrtices: crea el array de vrtices y de normales if (i == 64) i = i; f.FindNext(JASETAG_MESH_NUMVERTEX); f.SkipNextWord(); f.ReadInteger(&objs[i].numVertices); objs[i].vertices = new JVertex[objs[i].numVertices]; JVertex *verts = objs[i].vertices; // Nmero de caras: crea el array de caras f.FindNext(JASETAG_MESH_NUMFACES); f.SkipNextWord(); f.ReadInteger(&objs[i].numFaces); objs[i].faces = new JFace[objs[i].numFaces]; JFace *faces = objs[i].faces; // Lista de vrtices f.FindNext(JASETAG_MESH_VERTEX_LIST); f.SkipNextWord(); for (s32 j = 0; j < objs[i].numVertices; ++j) { f.FindNext(JASETAG_MESH_VERTEX); f.SkipNextWord(); f.SkipNextWord(); // Saltamos el ndice de vrtice // OJO! MAX da la vuelta... hay que cambiar Y por -Z f.ReadFloat(&verts[j].x); f.ReadFloat(&verts[j].z); f.ReadFloat(&verts[j].y); verts[j].z = -verts[j].z; } // Buscamos primero la referencia del material... s32 mtlRef; f.FindNext(JASETAG_MATERIAL_REF);f.SkipNextWord(); f.ReadInteger(&mtlRef); // ...Buscamos el material correspondiente a esa referencia... s32 mtlIndex = 0; while (mtlIndex < numMaterials && materials[mtlIndex].id != mtlRef) { // Avanzamos el n de submateriales que indique este material y vamos al siguiente if (materials[mtlIndex].isMulti) mtlIndex += materials[mtlIndex].numSubMaterials; else ++mtlIndex; } // Si no lo encuentra, salimos if (materials[mtlIndex].id != mtlRef) return false; // Si lo encontr, volvemos al punto de inicio f.SetPos(oldPos); // Asignamos el material a la cara (queda pendiente ponerle textura) ... s32 vInd; if (materials[mtlIndex].isMulti) { // Lista de caras s32 m; f.FindNext(JASETAG_MESH_FACE_LIST); f.SkipNextWord(); for (s32 k = 0; k < objs[i].numFaces; ++k) { // A: f.FindNext(JASETAG_MESH_A); f.SkipNextWord(); f.ReadInteger(&faces[k].v1); // B: f.FindNext(JASETAG_MESH_B); f.SkipNextWord(); f.ReadInteger(&faces[k].v2); // C: f.FindNext(JASETAG_MESH_C); f.SkipNextWord(); f.ReadInteger(&faces[k].v3); // MTLID f.FindNext(JASETAG_MESH_MTLID); f.SkipNextWord(); f.ReadInteger(&m); // Si es Multi/subobjeto debemos atender al MTLID de las caras... // v. nota al comienzo del .h faces[k].material = &materials[mtlIndex + 1 + (m%materials[mtlIndex].numSubMaterials)]; } } else { // MATERIAL_REF // Lista de caras f.FindNext(JASETAG_MESH_FACE_LIST); f.SkipNextWord(); for (s32 k = 0; k < objs[i].numFaces; ++k) { f.FindNext(JASETAG_MESH_FACE); // A: f.FindNext(JASETAG_MESH_A); f.SkipNextWord(); f.ReadInteger(&faces[k].v1); // B: f.FindNext(JASETAG_MESH_B); f.SkipNextWord(); f.ReadInteger(&faces[k].v2); // C: f.FindNext(JASETAG_MESH_C); f.SkipNextWord(); f.ReadInteger(&faces[k].v3); // Al no tener un material Multi asignado, todas las caras tienen el // material indicado en MATERIAL_REF faces[k].material = &materials[mtlIndex]; } } // Texturas. // El nmero de vrtices de textura puede ser (y, en general, ser) // diferente al nmero de vrtices totales f.FindNext(JASETAG_MESH_NUMTVERTEX); f.SkipNextWord(); f.ReadInteger(&objs[i].numTVertices); // Creamos el array de vrtices de textura y lo rellenamos objs[i].tVertices = new JTextureVertex[objs[i].numTVertices]; if (f.FindNext(JASETAG_MESH_TVERTLIST)) { f.SkipNextWord(); for (s32 b = 0; b < objs[i].numTVertices; ++b) { f.FindNext(JASETAG_MESH_TVERT); f.SkipNextWord(); f.SkipNextWord(); // OJO: Comprobar que x e y corresponden a las mismas U, V en OpenGL f.ReadFloat(&objs[i].tVertices[b].u); f.ReadFloat(&objs[i].tVertices[b].v); } } // El nmero de caras de textura puede es // igual al nmero de caras totales if (f.FindNext(JASETAG_MESH_NUMTVFACES)) { f.SkipNextWord(); f.ReadInteger(&objs[i].numTFaces); // Creamos el array de caras de textura y lo rellenamos if (objs[i].numTFaces > 0) { objs[i].tFaces = new JTextureFace[objs[i].numTFaces]; f.FindNext(JASETAG_MESH_TFACELIST); f.SkipNextWord(); for (s32 c = 0; c < objs[i].numTFaces; ++c) { f.FindNext(JASETAG_MESH_TFACE); f.SkipNextWord(); f.SkipNextWord(); f.ReadInteger(&objs[i].tFaces[c].v1); f.ReadInteger(&objs[i].tFaces[c].v2); f.ReadInteger(&objs[i].tFaces[c].v3); } } } // Calcula las normales a las caras objs[i].vertexNormals = new JVertex[objs[i].numVertices]; memset(objs[i].vertexNormals, 0, sizeof(JVertex) * objs[i].numVertices); JVertex *vNorm = objs[i].vertexNormals; JVector v1, v2, v3, vt1, vt2, vn; for (s32 d = 0; d < objs[i].numFaces; ++d) { if (d == 35) d = d; v1 = JVector(objs[i].vertices[faces[d].v1].x, objs[i].vertices[faces[d].v1].y, objs[i].vertices[faces[d].v1].z); v2 = JVector(objs[i].vertices[faces[d].v2].x, objs[i].vertices[faces[d].v2].y, objs[i].vertices[faces[d].v2].z); v3 = JVector(objs[i].vertices[faces[d].v3].x, objs[i].vertices[faces[d].v3].y, objs[i].vertices[faces[d].v3].z); vt1 = (v3 - v1); vt2 = (v3 - v2); vn = vt1.Cross(vt2); vn.Normalize(); faces[d].normal.x = vn.x; faces[d].normal.y = vn.y; faces[d].normal.z = vn.z; } // Asigna las normales a cada vrtice s32 *shared = new s32[objs[i].numVertices]; memset(shared, 0, sizeof(s32) * objs[i].numVertices); for (s32 k = 0; k < objs[i].numFaces; ++k) { if (i == 219 && k == 68) i = i; // Si algn da quieres quedarte con las normales del ASE... /* f.FindNext(JASETAG_MESH_FACENORMAL); f.SkipNextWord(); f.SkipNextWord(); f.ReadFloat(&faces[k].normal.x); f.ReadFloat(&faces[k].normal.z); // Por el cambio de MAX y -> -z f.ReadFloat(&faces[k].normal.y); faces[k].normal.z = -faces[k].normal.z; */ // Suma las normales dadas a cada vrtice de la cara. Resultado: // al final todas las normales estarn promediadas en cada vrtice. f.FindNext(JASETAG_MESH_VERTEXNORMAL); f.SkipNextWord(); f.ReadInteger(&vInd); vNorm[vInd].x += faces[k].normal.x; vNorm[vInd].y += faces[k].normal.y; vNorm[vInd].z += faces[k].normal.z; ++shared[vInd]; f.FindNext(JASETAG_MESH_VERTEXNORMAL); f.SkipNextWord(); f.ReadInteger(&vInd); vNorm[vInd].x += faces[k].normal.x; vNorm[vInd].y += faces[k].normal.y; vNorm[vInd].z += faces[k].normal.z; ++shared[vInd]; f.FindNext(JASETAG_MESH_VERTEXNORMAL); f.SkipNextWord(); f.ReadInteger(&vInd); vNorm[vInd].x += faces[k].normal.x; vNorm[vInd].y += faces[k].normal.y; vNorm[vInd].z += faces[k].normal.z; ++shared[vInd]; } // Promedia y normaliza las normales sumadas para cada vrtice for (s32 h = 0; h < objs[i].numVertices; ++h) { vn = JVector(objs[i].vertexNormals[h].x, objs[i].vertexNormals[h].y, objs[i].vertexNormals[h].z); vn /= JScalar(shared[h]); vn.Normalize(); objs[i].vertexNormals[h].x = vn.x; objs[i].vertexNormals[h].y = vn.y; objs[i].vertexNormals[h].z = vn.z; } delete[] shared; } return true; } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JFont.cpp0000600000175000001440000001147511177007633021103 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Fuente para mostrar texto en pantalla. * @file JFont.cpp * @author Juan Carlos Seijo Prez * @date 18/04/2004 * @version 0.0.1 - 18/04/2004 - Primera versin. */ #include JImage * JFont::Printf(JFontRenderType type, JFontAlign align, SDL_Color &fg, SDL_Color &bg, char *str) { // Renderiza cada lnea char *c = str; s32 lines = 1; // Cuenta las lneas while (*c) { if (*c == '\n') { ++lines; } ++c; } JImage **img = new JImage*[lines]; memset(img, 0, lines*sizeof(JImage*)); char *cur = str; s32 line = 0; s32 w = 0, h = 0; c = str; while (*c) { if (*c == '\n' || *(c + 1) == 0) { // New line! if (*c == '\n') *c = 0; if (!*cur) { // Skip empty strings img[line] = 0; h += LineDistance(); ++line; cur = c + 1; *c = '\n'; ++c; continue; } switch (type) { default: case JFONTRENDERTYPE_SOLID: img[line] = RenderTextSolid(cur, fg); // Tenemos 8 bits, queremos MS! img[line]->Convert(SDL_GetVideoSurface()->format, SDL_GetVideoSurface()->flags); // Quita el flag SDL_SRCALPHA de forma que se copie el valor del canal alfa a la composicin img[line]->Alpha(0, 0); break; case JFONTRENDERTYPE_SHADED: img[line] = RenderTextShaded(cur, fg, bg); // Tenemos 8 bits, queremos MS! img[line]->Convert(SDL_GetVideoSurface()->format, SDL_GetVideoSurface()->flags); // Quita el flag SDL_SRCALPHA de forma que se copie el valor del canal alfa a la composicin img[line]->Alpha(0, 0); break; case JFONTRENDERTYPE_BLENDED: img[line] = RenderTextBlended(cur, fg); // Quita el flag SDL_SRCALPHA de forma que se copie el valor del canal alfa a la composicin img[line]->Alpha(0, 0); break; } // Checks the max width if (img[line]->Width() > w) { w = img[line]->Width(); } switch (align) { case JFONTALIGN_LEFT: img[line]->Pos(0, h); break; case JFONTALIGN_RIGHT: img[line]->Pos(w - img[line]->Width(), h); break; case JFONTALIGN_CENTER: img[line]->Pos((w - img[line]->Width())/2, h); break; } h += LineDistance(); ++line; cur = c + 1; *c = '\n'; } ++c; } JImage *ret = new JImage; SDL_PixelFormat *fmt = img[0]->Format(); ret->Create(w, h, img[0]->Format()->BitsPerPixel, 0, fmt->Rmask, fmt->Gmask, fmt->Bmask, fmt->Amask); s32 x; for (line = 0; line < lines; ++line) { if (img[line]) { switch (align) { case JFONTALIGN_LEFT: x = 0; break; case JFONTALIGN_RIGHT: x = w - img[line]->Width(); break; case JFONTALIGN_CENTER: x = (w - img[line]->Width())/2; break; default: x = 0; break; } ret->Paste(img[line], 0, 0, (s32)img[line]->Width(), (s32)img[line]->Height(), x, (s32)img[line]->Y()); delete img[line]; } } delete[] img; return ret; } JImage * JFont::PrintfSolid(JFontAlign align, SDL_Color &fg, const char *strFormat, ...) { // Formatea el texto va_list vlist; s8 str[4096]; va_start(vlist, strFormat); vsprintf(str, strFormat, vlist); va_end(vlist); // Renderiza el texto SDL_Color color; // Dummy return Printf(JFONTRENDERTYPE_SOLID, align, fg, color, str); } JImage * JFont::PrintfShaded(JFontAlign align, SDL_Color &fg, SDL_Color &bg, const char *strFormat, ...) { // Formatea el texto va_list vlist; s8 str[4096]; va_start(vlist, strFormat); vsprintf(str, strFormat, vlist); va_end(vlist); // Renderiza el texto return Printf(JFONTRENDERTYPE_SHADED, align, fg, bg, str); } JImage * JFont::PrintfBlended(JFontAlign align, SDL_Color &fg, const char *strFormat, ...) { // Formatea el texto va_list vlist; s8 str[4096]; va_start(vlist, strFormat); vsprintf(str, strFormat, vlist); va_end(vlist); // Renderiza el texto SDL_Color color; // Dummy return Printf(JFONTRENDERTYPE_BLENDED, align, fg, color, str); } holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLImage.h0000600000175000001440000000477311177007633021112 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Clase para la presentacin de imgenes OpenGL. * @file JGLImage.h * @author Juan Carlos Seijo Prez * @date 19/05/2004 * @version 0.0.1 - 19/05/2004 - Primera versin. */ #ifndef _JGLIMAGE_INCLUDED #define _JGLIMAGE_INCLUDED #include #include #include #include /** Permite mostrar imgenes en OpenGL de forma simple. */ class JGLImage : public JDrawable { JGLTexture texture; /**< Textura OpenGL asociada. */ u32 listIndex; /**< ndice de lista de visualizacin. */ public: /** Crea la imagen openGL vaca. Se debe llamar a Init antes de comenzar a usarla. */ JGLImage() : listIndex(0) {} /** Carga la imagen dada en una textura OpenGL y prepara la lista de visualizacin * para mostrarla en pantalla. * @param image Imagen a cargar. * @param withMipmaps Determina si la debe crear con niveles de mipmaps o no. * @return true si se carg correctamente, false si no. * @todo implementar malla. */ bool Init(JImage *image, bool withMipmaps = false); /** Devuelve la textura OpenGL. * @return Textura asociada. */ const JGLTexture & Texture() {return texture;} /** Dibuja la imagen. */ void Draw() {glCallList(listIndex);} /** Devuelve la anchura de la imagen. * @return Anchura de la imagen. */ s32 Width() {return texture.Width();} /** Devuelve la altura de la imagen. * @return Altura de la imagen. */ s32 Height() {return texture.Height();} /** Destruye el objeto. */ virtual ~JGLImage() {} }; #endif // _JGLIMAGE_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Graphics/JGLVector.cpp0000600000175000001440000000324211177007633021653 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Vector en pantalla (OpenGL). * @file JGLVector.cpp. * @author Juan Carlos Seijo Prez * @date 30/04/2003 * @version 0.0.1 - 30/04/2003 - Primera versin. */ #include void JGLVector::Draw(JVector &pos) { glLineWidth(3.0f); glBegin(GL_LINES); glVertex3f(pos.x, pos.y, pos.z); glVertex3f(x, y, z); glEnd(); glLineWidth(1.0f); JVector v(*this + pos); JVector vr(v.Unit()); float len = v.Length(); if (len > 0.01) { JVector w(len, len, 0); w = w.Cross(v).Unit(); glPointSize(5.0f); glBegin(GL_POINTS); glVertex3f(v.x, v.y, v.z); //glVertex3f(v.x - vr.x + w.x, v.y - vr.y - w.y, v.z - vr.z - w.z); //glVertex3f(v.x - vr.x + w.x, v.y - vr.y + w.y, v.z - vr.z + w.z); glEnd(); glPointSize(1.0f); } } holotz-castle-1.3.14-src/JLib/JLib/Sound/0000744000175000001440000000000011177007633016705 5ustar jacobusersholotz-castle-1.3.14-src/JLib/JLib/Sound/JChunk.h0000600000175000001440000001507211177007633020237 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Wrapper C++ para una muestra de audio de SDL_mixer. * @file JChunk.h * @author Juan Carlos Seijo Prez * @date 25/03/2004 * @version 0.0.1 - 25/03/2004 - Primera versin. */ #ifndef _JCHUNK_INCLUDED #define _JCHUNK_INCLUDED #include /** Encapsula una muestra de audio. */ class JChunk { s32 last_channel; /**< ltimo canal en el que se reprodujo. */ Mix_Chunk *chunk; /**< Muestra asociada. */ public: /** Crea una muestra vaca. */ JChunk() : chunk(0) {} /** Libera los recursos asociados a esta muestra. */ void Destroy() { if (chunk != 0) { // Stop() no se debe liberar en reproduccin! Mix_FreeChunk(chunk); chunk = 0; } } /** Libera los recursos asociados a esta muestra. */ ~JChunk() { Destroy(); } /** Carga una muestra de audio desde fichero. El archivo puede ser de * tipo WAVE, AIFF, RIFF, OGG o VOC. * @param filename Nombre del fichero de audio a abrir. * @return true si todo fue bien, false en caso contrario. */ bool LoadWave(const char *filename) { Destroy(); chunk = Mix_LoadWAV(filename); return chunk != 0; } /** Establece el volumen de esta muestra. El volumen tiene un valor comprendido * entre 0 y MIX_MAX_VOLUME (128 actualmente). Si el valor es negativo el volumen * no cambia, si es mayor que el mximo, se establece al mximo. * @param newVolume Nuevo valor para el volumen. * @return Valor del volumen antiguo. */ s32 Volume(s32 newVolume) { return Mix_VolumeChunk(chunk, newVolume); } /** Reproduce esta muestra. * @param channel Canal en el que reproducir (o -1 para cualquiera libre). * @param loops Nmero de veces a reproducir. -1 hace que se repita * todo el tiempo. * @return Canal donde se reproducir la muestra -1 en caso de * error. El error se podra deber a falta de canales libres. */ s32 Play(s32 channel = -1, s32 loops = 0) { return (last_channel = Mix_PlayChannel(channel, chunk, loops)); } /** Reproduce esta muestra con lmite de tiempo. * @param msMax Nmero mximo de milisegundos a reproducir de la muestra. * @param channel Canal en el que reproducir (o -1 para cualquiera libre). * @param loops Nmero de veces a reproducir. -1 hace que se repita * todo el tiempo. * @return Canal donde se reproducir la muestra -1 en caso de * error. El error se podra deber a falta de canales libres. */ s32 PlayTimed(s32 msMax, s32 channel = -1, s32 loops = 0) { return (last_channel = Mix_PlayChannelTimed(channel, chunk, loops, msMax)); } /** Reproduce esta muestra con un fundido. * @param msFade Milisegundos de duracin del efecto fade-in. * @param channel Canal en el que reproducir (o -1 para cualquiera libre). * @param loops Nmero de veces a reproducir. -1 hace que se repita * todo el tiempo. * @return Canal donde se reproducir la muestra -1 en caso de * error. El error se podra deber a falta de canales libres. */ s32 FadeIn(s32 msFade, s32 channel = -1, s32 loops = 0) { return (last_channel = Mix_FadeInChannel(channel, chunk, loops, msFade)); } /** Reproduce esta muestra con lmite tiempo y un fundido. * @param msFade Milisegundos de duracin del efecto fade-in. * @param msMax Nmero mximo de milisegundos a reproducir de la muestra. * @param channel Canal en el que reproducir (o -1 para cualquiera libre). * @param loops Nmero de veces a reproducir. -1 hace que se repita * todo el tiempo. * @return Canal donde se reproducir la muestra -1 en caso de * error. El error se podra deber a falta de canales libres. */ s32 FadeInTimed(s32 msFade, s32 msMax, s32 channel = -1, s32 loops = 0) { return (last_channel = Mix_FadeInChannelTimed(channel, chunk, loops, msFade, msMax)); } /** Pausa la reproduccin. * @see Resume(), Halt(). */ void Pause() { if (Mix_GetChunk(last_channel) == chunk) { Mix_Pause(last_channel); } } /** Reanuda la reproduccin. * @see Pause(), Halt(). */ void Resume() { if (Mix_GetChunk(last_channel) == chunk) { Mix_Resume(last_channel); } } /** Detiene la reproduccin. * @see Resume(), Pause(). */ void Halt() { if (Mix_GetChunk(last_channel) == chunk) { Mix_HaltChannel(last_channel); } } /** Detiene la reproduccin con un fundido. * @param ms Milisegundos de fade. */ void FadeOut(s32 ms) { if (Mix_GetChunk(last_channel) == chunk) { Mix_FadeOutChannel(last_channel, ms); } } /** Determina si est reproduciendo o en pausa. * @return true si se est reproduciendo, false si no. */ bool IsPlaying() { if (Mix_GetChunk(last_channel) == chunk) { return 1 == Mix_Playing(last_channel); } return false; } /** Determina si est en pausa o parado. * @return true si se est en pausa o parado, false si no. */ s32 IsPaused() { if (Mix_GetChunk(last_channel) == chunk) { return Mix_Paused(last_channel); } return false; } /** Determina el estado de fade. * @return MIX_NO_FADING si no hace fade o no est reproduciendo, * MIX_FADING_IN si hace fade-in o MIX_FADING_OUT si hace fade-out. */ s32 Fading() { if (Mix_GetChunk(last_channel) == chunk) { return Mix_Fading(last_channel); } return MIX_NO_FADING; } /** Devuelve el canal en el que se reproduce la muestra. * @return Canal en el que reproduce el sonido o -1 si no se est reproduciendo. */ s32 GetChannel() { if (Mix_GetChunk(last_channel) == chunk) { return last_channel; } return -1; } /** Devuelve si el objeto es vlido o no. * @return true si lo es, false si no. */ bool Valid() {return chunk != 0;} operator Mix_Chunk * () {return chunk;} }; #endif // _JCHUNK_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Sound/JMixer.h0000600000175000001440000001464011177007633020253 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Wrapper C++ para SDL_mixer. * @author Juan Carlos Seijo Prez * @file JMixer.h * @date 06/03/2004 * @version 0.0.1 - Primera versin. 06/03/2004. */ #ifndef _JMIXER_INCLUDED #define _JMIXER_INCLUDED #include #include #include /** Esta clase permite configurar los parmetros del sonido. */ class JMixer { bool valid; public: /** Crea el objeto. */ JMixer() : valid(false) {} /** Determina si el objeto est inicializado o no. * @return true si se puede usar, false si no. */ bool Valid() {return valid;} /** Recupera la versin de SDL_mixer. El objeto devuelto tiene * tres campos: major, minor y patch, que identifican la versin. * @return La versin de SDL_mixer. */ const SDL_version * GetLinkedVersion() {return Mix_Linked_Version();} /** Establece los parmetros del audio. Este mtodo reserva adems 16 canales para la * reproduccin. Este parmetro se puede cambiar por medio de AllocateChannels(). * @param freq Frecuencia de muestreo (44.100 Hz, 22050 Hz, etc.) [22050]. * @param fmt Formato de la muestra (uno de AUDIO_{U|S}{8|16[LSB|MSB|SYS]}) [AUDIO_S16SYS]. * @param chann Nmero de canales de salida (1 - mono, 2 - stereo) [2]. * @param size Bytes por muestra [1024]. * @return 0 si todo fue bien, -1 en caso de no poderse inicializar SDL y -2 en caso * de no poder abrir el dispositivo. */ s32 Init(s32 freq = MIX_DEFAULT_FREQUENCY, Uint16 fmt = MIX_DEFAULT_FORMAT, s32 chann = 2, s32 size = 1024) { if (!SDL_WasInit(SDL_INIT_AUDIO)) { if (SDL_Init(SDL_INIT_AUDIO) == -1) { return -1; } } if (Mix_OpenAudio(freq, fmt, chann, size) == -1) { return -2; } valid = true; AllocateChannels(16); return 0; } /** Devuelve la cadena de error de SDL_mixer. * @return Cadena del ltimo error producido. */ const char * GetError() { return Mix_GetError(); } /** Recupera los parmetros del dispositivo de audio. * @param freq Variable donde se guardar la frecuencia de muestreo. * @param fmt Variable donde se guardar el formato de la muestra. * @param chann Variable donde se guardar el nmero de canales. * @return El nmero de veces que se ha abierto el dispositivo 0 (cero) * si se produjo algn error. */ s32 QuerySpec(s32 freq, u16 fmt, s32 chann) { return Mix_QuerySpec(&freq, &fmt, &chann); } /** Reserva canales de reproduccin. * Si el nmero de canales a reservar es menor que el actual, se paran * los que estn en exceso. Si fuese negativo se obtiene el nmero * total de canales reservados, sin que esto afecte a los existentes. * @param numChannels Nmero total de canales a reservar. * @return Nmero de canales reservados en total. */ s32 AllocateChannels(s32 numChannels) { return Mix_AllocateChannels(numChannels); } /** Establece el nivel de volumen de un canal. * @param channel Canal a modificar (-1 para todos). * @param volume Nuevo volumen del canal. * @return Valor actual del volumen del canal o un promedio de todos si * channel es -1. */ s32 Volume(s32 channel = -1, s32 volume = MIX_MAX_VOLUME) { return Mix_Volume(channel, volume); } /** Pausa el canal especificado. * @param channel Nmero de canal. * @see Resume(), Halt(). */ void Pause(s32 channel = -1) { Mix_Pause(channel); } /** Reanuda la reproduccin del canal especificado. * @param channel Nmero de canal. * @see Pause(), Halt(). */ void Resume(s32 channel = -1) { Mix_Resume(channel); } /** Detiene la reproduccin del canal especificado. * @param channel Nmero de canal. * @see Resume(), Pause(). */ void Halt(s32 channel = -1) { Mix_HaltChannel(channel); } /** Detiene el canal con un fundido. * @param ms Milisegundos de fade. * @param channel Canal a detener. * @return Nmero de canales a detener. */ s32 FadeOut(s32 ms, s32 channel = -1) { return Mix_FadeOutChannel(channel, ms); } /** Determina si el canal dado est reproduciendo o en pausa. * @param channel Canal a determinar -1. * @return 1 si se est reproduciendo, 0 si no o el nmero de canales * en reproduccin o pausa en caso de ser channel = -1. */ s32 Playing(s32 channel = -1) { return Mix_Playing(channel); } /** Determina si el canal dado est en pausa o parado. * @param channel Canal a determinar -1. * @return 1 si est en pausa o parado, 0 si no o el nmero de canales * en pausa o detenidos en caso de ser channel = -1. */ s32 Paused(s32 channel = -1) { return Mix_Paused(channel); } /** Determina el estado de fade del canal dado. * @param channel Canal a determinar. * @return MIX_NO_FADING si no hace fade, MIX_FADING_IN si hace fade-in * o MIX_FADING_OUT si hace fade-out. */ s32 Fading(s32 channel) { return Mix_Fading(channel); } /** Detiene la reproduccin del canal especificado en un tiempo dado. * @param ms Milisegundos a esperar antes de detenerlo. * @param channel Nmero de canal. * @see Halt(). */ void HaltTimed(s32 ms, s32 channel = -1) { Mix_ExpireChannel(channel, ms); } /** Cierra el dispositvo de audio. */ void Destroy() { // La especificacin no dice que se le puedan pasar ceros a Mix_QuerySpec(). s32 freq, chann; u16 fmt; // Debe cerrarse tantas veces como haya sido abierto s32 numTimes = Mix_QuerySpec(&freq, &fmt, &chann); for (int i = 0; i < numTimes; ++i) { Mix_CloseAudio(); } } /** Cierra el dispositvo de audio. */ ~JMixer() { Destroy(); } }; #endif // _JMIXER_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/JLib.h0000600000175000001440000000516111177007633016603 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Includes JLib files. * @file JLib.h * @author Juan Carlos Seijo * @date 07/03/2004 * @version 0.0.1 - 07/03/2004 - First version. */ #ifndef _JLIB_INCLUDED #define _JLIB_INCLUDED #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif // _JLIB_INCLUDED holotz-castle-1.3.14-src/JLib/JLib/Physics/0000744000175000001440000000000011177007633017237 5ustar jacobusersholotz-castle-1.3.14-src/JLib/JLib/Physics/JRigidBodyState.h0000600000175000001440000000574011177007633022377 0ustar jacobusers/* * JLib - Jacob's Library. * Copyright (C) 2003, 2004 Juan Carlos Seijo Prez * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Juan Carlos Seijo Prez * jacob@mainreactor.net */ /** Definiciones para controlar el estado de un slido rgido. * @file JRigidBodyState.h * @author Juan Carlos Seijo Prez * @date 30/04/2003 * @version 0.0.1 - 30/04/2003 - Primera versin. */ #ifndef _JRIGIDBODYSTATE_INCLUDED #define _JRIGIDBODYSTATE_INCLUDED /** Encapsula mtodos de clculo de dinmica de slido rgido. */ class JRigidBodyState : public JCoordAxes { public: JVector V; /**< Velocidad lineal en m/s */ JVector W; /**< Velocidad angular en rad/s */ JMatrix I; /**< Tensor de inercia en coordenadas de mundo, kg m m */ JMatrix I_inv; /**< Inverso del tensor de inercia en coordenadas de mundo */ public: /** Crea un nuevo controlador de estado de slido rgido. */ JRigidBodyState() {} /** Crea un nuevo controlador de estado de slido rgido * con la velocidad lineal y angular. * @param v Velocidad lineal. * @param w Velocidad angular. */ JRigidBodyState(const JVector& v, const JVector& w) : V (v), W (w) {} /** Devuelve la velocidad lineal * @return Velocidad lineal del slido. */ const JVector& Velocity() const { return V; } /** Establece la velocidad lineal. * @param v Velocidad lineal. */ void Velocity(const JVector& v) { V = v; } /** Devuelve la velocidad angular * @return Velocidad angular del slido. */ const JVector& AngularVelocity() const { return W; } /** Establece la velocidad angular. * @param v Velocidad angular. */ void AngularVelocity(const JVector& v) {W = v;} /** Devuelve el tensor de inercia. * @return Tensor de inercia del slido. */ const JMatrix& inertiaTensor() const { return I; } /** Devuelve el inverso del tensor de inercia. * @return Inverso del tensor de inercia del slido. */ const JMatrix& InverseInertiaTensor() const { return I_inv; } /** Calcula el tensor de inercia y su inverso a partir * de la orientacion actual y los momentos de inercia principales. * @param ip Orientacin actual. * @todo Implementar. */ void CalculateInertiaTensor(const JVector& ip); }; #endif // _JRIGIDBODYSTATE_INCLUDED holotz-castle-1.3.14-src/doc/0000755000175000001440000000000011177007633014724 5ustar jacobusersholotz-castle-1.3.14-src/doc/MANUAL_UA.txt0000644000175000001440000002065011177007633017032 0ustar jacobusersHolotz's Castle - Руководство ------------------------ 1. Швидкий запуск Виконайте команду: ./holotz-castle ...и насолоджуйтеся! 1.1 Якщо це не працює, то, можливо, необхідно встановити більш нові версії бібліотек: - SDL (www.libsdl.org) - SDL_image, SDL_ttf, SDL_mixer (www.libsdl.org, libraries section) 2. Гра Щоб отримати довідку, натисніть F1 під час гри або в головному меню. Під час діалогів довідка недоступна. Перші две сцени, які ви побачите, зпочатком нової гри - ррозмова Івонни в Людара, головних героїв гри. Репліки в диалозі можна пропускати, натискаючи клавішу "Пробіл". Пропустити цілу сцену можна нанатискаючи на "Введення". В будь-який момент гри можна вийти в головне меню и повернутися до гри з допомогою команди 'Продовжити гру'. Гра продовжиться з початку поточного рівня. Тому, краще зберігати гру відразу після переходу на новий рівень. Щоб перервати гру та перепочити, натисніть 'p'. Якщо натиснути 'p' снову, гра продовжиться. На третьому рівні ви можете управляти Івонною. Використовуйте стрілки для руху і "пробіл" для прижків. Чим довше натискання на "пробіл", тим вище прижок. Час, який залишається для проходження рівня відображується у верхньому-лівому кутку екрана. Необхідні для переходу на наступний рівень предмети відображаються у верхньому-правому кутку екрана. Коли всі предмети зібрано, відкривається вихід. Підійдіть до нього та підпригніть, щоб покинути рівень. Якщо рівні здаються вам занадто важкими або занадто простими, змінити рівень складності в головному меню (Налаштування > Складність). 3. HCed HCed - редактор рівней для гри Holotz's Castle. Для запуску: - В ОС Linux, запустіть './holotz-castle-editor' - В ОС Windows, зробіть подвійне клацання на значку holotz-castle-editor.exe Головне вікно: Заголовок вікна містить ім'я файла, куди буде збережено рівень, який ви редагуєте. Зліва знаходяться піктограми: - Звичайна підлога - Непреривна підлога - Драбина - Шест - Падаюча підлога - Предмет - Мотузка - Початкова позиція - Вихід - Вороги - Збереження - Завантаження/Новий рівень - Вихід Під ними розташовані індикатори: - Час на проходження рівня. - Сила тяжіння. - Швидкість по осі X. - Швидкість по осі Y. - Сила прижка. - Розмір рівня (рядів x колонок) Миша: Ліва кнопка: Переміщує поточний об'єкт на карту. Середня або права та ліва кнопки разом: Видалити об'єкт. Клавіатура: c : добавити пусту колонку справа Shift + c : видалити колонку справа Ctrl + c : добавити пусту колонку зліва Ctrl + Shift + c : видалити колонку зліва r : добавити пустий ряд знизу Shift + r : видалити ряд знизу Ctrl + r : добавити пустий ряд зверху Ctrl + Shift + r : видалити ряд зверху + : збільшити час (на основі найвищого рівня складності) - : зменьшити час g : збільшити тяжіння Shift + g: зменьшити тяжіння x : збільшити швидкість по осі x Shift + x: зменьшити x speed y : збільшити швидкість по оси y Shift + y: зменьшити y speed j : збільшити силу прижка Shift + j : зменьшити силу прижка Для об'єктів/мотузок/поч. позицій/ворогів: Ctrl - Підрівнювання к карте. Добавлення мотузок: Виберіть значок мотузки. Розташуйте мотузку на карте. Натисніть 'Alt', не відпускаючи лівої кнопки миші. Двигаючи курсором миші задайте довжину мотузки. Не відпускаючи лівої кнопки миші натисніть 'Shift', щоб відрегулювати період качання мотузки. 4. ЧаПи Q. Я роблю подвійне клацання на значок HC, але нічого не відбувається! A. Відкрийте файл stderr.txt в тому ж каталозі (або прочитайте повідомлення в консолі Linux). В останніх рядках повинен бути опис проблеми. Прочитайте розділ ЧаПи, щоб нзайти рішення. Q. Гра працює занадто повільно? A. Виберіть відеорежим з меньшою роздільною здатністю: Налаштування > Зображення > Розмір > [режим] Можливо ваша відеокарта підтримує режим 320x200. Він дозволить вам пригадати часи перших відеоігр. Q. Я використовую Linux з драйверами ALSA, але не чую звука. A. Типово ALSA заглушує звук. Перевірте гучність з допомогою alsamixer, aumix або gmix. Якщо пристрій виводу звука заблоковано іншою программою, то звук з'явиться тільки після її завершення. Q. Невірний звук у Windows! A. Хоча звуки у грі не досить добре чутно і так :D, проблема може заключатися в драйверах вашої звукової карти. Поставте найновішу версію. Q. В режимі 8-бітного кольору деякі частини рівнів виглядають чорними! A. Ця помилка виправлена починаючи з версії v1.2, завантажте нову версію зі сторінки (www.mainreactor.net). Q. Тут не має відповіді на моє запитання. Що робити? A. Напишіть мені за адресою знизу. Не забудьте додати файл stderr.txt, який знаходиться в тому ж каталозі, де й програмний файл (HC.exe). В ньому є інформація про вашу відеокарту та виникші проблеми. Q. Я художник/музикант/програміст/продюсер/фотомодель 90-60-90 та хочу допомогти. Що робити? A. Напишіть мені за адресою знизу.(Якщо ви модель, то потрібно спочатку зустрітися :) ) Хуан Карлос Сейжо Перес (jacob@mainreactor.net) holotz-castle-1.3.14-src/doc/MANUAL_EU.txt0000644000175000001440000001413311177007633017035 0ustar jacobusersHolotz's Castle - Eskuliburua ----------------------------- HISTORIA: 08/02/2005 - Bigarren edizioa. 24/10/2004 - Lehen edizioa. 1. Hasiera bizkorra. 1.1. Windows 1. Atera HC_win32-1.3.zip artxiboko fitxategiak. 2. Ateratzen bukatzean, HC izeneko karpeta bat agertuko da. 3. Ireki karpeta. 4. Klik bikoitza egin holotz-castle.exe fitxategian. 5. Gozatu jokuaz! OHARRA: Lasterbide bat sortzeko beharrezkoa da 'Hasi hemen:' dioen hutsunean HC karpetaren bide osoa jartzea, lasterbidearen ezaugarrietan. 1.2. Linux (iturburu kodea) 1. Egin 'tar -zxf HC_JLib_Linux_Win32-1.3.tar.gz' (kakotx gabe) 2. Jarraitu 'HC_JLib_Linux_Win32-1.3' karpetako IRAKURRI.txt fitxategiko urratsak. 3. Egin 'cd Games/HolotzCastle' 4. Egin './holotz-castle' 5. Gozatu jokuaz! 2. Aurreneko ibilaldia jokuan zehar. Jokatzen ari zarenean laguntza ikusteko, sakatu 'F1'. Elkarrizketetan ezin da laguntza ikusi. Hautesleihoan 'Jokaldi Berria' hautatzean agertzen diren lehen bi eszenak Ybelle eta Ludar, jokuko protagonisten arteko elkarrizketak dira. Elkarrizketa globoak ken ditzakezu Hutsunea sakatuz. Elkarrizketa osoa kentzeko sakatu Sartu. Jokatzen zabiltzan bitartean edozein unetan joan zaitezke hautesleiho nagusira, baina gero utzitako tokian jarraitzea ezinezkoa da, maila hori berriz hasi beharko duzu. Jokua gorde nahi baduzu, onena mailaren hasieran egitea da. Jokua gelditu eta atsedena hartzeko sakatu 'p'. Berriro 'p' zapalduz jokura itzuliko zara. Hirugarren mailan Ybelle maneia dezakezu. Mugi ezazu norantza geziekin. Egin jauzi hutsune barrarekin. Zenbat eta denbora gehiago eduki sakatuta, orduan eta gorago helduko zara. Maila burutzeko duzun astia goi-ezkerraldeko ertzean ageri da. Jasotzeko dituzun giltza edo harrien kopurua goi-eskumaldeko ertzean ageri da. Objektu guztiak jasotzean, mailaren irteerako ataria irekitzen da (bizkorrago mugitzen da). Bertara denboraz heltzea lortu behar duzu, eta behin honen azpian zaudela jauzi egin mailatik irteteko. Maila errazegiak edo zailegiak iruditzen bazaizkizu, zailtasun maila aldatu hautesleiho nagusian (Aukerak > Zailtasuna). 3. HCed HCed Holotz's Castle-ren maila-sorgailua da. Abiarazteko: - Linuxpean, egin './holotz-castle-editor'. - Windowspean, egin klik bikoitza 'holotz-castle-editor.exe' fitxategian. Leihoa: Leihoaren izenburua uneko maila gordetzeko erabiliko den fitxategiaren izena da. Ezkerraldean sorgailuaren ikurrak ageri dira: - Zoru arrunta - Zoru jarraia - Eskailera - Barra - Zoru hauskorra - Objektua - Soka - Hasierako lekua - Amaierako lekua - Aurkariak - Gorde - Istorioa Eskuratu/Sortu - Irten Ikur hauen azpian informazio hau dago: - Mailako denbora. - Grabitatea. - X abiadura. - Y abiadura. - Jauzien potentzia. - Maparen neurria (lerroak x zutabeak) Sagua: Ezkerreko botoia: Uneko objektua mapan margotzen du. Erdiko botoia edo bi botoiak batera sakatuta: Erakuslearen azpian dagoen objektua ezabatzen du. Teklak: c : eskuman zutabe huts bat gehitzen du Maius + c : eskumako lehen zutabea ezabatzen du Ktrl + c : eskuman zutabe huts bat gehitzen du Ktrl + Maius + c : eskumako lehen zutabea ezabatzen du + : maila burutzeko denbora tartea handitzen du (zailtasun zailean) - : denbora tartea txikitzen du g : grabitatea handitzen du Maius g: grabitatea txikitzen du x : x abiadura handitzen du Maius x: x abiadura txikitzen du y : y abiadura handitzen du Maius y: y abiadura txikitzen du j : jauziko unitate bertikalen kopurua handitzen du Maius + j : jauziko unitate bertikalen kopurua txikitzen du Objektu, soka, hasierako leku eta aurkariekin: Ktrl - Kokalekua mapara egokitzen du. Sokak gehitzeko: Sokaren ikurra hautatu. Soka mapan kokatu. Ezkerreko botoia sakatuta duzula, 'Alt' tekla zapaldu. Sagua goitik behera eraman sokaren luzeera zehazteko. 'Alt' sakatzeari utzi gabe, zapaldu 'Maius' balantza-mugimenduaren anplitudea zehazteko. 4. Ohiko galderak. G. HC.exe-n klik bikoitza egiten dut eta ez da ezer gertatzen! E. Ireki karpeta bereko stderr.txt fitxategia (edo frogatu kontsolako mezuak Linux badarabilzu). Azken lerroek gertaturiko akatsa azaltzen dute. Honek konponbidea aurkitzen lagun zaitzake, agian zerrendako beste galderetan dago bilatzen ari zaren erantzuna. G. Jokua oso motel dabil, zer egin dezaket? E. Hautesleiho nagusian bereizmen txikiagoa aukeratu: Aukerak > Irudia > Neurria > [WWWxHHH] (hautatu balio txiki bat WWW eta HHHrentzat) Agian zure irudi-txartelak 320x200 era onartzen du, honakoa aukera bikaina da jokuari aspaldiko plataforma jokuen antza emateko. G. Linuxekin ALSA erabiltzen dut, baina ez da soinurik entzuten. E. ALSAk, berez, soinu guztiak isilarazten ditu. Frogatu soinuen ozentasun maila alsamixer, aumix edo kmix bezalako programa batekin. Beste aplikazioren bat soinua erabiltzen ari bada, ezingo duzu ezer entzun programa hori itxi arte. G. Windowseko soinua kakazahar bat da! E. Soinu Banda beste mundu batekoa ez dela jakinda :D, baliteke arazoa beste bat izatea, soinu-txartelaren driverrena. Frogatu driverren bertsio eguneratu bat daukazula eta hala ez bada, eguneratu eta saiatu berriro. G. 8 bit/piksel eran mailaren zati batzuk beltzez ageri dira! E. Bai, 8 bit/piksel erarekin arazo txiki bat dugu. Lauki beltz horiek zoru jarraiari dagozkio. Agian 2.0 bertsioan arazoa konponduta egongo da :D G. Zerrenda honetan ez dut nire arazoaren konponbidea aurkitu, zer egin dezaket? E. Postel bat bidali diezadakezu arazoa azalduz beherago ageri den helbide elektronikora. Ez ahaztu stderr.txt fitxategia gehitzea (jokuaren karpetan dago). Zure irudi-txartelaren eta jokuko arazoaren informazioa dauka. G. Marrazkilaria/musikaria/programatzailea/ekoizlea/90-60-90-modeloa naiz eta egitasmoan lagundu nahi dut. Zer egin dezaket? E. Hara, beheko helbidera postel bat bidali diezadakezu (modeloa bazara, aurrena zita bat edukitzea ezinbestekoa da :) ). Juan Carlos Seijo Prez (jacob@mainreactor.net) holotz-castle-1.3.14-src/doc/MANUAL_RU.txt0000644000175000001440000002045211177007633017053 0ustar jacobusersHolotz's Castle - Руководство ------------------------ 1. Быстрый запуск Выполните команду: ./holotz-castle ...и наслаждайтесь! 1.1 Если это не работает, то, возможно, потребуется установить более новые версии библиотек: - SDL (www.libsdl.org) - SDL_image, SDL_ttf, SDL_mixer (www.libsdl.org, libraries section) 2. Игра Чтобы получить справку, нажмите F1 во время игры или в главном меню. Во время диалогов справка недоступна. Первые две сцены, которые вы увидите, начав новую игру - разговор Ивонны и Людара, главных героев игры. Реплики в диалоге можно пропускать, нажимая клавишу "Пробел". Пропустить целую сцену можно нажав на "Ввод". В любой момент игры можно выйти в главное меню и вернуться к игре с помощью команды 'Продолжить игру'. Игра продолжится с начала текущего уровня. Поэтому, лучше сохранять игру сразу после перехода на новый уровень. Чтобы прервать игру и передохнуть, нажмите 'p'. Если нажать 'p' снова, игра продолжится. На третьем уровне вы можете управлять Ивонной. Используйте стрелки для движения и "пробел" для прыжков. Чем дольше нажатие на "пробел", тем выше прыжок. Оставшееся на прохождение уровня время отображается в верхнем-левом углу экрана. Необходимые для переход на следующий уровень предметы отображаются в верхнем-правом углу экрана. Когда все предметы собраны, открывается выход. Пдойдите к нему и подпрыгните, чтобы покаинуть уровень. Если уровни кажутся вам слишком трудными или слишком простыми, изменить уровень сложности в главном меню (Настройки > Сложность). 3. HCed HCed - редактор уровней для игры Holotz's Castle. Для запуска: - В ОС Linux, запустите './holotz-castle-editor' - В ОС Windows, дважды щелкните значок holotz-castle-editor.exe Главное окно: Заголовок окна сообщает имя файла, куда будет сохранён редактируемый уровень. Слева находятся пиктограммы: - Обычный пол - Непрерывный пол - Лестница - Шест - Пробиваемый пол - Предмет - Верёвка - Начальная позиция - Выход - Враги - Сохранение - Загрузка/Новый уровень - Выход Под ними расположены индикаторы: - Время, проведённое на уровне. - Притяжение. - Скорость по оси X. - Скорость по оси Y. - Сила прыжка. - Размер уровня (рядов x колонок) Мышь: Левая кнопка: Помещает текущий объект на карту. Средняя или правая и левая кнопки вместе: Удалить объект. Клавиатура: c : добавить пустую колонку справа Shift + c : удалить колонку справа Ctrl + c : добавить пустую колонку слева Ctrl + Shift + c : удалить колонку слева r : добавить пустой ряд снизу Shift + r : удалить ряд снизу Ctrl + r : добавить пустой ряд сверху Ctrl + Shift + r : удалить ряд сверху + : увеличить время (на основе самого высокого уровня сложности) - : уменьшить время g : увеличить притяжение Shift + g: уменьшить притяжение x : увеличить скорость по оси x Shift + x: уменьшить x speed y : увеличить скорость по оси y Shift + y: уменьшить y speed j : увеличить силу прыжка Shift + j : уменьшить силу прыжка Для объектов/верёвок/нач. позиций/врагов: Ctrl - Подгонка к карте. Добавление верёвок: Выберите значок верёвки. Расположите верёвку на карте. Нажмите 'Alt', не отпуская левой кнопки мыши. Двигая курсором мыши задайте длину верёвки. Не отпуская левой кнопки мыши нажмите 'Shift', чтобы отрегулировать период качания верёвки. 4. ЧаВо Q. Я дважды щёлкаю значок HC, но ничего не происходит! A. Откройте файл stderr.txt в том же каталоге (или прочтите сообщения в консоли Linux). В последних строках должно быть описание проблемы. Прочтите раздел ЧаВо, чтобы найти решение. Q. Игра работает слишком медленно? A. Выберите видеорежим с меньшим разрешением: Настройка > Изображение > Размер > [режим] Возможно, ваша видеокарта пожерживает режим 320x200. Он позволит вам вспомнить времена старинных видеоигр. Q. Я использую Linux с драйверами ALSA, не не слышу звука. A. По умолчанию ALSA заглушает звук. Проверьте громкость с помощью alsamixer, aumix или gmix. Если устройтво вывода звука заблокировано другой программой, то звук появится только после её закрытия. Q. Неправильный звук в Windows! A. Хотя звуки в игре не очень хорошо слышны сами по себе :D, проблема может заключаться в драйверах вашей звуковой карты. Поставтьте самую новую версию. Q. В режиме 8-битного цвета некоторые части уровней выглядят чёрными! A. Эта ошибка исправлена, начиная с версии v1.2, загрузите новую версию со страницы (www.mainreactor.net). Q. здесь нет ответа на мой вопрос. Что делать? A. Напишите мне по адресу внизу. Не забудьте приложить файл stderr.txt, который находится в той же папке, где и исполняемый файл (HC.exe). В нём содержится информация о вашей видеокарте и возникшей проблеме. Q. Я художник/музыкант/программист/продюсер/фотомодель 90-60-90 и хочу помочь. Что делать? A. Напишите мне по адресу внизу.(Если вы модель, то надо сначала встретиться :) ) Хуан Карлос Сейжо Перес (jacob@mainreactor.net) holotz-castle-1.3.14-src/doc/MANUAL_IT.txt0000644000175000001440000001457011177007633017045 0ustar jacobusersIl castello di Holotz - Manuale ------------------------ STORICO DELLE EDIZIONI: 08/02/2005 - Seconda edizione 24/10/2004 - Prima editione 1. Guida volece 1.1. Windows 1. Decomprimi HC_win32-1.3.zip 2. Dopo l'estrazione troverari una cartella 'HC'. 3. Entra in quella cartella. 4. Fai doppio click su holotz-castle.exe 5. Divertiti! NOTA: Per creare un collegamento al programma necessario riempire la casella "Esegui in" con il percorso completo della cartella del gioco. 1.2. GNU/Linux (da codice sorgente) 1. Esegui 'tar -zxf HC_JLib_Linux_Win32-1.3.tar.gz' (senza gli apici) da terminale 2. Segui le istruzioni nel file README.txt nella directory 'HC_JLib_Linux_Win32-1.3'. 3. Scrivi 'cd Games/HolotzCastle' da terminale 4. Esegui './holotz-castle' 5. Divertiti! 2. Introduzione Per vedere la schermata di aiuto nel men principale o mentre stai giocando premi F1. L'aiuto non disponibile durante i dialoghi. Le prime due scene che vedrai appena dopo avere selezionato 'Nuova partita' dal men principale un dialogo tra Ybelle e Ludar, i personaggi principali del gioco. Puoi saltare le singole battute dei dialoghi prementi 'spazio'; per saltare dialoghi interi premi 'invio'. In ogni momento puoi tornare al men principale e da l, premendo 'Continua partita' ricomincerai da dove hai interrotto la partita. buona regola salvare una partita subito dopo essere entrato in un nuovo livello. Per mettere il gioco in pausa ed andare a fare due passi premi 'p'. Ripremi 'p' quando vuoi ricominciare a giocare. Al terzo livello potrai controllare Ybelle. Puoi muoverlo con i tasti 'freccia' e farlo saltare con il tasto 'spazio'. Pi tieni premuto il tasto 'spazio' e pi alto sar il salto. Il tempo disponibile per completare il livello sempre visibile nell'angolo in alto a sinistra dello schermo. Gli oggetti ancora da raccogliere per poter uscire dal livello sono mostrati nell'angolo in alto a destra dello schermo. Quando avrai raccolto tutti gli oggetti si attiver l'uscita. Dovrai spostarti verso di essa e quando ci sarai sotto salta e passerai al quadro successivo. Se trovi uno o pi livelli troppo difficili puoi regolare la difficolt dal men principale (Opzioni > Difficolt). 3. HCed HCed l'editor di livelli per "Holotz's Castle". Per eseguirlo: - In GNU/Linux, lancia './holotz-castle-editor' da terminale - In Windows, fai doppio-click sull'icona holotz-castle-editor.exe Finestra principale: Nel titolo della finestra ci sar il nome del file in cui sar salvato il livello. Nella parte sinistra della finestra ci sono le seguenti icone: (Non trodotto) - Normal floor - Continuous floor - Ladder - Bar - Breakable floor - Object - Rope - Start position - End position - Enemies - Save - Load/Create story - Exit Al di sotto ci sono questi indicatori: (Non trodatto) - Level time. - Gravity. - X Speed. - Y Speed. - Jump amount. - Map size (rows x columns) Mouse: Tasto sinistro: disegna l'oggetto selezionato sulla mappa. Tasto centrale (o tasto destro e sinistro premuti insieme): cancella l'oggetto sotto il puntatore. Tasti: (non tradotto) c : adds blank column to the right Shift + c : removes column to the right Ctrl + c : adds blank column to the left Ctrl + Mays + c : removes column to the left r : adds blank row bellow Shift + r : removes row bellow Ctrl + r : adds blank row upside Ctrl + Mays + r : removes row upside + : increase time (based upon hardest difficulty level) - : decrease time g : increase gravity Shift + g: decrease gravity x : increase x speed Shift + x: decrease x speed y : increase y speed Shift + y: decrease y speed j : increase jump amount Shift + j : decrease jump amount With object/rope/start pos./enemy: Ctrl - Adjusts to map. Per aggiungere corde: Seleziona l'icona della corda. Posiziona la corda nella mappa. *Senza* rilasciare il tasto sinistro del mouse premi il tasto 'Alt' Muovi in s o in gi il mouse per allungare o accorciare la corda. *Senza* rilasciare il tasto sinistro del mouse premi 'Shift' per selezionare il periodo d'oscillazione della corda. 4. FAQ -- Domande pi frequenti D. Faccio doppio-click su HC.exe ma non succede nulla! R. Apri file 'stderr.txt' nella cartella del gioco (o controlla i messaggi sulla console in GNU/Linux). L'ultima riga ti dir il problema; cerca la soluzione in questo documento. D. Il gioco lento. Cosa posso fare? R. Scegli una risoluzione video pi bassa dal men principale: Opzioni > Video > Dimensioni > [modo] Forse la tua scheda grafica supporta la modalit 320x200. un'occasione per rivivere le senzazioni dei grandi giochi del passato :). D. Sono sotto GNU/Linux ed uso ALSA ma non sento nessun suono. R. Per impostazioni predefinite ALSA azzera il suono. Prova a controllare il livello dei volumi con i comandi 'alsamixer', 'aumix' oppure 'kmix'. Se un'altra applicazione sta usando la scheda audio non potrai ascoltare i suoni de 'Il castello di Holotz' finch non chiuderai quel programma. D. I suoni sotto Windows sono orribili! R. A parte il fatto che la colonna sonora del gioco non tutto sto granch :D, potrebbe essere un problema di driver. Controlla di avere l'ultima versione disponibile dei driver. D. Nella modalit ad 8bpp alcune zone del livello sono totalmente nere! R. Questo errore stato corretto nelle versioni 1.2 e superiori, controlla il sito del gioco (www.mainreactor.net) per avere l'ultima versione disponibile. D. Non trovato risposta alle mie domande, cosa dovrei fare? R. Puoi mandarmi una mail all'indirizzo scritto sotto. Non dimenticarti di allegare il file 'stderr.txt' che si trova nella stessa cartella del gioco. Il file contiene informazioni sulla tua scheda grafica e sul tuo problema. D. Sono un artista/musicita/programmatore/produttore/modella-90-60-90 e vorrei contribuire alla causa. Come posso farlo? R. Oh, puoi inviarmi una mail all'indirizzo qui sotto (se sei una modella dovremmo prima avere un appuntamento :) ) Juan Carlos Seijo Prez (jacob@mainreactor.net) -- Traduzione in italiano: Federico 'hs1' Tolomei hardskinone chiocciola autistici punto org holotz-castle-1.3.14-src/doc/MANUAL_FR.txt0000644000175000001440000001413311177007633017033 0ustar jacobusersHolotz's Castle - Manuel ------------------------ 1. Dmarrage Rapide Tapez: ./holotz-castle ...et amusez-vous! 1.1 Si a ne fonctionne pas, vous aurez probablement besoin des dernires versions des librairies: - SDL (www.libsdl.org) - SDL_image, SDL_ttf, SDL_mixer (www.libsdl.org, section librairies) 2. Brve prsentaion du jeu Pour afficher l'aide dans le menu principal ou pendant le jeu, appuyez sur F1. L'aide n'est pas disponible pendant les scnes de dialogues. Les deux premires scnes que vous verrez en slectionnant 'Nouvelle partie' dans le menu principal sont un dialogue entre Ybelle et Ludar, les deux hros du jeu. Vous pouvez sauter les bulles de dialogues en appuyant sur la barre d'espace. Vous pouvez sauter une scne entire en appuyant sur Entre. Vous pouvez revenir au menu principal n'importe quel moment du jeu en pressant Echap mais, ensuite, si vous slectionnez l'option 'Continuer la partie' vous reprendrez le jeu au dbut du dernier niveau jou. Un conseil: Si vous voulez enregistrer la partie, faites-le quand vous venez de commencer un niveau. Pour mettre le jeu en pause et vous reposer, appuyez sur 'p'. Pressez 'p' une seconde fois pour revenir dans le jeu. partir du troisime niveau, vous pourrez contrler Ybelle. Vous pourrez le faire bouger en utilisant les flches directionnelles et le faire sauter en appuyant sur la barre d'espace. Plus vous appuierez longtemps, plus vous pourrez sauter haut. Le temps disponible pour finir le niveau est visible dans le coin suprieur gauche de l'cran. Les objets restants trouver pour dbloquer la sortie du niveau sont affichs dans le coin suprieur droit de l'cran. Quand vous aurez collect tous les objets, la sortie sera active (cela bougera plus vite) et vous devrez aller jusqu' elle et sauter quand vous serez en dessous pour sortir du niveau. Si vous trouvez les niveaux trop difficiles ou trop faciles, essayez d'ajuster le niveau de difficult dans le menu principal (Options > Difficult). 3. HCed HCed est l'diteur de niveau de Holotz's Castle. Pour le lancer: - Sous Linux, tapez './holotz-castle-editor' - Sous Windows, double-cliquez sur l'icne holotz-castle-editor.exe Fentre principale: Le titre de la fentre contient le nom du fichier qui sera utilis quand vous enregistrerez le niveau courant. Sur le ct gauche, on peut voir les icnes suivantes: - Sol normal - Sol continu - chelle - Barre - Sol cassable - Objet - Corde - Point de dpart - Sortie - Ennemis - Sauvegarde - Charger/Crer une histoire - Quitter En dessous, il y a les indicateurs suivants: - Temps du niveau. - Gravit. - Vitesse en X. - Vitesse en Y. - Puissance de saut. - Taille de la carte (lignes x colonnes) Souris: Bouton gauche: Place l'objet choisi dans la carte. Bouton du mileu ou boutons gauche & droit simultanment: Supprime l'objet sous le pointeur. Clavier: c : Ajoute une colonne vide sur la droite Shift + c : Supprime une colonne sur la droite Ctrl + c : Ajoute une colonne vide sur la gauche Ctrl + Shift + c : Supprime une colonne sur la gauche r : Ajoute une ligne vide en bas Shift + r : Supprime une ligne en bas Ctrl + r : Ajoute une ligne vide en haut Ctrl + Mays + r : Supprime une ligne en haut + : Augmenter le temps (le temps sera celui du niveau en mode difficile) - : Diminuer le temps g : Augmenter la gravit Shift + g: Diminuer la gravit x : Augmenter la vitesse en x Shift + x: Diminuer la vitesse en x y : Augmenter la vitesse en y Shift + y: Diminuer la vitesse en y j : Augmenter la puissance de saut Shift + j : Diminuer la puissance de saut Avec les objets/cordes/point de dpart/ennemis: Ctrl - Dplacer l'objet. Ajouter une corde: Choisir l'icne de corde. Positionner la corde sur la carte. Sans relcher le bouton gauche de la souris, appuyer sur 'Alt'. Bouger la souris vers le haut ou le bas pour choisir la longueur de la corde. Sans relcher le bouton gauche de la souris, appuyer sur 'Shift' pour choisir la priode de balancement de la corde. 4. FAQ Q. Je double-clique sur HC.exe mais rien ne se passe! A. Ouvez le fichier nomm stderr.txt dans le mme dossier (ou regardez les messages de la console sous Linux). Les dernires lignes indiquent le problme. Cherchez une solution dans la suite de cette FAQ Q. Le jeu est lent que puis-je faire? A. Choisissez une rsolution plus faible dans le menu principal: Options > Vido > Taille > [mode] Peut-tre que votre carte graphique supporte le mode 320x200, vous avez la chance de revivre les sensations des jeux vidos l'ancienne. Q. Je suis sous Linux mais ALSA ne laisse entendre aucun son. A. Par dfaut ALSA coupe le son. Essayez de vrifier le volume avec alsamixer ou aumix ou kmix. Si une autre application utilise le son, vous ne pourrez pas entendre de son avant de l'avoir fermer. Q. Le son sous Windows est mdiocre! A. Malgr le fait que la bande son elle mme n'est pas terrible :D, peut-tre que le problme provient des pilotes de la carte son. Rcuprez la dernire version de ceux-ci et ressayez. Q. En mode 8 bpp mode des parties du niveau sont toutes noires! A. Cette erreur est corrige dans les version 1.2 et plus, rcuprez la dernire version sur Internet (www.mainreactor.net). Q. Je n'ai pas trouv de rponses mon problme dans cette FAQ, que puis-je faire? A. Vous pouvez m'envoyer l'adresse qui est la fin de cette FAQ. N'oubliez pas de joindre le fichier nomm stderr.txt qui est dans le mme dossier que l'xcutable (HC.exe). Il contient toutes les informations propos de votre carte graphqiue et le problme avec le jeu. Q. Je suis un artiste/musicien/programmeur/producteur/modle-90-60-90 et je veux contribuer la cause. Que puis-je faire? A. Oh, vous pouvez pouvez me contacter l'adresse en dessous (si vous tes mannequin, nous prendrons un rendez-vous personnel avant :) ) Juan Carlos Seijo Prez (jacob@mainreactor.net) holotz-castle-1.3.14-src/doc/MANUAL_ES.txt0000644000175000001440000001441011177007633017031 0ustar jacobusersHolotz's Castle - Manual ------------------------ HISTORIA: 08/02/2005 - Segunda edicin. 24/10/2004 - Primera edicin. 1. Comienzo rpido. 1.1. Windows 1. Descomprime HC_win32-1.3.zip 2. Cuando termine de descomprimirse, una carpeta llamada HC apparece. 3. Abre la carpeta. 4. Haz doble click en holotz-castle.exe. 5. Psalo bien! NOTA: Para crear un acceso directo es necesario poner en la casilla 'Ejecutar en' la ruta completa de la carpeta HC, en las propiedades del acceso directo. 1.2. Linux (cdigo fuente) 1. Haz 'tar -zxf HC_JLib_Linux_Win32-1.3.tar.gz' (sin comillas) 2. Sigue las instrucciones del fichero LEEME.txt en el directorio 'HC_JLib_Linux_Win32-1.3'. 3. Haz 'cd Games/HolotzCastle' 4. Haz './holotz-castle' 5. Psalo bien! 2. Un primer recorrido por el juego. Para mostrar la ayuda mientras ests jugando, pulsa 'F1'. La ayuda no est disponible durante las escenas de dilogo. Las primeras dos escenas que ves cuando seleccionas 'Nueva Partida' en el men principal es un dilogo entre Ybelle y Ludar, los protagonistas del juego. Puedes saltarte los globos de texto pulsando espacio. Puedes saltarte todo un dilogo con la tecla intro. Puedes pasar al men principal siempre que quieras durante el juego pero si luego quieres continuar tendrs que empezar de nuevo el nivel desde el que saliste. Si vas a salvar, lo mejor es que lo hagas al principio del nivel. Para pausar el juego y tomarte un respiro pulsa 'p'. Pulsando 'p' de nuevo te lleva otra vez al juego. En el tercer nivel puedes manejar a Ybelle. Intenta moverlo con las teclas de direccin. Intenta saltar con la barra de espacio. Cuanto ms la mantengas pulsada, ms alto llegars. El tiempo restante para completar el nivel se muestra en la esquina superior izquierda. El nmero de llaves objectos que faltan por recoger se muestra en la parte superior derecha. Cuando has recogido todas los objetos, la salida del nivel se activa (se mueve ms rpido). Tienes que conseguir llegar a ella en tiempo y una vez debajo saltar para salir del nivel. Si los niveles te parecen demasiado fciles o difciles, intenta ajustar el nivel de dificultad en el men principal (Opciones > Dificultad). 3. HCed HCed es el editor de niveles de Holotz's Castle. Para ejecutarlo: - En Linux, ejecuta './holotz-castle-editor' - En Windows, haz docle click sobre 'holotz-castle-editor.exe' Ventana: El ttulo de la ventana muestra el fichero usado al salvar el nivel actual. En la parte izquierda se muestran los iconos del editor: - Suelo normal - Suelo continuo - Escalera - Barra - Suelo rompible - Objeto - Cuerda - Posicin de comienzo - Posicin de fin - Enemigos - Salvar - Cargar/Crear historia - Salir Debajo de esto iconos estn los indicadores: - Tiempo del nivel. - Gravedad. - Velocidad x. - Velocidad y. - Potencia de salto. - Tamao del mapa (filas x columnas) Ratn: Botn izquierdo: Dibuja en el mapa el objeto actual. Botn central o ambos botones a la vez pulsados: Borra el objeto bajo el puntero. Teclas: c : aade columna en blanco por la derecha Mays + c : borra columna por la derecha Ctrl + c : aade columna en blanco por la derecha Ctrl + Mays + c : borra columna por la derecha + : aumenta tiempo (el tiempo es el del nivel de dificultad difcil) - : disminuye tiempo g : aumenta gravedad Mays g: disminuye gravedad x : aumenta velocidad x Mays x: disminuye velocidad x y : aumenta velocidad y Mays y: disminuye velocidad y j : aumenta n de unidades verticales de salto Mays + j : disminuye n de unidades verticales de salto Con objeto/cuerda/pos. comienzo/enemigo: Ctrl - Ajusta la posicin al mapa. Aadir cuerdas: Seleccionar el icono de cuerda. Posicionar la cuerda en el mapa. Sin soltar el botn izquierdo, pulsar la tecla 'Alt'. Mover el ratn en vertical para ajustar la longitud de la cuerda. Sin soltar 'Alt', pulsar 'Mays' para ajustar la amplitud del movimiento. 4. Preguntas frecuentes. P. Hago doble click en HC.exe pero no pasa nada! R. Abre el fichero llamado stderr.txt en la misma carpeta (o comprueba los mensajes de la consola si ests en Linux). Las ltimas lneas muestran el error que se produjo. Eso te puede dar una pista para encontrar la solucin en el resto de preguntas de esta lista. P. El juego va muy despacio, Qu puedo hacer? R. Selecciona una resolucin menor en el men principal: Opciones > Video > Tamao > [WWWxHHH] (escoge un valor bajo para WWW y HHH) Quiz tu tarjeta grfica soporta el modo 320x200, esa es una buena oportunidad para hacer que el juego se parezca ms a los primeros juegos de plataformas. P. Uso Linux con ALSA pero no oigo ningn sonido. R. Por defecto ALSA enmudece el sonido completamente. Comprueba el valor del volumen por medio de algn programa como alsamixer, aumix o kmix. Si otra aplicacin est usando el sonido, no podrs oir nada hasta que la aplicacin se cierre. P. El sonido en Windows en penoso! R. Dejando de un lado el hecho de que la banda sonora no es una maravilla en s misma :D, quiz el problema est en los drivers de la tarjeta de sonido. Comprueba que tienes una versin actualizada de los mismos y si no la tienes, actualizala y prueba de nuevo. P. En 8 bpp algunas partes del nivel aparecen en negro! R. S, hay un pequeo problema con el modo de 8 bits por pixel. Esos bloques negros corresponden al suelo contnuo. Quiz en la versin 2.0 est ya solucionado :D P. No he encontrado una respuesta a mi problema en esta lista, Qu puedo hacer? R. Puedes enviarme un correo describindome el problema a la direccin de correo que aparece ms abajo. No olvides adjuntar el fichero stderr.txt que est en la carpeta del juego. Contiene informacin sobre tu tarjeta grfica y el problema con el juego. P. Soy dibujante/msico/programador/productor/modelo-90-60-90 y quiero contribuir a la causa. Que puedo hacer? R. Oh, puedes mandarme un e-mail a la direccin de correo de abajo (si eres una modelo, es imprescindible que tengamos antes una cita personal :) ). Juan Carlos Seijo Prez (jacob@mainreactor.net) holotz-castle-1.3.14-src/doc/MANUAL_EN.txt0000644000175000001440000001321411177007633017025 0ustar jacobusersHolotz's Castle - Manual ------------------------ HISTORY: 08/02/2005 - Second edition. 24/10/2004 - First edition. 1. Quick Start 1.1. Windows 1. Unzip HC_win32-1.3.zip 2. After the extraction process, a folder named HC appears. 3. Explore into that folder. 4. Double click holotz-castle.exe 5. Enjoy! NOTA: To create an application short cut is necessary to fill the field 'Run in' the full path to the HC folder, in the short cut properties dialog. 1.2. Linux (source code) 1. Do 'tar -zxf HC_JLib_Linux_Win32-1.3.tar.gz' (without quotes) 2. Follow the instructions in the file README.txt under the directory 'HC_JLib_Linux_Win32-1.3'. 3. Do 'cd Games/HolotzCastle' 4. Do './holotz-castle' 5. Enjoy! 2. Walk-around To show the help in the main menu or playing, press F1. Th ehelp is not available during the dialog scenes. The first two scenes you see when you select 'New game' in the main menu is a dialog between Ybelle and Ludar, the main characters of the game. You can skip the dialog balloons by pressing space. You can skip the entire scene by pressing enter. You can switch to the main menu whenever you want while playing but then if you select the option 'Continue game' you will start at the beginning of the last level played. Said this, as a rule of thumb: if you want to save, do it when you just entered a new level. To pause a game and relax, press 'p'. Pressing 'p' again gets you back to the game. At the third level you can control Ybelle. Try moving it with the arrow keys. Try jumping with the space bar. The more you keep pressed it the more you can jump. The remaining time to complete a level is displayed in the top left corner of the screen. The remaining objects to unlock the exit of a level are displayed in the top right corner of the screen. When you collect all the objects, the exit activates (it moves faster) you have to move toward it and when you are bellow, jump to exit the level. If you find too hard or too easy the levels, try to adjust the difficulty in the main menu (Options > Difficulty). 3. HCed HCed is the level editor for Holotz's Castle. To launch it: - In Linux, run './holotz-castle-editor' - In Windows, double click over the icon holotz-castle-editor.exe Main window: The title of the window contains the file being used when you save the current level. In the left side are shown the icons: - Normal floor - Continuous floor - Ladder - Bar - Breakable floor - Object - Rope - Start position - End position - Enemies - Save - Load/Create story - Exit Under those, there are these indicators: - Level time. - Gravity. - X Speed. - Y Speed. - Jump amount. - Map size (rows x columns) Mouse: Left button: Draws the current object in the map. Central button or left & right buttons at the same time: Deletes the object under the pointer. Keys: c : adds blank column to the right Shift + c : removes column to the right Ctrl + c : adds blank column to the left Ctrl + Mays + c : removes column to the left r : adds blank row bellow Shift + r : removes row bellow Ctrl + r : adds blank row upside Ctrl + Mays + r : removes row upside + : increase time (based upon hardest difficulty level) - : decrease time g : increase gravity Shift + g: decrease gravity x : increase x speed Shift + x: decrease x speed y : increase y speed Shift + y: decrease y speed j : increase jump amount Shift + j : decrease jump amount With object/rope/start pos./enemy: Ctrl - Adjusts to map. Adding ropes: Select rope icon. Position rope in map. Without realeasing the left mouse button, press 'Alt'. Mover updown mouse to set rope length. Without realeasing the left mouse button, press 'Shift' to adjust the rope period. 4. FAQ Q. I double-click on HC.exe but nothing happens! A. Open the file called stderr.txt in the same folder (or check the console messages under Linux). The last lines tell the problem initializing the game. Find a solution in the rest of the FAQ for your problem. Q. The game runs slowly what can I do? A. Select a lower resolution video mode in the main menu: Options > Video > Size > [mode] Maybe your graphics card supports 320x200 mode, that's a chance to revive the feelings of the old-fashined video games. Q. I'm running Linux with ALSA but don't hear any sound. A. By default ALSA mutes the sound. Try to check the volume with alsamixer or aumix or kmix. If another application is using the the sound device you will not be able to hear sounds until you close it. Q. Sound under Windows is fake! A. Despite the fact that the soundtrack is not very audible by itself :D, maybe the problem is in the drivers of your soundcard. Get the last version of them and try again. Q. In 8 bpp mode some parts of the level are black at all! A. That error is fixed in v1.2 on higher, check the web (www.mainreactor.net) for the last release. Q. I didn't find an answer to my problem in this FAQ, what should I do? A. You can e-mail me to the direction bellow. Don't forget to attach the file called stderr.txt which is in the same folder as the executable (HC.exe). It contains information about your graphics card and the problem with the game. Q. I'm an artist/musician/programmer/producer/90-60-90-model and I want to contribute to the cause. What can I do? A. Oh, you can e-mail me at the direction bellow (if you are model we have to have a personal date first :) ) Juan Carlos Seijo Prez (jacob@mainreactor.net) holotz-castle-1.3.14-src/doc/MANUAL_SV.txt0000644000175000001440000001373511177007633017063 0ustar jacobusersHolotz's Castle - Manual ------------------------ HISTORIA: 24/10/2004 - Första utgåvan. 08/02/2005 - Andra utgåvan. 1. Snabbstart 1.1. Windows 1. Extrahera HC_win32-1.3.zip 2. Efter extraheringen skapas en mapp med namnet HC. 3. Öppna och utforska mappen. 4. Dubbelklicka på filen holotz-castle.exe 5. Njut! NOTERING: To create an application short cut is necessary to fill the field 'Run in' the full path to the HC folder, in the short cut properties dialog. 1.2. Linux (källkod) 1. Gör 'tar -zxf HC_JLib_Linux_Win32-1.3.tar.gz' (utan citationstecken) 2. Följ instruktionerna i filen README.txt i katalogen 'HC_JLib_Linux_Win32-1.3'. 3. Gör 'cd Games/HolotzCastle' 4. Gör './holotz-castle' 5. Njut! 2. Spelinstruktioner Tryck F1 i huvudmenyn eller under spelets gång för att visa hjälprutan. Den är dock inte tillgänglig vid dialoger. Efter att du tryckt på 'Nytt spel' får du se de första två scenerna där huvudkaraktärerna Ybelle och Ludar för en dialog med varandra. Du kan hoppa över pratbubblorna genom att trycka mellanslag. Du kan hoppa över hela scenen genom att trycka enter. Under spelets gång kan du när som helst växla till huvudmenyn, men ifall du sedan trycker på 'Fortsätt spel' kommer du starta i början av den senast spelade banan. Med detta sagt är en tumregel: om du vill spara, gör det precis efter att du påbörjat en ny bana. Tryck 'p' för att pausa spelet och vila. Tryck 'p' igen för att återgå till spelet. På tredje banan kan du styra Ybelle. Försöka styra honom med piltangenterna. Försök hoppa med mellanslag. Ju längre du håller ned mellanslag, desto högre kommer karaktären att hoppa. I skärmens översta vänstra hörn syns den tid som återstår för att klara banan. I skärmens översta högra hörn syns det antal objekt som återstår för att låsa upp banans utgång. När du samlat alla objekt aktiveras utgången (den rör sig fortare). Ställ dig under den och hoppa för att avsluta banan. Om du tycker att banorna är för lätta eller svåra kan du ändra svårighetsgraden i huvudmenyn (Inställningar > Svårighetsgrad). 3. HCed HCed heter Holotz Castles banredigerare. För att starta den: - I Linux, kör './holotz-castle-editor' - I Windows, dubbelklicka på ikonen holotz-castle-editor.exe Huvudfönstret: Fönstrets titel innehåller filen som används då du sparar den aktuella banan. På vänster sida syns ikonerna: - Normal floor - Continuous floor - Stege - Bar - Breakable floor - Objekt - Rep - Startposition - Slutposition - Fiender - Spara - Ladda/Skapa handling - Avsluta Under dessa syns följande skyltar: - Level time. - Gravitation. - X-hastighet. - Y-hastighet. - Jump amount. - Map size (rader x kolumner) Mus: Vänster knapp: Draws the current object in the map. Central button or left & right buttons at the same time: Deletes the object under the pointer. Tangentknappar: c : adds blank column to the right Shift + c : removes column to the right Ctrl + c : adds blank column to the left Ctrl + Mayús + c : removes column to the left r : adds blank row bellow Shift + r : removes row bellow Ctrl + r : adds blank row upside Ctrl + Mayús + r : removes row upside + : increase time (based upon hardest difficulty level) - : decrease time g : increase gravity Shift + g: decrease gravity x : increase x speed Shift + x: decrease x speed y : increase y speed Shift + y: decrease y speed j : increase jump amount Shift + j : decrease jump amount With object/rope/start pos./enemy: Ctrl - Adjusts to map. Att lägga till rep: Select rope icon. Position rope in map. Without realeasing the left mouse button, press 'Alt'. Mover updown mouse to set rope length. Without realeasing the left mouse button, press 'Shift' to adjust the rope period. 4. Frågor och svar F. Jag dubbelklickar på HC.exe men ingenting sker! S. Öppna filen kallad stderr.txt i samma mapp (eller kontrollera terminalmeddelanden i Linux). De sista raderna talar om varför spelet hade problem att starta. Hitta en lösning till ditt problem bland de återstående frågorna och svaren. F. Spelet går segt. Lösning? S. Välj en lägre skärmupplösning i huvudmenyn: Inställningar > Skärm > Upplösning > [storlek]. Ditt grafikkort kanske stöder upplösningen 320x200. Se det som ett tillfälle att återuppliva känslor från de gammalmodiga tv-spelen. F. Jag kör Linux med ALSA men kan inte höra något ljud. Vad göra? S. Av standard tystar ALSA ned ljudet. Testa att kontrollera volymen med alsamixer, aumix eller kmix. Om ett annat program använder ljudenheten kommer du inte kunna höra annat ljud förrän du stänger ned det programmet. F. Ljudet i Windows är fejkat! S. Trots det faktum att ljudspåret i sig självt inte är särskilt hörbart :D kan problemet orsakas av drivrutinerna till ditt ljudkort. Uppdatera dem och försök igen. F. Ifall jag spelar med 8 bitars färgdjup är delar av banan helt svarta! S. Det där felet har blivit åtgärdat sedan version 1.2, gå till spelets webbplats (www.mainreactor.net) för att hämta hem den senaste utgåvan. F. Jag hittade inget svar till mitt problem bland dessa frågor och svar, vad ska jag göra? S. Du kan skicka ett e-brev till e-postadressen nedanför. Glöm inte att vidhäfta filen kallad stderr.txt vilken finns i samma mapp som den binära filen (HC.exe). Den innehåller information om ditt grafikkort och problemet med spelet. F. Jag är en konstnär/musiker/programmerare/producent/90-60-90-modell och jag vill bidra till detta spel. Vad kan jag göra? S. Oh, Du kan skicka ett e-brev till e-postadressen nedanför (om du är modell måste vi dejta först :) ) Juan Carlos Seijo Pérez (jacob@mainreactor.net) holotz-castle-1.3.14-src/LICENSE.txt0000644000175000001440000003500411177007633016004 0ustar jacobusersThe GNU General Public License (GPL) Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS

3+ "Dñzrg}a{^x[xZvXsSqOlI}jG|hFzhGxhEvgEufEteDqdCndBlb@kbAlbApfCofCoeAlcAjaAi`AiaBjbCkcDleFkfFgcDfaBc`Ab_@a]<_[:YW7XX7VW6TV5RU5PU5QV6PV9QXM18N54K0/E+CO$CM$CN$CO%DQ(EQ(DO'BO%AN%@M$>L"=L" =M$=N";M":L"9L!8L 9L":N#=P&@S*CV.-O/,D#'A%@&@%?&A(B(C &A#><978;8 '63358;!965456~||#?'A(A%>"<!;!;!<"<!; ::977;I%L'A@== ?&C"*F&*C#&?!;9"=!=$=#<"<F < < ;; ;!;$=%?&B!%A $?"? =<A A!8-/>17*/ $%""!  QOK.L#>K">L"?M#?N#@O&CR(FU+BS*=P%9K"7K!7L 6J!6J5J 5K 5L!6L"'F#'B&A%B'C )D",F$-G%*E#(B +B&? < :8675212347(86777~}{xyyy|~;!<$>%?&?&@'@ )B"(B"(B!'@ &@ %@!$?!!=98 @ _8R,H"G!F!G!H"!H!"?!< ;!=!=%"<#<!<"<!="="<!<"=%?*C!.H&/J)/H(*F$'C#@"?CCCCH"J%M'5?7B*;=00 #     #O 99 *)(L%! *!8,K9aIbJ[EK:5*/&0'4*7,6*;,) $9(8 )O :P ;; ,/ #+ ) *1 $0$)&-!5':)-!.!/"0 $1 %& 1 $V?< +@ /-!0#N 9O :Q<1'2(0&- #> .M 7L 7M 8O:= /J7H 4F 3E2F2! -$4+5,4+2)/%?0< ,: +!! wj~cz]vZtVsTqQqPnKlI~jH{hGzhGwgFvhGviHwlKwmKujHpeDncBmc@lb@WmeBmeClcCkbBf_?a[;^Z9\X8ZX8[Y8^[:a_=a_;]]:YY5VW2RT2PR2NR1LR1MS2LS5IS3BL/"<!<#>&@%A&@'?%>$=#="<!<!;!<#>'@*B!+E$,E%-G%-H%,G$,I'+K()H%#D! C!J%'P,+V2)]8$\5"X1&@!*?%F(6?/$H 6* &  "+ A 1^F^E^F^GVB-%2(5*6*7+1&, "' / $6 (:,@ .*+ (0 $1 $0#.!'/!9)H 44%0#1 $3 &3'3 '4)/$>/>1:.#" J 4O 9N 9M 9, !0&3)1'H6N9M8L 8M 7A /F 3F 2E2F2F 3( %+$1+4-3+.&1'>/< ,= .$ ! #  tid{`x[vYsSqOmLmKnLlK~lJ{jIwiFvgCtgCrgBofBmc?la= i`;j`=ja=h_K/CP5FS9>M6FS/DP)AM%AN$BP%AP$AO#@M"?M"?M#@N%@P&>M$>M#?N"=N!8K#6L#4L"3L!4M#8O%:R) 6Q)3J$*H%(G%)G$(G%*I&)H%&D!&@)A*B)B'(B!> < ;!;!<!;"=#@!"? ;9747877}{yxwvvssrwy{}=:"<!<#=&?%> ;97568==;;9ABDEB D"B#="<!;"='@+E#0J'2I'-E"(A$>#=!<"<"=#>%>%>&?(B)B(B(C )F$*G&)F$%D!!BF !J%$P+%U/ U. J$A:89!7A13 &   " ,$A2^F_F_E^E^F@05(5)4(3 '2 &) % 0 %8,E6Q@F6@2. #*/#/". $=+L7K 52$+* !+ + !8 */ $0 %0 &2 %D3*!& % & G6F6P;9 *)+ - #+#<.S@S?R>N:9 )F 2E2F 2E 2%A 0      " + !< -; ,   ' {ri}awZtTrQpNlJ~kI}jI|iGzhEwgBtfBseBqeBpeAne@nd?oa>nb?Emb?mb>i`=g]R(7N%4M!3M"3O#7Q%8T+;U-9V.5M)/N+,L++J)*K)*K((H#&D)B(A'A%@; ;!;#=&@+C#+E()C&$?! ;98887~}{ywvvutsnrv "~# "'D%*F(-F')B"$>#<#>$> "=;:9878>? ><<;8>; ?&E")E"'A$>";!=!>"A#A'@&?$="<!<!<!;!=">!>"<"=#=$="=!=!>"?!> >?C!G!$M'&S,%O*"FD99 ;!>$>$=55%C0 # ( < +ZCcJdLbJ^GG50 $1 $2 %2 &0 $& * . #8*D6QA8^%KX!FB3- !0 $0#(-!1"8)2$'' - ". $4':.* "- "3 ''N 8C 2# ! 2'H7L9* )#" ' .#O;O:L8L 7=,F 2F 3G 3G 3: +& D 3C 2    ! ( .$+!"  D35@}rj{_tVqOnLmKlJ~kI}kI}kH{iFygDxhCvfBteBreAod@pfArf@sd@rd?reArfCuhFthGpeCmc@h`>hc?h`Z8:H+8F*7F)8E'6D&5B%3B%5B%6D%8E%?P(DR&DR%YER(JW.M\3LZ3HV/CS*CR)CS)BQ(AP'AP%AQ%@P#>N"7N#3N"3M#4O$3O$2R'3S*5Q*4P*.O+)L)&G"$F"#G!&D*B)A'A'@'A&A'A'A'?"=";!<!<"=%>'@%?;988865|}|||xwww|!{#!vqmnrw|~%A"(C%(B$&? :788 ;$> 'A#%?"!<9;==>@!!B$%B&&@$"< ;: = ; <=>>@>#<#<#=y"="?#?&?&@$A#@)A*A(A&>$>#?"?#?!?!>?!A$D'D'B$?"D!?"<%?'?&>%>&?)AB4./$! ( 0&8+R=cKeMcK\EG 5/ #0 #1 $0 $/ ##+!0&6+=0F6I8D53 '2 %1 $2 &: -G5) &$#&). $9,F7RAB47*%0 $9 *, !( /%5+A4<0A3OO#:O$6P%6P'7S)6T)2R(-P',H!+G (H"%H"$H#*D,B*B(@'@ &@(B*C,D.E .D!)B!'@$=!< < !; ;867777|zxwuuz{|" {"wqns%x$$|$|}<<876777789 : <!=A"EB$A!??@!>99;>; :#>'B"'E#$D" @@%>'?'A)B*C )C %C#?"="=(A,D.E!-D +B(@&@%?#>"="=$?'B.H%2L)3L*.H$)H!%G%?&>'@(C*F .F0H 1I!4H$D3#' .&5-7-@4aI`I_G]E5 (1 $1 $1 %G/ $) * 0&7+;.9,2 &/ %& .#7,=/8,dKYB."&$%(- !6)A2M=[GUC<.% ) +#/'3)7-=2I;V#DPBP?:-, "/ $(J 6J 6H 5($J7N3*,$F4C 2D 24 (  ! &.'8/A5I;*"!   D3-S#,Q!}xriz]uSoLmJlHlHlH}kF|kF|jG{kG}mI}mJxjGwiGvgDwfCwfBHwfAwgBygCxiFwhGvhGtgFreDshBriAof>me=ib;c_7_]4ZZ2WY0O_5J]5JY2MW1N_9Pe>Mb>I`;Da;B`:C_:BW6H)>J'=J'#=#="=!;!;7679 ;zxwutuvw x!vponmrx{|$@""> 9878998:!; ? A"@!A ?B!A <899=989!; :;<=!<$=$>%>$>#>#>#>$?'@,C.F"1H%2I&0G$+C&?$?#=#>%?&@&@'@(A)C ,E".I#.H!*E'B)E+F+G/G2I!5K#5K"2I!:.+$0(3*6-7-?1XDaI^G> ./#0 #2 &? /XA\F1'6,:.3'/ %* &#( , "0 $5 (P ;eJ]DA 0."%( - $8+B5K/J8UBR@A0)- "&&K 77 )( ) * M:=1.%/ $D 3C 2E 3H6,"  ! %+$2*;/B5D7  E$30S#.P!~xri~avUsRpLnJmJmImJlI|kGzjEyjExjExkEvjEviExhDyhDxgDygC{hCzhC{iCygDvfDueCxhByjBwiBtkDpg@kd=fa9`]6^\3ZZ1Q`7M]6J_5H_5UY-UZ.U[/RY-NW-MX.NY2PX1MU0HQ+DP)DO)IT*KV*JW,JW-GU,FT)ER'GS(IU+IV+FT)FT(HU*GW,FY,?W,=X*=S%@O"?P"?O"=O% 7P&3M$3M#2L"1M!-H*H *J!)L'*N)2I!1F/F-1I 2I!1H!-E +C)B'A&>%>%?&@&?%?'A(A$>"<:6679 ;"= ywutvvqrstqlklikosvz:; ::89: ; <:8>?@@?BA?765679 ;"=$=!<$>%>$>$>#=!<!<">%@+B-E 0G#0H$.F"*C&?$=%>'@*C (A%?#>#=$?(A+F +F)D'C(C)C)C,D-D4@ & & -%-$' % !; ,U?W@? .2 ':-J8[EkR4H78+6 (0#I 66)1'/&.#, "/ %/ $D 2fJgKaGN;3 &) + 1 &8 +:,;-9*K 7YB? //%+".$0'2&7)?/B1>/1 $' %#E 2) ) 7 *, "G5-$* 3 &C 2D 2E4E4 #+"-$*"& % $! J756U'4S%1R$/O 3}xoi~`wWsRoMlJmJnKoLmJ|kHyiEwhDvhCwiDzkGxkH{iF}kG~lG~jG|jF~jE}jF}jE}jD|hDkD}kC|kCxjBviBsh@me=ib;fa:b_8]_7Uc:P_7K^6I`7W[/Z_2[`4X]3QZ/MW-KS,(GR*EP)HS+QZ,O[,MX)LX(KX)HX)FT(FQ%FR&GS&FS%DQ#BQ#BQ$AW+BZ.B\0?[.?V)@O"=N '?*B.E!-F$)B!$> ::6679 :xzyyxummmllklnkjnqtx ;98667;!>&A"#=:??>?=<<7#6569;:!<'B"+E'-F()C$(A)A&?$>"= < <!<%>'@(@)A)B)A(@'@&?'?(@*B+C )C'@$>#="=$?&A%@%@%@'A'@*B'R:! & ' & % $ #?/WC:-4(N:gLfKeKeIM 83%3%, bF_FB48-3)1&1%2 %C 2fKhLiNiO]F+ ". "2&5'6 '4 %K 8cJ]FL:3(*", !/ $1%1#1$2 $( 5 (!   ! # M98 )'$"'< +B 0B/C 1E 2* !,#-$+#( ' ' , AC+2Q!1Q!0P.O/N8&@&B(E*G 5L 8N!7M 3I0F.E-G-F.F.G-F,G-G1J6P$:T);Q'6L"1I3J4I7L:N9N8L9M:N9M9L:NU$:P4M1I0I/J)P (O %Q"$T%8M9P;P9P5M/I-H+C*C+C1I6N-4N4N3M3N5K6K7M:P"!< ;8779::98899;<B"B#!C%%D&!>!:7 67879 =!>!=">&@+C)B%@$>"="=$>&?&>'?'@(@'@(A-E"1I'2J'-F#)B'@%?#=#>%?%@&@'A)B,D-E/E: +%##% ) *".%I9P&?%>#="=989::9:!<u vttstpqmjggjijjmoqu$?"%@#$@"$>!$>"%>""<8679;;979?@ @" A$&B&!=!:9:;;<"=!#?!$A!!>< <#>)B)B&@$>$?'@)B)C 'B(@'@&>%>%>%>%>'@'@%?%>$>$=&@%@&A(A*C-E.G 0I"2J#Q1<*#( ) # "!*> .T X.&A%B&C'C)D)E.G2H4I6K 8N#9P$6N!2J/H.G.F-F.F.E-E-C,B0H7K8MRT#=R!:R!6Q4O5M8M7K9M;P" :86)89:99>?>=> %@%"?" < <;< = #@#'B&&A%%B" ><">&?)C (B&@%?'A)C *D!)B%?#?%@&>%>$=$>'@*C-E"+D *B(@&?(A)B*B+D*C+C,E*C)B)B)C*C@1-%6*1(6,-$'  $+!F 4P :A/9*D 1Z AdI&D 16 (7 )0 %I7nSoRmPiLP :5 (7 )>/\EkPjOhLdIO :5'6 (7 (6 '3%6&Y @` E` FaFaGL74 &3 %2$2%1 %4 '+ 5'Q ;K 7; +$"&+*+, !2 $G5F4D 3% & * !A0?>-,P#-R&0X-0[/0Z,0U&-S$.T&1Z-:[12L&0I"-G*E(D(C-E;O:N 9O$:P&7N"2I/G.G.F.G.E/G0H.H.K/N3S;QASCUEV"DV"DX#BV ?S=R;P:P>8P7N6L8N4S"3X(1X).Y)*X);O:P8O5M4M5M7O9N9M;OR!@T#=T"9P7N6M5L4N.M/F.G0I1L0K*F.)G-'M0)R3)U4&T1+G$.D /G /H ,I-K!1Q(8W/:X25S,0M',J#,G *E)D)D%J!%H $I &D'?%@%?!;6!78:!; ;:kkllo!p !m igeccfefhjnqu#@$$?""=!"< :989::887=??@=;#B%#A$$A%"?"!>!>!:987:<"<%@(A<'@(A)C)D )B&@$>#?#?">#=%=$=%=9%?,D!0G%0H%.F#+D (@'@(A+D!-F#0H#/G!1I#3J%3K%.G +D+DD60)!.&5+<1:07,<00(- !; +.!(/"- "2 %1 $F 3\C_FI7</7+1%H6hLmOkN^CB 0: +7*B1jOiNgLfK; +5&4%4&4&1$*R "+F,I,L )O#)R&&T($S'!S&!T'"W)%\,&_0*E)D(E'F&F'G6K=P=Q4I/G -F,H*M+M2I5J7N8O9O:O=QASAS@R?R>Q>R?S?T"?S=RW"=R;O:N:O=Q>S"=R ;P9M7L6L7M9M:N(A .H&1I).G&(A%?#>#>$>&?&@%@$?$?#=$=$=879'A+C*C*B)B)A'@&@'@+D%.F 0H#3J%3K%2J$/G ?0! &,#-$+!% 5)' O;7 *.#.$/%3)9.=1>1F6[C=/5() 0 $? -aGmNlNjM^ ED 19 +;,7@ 0[CfJeJC 05&5'2%'9,3)1 (cKdJeKgNA4:.7*5 (4 &3 &? .O := ,P :R U !(A%+D((B& ;"97679? E#F%F$E#D$A#1P6.M2)H-%J,%E(#?#"=7658'@/G&5M-4L,-G%%@#= <!=#?&@(B'A$>"<!; ;6678$=&?'@(A)A(AG*C -F#1H$1J#/H!,E,E,E-E F73!" " !# '.%2)gL`E? .2 &. #3(8-=1C5O>P>E6<0. #: *4'E 4mOlNkNY @< ,8 (7 )9 *1 &?5XH\H@57 *0 &- , #*,0 4 . *Q@`GaGC26 (5 (3 &0 #A /Y @Y A; +M 9Q ;Q ;Q : =,+, !. #9+O8K.12B,E,E*E *D+D,E*E(E'E&F'H&L"%M##O$ Q%R'[-&C&E&G%G"H+LQ?Q?R?RR;P9O:O 3Y$1\'/Y&1S"/V&>R@U!DY#DY"?W ;P7L6L7L6J5J6J6L7L8M8M7L6K5J5K6K7K9N9O9O3O 1H0I1J0K+E7*G5(F3+@.,B.,C++C*+G(,H(*G$'I %J!&M$)P'*Q)(O&)J 'F)F)E'C&A"K!!O&(E+D-G"(C#> :!;&98656_`bd ed_]\[\\_^`chlp!r%A$&A$'B%(C&)B&(B%%?$!=# <": :8743/589<3O56Q75P54M11I/0I.,E*%?# :99#?%@&A$@"> < <"<"=#>%?&@'@'@&?#>889::9:'A'@%?$?#>$>&?'@(C)B(A](B(A&@8)! $ % $ # $ + !:.V ?nQeJO;; -/ $/ #4 '9 ,B1>/?/6*=0:/2 $-!M 7fImQ]EA18 *3 (,(.+2:27NK+1))* "0(1.32PUFO! '- 1MAX @@ /4 '4 (6 (; ,4&X @X @= ,I6T?T>RQ?Q?Q@R@SAS@S7M3I3I5J6K6M7M7L7M:O?TAX E[%GY$FW"BT>Q=Q>Q@RBU?UR!@U$AU$>S!9N7L6L8MR"?S#'@T#;W%7L 5L 4M!4M +B7&=2%<.&=,'=+'>)&?(&B&&D$&F#'H#&M%(O&(R()Q)*N&)K"&H%E'E*G *H"+G )D'E"Q()D/G"0J%0I%,F!)E&A!= :8766]]]_ `!_ ^[[^^_adijk9:; <:976665433!3347:9Q6U<;S94M3.F+(A&%>"#=!!<$?"= <;; : ;"<#=#>$>%?(A-E#/G&'A$"<99 8787$>$?#>%?'@(A'@%D%C&?]&@#>F+1& ! " "  % + !5 )K 8pRoRjNYD=.. "2 &8 )< ->0<-0 %. *$ ',#D ;TKT@> .0% "  KRGN68 #! " &",-5@BMUGN& /#'N?6 )6 (O:V>> .4 (> -Q;M:F5WBV@T>S=1 $/ #K8&D0G2H2H1H/G.G-F,E-D,E.F-E-E.F.I!1M%2O'.O&)J!$G!DC!4O"0J,D3I=P>Q?Q@RATDV!EW"BU@S>Q9N7L8M:O:O8M7N:QAU"G\(J_+I_*EZ$BT>QS>T!!<9: ;"= < :"<#=%?'A*D!+D")B%?$>:9 ;#=!&?#%?#"= 989:'A)B,E"0H&/H%*C %C#F#D%@%> H4.!" % % $ ! '&-!F 4mOpR@mPS=8 *9 *; ,; -< .7 )' "$ *  "  (1:<@1 +7.08*6 &7:T[EK9<+4"( '#-#-3 /E3S=U?8+ORATBU@S SAW"E\&-BZ#?U>Q=P>Q@TEW!GZ%FX$DW!BS@R>Rd1;]*CUAS>R=S;P8N7N8N;P?T"CV&CW&>Q!9M7K6J7K7K8M9N;P:&@9'<5*>4-C5.E5+F2'F.&F*&F&$H&#N)"Q'#S()N$+N%,P(*O&&R)$V- ^2]2!S*#O&&M%*B)B&@&A(C+F!.I$.I%*F!#<868 :[[ZXYWW XW#Z"%\$$]#ZYY\`cf<:987532226:$> &@!$> "<;:85M22K..H,,E**C''@$%?"%>"%?#&A%&@#%A"=!;!<$>%>$?$>">"<!<:77:"<$>!#= "< ;;9768#=$>%?#>#>#?#E%F&M%%M%S%=< ,/ #   ( +3&H 4kPsVtWtWeLH7@2A2?1< -1 %"IHJQ/ 5! + & (!*'1"+/1.2%,) (2:?GDJ:@+3 '",! (+ 4KSLTMUMT7?? 0XAZCA1VA\FC4@2T@1';-O;OQ?R@S?S>S >S!=Q9P9O9O:Q;TP@RCUDW!DV AT?R=Q=P =P:%B:'>6)?4*B4*C1)F0)G.*J.)M-&Q,#R*#O%$L"%M$$T)&Y/%a7'c8*]5+V.)O)%I##G!"F &?'?&?&A&A&C$>99599VVW!Z#Z!"Z X V WUQTWWXWWY\a#>!%@#&@#"= ;74434489 :999:989Q66P43L00H-+E))B&&@##< !;:89$=$=#=$=#=!=!<!=!;987 88 :$>!'A%(B&&@$"= 968$=$>N$?&A)G'I! U.0J4D4@1' "# * - #6 )? /dJqTqTpTeLJ8=.< .9 ,4 )&">CY^OV7@ )"" $, 6#=3&1+5190: '%# -. 6GNKQLRMRLS/6, &: +J60 #B 2N;?0?2H9>0.$5 (S>$=%>'?)A*B/F6L5L 6L":Q'=S+>S,;P(4J!.F*C)B)D,E,G,G"(D!%C!@=BV(DW!?R=QP@RASAT@S ?R>Q>R@SCTBX"@Z$;Y$8W!4V 5Y"AS>R>R9O:P:O;P;Q$=<$@:$C;)A7-E80H8-I5)G0&F,&G)#N+"Q+"Q(#W,"]0#W+$P&%I!&F%H $H"&J$&K%(H#+C .F#0I%.H$*E&B#A"A;89: <UTSTRQOMLKM!Q$U" UUTUVZ:#= $=!!;86566)6:#>%? "= ;;!< ;;=U:;T86O42K//H,+D((B%$?!#< :99$=$=#<#="=#="<#=$>%?'@ '@"$? ;779 :#= #=!#= "= <959$=&@,E"2J(6P+*X4,P3I7?0?/+ !&- 4 '4 &/ #H 5pSLpS_HF6A3?15/* ., #* #9>\`__SY7A8A! * $ # # %- =*H.-R;"H:B9>5>0<# -(- 7HMLTKSLROP. 5% *.! %.%6,;2=09.3'+ "J&6%>'?*B+D-E*C8M!:P$:O%7M!3J1G/H.F-D,C,D-E,E,E!,F$,G%)E"&B#@#@?R>Q=PQ?R-?R>R=PQQ :N7M6LD7L7M8N8Q6R"1H0G&;=$==#@<"C<#D:%?4'B2%B0$E/%I/%K.$O,#O)!R)Y+'@&A$A#B!C"E$I!(O(,R-.R/-M)/F$/G$,E!)D'B&A&C#A">$>(B#,F(+F'&B#RQPOOOMJHHGGIMNMPRTW787&66468; "%? #>!<:999<BY@>W=:R96O42M1/I-,F**C')B&*C(*D((B&(A!%>";#=&@(A(A%?"=::9988T77776649#=&@)B&M'#Q/C4/ ":,=., !!  ' ) . "6 (6 )4 '+-"N 9kQtWaJD4</704:AHIB9 /<;TZ\`a[IOOWMS.5! ) # % 0 9'B +L?(QA!M:>,$I/*P$= 0+5DMQXOVLTMO8 2;+#& "$ *"/'3(3)9.P>H6&>%>&>&?'A!=+D3J5K6K3I0F,D*C)B'A!A>!="="<"=">&B,F#3M,R>P?QASATBUCV FX#J\(L^+H]+C['R?S=QQ;O:OS >U!A&A?$B=#E;"D9#?1"A/!F0 I0"M/#M,#P-#P)"Q'&F'@%A$A"B"D"H %L%'R,(U/'P*)A&@$>%@%@&@&@"=">#>&A!&?!$? !>PQ Q"S #U$$R"!N LIGDCDFGIMOQU:;;:95467; <"'A#)C$)C%(C%%@!!=:9A[@>X>=X=:U:5O40K/.G,)C&'@$$>""= :9 :!;!;#=#="=:9998999l876679876!<#=%?"L)E50 %* & 8 )$!", "2 %9+:-<.</:-I 65&0$P RV]a^]QMLN\`QX;B+0, 2 %: /A@1;88!0 E%H68/* 2NUMULTQS1 (V?J7-%( % ' -%3)3)8*</W?&?%>%?&?%?!<8"<0G1H3I4J3J1G(C!>=?ACA< :!;"<#>%@;O:P;O;PR>Q=PP>Q?RATCV @UQ=R?S=Q;O:N8N :NR!V&=U%;T#;R;O;O8O8M8N"6N7Q8R2I/F&9A&;?%??&B>&F?&K?$H9%C2"F1 J2#M1&O0)U3)Y3)W-*M%.E /G$.H()F'%G #H $K$$N($Q*#K%%>$>%@%A$@!> :99 9!; ;;JLLO Q! MIGEBBBBD!G JKKPV%@# != =#> $?" ; 768879;;:98<C`E@\CA!A !C"!A! A!C"!D#!B# ? <9899= @"!?" = ;77!=%?K:) 0 $%1'+#<.B 1W?< .4)6,6+?0J8R>I 5(1 %J 6S=; ,5 )<>LTQW__OT1;BLW[H_<OLL^`\`TZDL82,> JE7,4$3%8!>=5<"87?0:BLLTNR@ 4C 2H7+") & $'* / $5)A2WA)A'?'@&@!< ;!;!<0F3I1G,E&@<<=>@AB> =;?A;O;P:PQ=QR;T8W8XDVDVCWAV>Q?Q>Q=QQ%E>&G>#J<$H7"G4$L4&N4(P2'S0$R,#P'&H )@(A(@!(?"%A#D!GH K"!C#<%>'A*E",G$*F$&B!$A"> ;!;"=!=!<H J!L P#/ IFEDA??==?CEGKO#>!!=; <&@#(C'&A'="988> ? =;:88:B!FcIDaG@^C;Z?8R76M31J//H--F*+D('A&$>""<*B"u&C#%G&#I'$G%'J)#I(&M.+O0+N.'L,#J)#I)%G("A"=::989=<<!;!< ;%:"M:5)H6/ #$  % * >.G5H62 &) )+- #3 %9 *@06 ), ". "9+1'9-464??GGN@J( 14CA#\(,k#9]6'Mf^`cdc^ c*!S>UHOJ9</AeR+DMFM3 0; -dK[E1'( #$'+ 2 &<.L:9=#+C)C!)A")B#*B#(B#)B$/G#5K"*D">!=">#>"??>>=;;<;<>R?T>T=S>Q=P?Q>R;S;Q>QATDV!GX$GY%DV!@T>R?S>R>Q%?>#C=$E<&G:(J:*G5,H2,E-*C'+B!+B+B+B,B",C$*@$'?$&A%B$@#A!A">#<$=%?&A&B#?#@#@#?"<";"=$A &B"'M$)O')S*&Q)#M$ EC@A?>?=> ? ABCEG7878:<?"= <;< A$F*%E%#B" >!"?"%E''L-PmUJjPEcHCZA?V<=T;:Q75N24L22K0+E)&A$%@#-H'/I)/J*/H).K+/R10S3$L+!K*I( I("L+#K+ G'A!<:87:;Q889!<?55F71&- !_EY@+!"#&- #> /. #'*)+0#7 *C4R?J:@/- #' 6*454A@!L@L<G% ,#2'@,[])dZ#_U\3G%63?". 'TBfRaKD3- #%' ) / #7+B2R='>#<&? )A"(A#*C$,D%)D%&B!$>!= < <=>;;;;<FY"I^)I^*F[&CV BT?R>Q=P:Q:R>Q@SBUCU BU?S=Q!>R?S@T@S?SAUDW"@^)<`*FXEYB\ EYGXBU@RBTASAS>Q=P=R:O>)<:)>6*>3+@0*@-(@+)?&)@#+B"-E&0H(4K,:O3;P67L4/E/(C'A(B*B'B$?"<!<"<">#>#?'B!)E%*E$)A"'@ $>"> =CDFG "C"C 'E$(F%$C" ?< :;= > ?@??6788<=> B%$F*&H,L/!G("B# A">=@!G'LlSJhNH^FG]EF\C@W?<?C"C$A!>><<;03(O0. $<1B <='HA)NJ'TB#P*C/!=!>#@'D$)D$(C"$@!=<!= = =$BUCU EV!EX"HY$GY$CV?R>P=P>P?TCUFX!HY#GX"DV@R>Q>P=Q>R?SAUBUBU ?W 7]%BU@TQ=PS>T=S8W=P=O:N9N9M8M9M:O:N7K7L8L9M:N9O9N:N9N9M:O=Q?S@T!CV#CV$?T";O7L'9E'9A':?(:<';8(=5)>3*?1,A/*A,)@'(A%*B%+C',F(.E++B+*@,&<+%@%?&?#?$?#>#="="=!="?#?#@"="<#<$?#?"=BCCA><">%B#&A##> <967:">#A!@ >@:="># =!;= @"A$@#?!> ?#E'I+$F'%E'"C$@ C" I(PlSNcKH_FE[CBX??V<8O65L20H..G,,E*)D((B&,F'0K+5N06O35P34N16P2(D#$E$J'I&N)R,U0V0J)$L-*P1,P3+M/'G)!B#> O&=]FP;. ", .!+!(F 3/#(&&+ 0 %8,B4O=M;B2/ #*3 ': +A0E 3C 03%/ %0)7/061<2=#=C 56.Q ubh[@QB"hXd]#h>'^l\x-rdB(@4;Cdh ;CB 0/:SXTYG\L 2"19#* # % %-+?4H9/%- !5 '7 *7*8+9-1)R/A&A"!<::"<$=%A!'A!'B"&@!%@$@'B"'C#'A!$> < < =#?$A#? =Oa/HZ%CU@R?R>R=Q=PQ?TASASBTAS>Q=P=P>Q>Q=S;V8X 4^&@S?SAVGXHYFXDV?R>Q >P>Q>R@TCWDX DVBT?R=P;P:P;O;P:OS;O=P=Q>Q;Q9P8O7P4R/W#0U 1S7O8M9N:N;O;Q8)?4+@1-A/-C.,D,+D++A*)B(&C(&A'(@))?,'>.'>0(A'?'@)A&B)D +E!)C&?">">$@'C!)E"(B %>#=!=<;@AB=<:"< %>"&?##= :65579;::988:::;<=< ;;;I(B"C# C$A"@ ;OeKKbHG^DB[A?X>;T98P63K13K01I./G-.G,-F+-G*1K,2L.4N16Q37R47Q5%A"#@ =C"]5h>iAc?%R3#O0$K-&K,'I+*F,K'=@1C3I:ZCI 5, <,$) & cJ]E= -0 $* !, "1&8,B4N?Z FXFD6-$7 ): +; ,9 ,3 ,B925!)/ +4 .* 1( 1 31 0!PVe``{\:W5&fE*n);ecv)sc67C-QOr m;G*S,O! :1=JRMXC @ ! " "  " $!+32J;XED68+($,!- $2'O(>%>!"< ;";"<%>'@!(@"%@#>!= <;;:: <#@%B!%@ ">M^,FX#@S=PQ>Q=O=P=R=SP?Q=P>Q ?R@SBTCUCVBU@R=QS =S =T S".>I':C'9@)<>-?=/B+%<,&$>%?&B)D!+F$(A $= <;;<@?A;;889:987557;;:::8879:9;=!A& A&?#= ;A"D$D$D#"@ #<"=RgOQhOLcJG^E@Y?B^B/O/,L,%F& A!? M+ f@#jE$X8N/:8:F%;=2*$& .%0&6)+ ".""G 58*$L 7kNcHN:;-1'T7+?4H8I:E6?1<-: +; +; +3 -,4HR:"U$:'4030 3.3 / .=!RAbdXt[cvZMV/eT]m |%i*cX!b zm:I. 72E<'!_-R,' # "%('-?3O=\HUC@1( 4 &5(. " $ * !J814("<$>$=$? #>#>#? $@ #>;999:;;;AT@R=PR>Q>PR=P>P=P>Q@RBTCUBTS>R>T>S=QS G&8C'9?':=*=<-@;/C;0E9/F8.D4*E4(E3'H6)G5&E2$B.$=/%;/&<4(=7+C)A(@%?'A)C *D 'A#>"=!<"<">M!; ::;!=#@#A !B! ? = = ;"<#=!#< !;865668;<> >? > = F&B#=<= B$B%@#>!<:E$A!<!< ;;OfMLcJJaHF]DAZA=W=;U;7P66O55N46O38P4Y<=Y;;W97T79U8;[=@^A1I1L0?L'>I9E4B2C13 ()    %' ( $ !"C 1mPmPeJT>8 *+ 1 $6 );,=/>/Q=I6< -: +F4 ,'00>-H 85(4.8+51 6 ,? =JQ\o\ajlgsT[ y&v'w"{Ãc!2O<%g5&h [&>$ ) ' *H1\(U<-"% '. (:-F6K:I85)2&8+A3M;;-3 ') !.#9-0&?0H%8 99889988889: ;!=<RATDV DV!CU CTBS?R>QP=Q;RP@R?Q@R?QQ;P>RBU"CV$AV">S:Q9U :V"9V"9T 3U 0W"6Q:O;P:P;P6N7N8O9M0@H->F,>E+>A+>=)?90,A8-C7,C5)C4&?/%>/$>0#>0$<0%<2'=6*><,A@1I$.E!,C'A'A&?*C-D.E#>$>&@'A%?"< :!:!<$?'C#)G''F&%@!>=89!;$>"&@##= ;87898<> @"A#!E&G(B$@!> @#A$? =::@!"="<"=!<NeKKbIG`FE^D?\@=]?=\?;[>:X:;T79U8=[<@^?B`AA_@>\>;Z;GRBT4HK/A&& 0 $2 %1 %1 $/#$c #$ 1'! " && * !.#2&+ F5pUt Ys XnRR=5&4&7 )9 +:,> .R/A2A3.&2'6)>/?1I7C45*-%8-A4=/4 '6)<(0@?=<<>=;!;"=!<Q>R>Q=P=Q?Q@RASCUBV@WQ>R=Sc;S"<!<!>"?#A#B"#A "@!@!A >=<<<;:; <!> "= "> "=!<:<=9;;A#C&!D'"B&!?";:98!<"< =!<<NhMMgMKhMIjMEiLAfH>dE9aA=Z=:W::Z:9[;:\<>_@@aB[KPN3E=09@2;A2=  - "6*9- 6+-$  % <--#.$0'0(1)3)5+9.;.O FFXT iQ d}Å ĄʈʉNJʊ̌}}T!7%c7"`4^1 ^-T %!). *7 )9 *;-9+*!+!,".$0 %+ !$"( , "3(:-@08 *! .$H 849/B B I&P,N+M)J&I$E"K&>Q@TCV DW!BU@S=Q=PAR>U=VQ?S?T=V /g0-f/-f-+i/.d,@RATCTDUDVEWGYHZ J\"J\#HZ#DV BTAS>X6`'7a(5a(>Q7%=4%=2%=3%=4%>7(=5*?6*@7)>7%:8#89#8<%9@/G!1I$>R%=R":O7L1H.F/F.E%?&@#%B&E#(H&)I()M,*P.(N-#L*"C @B C "B!#A"$B!!?><< @ "E#!C#!B!!?#@ #? =<$>:7689; <;99"=%A#?"@ ?QiNLjMGjKDjJClMAlM?kK>gG=aBK9 2 %r1 %2 %   ! %("(#'_GU>, "' & ( + "0&8-:.R=cImPlPkN^ DC 19 +;-<.;,N9`FB 0: +6)%$ ! % 3"A.)K5.V0*R*= 9"$H7'h3n )Q !B+6q,=n 7SoȊ̊ ы Ӌ ы ӌ ԍ Ӎ{[ :5D#UD?*S0P5B =3Z3\2\3^7#a7@/3+02 +7 )5 ), $# ,$@2*#' # "#( 0%7,A3L<@3D6&$( ( H6D$7I)L(M*O,!O,!M+ J(G$S?S@W@Z$@](>a+;b+8a)5`(2a);Y#EX"I\(8s?1t?.o8.m71k55d0DVGXEVHYJ[!L]#J\!GYDVCUAT,AX;`&9a(7a'4_&3^#4Z!4[!:Q='>7)>7)=7(=7'@8)?8*>:*?:'<:%9;$8=$9A';F.G 3I9N6K4J3I/F/F0G$$?"="> ? B"C!!C!D"J&M(I$F!G"K&"Q-'Q.+M..P0-N.%H(!C" A! F%!F% D"@=:::'@(A'@866887657!>&A%B$B!@OjMJjKEjLEmNEqPDqRDsRDhJBcEB[?@Y;CY<_MQ_7Q^8Q]6P[3N>09@1;F5@Q0S>^FD3< -0 ,! ) $*4;(@,A"A.:;)!Z!C|To?^)_43z8)m-:ZΌ Ӌ ֍ ؏ ڐ ܓےю {XL0009@B??*X7\3^2]0].E- ,&.)/5.,/- 0 & [FR>+ $"% ( 0&8-?2H9Q>K:5' < ,= .; +@5'J0O+M(H%G$E"U?VATBTBVCVBV@V?U@U?W @W AVAVBW;[%7b+.n6*o7&r:)p80d,5`)CUFWGXHYI[!J[!IZ!HY FWFXHY!J\%Ia*Df0@d.;d,8`'6[#5Z"Q@T"CV%CW&AU#=R:P5P4N8Q=U$EY*G\-G[,6LT2IQ/FK-DF-CB,DA-C>,D<-C=-B=/D@0IB1HC1EB-A>+>>)=A*>E,?J+>K/G!6L8M7L'3J2I3J4J 5J .F (B $E"!D E E I#J%P*S- L&K&J$K%M(M( I& D#C"B ?@D!B A=;;<&?&@&@&?%>65555457!=#?$?#?#@!@ @NgKJfIEnNEmNElNFmOGiKEeEDdDCZ>AX;\BMB5=T2JZ4N[4OZ3ME2?F3@H5AM9N9C 0#- ". #$  $3*D6D76-,%C5eLcJ[CH5/ $( -"3(^D4_GXBiOpTaJH8B4?24(1 %D 2XAA3<3<?;C' . #4 ;,>3?(<2!<8'R@r`o`g05\C:zR-tR#k$ӏ֏ِڔݔݕۓْӏ!(vf/O *A %?'G"*S'L D-`=,g>,g;(c-#`!J& +# ,$ -) ,( ,7<.4( +E6^EWA>/0%+"+"+".#5(<->/: ,("% !@1C4A2/ $=2H(I%H%F">R;R:R9R:S9T;T`&:`&9a&8\$9X!R;Q9O8N9N8N9M8N9O=P>R?S=R:O8P3M6L7M8N9O2P '?I(?G(?D'?A)@?)@<)@:)?9)?:(?9)>8)>:*>:(<9(<;';?(:D( AC E!I$J%L(R-"V1&U1#T/Q+O(R*K&B A C!@ C"C A@?!?'A,B-C'@&?'@'@#>7/69"?&A%@%@#?!? > ?@NhKLgIJiKFlMGnNFmNGhJFgHDbDD[?X>N@4HV7L]8Q]7PI5BH5BN7FL 7M 8L 88 (*) B4N>D4C2&8 (aF` F-^ ES <$*/",!F 3_FYAZBfL[DD48+3 '1 %3 %4 &8 *1)?=C#KC#N<E'21:'7+6 23?3A3OBXPQ4O^LbtTSsRAtď֏ ؐ ې ݑ ޑސݐ ېےג (I$9 .H-N*0Z")O)J#4l/&c'&a*e7$ -# ,& ,6>2; #6 ,[C]EWAF4, !$ %+. "0 #0 $."!&(< ,< -< ,# @/K;(E.M)/:S:R9S9T:V;X;V=SARCV FY$I]'I^)G^(E]'D]%D[%F[%I]&M`)Ej5Ck6=l68j25g03g.4f-5d+FXFWEVEVFXJ["M_&N_'M^&K]%I["FYDVCVCW?[!:_&;Z!=RRAU!BV#@T!=R;Q%;<'<:%<8%<6%:6&:6(;6)<8*>:+?=,?>)>@(=C(;F';I';K&9M3H6K3I1H0G1G2I3J4K 2H0F&?#C!!E"G$K%L)N+R.!Q,%Y3%Z4 Y3W/V.U,Q*H#@?A D#D(C,D.D/D0F1G*C)B *B+B#>::#> -F$3J'1J',E!&@#> > = >NhJMgJLiLIlNIoPJpRJnPImNKeJ^DTD;BH=CJ>EP@JUDQV?N[QQ=S?Q>P<. " !"0 %:-C4G8B 0L 7:*] C` F` E` E` F> ,1$1#1#F 2hK` GY @R ;O :8 )2 %5 )@2@32&)%'*0;:"EF(RH*S:!E/8+<*8(3/ 2 = ='Z 9FZEhM'QX7ed$q)wЎ َ ُ ڐ ܐ ݑ ސޑ ޑޓܔޔd >6 4C,B&A!;0 @$ZLrMv@% +% -' .-5=CFM5=(": +[C[BZ BY @N 8"', /"/ #0 #* !%-!;+< ,< -< ,: +; +< +A!6'9T9T;S;S:S9U9V;S@RCWEZ#F[#EY!BWAVCXG[#I]&I\%GZ";d-9e.6f.4e-5b*7f/=l5Cl6Td+P`'L]"IZHZK\$O`(O`)K]%GY BWAT@S@UAVAV@T>S=SR=?R=P:N4O-P/N1M(=G(=B''?(@(@'@&?$>!= = <!>!@!APiLMhJLfIJnPJqQJnO NqRgU]H@EKBHKAHNBJRDNZJT_P[WJS[JUYGRiF]O:N9 M 8L 7&&')* [CC 2]EbIaG.aGK74 '3 %3 %@ /cKoSpTYCM:< -: ,: +: ,: +- "/ &*..86@:D6@)5::97:*J ?5=xDs KT W`jx ڍێ ۏ ܑ ޒ ߓߒ ߓ ޔے ّr] SsL L@ 3; 6"B;`>hA#.# )55AAIPJP,15 *> .YB[C[BZ BZ A; */"/ #0 $$!&5&> .A2B3A2> .'< -=.< -; +:VY#>W"=V;U;S=R?R@RCVG[!I]$F[!CXBWBW CVCV4k5:k5=i3;g18e/5i36i3>b+IZGXFWEWEWFXFWFXEXBVAT?SASBVEYHZ$IZ%HY$EX"CW ?T;P:O ;O:N:O;P:P;P;Q>QR;P5Q5S!8U%9R#-@J(=C&;@'9;';9';7)=6+?8-@<.B<,?<)=;)=<&;=%9?'9A%8D%7G$6J%6L3H3I4J2I0H/F.F.E-E/F1I)E""N+P+R+V/Y0U,V.Z0X."U*)O$.J0I.H-F+E,C-C.E/F0E0F/E/G3J5L!2J!,D)A'@(?(@%@&>$=$<$=$>%?%>$=!>!="?#A%D SlOTlPPjMOoQLqQInOHnNTaSB7?A9>G=CK?GK@HK?GLAIRFM\JU\JVZITsJfN 8M 8L 8M 8L 8(''(* + !.#P=_H]GB1T>cIbHU>Q ;> .*()*F 3mPnQcIR=: +: ,: +: +8 )2%- #-+.214)5"32 = ; < =,L:\&L <0b"A>se]ft Ƅ҈،ۏߑ ߓ ݑސߑߒ ޒۓْόŅxhS WD[HTH7K9" ,"+-6@FLRKQ487,A2ZE`I`I^F\BE 2.!/"1 %2 &- !$ $ ( / #= .> /> .= -< ,+ ; += ->/>/76V6X 8Z#;[%>Z$@[$DVBT@S@SBUFY GZ"FYBV@T>T>S?S@T+l2(r8.l33a*1d,0d-2e-?[ EWFWHYIZ IZ!GXFXGY I\#I\$AU ?SAT@S@TAUATBTBTCUDU?RRAU EX#DW"@T>R>R;P=Q>R=Q:O7N8O8O8P6O+=F)?-??-@3F@0D@.@>,?>+??(<@%:A':C%8E%7G#6J%5L0G3J6L7M 5K2H/E.E -E.F.F'B!EJ#N&M$!J 'H,E.F/H .G0I2M"2O#0L .H,E-E.F/F/E-D,C-D.D-E'?'>&@&@%?#?&>&?'?(?'?%?$>"< !="?"@#BQjMUlPSlPQnPLsSIoOHoP[R>AQ>P=/%/%2'5+6,2(4)aJcMc NK<;0R?J7C 29 *&' , !- $3&4)= -V ?lOZ A? /9 +: ,B1T?K 81 ,&1-6)9< > : > ;5 :"=)A-D=NUV h^j_yc#lyɆ Ս ؎ ڏ ې ې ݒ ߓ ߕ ߓ ޒ ݓܔەڕؑ ̇ u e TlMaJgNCG%&=$4#2&/-5AGEI/60 (7 (O;]E^F^F[CG 40 #/" 0 #1 %D3(,$2(6+C4B3@1@14 '4 &9*: * 4X4Z 5Z"7[$:\%>[$DX!EW DVCUDVFX DVAT?S?T>U@UAU*m3&o5&o41d+4g/:i3K^%M]$M^%L]%IZ!EWBT?V?V=QR=P/BA/BD/BG-@I->I*+%>'@(C&B$BPiKOhLOhJMgIHnNHpPbU\O9HF:BG=DH=DK@GLBIMCJQCLYGSYJTxMiZKV^OYR>U@S?R=D30%3(4*5+1'- #P;O:OcK xT_m w } ȃ Ȉ ы ؎ ُڑܒޓ  ߓߔޕݗޙ!ܗܓi` wR UE MH':0*!-$0&03 0QB3 *4 &A /H 6\D^F_G_H;-6*4(2 %0 #1 %G67,6+5)1&, >/? /= .!*; +: *9)2Z!3["4\#7]%8]&9]%@VATBTBUDU)CUAT?S@S>T>U@U*k0)j0&o5z?!x=0d,7`)GXGXGXGYGYEWCU?VQ=PR=QS ;P9O8U"7[)3^,(KQ&NR#TW&WU1GD.C?+?;%;8&:7&;9(<;(==(<@(%?'?&>%@"?OgIMgINhKNfILmNLuXW=OQ?LODKRHOSIPRHPRIOTKR]NX_QZ`S\Tr}So`R[(M 9O9P;. $/$.$, "&#" / $7+3*,#+"& aGV@/ $* "( ( ) /$7,B4K;UBQ>D3/#C2T >V >H 75 0!( '")#*09:1/. 2)O 0B:?JCWK lU `i'i"ủ ؐ ܐ ݑ ߓ ޓ ޒߔ ޓݓݕ"~Ä|qgXTI0>4!-%.)1,597N;F4U>`GaGC3U@_G]FB27*6*4'7 )F 2R <- !, +$:+;+:*"$ @1?0= .; , 4]%4_(7a+:d-:c-;a*@[#CUBUAS@S@R?S?R?R@S>UAUBV/i2.j2&t;!z@D y>8[ CUCUBUAT>W;T8M7N9O;OQ>P=P>Q?RBTAS?S ?R!?R"@S"BU#DX#BV!>S=Q>S?R=Q;P8N:O:R 7T#3W$-Z'-['+^**_+%IO!KQ NR NP&DD*A<*@9*?8(=8&::%9;$8=$8>%9B&:F+$=$>#=#=#>#=PfIRiMSjMSiMPiLdM\Q;KG;CK?GMCJOELRHNSJQUJQ\NXcR^tUjWsYu|YqN9O;N:, "+ !p- #+ "8+" " # & *"-%/&N:cI[D@ 0/ #( +"/&6+</C3D3> //$3 'T?cJW@7 *& $#*%.'/'0(3(>(.N&+K'(K5!8%e-'dE2, 5%<1D^W)vf$qы ؏ڑܓݔܓݔޔ ߓ ߓ ݑ ِ ُf +^#Fnotnfq_ jh _VRB(3+ ++%-+3C;TAaHaI_HC3@0U?YDD47+3'=/I6VAG5- !*))(#; +- !# % ) B3D5C4 6_*7a,9c.=f1@h3Ag3Cb+DWAT?S?R?R @SASAS?T?U@UAU2c**n4%s;"y?{@ z?:\!EVCVBUAS>V;U9N8N8O8M8L8L:N?Q@S?R?Q>QN@RDVFX%I\+K]/M_1N`2K].FY(AT"AT AT@S>Q8*=8+<9';;%7?#8A%9D);G+=I):K'9N'7N%6Q/F/F.G2J4J5K6L8N 7M"4J 2G0H0I1I*K$+Q)3J!0J!0K 3N%7S+9U-5S+/O$+K )J)K-E.D/D.D,C+B+C,D,D.F/G.F*D'A(B*D*C)A'?%>%?&>'?'@&@'@'@(@(@QeIRgJRhLRgKQfKU .a GcZ CJ73'/&6-=2=29,5 '2 %) 0 $@0K 7kNdI< 2$ * $ %!)$/(7'%F,0U./T*$N4.TG&n=!d(L: 4 3$;hY|`(n^ tć ّ ڑ ۑ ڑؒٓۓڒ ّ ؎֍t "N- ", !**))6(!" " , !?0@1?12^(1_)2`*5a*7b*8b*:]$AT@S"@SATBUCVFWEWAVAVAUAV1c)-j/%s9#u;#u:$w>GXI[!K\"I[ EW?W;W9O;PS U!CV$DW&CV$>R=Q=QTAX$BY%8Y'2X%/U!-V!.W".X%/[)/`-&QZ'MT%JN%IK'GH-@>-?:+=:+>9*=<+>>,>@-?F-@J0AN1AP0@Q/@S.>U*;U3J2I2H3I4J5K4J4J3I0G.F/H1I0H(E#K"+F+G*I.L 2P&6T+5R)0O%+L +I-C,C,D-E/E-D,D,G0I3K"4K#5L#2I ,E%A%?$?$=%>$=#=%>%?&?%>&@'A'@&?)B,D!/G$XlPWjOXkOWlQiS]U?MN=IK@HNCJPFMQGMPIL]KX[KV]MX]PZrVi[w]x^xH 5* J7, ") # 1':/C5F5XAQ=: ,, #'' % ; +bHcIeKfM]G/%2'6)6 )4 '4 &/#+ !8 ,4 '4 '\DuUhNA>% . &$(%0*4':@=!B0W*OI&oG%n?"f/W>3 :6F `S!hX'{g Ԏ ؏ُ ِ ڐ ې ڑ ې ؏ Љ~\K 2P8q;t;s7k+R9>"1 YG pQiMC@(5#73 9G?S#GK=RAYDWA@ 02 &4 (A10%$ ( @2D4E4) ( , ))(3$+: ** 1`(3b+5c-8e.:e/RFY#G[&FZ%AV">S;P:O6R5Q8P;Q=Q>*<>*E.@J/AN/?P->O+#<%>(A(B&B'B(@(@'?'@(A+(A&@'A*CUhLVjNUiMVkP`FVVCPOELRHOSKQXOVZQXxWm^SZ^RZ_R[aT]tWk[v^z`zH 5I6" #-%0'1'2)-%=/ZCYBS?D5.$% & @ 0bJgMgNagNG6;.<.9,6 )4 '- #3'@2B47+P=wWtUeOAE& / %$ *& .& 023.J2V0 SJ(oK)pJ(oF%m,T <:-BON jZ/g_| Ս ׎ ֎ ؏ ׏ّ ِ ؏ ̉{`fN5I6q4oR?R>Q=P@UBUDX4g-4f.6e,5g.-q9-s;.t=,q:,k4*i00_'6V;TQ;O9N:NR+=@,>C->D1AI3CN3EP0CP*;N&8L%7J%5M"4O.E/E2H2I4J3J4J5K4J2H1G*C)B(B!G$M")J*J+H,F,E+D*C'J&L *E+E-F/G0G2I!7N&:Q*9P)4K#0H.F/F/G*D&?%?$?%A#?">">%?%>%>%=#<$>$=#=$>$>PdGRfITlN]n`TCNMCIOHMVKS[RX^U[_W]}Zr}[rbV^cV_[s^z`zb|G 3F 3'&( '' &$2 %ZC\F_I_JTA) * ? /\DcIdJeKfMO<6 )5 '4 '3 '0 %;-=/F6*N:vWxXvXfY7?# )& (")")"+%! * 6)MG(mM+rL*qK)q7$c M>/DcW%ra3pg"x{Ќ֍ ׏ ؏ِؐؐ ֍ ̇z]aO BM -Y0g 5:?<37&-.)6+D4G7C21$S =5 '- !" * 2'F5A1% ("+$*#+"1':/G6R>I8F5< -  CXEY!EY"DX!DW FY#FZ$CV!@S>Q?R@S?R=PQ@S!@S"?R ;O8M8M8L9MR?SAT@S>S>R?S?T>SK'9F);D*A/@B0AF2CJ5EO6HS5GU0BR):N&7K%5M$6M$5O/E/F2I6L :P$;P$8N"7L3I2H1GW2H/G,E(I!)U,4P'6N%5M"1J.F,E+D&G$K$L+F0H3M$5M$3K"1I 1I!2I 0G-D,C,D.E1H 2K#-O)(P'%@">!=!<<;$=&>&?'@&?%>%=$=$>%?OfGPfIPlOgK]OCKPFMQGOTKQZPW^U\_V[[tsYknZhcY_dY`p[i~_sawd~G 4G 5* ) ) ( &%:*T >XAXAXBXA: *. #6'T =bHcH_FK 72%]3 %4 '3 '1 %<.?1C5C5XDy[!`o"Wc"PFD+2*&" $&"+#+:B$/#??%eM*rN,tO.t>-j-VA4H^W,][9ie(s!t ņ DŽ ΉՏגؑؐ ՍΈx~^eP3J-a7k;f &G12;QWNV:S" H%<7<' 00(4 (6 (5'4 &*9 +# & ,#,#/%/&2'% ! ,"3)>3G9A2: +D3E4F44(   w|{{||~{|yxtqomlhjd}ibze]u`VpZPlWLiUHdQCcR?cO\J=[I:ZI9XH7WH6WJ7YL9[M<[O=\N>^M>]L=\K<\J<]K<^N>aQBbTCbUCaUA^T>[Q:WN5SN1QM/NM,LM*JM)IO'IP'IQ(JR'AP)@N)=P)7U08P+Q4>N1K6@L7@M7AQ8AR7BS7CU5AT2>S.8R,7S+7R,8T,8U8G 6F6F7G 7H 7H6G3F3E2E3G5H6I5I1G'K"*H/F.F-F,E,D+C*D%L $L %K*F,H,H-E/F0G0G /G 0H .H +H*G(F&E#?$?">!=(&?,C/F!1H$2H%-E"+D ,E!*F!&ANcIOcKReMYBQNDKPEMQHNULSYOV\RXbS]|Wp{YpbW^eZaf[bj_fl`hodlthp. #.    "C /Q 00=/:,P3M"@V"E<1L;P@RBP@2)%(w|v{uyuxtvssqqnlliic|f`yd\v`Wq\RnYOlYMkVJgREfRAdP=VZHWXFVXFWYEXXEXXFYVFWUIXUKZSK\QKaPLaPMdOMeONgMLhKHeKFbJB^I@]J>]L>:\K`P?`Q@aR@aTBbVCaWA^T=ZQ9VO4SN0PM.NM-MN+JO*KR*MT,NV-OU,LU.FR.@V0=L(=F";F"/9O1:O1;P0:O/9N2Q7AQ5?M3>N2=O3?R3?T1=S-:R+6O)5Q(5Q(6P(5S5D3D4D3D2D2E1D3E4F2E4HM4I6J6J3J!3K!2I.G-G.H0H1H1H-K!(O$'P%)L".J/L#0J!0G/G1H 3K#5N&5P)3O(2O(1K$.I",F)C&A#="=#=%?*C".F&4K'2I$.F!-D*E(C$A#="<PdLSgNl[`RGNPINQKPTNRYRV\SX^T[fT`|Xp~[s~\sf[bj_fmbisgpwmt|ox.&1& ! # '3 'N :W@ W @T >C 1.". #0 %@2_HjQhNG67 *5 'GC2=0B4@2=/:,< ,O:\DzZmPoRfJB 14 '- #'%#+!*EI^bGP.@.OD&iJ)p3"_ %KC =+B)FL7PV+zl!kt/g`!x_rLjҎאˉ~~wjmV8IO,E&L#YCESPVSXU ZT [7<- +/ %1 &5 '6 (. 2#R=J8) # ! #& - "6*C5O?M ?@4:2J">Q#CT#E?2I8H7G6 < +sysxrvpsoqmnlklilhje|f^v^WpXPjTJjSHiSH"fQDePAdP?ZZJ[ZJ[ZH\ZG\YG\WG[RC\PC[QF[TL^TNdVPeURgTQiSPlQNkSMiQLePGaLB_M?\L=\L;[K;ZL:[O;\Q;\Q<[O:[M8YL8YL:[L:5\M;^O>`R@bUCcWEbWC^U?]S<[S:YR8WR7UQ3RP0PP-NO+NR,RW0V[4V\5SZ1QX/GT/BK(?H$=G";G".8S0:T0:S/:S.9Q.9P1R/]Q<\Q;\R<\R;YQ8WP5TP5SN2RN/PM-NN+MN)MP)NS+PT-OT,MR)LP&FM%=H";G"!;G#.7U.8U/9V0;V0:U0;S0:R2=R6@T5>S1=R.)D /J#,F &@$>'A"*D$(B"#> ;;SiOTjRXGRQHNSJPWMSVNUXPV]SY`U]\SYdV_yZo^t_vw`pk`gockqfnviq$ .$9,B5&  $ 5 )Q0ZDsUrTJ 6C1Q<]FxXvWnQ\C= .( $ '<>^`_b^bOT6F<J> U#E = 7 8"&7;;N)lb gd7N$>%3B"XMs f&UM/qX}^}`~_tX>F/6888GOUQWQXLS9A& -&-2 +8 )5 &)H 5M 9C2XCYDT@D4+ "# $( - !- "F 3 +A /A.A 0B2 pumrknlnmnmligfab\w\UpVOkQIfMDdKAbJ?'aK?bJ>aL=dO=]UE]VF]UC\UC[R@\QA\Q@]OC_OB_NC`ND[QH[PIZPI_LEdLCfPFgQHcQE`OB[M=ZM;WL8XM9YP:ZS=\U=ZR9XN7WL4VL5WL5VL6WL5XL5XM6WL5?WL4WM4VM3TL1SM0OM0OO/NM,NM*MN(MO)OS+SX0V[5UZ4RV0NS*KQ&>I%P*AU.AV/=P*;L#6K!4H4G1H5I8K!:N"8L 6J4H3H1F1H-F+E*D*+C#J%B%?$?&A'B'C(F*D*D)C(C&B&C&A'A(C+D(C %>&@*D+F/I!*C"'@!&@ (B"(C#&@ "< ; <SkQXlW_GWPFMRHOULRpRe[QX^SZaW^ieYai^el_htanbxtcnpdlthovkr' /(:0A41(& ; ,P ;R=; -. #)&&-!&= .* "/%7*C2^E>/6*-%</O;qRpQF 4C 22&R:!E?)5;3?2F.XW~Z jW2^#\&J!?G x\tǂk fT@N"FS%UP ^R]Q#MJ4%:02(-(-FMMTMTNS/3.3/7<6@27*5(D 2J 7C 2U@U?T>I 6!& , !/ $0 %K8J7!!  $ ,#3); ,6 (.#> -yvyquloijfgdce_a[{]VvXQpULiNGgKCdJAcKAbJ@bJ?bK>bK=eM>^RC]SB]SA\Q?ZQ>[P>\QA]PA`QCbQDbQGbPF]QHZPHZOE\NEaLAbNBbPDaPB[N>YM9VL6VM7WQ9WS;XS9WP6UM2TK2UK2UL4VO5XN7WM5VL3VK2UK2UK1TK1RK.QK.PK-PK+MM,LP+MO*NO*OR+RU/UZ3Z]8X\7UY2QU,MR(GM%=J&?K(@L*1;^.9]-8Z-7Z,5X+6W,5U-7U/8T.9T,8S+8T+7U+5V(6X'5W'3W&6X'6[)9[9J!7O&9O&:M&:M%9K#8J 5I3G3F0G0H4H6J8K7K6K5J2G1G0F,F)C*C*D,C*C'A%@%A%D(C(F+E+F+F(C'C'D&A'A&B'B)C(@(A+D+E*E&A"=$>$=!< ::<>UnTjabcI[^LWTLRYOUtUjvWkaW^d[ah_embipfmuirvjryisfypemrgovhr!# $ $ K9  $ ( ?2TA8,0%$'&%  / $9+E4I69*0 #+ -!1$L 7hKJ4L 84 &L8qRvVuUtTeJG 3: +<7RYcb`c^aOW4 5$ /:#F DC9^JI%E&QQ cL NM%U!)h(c.UKG_  tlQ)@A >0@DE AA$A 0Q .% 0$*< ,tyqunqjkgfead_c\~aZ{_WvZRpVMkPHhNEfLCdL@dLAeMBeOAhQBaUF_SC]QA]Q?\Q?\SA`TCbVEeUH fVIdSGcQD[PFXPDXPCZOC]N@^M>\MK'AM+1_1=\-8Z+8Z+9[*:^*9^):`)!(5$.#/1D3S?WAV@U?S =? .* 'E 2F2E12$; ++ <+3numslpjkigidhaf_d[z]TvZQsWNrWMnSIiOFgNCfNBeMBeM@eN?`QA_O@^O>]O>]M>\N=\O>\P?_P@aRBcSDbQC`N@^L=XOAWOAVN@WM?VL;WJ7VL6VN6WP7US7RP4NM/OK/PM0VP3WQ6XQ6VP4VN4VN3UN2UO2UN1 RN.QM-PM+NL*NM(MM(MN(MP)LQ)LP(MQ)OT+QV-(LR+AK(;F%:D$J&-7c/9b-8`+7_*7]-8^0:`2e8I!:K$;L%9K"5H4G5G4G5G5H2H3H4I5J5I 6J9M!:9:;{<XoVsUgjQcoVgrZkg\c}atbv}auvbolbimcindjrfovir|mwq}s~py|mw) ,$-%/%P^N>]N=\N=[N<[M;]O<^O>`P?_O>]M<\J:XL=TN=UN;TO%>&?%?&?&A%B9:;<= >^u]qUhlTepXhqZjn\g}`tbudwexufpqgnsip2xks}oxp|tu{nw% $ $ ? .M:O:N:: + " %*"1';/I!=X)IK>0&& !#% ) / #7*C5O>L=;/.$7,7,3*1(6-6,RBw [hO\DYBpRvWcIE4?/H0 $5 )HFUWOLB 43 -"..6?06)018? 14G**e)/m.1n40n(.`RL ` b.@4 . , 1#U,-f -^"7"1",!+! +! *) 3$* & # & +"0'8,;/H6N;YCXC4 (- ",!+ 5%G 3G3G 3H 5K8%*#F7D49 *(;) nxnvlrjlhgebc^aZ{^Wy\UwYPtVMrTJoSHmSHkRGkSHkTHhREeMAbL@aNAaOAbPA`O@`O?_P>^O=]O<[O;\M;[M:[L:[K8WOk#l"?n$Dn(Gq>L'$>&@'@$@<:<< = ? @bx_dY`h]du]mv_nu`mexi{l~k~k}sipujqwjsyktzmvj|nw"# / "; +M 8L 7K 7L 8- !$)",%1(7-A5JC3; -, !) .%1(2(5);-=/; ,+ = -& ( ( * !-$-$L;qUsWfL[E[DlO_ED 2= -B 0: +-"6)I .1 /$ +MUJR1;6.<38 E(,d0,k)/n/,k,a4C{M ~R0>. .+%1F"(e1$a#< -"-(,( ," *!& * '*"*#*")!0&9/E8O!AI:LH'?I(?H(=G'p)@q'Br$@p"@r"Br$Dt%Fs%Gs8G 6F5E4D2G5H7I 5H!6H 6J"6K"7K#9M%:O%9M#8K!7L7K5J1H.D/D1F0G/F0G 1H 0G.F'J#&I"&F'D)A)A'@)A)B'A%@#?#?"?"?#=&?'@!-E!+D 'A%@$>"> =<<=czb^W\c^agadp_k}eugzk}m~dlzkuyktzlu{nw|nw}px|owzpv~oy!"> /@ 0N9M 8M 8P;R>' )!+"-#/$0%1&1'`IXCE4- #) .$1&1 '1 $0 #. #!eK[D1&+ !,#2)5+M .= -< ,@ /B0jMG 9(.@GZ"`S#[,$K/>"116H1%f$*k&+l$Y&? FA `I:A#/+ '# &!<+F'M-;$/%/'1)2(0"*# &PBM:* & % & * 2&<0H:RAN>C42 &, ", 0#F 3H 5I 6I6@0        p|oxlqimgjeedbc^}a[{]Xx[TvXPtWPtZRu[RsZRnULiOFeMAcL@bL?bM@`N?_N?]M>]L;]M;^N;]O;]P<^R>_R>[S>TQ;SN9RN7PL5PK3NK2MP7OU;TQ5RO4OM/MK,LK,LL-ML.LL,ON+OM*NM(OM*NM)DON*QQ-SS.QR,OP*NO(MP'MO'JN'AG&=D%=C%;C%u$Av#Bw"Ew#Gw$Ix#Hy"Hw5E3D3E3D2F3G4G2F3F1E/J*S()S',U(.T(0S(3N"4I3H/E-D.D0F2I 1I"1I!/F.1I!2J"1H +D'B'B(C(@'?'?'?'A'B%@#>#@#@$A $A"< :;"?"="=#>#>%?$@!=<=ixe\Y[c^aicglgkubpgzj|k}mp|ow|nw}ox~pyqzs|{s~9 +F6WDSAVBR=O:Q .dHpQMpQU@M:\FbIwXaGB 1< ,< +5'7(P ;eKH;5:B"K^&cZ!_."W$A6(,3L!)d2o*\ "A 8==?> , %$ #%2/G>V*I'7(0)1-6*2" )' 'E5ZCT@>10&) ' ) , "3':->/<-3 '4 (0 %@ /+(F 3I 5J7M:E4A1: +s~oykuhoejdfccb_~b^|aZz]WvZStYQsYQrXQpVNlRIiOFfMCdMBcM@aM@_L>^L=]L<\L;]M;\M:]O<_Q>aS@`WCZVCXS>UP;RM7QK4OJ2NJ1C[?CZ?GU9NJ.LJ,KJ+MK,NM/PO1OO1QP/QO-PO,RQ.TT0SS.QQ,NN*OO)MN'MN&LN&IL%@F&>C'>E'?F(=E'=F'>F'BI*CK-CL-CL+AL,>P/:P/$?#>#@&B (D")F$'E$$C!!;99=>>"=">#<#>!=<:wso`\_daciehojntnsh{l~nstu~t|s|t|t}t|y{z0 $H6.%A2P=N9M 7L 7L 8, "2'8.<2=38/2([E]E\E\DK?06+8,7+3 '0 $. #A3J9@/: +7 )+ *"1&3)I7qRqSrUWC<.L:bIuUaFC 2= .= -9 +J 8\DeKB8*29AX\Y ^8&_&QI%5;6<$"T6l2a 'D9(4 )5)$ $+/$;2M@Z,*K-7$-*3'0$,%<4`H`I[FK;1&& &),!- - 2%7)D 1L 8 )K8N;M:C2A08 )< ,9*r~o{oxjrfldhaa`__Z{]Xx\VvYRsVPpTNpSMnSKlRImTJnVLlWKjUHgREcPB`O@_N>_O>`Q@bTBcUDcVCbS@^R>YR?ZT?#XR=VN8SK5JU;C^CDZ?BYF&?G)AJ+CL-DM.2CL+AJ)=J)8R/;J)=I)+3s*2r(0s'0r(1t(4x'7z&:|":|9~<} ?~!B!E"H#K"L MLM3F1E2E0D0F1F1E0F1E2F3H+[/*\0*\/,\.)X+(M"'D+C,D.E.E(B'B&A(@J(A*C,E0G0H -F(C'A(B&?"="="=!=!>"?$@$B !B A < ::=@@ F"%E#)B!$>!<<;}pud`cgbejfiqlouoszmvops|qx|sz}t{t{u|v}~u{v~t|v~>33*-$C3O;N 8K 6K 6>,') + !- ", "+ !@1U?[BZB[BYBE 20 #@/".!-!, "@0<-+ $$' ,#2(-%0%K7YBT>D35(= .W@jO^DC 19 *> .D2A /[ B`EB 2. /6?SZ[!`F'b#*`-#U3;*6<38 "P0Z $E 6 4-)$%+(0&2">'E";!+$.%.5 AC E/)= .ZB[CYAM 9!%+- /"1 $1 %8 *E 3O 9@ /A /G 4H 59 )C2E4F5@1> -4%Gtrozlujpdiacabb_}`\|_Zy]Xw[TsVQpUNpVMoTLmTJkRHhQEgPDhREgTFfUFfUGdTFeTEdVEdUDbS@]P>ZM=XN=XLL`KJbIEbFD[??]AB[>MM0MM/LL.KK-KK,LL-SQ/TS/SR.RQ-PP+PP*OO(NO(LM)HK)EJ+CH,AF+@F)>D'E&?H)AJ*BK,AK,BM,BL+3%?%A%B#@!@?@@>!;"=$A #B!"D#%J((Q0)N.'C##=9:nweadhdgiehmiknkmomntxzx}u{~v{~w{x}y{|{A 6G%;/(%2 'L 8L 7K 6'&'( & 7 *N :\D]F^G[DH71 %/ #.!]- '0 $3'H78-3+.'-%+#*!& )(* 0 &8+:/2'D 2V?; ,5 '= .C 26 )T?ZC= .: .C=PTX^V _J#`HV7@/7-8(>+5"5GD :;3* '%*..-0% , . , &"+(30;25, 'D 3W @[C[C[CY A9*.!.!$%) !)!4(9,?.- #F 3D 2 " I6."/!+%."1#0#%wuq}nykshneibc``~b^~b]}b\{`Yv[UuZSv[Uw_Wt]TpWNiQFdMAdM?dO@eQBfSDfTEdSCaQ@_N=[O>XO@ZK=ZL=ZLE&=D%H(BL,DN-BM,>L+6U29I'7J($.t%/w'3z)9%D78.F8.&-$( & ' + !3(<0G8Q?A1>/. "1 #8 (7 ):,D3A20%K9^GWG__X]V\CK+4'0- 0(1$ / 1?D" W=Q=F$#+(0./3 ,3 *0*%%04+3)2*2.5GbL=aL=aN>"_N>`N>^N?YQCYNAYOC[L?]J>\K>]K>^N@YTDSZHPYFNZEJ]GFcKD`EB^BA^?EW9KL0LK-KK+IK+KK)ON(OO(OO)MO*GM-CL,EH*FI+DH,BF,AG+ABG+@G)?F(>E&;D%;D#H(>I)?J),D*H%L NNPPOMJILPWZ[Z4M$3M"2J!2I!0P%0M#1J1H2G5J 6K"5L$,M',G$-H#-L'0M&.L$*G 'H'D+C/G!3L&4L&0J#-E*C*B)A(A(@ 'B&@$D J#J##B$@#@$A#B!#D"$F$%G&%J('@"'A"&A!"C"ABC E!B??>nynjlplnpmoqnpspsw}uxx|{{zz{|}}0(*D2 K;D3Q=: +* + + !& #(''#5&P :Y @X@= -6*;0;04+2(4)4).$.%8/C5B7o%Wg$Q<21'*!) + !0%9+B4MG;LL']V&^W$]6>)0&.% ,1 )7 )- ". #4*1+0/-2++J;S?[CY @X @V >E 2.".!M 8L 8 $%&)!1);1@5=/5 (7 (= -<+ $ * E}{ywt~pxmrklghgfhce_|b\v_XtZSrXQoUMmTKkSHiPEgOCdM@bM?aM>`M<`LT4>Y7CS3CT3-9.>/D.L*O#STVXYXUTV\"b(g*g(g$e7U/6P(6N&5L$1O&0M#1K!1G2G3G2F0F!1F#/J%-H#)G (D'C$D#E$E'B(A)B*C+E+D,D+D*C)B'B'B'C'A!J"J#K$Q*$@&B&C!%C"&F%'I''J)&K)$I'$>$?%@ #B!AAB C!B!>>}oxmklplnqnproq{uzy~~z}}|{}}~3*>27+D 2; +L 7G 3'&4&& &') + !' 5 (E3R=S>=.6*7-4*5+<1[:/3*4*.$3)I;_!Jr&Yh PH70 %' ) /$9.C7M >O?I:8,;,:+1 %1 %1 %&0%M:oTfMQ>MDZQVE:560> 0& *4 (@6RBTEeTeW`UFC3.3-2 +6 )4 &. "5 (5 '4 &3 &) '6'C 0Y @Y A\C^G</7,3 'N 9N 9D 2 " ( 0&:.B33%%,@ 0B3;-    ! '0(}{vt|rvnqjiedeae`e_{c]vbZu[UqYQoWNlUKjTHjRGiRFgRDfQBcO@bN?cN@aTHbVJcRHaPF_OE]NE]PFaNE_TK_ZNZZKP\JL[GI[EFZCFW>DU9CT6>[<;]>GO.IK*IL,JN.MR3RV8QX;OV8LS4JP2HL3GJ1CG-@E)>D'>D&?E'?E(@G)j>F(>G'?I(AL,CM-AM,;P/;O/;Q0>N-=O-$1"8 > EOTX\_a caa`]]__cd2R*0O&3M#4L#2R'1N%0K /G.E+B(>)?)@)B'C&B%B'C$E%H (H!)H!*B(A'@)B*D-F/H 1J#2K$0I#0J#0I#0K%*S-!S.W0X0Q+"="?"@"C #E#$F%#H&!E$ >!<"="@ ABB D!C!?=?r|roqwsuvsuxuwy}|~} .$5+9,6 'I 6M9@ /? .J 6< ,%k%&'() 4 'D 2C 1N 92 %1 %=.5*4)3 '2 '2'@3K<8,-#7,K9hNhN_GK90 $) 0%9-?2?2>1=08+@2=.6); -6&3 'F6hNqUcKK9W@V@> .H 4\ DE 28 (9 )= -ZChMoSqVmTWA9 +7 )6 (6'3&, 4 &5 (6 (4 &*2%)1#A.R=`IdMI;:/2%O:N:N:: +!& , "5)@2L<7+< ,= .= --!$ ,#|zwuzrtllfcd_}b\{b[y`Yt`XsYRqXOoWNlULlVJnYMoXLkUHhRDeQBcPDbQEaQGbLCaLD"aNFaPHaQJbTMaTL_SJ[SISXKPWGNWEKWAHXBHS;FS8?X:=[<<[;<\;DO/IK*IK+JN/JO0IO/GM.DM-@E*AD+AD*@D*@D)?D(>D'>C&FOW_cdejo"m"jc_a__a-O%,N#-K!0K.O".L!/J,F/F(@(>)@+A*@&C$B%B'D)H"-K%/L&0M(1M&/G!+D+C/G 2K%6O+:Q-8P,3L&-G )C#J!T,Y1Z1[2]4M('C *F$*H''H&%G$$G%$H(&G&)B$+E&+G''F&$F%#F%#F&"G'"F&#C$%F&|~{}~{|{~{~{~~~! %B4RAD6Q>O;N:+ '&') ,#7,.%f# : +W ?D0<*L 74 &/#-",!, ,3 ':-* - #0 $B 0eJfLgMgMZC) . "4 '9,>1@4=07*<-7 )F5S@B3:.F7@4UBqUnQT =U