Changeset fff2958700e2f9392e408065a7e00e2a7ae883ac
- Timestamp:
- 03/19/03 18:14:50 (5 years ago)
- git-parent:
- Files:
-
- modules/gui/skins/controls/button.cpp (modified) (2 diffs)
- modules/gui/skins/controls/checkbox.cpp (modified) (8 diffs)
- modules/gui/skins/controls/checkbox.h (modified) (4 diffs)
- modules/gui/skins/parser/flex.c (modified) (66 diffs)
- modules/gui/skins/parser/skin.act (modified) (2 diffs)
- modules/gui/skins/parser/skin.c (modified) (8 diffs)
- modules/gui/skins/parser/skin.dtd (modified) (2 diffs)
- modules/gui/skins/parser/skin.h (modified) (5 diffs)
- modules/gui/skins/parser/wrappers.cpp (modified) (2 diffs)
- modules/gui/skins/parser/wrappers.h (modified) (2 diffs)
- modules/gui/skins/win32/win32_event.cpp (modified) (2 diffs)
- modules/gui/skins/win32/win32_run.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
modules/gui/skins/controls/button.cpp
r12ce13d rfff2958 3 3 ***************************************************************************** 4 4 * Copyright (C) 2003 VideoLAN 5 * $Id: button.cpp,v 1. 2 2003/03/19 02:09:56 videolanExp $5 * $Id: button.cpp,v 1.3 2003/03/19 17:14:50 karibu Exp $ 6 6 * 7 7 * Authors: Olivier Teuli� <ipkiss@via.ecp.fr> … … 239 239 { 240 240 Enabled = enabled; 241 242 // If cursor is in, send mouse out event 243 if( !Enabled && CursorIn ) 244 { 245 if( MouseOutActionName != "none" ) 246 MouseOutAction->SendEvent(); 247 CursorIn = false; 248 } 249 241 250 ParentWindow->Refresh( Left, Top, Width, Height ); 242 251 } modules/gui/skins/controls/checkbox.cpp
ra64501f rfff2958 3 3 ***************************************************************************** 4 4 * Copyright (C) 2003 VideoLAN 5 * $Id: checkbox.cpp,v 1. 1 2003/03/18 02:21:47 ipkissExp $5 * $Id: checkbox.cpp,v 1.2 2003/03/19 17:14:50 karibu Exp $ 6 6 * 7 7 * Authors: Olivier Teuli� <ipkiss@via.ecp.fr> … … 45 45 // Checkbox Button 46 46 //--------------------------------------------------------------------------- 47 ControlCheckBox::ControlCheckBox( string id, bool visible, int x, int y, 48 string img1, string img2, string click1, string click2, string disabled1, 49 string disabled2, string action1, string action2, string tooltiptext1, 50 string tooltiptext2, string help, 47 ControlCheckBox::ControlCheckBox( 48 string id, 49 bool visible, 50 int x, int y, 51 string img1, string img2, string clickimg1, string clickimg2, 52 string disabled1, string disabled2, 53 string onclick1, string onclick2, string onmouseover1, 54 string onmouseout1, string onmouseover2, string onmouseout2, 55 string tooltiptext1, string tooltiptext2, string help, 51 56 Window *Parent ) : GenericControl( id, visible, help, Parent ) 52 57 { … … 55 60 State = 1; // 1 = up - 0 = down 56 61 Selected = false; 62 CursorIn = false; 57 63 Act = 1; 58 64 Enabled1 = true; … … 60 66 Img1 = img1; 61 67 Img2 = img2; 62 Click1 = click 1;63 Click2 = click 2;68 Click1 = clickimg1; 69 Click2 = clickimg2; 64 70 Disabled1 = disabled1; 65 71 Disabled2 = disabled2; 66 ClickActionName1 = action1; 67 ClickActionName2 = action2; 72 73 // Actions 74 ClickActionName1 = onclick1; 75 ClickActionName2 = onclick2; 76 77 MouseOverActionName1 = onmouseover1; 78 MouseOutActionName1 = onmouseout1; 79 80 if( onmouseover2 == "none" ) 81 MouseOverActionName2 = MouseOverActionName1; 82 else 83 MouseOverActionName2 = onmouseover2; 84 85 if( onmouseout2 == "none" ) 86 MouseOutActionName2 = MouseOutActionName1; 87 else 88 MouseOutActionName2 = onmouseout2; 89 90 // Tooltips 68 91 ToolTipText1 = tooltiptext1; 69 92 ToolTipText2 = tooltiptext2; … … 108 131 ClickAction1 = new Action( p_intf, ClickActionName1 ); 109 132 ClickAction2 = new Action( p_intf, ClickActionName2 ); 110 133 MouseOverAction1 = new Action( p_intf, MouseOverActionName1 ); 134 MouseOutAction1 = new Action( p_intf, MouseOutActionName1 ); 135 MouseOverAction2 = new Action( p_intf, MouseOverActionName2 ); 136 MouseOutAction2 = new Action( p_intf, MouseOutActionName2 ); 111 137 } 112 138 //--------------------------------------------------------------------------- … … 231 257 { 232 258 // Test enabled 233 if( !Selected || !button )234 return false;235 236 259 if( ( !Enabled1 && Act == 1 ) || ( !Enabled2 && Act == 2 ) ) 237 260 return false; 238 261 239 if( Act == 1 ) 240 { 241 if( State == 1 && Img[0]->Hit( x - Left, y - Top ) ) 262 // If mouse is entering control 263 if( MouseOver( x, y ) && !CursorIn ) 264 { 265 // If control is already selected 266 if( button == 1 && Selected ) 242 267 { 243 268 State = 0; 244 269 ParentWindow->Refresh( Left, Top, Width, Height ); 245 270 } 246 else if( State == 0 && !Img[1]->Hit( x - Left, y - Top ) ) 271 272 // Check events 273 if( Act == 1 && MouseOverActionName1 != "none" ) 274 MouseOverAction1->SendEvent(); 275 else if( Act == 2 && MouseOverActionName2 != "none" ) 276 MouseOverAction2->SendEvent(); 277 278 CursorIn = true; 279 return true; 280 } 281 // If mouse if leaving control 282 else if( !MouseOver( x, y ) && CursorIn ) 283 { 284 // If control is already selected 285 if( button == 1 && Selected ) 247 286 { 248 287 State = 1; 249 288 ParentWindow->Refresh( Left, Top, Width, Height ); 250 289 } 251 } 252 else if( Act == 2 ) 253 { 254 if( State == 1 && Img[2]->Hit( x - Left, y - Top ) ) 255 { 256 State = 0; 257 ParentWindow->Refresh( Left, Top, Width, Height ); 258 } 259 else if( State == 0 && !Img[3]->Hit( x - Left, y - Top ) ) 260 { 261 State = 1; 262 ParentWindow->Refresh( Left, Top, Width, Height ); 263 } 290 291 // Check events 292 if( Act == 1 && MouseOutActionName1 != "none" ) 293 MouseOutAction1->SendEvent(); 294 else if( Act == 2 && MouseOutActionName2 != "none" ) 295 MouseOutAction2->SendEvent(); 296 297 CursorIn = false; 298 return true; 264 299 } 265 300 return true; … … 303 338 Enabled1 = enabled; 304 339 if( Act == 1 ) 305 ParentWindow->Refresh( Left, Top, Width, Height ); 340 { 341 // If cursor is in, send mouse out event 342 if( !Enabled1 && CursorIn ) 343 { 344 if( MouseOutActionName2 != "none" ) 345 MouseOutAction2->SendEvent(); 346 CursorIn = false; 347 } 348 ParentWindow->Refresh( Left, Top, Width, Height ); 349 } 306 350 } 307 351 … … 313 357 Enabled2 = enabled; 314 358 if( Act == 2 ) 315 ParentWindow->Refresh( Left, Top, Width, Height ); 316 } 317 318 } 319 //--------------------------------------------------------------------------- 320 359 { 360 // If cursor is in, send mouse out event 361 if( !Enabled2 && CursorIn ) 362 { 363 if( MouseOutActionName2 != "none" ) 364 MouseOutAction2->SendEvent(); 365 CursorIn = false; 366 } 367 ParentWindow->Refresh( Left, Top, Width, Height ); 368 } 369 } 370 371 } 372 //--------------------------------------------------------------------------- 373 modules/gui/skins/controls/checkbox.h
ra64501f rfff2958 3 3 ***************************************************************************** 4 4 * Copyright (C) 2003 VideoLAN 5 * $Id: checkbox.h,v 1. 1 2003/03/18 02:21:47 ipkissExp $5 * $Id: checkbox.h,v 1.2 2003/03/19 17:14:50 karibu Exp $ 6 6 * 7 7 * Authors: Olivier Teuli� <ipkiss@via.ecp.fr> … … 53 53 bool Enabled2; 54 54 bool Selected; 55 bool CursorIn; 55 56 56 57 // List of actions to execute when clicking … … 61 62 string ClickActionName2; 62 63 64 Action *MouseOverAction1; 65 string MouseOverActionName1; 66 Action *MouseOutAction1; 67 string MouseOutActionName1; 68 Action *MouseOverAction2; 69 string MouseOverActionName2; 70 Action *MouseOutAction2; 71 string MouseOutActionName2; 72 63 73 // ToolTip text 64 74 string ToolTipText1; … … 67 77 public: 68 78 // Constructor 69 ControlCheckBox( string id, bool visible, int x, int y, string img1, 70 string img2, string click1, string click2, string disabled1, 71 string disabled2, string action1, string action2, 79 ControlCheckBox( 80 string id, 81 bool visible, 82 int x, int y, 83 string img1, string img2, string clickimg1, string clickimg2, 84 string disabled1, string disabled2, 85 string onclick1, string onclick2, string onmouseover1, 86 string onmouseout1, string onmouseover2, string onmouseout2, 72 87 string tooltiptext1, string tooltiptext2, string help, 73 88 Window *Parent ); modules/gui/skins/parser/flex.c
r12ce13d rfff2958 2 2 3 3 /* Scanner skeleton version: 4 * $Header: /root/vlc-cvs/modules/gui/skins/parser/flex.c,v 1. 2 2003/03/19 02:09:56 videolanExp $4 * $Header: /root/vlc-cvs/modules/gui/skins/parser/flex.c,v 1.3 2003/03/19 17:14:50 karibu Exp $ 5 5 */ 6 6 … … 288 288 yy_c_buf_p = yy_cp; 289 289 290 #define YY_NUM_RULES 396291 #define YY_END_OF_BUFFER 397292 static yyconst short int yy_accept[24 63] =290 #define YY_NUM_RULES 404 291 #define YY_END_OF_BUFFER 405 292 static yyconst short int yy_accept[2498] = 293 293 { 0, 294 294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … … 305 305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 306 306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 307 0, 0, 0, 0, 0, 0, 0, 0, 397, 395,308 29, 10, 10, 29, 29, 3 74, 10, 374, 5, 6,309 5, 8, 9, 8, 39 0, 382, 383, 391, 388, 391,310 3 89, 394, 382, 383, 394, 396, 396, 37, 10, 37,311 37, 37, 35, 37, 37, 396, 41, 10, 41, 396,312 41, 396, 51, 10, 51, 51, 51, 49, 51, 51,313 51, 55, 10, 55, 396, 65, 10, 65, 65, 65,314 63, 65, 65, 65, 69, 10, 69, 396, 87, 10,307 0, 0, 0, 0, 0, 0, 0, 0, 405, 403, 308 29, 10, 10, 29, 29, 382, 10, 382, 5, 6, 309 5, 8, 9, 8, 398, 390, 391, 399, 396, 399, 310 397, 402, 390, 391, 402, 404, 404, 37, 10, 37, 311 37, 37, 35, 37, 37, 404, 41, 10, 41, 404, 312 41, 404, 51, 10, 51, 51, 51, 49, 51, 51, 313 51, 55, 10, 55, 404, 65, 10, 65, 65, 65, 314 63, 65, 65, 65, 69, 10, 69, 404, 87, 10, 315 315 316 316 87, 87, 87, 85, 87, 87, 87, 87, 87, 87, 317 317 91, 10, 91, 103, 10, 103, 103, 103, 101, 103, 318 103, 103, 103, 107, 10, 107, 396, 127, 10, 127,318 103, 103, 103, 107, 10, 107, 404, 127, 10, 127, 319 319 127, 127, 125, 127, 127, 127, 127, 127, 127, 127, 320 127, 396, 131, 10, 131, 139, 10, 139, 139, 139,321 137, 139, 139, 396, 143, 10, 143, 143, 396, 155,320 127, 404, 131, 10, 131, 139, 10, 139, 139, 139, 321 137, 139, 139, 404, 143, 10, 143, 143, 404, 155, 322 322 10, 155, 155, 155, 153, 155, 155, 155, 155, 159, 323 10, 159, 396, 177, 10, 177, 177, 177, 175, 177,324 177, 177, 177, 177, 177, 181, 10, 181, 396, 203,323 10, 159, 404, 177, 10, 177, 177, 177, 175, 177, 324 177, 177, 177, 177, 177, 181, 10, 181, 404, 203, 325 325 10, 203, 203, 203, 201, 203, 203, 203, 203, 203, 326 326 327 203, 203, 203, 207, 10, 207, 396, 235, 10, 235,327 203, 203, 203, 207, 10, 207, 404, 235, 10, 235, 328 328 235, 235, 233, 235, 235, 235, 235, 235, 235, 235, 329 235, 235, 239, 10, 239, 396, 273, 10, 273, 273,330 2 73, 271, 273, 273, 273, 273, 273, 273, 273, 273,331 2 73, 277, 10, 277, 396, 303, 10, 303, 303, 303,332 30 1, 303, 303, 303, 303, 303, 303, 303, 303, 303,333 3 03, 307, 10, 307, 396, 335, 10, 335, 335, 335,334 3 33, 335, 335, 335, 335, 335, 335, 335, 335, 335,335 3 35, 335, 339, 10, 339, 396, 369, 10, 369, 369,336 3 69, 367, 369, 369, 369, 369, 369, 369, 369, 369,337 338 3 69, 369, 369, 369, 373, 10, 373, 390, 382, 383,339 39 1, 391, 390, 10, 0, 2, 2, 0, 4, 7,340 3 85, 384, 0, 0, 0, 0, 0, 393, 0, 36,329 235, 235, 239, 10, 239, 404, 281, 10, 281, 281, 330 281, 279, 281, 281, 281, 281, 281, 281, 281, 281, 331 281, 285, 10, 285, 404, 311, 10, 311, 311, 311, 332 309, 311, 311, 311, 311, 311, 311, 311, 311, 311, 333 311, 315, 10, 315, 404, 343, 10, 343, 343, 343, 334 341, 343, 343, 343, 343, 343, 343, 343, 343, 343, 335 343, 343, 347, 10, 347, 404, 377, 10, 377, 377, 336 377, 375, 377, 377, 377, 377, 377, 377, 377, 377, 337 338 377, 377, 377, 377, 381, 10, 381, 398, 390, 391, 339 399, 399, 398, 10, 0, 2, 2, 0, 4, 7, 340 393, 392, 0, 0, 0, 0, 0, 401, 0, 36, 341 341 38, 38, 38, 0, 0, 0, 0, 0, 0, 50, 342 342 52, 52, 52, 52, 0, 64, 66, 66, 66, 66, … … 352 352 0, 0, 0, 0, 234, 236, 236, 236, 236, 236, 353 353 236, 236, 236, 236, 0, 0, 0, 0, 0, 0, 354 2 72, 274, 274, 274, 274, 274, 274, 274, 274, 274,355 0, 0, 0, 0, 0, 3 02, 304, 304, 304, 304,356 3 04, 304, 304, 304, 304, 304, 0, 0, 0, 0,357 0, 3 34, 336, 336, 336, 336, 336, 336, 336, 336,358 3 36, 336, 0, 0, 0, 0, 0, 368, 370, 370,359 360 37 0, 370, 370, 370, 370, 370, 370, 370, 370, 370,354 280, 282, 282, 282, 282, 282, 282, 282, 282, 282, 355 0, 0, 0, 0, 0, 310, 312, 312, 312, 312, 356 312, 312, 312, 312, 312, 312, 0, 0, 0, 0, 357 0, 342, 344, 344, 344, 344, 344, 344, 344, 344, 358 344, 344, 0, 0, 0, 0, 0, 376, 378, 378, 359 360 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 361 361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362 0, 3, 0, 0, 0, 0, 0, 0, 0, 392,362 0, 3, 0, 0, 0, 0, 0, 0, 0, 400, 363 363 0, 38, 38, 0, 0, 0, 0, 0, 0, 0, 364 364 52, 52, 0, 0, 0, 0, 66, 0, 0, 66, … … 375 375 190, 189, 0, 0, 236, 236, 236, 0, 0, 236, 376 376 236, 236, 0, 0, 236, 0, 214, 213, 0, 216, 377 215, 0, 0, 274, 274, 274, 0, 0, 274, 274, 378 274, 274, 0, 246, 245, 0, 248, 247, 0, 0, 379 304, 304, 304, 0, 0, 304, 304, 304, 0, 0, 380 304, 0, 284, 283, 0, 286, 285, 0, 0, 336, 381 382 336, 336, 336, 0, 0, 336, 336, 336, 336, 0, 383 314, 313, 0, 316, 315, 0, 0, 370, 370, 370, 384 0, 0, 370, 370, 370, 370, 370, 370, 370, 0, 385 346, 345, 0, 348, 347, 0, 0, 0, 387, 0, 386 28, 1, 0, 0, 380, 0, 0, 0, 377, 376, 387 0, 0, 0, 0, 38, 0, 0, 0, 40, 0, 388 0, 0, 0, 0, 52, 52, 0, 44, 43, 0, 389 0, 54, 0, 66, 0, 58, 57, 0, 0, 0, 390 0, 68, 0, 88, 88, 0, 72, 71, 88, 88, 391 88, 88, 0, 0, 90, 0, 104, 104, 104, 104, 392 393 0, 0, 106, 0, 128, 128, 128, 0, 110, 109, 394 128, 128, 0, 0, 0, 130, 0, 0, 0, 0, 395 0, 0, 0, 0, 0, 0, 0, 142, 0, 156, 396 156, 0, 0, 158, 0, 178, 0, 162, 161, 178, 397 178, 178, 0, 0, 180, 0, 204, 204, 0, 184, 398 183, 204, 204, 0, 0, 206, 0, 236, 236, 236, 399 0, 210, 209, 236, 236, 236, 0, 218, 217, 236, 400 0, 0, 238, 0, 274, 274, 274, 0, 242, 241, 401 274, 274, 274, 274, 274, 0, 0, 276, 0, 0, 402 0, 304, 304, 0, 280, 279, 0, 0, 304, 304, 403 404 0, 290, 289, 304, 0, 0, 306, 0, 336, 336, 405 336, 336, 0, 310, 309, 336, 336, 336, 336, 0, 406 0, 338, 0, 0, 0, 370, 370, 0, 342, 341, 407 370, 370, 0, 0, 370, 370, 370, 370, 0, 0, 408 372, 0, 0, 0, 0, 381, 375, 0, 0, 0, 409 0, 34, 33, 38, 0, 0, 0, 0, 70, 0, 410 52, 0, 0, 0, 66, 0, 62, 61, 0, 88, 411 0, 0, 88, 0, 0, 88, 88, 0, 104, 104, 412 0, 0, 104, 0, 128, 128, 128, 128, 128, 0, 377 215, 0, 0, 282, 282, 282, 0, 0, 282, 282, 378 282, 282, 282, 0, 246, 245, 0, 248, 247, 0, 379 0, 312, 312, 312, 0, 0, 312, 312, 312, 0, 380 0, 312, 0, 292, 291, 0, 294, 293, 0, 0, 381 382 344, 344, 344, 344, 0, 0, 344, 344, 344, 344, 383 0, 322, 321, 0, 324, 323, 0, 0, 378, 378, 384 378, 0, 0, 378, 378, 378, 378, 378, 378, 378, 385 0, 354, 353, 0, 356, 355, 0, 0, 0, 395, 386 0, 28, 1, 0, 0, 388, 0, 0, 0, 385, 387 384, 0, 0, 0, 0, 38, 0, 0, 0, 40, 388 0, 0, 0, 0, 0, 52, 52, 0, 44, 43, 389 0, 0, 54, 0, 66, 0, 58, 57, 0, 0, 390 0, 0, 68, 0, 88, 88, 0, 72, 71, 88, 391 88, 88, 88, 0, 0, 90, 0, 104, 104, 104, 392 393 104, 0, 0, 106, 0, 128, 128, 128, 0, 110, 394 109, 128, 128, 0, 0, 0, 130, 0, 0, 0, 395 0, 0, 0, 0, 0, 0, 0, 0, 142, 0, 396 156, 156, 0, 0, 158, 0, 178, 0, 162, 161, 397 178, 178, 178, 0, 0, 180, 0, 204, 204, 0, 398 184, 183, 204, 204, 0, 0, 206, 0, 236, 236, 399 236, 0, 210, 209, 236, 236, 236, 0, 218, 217, 400 236, 0, 0, 238, 0, 282, 282, 282, 0, 242, 401 241, 282, 282, 282, 282, 282, 282, 0, 0, 284, 402 0, 0, 0, 312, 312, 0, 288, 287, 0, 0, 403 404 312, 312, 0, 298, 297, 312, 0, 0, 314, 0, 405 344, 344, 344, 344, 0, 318, 317, 344, 344, 344, 406 344, 0, 0, 346, 0, 0, 0, 378, 378, 0, 407 350, 349, 378, 378, 0, 0, 378, 378, 378, 378, 408 0, 0, 380, 0, 0, 0, 0, 389, 383, 0, 409 0, 0, 0, 34, 33, 38, 0, 0, 0, 0, 410 70, 0, 52, 0, 0, 0, 66, 0, 62, 61, 411 0, 88, 0, 0, 88, 0, 0, 88, 88, 0, 412 104, 104, 0, 0, 104, 0, 128, 128, 128, 128, 413 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 414 415 0, 0, 156, 156, 0, 0, 0, 178, 178, 178, 416 0, 204, 0, 0, 204, 204, 0, 236, 0, 0, 417 0, 0, 236, 236, 236, 236, 0, 282, 282, 0, 418 0, 0, 0, 0, 0, 282, 282, 282, 282, 0, 419 0, 302, 301, 0, 0, 0, 0, 0, 304, 303, 420 312, 0, 0, 312, 0, 344, 344, 0, 0, 0, 421 0, 344, 0, 0, 344, 344, 0, 0, 368, 367, 422 0, 0, 0, 0, 378, 378, 0, 370, 369, 378, 423 378, 378, 378, 0, 0, 0, 0, 0, 12, 0, 424 386, 387, 30, 38, 0, 0, 0, 56, 70, 0, 425 426 52, 0, 46, 45, 0, 0, 0, 0, 0, 0, 427 0, 74, 73, 88, 0, 76, 75, 88, 88, 0, 428 104, 0, 0, 0, 94, 93, 104, 0, 0, 0, 429 128, 128, 128, 128, 0, 0, 0, 0, 0, 0, 430 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 431 174, 173, 0, 0, 178, 178, 0, 0, 0, 0, 432 200, 199, 204, 204, 0, 236, 0, 220, 219, 0, 433 232, 231, 236, 236, 236, 236, 0, 282, 282, 0, 434 278, 277, 0, 250, 249, 0, 254, 253, 282, 282, 435 282, 282, 0, 0, 300, 299, 0, 308, 307, 312, 436 437 0, 296, 295, 312, 0, 0, 0, 344, 0, 328, 438 327, 0, 340, 339, 344, 0, 326, 325, 344, 0, 439 0, 0, 0, 362, 361, 0, 372, 371, 378, 378, 440 378, 378, 378, 0, 0, 0, 0, 0, 0, 11, 441 30, 0, 0, 0, 0, 42, 56, 108, 52, 0, 442 0, 60, 59, 0, 0, 78, 77, 0, 0, 88, 443 0, 0, 0, 89, 0, 0, 0, 98, 97, 104, 444 0, 0, 120, 119, 128, 128, 128, 128, 0, 0, 445 144, 0, 0, 0, 0, 0, 0, 0, 0, 156, 446 0, 152, 151, 0, 0, 170, 169, 178, 178, 0, 447 448 0, 196, 195, 204, 204, 0, 236, 236, 236, 236, 449 236, 0, 282, 282, 282, 282, 282, 282, 0, 312, 450 312, 0, 0, 330, 329, 344, 0, 0, 344, 344, 451 0, 332, 331, 0, 378, 378, 378, 378, 378, 0, 452 358, 357, 0, 0, 0, 0, 0, 32, 31, 0, 453 0, 39, 42, 108, 52, 0, 0, 67, 0, 82, 454 81, 88, 0, 80, 79, 0, 96, 95, 0, 0, 455 0, 128, 128, 128, 0, 0, 0, 0, 144, 0, 456 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 457 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 458 459 0, 0, 236, 236, 0, 0, 0, 282, 282, 282, 460 282, 282, 282, 0, 0, 0, 312, 0, 0, 0, 461 0, 0, 0, 336, 335, 344, 0, 0, 0, 378, 462 378, 378, 378, 0, 0, 0, 0, 0, 0, 0, 463 52, 0, 53, 88, 0, 100, 99, 0, 0, 0, 464 0, 0, 128, 0, 112, 111, 0, 0, 129, 0, 413 465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 414 415 156, 156, 0, 0, 0, 178, 178, 178, 0, 204, 416 0, 0, 204, 204, 0, 236, 0, 0, 0, 0, 417 236, 236, 236, 236, 0, 274, 274, 0, 0, 0, 418 0, 0, 0, 274, 274, 274, 0, 0, 294, 293, 419 0, 0, 0, 0, 0, 296, 295, 304, 0, 0, 420 304, 0, 336, 336, 0, 0, 0, 0, 336, 0, 421 0, 336, 336, 0, 0, 360, 359, 0, 0, 0, 422 0, 370, 370, 0, 362, 361, 370, 370, 370, 370, 423 0, 0, 0, 0, 0, 12, 0, 378, 379, 30, 424 38, 0, 0, 0, 56, 70, 0, 52, 0, 46, 425 426 45, 0, 0, 0, 0, 0, 0, 0, 74, 73, 427 88, 0, 76, 75, 88, 88, 0, 104, 0, 0, 428 0, 94, 93, 104, 0, 0, 0, 128, 128, 128, 429 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 430 0, 0, 156, 0, 0, 0, 0, 174, 173, 0, 431 0, 178, 178, 0, 0, 0, 0, 200, 199, 204, 432 204, 0, 236, 0, 220, 219, 0, 232, 231, 236, 433 236, 236, 236, 0, 274, 274, 0, 270, 269, 0, 434 250, 249, 0, 254, 253, 274, 274, 274, 0, 0, 435 292, 291, 0, 300, 299, 304, 0, 288, 287, 304, 436 437 0, 0, 0, 336, 0, 320, 319, 0, 332, 331, 438 336, 0, 318, 317, 336, 0, 0, 0, 0, 354, 439 353, 0, 364, 363, 370, 370, 370, 370, 370, 0, 440 0, 0, 0, 0, 0, 11, 30, 0, 0, 0, 441 0, 42, 56, 108, 52, 0, 0, 60, 59, 0, 442 0, 78, 77, 0, 0, 88, 0, 0, 0, 89, 443 0, 0, 0, 98, 97, 104, 0, 0, 120, 119, 444 128, 128, 128, 128, 0, 0, 144, 0, 0, 0, 445 0, 0, 0, 0, 0, 156, 0, 152, 151, 0, 446 0, 170, 169, 178, 178, 0, 0, 196, 195, 204, 447 448 204, 0, 236, 236, 236, 236, 236, 0, 274, 274, 449 274, 274, 274, 0, 304, 304, 0, 0, 322, 321, 450 336, 0, 0, 336, 336, 0, 324, 323, 0, 370, 451 370, 370, 370, 370, 0, 350, 349, 0, 0, 0, 452 0, 0, 32, 31, 0, 0, 39, 42, 108, 52, 453 0, 0, 67, 0, 82, 81, 88, 0, 80, 79, 454 0, 96, 95, 0, 0, 0, 128, 128, 128, 0, 455 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 456 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 457 0, 0, 0, 0, 236, 0, 0, 236, 236, 0, 458 459 0, 0, 274, 274, 274, 274, 274, 0, 0, 0, 460 304, 0, 0, 0, 0, 0, 0, 328, 327, 336, 461 0, 0, 0, 370, 370, 370, 370, 0, 0, 0, 462 0, 0, 0, 0, 52, 0, 53, 88, 0, 100, 463 99, 0, 0, 0, 0, 0, 128, 0, 112, 111, 464 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 465 0, 0, 0, 0, 157, 0, 172, 171, 0, 164, 466 163, 0, 0, 198, 197, 0, 186, 185, 0, 0, 467 0, 0, 224, 223, 236, 236, 236, 0, 212, 211, 468 0, 274, 274, 274, 274, 0, 0, 0, 0, 274, 469 470 0, 244, 243, 0, 304, 0, 282, 281, 0, 0, 471 326, 325, 336, 0, 312, 311, 0, 370, 370, 0, 472 0, 0, 0, 0, 344, 343, 0, 386, 0, 0, 473 92, 52, 0, 0, 0, 0, 124, 123, 0, 118, 474 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 475 0, 0, 0, 150, 149, 0, 0, 0, 222, 221, 476 236, 236, 236, 0, 0, 0, 0, 0, 0, 0, 477 0, 0, 0, 262, 261, 0, 264, 263, 274, 0, 478 304, 0, 336, 0, 0, 0, 370, 0, 356, 355, 479 0, 358, 357, 0, 0, 0, 0, 0, 0, 0, 480 466 157, 0, 172, 171, 0, 164, 163, 0, 0, 198, 467 197, 0, 186, 185, 0, 0, 0, 0, 224, 223, 468 236, 236, 236, 0, 212, 211, 0, 282, 282, 282, 469 470 282, 0, 0, 0, 0, 282, 282, 282, 0, 244, 471 243, 0, 312, 0, 290, 289, 0, 0, 334, 333, 472 344, 0, 320, 319, 0, 378, 378, 0, 0, 0, 473 0, 0, 352, 351, 0, 394, 0, 0, 92, 52, 474 0, 0, 0, 0, 124, 123, 0, 118, 117, 0, 475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 476 0, 150, 149, 0, 0, 0, 222, 221, 236, 236, 477 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 478 0, 262, 261, 0, 264, 263, 282, 282, 282, 0, 479 312, 0, 344, 0, 0, 0, 378, 0, 364, 363, 480 481 0, 366, 365, 0, 0, 0, 0, 0, 0, 0, 481 482 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 482 483 84, 83, 0, 0, 122, 121, 0, 0, 0, 0, 483 484 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 484 485 236, 0, 0, 252, 251, 0, 256, 255, 0, 258, 485 257, 0, 260, 259, 2 74, 0, 304, 0, 336, 0,486 0, 3 52, 351, 370, 0, 0, 0, 0, 0, 0,486 257, 0, 260, 259, 282, 282, 282, 282, 0, 312, 487 0, 344, 0, 0, 360, 359, 378, 0, 0, 0, 487 488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 488 0, 48, 47, 0, 105, 0, 0, 0, 0, 0, 489 0, 0, 308, 0, 0, 0, 0, 228, 227, 0, 490 0, 0, 0, 0, 274, 274, 0, 0, 0, 0, 491 492 0, 0, 0, 370, 0, 0, 0, 0, 0, 0, 489 0, 0, 0, 0, 48, 47, 0, 105, 0, 0, 490 0, 0, 0, 0, 0, 316, 0, 0, 0, 0, 491 492 228, 227, 0, 0, 0, 0, 0, 0, 0, 0, 493 0, 282, 282, 282, 282, 0, 0, 0, 0, 0, 494 0, 0, 378, 0, 0, 0, 0, 0, 0, 0, 495 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 496 0, 0, 160, 0, 0, 0, 316, 0, 0, 0, 497 0, 226, 225, 0, 230, 229, 0, 0, 268, 267, 498 0, 272, 271, 0, 0, 0, 0, 0, 0, 0, 499 0, 0, 0, 306, 305, 0, 0, 338, 337, 0, 493 500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 494 132, 0, 0, 160, 0, 0, 0, 308, 0, 0, 495 0, 0, 226, 225, 0, 230, 229, 0, 0, 0, 496 0, 0, 0, 0, 298, 297, 0, 0, 330, 329, 501 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 502 503 208, 0, 160, 0, 0, 286, 0, 0, 0, 0, 504 0, 266, 265, 0, 270, 269, 0, 274, 273, 0, 505 276, 275, 0, 0, 0, 345, 0, 374, 373, 0, 497 506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 507 0, 0, 0, 0, 0, 0, 0, 208, 0, 0, 508 0, 286, 0, 141, 0, 179, 0, 0, 0, 0, 498 509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 499 132, 208, 0, 160, 0, 0, 278, 0, 0, 0, 500 0, 0, 266, 265, 0, 268, 267, 0, 0, 0, 501 337, 0, 366, 365, 0, 0, 0, 0, 0, 0, 502 510 0, 0, 0, 0, 0, 0, 0, 0, 240, 348, 511 0, 0, 0, 237, 0, 0, 313, 0, 0, 0, 503 512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 504 0, 0, 208, 0, 0, 0, 278, 0, 141, 0, 505 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,513 514 0, 0, 0, 0, 240, 348, 182, 0, 0, 0, 506 515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 507 0, 0, 0, 240, 340, 0, 0, 0, 237, 0, 508 0, 305, 0, 0, 0, 0, 0, 0, 0, 0, 509 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 510 340, 182, 0, 0, 0, 0, 0, 0, 0, 0, 511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 512 182, 0, 0, 275, 0, 371, 0, 0, 0, 0, 513 514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 515 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 516 0, 0, 0, 0, 0, 182, 0, 0, 283, 0, 517 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 518 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 519 519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 520 520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … … 542 542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 543 543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 544 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,545 544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 546 547 0, 0, 0, 0, 0, 0, 0, 14, 0, 0,548 0, 0, 0, 0, 0, 0, 0, 0, 17, 0,549 0, 0, 0, 18, 0, 22, 0, 0, 0, 0,550 545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 551 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 546 547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 548 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 551 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 552 0, 0, 0, 17, 0, 0, 0, 0, 18, 0, 553 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 555 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 557 552 558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553 559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 554 560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 556 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 557 561 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 558 562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 559 563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 560 0, 0, 0, 0, 0, 0, 0, 27, 0, 0,561 0, 0, 20, 0, 23, 0, 0, 0, 0
