From 91c0f0256821f0c93c6c339e19a5d17b949f820d Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Mon, 21 Sep 2009 15:30:43 +0000 Subject: [PATCH] deactive command buttons in solver UI while solver is running --- Fltk/menuWindow.cpp | 4 +- Fltk/solverWindow.cpp | 47 +- Parser/Gmsh.tab.cpp | 4104 ++++++++++++++++---------------- Parser/Gmsh.tab.hpp | 328 +-- Parser/Gmsh.yy.cpp | 125 +- Solver/dofManager.h | 4 +- Solver/helmholtzTerm.h | 2 +- utils/solvers/c++/GmshSocket.h | 183 +- utils/solvers/c++/solver.opt | 3 +- 9 files changed, 2449 insertions(+), 2351 deletions(-) diff --git a/Fltk/menuWindow.cpp b/Fltk/menuWindow.cpp index fbf43ea10e..74df90df47 100644 --- a/Fltk/menuWindow.cpp +++ b/Fltk/menuWindow.cpp @@ -2199,7 +2199,7 @@ static void view_applybgmesh_cb(Fl_Widget *w, void *data) } } -#define TEST_SERVER +//#define TEST_SERVER // The static menus (we cannot use the 'g', 'm' 's' and 'p' mnemonics // since they are already defined as global shortcuts) @@ -2484,7 +2484,7 @@ contextItem menu_mesh[] = { {"3D", (Fl_Callback *)mesh_3d_cb} , {"First order", (Fl_Callback *)mesh_degree_cb, (void*)1 } , {"Second order", (Fl_Callback *)mesh_degree_cb, (void*)2 } , - {"Refine", (Fl_Callback *)mesh_refine_cb} , + {"Refine by splitting", (Fl_Callback *)mesh_refine_cb} , {"Optimize", (Fl_Callback *)mesh_optimize_cb} , #if defined(HAVE_NETGEN) {"Optimize (Netgen)", (Fl_Callback *)mesh_optimize_netgen_cb} , diff --git a/Fltk/solverWindow.cpp b/Fltk/solverWindow.cpp index 22a2279673..c6ab9c7b2b 100644 --- a/Fltk/solverWindow.cpp +++ b/Fltk/solverWindow.cpp @@ -91,6 +91,21 @@ void GmshRemote::run(std::string args) return; } + // find solver num + int solverNum = 0; + for(std::map<int, GmshRemote*>::iterator it = _all.begin(); + it != _all.end(); it++){ + if(this == it->second) break; + solverNum++; + } + + // make command buttons inactive while running + if(solverNum >= 0 && solverNum < NB_SOLVER_MAX){ + for(unsigned int i = 0; i < buttonName.size(); i++) + if(buttonName[i].size()) + FlGui::instance()->solver[solverNum]->command[i]->deactivate(); + } + _pid = 0; _server = 0; FlGmshServer *server = new FlGmshServer(this); @@ -118,9 +133,13 @@ void GmshRemote::run(std::string args) if(sock < 0){ server->Shutdown(); delete server; + // reactivate buttons + for(unsigned int i = 0; i < buttonName.size(); i++) + if(buttonName[i].size()) + FlGui::instance()->solver[solverNum]->command[i]->activate(); return; } - + Msg::Info("Running '%s'...", name.c_str()); bool initOption[5] = {true, true, true, true, true}; @@ -213,25 +232,23 @@ void GmshRemote::run(std::string args) break; } } - - if(!initOption[0] || !initOption[1] || !initOption[2] || !initOption[3] || - !initOption[4]){ // some options have been changed - // find solver num - int num = 0; - for(std::map<int, GmshRemote*>::iterator it = _all.begin(); - it != _all.end(); it++){ - if(this == it->second) break; - num++; - } - if(num >= 0 && num < NB_SOLVER_MAX){ + + if(solverNum >= 0 && solverNum < NB_SOLVER_MAX){ + // some options have been changed: refill the menus + if(!initOption[0] || !initOption[1] || !initOption[2] || !initOption[3] || + !initOption[4]){ for(unsigned int i = 0; i < optionName.size(); i++) { if(optionName[i].empty()) break; - FlGui::instance()->solver[num]->choice[i]->clear(); + FlGui::instance()->solver[solverNum]->choice[i]->clear(); for(unsigned int j = 0; j < optionValue[i].size(); j++) - FlGui::instance()->solver[num]->choice[i]->add(optionValue[i][j].c_str()); - FlGui::instance()->solver[num]->choice[i]->value(0); + FlGui::instance()->solver[solverNum]->choice[i]->add(optionValue[i][j].c_str()); + FlGui::instance()->solver[solverNum]->choice[i]->value(0); } } + // reactivate buttons + for(unsigned int i = 0; i < buttonName.size(); i++) + if(buttonName[i].size()) + FlGui::instance()->solver[solverNum]->command[i]->activate(); } _server = 0; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 4dc7a81523..fe7a0ff17b 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -116,87 +116,88 @@ tToday = 297, tSyncModel = 298, tCreateTopology = 299, - tPoint = 300, - tCircle = 301, - tEllipse = 302, - tLine = 303, - tSphere = 304, - tPolarSphere = 305, - tSurface = 306, - tSpline = 307, - tVolume = 308, - tCharacteristic = 309, - tLength = 310, - tParametric = 311, - tElliptic = 312, - tPlane = 313, - tRuled = 314, - tTransfinite = 315, - tComplex = 316, - tPhysical = 317, - tCompound = 318, - tUsing = 319, - tPlugin = 320, - tDegenerated = 321, - tOCCShape = 322, - tRotate = 323, - tTranslate = 324, - tSymmetry = 325, - tDilate = 326, - tExtrude = 327, - tLevelset = 328, - tLoop = 329, - tRecombine = 330, - tSmoother = 331, - tSplit = 332, - tDelete = 333, - tCoherence = 334, - tIntersect = 335, - tLayers = 336, - tHole = 337, - tAlias = 338, - tAliasWithOptions = 339, - tText2D = 340, - tText3D = 341, - tInterpolationScheme = 342, - tTime = 343, - tCombine = 344, - tBSpline = 345, - tBezier = 346, - tNurbs = 347, - tNurbsOrder = 348, - tNurbsKnots = 349, - tColor = 350, - tColorTable = 351, - tFor = 352, - tIn = 353, - tEndFor = 354, - tIf = 355, - tEndIf = 356, - tExit = 357, - tField = 358, - tReturn = 359, - tCall = 360, - tFunction = 361, - tShow = 362, - tHide = 363, - tGetValue = 364, - tGMSH_MAJOR_VERSION = 365, - tGMSH_MINOR_VERSION = 366, - tGMSH_PATCH_VERSION = 367, - tAFFECTDIVIDE = 368, - tAFFECTTIMES = 369, - tAFFECTMINUS = 370, - tAFFECTPLUS = 371, - tOR = 372, - tAND = 373, - tNOTEQUAL = 374, - tEQUAL = 375, - tGREATEROREQUAL = 376, - tLESSOREQUAL = 377, - UNARYPREC = 378, - tMINUSMINUS = 379, - tPLUSPLUS = 380 + tDistanceFunction = 300, + tPoint = 301, + tCircle = 302, + tEllipse = 303, + tLine = 304, + tSphere = 305, + tPolarSphere = 306, + tSurface = 307, + tSpline = 308, + tVolume = 309, + tCharacteristic = 310, + tLength = 311, + tParametric = 312, + tElliptic = 313, + tPlane = 314, + tRuled = 315, + tTransfinite = 316, + tComplex = 317, + tPhysical = 318, + tCompound = 319, + tUsing = 320, + tPlugin = 321, + tDegenerated = 322, + tOCCShape = 323, + tRotate = 324, + tTranslate = 325, + tSymmetry = 326, + tDilate = 327, + tExtrude = 328, + tLevelset = 329, + tLoop = 330, + tRecombine = 331, + tSmoother = 332, + tSplit = 333, + tDelete = 334, + tCoherence = 335, + tIntersect = 336, + tLayers = 337, + tHole = 338, + tAlias = 339, + tAliasWithOptions = 340, + tText2D = 341, + tText3D = 342, + tInterpolationScheme = 343, + tTime = 344, + tCombine = 345, + tBSpline = 346, + tBezier = 347, + tNurbs = 348, + tNurbsOrder = 349, + tNurbsKnots = 350, + tColor = 351, + tColorTable = 352, + tFor = 353, + tIn = 354, + tEndFor = 355, + tIf = 356, + tEndIf = 357, + tExit = 358, + tField = 359, + tReturn = 360, + tCall = 361, + tFunction = 362, + tShow = 363, + tHide = 364, + tGetValue = 365, + tGMSH_MAJOR_VERSION = 366, + tGMSH_MINOR_VERSION = 367, + tGMSH_PATCH_VERSION = 368, + tAFFECTDIVIDE = 369, + tAFFECTTIMES = 370, + tAFFECTMINUS = 371, + tAFFECTPLUS = 372, + tOR = 373, + tAND = 374, + tNOTEQUAL = 375, + tEQUAL = 376, + tGREATEROREQUAL = 377, + tLESSOREQUAL = 378, + UNARYPREC = 379, + tMINUSMINUS = 380, + tPLUSPLUS = 381 }; #endif /* Tokens. */ @@ -242,87 +243,88 @@ #define tToday 297 #define tSyncModel 298 #define tCreateTopology 299 -#define tPoint 300 -#define tCircle 301 -#define tEllipse 302 -#define tLine 303 -#define tSphere 304 -#define tPolarSphere 305 -#define tSurface 306 -#define tSpline 307 -#define tVolume 308 -#define tCharacteristic 309 -#define tLength 310 -#define tParametric 311 -#define tElliptic 312 -#define tPlane 313 -#define tRuled 314 -#define tTransfinite 315 -#define tComplex 316 -#define tPhysical 317 -#define tCompound 318 -#define tUsing 319 -#define tPlugin 320 -#define tDegenerated 321 -#define tOCCShape 322 -#define tRotate 323 -#define tTranslate 324 -#define tSymmetry 325 -#define tDilate 326 -#define tExtrude 327 -#define tLevelset 328 -#define tLoop 329 -#define tRecombine 330 -#define tSmoother 331 -#define tSplit 332 -#define tDelete 333 -#define tCoherence 334 -#define tIntersect 335 -#define tLayers 336 -#define tHole 337 -#define tAlias 338 -#define tAliasWithOptions 339 -#define tText2D 340 -#define tText3D 341 -#define tInterpolationScheme 342 -#define tTime 343 -#define tCombine 344 -#define tBSpline 345 -#define tBezier 346 -#define tNurbs 347 -#define tNurbsOrder 348 -#define tNurbsKnots 349 -#define tColor 350 -#define tColorTable 351 -#define tFor 352 -#define tIn 353 -#define tEndFor 354 -#define tIf 355 -#define tEndIf 356 -#define tExit 357 -#define tField 358 -#define tReturn 359 -#define tCall 360 -#define tFunction 361 -#define tShow 362 -#define tHide 363 -#define tGetValue 364 -#define tGMSH_MAJOR_VERSION 365 -#define tGMSH_MINOR_VERSION 366 -#define tGMSH_PATCH_VERSION 367 -#define tAFFECTDIVIDE 368 -#define tAFFECTTIMES 369 -#define tAFFECTMINUS 370 -#define tAFFECTPLUS 371 -#define tOR 372 -#define tAND 373 -#define tNOTEQUAL 374 -#define tEQUAL 375 -#define tGREATEROREQUAL 376 -#define tLESSOREQUAL 377 -#define UNARYPREC 378 -#define tMINUSMINUS 379 -#define tPLUSPLUS 380 +#define tDistanceFunction 300 +#define tPoint 301 +#define tCircle 302 +#define tEllipse 303 +#define tLine 304 +#define tSphere 305 +#define tPolarSphere 306 +#define tSurface 307 +#define tSpline 308 +#define tVolume 309 +#define tCharacteristic 310 +#define tLength 311 +#define tParametric 312 +#define tElliptic 313 +#define tPlane 314 +#define tRuled 315 +#define tTransfinite 316 +#define tComplex 317 +#define tPhysical 318 +#define tCompound 319 +#define tUsing 320 +#define tPlugin 321 +#define tDegenerated 322 +#define tOCCShape 323 +#define tRotate 324 +#define tTranslate 325 +#define tSymmetry 326 +#define tDilate 327 +#define tExtrude 328 +#define tLevelset 329 +#define tLoop 330 +#define tRecombine 331 +#define tSmoother 332 +#define tSplit 333 +#define tDelete 334 +#define tCoherence 335 +#define tIntersect 336 +#define tLayers 337 +#define tHole 338 +#define tAlias 339 +#define tAliasWithOptions 340 +#define tText2D 341 +#define tText3D 342 +#define tInterpolationScheme 343 +#define tTime 344 +#define tCombine 345 +#define tBSpline 346 +#define tBezier 347 +#define tNurbs 348 +#define tNurbsOrder 349 +#define tNurbsKnots 350 +#define tColor 351 +#define tColorTable 352 +#define tFor 353 +#define tIn 354 +#define tEndFor 355 +#define tIf 356 +#define tEndIf 357 +#define tExit 358 +#define tField 359 +#define tReturn 360 +#define tCall 361 +#define tFunction 362 +#define tShow 363 +#define tHide 364 +#define tGetValue 365 +#define tGMSH_MAJOR_VERSION 366 +#define tGMSH_MINOR_VERSION 367 +#define tGMSH_PATCH_VERSION 368 +#define tAFFECTDIVIDE 369 +#define tAFFECTTIMES 370 +#define tAFFECTMINUS 371 +#define tAFFECTPLUS 372 +#define tOR 373 +#define tAND 374 +#define tNOTEQUAL 375 +#define tEQUAL 376 +#define tGREATEROREQUAL 377 +#define tLESSOREQUAL 378 +#define UNARYPREC 379 +#define tMINUSMINUS 380 +#define tPLUSPLUS 381 @@ -437,7 +439,7 @@ typedef union YYSTYPE List_T *l; } /* Line 193 of yacc.c. */ -#line 441 "Gmsh.tab.cpp" +#line 443 "Gmsh.tab.cpp" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -450,7 +452,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 454 "Gmsh.tab.cpp" +#line 456 "Gmsh.tab.cpp" #ifdef short # undef short @@ -665,10 +667,10 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 6948 +#define YYLAST 6994 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 146 +#define YYNTOKENS 147 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 79 /* YYNRULES -- Number of rules. */ @@ -678,7 +680,7 @@ union yyalloc /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 380 +#define YYMAXUTOK 381 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -689,16 +691,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 131, 2, 141, 2, 130, 2, 2, - 136, 137, 128, 126, 142, 127, 140, 129, 2, 2, + 2, 2, 2, 132, 2, 142, 2, 131, 2, 2, + 137, 138, 129, 127, 143, 128, 141, 130, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 122, 2, 123, 117, 2, 2, 2, 2, 2, 2, + 123, 2, 124, 118, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 138, 2, 139, 135, 2, 2, 2, 2, 2, + 2, 139, 2, 140, 136, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 143, 2, 144, 145, 2, 2, 2, + 2, 2, 2, 144, 2, 145, 146, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -723,8 +725,8 @@ static const yytype_uint8 yytranslate[] = 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 118, 119, 120, 121, 124, 125, 132, 133, - 134 + 115, 116, 117, 119, 120, 121, 122, 125, 126, 133, + 134, 135 }; #if YYDEBUG @@ -775,224 +777,224 @@ static const yytype_uint16 yyprhs[] = /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 147, 0, -1, 148, -1, 1, 6, -1, -1, 148, - 149, -1, 152, -1, 151, -1, 170, -1, 174, -1, - 179, -1, 183, -1, 184, -1, 185, -1, 188, -1, - 208, -1, 209, -1, 210, -1, 187, -1, 186, -1, - 182, -1, 123, -1, 123, 123, -1, 35, 136, 5, - 137, 6, -1, 35, 136, 5, 137, 150, 223, 6, - -1, 35, 136, 5, 142, 219, 137, 6, -1, 35, - 136, 5, 142, 219, 137, 150, 223, 6, -1, 4, - 5, 143, 153, 144, 6, -1, 83, 4, 138, 211, - 139, 6, -1, 84, 4, 138, 211, 139, 6, -1, - -1, 153, 156, -1, 153, 160, -1, 153, 163, -1, - 153, 165, -1, 153, 166, -1, 211, -1, 154, 142, - 211, -1, 211, -1, 155, 142, 211, -1, -1, -1, - 4, 157, 136, 154, 137, 158, 143, 155, 144, 6, - -1, 223, -1, 159, 142, 223, -1, -1, 85, 136, - 211, 142, 211, 142, 211, 137, 161, 143, 159, 144, - 6, -1, 223, -1, 162, 142, 223, -1, -1, 86, - 136, 211, 142, 211, 142, 211, 142, 211, 137, 164, - 143, 162, 144, 6, -1, 87, 143, 215, 144, 143, - 215, 144, 6, -1, 87, 143, 215, 144, 143, 215, - 144, 143, 215, 144, 143, 215, 144, 6, -1, -1, - 88, 167, 143, 155, 144, 6, -1, 7, -1, 116, - -1, 115, -1, 114, -1, 113, -1, 134, -1, 133, - -1, 4, 168, 211, 6, -1, 4, 138, 211, 139, - 168, 211, 6, -1, 4, 138, 143, 219, 144, 139, - 168, 216, 6, -1, 4, 138, 139, 7, 216, 6, - -1, 4, 138, 139, 116, 216, 6, -1, 4, 169, - 6, -1, 4, 138, 211, 139, 169, 6, -1, 4, - 7, 224, 6, -1, 4, 140, 4, 7, 224, 6, - -1, 4, 138, 211, 139, 140, 4, 7, 224, 6, - -1, 4, 140, 4, 168, 211, 6, -1, 4, 138, - 211, 139, 140, 4, 168, 211, 6, -1, 4, 140, - 4, 169, 6, -1, 4, 138, 211, 139, 140, 4, - 169, 6, -1, 4, 140, 95, 140, 4, 7, 220, - 6, -1, 4, 138, 211, 139, 140, 95, 140, 4, - 7, 220, 6, -1, 4, 140, 96, 7, 221, 6, - -1, 4, 138, 211, 139, 140, 96, 7, 221, 6, - -1, 4, 103, 7, 211, 6, -1, 103, 138, 211, - 139, 7, 4, 6, -1, 103, 138, 211, 139, 140, - 4, 7, 211, 6, -1, 103, 138, 211, 139, 140, - 4, 7, 224, 6, -1, 103, 138, 211, 139, 140, - 4, 7, 143, 219, 144, 6, -1, 65, 136, 4, - 137, 140, 4, 7, 211, 6, -1, 65, 136, 4, - 137, 140, 4, 7, 224, 6, -1, 211, -1, 224, - -1, -1, 98, 49, 143, 211, 144, -1, -1, 58, - 213, -1, 45, 136, 211, 137, 7, 213, 6, -1, - -1, 62, 45, 175, 136, 171, 137, 7, 216, 6, - -1, 54, 55, 216, 7, 211, 6, -1, 48, 136, - 211, 137, 7, 216, 6, -1, 66, 48, 216, 6, - -1, 52, 136, 211, 137, 7, 216, 6, -1, 46, - 136, 211, 137, 7, 216, 173, 6, -1, 47, 136, - 211, 137, 7, 216, 173, 6, -1, 90, 136, 211, - 137, 7, 216, 6, -1, 91, 136, 211, 137, 7, - 216, 6, -1, 92, 136, 211, 137, 7, 216, 94, - 216, 93, 211, 6, -1, 48, 74, 136, 211, 137, - 7, 216, 6, -1, -1, 62, 48, 176, 136, 171, - 137, 7, 216, 6, -1, 58, 51, 136, 211, 137, - 7, 216, 6, -1, 59, 51, 136, 211, 137, 7, - 216, 172, 6, -1, 12, 13, 6, -1, 13, 51, - 211, 6, -1, 56, 51, 136, 211, 137, 7, 5, - 5, 5, 6, -1, 49, 136, 211, 137, 7, 216, - 6, -1, 50, 136, 211, 137, 7, 216, 6, -1, - 51, 74, 136, 211, 137, 7, 216, 6, -1, -1, - 62, 51, 177, 136, 171, 137, 7, 216, 6, -1, - 63, 53, 136, 211, 137, 7, 216, 6, -1, 63, - 51, 136, 211, 137, 7, 216, 4, 143, 215, 144, - 6, -1, 63, 51, 136, 211, 137, 7, 216, 6, - -1, 63, 48, 136, 211, 137, 7, 216, 6, -1, - 61, 53, 136, 211, 137, 7, 216, 6, -1, 53, - 136, 211, 137, 7, 216, 6, -1, 67, 136, 5, - 142, 216, 142, 5, 137, 6, -1, -1, 62, 53, - 178, 136, 171, 137, 7, 216, 6, -1, 69, 213, - 143, 180, 144, -1, 68, 143, 213, 142, 213, 142, - 211, 144, 143, 180, 144, -1, 70, 213, 143, 180, - 144, -1, 71, 143, 213, 142, 211, 144, 143, 180, - 144, -1, 4, 143, 180, 144, -1, 80, 48, 143, - 219, 144, 51, 143, 211, 144, -1, 77, 48, 136, - 211, 137, 143, 219, 144, 6, -1, 181, -1, 179, - -1, -1, 181, 174, -1, 181, 45, 143, 219, 144, - 6, -1, 181, 48, 143, 219, 144, 6, -1, 181, - 51, 143, 219, 144, 6, -1, 181, 53, 143, 219, - 144, 6, -1, 73, 58, 136, 211, 137, 7, 216, - 6, -1, 73, 58, 136, 211, 137, 7, 143, 213, - 142, 213, 142, 219, 144, 6, -1, 73, 58, 136, - 211, 137, 7, 143, 213, 142, 213, 142, 213, 142, - 219, 144, 6, -1, 73, 49, 136, 211, 137, 7, - 143, 213, 142, 219, 144, 6, -1, 73, 4, 136, - 211, 137, 7, 216, 6, -1, 73, 4, 136, 211, - 137, 7, 5, 6, -1, 73, 4, 143, 211, 144, - 6, -1, 73, 4, 136, 211, 137, 7, 143, 213, - 142, 213, 142, 219, 144, 6, -1, 78, 143, 181, - 144, -1, 78, 103, 138, 211, 139, 6, -1, 78, - 4, 138, 211, 139, 6, -1, 78, 4, 6, -1, - 78, 4, 4, 6, -1, 95, 220, 143, 181, 144, - -1, 107, 5, 6, -1, 108, 5, 6, -1, 107, - 143, 181, 144, -1, 108, 143, 181, 144, -1, 4, - 224, 6, -1, 4, 4, 138, 211, 139, 223, 6, - -1, 4, 4, 4, 138, 211, 139, 6, -1, 4, - 211, 6, -1, 65, 136, 4, 137, 140, 4, 6, - -1, 89, 4, 6, -1, 102, 6, -1, 43, 6, - -1, 40, 6, -1, 40, 143, 211, 142, 211, 142, - 211, 142, 211, 142, 211, 142, 211, 144, 6, -1, - 41, 6, -1, 44, 6, -1, 97, 136, 211, 8, - 211, 137, -1, 97, 136, 211, 8, 211, 8, 211, - 137, -1, 97, 4, 98, 143, 211, 8, 211, 144, - -1, 97, 4, 98, 143, 211, 8, 211, 8, 211, - 144, -1, 99, -1, 106, 4, -1, 104, -1, 105, - 4, 6, -1, 100, 136, 211, 137, -1, 101, -1, - 72, 213, 143, 181, 144, -1, 72, 143, 213, 142, - 213, 142, 211, 144, 143, 181, 144, -1, 72, 143, - 213, 142, 213, 142, 213, 142, 211, 144, 143, 181, - 144, -1, -1, 72, 213, 143, 181, 189, 202, 144, - -1, -1, 72, 143, 213, 142, 213, 142, 211, 144, - 143, 181, 190, 202, 144, -1, -1, 72, 143, 213, - 142, 213, 142, 213, 142, 211, 144, 143, 181, 191, - 202, 144, -1, -1, 72, 143, 181, 192, 202, 144, - -1, 72, 45, 143, 211, 142, 213, 144, 6, -1, - 72, 48, 143, 211, 142, 213, 144, 6, -1, 72, - 51, 143, 211, 142, 213, 144, 6, -1, 72, 45, - 143, 211, 142, 213, 142, 213, 142, 211, 144, 6, - -1, 72, 48, 143, 211, 142, 213, 142, 213, 142, - 211, 144, 6, -1, 72, 51, 143, 211, 142, 213, - 142, 213, 142, 211, 144, 6, -1, 72, 45, 143, - 211, 142, 213, 142, 213, 142, 213, 142, 211, 144, - 6, -1, 72, 48, 143, 211, 142, 213, 142, 213, - 142, 213, 142, 211, 144, 6, -1, 72, 51, 143, - 211, 142, 213, 142, 213, 142, 213, 142, 211, 144, - 6, -1, -1, 72, 45, 143, 211, 142, 213, 144, - 193, 143, 202, 144, 6, -1, -1, 72, 48, 143, - 211, 142, 213, 144, 194, 143, 202, 144, 6, -1, - -1, 72, 51, 143, 211, 142, 213, 144, 195, 143, - 202, 144, 6, -1, -1, 72, 45, 143, 211, 142, - 213, 142, 213, 142, 211, 144, 196, 143, 202, 144, - 6, -1, -1, 72, 48, 143, 211, 142, 213, 142, - 213, 142, 211, 144, 197, 143, 202, 144, 6, -1, - -1, 72, 51, 143, 211, 142, 213, 142, 213, 142, - 211, 144, 198, 143, 202, 144, 6, -1, -1, 72, - 45, 143, 211, 142, 213, 142, 213, 142, 213, 142, - 211, 144, 199, 143, 202, 144, 6, -1, -1, 72, - 48, 143, 211, 142, 213, 142, 213, 142, 213, 142, - 211, 144, 200, 143, 202, 144, 6, -1, -1, 72, - 51, 143, 211, 142, 213, 142, 213, 142, 213, 142, - 211, 144, 201, 143, 202, 144, 6, -1, 203, -1, - 202, 203, -1, 81, 143, 211, 144, 6, -1, 81, - 143, 216, 142, 216, 144, 6, -1, 81, 143, 216, - 142, 216, 142, 216, 144, 6, -1, 75, 6, -1, - 82, 136, 211, 137, 7, 216, 64, 211, 6, -1, - -1, 64, 4, 211, -1, -1, 4, -1, -1, 7, - 216, -1, -1, 7, 211, -1, 60, 48, 217, 7, - 211, 204, 6, -1, 60, 51, 217, 206, 205, 6, - -1, 57, 51, 143, 211, 144, 7, 216, 6, -1, - 60, 53, 217, 206, 6, -1, 75, 51, 217, 207, - 6, -1, 76, 51, 216, 7, 211, 6, -1, 45, - 143, 219, 144, 98, 51, 143, 211, 144, 6, -1, - 48, 143, 219, 144, 98, 51, 143, 211, 144, 6, - -1, 48, 143, 219, 144, 98, 53, 143, 211, 144, - 6, -1, 51, 143, 219, 144, 98, 53, 143, 211, - 144, 6, -1, 79, 6, -1, 79, 4, 6, -1, - 212, -1, 136, 211, 137, -1, 127, 211, -1, 126, - 211, -1, 131, 211, -1, 211, 127, 211, -1, 211, - 126, 211, -1, 211, 128, 211, -1, 211, 129, 211, - -1, 211, 130, 211, -1, 211, 135, 211, -1, 211, - 122, 211, -1, 211, 123, 211, -1, 211, 125, 211, - -1, 211, 124, 211, -1, 211, 121, 211, -1, 211, - 120, 211, -1, 211, 119, 211, -1, 211, 118, 211, - -1, 211, 117, 211, 8, 211, -1, 14, 136, 211, - 137, -1, 15, 136, 211, 137, -1, 16, 136, 211, - 137, -1, 17, 136, 211, 137, -1, 18, 136, 211, - 137, -1, 19, 136, 211, 137, -1, 20, 136, 211, - 137, -1, 21, 136, 211, 137, -1, 22, 136, 211, - 137, -1, 24, 136, 211, 137, -1, 25, 136, 211, - 142, 211, 137, -1, 26, 136, 211, 137, -1, 27, - 136, 211, 137, -1, 28, 136, 211, 137, -1, 29, - 136, 211, 137, -1, 30, 136, 211, 137, -1, 31, - 136, 211, 137, -1, 32, 136, 211, 142, 211, 137, - -1, 33, 136, 211, 142, 211, 137, -1, 34, 136, - 211, 142, 211, 137, -1, 23, 136, 211, 137, -1, - 14, 138, 211, 139, -1, 15, 138, 211, 139, -1, - 16, 138, 211, 139, -1, 17, 138, 211, 139, -1, - 18, 138, 211, 139, -1, 19, 138, 211, 139, -1, - 20, 138, 211, 139, -1, 21, 138, 211, 139, -1, - 22, 138, 211, 139, -1, 24, 138, 211, 139, -1, - 25, 138, 211, 142, 211, 139, -1, 26, 138, 211, - 139, -1, 27, 138, 211, 139, -1, 28, 138, 211, - 139, -1, 29, 138, 211, 139, -1, 30, 138, 211, - 139, -1, 31, 138, 211, 139, -1, 32, 138, 211, - 142, 211, 139, -1, 33, 138, 211, 142, 211, 139, - -1, 34, 138, 211, 142, 211, 139, -1, 23, 138, - 211, 139, -1, 3, -1, 9, -1, 10, -1, 11, - -1, 110, -1, 111, -1, 112, -1, 4, -1, 4, - 145, 143, 211, 144, -1, 4, 138, 211, 139, -1, - 141, 4, 138, 139, -1, 4, 169, -1, 4, 138, - 211, 139, 169, -1, 4, 140, 4, -1, 4, 138, - 211, 139, 140, 4, -1, 4, 140, 4, 169, -1, - 4, 138, 211, 139, 140, 4, 169, -1, 109, 136, - 5, 142, 211, 137, -1, 214, -1, 127, 213, -1, - 126, 213, -1, 213, 127, 213, -1, 213, 126, 213, - -1, 143, 211, 142, 211, 142, 211, 142, 211, 142, - 211, 144, -1, 143, 211, 142, 211, 142, 211, 142, - 211, 144, -1, 143, 211, 142, 211, 142, 211, 144, - -1, 136, 211, 142, 211, 142, 211, 137, -1, 216, - -1, 215, 142, 216, -1, 211, -1, 218, -1, 143, - 144, -1, 143, 219, 144, -1, 127, 143, 219, 144, - -1, 211, 128, 143, 219, 144, -1, 216, -1, 5, - -1, 127, 218, -1, 211, 128, 218, -1, 211, 8, - 211, -1, 211, 8, 211, 8, 211, -1, 45, 143, - 211, 144, -1, 179, -1, 188, -1, 4, 138, 139, - -1, 4, 138, 143, 219, 144, 139, -1, 211, -1, - 218, -1, 219, 142, 211, -1, 219, 142, 218, -1, - 143, 211, 142, 211, 142, 211, 142, 211, 144, -1, - 143, 211, 142, 211, 142, 211, 144, -1, 4, -1, - 4, 140, 95, 140, 4, -1, 143, 222, 144, -1, - 4, 138, 211, 139, 140, 96, -1, 220, -1, 222, - 142, 220, -1, 224, -1, 4, -1, 4, 140, 4, - -1, 4, 138, 211, 139, 140, 4, -1, 5, -1, - 42, -1, 37, 136, 223, 142, 223, 137, -1, 38, - 136, 223, 137, -1, 39, 136, 223, 137, -1, 36, - 136, 223, 137, -1, 36, 136, 223, 142, 219, 137, + 148, 0, -1, 149, -1, 1, 6, -1, -1, 149, + 150, -1, 153, -1, 152, -1, 171, -1, 175, -1, + 180, -1, 184, -1, 185, -1, 186, -1, 189, -1, + 209, -1, 210, -1, 211, -1, 188, -1, 187, -1, + 183, -1, 124, -1, 124, 124, -1, 35, 137, 5, + 138, 6, -1, 35, 137, 5, 138, 151, 224, 6, + -1, 35, 137, 5, 143, 220, 138, 6, -1, 35, + 137, 5, 143, 220, 138, 151, 224, 6, -1, 4, + 5, 144, 154, 145, 6, -1, 84, 4, 139, 212, + 140, 6, -1, 85, 4, 139, 212, 140, 6, -1, + -1, 154, 157, -1, 154, 161, -1, 154, 164, -1, + 154, 166, -1, 154, 167, -1, 212, -1, 155, 143, + 212, -1, 212, -1, 156, 143, 212, -1, -1, -1, + 4, 158, 137, 155, 138, 159, 144, 156, 145, 6, + -1, 224, -1, 160, 143, 224, -1, -1, 86, 137, + 212, 143, 212, 143, 212, 138, 162, 144, 160, 145, + 6, -1, 224, -1, 163, 143, 224, -1, -1, 87, + 137, 212, 143, 212, 143, 212, 143, 212, 138, 165, + 144, 163, 145, 6, -1, 88, 144, 216, 145, 144, + 216, 145, 6, -1, 88, 144, 216, 145, 144, 216, + 145, 144, 216, 145, 144, 216, 145, 6, -1, -1, + 89, 168, 144, 156, 145, 6, -1, 7, -1, 117, + -1, 116, -1, 115, -1, 114, -1, 135, -1, 134, + -1, 4, 169, 212, 6, -1, 4, 139, 212, 140, + 169, 212, 6, -1, 4, 139, 144, 220, 145, 140, + 169, 217, 6, -1, 4, 139, 140, 7, 217, 6, + -1, 4, 139, 140, 117, 217, 6, -1, 4, 170, + 6, -1, 4, 139, 212, 140, 170, 6, -1, 4, + 7, 225, 6, -1, 4, 141, 4, 7, 225, 6, + -1, 4, 139, 212, 140, 141, 4, 7, 225, 6, + -1, 4, 141, 4, 169, 212, 6, -1, 4, 139, + 212, 140, 141, 4, 169, 212, 6, -1, 4, 141, + 4, 170, 6, -1, 4, 139, 212, 140, 141, 4, + 170, 6, -1, 4, 141, 96, 141, 4, 7, 221, + 6, -1, 4, 139, 212, 140, 141, 96, 141, 4, + 7, 221, 6, -1, 4, 141, 97, 7, 222, 6, + -1, 4, 139, 212, 140, 141, 97, 7, 222, 6, + -1, 4, 104, 7, 212, 6, -1, 104, 139, 212, + 140, 7, 4, 6, -1, 104, 139, 212, 140, 141, + 4, 7, 212, 6, -1, 104, 139, 212, 140, 141, + 4, 7, 225, 6, -1, 104, 139, 212, 140, 141, + 4, 7, 144, 220, 145, 6, -1, 66, 137, 4, + 138, 141, 4, 7, 212, 6, -1, 66, 137, 4, + 138, 141, 4, 7, 225, 6, -1, 212, -1, 225, + -1, -1, 99, 50, 144, 212, 145, -1, -1, 59, + 214, -1, 46, 137, 212, 138, 7, 214, 6, -1, + -1, 63, 46, 176, 137, 172, 138, 7, 217, 6, + -1, 55, 56, 217, 7, 212, 6, -1, 49, 137, + 212, 138, 7, 217, 6, -1, 67, 49, 217, 6, + -1, 53, 137, 212, 138, 7, 217, 6, -1, 47, + 137, 212, 138, 7, 217, 174, 6, -1, 48, 137, + 212, 138, 7, 217, 174, 6, -1, 91, 137, 212, + 138, 7, 217, 6, -1, 92, 137, 212, 138, 7, + 217, 6, -1, 93, 137, 212, 138, 7, 217, 95, + 217, 94, 212, 6, -1, 49, 75, 137, 212, 138, + 7, 217, 6, -1, -1, 63, 49, 177, 137, 172, + 138, 7, 217, 6, -1, 59, 52, 137, 212, 138, + 7, 217, 6, -1, 60, 52, 137, 212, 138, 7, + 217, 173, 6, -1, 12, 13, 6, -1, 13, 52, + 212, 6, -1, 57, 52, 137, 212, 138, 7, 5, + 5, 5, 6, -1, 50, 137, 212, 138, 7, 217, + 6, -1, 51, 137, 212, 138, 7, 217, 6, -1, + 52, 75, 137, 212, 138, 7, 217, 6, -1, -1, + 63, 52, 178, 137, 172, 138, 7, 217, 6, -1, + 64, 54, 137, 212, 138, 7, 217, 6, -1, 64, + 52, 137, 212, 138, 7, 217, 4, 144, 216, 145, + 6, -1, 64, 52, 137, 212, 138, 7, 217, 6, + -1, 64, 49, 137, 212, 138, 7, 217, 6, -1, + 62, 54, 137, 212, 138, 7, 217, 6, -1, 54, + 137, 212, 138, 7, 217, 6, -1, 68, 137, 5, + 143, 217, 143, 5, 138, 6, -1, -1, 63, 54, + 179, 137, 172, 138, 7, 217, 6, -1, 70, 214, + 144, 181, 145, -1, 69, 144, 214, 143, 214, 143, + 212, 145, 144, 181, 145, -1, 71, 214, 144, 181, + 145, -1, 72, 144, 214, 143, 212, 145, 144, 181, + 145, -1, 4, 144, 181, 145, -1, 81, 49, 144, + 220, 145, 52, 144, 212, 145, -1, 78, 49, 137, + 212, 138, 144, 220, 145, 6, -1, 182, -1, 180, + -1, -1, 182, 175, -1, 182, 46, 144, 220, 145, + 6, -1, 182, 49, 144, 220, 145, 6, -1, 182, + 52, 144, 220, 145, 6, -1, 182, 54, 144, 220, + 145, 6, -1, 74, 59, 137, 212, 138, 7, 217, + 6, -1, 74, 59, 137, 212, 138, 7, 144, 214, + 143, 214, 143, 220, 145, 6, -1, 74, 59, 137, + 212, 138, 7, 144, 214, 143, 214, 143, 214, 143, + 220, 145, 6, -1, 74, 50, 137, 212, 138, 7, + 144, 214, 143, 220, 145, 6, -1, 74, 4, 137, + 212, 138, 7, 217, 6, -1, 74, 4, 137, 212, + 138, 7, 5, 6, -1, 74, 4, 144, 212, 145, + 6, -1, 74, 4, 137, 212, 138, 7, 144, 214, + 143, 214, 143, 220, 145, 6, -1, 79, 144, 182, + 145, -1, 79, 104, 139, 212, 140, 6, -1, 79, + 4, 139, 212, 140, 6, -1, 79, 4, 6, -1, + 79, 4, 4, 6, -1, 96, 221, 144, 182, 145, + -1, 108, 5, 6, -1, 109, 5, 6, -1, 108, + 144, 182, 145, -1, 109, 144, 182, 145, -1, 4, + 225, 6, -1, 4, 4, 139, 212, 140, 224, 6, + -1, 4, 4, 4, 139, 212, 140, 6, -1, 4, + 212, 6, -1, 66, 137, 4, 138, 141, 4, 6, + -1, 90, 4, 6, -1, 103, 6, -1, 43, 6, + -1, 40, 6, -1, 40, 144, 212, 143, 212, 143, + 212, 143, 212, 143, 212, 143, 212, 145, 6, -1, + 41, 6, -1, 44, 6, -1, 98, 137, 212, 8, + 212, 138, -1, 98, 137, 212, 8, 212, 8, 212, + 138, -1, 98, 4, 99, 144, 212, 8, 212, 145, + -1, 98, 4, 99, 144, 212, 8, 212, 8, 212, + 145, -1, 100, -1, 107, 4, -1, 105, -1, 106, + 4, 6, -1, 101, 137, 212, 138, -1, 102, -1, + 73, 214, 144, 182, 145, -1, 73, 144, 214, 143, + 214, 143, 212, 145, 144, 182, 145, -1, 73, 144, + 214, 143, 214, 143, 214, 143, 212, 145, 144, 182, + 145, -1, -1, 73, 214, 144, 182, 190, 203, 145, + -1, -1, 73, 144, 214, 143, 214, 143, 212, 145, + 144, 182, 191, 203, 145, -1, -1, 73, 144, 214, + 143, 214, 143, 214, 143, 212, 145, 144, 182, 192, + 203, 145, -1, -1, 73, 144, 182, 193, 203, 145, + -1, 73, 46, 144, 212, 143, 214, 145, 6, -1, + 73, 49, 144, 212, 143, 214, 145, 6, -1, 73, + 52, 144, 212, 143, 214, 145, 6, -1, 73, 46, + 144, 212, 143, 214, 143, 214, 143, 212, 145, 6, + -1, 73, 49, 144, 212, 143, 214, 143, 214, 143, + 212, 145, 6, -1, 73, 52, 144, 212, 143, 214, + 143, 214, 143, 212, 145, 6, -1, 73, 46, 144, + 212, 143, 214, 143, 214, 143, 214, 143, 212, 145, + 6, -1, 73, 49, 144, 212, 143, 214, 143, 214, + 143, 214, 143, 212, 145, 6, -1, 73, 52, 144, + 212, 143, 214, 143, 214, 143, 214, 143, 212, 145, + 6, -1, -1, 73, 46, 144, 212, 143, 214, 145, + 194, 144, 203, 145, 6, -1, -1, 73, 49, 144, + 212, 143, 214, 145, 195, 144, 203, 145, 6, -1, + -1, 73, 52, 144, 212, 143, 214, 145, 196, 144, + 203, 145, 6, -1, -1, 73, 46, 144, 212, 143, + 214, 143, 214, 143, 212, 145, 197, 144, 203, 145, + 6, -1, -1, 73, 49, 144, 212, 143, 214, 143, + 214, 143, 212, 145, 198, 144, 203, 145, 6, -1, + -1, 73, 52, 144, 212, 143, 214, 143, 214, 143, + 212, 145, 199, 144, 203, 145, 6, -1, -1, 73, + 46, 144, 212, 143, 214, 143, 214, 143, 214, 143, + 212, 145, 200, 144, 203, 145, 6, -1, -1, 73, + 49, 144, 212, 143, 214, 143, 214, 143, 214, 143, + 212, 145, 201, 144, 203, 145, 6, -1, -1, 73, + 52, 144, 212, 143, 214, 143, 214, 143, 214, 143, + 212, 145, 202, 144, 203, 145, 6, -1, 204, -1, + 203, 204, -1, 82, 144, 212, 145, 6, -1, 82, + 144, 217, 143, 217, 145, 6, -1, 82, 144, 217, + 143, 217, 143, 217, 145, 6, -1, 76, 6, -1, + 83, 137, 212, 138, 7, 217, 65, 212, 6, -1, + -1, 65, 4, 212, -1, -1, 4, -1, -1, 7, + 217, -1, -1, 7, 212, -1, 61, 49, 218, 7, + 212, 205, 6, -1, 61, 52, 218, 207, 206, 6, + -1, 58, 52, 144, 212, 145, 7, 217, 6, -1, + 61, 54, 218, 207, 6, -1, 76, 52, 218, 208, + 6, -1, 77, 52, 217, 7, 212, 6, -1, 46, + 144, 220, 145, 99, 52, 144, 212, 145, 6, -1, + 49, 144, 220, 145, 99, 52, 144, 212, 145, 6, + -1, 49, 144, 220, 145, 99, 54, 144, 212, 145, + 6, -1, 52, 144, 220, 145, 99, 54, 144, 212, + 145, 6, -1, 80, 6, -1, 80, 4, 6, -1, + 213, -1, 137, 212, 138, -1, 128, 212, -1, 127, + 212, -1, 132, 212, -1, 212, 128, 212, -1, 212, + 127, 212, -1, 212, 129, 212, -1, 212, 130, 212, + -1, 212, 131, 212, -1, 212, 136, 212, -1, 212, + 123, 212, -1, 212, 124, 212, -1, 212, 126, 212, + -1, 212, 125, 212, -1, 212, 122, 212, -1, 212, + 121, 212, -1, 212, 120, 212, -1, 212, 119, 212, + -1, 212, 118, 212, 8, 212, -1, 14, 137, 212, + 138, -1, 15, 137, 212, 138, -1, 16, 137, 212, + 138, -1, 17, 137, 212, 138, -1, 18, 137, 212, + 138, -1, 19, 137, 212, 138, -1, 20, 137, 212, + 138, -1, 21, 137, 212, 138, -1, 22, 137, 212, + 138, -1, 24, 137, 212, 138, -1, 25, 137, 212, + 143, 212, 138, -1, 26, 137, 212, 138, -1, 27, + 137, 212, 138, -1, 28, 137, 212, 138, -1, 29, + 137, 212, 138, -1, 30, 137, 212, 138, -1, 31, + 137, 212, 138, -1, 32, 137, 212, 143, 212, 138, + -1, 33, 137, 212, 143, 212, 138, -1, 34, 137, + 212, 143, 212, 138, -1, 23, 137, 212, 138, -1, + 14, 139, 212, 140, -1, 15, 139, 212, 140, -1, + 16, 139, 212, 140, -1, 17, 139, 212, 140, -1, + 18, 139, 212, 140, -1, 19, 139, 212, 140, -1, + 20, 139, 212, 140, -1, 21, 139, 212, 140, -1, + 22, 139, 212, 140, -1, 24, 139, 212, 140, -1, + 25, 139, 212, 143, 212, 140, -1, 26, 139, 212, + 140, -1, 27, 139, 212, 140, -1, 28, 139, 212, + 140, -1, 29, 139, 212, 140, -1, 30, 139, 212, + 140, -1, 31, 139, 212, 140, -1, 32, 139, 212, + 143, 212, 140, -1, 33, 139, 212, 143, 212, 140, + -1, 34, 139, 212, 143, 212, 140, -1, 23, 139, + 212, 140, -1, 3, -1, 9, -1, 10, -1, 11, + -1, 111, -1, 112, -1, 113, -1, 4, -1, 4, + 146, 144, 212, 145, -1, 4, 139, 212, 140, -1, + 142, 4, 139, 140, -1, 4, 170, -1, 4, 139, + 212, 140, 170, -1, 4, 141, 4, -1, 4, 139, + 212, 140, 141, 4, -1, 4, 141, 4, 170, -1, + 4, 139, 212, 140, 141, 4, 170, -1, 110, 137, + 5, 143, 212, 138, -1, 215, -1, 128, 214, -1, + 127, 214, -1, 214, 128, 214, -1, 214, 127, 214, + -1, 144, 212, 143, 212, 143, 212, 143, 212, 143, + 212, 145, -1, 144, 212, 143, 212, 143, 212, 143, + 212, 145, -1, 144, 212, 143, 212, 143, 212, 145, + -1, 137, 212, 143, 212, 143, 212, 138, -1, 217, + -1, 216, 143, 217, -1, 212, -1, 219, -1, 144, + 145, -1, 144, 220, 145, -1, 128, 144, 220, 145, + -1, 212, 129, 144, 220, 145, -1, 217, -1, 5, + -1, 128, 219, -1, 212, 129, 219, -1, 212, 8, + 212, -1, 212, 8, 212, 8, 212, -1, 46, 144, + 212, 145, -1, 180, -1, 189, -1, 4, 139, 140, + -1, 4, 139, 144, 220, 145, 140, -1, 212, -1, + 219, -1, 220, 143, 212, -1, 220, 143, 219, -1, + 144, 212, 143, 212, 143, 212, 143, 212, 145, -1, + 144, 212, 143, 212, 143, 212, 145, -1, 4, -1, + 4, 141, 96, 141, 4, -1, 144, 223, 145, -1, + 4, 139, 212, 140, 141, 97, -1, 221, -1, 223, + 143, 221, -1, 225, -1, 4, -1, 4, 141, 4, + -1, 4, 139, 212, 140, 141, 4, -1, 5, -1, + 42, -1, 37, 137, 224, 143, 224, 138, -1, 38, + 137, 224, 138, -1, 39, 137, 224, 138, -1, 36, + 137, 224, 138, -1, 36, 137, 224, 143, 220, 138, -1 }; @@ -1013,30 +1015,30 @@ static const yytype_uint16 yyrline[] = 1334, 1340, 1346, 1353, 1378, 1403, 1420, 1419, 1439, 1456, 1484, 1501, 1521, 1539, 1557, 1572, 1571, 1597, 1602, 1607, 1612, 1617, 1637, 1643, 1654, 1655, 1660, 1663, 1667, 1690, - 1713, 1736, 1764, 1785, 1806, 1828, 1848, 1944, 1963, 1977, - 2086, 2095, 2099, 2114, 2141, 2158, 2172, 2178, 2184, 2193, - 2207, 2247, 2264, 2279, 2298, 2310, 2334, 2338, 2345, 2351, - 2356, 2362, 2371, 2388, 2405, 2424, 2443, 2471, 2479, 2485, - 2492, 2496, 2505, 2513, 2521, 2530, 2529, 2542, 2541, 2554, - 2553, 2566, 2565, 2578, 2585, 2592, 2599, 2606, 2613, 2620, - 2627, 2634, 2642, 2641, 2653, 2652, 2664, 2663, 2675, 2674, - 2686, 2685, 2697, 2696, 2708, 2707, 2719, 2718, 2730, 2729, - 2744, 2747, 2753, 2762, 2782, 2805, 2809, 2833, 2836, 2852, - 2855, 2868, 2871, 2877, 2880, 2887, 2943, 3013, 3018, 3085, - 3128, 3154, 3177, 3200, 3203, 3212, 3216, 3232, 3233, 3234, - 3235, 3236, 3237, 3238, 3239, 3240, 3247, 3248, 3249, 3250, - 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, - 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, - 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3280, 3281, - 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, - 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3309, - 3310, 3311, 3312, 3313, 3314, 3315, 3319, 3332, 3344, 3359, - 3369, 3379, 3397, 3402, 3407, 3417, 3427, 3435, 3439, 3443, - 3447, 3451, 3458, 3462, 3466, 3470, 3477, 3482, 3489, 3494, - 3498, 3503, 3507, 3515, 3526, 3530, 3542, 3550, 3558, 3565, - 3576, 3596, 3606, 3616, 3626, 3646, 3651, 3655, 3659, 3671, - 3675, 3687, 3694, 3704, 3708, 3723, 3728, 3735, 3739, 3752, - 3760, 3771, 3775, 3783, 3791, 3805, 3819, 3823 + 1713, 1736, 1764, 1785, 1806, 1828, 1848, 1960, 1979, 1993, + 2102, 2111, 2115, 2130, 2157, 2174, 2188, 2194, 2200, 2209, + 2223, 2263, 2280, 2295, 2314, 2326, 2350, 2354, 2361, 2367, + 2372, 2378, 2388, 2405, 2422, 2441, 2460, 2488, 2496, 2502, + 2509, 2513, 2522, 2530, 2538, 2547, 2546, 2559, 2558, 2571, + 2570, 2583, 2582, 2595, 2602, 2609, 2616, 2623, 2630, 2637, + 2644, 2651, 2659, 2658, 2670, 2669, 2681, 2680, 2692, 2691, + 2703, 2702, 2714, 2713, 2725, 2724, 2736, 2735, 2747, 2746, + 2761, 2764, 2770, 2779, 2799, 2822, 2826, 2850, 2853, 2869, + 2872, 2885, 2888, 2894, 2897, 2904, 2960, 3030, 3035, 3102, + 3145, 3171, 3194, 3217, 3220, 3229, 3233, 3249, 3250, 3251, + 3252, 3253, 3254, 3255, 3256, 3257, 3264, 3265, 3266, 3267, + 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, + 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, + 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3297, 3298, + 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, + 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3326, + 3327, 3328, 3329, 3330, 3331, 3332, 3336, 3349, 3361, 3376, + 3386, 3396, 3414, 3419, 3424, 3434, 3444, 3452, 3456, 3460, + 3464, 3468, 3475, 3479, 3483, 3487, 3494, 3499, 3506, 3511, + 3515, 3520, 3524, 3532, 3543, 3547, 3559, 3567, 3575, 3582, + 3593, 3613, 3623, 3633, 3643, 3663, 3668, 3672, 3676, 3688, + 3692, 3704, 3711, 3721, 3725, 3740, 3745, 3752, 3756, 3769, + 3777, 3788, 3792, 3800, 3808, 3822, 3836, 3840 }; #endif @@ -1052,14 +1054,14 @@ static const char *const yytname[] = "tTanh", "tFabs", "tFloor", "tCeil", "tFmod", "tModulo", "tHypot", "tPrintf", "tSprintf", "tStrCat", "tStrPrefix", "tStrRelative", "tBoundingBox", "tDraw", "tToday", "tSyncModel", "tCreateTopology", - "tPoint", "tCircle", "tEllipse", "tLine", "tSphere", "tPolarSphere", - "tSurface", "tSpline", "tVolume", "tCharacteristic", "tLength", - "tParametric", "tElliptic", "tPlane", "tRuled", "tTransfinite", - "tComplex", "tPhysical", "tCompound", "tUsing", "tPlugin", - "tDegenerated", "tOCCShape", "tRotate", "tTranslate", "tSymmetry", - "tDilate", "tExtrude", "tLevelset", "tLoop", "tRecombine", "tSmoother", - "tSplit", "tDelete", "tCoherence", "tIntersect", "tLayers", "tHole", - "tAlias", "tAliasWithOptions", "tText2D", "tText3D", + "tDistanceFunction", "tPoint", "tCircle", "tEllipse", "tLine", "tSphere", + "tPolarSphere", "tSurface", "tSpline", "tVolume", "tCharacteristic", + "tLength", "tParametric", "tElliptic", "tPlane", "tRuled", + "tTransfinite", "tComplex", "tPhysical", "tCompound", "tUsing", + "tPlugin", "tDegenerated", "tOCCShape", "tRotate", "tTranslate", + "tSymmetry", "tDilate", "tExtrude", "tLevelset", "tLoop", "tRecombine", + "tSmoother", "tSplit", "tDelete", "tCoherence", "tIntersect", "tLayers", + "tHole", "tAlias", "tAliasWithOptions", "tText2D", "tText3D", "tInterpolationScheme", "tTime", "tCombine", "tBSpline", "tBezier", "tNurbs", "tNurbsOrder", "tNurbsKnots", "tColor", "tColorTable", "tFor", "tIn", "tEndFor", "tIf", "tEndIf", "tExit", "tField", "tReturn", "tCall", @@ -1103,54 +1105,54 @@ static const yytype_uint16 yytoknum[] = 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 63, 372, 373, - 374, 375, 60, 62, 376, 377, 43, 45, 42, 47, - 37, 33, 378, 379, 380, 94, 40, 41, 91, 93, - 46, 35, 44, 123, 125, 126 + 365, 366, 367, 368, 369, 370, 371, 372, 63, 373, + 374, 375, 376, 60, 62, 377, 378, 43, 45, 42, + 47, 37, 33, 379, 380, 381, 94, 40, 41, 91, + 93, 46, 35, 44, 123, 125, 126 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 146, 147, 147, 148, 148, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, - 149, 150, 150, 151, 151, 151, 151, 152, 152, 152, - 153, 153, 153, 153, 153, 153, 154, 154, 155, 155, - 157, 158, 156, 159, 159, 161, 160, 162, 162, 164, - 163, 165, 165, 167, 166, 168, 168, 168, 168, 168, - 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 171, 171, 172, - 172, 173, 173, 174, 175, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 176, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 177, 174, 174, 174, - 174, 174, 174, 174, 174, 178, 174, 179, 179, 179, - 179, 179, 179, 179, 180, 180, 181, 181, 181, 181, - 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, - 183, 183, 183, 183, 183, 184, 185, 185, 185, 185, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 188, 188, 188, 189, 188, 190, 188, 191, - 188, 192, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 193, 188, 194, 188, 195, 188, 196, 188, - 197, 188, 198, 188, 199, 188, 200, 188, 201, 188, - 202, 202, 203, 203, 203, 203, 203, 204, 204, 205, - 205, 206, 206, 207, 207, 208, 208, 208, 208, 208, - 208, 209, 209, 209, 209, 210, 210, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 212, + 0, 147, 148, 148, 149, 149, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 151, 151, 152, 152, 152, 152, 153, 153, 153, + 154, 154, 154, 154, 154, 154, 155, 155, 156, 156, + 158, 159, 157, 160, 160, 162, 161, 163, 163, 165, + 164, 166, 166, 168, 167, 169, 169, 169, 169, 169, + 170, 170, 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 172, 172, 173, + 173, 174, 174, 175, 176, 175, 175, 175, 175, 175, + 175, 175, 175, 175, 175, 175, 177, 175, 175, 175, + 175, 175, 175, 175, 175, 175, 178, 175, 175, 175, + 175, 175, 175, 175, 175, 179, 175, 180, 180, 180, + 180, 180, 180, 180, 181, 181, 182, 182, 182, 182, + 182, 182, 183, 183, 183, 183, 183, 183, 183, 183, + 184, 184, 184, 184, 184, 185, 186, 186, 186, 186, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 189, 189, 189, 190, 189, 191, 189, 192, + 189, 193, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 194, 189, 195, 189, 196, 189, 197, 189, + 198, 189, 199, 189, 200, 189, 201, 189, 202, 189, + 203, 203, 204, 204, 204, 204, 204, 205, 205, 206, + 206, 207, 207, 208, 208, 209, 209, 209, 209, 209, + 209, 210, 210, 210, 210, 211, 211, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 213, 213, 213, - 213, 213, 214, 214, 214, 214, 215, 215, 216, 216, - 216, 216, 216, 216, 217, 217, 218, 218, 218, 218, - 218, 218, 218, 218, 218, 219, 219, 219, 219, 220, - 220, 220, 220, 221, 221, 222, 222, 223, 223, 223, - 223, 224, 224, 224, 224, 224, 224, 224 + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, + 214, 214, 215, 215, 215, 215, 216, 216, 217, 217, + 217, 217, 217, 217, 218, 218, 219, 219, 219, 219, + 219, 219, 219, 219, 219, 220, 220, 220, 220, 221, + 221, 221, 221, 222, 222, 223, 223, 224, 224, 224, + 224, 225, 225, 225, 225, 225, 225, 225 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1354,152 +1356,152 @@ static const yytype_int16 yydefgoto[] = #define YYPACT_NINF -1085 static const yytype_int16 yypact[] = { - 3407, 40, 79, 3488, -1085, -1085, 1621, 57, -11, -47, - 30, 128, 138, 177, 70, 76, 87, -50, 146, 178, - -49, 187, 199, 136, 222, 300, 316, 330, 169, 344, - 602, 494, 281, 375, 293, 289, 295, 295, 290, 267, - 14, 389, 400, 413, 6, 72, 422, 467, 496, 509, - 388, 399, 424, 10, 41, -1085, 434, -1085, 524, 437, - -1085, 588, 604, 21, 24, -1085, -1085, -1085, -1085, -1085, + 3479, 31, 78, 3561, -1085, -1085, 1621, 77, 41, -9, + 16, 128, 138, 185, -48, 43, 63, -45, 75, 132, + -46, 142, 177, 236, 283, 304, 311, 345, 4, 277, + 584, 219, 222, 351, 269, 271, -43, -43, 286, 266, + 38, 369, 374, 384, 20, 37, 387, 453, 482, 485, + 315, 334, 356, 21, 35, -1085, 362, -1085, 497, 361, + -1085, 507, 508, 5, 9, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, - -1085, -1085, 23, 431, 59, -1085, -1085, -1085, -36, 268, - 429, 444, 449, 453, 468, 498, 527, 530, 544, 563, - 569, 570, 573, 574, 577, 578, 606, 609, 614, 487, - 492, 497, 502, -1085, 632, 512, -1085, -1085, -1085, -1085, - -1085, -1085, -1085, 3084, 3084, 3084, -1085, -1085, 3084, 2644, - 19, 656, 206, 3084, 646, 1046, -1085, 663, 664, 3084, - 624, -1085, 3084, -1085, -1085, -1085, 3084, 3012, 3084, 3084, - 540, 3084, 3012, 3084, 3084, 564, 3012, 3084, 3084, 2032, - 610, 542, 618, 629, 1762, 1762, 1762, 636, -1085, -1085, - -1085, -1085, 650, 660, 665, 699, 2032, 733, 295, 295, - 295, 3084, 3084, -19, -1085, 184, 295, 596, 608, 677, - 2877, 299, 135, 681, 700, 1762, 2032, 704, 27, 630, - -1085, 807, -1085, 698, 711, 722, 846, 3084, 3084, 3084, - 723, 3084, 721, 772, 3084, 3084, -1085, 3084, 875, -1085, - 879, -1085, 880, -1085, 749, 3084, 884, 746, -1085, -1085, - -1085, 887, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, - 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, - 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, - 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, - 3084, 3084, 3084, 3084, 620, 620, 620, 620, 3084, 885, - 603, 759, 759, 759, 5700, 55, 3012, 4964, 175, 755, - 902, 774, 771, -1085, 773, 3557, 1128, -1085, -1085, 3084, - 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, - 3084, 3084, 3084, 3084, -1085, -1085, 1147, -21, 4262, 5721, - 301, 779, 3012, -1085, -1085, 3168, -1085, 137, 5742, 5763, - 3084, 5784, 611, 5805, 5826, 3084, 615, 5847, 5868, 2167, - 1476, 3189, 908, -1085, 3084, 3084, 3084, 3084, -1085, -1085, - 909, 912, 912, 3084, 785, 789, 790, 791, 3084, 3084, - 3084, 792, 922, 788, -52, -1085, -1085, 4288, 4314, 295, - 295, 206, 206, -14, 3084, 3084, 3084, 2877, 2877, 3084, - 3557, 142, -1085, 3084, 3084, 3084, 3084, 929, 932, 3084, - 934, -1085, 3084, 3084, 776, -1085, 3012, 3084, 3084, -1085, - 5889, 5910, 5931, 848, 4340, -1085, 798, 3208, 5952, 4987, - -1085, -1085, 1659, -1085, 1800, 3084, 5010, -67, 3084, 18, - -1085, 5973, 5033, 5994, 5056, 6015, 5079, 6036, 5102, 6057, - 5125, 6078, 5148, 6099, 5171, 6120, 5194, 6141, 5217, 6162, - 5240, 6183, 5263, 4366, 4392, 6204, 5286, 6225, 5309, 6246, - 5332, 6267, 5355, 6288, 5378, 6309, 5401, 4418, 4444, 4470, - 4496, 4522, 4548, 623, 271, -1085, 803, 810, 811, 1321, - 809, 3084, -1085, 2032, 2032, 616, 81, 59, 3084, 943, - 948, 17, 815, -1085, 220, -44, -32, 223, -1085, -1085, - 3236, 778, 972, 567, 567, 348, 348, 348, 348, 549, - 549, 759, 759, 759, 759, -1085, 9, 3012, 3084, 949, - 2842, 3084, 759, -1085, 3084, 3012, 3012, 860, 952, 953, - 6330, 955, 865, 957, 960, 6351, 872, 964, 965, 3012, - -1085, 622, 2302, 3084, 6372, 3305, 6393, 6414, 3084, 2032, - 969, 970, 6435, 3141, 3141, 3141, 3141, 6456, 6477, 6498, - 837, -1085, 2032, 295, 3084, 3084, -1085, -1085, 834, 835, - 3084, 4574, 4600, 4626, 4236, 117, 295, 1935, 6519, 3592, - 6540, 6561, 3084, 975, 3084, 6582, -1085, 5424, 5447, -1085, - 625, 5470, 5493, 977, 978, 980, 842, 3084, 2070, 3084, - 3084, -1085, 32, -1085, -1085, 5516, 45, -1085, 3620, -1085, - 852, 853, 847, -1085, 985, -1085, -1085, -1085, -1085, -1085, + -1085, -1085, 22, 391, 306, -1085, -1085, -1085, -85, -65, + 83, 305, 309, 329, 397, 443, 448, 452, 467, 543, + 554, 570, 575, 605, 608, 613, 614, 618, 621, 394, + 405, 423, 433, -1085, 585, 438, -1085, -1085, -1085, -1085, + -1085, -1085, -1085, 3095, 3095, 3095, -1085, -1085, 3095, 2652, + 14, 592, 206, 3095, 591, 1045, -1085, 609, 617, 3095, + 603, -1085, 3095, -1085, -1085, -1085, 3095, 3022, 3095, 3095, + 491, 3095, 3022, 3095, 3095, 502, 3022, 3095, 3095, 2035, + 513, 490, 518, 523, 1763, 1763, 1763, 528, -1085, -1085, + -1085, -1085, 529, 547, 560, 699, 2035, 711, -43, -43, + -43, 3095, 3095, 257, -1085, 295, -43, 594, 595, 610, + 2886, 307, 69, 627, 635, 1763, 2035, 648, 32, 658, + -1085, 780, -1085, 708, 674, 678, 790, 3095, 3095, 3095, + 660, 3095, 716, 750, 3095, 3095, -1085, 3095, 857, -1085, + 879, -1085, 880, -1085, 748, 3095, 884, 745, -1085, -1085, + -1085, 887, 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, + 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, + 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, + 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, + 3095, 3095, 3095, 3095, 620, 620, 620, 620, 3095, 885, + 567, 758, 758, 758, 5745, 8, 3022, 5009, 174, 754, + 902, 773, 770, -1085, 771, 428, 1142, -1085, -1085, 3095, + 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, + 3095, 3095, 3095, 3095, -1085, -1085, 1320, -31, 4307, 5766, + 602, 775, 3022, -1085, -1085, 3248, -1085, 178, 5787, 5808, + 3095, 5829, 422, 5850, 5871, 3095, 616, 5892, 5913, 2171, + 1476, 3267, 908, -1085, 3095, 3095, 3095, 3095, -1085, -1085, + 910, 913, 913, 3095, 784, 785, 788, 789, 3095, 3095, + 3095, 791, 921, 787, -81, -1085, -1085, 4333, 4359, -43, + -43, 206, 206, 327, 3095, 3095, 3095, 2886, 2886, 3095, + 428, 370, -1085, 3095, 3095, 3095, 3095, 929, 932, 3095, + 922, -1085, 3095, 3095, 1654, -1085, 3022, 3095, 3095, -1085, + 5934, 5955, 5976, 844, 4385, -1085, 797, 3287, 5997, 5032, + -1085, -1085, 1801, -1085, 1937, 3095, 5055, -26, 3095, 17, + -1085, 6018, 5078, 6039, 5101, 6060, 5124, 6081, 5147, 6102, + 5170, 6123, 5193, 6144, 5216, 6165, 5239, 6186, 5262, 6207, + 5285, 6228, 5308, 4411, 4437, 6249, 5331, 6270, 5354, 6291, + 5377, 6312, 5400, 6333, 5423, 6354, 5446, 4463, 4489, 4515, + 4541, 4567, 4593, 624, 184, -1085, 800, 807, 809, 1446, + 805, 3095, -1085, 2035, 2035, 623, 80, 306, 3095, 943, + 947, 23, 812, -1085, 81, -42, -30, 137, -1085, -1085, + 3306, 777, 971, 652, 652, 333, 333, 333, 333, 1, + 1, 758, 758, 758, 758, -1085, 49, 3022, 3095, 949, + 2851, 3095, 758, -1085, 3095, 3022, 3022, 855, 951, 952, + 6375, 953, 863, 956, 957, 6396, 868, 963, 964, 3022, + -1085, 646, 2307, 3095, 6417, 3376, 6438, 6459, 3095, 2035, + 968, 967, 6480, 3152, 3152, 3152, 3152, 6501, 6522, 6543, + 835, -1085, 2035, -43, 3095, 3095, -1085, -1085, 832, 833, + 3095, 4619, 4645, 4671, 4281, 116, -43, 2073, 6564, 3637, + 6585, 6606, 3095, 973, 3095, 6627, -1085, 5469, 5492, -1085, + 647, 5515, 5538, 974, 975, 977, 846, 3095, 2209, 3095, + 3095, -1085, 33, -1085, -1085, 5561, 44, -1085, 3665, -1085, + 848, 851, 845, -1085, 984, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, - -1085, -1085, 3084, 3084, -1085, -1085, -1085, -1085, -1085, -1085, - -1085, -1085, -1085, -1085, -1085, -1085, 3084, 3084, 3084, 3084, - 3084, 3084, 3084, 988, -1085, 3012, 620, -1085, -1085, -1085, - 3084, 5539, 987, 991, 862, -1085, 34, 3084, 996, 997, - 1446, -1085, 998, 866, 10, 1000, -1085, 3012, 3012, 3012, - 3012, 3084, -1085, 888, 620, 278, 4652, 295, -1085, 3012, - 3648, 3255, 759, -1085, 3168, -1085, 959, 2032, 2032, 1001, - 2032, 724, 2032, 2032, 1005, 961, 2032, 2032, 634, -1085, - 3012, 1556, 1006, 1008, 1009, 1010, 2941, -1085, -1085, 1012, - -1085, 1013, 886, 6813, -1085, 889, 890, 891, 1014, 1015, - 1018, 1025, 905, 195, 4678, 4704, -1085, -1085, 3676, 295, - 295, 295, 1042, 911, 895, -34, -1085, 218, -1085, 117, - 1048, 1050, 1051, 1053, 6813, -1085, 2369, 914, 1056, 1057, - 1016, 1058, 1059, 2032, 2032, 2032, 1065, 4730, -1085, 3275, - 916, 1066, 1067, 1069, 1068, -1085, 1070, -1085, 937, 3084, - 3084, 2032, 935, -1085, 6603, 5562, 6624, 5585, 6645, 5608, - 6666, 5631, 5654, -1085, 315, 944, 6687, 192, -1085, -1085, - 73, 285, 940, 1076, 2402, -1085, -1085, -1085, 10, 3084, - -1085, 637, -1085, 638, 641, 648, 649, 6813, -1085, 1078, - 46, 3084, 54, 653, -1085, 3084, 942, 1029, 1029, 2032, - 1082, 946, 947, 1097, 1098, 2032, 962, 1103, 1105, -1085, - 658, -1085, 1107, 2032, 2032, 2032, 1109, 1108, -1085, 2032, - 1111, 1114, 1116, 1118, 2032, 2032, 2032, 119, 1110, 3084, - 3084, 3084, 973, -83, -73, 204, -1085, 2032, 3084, -1085, - -1085, 2877, -24, 1897, -1085, 984, 2437, -1085, 3012, -1085, - -1085, 986, -1085, -1085, 1122, 1124, 1037, -1085, 3084, 3084, - 3084, -1085, 1132, 1133, -1085, -67, -1085, 3084, 4756, 4782, - 662, -1085, 3084, -1085, -1085, -1085, -1085, -1085, -1085, -1085, - -1085, 999, -1085, -1085, -1085, 2032, 59, 3084, 1135, 1138, - 17, -1085, 1137, 5677, 10, -1085, 1140, 1141, 1142, 1143, - -1085, -1085, 620, 4808, -1085, 1011, 6813, 3084, 295, 1146, - 1148, 1149, -1085, 3084, 3084, -1085, -1085, 1150, 3084, -1085, - -1085, -1085, 1153, 1155, 1156, 1061, 3084, -1085, 1171, 2032, - 2032, 2032, 2032, 1172, 801, 1173, -1085, 3141, 1043, 3704, - 6708, 3508, 206, 295, 1176, 295, 1178, 295, 1179, 368, - 1045, 6729, 3732, 337, -1085, 1182, 1292, 1183, 295, 1292, - 1184, 666, 3084, -1085, -1085, 2032, 3536, 605, 6750, -1085, - 2707, -1085, 374, 6813, 3084, 3084, 2032, 1049, 667, 6813, - 1187, 1189, 1192, 2504, -1085, 1186, 1193, -1085, 1062, -1085, - -1085, -1085, -1085, -1085, 1195, 3084, -1085, 3760, 258, -1085, - -1085, -1085, 3788, 3816, -1085, 3844, 1198, -1085, -1085, 1157, - 1199, 6813, -1085, 1201, 1203, 1205, 1206, -1085, 1071, -1085, - -1085, 2673, 1207, 1210, 1074, -1085, 3084, -1085, 1077, 380, - -1085, 1080, 392, -1085, 1083, 394, -1085, 1084, 1224, 2032, - 1225, 1088, 3084, -1085, 2572, 417, -1085, 430, 436, -1085, - 1227, 3872, 1144, 3084, -1085, 3084, -1085, -1085, 3012, 2798, - 1228, -1085, 3084, 4834, 4860, -1085, 2032, 3084, 1229, -1085, - -1085, -1085, -1085, 10, -1085, 1164, -1085, 4886, 1230, 1232, - 1233, 1234, 1236, 1100, -1085, -1085, -1085, -1085, -1085, 2032, - -1085, -1085, -1085, 206, 3564, -1085, 2877, 117, 2877, 117, - 2877, 117, -1085, 670, 2032, -1085, 3900, 295, 3012, 295, - -1085, -1085, 3084, 3928, 3956, 674, -1085, -1085, 1119, 6813, - 3084, 3084, 689, 6813, -1085, 1255, -1085, 3084, -1085, -1085, - -1085, -1085, -1085, 3084, 702, 1134, 3084, -1085, 3984, 470, - 56, 4012, 476, 143, 4040, 488, 238, 2032, 1273, 1216, - 2205, 1145, 490, 703, 493, 2820, -1085, -1085, 1275, 3084, - 6771, 4912, 31, -1085, 4938, 4068, 1277, -1085, 4096, 1278, - 3084, 1283, 1284, 3084, 1285, 1286, 3084, 1287, 1154, -1085, - 3084, -1085, 117, -1085, 3012, 1288, 2572, -1085, -1085, 706, - -1085, 3084, -1085, 2032, 3084, -1085, -1085, -1085, -1085, 1161, - 4124, -1085, -1085, 1162, 4152, -1085, -1085, 1185, 4180, -1085, - 1291, 3113, 261, 2340, 714, -1085, 495, 715, 1293, 1188, - 6792, 727, 4208, 117, 1294, 117, 1324, 117, 1326, -1085, - -1085, -1085, -1085, 117, 1327, 3012, 1328, -1085, 620, -1085, - 1196, 1329, 280, -1085, 1197, 283, -1085, 1202, 314, -1085, - 1204, 355, -1085, 731, -1085, 732, -1085, 1209, 2032, -1085, - 1330, 117, 1332, 117, 1335, 117, -1085, 1336, 620, 1338, - 620, 735, -1085, 373, -1085, 385, -1085, 387, -1085, -1085, - -1085, 736, -1085, 1340, 1342, 1343, 1344, 620, 1347, -1085, + -1085, -1085, 3095, 3095, -1085, -1085, -1085, -1085, -1085, -1085, + -1085, -1085, -1085, -1085, -1085, -1085, 3095, 3095, 3095, 3095, + 3095, 3095, 3095, 987, -1085, 3022, 620, -1085, -1085, -1085, + 3095, 5584, 986, 991, 853, -1085, 19, 3095, 995, 996, + 1550, -1085, 997, 864, 21, 999, -1085, 3022, 3022, 3022, + 3022, 3095, -1085, 882, 620, 208, 4697, -43, -1085, 3022, + 3693, 3327, 758, -1085, 3248, -1085, 958, 2035, 2035, 1001, + 2035, 715, 2035, 2035, 1004, 959, 2035, 2035, 650, -1085, + 3022, 2511, 1005, 1007, 1008, 1009, 2951, -1085, -1085, 1011, + -1085, 1013, 883, 6858, -1085, 888, 889, 890, 1015, 1016, + 1018, 1014, 886, 416, 4723, 4749, -1085, -1085, 3721, -43, + -43, -43, 1025, 904, 896, -32, -1085, 435, -1085, 116, + 1046, 1049, 1050, 1051, 6858, -1085, 2681, 912, 1054, 1056, + 1012, 1057, 1059, 2035, 2035, 2035, 1063, 4775, -1085, 3346, + 916, 1065, 1066, 1067, 1068, -1085, 1069, -1085, 934, 3095, + 3095, 2035, 936, -1085, 6648, 5607, 6669, 5630, 6690, 5653, + 6711, 5676, 5699, -1085, 238, 938, 6732, 191, -1085, -1085, + 72, 303, 937, 1074, 2807, -1085, -1085, -1085, 21, 3095, + -1085, 657, -1085, 661, 662, 665, 666, 6858, -1085, 1077, + 53, 3095, 55, 669, -1085, 3095, 940, 1026, 1026, 2035, + 1081, 944, 945, 1084, 1097, 2035, 960, 1099, 1103, -1085, + 673, -1085, 1106, 2035, 2035, 2035, 1108, 1107, -1085, 2035, + 1109, 1111, 1114, 1116, 2035, 2035, 2035, 114, 1110, 3095, + 3095, 3095, 970, 379, 402, 429, -1085, 2035, 3095, -1085, + -1085, 2886, -19, 1899, -1085, 981, 2443, -1085, 3022, -1085, + -1085, 983, -1085, -1085, 1122, 1123, 1035, -1085, 3095, 3095, + 3095, -1085, 1125, 1127, -1085, -26, -1085, 3095, 4801, 4827, + 691, -1085, 3095, -1085, -1085, -1085, -1085, -1085, -1085, -1085, + -1085, 998, -1085, -1085, -1085, 2035, 306, 3095, 1132, 1136, + 23, -1085, 1135, 5722, 21, -1085, 1137, 1140, 1141, 1143, + -1085, -1085, 620, 4853, -1085, 1002, 6858, 3095, -43, 1144, + 1146, 1147, -1085, 3095, 3095, -1085, -1085, 1148, 3095, -1085, + -1085, -1085, 1150, 1152, 1153, 1062, 3095, -1085, 1156, 2035, + 2035, 2035, 2035, 1171, 831, 1172, -1085, 3152, 1041, 3749, + 6753, 3553, 206, -43, 1174, -43, 1176, -43, 1178, 604, + 1042, 6774, 3777, 475, -1085, 1181, 1291, 1182, -43, 1291, + 1183, 696, 3095, -1085, -1085, 2035, 3581, 702, 6795, -1085, + 2715, -1085, 270, 6858, 3095, 3095, 2035, 1047, 697, 6858, + 1186, 1187, 1189, 2829, -1085, 1149, 1192, -1085, 1058, -1085, + -1085, -1085, -1085, -1085, 1195, 3095, -1085, 3805, 155, -1085, + -1085, -1085, 3833, 3861, -1085, 3889, 1197, -1085, -1085, 1155, + 1200, 6858, -1085, 1201, 1203, 1205, 1206, -1085, 1048, -1085, + -1085, 3124, 1207, 1208, 1072, -1085, 3095, -1085, 1076, 486, + -1085, 1073, 489, -1085, 1079, 492, -1085, 1082, 1221, 2035, + 1196, 1086, 3095, -1085, 2579, 494, -1085, 520, 525, -1085, + 1225, 3917, 1138, 3095, -1085, 3095, -1085, -1085, 3022, 3181, + 1227, -1085, 3095, 4879, 4905, -1085, 2035, 3095, 1228, -1085, + -1085, -1085, -1085, 21, -1085, 1139, -1085, 4931, 1229, 1231, + 1232, 1233, 1234, 1098, -1085, -1085, -1085, -1085, -1085, 2035, + -1085, -1085, -1085, 206, 3609, -1085, 2886, 116, 2886, 116, + 2886, 116, -1085, 700, 2035, -1085, 3945, -43, 3022, -43, + -1085, -1085, 3095, 3973, 4001, 701, -1085, -1085, 1101, 6858, + 3095, 3095, 705, 6858, -1085, 1237, -1085, 3095, -1085, -1085, + -1085, -1085, -1085, 3095, 713, 1102, 3095, -1085, 4029, 542, + -16, 4057, 549, -7, 4085, 551, 141, 2035, 1240, 1184, + 2345, 1104, 562, 714, 568, 3203, -1085, -1085, 1244, 3095, + 6816, 4957, 25, -1085, 4983, 4113, 1245, -1085, 4141, 1246, + 3095, 1247, 1248, 3095, 1249, 1250, 3095, 1251, 1113, -1085, + 3095, -1085, 116, -1085, 3022, 1268, 2579, -1085, -1085, 721, + -1085, 3095, -1085, 2035, 3095, -1085, -1085, -1085, -1085, 1131, + 4169, -1085, -1085, 1133, 4197, -1085, -1085, 1145, 4225, -1085, + 1270, 3222, 237, 2481, 724, -1085, 572, 725, 1273, 1154, + 6837, 728, 4253, 116, 1274, 116, 1275, 116, 1276, -1085, + -1085, -1085, -1085, 116, 1277, 3022, 1278, -1085, 620, -1085, + 1159, 1282, 254, -1085, 1160, 279, -1085, 1188, 282, -1085, + 1190, 284, -1085, 731, -1085, 732, -1085, 1191, 2035, -1085, + 1284, 116, 1285, 116, 1286, 116, -1085, 1287, 620, 1290, + 620, 735, -1085, 313, -1085, 322, -1085, 349, -1085, -1085, + -1085, 736, -1085, 1293, 1321, 1322, 1324, 620, 1325, -1085, -1085, -1085, -1085, -1085, -1085 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1085, -1085, -1085, -1085, 534, -1085, -1085, -1085, -1085, 166, + -1085, -1085, -1085, -1085, 477, -1085, -1085, -1085, -1085, 144, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, - -1085, -1085, -286, -3, -1085, -64, -1085, 528, 1355, -1085, + -1085, -1085, -286, -3, -1085, -28, -1085, 510, 1333, -1085, -1085, -1085, -1085, 3, -367, -189, -1085, -1085, -1085, -1085, - -1085, -1085, 1356, -1085, -1085, -1085, -1085, -1085, -1085, -1085, + -1085, -1085, 1336, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -1085, -684, -717, -1085, -1085, - 1021, -1085, -1085, -1085, -1085, -6, -1085, -20, -1085, -1084, - 522, -110, 255, -79, -654, 448, -1085, -268, 7 + 988, -1085, -1085, -1085, -1085, -6, -1085, -20, -1085, -1084, + 522, -95, 255, -79, -654, 421, -1085, -268, 7 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1510,143 +1512,143 @@ static const yytype_int16 yypgoto[] = static const yytype_int16 yytable[] = { 135, 380, 478, 134, 558, 559, 70, 466, 467, 468, - 198, 394, 1152, 137, 210, 682, 183, 185, 192, 191, - 810, 673, 599, 288, 150, 155, 220, 224, 870, 222, - 150, 390, 412, 391, 414, 1164, 141, 1222, 801, 771, - 139, 742, 155, 369, 370, 213, 4, 743, 744, 463, - 230, 742, 931, 369, 370, 351, 352, 743, 744, 973, - 934, 974, 473, 193, 230, 872, 126, 127, 327, 975, - 138, 976, 194, 332, 369, 370, 201, 336, 202, 5, - 665, 109, 110, 111, 112, 387, 151, 113, 665, 140, - 553, 231, 151, 152, 156, 109, 110, 111, 112, 678, - 232, 113, 233, 600, 601, 602, 603, 369, 370, 199, - 869, 679, 369, 370, 289, 290, 506, 281, 282, 283, - 984, 507, 284, 287, 371, 966, 967, 296, 560, 802, - 803, 742, 683, 316, 143, 293, 318, 743, 744, 1251, - 319, 325, 328, 329, 144, 331, 325, 333, 334, 200, - 325, 337, 338, 211, 922, 870, 126, 127, 364, 365, - 674, 225, 604, 226, 221, 392, 373, 223, 227, 683, - 381, 474, 772, 142, 1223, 367, 368, 214, 126, 127, - 369, 370, 477, 145, 368, 774, 119, 120, 121, 122, - 667, 159, 742, 567, 119, 120, 121, 122, 743, 744, - 1201, 400, 401, 402, 1301, 404, 146, 475, 407, 408, - 292, 409, 148, 147, 126, 127, 588, 164, 742, 416, - 165, 666, 166, 149, 743, 744, 421, 422, 423, 424, + 220, 394, 1152, 137, 222, 473, 183, 185, 288, 191, + 810, 599, 141, 801, 198, 210, 224, 673, 870, 155, + 150, 1222, 412, 150, 414, 1164, 390, 4, 391, 213, + 771, 201, 192, 202, 742, 155, 369, 370, 463, 230, + 743, 744, 232, 164, 233, 682, 165, 742, 166, 931, + 742, 934, 553, 743, 744, 872, 743, 744, 327, 742, + 351, 352, 234, 332, 235, 743, 744, 336, 5, 665, + 109, 110, 111, 112, 179, 180, 113, 665, 193, 146, + 138, 231, 151, 139, 181, 151, 147, 194, 156, 152, + 387, 182, 678, 600, 601, 602, 603, 506, 126, 127, + 289, 290, 507, 869, 679, 802, 803, 281, 282, 283, + 966, 967, 284, 287, 199, 474, 984, 296, 140, 1201, + 310, 311, 312, 316, 143, 293, 318, 313, 1204, 1251, + 319, 325, 328, 329, 144, 331, 325, 333, 334, 221, + 325, 337, 338, 223, 922, 870, 126, 127, 364, 365, + 142, 225, 604, 226, 200, 211, 373, 674, 227, 1223, + 381, 392, 214, 683, 772, 367, 368, 683, 126, 127, + 148, 477, 369, 370, 368, 774, 119, 120, 121, 122, + 667, 145, 742, 567, 119, 120, 121, 122, 743, 744, + 149, 400, 401, 402, 1301, 404, 383, 475, 407, 408, + 292, 409, 153, 384, 126, 127, 588, 742, 146, 416, + 236, 666, 237, 743, 744, 677, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 369, 370, - 1019, 383, 469, 160, 35, 36, 37, 38, 384, 516, - 325, 517, 153, 43, 566, 479, 46, 1204, 119, 120, - 121, 122, 916, 490, 491, 492, 493, 494, 495, 496, + 455, 456, 457, 458, 459, 460, 461, 462, 172, 154, + 1019, 173, 469, 174, 158, 35, 36, 37, 38, 157, + 325, 680, 369, 370, 43, 479, 1207, 46, 119, 120, + 121, 122, 159, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 126, 127, - 369, 370, 187, 742, 154, 188, 512, 580, 189, 743, - 744, 369, 370, 157, 520, 126, 127, 372, 776, 525, - 369, 370, 774, 512, 325, 158, 742, 859, 534, 535, - 536, 537, 743, 744, 369, 370, 977, 542, 978, 556, - 557, 161, 547, 548, 549, 742, 146, 365, 742, 158, - 871, 743, 744, 677, 743, 744, 680, 162, 561, 562, - 563, 281, 282, 564, 293, 293, 514, 568, 569, 570, - 571, 163, 1207, 575, 369, 370, 577, 578, 795, 742, - 325, 581, 582, 179, 180, 743, 744, 167, 119, 120, - 121, 122, 326, 181, 234, 1261, 235, 326, 654, 595, - 190, 326, 598, 655, 597, 820, 819, 175, 126, 127, - 516, 179, 180, 176, 1290, 369, 370, 1292, 685, 177, - 742, 181, 178, 186, 126, 127, 743, 744, 182, 510, - 195, 226, 382, 1170, 132, 1173, 227, 1176, 742, 1155, - 708, 196, 912, 870, 743, 744, 870, 516, 1294, 870, - 742, 197, 742, 369, 370, 661, 743, 744, 743, 744, - 203, 204, 670, 668, 308, 309, 310, 311, 312, 1072, - 725, 726, 727, 313, 669, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 532, 311, 312, 1296, - 205, 325, 686, 313, 661, 690, 369, 370, 691, 692, - 694, 1091, 1068, 206, 915, 917, 1092, 1314, 369, 370, - 369, 370, 1126, 325, 207, 870, 692, 711, 1242, 1315, - 216, 1316, 716, 733, 1128, 208, 1130, 723, 723, 723, - 723, 326, 172, 369, 370, 173, 747, 174, 734, 735, - 724, 724, 724, 724, 738, 870, 369, 370, 870, 1137, - 209, 870, 369, 370, 870, 236, 754, 237, 756, 1272, - 215, 1275, 1138, 1278, 229, 217, 794, 513, 1139, 1281, - 238, 767, 239, 769, 770, 240, 870, 241, 870, 242, - 870, 243, 218, 775, 513, 326, 369, 370, 813, 814, - 815, 816, 369, 370, 244, 1058, 245, 1303, 219, 1305, - 823, 1307, 1200, 1085, 369, 370, 369, 370, 1203, 369, - 370, 369, 370, 274, 463, 230, 784, 785, 275, 317, - 1206, 840, 1214, 276, 246, 1216, 247, 1265, 277, 278, - 786, 787, 788, 789, 790, 791, 792, 168, 279, 325, - 169, 326, 297, 170, 796, 171, 109, 110, 111, 112, - 291, 804, 113, 248, 1024, 249, 250, 822, 251, 314, - 315, 325, 325, 325, 325, 817, 330, 310, 311, 312, - 252, 342, 253, 325, 313, 345, 349, 349, 349, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 362, 254, - 335, 255, 313, 361, 325, 256, 258, 257, 259, 260, - 262, 261, 263, 264, 266, 265, 267, 349, 388, 863, + 916, 230, 187, 742, 158, 188, 512, 580, 189, 743, + 744, 516, 654, 517, 520, 126, 127, 655, 776, 525, + 742, 167, 774, 512, 325, 160, 743, 744, 534, 535, + 536, 537, 109, 110, 111, 112, 820, 542, 113, 556, + 557, 516, 547, 548, 549, 742, 161, 365, 742, 175, + 742, 743, 744, 162, 743, 744, 743, 744, 561, 562, + 563, 281, 282, 564, 293, 293, 912, 568, 569, 570, + 571, 516, 1261, 575, 369, 370, 577, 578, 795, 742, + 325, 581, 582, 179, 180, 743, 744, 163, 742, 1290, + 176, 371, 326, 181, 743, 744, 177, 326, 1091, 595, + 190, 326, 598, 1092, 597, 178, 819, 119, 120, 121, + 122, 195, 369, 370, 1292, 742, 196, 1294, 685, 1296, + 186, 743, 744, 197, 369, 370, 203, 126, 127, 372, + 7, 8, 238, 1170, 239, 1173, 240, 1176, 241, 1155, + 708, 382, 207, 870, 369, 370, 870, 204, 1314, 870, + 308, 309, 310, 311, 312, 661, 242, 1315, 243, 313, + 560, 208, 670, 668, 484, 15, 16, 485, 18, 19, + 486, 21, 487, 23, 669, 24, 205, 26, 27, 206, + 29, 30, 31, 209, 1316, 33, 34, 369, 370, 215, + 217, 325, 686, 216, 661, 690, 369, 370, 691, 692, + 694, 218, 219, 566, 915, 917, 725, 726, 727, 50, + 51, 52, 973, 325, 974, 870, 692, 711, 1242, 369, + 370, 274, 716, 733, 244, 229, 245, 723, 723, 723, + 723, 326, 275, 369, 370, 975, 747, 976, 734, 735, + 724, 724, 724, 724, 738, 870, 369, 370, 870, 859, + 276, 870, 369, 370, 870, 516, 754, 522, 756, 1272, + 277, 1275, 977, 1278, 978, 279, 794, 513, 871, 1281, + 246, 767, 247, 769, 770, 248, 870, 249, 870, 250, + 870, 251, 278, 775, 513, 326, 291, 297, 813, 814, + 815, 816, 369, 370, 252, 1058, 253, 1303, 317, 1305, + 823, 1307, 514, 369, 370, 314, 369, 370, 1072, 369, + 370, 369, 370, 315, 463, 230, 784, 785, 330, 1126, + 168, 840, 1128, 169, 345, 1130, 170, 1137, 171, 335, + 786, 787, 788, 789, 790, 791, 792, 369, 370, 325, + 344, 326, 369, 370, 796, 346, 109, 110, 111, 112, + 347, 804, 113, 1138, 1024, 353, 358, 822, 1139, 369, + 370, 325, 325, 325, 325, 817, 369, 370, 369, 370, + 254, 342, 255, 325, 359, 1200, 349, 349, 349, 369, + 370, 256, 1203, 257, 1206, 369, 370, 360, 362, 369, + 370, 126, 127, 361, 325, 1214, 471, 258, 226, 259, + 1085, 1216, 260, 227, 261, 1265, 363, 349, 388, 863, 864, 865, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 126, 127, 363, 374, - 313, 471, 268, 226, 269, 270, 344, 271, 227, 1086, - 272, 375, 273, 516, 346, 522, 1165, 516, 516, 526, - 664, 652, 326, 653, 516, 347, 709, 516, 393, 760, - 693, 695, 353, 898, 899, 831, 516, 832, 839, 924, - 516, 925, 926, 516, 326, 927, 358, 693, 7, 8, - 516, 516, 928, 929, 775, 516, 359, 935, 918, 991, - 516, 360, 951, 923, 1006, 1048, 1007, 1049, 516, 1097, - 1080, 1098, 1177, 395, 1178, 933, 516, 385, 1188, 936, - 376, 484, 15, 16, 485, 18, 19, 486, 21, 487, - 23, 1006, 24, 1192, 26, 27, 386, 29, 30, 31, - 389, 396, 33, 34, 1006, 516, 1196, 1215, 1097, 397, - 1248, 983, 399, 969, 970, 971, 516, 516, 1264, 1266, - 398, 979, 981, 403, 405, 982, 50, 51, 52, 1006, - 406, 1270, 325, 516, 1298, 1297, 1299, 1006, 1317, 1313, - 1318, 410, 996, 997, 998, 411, 413, 415, 417, 418, + 307, 308, 309, 532, 311, 312, 126, 127, 374, 375, + 313, 510, 262, 226, 263, 264, 132, 265, 227, 1068, + 266, 268, 267, 269, 376, 270, 1165, 271, 272, 516, + 273, 526, 326, 652, 385, 653, 516, 831, 664, 832, + 693, 695, 386, 898, 899, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 326, 389, 395, 693, 313, 516, + 516, 709, 760, 516, 775, 839, 399, 393, 918, 991, + 924, 403, 925, 923, 516, 516, 926, 927, 516, 516, + 928, 929, 516, 397, 935, 933, 516, 398, 951, 936, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 1006, 1048, 1007, 1049, 313, 516, + 1097, 1080, 1098, 1177, 516, 1178, 1188, 1086, 1006, 406, + 1192, 983, 396, 969, 970, 971, 1006, 516, 1196, 1215, + 405, 979, 981, 410, 1097, 982, 1248, 516, 516, 1264, + 1266, 1006, 325, 1270, 516, 1298, 1297, 1299, 1006, 1317, + 1313, 1318, 996, 997, 998, 411, 413, 415, 417, 418, 470, 1003, 1001, 420, 313, 480, 1009, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 481, - 326, 1013, 482, 313, 132, 533, 538, 483, 1028, 539, - 579, 543, 511, 1012, 890, 544, 545, 546, 551, 550, + 326, 1013, 482, 313, 132, 533, 483, 538, 1028, 511, + 539, 543, 544, 1012, 890, 545, 546, 551, 576, 550, 552, 1027, 326, 326, 326, 326, 572, 1032, 1033, 574, - 576, 589, 1035, 586, 326, 656, 1180, 657, 658, 671, - 1041, 660, 672, 1059, 676, 1062, 687, 1065, 696, 697, - 698, 1051, 700, 701, 702, 326, 1075, 703, 1077, 1078, - 705, 706, 707, 718, 1052, 293, 720, 731, 736, 737, - 325, 755, 766, 325, 763, 764, 1081, 765, 779, 780, - 781, 783, 793, 798, 1089, 662, 663, 799, 1093, 1094, - 1286, 800, 805, 806, 809, 808, 812, 1090, 829, 1145, - 826, 818, 835, 842, 836, 843, 844, 845, 848, 1107, - 849, 854, 855, 850, 1243, 856, 851, 852, 853, 857, - 1309, 868, 1312, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 858, 866, 1323, - 1124, 313, 298, 891, 867, 873, 874, 878, 875, 1183, - 876, 717, 879, 880, 882, 883, 1136, 881, 512, 887, - 892, 893, 895, 897, 732, 894, 896, 1143, 902, 1144, - 919, 913, 325, 920, 930, 937, 1149, 938, 942, 943, - 944, 1153, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 945, 946, 948, 1169, 313, 1172, 949, - 1175, 950, 952, 956, 957, 968, 972, 1182, 959, 1184, - 1168, 960, 1171, 961, 1174, 962, 293, 988, 993, 992, - 994, 995, 325, 326, 489, 1244, 1185, 1247, 999, 1010, - 1000, 1014, 1015, 1017, 1190, 1191, 1020, 1021, 1022, 1023, - 1026, 1194, 1029, 505, 1030, 1031, 1034, 1195, 1036, 1039, - 1198, 1037, 1038, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 1042, 1047, 1050, - 1053, 313, 1060, 1009, 1063, 1066, 1283, 1069, 1073, 1076, - 1079, 1099, 1096, 1103, 1230, 1100, 1246, 1234, 1101, 1104, - 1238, 1106, 1105, 1112, 1241, 1114, 1113, 1115, 325, 1116, - 325, 1117, 1118, 1121, 1119, 1250, 1122, 1123, 1252, 827, - 828, 1125, 830, 1127, 833, 834, 1129, 1131, 837, 838, - 1132, 1135, 1134, 1140, 1147, 1154, 1158, 1142, 1159, 1160, - 1161, 326, 1162, 1163, 326, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 325, - 1156, 1193, 1189, 313, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 1197, 1209, - 1210, 1218, 313, 1226, 1228, 884, 885, 886, 1213, 1231, - 1232, 1235, 1236, 1239, 1245, 81, 320, 1259, 1240, 1267, - 1273, 85, 86, 87, 1253, 1255, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 659, 1257, 513, - 1276, 1268, 1279, 1282, 1284, 1289, 1302, 321, 1304, 1288, - 1291, 1306, 1308, 326, 1310, 1293, 1319, 1295, 1320, 1321, - 1322, 941, 1300, 1324, 932, 1219, 940, 947, 69, 77, - 35, 36, 37, 38, 39, 953, 954, 955, 1016, 43, - 0, 958, 46, 541, 0, 0, 963, 964, 965, 0, + 586, 589, 1035, 656, 326, 657, 1180, 658, 660, 671, + 1041, 672, 676, 1059, 696, 1062, 687, 1065, 697, 698, + 700, 1051, 701, 702, 703, 326, 1075, 705, 1077, 1078, + 706, 707, 718, 720, 1052, 293, 731, 736, 737, 755, + 325, 763, 764, 325, 765, 779, 1081, 766, 780, 781, + 783, 793, 798, 800, 1089, 662, 663, 799, 1093, 1094, + 1286, 805, 806, 809, 808, 812, 818, 1090, 829, 1145, + 826, 835, 842, 836, 843, 844, 845, 848, 857, 1107, + 849, 850, 854, 855, 1243, 856, 851, 852, 853, 858, + 1309, 866, 1312, 868, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 867, 1323, + 1124, 298, 313, 873, 891, 874, 878, 875, 876, 1183, + 879, 717, 880, 882, 881, 883, 1136, 887, 512, 892, + 893, 897, 895, 894, 732, 896, 913, 1143, 919, 1144, + 902, 920, 325, 930, 937, 938, 1149, 942, 943, 944, + 945, 1153, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 946, 948, 949, 1169, 313, 1172, 950, + 1175, 952, 956, 957, 972, 968, 959, 1182, 960, 1184, + 1168, 961, 1171, 962, 1174, 988, 293, 992, 993, 994, + 995, 999, 325, 326, 1000, 1244, 1185, 1247, 1014, 1010, + 1015, 1017, 1026, 1020, 1190, 1191, 1021, 1022, 489, 1023, + 1029, 1194, 1030, 1031, 1034, 1036, 1103, 1195, 1037, 1038, + 1198, 1039, 1042, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 1047, 1050, 1053, + 1060, 313, 1063, 1009, 1066, 1069, 1283, 1073, 1076, 1079, + 1099, 1096, 1119, 1100, 1230, 1101, 1246, 1234, 1104, 1105, + 1238, 1106, 1112, 1134, 1241, 1113, 1114, 1115, 325, 1116, + 325, 1117, 1118, 1121, 1122, 1250, 1123, 1127, 1252, 827, + 828, 1125, 830, 1129, 833, 834, 1131, 1132, 837, 838, + 1135, 1140, 1142, 1147, 1154, 1158, 1156, 1159, 1160, 1161, + 1162, 326, 1163, 1193, 326, 1189, 1209, 1197, 1213, 1210, + 1218, 1226, 1228, 1231, 1232, 1235, 1236, 1239, 1240, 325, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 1245, 1253, 1259, 1255, 313, 1267, + 1273, 1276, 1279, 1282, 1284, 884, 885, 886, 1289, 1257, + 1302, 1304, 1306, 1308, 81, 320, 1310, 932, 1268, 1319, + 85, 86, 87, 1288, 1291, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 505, 1320, 1321, 513, + 1322, 1324, 1293, 1219, 1295, 1300, 69, 321, 940, 77, + 541, 1016, 0, 326, 0, 0, 0, 0, 0, 0, + 0, 941, 0, 0, 0, 0, 0, 947, 0, 0, + 35, 36, 37, 38, 39, 953, 954, 955, 0, 43, + 0, 958, 46, 0, 0, 0, 963, 964, 965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 980, 0, 0, 0, 326, 0, 987, 0, 0, 990, 0, 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, @@ -1654,153 +1656,154 @@ static const yytype_int16 yytable[] = 0, 0, 0, 125, 0, 0, 0, 0, 379, 0, 0, 0, 0, 131, 0, 182, 530, 1011, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 807, 0, 0, 0, 313, 0, 0, 0, + 311, 312, 659, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 326, 0, 326, 0, 0, 0, 0, 0, 0, 0, 81, 320, 1043, 1044, 1045, 1046, 85, 86, 87, 0, 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, 0, 0, 0, 1082, 0, 0, - 326, 321, 0, 0, 0, 0, 0, 0, 1095, 0, + 326, 0, 321, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 35, 36, 37, 38, 39, 0, - 0, 0, 0, 43, 0, 0, 46, 0, 0, 0, - 0, 0, 841, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 0, 0, 115, 116, 117, 118, 0, + 0, 0, 0, 0, 0, 35, 36, 37, 38, 39, + 0, 0, 0, 0, 43, 0, 807, 46, 0, 0, + 0, 0, 0, 0, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, + 0, 0, 313, 0, 0, 0, 115, 116, 117, 118, 0, 1133, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 123, 322, 0, 0, 0, 125, 0, 0, - 0, 0, 128, 0, 0, 0, 0, 131, 0, 0, - 530, 0, 0, 0, 81, 82, 83, 0, 84, 0, + 0, 0, 0, 123, 322, 0, 0, 0, 125, 0, + 0, 0, 0, 128, 0, 0, 0, 0, 131, 0, + 0, 530, 0, 0, 81, 82, 83, 0, 84, 0, 85, 86, 87, 0, 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 1179, 109, 110, 111, - 112, 0, 0, 113, 0, 0, 0, 0, 0, 0, - 0, 7, 8, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 0, 0, 0, 1208, - 0, 0, 0, 0, 484, 15, 16, 485, 18, 19, - 486, 21, 487, 23, 0, 24, 0, 26, 27, 0, - 29, 30, 31, 0, 114, 33, 34, 0, 0, 0, - 115, 116, 117, 118, 119, 120, 121, 122, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 123, 124, 50, - 51, 52, 125, 0, 126, 127, 0, 128, 0, 129, - 0, 130, 131, 0, 132, 81, 320, 348, 0, 0, - 0, 85, 86, 87, 0, 0, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, - 0, 0, 0, 593, 0, 0, 0, 321, 0, 0, - 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 35, 36, 37, 38, 39, 0, 0, 0, 0, 43, - 0, 0, 46, 0, 0, 484, 15, 16, 485, 18, - 19, 486, 21, 487, 23, 0, 24, 0, 26, 27, - 0, 29, 30, 31, 0, 0, 33, 34, 0, 0, - 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 123, 339, - 50, 51, 52, 125, 0, 0, 0, 0, 128, 0, - 81, 320, 985, 131, 0, 340, 85, 86, 87, 0, - 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 321, 0, 594, 0, 0, 7, 8, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 35, 36, 37, 38, 39, - 0, 0, 0, 0, 43, 0, 0, 46, 0, 0, + 112, 0, 0, 113, 0, 0, 7, 8, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1208, 484, 15, 16, 485, 18, 19, 486, 21, 487, 23, 0, 24, 0, 26, 27, 0, 29, 30, 31, 0, - 0, 33, 34, 0, 0, 0, 115, 116, 117, 118, + 0, 33, 34, 0, 0, 114, 0, 0, 0, 0, + 0, 115, 116, 117, 118, 119, 120, 121, 122, 0, + 0, 0, 0, 0, 0, 50, 51, 52, 123, 124, + 0, 0, 0, 125, 0, 126, 127, 0, 128, 0, + 129, 0, 130, 131, 0, 132, 81, 320, 348, 0, + 0, 0, 85, 86, 87, 0, 0, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 0, 579, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 321, + 0, 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 339, 50, 51, 52, 125, 0, - 0, 0, 0, 128, 0, 81, 320, 0, 131, 0, - 986, 85, 86, 87, 0, 0, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 321, 0, 748, - 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 36, 37, 38, 39, 0, 0, 0, + 0, 43, 0, 0, 46, 0, 0, 484, 15, 16, + 485, 18, 19, 486, 21, 487, 23, 0, 24, 0, + 26, 27, 0, 29, 30, 31, 0, 0, 33, 34, + 0, 0, 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 35, 36, 37, 38, 39, 0, 0, 0, 0, 43, - 0, 0, 46, 0, 0, 484, 15, 16, 485, 18, - 19, 486, 21, 487, 23, 0, 24, 0, 26, 27, - 0, 29, 30, 31, 0, 0, 33, 34, 0, 0, - 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 123, 339, - 50, 51, 52, 125, 0, 0, 0, 0, 128, 0, - 81, 320, 0, 131, 0, 340, 85, 86, 87, 0, - 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 321, 0, 768, 0, 0, 7, 8, 0, + 123, 339, 50, 51, 52, 125, 0, 0, 0, 0, + 128, 0, 81, 320, 985, 131, 0, 340, 85, 86, + 87, 0, 0, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 321, 593, 0, 0, 7, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 36, + 37, 38, 39, 0, 0, 0, 0, 43, 0, 0, + 46, 0, 0, 484, 15, 16, 485, 18, 19, 486, + 21, 487, 23, 0, 24, 0, 26, 27, 0, 29, + 30, 31, 0, 0, 33, 34, 0, 0, 0, 115, + 116, 117, 118, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 123, 339, 50, 51, + 52, 125, 0, 0, 0, 0, 128, 0, 81, 320, + 0, 131, 0, 986, 85, 86, 87, 0, 0, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 35, 36, 37, 38, 39, - 0, 0, 0, 0, 43, 0, 0, 46, 0, 0, - 484, 15, 16, 485, 18, 19, 486, 21, 487, 23, - 0, 24, 0, 26, 27, 0, 29, 30, 31, 0, - 0, 33, 34, 0, 0, 0, 115, 116, 117, 118, + 0, 321, 594, 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 322, 50, 51, 52, 125, 0, - 0, 0, 0, 128, 0, 81, 320, 0, 131, 0, - 529, 85, 86, 87, 0, 0, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 321, 0, 1211, - 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 35, 36, 37, 38, 39, 0, + 0, 0, 0, 43, 0, 0, 46, 0, 0, 484, + 15, 16, 485, 18, 19, 486, 21, 487, 23, 0, + 24, 0, 26, 27, 0, 29, 30, 31, 0, 0, + 33, 34, 0, 0, 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 35, 36, 37, 38, 39, 877, 0, 0, 0, 43, + 0, 0, 123, 339, 50, 51, 52, 125, 0, 0, + 0, 0, 128, 0, 81, 320, 0, 131, 0, 340, + 85, 86, 87, 0, 0, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 321, 748, 0, + 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 35, 36, 37, 38, 39, 0, 0, 0, 0, 43, 0, 0, 46, 0, 0, 484, 15, 16, 485, 18, 19, 486, 21, 487, 23, 0, 24, 0, 26, 27, - 0, 29, 30, 31, 0, 0, 33, 34, 921, 0, + 0, 29, 30, 31, 0, 0, 33, 34, 0, 0, 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 322, 50, 51, 52, 125, 0, 0, 0, 0, 128, 0, - 81, 320, 0, 131, 0, 710, 85, 86, 87, 0, + 81, 320, 0, 131, 0, 529, 85, 86, 87, 0, 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 321, 0, 1262, 0, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 0, 0, 0, 0, 313, 35, 36, 37, 38, 39, - 1102, 0, 0, 0, 43, 0, 0, 46, 0, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, + 0, 0, 0, 321, 768, 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 339, 0, 0, 0, 125, 0, - 0, 0, 0, 128, 0, 81, 320, 0, 131, 0, - 989, 85, 86, 87, 0, 0, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 321, 0, 0, - 0, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 35, 36, 37, 38, 39, 0, 0, 81, 280, 43, - 0, 0, 46, 85, 86, 87, 0, 0, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 1120, - 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 377, 1074, - 0, 0, 0, 125, 0, 0, 0, 0, 379, 0, - 81, 280, 230, 131, 0, 182, 85, 86, 87, 0, - 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 0, 109, 110, 111, 112, 0, 0, 113, + 0, 0, 0, 0, 0, 0, 35, 36, 37, 38, + 39, 0, 0, 0, 0, 43, 0, 0, 46, 0, + 0, 484, 15, 16, 485, 18, 19, 486, 21, 487, + 23, 0, 24, 0, 26, 27, 0, 29, 30, 31, + 0, 0, 33, 34, 0, 0, 0, 115, 116, 117, + 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 123, 322, 50, 51, 52, 125, + 0, 0, 0, 0, 128, 0, 81, 320, 0, 131, + 0, 710, 85, 86, 87, 0, 0, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 321, + 1211, 0, 0, 7, 8, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 36, 37, 38, 39, 841, 0, 0, + 0, 43, 0, 0, 46, 0, 0, 484, 15, 16, + 485, 18, 19, 486, 21, 487, 23, 0, 24, 0, + 26, 27, 0, 29, 30, 31, 0, 0, 33, 34, 0, 0, 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 123, 124, 0, 0, 0, 125, 0, 0, 0, 0, - 128, 0, 0, 285, 0, 131, 0, 286, 0, 0, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 1146, 0, 0, 0, 313, 0, - 0, 0, 0, 0, 0, 0, 115, 116, 117, 118, - 0, 0, 0, 0, 0, 0, 1217, 0, 0, 0, - 0, 0, 0, 123, 124, 0, 0, 0, 125, 0, - 0, 0, 0, 128, 0, 81, 280, 0, 131, 0, - 1088, 85, 86, 87, 0, 0, 88, 89, 90, 91, + 123, 339, 50, 51, 52, 125, 0, 0, 0, 0, + 128, 0, 81, 320, 0, 131, 0, 989, 85, 86, + 87, 0, 0, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 321, 1262, 0, 0, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 35, 36, + 37, 38, 39, 0, 0, 81, 280, 43, 0, 0, + 46, 85, 86, 87, 0, 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, - 81, 280, 0, 0, 0, 0, 85, 86, 87, 0, - 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 0, 0, 0, 299, 300, 301, 302, 303, + 102, 103, 104, 105, 106, 107, 108, 877, 0, 115, + 116, 117, 118, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 377, 1074, 0, 0, + 0, 125, 0, 0, 0, 0, 379, 0, 81, 280, + 230, 131, 0, 182, 85, 86, 87, 0, 0, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 0, 109, 110, 111, 112, 0, 0, 113, 0, 0, + 0, 0, 115, 116, 117, 118, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, + 124, 0, 0, 0, 125, 0, 0, 0, 0, 128, + 0, 0, 285, 0, 131, 0, 286, 0, 0, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 921, 0, 0, 0, 313, 0, 0, + 0, 0, 0, 0, 0, 115, 116, 117, 118, 0, + 0, 0, 0, 0, 0, 1102, 0, 0, 0, 0, + 0, 0, 123, 124, 0, 0, 0, 125, 0, 0, + 0, 0, 128, 0, 81, 280, 0, 131, 0, 1088, + 85, 86, 87, 0, 0, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 0, 0, 0, 81, + 280, 0, 0, 0, 0, 85, 86, 87, 0, 0, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 0, 0, 0, 0, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, @@ -1809,1239 +1812,1248 @@ static const yytype_int16 yytable[] = 0, 0, 0, 125, 0, 0, 0, 0, 128, 0, 0, 688, 0, 131, 0, 689, 115, 116, 117, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 377, 378, 846, 0, 0, 125, 0, + 0, 0, 0, 377, 378, 0, 846, 0, 125, 0, 0, 0, 0, 379, 0, 81, 320, 0, 131, 0, 182, 85, 86, 87, 0, 0, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 321, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, - 35, 36, 37, 38, 39, 0, 0, 81, 280, 43, - 0, 0, 46, 85, 86, 87, 0, 0, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 1260, - 0, 115, 116, 117, 118, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 123, 322, - 0, 0, 0, 125, 81, 280, 230, 0, 128, 0, - 85, 86, 87, 131, 0, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 514, 109, 110, 111, - 112, 0, 0, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 115, 116, 117, 118, 514, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 321, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, + 0, 35, 36, 37, 38, 39, 0, 0, 81, 280, + 43, 0, 0, 46, 85, 86, 87, 0, 0, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 1120, 0, 115, 116, 117, 118, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, + 322, 0, 0, 0, 125, 81, 280, 230, 0, 128, + 0, 85, 86, 87, 131, 0, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 1146, 109, 110, + 111, 112, 0, 0, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 115, 116, 117, 118, 1217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 123, 124, 0, 0, 0, 125, 590, 0, 0, 0, - 128, 0, 0, 0, 0, 131, 0, 0, 0, 0, + 0, 0, 123, 124, 0, 0, 0, 125, 1260, 0, + 0, 0, 128, 0, 0, 0, 0, 131, 0, 0, + 0, 0, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 514, 0, 0, 0, + 313, 0, 115, 116, 117, 118, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 514, 0, 0, 0, 123, + 124, 0, 0, 0, 125, 0, 0, 0, 0, 128, + 0, 0, 0, 0, 131, 590, 0, 0, 0, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 0, 681, 0, 0, 313, 0, 0, + 0, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 825, 0, 0, 0, 313, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 681, 0, 0, 0, 313, 0, - 115, 116, 117, 118, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 825, 0, 0, 0, 123, 124, 0, - 0, 0, 125, 0, 0, 0, 0, 128, 0, 0, - 0, 0, 131, 889, 0, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 515, 311, 312, 0, - 0, 0, 0, 313, 0, 0, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 532, 311, 312, + 309, 310, 311, 312, 889, 0, 0, 0, 313, 0, + 0, 0, 0, 0, 0, 0, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 515, 311, 312, 0, 0, 0, 0, 313, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 532, 311, 312, 0, + 0, 0, 0, 313, 0, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, - 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, - 313, 0, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 0, -4, 1, 0, - 313, -4, 0, 0, 0, 0, 0, 0, 0, -4, - -4, 0, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, - 313, 0, -4, 0, 0, 0, 0, -4, -4, 713, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, 0, -4, -4, -4, -4, -4, -4, -4, - -4, 0, -4, -4, -4, -4, -4, -4, -4, -4, - -4, 0, -4, -4, -4, -4, -4, -4, 0, 0, - -4, -4, 6, 0, 0, 0, -4, -4, -4, -4, - 7, 8, -4, 0, -4, 0, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, 0, 0, 0, 0, - 0, 0, 0, 9, 0, 0, 0, 0, 10, 11, - 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, - 30, 31, 0, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 0, 41, 42, 43, 44, 45, 46, 7, - 8, 47, 48, 0, 0, 0, 0, 49, 50, 51, - 52, 0, 0, 53, 0, 54, 0, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 0, 0, 0, - 0, 0, 484, 15, 16, 485, 18, 19, 486, 21, - 487, 23, 0, 24, 0, 26, 27, 0, 29, 30, - 31, 0, 0, 33, 34, 299, 300, 301, 302, 303, + 0, 0, 0, 313, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, + 0, 0, 313, 0, 0, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, - 0, 0, 0, 313, 0, 0, 0, 50, 51, 52, - 1056, 0, 1057, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 0, 0, 1083, 0, - 1084, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 0, 0, 0, 313, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 0, -4, + 1, 0, 313, -4, 0, 0, 0, 0, 0, 0, + 0, -4, -4, 0, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, + 0, 0, 313, 0, -4, 0, 0, 0, 0, -4, + -4, 713, -4, -4, 0, -4, -4, -4, -4, -4, + -4, -4, -4, -4, -4, 0, -4, -4, -4, -4, + -4, -4, -4, -4, 0, -4, -4, -4, -4, -4, + -4, -4, -4, -4, 0, -4, -4, -4, -4, -4, + -4, 0, 0, -4, -4, 6, 0, 0, 0, -4, + -4, -4, -4, 7, 8, -4, 0, -4, 0, -4, + -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, + 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, + 0, 10, 11, 0, 12, 13, 0, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, + 26, 27, 28, 29, 30, 31, 0, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 0, 41, 42, 43, + 44, 45, 46, 0, 0, 47, 48, 0, 0, 0, + 0, 49, 50, 51, 52, 0, 0, 53, 0, 54, + 0, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 1166, 0, 1167, 299, + 0, 0, 0, 0, 0, 0, 1056, 0, 1057, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 751, 299, 300, 301, + 0, 0, 0, 0, 1083, 0, 1084, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 0, 0, 777, 299, 300, 301, 302, 303, + 0, 0, 1166, 0, 1167, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 824, 299, 300, 301, 302, 303, 304, 305, + 0, 0, 751, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 862, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 777, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 0, 0, 1054, 299, + 0, 0, 0, 0, 0, 0, 0, 0, 824, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 1071, 299, 300, 301, + 0, 0, 0, 0, 0, 0, 862, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 0, 0, 1108, 299, 300, 301, 302, 303, + 0, 0, 0, 0, 1054, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 1109, 299, 300, 301, 302, 303, 304, 305, + 0, 0, 1071, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 1110, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 1108, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 0, 0, 1111, 299, + 0, 0, 0, 0, 0, 0, 0, 0, 1109, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 1141, 299, 300, 301, + 0, 0, 0, 0, 0, 0, 1110, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 0, 0, 1181, 299, 300, 301, 302, 303, + 0, 0, 0, 0, 1111, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 1186, 299, 300, 301, 302, 303, 304, 305, + 0, 0, 1141, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 1187, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 1181, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 0, 0, 1199, 299, + 0, 0, 0, 0, 0, 0, 0, 0, 1186, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 1202, 299, 300, 301, + 0, 0, 0, 0, 0, 0, 1187, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 0, 0, 1205, 299, 300, 301, 302, 303, + 0, 0, 0, 0, 1199, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 1225, 299, 300, 301, 302, 303, 304, 305, + 0, 0, 1202, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 1227, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 1205, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 0, 0, 1254, 299, + 0, 0, 0, 0, 0, 0, 0, 0, 1225, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 0, 0, 1256, 299, 300, 301, + 0, 0, 0, 0, 0, 0, 1227, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 0, 0, 1258, 299, 300, 301, 302, 303, + 0, 0, 0, 0, 1254, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 0, 0, 1271, 299, 300, 301, 302, 303, 304, 305, + 0, 0, 1256, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 472, 0, 0, 0, 0, 554, 299, + 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, + 1258, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 0, 0, 0, 0, 0, 0, 0, 1271, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 508, 299, 300, 301, 302, 303, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 472, + 0, 0, 0, 0, 554, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 554, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 508, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 555, 299, 300, 301, + 0, 0, 0, 0, 0, 0, 554, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 587, 299, 300, 301, 302, 303, 304, 305, + 0, 0, 555, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 0, 0, 632, 299, + 0, 313, 0, 0, 0, 0, 0, 0, 587, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 633, 299, 300, 301, 302, 303, + 0, 0, 0, 0, 632, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 646, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 633, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 647, 299, 300, 301, + 0, 0, 0, 0, 0, 0, 646, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 648, 299, 300, 301, 302, 303, 304, 305, + 0, 0, 647, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 0, 0, 649, 299, + 0, 313, 0, 0, 0, 0, 0, 0, 648, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 650, 299, 300, 301, 302, 303, + 0, 0, 0, 0, 649, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 651, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 650, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 739, 299, 300, 301, + 0, 0, 0, 0, 0, 0, 651, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 740, 299, 300, 301, 302, 303, 304, 305, + 0, 0, 739, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 0, 0, 741, 299, + 0, 313, 0, 0, 0, 0, 0, 0, 740, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 821, 299, 300, 301, 302, 303, + 0, 0, 0, 0, 741, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 860, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 821, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 861, 299, 300, 301, + 0, 0, 0, 0, 0, 0, 860, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 888, 299, 300, 301, 302, 303, 304, 305, + 0, 0, 861, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 0, 0, 1004, 299, + 0, 313, 0, 0, 0, 0, 0, 0, 888, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 1005, 299, 300, 301, 302, 303, + 0, 0, 0, 0, 1004, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 1025, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 1005, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 0, 0, 0, 0, 0, 1150, 299, 300, 301, + 0, 0, 0, 0, 0, 0, 1025, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, - 0, 0, 1151, 299, 300, 301, 302, 303, 304, 305, + 0, 0, 1150, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 0, 0, 0, 0, 0, 1157, 299, + 0, 313, 0, 0, 0, 0, 0, 0, 1151, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, - 0, 0, 0, 0, 1221, 299, 300, 301, 302, 303, + 0, 0, 0, 0, 1157, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, - 1224, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 1221, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 0, 0, 476, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, - 0, 0, 313, 0, 0, 0, 592, 299, 300, 301, + 0, 0, 0, 0, 0, 0, 1224, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 0, 0, 0, 0, 313, 0, 0, 0, 596, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 476, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, - 0, 0, 611, 299, 300, 301, 302, 303, 304, 305, + 0, 0, 592, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 0, 0, 613, 299, 300, 301, 302, + 0, 313, 0, 0, 0, 596, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 0, 0, 0, 0, 313, 0, 0, 0, 615, 299, + 0, 0, 0, 0, 313, 0, 0, 0, 611, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, - 0, 617, 299, 300, 301, 302, 303, 304, 305, 306, + 0, 613, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, - 313, 0, 0, 0, 619, 299, 300, 301, 302, 303, + 313, 0, 0, 0, 615, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, - 0, 0, 0, 313, 0, 0, 0, 621, 299, 300, + 0, 0, 0, 313, 0, 0, 0, 617, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, - 623, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 619, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 0, 0, 625, 299, 300, 301, 302, 303, 304, + 0, 0, 0, 621, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, - 0, 0, 313, 0, 0, 0, 627, 299, 300, 301, + 0, 0, 313, 0, 0, 0, 623, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 0, 0, 0, 0, 313, 0, 0, 0, 629, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 625, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, - 0, 0, 631, 299, 300, 301, 302, 303, 304, 305, + 0, 0, 627, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 0, 0, 635, 299, 300, 301, 302, + 0, 313, 0, 0, 0, 629, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 0, 0, 0, 0, 313, 0, 0, 0, 637, 299, + 0, 0, 0, 0, 313, 0, 0, 0, 631, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, - 0, 639, 299, 300, 301, 302, 303, 304, 305, 306, + 0, 635, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, - 313, 0, 0, 0, 641, 299, 300, 301, 302, 303, + 313, 0, 0, 0, 637, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, - 0, 0, 0, 313, 0, 0, 0, 643, 299, 300, + 0, 0, 0, 313, 0, 0, 0, 639, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, - 645, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 641, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 0, 0, 758, 299, 300, 301, 302, 303, 304, + 0, 0, 0, 643, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, - 0, 0, 313, 0, 0, 0, 759, 299, 300, 301, + 0, 0, 313, 0, 0, 0, 645, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 0, 0, 0, 0, 313, 0, 0, 0, 761, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 758, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, - 0, 0, 762, 299, 300, 301, 302, 303, 304, 305, + 0, 0, 759, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 0, 0, 773, 299, 300, 301, 302, + 0, 313, 0, 0, 0, 761, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 0, 0, 0, 0, 313, 0, 0, 0, 797, 299, + 0, 0, 0, 0, 313, 0, 0, 0, 762, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, - 0, 904, 299, 300, 301, 302, 303, 304, 305, 306, + 0, 773, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, - 313, 0, 0, 0, 906, 299, 300, 301, 302, 303, + 313, 0, 0, 0, 797, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, - 0, 0, 0, 313, 0, 0, 0, 908, 299, 300, + 0, 0, 0, 313, 0, 0, 0, 904, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, 0, 0, - 910, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 906, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 0, 0, 911, 299, 300, 301, 302, 303, 304, + 0, 0, 0, 908, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, - 0, 0, 313, 0, 0, 0, 1018, 299, 300, 301, + 0, 0, 313, 0, 0, 0, 910, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 0, 0, 0, 0, 313, 0, 472, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 0, 0, 0, 0, 313, 0, 509, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 0, 0, 0, 0, 313, 0, 518, + 312, 0, 0, 0, 0, 313, 0, 0, 0, 911, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, - 519, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 521, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, - 313, 0, 523, 299, 300, 301, 302, 303, 304, 305, + 0, 0, 1018, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 524, 299, 300, 301, 302, 303, 304, + 0, 313, 0, 472, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, - 0, 0, 313, 0, 527, 299, 300, 301, 302, 303, + 0, 0, 313, 0, 509, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, - 0, 0, 0, 313, 0, 528, 299, 300, 301, 302, + 0, 0, 0, 313, 0, 518, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 0, 0, 0, 0, 313, 0, 583, 299, 300, 301, + 0, 0, 0, 0, 313, 0, 519, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 0, 0, 0, 0, 313, 0, 584, 299, 300, + 312, 0, 0, 0, 0, 313, 0, 521, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 0, 0, 0, 0, 313, 0, 585, 299, + 311, 312, 0, 0, 0, 0, 313, 0, 523, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 0, 0, 0, 0, 313, 0, 591, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 524, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, - 610, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 527, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 612, 299, 300, 301, 302, 303, 304, 305, 306, + 0, 528, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, - 313, 0, 614, 299, 300, 301, 302, 303, 304, 305, + 313, 0, 583, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 616, 299, 300, 301, 302, 303, 304, + 0, 313, 0, 584, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, - 0, 0, 313, 0, 618, 299, 300, 301, 302, 303, + 0, 0, 313, 0, 585, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, - 0, 0, 0, 313, 0, 620, 299, 300, 301, 302, + 0, 0, 0, 313, 0, 591, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 0, 0, 0, 0, 313, 0, 622, 299, 300, 301, + 0, 0, 0, 0, 313, 0, 610, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 0, 0, 0, 0, 313, 0, 624, 299, 300, + 312, 0, 0, 0, 0, 313, 0, 612, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 0, 0, 0, 0, 313, 0, 626, 299, + 311, 312, 0, 0, 0, 0, 313, 0, 614, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 0, 0, 0, 0, 313, 0, 628, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 616, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, - 630, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 618, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 634, 299, 300, 301, 302, 303, 304, 305, 306, + 0, 620, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, - 313, 0, 636, 299, 300, 301, 302, 303, 304, 305, + 313, 0, 622, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 638, 299, 300, 301, 302, 303, 304, + 0, 313, 0, 624, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, - 0, 0, 313, 0, 640, 299, 300, 301, 302, 303, + 0, 0, 313, 0, 626, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, - 0, 0, 0, 313, 0, 642, 299, 300, 301, 302, + 0, 0, 0, 313, 0, 628, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 0, 0, 0, 0, 313, 0, 644, 299, 300, 301, + 0, 0, 0, 0, 313, 0, 630, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 0, 0, 0, 0, 313, 0, 699, 299, 300, + 312, 0, 0, 0, 0, 313, 0, 634, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 0, 0, 0, 0, 313, 0, 704, 299, + 311, 312, 0, 0, 0, 0, 313, 0, 636, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 0, 0, 0, 0, 313, 0, 712, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 638, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, - 714, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 640, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 715, 299, 300, 301, 302, 303, 304, 305, 306, + 0, 642, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, - 313, 0, 721, 299, 300, 301, 302, 303, 304, 305, + 313, 0, 644, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 728, 299, 300, 301, 302, 303, 304, + 0, 313, 0, 699, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, - 0, 0, 313, 0, 729, 299, 300, 301, 302, 303, + 0, 0, 313, 0, 704, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, - 0, 0, 0, 313, 0, 730, 299, 300, 301, 302, + 0, 0, 0, 313, 0, 712, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 0, 0, 0, 0, 313, 0, 750, 299, 300, 301, + 0, 0, 0, 0, 313, 0, 714, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 0, 0, 0, 0, 313, 0, 752, 299, 300, + 312, 0, 0, 0, 0, 313, 0, 715, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 0, 0, 0, 0, 313, 0, 753, 299, + 311, 312, 0, 0, 0, 0, 313, 0, 721, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 0, 0, 0, 0, 313, 0, 757, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 728, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, - 903, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 729, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, - 0, 905, 299, 300, 301, 302, 303, 304, 305, 306, + 0, 730, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, - 313, 0, 907, 299, 300, 301, 302, 303, 304, 305, + 313, 0, 750, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, - 0, 313, 0, 909, 299, 300, 301, 302, 303, 304, + 0, 313, 0, 752, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, - 0, 0, 313, 0, 914, 299, 300, 301, 302, 303, + 0, 0, 313, 0, 753, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, - 0, 0, 0, 313, 0, 1055, 299, 300, 301, 302, + 0, 0, 0, 313, 0, 757, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 0, 0, 0, 0, 313, 0, 1070, 299, 300, 301, + 0, 0, 0, 0, 313, 0, 903, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 0, 0, 0, 0, 313, 0, 1087, 299, 300, + 312, 0, 0, 0, 0, 313, 0, 905, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 0, 0, 0, 0, 313, 0, 1220, 299, + 311, 312, 0, 0, 0, 0, 313, 0, 907, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 0, 0, 0, 0, 313, 0, 1269, + 310, 311, 312, 0, 0, 0, 0, 313, 0, 909, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 0, 0, 0, 0, 313 + 309, 310, 311, 312, 0, 0, 0, 0, 313, 0, + 914, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 0, 0, 0, 0, 313, + 0, 1055, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 0, 0, 0, 0, + 313, 0, 1070, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 0, 0, 0, + 0, 313, 0, 1087, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 0, 0, + 0, 0, 313, 0, 1220, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 0, + 0, 0, 0, 313, 0, 1269, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 0, 0, 0, 0, 313 }; static const yytype_int16 yycheck[] = { 6, 190, 288, 6, 371, 372, 3, 275, 276, 277, - 4, 200, 1096, 6, 4, 6, 36, 37, 4, 39, - 674, 4, 4, 4, 74, 74, 5, 4, 745, 5, - 74, 4, 221, 6, 223, 1119, 6, 6, 4, 7, - 51, 75, 74, 126, 127, 4, 6, 81, 82, 4, - 5, 75, 6, 126, 127, 165, 166, 81, 82, 142, - 6, 144, 7, 49, 5, 749, 133, 134, 147, 142, - 13, 144, 58, 152, 126, 127, 4, 156, 6, 0, - 7, 36, 37, 38, 39, 195, 136, 42, 7, 136, - 142, 84, 136, 143, 143, 36, 37, 38, 39, 143, - 136, 42, 138, 85, 86, 87, 88, 126, 127, 103, - 144, 143, 126, 127, 95, 96, 137, 123, 124, 125, - 144, 142, 128, 129, 143, 6, 7, 133, 142, 95, - 96, 75, 123, 139, 6, 132, 142, 81, 82, 1223, - 146, 147, 148, 149, 6, 151, 152, 153, 154, 143, - 156, 157, 158, 143, 808, 872, 133, 134, 178, 179, - 143, 138, 144, 140, 143, 138, 186, 143, 145, 123, - 190, 116, 140, 143, 143, 181, 182, 136, 133, 134, - 126, 127, 7, 6, 190, 140, 113, 114, 115, 116, - 476, 55, 75, 382, 113, 114, 115, 116, 81, 82, - 144, 207, 208, 209, 1288, 211, 136, 286, 214, 215, - 4, 217, 136, 143, 133, 134, 405, 48, 75, 225, - 51, 140, 53, 136, 81, 82, 232, 233, 234, 235, + 5, 200, 1096, 6, 5, 7, 36, 37, 4, 39, + 674, 4, 6, 4, 4, 4, 4, 4, 745, 75, + 75, 6, 221, 75, 223, 1119, 4, 6, 6, 4, + 7, 4, 4, 6, 76, 75, 127, 128, 4, 5, + 82, 83, 137, 49, 139, 6, 52, 76, 54, 6, + 76, 6, 143, 82, 83, 749, 82, 83, 147, 76, + 165, 166, 137, 152, 139, 82, 83, 156, 0, 7, + 36, 37, 38, 39, 127, 128, 42, 7, 50, 137, + 13, 84, 137, 52, 137, 137, 144, 59, 144, 144, + 195, 144, 144, 86, 87, 88, 89, 138, 134, 135, + 96, 97, 143, 145, 144, 96, 97, 123, 124, 125, + 6, 7, 128, 129, 104, 117, 145, 133, 137, 145, + 129, 130, 131, 139, 6, 132, 142, 136, 145, 1223, + 146, 147, 148, 149, 6, 151, 152, 153, 154, 144, + 156, 157, 158, 144, 808, 872, 134, 135, 178, 179, + 144, 139, 145, 141, 144, 144, 186, 144, 146, 144, + 190, 139, 137, 124, 141, 181, 182, 124, 134, 135, + 137, 7, 127, 128, 190, 141, 114, 115, 116, 117, + 476, 6, 76, 382, 114, 115, 116, 117, 82, 83, + 137, 207, 208, 209, 1288, 211, 137, 286, 214, 215, + 4, 217, 137, 144, 134, 135, 405, 76, 137, 225, + 137, 141, 139, 82, 83, 144, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 126, 127, - 924, 136, 278, 51, 68, 69, 70, 71, 143, 142, - 286, 144, 136, 77, 142, 288, 80, 144, 113, 114, - 115, 116, 7, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 133, 134, - 126, 127, 45, 75, 136, 48, 322, 396, 51, 81, - 82, 126, 127, 136, 330, 133, 134, 143, 596, 335, - 126, 127, 140, 339, 340, 136, 75, 142, 344, 345, - 346, 347, 81, 82, 126, 127, 142, 353, 144, 369, - 370, 51, 358, 359, 360, 75, 136, 377, 75, 136, - 142, 81, 82, 143, 81, 82, 143, 51, 374, 375, - 376, 377, 378, 379, 371, 372, 8, 383, 384, 385, - 386, 51, 144, 389, 126, 127, 392, 393, 656, 75, - 396, 397, 398, 126, 127, 81, 82, 53, 113, 114, - 115, 116, 147, 136, 136, 144, 138, 152, 137, 415, - 143, 156, 418, 142, 417, 137, 684, 136, 133, 134, - 142, 126, 127, 48, 144, 126, 127, 144, 507, 136, - 75, 136, 143, 143, 133, 134, 81, 82, 143, 138, - 51, 140, 143, 1127, 143, 1129, 145, 1131, 75, 1103, - 529, 51, 137, 1170, 81, 82, 1173, 142, 144, 1176, - 75, 48, 75, 126, 127, 471, 81, 82, 81, 82, - 48, 4, 478, 476, 126, 127, 128, 129, 130, 142, - 544, 545, 546, 135, 477, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 144, - 4, 507, 508, 135, 510, 511, 126, 127, 514, 515, - 516, 137, 144, 4, 800, 801, 142, 144, 126, 127, - 126, 127, 142, 529, 136, 1242, 532, 533, 1212, 144, - 6, 144, 538, 553, 142, 136, 142, 543, 544, 545, - 546, 286, 48, 126, 127, 51, 566, 53, 554, 555, - 543, 544, 545, 546, 560, 1272, 126, 127, 1275, 142, - 136, 1278, 126, 127, 1281, 136, 572, 138, 574, 1253, - 136, 1255, 142, 1257, 143, 138, 655, 322, 142, 1263, - 136, 587, 138, 589, 590, 136, 1303, 138, 1305, 136, - 1307, 138, 4, 596, 339, 340, 126, 127, 677, 678, - 679, 680, 126, 127, 136, 972, 138, 1291, 4, 1293, - 689, 1295, 142, 8, 126, 127, 126, 127, 142, 126, - 127, 126, 127, 136, 4, 5, 632, 633, 136, 5, - 142, 710, 142, 136, 136, 142, 138, 142, 136, 7, - 646, 647, 648, 649, 650, 651, 652, 45, 136, 655, - 48, 396, 6, 51, 660, 53, 36, 37, 38, 39, - 4, 667, 42, 136, 932, 138, 136, 687, 138, 6, - 6, 677, 678, 679, 680, 681, 136, 128, 129, 130, - 136, 159, 138, 689, 135, 143, 164, 165, 166, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 176, 136, - 136, 138, 135, 4, 710, 136, 136, 138, 138, 136, - 136, 138, 138, 136, 136, 138, 138, 195, 196, 739, - 740, 741, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 133, 134, 5, 143, - 135, 138, 136, 140, 138, 136, 136, 138, 145, 144, - 136, 143, 138, 142, 136, 144, 1123, 142, 142, 144, - 144, 138, 507, 140, 142, 136, 144, 142, 138, 144, - 515, 516, 136, 779, 780, 51, 142, 53, 144, 142, - 142, 144, 144, 142, 529, 144, 136, 532, 12, 13, - 142, 142, 144, 144, 797, 142, 136, 144, 801, 878, - 142, 136, 144, 809, 142, 4, 144, 6, 142, 142, - 144, 144, 142, 6, 144, 821, 142, 136, 144, 825, - 143, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 142, 56, 144, 58, 59, 136, 61, 62, 63, - 136, 143, 66, 67, 142, 142, 144, 144, 142, 138, - 144, 871, 6, 859, 860, 861, 142, 142, 144, 144, - 138, 867, 868, 140, 143, 871, 90, 91, 92, 142, - 98, 144, 878, 142, 142, 144, 144, 142, 142, 144, - 144, 6, 888, 889, 890, 6, 6, 138, 4, 143, - 5, 897, 895, 6, 135, 140, 902, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 7, - 655, 917, 138, 135, 143, 7, 7, 144, 938, 7, - 144, 136, 143, 916, 8, 136, 136, 136, 6, 137, - 142, 937, 677, 678, 679, 680, 7, 943, 944, 7, - 6, 143, 948, 95, 689, 142, 1135, 137, 137, 6, - 956, 142, 4, 973, 139, 975, 7, 977, 98, 7, - 7, 967, 7, 98, 7, 710, 986, 7, 988, 989, - 98, 7, 7, 4, 967, 972, 6, 140, 144, 144, - 986, 6, 140, 989, 7, 7, 992, 7, 136, 136, - 143, 6, 4, 6, 1000, 473, 474, 6, 1004, 1005, - 1268, 139, 6, 6, 138, 7, 6, 1000, 7, 1088, - 51, 123, 7, 7, 53, 7, 7, 7, 6, 1025, - 7, 7, 7, 137, 1213, 7, 137, 137, 137, 4, - 1298, 136, 1300, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 142, 6, 1317, - 1056, 135, 6, 137, 143, 7, 6, 143, 7, 1138, - 7, 539, 6, 6, 6, 6, 1072, 51, 1074, 4, - 4, 4, 4, 136, 552, 6, 6, 1083, 143, 1085, - 140, 137, 1088, 7, 6, 143, 1092, 58, 6, 143, - 143, 1097, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 6, 6, 143, 1126, 135, 1128, 6, - 1130, 6, 5, 4, 6, 5, 143, 1137, 7, 1139, - 1126, 7, 1128, 7, 1130, 7, 1123, 143, 6, 143, - 6, 94, 1138, 878, 6, 1214, 1142, 1216, 6, 140, - 7, 6, 4, 6, 1150, 1151, 6, 6, 6, 6, - 139, 1157, 6, 6, 6, 6, 6, 1163, 5, 98, - 1166, 6, 6, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 6, 6, 6, - 137, 135, 6, 1189, 6, 6, 1265, 142, 6, 6, - 6, 4, 143, 7, 1200, 6, 1216, 1203, 6, 6, - 1206, 6, 140, 5, 1210, 6, 49, 6, 1214, 6, - 1216, 6, 6, 6, 143, 1221, 6, 143, 1224, 697, - 698, 144, 700, 143, 702, 703, 143, 143, 706, 707, - 6, 143, 7, 6, 6, 6, 6, 93, 6, 6, - 6, 986, 6, 143, 989, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 1265, - 96, 6, 143, 135, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 144, 6, - 64, 6, 135, 6, 6, 763, 764, 765, 143, 6, - 6, 6, 6, 6, 6, 3, 4, 6, 144, 6, - 6, 9, 10, 11, 143, 143, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 6, 143, 1074, - 6, 143, 6, 6, 6, 6, 6, 45, 6, 143, - 143, 6, 6, 1088, 6, 143, 6, 143, 6, 6, - 6, 829, 143, 6, 820, 1189, 828, 835, 3, 3, - 68, 69, 70, 71, 72, 843, 844, 845, 920, 77, - -1, 849, 80, 352, -1, -1, 854, 855, 856, -1, + 266, 267, 268, 269, 270, 271, 272, 273, 49, 137, + 924, 52, 278, 54, 137, 69, 70, 71, 72, 137, + 286, 144, 127, 128, 78, 288, 145, 81, 114, 115, + 116, 117, 56, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 134, 135, + 7, 5, 46, 76, 137, 49, 322, 396, 52, 82, + 83, 143, 138, 145, 330, 134, 135, 143, 596, 335, + 76, 54, 141, 339, 340, 52, 82, 83, 344, 345, + 346, 347, 36, 37, 38, 39, 138, 353, 42, 369, + 370, 143, 358, 359, 360, 76, 52, 377, 76, 137, + 76, 82, 83, 52, 82, 83, 82, 83, 374, 375, + 376, 377, 378, 379, 371, 372, 138, 383, 384, 385, + 386, 143, 145, 389, 127, 128, 392, 393, 656, 76, + 396, 397, 398, 127, 128, 82, 83, 52, 76, 145, + 49, 144, 147, 137, 82, 83, 137, 152, 138, 415, + 144, 156, 418, 143, 417, 144, 684, 114, 115, 116, + 117, 52, 127, 128, 145, 76, 52, 145, 507, 145, + 144, 82, 83, 49, 127, 128, 49, 134, 135, 144, + 12, 13, 137, 1127, 139, 1129, 137, 1131, 139, 1103, + 529, 144, 137, 1170, 127, 128, 1173, 4, 145, 1176, + 127, 128, 129, 130, 131, 471, 137, 145, 139, 136, + 143, 137, 478, 476, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 477, 57, 4, 59, 60, 4, + 62, 63, 64, 137, 145, 67, 68, 127, 128, 137, + 139, 507, 508, 6, 510, 511, 127, 128, 514, 515, + 516, 4, 4, 143, 800, 801, 544, 545, 546, 91, + 92, 93, 143, 529, 145, 1242, 532, 533, 1212, 127, + 128, 137, 538, 553, 137, 144, 139, 543, 544, 545, + 546, 286, 137, 127, 128, 143, 566, 145, 554, 555, + 543, 544, 545, 546, 560, 1272, 127, 128, 1275, 143, + 137, 1278, 127, 128, 1281, 143, 572, 145, 574, 1253, + 137, 1255, 143, 1257, 145, 137, 655, 322, 143, 1263, + 137, 587, 139, 589, 590, 137, 1303, 139, 1305, 137, + 1307, 139, 7, 596, 339, 340, 4, 6, 677, 678, + 679, 680, 127, 128, 137, 972, 139, 1291, 5, 1293, + 689, 1295, 8, 127, 128, 6, 127, 128, 143, 127, + 128, 127, 128, 6, 4, 5, 632, 633, 137, 143, + 46, 710, 143, 49, 144, 143, 52, 143, 54, 137, + 646, 647, 648, 649, 650, 651, 652, 127, 128, 655, + 137, 396, 127, 128, 660, 137, 36, 37, 38, 39, + 137, 667, 42, 143, 932, 137, 137, 687, 143, 127, + 128, 677, 678, 679, 680, 681, 127, 128, 127, 128, + 137, 159, 139, 689, 137, 143, 164, 165, 166, 127, + 128, 137, 143, 139, 143, 127, 128, 137, 176, 127, + 128, 134, 135, 4, 710, 143, 139, 137, 141, 139, + 8, 143, 137, 146, 139, 143, 5, 195, 196, 739, + 740, 741, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 134, 135, 144, 144, + 136, 139, 137, 141, 139, 137, 144, 139, 146, 145, + 137, 137, 139, 139, 144, 137, 1123, 139, 137, 143, + 139, 145, 507, 139, 137, 141, 143, 52, 145, 54, + 515, 516, 137, 779, 780, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 529, 137, 6, 532, 136, 143, + 143, 145, 145, 143, 797, 145, 6, 139, 801, 878, + 143, 141, 145, 809, 143, 143, 145, 145, 143, 143, + 145, 145, 143, 139, 145, 821, 143, 139, 145, 825, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 143, 4, 145, 6, 136, 143, + 143, 145, 145, 143, 143, 145, 145, 145, 143, 99, + 145, 871, 144, 859, 860, 861, 143, 143, 145, 145, + 144, 867, 868, 6, 143, 871, 145, 143, 143, 145, + 145, 143, 878, 145, 143, 143, 145, 145, 143, 143, + 145, 145, 888, 889, 890, 6, 6, 139, 4, 144, + 5, 897, 895, 6, 136, 141, 902, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 7, + 655, 917, 139, 136, 144, 7, 145, 7, 938, 144, + 7, 137, 137, 916, 8, 137, 137, 6, 6, 138, + 143, 937, 677, 678, 679, 680, 7, 943, 944, 7, + 96, 144, 948, 143, 689, 138, 1135, 138, 143, 6, + 956, 4, 140, 973, 99, 975, 7, 977, 7, 7, + 7, 967, 99, 7, 7, 710, 986, 99, 988, 989, + 7, 7, 4, 6, 967, 972, 141, 145, 145, 6, + 986, 7, 7, 989, 7, 137, 992, 141, 137, 144, + 6, 4, 6, 140, 1000, 473, 474, 6, 1004, 1005, + 1268, 6, 6, 139, 7, 6, 124, 1000, 7, 1088, + 52, 7, 7, 54, 7, 7, 7, 6, 4, 1025, + 7, 138, 7, 7, 1213, 7, 138, 138, 138, 143, + 1298, 6, 1300, 137, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 144, 1317, + 1056, 6, 136, 7, 138, 6, 144, 7, 7, 1138, + 6, 539, 6, 6, 52, 6, 1072, 4, 1074, 4, + 4, 137, 4, 6, 552, 6, 138, 1083, 141, 1085, + 144, 7, 1088, 6, 144, 59, 1092, 6, 144, 144, + 6, 1097, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 6, 144, 6, 1126, 136, 1128, 6, + 1130, 5, 4, 6, 144, 5, 7, 1137, 7, 1139, + 1126, 7, 1128, 7, 1130, 144, 1123, 144, 6, 6, + 95, 6, 1138, 878, 7, 1214, 1142, 1216, 6, 141, + 4, 6, 140, 6, 1150, 1151, 6, 6, 6, 6, + 6, 1157, 6, 6, 6, 5, 7, 1163, 6, 6, + 1166, 99, 6, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 6, 6, 138, + 6, 136, 6, 1189, 6, 143, 1265, 6, 6, 6, + 4, 144, 144, 6, 1200, 6, 1216, 1203, 6, 141, + 1206, 6, 5, 7, 1210, 50, 6, 6, 1214, 6, + 1216, 6, 6, 6, 6, 1221, 144, 144, 1224, 697, + 698, 145, 700, 144, 702, 703, 144, 6, 706, 707, + 144, 6, 94, 6, 6, 6, 97, 6, 6, 6, + 6, 986, 144, 6, 989, 144, 6, 145, 144, 65, + 6, 6, 6, 6, 6, 6, 6, 6, 145, 1265, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 6, 144, 6, 144, 136, 6, + 6, 6, 6, 6, 6, 763, 764, 765, 6, 144, + 6, 6, 6, 6, 3, 4, 6, 820, 144, 6, + 9, 10, 11, 144, 144, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 6, 6, 6, 1074, + 6, 6, 144, 1189, 144, 144, 3, 46, 828, 3, + 352, 920, -1, 1088, -1, -1, -1, -1, -1, -1, + -1, 829, -1, -1, -1, -1, -1, 835, -1, -1, + 69, 70, 71, 72, 73, 843, 844, 845, -1, 78, + -1, 849, 81, -1, -1, -1, 854, 855, 856, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 867, -1, -1, -1, 1138, -1, 873, -1, -1, 876, -1, - -1, 109, 110, 111, 112, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, - -1, -1, -1, 131, -1, -1, -1, -1, 136, -1, - -1, -1, -1, 141, -1, 143, 144, 915, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 6, -1, -1, -1, 135, -1, -1, -1, + -1, 110, 111, 112, 113, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 127, 128, + -1, -1, -1, 132, -1, -1, -1, -1, 137, -1, + -1, -1, -1, 142, -1, 144, 145, 915, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 6, -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1214, -1, 1216, -1, -1, -1, -1, -1, -1, -1, 3, 4, 959, 960, 961, 962, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, 995, -1, -1, - 1265, 45, -1, -1, -1, -1, -1, -1, 1006, -1, + 1265, -1, 46, -1, -1, -1, -1, -1, 1006, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 68, 69, 70, 71, 72, -1, - -1, -1, -1, 77, -1, -1, 80, -1, -1, -1, - -1, -1, 6, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, -1, -1, 109, 110, 111, 112, -1, + -1, -1, -1, -1, -1, 69, 70, 71, 72, 73, + -1, -1, -1, -1, 78, -1, 6, 81, -1, -1, + -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, + -1, -1, 136, -1, -1, -1, 110, 111, 112, 113, -1, 1069, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 126, 127, -1, -1, -1, 131, -1, -1, - -1, -1, 136, -1, -1, -1, -1, 141, -1, -1, - 144, -1, -1, -1, 3, 4, 5, -1, 7, -1, + -1, -1, -1, 127, 128, -1, -1, -1, 132, -1, + -1, -1, -1, 137, -1, -1, -1, -1, 142, -1, + -1, 145, -1, -1, 3, 4, 5, -1, 7, -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 1134, 36, 37, 38, - 39, -1, -1, 42, -1, -1, -1, -1, -1, -1, - -1, 12, 13, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, -1, 1177, - -1, -1, -1, -1, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, -1, 56, -1, 58, 59, -1, - 61, 62, 63, -1, 103, 66, 67, -1, -1, -1, - 109, 110, 111, 112, 113, 114, 115, 116, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 126, 127, 90, - 91, 92, 131, -1, 133, 134, -1, 136, -1, 138, - -1, 140, 141, -1, 143, 3, 4, 5, -1, -1, - -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, -1, 144, -1, -1, -1, 45, -1, -1, - -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 68, 69, 70, 71, 72, -1, -1, -1, -1, 77, - -1, -1, 80, -1, -1, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, -1, 58, 59, - -1, 61, 62, 63, -1, -1, 66, 67, -1, -1, - -1, 109, 110, 111, 112, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, - 90, 91, 92, 131, -1, -1, -1, -1, 136, -1, - 3, 4, 5, 141, -1, 143, 9, 10, 11, -1, - -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 45, -1, 144, -1, -1, 12, 13, -1, + 39, -1, -1, 42, -1, -1, 12, 13, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, -1, -1, -1, -1, 136, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1177, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + -1, 57, -1, 59, 60, -1, 62, 63, 64, -1, + -1, 67, 68, -1, -1, 104, -1, -1, -1, -1, + -1, 110, 111, 112, 113, 114, 115, 116, 117, -1, + -1, -1, -1, -1, -1, 91, 92, 93, 127, 128, + -1, -1, -1, 132, -1, 134, 135, -1, 137, -1, + 139, -1, 141, 142, -1, 144, 3, 4, 5, -1, + -1, -1, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, -1, 145, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, + -1, -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, - -1, -1, -1, -1, 77, -1, -1, 80, -1, -1, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, -1, 58, 59, -1, 61, 62, 63, -1, - -1, 66, 67, -1, -1, -1, 109, 110, 111, 112, + -1, -1, 69, 70, 71, 72, 73, -1, -1, -1, + -1, 78, -1, -1, 81, -1, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, -1, 57, -1, + 59, 60, -1, 62, 63, 64, -1, -1, 67, 68, + -1, -1, -1, 110, 111, 112, 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 126, 127, 90, 91, 92, 131, -1, - -1, -1, -1, 136, -1, 3, 4, -1, 141, -1, - 143, 9, 10, 11, -1, -1, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 45, -1, 144, - -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, + 127, 128, 91, 92, 93, 132, -1, -1, -1, -1, + 137, -1, 3, 4, 5, 142, -1, 144, 9, 10, + 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 46, 145, -1, -1, 12, + 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 69, 70, + 71, 72, 73, -1, -1, -1, -1, 78, -1, -1, + 81, -1, -1, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, -1, 57, -1, 59, 60, -1, 62, + 63, 64, -1, -1, 67, 68, -1, -1, -1, 110, + 111, 112, 113, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 127, 128, 91, 92, + 93, 132, -1, -1, -1, -1, 137, -1, 3, 4, + -1, 142, -1, 144, 9, 10, 11, -1, -1, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 68, 69, 70, 71, 72, -1, -1, -1, -1, 77, - -1, -1, 80, -1, -1, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, -1, 58, 59, - -1, 61, 62, 63, -1, -1, 66, 67, -1, -1, - -1, 109, 110, 111, 112, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, - 90, 91, 92, 131, -1, -1, -1, -1, 136, -1, - 3, 4, -1, 141, -1, 143, 9, 10, 11, -1, - -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 45, -1, 144, -1, -1, 12, 13, -1, + -1, 46, 145, -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, - -1, -1, -1, -1, 77, -1, -1, 80, -1, -1, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - -1, 56, -1, 58, 59, -1, 61, 62, 63, -1, - -1, 66, 67, -1, -1, -1, 109, 110, 111, 112, + -1, -1, -1, -1, 69, 70, 71, 72, 73, -1, + -1, -1, -1, 78, -1, -1, 81, -1, -1, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, -1, + 57, -1, 59, 60, -1, 62, 63, 64, -1, -1, + 67, 68, -1, -1, -1, 110, 111, 112, 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 126, 127, 90, 91, 92, 131, -1, - -1, -1, -1, 136, -1, 3, 4, -1, 141, -1, - 143, 9, 10, 11, -1, -1, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 45, -1, 144, - -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, + -1, -1, 127, 128, 91, 92, 93, 132, -1, -1, + -1, -1, 137, -1, 3, 4, -1, 142, -1, 144, + 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 46, 145, -1, + -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 68, 69, 70, 71, 72, 6, -1, -1, -1, 77, - -1, -1, 80, -1, -1, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, -1, 56, -1, 58, 59, - -1, 61, 62, 63, -1, -1, 66, 67, 6, -1, - -1, 109, 110, 111, 112, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, - 90, 91, 92, 131, -1, -1, -1, -1, 136, -1, - 3, 4, -1, 141, -1, 143, 9, 10, 11, -1, + 69, 70, 71, 72, 73, -1, -1, -1, -1, 78, + -1, -1, 81, -1, -1, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, -1, 57, -1, 59, 60, + -1, 62, 63, 64, -1, -1, 67, 68, -1, -1, + -1, 110, 111, 112, 113, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 127, 128, + 91, 92, 93, 132, -1, -1, -1, -1, 137, -1, + 3, 4, -1, 142, -1, 144, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 45, -1, 144, -1, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - -1, -1, -1, -1, 135, 68, 69, 70, 71, 72, - 6, -1, -1, -1, 77, -1, -1, 80, -1, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, - -1, -1, -1, -1, -1, -1, 109, 110, 111, 112, + -1, -1, -1, 46, 145, -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 126, 127, -1, -1, -1, 131, -1, - -1, -1, -1, 136, -1, 3, 4, -1, 141, -1, - 143, 9, 10, 11, -1, -1, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 45, -1, -1, - -1, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - 68, 69, 70, 71, 72, -1, -1, 3, 4, 77, - -1, -1, 80, 9, 10, 11, -1, -1, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 6, - -1, 109, 110, 111, 112, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, - -1, -1, -1, 131, -1, -1, -1, -1, 136, -1, - 3, 4, 5, 141, -1, 143, 9, 10, 11, -1, - -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, -1, 36, 37, 38, 39, -1, -1, 42, - -1, -1, -1, 109, 110, 111, 112, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 69, 70, 71, 72, + 73, -1, -1, -1, -1, 78, -1, -1, 81, -1, + -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, -1, 57, -1, 59, 60, -1, 62, 63, 64, + -1, -1, 67, 68, -1, -1, -1, 110, 111, 112, + 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 127, 128, 91, 92, 93, 132, + -1, -1, -1, -1, 137, -1, 3, 4, -1, 142, + -1, 144, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, + 145, -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 126, 127, -1, -1, -1, 131, -1, -1, -1, -1, - 136, -1, -1, 139, -1, 141, -1, 143, -1, -1, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 6, -1, -1, -1, 135, -1, - -1, -1, -1, -1, -1, -1, 109, 110, 111, 112, - -1, -1, -1, -1, -1, -1, 6, -1, -1, -1, - -1, -1, -1, 126, 127, -1, -1, -1, 131, -1, - -1, -1, -1, 136, -1, 3, 4, -1, 141, -1, - 143, 9, 10, 11, -1, -1, 14, 15, 16, 17, + -1, -1, 69, 70, 71, 72, 73, 6, -1, -1, + -1, 78, -1, -1, 81, -1, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, -1, 57, -1, + 59, 60, -1, 62, 63, 64, -1, -1, 67, 68, + -1, -1, -1, 110, 111, 112, 113, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 127, 128, 91, 92, 93, 132, -1, -1, -1, -1, + 137, -1, 3, 4, -1, 142, -1, 144, 9, 10, + 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 46, 145, -1, -1, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, -1, -1, -1, 136, 69, 70, + 71, 72, 73, -1, -1, 3, 4, 78, -1, -1, + 81, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, - 3, 4, -1, -1, -1, -1, 9, 10, 11, -1, - -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, -1, -1, -1, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 109, 110, 111, 112, 135, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, - -1, -1, -1, 131, -1, -1, -1, -1, 136, -1, - -1, 139, -1, 141, -1, 143, 109, 110, 111, 112, + 28, 29, 30, 31, 32, 33, 34, 6, -1, 110, + 111, 112, 113, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 127, 128, -1, -1, + -1, 132, -1, -1, -1, -1, 137, -1, 3, 4, + 5, 142, -1, 144, 9, 10, 11, -1, -1, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + -1, 36, 37, 38, 39, -1, -1, 42, -1, -1, + -1, -1, 110, 111, 112, 113, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 127, + 128, -1, -1, -1, 132, -1, -1, -1, -1, 137, + -1, -1, 140, -1, 142, -1, 144, -1, -1, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 6, -1, -1, -1, 136, -1, -1, + -1, -1, -1, -1, -1, 110, 111, 112, 113, -1, + -1, -1, -1, -1, -1, 6, -1, -1, -1, -1, + -1, -1, 127, 128, -1, -1, -1, 132, -1, -1, + -1, -1, 137, -1, 3, 4, -1, 142, -1, 144, + 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, -1, -1, -1, 3, + 4, -1, -1, -1, -1, 9, 10, 11, -1, -1, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, -1, -1, -1, -1, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 110, 111, 112, 113, 136, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 127, 128, + -1, -1, -1, 132, -1, -1, -1, -1, 137, -1, + -1, 140, -1, 142, -1, 144, 110, 111, 112, 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 126, 127, 64, -1, -1, 131, -1, - -1, -1, -1, 136, -1, 3, 4, -1, 141, -1, - 143, 9, 10, 11, -1, -1, 14, 15, 16, 17, + -1, -1, -1, 127, 128, -1, 65, -1, 132, -1, + -1, -1, -1, 137, -1, 3, 4, -1, 142, -1, + 144, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 45, 117, 118, + -1, -1, -1, -1, -1, -1, -1, -1, 46, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, -1, -1, -1, -1, 135, -1, -1, -1, - 68, 69, 70, 71, 72, -1, -1, 3, 4, 77, - -1, -1, 80, 9, 10, 11, -1, -1, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 6, - -1, 109, 110, 111, 112, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 126, 127, - -1, -1, -1, 131, 3, 4, 5, -1, 136, -1, - 9, 10, 11, 141, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 8, 36, 37, 38, - 39, -1, -1, 42, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 109, 110, 111, 112, 8, -1, -1, + 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, + -1, 69, 70, 71, 72, 73, -1, -1, 3, 4, + 78, -1, -1, 81, 9, 10, 11, -1, -1, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 6, -1, 110, 111, 112, 113, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 127, + 128, -1, -1, -1, 132, 3, 4, 5, -1, 137, + -1, 9, 10, 11, 142, -1, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 6, 36, 37, + 38, 39, -1, -1, 42, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 110, 111, 112, 113, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 126, 127, -1, -1, -1, 131, 8, -1, -1, -1, - 136, -1, -1, -1, -1, 141, -1, -1, -1, -1, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 8, -1, -1, -1, 135, -1, - 109, 110, 111, 112, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 8, -1, -1, -1, 126, 127, -1, - -1, -1, 131, -1, -1, -1, -1, 136, -1, -1, - -1, -1, 141, 8, -1, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - -1, -1, -1, -1, 135, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, - 135, -1, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, -1, 0, 1, -1, - 135, 4, -1, -1, -1, -1, -1, -1, -1, 12, - 13, -1, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, - 135, -1, 35, -1, -1, -1, -1, 40, 41, 144, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, -1, 56, 57, 58, 59, 60, 61, 62, - 63, -1, 65, 66, 67, 68, 69, 70, 71, 72, - 73, -1, 75, 76, 77, 78, 79, 80, -1, -1, - 83, 84, 4, -1, -1, -1, 89, 90, 91, 92, - 12, 13, 95, -1, 97, -1, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, -1, -1, -1, -1, - -1, -1, -1, 35, -1, -1, -1, -1, 40, 41, - -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, -1, 56, 57, 58, 59, 60, 61, - 62, 63, -1, 65, 66, 67, 68, 69, 70, 71, - 72, 73, -1, 75, 76, 77, 78, 79, 80, 12, - 13, 83, 84, -1, -1, -1, -1, 89, 90, 91, - 92, -1, -1, 95, -1, 97, -1, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, -1, -1, -1, - -1, -1, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, -1, 56, -1, 58, 59, -1, 61, 62, - 63, -1, -1, 66, 67, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, 90, 91, 92, - 142, -1, 144, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, 142, -1, - 144, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, -1, -1, -1, -1, -1, 142, -1, 144, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, - -1, -1, -1, -1, -1, -1, 144, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, - -1, -1, -1, -1, 144, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, - -1, -1, 144, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, - 144, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, -1, -1, -1, -1, -1, -1, -1, 144, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, - -1, -1, -1, -1, -1, -1, 144, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, - -1, -1, -1, -1, 144, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, - -1, -1, 144, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, - 144, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, -1, -1, -1, -1, -1, -1, -1, 144, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, - -1, -1, -1, -1, -1, -1, 144, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, - -1, -1, -1, -1, 144, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, - -1, -1, 144, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, - 144, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, -1, -1, -1, -1, -1, -1, -1, 144, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, - -1, -1, -1, -1, -1, -1, 144, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, - -1, -1, -1, -1, 144, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, - -1, -1, 144, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, - 144, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, -1, -1, -1, -1, -1, -1, -1, 144, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, - -1, -1, -1, -1, -1, -1, 144, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, - -1, -1, -1, -1, 144, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, - -1, -1, 144, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, 137, -1, -1, -1, -1, 142, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, - -1, -1, -1, -1, 142, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, - 142, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, -1, -1, -1, -1, -1, 142, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, - -1, -1, 142, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, 142, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, - -1, -1, -1, -1, 142, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, - 142, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, -1, -1, -1, -1, -1, 142, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, - -1, -1, 142, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, 142, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, - -1, -1, -1, -1, 142, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, - 142, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, -1, -1, -1, -1, -1, 142, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, - -1, -1, 142, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, 142, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, - -1, -1, -1, -1, 142, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, - 142, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, -1, -1, -1, -1, -1, 142, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, - -1, -1, 142, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, 142, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, - -1, -1, -1, -1, 142, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, - 142, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, -1, -1, -1, -1, -1, 142, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, -1, -1, -1, - -1, -1, 142, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, 142, 117, + -1, -1, 127, 128, -1, -1, -1, 132, 6, -1, + -1, -1, 137, -1, -1, -1, -1, 142, -1, -1, + -1, -1, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 8, -1, -1, -1, + 136, -1, 110, 111, 112, 113, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 8, -1, -1, -1, 127, + 128, -1, -1, -1, 132, -1, -1, -1, -1, 137, + -1, -1, -1, -1, 142, 8, -1, -1, -1, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, 8, -1, -1, 136, -1, -1, + -1, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 8, -1, -1, -1, 136, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, - -1, -1, -1, -1, 142, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, - 142, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, - -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, -1, -1, 139, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, - -1, -1, 139, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, -1, -1, 139, 117, 118, 119, 120, + 128, 129, 130, 131, 8, -1, -1, -1, 136, -1, + -1, -1, -1, -1, -1, -1, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, -1, -1, 136, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, + -1, -1, 136, -1, -1, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, 0, + 1, -1, 136, 4, -1, -1, -1, -1, -1, -1, + -1, 12, 13, -1, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, + -1, -1, 136, -1, 35, -1, -1, -1, -1, 40, + 41, 145, 43, 44, -1, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, -1, 57, 58, 59, 60, + 61, 62, 63, 64, -1, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, 76, 77, 78, 79, 80, + 81, -1, -1, 84, 85, 4, -1, -1, -1, 90, + 91, 92, 93, 12, 13, 96, -1, 98, -1, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, -1, + -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, + -1, 40, 41, -1, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, -1, 57, 58, + 59, 60, 61, 62, 63, 64, -1, 66, 67, 68, + 69, 70, 71, 72, 73, 74, -1, 76, 77, 78, + 79, 80, 81, -1, -1, 84, 85, -1, -1, -1, + -1, 90, 91, 92, 93, -1, -1, 96, -1, 98, + -1, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, -1, -1, -1, 143, -1, 145, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, + -1, -1, -1, -1, 143, -1, 145, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, -1, -1, -1, -1, 136, -1, -1, -1, -1, + -1, -1, 143, -1, 145, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, + -1, -1, 145, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, + 145, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, -1, -1, -1, -1, -1, 145, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, + -1, -1, -1, -1, -1, -1, 145, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, -1, -1, -1, -1, 136, -1, -1, -1, -1, + -1, -1, -1, -1, 145, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, + -1, -1, 145, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, + 145, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, -1, -1, -1, -1, -1, 145, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, + -1, -1, -1, -1, -1, -1, 145, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, -1, -1, -1, -1, 136, -1, -1, -1, -1, + -1, -1, -1, -1, 145, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, + -1, -1, 145, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, + 145, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, -1, -1, -1, -1, -1, 145, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, + -1, -1, -1, -1, -1, -1, 145, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, -1, -1, -1, -1, 136, -1, -1, -1, -1, + -1, -1, -1, -1, 145, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, + -1, -1, 145, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, + 145, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, -1, -1, -1, -1, -1, 145, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, + -1, -1, -1, -1, -1, -1, 145, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - -1, -1, -1, -1, 135, -1, -1, -1, 139, 117, + 131, -1, -1, -1, -1, 136, -1, -1, -1, -1, + -1, -1, -1, -1, 145, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, + -1, -1, 145, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, + 145, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, -1, -1, -1, -1, -1, 145, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, -1, -1, -1, 136, -1, 138, + -1, -1, -1, -1, 143, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, + 143, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, -1, -1, -1, 143, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, -1, -1, -1, -1, 136, -1, -1, -1, -1, + -1, -1, 143, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, -1, -1, -1, -1, -1, 143, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, + -1, -1, -1, -1, 143, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, + 143, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, -1, -1, -1, 143, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, -1, -1, -1, -1, 136, -1, -1, -1, -1, + -1, -1, 143, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, -1, -1, -1, -1, -1, 143, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, + -1, -1, -1, -1, 143, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, + 143, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, -1, -1, -1, 143, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, -1, -1, -1, -1, 136, -1, -1, -1, -1, + -1, -1, 143, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, -1, -1, -1, -1, -1, 143, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, + -1, -1, -1, -1, 143, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, + 143, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, -1, -1, -1, 143, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, -1, -1, -1, -1, 136, -1, -1, -1, -1, + -1, -1, 143, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, -1, -1, -1, -1, -1, 143, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, + -1, -1, -1, -1, 143, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, + 143, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, -1, -1, -1, 143, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, -1, -1, -1, -1, 136, -1, -1, -1, -1, + -1, -1, 143, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, -1, -1, -1, -1, -1, 143, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, + -1, -1, -1, -1, 143, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, + 143, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, -1, -1, -1, 143, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, -1, -1, -1, -1, 136, -1, -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, - -1, 139, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, - 135, -1, -1, -1, 139, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, 139, 117, 118, + 128, 129, 130, 131, -1, -1, -1, -1, 136, -1, + -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, -1, -1, 140, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, -1, -1, 136, -1, -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, -1, -1, -1, -1, 135, -1, -1, -1, - 139, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, - -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, + 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, + -1, 140, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, -1, -1, -1, -1, + 136, -1, -1, -1, 140, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, -1, -1, 139, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, - -1, -1, 139, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, -1, -1, 139, 117, 118, 119, 120, + 130, 131, -1, -1, -1, -1, 136, -1, -1, -1, + 140, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, 140, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, + -1, -1, 136, -1, -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - -1, -1, -1, -1, 135, -1, -1, -1, 139, 117, + 131, -1, -1, -1, -1, 136, -1, -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, - -1, 139, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, - 135, -1, -1, -1, 139, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, 139, 117, 118, + 128, 129, 130, 131, -1, -1, -1, -1, 136, -1, + -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, -1, -1, 140, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, -1, -1, 136, -1, -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, -1, -1, -1, -1, 135, -1, -1, -1, - 139, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, - -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, + 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, + -1, 140, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, -1, -1, -1, -1, + 136, -1, -1, -1, 140, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, -1, -1, 139, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, - -1, -1, 139, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, -1, -1, 139, 117, 118, 119, 120, + 130, 131, -1, -1, -1, -1, 136, -1, -1, -1, + 140, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, 140, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, + -1, -1, 136, -1, -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - -1, -1, -1, -1, 135, -1, -1, -1, 139, 117, + 131, -1, -1, -1, -1, 136, -1, -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, -1, - -1, 139, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, - 135, -1, -1, -1, 139, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, -1, -1, 139, 117, 118, + 128, 129, 130, 131, -1, -1, -1, -1, 136, -1, + -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, -1, -1, 140, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, -1, -1, 136, -1, -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, -1, -1, -1, -1, 135, -1, -1, -1, - 139, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, -1, -1, 139, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, - -1, -1, 135, -1, -1, -1, 139, 117, 118, 119, + 129, 130, 131, -1, -1, -1, -1, 136, -1, -1, + -1, 140, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, -1, -1, -1, -1, + 136, -1, -1, -1, 140, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, + 130, 131, -1, -1, -1, -1, 136, -1, -1, -1, + 140, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, -1, -1, 140, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, + -1, -1, 136, -1, -1, -1, 140, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, -1, -1, -1, -1, 136, -1, -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, 137, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, - 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, - 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, - -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, + 128, 129, 130, 131, -1, -1, -1, -1, 136, -1, + -1, -1, 140, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, + -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, + 131, -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, + 130, 131, -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, + 129, 130, 131, -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, 137, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, - 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, - 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, - -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, + 128, 129, 130, 131, -1, -1, -1, -1, 136, -1, + 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, -1, -1, -1, -1, + 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, + -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, + 131, -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, + 130, 131, -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, + 129, 130, 131, -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, 137, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, - 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, - 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, - -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, + 128, 129, 130, 131, -1, -1, -1, -1, 136, -1, + 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, -1, -1, -1, -1, + 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, + -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, + 131, -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, + 130, 131, -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, + 129, 130, 131, -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, 137, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, - 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, - 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, - -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, + 128, 129, 130, 131, -1, -1, -1, -1, 136, -1, + 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, -1, -1, -1, -1, + 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, + -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, + 131, -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, + 130, 131, -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, + 129, 130, 131, -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, 137, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, -1, -1, -1, -1, 135, -1, - 137, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, -1, -1, -1, -1, 135, - -1, 137, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, - 135, -1, 137, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, - -1, 135, -1, 137, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, - -1, -1, 135, -1, 137, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, - -1, -1, -1, 135, -1, 137, 117, 118, 119, 120, + 128, 129, 130, 131, -1, -1, -1, -1, 136, -1, + 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, -1, -1, -1, -1, + 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, + -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - -1, -1, -1, -1, 135, -1, 137, 117, 118, 119, + 131, -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, -1, -1, -1, -1, 135, -1, 137, 117, 118, + 130, 131, -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, -1, -1, -1, -1, 135, -1, 137, 117, + 129, 130, 131, -1, -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, -1, -1, -1, -1, 135, -1, 137, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, -1, -1, -1, -1, 135 + 128, 129, 130, 131, -1, -1, -1, -1, 136, -1, + 138, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, -1, -1, -1, -1, 136, + -1, 138, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, -1, -1, -1, -1, + 136, -1, 138, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, -1, -1, + -1, 136, -1, 138, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, + -1, -1, 136, -1, 138, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, + -1, -1, -1, 136, -1, 138, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, -1, -1, 136 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 1, 147, 148, 6, 0, 4, 12, 13, 35, - 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, - 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 75, 76, 77, 78, 79, 80, 83, 84, 89, - 90, 91, 92, 95, 97, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 149, 151, 152, 170, 174, - 179, 182, 183, 184, 185, 186, 187, 188, 208, 209, - 210, 3, 4, 5, 7, 9, 10, 11, 14, 15, + 0, 1, 148, 149, 6, 0, 4, 12, 13, 35, + 40, 41, 43, 44, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, + 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 76, 77, 78, 79, 80, 81, 84, 85, 90, + 91, 92, 93, 96, 98, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 150, 152, 153, 171, 175, + 180, 183, 184, 185, 186, 187, 188, 189, 209, 210, + 211, 3, 4, 5, 7, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, - 37, 38, 39, 42, 103, 109, 110, 111, 112, 113, - 114, 115, 116, 126, 127, 131, 133, 134, 136, 138, - 140, 141, 143, 168, 169, 211, 212, 224, 13, 51, - 136, 6, 143, 6, 6, 6, 136, 143, 136, 136, - 74, 136, 143, 136, 136, 74, 143, 136, 136, 55, - 51, 51, 51, 51, 48, 51, 53, 53, 45, 48, - 51, 53, 48, 51, 53, 136, 48, 136, 143, 126, - 127, 136, 143, 213, 214, 213, 143, 45, 48, 51, - 143, 213, 4, 49, 58, 51, 51, 48, 4, 103, - 143, 4, 6, 48, 4, 4, 4, 136, 136, 136, - 4, 143, 220, 4, 136, 136, 6, 138, 4, 4, - 5, 143, 5, 143, 4, 138, 140, 145, 169, 143, - 5, 224, 136, 138, 136, 138, 136, 138, 136, 138, - 136, 138, 136, 138, 136, 138, 136, 138, 136, 138, - 136, 138, 136, 138, 136, 138, 136, 138, 136, 138, - 136, 138, 136, 138, 136, 138, 136, 138, 136, 138, - 136, 138, 136, 138, 136, 136, 136, 136, 7, 136, - 4, 211, 211, 211, 211, 139, 143, 211, 4, 95, - 96, 4, 4, 179, 180, 181, 211, 6, 6, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 135, 6, 6, 211, 5, 211, 211, - 4, 45, 127, 179, 188, 211, 218, 219, 211, 211, - 136, 211, 219, 211, 211, 136, 219, 211, 211, 127, - 143, 211, 216, 218, 136, 143, 136, 136, 5, 216, - 217, 217, 217, 136, 175, 176, 177, 178, 136, 136, - 136, 4, 216, 5, 213, 213, 213, 211, 211, 126, - 127, 143, 143, 213, 143, 143, 143, 126, 127, 136, - 181, 213, 143, 136, 143, 136, 136, 217, 216, 136, - 4, 6, 138, 138, 181, 6, 143, 138, 138, 6, - 211, 211, 211, 140, 211, 143, 98, 211, 211, 211, - 6, 6, 181, 6, 181, 138, 211, 4, 143, 153, - 6, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 4, 223, 224, 223, 223, 223, 211, - 5, 138, 137, 7, 116, 219, 139, 7, 168, 169, - 140, 7, 138, 144, 45, 48, 51, 53, 174, 6, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 6, 137, 142, 142, 137, - 138, 143, 211, 218, 8, 128, 142, 144, 137, 137, - 211, 137, 144, 137, 137, 211, 144, 137, 137, 143, - 144, 219, 128, 7, 211, 211, 211, 211, 7, 7, - 206, 206, 211, 136, 136, 136, 136, 211, 211, 211, - 137, 6, 142, 142, 142, 142, 213, 213, 180, 180, - 142, 211, 211, 211, 211, 192, 142, 181, 211, 211, - 211, 211, 7, 207, 7, 211, 6, 211, 211, 144, - 219, 211, 211, 137, 137, 137, 95, 142, 181, 143, - 8, 137, 139, 144, 144, 211, 139, 169, 211, 4, - 85, 86, 87, 88, 144, 156, 160, 163, 165, 166, + 37, 38, 39, 42, 104, 110, 111, 112, 113, 114, + 115, 116, 117, 127, 128, 132, 134, 135, 137, 139, + 141, 142, 144, 169, 170, 212, 213, 225, 13, 52, + 137, 6, 144, 6, 6, 6, 137, 144, 137, 137, + 75, 137, 144, 137, 137, 75, 144, 137, 137, 56, + 52, 52, 52, 52, 49, 52, 54, 54, 46, 49, + 52, 54, 49, 52, 54, 137, 49, 137, 144, 127, + 128, 137, 144, 214, 215, 214, 144, 46, 49, 52, + 144, 214, 4, 50, 59, 52, 52, 49, 4, 104, + 144, 4, 6, 49, 4, 4, 4, 137, 137, 137, + 4, 144, 221, 4, 137, 137, 6, 139, 4, 4, + 5, 144, 5, 144, 4, 139, 141, 146, 170, 144, + 5, 225, 137, 139, 137, 139, 137, 139, 137, 139, + 137, 139, 137, 139, 137, 139, 137, 139, 137, 139, 137, 139, 137, 139, 137, 139, 137, 139, 137, 139, 137, 139, 137, 139, 137, 139, 137, 139, 137, 139, - 137, 139, 142, 142, 137, 139, 137, 139, 137, 139, - 137, 139, 137, 139, 137, 139, 142, 142, 142, 142, - 142, 142, 138, 140, 137, 142, 142, 137, 137, 6, - 142, 211, 216, 216, 144, 7, 140, 168, 169, 224, - 211, 6, 4, 4, 143, 221, 139, 143, 143, 143, - 143, 8, 6, 123, 150, 219, 211, 7, 139, 143, - 211, 211, 211, 218, 211, 218, 98, 7, 7, 137, - 7, 98, 7, 7, 137, 98, 7, 7, 219, 144, - 143, 211, 137, 144, 137, 137, 211, 216, 4, 205, - 6, 137, 171, 211, 224, 171, 171, 171, 137, 137, - 137, 140, 216, 213, 211, 211, 144, 144, 211, 142, - 142, 142, 75, 81, 82, 202, 203, 213, 144, 189, - 137, 144, 137, 137, 211, 6, 211, 137, 139, 139, - 144, 139, 139, 7, 7, 7, 140, 211, 144, 211, - 211, 7, 140, 139, 140, 169, 223, 144, 157, 136, - 136, 143, 167, 6, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 4, 219, 223, 211, 139, 6, 6, - 139, 4, 95, 96, 211, 6, 6, 6, 7, 138, - 220, 222, 6, 219, 219, 219, 219, 211, 123, 223, - 137, 142, 213, 219, 144, 8, 51, 216, 216, 7, - 216, 51, 53, 216, 216, 7, 53, 216, 216, 144, - 219, 6, 7, 7, 7, 7, 64, 204, 6, 7, - 137, 137, 137, 137, 7, 7, 7, 4, 142, 142, - 142, 142, 144, 213, 213, 213, 6, 143, 136, 144, - 203, 142, 202, 7, 6, 7, 7, 6, 143, 6, - 6, 51, 6, 6, 216, 216, 216, 4, 142, 8, - 8, 137, 4, 4, 6, 4, 6, 136, 211, 211, - 215, 216, 143, 137, 139, 137, 139, 137, 139, 137, - 139, 139, 137, 137, 137, 168, 7, 168, 169, 140, - 7, 6, 220, 211, 142, 144, 144, 144, 144, 144, - 6, 6, 150, 211, 6, 144, 211, 143, 58, 173, - 173, 216, 6, 143, 143, 6, 6, 216, 143, 6, - 6, 144, 5, 216, 216, 216, 4, 6, 216, 7, - 7, 7, 7, 216, 216, 216, 6, 7, 5, 211, - 211, 211, 143, 142, 144, 142, 144, 142, 144, 211, - 216, 211, 211, 213, 144, 5, 143, 216, 143, 143, - 216, 219, 143, 6, 6, 94, 211, 211, 211, 6, - 7, 169, 154, 211, 142, 142, 142, 144, 155, 211, - 140, 216, 224, 211, 6, 4, 221, 6, 139, 220, - 6, 6, 6, 6, 223, 142, 139, 211, 213, 6, - 6, 6, 211, 211, 6, 211, 5, 6, 6, 98, - 172, 211, 6, 216, 216, 216, 216, 6, 4, 6, - 6, 211, 224, 137, 144, 137, 142, 144, 180, 213, - 6, 193, 213, 6, 194, 213, 6, 195, 144, 142, - 137, 144, 142, 6, 127, 213, 6, 213, 213, 6, - 144, 211, 216, 142, 144, 8, 144, 137, 143, 211, - 224, 137, 142, 211, 211, 216, 143, 142, 144, 4, - 6, 6, 6, 7, 6, 140, 6, 211, 144, 144, - 144, 144, 5, 49, 6, 6, 6, 6, 6, 143, - 6, 6, 6, 143, 211, 144, 142, 143, 142, 143, - 142, 143, 6, 216, 7, 143, 211, 142, 142, 142, - 6, 144, 93, 211, 211, 219, 6, 6, 158, 211, - 142, 142, 215, 211, 6, 220, 96, 142, 6, 6, - 6, 6, 6, 143, 215, 180, 142, 144, 211, 213, - 202, 211, 213, 202, 211, 213, 202, 142, 144, 216, - 181, 144, 213, 219, 213, 211, 144, 144, 144, 143, - 211, 211, 144, 6, 211, 211, 144, 144, 211, 144, - 142, 144, 144, 142, 144, 144, 142, 144, 216, 6, - 64, 144, 190, 143, 142, 144, 142, 6, 6, 155, - 137, 142, 6, 143, 142, 144, 6, 144, 6, 196, - 211, 6, 6, 197, 211, 6, 6, 198, 211, 6, - 144, 211, 202, 181, 219, 6, 213, 219, 144, 161, - 211, 215, 211, 143, 144, 143, 144, 143, 144, 6, - 6, 144, 144, 191, 144, 142, 144, 6, 143, 137, - 144, 144, 202, 6, 199, 202, 6, 200, 202, 6, - 201, 202, 6, 219, 6, 159, 223, 164, 143, 6, - 144, 143, 144, 143, 144, 143, 144, 144, 142, 144, - 143, 215, 6, 202, 6, 202, 6, 202, 6, 223, - 6, 162, 223, 144, 144, 144, 144, 142, 144, 6, - 6, 6, 6, 223, 6 + 137, 139, 137, 139, 137, 137, 137, 137, 7, 137, + 4, 212, 212, 212, 212, 140, 144, 212, 4, 96, + 97, 4, 4, 180, 181, 182, 212, 6, 6, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 136, 6, 6, 212, 5, 212, 212, + 4, 46, 128, 180, 189, 212, 219, 220, 212, 212, + 137, 212, 220, 212, 212, 137, 220, 212, 212, 128, + 144, 212, 217, 219, 137, 144, 137, 137, 5, 217, + 218, 218, 218, 137, 176, 177, 178, 179, 137, 137, + 137, 4, 217, 5, 214, 214, 214, 212, 212, 127, + 128, 144, 144, 214, 144, 144, 144, 127, 128, 137, + 182, 214, 144, 137, 144, 137, 137, 218, 217, 137, + 4, 6, 139, 139, 182, 6, 144, 139, 139, 6, + 212, 212, 212, 141, 212, 144, 99, 212, 212, 212, + 6, 6, 182, 6, 182, 139, 212, 4, 144, 154, + 6, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 4, 224, 225, 224, 224, 224, 212, + 5, 139, 138, 7, 117, 220, 140, 7, 169, 170, + 141, 7, 139, 145, 46, 49, 52, 54, 175, 6, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 6, 138, 143, 143, 138, + 139, 144, 212, 219, 8, 129, 143, 145, 138, 138, + 212, 138, 145, 138, 138, 212, 145, 138, 138, 144, + 145, 220, 129, 7, 212, 212, 212, 212, 7, 7, + 207, 207, 212, 137, 137, 137, 137, 212, 212, 212, + 138, 6, 143, 143, 143, 143, 214, 214, 181, 181, + 143, 212, 212, 212, 212, 193, 143, 182, 212, 212, + 212, 212, 7, 208, 7, 212, 6, 212, 212, 145, + 220, 212, 212, 138, 138, 138, 96, 143, 182, 144, + 8, 138, 140, 145, 145, 212, 140, 170, 212, 4, + 86, 87, 88, 89, 145, 157, 161, 164, 166, 167, + 138, 140, 138, 140, 138, 140, 138, 140, 138, 140, + 138, 140, 138, 140, 138, 140, 138, 140, 138, 140, + 138, 140, 143, 143, 138, 140, 138, 140, 138, 140, + 138, 140, 138, 140, 138, 140, 143, 143, 143, 143, + 143, 143, 139, 141, 138, 143, 143, 138, 138, 6, + 143, 212, 217, 217, 145, 7, 141, 169, 170, 225, + 212, 6, 4, 4, 144, 222, 140, 144, 144, 144, + 144, 8, 6, 124, 151, 220, 212, 7, 140, 144, + 212, 212, 212, 219, 212, 219, 99, 7, 7, 138, + 7, 99, 7, 7, 138, 99, 7, 7, 220, 145, + 144, 212, 138, 145, 138, 138, 212, 217, 4, 206, + 6, 138, 172, 212, 225, 172, 172, 172, 138, 138, + 138, 141, 217, 214, 212, 212, 145, 145, 212, 143, + 143, 143, 76, 82, 83, 203, 204, 214, 145, 190, + 138, 145, 138, 138, 212, 6, 212, 138, 140, 140, + 145, 140, 140, 7, 7, 7, 141, 212, 145, 212, + 212, 7, 141, 140, 141, 170, 224, 145, 158, 137, + 137, 144, 168, 6, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 4, 220, 224, 212, 140, 6, 6, + 140, 4, 96, 97, 212, 6, 6, 6, 7, 139, + 221, 223, 6, 220, 220, 220, 220, 212, 124, 224, + 138, 143, 214, 220, 145, 8, 52, 217, 217, 7, + 217, 52, 54, 217, 217, 7, 54, 217, 217, 145, + 220, 6, 7, 7, 7, 7, 65, 205, 6, 7, + 138, 138, 138, 138, 7, 7, 7, 4, 143, 143, + 143, 143, 145, 214, 214, 214, 6, 144, 137, 145, + 204, 143, 203, 7, 6, 7, 7, 6, 144, 6, + 6, 52, 6, 6, 217, 217, 217, 4, 143, 8, + 8, 138, 4, 4, 6, 4, 6, 137, 212, 212, + 216, 217, 144, 138, 140, 138, 140, 138, 140, 138, + 140, 140, 138, 138, 138, 169, 7, 169, 170, 141, + 7, 6, 221, 212, 143, 145, 145, 145, 145, 145, + 6, 6, 151, 212, 6, 145, 212, 144, 59, 174, + 174, 217, 6, 144, 144, 6, 6, 217, 144, 6, + 6, 145, 5, 217, 217, 217, 4, 6, 217, 7, + 7, 7, 7, 217, 217, 217, 6, 7, 5, 212, + 212, 212, 144, 143, 145, 143, 145, 143, 145, 212, + 217, 212, 212, 214, 145, 5, 144, 217, 144, 144, + 217, 220, 144, 6, 6, 95, 212, 212, 212, 6, + 7, 170, 155, 212, 143, 143, 143, 145, 156, 212, + 141, 217, 225, 212, 6, 4, 222, 6, 140, 221, + 6, 6, 6, 6, 224, 143, 140, 212, 214, 6, + 6, 6, 212, 212, 6, 212, 5, 6, 6, 99, + 173, 212, 6, 217, 217, 217, 217, 6, 4, 6, + 6, 212, 225, 138, 145, 138, 143, 145, 181, 214, + 6, 194, 214, 6, 195, 214, 6, 196, 145, 143, + 138, 145, 143, 6, 128, 214, 6, 214, 214, 6, + 145, 212, 217, 143, 145, 8, 145, 138, 144, 212, + 225, 138, 143, 212, 212, 217, 144, 143, 145, 4, + 6, 6, 6, 7, 6, 141, 6, 212, 145, 145, + 145, 145, 5, 50, 6, 6, 6, 6, 6, 144, + 6, 6, 6, 144, 212, 145, 143, 144, 143, 144, + 143, 144, 6, 217, 7, 144, 212, 143, 143, 143, + 6, 145, 94, 212, 212, 220, 6, 6, 159, 212, + 143, 143, 216, 212, 6, 221, 97, 143, 6, 6, + 6, 6, 6, 144, 216, 181, 143, 145, 212, 214, + 203, 212, 214, 203, 212, 214, 203, 143, 145, 217, + 182, 145, 214, 220, 214, 212, 145, 145, 145, 144, + 212, 212, 145, 6, 212, 212, 145, 145, 212, 145, + 143, 145, 145, 143, 145, 145, 143, 145, 217, 6, + 65, 145, 191, 144, 143, 145, 143, 6, 6, 156, + 138, 143, 6, 144, 143, 145, 6, 145, 6, 197, + 212, 6, 6, 198, 212, 6, 6, 199, 212, 6, + 145, 212, 203, 182, 220, 6, 214, 220, 145, 162, + 212, 216, 212, 144, 145, 144, 145, 144, 145, 6, + 6, 145, 145, 192, 145, 143, 145, 6, 144, 138, + 145, 145, 203, 6, 200, 203, 6, 201, 203, 6, + 202, 203, 6, 220, 6, 160, 224, 165, 144, 6, + 145, 144, 145, 144, 145, 144, 145, 145, 143, 145, + 144, 216, 6, 203, 6, 203, 6, 203, 6, 224, + 6, 163, 224, 145, 145, 145, 145, 143, 145, 6, + 6, 6, 6, 224, 6 }; #define yyerrok (yyerrstatus = 0) @@ -5925,6 +5937,22 @@ yyreduce: Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); } } + else if(!strcmp((yyvsp[(2) - (8)].c), "Reverse")){ + int t = (int)(yyvsp[(4) - (8)].d); + if(FindLevelSet(t)){ + yymsg(0, "Levelset %d already exists", t); + } + else { + double d; + List_Read((yyvsp[(7) - (8)].l), 0, &d); + LevelSet *pl = FindLevelSet((int)d); + gLevelset *ls = NULL; + if(!pl) yymsg(0, "Levelset Reverse %d : unknown levelset %d", t, (int)d); + else ls = new gLevelsetReverse(pl->ls); + LevelSet *l = Create_LevelSet(t, ls); + Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + } + } #if !defined(HAVE_NO_POST) else if(!strcmp((yyvsp[(2) - (8)].c), "PostView")){ int t = (int)(yyvsp[(4) - (8)].d); @@ -5949,7 +5977,7 @@ yyreduce: break; case 147: -#line 1945 "Gmsh.y" +#line 1961 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (8)].c), "MathEval")){ @@ -5971,7 +5999,7 @@ yyreduce: break; case 148: -#line 1964 "Gmsh.y" +#line 1980 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (6)].c), "CutMesh")){ @@ -5988,7 +6016,7 @@ yyreduce: break; case 149: -#line 1979 "Gmsh.y" +#line 1995 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (14)].c), "Cylinder") && List_Nbr((yyvsp[(12) - (14)].l)) == 1){ @@ -6094,7 +6122,7 @@ yyreduce: break; case 150: -#line 2087 "Gmsh.y" +#line 2103 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -6106,14 +6134,14 @@ yyreduce: break; case 151: -#line 2096 "Gmsh.y" +#line 2112 "Gmsh.y" { GModel::current()->getFields()->deleteField((int)(yyvsp[(4) - (6)].d)); ;} break; case 152: -#line 2100 "Gmsh.y" +#line 2116 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -6131,7 +6159,7 @@ yyreduce: break; case 153: -#line 2115 "Gmsh.y" +#line 2131 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){ for(unsigned int i = 0; i < GModel::list.size(); i++){ @@ -6161,7 +6189,7 @@ yyreduce: break; case 154: -#line 2142 "Gmsh.y" +#line 2158 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){ @@ -6176,7 +6204,7 @@ yyreduce: break; case 155: -#line 2159 "Gmsh.y" +#line 2175 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -6188,7 +6216,7 @@ yyreduce: break; case 156: -#line 2173 "Gmsh.y" +#line 2189 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 1); @@ -6197,7 +6225,7 @@ yyreduce: break; case 157: -#line 2179 "Gmsh.y" +#line 2195 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 0); @@ -6206,7 +6234,7 @@ yyreduce: break; case 158: -#line 2185 "Gmsh.y" +#line 2201 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -6218,7 +6246,7 @@ yyreduce: break; case 159: -#line 2194 "Gmsh.y" +#line 2210 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -6230,7 +6258,7 @@ yyreduce: break; case 160: -#line 2208 "Gmsh.y" +#line 2224 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(2) - (3)].c)); @@ -6273,7 +6301,7 @@ yyreduce: break; case 161: -#line 2248 "Gmsh.y" +#line 2264 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -6293,7 +6321,7 @@ yyreduce: break; case 162: -#line 2265 "Gmsh.y" +#line 2281 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Background") && !strcmp((yyvsp[(2) - (7)].c), "Mesh") && !strcmp((yyvsp[(3) - (7)].c), "View")){ @@ -6311,7 +6339,7 @@ yyreduce: break; case 163: -#line 2280 "Gmsh.y" +#line 2296 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -6333,7 +6361,7 @@ yyreduce: break; case 164: -#line 2299 "Gmsh.y" +#line 2315 "Gmsh.y" { #if !defined(HAVE_NO_POST) try { @@ -6348,7 +6376,7 @@ yyreduce: break; case 165: -#line 2311 "Gmsh.y" +#line 2327 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -6375,14 +6403,14 @@ yyreduce: break; case 166: -#line 2335 "Gmsh.y" +#line 2351 "Gmsh.y" { exit(0); ;} break; case 167: -#line 2339 "Gmsh.y" +#line 2355 "Gmsh.y" { // FIXME: this is a hack to force a transfer from the old DB to // the new DB. This will become unnecessary if/when we fill the @@ -6392,7 +6420,7 @@ yyreduce: break; case 168: -#line 2346 "Gmsh.y" +#line 2362 "Gmsh.y" { CTX::instance()->forcedBBox = 0; GModel::current()->importGEOInternals(); @@ -6401,7 +6429,7 @@ yyreduce: break; case 169: -#line 2352 "Gmsh.y" +#line 2368 "Gmsh.y" { CTX::instance()->forcedBBox = 1; SetBoundingBox((yyvsp[(3) - (15)].d), (yyvsp[(5) - (15)].d), (yyvsp[(7) - (15)].d), (yyvsp[(9) - (15)].d), (yyvsp[(11) - (15)].d), (yyvsp[(13) - (15)].d)); @@ -6409,7 +6437,7 @@ yyreduce: break; case 170: -#line 2357 "Gmsh.y" +#line 2373 "Gmsh.y" { #if defined(HAVE_OPENGL) drawContext::global()->draw(); @@ -6418,14 +6446,14 @@ yyreduce: break; case 171: -#line 2363 "Gmsh.y" +#line 2379 "Gmsh.y" { GModel::current()->createTopologyFromMesh(); ;} break; case 172: -#line 2372 "Gmsh.y" +#line 2389 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -6445,7 +6473,7 @@ yyreduce: break; case 173: -#line 2389 "Gmsh.y" +#line 2406 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -6465,7 +6493,7 @@ yyreduce: break; case 174: -#line 2406 "Gmsh.y" +#line 2423 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -6487,7 +6515,7 @@ yyreduce: break; case 175: -#line 2425 "Gmsh.y" +#line 2442 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -6509,7 +6537,7 @@ yyreduce: break; case 176: -#line 2444 "Gmsh.y" +#line 2461 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -6540,7 +6568,7 @@ yyreduce: break; case 177: -#line 2472 "Gmsh.y" +#line 2489 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction ((yyvsp[(2) - (2)].c), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6551,7 +6579,7 @@ yyreduce: break; case 178: -#line 2480 "Gmsh.y" +#line 2497 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6560,7 +6588,7 @@ yyreduce: break; case 179: -#line 2486 "Gmsh.y" +#line 2503 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction ((yyvsp[(2) - (3)].c), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6570,20 +6598,20 @@ yyreduce: break; case 180: -#line 2493 "Gmsh.y" +#line 2510 "Gmsh.y" { if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf"); ;} break; case 181: -#line 2497 "Gmsh.y" +#line 2514 "Gmsh.y" { ;} break; case 182: -#line 2506 "Gmsh.y" +#line 2523 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l), @@ -6594,7 +6622,7 @@ yyreduce: break; case 183: -#line 2514 "Gmsh.y" +#line 2531 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l), @@ -6605,7 +6633,7 @@ yyreduce: break; case 184: -#line 2522 "Gmsh.y" +#line 2539 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -6616,14 +6644,14 @@ yyreduce: break; case 185: -#line 2530 "Gmsh.y" +#line 2547 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 186: -#line 2534 "Gmsh.y" +#line 2551 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -6634,14 +6662,14 @@ yyreduce: break; case 187: -#line 2542 "Gmsh.y" +#line 2559 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 188: -#line 2546 "Gmsh.y" +#line 2563 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -6652,14 +6680,14 @@ yyreduce: break; case 189: -#line 2554 "Gmsh.y" +#line 2571 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 190: -#line 2558 "Gmsh.y" +#line 2575 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -6670,14 +6698,14 @@ yyreduce: break; case 191: -#line 2566 "Gmsh.y" +#line 2583 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 192: -#line 2570 "Gmsh.y" +#line 2587 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., @@ -6687,7 +6715,7 @@ yyreduce: break; case 193: -#line 2579 "Gmsh.y" +#line 2596 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -6697,7 +6725,7 @@ yyreduce: break; case 194: -#line 2586 "Gmsh.y" +#line 2603 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -6707,7 +6735,7 @@ yyreduce: break; case 195: -#line 2593 "Gmsh.y" +#line 2610 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -6717,7 +6745,7 @@ yyreduce: break; case 196: -#line 2600 "Gmsh.y" +#line 2617 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6727,7 +6755,7 @@ yyreduce: break; case 197: -#line 2607 "Gmsh.y" +#line 2624 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6737,7 +6765,7 @@ yyreduce: break; case 198: -#line 2614 "Gmsh.y" +#line 2631 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6747,7 +6775,7 @@ yyreduce: break; case 199: -#line 2621 "Gmsh.y" +#line 2638 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -6757,7 +6785,7 @@ yyreduce: break; case 200: -#line 2628 "Gmsh.y" +#line 2645 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -6767,7 +6795,7 @@ yyreduce: break; case 201: -#line 2635 "Gmsh.y" +#line 2652 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -6777,14 +6805,14 @@ yyreduce: break; case 202: -#line 2642 "Gmsh.y" +#line 2659 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 203: -#line 2646 "Gmsh.y" +#line 2663 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6794,14 +6822,14 @@ yyreduce: break; case 204: -#line 2653 "Gmsh.y" +#line 2670 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 205: -#line 2657 "Gmsh.y" +#line 2674 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6811,14 +6839,14 @@ yyreduce: break; case 206: -#line 2664 "Gmsh.y" +#line 2681 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 207: -#line 2668 "Gmsh.y" +#line 2685 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6828,14 +6856,14 @@ yyreduce: break; case 208: -#line 2675 "Gmsh.y" +#line 2692 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 209: -#line 2679 "Gmsh.y" +#line 2696 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -6845,14 +6873,14 @@ yyreduce: break; case 210: -#line 2686 "Gmsh.y" +#line 2703 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 211: -#line 2690 "Gmsh.y" +#line 2707 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -6862,14 +6890,14 @@ yyreduce: break; case 212: -#line 2697 "Gmsh.y" +#line 2714 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 213: -#line 2701 "Gmsh.y" +#line 2718 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -6879,14 +6907,14 @@ yyreduce: break; case 214: -#line 2708 "Gmsh.y" +#line 2725 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 215: -#line 2712 "Gmsh.y" +#line 2729 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -6896,14 +6924,14 @@ yyreduce: break; case 216: -#line 2719 "Gmsh.y" +#line 2736 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 217: -#line 2723 "Gmsh.y" +#line 2740 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -6913,14 +6941,14 @@ yyreduce: break; case 218: -#line 2730 "Gmsh.y" +#line 2747 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 219: -#line 2734 "Gmsh.y" +#line 2751 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -6930,19 +6958,19 @@ yyreduce: break; case 220: -#line 2745 "Gmsh.y" +#line 2762 "Gmsh.y" { ;} break; case 221: -#line 2748 "Gmsh.y" +#line 2765 "Gmsh.y" { ;} break; case 222: -#line 2754 "Gmsh.y" +#line 2771 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = 1; @@ -6954,7 +6982,7 @@ yyreduce: break; case 223: -#line 2763 "Gmsh.y" +#line 2780 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -6977,7 +7005,7 @@ yyreduce: break; case 224: -#line 2783 "Gmsh.y" +#line 2800 "Gmsh.y" { yymsg(0, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -7003,14 +7031,14 @@ yyreduce: break; case 225: -#line 2806 "Gmsh.y" +#line 2823 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; case 226: -#line 2810 "Gmsh.y" +#line 2827 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -7032,14 +7060,14 @@ yyreduce: break; case 227: -#line 2833 "Gmsh.y" +#line 2850 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; case 228: -#line 2837 "Gmsh.y" +#line 2854 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -7055,14 +7083,14 @@ yyreduce: break; case 229: -#line 2852 "Gmsh.y" +#line 2869 "Gmsh.y" { (yyval.i) = -1; // left ;} break; case 230: -#line 2856 "Gmsh.y" +#line 2873 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -7075,35 +7103,35 @@ yyreduce: break; case 231: -#line 2868 "Gmsh.y" +#line 2885 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; case 232: -#line 2872 "Gmsh.y" +#line 2889 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; case 233: -#line 2877 "Gmsh.y" +#line 2894 "Gmsh.y" { (yyval.i) = 45; ;} break; case 234: -#line 2881 "Gmsh.y" +#line 2898 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; case 235: -#line 2888 "Gmsh.y" +#line 2905 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -7162,7 +7190,7 @@ yyreduce: break; case 236: -#line 2944 "Gmsh.y" +#line 2961 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); if(k != 0 && k != 3 && k != 4){ @@ -7235,7 +7263,7 @@ yyreduce: break; case 237: -#line 3014 "Gmsh.y" +#line 3031 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); @@ -7243,7 +7271,7 @@ yyreduce: break; case 238: -#line 3019 "Gmsh.y" +#line 3036 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); if(k != 0 && k != 6 && k != 8){ @@ -7313,7 +7341,7 @@ yyreduce: break; case 239: -#line 3086 "Gmsh.y" +#line 3103 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -7359,7 +7387,7 @@ yyreduce: break; case 240: -#line 3129 "Gmsh.y" +#line 3146 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -7382,7 +7410,7 @@ yyreduce: break; case 241: -#line 3155 "Gmsh.y" +#line 3172 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -7408,7 +7436,7 @@ yyreduce: break; case 242: -#line 3178 "Gmsh.y" +#line 3195 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -7434,26 +7462,26 @@ yyreduce: break; case 243: -#line 3201 "Gmsh.y" +#line 3218 "Gmsh.y" { ;} break; case 244: -#line 3204 "Gmsh.y" +#line 3221 "Gmsh.y" { ;} break; case 245: -#line 3213 "Gmsh.y" +#line 3230 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; case 246: -#line 3217 "Gmsh.y" +#line 3234 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -7466,47 +7494,47 @@ yyreduce: break; case 247: -#line 3232 "Gmsh.y" +#line 3249 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 248: -#line 3233 "Gmsh.y" +#line 3250 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; case 249: -#line 3234 "Gmsh.y" +#line 3251 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; case 250: -#line 3235 "Gmsh.y" +#line 3252 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; case 251: -#line 3236 "Gmsh.y" +#line 3253 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; case 252: -#line 3237 "Gmsh.y" +#line 3254 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; case 253: -#line 3238 "Gmsh.y" +#line 3255 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; case 254: -#line 3239 "Gmsh.y" +#line 3256 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; case 255: -#line 3241 "Gmsh.y" +#line 3258 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -7516,307 +7544,307 @@ yyreduce: break; case 256: -#line 3247 "Gmsh.y" +#line 3264 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; case 257: -#line 3248 "Gmsh.y" +#line 3265 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; case 258: -#line 3249 "Gmsh.y" +#line 3266 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; case 259: -#line 3250 "Gmsh.y" +#line 3267 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; case 260: -#line 3251 "Gmsh.y" +#line 3268 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; case 261: -#line 3252 "Gmsh.y" +#line 3269 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; case 262: -#line 3253 "Gmsh.y" +#line 3270 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; case 263: -#line 3254 "Gmsh.y" +#line 3271 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; case 264: -#line 3255 "Gmsh.y" +#line 3272 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; case 265: -#line 3256 "Gmsh.y" +#line 3273 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; case 266: -#line 3257 "Gmsh.y" +#line 3274 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; case 267: -#line 3258 "Gmsh.y" +#line 3275 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 268: -#line 3259 "Gmsh.y" +#line 3276 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 269: -#line 3260 "Gmsh.y" +#line 3277 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 270: -#line 3261 "Gmsh.y" +#line 3278 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 271: -#line 3262 "Gmsh.y" +#line 3279 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 272: -#line 3263 "Gmsh.y" +#line 3280 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 273: -#line 3264 "Gmsh.y" +#line 3281 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 274: -#line 3265 "Gmsh.y" +#line 3282 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 275: -#line 3266 "Gmsh.y" +#line 3283 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 276: -#line 3267 "Gmsh.y" +#line 3284 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 277: -#line 3268 "Gmsh.y" +#line 3285 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 278: -#line 3269 "Gmsh.y" +#line 3286 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 279: -#line 3270 "Gmsh.y" +#line 3287 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 280: -#line 3271 "Gmsh.y" +#line 3288 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 281: -#line 3272 "Gmsh.y" +#line 3289 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 282: -#line 3273 "Gmsh.y" +#line 3290 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 283: -#line 3274 "Gmsh.y" +#line 3291 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 284: -#line 3275 "Gmsh.y" +#line 3292 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 285: -#line 3276 "Gmsh.y" +#line 3293 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 286: -#line 3277 "Gmsh.y" +#line 3294 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 287: -#line 3278 "Gmsh.y" +#line 3295 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 288: -#line 3280 "Gmsh.y" +#line 3297 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 289: -#line 3281 "Gmsh.y" +#line 3298 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 290: -#line 3282 "Gmsh.y" +#line 3299 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 291: -#line 3283 "Gmsh.y" +#line 3300 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 292: -#line 3284 "Gmsh.y" +#line 3301 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 293: -#line 3285 "Gmsh.y" +#line 3302 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 294: -#line 3286 "Gmsh.y" +#line 3303 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 295: -#line 3287 "Gmsh.y" +#line 3304 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 296: -#line 3288 "Gmsh.y" +#line 3305 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 297: -#line 3289 "Gmsh.y" +#line 3306 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 298: -#line 3290 "Gmsh.y" +#line 3307 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 299: -#line 3291 "Gmsh.y" +#line 3308 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 300: -#line 3292 "Gmsh.y" +#line 3309 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 301: -#line 3293 "Gmsh.y" +#line 3310 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 302: -#line 3294 "Gmsh.y" +#line 3311 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 303: -#line 3295 "Gmsh.y" +#line 3312 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 304: -#line 3296 "Gmsh.y" +#line 3313 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 305: -#line 3297 "Gmsh.y" +#line 3314 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 306: -#line 3298 "Gmsh.y" +#line 3315 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 307: -#line 3299 "Gmsh.y" +#line 3316 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 308: -#line 3300 "Gmsh.y" +#line 3317 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 309: -#line 3309 "Gmsh.y" +#line 3326 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 310: -#line 3310 "Gmsh.y" +#line 3327 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; case 311: -#line 3311 "Gmsh.y" +#line 3328 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; case 312: -#line 3312 "Gmsh.y" +#line 3329 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; case 313: -#line 3313 "Gmsh.y" +#line 3330 "Gmsh.y" { (yyval.d) = GetGmshMajorVersion(); ;} break; case 314: -#line 3314 "Gmsh.y" +#line 3331 "Gmsh.y" { (yyval.d) = GetGmshMinorVersion(); ;} break; case 315: -#line 3315 "Gmsh.y" +#line 3332 "Gmsh.y" { (yyval.d) = GetGmshPatchVersion(); ;} break; case 316: -#line 3320 "Gmsh.y" +#line 3337 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -7829,7 +7857,7 @@ yyreduce: break; case 317: -#line 3333 "Gmsh.y" +#line 3350 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ; @@ -7844,7 +7872,7 @@ yyreduce: break; case 318: -#line 3345 "Gmsh.y" +#line 3362 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -7862,7 +7890,7 @@ yyreduce: break; case 319: -#line 3360 "Gmsh.y" +#line 3377 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c)); @@ -7875,7 +7903,7 @@ yyreduce: break; case 320: -#line 3370 "Gmsh.y" +#line 3387 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -7888,7 +7916,7 @@ yyreduce: break; case 321: -#line 3380 "Gmsh.y" +#line 3397 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -7906,7 +7934,7 @@ yyreduce: break; case 322: -#line 3398 "Gmsh.y" +#line 3415 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), (yyval.d)); Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c)); @@ -7914,7 +7942,7 @@ yyreduce: break; case 323: -#line 3403 "Gmsh.y" +#line 3420 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d)); Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c)); @@ -7922,7 +7950,7 @@ yyreduce: break; case 324: -#line 3408 "Gmsh.y" +#line 3425 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -7935,7 +7963,7 @@ yyreduce: break; case 325: -#line 3418 "Gmsh.y" +#line 3435 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -7948,7 +7976,7 @@ yyreduce: break; case 326: -#line 3428 "Gmsh.y" +#line 3445 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); @@ -7956,70 +7984,70 @@ yyreduce: break; case 327: -#line 3436 "Gmsh.y" +#line 3453 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; case 328: -#line 3440 "Gmsh.y" +#line 3457 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; case 329: -#line 3444 "Gmsh.y" +#line 3461 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 330: -#line 3448 "Gmsh.y" +#line 3465 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; case 331: -#line 3452 "Gmsh.y" +#line 3469 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; case 332: -#line 3459 "Gmsh.y" +#line 3476 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (11)].d); (yyval.v)[1] = (yyvsp[(4) - (11)].d); (yyval.v)[2] = (yyvsp[(6) - (11)].d); (yyval.v)[3] = (yyvsp[(8) - (11)].d); (yyval.v)[4] = (yyvsp[(10) - (11)].d); ;} break; case 333: -#line 3463 "Gmsh.y" +#line 3480 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (9)].d); (yyval.v)[1] = (yyvsp[(4) - (9)].d); (yyval.v)[2] = (yyvsp[(6) - (9)].d); (yyval.v)[3] = (yyvsp[(8) - (9)].d); (yyval.v)[4] = 1.0; ;} break; case 334: -#line 3467 "Gmsh.y" +#line 3484 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; case 335: -#line 3471 "Gmsh.y" +#line 3488 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; case 336: -#line 3478 "Gmsh.y" +#line 3495 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); @@ -8027,14 +8055,14 @@ yyreduce: break; case 337: -#line 3483 "Gmsh.y" +#line 3500 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; case 338: -#line 3490 "Gmsh.y" +#line 3507 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -8042,14 +8070,14 @@ yyreduce: break; case 339: -#line 3495 "Gmsh.y" +#line 3512 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 340: -#line 3499 "Gmsh.y" +#line 3516 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); @@ -8057,14 +8085,14 @@ yyreduce: break; case 341: -#line 3504 "Gmsh.y" +#line 3521 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 342: -#line 3508 "Gmsh.y" +#line 3525 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8075,7 +8103,7 @@ yyreduce: break; case 343: -#line 3516 "Gmsh.y" +#line 3533 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8086,14 +8114,14 @@ yyreduce: break; case 344: -#line 3527 "Gmsh.y" +#line 3544 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 345: -#line 3531 "Gmsh.y" +#line 3548 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -8105,7 +8133,7 @@ yyreduce: break; case 346: -#line 3543 "Gmsh.y" +#line 3560 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8116,7 +8144,7 @@ yyreduce: break; case 347: -#line 3551 "Gmsh.y" +#line 3568 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8127,7 +8155,7 @@ yyreduce: break; case 348: -#line 3559 "Gmsh.y" +#line 3576 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); @@ -8137,7 +8165,7 @@ yyreduce: break; case 349: -#line 3566 "Gmsh.y" +#line 3583 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d) || ((yyvsp[(1) - (5)].d) < (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) < 0) || ((yyvsp[(1) - (5)].d) > (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) > 0)){ @@ -8151,7 +8179,7 @@ yyreduce: break; case 350: -#line 3577 "Gmsh.y" +#line 3594 "Gmsh.y" { // Returns the coordinates of a point and fills a list with it. // This allows to ensure e.g. that relative point positions are @@ -8174,7 +8202,7 @@ yyreduce: break; case 351: -#line 3597 "Gmsh.y" +#line 3614 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -8187,7 +8215,7 @@ yyreduce: break; case 352: -#line 3607 "Gmsh.y" +#line 3624 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -8200,7 +8228,7 @@ yyreduce: break; case 353: -#line 3617 "Gmsh.y" +#line 3634 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -8213,7 +8241,7 @@ yyreduce: break; case 354: -#line 3627 "Gmsh.y" +#line 3644 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -8233,7 +8261,7 @@ yyreduce: break; case 355: -#line 3647 "Gmsh.y" +#line 3664 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -8241,21 +8269,21 @@ yyreduce: break; case 356: -#line 3652 "Gmsh.y" +#line 3669 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 357: -#line 3656 "Gmsh.y" +#line 3673 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; case 358: -#line 3660 "Gmsh.y" +#line 3677 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -8267,21 +8295,21 @@ yyreduce: break; case 359: -#line 3672 "Gmsh.y" +#line 3689 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); ;} break; case 360: -#line 3676 "Gmsh.y" +#line 3693 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); ;} break; case 361: -#line 3688 "Gmsh.y" +#line 3705 "Gmsh.y" { int flag; (yyval.u) = GetColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag); @@ -8291,7 +8319,7 @@ yyreduce: break; case 362: -#line 3695 "Gmsh.y" +#line 3712 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -8301,14 +8329,14 @@ yyreduce: break; case 363: -#line 3705 "Gmsh.y" +#line 3722 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 364: -#line 3709 "Gmsh.y" +#line 3726 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -8323,7 +8351,7 @@ yyreduce: break; case 365: -#line 3724 "Gmsh.y" +#line 3741 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); @@ -8331,21 +8359,21 @@ yyreduce: break; case 366: -#line 3729 "Gmsh.y" +#line 3746 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; case 367: -#line 3736 "Gmsh.y" +#line 3753 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 368: -#line 3740 "Gmsh.y" +#line 3757 "Gmsh.y" { if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c)); @@ -8361,7 +8389,7 @@ yyreduce: break; case 369: -#line 3753 "Gmsh.y" +#line 3770 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out); @@ -8372,7 +8400,7 @@ yyreduce: break; case 370: -#line 3761 "Gmsh.y" +#line 3778 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -8383,14 +8411,14 @@ yyreduce: break; case 371: -#line 3772 "Gmsh.y" +#line 3789 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 372: -#line 3776 "Gmsh.y" +#line 3793 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -8401,7 +8429,7 @@ yyreduce: break; case 373: -#line 3784 "Gmsh.y" +#line 3801 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (6)].c)) + strlen((yyvsp[(5) - (6)].c)) + 1) * sizeof(char)); strcpy((yyval.c), (yyvsp[(3) - (6)].c)); @@ -8412,7 +8440,7 @@ yyreduce: break; case 374: -#line 3792 "Gmsh.y" +#line 3809 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -8429,7 +8457,7 @@ yyreduce: break; case 375: -#line 3806 "Gmsh.y" +#line 3823 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -8446,14 +8474,14 @@ yyreduce: break; case 376: -#line 3820 "Gmsh.y" +#line 3837 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; case 377: -#line 3824 "Gmsh.y" +#line 3841 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -8476,7 +8504,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 8480 "Gmsh.tab.cpp" +#line 8508 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -8690,7 +8718,7 @@ yyreturn: } -#line 3844 "Gmsh.y" +#line 3861 "Gmsh.y" int PrintListOfDouble(char *format, List_T *list, char *buffer) diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp index f7d88fc3c2..1896f3e88c 100644 --- a/Parser/Gmsh.tab.hpp +++ b/Parser/Gmsh.tab.hpp @@ -81,87 +81,88 @@ tToday = 297, tSyncModel = 298, tCreateTopology = 299, - tPoint = 300, - tCircle = 301, - tEllipse = 302, - tLine = 303, - tSphere = 304, - tPolarSphere = 305, - tSurface = 306, - tSpline = 307, - tVolume = 308, - tCharacteristic = 309, - tLength = 310, - tParametric = 311, - tElliptic = 312, - tPlane = 313, - tRuled = 314, - tTransfinite = 315, - tComplex = 316, - tPhysical = 317, - tCompound = 318, - tUsing = 319, - tPlugin = 320, - tDegenerated = 321, - tOCCShape = 322, - tRotate = 323, - tTranslate = 324, - tSymmetry = 325, - tDilate = 326, - tExtrude = 327, - tLevelset = 328, - tLoop = 329, - tRecombine = 330, - tSmoother = 331, - tSplit = 332, - tDelete = 333, - tCoherence = 334, - tIntersect = 335, - tLayers = 336, - tHole = 337, - tAlias = 338, - tAliasWithOptions = 339, - tText2D = 340, - tText3D = 341, - tInterpolationScheme = 342, - tTime = 343, - tCombine = 344, - tBSpline = 345, - tBezier = 346, - tNurbs = 347, - tNurbsOrder = 348, - tNurbsKnots = 349, - tColor = 350, - tColorTable = 351, - tFor = 352, - tIn = 353, - tEndFor = 354, - tIf = 355, - tEndIf = 356, - tExit = 357, - tField = 358, - tReturn = 359, - tCall = 360, - tFunction = 361, - tShow = 362, - tHide = 363, - tGetValue = 364, - tGMSH_MAJOR_VERSION = 365, - tGMSH_MINOR_VERSION = 366, - tGMSH_PATCH_VERSION = 367, - tAFFECTDIVIDE = 368, - tAFFECTTIMES = 369, - tAFFECTMINUS = 370, - tAFFECTPLUS = 371, - tOR = 372, - tAND = 373, - tNOTEQUAL = 374, - tEQUAL = 375, - tGREATEROREQUAL = 376, - tLESSOREQUAL = 377, - UNARYPREC = 378, - tMINUSMINUS = 379, - tPLUSPLUS = 380 + tDistanceFunction = 300, + tPoint = 301, + tCircle = 302, + tEllipse = 303, + tLine = 304, + tSphere = 305, + tPolarSphere = 306, + tSurface = 307, + tSpline = 308, + tVolume = 309, + tCharacteristic = 310, + tLength = 311, + tParametric = 312, + tElliptic = 313, + tPlane = 314, + tRuled = 315, + tTransfinite = 316, + tComplex = 317, + tPhysical = 318, + tCompound = 319, + tUsing = 320, + tPlugin = 321, + tDegenerated = 322, + tOCCShape = 323, + tRotate = 324, + tTranslate = 325, + tSymmetry = 326, + tDilate = 327, + tExtrude = 328, + tLevelset = 329, + tLoop = 330, + tRecombine = 331, + tSmoother = 332, + tSplit = 333, + tDelete = 334, + tCoherence = 335, + tIntersect = 336, + tLayers = 337, + tHole = 338, + tAlias = 339, + tAliasWithOptions = 340, + tText2D = 341, + tText3D = 342, + tInterpolationScheme = 343, + tTime = 344, + tCombine = 345, + tBSpline = 346, + tBezier = 347, + tNurbs = 348, + tNurbsOrder = 349, + tNurbsKnots = 350, + tColor = 351, + tColorTable = 352, + tFor = 353, + tIn = 354, + tEndFor = 355, + tIf = 356, + tEndIf = 357, + tExit = 358, + tField = 359, + tReturn = 360, + tCall = 361, + tFunction = 362, + tShow = 363, + tHide = 364, + tGetValue = 365, + tGMSH_MAJOR_VERSION = 366, + tGMSH_MINOR_VERSION = 367, + tGMSH_PATCH_VERSION = 368, + tAFFECTDIVIDE = 369, + tAFFECTTIMES = 370, + tAFFECTMINUS = 371, + tAFFECTPLUS = 372, + tOR = 373, + tAND = 374, + tNOTEQUAL = 375, + tEQUAL = 376, + tGREATEROREQUAL = 377, + tLESSOREQUAL = 378, + UNARYPREC = 379, + tMINUSMINUS = 380, + tPLUSPLUS = 381 }; #endif /* Tokens. */ @@ -207,87 +208,88 @@ #define tToday 297 #define tSyncModel 298 #define tCreateTopology 299 -#define tPoint 300 -#define tCircle 301 -#define tEllipse 302 -#define tLine 303 -#define tSphere 304 -#define tPolarSphere 305 -#define tSurface 306 -#define tSpline 307 -#define tVolume 308 -#define tCharacteristic 309 -#define tLength 310 -#define tParametric 311 -#define tElliptic 312 -#define tPlane 313 -#define tRuled 314 -#define tTransfinite 315 -#define tComplex 316 -#define tPhysical 317 -#define tCompound 318 -#define tUsing 319 -#define tPlugin 320 -#define tDegenerated 321 -#define tOCCShape 322 -#define tRotate 323 -#define tTranslate 324 -#define tSymmetry 325 -#define tDilate 326 -#define tExtrude 327 -#define tLevelset 328 -#define tLoop 329 -#define tRecombine 330 -#define tSmoother 331 -#define tSplit 332 -#define tDelete 333 -#define tCoherence 334 -#define tIntersect 335 -#define tLayers 336 -#define tHole 337 -#define tAlias 338 -#define tAliasWithOptions 339 -#define tText2D 340 -#define tText3D 341 -#define tInterpolationScheme 342 -#define tTime 343 -#define tCombine 344 -#define tBSpline 345 -#define tBezier 346 -#define tNurbs 347 -#define tNurbsOrder 348 -#define tNurbsKnots 349 -#define tColor 350 -#define tColorTable 351 -#define tFor 352 -#define tIn 353 -#define tEndFor 354 -#define tIf 355 -#define tEndIf 356 -#define tExit 357 -#define tField 358 -#define tReturn 359 -#define tCall 360 -#define tFunction 361 -#define tShow 362 -#define tHide 363 -#define tGetValue 364 -#define tGMSH_MAJOR_VERSION 365 -#define tGMSH_MINOR_VERSION 366 -#define tGMSH_PATCH_VERSION 367 -#define tAFFECTDIVIDE 368 -#define tAFFECTTIMES 369 -#define tAFFECTMINUS 370 -#define tAFFECTPLUS 371 -#define tOR 372 -#define tAND 373 -#define tNOTEQUAL 374 -#define tEQUAL 375 -#define tGREATEROREQUAL 376 -#define tLESSOREQUAL 377 -#define UNARYPREC 378 -#define tMINUSMINUS 379 -#define tPLUSPLUS 380 +#define tDistanceFunction 300 +#define tPoint 301 +#define tCircle 302 +#define tEllipse 303 +#define tLine 304 +#define tSphere 305 +#define tPolarSphere 306 +#define tSurface 307 +#define tSpline 308 +#define tVolume 309 +#define tCharacteristic 310 +#define tLength 311 +#define tParametric 312 +#define tElliptic 313 +#define tPlane 314 +#define tRuled 315 +#define tTransfinite 316 +#define tComplex 317 +#define tPhysical 318 +#define tCompound 319 +#define tUsing 320 +#define tPlugin 321 +#define tDegenerated 322 +#define tOCCShape 323 +#define tRotate 324 +#define tTranslate 325 +#define tSymmetry 326 +#define tDilate 327 +#define tExtrude 328 +#define tLevelset 329 +#define tLoop 330 +#define tRecombine 331 +#define tSmoother 332 +#define tSplit 333 +#define tDelete 334 +#define tCoherence 335 +#define tIntersect 336 +#define tLayers 337 +#define tHole 338 +#define tAlias 339 +#define tAliasWithOptions 340 +#define tText2D 341 +#define tText3D 342 +#define tInterpolationScheme 343 +#define tTime 344 +#define tCombine 345 +#define tBSpline 346 +#define tBezier 347 +#define tNurbs 348 +#define tNurbsOrder 349 +#define tNurbsKnots 350 +#define tColor 351 +#define tColorTable 352 +#define tFor 353 +#define tIn 354 +#define tEndFor 355 +#define tIf 356 +#define tEndIf 357 +#define tExit 358 +#define tField 359 +#define tReturn 360 +#define tCall 361 +#define tFunction 362 +#define tShow 363 +#define tHide 364 +#define tGetValue 365 +#define tGMSH_MAJOR_VERSION 366 +#define tGMSH_MINOR_VERSION 367 +#define tGMSH_PATCH_VERSION 368 +#define tAFFECTDIVIDE 369 +#define tAFFECTTIMES 370 +#define tAFFECTMINUS 371 +#define tAFFECTPLUS 372 +#define tOR 373 +#define tAND 374 +#define tNOTEQUAL 375 +#define tEQUAL 376 +#define tGREATEROREQUAL 377 +#define tLESSOREQUAL 378 +#define UNARYPREC 379 +#define tMINUSMINUS 380 +#define tPLUSPLUS 381 @@ -305,7 +307,7 @@ typedef union YYSTYPE List_T *l; } /* Line 1529 of yacc.c. */ -#line 309 "Gmsh.tab.hpp" +#line 311 "Gmsh.tab.hpp" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 65ee28642a..26a22707d2 100644 --- a/Parser/Gmsh.yy.cpp +++ b/Parser/Gmsh.yy.cpp @@ -6,10 +6,29 @@ /* A lexical scanner generated by flex */ +#define yy_create_buffer gmsh_yy_create_buffer +#define yy_delete_buffer gmsh_yy_delete_buffer +#define yy_flex_debug gmsh_yy_flex_debug +#define yy_init_buffer gmsh_yy_init_buffer +#define yy_flush_buffer gmsh_yy_flush_buffer +#define yy_load_buffer_state gmsh_yy_load_buffer_state +#define yy_switch_to_buffer gmsh_yy_switch_to_buffer +#define yyin gmsh_yyin +#define yyleng gmsh_yyleng +#define yylex gmsh_yylex +#define yylineno gmsh_yylineno +#define yyout gmsh_yyout +#define yyrestart gmsh_yyrestart +#define yytext gmsh_yytext +#define yywrap gmsh_yywrap +#define yyalloc gmsh_yyalloc +#define yyrealloc gmsh_yyrealloc +#define yyfree gmsh_yyfree + #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 33 +#define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -31,7 +50,7 @@ /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ -#if __STDC_VERSION__ >= 199901L +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. @@ -94,11 +113,12 @@ typedef unsigned int flex_uint32_t; #else /* ! __cplusplus */ -#if __STDC__ +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) #define YY_USE_CONST -#endif /* __STDC__ */ +#endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST @@ -152,7 +172,12 @@ typedef unsigned int flex_uint32_t; typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif -extern int gmsh_yyleng; +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern yy_size_t gmsh_yyleng; extern FILE *gmsh_yyin, *gmsh_yyout; @@ -178,16 +203,6 @@ extern FILE *gmsh_yyin, *gmsh_yyout; #define unput(c) yyunput( c, (yytext_ptr) ) -/* The following is because we cannot portably get our hands on size_t - * (without autoconf's help, which isn't available because we want - * flex-generated scanners to compile on their own). - */ - -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef unsigned int yy_size_t; -#endif - #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state @@ -205,7 +220,7 @@ struct yy_buffer_state /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -275,8 +290,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* yy_hold_char holds the character lost when gmsh_yytext is formed. */ static char yy_hold_char; -static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int gmsh_yyleng; +static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ +yy_size_t gmsh_yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; @@ -304,7 +319,7 @@ static void gmsh_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); YY_BUFFER_STATE gmsh_yy_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE gmsh_yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE gmsh_yy_scan_bytes (yyconst char *bytes,int len ); +YY_BUFFER_STATE gmsh_yy_scan_bytes (yyconst char *bytes,yy_size_t len ); void *gmsh_yyalloc (yy_size_t ); void *gmsh_yyrealloc (void *,yy_size_t ); @@ -883,7 +898,7 @@ void skipline(void); #define YY_NO_UNISTD_H #endif -#line 887 "Gmsh.yy.cpp" +#line 902 "Gmsh.yy.cpp" #define INITIAL 0 @@ -901,6 +916,35 @@ void skipline(void); static int yy_init_globals (void ); +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int gmsh_yylex_destroy (void ); + +int gmsh_yyget_debug (void ); + +void gmsh_yyset_debug (int debug_flag ); + +YY_EXTRA_TYPE gmsh_yyget_extra (void ); + +void gmsh_yyset_extra (YY_EXTRA_TYPE user_defined ); + +FILE *gmsh_yyget_in (void ); + +void gmsh_yyset_in (FILE * in_str ); + +FILE *gmsh_yyget_out (void ); + +void gmsh_yyset_out (FILE * out_str ); + +yy_size_t gmsh_yyget_leng (void ); + +char *gmsh_yyget_text (void ); + +int gmsh_yyget_lineno (void ); + +void gmsh_yyset_lineno (int line_number ); + /* Macros after this point can all be overridden by user definitions in * section 1. */ @@ -943,7 +987,7 @@ static int input (void ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO (void) fwrite( gmsh_yytext, gmsh_yyleng, 1, gmsh_yyout ) +#define ECHO fwrite( gmsh_yytext, gmsh_yyleng, 1, gmsh_yyout ) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -954,7 +998,7 @@ static int input (void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - size_t n; \ + yy_size_t n; \ for ( n = 0; n < max_size && \ (c = getc( gmsh_yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -1039,7 +1083,7 @@ YY_DECL #line 49 "Gmsh.l" -#line 1043 "Gmsh.yy.cpp" +#line 1087 "Gmsh.yy.cpp" if ( !(yy_init) ) { @@ -1849,7 +1893,7 @@ YY_RULE_SETUP #line 221 "Gmsh.l" ECHO; YY_BREAK -#line 1853 "Gmsh.yy.cpp" +#line 1897 "Gmsh.yy.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2035,7 +2079,7 @@ static int yy_get_next_buffer (void) else { - int num_to_read = + yy_size_t num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) @@ -2049,7 +2093,7 @@ static int yy_get_next_buffer (void) if ( b->yy_is_our_buffer ) { - int new_size = b->yy_buf_size * 2; + yy_size_t new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -2104,6 +2148,14 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) gmsh_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } + (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; @@ -2182,7 +2234,7 @@ static int yy_get_next_buffer (void) if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register int number_to_move = (yy_n_chars) + 2; + register yy_size_t number_to_move = (yy_n_chars) + 2; register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; register char *source = @@ -2231,7 +2283,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - int offset = (yy_c_buf_p) - (yytext_ptr); + yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -2507,7 +2559,7 @@ void gmsh_yypop_buffer_state (void) */ static void gmsh_yyensure_buffer_stack (void) { - int num_to_alloc; + yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { @@ -2519,7 +2571,9 @@ static void gmsh_yyensure_buffer_stack (void) (yy_buffer_stack) = (struct yy_buffer_state**)gmsh_yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); - + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in gmsh_yyensure_buffer_stack()" ); + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; @@ -2537,6 +2591,8 @@ static void gmsh_yyensure_buffer_stack (void) ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in gmsh_yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); @@ -2581,7 +2637,7 @@ YY_BUFFER_STATE gmsh_yy_scan_buffer (char * base, yy_size_t size ) /** Setup the input buffer state to scan a string. The next call to gmsh_yylex() will * scan from a @e copy of @a str. - * @param str a NUL-terminated string to scan + * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use @@ -2600,12 +2656,11 @@ YY_BUFFER_STATE gmsh_yy_scan_string (yyconst char * yystr ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE gmsh_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) +YY_BUFFER_STATE gmsh_yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) { YY_BUFFER_STATE b; char *buf; - yy_size_t n; - int i; + yy_size_t n, i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; @@ -2687,7 +2742,7 @@ FILE *gmsh_yyget_out (void) /** Get the length of the current token. * */ -int gmsh_yyget_leng (void) +yy_size_t gmsh_yyget_leng (void) { return gmsh_yyleng; } diff --git a/Solver/dofManager.h b/Solver/dofManager.h index ced9824050..9a1ae18f77 100644 --- a/Solver/dofManager.h +++ b/Solver/dofManager.h @@ -70,9 +70,9 @@ class dofManager{ // linearSystems std::map<const std::string, linearSystem<dataMat>* > _linearSystems; - linearSystem<dataMat>* _current; + linearSystem<dataMat>* _current; - public: + public: dofManager(linearSystem<dataMat> *l) : _current(l) { _linearSystems["A"] = l; } inline void fixDof(long int ent, int type, const dataVec &value) { diff --git a/Solver/helmholtzTerm.h b/Solver/helmholtzTerm.h index 2942f9901a..7eb1421771 100644 --- a/Solver/helmholtzTerm.h +++ b/Solver/helmholtzTerm.h @@ -57,7 +57,7 @@ class helmholtzTerm : public femTerm<scalar, scalar> { // get the number of nodes const int nbNodes = e->getNumVertices(); // assume a maximum of 100 nodes - assert (nbNodes < 100); + assert(nbNodes < 100); double jac[3][3]; double invjac[3][3]; double Grads[100][3], grads[100][3]; diff --git a/utils/solvers/c++/GmshSocket.h b/utils/solvers/c++/GmshSocket.h index 63dfe53417..13481760ee 100644 --- a/utils/solvers/c++/GmshSocket.h +++ b/utils/solvers/c++/GmshSocket.h @@ -6,6 +6,7 @@ #ifndef _GMSH_SOCKET_H_ #define _GMSH_SOCKET_H_ +//#include "GmshConfig.h" #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -39,20 +40,21 @@ class GmshSocket{ // receive data from a machine with a different byte ordering, and // we swap the bytes in the payload) enum MessageType{ - CLIENT_START = 1, - CLIENT_STOP = 2, - CLIENT_INFO = 10, - CLIENT_WARNING = 11, - CLIENT_ERROR = 12, - CLIENT_PROGRESS = 13, - CLIENT_MERGE_FILE = 20, // old name: CLIENT_VIEW - CLIENT_PARSE_STRING = 21, - CLIENT_SPEED_TEST = 30, - CLIENT_OPTION_1 = 100, - CLIENT_OPTION_2 = 101, - CLIENT_OPTION_3 = 102, - CLIENT_OPTION_4 = 103, - CLIENT_OPTION_5 = 104}; + GMSH_START = 1, + GMSH_STOP = 2, + GMSH_INFO = 10, + GMSH_WARNING = 11, + GMSH_ERROR = 12, + GMSH_PROGRESS = 13, + GMSH_MERGE_FILE = 20, + GMSH_PARSE_STRING = 21, + GMSH_VERTEX_ARRAY = 22, + GMSH_SPEED_TEST = 30, + GMSH_OPTION_1 = 100, + GMSH_OPTION_2 = 101, + GMSH_OPTION_3 = 102, + GMSH_OPTION_4 = 103, + GMSH_OPTION_5 = 104}; protected: // the socket descriptor int _sock; @@ -78,8 +80,8 @@ class GmshSocket{ int remaining = bytes; do { int len = recv(_sock, buf + sofar, remaining, 0); - if(len <= 0) - return 0; + if(len == 0) break; // we're done! + if(len < 0) return -1; // error sofar += len; remaining -= len; } while(remaining > 0); @@ -124,26 +126,43 @@ class GmshSocket{ // seconds and microseconds == 0 we check for available data and // return immediately, i.e., we do polling). Returns 0 when data is // available. - int Select(int socket, int seconds, int microseconds) + int Select(int seconds, int microseconds, int socket=-1) { + int s = (socket < 0) ? _sock : socket; struct timeval tv; tv.tv_sec = seconds; tv.tv_usec = microseconds; fd_set rfds; FD_ZERO(&rfds); - FD_SET(socket, &rfds); + FD_SET(s, &rfds); // select checks all IO descriptors between 0 and its first arg, // minus 1... hence the +1 below - return select(socket + 1, &rfds, NULL, NULL, &tv); + return select(s + 1, &rfds, NULL, NULL, &tv); } - void SendString(int type, const char *str) + void SendMessage(int type, int length, const void *msg) { // send header (type + length) _SendData(&type, sizeof(int)); - int len = strlen(str); - _SendData(&len, sizeof(int)); + _SendData(&length, sizeof(int)); // send body - _SendData(str, len); + _SendData(msg, length); + } + void SendString(int type, const char *str) + { + SendMessage(type, strlen(str), str); + } + void Info(const char *str){ SendString(GMSH_INFO, str); } + void Warning(const char *str){ SendString(GMSH_WARNING, str); } + void Error(const char *str){ SendString(GMSH_ERROR, str); } + void Progress(const char *str){ SendString(GMSH_PROGRESS, str); } + void MergeFile(const char *str){ SendString(GMSH_MERGE_FILE, str); } + void ParseString(const char *str){ SendString(GMSH_PARSE_STRING, str); } + void SpeedTest(const char *str){ SendString(GMSH_SPEED_TEST, str); } + void Option(int num, const char *str) + { + if(num < 1) num = 1; + if(num > 5) num = 5; + SendString(GMSH_OPTION_1 + num - 1, str); } int ReceiveHeader(int *type, int *len) { @@ -178,6 +197,12 @@ class GmshSocket{ close(s); #else closesocket(s); +#endif + } + void ShutdownSocket(int s) + { +#if !defined(WIN32) || defined(__CYGWIN__) + shutdown(s, SHUT_RDWR); #endif } }; @@ -188,25 +213,24 @@ class GmshClient : public GmshSocket { ~GmshClient(){} int Connect(const char *sockname) { - // slight delay to be sure that the socket is bound by the - // server before we attempt to connect to it... + // slight delay to make sure that the socket is bound by the + // server before we attempt to connect to it _Sleep(100); if(strstr(sockname, "/") || strstr(sockname, "\\") || !strstr(sockname, ":")){ #if !defined(WIN32) || defined(__CYGWIN__) // UNIX socket (testing ":" is not enough with Windows paths) _sock = socket(PF_UNIX, SOCK_STREAM, 0); - if(_sock < 0) - return -1; // Error: Couldn't create socket + if(_sock < 0) return -1; // try to connect socket to given name struct sockaddr_un addr_un; memset((char *) &addr_un, 0, sizeof(addr_un)); addr_un.sun_family = AF_UNIX; strcpy(addr_un.sun_path, sockname); for(int tries = 0; tries < 5; tries++) { - if(connect(_sock, (struct sockaddr *)&addr_un, sizeof(addr_un)) >= 0) - return _sock; - _Sleep(100); + if(connect(_sock, (struct sockaddr *)&addr_un, sizeof(addr_un)) >= 0) + return _sock; + _Sleep(100); } #else return -1; // Unix sockets are not available on Windows @@ -215,20 +239,19 @@ class GmshClient : public GmshSocket { else{ // TCP/IP socket _sock = socket(AF_INET, SOCK_STREAM, 0); - if(_sock < 0) - return -1; // Error: Couldn't create socket + if(_sock < 0) return -1; // try to connect socket to host:port const char *port = strstr(sockname, ":"); int portno = atoi(port + 1); int remotelen = strlen(sockname) - strlen(port); char remote[256]; if(remotelen > 0) - strncpy(remote, sockname, remotelen); + strncpy(remote, sockname, remotelen); remote[remotelen] = '\0'; struct hostent *server; if(!(server = gethostbyname(remote))){ CloseSocket(_sock); - return -3; // Error: No such host + return -3; // no such host } struct sockaddr_in addr_in; memset((char *) &addr_in, 0, sizeof(addr_in)); @@ -236,17 +259,13 @@ class GmshClient : public GmshSocket { memcpy((char *)&addr_in.sin_addr.s_addr, (char *)server->h_addr, server->h_length); addr_in.sin_port = htons(portno); for(int tries = 0; tries < 5; tries++) { - if(connect(_sock, (struct sockaddr *)&addr_in, sizeof(addr_in)) >= 0) - return _sock; - _Sleep(100); + if(connect(_sock, (struct sockaddr *)&addr_in, sizeof(addr_in)) >= 0) + return _sock; + _Sleep(100); } } CloseSocket(_sock); - return -2; // Error: Couldn't connect - } - int Select(int seconds, int microseconds) - { - return GmshSocket::Select(_sock, seconds, microseconds); + return -2; // couldn't connect } void Start() { @@ -256,24 +275,9 @@ class GmshClient : public GmshSocket { #else sprintf(tmp, "%d", _getpid()); #endif - SendString(CLIENT_START, tmp); - } - void Stop(){ SendString(CLIENT_STOP, "Goodbye!"); } - void Info(const char *str){ SendString(CLIENT_INFO, str); } - void Warning(const char *str){ SendString(CLIENT_WARNING, str); } - void Error(const char *str){ SendString(CLIENT_ERROR, str); } - void Progress(const char *str){ SendString(CLIENT_PROGRESS, str); } - // deprecated: use MergeFile instead - void View(const char *str){ SendString(CLIENT_MERGE_FILE, str); } - void MergeFile(const char *str){ SendString(CLIENT_MERGE_FILE, str); } - void ParseString(const char *str){ SendString(CLIENT_PARSE_STRING, str); } - void SpeedTest(const char *str){ SendString(CLIENT_SPEED_TEST, str); } - void Option(int num, const char *str) - { - if(num < 1) num = 1; - if(num > 5) num = 5; - SendString(CLIENT_OPTION_1 + num - 1, str); + SendString(GMSH_START, tmp); } + void Stop(){ SendString(GMSH_STOP, "Goodbye!"); } void Disconnect(){ CloseSocket(_sock); } }; @@ -284,18 +288,11 @@ class GmshServer : public GmshSocket{ GmshServer() : GmshSocket(), _portno(-1) {} virtual ~GmshServer(){} virtual int SystemCall(const char *str) = 0; - virtual int NonBlockingWait(int socket, int num, double waitint) = 0; - int StartClient(const char *command, const char *sockname=0, int maxdelay=4) + virtual int NonBlockingWait(int socket, double waitint, double timeout) = 0; + int Start(const char *command, const char *sockname, double timeout) { - bool justwait = (!command || !strlen(command)); + if(!sockname) throw "Invalid (null) socket name"; _sockname = sockname; - - // no socket? launch the command directly - if(!_sockname) { - SystemCall(command); - return 1; - } - int tmpsock; if(strstr(_sockname, "/") || strstr(_sockname, "\\") || !strstr(_sockname, ":")){ // UNIX socket (testing ":" is not enough with Windows paths) @@ -305,8 +302,7 @@ class GmshServer : public GmshSocket{ unlink(_sockname); // create a socket tmpsock = socket(PF_UNIX, SOCK_STREAM, 0); - if(tmpsock < 0) - return -1; // Error: Couldn't create socket + if(tmpsock < 0) throw "Couldn't create socket"; // bind the socket to its name struct sockaddr_un addr_un; memset((char *) &addr_un, 0, sizeof(addr_un)); @@ -314,12 +310,12 @@ class GmshServer : public GmshSocket{ addr_un.sun_family = AF_UNIX; if(bind(tmpsock, (struct sockaddr *)&addr_un, sizeof(addr_un)) < 0){ CloseSocket(tmpsock); - return -2; // Error: Couldn't bind socket to name + throw "Couldn't bind socket to name"; } // change permissions on the socket name in case it has to be rm'd later chmod(_sockname, 0666); #else - return -7; // Unix sockets not available on Windows + throw "Unix sockets not available on Windows"; #endif } else{ @@ -333,7 +329,7 @@ class GmshServer : public GmshSocket{ #else if(tmpsock == INVALID_SOCKET) #endif - return -1; // Error: Couldn't create socket + throw "Couldn't create socket"; // bind the socket to its name struct sockaddr_in addr_in; memset((char *) &addr_in, 0, sizeof(addr_in)); @@ -342,33 +338,33 @@ class GmshServer : public GmshSocket{ addr_in.sin_port = htons(_portno); if(bind(tmpsock, (struct sockaddr *)&addr_in, sizeof(addr_in)) < 0){ CloseSocket(tmpsock); - return -2; // Error: Couldn't bind socket to name + throw "Couldn't bind socket to name"; } } - if(!justwait) + if(command && strlen(command)){ SystemCall(command); // Start the solver - + } + else{ + timeout = 0.; // no command launched: don't set a timeout + } + // listen on socket (queue up to 20 connections before having // them automatically rejected) if(listen(tmpsock, 20)){ CloseSocket(tmpsock); - return -3; // Error: Socket listen failed + throw "Socket listen failed"; } - if(justwait){ - // wait indefinitely until we get data - if(NonBlockingWait(tmpsock, -1, 0.5)){ - CloseSocket(tmpsock); - return -6; // not an actual error: we just stopped listening + // wait until we get data + int ret = NonBlockingWait(tmpsock, 0.5, timeout); + if(ret){ + CloseSocket(tmpsock); + if(ret == 2){ + throw "Socket listening timeout"; } - } - else{ - // Wait at most maxdelay seconds for data, issue error if no - // connection in that amount of time - if(!Select(tmpsock, maxdelay, 0)){ - CloseSocket(tmpsock); - return -4; // Error: Socket listening timeout + else{ + return -1; // stopped listening } } @@ -378,8 +374,6 @@ class GmshServer : public GmshSocket{ struct sockaddr_un from_un; socklen_t len = sizeof(from_un); _sock = accept(tmpsock, (struct sockaddr *)&from_un, &len); -#else - _sock = -7; // Unix sockets not available on Windows #endif } else{ @@ -390,15 +384,16 @@ class GmshServer : public GmshSocket{ CloseSocket(tmpsock); if(_sock < 0) - return -5; // Error: Socket accept failed + throw "Socket accept failed"; return _sock; } - int StopClient() + int Shutdown() { #if !defined(WIN32) || defined(__CYGWIN__) if(_portno < 0) unlink(_sockname); #endif + ShutdownSocket(_sock); CloseSocket(_sock); return 0; } diff --git a/utils/solvers/c++/solver.opt b/utils/solvers/c++/solver.opt index 2601ed0e33..6db466e2e2 100644 --- a/utils/solvers/c++/solver.opt +++ b/utils/solvers/c++/solver.opt @@ -1,5 +1,6 @@ Solver.Name1 = "My C++ Solver"; -Solver.Executable1 = "solver.exe"; +Solver.Executable1 = "./solver.exe"; +Solver.InputName1 = "dummy"; Solver.OptionCommand1 = "-options"; Solver.FirstOption1 = "My options"; Solver.FirstButton1 = "Run !"; -- GitLab