summaryrefslogtreecommitdiffstats
path: root/tinyDEMO
diff options
context:
space:
mode:
Diffstat (limited to 'tinyDEMO')
-rwxr-xr-xtinyDEMO/cmd.c114
-rwxr-xr-xtinyDEMO/cmd.h169
-rwxr-xr-xtinyDEMO/common.c1408
-rwxr-xr-xtinyDEMO/common.h125
-rwxr-xr-xtinyDEMO/demo_config.h8
-rwxr-xr-xtinyDEMO/dssl.c10076
-rwxr-xr-xtinyDEMO/dssl.h6
-rwxr-xr-xtinyDEMO/invite.c477
-rwxr-xr-xtinyDEMO/invite.h6
-rwxr-xr-xtinyDEMO/main.c884
-rwxr-xr-xtinyDEMO/main.h6
-rwxr-xr-xtinyDEMO/message.c404
-rwxr-xr-xtinyDEMO/message.h6
-rwxr-xr-xtinyDEMO/options.c136
-rwxr-xr-xtinyDEMO/options.h6
-rwxr-xr-xtinyDEMO/publish.c153
-rwxr-xr-xtinyDEMO/publish.h6
-rwxr-xr-xtinyDEMO/register.c165
-rwxr-xr-xtinyDEMO/register.h6
-rwxr-xr-xtinyDEMO/subscribe.c174
-rwxr-xr-xtinyDEMO/subscribe.h6
21 files changed, 7225 insertions, 7116 deletions
diff --git a/tinyDEMO/cmd.c b/tinyDEMO/cmd.c
index a2d6c89..7daf91a 100755
--- a/tinyDEMO/cmd.c
+++ b/tinyDEMO/cmd.c
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
@@ -33,15 +33,15 @@ static int pred_find_opt_by_type(const tsk_list_item_t *item, const void *type);
/* parse a command line */
cmd_t* cmd_parse(const char* buffer, tsk_size_t size, tsk_bool_t *comment, tsk_params_L_t* params)
-{
- return dssl_parse(buffer, size, comment, params);
+{
+ return dssl_parse(buffer, size, comment, params);
}
///* print usage */
void cmd_print_help()
{
- printf("\n\n========================= Usage =========================\n\n");
- printf("Please refer to the Programmer's Guide at\n http://www.doubango.org/\n\n");
+ printf("\n\n========================= Usage =========================\n\n");
+ printf("Please refer to the Programmer's Guide at\n http://www.doubango.org/\n\n");
//
// printf("Usage:\n");
@@ -71,89 +71,87 @@ void cmd_print_help()
cmd_t* cmd_create(cmd_type_t type)
{
- return tsk_object_new(cmd_def_t, type);
+ return tsk_object_new(cmd_def_t, type);
}
static tsk_object_t* cmd_ctor(tsk_object_t * self, va_list * app)
{
- cmd_t *cmd = self;
- if(cmd){
- cmd->type = va_arg(*app, cmd_type_t);
- cmd->opts = tsk_list_create();
- }
- return self;
+ cmd_t *cmd = self;
+ if(cmd) {
+ cmd->type = va_arg(*app, cmd_type_t);
+ cmd->opts = tsk_list_create();
+ }
+ return self;
}
static tsk_object_t* cmd_dtor(tsk_object_t * self)
-{
- cmd_t *cmd = self;
- if(cmd){
- TSK_OBJECT_SAFE_FREE(cmd->opts);
- TSK_FREE(cmd->sidparam);
- }
-
- return self;
+{
+ cmd_t *cmd = self;
+ if(cmd) {
+ TSK_OBJECT_SAFE_FREE(cmd->opts);
+ TSK_FREE(cmd->sidparam);
+ }
+
+ return self;
}
-static const tsk_object_def_t cmd_def_s =
-{
- sizeof(cmd_t),
- cmd_ctor,
- cmd_dtor,
- tsk_null,
+static const tsk_object_def_t cmd_def_s = {
+ sizeof(cmd_t),
+ cmd_ctor,
+ cmd_dtor,
+ tsk_null,
};
const tsk_object_def_t *cmd_def_t = &cmd_def_s;
opt_t* opt_create(opt_type_t type, lv_t level, const char* value)
{
- return tsk_object_new(opt_def_t, type, level, value);
+ return tsk_object_new(opt_def_t, type, level, value);
}
const opt_t* opt_get_by_type(const opts_L_t* opts, opt_type_t type)
{
- const tsk_list_item_t* item;
- if((item = tsk_list_find_item_by_pred(opts, pred_find_opt_by_type, &type))){
- return item->data;
- }
- return tsk_null;
+ const tsk_list_item_t* item;
+ if((item = tsk_list_find_item_by_pred(opts, pred_find_opt_by_type, &type))) {
+ return item->data;
+ }
+ return tsk_null;
}
static int pred_find_opt_by_type(const tsk_list_item_t *item, const void *type)
{
- if(item && item->data){
- opt_t *opt = item->data;
- return (opt->type - *((opt_type_t*)type));
- }
- return -1;
+ if(item && item->data) {
+ opt_t *opt = item->data;
+ return (opt->type - *((opt_type_t*)type));
+ }
+ return -1;
}
static tsk_object_t* opt_ctor(tsk_object_t * self, va_list * app)
{
- opt_t *opt = self;
- if(opt){
- opt->type = va_arg(*app, opt_type_t);
- opt->lv = va_arg(*app, lv_t);
- opt->value = tsk_strdup(va_arg(*app, const char*));
- }
- return self;
+ opt_t *opt = self;
+ if(opt) {
+ opt->type = va_arg(*app, opt_type_t);
+ opt->lv = va_arg(*app, lv_t);
+ opt->value = tsk_strdup(va_arg(*app, const char*));
+ }
+ return self;
}
static tsk_object_t* opt_dtor(tsk_object_t * self)
-{
- opt_t *opt = self;
- if(opt){
- TSK_FREE(opt->value);
- }
+{
+ opt_t *opt = self;
+ if(opt) {
+ TSK_FREE(opt->value);
+ }
- return self;
+ return self;
}
-static const tsk_object_def_t opt_def_s =
-{
- sizeof(opt_t),
- opt_ctor,
- opt_dtor,
- tsk_null,
+static const tsk_object_def_t opt_def_s = {
+ sizeof(opt_t),
+ opt_ctor,
+ opt_dtor,
+ tsk_null,
};
const tsk_object_def_t *opt_def_t = &opt_def_s;
diff --git a/tinyDEMO/cmd.h b/tinyDEMO/cmd.h
index 6c544ad..1a20e62 100755
--- a/tinyDEMO/cmd.h
+++ b/tinyDEMO/cmd.h
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
@@ -28,106 +28,101 @@
_BEGIN_DECLS
-typedef enum cmd_type_e
-{
- cmd_none,
-
- cmd_audio, /* ++audio | ++a*/
- cmd_audiovideo, /* ++audiovideo | ++av*/
- cmd_config_session, /* ++config-session | ++css */
- cmd_config_stack, /* ++config-stack | ++cst*/
- cmd_dtmf, /*++dtmf*/
- cmd_dump, /*++dump | ++d*/
- cmd_ect, /*++ect*/
- cmd_exit, /*++exit | ++e | ++quit | ++q*/
- cmd_file, /* ++file | ++f*/
- cmd_hangup, /* ++hangup | ++hu */
- cmd_help, /* ++help | ++h */
- cmd_hold, /* ++hold | ++ho */
- cmd_large_message, /* ++large-message | ++lm */
- cmd_message, /* ++message | ++m*/
- cmd_options, /* ++options | ++opt*/
- cmd_publish, /* ++publish | ++pub*/
- cmd_register, /* ++register | ++reg */
- cmd_resume, /* ++resume | ++res */
- cmd_run, /* ++run | ++r*/
- cmd_scenario, /* ++scenario | ++sn*/
- cmd_sleep, /* ++sleep */
- cmd_sms, /* ++sms */
- cmd_stop, /* ++stop */
- cmd_subscribe, /* ++subscribe | ++sub */
- cmd_video, /* ++video | ++v */
+typedef enum cmd_type_e {
+ cmd_none,
+
+ cmd_audio, /* ++audio | ++a*/
+ cmd_audiovideo, /* ++audiovideo | ++av*/
+ cmd_config_session, /* ++config-session | ++css */
+ cmd_config_stack, /* ++config-stack | ++cst*/
+ cmd_dtmf, /*++dtmf*/
+ cmd_dump, /*++dump | ++d*/
+ cmd_ect, /*++ect*/
+ cmd_exit, /*++exit | ++e | ++quit | ++q*/
+ cmd_file, /* ++file | ++f*/
+ cmd_hangup, /* ++hangup | ++hu */
+ cmd_help, /* ++help | ++h */
+ cmd_hold, /* ++hold | ++ho */
+ cmd_large_message, /* ++large-message | ++lm */
+ cmd_message, /* ++message | ++m*/
+ cmd_options, /* ++options | ++opt*/
+ cmd_publish, /* ++publish | ++pub*/
+ cmd_register, /* ++register | ++reg */
+ cmd_resume, /* ++resume | ++res */
+ cmd_run, /* ++run | ++r*/
+ cmd_scenario, /* ++scenario | ++sn*/
+ cmd_sleep, /* ++sleep */
+ cmd_sms, /* ++sms */
+ cmd_stop, /* ++stop */
+ cmd_subscribe, /* ++subscribe | ++sub */
+ cmd_video, /* ++video | ++v */
}
cmd_type_t;
-typedef enum opt_type_e
-{
- opt_none,
-
- opt_amf, /* --amf 0x85FF */
- opt_caps, /* --caps +g.oma.sip-im or language=en,fr*/
- opt_dhcpv4, /* --dhcpv4 */
- opt_dhcpv6, /* --dhcpv6 */
- opt_dname, /* --dname bob */
- opt_dns_naptr, /* --dns-naptr */
- opt_from, /* --from sip:alice@open-ims.test */
- opt_event, /* --event 2 */
- opt_expires, /* --expires|--xp 30 */
- opt_header, /* --header Supported=norefersub */
- opt_impi, /* --impi bob@open-ims.test */
- opt_impu, /* --impu sip:bob@open-ims.test */
- opt_ipv6, /* --ipv6 */
- opt_local_ip, /* --local-ip 192.168.0.10 */
- opt_local_port, /* --local-port 5060 */
- opt_opid, /* --opid 0xA712F5D04B */
- opt_password, /* --password|--pwd mysecret */
- opt_path, /* --path /cygdrive/c/Projects/sample.cfg */
- opt_payload, /* --payload|--pay hello world! */
- opt_pcscf_ip, /* --pcscf-ip 192.168.0.13 */
- opt_pcscf_port, /* --pcscf-port 5060 */
- opt_pcscf_trans, /* --pcscf-trans udp */
- opt_realm, /* --realm open-ims.test */
- opt_sec, /* --sec 1800 */
- opt_sid, /* --sid 1234 */
- opt_sigcomp_id, /* --sigcomp-id urn:uuid:2e5fdc76-00be-4314-8202-1116fa82a473 */
- opt_silent, /* --silent */
- opt_smsc, /* --smsc +3315245856 */
- opt_stun_ip, /* --stun-ip numb.viagenie.ca */
- opt_stun_pwd, /* --stun-pwd mysecret */
- opt_stun_port, /* --stun-port 3478 */
- opt_stun_usr, /* --stun-usr bob@open-ims.test */
- opt_to, /* --to sip:alice@open-ims.test */
+typedef enum opt_type_e {
+ opt_none,
+
+ opt_amf, /* --amf 0x85FF */
+ opt_caps, /* --caps +g.oma.sip-im or language=en,fr*/
+ opt_dhcpv4, /* --dhcpv4 */
+ opt_dhcpv6, /* --dhcpv6 */
+ opt_dname, /* --dname bob */
+ opt_dns_naptr, /* --dns-naptr */
+ opt_from, /* --from sip:alice@open-ims.test */
+ opt_event, /* --event 2 */
+ opt_expires, /* --expires|--xp 30 */
+ opt_header, /* --header Supported=norefersub */
+ opt_impi, /* --impi bob@open-ims.test */
+ opt_impu, /* --impu sip:bob@open-ims.test */
+ opt_ipv6, /* --ipv6 */
+ opt_local_ip, /* --local-ip 192.168.0.10 */
+ opt_local_port, /* --local-port 5060 */
+ opt_opid, /* --opid 0xA712F5D04B */
+ opt_password, /* --password|--pwd mysecret */
+ opt_path, /* --path /cygdrive/c/Projects/sample.cfg */
+ opt_payload, /* --payload|--pay hello world! */
+ opt_pcscf_ip, /* --pcscf-ip 192.168.0.13 */
+ opt_pcscf_port, /* --pcscf-port 5060 */
+ opt_pcscf_trans, /* --pcscf-trans udp */
+ opt_realm, /* --realm open-ims.test */
+ opt_sec, /* --sec 1800 */
+ opt_sid, /* --sid 1234 */
+ opt_sigcomp_id, /* --sigcomp-id urn:uuid:2e5fdc76-00be-4314-8202-1116fa82a473 */
+ opt_silent, /* --silent */
+ opt_smsc, /* --smsc +3315245856 */
+ opt_stun_ip, /* --stun-ip numb.viagenie.ca */
+ opt_stun_pwd, /* --stun-pwd mysecret */
+ opt_stun_port, /* --stun-port 3478 */
+ opt_stun_usr, /* --stun-usr bob@open-ims.test */
+ opt_to, /* --to sip:alice@open-ims.test */
}
opt_type_t;
-typedef enum lv_e
-{
- lv_none,
+typedef enum lv_e {
+ lv_none,
- lv_stack, /* @@stack | @@st */
- lv_session, /* @@session | @@ss */
- lv_action /* @@action | @@request | @@a | @@r*/
+ lv_stack, /* @@stack | @@st */
+ lv_session, /* @@session | @@ss */
+ lv_action /* @@action | @@request | @@a | @@r*/
}
lv_t;
-typedef struct opt_s
-{
- TSK_DECLARE_OBJECT;
+typedef struct opt_s {
+ TSK_DECLARE_OBJECT;
- opt_type_t type;
- lv_t lv;
- char* value;
+ opt_type_t type;
+ lv_t lv;
+ char* value;
}
opt_t;
typedef tsk_list_t opts_L_t;
-typedef struct cmd_s
-{
- TSK_DECLARE_OBJECT;
+typedef struct cmd_s {
+ TSK_DECLARE_OBJECT;
- cmd_type_t type;
- opts_L_t *opts;
- char* sidparam;
+ cmd_type_t type;
+ opts_L_t *opts;
+ char* sidparam;
}
cmd_t;
diff --git a/tinyDEMO/common.c b/tinyDEMO/common.c
index 386fed3..92e19c7 100755
--- a/tinyDEMO/common.c
+++ b/tinyDEMO/common.c
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
@@ -56,544 +56,524 @@ int session_tostring(const session_t* session);
/* our SIP callback function */
int stack_callback(const tsip_event_t *_event)
{
- int ret = 0;
+ int ret = 0;
- if(!_event){ /* should never happen ...but who know? */
- TSK_DEBUG_WARN("Null SIP event.");
- return -1;
- }
+ if(!_event) { /* should never happen ...but who know? */
+ TSK_DEBUG_WARN("Null SIP event.");
+ return -1;
+ }
#if 0
- tsk_safeobj_lock(ctx);
+ tsk_safeobj_lock(ctx);
#endif
- switch(_event->type){
- case tsip_event_register:
- { /* REGISTER */
- ret = register_handle_event(_event);
- break;
- }
- case tsip_event_invite:
- { /* INVITE */
- ret = invite_handle_event(_event);
- break;
- }
- case tsip_event_message:
- { /* MESSAGE */
- ret = message_handle_event(_event);
- break;
- }
- case tsip_event_options:
- { /* OPTIONS */
- ret = options_handle_event(_event);
- break;
- }
- case tsip_event_publish:
- { /* PUBLISH */
- ret = publish_handle_event(_event);
- break;
- }
- case tsip_event_subscribe:
- { /* SUBSCRIBE */
- ret = subscribe_handle_event(_event);
- break;
- }
-
- case tsip_event_dialog:
- { /* Common to all dialogs */
- ret = session_handle_event(_event);
- break;
- }
-
- case tsip_event_stack:
- {
- switch(_event->code){
- case tsip_event_code_stack_started:
- TSK_DEBUG_INFO("Stack started");
- break;
- case tsip_event_code_stack_stopped:
- TSK_DEBUG_INFO("Stack stopped");
- break;
- case tsip_event_code_stack_failed_to_start:
- TSK_DEBUG_INFO("Stack failed to start");
- break;
- case tsip_event_code_stack_failed_to_stop:
- TSK_DEBUG_INFO("Stack failed to stop");
- break;
- }
- break;
- }
-
- default:
- { /* Unsupported */
- TSK_DEBUG_WARN("%d not supported as SIP event.", _event->type);
- ret = -3;
- break;
- }
- }
+ switch(_event->type) {
+ case tsip_event_register: {
+ /* REGISTER */
+ ret = register_handle_event(_event);
+ break;
+ }
+ case tsip_event_invite: {
+ /* INVITE */
+ ret = invite_handle_event(_event);
+ break;
+ }
+ case tsip_event_message: {
+ /* MESSAGE */
+ ret = message_handle_event(_event);
+ break;
+ }
+ case tsip_event_options: {
+ /* OPTIONS */
+ ret = options_handle_event(_event);
+ break;
+ }
+ case tsip_event_publish: {
+ /* PUBLISH */
+ ret = publish_handle_event(_event);
+ break;
+ }
+ case tsip_event_subscribe: {
+ /* SUBSCRIBE */
+ ret = subscribe_handle_event(_event);
+ break;
+ }
+
+ case tsip_event_dialog: {
+ /* Common to all dialogs */
+ ret = session_handle_event(_event);
+ break;
+ }
+
+ case tsip_event_stack: {
+ switch(_event->code) {
+ case tsip_event_code_stack_started:
+ TSK_DEBUG_INFO("Stack started");
+ break;
+ case tsip_event_code_stack_stopped:
+ TSK_DEBUG_INFO("Stack stopped");
+ break;
+ case tsip_event_code_stack_failed_to_start:
+ TSK_DEBUG_INFO("Stack failed to start");
+ break;
+ case tsip_event_code_stack_failed_to_stop:
+ TSK_DEBUG_INFO("Stack failed to stop");
+ break;
+ }
+ break;
+ }
+
+ default: {
+ /* Unsupported */
+ TSK_DEBUG_WARN("%d not supported as SIP event.", _event->type);
+ ret = -3;
+ break;
+ }
+ }
#if 0
- tsk_safeobj_unlock(ctx);
+ tsk_safeobj_unlock(ctx);
#endif
- return ret;
+ return ret;
}
/* ==================================================================
- ========================== Context =================================
+ ========================== Context =================================
*/
ctx_t* ctx_create()
{
- return tsk_object_new(ctx_def_t);
+ return tsk_object_new(ctx_def_t);
}
static tsk_object_t* ctx_ctor(tsk_object_t * self, va_list * app)
{
- ctx_t *ctx = self;
- if(ctx){
- /* stack */
- ctx->stack = tsip_stack_create(stack_callback, DEFAULT_REALM, DEFAULT_IMPI, DEFAULT_IMPU, /* Mandatory parameters */
- TSIP_STACK_SET_LOCAL_IP(DEFAULT_LOCAL_IP), /* local IP */
- TSIP_STACK_SET_NULL() /* Mandatory */);
-
- /* SIP Sessions */
- ctx->sessions = tsk_list_create();
-
- /* user's parameters */
- ctx->params = tsk_list_create();
-
- /* init internal mutex */
- tsk_safeobj_init(ctx);
- }
- return self;
+ ctx_t *ctx = self;
+ if(ctx) {
+ /* stack */
+ ctx->stack = tsip_stack_create(stack_callback, DEFAULT_REALM, DEFAULT_IMPI, DEFAULT_IMPU, /* Mandatory parameters */
+ TSIP_STACK_SET_LOCAL_IP(DEFAULT_LOCAL_IP), /* local IP */
+ TSIP_STACK_SET_NULL() /* Mandatory */);
+
+ /* SIP Sessions */
+ ctx->sessions = tsk_list_create();
+
+ /* user's parameters */
+ ctx->params = tsk_list_create();
+
+ /* init internal mutex */
+ tsk_safeobj_init(ctx);
+ }
+ return self;
}
static tsk_object_t* ctx_dtor(tsk_object_t * self)
-{
- ctx_t *ctx = self;
- if(ctx){
- /* Stop the stack (as sessions are alive, you will continue to receive callbacks)*/
- tsip_stack_stop(ctx->stack);
-
- /* sessions : should be freed before the stack as explained on the Programmer's Guide
- * As all dialogs have been hanged up, the list should be empty ...but who know?*/
- TSK_OBJECT_SAFE_FREE(ctx->sessions);
-
- /* Destroy the stack */
- TSK_OBJECT_SAFE_FREE(ctx->stack);
-
- /* Identity */
- TSK_FREE(ctx->identity.display_name);
- TSK_FREE(ctx->identity.impu);
- TSK_FREE(ctx->identity.preferred);
- TSK_FREE(ctx->identity.impi);
- TSK_FREE(ctx->identity.password);
-
- /* Network */
- TSK_FREE(ctx->network.local_ip);
- TSK_FREE(ctx->network.proxy_cscf);
- TSK_FREE(ctx->network.proxy_cscf_trans);
- TSK_FREE(ctx->network.realm);
-
- /* Security */
- TSK_FREE(ctx->security.operator_id);
-
- /* Params */
- TSK_OBJECT_SAFE_FREE(ctx->params);
-
- /* deinit internal mutex */
- tsk_safeobj_deinit(ctx);
- }
-
- return self;
+{
+ ctx_t *ctx = self;
+ if(ctx) {
+ /* Stop the stack (as sessions are alive, you will continue to receive callbacks)*/
+ tsip_stack_stop(ctx->stack);
+
+ /* sessions : should be freed before the stack as explained on the Programmer's Guide
+ * As all dialogs have been hanged up, the list should be empty ...but who know?*/
+ TSK_OBJECT_SAFE_FREE(ctx->sessions);
+
+ /* Destroy the stack */
+ TSK_OBJECT_SAFE_FREE(ctx->stack);
+
+ /* Identity */
+ TSK_FREE(ctx->identity.display_name);
+ TSK_FREE(ctx->identity.impu);
+ TSK_FREE(ctx->identity.preferred);
+ TSK_FREE(ctx->identity.impi);
+ TSK_FREE(ctx->identity.password);
+
+ /* Network */
+ TSK_FREE(ctx->network.local_ip);
+ TSK_FREE(ctx->network.proxy_cscf);
+ TSK_FREE(ctx->network.proxy_cscf_trans);
+ TSK_FREE(ctx->network.realm);
+
+ /* Security */
+ TSK_FREE(ctx->security.operator_id);
+
+ /* Params */
+ TSK_OBJECT_SAFE_FREE(ctx->params);
+
+ /* deinit internal mutex */
+ tsk_safeobj_deinit(ctx);
+ }
+
+ return self;
}
-static const tsk_object_def_t ctx_def_s =
-{
- sizeof(ctx_t),
- ctx_ctor,
- ctx_dtor,
- tsk_null,
+static const tsk_object_def_t ctx_def_s = {
+ sizeof(ctx_t),
+ ctx_ctor,
+ ctx_dtor,
+ tsk_null,
};
const tsk_object_def_t *ctx_def_t = &ctx_def_s;
/* ==================================================================
- ========================== Stack =================================
+ ========================== Stack =================================
*/
int stack_dump()
{
- const tsk_list_item_t* item;
+ const tsk_list_item_t* item;
- tsk_list_foreach(item, ctx->sessions){
- session_tostring(item->data);
- }
- return 0;
+ tsk_list_foreach(item, ctx->sessions) {
+ session_tostring(item->data);
+ }
+ return 0;
}
int stack_config(const opts_L_t* opts)
{
- const tsk_list_item_t* item;
- const opt_t* opt;
- int ret = 0;
- tsk_param_t* param;
- tsk_bool_t pcscf_changed = tsk_false;
- tsk_bool_t stun_done = tsk_false;
-
- if(!opts){
- return -1;
- }
-
- tsk_list_foreach(item, opts){
- opt = item->data;
-
- /* Stack-level option */
- if(opt->lv != lv_none && opt->lv != lv_stack){
- continue;
- }
-
- switch(opt->type){
- case opt_amf:
- {
- break;
- }
- case opt_dhcpv4:
- case opt_dhcpv6:
- {
- tsip_stack_set(ctx->stack,
- TSIP_STACK_SET_DISCOVERY_DHCP(tsk_true),
- TSIP_STACK_SET_NULL());
- break;
- }
- case opt_dname:
- {
- break;
- }
- case opt_dns_naptr:
- {
- tsip_stack_set(ctx->stack,
- TSIP_STACK_SET_DISCOVERY_NAPTR(tsk_true),
- TSIP_STACK_SET_NULL());
- break;
- }
- case opt_header:
- {
- if((param = tsk_params_parse_param(opt->value, tsk_strlen(opt->value)))){
- ret = tsip_stack_set(ctx->stack,
- TSIP_STACK_SET_HEADER(param->name, param->value),
- TSIP_STACK_SET_NULL());
- TSK_OBJECT_SAFE_FREE(param);
- }
- break;
- }
- case opt_impi:
- {
- tsk_strupdate(&ctx->identity.impi, opt->value);
- ret = tsip_stack_set(ctx->stack,
- TSIP_STACK_SET_IMPI(ctx->identity.impi),
- TSIP_STACK_SET_NULL());
- break;
- }
- case opt_impu:
- {
- tsk_strupdate(&ctx->identity.impu, opt->value);
- ret = tsip_stack_set(ctx->stack,
- TSIP_STACK_SET_IMPU(ctx->identity.impu),
- TSIP_STACK_SET_NULL());
- break;
- }
- case opt_ipv6:
- {
- pcscf_changed = tsk_true;
- ctx->network.ipv6 = tsk_true;
- break;
- }
- case opt_local_ip:
- {
- ret = tsip_stack_set(ctx->stack,
- TSIP_STACK_SET_LOCAL_IP(opt->value),
- TSIP_STACK_SET_NULL());
- break;
- }
- case opt_local_port:
- {
- unsigned port = (unsigned)atoi(opt->value);
- ret = tsip_stack_set(ctx->stack,
- TSIP_STACK_SET_LOCAL_PORT(port),
- TSIP_STACK_SET_NULL());
- break;
- }
- case opt_opid:
- {
- break;
- }
- case opt_password:
- {
- ret = tsip_stack_set(ctx->stack,
- TSIP_STACK_SET_PASSWORD(opt->value),
- TSIP_STACK_SET_NULL());
- break;
- }
- case opt_pcscf_ip:
- {
- pcscf_changed = tsk_true;
- tsk_strupdate(&ctx->network.proxy_cscf, opt->value);
- break;
- }
- case opt_pcscf_port:
- {
- pcscf_changed = tsk_true;
- ctx->network.proxy_cscf_port = atoi(opt->value);
- break;
- }
- case opt_pcscf_trans:
- {
- pcscf_changed = tsk_true;
- tsk_strupdate(&ctx->network.proxy_cscf_trans, opt->value);
- break;
- }
- case opt_realm:
- {
- ret = tsip_stack_set(ctx->stack,
- TSIP_STACK_SET_REALM(opt->value),
- TSIP_STACK_SET_NULL());
- break;
- }
-
- case opt_sigcomp_id:
- { /* add compartment */
- ret = tsip_stack_set(ctx->stack,
- TSIP_STACK_SET_SIGCOMP_NEW_COMPARTMENT(opt->value),
- TSIP_STACK_SET_NULL());
- break;
- }
-
- case opt_stun_ip:
- case opt_stun_pwd:
- case opt_stun_port:
- case opt_stun_usr:
- {
- if(!stun_done){
- const opt_t* _opt;
- const char* ip = tsk_null, *usr = tsk_null, *pwd = tsk_null;
- unsigned port = 0;
-
- if((_opt = opt_get_by_type(opts, opt_stun_ip))){
- ip = _opt->value;
- }
- if((_opt = opt_get_by_type(opts, opt_stun_port))){
- port = atoi(_opt->value);
- }
- if((_opt = opt_get_by_type(opts, opt_stun_usr))){
- usr = _opt->value;
- }
- if((_opt = opt_get_by_type(opts, opt_stun_pwd))){
- pwd = _opt->value;
- }
-
- if(ip && port){
- tsip_stack_set(ctx->stack,
- TSIP_STACK_SET_STUN_SERVER(ip, port),
- TSIP_STACK_SET_NULL());
- }
- if(usr){
- tsip_stack_set(ctx->stack,
- TSIP_STACK_SET_STUN_CRED(usr, pwd),
- TSIP_STACK_SET_NULL());
- }
-
- stun_done = tsk_true;
- }
- break;
- }
-
- }/* switch */
-
- } /* foreach */
-
- /* whether Proxy-CSCF config has changed */
- if(pcscf_changed){
- ret = tsip_stack_set(ctx->stack,
- TSIP_STACK_SET_PROXY_CSCF(ctx->network.proxy_cscf, ctx->network.proxy_cscf_port, ctx->network.proxy_cscf_trans, ctx->network.ipv6 ? "ipv6" : "ipv4"),
- TSIP_STACK_SET_NULL());
- }
-
- return ret;
+ const tsk_list_item_t* item;
+ const opt_t* opt;
+ int ret = 0;
+ tsk_param_t* param;
+ tsk_bool_t pcscf_changed = tsk_false;
+ tsk_bool_t stun_done = tsk_false;
+
+ if(!opts) {
+ return -1;
+ }
+
+ tsk_list_foreach(item, opts) {
+ opt = item->data;
+
+ /* Stack-level option */
+ if(opt->lv != lv_none && opt->lv != lv_stack) {
+ continue;
+ }
+
+ switch(opt->type) {
+ case opt_amf: {
+ break;
+ }
+ case opt_dhcpv4:
+ case opt_dhcpv6: {
+ tsip_stack_set(ctx->stack,
+ TSIP_STACK_SET_DISCOVERY_DHCP(tsk_true),
+ TSIP_STACK_SET_NULL());
+ break;
+ }
+ case opt_dname: {
+ break;
+ }
+ case opt_dns_naptr: {
+ tsip_stack_set(ctx->stack,
+ TSIP_STACK_SET_DISCOVERY_NAPTR(tsk_true),
+ TSIP_STACK_SET_NULL());
+ break;
+ }
+ case opt_header: {
+ if((param = tsk_params_parse_param(opt->value, tsk_strlen(opt->value)))) {
+ ret = tsip_stack_set(ctx->stack,
+ TSIP_STACK_SET_HEADER(param->name, param->value),
+ TSIP_STACK_SET_NULL());
+ TSK_OBJECT_SAFE_FREE(param);
+ }
+ break;
+ }
+ case opt_impi: {
+ tsk_strupdate(&ctx->identity.impi, opt->value);
+ ret = tsip_stack_set(ctx->stack,
+ TSIP_STACK_SET_IMPI(ctx->identity.impi),
+ TSIP_STACK_SET_NULL());
+ break;
+ }
+ case opt_impu: {
+ tsk_strupdate(&ctx->identity.impu, opt->value);
+ ret = tsip_stack_set(ctx->stack,
+ TSIP_STACK_SET_IMPU(ctx->identity.impu),
+ TSIP_STACK_SET_NULL());
+ break;
+ }
+ case opt_ipv6: {
+ pcscf_changed = tsk_true;
+ ctx->network.ipv6 = tsk_true;
+ break;
+ }
+ case opt_local_ip: {
+ ret = tsip_stack_set(ctx->stack,
+ TSIP_STACK_SET_LOCAL_IP(opt->value),
+ TSIP_STACK_SET_NULL());
+ break;
+ }
+ case opt_local_port: {
+ unsigned port = (unsigned)atoi(opt->value);
+ ret = tsip_stack_set(ctx->stack,
+ TSIP_STACK_SET_LOCAL_PORT(port),
+ TSIP_STACK_SET_NULL());
+ break;
+ }
+ case opt_opid: {
+ break;
+ }
+ case opt_password: {
+ ret = tsip_stack_set(ctx->stack,
+ TSIP_STACK_SET_PASSWORD(opt->value),
+ TSIP_STACK_SET_NULL());
+ break;
+ }
+ case opt_pcscf_ip: {
+ pcscf_changed = tsk_true;
+ tsk_strupdate(&ctx->network.proxy_cscf, opt->value);
+ break;
+ }
+ case opt_pcscf_port: {
+ pcscf_changed = tsk_true;
+ ctx->network.proxy_cscf_port = atoi(opt->value);
+ break;
+ }
+ case opt_pcscf_trans: {
+ pcscf_changed = tsk_true;
+ tsk_strupdate(&ctx->network.proxy_cscf_trans, opt->value);
+ break;
+ }
+ case opt_realm: {
+ ret = tsip_stack_set(ctx->stack,
+ TSIP_STACK_SET_REALM(opt->value),
+ TSIP_STACK_SET_NULL());
+ break;
+ }
+
+ case opt_sigcomp_id: {
+ /* add compartment */
+ ret = tsip_stack_set(ctx->stack,
+ TSIP_STACK_SET_SIGCOMP_NEW_COMPARTMENT(opt->value),
+ TSIP_STACK_SET_NULL());
+ break;
+ }
+
+ case opt_stun_ip:
+ case opt_stun_pwd:
+ case opt_stun_port:
+ case opt_stun_usr: {
+ if(!stun_done) {
+ const opt_t* _opt;
+ const char* ip = tsk_null, *usr = tsk_null, *pwd = tsk_null;
+ unsigned port = 0;
+
+ if((_opt = opt_get_by_type(opts, opt_stun_ip))) {
+ ip = _opt->value;
+ }
+ if((_opt = opt_get_by_type(opts, opt_stun_port))) {
+ port = atoi(_opt->value);
+ }
+ if((_opt = opt_get_by_type(opts, opt_stun_usr))) {
+ usr = _opt->value;
+ }
+ if((_opt = opt_get_by_type(opts, opt_stun_pwd))) {
+ pwd = _opt->value;
+ }
+
+ if(ip && port) {
+ tsip_stack_set(ctx->stack,
+ TSIP_STACK_SET_STUN_SERVER(ip, port),
+ TSIP_STACK_SET_NULL());
+ }
+ if(usr) {
+ tsip_stack_set(ctx->stack,
+ TSIP_STACK_SET_STUN_CRED(usr, pwd),
+ TSIP_STACK_SET_NULL());
+ }
+
+ stun_done = tsk_true;
+ }
+ break;
+ }
+
+ }/* switch */
+
+ } /* foreach */
+
+ /* whether Proxy-CSCF config has changed */
+ if(pcscf_changed) {
+ ret = tsip_stack_set(ctx->stack,
+ TSIP_STACK_SET_PROXY_CSCF(ctx->network.proxy_cscf, ctx->network.proxy_cscf_port, ctx->network.proxy_cscf_trans, ctx->network.ipv6 ? "ipv6" : "ipv4"),
+ TSIP_STACK_SET_NULL());
+ }
+
+ return ret;
}
int stack_run(const opts_L_t* opts)
{
- if(!ctx->stack){
- TSK_DEBUG_ERROR("Stack is Null.");
- return -1;
- }
- else{
- return tsip_stack_start(ctx->stack);
- }
+ if(!ctx->stack) {
+ TSK_DEBUG_ERROR("Stack is Null.");
+ return -1;
+ }
+ else {
+ return tsip_stack_start(ctx->stack);
+ }
}
/* ==================================================================
- ========================== Session =================================
+ ========================== Session =================================
*/
/* Find SIP session by id */
int pred_find_session_by_id(const tsk_list_item_t *item, const void* id)
{
- const session_t* session;
- if(item && item->data){
- session = item->data;
- return (int)(tsip_ssession_get_id(session->handle)
- - *((tsip_ssession_id_t*)id));
- }
- return -1;
+ const session_t* session;
+ if(item && item->data) {
+ session = item->data;
+ return (int)(tsip_ssession_get_id(session->handle)
+ - *((tsip_ssession_id_t*)id));
+ }
+ return -1;
}
session_t* session_create(session_type_t type, tsip_ssession_handle_t* handle)
{
- session_t* session = tsk_object_new(session_def_t, type, handle);
- if(!session){
- TSK_DEBUG_ERROR("Failed to create new SIP session");
- return tsk_null;
- }
-
- switch(type){
- case st_invite:
- { /* Enable all features (QoS, Session timers, SigComp, ...) */
- tsip_ssession_set(session->handle,
- TSIP_SSESSION_SET_USERDATA(session),
- /*=== MEDIA */
- TSIP_SSESSION_SET_MEDIA(
- // 100rel
- TSIP_MSESSION_SET_100rel(tsk_false),
- // Session timers
- TSIP_MSESSION_SET_TIMERS(3600, "uac"),
- // QoS
- TSIP_MSESSION_SET_QOS(tmedia_qos_stype_segmented, tmedia_qos_strength_optional),
- // close media params
- TSIP_MSESSION_SET_NULL()
- ),
-
- TSIP_SSESSION_SET_NULL());
- break;
- }
- default:
- break;
- }
- return session;
+ session_t* session = tsk_object_new(session_def_t, type, handle);
+ if(!session) {
+ TSK_DEBUG_ERROR("Failed to create new SIP session");
+ return tsk_null;
+ }
+
+ switch(type) {
+ case st_invite: {
+ /* Enable all features (QoS, Session timers, SigComp, ...) */
+ tsip_ssession_set(session->handle,
+ TSIP_SSESSION_SET_USERDATA(session),
+ /*=== MEDIA */
+ TSIP_SSESSION_SET_MEDIA(
+ // 100rel
+ TSIP_MSESSION_SET_100rel(tsk_false),
+ // Session timers
+ TSIP_MSESSION_SET_TIMERS(3600, "uac"),
+ // QoS
+ TSIP_MSESSION_SET_QOS(tmedia_qos_stype_segmented, tmedia_qos_strength_optional),
+ // close media params
+ TSIP_MSESSION_SET_NULL()
+ ),
+
+ TSIP_SSESSION_SET_NULL());
+ break;
+ }
+ default:
+ break;
+ }
+ return session;
}
const session_t* session_get_by_sid(const sessions_L_t* sessions, tsip_ssession_id_t sid)
{
- const tsk_list_item_t* item;
- if((item = tsk_list_find_item_by_pred(sessions, pred_find_session_by_id, &sid))){
- return item->data;
- }
- else{
- return tsk_null;
- }
+ const tsk_list_item_t* item;
+ if((item = tsk_list_find_item_by_pred(sessions, pred_find_session_by_id, &sid))) {
+ return item->data;
+ }
+ else {
+ return tsk_null;
+ }
}
int session_tostring(const session_t* session)
{
- //char* temp = tsk_null;
- printf("== Session: ");
- if(session){
- /* Session Id */
- printf("sid=%llu", tsip_ssession_get_id(session->handle));
- /* Type */
- printf(" type=");
- switch(session->type){
- case st_invite:
- printf("INVITE");
- break;
- case st_message:
- printf("MESSAGE");
- break;
- case st_publish:
- printf("PUBLISH");
- break;
- case st_register:
- printf("REGISTER");
- break;
- case st_subscribe:
- printf("SUBSCRIBE");
- break;
- default:
- printf("(null)");
- break;
- }
- /* From */
- printf(" from=%s", session->from ? session->from : ctx->identity.impu);
- /* From */
- printf(" to=%s", session->to ? session->to : ctx->identity.impu);
- }
- else{
- printf("(invalid)");
- }
- printf("\n");
- return -1;
+ //char* temp = tsk_null;
+ printf("== Session: ");
+ if(session) {
+ /* Session Id */
+ printf("sid=%llu", tsip_ssession_get_id(session->handle));
+ /* Type */
+ printf(" type=");
+ switch(session->type) {
+ case st_invite:
+ printf("INVITE");
+ break;
+ case st_message:
+ printf("MESSAGE");
+ break;
+ case st_publish:
+ printf("PUBLISH");
+ break;
+ case st_register:
+ printf("REGISTER");
+ break;
+ case st_subscribe:
+ printf("SUBSCRIBE");
+ break;
+ default:
+ printf("(null)");
+ break;
+ }
+ /* From */
+ printf(" from=%s", session->from ? session->from : ctx->identity.impu);
+ /* From */
+ printf(" to=%s", session->to ? session->to : ctx->identity.impu);
+ }
+ else {
+ printf("(invalid)");
+ }
+ printf("\n");
+ return -1;
}
/* handle events -common to all sessions */
int session_handle_event(const tsip_event_t *_event)
{
- const session_t* session;
-
- /* Find associated session */
- if(!(session = session_get_by_sid(ctx->sessions, tsip_ssession_get_id(_event->ss)))){
- /* Silentky ignore */
- return 0;
- }
- switch(_event->code)
- {
- /* === 7xx ==> errors === */
- case tsip_event_code_dialog_transport_error:
- case tsip_event_code_dialog_global_error:
- case tsip_event_code_dialog_message_error:
- /* do not guess that the dialog is terminated, wait for "tsip_event_code_dialog_terminated" event */
- break;
-
- /* === 8xx ==> success === */
- case tsip_event_code_dialog_request_incoming:
- case tsip_event_code_dialog_request_cancelled:
- case tsip_event_code_dialog_request_sent:
- break;
-
- /* === 9xx ==> Informational === */
- case tsip_event_code_dialog_terminated:
- { /* we no longer need the session
- * -> remove and destroy the session */
- TSK_DEBUG_INFO("Dialog Terminated --> %s", _event->phrase);
- tsk_list_remove_item_by_data(ctx->sessions, session);
- break;
- }
-
- case tsip_event_code_dialog_connected:
- ((session_t*)session)->connected = tsk_true;
- break;
- case tsip_event_code_dialog_terminating:
- break;
- }
- return 0;
+ const session_t* session;
+
+ /* Find associated session */
+ if(!(session = session_get_by_sid(ctx->sessions, tsip_ssession_get_id(_event->ss)))) {
+ /* Silentky ignore */
+ return 0;
+ }
+ switch(_event->code) {
+ /* === 7xx ==> errors === */
+ case tsip_event_code_dialog_transport_error:
+ case tsip_event_code_dialog_global_error:
+ case tsip_event_code_dialog_message_error:
+ /* do not guess that the dialog is terminated, wait for "tsip_event_code_dialog_terminated" event */
+ break;
+
+ /* === 8xx ==> success === */
+ case tsip_event_code_dialog_request_incoming:
+ case tsip_event_code_dialog_request_cancelled:
+ case tsip_event_code_dialog_request_sent:
+ break;
+
+ /* === 9xx ==> Informational === */
+ case tsip_event_code_dialog_terminated: {
+ /* we no longer need the session
+ * -> remove and destroy the session */
+ TSK_DEBUG_INFO("Dialog Terminated --> %s", _event->phrase);
+ tsk_list_remove_item_by_data(ctx->sessions, session);
+ break;
+ }
+
+ case tsip_event_code_dialog_connected:
+ ((session_t*)session)->connected = tsk_true;
+ break;
+ case tsip_event_code_dialog_terminating:
+ break;
+ }
+ return 0;
}
/* handle commands -common to all sessions */
const session_t* session_handle_cmd(cmd_type_t cmd, const opts_L_t* opts)
{
- const session_t* session = tsk_null;
- const opt_t* opt;
- const tsk_list_item_t* item;
- tsk_param_t* param;
- int ret = 0;
-
- /* Check if there is a session with is Id */
- if((opt = opt_get_by_type(opts, opt_sid))){
- tsip_ssession_id_t sid = atoi(opt->value);
- session = session_get_by_sid(ctx->sessions, sid);
- }
+ const session_t* session = tsk_null;
+ const opt_t* opt;
+ const tsk_list_item_t* item;
+ tsk_param_t* param;
+ int ret = 0;
+
+ /* Check if there is a session with is Id */
+ if((opt = opt_get_by_type(opts, opt_sid))) {
+ tsip_ssession_id_t sid = atoi(opt->value);
+ session = session_get_by_sid(ctx->sessions, sid);
+ }
#define TYPE_FROM_CMD(_CMD) \
((_CMD==cmd_audio || _CMD==cmd_video || _CMD==cmd_audiovideo || _CMD==cmd_file || _CMD==cmd_large_message) ? st_invite : \
@@ -602,227 +582,228 @@ const session_t* session_handle_cmd(cmd_type_t cmd, const opts_L_t* opts)
(_CMD==cmd_publish ? st_publish : \
(_CMD==cmd_register ? st_register : \
(_CMD==cmd_subscribe ? st_subscribe : st_none))))))
-
- /* === Command === */
- switch(cmd){
- case cmd_audio: case cmd_video: case cmd_audiovideo: case cmd_file: case cmd_large_message:
- case cmd_message:
- case cmd_sms:
- case cmd_options:
- case cmd_publish:
- case cmd_register:
- case cmd_subscribe:
- {
- if(!session){ /* Create "client-side-session" */
- session_t* _session;
- if((_session = session_client_create(TYPE_FROM_CMD(cmd))) && (session = _session)){
- tsk_list_push_back_data(ctx->sessions, (void**)&_session);
- }
- }
- break;
- }
- default:
- {
- if(session){
- /* hold, resume, refer, update, ...all in-dialog commands */
- break;
- }
- else{
- TSK_DEBUG_WARN("Session handling: Cannot handle this command [%d]", cmd);
- goto bail;
- }
- }
- } /* switch */
-
- if(!session){
- TSK_DEBUG_ERROR("SIP Session is Null");
- goto bail;
- }
-
- /* === User Options === */
- tsk_list_foreach(item, opts){
- opt = item->data;
-
- /* Session-level option? */
- if(opt->lv != lv_none && opt->lv != lv_session){
- continue;
- }
-
- switch(opt->type){
- case opt_caps:
- {
- if(!tsk_strnullORempty(opt->value)){
- if((param = tsk_params_parse_param(opt->value, tsk_strlen(opt->value)))){
- ret = tsip_ssession_set(session->handle,
- TSIP_SSESSION_SET_CAPS(param->name, param->value),
- TSIP_SSESSION_SET_NULL());
- TSK_OBJECT_SAFE_FREE(param);
- }
- }
- break;
- }
- case opt_expires:
- {
- if(!tsk_strnullORempty(opt->value)){
- unsigned expires = atoi(opt->value);
- ret = tsip_ssession_set(session->handle,
- TSIP_SSESSION_SET_EXPIRES(expires),
- TSIP_SSESSION_SET_NULL());
- }
- break;
- }
- case opt_from:
- { /* You should use TSIP_SSESSION_SET_OPTION(TSIP_SSESSION_OPTION_FROM, value)
- instead of TSIP_SSESSION_SET_HEADER() to set the destination URI. */
- break;
- }
- case opt_header:
- {
- if((param = tsk_params_parse_param(opt->value, tsk_strlen(opt->value)))){
- ret = tsip_ssession_set(session->handle,
- TSIP_SSESSION_SET_HEADER(param->name, param->value),
- TSIP_SSESSION_SET_NULL());
- TSK_OBJECT_SAFE_FREE(param);
- }
- break;
- }
- case opt_payload:
- { /* Will be handled by the caller */
- break;
- }
- case opt_silent:
- { /* valueless option */
- ret = tsip_ssession_set(session->handle,
- TSIP_SSESSION_SET_SILENT_HANGUP(tsk_true),
- TSIP_SSESSION_SET_NULL());
- break;
- }
- case opt_sigcomp_id:
- { /* sigcomp-id */
- ret = tsip_ssession_set(session->handle,
- TSIP_SSESSION_SET_SIGCOMP_COMPARTMENT(opt->value),
- TSIP_SSESSION_SET_NULL());
- break;
- }
- case opt_to:
- { /* You should use TSIP_SSESSION_SET_OPTION(TSIP_SSESSION_OPTION_TO, value)
- instead of TSIP_SSESSION_SET_HEADER() to set the destination URI. */
- if((cmd != cmd_sms) && (cmd != cmd_ect) && !tsk_strnullORempty(opt->value)){ /* SMS will use SMSC Address as Request URI */
- ret = tsip_ssession_set(session->handle,
- TSIP_SSESSION_SET_TO(opt->value),
- TSIP_SSESSION_SET_NULL());
- }
- break;
- }
- default:
- {
- /* will be handled by the caller */
- break;
- }
- }
-
- } /* foreach */
+
+ /* === Command === */
+ switch(cmd) {
+ case cmd_audio:
+ case cmd_video:
+ case cmd_audiovideo:
+ case cmd_file:
+ case cmd_large_message:
+ case cmd_message:
+ case cmd_sms:
+ case cmd_options:
+ case cmd_publish:
+ case cmd_register:
+ case cmd_subscribe: {
+ if(!session) { /* Create "client-side-session" */
+ session_t* _session;
+ if((_session = session_client_create(TYPE_FROM_CMD(cmd))) && (session = _session)) {
+ tsk_list_push_back_data(ctx->sessions, (void**)&_session);
+ }
+ }
+ break;
+ }
+ default: {
+ if(session) {
+ /* hold, resume, refer, update, ...all in-dialog commands */
+ break;
+ }
+ else {
+ TSK_DEBUG_WARN("Session handling: Cannot handle this command [%d]", cmd);
+ goto bail;
+ }
+ }
+ } /* switch */
+
+ if(!session) {
+ TSK_DEBUG_ERROR("SIP Session is Null");
+ goto bail;
+ }
+
+ /* === User Options === */
+ tsk_list_foreach(item, opts) {
+ opt = item->data;
+
+ /* Session-level option? */
+ if(opt->lv != lv_none && opt->lv != lv_session) {
+ continue;
+ }
+
+ switch(opt->type) {
+ case opt_caps: {
+ if(!tsk_strnullORempty(opt->value)) {
+ if((param = tsk_params_parse_param(opt->value, tsk_strlen(opt->value)))) {
+ ret = tsip_ssession_set(session->handle,
+ TSIP_SSESSION_SET_CAPS(param->name, param->value),
+ TSIP_SSESSION_SET_NULL());
+ TSK_OBJECT_SAFE_FREE(param);
+ }
+ }
+ break;
+ }
+ case opt_expires: {
+ if(!tsk_strnullORempty(opt->value)) {
+ unsigned expires = atoi(opt->value);
+ ret = tsip_ssession_set(session->handle,
+ TSIP_SSESSION_SET_EXPIRES(expires),
+ TSIP_SSESSION_SET_NULL());
+ }
+ break;
+ }
+ case opt_from: {
+ /* You should use TSIP_SSESSION_SET_OPTION(TSIP_SSESSION_OPTION_FROM, value)
+ instead of TSIP_SSESSION_SET_HEADER() to set the destination URI. */
+ break;
+ }
+ case opt_header: {
+ if((param = tsk_params_parse_param(opt->value, tsk_strlen(opt->value)))) {
+ ret = tsip_ssession_set(session->handle,
+ TSIP_SSESSION_SET_HEADER(param->name, param->value),
+ TSIP_SSESSION_SET_NULL());
+ TSK_OBJECT_SAFE_FREE(param);
+ }
+ break;
+ }
+ case opt_payload: {
+ /* Will be handled by the caller */
+ break;
+ }
+ case opt_silent: {
+ /* valueless option */
+ ret = tsip_ssession_set(session->handle,
+ TSIP_SSESSION_SET_SILENT_HANGUP(tsk_true),
+ TSIP_SSESSION_SET_NULL());
+ break;
+ }
+ case opt_sigcomp_id: {
+ /* sigcomp-id */
+ ret = tsip_ssession_set(session->handle,
+ TSIP_SSESSION_SET_SIGCOMP_COMPARTMENT(opt->value),
+ TSIP_SSESSION_SET_NULL());
+ break;
+ }
+ case opt_to: {
+ /* You should use TSIP_SSESSION_SET_OPTION(TSIP_SSESSION_OPTION_TO, value)
+ instead of TSIP_SSESSION_SET_HEADER() to set the destination URI. */
+ if((cmd != cmd_sms) && (cmd != cmd_ect) && !tsk_strnullORempty(opt->value)) { /* SMS will use SMSC Address as Request URI */
+ ret = tsip_ssession_set(session->handle,
+ TSIP_SSESSION_SET_TO(opt->value),
+ TSIP_SSESSION_SET_NULL());
+ }
+ break;
+ }
+ default: {
+ /* will be handled by the caller */
+ break;
+ }
+ }
+
+ } /* foreach */
bail:
- return session;
+ return session;
}
int session_hangup(tsip_ssession_id_t sid)
{
- const session_t* session;
- if((session = session_get_by_sid(ctx->sessions, sid))){
- switch(session->type){
- case st_invite:
- tsip_api_invite_send_bye(session->handle,
- /* You can add your parameters */
- TSIP_ACTION_SET_NULL());
- break;
- case st_message:
- break;
- case st_publish:
- tsip_api_publish_send_unpublish(session->handle,
- /* You can add your parameters */
- TSIP_ACTION_SET_NULL());
- break;
- case st_register:
- tsip_api_register_send_unregister(session->handle,
- /* You can add your parameters */
- TSIP_ACTION_SET_NULL());
- break;
- case st_subscribe:
- tsip_api_subscribe_send_unsubscribe(session->handle,
- /* You can add your parameters */
- TSIP_ACTION_SET_NULL());
- break;
- default:
- TSK_DEBUG_WARN("Cannot hangup session with this type [%d]", session->type);
- return -2;
- }
- return 0;
- }
- else{
- TSK_DEBUG_WARN("Failed to find session with sid=%llu", sid);
- return -1;
- }
+ const session_t* session;
+ if((session = session_get_by_sid(ctx->sessions, sid))) {
+ switch(session->type) {
+ case st_invite:
+ tsip_api_invite_send_bye(session->handle,
+ /* You can add your parameters */
+ TSIP_ACTION_SET_NULL());
+ break;
+ case st_message:
+ break;
+ case st_publish:
+ tsip_api_publish_send_unpublish(session->handle,
+ /* You can add your parameters */
+ TSIP_ACTION_SET_NULL());
+ break;
+ case st_register:
+ tsip_api_register_send_unregister(session->handle,
+ /* You can add your parameters */
+ TSIP_ACTION_SET_NULL());
+ break;
+ case st_subscribe:
+ tsip_api_subscribe_send_unsubscribe(session->handle,
+ /* You can add your parameters */
+ TSIP_ACTION_SET_NULL());
+ break;
+ default:
+ TSK_DEBUG_WARN("Cannot hangup session with this type [%d]", session->type);
+ return -2;
+ }
+ return 0;
+ }
+ else {
+ TSK_DEBUG_WARN("Failed to find session with sid=%llu", sid);
+ return -1;
+ }
}
static tsk_object_t* session_ctor(tsk_object_t * self, va_list * app)
{
- session_t *session = self;
- if(session){
- session->type = va_arg(*app, session_type_t);
- if((session->handle = va_arg(*app, tsip_ssession_handle_t*))){
- int ret;
- /* "server-side-session" */
- if((ret = tsip_ssession_take_ownership(session->handle))){
- TSK_DEBUG_ERROR("Failed to take ownership [%d]", ret);
- }
- }
- else{
- /* "client-side-session" */
- session->handle = tsip_ssession_create(ctx->stack,
- TSIP_SSESSION_SET_NULL());
- }
- }
- return self;
+ session_t *session = self;
+ if(session) {
+ session->type = va_arg(*app, session_type_t);
+ if((session->handle = va_arg(*app, tsip_ssession_handle_t*))) {
+ int ret;
+ /* "server-side-session" */
+ if((ret = tsip_ssession_take_ownership(session->handle))) {
+ TSK_DEBUG_ERROR("Failed to take ownership [%d]", ret);
+ }
+ }
+ else {
+ /* "client-side-session" */
+ session->handle = tsip_ssession_create(ctx->stack,
+ TSIP_SSESSION_SET_NULL());
+ }
+ }
+ return self;
}
static tsk_object_t* session_dtor(tsk_object_t * self)
-{
- session_t *session = self;
- if(session){
- TSK_OBJECT_SAFE_FREE(session->handle);
+{
+ session_t *session = self;
+ if(session) {
+ TSK_OBJECT_SAFE_FREE(session->handle);
- TSK_FREE(session->to);
- TSK_FREE(session->from);
- }
+ TSK_FREE(session->to);
+ TSK_FREE(session->from);
+ }
- return self;
+ return self;
}
static int session_cmp(const tsk_object_t *_ss1, const tsk_object_t *_ss2)
{
- const session_t *ss1 = _ss1;
- const session_t *ss2 = _ss2;
-
- if(ss1 && ss1){
- if(ss1->handle && ss2->handle){
- return tsk_object_cmp(ss1->handle, ss2->handle);
- }
- else{
- return (ss2 - ss1);
- }
- }
- else if(!ss1 && !ss2) return 0;
- else return -1;
+ const session_t *ss1 = _ss1;
+ const session_t *ss2 = _ss2;
+
+ if(ss1 && ss1) {
+ if(ss1->handle && ss2->handle) {
+ return tsk_object_cmp(ss1->handle, ss2->handle);
+ }
+ else {
+ return (ss2 - ss1);
+ }
+ }
+ else if(!ss1 && !ss2) {
+ return 0;
+ }
+ else {
+ return -1;
+ }
}
-static const tsk_object_def_t session_def_s =
-{
- sizeof(session_t),
- session_ctor,
- session_dtor,
- session_cmp,
+static const tsk_object_def_t session_def_s = {
+ sizeof(session_t),
+ session_ctor,
+ session_dtor,
+ session_cmp,
};
const tsk_object_def_t *session_def_t = &session_def_s;
@@ -830,51 +811,50 @@ const tsk_object_def_t *session_def_t = &session_def_s;
tsip_action_handle_t* action_get_config(const opts_L_t* opts)
{
- const opt_t* opt;
- const tsk_list_item_t* item;
- tsip_action_handle_t* action_config = tsk_null;
- tsk_param_t* param;
-
- if(TSK_LIST_IS_EMPTY(opts)){
- return tsk_null;
- }
-
- tsk_list_foreach(item, opts){
- opt = item->data;
-
- /* action level? */
- if(opt->lv != lv_action){
- continue;
- }
-
- /* create new action */
- if(!action_config && !(action_config = tsip_action_create(tsip_atype_config,
- TSIP_ACTION_SET_NULL()))) break;
-
- switch(opt->type){
- case opt_header:
- {
- if((param = tsk_params_parse_param(opt->value, tsk_strlen(opt->value)))){
- tsip_action_set(action_config,
- TSIP_ACTION_SET_HEADER(param->name, param->value),
- TSIP_ACTION_SET_NULL());
- TSK_OBJECT_SAFE_FREE(param);
- }
- break;
- }
- case opt_payload:
- {
- tsip_action_set(action_config,
- TSIP_ACTION_SET_PAYLOAD(opt->value, tsk_strlen(opt->value)),
- TSIP_ACTION_SET_NULL());
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
- return action_config;
+ const opt_t* opt;
+ const tsk_list_item_t* item;
+ tsip_action_handle_t* action_config = tsk_null;
+ tsk_param_t* param;
+
+ if(TSK_LIST_IS_EMPTY(opts)) {
+ return tsk_null;
+ }
+
+ tsk_list_foreach(item, opts) {
+ opt = item->data;
+
+ /* action level? */
+ if(opt->lv != lv_action) {
+ continue;
+ }
+
+ /* create new action */
+ if(!action_config && !(action_config = tsip_action_create(tsip_atype_config,
+ TSIP_ACTION_SET_NULL()))) {
+ break;
+ }
+
+ switch(opt->type) {
+ case opt_header: {
+ if((param = tsk_params_parse_param(opt->value, tsk_strlen(opt->value)))) {
+ tsip_action_set(action_config,
+ TSIP_ACTION_SET_HEADER(param->name, param->value),
+ TSIP_ACTION_SET_NULL());
+ TSK_OBJECT_SAFE_FREE(param);
+ }
+ break;
+ }
+ case opt_payload: {
+ tsip_action_set(action_config,
+ TSIP_ACTION_SET_PAYLOAD(opt->value, tsk_strlen(opt->value)),
+ TSIP_ACTION_SET_NULL());
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+ }
+
+ return action_config;
}
diff --git a/tinyDEMO/common.h b/tinyDEMO/common.h
index 7c32547..b25dce6 100755
--- a/tinyDEMO/common.h
+++ b/tinyDEMO/common.h
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
@@ -30,76 +30,73 @@
_BEGIN_DECLS
-typedef enum session_type_e
-{
- st_none,
+typedef enum session_type_e {
+ st_none,
- st_invite,
- st_message,
- st_options,
- st_publish,
- st_register,
- st_subscribe,
+ st_invite,
+ st_message,
+ st_options,
+ st_publish,
+ st_register,
+ st_subscribe,
}
session_type_t;
-typedef struct session_s
-{
- TSK_DECLARE_OBJECT;
-
- tsip_ssession_handle_t* handle;
-
- session_type_t type;
- char* from;
- char* to;
- tsk_bool_t connected;
+typedef struct session_s {
+ TSK_DECLARE_OBJECT;
+
+ tsip_ssession_handle_t* handle;
+
+ session_type_t type;
+ char* from;
+ char* to;
+ tsk_bool_t connected;
}
session_t;
typedef tsk_list_t sessions_L_t;
#define SESSION(self) ((session_t*)(self))
-typedef struct ctx_s
-{
- TSK_DECLARE_OBJECT;
-
- tsip_stack_handle_t *stack;
-
- /* Identity */
- struct{
- char* display_name;
- char *impu;
- char *preferred;
- char *impi;
- char *password;
- } identity;
-
- /* Network */
- struct{
- char *local_ip;
- tnet_port_t local_port;
-
- char *proxy_cscf;
- tnet_port_t proxy_cscf_port;
- char* proxy_cscf_trans;
-
- char *realm;
-
- tsk_bool_t ipv6;
- tsk_bool_t naptr;
- tsk_bool_t dhcp;
- } network;
-
- /* Security */
- struct{
- tsk_bool_t earlyIMS;
- char* operator_id;
- uint16_t amf;
- } security;
-
- sessions_L_t* sessions;
- tsk_params_L_t* params;
-
- TSK_DECLARE_SAFEOBJ; /* For thread-safeness */
+typedef struct ctx_s {
+ TSK_DECLARE_OBJECT;
+
+ tsip_stack_handle_t *stack;
+
+ /* Identity */
+ struct {
+ char* display_name;
+ char *impu;
+ char *preferred;
+ char *impi;
+ char *password;
+ } identity;
+
+ /* Network */
+ struct {
+ char *local_ip;
+ tnet_port_t local_port;
+
+ char *proxy_cscf;
+ tnet_port_t proxy_cscf_port;
+ char* proxy_cscf_trans;
+
+ char *realm;
+
+ tsk_bool_t ipv6;
+ tsk_bool_t naptr;
+ tsk_bool_t dhcp;
+ } network;
+
+ /* Security */
+ struct {
+ tsk_bool_t earlyIMS;
+ char* operator_id;
+ uint16_t amf;
+ } security;
+
+ sessions_L_t* sessions;
+ tsk_params_L_t* params;
+
+ TSK_DECLARE_SAFEOBJ; /* For thread-safeness */
}
ctx_t;
diff --git a/tinyDEMO/demo_config.h b/tinyDEMO/demo_config.h
index 6d8c84b..97fd2d2 100755
--- a/tinyDEMO/demo_config.h
+++ b/tinyDEMO/demo_config.h
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
@@ -31,7 +31,7 @@
# define _BEGIN_DECLS extern "C" {
# define _END_DECLS }
#else
-# define _BEGIN_DECLS
+# define _BEGIN_DECLS
# define _END_DECLS
#endif
diff --git a/tinyDEMO/dssl.c b/tinyDEMO/dssl.c
index 599394b..c1b67ac 100755
--- a/tinyDEMO/dssl.c
+++ b/tinyDEMO/dssl.c
@@ -4,19 +4,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
@@ -36,43 +36,42 @@
char* replace_param(char* pivot, int index_1, int index_2, tsk_params_L_t* params)
{
- char* pname = tsk_null;
- char* ret = tsk_null;
- const tsk_param_t* p;
- //tsk_size_t len = tsk_strlen(pivot);
- //tsk_bool_t parenthesis = tsk_false;
- int i1, i2;
-
- /* whether there are parenthesis around the param */
- if((i1 = tsk_strindexOf((pivot + index_1), tsk_strlen((pivot + index_1)), "(")) == 2
- && (i2 = tsk_strindexOf((pivot + index_1 + i1), tsk_strlen((pivot + index_1 + i1)), ")")) != -1)
- {
- pname = tsk_strndup((pivot + index_1 + i1 + 1), (i2 - i1 + 1));
- index_2 = index_1 + i1 + i2 + 1;
- }
- else{
- pname = tsk_strndup((pivot + index_1 + 2/*$$*/), (index_2 - index_1 - 2));
- }
+ char* pname = tsk_null;
+ char* ret = tsk_null;
+ const tsk_param_t* p;
+ //tsk_size_t len = tsk_strlen(pivot);
+ //tsk_bool_t parenthesis = tsk_false;
+ int i1, i2;
+
+ /* whether there are parenthesis around the param */
+ if((i1 = tsk_strindexOf((pivot + index_1), tsk_strlen((pivot + index_1)), "(")) == 2
+ && (i2 = tsk_strindexOf((pivot + index_1 + i1), tsk_strlen((pivot + index_1 + i1)), ")")) != -1) {
+ pname = tsk_strndup((pivot + index_1 + i1 + 1), (i2 - i1 + 1));
+ index_2 = index_1 + i1 + i2 + 1;
+ }
+ else {
+ pname = tsk_strndup((pivot + index_1 + 2/*$$*/), (index_2 - index_1 - 2));
+ }
- if((p = tsk_params_get_param_by_name(params, pname))){
- tsk_strncat(&ret, pivot, index_1);
- tsk_strncat(&ret, p->value, tsk_strlen(p->value));
- tsk_strncat(&ret, (pivot + index_2), (tsk_strlen(pivot) - index_2));
- }
- else{
- TSK_DEBUG_WARN("Failed to find param [%s]", pname);
- }
+ if((p = tsk_params_get_param_by_name(params, pname))) {
+ tsk_strncat(&ret, pivot, index_1);
+ tsk_strncat(&ret, p->value, tsk_strlen(p->value));
+ tsk_strncat(&ret, (pivot + index_2), (tsk_strlen(pivot) - index_2));
+ }
+ else {
+ TSK_DEBUG_WARN("Failed to find param [%s]", pname);
+ }
- TSK_FREE(pname);
- return ret;
+ TSK_FREE(pname);
+ return ret;
}
tsk_bool_t next_not_(const char* p, const char* pe, char c)
{
- if((p && pe) && (pe-p) >=2){
- return (*p == c && *(p + 1) == c) ? tsk_false : tsk_true;
- }
- return tsk_true;
+ if((p && pe) && (pe-p) >=2) {
+ return (*p == c && *(p + 1) == c) ? tsk_false : tsk_true;
+ }
+ return tsk_true;
}
#define next_not_hyphens(p, pe) next_not_(p, pe, '-')
#define next_not_arobases(p, pe) next_not_(p, pe, '@')
@@ -88,4984 +87,5161 @@ tsk_bool_t next_not_(const char* p, const char* pe, char c)
cmd_t* dssl_parse(const char *buffer, tsk_size_t size, tsk_bool_t *comment, tsk_params_L_t* params)
{
- int cs = 0;
- const char *p = buffer;
- const char *pe;
- const char *eof;
- opt_t* opt = tsk_null;
- tsk_param_t* param = tsk_null;
- cmd_t *cmd = cmd_create_null();
- char* temp = tsk_null;
- int index;
+ int cs = 0;
+ const char *p = buffer;
+ const char *pe;
+ const char *eof;
+ opt_t* opt = tsk_null;
+ tsk_param_t* param = tsk_null;
+ cmd_t *cmd = cmd_create_null();
+ char* temp = tsk_null;
+ int index;
+
+ const char *ts = tsk_null, *te = tsk_null;
+ int act = 0;
+
+ const char *tag_start = tsk_null;
+
+ /* global vars and initilization (Ragel) */
+
+ /* #line 109 "./dssl.c" */
+ static const char _demo_machine_parser_cmd_actions[] = {
+ 0, 1, 0, 1, 3, 1, 8, 1,
+ 12, 1, 13, 1, 14, 1, 15, 1,
+ 16, 1, 17, 1, 18, 1, 19, 1,
+ 20, 1, 21, 1, 22, 1, 23, 1,
+ 24, 1, 25, 1, 26, 1, 27, 1,
+ 28, 1, 29, 1, 30, 1, 31, 1,
+ 32, 1, 33, 1, 34, 1, 35, 1,
+ 36, 1, 37, 1, 38, 1, 39, 1,
+ 40, 1, 41, 1, 42, 1, 43, 1,
+ 44, 1, 45, 1, 46, 1, 47, 1,
+ 48, 1, 49, 1, 50, 1, 51, 1,
+ 52, 1, 53, 1, 54, 1, 55, 1,
+ 56, 1, 57, 1, 58, 1, 59, 1,
+ 60, 1, 61, 1, 62, 1, 63, 1,
+ 64, 1, 65, 1, 66, 1, 67, 1,
+ 68, 1, 69, 1, 70, 1, 71, 1,
+ 72, 1, 73, 1, 74, 1, 75, 1,
+ 76, 1, 78, 1, 84, 1, 85, 2,
+ 0, 3, 2, 0, 12, 2, 1, 0,
+ 2, 2, 80, 2, 3, 0, 2, 4,
+ 77, 2, 4, 82, 2, 5, 0, 2,
+ 9, 83, 2, 11, 79, 2, 13, 79,
+ 2, 14, 79, 2, 15, 79, 2, 16,
+ 79, 2, 17, 79, 2, 18, 79, 2,
+ 19, 79, 2, 20, 79, 2, 21, 79,
+ 2, 22, 79, 2, 23, 79, 2, 24,
+ 79, 2, 25, 79, 2, 26, 79, 2,
+ 27, 79, 2, 28, 79, 2, 29, 79,
+ 2, 30, 79, 2, 31, 79, 2, 32,
+ 79, 2, 33, 79, 2, 34, 79, 2,
+ 35, 79, 2, 36, 79, 2, 37, 79,
+ 2, 71, 12, 2, 72, 12, 2, 73,
+ 12, 2, 76, 0, 2, 76, 3, 2,
+ 76, 10, 2, 76, 12, 2, 76, 13,
+ 2, 76, 14, 2, 76, 15, 2, 76,
+ 16, 2, 76, 17, 2, 76, 18, 2,
+ 76, 19, 2, 76, 20, 2, 76, 21,
+ 2, 76, 22, 2, 76, 23, 2, 76,
+ 24, 2, 76, 25, 2, 76, 26, 2,
+ 76, 27, 2, 76, 28, 2, 76, 29,
+ 2, 76, 30, 2, 76, 31, 2, 76,
+ 32, 2, 76, 33, 2, 76, 34, 2,
+ 76, 35, 2, 76, 36, 2, 76, 37,
+ 2, 76, 38, 2, 76, 39, 2, 76,
+ 40, 2, 76, 41, 2, 76, 42, 2,
+ 76, 43, 2, 76, 44, 2, 76, 45,
+ 2, 76, 46, 2, 76, 47, 2, 76,
+ 48, 2, 76, 49, 2, 76, 50, 2,
+ 76, 51, 2, 76, 52, 2, 76, 53,
+ 2, 76, 54, 2, 76, 55, 2, 76,
+ 56, 2, 76, 57, 2, 76, 58, 2,
+ 76, 59, 2, 76, 60, 2, 76, 61,
+ 2, 76, 62, 2, 76, 63, 2, 76,
+ 64, 2, 76, 65, 2, 76, 66, 2,
+ 76, 67, 2, 76, 68, 2, 76, 69,
+ 2, 76, 70, 2, 76, 71, 2, 76,
+ 72, 2, 76, 73, 3, 0, 4, 77,
+ 3, 0, 4, 82, 3, 0, 9, 83,
+ 3, 0, 11, 79, 3, 3, 2, 80,
+ 3, 5, 0, 8, 3, 7, 6, 81,
+ 3, 10, 0, 3, 3, 12, 2, 80,
+ 3, 13, 11, 79, 3, 14, 11, 79,
+ 3, 15, 11, 79, 3, 16, 11, 79,
+ 3, 17, 11, 79, 3, 18, 11, 79,
+ 3, 19, 11, 79, 3, 20, 11, 79,
+ 3, 21, 11, 79, 3, 22, 11, 79,
+ 3, 23, 11, 79, 3, 24, 11, 79,
+ 3, 25, 11, 79, 3, 26, 11, 79,
+ 3, 27, 11, 79, 3, 28, 11, 79,
+ 3, 29, 11, 79, 3, 30, 11, 79,
+ 3, 31, 11, 79, 3, 32, 11, 79,
+ 3, 33, 11, 79, 3, 34, 11, 79,
+ 3, 35, 11, 79, 3, 36, 11, 79,
+ 3, 37, 11, 79, 3, 38, 0, 3,
+ 3, 39, 0, 3, 3, 40, 0, 3,
+ 3, 41, 0, 3, 3, 42, 0, 3,
+ 3, 43, 0, 3, 3, 44, 0, 3,
+ 3, 45, 0, 3, 3, 46, 0, 3,
+ 3, 47, 0, 3, 3, 48, 0, 3,
+ 3, 49, 0, 3, 3, 50, 0, 3,
+ 3, 51, 0, 3, 3, 52, 0, 3,
+ 3, 53, 0, 3, 3, 54, 0, 3,
+ 3, 55, 0, 3, 3, 56, 0, 3,
+ 3, 57, 0, 3, 3, 58, 0, 3,
+ 3, 59, 0, 3, 3, 60, 0, 3,
+ 3, 61, 0, 3, 3, 62, 0, 3,
+ 3, 63, 0, 3, 3, 64, 0, 3,
+ 3, 65, 0, 3, 3, 66, 0, 3,
+ 3, 67, 0, 3, 3, 68, 0, 3,
+ 3, 69, 0, 3, 3, 70, 0, 3,
+ 3, 71, 2, 80, 3, 72, 2, 80,
+ 3, 73, 2, 80, 3, 76, 0, 12,
+ 3, 76, 1, 0, 3, 76, 10, 0,
+ 3, 76, 38, 0, 3, 76, 38, 10,
+ 3, 76, 39, 0, 3, 76, 39, 10,
+ 3, 76, 40, 0, 3, 76, 40, 10,
+ 3, 76, 41, 0, 3, 76, 41, 10,
+ 3, 76, 42, 0, 3, 76, 42, 10,
+ 3, 76, 43, 0, 3, 76, 43, 10,
+ 3, 76, 44, 0, 3, 76, 44, 10,
+ 3, 76, 45, 0, 3, 76, 45, 10,
+ 3, 76, 46, 0, 3, 76, 46, 10,
+ 3, 76, 47, 0, 3, 76, 47, 10,
+ 3, 76, 48, 0, 3, 76, 48, 10,
+ 3, 76, 49, 0, 3, 76, 49, 10,
+ 3, 76, 50, 0, 3, 76, 50, 10,
+ 3, 76, 51, 0, 3, 76, 51, 10,
+ 3, 76, 52, 0, 3, 76, 52, 10,
+ 3, 76, 53, 0, 3, 76, 53, 10,
+ 3, 76, 54, 0, 3, 76, 54, 10,
+ 3, 76, 55, 0, 3, 76, 55, 10,
+ 3, 76, 56, 0, 3, 76, 56, 10,
+ 3, 76, 57, 0, 3, 76, 57, 10,
+ 3, 76, 58, 0, 3, 76, 58, 10,
+ 3, 76, 59, 0, 3, 76, 59, 10,
+ 3, 76, 60, 0, 3, 76, 60, 10,
+ 3, 76, 61, 0, 3, 76, 61, 10,
+ 3, 76, 62, 0, 3, 76, 62, 10,
+ 3, 76, 63, 0, 3, 76, 63, 10,
+ 3, 76, 64, 0, 3, 76, 64, 10,
+ 3, 76, 65, 0, 3, 76, 65, 10,
+ 3, 76, 66, 0, 3, 76, 66, 10,
+ 3, 76, 67, 0, 3, 76, 67, 10,
+ 3, 76, 68, 0, 3, 76, 68, 10,
+ 3, 76, 69, 0, 3, 76, 69, 10,
+ 3, 76, 70, 0, 3, 76, 70, 10,
+ 3, 76, 71, 12, 3, 76, 72, 12,
+ 3, 76, 73, 12, 4, 0, 3, 2,
+ 80, 4, 0, 7, 6, 81, 4, 0,
+ 12, 2, 80, 4, 1, 0, 10, 3,
+ 4, 3, 12, 2, 80, 4, 3, 71,
+ 2, 80, 4, 3, 72, 2, 80, 4,
+ 3, 73, 2, 80, 4, 38, 10, 0,
+ 3, 4, 39, 10, 0, 3, 4, 40,
+ 10, 0, 3, 4, 41, 10, 0, 3,
+ 4, 42, 10, 0, 3, 4, 43, 10,
+ 0, 3, 4, 44, 10, 0, 3, 4,
+ 45, 10, 0, 3, 4, 46, 10, 0,
+ 3, 4, 47, 10, 0, 3, 4, 48,
+ 10, 0, 3, 4, 49, 10, 0, 3,
+ 4, 50, 10, 0, 3, 4, 51, 10,
+ 0, 3, 4, 52, 10, 0, 3, 4,
+ 53, 10, 0, 3, 4, 54, 10, 0,
+ 3, 4, 55, 10, 0, 3, 4, 56,
+ 10, 0, 3, 4, 57, 10, 0, 3,
+ 4, 58, 10, 0, 3, 4, 59, 10,
+ 0, 3, 4, 60, 10, 0, 3, 4,
+ 61, 10, 0, 3, 4, 62, 10, 0,
+ 3, 4, 63, 10, 0, 3, 4, 64,
+ 10, 0, 3, 4, 65, 10, 0, 3,
+ 4, 66, 10, 0, 3, 4, 67, 10,
+ 0, 3, 4, 68, 10, 0, 3, 4,
+ 69, 10, 0, 3, 4, 70, 10, 0,
+ 3, 4, 71, 12, 2, 80, 4, 72,
+ 12, 2, 80, 4, 73, 12, 2, 80,
+ 4, 76, 1, 0, 10, 4, 76, 38,
+ 10, 0, 4, 76, 39, 10, 0, 4,
+ 76, 40, 10, 0, 4, 76, 41, 10,
+ 0, 4, 76, 42, 10, 0, 4, 76,
+ 43, 10, 0, 4, 76, 44, 10, 0,
+ 4, 76, 45, 10, 0, 4, 76, 46,
+ 10, 0, 4, 76, 47, 10, 0, 4,
+ 76, 48, 10, 0, 4, 76, 49, 10,
+ 0, 4, 76, 50, 10, 0, 4, 76,
+ 51, 10, 0, 4, 76, 52, 10, 0,
+ 4, 76, 53, 10, 0, 4, 76, 54,
+ 10, 0, 4, 76, 55, 10, 0, 4,
+ 76, 56, 10, 0, 4, 76, 57, 10,
+ 0, 4, 76, 58, 10, 0, 4, 76,
+ 59, 10, 0, 4, 76, 60, 10, 0,
+ 4, 76, 61, 10, 0, 4, 76, 62,
+ 10, 0, 4, 76, 63, 10, 0, 4,
+ 76, 64, 10, 0, 4, 76, 65, 10,
+ 0, 4, 76, 66, 10, 0, 4, 76,
+ 67, 10, 0, 4, 76, 68, 10, 0,
+ 4, 76, 69, 10, 0, 4, 76, 70,
+ 10, 0, 5, 3, 0, 12, 2, 80,
+ 5, 3, 71, 12, 2, 80, 5, 3,
+ 72, 12, 2, 80, 5, 3, 73, 12,
+ 2, 80, 5, 10, 0, 3, 2, 80,
+ 5, 38, 0, 3, 2, 80, 5, 39,
+ 0, 3, 2, 80, 5, 40, 0, 3,
+ 2, 80, 5, 41, 0, 3, 2, 80,
+ 5, 42, 0, 3, 2, 80, 5, 43,
+ 0, 3, 2, 80, 5, 44, 0, 3,
+ 2, 80, 5, 45, 0, 3, 2, 80,
+ 5, 46, 0, 3, 2, 80, 5, 47,
+ 0, 3, 2, 80, 5, 48, 0, 3,
+ 2, 80, 5, 49, 0, 3, 2, 80,
+ 5, 50, 0, 3, 2, 80, 5, 51,
+ 0, 3, 2, 80, 5, 52, 0, 3,
+ 2, 80, 5, 53, 0, 3, 2, 80,
+ 5, 54, 0, 3, 2, 80, 5, 55,
+ 0, 3, 2, 80, 5, 56, 0, 3,
+ 2, 80, 5, 57, 0, 3, 2, 80,
+ 5, 58, 0, 3, 2, 80, 5, 59,
+ 0, 3, 2, 80, 5, 60, 0, 3,
+ 2, 80, 5, 61, 0, 3, 2, 80,
+ 5, 62, 0, 3, 2, 80, 5, 63,
+ 0, 3, 2, 80, 5, 64, 0, 3,
+ 2, 80, 5, 65, 0, 3, 2, 80,
+ 5, 66, 0, 3, 2, 80, 5, 67,
+ 0, 3, 2, 80, 5, 68, 0, 3,
+ 2, 80, 5, 69, 0, 3, 2, 80,
+ 5, 70, 0, 3, 2, 80, 6, 1,
+ 0, 10, 3, 2, 80, 6, 38, 10,
+ 0, 3, 2, 80, 6, 39, 10, 0,
+ 3, 2, 80, 6, 40, 10, 0, 3,
+ 2, 80, 6, 41, 10, 0, 3, 2,
+ 80, 6, 42, 10, 0, 3, 2, 80,
+ 6, 43, 10, 0, 3, 2, 80, 6,
+ 44, 10, 0, 3, 2, 80, 6, 45,
+ 10, 0, 3, 2, 80, 6, 46, 10,
+ 0, 3, 2, 80, 6, 47, 10, 0,
+ 3, 2, 80, 6, 48, 10, 0, 3,
+ 2, 80, 6, 49, 10, 0, 3, 2,
+ 80, 6, 50, 10, 0, 3, 2, 80,
+ 6, 51, 10, 0, 3, 2, 80, 6,
+ 52, 10, 0, 3, 2, 80, 6, 53,
+ 10, 0, 3, 2, 80, 6, 54, 10,
+ 0, 3, 2, 80, 6, 55, 10, 0,
+ 3, 2, 80, 6, 56, 10, 0, 3,
+ 2, 80, 6, 57, 10, 0, 3, 2,
+ 80, 6, 58, 10, 0, 3, 2, 80,
+ 6, 59, 10, 0, 3, 2, 80, 6,
+ 60, 10, 0, 3, 2, 80, 6, 61,
+ 10, 0, 3, 2, 80, 6, 62, 10,
+ 0, 3, 2, 80, 6, 63, 10, 0,
+ 3, 2, 80, 6, 64, 10, 0, 3,
+ 2, 80, 6, 65, 10, 0, 3, 2,
+ 80, 6, 66, 10, 0, 3, 2, 80,
+ 6, 67, 10, 0, 3, 2, 80, 6,
+ 68, 10, 0, 3, 2, 80, 6, 69,
+ 10, 0, 3, 2, 80, 6, 70, 10,
+ 0, 3, 2, 80
+ };
- const char *ts = tsk_null, *te = tsk_null;
- int act = 0;
-
- const char *tag_start = tsk_null;
-
- /* global vars and initilization (Ragel) */
-
-/* #line 109 "./dssl.c" */
-static const char _demo_machine_parser_cmd_actions[] = {
- 0, 1, 0, 1, 3, 1, 8, 1,
- 12, 1, 13, 1, 14, 1, 15, 1,
- 16, 1, 17, 1, 18, 1, 19, 1,
- 20, 1, 21, 1, 22, 1, 23, 1,
- 24, 1, 25, 1, 26, 1, 27, 1,
- 28, 1, 29, 1, 30, 1, 31, 1,
- 32, 1, 33, 1, 34, 1, 35, 1,
- 36, 1, 37, 1, 38, 1, 39, 1,
- 40, 1, 41, 1, 42, 1, 43, 1,
- 44, 1, 45, 1, 46, 1, 47, 1,
- 48, 1, 49, 1, 50, 1, 51, 1,
- 52, 1, 53, 1, 54, 1, 55, 1,
- 56, 1, 57, 1, 58, 1, 59, 1,
- 60, 1, 61, 1, 62, 1, 63, 1,
- 64, 1, 65, 1, 66, 1, 67, 1,
- 68, 1, 69, 1, 70, 1, 71, 1,
- 72, 1, 73, 1, 74, 1, 75, 1,
- 76, 1, 78, 1, 84, 1, 85, 2,
- 0, 3, 2, 0, 12, 2, 1, 0,
- 2, 2, 80, 2, 3, 0, 2, 4,
- 77, 2, 4, 82, 2, 5, 0, 2,
- 9, 83, 2, 11, 79, 2, 13, 79,
- 2, 14, 79, 2, 15, 79, 2, 16,
- 79, 2, 17, 79, 2, 18, 79, 2,
- 19, 79, 2, 20, 79, 2, 21, 79,
- 2, 22, 79, 2, 23, 79, 2, 24,
- 79, 2, 25, 79, 2, 26, 79, 2,
- 27, 79, 2, 28, 79, 2, 29, 79,
- 2, 30, 79, 2, 31, 79, 2, 32,
- 79, 2, 33, 79, 2, 34, 79, 2,
- 35, 79, 2, 36, 79, 2, 37, 79,
- 2, 71, 12, 2, 72, 12, 2, 73,
- 12, 2, 76, 0, 2, 76, 3, 2,
- 76, 10, 2, 76, 12, 2, 76, 13,
- 2, 76, 14, 2, 76, 15, 2, 76,
- 16, 2, 76, 17, 2, 76, 18, 2,
- 76, 19, 2, 76, 20, 2, 76, 21,
- 2, 76, 22, 2, 76, 23, 2, 76,
- 24, 2, 76, 25, 2, 76, 26, 2,
- 76, 27, 2, 76, 28, 2, 76, 29,
- 2, 76, 30, 2, 76, 31, 2, 76,
- 32, 2, 76, 33, 2, 76, 34, 2,
- 76, 35, 2, 76, 36, 2, 76, 37,
- 2, 76, 38, 2, 76, 39, 2, 76,
- 40, 2, 76, 41, 2, 76, 42, 2,
- 76, 43, 2, 76, 44, 2, 76, 45,
- 2, 76, 46, 2, 76, 47, 2, 76,
- 48, 2, 76, 49, 2, 76, 50, 2,
- 76, 51, 2, 76, 52, 2, 76, 53,
- 2, 76, 54, 2, 76, 55, 2, 76,
- 56, 2, 76, 57, 2, 76, 58, 2,
- 76, 59, 2, 76, 60, 2, 76, 61,
- 2, 76, 62, 2, 76, 63, 2, 76,
- 64, 2, 76, 65, 2, 76, 66, 2,
- 76, 67, 2, 76, 68, 2, 76, 69,
- 2, 76, 70, 2, 76, 71, 2, 76,
- 72, 2, 76, 73, 3, 0, 4, 77,
- 3, 0, 4, 82, 3, 0, 9, 83,
- 3, 0, 11, 79, 3, 3, 2, 80,
- 3, 5, 0, 8, 3, 7, 6, 81,
- 3, 10, 0, 3, 3, 12, 2, 80,
- 3, 13, 11, 79, 3, 14, 11, 79,
- 3, 15, 11, 79, 3, 16, 11, 79,
- 3, 17, 11, 79, 3, 18, 11, 79,
- 3, 19, 11, 79, 3, 20, 11, 79,
- 3, 21, 11, 79, 3, 22, 11, 79,
- 3, 23, 11, 79, 3, 24, 11, 79,
- 3, 25, 11, 79, 3, 26, 11, 79,
- 3, 27, 11, 79, 3, 28, 11, 79,
- 3, 29, 11, 79, 3, 30, 11, 79,
- 3, 31, 11, 79, 3, 32, 11, 79,
- 3, 33, 11, 79, 3, 34, 11, 79,
- 3, 35, 11, 79, 3, 36, 11, 79,
- 3, 37, 11, 79, 3, 38, 0, 3,
- 3, 39, 0, 3, 3, 40, 0, 3,
- 3, 41, 0, 3, 3, 42, 0, 3,
- 3, 43, 0, 3, 3, 44, 0, 3,
- 3, 45, 0, 3, 3, 46, 0, 3,
- 3, 47, 0, 3, 3, 48, 0, 3,
- 3, 49, 0, 3, 3, 50, 0, 3,
- 3, 51, 0, 3, 3, 52, 0, 3,
- 3, 53, 0, 3, 3, 54, 0, 3,
- 3, 55, 0, 3, 3, 56, 0, 3,
- 3, 57, 0, 3, 3, 58, 0, 3,
- 3, 59, 0, 3, 3, 60, 0, 3,
- 3, 61, 0, 3, 3, 62, 0, 3,
- 3, 63, 0, 3, 3, 64, 0, 3,
- 3, 65, 0, 3, 3, 66, 0, 3,
- 3, 67, 0, 3, 3, 68, 0, 3,
- 3, 69, 0, 3, 3, 70, 0, 3,
- 3, 71, 2, 80, 3, 72, 2, 80,
- 3, 73, 2, 80, 3, 76, 0, 12,
- 3, 76, 1, 0, 3, 76, 10, 0,
- 3, 76, 38, 0, 3, 76, 38, 10,
- 3, 76, 39, 0, 3, 76, 39, 10,
- 3, 76, 40, 0, 3, 76, 40, 10,
- 3, 76, 41, 0, 3, 76, 41, 10,
- 3, 76, 42, 0, 3, 76, 42, 10,
- 3, 76, 43, 0, 3, 76, 43, 10,
- 3, 76, 44, 0, 3, 76, 44, 10,
- 3, 76, 45, 0, 3, 76, 45, 10,
- 3, 76, 46, 0, 3, 76, 46, 10,
- 3, 76, 47, 0, 3, 76, 47, 10,
- 3, 76, 48, 0, 3, 76, 48, 10,
- 3, 76, 49, 0, 3, 76, 49, 10,
- 3, 76, 50, 0, 3, 76, 50, 10,
- 3, 76, 51, 0, 3, 76, 51, 10,
- 3, 76, 52, 0, 3, 76, 52, 10,
- 3, 76, 53, 0, 3, 76, 53, 10,
- 3, 76, 54, 0, 3, 76, 54, 10,
- 3, 76, 55, 0, 3, 76, 55, 10,
- 3, 76, 56, 0, 3, 76, 56, 10,
- 3, 76, 57, 0, 3, 76, 57, 10,
- 3, 76, 58, 0, 3, 76, 58, 10,
- 3, 76, 59, 0, 3, 76, 59, 10,
- 3, 76, 60, 0, 3, 76, 60, 10,
- 3, 76, 61, 0, 3, 76, 61, 10,
- 3, 76, 62, 0, 3, 76, 62, 10,
- 3, 76, 63, 0, 3, 76, 63, 10,
- 3, 76, 64, 0, 3, 76, 64, 10,
- 3, 76, 65, 0, 3, 76, 65, 10,
- 3, 76, 66, 0, 3, 76, 66, 10,
- 3, 76, 67, 0, 3, 76, 67, 10,
- 3, 76, 68, 0, 3, 76, 68, 10,
- 3, 76, 69, 0, 3, 76, 69, 10,
- 3, 76, 70, 0, 3, 76, 70, 10,
- 3, 76, 71, 12, 3, 76, 72, 12,
- 3, 76, 73, 12, 4, 0, 3, 2,
- 80, 4, 0, 7, 6, 81, 4, 0,
- 12, 2, 80, 4, 1, 0, 10, 3,
- 4, 3, 12, 2, 80, 4, 3, 71,
- 2, 80, 4, 3, 72, 2, 80, 4,
- 3, 73, 2, 80, 4, 38, 10, 0,
- 3, 4, 39, 10, 0, 3, 4, 40,
- 10, 0, 3, 4, 41, 10, 0, 3,
- 4, 42, 10, 0, 3, 4, 43, 10,
- 0, 3, 4, 44, 10, 0, 3, 4,
- 45, 10, 0, 3, 4, 46, 10, 0,
- 3, 4, 47, 10, 0, 3, 4, 48,
- 10, 0, 3, 4, 49, 10, 0, 3,
- 4, 50, 10, 0, 3, 4, 51, 10,
- 0, 3, 4, 52, 10, 0, 3, 4,
- 53, 10, 0, 3, 4, 54, 10, 0,
- 3, 4, 55, 10, 0, 3, 4, 56,
- 10, 0, 3, 4, 57, 10, 0, 3,
- 4, 58, 10, 0, 3, 4, 59, 10,
- 0, 3, 4, 60, 10, 0, 3, 4,
- 61, 10, 0, 3, 4, 62, 10, 0,
- 3, 4, 63, 10, 0, 3, 4, 64,
- 10, 0, 3, 4, 65, 10, 0, 3,
- 4, 66, 10, 0, 3, 4, 67, 10,
- 0, 3, 4, 68, 10, 0, 3, 4,
- 69, 10, 0, 3, 4, 70, 10, 0,
- 3, 4, 71, 12, 2, 80, 4, 72,
- 12, 2, 80, 4, 73, 12, 2, 80,
- 4, 76, 1, 0, 10, 4, 76, 38,
- 10, 0, 4, 76, 39, 10, 0, 4,
- 76, 40, 10, 0, 4, 76, 41, 10,
- 0, 4, 76, 42, 10, 0, 4, 76,
- 43, 10, 0, 4, 76, 44, 10, 0,
- 4, 76, 45, 10, 0, 4, 76, 46,
- 10, 0, 4, 76, 47, 10, 0, 4,
- 76, 48, 10, 0, 4, 76, 49, 10,
- 0, 4, 76, 50, 10, 0, 4, 76,
- 51, 10, 0, 4, 76, 52, 10, 0,
- 4, 76, 53, 10, 0, 4, 76, 54,
- 10, 0, 4, 76, 55, 10, 0, 4,
- 76, 56, 10, 0, 4, 76, 57, 10,
- 0, 4, 76, 58, 10, 0, 4, 76,
- 59, 10, 0, 4, 76, 60, 10, 0,
- 4, 76, 61, 10, 0, 4, 76, 62,
- 10, 0, 4, 76, 63, 10, 0, 4,
- 76, 64, 10, 0, 4, 76, 65, 10,
- 0, 4, 76, 66, 10, 0, 4, 76,
- 67, 10, 0, 4, 76, 68, 10, 0,
- 4, 76, 69, 10, 0, 4, 76, 70,
- 10, 0, 5, 3, 0, 12, 2, 80,
- 5, 3, 71, 12, 2, 80, 5, 3,
- 72, 12, 2, 80, 5, 3, 73, 12,
- 2, 80, 5, 10, 0, 3, 2, 80,
- 5, 38, 0, 3, 2, 80, 5, 39,
- 0, 3, 2, 80, 5, 40, 0, 3,
- 2, 80, 5, 41, 0, 3, 2, 80,
- 5, 42, 0, 3, 2, 80, 5, 43,
- 0, 3, 2, 80, 5, 44, 0, 3,
- 2, 80, 5, 45, 0, 3, 2, 80,
- 5, 46, 0, 3, 2, 80, 5, 47,
- 0, 3, 2, 80, 5, 48, 0, 3,
- 2, 80, 5, 49, 0, 3, 2, 80,
- 5, 50, 0, 3, 2, 80, 5, 51,
- 0, 3, 2, 80, 5, 52, 0, 3,
- 2, 80, 5, 53, 0, 3, 2, 80,
- 5, 54, 0, 3, 2, 80, 5, 55,
- 0, 3, 2, 80, 5, 56, 0, 3,
- 2, 80, 5, 57, 0, 3, 2, 80,
- 5, 58, 0, 3, 2, 80, 5, 59,
- 0, 3, 2, 80, 5, 60, 0, 3,
- 2, 80, 5, 61, 0, 3, 2, 80,
- 5, 62, 0, 3, 2, 80, 5, 63,
- 0, 3, 2, 80, 5, 64, 0, 3,
- 2, 80, 5, 65, 0, 3, 2, 80,
- 5, 66, 0, 3, 2, 80, 5, 67,
- 0, 3, 2, 80, 5, 68, 0, 3,
- 2, 80, 5, 69, 0, 3, 2, 80,
- 5, 70, 0, 3, 2, 80, 6, 1,
- 0, 10, 3, 2, 80, 6, 38, 10,
- 0, 3, 2, 80, 6, 39, 10, 0,
- 3, 2, 80, 6, 40, 10, 0, 3,
- 2, 80, 6, 41, 10, 0, 3, 2,
- 80, 6, 42, 10, 0, 3, 2, 80,
- 6, 43, 10, 0, 3, 2, 80, 6,
- 44, 10, 0, 3, 2, 80, 6, 45,
- 10, 0, 3, 2, 80, 6, 46, 10,
- 0, 3, 2, 80, 6, 47, 10, 0,
- 3, 2, 80, 6, 48, 10, 0, 3,
- 2, 80, 6, 49, 10, 0, 3, 2,
- 80, 6, 50, 10, 0, 3, 2, 80,
- 6, 51, 10, 0, 3, 2, 80, 6,
- 52, 10, 0, 3, 2, 80, 6, 53,
- 10, 0, 3, 2, 80, 6, 54, 10,
- 0, 3, 2, 80, 6, 55, 10, 0,
- 3, 2, 80, 6, 56, 10, 0, 3,
- 2, 80, 6, 57, 10, 0, 3, 2,
- 80, 6, 58, 10, 0, 3, 2, 80,
- 6, 59, 10, 0, 3, 2, 80, 6,
- 60, 10, 0, 3, 2, 80, 6, 61,
- 10, 0, 3, 2, 80, 6, 62, 10,
- 0, 3, 2, 80, 6, 63, 10, 0,
- 3, 2, 80, 6, 64, 10, 0, 3,
- 2, 80, 6, 65, 10, 0, 3, 2,
- 80, 6, 66, 10, 0, 3, 2, 80,
- 6, 67, 10, 0, 3, 2, 80, 6,
- 68, 10, 0, 3, 2, 80, 6, 69,
- 10, 0, 3, 2, 80, 6, 70, 10,
- 0, 3, 2, 80
-};
+ static const short _demo_machine_parser_cmd_cond_offsets[] = {
+ 0, 0, 0, 1, 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, 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, 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, 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,
+ 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, 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, 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, 3, 4, 5, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 7, 8, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 10, 11,
+ 12, 13, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 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, 117, 118, 119, 120, 121, 122,
+ 123, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, 134, 135, 136, 137, 138,
+ 139, 140, 141, 142, 143, 144, 145, 146,
+ 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162,
+ 163, 164, 165, 166, 167, 168, 169, 170,
+ 171, 172, 173, 174, 175, 176, 177, 178,
+ 179, 180, 181, 182, 183, 184, 185, 186,
+ 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202,
+ 203, 204, 205, 206, 207, 208, 209, 210,
+ 211, 212, 213, 214, 215, 216, 217, 218,
+ 219, 220, 221, 222, 223, 224, 225, 226,
+ 227, 228, 229, 230, 231, 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, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282,
+ 283, 284, 285, 286, 287, 288, 289, 290,
+ 291, 292, 293, 294, 295, 296, 297, 298,
+ 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322,
+ 323, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, 349, 350, 351, 352, 353, 354,
+ 355
+ };
-static const short _demo_machine_parser_cmd_cond_offsets[] = {
- 0, 0, 0, 1, 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, 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, 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, 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,
- 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, 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, 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, 3, 4, 5, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 7, 8, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 10, 11,
- 12, 13, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, 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, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 151, 152, 153, 154,
- 155, 156, 157, 158, 159, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186,
- 187, 188, 189, 190, 191, 192, 193, 194,
- 195, 196, 197, 198, 199, 200, 201, 202,
- 203, 204, 205, 206, 207, 208, 209, 210,
- 211, 212, 213, 214, 215, 216, 217, 218,
- 219, 220, 221, 222, 223, 224, 225, 226,
- 227, 228, 229, 230, 231, 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, 274,
- 275, 276, 277, 278, 279, 280, 281, 282,
- 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298,
- 299, 300, 301, 302, 303, 304, 305, 306,
- 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322,
- 323, 324, 325, 326, 327, 328, 329, 330,
- 331, 332, 333, 334, 335, 336, 337, 338,
- 339, 340, 341, 342, 343, 344, 345, 346,
- 347, 348, 349, 350, 351, 352, 353, 354,
- 355
-};
+ static const char _demo_machine_parser_cmd_cond_lengths[] = {
+ 0, 0, 1, 1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 1, 1, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 1, 1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 1,
+ 1, 0, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1
+ };
-static const char _demo_machine_parser_cmd_cond_lengths[] = {
- 0, 0, 1, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 1, 1, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 1, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 1, 1,
- 1, 0, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1
-};
+ static const short _demo_machine_parser_cmd_cond_keys[] = {
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ -128, 127, -128, 127, -128, 127, -128, 127,
+ 0
+ };
-static const short _demo_machine_parser_cmd_cond_keys[] = {
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- -128, 127, -128, 127, -128, 127, -128, 127,
- 0
-};
+ static const char _demo_machine_parser_cmd_cond_spaces[] = {
+ 1, 1, 1, 1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0
+ };
-static const char _demo_machine_parser_cmd_cond_spaces[] = {
- 1, 1, 1, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0
-};
+ static const short _demo_machine_parser_cmd_key_offsets[] = {
+ 0, 0, 1, 13, 23, 24, 28, 30,
+ 32, 34, 36, 37, 39, 43, 45, 47,
+ 49, 51, 53, 55, 57, 59, 61, 63,
+ 67, 69, 71, 73, 74, 76, 78, 80,
+ 82, 84, 86, 88, 90, 92, 94, 96,
+ 98, 100, 102, 104, 106, 108, 110, 112,
+ 114, 116, 118, 122, 124, 126, 128, 130,
+ 142, 144, 146, 148, 150, 152, 154, 156,
+ 158, 160, 162, 164, 166, 168, 170, 172,
+ 174, 176, 178, 180, 182, 184, 186, 188,
+ 190, 192, 194, 196, 198, 200, 202, 204,
+ 206, 208, 210, 212, 214, 216, 218, 222,
+ 224, 226, 228, 230, 232, 234, 236, 237,
+ 238, 240, 242, 244, 246, 248, 250, 252,
+ 254, 256, 262, 264, 266, 268, 270, 272,
+ 274, 276, 278, 280, 282, 284, 286, 290,
+ 292, 294, 296, 298, 302, 304, 306, 308,
+ 310, 312, 314, 316, 318, 320, 322, 324,
+ 328, 330, 334, 336, 338, 340, 342, 343,
+ 347, 349, 351, 353, 355, 361, 367, 369,
+ 371, 373, 375, 377, 379, 381, 383, 385,
+ 393, 395, 397, 399, 405, 407, 409, 411,
+ 413, 414, 416, 418, 420, 422, 424, 426,
+ 428, 430, 432, 433, 439, 441, 445, 447,
+ 449, 451, 453, 455, 457, 459, 461, 463,
+ 465, 467, 469, 470, 476, 478, 480, 482,
+ 484, 486, 488, 490, 492, 494, 496, 498,
+ 500, 501, 503, 505, 507, 509, 511, 515,
+ 517, 519, 520, 522, 524, 526, 528, 530,
+ 531, 536, 538, 540, 550, 552, 581, 581,
+ 610, 640, 644, 646, 648, 650, 652, 653,
+ 655, 659, 661, 663, 665, 667, 669, 697,
+ 729, 759, 761, 789, 819, 849, 851, 853,
+ 855, 857, 885, 889, 891, 893, 895, 896,
+ 898, 900, 902, 904, 906, 908, 910, 938,
+ 966, 968, 970, 972, 974, 976, 1004, 1006,
+ 1008, 1038, 1040, 1042, 1044, 1072, 1074, 1076,
+ 1104, 1106, 1108, 1110, 1138, 1168, 1198, 1202,
+ 1232, 1234, 1236, 1238, 1240, 1268, 1280, 1282,
+ 1284, 1286, 1288, 1290, 1292, 1320, 1350, 1352,
+ 1354, 1356, 1384, 1386, 1388, 1390, 1418, 1420,
+ 1448, 1450, 1452, 1480, 1482, 1510, 1512, 1514,
+ 1516, 1518, 1520, 1548, 1578, 1580, 1582, 1610,
+ 1612, 1640, 1642, 1644, 1672, 1674, 1676, 1704,
+ 1732, 1734, 1762, 1764, 1766, 1794, 1796, 1798,
+ 1826, 1828, 1830, 1858, 1860, 1862, 1864, 1892,
+ 1896, 1898, 1900, 1902, 1930, 1932, 1934, 1936,
+ 1938, 1966, 1996, 2024, 2056, 2086, 2114, 2144,
+ 2174, 2202, 2230, 2258, 2286, 2316, 2344, 2372,
+ 2400, 2430, 2460, 2490, 2518, 2546, 2576, 2604,
+ 2632, 2660, 2688, 2716, 2744, 2774, 2802, 2830,
+ 2858, 2886, 2914, 2942, 2970, 2998, 3026, 3054,
+ 3082, 3110, 3176, 3184, 3190, 3200, 3203, 3206,
+ 3216, 3227, 3232, 3237, 3242, 3247, 3256, 3267,
+ 3272, 3277, 3282, 3287, 3292, 3301, 3306, 3311,
+ 3316, 3321, 3326, 3335, 3344, 3349, 3354, 3363,
+ 3374, 3383, 3394, 3403, 3412, 3421, 3425, 3429,
+ 3457, 3473, 3477, 3489, 3505, 3533, 3565, 3585,
+ 3605, 3625, 3645, 3673, 3705, 3725, 3745, 3765,
+ 3785, 3805, 3833, 3853, 3873, 3893, 3913, 3933,
+ 3961, 3989, 4009, 4029, 4057, 4085, 4093, 4101,
+ 4109, 4117, 4141, 4169, 4177, 4185, 4193, 4201,
+ 4209, 4225, 4233, 4241, 4249, 4257, 4265, 4289,
+ 4313, 4321, 4329, 4353, 4417, 4427, 4437, 4473,
+ 4483, 4493, 4503, 4539, 4551, 4561, 4571, 4581,
+ 4591, 4627, 4639, 4649, 4659, 4669, 4705, 4715,
+ 4725, 4735, 4771, 4781, 4791, 4801, 4811, 4821,
+ 4857, 4869, 4879, 4891, 4927, 4937, 4947, 4957,
+ 4967, 4976, 4988, 4998, 5034, 5044, 5054, 5064,
+ 5100, 5114, 5128, 5138, 5148, 5158, 5168, 5178,
+ 5214, 5224, 5234, 5244, 5254, 5290, 5306, 5316,
+ 5352, 5362, 5398, 5408, 5444, 5458, 5494, 5504,
+ 5514, 5524, 5534, 5543, 5553, 5563, 5599, 5609,
+ 5619, 5629, 5665, 5675, 5685, 5721, 5731, 5741,
+ 5750, 5764, 5774, 5810, 5822, 5832, 5842, 5878,
+ 5888, 5924, 5934, 5944, 5980, 5990, 6026, 6064,
+ 6074, 6084, 6094, 6130, 6140, 6150, 6160, 6169,
+ 6183, 6193, 6229, 6239, 6249, 6259, 6295, 6305,
+ 6315, 6325, 6335, 6371, 6381, 6391, 6401, 6437,
+ 6473, 6483, 6492, 6528, 6538, 6548, 6558, 6568,
+ 6578, 6614, 6626, 6636, 6646, 6682, 6691, 6701,
+ 6711, 6721, 6731, 6741, 6777, 6843, 6877, 6911,
+ 6945, 6979, 7013, 7047, 7081, 7115, 7149, 7183,
+ 7217, 7251, 7285, 7319, 7353, 7387, 7421, 7455,
+ 7489, 7523, 7557, 7591, 7625, 7661, 7695, 7729,
+ 7763, 7797, 7831, 7865, 7899, 7933, 7967, 8001,
+ 8009, 8017, 8025, 8033, 8041, 8053, 8061, 8069,
+ 8077, 8085, 8097, 8105, 8113, 8119, 8127, 8135,
+ 8143, 8151, 8159, 8171, 8179, 8187, 8195, 8203,
+ 8211, 8219, 8227, 8235, 8243, 8251, 8259, 8267,
+ 8275, 8283, 8291, 8299, 8311, 8319, 8331, 8339,
+ 8345, 8353, 8361, 8369, 8377, 8383, 8395, 8403,
+ 8411, 8419, 8427, 8435, 8443, 8451, 8467, 8483,
+ 8491, 8499, 8507, 8515, 8523, 8531, 8567, 8575,
+ 8583, 8591, 8599, 8607, 8615, 8621, 8637, 8645,
+ 8653, 8661, 8669, 8677, 8685, 8693, 8701, 8709,
+ 8717, 8725, 8733, 8753, 8761, 8777, 8785, 8793,
+ 8801, 8809, 8815, 8823, 8831, 8839, 8847, 8855,
+ 8863, 8871, 8879, 8887, 8893, 8909, 8917, 8929,
+ 8937, 8945, 8953, 8961, 8969, 8977, 8985, 8993,
+ 8997
+ };
-static const short _demo_machine_parser_cmd_key_offsets[] = {
- 0, 0, 1, 13, 23, 24, 28, 30,
- 32, 34, 36, 37, 39, 43, 45, 47,
- 49, 51, 53, 55, 57, 59, 61, 63,
- 67, 69, 71, 73, 74, 76, 78, 80,
- 82, 84, 86, 88, 90, 92, 94, 96,
- 98, 100, 102, 104, 106, 108, 110, 112,
- 114, 116, 118, 122, 124, 126, 128, 130,
- 142, 144, 146, 148, 150, 152, 154, 156,
- 158, 160, 162, 164, 166, 168, 170, 172,
- 174, 176, 178, 180, 182, 184, 186, 188,
- 190, 192, 194, 196, 198, 200, 202, 204,
- 206, 208, 210, 212, 214, 216, 218, 222,
- 224, 226, 228, 230, 232, 234, 236, 237,
- 238, 240, 242, 244, 246, 248, 250, 252,
- 254, 256, 262, 264, 266, 268, 270, 272,
- 274, 276, 278, 280, 282, 284, 286, 290,
- 292, 294, 296, 298, 302, 304, 306, 308,
- 310, 312, 314, 316, 318, 320, 322, 324,
- 328, 330, 334, 336, 338, 340, 342, 343,
- 347, 349, 351, 353, 355, 361, 367, 369,
- 371, 373, 375, 377, 379, 381, 383, 385,
- 393, 395, 397, 399, 405, 407, 409, 411,
- 413, 414, 416, 418, 420, 422, 424, 426,
- 428, 430, 432, 433, 439, 441, 445, 447,
- 449, 451, 453, 455, 457, 459, 461, 463,
- 465, 467, 469, 470, 476, 478, 480, 482,
- 484, 486, 488, 490, 492, 494, 496, 498,
- 500, 501, 503, 505, 507, 509, 511, 515,
- 517, 519, 520, 522, 524, 526, 528, 530,
- 531, 536, 538, 540, 550, 552, 581, 581,
- 610, 640, 644, 646, 648, 650, 652, 653,
- 655, 659, 661, 663, 665, 667, 669, 697,
- 729, 759, 761, 789, 819, 849, 851, 853,
- 855, 857, 885, 889, 891, 893, 895, 896,
- 898, 900, 902, 904, 906, 908, 910, 938,
- 966, 968, 970, 972, 974, 976, 1004, 1006,
- 1008, 1038, 1040, 1042, 1044, 1072, 1074, 1076,
- 1104, 1106, 1108, 1110, 1138, 1168, 1198, 1202,
- 1232, 1234, 1236, 1238, 1240, 1268, 1280, 1282,
- 1284, 1286, 1288, 1290, 1292, 1320, 1350, 1352,
- 1354, 1356, 1384, 1386, 1388, 1390, 1418, 1420,
- 1448, 1450, 1452, 1480, 1482, 1510, 1512, 1514,
- 1516, 1518, 1520, 1548, 1578, 1580, 1582, 1610,
- 1612, 1640, 1642, 1644, 1672, 1674, 1676, 1704,
- 1732, 1734, 1762, 1764, 1766, 1794, 1796, 1798,
- 1826, 1828, 1830, 1858, 1860, 1862, 1864, 1892,
- 1896, 1898, 1900, 1902, 1930, 1932, 1934, 1936,
- 1938, 1966, 1996, 2024, 2056, 2086, 2114, 2144,
- 2174, 2202, 2230, 2258, 2286, 2316, 2344, 2372,
- 2400, 2430, 2460, 2490, 2518, 2546, 2576, 2604,
- 2632, 2660, 2688, 2716, 2744, 2774, 2802, 2830,
- 2858, 2886, 2914, 2942, 2970, 2998, 3026, 3054,
- 3082, 3110, 3176, 3184, 3190, 3200, 3203, 3206,
- 3216, 3227, 3232, 3237, 3242, 3247, 3256, 3267,
- 3272, 3277, 3282, 3287, 3292, 3301, 3306, 3311,
- 3316, 3321, 3326, 3335, 3344, 3349, 3354, 3363,
- 3374, 3383, 3394, 3403, 3412, 3421, 3425, 3429,
- 3457, 3473, 3477, 3489, 3505, 3533, 3565, 3585,
- 3605, 3625, 3645, 3673, 3705, 3725, 3745, 3765,
- 3785, 3805, 3833, 3853, 3873, 3893, 3913, 3933,
- 3961, 3989, 4009, 4029, 4057, 4085, 4093, 4101,
- 4109, 4117, 4141, 4169, 4177, 4185, 4193, 4201,
- 4209, 4225, 4233, 4241, 4249, 4257, 4265, 4289,
- 4313, 4321, 4329, 4353, 4417, 4427, 4437, 4473,
- 4483, 4493, 4503, 4539, 4551, 4561, 4571, 4581,
- 4591, 4627, 4639, 4649, 4659, 4669, 4705, 4715,
- 4725, 4735, 4771, 4781, 4791, 4801, 4811, 4821,
- 4857, 4869, 4879, 4891, 4927, 4937, 4947, 4957,
- 4967, 4976, 4988, 4998, 5034, 5044, 5054, 5064,
- 5100, 5114, 5128, 5138, 5148, 5158, 5168, 5178,
- 5214, 5224, 5234, 5244, 5254, 5290, 5306, 5316,
- 5352, 5362, 5398, 5408, 5444, 5458, 5494, 5504,
- 5514, 5524, 5534, 5543, 5553, 5563, 5599, 5609,
- 5619, 5629, 5665, 5675, 5685, 5721, 5731, 5741,
- 5750, 5764, 5774, 5810, 5822, 5832, 5842, 5878,
- 5888, 5924, 5934, 5944, 5980, 5990, 6026, 6064,
- 6074, 6084, 6094, 6130, 6140, 6150, 6160, 6169,
- 6183, 6193, 6229, 6239, 6249, 6259, 6295, 6305,
- 6315, 6325, 6335, 6371, 6381, 6391, 6401, 6437,
- 6473, 6483, 6492, 6528, 6538, 6548, 6558, 6568,
- 6578, 6614, 6626, 6636, 6646, 6682, 6691, 6701,
- 6711, 6721, 6731, 6741, 6777, 6843, 6877, 6911,
- 6945, 6979, 7013, 7047, 7081, 7115, 7149, 7183,
- 7217, 7251, 7285, 7319, 7353, 7387, 7421, 7455,
- 7489, 7523, 7557, 7591, 7625, 7661, 7695, 7729,
- 7763, 7797, 7831, 7865, 7899, 7933, 7967, 8001,
- 8009, 8017, 8025, 8033, 8041, 8053, 8061, 8069,
- 8077, 8085, 8097, 8105, 8113, 8119, 8127, 8135,
- 8143, 8151, 8159, 8171, 8179, 8187, 8195, 8203,
- 8211, 8219, 8227, 8235, 8243, 8251, 8259, 8267,
- 8275, 8283, 8291, 8299, 8311, 8319, 8331, 8339,
- 8345, 8353, 8361, 8369, 8377, 8383, 8395, 8403,
- 8411, 8419, 8427, 8435, 8443, 8451, 8467, 8483,
- 8491, 8499, 8507, 8515, 8523, 8531, 8567, 8575,
- 8583, 8591, 8599, 8607, 8615, 8621, 8637, 8645,
- 8653, 8661, 8669, 8677, 8685, 8693, 8701, 8709,
- 8717, 8725, 8733, 8753, 8761, 8777, 8785, 8793,
- 8801, 8809, 8815, 8823, 8831, 8839, 8847, 8855,
- 8863, 8871, 8879, 8887, 8893, 8909, 8917, 8929,
- 8937, 8945, 8953, 8961, 8969, 8977, 8985, 8993,
- 8997
-};
+ static const short _demo_machine_parser_cmd_trans_keys[] = {
+ 37, 800, 805, 1056, 1061, 777, 781, 896,
+ 1032, 1033, 1037, 1038, 1151, 800, 1056, 777,
+ 781, 896, 1032, 1033, 1037, 1038, 1151, 43,
+ 79, 83, 111, 115, 78, 110, 70, 102,
+ 73, 105, 71, 103, 45, 83, 115, 69,
+ 84, 101, 116, 83, 115, 83, 115, 73,
+ 105, 79, 111, 78, 110, 84, 116, 78,
+ 110, 71, 103, 85, 117, 80, 112, 65,
+ 77, 97, 109, 82, 114, 71, 103, 69,
+ 101, 45, 77, 109, 69, 101, 83, 115,
+ 83, 115, 65, 97, 71, 103, 69, 101,
+ 83, 115, 83, 115, 65, 97, 71, 103,
+ 69, 101, 80, 112, 84, 116, 79, 111,
+ 78, 110, 83, 115, 85, 117, 66, 98,
+ 73, 105, 83, 115, 72, 104, 71, 83,
+ 103, 115, 83, 115, 84, 116, 69, 101,
+ 82, 114, 67, 76, 77, 78, 84, 85,
+ 99, 108, 109, 110, 116, 117, 69, 101,
+ 78, 110, 65, 97, 82, 114, 73, 105,
+ 79, 111, 68, 100, 69, 101, 79, 111,
+ 69, 101, 69, 101, 80, 112, 83, 115,
+ 79, 111, 80, 112, 66, 98, 67, 99,
+ 82, 114, 73, 105, 66, 98, 69, 101,
+ 77, 109, 69, 101, 78, 110, 73, 105,
+ 84, 116, 76, 108, 80, 112, 68, 100,
+ 76, 108, 69, 101, 77, 109, 70, 102,
+ 77, 109, 80, 112, 65, 97, 67, 99,
+ 75, 107, 83, 84, 115, 116, 68, 100,
+ 73, 105, 79, 111, 73, 105, 68, 100,
+ 69, 101, 79, 111, 45, 64, 84, 116,
+ 73, 105, 79, 111, 78, 110, 81, 113,
+ 85, 117, 69, 101, 83, 115, 84, 116,
+ 69, 83, 84, 101, 115, 116, 83, 115,
+ 83, 115, 73, 105, 79, 111, 78, 110,
+ 67, 99, 75, 107, 77, 109, 70, 102,
+ 65, 97, 80, 112, 83, 115, 72, 78,
+ 104, 110, 67, 99, 80, 112, 86, 118,
+ 52, 54, 86, 88, 118, 120, 69, 101,
+ 78, 110, 84, 116, 82, 114, 79, 111,
+ 77, 109, 69, 101, 65, 97, 68, 100,
+ 69, 101, 82, 114, 77, 80, 109, 112,
+ 80, 112, 73, 85, 105, 117, 79, 111,
+ 67, 99, 65, 97, 76, 108, 45, 73,
+ 80, 105, 112, 80, 112, 80, 112, 73,
+ 105, 68, 100, 65, 67, 87, 97, 99,
+ 119, 83, 84, 89, 115, 116, 121, 83,
+ 115, 87, 119, 79, 111, 82, 114, 68,
+ 100, 69, 101, 65, 97, 76, 108, 77,
+ 109, 69, 73, 77, 84, 101, 105, 109,
+ 116, 67, 99, 79, 111, 80, 112, 68,
+ 71, 76, 100, 103, 108, 67, 99, 79,
+ 111, 77, 109, 80, 112, 45, 73, 105,
+ 68, 100, 69, 101, 78, 110, 84, 116,
+ 83, 115, 67, 99, 85, 117, 78, 110,
+ 45, 73, 80, 85, 105, 112, 117, 80,
+ 112, 79, 87, 111, 119, 82, 114, 84,
+ 116, 68, 100, 83, 115, 82, 114, 72,
+ 104, 79, 111, 65, 97, 68, 100, 83,
+ 115, 67, 99, 70, 102, 45, 73, 80,
+ 84, 105, 112, 116, 80, 112, 79, 111,
+ 82, 114, 84, 116, 82, 114, 65, 97,
+ 78, 110, 83, 115, 79, 111, 82, 114,
+ 84, 116, 86, 118, 54, 80, 112, 73,
+ 105, 82, 114, 69, 101, 83, 115, 65,
+ 83, 97, 115, 77, 109, 69, 101, 45,
+ 78, 110, 65, 97, 80, 112, 84, 116,
+ 82, 114, 62, 35, 37, 43, 45, 62,
+ 896, 1151, 896, 1151, 288, 544, 265, 269,
+ 384, 520, 521, 525, 526, 639, 384, 639,
+ 43, 65, 67, 68, 69, 70, 72, 76,
+ 77, 79, 80, 81, 82, 83, 86, 97,
+ 99, 100, 101, 102, 104, 108, 109, 111,
+ 112, 113, 114, 115, 118, 43, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 65, 67, 68, 69, 70, 72,
+ 76, 77, 79, 80, 81, 82, 83, 85,
+ 86, 97, 99, 100, 101, 102, 104, 108,
+ 109, 111, 112, 113, 114, 115, 117, 118,
+ 79, 83, 111, 115, 78, 110, 70, 102,
+ 73, 105, 71, 103, 45, 83, 115, 69,
+ 84, 101, 116, 83, 115, 83, 115, 73,
+ 105, 79, 111, 78, 110, 65, 67, 68,
+ 69, 70, 72, 76, 77, 79, 80, 81,
+ 82, 83, 86, 97, 99, 100, 101, 102,
+ 104, 108, 109, 111, 112, 113, 114, 115,
+ 118, 65, 67, 68, 69, 70, 72, 76,
+ 77, 79, 80, 81, 82, 83, 84, 85,
+ 86, 97, 99, 100, 101, 102, 104, 108,
+ 109, 111, 112, 113, 114, 115, 116, 117,
+ 118, 65, 67, 68, 69, 70, 72, 76,
+ 77, 79, 80, 81, 82, 83, 86, 88,
+ 97, 99, 100, 101, 102, 104, 108, 109,
+ 111, 112, 113, 114, 115, 118, 120, 84,
+ 116, 65, 67, 68, 69, 70, 72, 76,
+ 77, 79, 80, 81, 82, 83, 86, 97,
+ 99, 100, 101, 102, 104, 108, 109, 111,
+ 112, 113, 114, 115, 118, 65, 67, 68,
+ 69, 70, 72, 73, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 105, 108, 109, 111, 112, 113,
+ 114, 115, 118, 65, 67, 68, 69, 70,
+ 72, 76, 77, 79, 80, 81, 82, 83,
+ 85, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 117,
+ 118, 78, 110, 71, 103, 85, 117, 80,
+ 112, 65, 67, 68, 69, 70, 72, 76,
+ 77, 79, 80, 81, 82, 83, 86, 97,
+ 99, 100, 101, 102, 104, 108, 109, 111,
+ 112, 113, 114, 115, 118, 65, 77, 97,
+ 109, 82, 114, 71, 103, 69, 101, 45,
+ 77, 109, 69, 101, 83, 115, 83, 115,
+ 65, 97, 71, 103, 69, 101, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 65, 67, 68, 69, 70, 72,
+ 76, 77, 79, 80, 81, 82, 83, 86,
+ 97, 99, 100, 101, 102, 104, 108, 109,
+ 111, 112, 113, 114, 115, 118, 83, 115,
+ 83, 115, 65, 97, 71, 103, 69, 101,
+ 65, 67, 68, 69, 70, 72, 76, 77,
+ 79, 80, 81, 82, 83, 86, 97, 99,
+ 100, 101, 102, 104, 108, 109, 111, 112,
+ 113, 114, 115, 118, 80, 112, 84, 116,
+ 65, 67, 68, 69, 70, 72, 73, 76,
+ 77, 79, 80, 81, 82, 83, 86, 97,
+ 99, 100, 101, 102, 104, 105, 108, 109,
+ 111, 112, 113, 114, 115, 118, 79, 111,
+ 78, 110, 83, 115, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 85, 117, 66, 98, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 73, 105, 83, 115, 72, 104, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 65, 67, 68, 69, 70, 72,
+ 76, 77, 79, 80, 81, 82, 83, 85,
+ 86, 97, 99, 100, 101, 102, 104, 108,
+ 109, 111, 112, 113, 114, 115, 117, 118,
+ 65, 67, 68, 69, 70, 72, 76, 77,
+ 79, 80, 81, 82, 83, 85, 86, 97,
+ 99, 100, 101, 102, 104, 108, 109, 111,
+ 112, 113, 114, 115, 117, 118, 71, 83,
+ 103, 115, 65, 67, 68, 69, 70, 72,
+ 73, 76, 77, 79, 80, 81, 82, 83,
+ 86, 97, 99, 100, 101, 102, 104, 105,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 83, 115, 84, 116, 69, 101, 82, 114,
+ 65, 67, 68, 69, 70, 72, 76, 77,
+ 79, 80, 81, 82, 83, 86, 97, 99,
+ 100, 101, 102, 104, 108, 109, 111, 112,
+ 113, 114, 115, 118, 67, 76, 77, 78,
+ 84, 85, 99, 108, 109, 110, 116, 117,
+ 69, 101, 78, 110, 65, 97, 82, 114,
+ 73, 105, 79, 111, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 65, 67, 68, 69, 70, 72, 73, 76,
+ 77, 79, 80, 81, 82, 83, 86, 97,
+ 99, 100, 101, 102, 104, 105, 108, 109,
+ 111, 112, 113, 114, 115, 118, 68, 100,
+ 69, 101, 79, 111, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 69, 101, 69, 101, 80, 112, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 83, 115, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 79, 111, 80, 112, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 66, 98, 65, 67, 68, 69, 70, 72,
+ 76, 77, 79, 80, 81, 82, 83, 86,
+ 97, 99, 100, 101, 102, 104, 108, 109,
+ 111, 112, 113, 114, 115, 118, 67, 99,
+ 82, 114, 73, 105, 66, 98, 69, 101,
+ 65, 67, 68, 69, 70, 72, 76, 77,
+ 79, 80, 81, 82, 83, 86, 97, 99,
+ 100, 101, 102, 104, 108, 109, 111, 112,
+ 113, 114, 115, 118, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 85, 86, 97, 99, 100, 101, 102,
+ 104, 108, 109, 111, 112, 113, 114, 115,
+ 117, 118, 77, 109, 69, 101, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 78, 110, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 73, 105, 84, 116, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 76, 108, 80, 112, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 65, 67, 68, 69, 70, 72, 76, 77,
+ 79, 80, 81, 82, 83, 86, 97, 99,
+ 100, 101, 102, 104, 108, 109, 111, 112,
+ 113, 114, 115, 118, 68, 100, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 76, 108, 69, 101, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 77, 109, 70, 102, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 77, 109, 80, 112, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 65, 97, 67, 99, 75, 107,
+ 65, 67, 68, 69, 70, 72, 76, 77,
+ 79, 80, 81, 82, 83, 86, 97, 99,
+ 100, 101, 102, 104, 108, 109, 111, 112,
+ 113, 114, 115, 118, 83, 84, 115, 116,
+ 68, 100, 73, 105, 79, 111, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 73, 105, 68, 100, 69, 101,
+ 79, 111, 65, 67, 68, 69, 70, 72,
+ 76, 77, 79, 80, 81, 82, 83, 86,
+ 97, 99, 100, 101, 102, 104, 108, 109,
+ 111, 112, 113, 114, 115, 118, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 85, 86, 97, 99, 100,
+ 101, 102, 104, 108, 109, 111, 112, 113,
+ 114, 115, 117, 118, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 65, 67, 68, 69, 70, 72, 76, 77,
+ 79, 80, 81, 82, 83, 84, 85, 86,
+ 97, 99, 100, 101, 102, 104, 108, 109,
+ 111, 112, 113, 114, 115, 116, 117, 118,
+ 65, 67, 68, 69, 70, 72, 76, 77,
+ 79, 80, 81, 82, 83, 86, 88, 97,
+ 99, 100, 101, 102, 104, 108, 109, 111,
+ 112, 113, 114, 115, 118, 120, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 65, 67, 68, 69, 70, 72,
+ 73, 76, 77, 79, 80, 81, 82, 83,
+ 86, 97, 99, 100, 101, 102, 104, 105,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 65, 67, 68, 69, 70, 72, 76, 77,
+ 79, 80, 81, 82, 83, 85, 86, 97,
+ 99, 100, 101, 102, 104, 108, 109, 111,
+ 112, 113, 114, 115, 117, 118, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 65, 67, 68, 69, 70, 72,
+ 76, 77, 79, 80, 81, 82, 83, 86,
+ 97, 99, 100, 101, 102, 104, 108, 109,
+ 111, 112, 113, 114, 115, 118, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 65, 67, 68, 69, 70, 72,
+ 76, 77, 79, 80, 81, 82, 83, 86,
+ 97, 99, 100, 101, 102, 104, 108, 109,
+ 111, 112, 113, 114, 115, 118, 65, 67,
+ 68, 69, 70, 72, 73, 76, 77, 79,
+ 80, 81, 82, 83, 86, 97, 99, 100,
+ 101, 102, 104, 105, 108, 109, 111, 112,
+ 113, 114, 115, 118, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 65, 67, 68, 69, 70, 72, 76, 77,
+ 79, 80, 81, 82, 83, 86, 97, 99,
+ 100, 101, 102, 104, 108, 109, 111, 112,
+ 113, 114, 115, 118, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 65, 67, 68, 69, 70, 72, 76, 77,
+ 79, 80, 81, 82, 83, 85, 86, 97,
+ 99, 100, 101, 102, 104, 108, 109, 111,
+ 112, 113, 114, 115, 117, 118, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 85, 86, 97, 99, 100,
+ 101, 102, 104, 108, 109, 111, 112, 113,
+ 114, 115, 117, 118, 65, 67, 68, 69,
+ 70, 72, 73, 76, 77, 79, 80, 81,
+ 82, 83, 86, 97, 99, 100, 101, 102,
+ 104, 105, 108, 109, 111, 112, 113, 114,
+ 115, 118, 65, 67, 68, 69, 70, 72,
+ 76, 77, 79, 80, 81, 82, 83, 86,
+ 97, 99, 100, 101, 102, 104, 108, 109,
+ 111, 112, 113, 114, 115, 118, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 65, 67, 68, 69, 70, 72,
+ 73, 76, 77, 79, 80, 81, 82, 83,
+ 86, 97, 99, 100, 101, 102, 104, 105,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 65, 67, 68, 69, 70, 72, 76, 77,
+ 79, 80, 81, 82, 83, 86, 97, 99,
+ 100, 101, 102, 104, 108, 109, 111, 112,
+ 113, 114, 115, 118, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 65, 67, 68, 69, 70, 72, 76, 77,
+ 79, 80, 81, 82, 83, 86, 97, 99,
+ 100, 101, 102, 104, 108, 109, 111, 112,
+ 113, 114, 115, 118, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 65, 67, 68, 69, 70, 72, 76, 77,
+ 79, 80, 81, 82, 83, 86, 97, 99,
+ 100, 101, 102, 104, 108, 109, 111, 112,
+ 113, 114, 115, 118, 65, 67, 68, 69,
+ 70, 72, 76, 77, 79, 80, 81, 82,
+ 83, 86, 97, 99, 100, 101, 102, 104,
+ 108, 109, 111, 112, 113, 114, 115, 118,
+ 65, 67, 68, 69, 70, 72, 76, 77,
+ 79, 80, 81, 82, 83, 85, 86, 97,
+ 99, 100, 101, 102, 104, 108, 109, 111,
+ 112, 113, 114, 115, 117, 118, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 65, 67, 68, 69, 70, 72,
+ 76, 77, 79, 80, 81, 82, 83, 86,
+ 97, 99, 100, 101, 102, 104, 108, 109,
+ 111, 112, 113, 114, 115, 118, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 65, 67, 68, 69, 70, 72,
+ 76, 77, 79, 80, 81, 82, 83, 86,
+ 97, 99, 100, 101, 102, 104, 108, 109,
+ 111, 112, 113, 114, 115, 118, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 65, 67, 68, 69, 70, 72,
+ 76, 77, 79, 80, 81, 82, 83, 86,
+ 97, 99, 100, 101, 102, 104, 108, 109,
+ 111, 112, 113, 114, 115, 118, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 65, 67, 68, 69, 70, 72,
+ 76, 77, 79, 80, 81, 82, 83, 86,
+ 97, 99, 100, 101, 102, 104, 108, 109,
+ 111, 112, 113, 114, 115, 118, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 65, 67, 68, 69, 70, 72,
+ 76, 77, 79, 80, 81, 82, 83, 86,
+ 97, 99, 100, 101, 102, 104, 108, 109,
+ 111, 112, 113, 114, 115, 118, 65, 67,
+ 68, 69, 70, 72, 76, 77, 79, 80,
+ 81, 82, 83, 86, 97, 99, 100, 101,
+ 102, 104, 108, 109, 111, 112, 113, 114,
+ 115, 118, 65, 67, 68, 69, 70, 72,
+ 76, 77, 79, 80, 81, 82, 83, 86,
+ 97, 99, 100, 101, 102, 104, 108, 109,
+ 111, 112, 113, 114, 115, 118, 288, 301,
+ 320, 321, 323, 324, 325, 326, 328, 329,
+ 332, 335, 336, 338, 339, 340, 344, 353,
+ 355, 356, 357, 358, 360, 361, 364, 367,
+ 368, 370, 371, 372, 376, 544, 557, 576,
+ 577, 579, 580, 581, 582, 584, 585, 588,
+ 591, 592, 594, 595, 596, 600, 609, 611,
+ 612, 613, 614, 616, 617, 620, 623, 624,
+ 626, 627, 628, 632, 128, 383, 384, 639,
+ 288, 320, 544, 576, 128, 383, 384, 639,
+ 288, 320, 544, 576, 384, 639, 32, 64,
+ 65, 82, 83, 97, 114, 115, 9, 13,
+ 32, 9, 13, 32, 9, 13, 32, 64,
+ 65, 82, 83, 97, 114, 115, 9, 13,
+ 32, 65, 67, 82, 83, 97, 99, 114,
+ 115, 9, 13, 32, 84, 116, 9, 13,
+ 32, 73, 105, 9, 13, 32, 79, 111,
+ 9, 13, 32, 78, 110, 9, 13, 32,
+ 65, 82, 83, 97, 114, 115, 9, 13,
+ 32, 65, 69, 82, 83, 97, 101, 114,
+ 115, 9, 13, 32, 81, 113, 9, 13,
+ 32, 85, 117, 9, 13, 32, 69, 101,
+ 9, 13, 32, 83, 115, 9, 13, 32,
+ 84, 116, 9, 13, 32, 69, 83, 84,
+ 101, 115, 116, 9, 13, 32, 83, 115,
+ 9, 13, 32, 83, 115, 9, 13, 32,
+ 73, 105, 9, 13, 32, 79, 111, 9,
+ 13, 32, 78, 110, 9, 13, 32, 65,
+ 82, 83, 97, 114, 115, 9, 13, 32,
+ 65, 82, 83, 97, 114, 115, 9, 13,
+ 32, 67, 99, 9, 13, 32, 75, 107,
+ 9, 13, 32, 65, 82, 83, 97, 114,
+ 115, 9, 13, 32, 65, 67, 82, 83,
+ 97, 99, 114, 115, 9, 13, 32, 65,
+ 82, 83, 97, 114, 115, 9, 13, 32,
+ 65, 69, 82, 83, 97, 101, 114, 115,
+ 9, 13, 32, 65, 82, 83, 97, 114,
+ 115, 9, 13, 32, 65, 82, 83, 97,
+ 114, 115, 9, 13, 32, 65, 82, 83,
+ 97, 114, 115, 9, 13, 320, 576, 384,
+ 639, 320, 576, 384, 639, 288, 320, 321,
+ 338, 339, 353, 370, 371, 544, 576, 577,
+ 594, 595, 609, 626, 627, 128, 264, 265,
+ 269, 270, 383, 384, 520, 521, 525, 526,
+ 639, 288, 320, 544, 576, 128, 264, 265,
+ 269, 270, 383, 384, 520, 521, 525, 526,
+ 639, 32, 64, 9, 13, 288, 320, 544,
+ 576, 265, 269, 384, 520, 521, 525, 526,
+ 639, 288, 320, 544, 576, 128, 264, 265,
+ 269, 270, 383, 384, 520, 521, 525, 526,
+ 639, 288, 320, 321, 338, 339, 353, 370,
+ 371, 544, 576, 577, 594, 595, 609, 626,
+ 627, 128, 264, 265, 269, 270, 383, 384,
+ 520, 521, 525, 526, 639, 288, 320, 321,
+ 323, 338, 339, 353, 355, 370, 371, 544,
+ 576, 577, 579, 594, 595, 609, 611, 626,
+ 627, 128, 264, 265, 269, 270, 383, 384,
+ 520, 521, 525, 526, 639, 288, 320, 340,
+ 372, 544, 576, 596, 628, 128, 264, 265,
+ 269, 270, 383, 384, 520, 521, 525, 526,
+ 639, 288, 320, 329, 361, 544, 576, 585,
+ 617, 128, 264, 265, 269, 270, 383, 384,
+ 520, 521, 525, 526, 639, 288, 320, 335,
+ 367, 544, 576, 591, 623, 128, 264, 265,
+ 269, 270, 383, 384, 520, 521, 525, 526,
+ 639, 288, 320, 334, 366, 544, 576, 590,
+ 622, 128, 264, 265, 269, 270, 383, 384,
+ 520, 521, 525, 526, 639, 288, 320, 321,
+ 338, 339, 353, 370, 371, 544, 576, 577,
+ 594, 595, 609, 626, 627, 128, 264, 265,
+ 269, 270, 383, 384, 520, 521, 525, 526,
+ 639, 288, 320, 321, 325, 338, 339, 353,
+ 357, 370, 371, 544, 576, 577, 581, 594,
+ 595, 609, 613, 626, 627, 128, 264, 265,
+ 269, 270, 383, 384, 520, 521, 525, 526,
+ 639, 288, 320, 337, 369, 544, 576, 593,
+ 625, 128, 264, 265, 269, 270, 383, 384,
+ 520, 521, 525, 526, 639, 288, 320, 341,
+ 373, 544, 576, 597, 629, 128, 264, 265,
+ 269, 270, 383, 384, 520, 521, 525, 526,
+ 639, 288, 320, 325, 357, 544, 576, 581,
+ 613, 128, 264, 265, 269, 270, 383, 384,
+ 520, 521, 525, 526, 639, 288, 320, 339,
+ 371, 544, 576, 595, 627, 128, 264, 265,
+ 269, 270, 383, 384, 520, 521, 525, 526,
+ 639, 288, 320, 340, 372, 544, 576, 596,
+ 628, 128, 264, 265, 269, 270, 383, 384,
+ 520, 521, 525, 526, 639, 288, 320, 325,
+ 339, 340, 357, 371, 372, 544, 576, 581,
+ 595, 596, 613, 627, 628, 128, 264, 265,
+ 269, 270, 383, 384, 520, 521, 525, 526,
+ 639, 288, 320, 339, 371, 544, 576, 595,
+ 627, 128, 264, 265, 269, 270, 383, 384,
+ 520, 521, 525, 526, 639, 288, 320, 339,
+ 371, 544, 576, 595, 627, 128, 264, 265,
+ 269, 270, 383, 384, 520, 521, 525, 526,
+ 639, 288, 320, 329, 361, 544, 576, 585,
+ 617, 128, 264, 265, 269, 270, 383, 384,
+ 520, 521, 525, 526, 639, 288, 320, 335,
+ 367, 544, 576, 591, 623, 128, 264, 265,
+ 269, 270, 383, 384, 520, 521, 525, 526,
+ 639, 288, 320, 334, 366, 544, 576, 590,
+ 622, 128, 264, 265, 269, 270, 383, 384,
+ 520, 521, 525, 526, 639, 288, 320, 321,
+ 338, 339, 353, 370, 371, 544, 576, 577,
+ 594, 595, 609, 626, 627, 128, 264, 265,
+ 269, 270, 383, 384, 520, 521, 525, 526,
+ 639, 288, 320, 321, 338, 339, 353, 370,
+ 371, 544, 576, 577, 594, 595, 609, 626,
+ 627, 128, 264, 265, 269, 270, 383, 384,
+ 520, 521, 525, 526, 639, 288, 320, 323,
+ 355, 544, 576, 579, 611, 128, 264, 265,
+ 269, 270, 383, 384, 520, 521, 525, 526,
+ 639, 288, 320, 331, 363, 544, 576, 587,
+ 619, 128, 264, 265, 269, 270, 383, 384,
+ 520, 521, 525, 526, 639, 288, 320, 321,
+ 338, 339, 353, 370, 371, 544, 576, 577,
+ 594, 595, 609, 626, 627, 128, 264, 265,
+ 269, 270, 383, 384, 520, 521, 525, 526,
+ 639, 288, 320, 321, 323, 338, 339, 353,
+ 355, 370, 371, 544, 576, 577, 579, 594,
+ 595, 609, 611, 626, 627, 265, 269, 384,
+ 520, 521, 525, 526, 639, 320, 340, 372,
+ 576, 596, 628, 384, 639, 320, 329, 361,
+ 576, 585, 617, 384, 639, 320, 335, 367,
+ 576, 591, 623, 384, 639, 320, 334, 366,
+ 576, 590, 622, 384, 639, 288, 320, 321,
+ 338, 339, 353, 370, 371, 544, 576, 577,
+ 594, 595, 609, 626, 627, 265, 269, 384,
+ 520, 521, 525, 526, 639, 288, 320, 321,
+ 325, 338, 339, 353, 357, 370, 371, 544,
+ 576, 577, 581, 594, 595, 609, 613, 626,
+ 627, 265, 269, 384, 520, 521, 525, 526,
+ 639, 320, 337, 369, 576, 593, 625, 384,
+ 639, 320, 341, 373, 576, 597, 629, 384,
+ 639, 320, 325, 357, 576, 581, 613, 384,
+ 639, 320, 339, 371, 576, 595, 627, 384,
+ 639, 320, 340, 372, 576, 596, 628, 384,
+ 639, 320, 325, 339, 340, 357, 371, 372,
+ 576, 581, 595, 596, 613, 627, 628, 384,
+ 639, 320, 339, 371, 576, 595, 627, 384,
+ 639, 320, 339, 371, 576, 595, 627, 384,
+ 639, 320, 329, 361, 576, 585, 617, 384,
+ 639, 320, 335, 367, 576, 591, 623, 384,
+ 639, 320, 334, 366, 576, 590, 622, 384,
+ 639, 288, 320, 321, 338, 339, 353, 370,
+ 371, 544, 576, 577, 594, 595, 609, 626,
+ 627, 265, 269, 384, 520, 521, 525, 526,
+ 639, 288, 320, 321, 338, 339, 353, 370,
+ 371, 544, 576, 577, 594, 595, 609, 626,
+ 627, 265, 269, 384, 520, 521, 525, 526,
+ 639, 320, 323, 355, 576, 579, 611, 384,
+ 639, 320, 331, 363, 576, 587, 619, 384,
+ 639, 288, 320, 321, 338, 339, 353, 370,
+ 371, 544, 576, 577, 594, 595, 609, 626,
+ 627, 265, 269, 384, 520, 521, 525, 526,
+ 639, 288, 301, 320, 321, 323, 324, 325,
+ 326, 328, 329, 332, 335, 336, 338, 339,
+ 340, 344, 353, 355, 356, 357, 358, 360,
+ 361, 364, 367, 368, 370, 371, 372, 376,
+ 544, 557, 576, 577, 583, 588, 593, 600,
+ 609, 615, 620, 625, 632, 128, 383, 384,
+ 578, 579, 585, 586, 590, 591, 596, 597,
+ 610, 611, 617, 618, 622, 623, 628, 629,
+ 639, 288, 320, 333, 365, 544, 576, 128,
+ 383, 384, 639, 288, 320, 326, 358, 544,
+ 576, 128, 383, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 128, 383, 384,
+ 639, 288, 320, 321, 353, 544, 576, 128,
+ 383, 384, 639, 288, 320, 336, 368, 544,
+ 576, 128, 383, 384, 639, 288, 320, 339,
+ 371, 544, 576, 128, 383, 384, 639, 288,
+ 320, 321, 323, 324, 325, 326, 328, 329,
+ 332, 335, 336, 338, 339, 340, 344, 353,
+ 355, 356, 357, 358, 360, 361, 364, 367,
+ 368, 370, 371, 372, 376, 544, 576, 128,
+ 383, 384, 639, 288, 320, 328, 334, 360,
+ 366, 544, 576, 128, 383, 384, 639, 288,
+ 320, 323, 355, 544, 576, 128, 383, 384,
+ 639, 288, 320, 336, 368, 544, 576, 128,
+ 383, 384, 639, 288, 320, 342, 374, 544,
+ 576, 128, 383, 384, 639, 288, 308, 310,
+ 320, 544, 576, 128, 383, 384, 639, 288,
+ 320, 321, 323, 324, 325, 326, 328, 329,
+ 332, 335, 336, 338, 339, 340, 344, 353,
+ 355, 356, 357, 358, 360, 361, 364, 367,
+ 368, 370, 371, 372, 376, 544, 576, 128,
+ 383, 384, 639, 288, 320, 342, 344, 374,
+ 376, 544, 576, 128, 383, 384, 639, 288,
+ 320, 325, 357, 544, 576, 128, 383, 384,
+ 639, 288, 320, 334, 366, 544, 576, 128,
+ 383, 384, 639, 288, 320, 340, 372, 544,
+ 576, 128, 383, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 128, 383, 384,
+ 639, 288, 320, 338, 370, 544, 576, 128,
+ 383, 384, 639, 288, 320, 335, 367, 544,
+ 576, 128, 383, 384, 639, 288, 320, 333,
+ 365, 544, 576, 128, 383, 384, 639, 288,
+ 320, 321, 323, 324, 325, 326, 328, 329,
+ 332, 335, 336, 338, 339, 340, 344, 353,
+ 355, 356, 357, 358, 360, 361, 364, 367,
+ 368, 370, 371, 372, 376, 544, 576, 128,
+ 383, 384, 639, 288, 320, 325, 357, 544,
+ 576, 128, 383, 384, 639, 288, 320, 321,
+ 353, 544, 576, 128, 383, 384, 639, 288,
+ 320, 324, 356, 544, 576, 128, 383, 384,
+ 639, 288, 320, 325, 357, 544, 576, 128,
+ 383, 384, 639, 288, 320, 338, 370, 544,
+ 576, 128, 383, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 128, 383, 384,
+ 639, 288, 320, 333, 336, 365, 368, 544,
+ 576, 128, 383, 384, 639, 288, 320, 336,
+ 368, 544, 576, 128, 383, 384, 639, 288,
+ 320, 329, 341, 361, 373, 544, 576, 128,
+ 383, 384, 639, 288, 320, 321, 323, 324,
+ 325, 326, 328, 329, 332, 335, 336, 338,
+ 339, 340, 344, 353, 355, 356, 357, 358,
+ 360, 361, 364, 367, 368, 370, 371, 372,
+ 376, 544, 576, 128, 383, 384, 639, 288,
+ 320, 335, 367, 544, 576, 128, 383, 384,
+ 639, 288, 320, 323, 355, 544, 576, 128,
+ 383, 384, 639, 288, 320, 321, 353, 544,
+ 576, 128, 383, 384, 639, 288, 320, 332,
+ 364, 544, 576, 128, 383, 384, 639, 288,
+ 301, 320, 544, 576, 128, 383, 384, 639,
+ 288, 320, 329, 336, 361, 368, 544, 576,
+ 128, 383, 384, 639, 288, 320, 336, 368,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 321, 323, 324, 325, 326, 328, 329, 332,
+ 335, 336, 338, 339, 340, 344, 353, 355,
+ 356, 357, 358, 360, 361, 364, 367, 368,
+ 370, 371, 372, 376, 544, 576, 128, 383,
+ 384, 639, 288, 320, 336, 368, 544, 576,
+ 128, 383, 384, 639, 288, 320, 329, 361,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 324, 356, 544, 576, 128, 383, 384, 639,
+ 288, 320, 321, 323, 324, 325, 326, 328,
+ 329, 332, 335, 336, 338, 339, 340, 344,
+ 353, 355, 356, 357, 358, 360, 361, 364,
+ 367, 368, 370, 371, 372, 376, 544, 576,
+ 128, 383, 384, 639, 288, 320, 321, 323,
+ 343, 353, 355, 375, 544, 576, 128, 383,
+ 384, 639, 288, 320, 339, 340, 345, 371,
+ 372, 377, 544, 576, 128, 383, 384, 639,
+ 288, 320, 339, 371, 544, 576, 128, 383,
+ 384, 639, 288, 320, 343, 375, 544, 576,
+ 128, 383, 384, 639, 288, 320, 335, 367,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 338, 370, 544, 576, 128, 383, 384, 639,
+ 288, 320, 324, 356, 544, 576, 128, 383,
+ 384, 639, 288, 320, 321, 323, 324, 325,
+ 326, 328, 329, 332, 335, 336, 338, 339,
+ 340, 344, 353, 355, 356, 357, 358, 360,
+ 361, 364, 367, 368, 370, 371, 372, 376,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 325, 357, 544, 576, 128, 383, 384, 639,
+ 288, 320, 321, 353, 544, 576, 128, 383,
+ 384, 639, 288, 320, 332, 364, 544, 576,
+ 128, 383, 384, 639, 288, 320, 333, 365,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 321, 323, 324, 325, 326, 328, 329, 332,
+ 335, 336, 338, 339, 340, 344, 353, 355,
+ 356, 357, 358, 360, 361, 364, 367, 368,
+ 370, 371, 372, 376, 544, 576, 128, 383,
+ 384, 639, 288, 320, 325, 329, 333, 340,
+ 357, 361, 365, 372, 544, 576, 128, 383,
+ 384, 639, 288, 320, 323, 355, 544, 576,
+ 128, 383, 384, 639, 288, 320, 321, 323,
+ 324, 325, 326, 328, 329, 332, 335, 336,
+ 338, 339, 340, 344, 353, 355, 356, 357,
+ 358, 360, 361, 364, 367, 368, 370, 371,
+ 372, 376, 544, 576, 128, 383, 384, 639,
+ 288, 320, 335, 367, 544, 576, 128, 383,
+ 384, 639, 288, 320, 321, 323, 324, 325,
+ 326, 328, 329, 332, 335, 336, 338, 339,
+ 340, 344, 353, 355, 356, 357, 358, 360,
+ 361, 364, 367, 368, 370, 371, 372, 376,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 336, 368, 544, 576, 128, 383, 384, 639,
+ 288, 320, 321, 323, 324, 325, 326, 328,
+ 329, 332, 335, 336, 338, 339, 340, 344,
+ 353, 355, 356, 357, 358, 360, 361, 364,
+ 367, 368, 370, 371, 372, 376, 544, 576,
+ 128, 383, 384, 639, 288, 320, 324, 327,
+ 332, 356, 359, 364, 544, 576, 128, 383,
+ 384, 639, 288, 320, 321, 323, 324, 325,
+ 326, 328, 329, 332, 335, 336, 338, 339,
+ 340, 344, 353, 355, 356, 357, 358, 360,
+ 361, 364, 367, 368, 370, 371, 372, 376,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 323, 355, 544, 576, 128, 383, 384, 639,
+ 288, 320, 335, 367, 544, 576, 128, 383,
+ 384, 639, 288, 320, 333, 365, 544, 576,
+ 128, 383, 384, 639, 288, 320, 336, 368,
+ 544, 576, 128, 383, 384, 639, 288, 301,
+ 320, 544, 576, 128, 383, 384, 639, 288,
+ 320, 329, 361, 544, 576, 128, 383, 384,
+ 639, 288, 320, 324, 356, 544, 576, 128,
+ 383, 384, 639, 288, 320, 321, 323, 324,
+ 325, 326, 328, 329, 332, 335, 336, 338,
+ 339, 340, 344, 353, 355, 356, 357, 358,
+ 360, 361, 364, 367, 368, 370, 371, 372,
+ 376, 544, 576, 128, 383, 384, 639, 288,
+ 320, 325, 357, 544, 576, 128, 383, 384,
+ 639, 288, 320, 334, 366, 544, 576, 128,
+ 383, 384, 639, 288, 320, 340, 372, 544,
+ 576, 128, 383, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 128, 383, 384,
+ 639, 288, 320, 339, 371, 544, 576, 128,
+ 383, 384, 639, 288, 320, 323, 355, 544,
+ 576, 128, 383, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 128, 383, 384,
+ 639, 288, 320, 341, 373, 544, 576, 128,
+ 383, 384, 639, 288, 320, 334, 366, 544,
+ 576, 128, 383, 384, 639, 288, 301, 320,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 329, 336, 341, 361, 368, 373, 544, 576,
+ 128, 383, 384, 639, 288, 320, 336, 368,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 321, 323, 324, 325, 326, 328, 329, 332,
+ 335, 336, 338, 339, 340, 344, 353, 355,
+ 356, 357, 358, 360, 361, 364, 367, 368,
+ 370, 371, 372, 376, 544, 576, 128, 383,
+ 384, 639, 288, 320, 335, 343, 367, 375,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 338, 370, 544, 576, 128, 383, 384, 639,
+ 288, 320, 340, 372, 544, 576, 128, 383,
+ 384, 639, 288, 320, 321, 323, 324, 325,
+ 326, 328, 329, 332, 335, 336, 338, 339,
+ 340, 344, 353, 355, 356, 357, 358, 360,
+ 361, 364, 367, 368, 370, 371, 372, 376,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 324, 356, 544, 576, 128, 383, 384, 639,
+ 288, 320, 321, 323, 324, 325, 326, 328,
+ 329, 332, 335, 336, 338, 339, 340, 344,
+ 353, 355, 356, 357, 358, 360, 361, 364,
+ 367, 368, 370, 371, 372, 376, 544, 576,
+ 128, 383, 384, 639, 288, 320, 339, 371,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 338, 370, 544, 576, 128, 383, 384, 639,
+ 288, 320, 321, 323, 324, 325, 326, 328,
+ 329, 332, 335, 336, 338, 339, 340, 344,
+ 353, 355, 356, 357, 358, 360, 361, 364,
+ 367, 368, 370, 371, 372, 376, 544, 576,
+ 128, 383, 384, 639, 288, 320, 328, 360,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 321, 323, 324, 325, 326, 328, 329, 332,
+ 335, 336, 338, 339, 340, 344, 353, 355,
+ 356, 357, 358, 360, 361, 364, 367, 368,
+ 370, 371, 372, 376, 544, 576, 128, 383,
+ 384, 639, 288, 320, 321, 323, 324, 325,
+ 326, 328, 329, 332, 335, 336, 338, 339,
+ 340, 344, 353, 355, 356, 357, 358, 360,
+ 361, 364, 367, 368, 370, 371, 372, 376,
+ 544, 576, 588, 620, 128, 383, 384, 639,
+ 288, 320, 335, 367, 544, 576, 128, 383,
+ 384, 639, 288, 320, 321, 353, 544, 576,
+ 128, 383, 384, 639, 288, 320, 324, 356,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 321, 323, 324, 325, 326, 328, 329, 332,
+ 335, 336, 338, 339, 340, 344, 353, 355,
+ 356, 357, 358, 360, 361, 364, 367, 368,
+ 370, 371, 372, 376, 544, 576, 128, 383,
+ 384, 639, 288, 320, 339, 371, 544, 576,
+ 128, 383, 384, 639, 288, 320, 323, 355,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 326, 358, 544, 576, 128, 383, 384, 639,
+ 288, 301, 320, 544, 576, 128, 383, 384,
+ 639, 288, 320, 329, 336, 340, 361, 368,
+ 372, 544, 576, 128, 383, 384, 639, 288,
+ 320, 336, 368, 544, 576, 128, 383, 384,
+ 639, 288, 320, 321, 323, 324, 325, 326,
+ 328, 329, 332, 335, 336, 338, 339, 340,
+ 344, 353, 355, 356, 357, 358, 360, 361,
+ 364, 367, 368, 370, 371, 372, 376, 544,
+ 576, 128, 383, 384, 639, 288, 320, 335,
+ 367, 544, 576, 128, 383, 384, 639, 288,
+ 320, 338, 370, 544, 576, 128, 383, 384,
+ 639, 288, 320, 340, 372, 544, 576, 128,
+ 383, 384, 639, 288, 320, 321, 323, 324,
+ 325, 326, 328, 329, 332, 335, 336, 338,
+ 339, 340, 344, 353, 355, 356, 357, 358,
+ 360, 361, 364, 367, 368, 370, 371, 372,
+ 376, 544, 576, 128, 383, 384, 639, 288,
+ 320, 338, 370, 544, 576, 128, 383, 384,
+ 639, 288, 320, 321, 353, 544, 576, 128,
+ 383, 384, 639, 288, 320, 334, 366, 544,
+ 576, 128, 383, 384, 639, 288, 320, 339,
+ 371, 544, 576, 128, 383, 384, 639, 288,
+ 320, 321, 323, 324, 325, 326, 328, 329,
+ 332, 335, 336, 338, 339, 340, 344, 353,
+ 355, 356, 357, 358, 360, 361, 364, 367,
+ 368, 370, 371, 372, 376, 544, 576, 128,
+ 383, 384, 639, 288, 320, 335, 367, 544,
+ 576, 128, 383, 384, 639, 288, 320, 338,
+ 370, 544, 576, 128, 383, 384, 639, 288,
+ 320, 340, 372, 544, 576, 128, 383, 384,
+ 639, 288, 320, 321, 323, 324, 325, 326,
+ 328, 329, 332, 335, 336, 338, 339, 340,
+ 344, 353, 355, 356, 357, 358, 360, 361,
+ 364, 367, 368, 370, 371, 372, 376, 544,
+ 576, 128, 383, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 128, 383, 384,
+ 639, 288, 320, 342, 374, 544, 576, 128,
+ 383, 384, 639, 288, 310, 320, 544, 576,
+ 128, 383, 384, 639, 288, 320, 321, 323,
+ 324, 325, 326, 328, 329, 332, 335, 336,
+ 338, 339, 340, 344, 353, 355, 356, 357,
+ 358, 360, 361, 364, 367, 368, 370, 371,
+ 372, 376, 544, 576, 128, 383, 384, 639,
+ 288, 320, 336, 368, 544, 576, 128, 383,
+ 384, 639, 288, 320, 329, 361, 544, 576,
+ 128, 383, 384, 639, 288, 320, 338, 370,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 325, 357, 544, 576, 128, 383, 384, 639,
+ 288, 320, 339, 371, 544, 576, 128, 383,
+ 384, 639, 288, 320, 321, 323, 324, 325,
+ 326, 328, 329, 332, 335, 336, 338, 339,
+ 340, 344, 353, 355, 356, 357, 358, 360,
+ 361, 364, 367, 368, 370, 371, 372, 376,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 321, 339, 353, 371, 544, 576, 128, 383,
+ 384, 639, 288, 320, 333, 365, 544, 576,
+ 128, 383, 384, 639, 288, 320, 325, 357,
+ 544, 576, 128, 383, 384, 639, 288, 320,
+ 321, 323, 324, 325, 326, 328, 329, 332,
+ 335, 336, 338, 339, 340, 344, 353, 355,
+ 356, 357, 358, 360, 361, 364, 367, 368,
+ 370, 371, 372, 376, 544, 576, 128, 383,
+ 384, 639, 288, 301, 320, 544, 576, 128,
+ 383, 384, 639, 288, 320, 334, 366, 544,
+ 576, 128, 383, 384, 639, 288, 320, 321,
+ 353, 544, 576, 128, 383, 384, 639, 288,
+ 320, 336, 368, 544, 576, 128, 383, 384,
+ 639, 288, 320, 340, 372, 544, 576, 128,
+ 383, 384, 639, 288, 320, 338, 370, 544,
+ 576, 128, 383, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 128, 383, 384,
+ 639, 288, 301, 320, 321, 323, 324, 325,
+ 326, 328, 329, 332, 335, 336, 338, 339,
+ 340, 344, 353, 355, 356, 357, 358, 360,
+ 361, 364, 367, 368, 370, 371, 372, 376,
+ 544, 557, 576, 577, 579, 580, 581, 582,
+ 584, 585, 588, 591, 592, 594, 595, 596,
+ 600, 609, 611, 612, 613, 614, 616, 617,
+ 620, 623, 624, 626, 627, 628, 632, 128,
+ 383, 384, 639, 288, 320, 321, 323, 324,
+ 325, 326, 328, 329, 332, 335, 336, 338,
+ 339, 340, 344, 353, 355, 356, 357, 358,
+ 360, 361, 364, 367, 368, 370, 371, 372,
+ 376, 544, 576, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 384, 639, 288,
+ 320, 321, 323, 324, 325, 326, 328, 329,
+ 332, 335, 336, 338, 339, 340, 344, 353,
+ 355, 356, 357, 358, 360, 361, 364, 367,
+ 368, 370, 371, 372, 376, 544, 576, 384,
+ 639, 288, 320, 321, 323, 324, 325, 326,
+ 328, 329, 332, 335, 336, 338, 339, 340,
+ 344, 353, 355, 356, 357, 358, 360, 361,
+ 364, 367, 368, 370, 371, 372, 376, 544,
+ 576, 384, 639, 288, 320, 321, 323, 324,
+ 325, 326, 328, 329, 332, 335, 336, 338,
+ 339, 340, 344, 353, 355, 356, 357, 358,
+ 360, 361, 364, 367, 368, 370, 371, 372,
+ 376, 544, 576, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 384, 639, 288,
+ 320, 321, 323, 324, 325, 326, 328, 329,
+ 332, 335, 336, 338, 339, 340, 344, 353,
+ 355, 356, 357, 358, 360, 361, 364, 367,
+ 368, 370, 371, 372, 376, 544, 576, 384,
+ 639, 288, 320, 321, 323, 324, 325, 326,
+ 328, 329, 332, 335, 336, 338, 339, 340,
+ 344, 353, 355, 356, 357, 358, 360, 361,
+ 364, 367, 368, 370, 371, 372, 376, 544,
+ 576, 384, 639, 288, 320, 321, 323, 324,
+ 325, 326, 328, 329, 332, 335, 336, 338,
+ 339, 340, 344, 353, 355, 356, 357, 358,
+ 360, 361, 364, 367, 368, 370, 371, 372,
+ 376, 544, 576, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 384, 639, 288,
+ 320, 321, 323, 324, 325, 326, 328, 329,
+ 332, 335, 336, 338, 339, 340, 344, 353,
+ 355, 356, 357, 358, 360, 361, 364, 367,
+ 368, 370, 371, 372, 376, 544, 576, 384,
+ 639, 288, 320, 321, 323, 324, 325, 326,
+ 328, 329, 332, 335, 336, 338, 339, 340,
+ 344, 353, 355, 356, 357, 358, 360, 361,
+ 364, 367, 368, 370, 371, 372, 376, 544,
+ 576, 384, 639, 288, 320, 321, 323, 324,
+ 325, 326, 328, 329, 332, 335, 336, 338,
+ 339, 340, 344, 353, 355, 356, 357, 358,
+ 360, 361, 364, 367, 368, 370, 371, 372,
+ 376, 544, 576, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 384, 639, 288,
+ 320, 321, 323, 324, 325, 326, 328, 329,
+ 332, 335, 336, 338, 339, 340, 344, 353,
+ 355, 356, 357, 358, 360, 361, 364, 367,
+ 368, 370, 371, 372, 376, 544, 576, 384,
+ 639, 288, 320, 321, 323, 324, 325, 326,
+ 328, 329, 332, 335, 336, 338, 339, 340,
+ 344, 353, 355, 356, 357, 358, 360, 361,
+ 364, 367, 368, 370, 371, 372, 376, 544,
+ 576, 384, 639, 288, 320, 321, 323, 324,
+ 325, 326, 328, 329, 332, 335, 336, 338,
+ 339, 340, 344, 353, 355, 356, 357, 358,
+ 360, 361, 364, 367, 368, 370, 371, 372,
+ 376, 544, 576, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 384, 639, 288,
+ 320, 321, 323, 324, 325, 326, 328, 329,
+ 332, 335, 336, 338, 339, 340, 344, 353,
+ 355, 356, 357, 358, 360, 361, 364, 367,
+ 368, 370, 371, 372, 376, 544, 576, 384,
+ 639, 288, 320, 321, 323, 324, 325, 326,
+ 328, 329, 332, 335, 336, 338, 339, 340,
+ 344, 353, 355, 356, 357, 358, 360, 361,
+ 364, 367, 368, 370, 371, 372, 376, 544,
+ 576, 384, 639, 288, 320, 321, 323, 324,
+ 325, 326, 328, 329, 332, 335, 336, 338,
+ 339, 340, 344, 353, 355, 356, 357, 358,
+ 360, 361, 364, 367, 368, 370, 371, 372,
+ 376, 544, 576, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 384, 639, 288,
+ 320, 321, 323, 324, 325, 326, 328, 329,
+ 332, 335, 336, 338, 339, 340, 344, 353,
+ 355, 356, 357, 358, 360, 361, 364, 367,
+ 368, 370, 371, 372, 376, 544, 576, 384,
+ 639, 288, 320, 321, 323, 324, 325, 326,
+ 328, 329, 332, 335, 336, 338, 339, 340,
+ 344, 353, 355, 356, 357, 358, 360, 361,
+ 364, 367, 368, 370, 371, 372, 376, 544,
+ 576, 588, 620, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 384, 639, 288,
+ 320, 321, 323, 324, 325, 326, 328, 329,
+ 332, 335, 336, 338, 339, 340, 344, 353,
+ 355, 356, 357, 358, 360, 361, 364, 367,
+ 368, 370, 371, 372, 376, 544, 576, 384,
+ 639, 288, 320, 321, 323, 324, 325, 326,
+ 328, 329, 332, 335, 336, 338, 339, 340,
+ 344, 353, 355, 356, 357, 358, 360, 361,
+ 364, 367, 368, 370, 371, 372, 376, 544,
+ 576, 384, 639, 288, 320, 321, 323, 324,
+ 325, 326, 328, 329, 332, 335, 336, 338,
+ 339, 340, 344, 353, 355, 356, 357, 358,
+ 360, 361, 364, 367, 368, 370, 371, 372,
+ 376, 544, 576, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 384, 639, 288,
+ 320, 321, 323, 324, 325, 326, 328, 329,
+ 332, 335, 336, 338, 339, 340, 344, 353,
+ 355, 356, 357, 358, 360, 361, 364, 367,
+ 368, 370, 371, 372, 376, 544, 576, 384,
+ 639, 288, 320, 321, 323, 324, 325, 326,
+ 328, 329, 332, 335, 336, 338, 339, 340,
+ 344, 353, 355, 356, 357, 358, 360, 361,
+ 364, 367, 368, 370, 371, 372, 376, 544,
+ 576, 384, 639, 288, 320, 321, 323, 324,
+ 325, 326, 328, 329, 332, 335, 336, 338,
+ 339, 340, 344, 353, 355, 356, 357, 358,
+ 360, 361, 364, 367, 368, 370, 371, 372,
+ 376, 544, 576, 384, 639, 288, 320, 321,
+ 323, 324, 325, 326, 328, 329, 332, 335,
+ 336, 338, 339, 340, 344, 353, 355, 356,
+ 357, 358, 360, 361, 364, 367, 368, 370,
+ 371, 372, 376, 544, 576, 384, 639, 288,
+ 320, 321, 323, 324, 325, 326, 328, 329,
+ 332, 335, 336, 338, 339, 340, 344, 353,
+ 355, 356, 357, 358, 360, 361, 364, 367,
+ 368, 370, 371, 372, 376, 544, 576, 384,
+ 639, 320, 333, 365, 576, 589, 621, 384,
+ 639, 320, 326, 358, 576, 582, 614, 384,
+ 639, 320, 321, 353, 576, 577, 609, 384,
+ 639, 320, 336, 368, 576, 592, 624, 384,
+ 639, 320, 339, 371, 576, 595, 627, 384,
+ 639, 320, 328, 334, 360, 366, 576, 584,
+ 590, 616, 622, 384, 639, 320, 323, 355,
+ 576, 579, 611, 384, 639, 320, 336, 368,
+ 576, 592, 624, 384, 639, 320, 342, 374,
+ 576, 598, 630, 384, 639, 308, 310, 320,
+ 564, 566, 576, 384, 639, 320, 321, 339,
+ 353, 371, 576, 577, 595, 609, 627, 384,
+ 639, 320, 333, 365, 576, 589, 621, 384,
+ 639, 320, 325, 357, 576, 581, 613, 384,
+ 639, 301, 320, 557, 576, 384, 639, 320,
+ 334, 366, 576, 590, 622, 384, 639, 320,
+ 321, 353, 576, 577, 609, 384, 639, 320,
+ 336, 368, 576, 592, 624, 384, 639, 320,
+ 340, 372, 576, 596, 628, 384, 639, 320,
+ 338, 370, 576, 594, 626, 384, 639, 320,
+ 342, 344, 374, 376, 576, 598, 600, 630,
+ 632, 384, 639, 320, 325, 357, 576, 581,
+ 613, 384, 639, 320, 334, 366, 576, 590,
+ 622, 384, 639, 320, 340, 372, 576, 596,
+ 628, 384, 639, 320, 336, 368, 576, 592,
+ 624, 384, 639, 320, 329, 361, 576, 585,
+ 617, 384, 639, 320, 338, 370, 576, 594,
+ 626, 384, 639, 320, 325, 357, 576, 581,
+ 613, 384, 639, 320, 339, 371, 576, 595,
+ 627, 384, 639, 320, 338, 370, 576, 594,
+ 626, 384, 639, 320, 335, 367, 576, 591,
+ 623, 384, 639, 320, 333, 365, 576, 589,
+ 621, 384, 639, 320, 325, 357, 576, 581,
+ 613, 384, 639, 320, 321, 353, 576, 577,
+ 609, 384, 639, 320, 324, 356, 576, 580,
+ 612, 384, 639, 320, 325, 357, 576, 581,
+ 613, 384, 639, 320, 338, 370, 576, 594,
+ 626, 384, 639, 320, 333, 336, 365, 368,
+ 576, 589, 592, 621, 624, 384, 639, 320,
+ 336, 368, 576, 592, 624, 384, 639, 320,
+ 329, 341, 361, 373, 576, 585, 597, 617,
+ 629, 384, 639, 320, 342, 374, 576, 598,
+ 630, 384, 639, 310, 320, 566, 576, 384,
+ 639, 320, 335, 367, 576, 591, 623, 384,
+ 639, 320, 323, 355, 576, 579, 611, 384,
+ 639, 320, 321, 353, 576, 577, 609, 384,
+ 639, 320, 332, 364, 576, 588, 620, 384,
+ 639, 301, 320, 557, 576, 384, 639, 320,
+ 329, 336, 361, 368, 576, 585, 592, 617,
+ 624, 384, 639, 320, 336, 368, 576, 592,
+ 624, 384, 639, 320, 335, 367, 576, 591,
+ 623, 384, 639, 320, 338, 370, 576, 594,
+ 626, 384, 639, 320, 340, 372, 576, 596,
+ 628, 384, 639, 320, 336, 368, 576, 592,
+ 624, 384, 639, 320, 329, 361, 576, 585,
+ 617, 384, 639, 320, 324, 356, 576, 580,
+ 612, 384, 639, 320, 321, 323, 343, 353,
+ 355, 375, 576, 577, 579, 599, 609, 611,
+ 631, 384, 639, 320, 339, 340, 345, 371,
+ 372, 377, 576, 595, 596, 601, 627, 628,
+ 633, 384, 639, 320, 339, 371, 576, 595,
+ 627, 384, 639, 320, 343, 375, 576, 599,
+ 631, 384, 639, 320, 335, 367, 576, 591,
+ 623, 384, 639, 320, 338, 370, 576, 594,
+ 626, 384, 639, 320, 324, 356, 576, 580,
+ 612, 384, 639, 320, 328, 360, 576, 584,
+ 616, 384, 639, 288, 320, 321, 323, 324,
+ 325, 326, 328, 329, 332, 335, 336, 338,
+ 339, 340, 344, 353, 355, 356, 357, 358,
+ 360, 361, 364, 367, 368, 370, 371, 372,
+ 376, 544, 576, 588, 620, 384, 639, 320,
+ 335, 367, 576, 591, 623, 384, 639, 320,
+ 321, 353, 576, 577, 609, 384, 639, 320,
+ 324, 356, 576, 580, 612, 384, 639, 320,
+ 339, 371, 576, 595, 627, 384, 639, 320,
+ 323, 355, 576, 579, 611, 384, 639, 320,
+ 326, 358, 576, 582, 614, 384, 639, 301,
+ 320, 557, 576, 384, 639, 320, 329, 336,
+ 340, 361, 368, 372, 576, 585, 592, 596,
+ 617, 624, 628, 384, 639, 320, 336, 368,
+ 576, 592, 624, 384, 639, 320, 335, 367,
+ 576, 591, 623, 384, 639, 320, 338, 370,
+ 576, 594, 626, 384, 639, 320, 340, 372,
+ 576, 596, 628, 384, 639, 320, 338, 370,
+ 576, 594, 626, 384, 639, 320, 321, 353,
+ 576, 577, 609, 384, 639, 320, 334, 366,
+ 576, 590, 622, 384, 639, 320, 339, 371,
+ 576, 595, 627, 384, 639, 320, 325, 357,
+ 576, 581, 613, 384, 639, 320, 321, 353,
+ 576, 577, 609, 384, 639, 320, 332, 364,
+ 576, 588, 620, 384, 639, 320, 333, 365,
+ 576, 589, 621, 384, 639, 320, 325, 329,
+ 333, 340, 357, 361, 365, 372, 576, 581,
+ 585, 589, 596, 613, 617, 621, 628, 384,
+ 639, 320, 323, 355, 576, 579, 611, 384,
+ 639, 320, 324, 327, 332, 356, 359, 364,
+ 576, 580, 583, 588, 612, 615, 620, 384,
+ 639, 320, 323, 355, 576, 579, 611, 384,
+ 639, 320, 335, 367, 576, 591, 623, 384,
+ 639, 320, 333, 365, 576, 589, 621, 384,
+ 639, 320, 336, 368, 576, 592, 624, 384,
+ 639, 301, 320, 557, 576, 384, 639, 320,
+ 329, 361, 576, 585, 617, 384, 639, 320,
+ 324, 356, 576, 580, 612, 384, 639, 320,
+ 325, 357, 576, 581, 613, 384, 639, 320,
+ 334, 366, 576, 590, 622, 384, 639, 320,
+ 340, 372, 576, 596, 628, 384, 639, 320,
+ 339, 371, 576, 595, 627, 384, 639, 320,
+ 323, 355, 576, 579, 611, 384, 639, 320,
+ 341, 373, 576, 597, 629, 384, 639, 320,
+ 334, 366, 576, 590, 622, 384, 639, 301,
+ 320, 557, 576, 384, 639, 320, 329, 336,
+ 341, 361, 368, 373, 576, 585, 592, 597,
+ 617, 624, 629, 384, 639, 320, 336, 368,
+ 576, 592, 624, 384, 639, 320, 335, 343,
+ 367, 375, 576, 591, 599, 623, 631, 384,
+ 639, 320, 338, 370, 576, 594, 626, 384,
+ 639, 320, 340, 372, 576, 596, 628, 384,
+ 639, 320, 324, 356, 576, 580, 612, 384,
+ 639, 320, 339, 371, 576, 595, 627, 384,
+ 639, 320, 338, 370, 576, 594, 626, 384,
+ 639, 320, 335, 367, 576, 591, 623, 384,
+ 639, 320, 336, 368, 576, 592, 624, 384,
+ 639, 296, 297, 318, 552, 553, 574, 384,
+ 639, 297, 553, 384, 639, 297, 553, 384,
+ 639, 0
+ };
-static const short _demo_machine_parser_cmd_trans_keys[] = {
- 37, 800, 805, 1056, 1061, 777, 781, 896,
- 1032, 1033, 1037, 1038, 1151, 800, 1056, 777,
- 781, 896, 1032, 1033, 1037, 1038, 1151, 43,
- 79, 83, 111, 115, 78, 110, 70, 102,
- 73, 105, 71, 103, 45, 83, 115, 69,
- 84, 101, 116, 83, 115, 83, 115, 73,
- 105, 79, 111, 78, 110, 84, 116, 78,
- 110, 71, 103, 85, 117, 80, 112, 65,
- 77, 97, 109, 82, 114, 71, 103, 69,
- 101, 45, 77, 109, 69, 101, 83, 115,
- 83, 115, 65, 97, 71, 103, 69, 101,
- 83, 115, 83, 115, 65, 97, 71, 103,
- 69, 101, 80, 112, 84, 116, 79, 111,
- 78, 110, 83, 115, 85, 117, 66, 98,
- 73, 105, 83, 115, 72, 104, 71, 83,
- 103, 115, 83, 115, 84, 116, 69, 101,
- 82, 114, 67, 76, 77, 78, 84, 85,
- 99, 108, 109, 110, 116, 117, 69, 101,
- 78, 110, 65, 97, 82, 114, 73, 105,
- 79, 111, 68, 100, 69, 101, 79, 111,
- 69, 101, 69, 101, 80, 112, 83, 115,
- 79, 111, 80, 112, 66, 98, 67, 99,
- 82, 114, 73, 105, 66, 98, 69, 101,
- 77, 109, 69, 101, 78, 110, 73, 105,
- 84, 116, 76, 108, 80, 112, 68, 100,
- 76, 108, 69, 101, 77, 109, 70, 102,
- 77, 109, 80, 112, 65, 97, 67, 99,
- 75, 107, 83, 84, 115, 116, 68, 100,
- 73, 105, 79, 111, 73, 105, 68, 100,
- 69, 101, 79, 111, 45, 64, 84, 116,
- 73, 105, 79, 111, 78, 110, 81, 113,
- 85, 117, 69, 101, 83, 115, 84, 116,
- 69, 83, 84, 101, 115, 116, 83, 115,
- 83, 115, 73, 105, 79, 111, 78, 110,
- 67, 99, 75, 107, 77, 109, 70, 102,
- 65, 97, 80, 112, 83, 115, 72, 78,
- 104, 110, 67, 99, 80, 112, 86, 118,
- 52, 54, 86, 88, 118, 120, 69, 101,
- 78, 110, 84, 116, 82, 114, 79, 111,
- 77, 109, 69, 101, 65, 97, 68, 100,
- 69, 101, 82, 114, 77, 80, 109, 112,
- 80, 112, 73, 85, 105, 117, 79, 111,
- 67, 99, 65, 97, 76, 108, 45, 73,
- 80, 105, 112, 80, 112, 80, 112, 73,
- 105, 68, 100, 65, 67, 87, 97, 99,
- 119, 83, 84, 89, 115, 116, 121, 83,
- 115, 87, 119, 79, 111, 82, 114, 68,
- 100, 69, 101, 65, 97, 76, 108, 77,
- 109, 69, 73, 77, 84, 101, 105, 109,
- 116, 67, 99, 79, 111, 80, 112, 68,
- 71, 76, 100, 103, 108, 67, 99, 79,
- 111, 77, 109, 80, 112, 45, 73, 105,
- 68, 100, 69, 101, 78, 110, 84, 116,
- 83, 115, 67, 99, 85, 117, 78, 110,
- 45, 73, 80, 85, 105, 112, 117, 80,
- 112, 79, 87, 111, 119, 82, 114, 84,
- 116, 68, 100, 83, 115, 82, 114, 72,
- 104, 79, 111, 65, 97, 68, 100, 83,
- 115, 67, 99, 70, 102, 45, 73, 80,
- 84, 105, 112, 116, 80, 112, 79, 111,
- 82, 114, 84, 116, 82, 114, 65, 97,
- 78, 110, 83, 115, 79, 111, 82, 114,
- 84, 116, 86, 118, 54, 80, 112, 73,
- 105, 82, 114, 69, 101, 83, 115, 65,
- 83, 97, 115, 77, 109, 69, 101, 45,
- 78, 110, 65, 97, 80, 112, 84, 116,
- 82, 114, 62, 35, 37, 43, 45, 62,
- 896, 1151, 896, 1151, 288, 544, 265, 269,
- 384, 520, 521, 525, 526, 639, 384, 639,
- 43, 65, 67, 68, 69, 70, 72, 76,
- 77, 79, 80, 81, 82, 83, 86, 97,
- 99, 100, 101, 102, 104, 108, 109, 111,
- 112, 113, 114, 115, 118, 43, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 65, 67, 68, 69, 70, 72,
- 76, 77, 79, 80, 81, 82, 83, 85,
- 86, 97, 99, 100, 101, 102, 104, 108,
- 109, 111, 112, 113, 114, 115, 117, 118,
- 79, 83, 111, 115, 78, 110, 70, 102,
- 73, 105, 71, 103, 45, 83, 115, 69,
- 84, 101, 116, 83, 115, 83, 115, 73,
- 105, 79, 111, 78, 110, 65, 67, 68,
- 69, 70, 72, 76, 77, 79, 80, 81,
- 82, 83, 86, 97, 99, 100, 101, 102,
- 104, 108, 109, 111, 112, 113, 114, 115,
- 118, 65, 67, 68, 69, 70, 72, 76,
- 77, 79, 80, 81, 82, 83, 84, 85,
- 86, 97, 99, 100, 101, 102, 104, 108,
- 109, 111, 112, 113, 114, 115, 116, 117,
- 118, 65, 67, 68, 69, 70, 72, 76,
- 77, 79, 80, 81, 82, 83, 86, 88,
- 97, 99, 100, 101, 102, 104, 108, 109,
- 111, 112, 113, 114, 115, 118, 120, 84,
- 116, 65, 67, 68, 69, 70, 72, 76,
- 77, 79, 80, 81, 82, 83, 86, 97,
- 99, 100, 101, 102, 104, 108, 109, 111,
- 112, 113, 114, 115, 118, 65, 67, 68,
- 69, 70, 72, 73, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 105, 108, 109, 111, 112, 113,
- 114, 115, 118, 65, 67, 68, 69, 70,
- 72, 76, 77, 79, 80, 81, 82, 83,
- 85, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 117,
- 118, 78, 110, 71, 103, 85, 117, 80,
- 112, 65, 67, 68, 69, 70, 72, 76,
- 77, 79, 80, 81, 82, 83, 86, 97,
- 99, 100, 101, 102, 104, 108, 109, 111,
- 112, 113, 114, 115, 118, 65, 77, 97,
- 109, 82, 114, 71, 103, 69, 101, 45,
- 77, 109, 69, 101, 83, 115, 83, 115,
- 65, 97, 71, 103, 69, 101, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 65, 67, 68, 69, 70, 72,
- 76, 77, 79, 80, 81, 82, 83, 86,
- 97, 99, 100, 101, 102, 104, 108, 109,
- 111, 112, 113, 114, 115, 118, 83, 115,
- 83, 115, 65, 97, 71, 103, 69, 101,
- 65, 67, 68, 69, 70, 72, 76, 77,
- 79, 80, 81, 82, 83, 86, 97, 99,
- 100, 101, 102, 104, 108, 109, 111, 112,
- 113, 114, 115, 118, 80, 112, 84, 116,
- 65, 67, 68, 69, 70, 72, 73, 76,
- 77, 79, 80, 81, 82, 83, 86, 97,
- 99, 100, 101, 102, 104, 105, 108, 109,
- 111, 112, 113, 114, 115, 118, 79, 111,
- 78, 110, 83, 115, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 85, 117, 66, 98, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 73, 105, 83, 115, 72, 104, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 65, 67, 68, 69, 70, 72,
- 76, 77, 79, 80, 81, 82, 83, 85,
- 86, 97, 99, 100, 101, 102, 104, 108,
- 109, 111, 112, 113, 114, 115, 117, 118,
- 65, 67, 68, 69, 70, 72, 76, 77,
- 79, 80, 81, 82, 83, 85, 86, 97,
- 99, 100, 101, 102, 104, 108, 109, 111,
- 112, 113, 114, 115, 117, 118, 71, 83,
- 103, 115, 65, 67, 68, 69, 70, 72,
- 73, 76, 77, 79, 80, 81, 82, 83,
- 86, 97, 99, 100, 101, 102, 104, 105,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 83, 115, 84, 116, 69, 101, 82, 114,
- 65, 67, 68, 69, 70, 72, 76, 77,
- 79, 80, 81, 82, 83, 86, 97, 99,
- 100, 101, 102, 104, 108, 109, 111, 112,
- 113, 114, 115, 118, 67, 76, 77, 78,
- 84, 85, 99, 108, 109, 110, 116, 117,
- 69, 101, 78, 110, 65, 97, 82, 114,
- 73, 105, 79, 111, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 65, 67, 68, 69, 70, 72, 73, 76,
- 77, 79, 80, 81, 82, 83, 86, 97,
- 99, 100, 101, 102, 104, 105, 108, 109,
- 111, 112, 113, 114, 115, 118, 68, 100,
- 69, 101, 79, 111, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 69, 101, 69, 101, 80, 112, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 83, 115, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 79, 111, 80, 112, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 66, 98, 65, 67, 68, 69, 70, 72,
- 76, 77, 79, 80, 81, 82, 83, 86,
- 97, 99, 100, 101, 102, 104, 108, 109,
- 111, 112, 113, 114, 115, 118, 67, 99,
- 82, 114, 73, 105, 66, 98, 69, 101,
- 65, 67, 68, 69, 70, 72, 76, 77,
- 79, 80, 81, 82, 83, 86, 97, 99,
- 100, 101, 102, 104, 108, 109, 111, 112,
- 113, 114, 115, 118, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 85, 86, 97, 99, 100, 101, 102,
- 104, 108, 109, 111, 112, 113, 114, 115,
- 117, 118, 77, 109, 69, 101, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 78, 110, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 73, 105, 84, 116, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 76, 108, 80, 112, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 65, 67, 68, 69, 70, 72, 76, 77,
- 79, 80, 81, 82, 83, 86, 97, 99,
- 100, 101, 102, 104, 108, 109, 111, 112,
- 113, 114, 115, 118, 68, 100, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 76, 108, 69, 101, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 77, 109, 70, 102, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 77, 109, 80, 112, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 65, 97, 67, 99, 75, 107,
- 65, 67, 68, 69, 70, 72, 76, 77,
- 79, 80, 81, 82, 83, 86, 97, 99,
- 100, 101, 102, 104, 108, 109, 111, 112,
- 113, 114, 115, 118, 83, 84, 115, 116,
- 68, 100, 73, 105, 79, 111, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 73, 105, 68, 100, 69, 101,
- 79, 111, 65, 67, 68, 69, 70, 72,
- 76, 77, 79, 80, 81, 82, 83, 86,
- 97, 99, 100, 101, 102, 104, 108, 109,
- 111, 112, 113, 114, 115, 118, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 85, 86, 97, 99, 100,
- 101, 102, 104, 108, 109, 111, 112, 113,
- 114, 115, 117, 118, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 65, 67, 68, 69, 70, 72, 76, 77,
- 79, 80, 81, 82, 83, 84, 85, 86,
- 97, 99, 100, 101, 102, 104, 108, 109,
- 111, 112, 113, 114, 115, 116, 117, 118,
- 65, 67, 68, 69, 70, 72, 76, 77,
- 79, 80, 81, 82, 83, 86, 88, 97,
- 99, 100, 101, 102, 104, 108, 109, 111,
- 112, 113, 114, 115, 118, 120, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 65, 67, 68, 69, 70, 72,
- 73, 76, 77, 79, 80, 81, 82, 83,
- 86, 97, 99, 100, 101, 102, 104, 105,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 65, 67, 68, 69, 70, 72, 76, 77,
- 79, 80, 81, 82, 83, 85, 86, 97,
- 99, 100, 101, 102, 104, 108, 109, 111,
- 112, 113, 114, 115, 117, 118, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 65, 67, 68, 69, 70, 72,
- 76, 77, 79, 80, 81, 82, 83, 86,
- 97, 99, 100, 101, 102, 104, 108, 109,
- 111, 112, 113, 114, 115, 118, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 65, 67, 68, 69, 70, 72,
- 76, 77, 79, 80, 81, 82, 83, 86,
- 97, 99, 100, 101, 102, 104, 108, 109,
- 111, 112, 113, 114, 115, 118, 65, 67,
- 68, 69, 70, 72, 73, 76, 77, 79,
- 80, 81, 82, 83, 86, 97, 99, 100,
- 101, 102, 104, 105, 108, 109, 111, 112,
- 113, 114, 115, 118, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 65, 67, 68, 69, 70, 72, 76, 77,
- 79, 80, 81, 82, 83, 86, 97, 99,
- 100, 101, 102, 104, 108, 109, 111, 112,
- 113, 114, 115, 118, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 65, 67, 68, 69, 70, 72, 76, 77,
- 79, 80, 81, 82, 83, 85, 86, 97,
- 99, 100, 101, 102, 104, 108, 109, 111,
- 112, 113, 114, 115, 117, 118, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 85, 86, 97, 99, 100,
- 101, 102, 104, 108, 109, 111, 112, 113,
- 114, 115, 117, 118, 65, 67, 68, 69,
- 70, 72, 73, 76, 77, 79, 80, 81,
- 82, 83, 86, 97, 99, 100, 101, 102,
- 104, 105, 108, 109, 111, 112, 113, 114,
- 115, 118, 65, 67, 68, 69, 70, 72,
- 76, 77, 79, 80, 81, 82, 83, 86,
- 97, 99, 100, 101, 102, 104, 108, 109,
- 111, 112, 113, 114, 115, 118, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 65, 67, 68, 69, 70, 72,
- 73, 76, 77, 79, 80, 81, 82, 83,
- 86, 97, 99, 100, 101, 102, 104, 105,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 65, 67, 68, 69, 70, 72, 76, 77,
- 79, 80, 81, 82, 83, 86, 97, 99,
- 100, 101, 102, 104, 108, 109, 111, 112,
- 113, 114, 115, 118, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 65, 67, 68, 69, 70, 72, 76, 77,
- 79, 80, 81, 82, 83, 86, 97, 99,
- 100, 101, 102, 104, 108, 109, 111, 112,
- 113, 114, 115, 118, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 65, 67, 68, 69, 70, 72, 76, 77,
- 79, 80, 81, 82, 83, 86, 97, 99,
- 100, 101, 102, 104, 108, 109, 111, 112,
- 113, 114, 115, 118, 65, 67, 68, 69,
- 70, 72, 76, 77, 79, 80, 81, 82,
- 83, 86, 97, 99, 100, 101, 102, 104,
- 108, 109, 111, 112, 113, 114, 115, 118,
- 65, 67, 68, 69, 70, 72, 76, 77,
- 79, 80, 81, 82, 83, 85, 86, 97,
- 99, 100, 101, 102, 104, 108, 109, 111,
- 112, 113, 114, 115, 117, 118, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 65, 67, 68, 69, 70, 72,
- 76, 77, 79, 80, 81, 82, 83, 86,
- 97, 99, 100, 101, 102, 104, 108, 109,
- 111, 112, 113, 114, 115, 118, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 65, 67, 68, 69, 70, 72,
- 76, 77, 79, 80, 81, 82, 83, 86,
- 97, 99, 100, 101, 102, 104, 108, 109,
- 111, 112, 113, 114, 115, 118, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 65, 67, 68, 69, 70, 72,
- 76, 77, 79, 80, 81, 82, 83, 86,
- 97, 99, 100, 101, 102, 104, 108, 109,
- 111, 112, 113, 114, 115, 118, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 65, 67, 68, 69, 70, 72,
- 76, 77, 79, 80, 81, 82, 83, 86,
- 97, 99, 100, 101, 102, 104, 108, 109,
- 111, 112, 113, 114, 115, 118, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 65, 67, 68, 69, 70, 72,
- 76, 77, 79, 80, 81, 82, 83, 86,
- 97, 99, 100, 101, 102, 104, 108, 109,
- 111, 112, 113, 114, 115, 118, 65, 67,
- 68, 69, 70, 72, 76, 77, 79, 80,
- 81, 82, 83, 86, 97, 99, 100, 101,
- 102, 104, 108, 109, 111, 112, 113, 114,
- 115, 118, 65, 67, 68, 69, 70, 72,
- 76, 77, 79, 80, 81, 82, 83, 86,
- 97, 99, 100, 101, 102, 104, 108, 109,
- 111, 112, 113, 114, 115, 118, 288, 301,
- 320, 321, 323, 324, 325, 326, 328, 329,
- 332, 335, 336, 338, 339, 340, 344, 353,
- 355, 356, 357, 358, 360, 361, 364, 367,
- 368, 370, 371, 372, 376, 544, 557, 576,
- 577, 579, 580, 581, 582, 584, 585, 588,
- 591, 592, 594, 595, 596, 600, 609, 611,
- 612, 613, 614, 616, 617, 620, 623, 624,
- 626, 627, 628, 632, 128, 383, 384, 639,
- 288, 320, 544, 576, 128, 383, 384, 639,
- 288, 320, 544, 576, 384, 639, 32, 64,
- 65, 82, 83, 97, 114, 115, 9, 13,
- 32, 9, 13, 32, 9, 13, 32, 64,
- 65, 82, 83, 97, 114, 115, 9, 13,
- 32, 65, 67, 82, 83, 97, 99, 114,
- 115, 9, 13, 32, 84, 116, 9, 13,
- 32, 73, 105, 9, 13, 32, 79, 111,
- 9, 13, 32, 78, 110, 9, 13, 32,
- 65, 82, 83, 97, 114, 115, 9, 13,
- 32, 65, 69, 82, 83, 97, 101, 114,
- 115, 9, 13, 32, 81, 113, 9, 13,
- 32, 85, 117, 9, 13, 32, 69, 101,
- 9, 13, 32, 83, 115, 9, 13, 32,
- 84, 116, 9, 13, 32, 69, 83, 84,
- 101, 115, 116, 9, 13, 32, 83, 115,
- 9, 13, 32, 83, 115, 9, 13, 32,
- 73, 105, 9, 13, 32, 79, 111, 9,
- 13, 32, 78, 110, 9, 13, 32, 65,
- 82, 83, 97, 114, 115, 9, 13, 32,
- 65, 82, 83, 97, 114, 115, 9, 13,
- 32, 67, 99, 9, 13, 32, 75, 107,
- 9, 13, 32, 65, 82, 83, 97, 114,
- 115, 9, 13, 32, 65, 67, 82, 83,
- 97, 99, 114, 115, 9, 13, 32, 65,
- 82, 83, 97, 114, 115, 9, 13, 32,
- 65, 69, 82, 83, 97, 101, 114, 115,
- 9, 13, 32, 65, 82, 83, 97, 114,
- 115, 9, 13, 32, 65, 82, 83, 97,
- 114, 115, 9, 13, 32, 65, 82, 83,
- 97, 114, 115, 9, 13, 320, 576, 384,
- 639, 320, 576, 384, 639, 288, 320, 321,
- 338, 339, 353, 370, 371, 544, 576, 577,
- 594, 595, 609, 626, 627, 128, 264, 265,
- 269, 270, 383, 384, 520, 521, 525, 526,
- 639, 288, 320, 544, 576, 128, 264, 265,
- 269, 270, 383, 384, 520, 521, 525, 526,
- 639, 32, 64, 9, 13, 288, 320, 544,
- 576, 265, 269, 384, 520, 521, 525, 526,
- 639, 288, 320, 544, 576, 128, 264, 265,
- 269, 270, 383, 384, 520, 521, 525, 526,
- 639, 288, 320, 321, 338, 339, 353, 370,
- 371, 544, 576, 577, 594, 595, 609, 626,
- 627, 128, 264, 265, 269, 270, 383, 384,
- 520, 521, 525, 526, 639, 288, 320, 321,
- 323, 338, 339, 353, 355, 370, 371, 544,
- 576, 577, 579, 594, 595, 609, 611, 626,
- 627, 128, 264, 265, 269, 270, 383, 384,
- 520, 521, 525, 526, 639, 288, 320, 340,
- 372, 544, 576, 596, 628, 128, 264, 265,
- 269, 270, 383, 384, 520, 521, 525, 526,
- 639, 288, 320, 329, 361, 544, 576, 585,
- 617, 128, 264, 265, 269, 270, 383, 384,
- 520, 521, 525, 526, 639, 288, 320, 335,
- 367, 544, 576, 591, 623, 128, 264, 265,
- 269, 270, 383, 384, 520, 521, 525, 526,
- 639, 288, 320, 334, 366, 544, 576, 590,
- 622, 128, 264, 265, 269, 270, 383, 384,
- 520, 521, 525, 526, 639, 288, 320, 321,
- 338, 339, 353, 370, 371, 544, 576, 577,
- 594, 595, 609, 626, 627, 128, 264, 265,
- 269, 270, 383, 384, 520, 521, 525, 526,
- 639, 288, 320, 321, 325, 338, 339, 353,
- 357, 370, 371, 544, 576, 577, 581, 594,
- 595, 609, 613, 626, 627, 128, 264, 265,
- 269, 270, 383, 384, 520, 521, 525, 526,
- 639, 288, 320, 337, 369, 544, 576, 593,
- 625, 128, 264, 265, 269, 270, 383, 384,
- 520, 521, 525, 526, 639, 288, 320, 341,
- 373, 544, 576, 597, 629, 128, 264, 265,
- 269, 270, 383, 384, 520, 521, 525, 526,
- 639, 288, 320, 325, 357, 544, 576, 581,
- 613, 128, 264, 265, 269, 270, 383, 384,
- 520, 521, 525, 526, 639, 288, 320, 339,
- 371, 544, 576, 595, 627, 128, 264, 265,
- 269, 270, 383, 384, 520, 521, 525, 526,
- 639, 288, 320, 340, 372, 544, 576, 596,
- 628, 128, 264, 265, 269, 270, 383, 384,
- 520, 521, 525, 526, 639, 288, 320, 325,
- 339, 340, 357, 371, 372, 544, 576, 581,
- 595, 596, 613, 627, 628, 128, 264, 265,
- 269, 270, 383, 384, 520, 521, 525, 526,
- 639, 288, 320, 339, 371, 544, 576, 595,
- 627, 128, 264, 265, 269, 270, 383, 384,
- 520, 521, 525, 526, 639, 288, 320, 339,
- 371, 544, 576, 595, 627, 128, 264, 265,
- 269, 270, 383, 384, 520, 521, 525, 526,
- 639, 288, 320, 329, 361, 544, 576, 585,
- 617, 128, 264, 265, 269, 270, 383, 384,
- 520, 521, 525, 526, 639, 288, 320, 335,
- 367, 544, 576, 591, 623, 128, 264, 265,
- 269, 270, 383, 384, 520, 521, 525, 526,
- 639, 288, 320, 334, 366, 544, 576, 590,
- 622, 128, 264, 265, 269, 270, 383, 384,
- 520, 521, 525, 526, 639, 288, 320, 321,
- 338, 339, 353, 370, 371, 544, 576, 577,
- 594, 595, 609, 626, 627, 128, 264, 265,
- 269, 270, 383, 384, 520, 521, 525, 526,
- 639, 288, 320, 321, 338, 339, 353, 370,
- 371, 544, 576, 577, 594, 595, 609, 626,
- 627, 128, 264, 265, 269, 270, 383, 384,
- 520, 521, 525, 526, 639, 288, 320, 323,
- 355, 544, 576, 579, 611, 128, 264, 265,
- 269, 270, 383, 384, 520, 521, 525, 526,
- 639, 288, 320, 331, 363, 544, 576, 587,
- 619, 128, 264, 265, 269, 270, 383, 384,
- 520, 521, 525, 526, 639, 288, 320, 321,
- 338, 339, 353, 370, 371, 544, 576, 577,
- 594, 595, 609, 626, 627, 128, 264, 265,
- 269, 270, 383, 384, 520, 521, 525, 526,
- 639, 288, 320, 321, 323, 338, 339, 353,
- 355, 370, 371, 544, 576, 577, 579, 594,
- 595, 609, 611, 626, 627, 265, 269, 384,
- 520, 521, 525, 526, 639, 320, 340, 372,
- 576, 596, 628, 384, 639, 320, 329, 361,
- 576, 585, 617, 384, 639, 320, 335, 367,
- 576, 591, 623, 384, 639, 320, 334, 366,
- 576, 590, 622, 384, 639, 288, 320, 321,
- 338, 339, 353, 370, 371, 544, 576, 577,
- 594, 595, 609, 626, 627, 265, 269, 384,
- 520, 521, 525, 526, 639, 288, 320, 321,
- 325, 338, 339, 353, 357, 370, 371, 544,
- 576, 577, 581, 594, 595, 609, 613, 626,
- 627, 265, 269, 384, 520, 521, 525, 526,
- 639, 320, 337, 369, 576, 593, 625, 384,
- 639, 320, 341, 373, 576, 597, 629, 384,
- 639, 320, 325, 357, 576, 581, 613, 384,
- 639, 320, 339, 371, 576, 595, 627, 384,
- 639, 320, 340, 372, 576, 596, 628, 384,
- 639, 320, 325, 339, 340, 357, 371, 372,
- 576, 581, 595, 596, 613, 627, 628, 384,
- 639, 320, 339, 371, 576, 595, 627, 384,
- 639, 320, 339, 371, 576, 595, 627, 384,
- 639, 320, 329, 361, 576, 585, 617, 384,
- 639, 320, 335, 367, 576, 591, 623, 384,
- 639, 320, 334, 366, 576, 590, 622, 384,
- 639, 288, 320, 321, 338, 339, 353, 370,
- 371, 544, 576, 577, 594, 595, 609, 626,
- 627, 265, 269, 384, 520, 521, 525, 526,
- 639, 288, 320, 321, 338, 339, 353, 370,
- 371, 544, 576, 577, 594, 595, 609, 626,
- 627, 265, 269, 384, 520, 521, 525, 526,
- 639, 320, 323, 355, 576, 579, 611, 384,
- 639, 320, 331, 363, 576, 587, 619, 384,
- 639, 288, 320, 321, 338, 339, 353, 370,
- 371, 544, 576, 577, 594, 595, 609, 626,
- 627, 265, 269, 384, 520, 521, 525, 526,
- 639, 288, 301, 320, 321, 323, 324, 325,
- 326, 328, 329, 332, 335, 336, 338, 339,
- 340, 344, 353, 355, 356, 357, 358, 360,
- 361, 364, 367, 368, 370, 371, 372, 376,
- 544, 557, 576, 577, 583, 588, 593, 600,
- 609, 615, 620, 625, 632, 128, 383, 384,
- 578, 579, 585, 586, 590, 591, 596, 597,
- 610, 611, 617, 618, 622, 623, 628, 629,
- 639, 288, 320, 333, 365, 544, 576, 128,
- 383, 384, 639, 288, 320, 326, 358, 544,
- 576, 128, 383, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 128, 383, 384,
- 639, 288, 320, 321, 353, 544, 576, 128,
- 383, 384, 639, 288, 320, 336, 368, 544,
- 576, 128, 383, 384, 639, 288, 320, 339,
- 371, 544, 576, 128, 383, 384, 639, 288,
- 320, 321, 323, 324, 325, 326, 328, 329,
- 332, 335, 336, 338, 339, 340, 344, 353,
- 355, 356, 357, 358, 360, 361, 364, 367,
- 368, 370, 371, 372, 376, 544, 576, 128,
- 383, 384, 639, 288, 320, 328, 334, 360,
- 366, 544, 576, 128, 383, 384, 639, 288,
- 320, 323, 355, 544, 576, 128, 383, 384,
- 639, 288, 320, 336, 368, 544, 576, 128,
- 383, 384, 639, 288, 320, 342, 374, 544,
- 576, 128, 383, 384, 639, 288, 308, 310,
- 320, 544, 576, 128, 383, 384, 639, 288,
- 320, 321, 323, 324, 325, 326, 328, 329,
- 332, 335, 336, 338, 339, 340, 344, 353,
- 355, 356, 357, 358, 360, 361, 364, 367,
- 368, 370, 371, 372, 376, 544, 576, 128,
- 383, 384, 639, 288, 320, 342, 344, 374,
- 376, 544, 576, 128, 383, 384, 639, 288,
- 320, 325, 357, 544, 576, 128, 383, 384,
- 639, 288, 320, 334, 366, 544, 576, 128,
- 383, 384, 639, 288, 320, 340, 372, 544,
- 576, 128, 383, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 128, 383, 384,
- 639, 288, 320, 338, 370, 544, 576, 128,
- 383, 384, 639, 288, 320, 335, 367, 544,
- 576, 128, 383, 384, 639, 288, 320, 333,
- 365, 544, 576, 128, 383, 384, 639, 288,
- 320, 321, 323, 324, 325, 326, 328, 329,
- 332, 335, 336, 338, 339, 340, 344, 353,
- 355, 356, 357, 358, 360, 361, 364, 367,
- 368, 370, 371, 372, 376, 544, 576, 128,
- 383, 384, 639, 288, 320, 325, 357, 544,
- 576, 128, 383, 384, 639, 288, 320, 321,
- 353, 544, 576, 128, 383, 384, 639, 288,
- 320, 324, 356, 544, 576, 128, 383, 384,
- 639, 288, 320, 325, 357, 544, 576, 128,
- 383, 384, 639, 288, 320, 338, 370, 544,
- 576, 128, 383, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 128, 383, 384,
- 639, 288, 320, 333, 336, 365, 368, 544,
- 576, 128, 383, 384, 639, 288, 320, 336,
- 368, 544, 576, 128, 383, 384, 639, 288,
- 320, 329, 341, 361, 373, 544, 576, 128,
- 383, 384, 639, 288, 320, 321, 323, 324,
- 325, 326, 328, 329, 332, 335, 336, 338,
- 339, 340, 344, 353, 355, 356, 357, 358,
- 360, 361, 364, 367, 368, 370, 371, 372,
- 376, 544, 576, 128, 383, 384, 639, 288,
- 320, 335, 367, 544, 576, 128, 383, 384,
- 639, 288, 320, 323, 355, 544, 576, 128,
- 383, 384, 639, 288, 320, 321, 353, 544,
- 576, 128, 383, 384, 639, 288, 320, 332,
- 364, 544, 576, 128, 383, 384, 639, 288,
- 301, 320, 544, 576, 128, 383, 384, 639,
- 288, 320, 329, 336, 361, 368, 544, 576,
- 128, 383, 384, 639, 288, 320, 336, 368,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 321, 323, 324, 325, 326, 328, 329, 332,
- 335, 336, 338, 339, 340, 344, 353, 355,
- 356, 357, 358, 360, 361, 364, 367, 368,
- 370, 371, 372, 376, 544, 576, 128, 383,
- 384, 639, 288, 320, 336, 368, 544, 576,
- 128, 383, 384, 639, 288, 320, 329, 361,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 324, 356, 544, 576, 128, 383, 384, 639,
- 288, 320, 321, 323, 324, 325, 326, 328,
- 329, 332, 335, 336, 338, 339, 340, 344,
- 353, 355, 356, 357, 358, 360, 361, 364,
- 367, 368, 370, 371, 372, 376, 544, 576,
- 128, 383, 384, 639, 288, 320, 321, 323,
- 343, 353, 355, 375, 544, 576, 128, 383,
- 384, 639, 288, 320, 339, 340, 345, 371,
- 372, 377, 544, 576, 128, 383, 384, 639,
- 288, 320, 339, 371, 544, 576, 128, 383,
- 384, 639, 288, 320, 343, 375, 544, 576,
- 128, 383, 384, 639, 288, 320, 335, 367,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 338, 370, 544, 576, 128, 383, 384, 639,
- 288, 320, 324, 356, 544, 576, 128, 383,
- 384, 639, 288, 320, 321, 323, 324, 325,
- 326, 328, 329, 332, 335, 336, 338, 339,
- 340, 344, 353, 355, 356, 357, 358, 360,
- 361, 364, 367, 368, 370, 371, 372, 376,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 325, 357, 544, 576, 128, 383, 384, 639,
- 288, 320, 321, 353, 544, 576, 128, 383,
- 384, 639, 288, 320, 332, 364, 544, 576,
- 128, 383, 384, 639, 288, 320, 333, 365,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 321, 323, 324, 325, 326, 328, 329, 332,
- 335, 336, 338, 339, 340, 344, 353, 355,
- 356, 357, 358, 360, 361, 364, 367, 368,
- 370, 371, 372, 376, 544, 576, 128, 383,
- 384, 639, 288, 320, 325, 329, 333, 340,
- 357, 361, 365, 372, 544, 576, 128, 383,
- 384, 639, 288, 320, 323, 355, 544, 576,
- 128, 383, 384, 639, 288, 320, 321, 323,
- 324, 325, 326, 328, 329, 332, 335, 336,
- 338, 339, 340, 344, 353, 355, 356, 357,
- 358, 360, 361, 364, 367, 368, 370, 371,
- 372, 376, 544, 576, 128, 383, 384, 639,
- 288, 320, 335, 367, 544, 576, 128, 383,
- 384, 639, 288, 320, 321, 323, 324, 325,
- 326, 328, 329, 332, 335, 336, 338, 339,
- 340, 344, 353, 355, 356, 357, 358, 360,
- 361, 364, 367, 368, 370, 371, 372, 376,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 336, 368, 544, 576, 128, 383, 384, 639,
- 288, 320, 321, 323, 324, 325, 326, 328,
- 329, 332, 335, 336, 338, 339, 340, 344,
- 353, 355, 356, 357, 358, 360, 361, 364,
- 367, 368, 370, 371, 372, 376, 544, 576,
- 128, 383, 384, 639, 288, 320, 324, 327,
- 332, 356, 359, 364, 544, 576, 128, 383,
- 384, 639, 288, 320, 321, 323, 324, 325,
- 326, 328, 329, 332, 335, 336, 338, 339,
- 340, 344, 353, 355, 356, 357, 358, 360,
- 361, 364, 367, 368, 370, 371, 372, 376,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 323, 355, 544, 576, 128, 383, 384, 639,
- 288, 320, 335, 367, 544, 576, 128, 383,
- 384, 639, 288, 320, 333, 365, 544, 576,
- 128, 383, 384, 639, 288, 320, 336, 368,
- 544, 576, 128, 383, 384, 639, 288, 301,
- 320, 544, 576, 128, 383, 384, 639, 288,
- 320, 329, 361, 544, 576, 128, 383, 384,
- 639, 288, 320, 324, 356, 544, 576, 128,
- 383, 384, 639, 288, 320, 321, 323, 324,
- 325, 326, 328, 329, 332, 335, 336, 338,
- 339, 340, 344, 353, 355, 356, 357, 358,
- 360, 361, 364, 367, 368, 370, 371, 372,
- 376, 544, 576, 128, 383, 384, 639, 288,
- 320, 325, 357, 544, 576, 128, 383, 384,
- 639, 288, 320, 334, 366, 544, 576, 128,
- 383, 384, 639, 288, 320, 340, 372, 544,
- 576, 128, 383, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 128, 383, 384,
- 639, 288, 320, 339, 371, 544, 576, 128,
- 383, 384, 639, 288, 320, 323, 355, 544,
- 576, 128, 383, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 128, 383, 384,
- 639, 288, 320, 341, 373, 544, 576, 128,
- 383, 384, 639, 288, 320, 334, 366, 544,
- 576, 128, 383, 384, 639, 288, 301, 320,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 329, 336, 341, 361, 368, 373, 544, 576,
- 128, 383, 384, 639, 288, 320, 336, 368,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 321, 323, 324, 325, 326, 328, 329, 332,
- 335, 336, 338, 339, 340, 344, 353, 355,
- 356, 357, 358, 360, 361, 364, 367, 368,
- 370, 371, 372, 376, 544, 576, 128, 383,
- 384, 639, 288, 320, 335, 343, 367, 375,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 338, 370, 544, 576, 128, 383, 384, 639,
- 288, 320, 340, 372, 544, 576, 128, 383,
- 384, 639, 288, 320, 321, 323, 324, 325,
- 326, 328, 329, 332, 335, 336, 338, 339,
- 340, 344, 353, 355, 356, 357, 358, 360,
- 361, 364, 367, 368, 370, 371, 372, 376,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 324, 356, 544, 576, 128, 383, 384, 639,
- 288, 320, 321, 323, 324, 325, 326, 328,
- 329, 332, 335, 336, 338, 339, 340, 344,
- 353, 355, 356, 357, 358, 360, 361, 364,
- 367, 368, 370, 371, 372, 376, 544, 576,
- 128, 383, 384, 639, 288, 320, 339, 371,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 338, 370, 544, 576, 128, 383, 384, 639,
- 288, 320, 321, 323, 324, 325, 326, 328,
- 329, 332, 335, 336, 338, 339, 340, 344,
- 353, 355, 356, 357, 358, 360, 361, 364,
- 367, 368, 370, 371, 372, 376, 544, 576,
- 128, 383, 384, 639, 288, 320, 328, 360,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 321, 323, 324, 325, 326, 328, 329, 332,
- 335, 336, 338, 339, 340, 344, 353, 355,
- 356, 357, 358, 360, 361, 364, 367, 368,
- 370, 371, 372, 376, 544, 576, 128, 383,
- 384, 639, 288, 320, 321, 323, 324, 325,
- 326, 328, 329, 332, 335, 336, 338, 339,
- 340, 344, 353, 355, 356, 357, 358, 360,
- 361, 364, 367, 368, 370, 371, 372, 376,
- 544, 576, 588, 620, 128, 383, 384, 639,
- 288, 320, 335, 367, 544, 576, 128, 383,
- 384, 639, 288, 320, 321, 353, 544, 576,
- 128, 383, 384, 639, 288, 320, 324, 356,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 321, 323, 324, 325, 326, 328, 329, 332,
- 335, 336, 338, 339, 340, 344, 353, 355,
- 356, 357, 358, 360, 361, 364, 367, 368,
- 370, 371, 372, 376, 544, 576, 128, 383,
- 384, 639, 288, 320, 339, 371, 544, 576,
- 128, 383, 384, 639, 288, 320, 323, 355,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 326, 358, 544, 576, 128, 383, 384, 639,
- 288, 301, 320, 544, 576, 128, 383, 384,
- 639, 288, 320, 329, 336, 340, 361, 368,
- 372, 544, 576, 128, 383, 384, 639, 288,
- 320, 336, 368, 544, 576, 128, 383, 384,
- 639, 288, 320, 321, 323, 324, 325, 326,
- 328, 329, 332, 335, 336, 338, 339, 340,
- 344, 353, 355, 356, 357, 358, 360, 361,
- 364, 367, 368, 370, 371, 372, 376, 544,
- 576, 128, 383, 384, 639, 288, 320, 335,
- 367, 544, 576, 128, 383, 384, 639, 288,
- 320, 338, 370, 544, 576, 128, 383, 384,
- 639, 288, 320, 340, 372, 544, 576, 128,
- 383, 384, 639, 288, 320, 321, 323, 324,
- 325, 326, 328, 329, 332, 335, 336, 338,
- 339, 340, 344, 353, 355, 356, 357, 358,
- 360, 361, 364, 367, 368, 370, 371, 372,
- 376, 544, 576, 128, 383, 384, 639, 288,
- 320, 338, 370, 544, 576, 128, 383, 384,
- 639, 288, 320, 321, 353, 544, 576, 128,
- 383, 384, 639, 288, 320, 334, 366, 544,
- 576, 128, 383, 384, 639, 288, 320, 339,
- 371, 544, 576, 128, 383, 384, 639, 288,
- 320, 321, 323, 324, 325, 326, 328, 329,
- 332, 335, 336, 338, 339, 340, 344, 353,
- 355, 356, 357, 358, 360, 361, 364, 367,
- 368, 370, 371, 372, 376, 544, 576, 128,
- 383, 384, 639, 288, 320, 335, 367, 544,
- 576, 128, 383, 384, 639, 288, 320, 338,
- 370, 544, 576, 128, 383, 384, 639, 288,
- 320, 340, 372, 544, 576, 128, 383, 384,
- 639, 288, 320, 321, 323, 324, 325, 326,
- 328, 329, 332, 335, 336, 338, 339, 340,
- 344, 353, 355, 356, 357, 358, 360, 361,
- 364, 367, 368, 370, 371, 372, 376, 544,
- 576, 128, 383, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 128, 383, 384,
- 639, 288, 320, 342, 374, 544, 576, 128,
- 383, 384, 639, 288, 310, 320, 544, 576,
- 128, 383, 384, 639, 288, 320, 321, 323,
- 324, 325, 326, 328, 329, 332, 335, 336,
- 338, 339, 340, 344, 353, 355, 356, 357,
- 358, 360, 361, 364, 367, 368, 370, 371,
- 372, 376, 544, 576, 128, 383, 384, 639,
- 288, 320, 336, 368, 544, 576, 128, 383,
- 384, 639, 288, 320, 329, 361, 544, 576,
- 128, 383, 384, 639, 288, 320, 338, 370,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 325, 357, 544, 576, 128, 383, 384, 639,
- 288, 320, 339, 371, 544, 576, 128, 383,
- 384, 639, 288, 320, 321, 323, 324, 325,
- 326, 328, 329, 332, 335, 336, 338, 339,
- 340, 344, 353, 355, 356, 357, 358, 360,
- 361, 364, 367, 368, 370, 371, 372, 376,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 321, 339, 353, 371, 544, 576, 128, 383,
- 384, 639, 288, 320, 333, 365, 544, 576,
- 128, 383, 384, 639, 288, 320, 325, 357,
- 544, 576, 128, 383, 384, 639, 288, 320,
- 321, 323, 324, 325, 326, 328, 329, 332,
- 335, 336, 338, 339, 340, 344, 353, 355,
- 356, 357, 358, 360, 361, 364, 367, 368,
- 370, 371, 372, 376, 544, 576, 128, 383,
- 384, 639, 288, 301, 320, 544, 576, 128,
- 383, 384, 639, 288, 320, 334, 366, 544,
- 576, 128, 383, 384, 639, 288, 320, 321,
- 353, 544, 576, 128, 383, 384, 639, 288,
- 320, 336, 368, 544, 576, 128, 383, 384,
- 639, 288, 320, 340, 372, 544, 576, 128,
- 383, 384, 639, 288, 320, 338, 370, 544,
- 576, 128, 383, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 128, 383, 384,
- 639, 288, 301, 320, 321, 323, 324, 325,
- 326, 328, 329, 332, 335, 336, 338, 339,
- 340, 344, 353, 355, 356, 357, 358, 360,
- 361, 364, 367, 368, 370, 371, 372, 376,
- 544, 557, 576, 577, 579, 580, 581, 582,
- 584, 585, 588, 591, 592, 594, 595, 596,
- 600, 609, 611, 612, 613, 614, 616, 617,
- 620, 623, 624, 626, 627, 628, 632, 128,
- 383, 384, 639, 288, 320, 321, 323, 324,
- 325, 326, 328, 329, 332, 335, 336, 338,
- 339, 340, 344, 353, 355, 356, 357, 358,
- 360, 361, 364, 367, 368, 370, 371, 372,
- 376, 544, 576, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 384, 639, 288,
- 320, 321, 323, 324, 325, 326, 328, 329,
- 332, 335, 336, 338, 339, 340, 344, 353,
- 355, 356, 357, 358, 360, 361, 364, 367,
- 368, 370, 371, 372, 376, 544, 576, 384,
- 639, 288, 320, 321, 323, 324, 325, 326,
- 328, 329, 332, 335, 336, 338, 339, 340,
- 344, 353, 355, 356, 357, 358, 360, 361,
- 364, 367, 368, 370, 371, 372, 376, 544,
- 576, 384, 639, 288, 320, 321, 323, 324,
- 325, 326, 328, 329, 332, 335, 336, 338,
- 339, 340, 344, 353, 355, 356, 357, 358,
- 360, 361, 364, 367, 368, 370, 371, 372,
- 376, 544, 576, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 384, 639, 288,
- 320, 321, 323, 324, 325, 326, 328, 329,
- 332, 335, 336, 338, 339, 340, 344, 353,
- 355, 356, 357, 358, 360, 361, 364, 367,
- 368, 370, 371, 372, 376, 544, 576, 384,
- 639, 288, 320, 321, 323, 324, 325, 326,
- 328, 329, 332, 335, 336, 338, 339, 340,
- 344, 353, 355, 356, 357, 358, 360, 361,
- 364, 367, 368, 370, 371, 372, 376, 544,
- 576, 384, 639, 288, 320, 321, 323, 324,
- 325, 326, 328, 329, 332, 335, 336, 338,
- 339, 340, 344, 353, 355, 356, 357, 358,
- 360, 361, 364, 367, 368, 370, 371, 372,
- 376, 544, 576, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 384, 639, 288,
- 320, 321, 323, 324, 325, 326, 328, 329,
- 332, 335, 336, 338, 339, 340, 344, 353,
- 355, 356, 357, 358, 360, 361, 364, 367,
- 368, 370, 371, 372, 376, 544, 576, 384,
- 639, 288, 320, 321, 323, 324, 325, 326,
- 328, 329, 332, 335, 336, 338, 339, 340,
- 344, 353, 355, 356, 357, 358, 360, 361,
- 364, 367, 368, 370, 371, 372, 376, 544,
- 576, 384, 639, 288, 320, 321, 323, 324,
- 325, 326, 328, 329, 332, 335, 336, 338,
- 339, 340, 344, 353, 355, 356, 357, 358,
- 360, 361, 364, 367, 368, 370, 371, 372,
- 376, 544, 576, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 384, 639, 288,
- 320, 321, 323, 324, 325, 326, 328, 329,
- 332, 335, 336, 338, 339, 340, 344, 353,
- 355, 356, 357, 358, 360, 361, 364, 367,
- 368, 370, 371, 372, 376, 544, 576, 384,
- 639, 288, 320, 321, 323, 324, 325, 326,
- 328, 329, 332, 335, 336, 338, 339, 340,
- 344, 353, 355, 356, 357, 358, 360, 361,
- 364, 367, 368, 370, 371, 372, 376, 544,
- 576, 384, 639, 288, 320, 321, 323, 324,
- 325, 326, 328, 329, 332, 335, 336, 338,
- 339, 340, 344, 353, 355, 356, 357, 358,
- 360, 361, 364, 367, 368, 370, 371, 372,
- 376, 544, 576, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 384, 639, 288,
- 320, 321, 323, 324, 325, 326, 328, 329,
- 332, 335, 336, 338, 339, 340, 344, 353,
- 355, 356, 357, 358, 360, 361, 364, 367,
- 368, 370, 371, 372, 376, 544, 576, 384,
- 639, 288, 320, 321, 323, 324, 325, 326,
- 328, 329, 332, 335, 336, 338, 339, 340,
- 344, 353, 355, 356, 357, 358, 360, 361,
- 364, 367, 368, 370, 371, 372, 376, 544,
- 576, 384, 639, 288, 320, 321, 323, 324,
- 325, 326, 328, 329, 332, 335, 336, 338,
- 339, 340, 344, 353, 355, 356, 357, 358,
- 360, 361, 364, 367, 368, 370, 371, 372,
- 376, 544, 576, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 384, 639, 288,
- 320, 321, 323, 324, 325, 326, 328, 329,
- 332, 335, 336, 338, 339, 340, 344, 353,
- 355, 356, 357, 358, 360, 361, 364, 367,
- 368, 370, 371, 372, 376, 544, 576, 384,
- 639, 288, 320, 321, 323, 324, 325, 326,
- 328, 329, 332, 335, 336, 338, 339, 340,
- 344, 353, 355, 356, 357, 358, 360, 361,
- 364, 367, 368, 370, 371, 372, 376, 544,
- 576, 588, 620, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 384, 639, 288,
- 320, 321, 323, 324, 325, 326, 328, 329,
- 332, 335, 336, 338, 339, 340, 344, 353,
- 355, 356, 357, 358, 360, 361, 364, 367,
- 368, 370, 371, 372, 376, 544, 576, 384,
- 639, 288, 320, 321, 323, 324, 325, 326,
- 328, 329, 332, 335, 336, 338, 339, 340,
- 344, 353, 355, 356, 357, 358, 360, 361,
- 364, 367, 368, 370, 371, 372, 376, 544,
- 576, 384, 639, 288, 320, 321, 323, 324,
- 325, 326, 328, 329, 332, 335, 336, 338,
- 339, 340, 344, 353, 355, 356, 357, 358,
- 360, 361, 364, 367, 368, 370, 371, 372,
- 376, 544, 576, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 384, 639, 288,
- 320, 321, 323, 324, 325, 326, 328, 329,
- 332, 335, 336, 338, 339, 340, 344, 353,
- 355, 356, 357, 358, 360, 361, 364, 367,
- 368, 370, 371, 372, 376, 544, 576, 384,
- 639, 288, 320, 321, 323, 324, 325, 326,
- 328, 329, 332, 335, 336, 338, 339, 340,
- 344, 353, 355, 356, 357, 358, 360, 361,
- 364, 367, 368, 370, 371, 372, 376, 544,
- 576, 384, 639, 288, 320, 321, 323, 324,
- 325, 326, 328, 329, 332, 335, 336, 338,
- 339, 340, 344, 353, 355, 356, 357, 358,
- 360, 361, 364, 367, 368, 370, 371, 372,
- 376, 544, 576, 384, 639, 288, 320, 321,
- 323, 324, 325, 326, 328, 329, 332, 335,
- 336, 338, 339, 340, 344, 353, 355, 356,
- 357, 358, 360, 361, 364, 367, 368, 370,
- 371, 372, 376, 544, 576, 384, 639, 288,
- 320, 321, 323, 324, 325, 326, 328, 329,
- 332, 335, 336, 338, 339, 340, 344, 353,
- 355, 356, 357, 358, 360, 361, 364, 367,
- 368, 370, 371, 372, 376, 544, 576, 384,
- 639, 320, 333, 365, 576, 589, 621, 384,
- 639, 320, 326, 358, 576, 582, 614, 384,
- 639, 320, 321, 353, 576, 577, 609, 384,
- 639, 320, 336, 368, 576, 592, 624, 384,
- 639, 320, 339, 371, 576, 595, 627, 384,
- 639, 320, 328, 334, 360, 366, 576, 584,
- 590, 616, 622, 384, 639, 320, 323, 355,
- 576, 579, 611, 384, 639, 320, 336, 368,
- 576, 592, 624, 384, 639, 320, 342, 374,
- 576, 598, 630, 384, 639, 308, 310, 320,
- 564, 566, 576, 384, 639, 320, 321, 339,
- 353, 371, 576, 577, 595, 609, 627, 384,
- 639, 320, 333, 365, 576, 589, 621, 384,
- 639, 320, 325, 357, 576, 581, 613, 384,
- 639, 301, 320, 557, 576, 384, 639, 320,
- 334, 366, 576, 590, 622, 384, 639, 320,
- 321, 353, 576, 577, 609, 384, 639, 320,
- 336, 368, 576, 592, 624, 384, 639, 320,
- 340, 372, 576, 596, 628, 384, 639, 320,
- 338, 370, 576, 594, 626, 384, 639, 320,
- 342, 344, 374, 376, 576, 598, 600, 630,
- 632, 384, 639, 320, 325, 357, 576, 581,
- 613, 384, 639, 320, 334, 366, 576, 590,
- 622, 384, 639, 320, 340, 372, 576, 596,
- 628, 384, 639, 320, 336, 368, 576, 592,
- 624, 384, 639, 320, 329, 361, 576, 585,
- 617, 384, 639, 320, 338, 370, 576, 594,
- 626, 384, 639, 320, 325, 357, 576, 581,
- 613, 384, 639, 320, 339, 371, 576, 595,
- 627, 384, 639, 320, 338, 370, 576, 594,
- 626, 384, 639, 320, 335, 367, 576, 591,
- 623, 384, 639, 320, 333, 365, 576, 589,
- 621, 384, 639, 320, 325, 357, 576, 581,
- 613, 384, 639, 320, 321, 353, 576, 577,
- 609, 384, 639, 320, 324, 356, 576, 580,
- 612, 384, 639, 320, 325, 357, 576, 581,
- 613, 384, 639, 320, 338, 370, 576, 594,
- 626, 384, 639, 320, 333, 336, 365, 368,
- 576, 589, 592, 621, 624, 384, 639, 320,
- 336, 368, 576, 592, 624, 384, 639, 320,
- 329, 341, 361, 373, 576, 585, 597, 617,
- 629, 384, 639, 320, 342, 374, 576, 598,
- 630, 384, 639, 310, 320, 566, 576, 384,
- 639, 320, 335, 367, 576, 591, 623, 384,
- 639, 320, 323, 355, 576, 579, 611, 384,
- 639, 320, 321, 353, 576, 577, 609, 384,
- 639, 320, 332, 364, 576, 588, 620, 384,
- 639, 301, 320, 557, 576, 384, 639, 320,
- 329, 336, 361, 368, 576, 585, 592, 617,
- 624, 384, 639, 320, 336, 368, 576, 592,
- 624, 384, 639, 320, 335, 367, 576, 591,
- 623, 384, 639, 320, 338, 370, 576, 594,
- 626, 384, 639, 320, 340, 372, 576, 596,
- 628, 384, 639, 320, 336, 368, 576, 592,
- 624, 384, 639, 320, 329, 361, 576, 585,
- 617, 384, 639, 320, 324, 356, 576, 580,
- 612, 384, 639, 320, 321, 323, 343, 353,
- 355, 375, 576, 577, 579, 599, 609, 611,
- 631, 384, 639, 320, 339, 340, 345, 371,
- 372, 377, 576, 595, 596, 601, 627, 628,
- 633, 384, 639, 320, 339, 371, 576, 595,
- 627, 384, 639, 320, 343, 375, 576, 599,
- 631, 384, 639, 320, 335, 367, 576, 591,
- 623, 384, 639, 320, 338, 370, 576, 594,
- 626, 384, 639, 320, 324, 356, 576, 580,
- 612, 384, 639, 320, 328, 360, 576, 584,
- 616, 384, 639, 288, 320, 321, 323, 324,
- 325, 326, 328, 329, 332, 335, 336, 338,
- 339, 340, 344, 353, 355, 356, 357, 358,
- 360, 361, 364, 367, 368, 370, 371, 372,
- 376, 544, 576, 588, 620, 384, 639, 320,
- 335, 367, 576, 591, 623, 384, 639, 320,
- 321, 353, 576, 577, 609, 384, 639, 320,
- 324, 356, 576, 580, 612, 384, 639, 320,
- 339, 371, 576, 595, 627, 384, 639, 320,
- 323, 355, 576, 579, 611, 384, 639, 320,
- 326, 358, 576, 582, 614, 384, 639, 301,
- 320, 557, 576, 384, 639, 320, 329, 336,
- 340, 361, 368, 372, 576, 585, 592, 596,
- 617, 624, 628, 384, 639, 320, 336, 368,
- 576, 592, 624, 384, 639, 320, 335, 367,
- 576, 591, 623, 384, 639, 320, 338, 370,
- 576, 594, 626, 384, 639, 320, 340, 372,
- 576, 596, 628, 384, 639, 320, 338, 370,
- 576, 594, 626, 384, 639, 320, 321, 353,
- 576, 577, 609, 384, 639, 320, 334, 366,
- 576, 590, 622, 384, 639, 320, 339, 371,
- 576, 595, 627, 384, 639, 320, 325, 357,
- 576, 581, 613, 384, 639, 320, 321, 353,
- 576, 577, 609, 384, 639, 320, 332, 364,
- 576, 588, 620, 384, 639, 320, 333, 365,
- 576, 589, 621, 384, 639, 320, 325, 329,
- 333, 340, 357, 361, 365, 372, 576, 581,
- 585, 589, 596, 613, 617, 621, 628, 384,
- 639, 320, 323, 355, 576, 579, 611, 384,
- 639, 320, 324, 327, 332, 356, 359, 364,
- 576, 580, 583, 588, 612, 615, 620, 384,
- 639, 320, 323, 355, 576, 579, 611, 384,
- 639, 320, 335, 367, 576, 591, 623, 384,
- 639, 320, 333, 365, 576, 589, 621, 384,
- 639, 320, 336, 368, 576, 592, 624, 384,
- 639, 301, 320, 557, 576, 384, 639, 320,
- 329, 361, 576, 585, 617, 384, 639, 320,
- 324, 356, 576, 580, 612, 384, 639, 320,
- 325, 357, 576, 581, 613, 384, 639, 320,
- 334, 366, 576, 590, 622, 384, 639, 320,
- 340, 372, 576, 596, 628, 384, 639, 320,
- 339, 371, 576, 595, 627, 384, 639, 320,
- 323, 355, 576, 579, 611, 384, 639, 320,
- 341, 373, 576, 597, 629, 384, 639, 320,
- 334, 366, 576, 590, 622, 384, 639, 301,
- 320, 557, 576, 384, 639, 320, 329, 336,
- 341, 361, 368, 373, 576, 585, 592, 597,
- 617, 624, 629, 384, 639, 320, 336, 368,
- 576, 592, 624, 384, 639, 320, 335, 343,
- 367, 375, 576, 591, 599, 623, 631, 384,
- 639, 320, 338, 370, 576, 594, 626, 384,
- 639, 320, 340, 372, 576, 596, 628, 384,
- 639, 320, 324, 356, 576, 580, 612, 384,
- 639, 320, 339, 371, 576, 595, 627, 384,
- 639, 320, 338, 370, 576, 594, 626, 384,
- 639, 320, 335, 367, 576, 591, 623, 384,
- 639, 320, 336, 368, 576, 592, 624, 384,
- 639, 296, 297, 318, 552, 553, 574, 384,
- 639, 297, 553, 384, 639, 297, 553, 384,
- 639, 0
-};
+ static const char _demo_machine_parser_cmd_single_lengths[] = {
+ 0, 1, 4, 2, 1, 4, 2, 2,
+ 2, 2, 1, 2, 4, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 4,
+ 2, 2, 2, 1, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 4, 2, 2, 2, 2, 12,
+ 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, 2, 2, 2, 2, 2, 4, 2,
+ 2, 2, 2, 2, 2, 2, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 6, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 4, 2,
+ 2, 2, 2, 4, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 4,
+ 2, 4, 2, 2, 2, 2, 1, 4,
+ 2, 2, 2, 2, 6, 6, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 8,
+ 2, 2, 2, 6, 2, 2, 2, 2,
+ 1, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 1, 6, 2, 4, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 1, 6, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 2, 2, 2, 2, 2, 4, 2,
+ 2, 1, 2, 2, 2, 2, 2, 1,
+ 5, 0, 0, 2, 0, 29, 0, 29,
+ 30, 4, 2, 2, 2, 2, 1, 2,
+ 4, 2, 2, 2, 2, 2, 28, 32,
+ 30, 2, 28, 30, 30, 2, 2, 2,
+ 2, 28, 4, 2, 2, 2, 1, 2,
+ 2, 2, 2, 2, 2, 2, 28, 28,
+ 2, 2, 2, 2, 2, 28, 2, 2,
+ 30, 2, 2, 2, 28, 2, 2, 28,
+ 2, 2, 2, 28, 30, 30, 4, 30,
+ 2, 2, 2, 2, 28, 12, 2, 2,
+ 2, 2, 2, 2, 28, 30, 2, 2,
+ 2, 28, 2, 2, 2, 28, 2, 28,
+ 2, 2, 28, 2, 28, 2, 2, 2,
+ 2, 2, 28, 30, 2, 2, 28, 2,
+ 28, 2, 2, 28, 2, 2, 28, 28,
+ 2, 28, 2, 2, 28, 2, 2, 28,
+ 2, 2, 28, 2, 2, 2, 28, 4,
+ 2, 2, 2, 28, 2, 2, 2, 2,
+ 28, 30, 28, 32, 30, 28, 30, 30,
+ 28, 28, 28, 28, 30, 28, 28, 28,
+ 30, 30, 30, 28, 28, 30, 28, 28,
+ 28, 28, 28, 28, 30, 28, 28, 28,
+ 28, 28, 28, 28, 28, 28, 28, 28,
+ 28, 62, 4, 4, 8, 1, 1, 8,
+ 9, 3, 3, 3, 3, 7, 9, 3,
+ 3, 3, 3, 3, 7, 3, 3, 3,
+ 3, 3, 7, 7, 3, 3, 7, 9,
+ 7, 9, 7, 7, 7, 2, 2, 16,
+ 4, 2, 4, 4, 16, 20, 8, 8,
+ 8, 8, 16, 20, 8, 8, 8, 8,
+ 8, 16, 8, 8, 8, 8, 8, 16,
+ 16, 8, 8, 16, 20, 6, 6, 6,
+ 6, 16, 20, 6, 6, 6, 6, 6,
+ 14, 6, 6, 6, 6, 6, 16, 16,
+ 6, 6, 16, 44, 6, 6, 32, 6,
+ 6, 6, 32, 8, 6, 6, 6, 6,
+ 32, 8, 6, 6, 6, 32, 6, 6,
+ 6, 32, 6, 6, 6, 6, 6, 32,
+ 8, 6, 8, 32, 6, 6, 6, 6,
+ 5, 8, 6, 32, 6, 6, 6, 32,
+ 10, 10, 6, 6, 6, 6, 6, 32,
+ 6, 6, 6, 6, 32, 12, 6, 32,
+ 6, 32, 6, 32, 10, 32, 6, 6,
+ 6, 6, 5, 6, 6, 32, 6, 6,
+ 6, 32, 6, 6, 32, 6, 6, 5,
+ 10, 6, 32, 8, 6, 6, 32, 6,
+ 32, 6, 6, 32, 6, 32, 34, 6,
+ 6, 6, 32, 6, 6, 6, 5, 10,
+ 6, 32, 6, 6, 6, 32, 6, 6,
+ 6, 6, 32, 6, 6, 6, 32, 32,
+ 6, 5, 32, 6, 6, 6, 6, 6,
+ 32, 8, 6, 6, 32, 5, 6, 6,
+ 6, 6, 6, 32, 62, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 34, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 6,
+ 6, 6, 6, 6, 10, 6, 6, 6,
+ 6, 10, 6, 6, 4, 6, 6, 6,
+ 6, 6, 10, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 10, 6, 10, 6, 4,
+ 6, 6, 6, 6, 4, 10, 6, 6,
+ 6, 6, 6, 6, 6, 14, 14, 6,
+ 6, 6, 6, 6, 6, 34, 6, 6,
+ 6, 6, 6, 6, 4, 14, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 18, 6, 14, 6, 6, 6,
+ 6, 4, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 4, 14, 6, 10, 6,
+ 6, 6, 6, 6, 6, 6, 6, 2,
+ 2
+ };
-static const char _demo_machine_parser_cmd_single_lengths[] = {
- 0, 1, 4, 2, 1, 4, 2, 2,
- 2, 2, 1, 2, 4, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 4,
- 2, 2, 2, 1, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 4, 2, 2, 2, 2, 12,
- 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, 2, 2, 2, 2, 2, 4, 2,
- 2, 2, 2, 2, 2, 2, 1, 1,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 6, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 4, 2,
- 2, 2, 2, 4, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 4,
- 2, 4, 2, 2, 2, 2, 1, 4,
- 2, 2, 2, 2, 6, 6, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 8,
- 2, 2, 2, 6, 2, 2, 2, 2,
- 1, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 1, 6, 2, 4, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 1, 6, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 1, 2, 2, 2, 2, 2, 4, 2,
- 2, 1, 2, 2, 2, 2, 2, 1,
- 5, 0, 0, 2, 0, 29, 0, 29,
- 30, 4, 2, 2, 2, 2, 1, 2,
- 4, 2, 2, 2, 2, 2, 28, 32,
- 30, 2, 28, 30, 30, 2, 2, 2,
- 2, 28, 4, 2, 2, 2, 1, 2,
- 2, 2, 2, 2, 2, 2, 28, 28,
- 2, 2, 2, 2, 2, 28, 2, 2,
- 30, 2, 2, 2, 28, 2, 2, 28,
- 2, 2, 2, 28, 30, 30, 4, 30,
- 2, 2, 2, 2, 28, 12, 2, 2,
- 2, 2, 2, 2, 28, 30, 2, 2,
- 2, 28, 2, 2, 2, 28, 2, 28,
- 2, 2, 28, 2, 28, 2, 2, 2,
- 2, 2, 28, 30, 2, 2, 28, 2,
- 28, 2, 2, 28, 2, 2, 28, 28,
- 2, 28, 2, 2, 28, 2, 2, 28,
- 2, 2, 28, 2, 2, 2, 28, 4,
- 2, 2, 2, 28, 2, 2, 2, 2,
- 28, 30, 28, 32, 30, 28, 30, 30,
- 28, 28, 28, 28, 30, 28, 28, 28,
- 30, 30, 30, 28, 28, 30, 28, 28,
- 28, 28, 28, 28, 30, 28, 28, 28,
- 28, 28, 28, 28, 28, 28, 28, 28,
- 28, 62, 4, 4, 8, 1, 1, 8,
- 9, 3, 3, 3, 3, 7, 9, 3,
- 3, 3, 3, 3, 7, 3, 3, 3,
- 3, 3, 7, 7, 3, 3, 7, 9,
- 7, 9, 7, 7, 7, 2, 2, 16,
- 4, 2, 4, 4, 16, 20, 8, 8,
- 8, 8, 16, 20, 8, 8, 8, 8,
- 8, 16, 8, 8, 8, 8, 8, 16,
- 16, 8, 8, 16, 20, 6, 6, 6,
- 6, 16, 20, 6, 6, 6, 6, 6,
- 14, 6, 6, 6, 6, 6, 16, 16,
- 6, 6, 16, 44, 6, 6, 32, 6,
- 6, 6, 32, 8, 6, 6, 6, 6,
- 32, 8, 6, 6, 6, 32, 6, 6,
- 6, 32, 6, 6, 6, 6, 6, 32,
- 8, 6, 8, 32, 6, 6, 6, 6,
- 5, 8, 6, 32, 6, 6, 6, 32,
- 10, 10, 6, 6, 6, 6, 6, 32,
- 6, 6, 6, 6, 32, 12, 6, 32,
- 6, 32, 6, 32, 10, 32, 6, 6,
- 6, 6, 5, 6, 6, 32, 6, 6,
- 6, 32, 6, 6, 32, 6, 6, 5,
- 10, 6, 32, 8, 6, 6, 32, 6,
- 32, 6, 6, 32, 6, 32, 34, 6,
- 6, 6, 32, 6, 6, 6, 5, 10,
- 6, 32, 6, 6, 6, 32, 6, 6,
- 6, 6, 32, 6, 6, 6, 32, 32,
- 6, 5, 32, 6, 6, 6, 6, 6,
- 32, 8, 6, 6, 32, 5, 6, 6,
- 6, 6, 6, 32, 62, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 34, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 6,
- 6, 6, 6, 6, 10, 6, 6, 6,
- 6, 10, 6, 6, 4, 6, 6, 6,
- 6, 6, 10, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 10, 6, 10, 6, 4,
- 6, 6, 6, 6, 4, 10, 6, 6,
- 6, 6, 6, 6, 6, 14, 14, 6,
- 6, 6, 6, 6, 6, 34, 6, 6,
- 6, 6, 6, 6, 4, 14, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 18, 6, 14, 6, 6, 6,
- 6, 4, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 4, 14, 6, 10, 6,
- 6, 6, 6, 6, 6, 6, 6, 2,
- 2
-};
+ static const char _demo_machine_parser_cmd_range_lengths[] = {
+ 0, 0, 4, 4, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1, 1, 4, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2, 2, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 6,
+ 6, 1, 4, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 4, 1, 1, 1,
+ 1, 4, 4, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 4, 4,
+ 1, 1, 4, 10, 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, 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, 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, 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,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 1
+ };
-static const char _demo_machine_parser_cmd_range_lengths[] = {
- 0, 0, 4, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 1, 4, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2, 2, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 6,
- 6, 1, 4, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 4, 1, 1, 1,
- 1, 4, 4, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 4, 4,
- 1, 1, 4, 10, 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, 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, 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, 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,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1
-};
+ static const short _demo_machine_parser_cmd_index_offsets[] = {
+ 0, 0, 2, 11, 18, 20, 25, 28,
+ 31, 34, 37, 39, 42, 47, 50, 53,
+ 56, 59, 62, 65, 68, 71, 74, 77,
+ 82, 85, 88, 91, 93, 96, 99, 102,
+ 105, 108, 111, 114, 117, 120, 123, 126,
+ 129, 132, 135, 138, 141, 144, 147, 150,
+ 153, 156, 159, 164, 167, 170, 173, 176,
+ 189, 192, 195, 198, 201, 204, 207, 210,
+ 213, 216, 219, 222, 225, 228, 231, 234,
+ 237, 240, 243, 246, 249, 252, 255, 258,
+ 261, 264, 267, 270, 273, 276, 279, 282,
+ 285, 288, 291, 294, 297, 300, 303, 308,
+ 311, 314, 317, 320, 323, 326, 329, 331,
+ 333, 336, 339, 342, 345, 348, 351, 354,
+ 357, 360, 367, 370, 373, 376, 379, 382,
+ 385, 388, 391, 394, 397, 400, 403, 408,
+ 411, 414, 417, 420, 425, 428, 431, 434,
+ 437, 440, 443, 446, 449, 452, 455, 458,
+ 463, 466, 471, 474, 477, 480, 483, 485,
+ 490, 493, 496, 499, 502, 509, 516, 519,
+ 522, 525, 528, 531, 534, 537, 540, 543,
+ 552, 555, 558, 561, 568, 571, 574, 577,
+ 580, 582, 585, 588, 591, 594, 597, 600,
+ 603, 606, 609, 611, 618, 621, 626, 629,
+ 632, 635, 638, 641, 644, 647, 650, 653,
+ 656, 659, 662, 664, 671, 674, 677, 680,
+ 683, 686, 689, 692, 695, 698, 701, 704,
+ 707, 709, 712, 715, 718, 721, 724, 729,
+ 732, 735, 737, 740, 743, 746, 749, 752,
+ 754, 760, 762, 764, 771, 773, 803, 804,
+ 834, 865, 870, 873, 876, 879, 882, 884,
+ 887, 892, 895, 898, 901, 904, 907, 936,
+ 969, 1000, 1003, 1032, 1063, 1094, 1097, 1100,
+ 1103, 1106, 1135, 1140, 1143, 1146, 1149, 1151,
+ 1154, 1157, 1160, 1163, 1166, 1169, 1172, 1201,
+ 1230, 1233, 1236, 1239, 1242, 1245, 1274, 1277,
+ 1280, 1311, 1314, 1317, 1320, 1349, 1352, 1355,
+ 1384, 1387, 1390, 1393, 1422, 1453, 1484, 1489,
+ 1520, 1523, 1526, 1529, 1532, 1561, 1574, 1577,
+ 1580, 1583, 1586, 1589, 1592, 1621, 1652, 1655,
+ 1658, 1661, 1690, 1693, 1696, 1699, 1728, 1731,
+ 1760, 1763, 1766, 1795, 1798, 1827, 1830, 1833,
+ 1836, 1839, 1842, 1871, 1902, 1905, 1908, 1937,
+ 1940, 1969, 1972, 1975, 2004, 2007, 2010, 2039,
+ 2068, 2071, 2100, 2103, 2106, 2135, 2138, 2141,
+ 2170, 2173, 2176, 2205, 2208, 2211, 2214, 2243,
+ 2248, 2251, 2254, 2257, 2286, 2289, 2292, 2295,
+ 2298, 2327, 2358, 2387, 2420, 2451, 2480, 2511,
+ 2542, 2571, 2600, 2629, 2658, 2689, 2718, 2747,
+ 2776, 2807, 2838, 2869, 2898, 2927, 2958, 2987,
+ 3016, 3045, 3074, 3103, 3132, 3163, 3192, 3221,
+ 3250, 3279, 3308, 3337, 3366, 3395, 3424, 3453,
+ 3482, 3511, 3576, 3583, 3589, 3599, 3602, 3605,
+ 3615, 3626, 3631, 3636, 3641, 3646, 3655, 3666,
+ 3671, 3676, 3681, 3686, 3691, 3700, 3705, 3710,
+ 3715, 3720, 3725, 3734, 3743, 3748, 3753, 3762,
+ 3773, 3782, 3793, 3802, 3811, 3820, 3824, 3828,
+ 3851, 3862, 3866, 3875, 3886, 3909, 3936, 3951,
+ 3966, 3981, 3996, 4019, 4046, 4061, 4076, 4091,
+ 4106, 4121, 4144, 4159, 4174, 4189, 4204, 4219,
+ 4242, 4265, 4280, 4295, 4318, 4343, 4351, 4359,
+ 4367, 4375, 4396, 4421, 4429, 4437, 4445, 4453,
+ 4461, 4477, 4485, 4493, 4501, 4509, 4517, 4538,
+ 4559, 4567, 4575, 4596, 4651, 4660, 4669, 4704,
+ 4713, 4722, 4731, 4766, 4777, 4786, 4795, 4804,
+ 4813, 4848, 4859, 4868, 4877, 4886, 4921, 4930,
+ 4939, 4948, 4983, 4992, 5001, 5010, 5019, 5028,
+ 5063, 5074, 5083, 5094, 5129, 5138, 5147, 5156,
+ 5165, 5173, 5184, 5193, 5228, 5237, 5246, 5255,
+ 5290, 5303, 5316, 5325, 5334, 5343, 5352, 5361,
+ 5396, 5405, 5414, 5423, 5432, 5467, 5482, 5491,
+ 5526, 5535, 5570, 5579, 5614, 5627, 5662, 5671,
+ 5680, 5689, 5698, 5706, 5715, 5724, 5759, 5768,
+ 5777, 5786, 5821, 5830, 5839, 5874, 5883, 5892,
+ 5900, 5913, 5922, 5957, 5968, 5977, 5986, 6021,
+ 6030, 6065, 6074, 6083, 6118, 6127, 6162, 6199,
+ 6208, 6217, 6226, 6261, 6270, 6279, 6288, 6296,
+ 6309, 6318, 6353, 6362, 6371, 6380, 6415, 6424,
+ 6433, 6442, 6451, 6486, 6495, 6504, 6513, 6548,
+ 6583, 6592, 6600, 6635, 6644, 6653, 6662, 6671,
+ 6680, 6715, 6726, 6735, 6744, 6779, 6787, 6796,
+ 6805, 6814, 6823, 6832, 6867, 6932, 6966, 7000,
+ 7034, 7068, 7102, 7136, 7170, 7204, 7238, 7272,
+ 7306, 7340, 7374, 7408, 7442, 7476, 7510, 7544,
+ 7578, 7612, 7646, 7680, 7714, 7750, 7784, 7818,
+ 7852, 7886, 7920, 7954, 7988, 8022, 8056, 8090,
+ 8098, 8106, 8114, 8122, 8130, 8142, 8150, 8158,
+ 8166, 8174, 8186, 8194, 8202, 8208, 8216, 8224,
+ 8232, 8240, 8248, 8260, 8268, 8276, 8284, 8292,
+ 8300, 8308, 8316, 8324, 8332, 8340, 8348, 8356,
+ 8364, 8372, 8380, 8388, 8400, 8408, 8420, 8428,
+ 8434, 8442, 8450, 8458, 8466, 8472, 8484, 8492,
+ 8500, 8508, 8516, 8524, 8532, 8540, 8556, 8572,
+ 8580, 8588, 8596, 8604, 8612, 8620, 8656, 8664,
+ 8672, 8680, 8688, 8696, 8704, 8710, 8726, 8734,
+ 8742, 8750, 8758, 8766, 8774, 8782, 8790, 8798,
+ 8806, 8814, 8822, 8842, 8850, 8866, 8874, 8882,
+ 8890, 8898, 8904, 8912, 8920, 8928, 8936, 8944,
+ 8952, 8960, 8968, 8976, 8982, 8998, 9006, 9018,
+ 9026, 9034, 9042, 9050, 9058, 9066, 9074, 9082,
+ 9086
+ };
-static const short _demo_machine_parser_cmd_index_offsets[] = {
- 0, 0, 2, 11, 18, 20, 25, 28,
- 31, 34, 37, 39, 42, 47, 50, 53,
- 56, 59, 62, 65, 68, 71, 74, 77,
- 82, 85, 88, 91, 93, 96, 99, 102,
- 105, 108, 111, 114, 117, 120, 123, 126,
- 129, 132, 135, 138, 141, 144, 147, 150,
- 153, 156, 159, 164, 167, 170, 173, 176,
- 189, 192, 195, 198, 201, 204, 207, 210,
- 213, 216, 219, 222, 225, 228, 231, 234,
- 237, 240, 243, 246, 249, 252, 255, 258,
- 261, 264, 267, 270, 273, 276, 279, 282,
- 285, 288, 291, 294, 297, 300, 303, 308,
- 311, 314, 317, 320, 323, 326, 329, 331,
- 333, 336, 339, 342, 345, 348, 351, 354,
- 357, 360, 367, 370, 373, 376, 379, 382,
- 385, 388, 391, 394, 397, 400, 403, 408,
- 411, 414, 417, 420, 425, 428, 431, 434,
- 437, 440, 443, 446, 449, 452, 455, 458,
- 463, 466, 471, 474, 477, 480, 483, 485,
- 490, 493, 496, 499, 502, 509, 516, 519,
- 522, 525, 528, 531, 534, 537, 540, 543,
- 552, 555, 558, 561, 568, 571, 574, 577,
- 580, 582, 585, 588, 591, 594, 597, 600,
- 603, 606, 609, 611, 618, 621, 626, 629,
- 632, 635, 638, 641, 644, 647, 650, 653,
- 656, 659, 662, 664, 671, 674, 677, 680,
- 683, 686, 689, 692, 695, 698, 701, 704,
- 707, 709, 712, 715, 718, 721, 724, 729,
- 732, 735, 737, 740, 743, 746, 749, 752,
- 754, 760, 762, 764, 771, 773, 803, 804,
- 834, 865, 870, 873, 876, 879, 882, 884,
- 887, 892, 895, 898, 901, 904, 907, 936,
- 969, 1000, 1003, 1032, 1063, 1094, 1097, 1100,
- 1103, 1106, 1135, 1140, 1143, 1146, 1149, 1151,
- 1154, 1157, 1160, 1163, 1166, 1169, 1172, 1201,
- 1230, 1233, 1236, 1239, 1242, 1245, 1274, 1277,
- 1280, 1311, 1314, 1317, 1320, 1349, 1352, 1355,
- 1384, 1387, 1390, 1393, 1422, 1453, 1484, 1489,
- 1520, 1523, 1526, 1529, 1532, 1561, 1574, 1577,
- 1580, 1583, 1586, 1589, 1592, 1621, 1652, 1655,
- 1658, 1661, 1690, 1693, 1696, 1699, 1728, 1731,
- 1760, 1763, 1766, 1795, 1798, 1827, 1830, 1833,
- 1836, 1839, 1842, 1871, 1902, 1905, 1908, 1937,
- 1940, 1969, 1972, 1975, 2004, 2007, 2010, 2039,
- 2068, 2071, 2100, 2103, 2106, 2135, 2138, 2141,
- 2170, 2173, 2176, 2205, 2208, 2211, 2214, 2243,
- 2248, 2251, 2254, 2257, 2286, 2289, 2292, 2295,
- 2298, 2327, 2358, 2387, 2420, 2451, 2480, 2511,
- 2542, 2571, 2600, 2629, 2658, 2689, 2718, 2747,
- 2776, 2807, 2838, 2869, 2898, 2927, 2958, 2987,
- 3016, 3045, 3074, 3103, 3132, 3163, 3192, 3221,
- 3250, 3279, 3308, 3337, 3366, 3395, 3424, 3453,
- 3482, 3511, 3576, 3583, 3589, 3599, 3602, 3605,
- 3615, 3626, 3631, 3636, 3641, 3646, 3655, 3666,
- 3671, 3676, 3681, 3686, 3691, 3700, 3705, 3710,
- 3715, 3720, 3725, 3734, 3743, 3748, 3753, 3762,
- 3773, 3782, 3793, 3802, 3811, 3820, 3824, 3828,
- 3851, 3862, 3866, 3875, 3886, 3909, 3936, 3951,
- 3966, 3981, 3996, 4019, 4046, 4061, 4076, 4091,
- 4106, 4121, 4144, 4159, 4174, 4189, 4204, 4219,
- 4242, 4265, 4280, 4295, 4318, 4343, 4351, 4359,
- 4367, 4375, 4396, 4421, 4429, 4437, 4445, 4453,
- 4461, 4477, 4485, 4493, 4501, 4509, 4517, 4538,
- 4559, 4567, 4575, 4596, 4651, 4660, 4669, 4704,
- 4713, 4722, 4731, 4766, 4777, 4786, 4795, 4804,
- 4813, 4848, 4859, 4868, 4877, 4886, 4921, 4930,
- 4939, 4948, 4983, 4992, 5001, 5010, 5019, 5028,
- 5063, 5074, 5083, 5094, 5129, 5138, 5147, 5156,
- 5165, 5173, 5184, 5193, 5228, 5237, 5246, 5255,
- 5290, 5303, 5316, 5325, 5334, 5343, 5352, 5361,
- 5396, 5405, 5414, 5423, 5432, 5467, 5482, 5491,
- 5526, 5535, 5570, 5579, 5614, 5627, 5662, 5671,
- 5680, 5689, 5698, 5706, 5715, 5724, 5759, 5768,
- 5777, 5786, 5821, 5830, 5839, 5874, 5883, 5892,
- 5900, 5913, 5922, 5957, 5968, 5977, 5986, 6021,
- 6030, 6065, 6074, 6083, 6118, 6127, 6162, 6199,
- 6208, 6217, 6226, 6261, 6270, 6279, 6288, 6296,
- 6309, 6318, 6353, 6362, 6371, 6380, 6415, 6424,
- 6433, 6442, 6451, 6486, 6495, 6504, 6513, 6548,
- 6583, 6592, 6600, 6635, 6644, 6653, 6662, 6671,
- 6680, 6715, 6726, 6735, 6744, 6779, 6787, 6796,
- 6805, 6814, 6823, 6832, 6867, 6932, 6966, 7000,
- 7034, 7068, 7102, 7136, 7170, 7204, 7238, 7272,
- 7306, 7340, 7374, 7408, 7442, 7476, 7510, 7544,
- 7578, 7612, 7646, 7680, 7714, 7750, 7784, 7818,
- 7852, 7886, 7920, 7954, 7988, 8022, 8056, 8090,
- 8098, 8106, 8114, 8122, 8130, 8142, 8150, 8158,
- 8166, 8174, 8186, 8194, 8202, 8208, 8216, 8224,
- 8232, 8240, 8248, 8260, 8268, 8276, 8284, 8292,
- 8300, 8308, 8316, 8324, 8332, 8340, 8348, 8356,
- 8364, 8372, 8380, 8388, 8400, 8408, 8420, 8428,
- 8434, 8442, 8450, 8458, 8466, 8472, 8484, 8492,
- 8500, 8508, 8516, 8524, 8532, 8540, 8556, 8572,
- 8580, 8588, 8596, 8604, 8612, 8620, 8656, 8664,
- 8672, 8680, 8688, 8696, 8704, 8710, 8726, 8734,
- 8742, 8750, 8758, 8766, 8774, 8782, 8790, 8798,
- 8806, 8814, 8822, 8842, 8850, 8866, 8874, 8882,
- 8890, 8898, 8904, 8912, 8920, 8928, 8936, 8944,
- 8952, 8960, 8968, 8976, 8982, 8998, 9006, 9018,
- 9026, 9034, 9042, 9050, 9058, 9066, 9074, 9082,
- 9086
-};
+ static const short _demo_machine_parser_cmd_indicies[] = {
+ 0, 1, 2, 0, 2, 4, 2, 3,
+ 2, 3, 1, 5, 5, 5, 6, 5,
+ 6, 1, 7, 1, 9, 10, 9, 10,
+ 8, 11, 11, 8, 12, 12, 8, 13,
+ 13, 8, 14, 14, 8, 15, 8, 16,
+ 16, 8, 17, 18, 17, 18, 8, 19,
+ 19, 8, 20, 20, 8, 21, 21, 8,
+ 22, 22, 8, 23, 23, 8, 24, 24,
+ 8, 25, 25, 8, 26, 26, 8, 27,
+ 27, 8, 28, 28, 8, 29, 30, 29,
+ 30, 8, 31, 31, 8, 32, 32, 8,
+ 33, 33, 8, 34, 8, 35, 35, 8,
+ 36, 36, 8, 37, 37, 8, 38, 38,
+ 8, 39, 39, 8, 40, 40, 8, 30,
+ 30, 8, 41, 41, 8, 42, 42, 8,
+ 43, 43, 8, 44, 44, 8, 45, 45,
+ 8, 46, 46, 8, 47, 47, 8, 48,
+ 48, 8, 49, 49, 8, 50, 50, 8,
+ 51, 51, 8, 52, 52, 8, 53, 53,
+ 8, 54, 54, 8, 55, 55, 8, 56,
+ 57, 56, 57, 8, 58, 58, 8, 59,
+ 59, 8, 60, 60, 8, 61, 61, 8,
+ 62, 63, 64, 65, 66, 67, 62, 63,
+ 64, 65, 66, 67, 8, 68, 68, 8,
+ 69, 69, 8, 70, 70, 8, 71, 71,
+ 8, 72, 72, 8, 65, 65, 8, 73,
+ 73, 8, 74, 74, 8, 75, 75, 8,
+ 76, 76, 8, 77, 77, 8, 78, 78,
+ 8, 79, 79, 8, 80, 80, 8, 81,
+ 81, 8, 82, 82, 8, 83, 83, 8,
+ 84, 84, 8, 85, 85, 8, 86, 86,
+ 8, 87, 87, 8, 88, 88, 8, 89,
+ 89, 8, 90, 90, 8, 91, 91, 8,
+ 92, 92, 8, 93, 93, 8, 94, 94,
+ 8, 95, 95, 8, 96, 96, 8, 97,
+ 97, 8, 98, 98, 8, 99, 99, 8,
+ 100, 100, 8, 101, 101, 8, 102, 102,
+ 8, 103, 103, 8, 104, 104, 8, 23,
+ 104, 23, 104, 8, 105, 105, 8, 106,
+ 106, 8, 107, 107, 8, 108, 108, 8,
+ 109, 109, 8, 110, 110, 8, 111, 111,
+ 8, 112, 1, 114, 113, 115, 115, 113,
+ 116, 116, 113, 117, 117, 113, 118, 118,
+ 113, 119, 119, 113, 120, 120, 113, 121,
+ 121, 113, 122, 122, 113, 118, 118, 113,
+ 123, 124, 125, 123, 124, 125, 113, 126,
+ 126, 113, 127, 127, 113, 128, 128, 113,
+ 129, 129, 113, 124, 124, 113, 130, 130,
+ 113, 131, 131, 113, 132, 132, 113, 133,
+ 133, 113, 134, 134, 113, 135, 135, 113,
+ 136, 136, 113, 137, 138, 137, 138, 113,
+ 139, 139, 113, 140, 140, 113, 141, 141,
+ 113, 142, 143, 113, 144, 145, 144, 145,
+ 113, 146, 146, 113, 147, 147, 113, 148,
+ 148, 113, 149, 149, 113, 150, 150, 113,
+ 151, 151, 113, 152, 152, 113, 153, 153,
+ 113, 154, 154, 113, 155, 155, 113, 156,
+ 156, 113, 157, 158, 157, 158, 113, 159,
+ 159, 113, 160, 161, 160, 161, 113, 162,
+ 162, 113, 163, 163, 113, 164, 164, 113,
+ 165, 165, 113, 166, 113, 167, 168, 167,
+ 168, 113, 169, 169, 113, 170, 170, 113,
+ 171, 171, 113, 172, 172, 113, 173, 174,
+ 175, 173, 174, 175, 113, 176, 177, 178,
+ 176, 177, 178, 113, 179, 179, 113, 180,
+ 180, 113, 181, 181, 113, 175, 175, 113,
+ 182, 182, 113, 183, 183, 113, 184, 184,
+ 113, 185, 185, 113, 186, 186, 113, 187,
+ 188, 189, 190, 187, 188, 189, 190, 113,
+ 191, 191, 113, 192, 192, 113, 193, 193,
+ 113, 194, 195, 196, 194, 195, 196, 113,
+ 197, 197, 113, 198, 198, 113, 199, 199,
+ 113, 200, 200, 113, 201, 113, 202, 202,
+ 113, 203, 203, 113, 204, 204, 113, 205,
+ 205, 113, 206, 206, 113, 207, 207, 113,
+ 208, 208, 113, 209, 209, 113, 210, 210,
+ 113, 211, 113, 212, 213, 214, 212, 213,
+ 214, 113, 215, 215, 113, 216, 217, 216,
+ 217, 113, 218, 218, 113, 219, 219, 113,
+ 220, 220, 113, 221, 221, 113, 222, 222,
+ 113, 223, 223, 113, 224, 224, 113, 225,
+ 225, 113, 226, 226, 113, 227, 227, 113,
+ 228, 228, 113, 229, 229, 113, 230, 113,
+ 231, 232, 233, 231, 232, 233, 113, 234,
+ 234, 113, 235, 235, 113, 236, 236, 113,
+ 237, 237, 113, 238, 238, 113, 239, 239,
+ 113, 240, 240, 113, 241, 241, 113, 242,
+ 242, 113, 243, 243, 113, 244, 244, 113,
+ 245, 245, 113, 246, 113, 247, 247, 113,
+ 248, 248, 113, 249, 249, 113, 250, 250,
+ 113, 193, 193, 113, 251, 252, 251, 252,
+ 113, 253, 253, 113, 254, 254, 113, 255,
+ 113, 256, 256, 113, 257, 257, 113, 258,
+ 258, 113, 259, 259, 113, 260, 260, 113,
+ 261, 1, 263, 264, 265, 266, 267, 262,
+ 269, 268, 271, 270, 273, 273, 273, 274,
+ 273, 274, 272, 276, 275, 279, 280, 281,
+ 282, 283, 284, 285, 286, 287, 288, 289,
+ 290, 291, 292, 293, 280, 281, 282, 283,
+ 284, 285, 286, 287, 288, 289, 290, 291,
+ 292, 293, 278, 295, 279, 296, 297, 298,
+ 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 296, 297, 298, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 278, 311, 312, 313, 314, 315, 316,
+ 317, 318, 319, 320, 321, 322, 323, 324,
+ 325, 311, 312, 313, 314, 315, 316, 317,
+ 318, 319, 320, 321, 322, 323, 324, 325,
+ 295, 326, 327, 326, 327, 295, 328, 328,
+ 295, 329, 329, 295, 330, 330, 295, 331,
+ 331, 295, 332, 295, 333, 333, 295, 334,
+ 335, 334, 335, 295, 336, 336, 295, 337,
+ 337, 295, 338, 338, 295, 339, 339, 295,
+ 340, 340, 295, 342, 343, 344, 345, 346,
+ 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 342, 343, 344, 345, 346, 347, 348,
+ 349, 350, 351, 352, 353, 354, 355, 295,
+ 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, 368, 369, 370, 371, 372,
+ 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, 368, 369, 370, 371, 372,
+ 295, 374, 375, 376, 377, 378, 379, 380,
+ 381, 382, 383, 384, 385, 386, 387, 388,
+ 374, 375, 376, 377, 378, 379, 380, 381,
+ 382, 383, 384, 385, 386, 387, 388, 295,
+ 389, 389, 295, 391, 392, 393, 394, 395,
+ 396, 397, 398, 399, 400, 401, 402, 403,
+ 404, 391, 392, 393, 394, 395, 396, 397,
+ 398, 399, 400, 401, 402, 403, 404, 295,
+ 406, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, 418, 419, 420, 406,
+ 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, 418, 419, 420, 295, 422,
+ 423, 424, 425, 426, 427, 428, 429, 430,
+ 431, 432, 433, 434, 435, 436, 422, 423,
+ 424, 425, 426, 427, 428, 429, 430, 431,
+ 432, 433, 434, 435, 436, 295, 437, 437,
+ 295, 438, 438, 295, 439, 439, 295, 435,
+ 435, 295, 441, 442, 443, 444, 445, 446,
+ 447, 448, 449, 450, 451, 452, 453, 454,
+ 441, 442, 443, 444, 445, 446, 447, 448,
+ 449, 450, 451, 452, 453, 454, 295, 455,
+ 456, 455, 456, 295, 457, 457, 295, 458,
+ 458, 295, 459, 459, 295, 460, 295, 461,
+ 461, 295, 462, 462, 295, 463, 463, 295,
+ 464, 464, 295, 465, 465, 295, 466, 466,
+ 295, 456, 456, 295, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479,
+ 480, 481, 468, 469, 470, 471, 472, 473,
+ 474, 475, 476, 477, 478, 479, 480, 481,
+ 295, 483, 484, 485, 486, 487, 488, 489,
+ 490, 491, 492, 493, 494, 495, 496, 483,
+ 484, 485, 486, 487, 488, 489, 490, 491,
+ 492, 493, 494, 495, 496, 295, 497, 497,
+ 295, 498, 498, 295, 499, 499, 295, 500,
+ 500, 295, 501, 501, 295, 483, 484, 485,
+ 502, 487, 488, 489, 490, 491, 492, 493,
+ 494, 495, 496, 483, 484, 485, 502, 487,
+ 488, 489, 490, 491, 492, 493, 494, 495,
+ 496, 295, 503, 503, 295, 504, 504, 295,
+ 506, 507, 508, 509, 510, 511, 512, 513,
+ 514, 515, 516, 517, 518, 519, 520, 506,
+ 507, 508, 509, 510, 511, 512, 513, 514,
+ 515, 516, 517, 518, 519, 520, 295, 521,
+ 521, 295, 522, 522, 295, 523, 523, 295,
+ 506, 507, 508, 509, 510, 511, 513, 514,
+ 515, 516, 517, 518, 519, 520, 506, 507,
+ 508, 509, 510, 511, 513, 514, 515, 516,
+ 517, 518, 519, 520, 295, 524, 524, 295,
+ 525, 525, 295, 527, 528, 529, 530, 531,
+ 532, 533, 534, 535, 536, 537, 538, 539,
+ 540, 527, 528, 529, 530, 531, 532, 533,
+ 534, 535, 536, 537, 538, 539, 540, 295,
+ 541, 541, 295, 542, 542, 295, 543, 543,
+ 295, 527, 528, 529, 530, 531, 532, 544,
+ 534, 535, 536, 537, 538, 539, 540, 527,
+ 528, 529, 530, 531, 532, 544, 534, 535,
+ 536, 537, 538, 539, 540, 295, 374, 545,
+ 376, 377, 378, 379, 380, 381, 382, 383,
+ 384, 385, 386, 388, 387, 374, 545, 376,
+ 377, 378, 379, 380, 381, 382, 383, 384,
+ 385, 386, 388, 387, 295, 547, 548, 549,
+ 550, 551, 552, 553, 554, 555, 556, 557,
+ 558, 559, 560, 561, 547, 548, 549, 550,
+ 551, 552, 553, 554, 555, 556, 557, 558,
+ 559, 560, 561, 295, 562, 563, 562, 563,
+ 295, 565, 566, 567, 568, 569, 570, 571,
+ 572, 573, 574, 575, 576, 577, 578, 579,
+ 565, 566, 567, 568, 569, 570, 571, 572,
+ 573, 574, 575, 576, 577, 578, 579, 295,
+ 580, 580, 295, 581, 581, 295, 582, 582,
+ 295, 583, 583, 295, 565, 566, 567, 568,
+ 569, 570, 572, 573, 574, 575, 576, 577,
+ 578, 579, 565, 566, 567, 568, 569, 570,
+ 572, 573, 574, 575, 576, 577, 578, 579,
+ 295, 584, 585, 586, 587, 588, 589, 584,
+ 585, 586, 587, 588, 589, 295, 590, 590,
+ 295, 591, 591, 295, 592, 592, 295, 593,
+ 593, 295, 594, 594, 295, 587, 587, 295,
+ 596, 597, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 607, 608, 609, 596, 597,
+ 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 295, 611, 612, 613,
+ 614, 615, 616, 617, 618, 619, 620, 621,
+ 622, 623, 624, 625, 611, 612, 613, 614,
+ 615, 616, 617, 618, 619, 620, 621, 622,
+ 623, 624, 625, 295, 626, 626, 295, 627,
+ 627, 295, 628, 628, 295, 611, 612, 613,
+ 614, 615, 616, 618, 619, 620, 621, 622,
+ 623, 624, 625, 611, 612, 613, 614, 615,
+ 616, 618, 619, 620, 621, 622, 623, 624,
+ 625, 295, 629, 629, 295, 630, 630, 295,
+ 631, 631, 295, 633, 634, 635, 636, 637,
+ 638, 639, 640, 641, 642, 643, 644, 645,
+ 646, 633, 634, 635, 636, 637, 638, 639,
+ 640, 641, 642, 643, 644, 645, 646, 295,
+ 647, 647, 295, 649, 650, 651, 652, 653,
+ 654, 655, 656, 657, 658, 659, 660, 661,
+ 662, 649, 650, 651, 652, 653, 654, 655,
+ 656, 657, 658, 659, 660, 661, 662, 295,
+ 663, 663, 295, 664, 664, 295, 666, 667,
+ 668, 669, 670, 671, 672, 673, 674, 675,
+ 676, 677, 678, 679, 666, 667, 668, 669,
+ 670, 671, 672, 673, 674, 675, 676, 677,
+ 678, 679, 295, 680, 680, 295, 682, 683,
+ 684, 685, 686, 687, 688, 689, 690, 691,
+ 692, 693, 694, 695, 682, 683, 684, 685,
+ 686, 687, 688, 689, 690, 691, 692, 693,
+ 694, 695, 295, 696, 696, 295, 697, 697,
+ 295, 698, 698, 295, 699, 699, 295, 700,
+ 700, 295, 682, 683, 684, 685, 686, 687,
+ 688, 689, 690, 691, 692, 693, 701, 695,
+ 682, 683, 684, 685, 686, 687, 688, 689,
+ 690, 691, 692, 693, 701, 695, 295, 703,
+ 704, 705, 706, 707, 708, 709, 710, 711,
+ 712, 713, 714, 715, 716, 717, 703, 704,
+ 705, 706, 707, 708, 709, 710, 711, 712,
+ 713, 714, 715, 716, 717, 295, 718, 718,
+ 295, 719, 719, 295, 703, 704, 705, 706,
+ 707, 708, 709, 710, 711, 712, 713, 714,
+ 715, 717, 703, 704, 705, 706, 707, 708,
+ 709, 710, 711, 712, 713, 714, 715, 717,
+ 295, 720, 720, 295, 547, 548, 549, 721,
+ 551, 552, 553, 554, 555, 556, 557, 558,
+ 559, 561, 547, 548, 549, 721, 551, 552,
+ 553, 554, 555, 556, 557, 558, 559, 561,
+ 295, 722, 722, 295, 723, 723, 295, 374,
+ 545, 376, 377, 378, 379, 380, 381, 382,
+ 383, 384, 385, 386, 387, 374, 545, 376,
+ 377, 378, 379, 380, 381, 382, 383, 384,
+ 385, 386, 387, 295, 724, 724, 295, 725,
+ 725, 295, 726, 423, 424, 727, 426, 427,
+ 428, 429, 728, 431, 432, 433, 434, 436,
+ 726, 423, 424, 727, 426, 427, 428, 429,
+ 728, 431, 432, 433, 434, 436, 295, 730,
+ 731, 732, 733, 734, 735, 736, 737, 738,
+ 739, 740, 741, 742, 743, 730, 731, 732,
+ 733, 734, 735, 736, 737, 738, 739, 740,
+ 741, 742, 743, 295, 744, 744, 295, 730,
+ 731, 732, 733, 734, 735, 745, 737, 738,
+ 739, 740, 741, 742, 743, 730, 731, 732,
+ 733, 734, 735, 745, 737, 738, 739, 740,
+ 741, 742, 743, 295, 746, 746, 295, 747,
+ 747, 295, 406, 407, 408, 409, 410, 411,
+ 413, 414, 415, 416, 417, 418, 419, 420,
+ 406, 407, 408, 409, 410, 411, 413, 414,
+ 415, 416, 417, 418, 419, 420, 295, 748,
+ 748, 295, 749, 749, 295, 751, 752, 753,
+ 754, 755, 756, 757, 758, 759, 760, 761,
+ 762, 763, 764, 751, 752, 753, 754, 755,
+ 756, 757, 758, 759, 760, 761, 762, 763,
+ 764, 295, 765, 765, 295, 766, 766, 295,
+ 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 366, 367, 368, 369, 372, 357, 358,
+ 359, 360, 361, 362, 363, 364, 365, 366,
+ 367, 368, 369, 372, 295, 767, 767, 295,
+ 768, 768, 295, 769, 769, 295, 771, 772,
+ 773, 774, 775, 776, 777, 778, 779, 780,
+ 781, 782, 783, 784, 771, 772, 773, 774,
+ 775, 776, 777, 778, 779, 780, 781, 782,
+ 783, 784, 295, 340, 769, 340, 769, 295,
+ 785, 785, 295, 786, 786, 295, 787, 787,
+ 295, 311, 312, 313, 314, 315, 316, 317,
+ 318, 319, 320, 321, 322, 323, 788, 311,
+ 312, 313, 314, 315, 316, 317, 318, 319,
+ 320, 321, 322, 323, 788, 295, 789, 789,
+ 295, 790, 790, 295, 791, 791, 295, 325,
+ 325, 295, 793, 794, 795, 796, 797, 798,
+ 799, 800, 801, 802, 803, 804, 805, 806,
+ 793, 794, 795, 796, 797, 798, 799, 800,
+ 801, 802, 803, 804, 805, 806, 295, 808,
+ 809, 810, 811, 812, 813, 814, 815, 816,
+ 817, 818, 819, 820, 821, 111, 808, 809,
+ 810, 811, 812, 813, 814, 815, 816, 817,
+ 818, 819, 820, 821, 111, 807, 823, 824,
+ 825, 826, 827, 828, 829, 830, 831, 832,
+ 833, 834, 835, 836, 823, 824, 825, 826,
+ 827, 828, 829, 830, 831, 832, 833, 834,
+ 835, 836, 822, 838, 839, 840, 841, 842,
+ 843, 844, 845, 846, 847, 848, 849, 850,
+ 851, 852, 853, 838, 839, 840, 841, 842,
+ 843, 844, 845, 846, 847, 848, 849, 850,
+ 851, 852, 853, 837, 855, 856, 857, 858,
+ 859, 860, 861, 862, 863, 864, 865, 866,
+ 867, 868, 869, 855, 856, 857, 858, 859,
+ 860, 861, 862, 863, 864, 865, 866, 867,
+ 868, 869, 854, 871, 872, 873, 874, 875,
+ 876, 877, 878, 879, 880, 881, 882, 883,
+ 884, 871, 872, 873, 874, 875, 876, 877,
+ 878, 879, 880, 881, 882, 883, 884, 870,
+ 886, 887, 888, 889, 890, 891, 892, 893,
+ 894, 895, 896, 897, 898, 899, 900, 886,
+ 887, 888, 889, 890, 891, 892, 893, 894,
+ 895, 896, 897, 898, 899, 900, 885, 902,
+ 903, 904, 905, 906, 907, 908, 909, 910,
+ 911, 912, 913, 914, 28, 915, 902, 903,
+ 904, 905, 906, 907, 908, 909, 910, 911,
+ 912, 913, 914, 28, 915, 901, 917, 918,
+ 919, 920, 921, 922, 923, 924, 925, 926,
+ 927, 928, 929, 930, 917, 918, 919, 920,
+ 921, 922, 923, 924, 925, 926, 927, 928,
+ 929, 930, 916, 932, 933, 934, 935, 936,
+ 937, 938, 939, 940, 941, 942, 943, 944,
+ 945, 932, 933, 934, 935, 936, 937, 938,
+ 939, 940, 941, 942, 943, 944, 945, 931,
+ 947, 948, 949, 950, 951, 952, 953, 954,
+ 955, 956, 957, 958, 959, 960, 947, 948,
+ 949, 950, 951, 952, 953, 954, 955, 956,
+ 957, 958, 959, 960, 946, 947, 948, 949,
+ 961, 951, 952, 953, 954, 955, 956, 957,
+ 958, 959, 960, 947, 948, 949, 961, 951,
+ 952, 953, 954, 955, 956, 957, 958, 959,
+ 960, 946, 963, 964, 965, 966, 967, 968,
+ 969, 970, 971, 972, 973, 974, 975, 976,
+ 977, 963, 964, 965, 966, 967, 968, 969,
+ 970, 971, 972, 973, 974, 975, 976, 977,
+ 962, 963, 964, 965, 966, 967, 968, 970,
+ 971, 972, 973, 974, 975, 976, 977, 963,
+ 964, 965, 966, 967, 968, 970, 971, 972,
+ 973, 974, 975, 976, 977, 962, 979, 980,
+ 981, 982, 983, 984, 985, 986, 987, 988,
+ 989, 990, 991, 992, 979, 980, 981, 982,
+ 983, 984, 985, 986, 987, 988, 989, 990,
+ 991, 992, 978, 979, 980, 981, 982, 983,
+ 984, 993, 986, 987, 988, 989, 990, 991,
+ 992, 979, 980, 981, 982, 983, 984, 993,
+ 986, 987, 988, 989, 990, 991, 992, 978,
+ 855, 994, 857, 858, 859, 860, 861, 862,
+ 863, 864, 865, 866, 867, 869, 868, 855,
+ 994, 857, 858, 859, 860, 861, 862, 863,
+ 864, 865, 866, 867, 869, 868, 854, 996,
+ 997, 998, 999, 1000, 1001, 1002, 1003, 1004,
+ 1005, 1006, 1007, 1008, 1009, 1010, 996, 997,
+ 998, 999, 1000, 1001, 1002, 1003, 1004, 1005,
+ 1006, 1007, 1008, 1009, 1010, 995, 1012, 1013,
+ 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
+ 1022, 1023, 1024, 1025, 1026, 1012, 1013, 1014,
+ 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022,
+ 1023, 1024, 1025, 1026, 1011, 1012, 1013, 1014,
+ 1015, 1016, 1017, 1019, 1020, 1021, 1022, 1023,
+ 1024, 1025, 1026, 1012, 1013, 1014, 1015, 1016,
+ 1017, 1019, 1020, 1021, 1022, 1023, 1024, 1025,
+ 1026, 1011, 1028, 1029, 1030, 1031, 1032, 1033,
+ 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
+ 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035,
+ 1036, 1037, 1038, 1039, 1040, 1041, 1027, 1043,
+ 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051,
+ 1052, 1053, 1054, 1055, 1056, 1057, 1043, 1044,
+ 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052,
+ 1053, 1054, 1055, 1056, 1057, 1042, 1043, 1044,
+ 1045, 1046, 1047, 1048, 1050, 1051, 1052, 1053,
+ 1054, 1055, 1056, 1057, 1043, 1044, 1045, 1046,
+ 1047, 1048, 1050, 1051, 1052, 1053, 1054, 1055,
+ 1056, 1057, 1042, 1059, 1060, 1061, 1062, 1063,
+ 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071,
+ 1072, 1059, 1060, 1061, 1062, 1063, 1064, 1065,
+ 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1058,
+ 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081,
+ 1082, 1083, 1084, 1085, 1086, 1087, 1074, 1075,
+ 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083,
+ 1084, 1085, 1086, 1087, 1073, 1089, 1090, 1091,
+ 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099,
+ 1100, 1101, 1102, 1089, 1090, 1091, 1092, 1093,
+ 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101,
+ 1102, 1088, 1104, 1105, 1106, 1107, 1108, 1109,
+ 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
+ 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111,
+ 1112, 1113, 1114, 1115, 1116, 1117, 1103, 1104,
+ 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112,
+ 1113, 1114, 1115, 1118, 1117, 1104, 1105, 1106,
+ 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114,
+ 1115, 1118, 1117, 1103, 1120, 1121, 1122, 1123,
+ 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131,
+ 1132, 1133, 1134, 1120, 1121, 1122, 1123, 1124,
+ 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132,
+ 1133, 1134, 1119, 1120, 1121, 1122, 1123, 1124,
+ 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132,
+ 1134, 1120, 1121, 1122, 1123, 1124, 1125, 1126,
+ 1127, 1128, 1129, 1130, 1131, 1132, 1134, 1119,
+ 996, 997, 998, 1135, 1000, 1001, 1002, 1003,
+ 1004, 1005, 1006, 1007, 1008, 1010, 996, 997,
+ 998, 1135, 1000, 1001, 1002, 1003, 1004, 1005,
+ 1006, 1007, 1008, 1010, 995, 855, 994, 857,
+ 858, 859, 860, 861, 862, 863, 864, 865,
+ 866, 867, 868, 855, 994, 857, 858, 859,
+ 860, 861, 862, 863, 864, 865, 866, 867,
+ 868, 854, 1136, 903, 904, 1137, 906, 907,
+ 908, 909, 1138, 911, 912, 913, 914, 915,
+ 1136, 903, 904, 1137, 906, 907, 908, 909,
+ 1138, 911, 912, 913, 914, 915, 901, 1140,
+ 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148,
+ 1149, 1150, 1151, 1152, 1153, 1140, 1141, 1142,
+ 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150,
+ 1151, 1152, 1153, 1139, 1140, 1141, 1142, 1143,
+ 1144, 1145, 1154, 1147, 1148, 1149, 1150, 1151,
+ 1152, 1153, 1140, 1141, 1142, 1143, 1144, 1145,
+ 1154, 1147, 1148, 1149, 1150, 1151, 1152, 1153,
+ 1139, 886, 887, 888, 889, 890, 891, 893,
+ 894, 895, 896, 897, 898, 899, 900, 886,
+ 887, 888, 889, 890, 891, 893, 894, 895,
+ 896, 897, 898, 899, 900, 885, 1156, 1157,
+ 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165,
+ 1166, 1167, 1168, 1169, 1156, 1157, 1158, 1159,
+ 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167,
+ 1168, 1169, 1155, 838, 839, 840, 841, 842,
+ 843, 844, 845, 846, 847, 848, 849, 850,
+ 853, 838, 839, 840, 841, 842, 843, 844,
+ 845, 846, 847, 848, 849, 850, 853, 837,
+ 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178,
+ 1179, 1180, 1181, 1182, 1183, 1184, 1171, 1172,
+ 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180,
+ 1181, 1182, 1183, 1184, 1170, 808, 809, 810,
+ 811, 812, 813, 814, 815, 816, 817, 818,
+ 819, 820, 1185, 808, 809, 810, 811, 812,
+ 813, 814, 815, 816, 817, 818, 819, 820,
+ 1185, 807, 1187, 1188, 1189, 1190, 1191, 1192,
+ 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200,
+ 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194,
+ 1195, 1196, 1197, 1198, 1199, 1200, 1186, 1203,
+ 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211,
+ 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219,
+ 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213,
+ 1214, 1215, 1216, 1217, 1218, 1219, 1203, 1221,
+ 1222, 1206, 1207, 1208, 1209, 1210, 1211, 1212,
+ 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1206,
+ 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214,
+ 1215, 1216, 1217, 1218, 1219, 1202, 1220, 1201,
+ 1225, 1226, 1225, 1228, 1224, 1227, 1223, 1230,
+ 1231, 1230, 1233, 1232, 1229, 1236, 1237, 1238,
+ 1239, 1240, 1238, 1239, 1240, 1236, 1235, 1243,
+ 1243, 1242, 1245, 1245, 1244, 1236, 1237, 1246,
+ 1247, 1248, 1246, 1247, 1248, 1236, 1235, 1250,
+ 1251, 1252, 1253, 1254, 1251, 1252, 1253, 1254,
+ 1250, 1242, 1243, 1255, 1255, 1243, 1242, 1243,
+ 1256, 1256, 1243, 1242, 1243, 1257, 1257, 1243,
+ 1242, 1243, 1258, 1258, 1243, 1242, 1250, 1251,
+ 1253, 1254, 1251, 1253, 1254, 1250, 1242, 1250,
+ 1251, 1259, 1253, 1254, 1251, 1259, 1253, 1254,
+ 1250, 1242, 1243, 1260, 1260, 1243, 1242, 1243,
+ 1261, 1261, 1243, 1242, 1243, 1262, 1262, 1243,
+ 1242, 1243, 1263, 1263, 1243, 1242, 1243, 1258,
+ 1258, 1243, 1242, 1243, 1264, 1265, 1266, 1264,
+ 1265, 1266, 1243, 1242, 1243, 1267, 1267, 1243,
+ 1242, 1243, 1268, 1268, 1243, 1242, 1243, 1269,
+ 1269, 1243, 1242, 1243, 1270, 1270, 1243, 1242,
+ 1243, 1265, 1265, 1243, 1242, 1272, 1273, 1274,
+ 1275, 1273, 1274, 1275, 1272, 1242, 1277, 1278,
+ 1279, 1280, 1278, 1279, 1280, 1277, 1242, 1243,
+ 1281, 1281, 1243, 1242, 1243, 1282, 1282, 1243,
+ 1242, 1277, 1283, 1279, 1280, 1283, 1279, 1280,
+ 1277, 1242, 1285, 1286, 1287, 1288, 1289, 1286,
+ 1287, 1288, 1289, 1285, 1284, 1285, 1286, 1288,
+ 1289, 1286, 1288, 1289, 1285, 1284, 1285, 1286,
+ 1290, 1288, 1289, 1286, 1290, 1288, 1289, 1285,
+ 1284, 1292, 1293, 1294, 1295, 1293, 1294, 1295,
+ 1292, 1291, 1297, 1298, 1299, 1300, 1298, 1299,
+ 1300, 1297, 1296, 1297, 1301, 1299, 1300, 1301,
+ 1299, 1300, 1297, 1296, 1303, 1305, 1304, 1302,
+ 1306, 1307, 1304, 1302, 1236, 1309, 1238, 1239,
+ 1240, 1238, 1239, 1240, 1311, 1312, 1313, 1314,
+ 1315, 1313, 1314, 1315, 1235, 1236, 1235, 1310,
+ 1311, 1310, 1308, 1243, 1317, 1319, 1320, 1242,
+ 1243, 1242, 1318, 1319, 1318, 1316, 1243, 1321,
+ 1243, 1242, 1245, 1303, 1322, 1305, 1245, 1304,
+ 1322, 1304, 1302, 1243, 1323, 1319, 1324, 1242,
+ 1243, 1242, 1318, 1319, 1318, 1316, 1236, 1309,
+ 1246, 1247, 1248, 1246, 1247, 1248, 1311, 1312,
+ 1325, 1326, 1327, 1325, 1326, 1327, 1235, 1236,
+ 1235, 1310, 1311, 1310, 1308, 1250, 1317, 1251,
+ 1252, 1253, 1254, 1251, 1252, 1253, 1254, 1329,
+ 1320, 1330, 1331, 1332, 1333, 1330, 1331, 1332,
+ 1333, 1242, 1250, 1242, 1318, 1329, 1318, 1328,
+ 1243, 1317, 1255, 1255, 1319, 1320, 1334, 1334,
+ 1242, 1243, 1242, 1318, 1319, 1318, 1316, 1243,
+ 1317, 1256, 1256, 1319, 1320, 1335, 1335, 1242,
+ 1243, 1242, 1318, 1319, 1318, 1316, 1243, 1317,
+ 1257, 1257, 1319, 1320, 1336, 1336, 1242, 1243,
+ 1242, 1318, 1319, 1318, 1316, 1243, 1317, 1258,
+ 1258, 1319, 1320, 1337, 1337, 1242, 1243, 1242,
+ 1318, 1319, 1318, 1316, 1250, 1317, 1251, 1253,
+ 1254, 1251, 1253, 1254, 1329, 1320, 1330, 1332,
+ 1333, 1330, 1332, 1333, 1242, 1250, 1242, 1318,
+ 1329, 1318, 1328, 1250, 1317, 1251, 1259, 1253,
+ 1254, 1251, 1259, 1253, 1254, 1329, 1320, 1330,
+ 1338, 1332, 1333, 1330, 1338, 1332, 1333, 1242,
+ 1250, 1242, 1318, 1329, 1318, 1328, 1243, 1317,
+ 1260, 1260, 1319, 1320, 1339, 1339, 1242, 1243,
+ 1242, 1318, 1319, 1318, 1316, 1243, 1317, 1261,
+ 1261, 1319, 1320, 1340, 1340, 1242, 1243, 1242,
+ 1318, 1319, 1318, 1316, 1243, 1317, 1262, 1262,
+ 1319, 1320, 1341, 1341, 1242, 1243, 1242, 1318,
+ 1319, 1318, 1316, 1243, 1317, 1263, 1263, 1319,
+ 1320, 1342, 1342, 1242, 1243, 1242, 1318, 1319,
+ 1318, 1316, 1243, 1317, 1258, 1258, 1319, 1320,
+ 1337, 1337, 1242, 1243, 1242, 1318, 1319, 1318,
+ 1316, 1243, 1317, 1264, 1265, 1266, 1264, 1265,
+ 1266, 1319, 1320, 1343, 1344, 1345, 1343, 1344,
+ 1345, 1242, 1243, 1242, 1318, 1319, 1318, 1316,
+ 1243, 1317, 1267, 1267, 1319, 1320, 1346, 1346,
+ 1242, 1243, 1242, 1318, 1319, 1318, 1316, 1243,
+ 1317, 1268, 1268, 1319, 1320, 1347, 1347, 1242,
+ 1243, 1242, 1318, 1319, 1318, 1316, 1243, 1317,
+ 1269, 1269, 1319, 1320, 1348, 1348, 1242, 1243,
+ 1242, 1318, 1319, 1318, 1316, 1243, 1317, 1270,
+ 1270, 1319, 1320, 1349, 1349, 1242, 1243, 1242,
+ 1318, 1319, 1318, 1316, 1243, 1317, 1265, 1265,
+ 1319, 1320, 1344, 1344, 1242, 1243, 1242, 1318,
+ 1319, 1318, 1316, 1272, 1317, 1273, 1274, 1275,
+ 1273, 1274, 1275, 1351, 1320, 1352, 1353, 1354,
+ 1352, 1353, 1354, 1242, 1272, 1242, 1318, 1351,
+ 1318, 1350, 1277, 1317, 1278, 1279, 1280, 1278,
+ 1279, 1280, 1356, 1320, 1357, 1358, 1359, 1357,
+ 1358, 1359, 1242, 1277, 1242, 1318, 1356, 1318,
+ 1355, 1243, 1317, 1281, 1281, 1319, 1320, 1360,
+ 1360, 1242, 1243, 1242, 1318, 1319, 1318, 1316,
+ 1243, 1317, 1282, 1282, 1319, 1320, 1361, 1361,
+ 1242, 1243, 1242, 1318, 1319, 1318, 1316, 1277,
+ 1317, 1283, 1279, 1280, 1283, 1279, 1280, 1356,
+ 1320, 1362, 1358, 1359, 1362, 1358, 1359, 1242,
+ 1277, 1242, 1318, 1356, 1318, 1355, 1285, 1303,
+ 1286, 1287, 1288, 1289, 1286, 1287, 1288, 1289,
+ 1364, 1305, 1365, 1366, 1367, 1368, 1365, 1366,
+ 1367, 1368, 1285, 1304, 1364, 1304, 1363, 1303,
+ 115, 115, 1305, 1369, 1369, 1304, 1302, 1303,
+ 116, 116, 1305, 1370, 1370, 1304, 1302, 1303,
+ 117, 117, 1305, 1371, 1371, 1304, 1302, 1303,
+ 118, 118, 1305, 1372, 1372, 1304, 1302, 1285,
+ 1303, 1286, 1288, 1289, 1286, 1288, 1289, 1364,
+ 1305, 1365, 1367, 1368, 1365, 1367, 1368, 1285,
+ 1304, 1364, 1304, 1363, 1285, 1303, 1286, 1290,
+ 1288, 1289, 1286, 1290, 1288, 1289, 1364, 1305,
+ 1365, 1373, 1367, 1368, 1365, 1373, 1367, 1368,
+ 1285, 1304, 1364, 1304, 1363, 1303, 119, 119,
+ 1305, 1374, 1374, 1304, 1302, 1303, 120, 120,
+ 1305, 1375, 1375, 1304, 1302, 1303, 121, 121,
+ 1305, 1376, 1376, 1304, 1302, 1303, 122, 122,
+ 1305, 1377, 1377, 1304, 1302, 1303, 118, 118,
+ 1305, 1372, 1372, 1304, 1302, 1303, 123, 124,
+ 125, 123, 124, 125, 1305, 1378, 1379, 1380,
+ 1378, 1379, 1380, 1304, 1302, 1303, 126, 126,
+ 1305, 1381, 1381, 1304, 1302, 1303, 127, 127,
+ 1305, 1382, 1382, 1304, 1302, 1303, 128, 128,
+ 1305, 1383, 1383, 1304, 1302, 1303, 129, 129,
+ 1305, 1384, 1384, 1304, 1302, 1303, 124, 124,
+ 1305, 1379, 1379, 1304, 1302, 1292, 1303, 1293,
+ 1294, 1295, 1293, 1294, 1295, 1386, 1305, 1387,
+ 1388, 1389, 1387, 1388, 1389, 1292, 1304, 1386,
+ 1304, 1385, 1297, 1303, 1298, 1299, 1300, 1298,
+ 1299, 1300, 1391, 1305, 1392, 1393, 1394, 1392,
+ 1393, 1394, 1297, 1304, 1391, 1304, 1390, 1303,
+ 130, 130, 1305, 1395, 1395, 1304, 1302, 1303,
+ 131, 131, 1305, 1396, 1396, 1304, 1302, 1297,
+ 1303, 1301, 1299, 1300, 1301, 1299, 1300, 1391,
+ 1305, 1397, 1393, 1394, 1397, 1393, 1394, 1297,
+ 1304, 1391, 1304, 1390, 1203, 1204, 1205, 1398,
+ 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406,
+ 1407, 1408, 1409, 1410, 1411, 1398, 1399, 1400,
+ 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408,
+ 1409, 1410, 1411, 1203, 1221, 1222, 1227, 1220,
+ 1227, 1220, 1227, 1227, 1220, 1227, 1220, 1227,
+ 1202, 1220, 1227, 1220, 1227, 1220, 1227, 1220,
+ 1227, 1220, 1201, 1225, 1226, 1412, 1412, 1225,
+ 1228, 1224, 1227, 1223, 1225, 1226, 1413, 1413,
+ 1225, 1228, 1224, 1227, 1223, 1415, 1416, 1417,
+ 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425,
+ 1426, 1427, 1428, 1429, 1430, 1417, 1418, 1419,
+ 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427,
+ 1428, 1429, 1430, 1415, 1432, 1224, 1431, 1414,
+ 1225, 1226, 1433, 1433, 1225, 1228, 1224, 1227,
+ 1223, 1225, 1226, 1434, 1434, 1225, 1228, 1224,
+ 1227, 1223, 1225, 1226, 1435, 1435, 1225, 1228,
+ 1224, 1227, 1223, 1437, 1438, 1439, 1440, 1441,
+ 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449,
+ 1450, 1451, 1452, 1439, 1440, 1441, 1442, 1443,
+ 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451,
+ 1452, 1437, 1454, 1224, 1453, 1436, 1225, 1226,
+ 1455, 1456, 1455, 1456, 1225, 1228, 1224, 1227,
+ 1223, 1225, 1226, 1457, 1457, 1225, 1228, 1224,
+ 1227, 1223, 1225, 1226, 1458, 1458, 1225, 1228,
+ 1224, 1227, 1223, 1225, 1226, 1459, 1459, 1225,
+ 1228, 1224, 1227, 1223, 1225, 1460, 1461, 1226,
+ 1225, 1228, 1224, 1227, 1223, 1463, 1464, 1465,
+ 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473,
+ 1474, 1475, 1476, 1477, 1478, 1465, 1466, 1467,
+ 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475,
+ 1476, 1477, 1478, 1463, 1480, 1224, 1479, 1462,
+ 1225, 1226, 1481, 1482, 1481, 1482, 1225, 1228,
+ 1224, 1227, 1223, 1225, 1226, 1483, 1483, 1225,
+ 1228, 1224, 1227, 1223, 1225, 1226, 1484, 1484,
+ 1225, 1228, 1224, 1227, 1223, 1225, 1226, 1485,
+ 1485, 1225, 1228, 1224, 1227, 1223, 1487, 1488,
+ 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496,
+ 1497, 1498, 1499, 1500, 1501, 1502, 1489, 1490,
+ 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498,
+ 1499, 1500, 1501, 1502, 1487, 1504, 1224, 1503,
+ 1486, 1225, 1226, 1505, 1505, 1225, 1228, 1224,
+ 1227, 1223, 1225, 1226, 1506, 1506, 1225, 1228,
+ 1224, 1227, 1223, 1225, 1226, 1507, 1507, 1225,
+ 1228, 1224, 1227, 1223, 1509, 1510, 1511, 1512,
+ 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520,
+ 1521, 1522, 1523, 1524, 1511, 1512, 1513, 1514,
+ 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522,
+ 1523, 1524, 1509, 1526, 1224, 1525, 1508, 1225,
+ 1226, 1527, 1527, 1225, 1228, 1224, 1227, 1223,
+ 1225, 1226, 1528, 1528, 1225, 1228, 1224, 1227,
+ 1223, 1225, 1226, 1529, 1529, 1225, 1228, 1224,
+ 1227, 1223, 1225, 1226, 1530, 1530, 1225, 1228,
+ 1224, 1227, 1223, 1225, 1226, 1531, 1531, 1225,
+ 1228, 1224, 1227, 1223, 1533, 1534, 1535, 1536,
+ 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544,
+ 1545, 1546, 1547, 1548, 1535, 1536, 1537, 1538,
+ 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546,
+ 1547, 1548, 1533, 1550, 1224, 1549, 1532, 1225,
+ 1226, 1551, 1552, 1551, 1552, 1225, 1228, 1224,
+ 1227, 1223, 1225, 1226, 1553, 1553, 1225, 1228,
+ 1224, 1227, 1223, 1225, 1226, 1554, 1555, 1554,
+ 1555, 1225, 1228, 1224, 1227, 1223, 1557, 1558,
+ 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566,
+ 1567, 1568, 1569, 1570, 1571, 1572, 1559, 1560,
+ 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568,
+ 1569, 1570, 1571, 1572, 1557, 1574, 1224, 1573,
+ 1556, 1225, 1226, 1575, 1575, 1225, 1228, 1224,
+ 1227, 1223, 1225, 1226, 1576, 1576, 1225, 1228,
+ 1224, 1227, 1223, 1225, 1226, 1577, 1577, 1225,
+ 1228, 1224, 1227, 1223, 1225, 1226, 1578, 1578,
+ 1225, 1228, 1224, 1227, 1223, 1225, 1579, 1226,
+ 1225, 1228, 1224, 1227, 1223, 1225, 1226, 1580,
+ 1581, 1580, 1581, 1225, 1228, 1224, 1227, 1223,
+ 1225, 1226, 1582, 1582, 1225, 1228, 1224, 1227,
+ 1223, 1584, 1585, 1586, 1587, 1588, 1589, 1590,
+ 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598,
+ 1599, 1586, 1587, 1588, 1589, 1590, 1591, 1592,
+ 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1584,
+ 1601, 1224, 1600, 1583, 1225, 1226, 1602, 1602,
+ 1225, 1228, 1224, 1227, 1223, 1225, 1226, 1603,
+ 1603, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
+ 1604, 1604, 1225, 1228, 1224, 1227, 1223, 1606,
+ 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614,
+ 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1608,
+ 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616,
+ 1617, 1618, 1619, 1620, 1621, 1606, 1623, 1224,
+ 1622, 1605, 1225, 1226, 1624, 1625, 1626, 1624,
+ 1625, 1626, 1225, 1228, 1224, 1227, 1223, 1225,
+ 1226, 1627, 1628, 1629, 1627, 1628, 1629, 1225,
+ 1228, 1224, 1227, 1223, 1225, 1226, 1630, 1630,
+ 1225, 1228, 1224, 1227, 1223, 1225, 1226, 1631,
+ 1631, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
+ 1632, 1632, 1225, 1228, 1224, 1227, 1223, 1225,
+ 1226, 1626, 1626, 1225, 1228, 1224, 1227, 1223,
+ 1225, 1226, 1633, 1633, 1225, 1228, 1224, 1227,
+ 1223, 1635, 1636, 1637, 1638, 1639, 1640, 1641,
+ 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649,
+ 1650, 1637, 1638, 1639, 1640, 1641, 1642, 1643,
+ 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1635,
+ 1652, 1224, 1651, 1634, 1225, 1226, 1653, 1653,
+ 1225, 1228, 1224, 1227, 1223, 1225, 1226, 1654,
+ 1654, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
+ 1655, 1655, 1225, 1228, 1224, 1227, 1223, 1225,
+ 1226, 1656, 1656, 1225, 1228, 1224, 1227, 1223,
+ 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665,
+ 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673,
+ 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667,
+ 1668, 1669, 1670, 1671, 1672, 1673, 1658, 1675,
+ 1224, 1674, 1657, 1225, 1226, 1676, 1677, 1678,
+ 1679, 1676, 1677, 1678, 1679, 1225, 1228, 1224,
+ 1227, 1223, 1225, 1226, 1680, 1680, 1225, 1228,
+ 1224, 1227, 1223, 1682, 1683, 1684, 1685, 1686,
+ 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694,
+ 1695, 1696, 1697, 1684, 1685, 1686, 1687, 1688,
+ 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696,
+ 1697, 1682, 1699, 1224, 1698, 1681, 1225, 1226,
+ 1700, 1700, 1225, 1228, 1224, 1227, 1223, 1702,
+ 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710,
+ 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1704,
+ 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712,
+ 1713, 1714, 1715, 1716, 1717, 1702, 1719, 1224,
+ 1718, 1701, 1225, 1226, 1720, 1720, 1225, 1228,
+ 1224, 1227, 1223, 1722, 1723, 1724, 1725, 1726,
+ 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734,
+ 1735, 1736, 1737, 1724, 1725, 1726, 1727, 1728,
+ 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736,
+ 1737, 1722, 1739, 1224, 1738, 1721, 1225, 1226,
+ 1740, 1741, 1742, 1740, 1741, 1742, 1225, 1228,
+ 1224, 1227, 1223, 1744, 1745, 1746, 1747, 1748,
+ 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756,
+ 1757, 1758, 1759, 1746, 1747, 1748, 1749, 1750,
+ 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758,
+ 1759, 1744, 1761, 1224, 1760, 1743, 1225, 1226,
+ 1762, 1762, 1225, 1228, 1224, 1227, 1223, 1225,
+ 1226, 1763, 1763, 1225, 1228, 1224, 1227, 1223,
+ 1225, 1226, 1764, 1764, 1225, 1228, 1224, 1227,
+ 1223, 1225, 1226, 1765, 1765, 1225, 1228, 1224,
+ 1227, 1223, 1225, 1766, 1226, 1225, 1228, 1224,
+ 1227, 1223, 1225, 1226, 1767, 1767, 1225, 1228,
+ 1224, 1227, 1223, 1225, 1226, 1768, 1768, 1225,
+ 1228, 1224, 1227, 1223, 1770, 1771, 1772, 1773,
+ 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781,
+ 1782, 1783, 1784, 1785, 1772, 1773, 1774, 1775,
+ 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783,
+ 1784, 1785, 1770, 1787, 1224, 1786, 1769, 1225,
+ 1226, 1788, 1788, 1225, 1228, 1224, 1227, 1223,
+ 1225, 1226, 1789, 1789, 1225, 1228, 1224, 1227,
+ 1223, 1225, 1226, 1790, 1790, 1225, 1228, 1224,
+ 1227, 1223, 1792, 1793, 1794, 1795, 1796, 1797,
+ 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805,
+ 1806, 1807, 1794, 1795, 1796, 1797, 1798, 1799,
+ 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807,
+ 1792, 1809, 1224, 1808, 1791, 1225, 1226, 1810,
+ 1810, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
+ 1811, 1811, 1225, 1228, 1224, 1227, 1223, 1813,
+ 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821,
+ 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1815,
+ 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823,
+ 1824, 1825, 1826, 1827, 1828, 1813, 1830, 1224,
+ 1829, 1812, 1225, 1226, 1831, 1831, 1225, 1228,
+ 1224, 1227, 1223, 1225, 1226, 1832, 1832, 1225,
+ 1228, 1224, 1227, 1223, 1225, 1833, 1226, 1225,
+ 1228, 1224, 1227, 1223, 1225, 1226, 1834, 1835,
+ 1836, 1834, 1835, 1836, 1225, 1228, 1224, 1227,
+ 1223, 1225, 1226, 1837, 1837, 1225, 1228, 1224,
+ 1227, 1223, 1839, 1840, 1841, 1842, 1843, 1844,
+ 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852,
+ 1853, 1854, 1841, 1842, 1843, 1844, 1845, 1846,
+ 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854,
+ 1839, 1856, 1224, 1855, 1838, 1225, 1226, 1857,
+ 1858, 1857, 1858, 1225, 1228, 1224, 1227, 1223,
+ 1225, 1226, 1859, 1859, 1225, 1228, 1224, 1227,
+ 1223, 1225, 1226, 1860, 1860, 1225, 1228, 1224,
+ 1227, 1223, 1862, 1863, 1864, 1865, 1866, 1867,
+ 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875,
+ 1876, 1877, 1864, 1865, 1866, 1867, 1868, 1869,
+ 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877,
+ 1862, 1879, 1224, 1878, 1861, 1225, 1226, 1880,
+ 1880, 1225, 1228, 1224, 1227, 1223, 1882, 1883,
+ 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891,
+ 1892, 1893, 1894, 1895, 1896, 1897, 1884, 1885,
+ 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893,
+ 1894, 1895, 1896, 1897, 1882, 1899, 1224, 1898,
+ 1881, 1225, 1226, 1900, 1900, 1225, 1228, 1224,
+ 1227, 1223, 1225, 1226, 1901, 1901, 1225, 1228,
+ 1224, 1227, 1223, 1903, 1904, 1905, 1906, 1907,
+ 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915,
+ 1916, 1917, 1918, 1905, 1906, 1907, 1908, 1909,
+ 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917,
+ 1918, 1903, 1920, 1224, 1919, 1902, 1225, 1226,
+ 1921, 1921, 1225, 1228, 1224, 1227, 1223, 1923,
+ 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931,
+ 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1925,
+ 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933,
+ 1934, 1935, 1936, 1937, 1938, 1923, 1940, 1224,
+ 1939, 1922, 1942, 1943, 1944, 1945, 1946, 1947,
+ 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955,
+ 1956, 1957, 1944, 1945, 1946, 1947, 1948, 1949,
+ 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957,
+ 1942, 1959, 1227, 1227, 1224, 1958, 1941, 1225,
+ 1226, 1960, 1960, 1225, 1228, 1224, 1227, 1223,
+ 1225, 1226, 1961, 1961, 1225, 1228, 1224, 1227,
+ 1223, 1225, 1226, 1962, 1962, 1225, 1228, 1224,
+ 1227, 1223, 1942, 1943, 1944, 1945, 1946, 1947,
+ 1948, 1949, 1950, 1963, 1952, 1953, 1954, 1955,
+ 1956, 1957, 1944, 1945, 1946, 1947, 1948, 1949,
+ 1950, 1963, 1952, 1953, 1954, 1955, 1956, 1957,
+ 1942, 1959, 1224, 1958, 1941, 1225, 1226, 1964,
+ 1964, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
+ 1965, 1965, 1225, 1228, 1224, 1227, 1223, 1225,
+ 1226, 1966, 1966, 1225, 1228, 1224, 1227, 1223,
+ 1225, 1967, 1226, 1225, 1228, 1224, 1227, 1223,
+ 1225, 1226, 1968, 1969, 1970, 1968, 1969, 1970,
+ 1225, 1228, 1224, 1227, 1223, 1225, 1226, 1971,
+ 1971, 1225, 1228, 1224, 1227, 1223, 1973, 1974,
+ 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982,
+ 1983, 1984, 1985, 1986, 1987, 1988, 1975, 1976,
+ 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984,
+ 1985, 1986, 1987, 1988, 1973, 1990, 1224, 1989,
+ 1972, 1225, 1226, 1991, 1991, 1225, 1228, 1224,
+ 1227, 1223, 1225, 1226, 1992, 1992, 1225, 1228,
+ 1224, 1227, 1223, 1225, 1226, 1993, 1993, 1225,
+ 1228, 1224, 1227, 1223, 1995, 1996, 1997, 1998,
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+ 2007, 2008, 2009, 2010, 1997, 1998, 1999, 2000,
+ 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+ 2009, 2010, 1995, 2012, 1224, 2011, 1994, 1225,
+ 1226, 2013, 2013, 1225, 1228, 1224, 1227, 1223,
+ 1225, 1226, 2014, 2014, 1225, 1228, 1224, 1227,
+ 1223, 1225, 1226, 2015, 2015, 1225, 1228, 1224,
+ 1227, 1223, 1225, 1226, 2016, 2016, 1225, 1228,
+ 1224, 1227, 1223, 2018, 2019, 2020, 2021, 2022,
+ 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030,
+ 2031, 2032, 2033, 2020, 2021, 2022, 2023, 2024,
+ 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032,
+ 2033, 2018, 2035, 1224, 2034, 2017, 1225, 1226,
+ 2036, 2036, 1225, 1228, 1224, 1227, 1223, 1225,
+ 1226, 2037, 2037, 1225, 1228, 1224, 1227, 1223,
+ 1225, 1226, 2038, 2038, 1225, 1228, 1224, 1227,
+ 1223, 2040, 2041, 2042, 2043, 2044, 2045, 2046,
+ 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054,
+ 2055, 2042, 2043, 2044, 2045, 2046, 2047, 2048,
+ 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2040,
+ 2057, 1224, 2056, 2039, 2059, 2060, 2061, 2062,
+ 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070,
+ 2071, 2072, 2073, 2074, 2061, 2062, 2063, 2064,
+ 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072,
+ 2073, 2074, 2059, 2076, 1224, 2075, 2058, 1225,
+ 1226, 2077, 2077, 1225, 1228, 1224, 1227, 1223,
+ 1225, 2078, 1226, 1225, 1228, 1224, 1227, 1223,
+ 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087,
+ 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095,
+ 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089,
+ 2090, 2091, 2092, 2093, 2094, 2095, 2080, 2097,
+ 1224, 2096, 2079, 1225, 1226, 2098, 2098, 1225,
+ 1228, 1224, 1227, 1223, 1225, 1226, 2099, 2099,
+ 1225, 1228, 1224, 1227, 1223, 1225, 1226, 2100,
+ 2100, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
+ 2101, 2101, 1225, 1228, 1224, 1227, 1223, 1225,
+ 1226, 1720, 1720, 1225, 1228, 1224, 1227, 1223,
+ 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110,
+ 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118,
+ 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112,
+ 2113, 2114, 2115, 2116, 2117, 2118, 2103, 2120,
+ 1224, 2119, 2102, 1225, 1226, 2121, 2122, 2121,
+ 2122, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
+ 2123, 2123, 1225, 1228, 1224, 1227, 1223, 1225,
+ 1226, 2124, 2124, 1225, 1228, 1224, 1227, 1223,
+ 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133,
+ 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141,
+ 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135,
+ 2136, 2137, 2138, 2139, 2140, 2141, 2126, 2143,
+ 1224, 2142, 2125, 1225, 2144, 1226, 1225, 1228,
+ 1224, 1227, 1223, 1225, 1226, 2145, 2145, 1225,
+ 1228, 1224, 1227, 1223, 1225, 1226, 2146, 2146,
+ 1225, 1228, 1224, 1227, 1223, 1225, 1226, 2147,
+ 2147, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
+ 2148, 2148, 1225, 1228, 1224, 1227, 1223, 1225,
+ 1226, 2149, 2149, 1225, 1228, 1224, 1227, 1223,
+ 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158,
+ 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166,
+ 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160,
+ 2161, 2162, 2163, 2164, 2165, 2166, 2151, 2168,
+ 1224, 2167, 2150, 1203, 1204, 1205, 1206, 1207,
+ 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
+ 1216, 1217, 1218, 1219, 1206, 1207, 1208, 1209,
+ 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217,
+ 1218, 1219, 1203, 1221, 1222, 2169, 2170, 2171,
+ 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179,
+ 2180, 2181, 2182, 2169, 2170, 2171, 2172, 2173,
+ 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181,
+ 2182, 1202, 1220, 1201, 2184, 2185, 2186, 2187,
+ 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195,
+ 2196, 2197, 2198, 2199, 2186, 2187, 2188, 2189,
+ 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197,
+ 2198, 2199, 2184, 2201, 2200, 2183, 2203, 2204,
+ 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212,
+ 2213, 2214, 2215, 2216, 2217, 2218, 2205, 2206,
+ 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214,
+ 2215, 2216, 2217, 2218, 2203, 2220, 2219, 2202,
+ 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229,
+ 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237,
+ 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231,
+ 2232, 2233, 2234, 2235, 2236, 2237, 2222, 2239,
+ 2238, 2221, 2241, 2242, 2243, 2244, 2245, 2246,
+ 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254,
+ 2255, 2256, 2243, 2244, 2245, 2246, 2247, 2248,
+ 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256,
+ 2241, 2258, 2257, 2240, 2260, 2261, 2262, 2263,
+ 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271,
+ 2272, 2273, 2274, 2275, 2262, 2263, 2264, 2265,
+ 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273,
+ 2274, 2275, 2260, 2277, 2276, 2259, 2279, 2280,
+ 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288,
+ 2289, 2290, 2291, 2292, 2293, 2294, 2281, 2282,
+ 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290,
+ 2291, 2292, 2293, 2294, 2279, 2296, 2295, 2278,
+ 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305,
+ 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313,
+ 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307,
+ 2308, 2309, 2310, 2311, 2312, 2313, 2298, 2315,
+ 2314, 2297, 2317, 2318, 2319, 2320, 2321, 2322,
+ 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330,
+ 2331, 2332, 2319, 2320, 2321, 2322, 2323, 2324,
+ 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332,
+ 2317, 2334, 2333, 2316, 2336, 2337, 2338, 2339,
+ 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347,
+ 2348, 2349, 2350, 2351, 2338, 2339, 2340, 2341,
+ 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349,
+ 2350, 2351, 2336, 2353, 2352, 2335, 2355, 2356,
+ 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364,
+ 2365, 2366, 2367, 2368, 2369, 2370, 2357, 2358,
+ 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366,
+ 2367, 2368, 2369, 2370, 2355, 2372, 2371, 2354,
+ 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381,
+ 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389,
+ 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383,
+ 2384, 2385, 2386, 2387, 2388, 2389, 2374, 2391,
+ 2390, 2373, 2393, 2394, 2395, 2396, 2397, 2398,
+ 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406,
+ 2407, 2408, 2395, 2396, 2397, 2398, 2399, 2400,
+ 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408,
+ 2393, 2410, 2409, 2392, 2412, 2413, 2414, 2415,
+ 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423,
+ 2424, 2425, 2426, 2427, 2414, 2415, 2416, 2417,
+ 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425,
+ 2426, 2427, 2412, 2429, 2428, 2411, 2431, 2432,
+ 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440,
+ 2441, 2442, 2443, 2444, 2445, 2446, 2433, 2434,
+ 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442,
+ 2443, 2444, 2445, 2446, 2431, 2448, 2447, 2430,
+ 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457,
+ 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465,
+ 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459,
+ 2460, 2461, 2462, 2463, 2464, 2465, 2450, 2467,
+ 2466, 2449, 2469, 2470, 2471, 2472, 2473, 2474,
+ 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482,
+ 2483, 2484, 2471, 2472, 2473, 2474, 2475, 2476,
+ 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484,
+ 2469, 2486, 2485, 2468, 2488, 2489, 2490, 2491,
+ 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499,
+ 2500, 2501, 2502, 2503, 2490, 2491, 2492, 2493,
+ 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501,
+ 2502, 2503, 2488, 2505, 2504, 2487, 2507, 2508,
+ 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516,
+ 2517, 2518, 2519, 2520, 2521, 2522, 2509, 2510,
+ 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518,
+ 2519, 2520, 2521, 2522, 2507, 2524, 2523, 2506,
+ 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533,
+ 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541,
+ 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535,
+ 2536, 2537, 2538, 2539, 2540, 2541, 2526, 2543,
+ 2542, 2525, 2545, 2546, 2547, 2548, 2549, 2550,
+ 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558,
+ 2559, 2560, 2547, 2548, 2549, 2550, 2551, 2552,
+ 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560,
+ 2545, 2562, 2561, 2544, 2564, 2565, 2566, 2567,
+ 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575,
+ 2576, 2577, 2578, 2579, 2566, 2567, 2568, 2569,
+ 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577,
+ 2578, 2579, 2564, 2581, 2580, 2563, 2583, 2584,
+ 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592,
+ 2593, 2594, 2595, 2596, 2597, 2598, 2585, 2586,
+ 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594,
+ 2595, 2596, 2597, 2598, 2583, 2600, 2599, 2582,
+ 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609,
+ 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617,
+ 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611,
+ 2612, 2613, 2614, 2615, 2616, 2617, 2602, 2619,
+ 2618, 2601, 2621, 2622, 2623, 2624, 2625, 2626,
+ 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634,
+ 2635, 2636, 2623, 2624, 2625, 2626, 2627, 2628,
+ 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636,
+ 2621, 2638, 2630, 2630, 2637, 2620, 2621, 2622,
+ 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2639,
+ 2631, 2632, 2633, 2634, 2635, 2636, 2623, 2624,
+ 2625, 2626, 2627, 2628, 2629, 2639, 2631, 2632,
+ 2633, 2634, 2635, 2636, 2621, 2638, 2637, 2620,
+ 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648,
+ 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656,
+ 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650,
+ 2651, 2652, 2653, 2654, 2655, 2656, 2641, 2658,
+ 2657, 2640, 2660, 2661, 2662, 2663, 2664, 2665,
+ 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673,
+ 2674, 2675, 2662, 2663, 2664, 2665, 2666, 2667,
+ 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675,
+ 2660, 2677, 2676, 2659, 2679, 2680, 2681, 2682,
+ 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690,
+ 2691, 2692, 2693, 2694, 2681, 2682, 2683, 2684,
+ 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692,
+ 2693, 2694, 2679, 2696, 2695, 2678, 2698, 2699,
+ 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707,
+ 2708, 2709, 2710, 2711, 2712, 2713, 2700, 2701,
+ 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709,
+ 2710, 2711, 2712, 2713, 2698, 2715, 2714, 2697,
+ 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724,
+ 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732,
+ 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726,
+ 2727, 2728, 2729, 2730, 2731, 2732, 2717, 2734,
+ 2733, 2716, 2736, 2737, 2738, 2739, 2740, 2741,
+ 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749,
+ 2750, 2751, 2738, 2739, 2740, 2741, 2742, 2743,
+ 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751,
+ 2736, 2753, 2752, 2735, 2755, 2756, 2757, 2758,
+ 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766,
+ 2767, 2768, 2769, 2770, 2757, 2758, 2759, 2760,
+ 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768,
+ 2769, 2770, 2755, 2772, 2771, 2754, 2774, 2775,
+ 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783,
+ 2784, 2785, 2786, 2787, 2788, 2789, 2776, 2777,
+ 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785,
+ 2786, 2787, 2788, 2789, 2774, 2791, 2790, 2773,
+ 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800,
+ 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808,
+ 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802,
+ 2803, 2804, 2805, 2806, 2807, 2808, 2793, 2810,
+ 2809, 2792, 1303, 132, 132, 1305, 2811, 2811,
+ 1304, 1302, 1303, 133, 133, 1305, 133, 133,
+ 1304, 1302, 1303, 134, 134, 1305, 2812, 2812,
+ 1304, 1302, 1303, 135, 135, 1305, 2813, 2813,
+ 1304, 1302, 1303, 136, 136, 1305, 136, 136,
+ 1304, 1302, 1303, 137, 138, 137, 138, 1305,
+ 2814, 2815, 2814, 2815, 1304, 1302, 1303, 139,
+ 139, 1305, 2816, 2816, 1304, 1302, 1303, 140,
+ 140, 1305, 2817, 2817, 1304, 1302, 1303, 141,
+ 141, 1305, 2818, 2818, 1304, 1302, 142, 143,
+ 1303, 142, 143, 1305, 1304, 1302, 1303, 251,
+ 252, 251, 252, 1305, 2819, 2820, 2819, 2820,
+ 1304, 1302, 1303, 253, 253, 1305, 2821, 2821,
+ 1304, 1302, 1303, 254, 254, 1305, 254, 254,
+ 1304, 1302, 255, 1303, 2822, 1305, 1304, 1302,
+ 1303, 256, 256, 1305, 2823, 2823, 1304, 1302,
+ 1303, 257, 257, 1305, 2824, 2824, 1304, 1302,
+ 1303, 258, 258, 1305, 2825, 2825, 1304, 1302,
+ 1303, 259, 259, 1305, 2826, 2826, 1304, 1302,
+ 1303, 260, 260, 1305, 260, 260, 1304, 1302,
+ 1303, 144, 145, 144, 145, 1305, 2827, 2828,
+ 2827, 2828, 1304, 1302, 1303, 146, 146, 1305,
+ 2829, 2829, 1304, 1302, 1303, 147, 147, 1305,
+ 2830, 2830, 1304, 1302, 1303, 148, 148, 1305,
+ 148, 148, 1304, 1302, 1303, 247, 247, 1305,
+ 2831, 2831, 1304, 1302, 1303, 248, 248, 1305,
+ 2832, 2832, 1304, 1302, 1303, 249, 249, 1305,
+ 2833, 2833, 1304, 1302, 1303, 250, 250, 1305,
+ 2834, 2834, 1304, 1302, 1303, 193, 193, 1305,
+ 193, 193, 1304, 1302, 1303, 149, 149, 1305,
+ 2835, 2835, 1304, 1302, 1303, 150, 150, 1305,
+ 2836, 2836, 1304, 1302, 1303, 151, 151, 1305,
+ 151, 151, 1304, 1302, 1303, 152, 152, 1305,
+ 2837, 2837, 1304, 1302, 1303, 153, 153, 1305,
+ 2838, 2838, 1304, 1302, 1303, 154, 154, 1305,
+ 2839, 2839, 1304, 1302, 1303, 155, 155, 1305,
+ 2840, 2840, 1304, 1302, 1303, 156, 156, 1305,
+ 156, 156, 1304, 1302, 1303, 157, 158, 157,
+ 158, 1305, 2841, 2842, 2841, 2842, 1304, 1302,
+ 1303, 159, 159, 1305, 2843, 2843, 1304, 1302,
+ 1303, 160, 161, 160, 161, 1305, 160, 161,
+ 160, 161, 1304, 1302, 1303, 245, 245, 1305,
+ 2844, 2844, 1304, 1302, 246, 1303, 246, 1305,
+ 1304, 1302, 1303, 162, 162, 1305, 2845, 2845,
+ 1304, 1302, 1303, 163, 163, 1305, 2846, 2846,
+ 1304, 1302, 1303, 164, 164, 1305, 2847, 2847,
+ 1304, 1302, 1303, 165, 165, 1305, 2848, 2848,
+ 1304, 1302, 166, 1303, 2849, 1305, 1304, 1302,
+ 1303, 167, 168, 167, 168, 1305, 2850, 2851,
+ 2850, 2851, 1304, 1302, 1303, 169, 169, 1305,
+ 169, 169, 1304, 1302, 1303, 242, 242, 1305,
+ 2852, 2852, 1304, 1302, 1303, 243, 243, 1305,
+ 2853, 2853, 1304, 1302, 1303, 244, 244, 1305,
+ 244, 244, 1304, 1302, 1303, 170, 170, 1305,
+ 2854, 2854, 1304, 1302, 1303, 171, 171, 1305,
+ 2855, 2855, 1304, 1302, 1303, 172, 172, 1305,
+ 172, 172, 1304, 1302, 1303, 173, 174, 175,
+ 173, 174, 175, 1305, 2856, 2857, 2858, 2856,
+ 2857, 2858, 1304, 1302, 1303, 176, 177, 178,
+ 176, 177, 178, 1305, 2859, 2860, 2861, 2859,
+ 2860, 2861, 1304, 1302, 1303, 179, 179, 1305,
+ 2862, 2862, 1304, 1302, 1303, 180, 180, 1305,
+ 2863, 2863, 1304, 1302, 1303, 181, 181, 1305,
+ 2864, 2864, 1304, 1302, 1303, 175, 175, 1305,
+ 2858, 2858, 1304, 1302, 1303, 182, 182, 1305,
+ 182, 182, 1304, 1302, 1303, 223, 223, 1305,
+ 223, 223, 1304, 1302, 2621, 2622, 2623, 2624,
+ 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632,
+ 2633, 2634, 2635, 2636, 2623, 2624, 2625, 2626,
+ 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634,
+ 2635, 2636, 2621, 2638, 2865, 2865, 2637, 2620,
+ 1303, 224, 224, 1305, 2866, 2866, 1304, 1302,
+ 1303, 225, 225, 1305, 2867, 2867, 1304, 1302,
+ 1303, 226, 226, 1305, 226, 226, 1304, 1302,
+ 1303, 227, 227, 1305, 2868, 2868, 1304, 1302,
+ 1303, 228, 228, 1305, 2869, 2869, 1304, 1302,
+ 1303, 229, 229, 1305, 2870, 2870, 1304, 1302,
+ 230, 1303, 2871, 1305, 1304, 1302, 1303, 231,
+ 232, 233, 231, 232, 233, 1305, 2872, 2873,
+ 2874, 2872, 2873, 2874, 1304, 1302, 1303, 234,
+ 234, 1305, 234, 234, 1304, 1302, 1303, 235,
+ 235, 1305, 2875, 2875, 1304, 1302, 1303, 236,
+ 236, 1305, 2876, 2876, 1304, 1302, 1303, 237,
+ 237, 1305, 237, 237, 1304, 1302, 1303, 238,
+ 238, 1305, 2877, 2877, 1304, 1302, 1303, 239,
+ 239, 1305, 2878, 2878, 1304, 1302, 1303, 240,
+ 240, 1305, 2879, 2879, 1304, 1302, 1303, 241,
+ 241, 1305, 241, 241, 1304, 1302, 1303, 183,
+ 183, 1305, 2880, 2880, 1304, 1302, 1303, 184,
+ 184, 1305, 2881, 2881, 1304, 1302, 1303, 185,
+ 185, 1305, 2882, 2882, 1304, 1302, 1303, 186,
+ 186, 1305, 186, 186, 1304, 1302, 1303, 187,
+ 188, 189, 190, 187, 188, 189, 190, 1305,
+ 2883, 2884, 2885, 2886, 2883, 2884, 2885, 2886,
+ 1304, 1302, 1303, 191, 191, 1305, 191, 191,
+ 1304, 1302, 1303, 194, 195, 196, 194, 195,
+ 196, 1305, 194, 2887, 2888, 194, 2887, 2888,
+ 1304, 1302, 1303, 197, 197, 1305, 2889, 2889,
+ 1304, 1302, 1303, 198, 198, 1305, 2890, 2890,
+ 1304, 1302, 1303, 199, 199, 1305, 2891, 2891,
+ 1304, 1302, 1303, 200, 200, 1305, 2892, 2892,
+ 1304, 1302, 201, 1303, 2893, 1305, 1304, 1302,
+ 1303, 202, 202, 1305, 2894, 2894, 1304, 1302,
+ 1303, 203, 203, 1305, 203, 203, 1304, 1302,
+ 1303, 204, 204, 1305, 2895, 2895, 1304, 1302,
+ 1303, 205, 205, 1305, 2896, 2896, 1304, 1302,
+ 1303, 206, 206, 1305, 206, 206, 1304, 1302,
+ 1303, 207, 207, 1305, 2897, 2897, 1304, 1302,
+ 1303, 208, 208, 1305, 208, 208, 1304, 1302,
+ 1303, 209, 209, 1305, 2898, 2898, 1304, 1302,
+ 1303, 210, 210, 1305, 2899, 2899, 1304, 1302,
+ 211, 1303, 2900, 1305, 1304, 1302, 1303, 212,
+ 213, 214, 212, 213, 214, 1305, 2901, 2902,
+ 2903, 2901, 2902, 2903, 1304, 1302, 1303, 215,
+ 215, 1305, 215, 215, 1304, 1302, 1303, 216,
+ 217, 216, 217, 1305, 2904, 2905, 2904, 2905,
+ 1304, 1302, 1303, 218, 218, 1305, 2906, 2906,
+ 1304, 1302, 1303, 219, 219, 1305, 219, 219,
+ 1304, 1302, 1303, 220, 220, 1305, 220, 220,
+ 1304, 1302, 1303, 221, 221, 1305, 2907, 2907,
+ 1304, 1302, 1303, 222, 222, 1305, 222, 222,
+ 1304, 1302, 1303, 192, 192, 1305, 192, 192,
+ 1304, 1302, 1303, 193, 193, 1305, 193, 193,
+ 1304, 1302, 2909, 2910, 261, 2909, 2910, 261,
+ 2911, 2908, 2910, 2910, 2911, 2908, 2913, 2913,
+ 2914, 2912, 0
+ };
-static const short _demo_machine_parser_cmd_indicies[] = {
- 0, 1, 2, 0, 2, 4, 2, 3,
- 2, 3, 1, 5, 5, 5, 6, 5,
- 6, 1, 7, 1, 9, 10, 9, 10,
- 8, 11, 11, 8, 12, 12, 8, 13,
- 13, 8, 14, 14, 8, 15, 8, 16,
- 16, 8, 17, 18, 17, 18, 8, 19,
- 19, 8, 20, 20, 8, 21, 21, 8,
- 22, 22, 8, 23, 23, 8, 24, 24,
- 8, 25, 25, 8, 26, 26, 8, 27,
- 27, 8, 28, 28, 8, 29, 30, 29,
- 30, 8, 31, 31, 8, 32, 32, 8,
- 33, 33, 8, 34, 8, 35, 35, 8,
- 36, 36, 8, 37, 37, 8, 38, 38,
- 8, 39, 39, 8, 40, 40, 8, 30,
- 30, 8, 41, 41, 8, 42, 42, 8,
- 43, 43, 8, 44, 44, 8, 45, 45,
- 8, 46, 46, 8, 47, 47, 8, 48,
- 48, 8, 49, 49, 8, 50, 50, 8,
- 51, 51, 8, 52, 52, 8, 53, 53,
- 8, 54, 54, 8, 55, 55, 8, 56,
- 57, 56, 57, 8, 58, 58, 8, 59,
- 59, 8, 60, 60, 8, 61, 61, 8,
- 62, 63, 64, 65, 66, 67, 62, 63,
- 64, 65, 66, 67, 8, 68, 68, 8,
- 69, 69, 8, 70, 70, 8, 71, 71,
- 8, 72, 72, 8, 65, 65, 8, 73,
- 73, 8, 74, 74, 8, 75, 75, 8,
- 76, 76, 8, 77, 77, 8, 78, 78,
- 8, 79, 79, 8, 80, 80, 8, 81,
- 81, 8, 82, 82, 8, 83, 83, 8,
- 84, 84, 8, 85, 85, 8, 86, 86,
- 8, 87, 87, 8, 88, 88, 8, 89,
- 89, 8, 90, 90, 8, 91, 91, 8,
- 92, 92, 8, 93, 93, 8, 94, 94,
- 8, 95, 95, 8, 96, 96, 8, 97,
- 97, 8, 98, 98, 8, 99, 99, 8,
- 100, 100, 8, 101, 101, 8, 102, 102,
- 8, 103, 103, 8, 104, 104, 8, 23,
- 104, 23, 104, 8, 105, 105, 8, 106,
- 106, 8, 107, 107, 8, 108, 108, 8,
- 109, 109, 8, 110, 110, 8, 111, 111,
- 8, 112, 1, 114, 113, 115, 115, 113,
- 116, 116, 113, 117, 117, 113, 118, 118,
- 113, 119, 119, 113, 120, 120, 113, 121,
- 121, 113, 122, 122, 113, 118, 118, 113,
- 123, 124, 125, 123, 124, 125, 113, 126,
- 126, 113, 127, 127, 113, 128, 128, 113,
- 129, 129, 113, 124, 124, 113, 130, 130,
- 113, 131, 131, 113, 132, 132, 113, 133,
- 133, 113, 134, 134, 113, 135, 135, 113,
- 136, 136, 113, 137, 138, 137, 138, 113,
- 139, 139, 113, 140, 140, 113, 141, 141,
- 113, 142, 143, 113, 144, 145, 144, 145,
- 113, 146, 146, 113, 147, 147, 113, 148,
- 148, 113, 149, 149, 113, 150, 150, 113,
- 151, 151, 113, 152, 152, 113, 153, 153,
- 113, 154, 154, 113, 155, 155, 113, 156,
- 156, 113, 157, 158, 157, 158, 113, 159,
- 159, 113, 160, 161, 160, 161, 113, 162,
- 162, 113, 163, 163, 113, 164, 164, 113,
- 165, 165, 113, 166, 113, 167, 168, 167,
- 168, 113, 169, 169, 113, 170, 170, 113,
- 171, 171, 113, 172, 172, 113, 173, 174,
- 175, 173, 174, 175, 113, 176, 177, 178,
- 176, 177, 178, 113, 179, 179, 113, 180,
- 180, 113, 181, 181, 113, 175, 175, 113,
- 182, 182, 113, 183, 183, 113, 184, 184,
- 113, 185, 185, 113, 186, 186, 113, 187,
- 188, 189, 190, 187, 188, 189, 190, 113,
- 191, 191, 113, 192, 192, 113, 193, 193,
- 113, 194, 195, 196, 194, 195, 196, 113,
- 197, 197, 113, 198, 198, 113, 199, 199,
- 113, 200, 200, 113, 201, 113, 202, 202,
- 113, 203, 203, 113, 204, 204, 113, 205,
- 205, 113, 206, 206, 113, 207, 207, 113,
- 208, 208, 113, 209, 209, 113, 210, 210,
- 113, 211, 113, 212, 213, 214, 212, 213,
- 214, 113, 215, 215, 113, 216, 217, 216,
- 217, 113, 218, 218, 113, 219, 219, 113,
- 220, 220, 113, 221, 221, 113, 222, 222,
- 113, 223, 223, 113, 224, 224, 113, 225,
- 225, 113, 226, 226, 113, 227, 227, 113,
- 228, 228, 113, 229, 229, 113, 230, 113,
- 231, 232, 233, 231, 232, 233, 113, 234,
- 234, 113, 235, 235, 113, 236, 236, 113,
- 237, 237, 113, 238, 238, 113, 239, 239,
- 113, 240, 240, 113, 241, 241, 113, 242,
- 242, 113, 243, 243, 113, 244, 244, 113,
- 245, 245, 113, 246, 113, 247, 247, 113,
- 248, 248, 113, 249, 249, 113, 250, 250,
- 113, 193, 193, 113, 251, 252, 251, 252,
- 113, 253, 253, 113, 254, 254, 113, 255,
- 113, 256, 256, 113, 257, 257, 113, 258,
- 258, 113, 259, 259, 113, 260, 260, 113,
- 261, 1, 263, 264, 265, 266, 267, 262,
- 269, 268, 271, 270, 273, 273, 273, 274,
- 273, 274, 272, 276, 275, 279, 280, 281,
- 282, 283, 284, 285, 286, 287, 288, 289,
- 290, 291, 292, 293, 280, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291,
- 292, 293, 278, 295, 279, 296, 297, 298,
- 299, 300, 301, 302, 303, 304, 305, 306,
- 307, 308, 309, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 278, 311, 312, 313, 314, 315, 316,
- 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 311, 312, 313, 314, 315, 316, 317,
- 318, 319, 320, 321, 322, 323, 324, 325,
- 295, 326, 327, 326, 327, 295, 328, 328,
- 295, 329, 329, 295, 330, 330, 295, 331,
- 331, 295, 332, 295, 333, 333, 295, 334,
- 335, 334, 335, 295, 336, 336, 295, 337,
- 337, 295, 338, 338, 295, 339, 339, 295,
- 340, 340, 295, 342, 343, 344, 345, 346,
- 347, 348, 349, 350, 351, 352, 353, 354,
- 355, 342, 343, 344, 345, 346, 347, 348,
- 349, 350, 351, 352, 353, 354, 355, 295,
- 357, 358, 359, 360, 361, 362, 363, 364,
- 365, 366, 367, 368, 369, 370, 371, 372,
- 357, 358, 359, 360, 361, 362, 363, 364,
- 365, 366, 367, 368, 369, 370, 371, 372,
- 295, 374, 375, 376, 377, 378, 379, 380,
- 381, 382, 383, 384, 385, 386, 387, 388,
- 374, 375, 376, 377, 378, 379, 380, 381,
- 382, 383, 384, 385, 386, 387, 388, 295,
- 389, 389, 295, 391, 392, 393, 394, 395,
- 396, 397, 398, 399, 400, 401, 402, 403,
- 404, 391, 392, 393, 394, 395, 396, 397,
- 398, 399, 400, 401, 402, 403, 404, 295,
- 406, 407, 408, 409, 410, 411, 412, 413,
- 414, 415, 416, 417, 418, 419, 420, 406,
- 407, 408, 409, 410, 411, 412, 413, 414,
- 415, 416, 417, 418, 419, 420, 295, 422,
- 423, 424, 425, 426, 427, 428, 429, 430,
- 431, 432, 433, 434, 435, 436, 422, 423,
- 424, 425, 426, 427, 428, 429, 430, 431,
- 432, 433, 434, 435, 436, 295, 437, 437,
- 295, 438, 438, 295, 439, 439, 295, 435,
- 435, 295, 441, 442, 443, 444, 445, 446,
- 447, 448, 449, 450, 451, 452, 453, 454,
- 441, 442, 443, 444, 445, 446, 447, 448,
- 449, 450, 451, 452, 453, 454, 295, 455,
- 456, 455, 456, 295, 457, 457, 295, 458,
- 458, 295, 459, 459, 295, 460, 295, 461,
- 461, 295, 462, 462, 295, 463, 463, 295,
- 464, 464, 295, 465, 465, 295, 466, 466,
- 295, 456, 456, 295, 468, 469, 470, 471,
- 472, 473, 474, 475, 476, 477, 478, 479,
- 480, 481, 468, 469, 470, 471, 472, 473,
- 474, 475, 476, 477, 478, 479, 480, 481,
- 295, 483, 484, 485, 486, 487, 488, 489,
- 490, 491, 492, 493, 494, 495, 496, 483,
- 484, 485, 486, 487, 488, 489, 490, 491,
- 492, 493, 494, 495, 496, 295, 497, 497,
- 295, 498, 498, 295, 499, 499, 295, 500,
- 500, 295, 501, 501, 295, 483, 484, 485,
- 502, 487, 488, 489, 490, 491, 492, 493,
- 494, 495, 496, 483, 484, 485, 502, 487,
- 488, 489, 490, 491, 492, 493, 494, 495,
- 496, 295, 503, 503, 295, 504, 504, 295,
- 506, 507, 508, 509, 510, 511, 512, 513,
- 514, 515, 516, 517, 518, 519, 520, 506,
- 507, 508, 509, 510, 511, 512, 513, 514,
- 515, 516, 517, 518, 519, 520, 295, 521,
- 521, 295, 522, 522, 295, 523, 523, 295,
- 506, 507, 508, 509, 510, 511, 513, 514,
- 515, 516, 517, 518, 519, 520, 506, 507,
- 508, 509, 510, 511, 513, 514, 515, 516,
- 517, 518, 519, 520, 295, 524, 524, 295,
- 525, 525, 295, 527, 528, 529, 530, 531,
- 532, 533, 534, 535, 536, 537, 538, 539,
- 540, 527, 528, 529, 530, 531, 532, 533,
- 534, 535, 536, 537, 538, 539, 540, 295,
- 541, 541, 295, 542, 542, 295, 543, 543,
- 295, 527, 528, 529, 530, 531, 532, 544,
- 534, 535, 536, 537, 538, 539, 540, 527,
- 528, 529, 530, 531, 532, 544, 534, 535,
- 536, 537, 538, 539, 540, 295, 374, 545,
- 376, 377, 378, 379, 380, 381, 382, 383,
- 384, 385, 386, 388, 387, 374, 545, 376,
- 377, 378, 379, 380, 381, 382, 383, 384,
- 385, 386, 388, 387, 295, 547, 548, 549,
- 550, 551, 552, 553, 554, 555, 556, 557,
- 558, 559, 560, 561, 547, 548, 549, 550,
- 551, 552, 553, 554, 555, 556, 557, 558,
- 559, 560, 561, 295, 562, 563, 562, 563,
- 295, 565, 566, 567, 568, 569, 570, 571,
- 572, 573, 574, 575, 576, 577, 578, 579,
- 565, 566, 567, 568, 569, 570, 571, 572,
- 573, 574, 575, 576, 577, 578, 579, 295,
- 580, 580, 295, 581, 581, 295, 582, 582,
- 295, 583, 583, 295, 565, 566, 567, 568,
- 569, 570, 572, 573, 574, 575, 576, 577,
- 578, 579, 565, 566, 567, 568, 569, 570,
- 572, 573, 574, 575, 576, 577, 578, 579,
- 295, 584, 585, 586, 587, 588, 589, 584,
- 585, 586, 587, 588, 589, 295, 590, 590,
- 295, 591, 591, 295, 592, 592, 295, 593,
- 593, 295, 594, 594, 295, 587, 587, 295,
- 596, 597, 598, 599, 600, 601, 602, 603,
- 604, 605, 606, 607, 608, 609, 596, 597,
- 598, 599, 600, 601, 602, 603, 604, 605,
- 606, 607, 608, 609, 295, 611, 612, 613,
- 614, 615, 616, 617, 618, 619, 620, 621,
- 622, 623, 624, 625, 611, 612, 613, 614,
- 615, 616, 617, 618, 619, 620, 621, 622,
- 623, 624, 625, 295, 626, 626, 295, 627,
- 627, 295, 628, 628, 295, 611, 612, 613,
- 614, 615, 616, 618, 619, 620, 621, 622,
- 623, 624, 625, 611, 612, 613, 614, 615,
- 616, 618, 619, 620, 621, 622, 623, 624,
- 625, 295, 629, 629, 295, 630, 630, 295,
- 631, 631, 295, 633, 634, 635, 636, 637,
- 638, 639, 640, 641, 642, 643, 644, 645,
- 646, 633, 634, 635, 636, 637, 638, 639,
- 640, 641, 642, 643, 644, 645, 646, 295,
- 647, 647, 295, 649, 650, 651, 652, 653,
- 654, 655, 656, 657, 658, 659, 660, 661,
- 662, 649, 650, 651, 652, 653, 654, 655,
- 656, 657, 658, 659, 660, 661, 662, 295,
- 663, 663, 295, 664, 664, 295, 666, 667,
- 668, 669, 670, 671, 672, 673, 674, 675,
- 676, 677, 678, 679, 666, 667, 668, 669,
- 670, 671, 672, 673, 674, 675, 676, 677,
- 678, 679, 295, 680, 680, 295, 682, 683,
- 684, 685, 686, 687, 688, 689, 690, 691,
- 692, 693, 694, 695, 682, 683, 684, 685,
- 686, 687, 688, 689, 690, 691, 692, 693,
- 694, 695, 295, 696, 696, 295, 697, 697,
- 295, 698, 698, 295, 699, 699, 295, 700,
- 700, 295, 682, 683, 684, 685, 686, 687,
- 688, 689, 690, 691, 692, 693, 701, 695,
- 682, 683, 684, 685, 686, 687, 688, 689,
- 690, 691, 692, 693, 701, 695, 295, 703,
- 704, 705, 706, 707, 708, 709, 710, 711,
- 712, 713, 714, 715, 716, 717, 703, 704,
- 705, 706, 707, 708, 709, 710, 711, 712,
- 713, 714, 715, 716, 717, 295, 718, 718,
- 295, 719, 719, 295, 703, 704, 705, 706,
- 707, 708, 709, 710, 711, 712, 713, 714,
- 715, 717, 703, 704, 705, 706, 707, 708,
- 709, 710, 711, 712, 713, 714, 715, 717,
- 295, 720, 720, 295, 547, 548, 549, 721,
- 551, 552, 553, 554, 555, 556, 557, 558,
- 559, 561, 547, 548, 549, 721, 551, 552,
- 553, 554, 555, 556, 557, 558, 559, 561,
- 295, 722, 722, 295, 723, 723, 295, 374,
- 545, 376, 377, 378, 379, 380, 381, 382,
- 383, 384, 385, 386, 387, 374, 545, 376,
- 377, 378, 379, 380, 381, 382, 383, 384,
- 385, 386, 387, 295, 724, 724, 295, 725,
- 725, 295, 726, 423, 424, 727, 426, 427,
- 428, 429, 728, 431, 432, 433, 434, 436,
- 726, 423, 424, 727, 426, 427, 428, 429,
- 728, 431, 432, 433, 434, 436, 295, 730,
- 731, 732, 733, 734, 735, 736, 737, 738,
- 739, 740, 741, 742, 743, 730, 731, 732,
- 733, 734, 735, 736, 737, 738, 739, 740,
- 741, 742, 743, 295, 744, 744, 295, 730,
- 731, 732, 733, 734, 735, 745, 737, 738,
- 739, 740, 741, 742, 743, 730, 731, 732,
- 733, 734, 735, 745, 737, 738, 739, 740,
- 741, 742, 743, 295, 746, 746, 295, 747,
- 747, 295, 406, 407, 408, 409, 410, 411,
- 413, 414, 415, 416, 417, 418, 419, 420,
- 406, 407, 408, 409, 410, 411, 413, 414,
- 415, 416, 417, 418, 419, 420, 295, 748,
- 748, 295, 749, 749, 295, 751, 752, 753,
- 754, 755, 756, 757, 758, 759, 760, 761,
- 762, 763, 764, 751, 752, 753, 754, 755,
- 756, 757, 758, 759, 760, 761, 762, 763,
- 764, 295, 765, 765, 295, 766, 766, 295,
- 357, 358, 359, 360, 361, 362, 363, 364,
- 365, 366, 367, 368, 369, 372, 357, 358,
- 359, 360, 361, 362, 363, 364, 365, 366,
- 367, 368, 369, 372, 295, 767, 767, 295,
- 768, 768, 295, 769, 769, 295, 771, 772,
- 773, 774, 775, 776, 777, 778, 779, 780,
- 781, 782, 783, 784, 771, 772, 773, 774,
- 775, 776, 777, 778, 779, 780, 781, 782,
- 783, 784, 295, 340, 769, 340, 769, 295,
- 785, 785, 295, 786, 786, 295, 787, 787,
- 295, 311, 312, 313, 314, 315, 316, 317,
- 318, 319, 320, 321, 322, 323, 788, 311,
- 312, 313, 314, 315, 316, 317, 318, 319,
- 320, 321, 322, 323, 788, 295, 789, 789,
- 295, 790, 790, 295, 791, 791, 295, 325,
- 325, 295, 793, 794, 795, 796, 797, 798,
- 799, 800, 801, 802, 803, 804, 805, 806,
- 793, 794, 795, 796, 797, 798, 799, 800,
- 801, 802, 803, 804, 805, 806, 295, 808,
- 809, 810, 811, 812, 813, 814, 815, 816,
- 817, 818, 819, 820, 821, 111, 808, 809,
- 810, 811, 812, 813, 814, 815, 816, 817,
- 818, 819, 820, 821, 111, 807, 823, 824,
- 825, 826, 827, 828, 829, 830, 831, 832,
- 833, 834, 835, 836, 823, 824, 825, 826,
- 827, 828, 829, 830, 831, 832, 833, 834,
- 835, 836, 822, 838, 839, 840, 841, 842,
- 843, 844, 845, 846, 847, 848, 849, 850,
- 851, 852, 853, 838, 839, 840, 841, 842,
- 843, 844, 845, 846, 847, 848, 849, 850,
- 851, 852, 853, 837, 855, 856, 857, 858,
- 859, 860, 861, 862, 863, 864, 865, 866,
- 867, 868, 869, 855, 856, 857, 858, 859,
- 860, 861, 862, 863, 864, 865, 866, 867,
- 868, 869, 854, 871, 872, 873, 874, 875,
- 876, 877, 878, 879, 880, 881, 882, 883,
- 884, 871, 872, 873, 874, 875, 876, 877,
- 878, 879, 880, 881, 882, 883, 884, 870,
- 886, 887, 888, 889, 890, 891, 892, 893,
- 894, 895, 896, 897, 898, 899, 900, 886,
- 887, 888, 889, 890, 891, 892, 893, 894,
- 895, 896, 897, 898, 899, 900, 885, 902,
- 903, 904, 905, 906, 907, 908, 909, 910,
- 911, 912, 913, 914, 28, 915, 902, 903,
- 904, 905, 906, 907, 908, 909, 910, 911,
- 912, 913, 914, 28, 915, 901, 917, 918,
- 919, 920, 921, 922, 923, 924, 925, 926,
- 927, 928, 929, 930, 917, 918, 919, 920,
- 921, 922, 923, 924, 925, 926, 927, 928,
- 929, 930, 916, 932, 933, 934, 935, 936,
- 937, 938, 939, 940, 941, 942, 943, 944,
- 945, 932, 933, 934, 935, 936, 937, 938,
- 939, 940, 941, 942, 943, 944, 945, 931,
- 947, 948, 949, 950, 951, 952, 953, 954,
- 955, 956, 957, 958, 959, 960, 947, 948,
- 949, 950, 951, 952, 953, 954, 955, 956,
- 957, 958, 959, 960, 946, 947, 948, 949,
- 961, 951, 952, 953, 954, 955, 956, 957,
- 958, 959, 960, 947, 948, 949, 961, 951,
- 952, 953, 954, 955, 956, 957, 958, 959,
- 960, 946, 963, 964, 965, 966, 967, 968,
- 969, 970, 971, 972, 973, 974, 975, 976,
- 977, 963, 964, 965, 966, 967, 968, 969,
- 970, 971, 972, 973, 974, 975, 976, 977,
- 962, 963, 964, 965, 966, 967, 968, 970,
- 971, 972, 973, 974, 975, 976, 977, 963,
- 964, 965, 966, 967, 968, 970, 971, 972,
- 973, 974, 975, 976, 977, 962, 979, 980,
- 981, 982, 983, 984, 985, 986, 987, 988,
- 989, 990, 991, 992, 979, 980, 981, 982,
- 983, 984, 985, 986, 987, 988, 989, 990,
- 991, 992, 978, 979, 980, 981, 982, 983,
- 984, 993, 986, 987, 988, 989, 990, 991,
- 992, 979, 980, 981, 982, 983, 984, 993,
- 986, 987, 988, 989, 990, 991, 992, 978,
- 855, 994, 857, 858, 859, 860, 861, 862,
- 863, 864, 865, 866, 867, 869, 868, 855,
- 994, 857, 858, 859, 860, 861, 862, 863,
- 864, 865, 866, 867, 869, 868, 854, 996,
- 997, 998, 999, 1000, 1001, 1002, 1003, 1004,
- 1005, 1006, 1007, 1008, 1009, 1010, 996, 997,
- 998, 999, 1000, 1001, 1002, 1003, 1004, 1005,
- 1006, 1007, 1008, 1009, 1010, 995, 1012, 1013,
- 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
- 1022, 1023, 1024, 1025, 1026, 1012, 1013, 1014,
- 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022,
- 1023, 1024, 1025, 1026, 1011, 1012, 1013, 1014,
- 1015, 1016, 1017, 1019, 1020, 1021, 1022, 1023,
- 1024, 1025, 1026, 1012, 1013, 1014, 1015, 1016,
- 1017, 1019, 1020, 1021, 1022, 1023, 1024, 1025,
- 1026, 1011, 1028, 1029, 1030, 1031, 1032, 1033,
- 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
- 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035,
- 1036, 1037, 1038, 1039, 1040, 1041, 1027, 1043,
- 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051,
- 1052, 1053, 1054, 1055, 1056, 1057, 1043, 1044,
- 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052,
- 1053, 1054, 1055, 1056, 1057, 1042, 1043, 1044,
- 1045, 1046, 1047, 1048, 1050, 1051, 1052, 1053,
- 1054, 1055, 1056, 1057, 1043, 1044, 1045, 1046,
- 1047, 1048, 1050, 1051, 1052, 1053, 1054, 1055,
- 1056, 1057, 1042, 1059, 1060, 1061, 1062, 1063,
- 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071,
- 1072, 1059, 1060, 1061, 1062, 1063, 1064, 1065,
- 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1058,
- 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081,
- 1082, 1083, 1084, 1085, 1086, 1087, 1074, 1075,
- 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083,
- 1084, 1085, 1086, 1087, 1073, 1089, 1090, 1091,
- 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099,
- 1100, 1101, 1102, 1089, 1090, 1091, 1092, 1093,
- 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101,
- 1102, 1088, 1104, 1105, 1106, 1107, 1108, 1109,
- 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
- 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111,
- 1112, 1113, 1114, 1115, 1116, 1117, 1103, 1104,
- 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112,
- 1113, 1114, 1115, 1118, 1117, 1104, 1105, 1106,
- 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114,
- 1115, 1118, 1117, 1103, 1120, 1121, 1122, 1123,
- 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131,
- 1132, 1133, 1134, 1120, 1121, 1122, 1123, 1124,
- 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132,
- 1133, 1134, 1119, 1120, 1121, 1122, 1123, 1124,
- 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132,
- 1134, 1120, 1121, 1122, 1123, 1124, 1125, 1126,
- 1127, 1128, 1129, 1130, 1131, 1132, 1134, 1119,
- 996, 997, 998, 1135, 1000, 1001, 1002, 1003,
- 1004, 1005, 1006, 1007, 1008, 1010, 996, 997,
- 998, 1135, 1000, 1001, 1002, 1003, 1004, 1005,
- 1006, 1007, 1008, 1010, 995, 855, 994, 857,
- 858, 859, 860, 861, 862, 863, 864, 865,
- 866, 867, 868, 855, 994, 857, 858, 859,
- 860, 861, 862, 863, 864, 865, 866, 867,
- 868, 854, 1136, 903, 904, 1137, 906, 907,
- 908, 909, 1138, 911, 912, 913, 914, 915,
- 1136, 903, 904, 1137, 906, 907, 908, 909,
- 1138, 911, 912, 913, 914, 915, 901, 1140,
- 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148,
- 1149, 1150, 1151, 1152, 1153, 1140, 1141, 1142,
- 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150,
- 1151, 1152, 1153, 1139, 1140, 1141, 1142, 1143,
- 1144, 1145, 1154, 1147, 1148, 1149, 1150, 1151,
- 1152, 1153, 1140, 1141, 1142, 1143, 1144, 1145,
- 1154, 1147, 1148, 1149, 1150, 1151, 1152, 1153,
- 1139, 886, 887, 888, 889, 890, 891, 893,
- 894, 895, 896, 897, 898, 899, 900, 886,
- 887, 888, 889, 890, 891, 893, 894, 895,
- 896, 897, 898, 899, 900, 885, 1156, 1157,
- 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165,
- 1166, 1167, 1168, 1169, 1156, 1157, 1158, 1159,
- 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167,
- 1168, 1169, 1155, 838, 839, 840, 841, 842,
- 843, 844, 845, 846, 847, 848, 849, 850,
- 853, 838, 839, 840, 841, 842, 843, 844,
- 845, 846, 847, 848, 849, 850, 853, 837,
- 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178,
- 1179, 1180, 1181, 1182, 1183, 1184, 1171, 1172,
- 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180,
- 1181, 1182, 1183, 1184, 1170, 808, 809, 810,
- 811, 812, 813, 814, 815, 816, 817, 818,
- 819, 820, 1185, 808, 809, 810, 811, 812,
- 813, 814, 815, 816, 817, 818, 819, 820,
- 1185, 807, 1187, 1188, 1189, 1190, 1191, 1192,
- 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200,
- 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194,
- 1195, 1196, 1197, 1198, 1199, 1200, 1186, 1203,
- 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211,
- 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219,
- 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213,
- 1214, 1215, 1216, 1217, 1218, 1219, 1203, 1221,
- 1222, 1206, 1207, 1208, 1209, 1210, 1211, 1212,
- 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1206,
- 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214,
- 1215, 1216, 1217, 1218, 1219, 1202, 1220, 1201,
- 1225, 1226, 1225, 1228, 1224, 1227, 1223, 1230,
- 1231, 1230, 1233, 1232, 1229, 1236, 1237, 1238,
- 1239, 1240, 1238, 1239, 1240, 1236, 1235, 1243,
- 1243, 1242, 1245, 1245, 1244, 1236, 1237, 1246,
- 1247, 1248, 1246, 1247, 1248, 1236, 1235, 1250,
- 1251, 1252, 1253, 1254, 1251, 1252, 1253, 1254,
- 1250, 1242, 1243, 1255, 1255, 1243, 1242, 1243,
- 1256, 1256, 1243, 1242, 1243, 1257, 1257, 1243,
- 1242, 1243, 1258, 1258, 1243, 1242, 1250, 1251,
- 1253, 1254, 1251, 1253, 1254, 1250, 1242, 1250,
- 1251, 1259, 1253, 1254, 1251, 1259, 1253, 1254,
- 1250, 1242, 1243, 1260, 1260, 1243, 1242, 1243,
- 1261, 1261, 1243, 1242, 1243, 1262, 1262, 1243,
- 1242, 1243, 1263, 1263, 1243, 1242, 1243, 1258,
- 1258, 1243, 1242, 1243, 1264, 1265, 1266, 1264,
- 1265, 1266, 1243, 1242, 1243, 1267, 1267, 1243,
- 1242, 1243, 1268, 1268, 1243, 1242, 1243, 1269,
- 1269, 1243, 1242, 1243, 1270, 1270, 1243, 1242,
- 1243, 1265, 1265, 1243, 1242, 1272, 1273, 1274,
- 1275, 1273, 1274, 1275, 1272, 1242, 1277, 1278,
- 1279, 1280, 1278, 1279, 1280, 1277, 1242, 1243,
- 1281, 1281, 1243, 1242, 1243, 1282, 1282, 1243,
- 1242, 1277, 1283, 1279, 1280, 1283, 1279, 1280,
- 1277, 1242, 1285, 1286, 1287, 1288, 1289, 1286,
- 1287, 1288, 1289, 1285, 1284, 1285, 1286, 1288,
- 1289, 1286, 1288, 1289, 1285, 1284, 1285, 1286,
- 1290, 1288, 1289, 1286, 1290, 1288, 1289, 1285,
- 1284, 1292, 1293, 1294, 1295, 1293, 1294, 1295,
- 1292, 1291, 1297, 1298, 1299, 1300, 1298, 1299,
- 1300, 1297, 1296, 1297, 1301, 1299, 1300, 1301,
- 1299, 1300, 1297, 1296, 1303, 1305, 1304, 1302,
- 1306, 1307, 1304, 1302, 1236, 1309, 1238, 1239,
- 1240, 1238, 1239, 1240, 1311, 1312, 1313, 1314,
- 1315, 1313, 1314, 1315, 1235, 1236, 1235, 1310,
- 1311, 1310, 1308, 1243, 1317, 1319, 1320, 1242,
- 1243, 1242, 1318, 1319, 1318, 1316, 1243, 1321,
- 1243, 1242, 1245, 1303, 1322, 1305, 1245, 1304,
- 1322, 1304, 1302, 1243, 1323, 1319, 1324, 1242,
- 1243, 1242, 1318, 1319, 1318, 1316, 1236, 1309,
- 1246, 1247, 1248, 1246, 1247, 1248, 1311, 1312,
- 1325, 1326, 1327, 1325, 1326, 1327, 1235, 1236,
- 1235, 1310, 1311, 1310, 1308, 1250, 1317, 1251,
- 1252, 1253, 1254, 1251, 1252, 1253, 1254, 1329,
- 1320, 1330, 1331, 1332, 1333, 1330, 1331, 1332,
- 1333, 1242, 1250, 1242, 1318, 1329, 1318, 1328,
- 1243, 1317, 1255, 1255, 1319, 1320, 1334, 1334,
- 1242, 1243, 1242, 1318, 1319, 1318, 1316, 1243,
- 1317, 1256, 1256, 1319, 1320, 1335, 1335, 1242,
- 1243, 1242, 1318, 1319, 1318, 1316, 1243, 1317,
- 1257, 1257, 1319, 1320, 1336, 1336, 1242, 1243,
- 1242, 1318, 1319, 1318, 1316, 1243, 1317, 1258,
- 1258, 1319, 1320, 1337, 1337, 1242, 1243, 1242,
- 1318, 1319, 1318, 1316, 1250, 1317, 1251, 1253,
- 1254, 1251, 1253, 1254, 1329, 1320, 1330, 1332,
- 1333, 1330, 1332, 1333, 1242, 1250, 1242, 1318,
- 1329, 1318, 1328, 1250, 1317, 1251, 1259, 1253,
- 1254, 1251, 1259, 1253, 1254, 1329, 1320, 1330,
- 1338, 1332, 1333, 1330, 1338, 1332, 1333, 1242,
- 1250, 1242, 1318, 1329, 1318, 1328, 1243, 1317,
- 1260, 1260, 1319, 1320, 1339, 1339, 1242, 1243,
- 1242, 1318, 1319, 1318, 1316, 1243, 1317, 1261,
- 1261, 1319, 1320, 1340, 1340, 1242, 1243, 1242,
- 1318, 1319, 1318, 1316, 1243, 1317, 1262, 1262,
- 1319, 1320, 1341, 1341, 1242, 1243, 1242, 1318,
- 1319, 1318, 1316, 1243, 1317, 1263, 1263, 1319,
- 1320, 1342, 1342, 1242, 1243, 1242, 1318, 1319,
- 1318, 1316, 1243, 1317, 1258, 1258, 1319, 1320,
- 1337, 1337, 1242, 1243, 1242, 1318, 1319, 1318,
- 1316, 1243, 1317, 1264, 1265, 1266, 1264, 1265,
- 1266, 1319, 1320, 1343, 1344, 1345, 1343, 1344,
- 1345, 1242, 1243, 1242, 1318, 1319, 1318, 1316,
- 1243, 1317, 1267, 1267, 1319, 1320, 1346, 1346,
- 1242, 1243, 1242, 1318, 1319, 1318, 1316, 1243,
- 1317, 1268, 1268, 1319, 1320, 1347, 1347, 1242,
- 1243, 1242, 1318, 1319, 1318, 1316, 1243, 1317,
- 1269, 1269, 1319, 1320, 1348, 1348, 1242, 1243,
- 1242, 1318, 1319, 1318, 1316, 1243, 1317, 1270,
- 1270, 1319, 1320, 1349, 1349, 1242, 1243, 1242,
- 1318, 1319, 1318, 1316, 1243, 1317, 1265, 1265,
- 1319, 1320, 1344, 1344, 1242, 1243, 1242, 1318,
- 1319, 1318, 1316, 1272, 1317, 1273, 1274, 1275,
- 1273, 1274, 1275, 1351, 1320, 1352, 1353, 1354,
- 1352, 1353, 1354, 1242, 1272, 1242, 1318, 1351,
- 1318, 1350, 1277, 1317, 1278, 1279, 1280, 1278,
- 1279, 1280, 1356, 1320, 1357, 1358, 1359, 1357,
- 1358, 1359, 1242, 1277, 1242, 1318, 1356, 1318,
- 1355, 1243, 1317, 1281, 1281, 1319, 1320, 1360,
- 1360, 1242, 1243, 1242, 1318, 1319, 1318, 1316,
- 1243, 1317, 1282, 1282, 1319, 1320, 1361, 1361,
- 1242, 1243, 1242, 1318, 1319, 1318, 1316, 1277,
- 1317, 1283, 1279, 1280, 1283, 1279, 1280, 1356,
- 1320, 1362, 1358, 1359, 1362, 1358, 1359, 1242,
- 1277, 1242, 1318, 1356, 1318, 1355, 1285, 1303,
- 1286, 1287, 1288, 1289, 1286, 1287, 1288, 1289,
- 1364, 1305, 1365, 1366, 1367, 1368, 1365, 1366,
- 1367, 1368, 1285, 1304, 1364, 1304, 1363, 1303,
- 115, 115, 1305, 1369, 1369, 1304, 1302, 1303,
- 116, 116, 1305, 1370, 1370, 1304, 1302, 1303,
- 117, 117, 1305, 1371, 1371, 1304, 1302, 1303,
- 118, 118, 1305, 1372, 1372, 1304, 1302, 1285,
- 1303, 1286, 1288, 1289, 1286, 1288, 1289, 1364,
- 1305, 1365, 1367, 1368, 1365, 1367, 1368, 1285,
- 1304, 1364, 1304, 1363, 1285, 1303, 1286, 1290,
- 1288, 1289, 1286, 1290, 1288, 1289, 1364, 1305,
- 1365, 1373, 1367, 1368, 1365, 1373, 1367, 1368,
- 1285, 1304, 1364, 1304, 1363, 1303, 119, 119,
- 1305, 1374, 1374, 1304, 1302, 1303, 120, 120,
- 1305, 1375, 1375, 1304, 1302, 1303, 121, 121,
- 1305, 1376, 1376, 1304, 1302, 1303, 122, 122,
- 1305, 1377, 1377, 1304, 1302, 1303, 118, 118,
- 1305, 1372, 1372, 1304, 1302, 1303, 123, 124,
- 125, 123, 124, 125, 1305, 1378, 1379, 1380,
- 1378, 1379, 1380, 1304, 1302, 1303, 126, 126,
- 1305, 1381, 1381, 1304, 1302, 1303, 127, 127,
- 1305, 1382, 1382, 1304, 1302, 1303, 128, 128,
- 1305, 1383, 1383, 1304, 1302, 1303, 129, 129,
- 1305, 1384, 1384, 1304, 1302, 1303, 124, 124,
- 1305, 1379, 1379, 1304, 1302, 1292, 1303, 1293,
- 1294, 1295, 1293, 1294, 1295, 1386, 1305, 1387,
- 1388, 1389, 1387, 1388, 1389, 1292, 1304, 1386,
- 1304, 1385, 1297, 1303, 1298, 1299, 1300, 1298,
- 1299, 1300, 1391, 1305, 1392, 1393, 1394, 1392,
- 1393, 1394, 1297, 1304, 1391, 1304, 1390, 1303,
- 130, 130, 1305, 1395, 1395, 1304, 1302, 1303,
- 131, 131, 1305, 1396, 1396, 1304, 1302, 1297,
- 1303, 1301, 1299, 1300, 1301, 1299, 1300, 1391,
- 1305, 1397, 1393, 1394, 1397, 1393, 1394, 1297,
- 1304, 1391, 1304, 1390, 1203, 1204, 1205, 1398,
- 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406,
- 1407, 1408, 1409, 1410, 1411, 1398, 1399, 1400,
- 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408,
- 1409, 1410, 1411, 1203, 1221, 1222, 1227, 1220,
- 1227, 1220, 1227, 1227, 1220, 1227, 1220, 1227,
- 1202, 1220, 1227, 1220, 1227, 1220, 1227, 1220,
- 1227, 1220, 1201, 1225, 1226, 1412, 1412, 1225,
- 1228, 1224, 1227, 1223, 1225, 1226, 1413, 1413,
- 1225, 1228, 1224, 1227, 1223, 1415, 1416, 1417,
- 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425,
- 1426, 1427, 1428, 1429, 1430, 1417, 1418, 1419,
- 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427,
- 1428, 1429, 1430, 1415, 1432, 1224, 1431, 1414,
- 1225, 1226, 1433, 1433, 1225, 1228, 1224, 1227,
- 1223, 1225, 1226, 1434, 1434, 1225, 1228, 1224,
- 1227, 1223, 1225, 1226, 1435, 1435, 1225, 1228,
- 1224, 1227, 1223, 1437, 1438, 1439, 1440, 1441,
- 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449,
- 1450, 1451, 1452, 1439, 1440, 1441, 1442, 1443,
- 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451,
- 1452, 1437, 1454, 1224, 1453, 1436, 1225, 1226,
- 1455, 1456, 1455, 1456, 1225, 1228, 1224, 1227,
- 1223, 1225, 1226, 1457, 1457, 1225, 1228, 1224,
- 1227, 1223, 1225, 1226, 1458, 1458, 1225, 1228,
- 1224, 1227, 1223, 1225, 1226, 1459, 1459, 1225,
- 1228, 1224, 1227, 1223, 1225, 1460, 1461, 1226,
- 1225, 1228, 1224, 1227, 1223, 1463, 1464, 1465,
- 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473,
- 1474, 1475, 1476, 1477, 1478, 1465, 1466, 1467,
- 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475,
- 1476, 1477, 1478, 1463, 1480, 1224, 1479, 1462,
- 1225, 1226, 1481, 1482, 1481, 1482, 1225, 1228,
- 1224, 1227, 1223, 1225, 1226, 1483, 1483, 1225,
- 1228, 1224, 1227, 1223, 1225, 1226, 1484, 1484,
- 1225, 1228, 1224, 1227, 1223, 1225, 1226, 1485,
- 1485, 1225, 1228, 1224, 1227, 1223, 1487, 1488,
- 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496,
- 1497, 1498, 1499, 1500, 1501, 1502, 1489, 1490,
- 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498,
- 1499, 1500, 1501, 1502, 1487, 1504, 1224, 1503,
- 1486, 1225, 1226, 1505, 1505, 1225, 1228, 1224,
- 1227, 1223, 1225, 1226, 1506, 1506, 1225, 1228,
- 1224, 1227, 1223, 1225, 1226, 1507, 1507, 1225,
- 1228, 1224, 1227, 1223, 1509, 1510, 1511, 1512,
- 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520,
- 1521, 1522, 1523, 1524, 1511, 1512, 1513, 1514,
- 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522,
- 1523, 1524, 1509, 1526, 1224, 1525, 1508, 1225,
- 1226, 1527, 1527, 1225, 1228, 1224, 1227, 1223,
- 1225, 1226, 1528, 1528, 1225, 1228, 1224, 1227,
- 1223, 1225, 1226, 1529, 1529, 1225, 1228, 1224,
- 1227, 1223, 1225, 1226, 1530, 1530, 1225, 1228,
- 1224, 1227, 1223, 1225, 1226, 1531, 1531, 1225,
- 1228, 1224, 1227, 1223, 1533, 1534, 1535, 1536,
- 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544,
- 1545, 1546, 1547, 1548, 1535, 1536, 1537, 1538,
- 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546,
- 1547, 1548, 1533, 1550, 1224, 1549, 1532, 1225,
- 1226, 1551, 1552, 1551, 1552, 1225, 1228, 1224,
- 1227, 1223, 1225, 1226, 1553, 1553, 1225, 1228,
- 1224, 1227, 1223, 1225, 1226, 1554, 1555, 1554,
- 1555, 1225, 1228, 1224, 1227, 1223, 1557, 1558,
- 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566,
- 1567, 1568, 1569, 1570, 1571, 1572, 1559, 1560,
- 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568,
- 1569, 1570, 1571, 1572, 1557, 1574, 1224, 1573,
- 1556, 1225, 1226, 1575, 1575, 1225, 1228, 1224,
- 1227, 1223, 1225, 1226, 1576, 1576, 1225, 1228,
- 1224, 1227, 1223, 1225, 1226, 1577, 1577, 1225,
- 1228, 1224, 1227, 1223, 1225, 1226, 1578, 1578,
- 1225, 1228, 1224, 1227, 1223, 1225, 1579, 1226,
- 1225, 1228, 1224, 1227, 1223, 1225, 1226, 1580,
- 1581, 1580, 1581, 1225, 1228, 1224, 1227, 1223,
- 1225, 1226, 1582, 1582, 1225, 1228, 1224, 1227,
- 1223, 1584, 1585, 1586, 1587, 1588, 1589, 1590,
- 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598,
- 1599, 1586, 1587, 1588, 1589, 1590, 1591, 1592,
- 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1584,
- 1601, 1224, 1600, 1583, 1225, 1226, 1602, 1602,
- 1225, 1228, 1224, 1227, 1223, 1225, 1226, 1603,
- 1603, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
- 1604, 1604, 1225, 1228, 1224, 1227, 1223, 1606,
- 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614,
- 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1608,
- 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616,
- 1617, 1618, 1619, 1620, 1621, 1606, 1623, 1224,
- 1622, 1605, 1225, 1226, 1624, 1625, 1626, 1624,
- 1625, 1626, 1225, 1228, 1224, 1227, 1223, 1225,
- 1226, 1627, 1628, 1629, 1627, 1628, 1629, 1225,
- 1228, 1224, 1227, 1223, 1225, 1226, 1630, 1630,
- 1225, 1228, 1224, 1227, 1223, 1225, 1226, 1631,
- 1631, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
- 1632, 1632, 1225, 1228, 1224, 1227, 1223, 1225,
- 1226, 1626, 1626, 1225, 1228, 1224, 1227, 1223,
- 1225, 1226, 1633, 1633, 1225, 1228, 1224, 1227,
- 1223, 1635, 1636, 1637, 1638, 1639, 1640, 1641,
- 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649,
- 1650, 1637, 1638, 1639, 1640, 1641, 1642, 1643,
- 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1635,
- 1652, 1224, 1651, 1634, 1225, 1226, 1653, 1653,
- 1225, 1228, 1224, 1227, 1223, 1225, 1226, 1654,
- 1654, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
- 1655, 1655, 1225, 1228, 1224, 1227, 1223, 1225,
- 1226, 1656, 1656, 1225, 1228, 1224, 1227, 1223,
- 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665,
- 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673,
- 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667,
- 1668, 1669, 1670, 1671, 1672, 1673, 1658, 1675,
- 1224, 1674, 1657, 1225, 1226, 1676, 1677, 1678,
- 1679, 1676, 1677, 1678, 1679, 1225, 1228, 1224,
- 1227, 1223, 1225, 1226, 1680, 1680, 1225, 1228,
- 1224, 1227, 1223, 1682, 1683, 1684, 1685, 1686,
- 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694,
- 1695, 1696, 1697, 1684, 1685, 1686, 1687, 1688,
- 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696,
- 1697, 1682, 1699, 1224, 1698, 1681, 1225, 1226,
- 1700, 1700, 1225, 1228, 1224, 1227, 1223, 1702,
- 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710,
- 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1704,
- 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712,
- 1713, 1714, 1715, 1716, 1717, 1702, 1719, 1224,
- 1718, 1701, 1225, 1226, 1720, 1720, 1225, 1228,
- 1224, 1227, 1223, 1722, 1723, 1724, 1725, 1726,
- 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734,
- 1735, 1736, 1737, 1724, 1725, 1726, 1727, 1728,
- 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736,
- 1737, 1722, 1739, 1224, 1738, 1721, 1225, 1226,
- 1740, 1741, 1742, 1740, 1741, 1742, 1225, 1228,
- 1224, 1227, 1223, 1744, 1745, 1746, 1747, 1748,
- 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756,
- 1757, 1758, 1759, 1746, 1747, 1748, 1749, 1750,
- 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758,
- 1759, 1744, 1761, 1224, 1760, 1743, 1225, 1226,
- 1762, 1762, 1225, 1228, 1224, 1227, 1223, 1225,
- 1226, 1763, 1763, 1225, 1228, 1224, 1227, 1223,
- 1225, 1226, 1764, 1764, 1225, 1228, 1224, 1227,
- 1223, 1225, 1226, 1765, 1765, 1225, 1228, 1224,
- 1227, 1223, 1225, 1766, 1226, 1225, 1228, 1224,
- 1227, 1223, 1225, 1226, 1767, 1767, 1225, 1228,
- 1224, 1227, 1223, 1225, 1226, 1768, 1768, 1225,
- 1228, 1224, 1227, 1223, 1770, 1771, 1772, 1773,
- 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781,
- 1782, 1783, 1784, 1785, 1772, 1773, 1774, 1775,
- 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783,
- 1784, 1785, 1770, 1787, 1224, 1786, 1769, 1225,
- 1226, 1788, 1788, 1225, 1228, 1224, 1227, 1223,
- 1225, 1226, 1789, 1789, 1225, 1228, 1224, 1227,
- 1223, 1225, 1226, 1790, 1790, 1225, 1228, 1224,
- 1227, 1223, 1792, 1793, 1794, 1795, 1796, 1797,
- 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805,
- 1806, 1807, 1794, 1795, 1796, 1797, 1798, 1799,
- 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807,
- 1792, 1809, 1224, 1808, 1791, 1225, 1226, 1810,
- 1810, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
- 1811, 1811, 1225, 1228, 1224, 1227, 1223, 1813,
- 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821,
- 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1815,
- 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823,
- 1824, 1825, 1826, 1827, 1828, 1813, 1830, 1224,
- 1829, 1812, 1225, 1226, 1831, 1831, 1225, 1228,
- 1224, 1227, 1223, 1225, 1226, 1832, 1832, 1225,
- 1228, 1224, 1227, 1223, 1225, 1833, 1226, 1225,
- 1228, 1224, 1227, 1223, 1225, 1226, 1834, 1835,
- 1836, 1834, 1835, 1836, 1225, 1228, 1224, 1227,
- 1223, 1225, 1226, 1837, 1837, 1225, 1228, 1224,
- 1227, 1223, 1839, 1840, 1841, 1842, 1843, 1844,
- 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852,
- 1853, 1854, 1841, 1842, 1843, 1844, 1845, 1846,
- 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854,
- 1839, 1856, 1224, 1855, 1838, 1225, 1226, 1857,
- 1858, 1857, 1858, 1225, 1228, 1224, 1227, 1223,
- 1225, 1226, 1859, 1859, 1225, 1228, 1224, 1227,
- 1223, 1225, 1226, 1860, 1860, 1225, 1228, 1224,
- 1227, 1223, 1862, 1863, 1864, 1865, 1866, 1867,
- 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875,
- 1876, 1877, 1864, 1865, 1866, 1867, 1868, 1869,
- 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877,
- 1862, 1879, 1224, 1878, 1861, 1225, 1226, 1880,
- 1880, 1225, 1228, 1224, 1227, 1223, 1882, 1883,
- 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891,
- 1892, 1893, 1894, 1895, 1896, 1897, 1884, 1885,
- 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893,
- 1894, 1895, 1896, 1897, 1882, 1899, 1224, 1898,
- 1881, 1225, 1226, 1900, 1900, 1225, 1228, 1224,
- 1227, 1223, 1225, 1226, 1901, 1901, 1225, 1228,
- 1224, 1227, 1223, 1903, 1904, 1905, 1906, 1907,
- 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915,
- 1916, 1917, 1918, 1905, 1906, 1907, 1908, 1909,
- 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917,
- 1918, 1903, 1920, 1224, 1919, 1902, 1225, 1226,
- 1921, 1921, 1225, 1228, 1224, 1227, 1223, 1923,
- 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931,
- 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1925,
- 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933,
- 1934, 1935, 1936, 1937, 1938, 1923, 1940, 1224,
- 1939, 1922, 1942, 1943, 1944, 1945, 1946, 1947,
- 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955,
- 1956, 1957, 1944, 1945, 1946, 1947, 1948, 1949,
- 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957,
- 1942, 1959, 1227, 1227, 1224, 1958, 1941, 1225,
- 1226, 1960, 1960, 1225, 1228, 1224, 1227, 1223,
- 1225, 1226, 1961, 1961, 1225, 1228, 1224, 1227,
- 1223, 1225, 1226, 1962, 1962, 1225, 1228, 1224,
- 1227, 1223, 1942, 1943, 1944, 1945, 1946, 1947,
- 1948, 1949, 1950, 1963, 1952, 1953, 1954, 1955,
- 1956, 1957, 1944, 1945, 1946, 1947, 1948, 1949,
- 1950, 1963, 1952, 1953, 1954, 1955, 1956, 1957,
- 1942, 1959, 1224, 1958, 1941, 1225, 1226, 1964,
- 1964, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
- 1965, 1965, 1225, 1228, 1224, 1227, 1223, 1225,
- 1226, 1966, 1966, 1225, 1228, 1224, 1227, 1223,
- 1225, 1967, 1226, 1225, 1228, 1224, 1227, 1223,
- 1225, 1226, 1968, 1969, 1970, 1968, 1969, 1970,
- 1225, 1228, 1224, 1227, 1223, 1225, 1226, 1971,
- 1971, 1225, 1228, 1224, 1227, 1223, 1973, 1974,
- 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982,
- 1983, 1984, 1985, 1986, 1987, 1988, 1975, 1976,
- 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984,
- 1985, 1986, 1987, 1988, 1973, 1990, 1224, 1989,
- 1972, 1225, 1226, 1991, 1991, 1225, 1228, 1224,
- 1227, 1223, 1225, 1226, 1992, 1992, 1225, 1228,
- 1224, 1227, 1223, 1225, 1226, 1993, 1993, 1225,
- 1228, 1224, 1227, 1223, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2007, 2008, 2009, 2010, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
- 2009, 2010, 1995, 2012, 1224, 2011, 1994, 1225,
- 1226, 2013, 2013, 1225, 1228, 1224, 1227, 1223,
- 1225, 1226, 2014, 2014, 1225, 1228, 1224, 1227,
- 1223, 1225, 1226, 2015, 2015, 1225, 1228, 1224,
- 1227, 1223, 1225, 1226, 2016, 2016, 1225, 1228,
- 1224, 1227, 1223, 2018, 2019, 2020, 2021, 2022,
- 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030,
- 2031, 2032, 2033, 2020, 2021, 2022, 2023, 2024,
- 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032,
- 2033, 2018, 2035, 1224, 2034, 2017, 1225, 1226,
- 2036, 2036, 1225, 1228, 1224, 1227, 1223, 1225,
- 1226, 2037, 2037, 1225, 1228, 1224, 1227, 1223,
- 1225, 1226, 2038, 2038, 1225, 1228, 1224, 1227,
- 1223, 2040, 2041, 2042, 2043, 2044, 2045, 2046,
- 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054,
- 2055, 2042, 2043, 2044, 2045, 2046, 2047, 2048,
- 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2040,
- 2057, 1224, 2056, 2039, 2059, 2060, 2061, 2062,
- 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070,
- 2071, 2072, 2073, 2074, 2061, 2062, 2063, 2064,
- 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072,
- 2073, 2074, 2059, 2076, 1224, 2075, 2058, 1225,
- 1226, 2077, 2077, 1225, 1228, 1224, 1227, 1223,
- 1225, 2078, 1226, 1225, 1228, 1224, 1227, 1223,
- 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087,
- 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095,
- 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089,
- 2090, 2091, 2092, 2093, 2094, 2095, 2080, 2097,
- 1224, 2096, 2079, 1225, 1226, 2098, 2098, 1225,
- 1228, 1224, 1227, 1223, 1225, 1226, 2099, 2099,
- 1225, 1228, 1224, 1227, 1223, 1225, 1226, 2100,
- 2100, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
- 2101, 2101, 1225, 1228, 1224, 1227, 1223, 1225,
- 1226, 1720, 1720, 1225, 1228, 1224, 1227, 1223,
- 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110,
- 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118,
- 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112,
- 2113, 2114, 2115, 2116, 2117, 2118, 2103, 2120,
- 1224, 2119, 2102, 1225, 1226, 2121, 2122, 2121,
- 2122, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
- 2123, 2123, 1225, 1228, 1224, 1227, 1223, 1225,
- 1226, 2124, 2124, 1225, 1228, 1224, 1227, 1223,
- 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133,
- 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141,
- 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135,
- 2136, 2137, 2138, 2139, 2140, 2141, 2126, 2143,
- 1224, 2142, 2125, 1225, 2144, 1226, 1225, 1228,
- 1224, 1227, 1223, 1225, 1226, 2145, 2145, 1225,
- 1228, 1224, 1227, 1223, 1225, 1226, 2146, 2146,
- 1225, 1228, 1224, 1227, 1223, 1225, 1226, 2147,
- 2147, 1225, 1228, 1224, 1227, 1223, 1225, 1226,
- 2148, 2148, 1225, 1228, 1224, 1227, 1223, 1225,
- 1226, 2149, 2149, 1225, 1228, 1224, 1227, 1223,
- 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158,
- 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166,
- 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160,
- 2161, 2162, 2163, 2164, 2165, 2166, 2151, 2168,
- 1224, 2167, 2150, 1203, 1204, 1205, 1206, 1207,
- 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
- 1216, 1217, 1218, 1219, 1206, 1207, 1208, 1209,
- 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217,
- 1218, 1219, 1203, 1221, 1222, 2169, 2170, 2171,
- 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179,
- 2180, 2181, 2182, 2169, 2170, 2171, 2172, 2173,
- 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181,
- 2182, 1202, 1220, 1201, 2184, 2185, 2186, 2187,
- 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195,
- 2196, 2197, 2198, 2199, 2186, 2187, 2188, 2189,
- 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197,
- 2198, 2199, 2184, 2201, 2200, 2183, 2203, 2204,
- 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212,
- 2213, 2214, 2215, 2216, 2217, 2218, 2205, 2206,
- 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214,
- 2215, 2216, 2217, 2218, 2203, 2220, 2219, 2202,
- 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229,
- 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237,
- 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231,
- 2232, 2233, 2234, 2235, 2236, 2237, 2222, 2239,
- 2238, 2221, 2241, 2242, 2243, 2244, 2245, 2246,
- 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254,
- 2255, 2256, 2243, 2244, 2245, 2246, 2247, 2248,
- 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256,
- 2241, 2258, 2257, 2240, 2260, 2261, 2262, 2263,
- 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271,
- 2272, 2273, 2274, 2275, 2262, 2263, 2264, 2265,
- 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273,
- 2274, 2275, 2260, 2277, 2276, 2259, 2279, 2280,
- 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288,
- 2289, 2290, 2291, 2292, 2293, 2294, 2281, 2282,
- 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290,
- 2291, 2292, 2293, 2294, 2279, 2296, 2295, 2278,
- 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305,
- 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313,
- 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307,
- 2308, 2309, 2310, 2311, 2312, 2313, 2298, 2315,
- 2314, 2297, 2317, 2318, 2319, 2320, 2321, 2322,
- 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330,
- 2331, 2332, 2319, 2320, 2321, 2322, 2323, 2324,
- 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332,
- 2317, 2334, 2333, 2316, 2336, 2337, 2338, 2339,
- 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347,
- 2348, 2349, 2350, 2351, 2338, 2339, 2340, 2341,
- 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349,
- 2350, 2351, 2336, 2353, 2352, 2335, 2355, 2356,
- 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364,
- 2365, 2366, 2367, 2368, 2369, 2370, 2357, 2358,
- 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366,
- 2367, 2368, 2369, 2370, 2355, 2372, 2371, 2354,
- 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381,
- 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389,
- 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383,
- 2384, 2385, 2386, 2387, 2388, 2389, 2374, 2391,
- 2390, 2373, 2393, 2394, 2395, 2396, 2397, 2398,
- 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406,
- 2407, 2408, 2395, 2396, 2397, 2398, 2399, 2400,
- 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408,
- 2393, 2410, 2409, 2392, 2412, 2413, 2414, 2415,
- 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423,
- 2424, 2425, 2426, 2427, 2414, 2415, 2416, 2417,
- 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425,
- 2426, 2427, 2412, 2429, 2428, 2411, 2431, 2432,
- 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440,
- 2441, 2442, 2443, 2444, 2445, 2446, 2433, 2434,
- 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442,
- 2443, 2444, 2445, 2446, 2431, 2448, 2447, 2430,
- 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457,
- 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465,
- 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459,
- 2460, 2461, 2462, 2463, 2464, 2465, 2450, 2467,
- 2466, 2449, 2469, 2470, 2471, 2472, 2473, 2474,
- 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482,
- 2483, 2484, 2471, 2472, 2473, 2474, 2475, 2476,
- 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484,
- 2469, 2486, 2485, 2468, 2488, 2489, 2490, 2491,
- 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499,
- 2500, 2501, 2502, 2503, 2490, 2491, 2492, 2493,
- 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501,
- 2502, 2503, 2488, 2505, 2504, 2487, 2507, 2508,
- 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516,
- 2517, 2518, 2519, 2520, 2521, 2522, 2509, 2510,
- 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518,
- 2519, 2520, 2521, 2522, 2507, 2524, 2523, 2506,
- 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533,
- 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541,
- 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535,
- 2536, 2537, 2538, 2539, 2540, 2541, 2526, 2543,
- 2542, 2525, 2545, 2546, 2547, 2548, 2549, 2550,
- 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558,
- 2559, 2560, 2547, 2548, 2549, 2550, 2551, 2552,
- 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560,
- 2545, 2562, 2561, 2544, 2564, 2565, 2566, 2567,
- 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575,
- 2576, 2577, 2578, 2579, 2566, 2567, 2568, 2569,
- 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577,
- 2578, 2579, 2564, 2581, 2580, 2563, 2583, 2584,
- 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592,
- 2593, 2594, 2595, 2596, 2597, 2598, 2585, 2586,
- 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594,
- 2595, 2596, 2597, 2598, 2583, 2600, 2599, 2582,
- 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609,
- 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617,
- 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611,
- 2612, 2613, 2614, 2615, 2616, 2617, 2602, 2619,
- 2618, 2601, 2621, 2622, 2623, 2624, 2625, 2626,
- 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634,
- 2635, 2636, 2623, 2624, 2625, 2626, 2627, 2628,
- 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636,
- 2621, 2638, 2630, 2630, 2637, 2620, 2621, 2622,
- 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2639,
- 2631, 2632, 2633, 2634, 2635, 2636, 2623, 2624,
- 2625, 2626, 2627, 2628, 2629, 2639, 2631, 2632,
- 2633, 2634, 2635, 2636, 2621, 2638, 2637, 2620,
- 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648,
- 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656,
- 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650,
- 2651, 2652, 2653, 2654, 2655, 2656, 2641, 2658,
- 2657, 2640, 2660, 2661, 2662, 2663, 2664, 2665,
- 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673,
- 2674, 2675, 2662, 2663, 2664, 2665, 2666, 2667,
- 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675,
- 2660, 2677, 2676, 2659, 2679, 2680, 2681, 2682,
- 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690,
- 2691, 2692, 2693, 2694, 2681, 2682, 2683, 2684,
- 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692,
- 2693, 2694, 2679, 2696, 2695, 2678, 2698, 2699,
- 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707,
- 2708, 2709, 2710, 2711, 2712, 2713, 2700, 2701,
- 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709,
- 2710, 2711, 2712, 2713, 2698, 2715, 2714, 2697,
- 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724,
- 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732,
- 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726,
- 2727, 2728, 2729, 2730, 2731, 2732, 2717, 2734,
- 2733, 2716, 2736, 2737, 2738, 2739, 2740, 2741,
- 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749,
- 2750, 2751, 2738, 2739, 2740, 2741, 2742, 2743,
- 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751,
- 2736, 2753, 2752, 2735, 2755, 2756, 2757, 2758,
- 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766,
- 2767, 2768, 2769, 2770, 2757, 2758, 2759, 2760,
- 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768,
- 2769, 2770, 2755, 2772, 2771, 2754, 2774, 2775,
- 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783,
- 2784, 2785, 2786, 2787, 2788, 2789, 2776, 2777,
- 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785,
- 2786, 2787, 2788, 2789, 2774, 2791, 2790, 2773,
- 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800,
- 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808,
- 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802,
- 2803, 2804, 2805, 2806, 2807, 2808, 2793, 2810,
- 2809, 2792, 1303, 132, 132, 1305, 2811, 2811,
- 1304, 1302, 1303, 133, 133, 1305, 133, 133,
- 1304, 1302, 1303, 134, 134, 1305, 2812, 2812,
- 1304, 1302, 1303, 135, 135, 1305, 2813, 2813,
- 1304, 1302, 1303, 136, 136, 1305, 136, 136,
- 1304, 1302, 1303, 137, 138, 137, 138, 1305,
- 2814, 2815, 2814, 2815, 1304, 1302, 1303, 139,
- 139, 1305, 2816, 2816, 1304, 1302, 1303, 140,
- 140, 1305, 2817, 2817, 1304, 1302, 1303, 141,
- 141, 1305, 2818, 2818, 1304, 1302, 142, 143,
- 1303, 142, 143, 1305, 1304, 1302, 1303, 251,
- 252, 251, 252, 1305, 2819, 2820, 2819, 2820,
- 1304, 1302, 1303, 253, 253, 1305, 2821, 2821,
- 1304, 1302, 1303, 254, 254, 1305, 254, 254,
- 1304, 1302, 255, 1303, 2822, 1305, 1304, 1302,
- 1303, 256, 256, 1305, 2823, 2823, 1304, 1302,
- 1303, 257, 257, 1305, 2824, 2824, 1304, 1302,
- 1303, 258, 258, 1305, 2825, 2825, 1304, 1302,
- 1303, 259, 259, 1305, 2826, 2826, 1304, 1302,
- 1303, 260, 260, 1305, 260, 260, 1304, 1302,
- 1303, 144, 145, 144, 145, 1305, 2827, 2828,
- 2827, 2828, 1304, 1302, 1303, 146, 146, 1305,
- 2829, 2829, 1304, 1302, 1303, 147, 147, 1305,
- 2830, 2830, 1304, 1302, 1303, 148, 148, 1305,
- 148, 148, 1304, 1302, 1303, 247, 247, 1305,
- 2831, 2831, 1304, 1302, 1303, 248, 248, 1305,
- 2832, 2832, 1304, 1302, 1303, 249, 249, 1305,
- 2833, 2833, 1304, 1302, 1303, 250, 250, 1305,
- 2834, 2834, 1304, 1302, 1303, 193, 193, 1305,
- 193, 193, 1304, 1302, 1303, 149, 149, 1305,
- 2835, 2835, 1304, 1302, 1303, 150, 150, 1305,
- 2836, 2836, 1304, 1302, 1303, 151, 151, 1305,
- 151, 151, 1304, 1302, 1303, 152, 152, 1305,
- 2837, 2837, 1304, 1302, 1303, 153, 153, 1305,
- 2838, 2838, 1304, 1302, 1303, 154, 154, 1305,
- 2839, 2839, 1304, 1302, 1303, 155, 155, 1305,
- 2840, 2840, 1304, 1302, 1303, 156, 156, 1305,
- 156, 156, 1304, 1302, 1303, 157, 158, 157,
- 158, 1305, 2841, 2842, 2841, 2842, 1304, 1302,
- 1303, 159, 159, 1305, 2843, 2843, 1304, 1302,
- 1303, 160, 161, 160, 161, 1305, 160, 161,
- 160, 161, 1304, 1302, 1303, 245, 245, 1305,
- 2844, 2844, 1304, 1302, 246, 1303, 246, 1305,
- 1304, 1302, 1303, 162, 162, 1305, 2845, 2845,
- 1304, 1302, 1303, 163, 163, 1305, 2846, 2846,
- 1304, 1302, 1303, 164, 164, 1305, 2847, 2847,
- 1304, 1302, 1303, 165, 165, 1305, 2848, 2848,
- 1304, 1302, 166, 1303, 2849, 1305, 1304, 1302,
- 1303, 167, 168, 167, 168, 1305, 2850, 2851,
- 2850, 2851, 1304, 1302, 1303, 169, 169, 1305,
- 169, 169, 1304, 1302, 1303, 242, 242, 1305,
- 2852, 2852, 1304, 1302, 1303, 243, 243, 1305,
- 2853, 2853, 1304, 1302, 1303, 244, 244, 1305,
- 244, 244, 1304, 1302, 1303, 170, 170, 1305,
- 2854, 2854, 1304, 1302, 1303, 171, 171, 1305,
- 2855, 2855, 1304, 1302, 1303, 172, 172, 1305,
- 172, 172, 1304, 1302, 1303, 173, 174, 175,
- 173, 174, 175, 1305, 2856, 2857, 2858, 2856,
- 2857, 2858, 1304, 1302, 1303, 176, 177, 178,
- 176, 177, 178, 1305, 2859, 2860, 2861, 2859,
- 2860, 2861, 1304, 1302, 1303, 179, 179, 1305,
- 2862, 2862, 1304, 1302, 1303, 180, 180, 1305,
- 2863, 2863, 1304, 1302, 1303, 181, 181, 1305,
- 2864, 2864, 1304, 1302, 1303, 175, 175, 1305,
- 2858, 2858, 1304, 1302, 1303, 182, 182, 1305,
- 182, 182, 1304, 1302, 1303, 223, 223, 1305,
- 223, 223, 1304, 1302, 2621, 2622, 2623, 2624,
- 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632,
- 2633, 2634, 2635, 2636, 2623, 2624, 2625, 2626,
- 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634,
- 2635, 2636, 2621, 2638, 2865, 2865, 2637, 2620,
- 1303, 224, 224, 1305, 2866, 2866, 1304, 1302,
- 1303, 225, 225, 1305, 2867, 2867, 1304, 1302,
- 1303, 226, 226, 1305, 226, 226, 1304, 1302,
- 1303, 227, 227, 1305, 2868, 2868, 1304, 1302,
- 1303, 228, 228, 1305, 2869, 2869, 1304, 1302,
- 1303, 229, 229, 1305, 2870, 2870, 1304, 1302,
- 230, 1303, 2871, 1305, 1304, 1302, 1303, 231,
- 232, 233, 231, 232, 233, 1305, 2872, 2873,
- 2874, 2872, 2873, 2874, 1304, 1302, 1303, 234,
- 234, 1305, 234, 234, 1304, 1302, 1303, 235,
- 235, 1305, 2875, 2875, 1304, 1302, 1303, 236,
- 236, 1305, 2876, 2876, 1304, 1302, 1303, 237,
- 237, 1305, 237, 237, 1304, 1302, 1303, 238,
- 238, 1305, 2877, 2877, 1304, 1302, 1303, 239,
- 239, 1305, 2878, 2878, 1304, 1302, 1303, 240,
- 240, 1305, 2879, 2879, 1304, 1302, 1303, 241,
- 241, 1305, 241, 241, 1304, 1302, 1303, 183,
- 183, 1305, 2880, 2880, 1304, 1302, 1303, 184,
- 184, 1305, 2881, 2881, 1304, 1302, 1303, 185,
- 185, 1305, 2882, 2882, 1304, 1302, 1303, 186,
- 186, 1305, 186, 186, 1304, 1302, 1303, 187,
- 188, 189, 190, 187, 188, 189, 190, 1305,
- 2883, 2884, 2885, 2886, 2883, 2884, 2885, 2886,
- 1304, 1302, 1303, 191, 191, 1305, 191, 191,
- 1304, 1302, 1303, 194, 195, 196, 194, 195,
- 196, 1305, 194, 2887, 2888, 194, 2887, 2888,
- 1304, 1302, 1303, 197, 197, 1305, 2889, 2889,
- 1304, 1302, 1303, 198, 198, 1305, 2890, 2890,
- 1304, 1302, 1303, 199, 199, 1305, 2891, 2891,
- 1304, 1302, 1303, 200, 200, 1305, 2892, 2892,
- 1304, 1302, 201, 1303, 2893, 1305, 1304, 1302,
- 1303, 202, 202, 1305, 2894, 2894, 1304, 1302,
- 1303, 203, 203, 1305, 203, 203, 1304, 1302,
- 1303, 204, 204, 1305, 2895, 2895, 1304, 1302,
- 1303, 205, 205, 1305, 2896, 2896, 1304, 1302,
- 1303, 206, 206, 1305, 206, 206, 1304, 1302,
- 1303, 207, 207, 1305, 2897, 2897, 1304, 1302,
- 1303, 208, 208, 1305, 208, 208, 1304, 1302,
- 1303, 209, 209, 1305, 2898, 2898, 1304, 1302,
- 1303, 210, 210, 1305, 2899, 2899, 1304, 1302,
- 211, 1303, 2900, 1305, 1304, 1302, 1303, 212,
- 213, 214, 212, 213, 214, 1305, 2901, 2902,
- 2903, 2901, 2902, 2903, 1304, 1302, 1303, 215,
- 215, 1305, 215, 215, 1304, 1302, 1303, 216,
- 217, 216, 217, 1305, 2904, 2905, 2904, 2905,
- 1304, 1302, 1303, 218, 218, 1305, 2906, 2906,
- 1304, 1302, 1303, 219, 219, 1305, 219, 219,
- 1304, 1302, 1303, 220, 220, 1305, 220, 220,
- 1304, 1302, 1303, 221, 221, 1305, 2907, 2907,
- 1304, 1302, 1303, 222, 222, 1305, 222, 222,
- 1304, 1302, 1303, 192, 192, 1305, 192, 192,
- 1304, 1302, 1303, 193, 193, 1305, 193, 193,
- 1304, 1302, 2909, 2910, 261, 2909, 2910, 261,
- 2911, 2908, 2910, 2910, 2911, 2908, 2913, 2913,
- 2914, 2912, 0
-};
+ static const short _demo_machine_parser_cmd_trans_targs[] = {
+ 2, 0, 235, 3, 2, 235, 3, 237,
+ 232, 6, 94, 7, 8, 9, 10, 11,
+ 12, 13, 91, 14, 15, 16, 17, 378,
+ 381, 20, 21, 22, 384, 24, 385, 25,
+ 26, 27, 28, 29, 30, 31, 32, 33,
+ 34, 36, 37, 38, 39, 387, 41, 388,
+ 43, 44, 389, 46, 390, 48, 49, 391,
+ 394, 404, 52, 53, 54, 395, 56, 65,
+ 68, 396, 69, 71, 57, 58, 59, 60,
+ 61, 63, 64, 398, 66, 67, 399, 400,
+ 70, 401, 402, 73, 74, 75, 76, 403,
+ 78, 405, 406, 81, 407, 83, 408, 410,
+ 86, 411, 88, 412, 90, 413, 92, 93,
+ 414, 96, 97, 415, 99, 100, 101, 416,
+ 417, 232, 420, 105, 106, 107, 448, 109,
+ 110, 111, 112, 114, 450, 451, 115, 116,
+ 117, 118, 120, 452, 122, 653, 124, 125,
+ 654, 127, 222, 128, 129, 130, 655, 684,
+ 132, 217, 133, 134, 656, 136, 137, 657,
+ 139, 140, 141, 142, 658, 144, 215, 145,
+ 659, 682, 147, 148, 149, 150, 151, 152,
+ 212, 660, 154, 155, 661, 157, 199, 162,
+ 158, 195, 676, 159, 160, 161, 662, 164,
+ 165, 166, 663, 168, 171, 182, 184, 664,
+ 665, 666, 667, 172, 179, 173, 174, 175,
+ 176, 177, 178, 668, 180, 181, 669, 183,
+ 670, 185, 186, 187, 188, 189, 193, 671,
+ 190, 192, 191, 672, 673, 194, 674, 675,
+ 197, 198, 677, 200, 201, 202, 203, 204,
+ 205, 208, 678, 206, 207, 679, 209, 210,
+ 211, 680, 213, 214, 681, 216, 683, 218,
+ 219, 220, 221, 223, 225, 224, 685, 226,
+ 227, 228, 229, 230, 686, 798, 232, 233,
+ 1, 4, 102, 231, 232, 234, 232, 234,
+ 232, 235, 236, 232, 236, 232, 238, 239,
+ 377, 5, 379, 380, 382, 383, 23, 386,
+ 40, 45, 392, 393, 55, 397, 232, 238,
+ 240, 241, 255, 256, 259, 260, 266, 279,
+ 286, 293, 300, 301, 309, 317, 232, 240,
+ 241, 255, 256, 259, 260, 266, 279, 286,
+ 293, 300, 301, 309, 368, 376, 242, 367,
+ 243, 244, 245, 246, 247, 248, 249, 363,
+ 250, 251, 252, 253, 254, 232, 240, 241,
+ 255, 256, 259, 260, 266, 279, 286, 293,
+ 300, 301, 309, 317, 232, 240, 241, 255,
+ 256, 259, 260, 266, 279, 286, 293, 300,
+ 301, 309, 357, 360, 317, 232, 240, 257,
+ 255, 256, 259, 260, 266, 279, 286, 293,
+ 300, 301, 309, 317, 345, 258, 232, 240,
+ 241, 255, 256, 259, 260, 266, 279, 286,
+ 293, 300, 301, 309, 317, 232, 240, 241,
+ 255, 256, 259, 260, 354, 266, 279, 286,
+ 293, 300, 301, 309, 317, 232, 261, 241,
+ 255, 348, 259, 260, 266, 279, 351, 293,
+ 300, 301, 309, 265, 317, 262, 263, 264,
+ 232, 240, 241, 255, 256, 259, 260, 266,
+ 279, 286, 293, 300, 301, 309, 317, 267,
+ 278, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 232, 240, 241, 255, 256,
+ 259, 260, 266, 279, 286, 293, 300, 301,
+ 309, 317, 232, 240, 241, 255, 280, 259,
+ 260, 266, 279, 286, 293, 300, 301, 309,
+ 317, 281, 282, 283, 284, 285, 256, 287,
+ 288, 232, 240, 241, 255, 256, 259, 260,
+ 289, 266, 279, 286, 293, 300, 301, 309,
+ 317, 290, 291, 292, 294, 295, 232, 240,
+ 241, 255, 256, 259, 260, 296, 279, 286,
+ 293, 300, 301, 309, 317, 297, 298, 299,
+ 266, 241, 232, 240, 241, 255, 302, 259,
+ 260, 266, 279, 286, 293, 300, 301, 309,
+ 343, 317, 303, 339, 232, 240, 241, 255,
+ 256, 259, 260, 304, 266, 279, 286, 293,
+ 300, 301, 309, 317, 305, 306, 307, 308,
+ 310, 322, 326, 316, 328, 331, 311, 312,
+ 313, 314, 315, 232, 240, 241, 255, 256,
+ 259, 260, 266, 279, 286, 293, 300, 301,
+ 309, 317, 232, 240, 241, 255, 256, 259,
+ 260, 318, 266, 279, 286, 293, 300, 301,
+ 309, 317, 319, 320, 321, 323, 324, 325,
+ 232, 240, 241, 255, 256, 259, 260, 266,
+ 279, 286, 293, 300, 301, 309, 317, 327,
+ 232, 240, 241, 255, 256, 259, 260, 266,
+ 279, 286, 293, 300, 301, 309, 317, 329,
+ 330, 232, 240, 241, 255, 256, 259, 260,
+ 266, 279, 286, 293, 300, 301, 309, 317,
+ 332, 232, 240, 241, 255, 256, 259, 260,
+ 266, 279, 286, 293, 300, 301, 333, 317,
+ 334, 335, 336, 337, 338, 309, 232, 240,
+ 241, 255, 256, 259, 260, 266, 279, 286,
+ 293, 300, 301, 309, 340, 317, 341, 342,
+ 344, 256, 346, 347, 349, 350, 240, 256,
+ 286, 232, 240, 241, 255, 256, 259, 260,
+ 352, 279, 286, 293, 300, 301, 309, 317,
+ 353, 266, 355, 356, 358, 359, 232, 240,
+ 241, 255, 256, 259, 260, 266, 279, 286,
+ 293, 300, 301, 309, 317, 361, 362, 364,
+ 365, 366, 232, 240, 241, 255, 256, 259,
+ 260, 266, 279, 286, 293, 300, 301, 309,
+ 317, 369, 370, 371, 372, 373, 374, 375,
+ 232, 240, 241, 255, 256, 259, 260, 266,
+ 279, 286, 293, 300, 301, 309, 317, 232,
+ 377, 5, 379, 380, 382, 383, 23, 386,
+ 40, 45, 392, 393, 55, 95, 232, 377,
+ 5, 379, 380, 382, 383, 23, 386, 40,
+ 45, 392, 393, 55, 397, 232, 377, 5,
+ 379, 380, 382, 383, 23, 386, 40, 45,
+ 392, 393, 55, 87, 89, 397, 232, 377,
+ 18, 379, 380, 382, 383, 23, 386, 40,
+ 45, 392, 393, 55, 397, 80, 232, 377,
+ 5, 379, 380, 382, 383, 23, 386, 40,
+ 45, 392, 393, 55, 397, 232, 377, 5,
+ 379, 380, 382, 383, 85, 23, 386, 40,
+ 45, 392, 393, 55, 397, 232, 19, 5,
+ 379, 82, 382, 383, 23, 386, 409, 45,
+ 392, 393, 55, 397, 232, 377, 5, 379,
+ 380, 382, 383, 23, 386, 40, 45, 392,
+ 393, 55, 397, 232, 377, 5, 379, 380,
+ 382, 383, 23, 386, 40, 45, 392, 393,
+ 55, 397, 232, 377, 5, 379, 35, 382,
+ 383, 23, 386, 40, 45, 392, 393, 55,
+ 397, 380, 232, 377, 5, 379, 380, 382,
+ 383, 42, 23, 386, 40, 45, 392, 393,
+ 55, 397, 232, 377, 5, 379, 380, 382,
+ 383, 47, 386, 40, 45, 392, 393, 55,
+ 397, 23, 5, 232, 377, 5, 379, 50,
+ 382, 383, 23, 386, 40, 45, 392, 393,
+ 55, 79, 397, 232, 377, 5, 379, 380,
+ 382, 383, 51, 23, 386, 40, 45, 392,
+ 393, 55, 397, 232, 377, 5, 379, 380,
+ 382, 383, 23, 386, 40, 45, 392, 393,
+ 55, 397, 232, 377, 5, 379, 380, 382,
+ 383, 62, 23, 386, 40, 45, 392, 393,
+ 55, 397, 232, 377, 5, 379, 380, 382,
+ 383, 23, 386, 40, 45, 392, 393, 55,
+ 397, 232, 377, 5, 379, 380, 382, 383,
+ 23, 386, 40, 45, 392, 393, 55, 397,
+ 232, 377, 5, 379, 380, 382, 383, 23,
+ 386, 40, 45, 392, 393, 55, 397, 232,
+ 377, 5, 379, 380, 382, 383, 23, 386,
+ 40, 45, 392, 393, 72, 397, 55, 232,
+ 377, 5, 379, 380, 382, 383, 23, 386,
+ 40, 45, 392, 393, 55, 77, 397, 380,
+ 377, 380, 40, 232, 377, 5, 379, 380,
+ 382, 383, 84, 386, 40, 45, 392, 393,
+ 55, 397, 23, 232, 377, 5, 379, 380,
+ 382, 383, 23, 386, 40, 45, 392, 393,
+ 55, 397, 232, 377, 5, 379, 380, 382,
+ 383, 23, 386, 40, 45, 392, 393, 55,
+ 397, 98, 232, 377, 5, 379, 380, 382,
+ 383, 23, 386, 40, 45, 392, 393, 55,
+ 397, 232, 418, 419, 507, 103, 121, 123,
+ 126, 131, 135, 138, 143, 146, 153, 156,
+ 163, 167, 169, 170, 453, 652, 454, 232,
+ 418, 419, 103, 453, 454, 232, 419, 103,
+ 453, 454, 232, 421, 422, 423, 447, 449,
+ 113, 232, 421, 422, 232, 422, 424, 430,
+ 436, 232, 422, 424, 425, 430, 436, 426,
+ 427, 428, 429, 431, 432, 433, 434, 435,
+ 437, 442, 443, 438, 439, 440, 441, 232,
+ 422, 424, 430, 436, 232, 422, 444, 430,
+ 436, 445, 446, 424, 232, 422, 447, 104,
+ 449, 113, 108, 232, 422, 447, 449, 113,
+ 232, 422, 119, 449, 113, 447, 232, 103,
+ 453, 454, 420, 455, 232, 423, 456, 458,
+ 460, 484, 490, 496, 232, 457, 456, 458,
+ 459, 423, 458, 423, 460, 461, 467, 473,
+ 232, 458, 461, 462, 467, 473, 463, 464,
+ 465, 466, 468, 469, 470, 471, 472, 474,
+ 479, 480, 475, 476, 477, 478, 232, 458,
+ 461, 467, 473, 232, 458, 481, 467, 473,
+ 482, 483, 461, 232, 458, 484, 485, 490,
+ 496, 486, 487, 488, 489, 491, 492, 493,
+ 494, 495, 497, 502, 503, 498, 499, 500,
+ 501, 232, 458, 484, 490, 496, 232, 458,
+ 504, 490, 496, 505, 506, 484, 508, 511,
+ 515, 521, 526, 530, 536, 540, 548, 552,
+ 560, 565, 568, 570, 509, 510, 232, 419,
+ 103, 508, 511, 515, 521, 526, 530, 536,
+ 540, 548, 552, 560, 565, 568, 570, 453,
+ 454, 512, 513, 514, 232, 419, 103, 508,
+ 511, 515, 521, 526, 530, 536, 540, 548,
+ 552, 560, 565, 568, 570, 453, 454, 516,
+ 641, 517, 518, 519, 520, 640, 232, 419,
+ 103, 508, 511, 515, 521, 526, 530, 536,
+ 540, 548, 552, 560, 565, 568, 570, 453,
+ 454, 522, 635, 523, 524, 525, 232, 419,
+ 103, 508, 511, 515, 521, 526, 530, 536,
+ 540, 548, 552, 560, 565, 568, 570, 453,
+ 454, 527, 528, 529, 232, 419, 103, 508,
+ 511, 515, 521, 526, 530, 536, 540, 548,
+ 552, 560, 565, 568, 570, 453, 454, 531,
+ 532, 533, 534, 535, 232, 419, 103, 508,
+ 511, 515, 521, 526, 530, 536, 540, 548,
+ 552, 560, 565, 568, 570, 453, 454, 537,
+ 632, 538, 539, 631, 232, 419, 103, 508,
+ 511, 515, 521, 526, 530, 536, 540, 548,
+ 552, 560, 565, 568, 570, 453, 454, 541,
+ 542, 543, 544, 545, 546, 627, 547, 232,
+ 419, 103, 508, 511, 515, 521, 526, 530,
+ 536, 540, 548, 552, 560, 565, 568, 570,
+ 453, 454, 549, 550, 551, 232, 419, 103,
+ 508, 511, 515, 521, 526, 530, 536, 540,
+ 548, 552, 560, 565, 568, 570, 453, 454,
+ 553, 611, 558, 554, 604, 606, 555, 556,
+ 557, 559, 232, 419, 103, 508, 511, 515,
+ 521, 526, 530, 536, 540, 548, 552, 560,
+ 565, 568, 570, 453, 454, 561, 562, 563,
+ 564, 232, 419, 103, 508, 511, 515, 521,
+ 526, 530, 536, 540, 548, 552, 560, 565,
+ 568, 570, 453, 454, 566, 572, 586, 589,
+ 567, 232, 419, 103, 508, 511, 515, 521,
+ 526, 530, 536, 540, 548, 552, 560, 565,
+ 568, 570, 453, 454, 569, 232, 419, 103,
+ 508, 511, 515, 521, 526, 530, 536, 540,
+ 548, 552, 560, 565, 568, 570, 453, 454,
+ 571, 232, 419, 103, 508, 511, 515, 521,
+ 526, 530, 536, 540, 548, 552, 560, 565,
+ 568, 570, 453, 454, 573, 574, 582, 232,
+ 419, 103, 508, 511, 515, 521, 526, 530,
+ 536, 540, 548, 552, 560, 565, 568, 570,
+ 453, 454, 575, 576, 577, 578, 579, 580,
+ 581, 232, 419, 103, 508, 511, 515, 521,
+ 526, 530, 536, 540, 548, 552, 560, 565,
+ 568, 570, 453, 454, 583, 584, 585, 232,
+ 419, 103, 508, 511, 515, 521, 526, 530,
+ 536, 540, 548, 552, 560, 565, 568, 570,
+ 453, 454, 587, 588, 232, 419, 103, 508,
+ 511, 515, 521, 526, 530, 536, 540, 548,
+ 552, 560, 565, 568, 570, 453, 454, 590,
+ 591, 592, 593, 595, 601, 594, 232, 419,
+ 103, 508, 511, 515, 521, 526, 530, 536,
+ 540, 548, 552, 560, 565, 568, 570, 453,
+ 454, 596, 599, 597, 598, 232, 419, 103,
+ 508, 511, 515, 521, 526, 530, 536, 540,
+ 548, 552, 560, 565, 568, 570, 453, 454,
+ 600, 232, 419, 103, 508, 511, 515, 521,
+ 526, 530, 536, 540, 548, 552, 560, 565,
+ 568, 570, 453, 454, 602, 603, 232, 419,
+ 103, 508, 511, 515, 521, 526, 530, 536,
+ 540, 548, 552, 560, 565, 568, 570, 453,
+ 454, 605, 232, 419, 103, 508, 511, 515,
+ 521, 526, 530, 536, 540, 548, 552, 560,
+ 565, 568, 570, 453, 454, 232, 419, 103,
+ 508, 511, 515, 521, 526, 530, 536, 607,
+ 548, 552, 560, 565, 568, 570, 453, 454,
+ 608, 609, 610, 540, 612, 613, 614, 615,
+ 616, 618, 622, 617, 232, 419, 103, 508,
+ 511, 515, 521, 526, 530, 536, 540, 548,
+ 552, 560, 565, 568, 570, 453, 454, 619,
+ 620, 621, 232, 419, 103, 508, 511, 515,
+ 521, 526, 530, 536, 540, 548, 552, 560,
+ 565, 568, 570, 453, 454, 623, 624, 625,
+ 626, 232, 419, 103, 508, 511, 515, 521,
+ 526, 530, 536, 540, 548, 552, 560, 565,
+ 568, 570, 453, 454, 628, 629, 630, 232,
+ 419, 103, 508, 511, 515, 521, 526, 530,
+ 536, 540, 548, 552, 560, 565, 568, 570,
+ 453, 454, 232, 419, 103, 508, 511, 515,
+ 521, 526, 530, 536, 540, 548, 552, 560,
+ 565, 568, 570, 453, 454, 633, 634, 232,
+ 419, 103, 508, 511, 515, 521, 526, 530,
+ 536, 540, 548, 552, 560, 565, 568, 570,
+ 453, 454, 636, 637, 638, 639, 232, 419,
+ 103, 508, 511, 515, 521, 526, 530, 536,
+ 540, 548, 552, 560, 565, 568, 570, 453,
+ 454, 642, 645, 643, 644, 232, 419, 103,
+ 508, 511, 515, 521, 526, 530, 536, 540,
+ 548, 552, 560, 565, 568, 570, 453, 454,
+ 646, 647, 648, 649, 650, 651, 232, 419,
+ 103, 508, 511, 515, 521, 526, 530, 536,
+ 540, 548, 552, 560, 565, 568, 570, 453,
+ 454, 687, 689, 692, 706, 715, 718, 723,
+ 728, 738, 741, 766, 770, 796, 797, 232,
+ 419, 103, 121, 123, 126, 131, 135, 138,
+ 143, 146, 153, 156, 163, 167, 169, 170,
+ 453, 454, 232, 419, 103, 121, 123, 126,
+ 131, 135, 138, 143, 146, 153, 156, 163,
+ 167, 169, 170, 453, 454, 232, 419, 103,
+ 121, 123, 126, 131, 135, 138, 143, 146,
+ 153, 156, 163, 167, 169, 170, 453, 454,
+ 232, 419, 103, 121, 123, 126, 131, 135,
+ 138, 143, 146, 153, 156, 163, 167, 169,
+ 170, 453, 454, 232, 419, 103, 121, 123,
+ 126, 131, 135, 138, 143, 146, 153, 156,
+ 163, 167, 169, 170, 453, 454, 232, 419,
+ 103, 121, 123, 126, 131, 135, 138, 143,
+ 146, 153, 156, 163, 167, 169, 170, 453,
+ 454, 232, 419, 103, 121, 123, 126, 131,
+ 135, 138, 143, 146, 153, 156, 163, 167,
+ 169, 170, 453, 454, 232, 419, 103, 121,
+ 123, 126, 131, 135, 138, 143, 146, 153,
+ 156, 163, 167, 169, 170, 453, 454, 232,
+ 419, 103, 121, 123, 126, 131, 135, 138,
+ 143, 146, 153, 156, 163, 167, 169, 170,
+ 453, 454, 232, 419, 103, 121, 123, 126,
+ 131, 135, 138, 143, 146, 153, 156, 163,
+ 167, 169, 170, 453, 454, 232, 419, 103,
+ 121, 123, 126, 131, 135, 138, 143, 146,
+ 153, 156, 163, 167, 169, 170, 453, 454,
+ 232, 419, 103, 121, 123, 126, 131, 135,
+ 138, 143, 146, 153, 156, 163, 167, 169,
+ 170, 453, 454, 232, 419, 103, 121, 123,
+ 126, 131, 135, 138, 143, 146, 153, 156,
+ 163, 167, 169, 170, 453, 454, 232, 419,
+ 103, 121, 123, 126, 131, 135, 138, 143,
+ 146, 153, 156, 163, 167, 169, 170, 453,
+ 454, 232, 419, 103, 121, 123, 126, 131,
+ 135, 138, 143, 146, 153, 156, 163, 167,
+ 169, 170, 453, 454, 232, 419, 103, 121,
+ 123, 126, 131, 135, 138, 143, 146, 153,
+ 156, 163, 167, 169, 170, 453, 454, 232,
+ 419, 103, 121, 123, 126, 131, 135, 138,
+ 143, 146, 153, 156, 163, 167, 169, 170,
+ 453, 454, 232, 419, 103, 121, 123, 126,
+ 131, 135, 138, 143, 146, 153, 156, 163,
+ 167, 169, 170, 453, 454, 232, 419, 103,
+ 121, 123, 126, 131, 135, 138, 143, 146,
+ 153, 156, 163, 167, 169, 170, 453, 454,
+ 232, 419, 103, 121, 123, 126, 131, 135,
+ 138, 143, 146, 153, 156, 163, 167, 169,
+ 170, 453, 454, 232, 419, 103, 121, 123,
+ 126, 131, 135, 138, 143, 146, 153, 156,
+ 163, 167, 169, 170, 453, 454, 232, 419,
+ 103, 121, 123, 126, 131, 135, 138, 143,
+ 146, 153, 156, 163, 167, 169, 170, 453,
+ 454, 232, 419, 103, 121, 123, 126, 131,
+ 135, 138, 143, 146, 153, 156, 163, 167,
+ 169, 170, 453, 454, 232, 419, 103, 121,
+ 123, 126, 131, 135, 138, 143, 196, 153,
+ 156, 163, 167, 169, 170, 453, 454, 146,
+ 232, 419, 103, 121, 123, 126, 131, 135,
+ 138, 143, 146, 153, 156, 163, 167, 169,
+ 170, 453, 454, 232, 419, 103, 121, 123,
+ 126, 131, 135, 138, 143, 146, 153, 156,
+ 163, 167, 169, 170, 453, 454, 232, 419,
+ 103, 121, 123, 126, 131, 135, 138, 143,
+ 146, 153, 156, 163, 167, 169, 170, 453,
+ 454, 232, 419, 103, 121, 123, 126, 131,
+ 135, 138, 143, 146, 153, 156, 163, 167,
+ 169, 170, 453, 454, 232, 419, 103, 121,
+ 123, 126, 131, 135, 138, 143, 146, 153,
+ 156, 163, 167, 169, 170, 453, 454, 232,
+ 419, 103, 121, 123, 126, 131, 135, 138,
+ 143, 146, 153, 156, 163, 167, 169, 170,
+ 453, 454, 232, 419, 103, 121, 123, 126,
+ 131, 135, 138, 143, 146, 153, 156, 163,
+ 167, 169, 170, 453, 454, 232, 419, 103,
+ 121, 123, 126, 131, 135, 138, 143, 146,
+ 153, 156, 163, 167, 169, 170, 453, 454,
+ 232, 419, 103, 121, 123, 126, 131, 135,
+ 138, 143, 146, 153, 156, 163, 167, 169,
+ 170, 453, 454, 688, 690, 691, 693, 697,
+ 694, 695, 696, 698, 700, 699, 701, 702,
+ 703, 704, 705, 707, 710, 708, 709, 711,
+ 712, 713, 714, 716, 717, 719, 720, 721,
+ 722, 724, 726, 725, 727, 729, 730, 731,
+ 732, 733, 734, 735, 736, 737, 739, 740,
+ 742, 753, 747, 743, 748, 749, 744, 745,
+ 746, 750, 751, 752, 754, 755, 756, 757,
+ 758, 759, 762, 760, 761, 763, 764, 765,
+ 767, 768, 769, 771, 772, 783, 785, 773,
+ 780, 774, 775, 776, 777, 778, 779, 781,
+ 782, 784, 786, 787, 788, 789, 790, 794,
+ 791, 793, 792, 795, 232, 799, 232, 800,
+ 232, 232, 800
+ };
-static const short _demo_machine_parser_cmd_trans_targs[] = {
- 2, 0, 235, 3, 2, 235, 3, 237,
- 232, 6, 94, 7, 8, 9, 10, 11,
- 12, 13, 91, 14, 15, 16, 17, 378,
- 381, 20, 21, 22, 384, 24, 385, 25,
- 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 36, 37, 38, 39, 387, 41, 388,
- 43, 44, 389, 46, 390, 48, 49, 391,
- 394, 404, 52, 53, 54, 395, 56, 65,
- 68, 396, 69, 71, 57, 58, 59, 60,
- 61, 63, 64, 398, 66, 67, 399, 400,
- 70, 401, 402, 73, 74, 75, 76, 403,
- 78, 405, 406, 81, 407, 83, 408, 410,
- 86, 411, 88, 412, 90, 413, 92, 93,
- 414, 96, 97, 415, 99, 100, 101, 416,
- 417, 232, 420, 105, 106, 107, 448, 109,
- 110, 111, 112, 114, 450, 451, 115, 116,
- 117, 118, 120, 452, 122, 653, 124, 125,
- 654, 127, 222, 128, 129, 130, 655, 684,
- 132, 217, 133, 134, 656, 136, 137, 657,
- 139, 140, 141, 142, 658, 144, 215, 145,
- 659, 682, 147, 148, 149, 150, 151, 152,
- 212, 660, 154, 155, 661, 157, 199, 162,
- 158, 195, 676, 159, 160, 161, 662, 164,
- 165, 166, 663, 168, 171, 182, 184, 664,
- 665, 666, 667, 172, 179, 173, 174, 175,
- 176, 177, 178, 668, 180, 181, 669, 183,
- 670, 185, 186, 187, 188, 189, 193, 671,
- 190, 192, 191, 672, 673, 194, 674, 675,
- 197, 198, 677, 200, 201, 202, 203, 204,
- 205, 208, 678, 206, 207, 679, 209, 210,
- 211, 680, 213, 214, 681, 216, 683, 218,
- 219, 220, 221, 223, 225, 224, 685, 226,
- 227, 228, 229, 230, 686, 798, 232, 233,
- 1, 4, 102, 231, 232, 234, 232, 234,
- 232, 235, 236, 232, 236, 232, 238, 239,
- 377, 5, 379, 380, 382, 383, 23, 386,
- 40, 45, 392, 393, 55, 397, 232, 238,
- 240, 241, 255, 256, 259, 260, 266, 279,
- 286, 293, 300, 301, 309, 317, 232, 240,
- 241, 255, 256, 259, 260, 266, 279, 286,
- 293, 300, 301, 309, 368, 376, 242, 367,
- 243, 244, 245, 246, 247, 248, 249, 363,
- 250, 251, 252, 253, 254, 232, 240, 241,
- 255, 256, 259, 260, 266, 279, 286, 293,
- 300, 301, 309, 317, 232, 240, 241, 255,
- 256, 259, 260, 266, 279, 286, 293, 300,
- 301, 309, 357, 360, 317, 232, 240, 257,
- 255, 256, 259, 260, 266, 279, 286, 293,
- 300, 301, 309, 317, 345, 258, 232, 240,
- 241, 255, 256, 259, 260, 266, 279, 286,
- 293, 300, 301, 309, 317, 232, 240, 241,
- 255, 256, 259, 260, 354, 266, 279, 286,
- 293, 300, 301, 309, 317, 232, 261, 241,
- 255, 348, 259, 260, 266, 279, 351, 293,
- 300, 301, 309, 265, 317, 262, 263, 264,
- 232, 240, 241, 255, 256, 259, 260, 266,
- 279, 286, 293, 300, 301, 309, 317, 267,
- 278, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 232, 240, 241, 255, 256,
- 259, 260, 266, 279, 286, 293, 300, 301,
- 309, 317, 232, 240, 241, 255, 280, 259,
- 260, 266, 279, 286, 293, 300, 301, 309,
- 317, 281, 282, 283, 284, 285, 256, 287,
- 288, 232, 240, 241, 255, 256, 259, 260,
- 289, 266, 279, 286, 293, 300, 301, 309,
- 317, 290, 291, 292, 294, 295, 232, 240,
- 241, 255, 256, 259, 260, 296, 279, 286,
- 293, 300, 301, 309, 317, 297, 298, 299,
- 266, 241, 232, 240, 241, 255, 302, 259,
- 260, 266, 279, 286, 293, 300, 301, 309,
- 343, 317, 303, 339, 232, 240, 241, 255,
- 256, 259, 260, 304, 266, 279, 286, 293,
- 300, 301, 309, 317, 305, 306, 307, 308,
- 310, 322, 326, 316, 328, 331, 311, 312,
- 313, 314, 315, 232, 240, 241, 255, 256,
- 259, 260, 266, 279, 286, 293, 300, 301,
- 309, 317, 232, 240, 241, 255, 256, 259,
- 260, 318, 266, 279, 286, 293, 300, 301,
- 309, 317, 319, 320, 321, 323, 324, 325,
- 232, 240, 241, 255, 256, 259, 260, 266,
- 279, 286, 293, 300, 301, 309, 317, 327,
- 232, 240, 241, 255, 256, 259, 260, 266,
- 279, 286, 293, 300, 301, 309, 317, 329,
- 330, 232, 240, 241, 255, 256, 259, 260,
- 266, 279, 286, 293, 300, 301, 309, 317,
- 332, 232, 240, 241, 255, 256, 259, 260,
- 266, 279, 286, 293, 300, 301, 333, 317,
- 334, 335, 336, 337, 338, 309, 232, 240,
- 241, 255, 256, 259, 260, 266, 279, 286,
- 293, 300, 301, 309, 340, 317, 341, 342,
- 344, 256, 346, 347, 349, 350, 240, 256,
- 286, 232, 240, 241, 255, 256, 259, 260,
- 352, 279, 286, 293, 300, 301, 309, 317,
- 353, 266, 355, 356, 358, 359, 232, 240,
- 241, 255, 256, 259, 260, 266, 279, 286,
- 293, 300, 301, 309, 317, 361, 362, 364,
- 365, 366, 232, 240, 241, 255, 256, 259,
- 260, 266, 279, 286, 293, 300, 301, 309,
- 317, 369, 370, 371, 372, 373, 374, 375,
- 232, 240, 241, 255, 256, 259, 260, 266,
- 279, 286, 293, 300, 301, 309, 317, 232,
- 377, 5, 379, 380, 382, 383, 23, 386,
- 40, 45, 392, 393, 55, 95, 232, 377,
- 5, 379, 380, 382, 383, 23, 386, 40,
- 45, 392, 393, 55, 397, 232, 377, 5,
- 379, 380, 382, 383, 23, 386, 40, 45,
- 392, 393, 55, 87, 89, 397, 232, 377,
- 18, 379, 380, 382, 383, 23, 386, 40,
- 45, 392, 393, 55, 397, 80, 232, 377,
- 5, 379, 380, 382, 383, 23, 386, 40,
- 45, 392, 393, 55, 397, 232, 377, 5,
- 379, 380, 382, 383, 85, 23, 386, 40,
- 45, 392, 393, 55, 397, 232, 19, 5,
- 379, 82, 382, 383, 23, 386, 409, 45,
- 392, 393, 55, 397, 232, 377, 5, 379,
- 380, 382, 383, 23, 386, 40, 45, 392,
- 393, 55, 397, 232, 377, 5, 379, 380,
- 382, 383, 23, 386, 40, 45, 392, 393,
- 55, 397, 232, 377, 5, 379, 35, 382,
- 383, 23, 386, 40, 45, 392, 393, 55,
- 397, 380, 232, 377, 5, 379, 380, 382,
- 383, 42, 23, 386, 40, 45, 392, 393,
- 55, 397, 232, 377, 5, 379, 380, 382,
- 383, 47, 386, 40, 45, 392, 393, 55,
- 397, 23, 5, 232, 377, 5, 379, 50,
- 382, 383, 23, 386, 40, 45, 392, 393,
- 55, 79, 397, 232, 377, 5, 379, 380,
- 382, 383, 51, 23, 386, 40, 45, 392,
- 393, 55, 397, 232, 377, 5, 379, 380,
- 382, 383, 23, 386, 40, 45, 392, 393,
- 55, 397, 232, 377, 5, 379, 380, 382,
- 383, 62, 23, 386, 40, 45, 392, 393,
- 55, 397, 232, 377, 5, 379, 380, 382,
- 383, 23, 386, 40, 45, 392, 393, 55,
- 397, 232, 377, 5, 379, 380, 382, 383,
- 23, 386, 40, 45, 392, 393, 55, 397,
- 232, 377, 5, 379, 380, 382, 383, 23,
- 386, 40, 45, 392, 393, 55, 397, 232,
- 377, 5, 379, 380, 382, 383, 23, 386,
- 40, 45, 392, 393, 72, 397, 55, 232,
- 377, 5, 379, 380, 382, 383, 23, 386,
- 40, 45, 392, 393, 55, 77, 397, 380,
- 377, 380, 40, 232, 377, 5, 379, 380,
- 382, 383, 84, 386, 40, 45, 392, 393,
- 55, 397, 23, 232, 377, 5, 379, 380,
- 382, 383, 23, 386, 40, 45, 392, 393,
- 55, 397, 232, 377, 5, 379, 380, 382,
- 383, 23, 386, 40, 45, 392, 393, 55,
- 397, 98, 232, 377, 5, 379, 380, 382,
- 383, 23, 386, 40, 45, 392, 393, 55,
- 397, 232, 418, 419, 507, 103, 121, 123,
- 126, 131, 135, 138, 143, 146, 153, 156,
- 163, 167, 169, 170, 453, 652, 454, 232,
- 418, 419, 103, 453, 454, 232, 419, 103,
- 453, 454, 232, 421, 422, 423, 447, 449,
- 113, 232, 421, 422, 232, 422, 424, 430,
- 436, 232, 422, 424, 425, 430, 436, 426,
- 427, 428, 429, 431, 432, 433, 434, 435,
- 437, 442, 443, 438, 439, 440, 441, 232,
- 422, 424, 430, 436, 232, 422, 444, 430,
- 436, 445, 446, 424, 232, 422, 447, 104,
- 449, 113, 108, 232, 422, 447, 449, 113,
- 232, 422, 119, 449, 113, 447, 232, 103,
- 453, 454, 420, 455, 232, 423, 456, 458,
- 460, 484, 490, 496, 232, 457, 456, 458,
- 459, 423, 458, 423, 460, 461, 467, 473,
- 232, 458, 461, 462, 467, 473, 463, 464,
- 465, 466, 468, 469, 470, 471, 472, 474,
- 479, 480, 475, 476, 477, 478, 232, 458,
- 461, 467, 473, 232, 458, 481, 467, 473,
- 482, 483, 461, 232, 458, 484, 485, 490,
- 496, 486, 487, 488, 489, 491, 492, 493,
- 494, 495, 497, 502, 503, 498, 499, 500,
- 501, 232, 458, 484, 490, 496, 232, 458,
- 504, 490, 496, 505, 506, 484, 508, 511,
- 515, 521, 526, 530, 536, 540, 548, 552,
- 560, 565, 568, 570, 509, 510, 232, 419,
- 103, 508, 511, 515, 521, 526, 530, 536,
- 540, 548, 552, 560, 565, 568, 570, 453,
- 454, 512, 513, 514, 232, 419, 103, 508,
- 511, 515, 521, 526, 530, 536, 540, 548,
- 552, 560, 565, 568, 570, 453, 454, 516,
- 641, 517, 518, 519, 520, 640, 232, 419,
- 103, 508, 511, 515, 521, 526, 530, 536,
- 540, 548, 552, 560, 565, 568, 570, 453,
- 454, 522, 635, 523, 524, 525, 232, 419,
- 103, 508, 511, 515, 521, 526, 530, 536,
- 540, 548, 552, 560, 565, 568, 570, 453,
- 454, 527, 528, 529, 232, 419, 103, 508,
- 511, 515, 521, 526, 530, 536, 540, 548,
- 552, 560, 565, 568, 570, 453, 454, 531,
- 532, 533, 534, 535, 232, 419, 103, 508,
- 511, 515, 521, 526, 530, 536, 540, 548,
- 552, 560, 565, 568, 570, 453, 454, 537,
- 632, 538, 539, 631, 232, 419, 103, 508,
- 511, 515, 521, 526, 530, 536, 540, 548,
- 552, 560, 565, 568, 570, 453, 454, 541,
- 542, 543, 544, 545, 546, 627, 547, 232,
- 419, 103, 508, 511, 515, 521, 526, 530,
- 536, 540, 548, 552, 560, 565, 568, 570,
- 453, 454, 549, 550, 551, 232, 419, 103,
- 508, 511, 515, 521, 526, 530, 536, 540,
- 548, 552, 560, 565, 568, 570, 453, 454,
- 553, 611, 558, 554, 604, 606, 555, 556,
- 557, 559, 232, 419, 103, 508, 511, 515,
- 521, 526, 530, 536, 540, 548, 552, 560,
- 565, 568, 570, 453, 454, 561, 562, 563,
- 564, 232, 419, 103, 508, 511, 515, 521,
- 526, 530, 536, 540, 548, 552, 560, 565,
- 568, 570, 453, 454, 566, 572, 586, 589,
- 567, 232, 419, 103, 508, 511, 515, 521,
- 526, 530, 536, 540, 548, 552, 560, 565,
- 568, 570, 453, 454, 569, 232, 419, 103,
- 508, 511, 515, 521, 526, 530, 536, 540,
- 548, 552, 560, 565, 568, 570, 453, 454,
- 571, 232, 419, 103, 508, 511, 515, 521,
- 526, 530, 536, 540, 548, 552, 560, 565,
- 568, 570, 453, 454, 573, 574, 582, 232,
- 419, 103, 508, 511, 515, 521, 526, 530,
- 536, 540, 548, 552, 560, 565, 568, 570,
- 453, 454, 575, 576, 577, 578, 579, 580,
- 581, 232, 419, 103, 508, 511, 515, 521,
- 526, 530, 536, 540, 548, 552, 560, 565,
- 568, 570, 453, 454, 583, 584, 585, 232,
- 419, 103, 508, 511, 515, 521, 526, 530,
- 536, 540, 548, 552, 560, 565, 568, 570,
- 453, 454, 587, 588, 232, 419, 103, 508,
- 511, 515, 521, 526, 530, 536, 540, 548,
- 552, 560, 565, 568, 570, 453, 454, 590,
- 591, 592, 593, 595, 601, 594, 232, 419,
- 103, 508, 511, 515, 521, 526, 530, 536,
- 540, 548, 552, 560, 565, 568, 570, 453,
- 454, 596, 599, 597, 598, 232, 419, 103,
- 508, 511, 515, 521, 526, 530, 536, 540,
- 548, 552, 560, 565, 568, 570, 453, 454,
- 600, 232, 419, 103, 508, 511, 515, 521,
- 526, 530, 536, 540, 548, 552, 560, 565,
- 568, 570, 453, 454, 602, 603, 232, 419,
- 103, 508, 511, 515, 521, 526, 530, 536,
- 540, 548, 552, 560, 565, 568, 570, 453,
- 454, 605, 232, 419, 103, 508, 511, 515,
- 521, 526, 530, 536, 540, 548, 552, 560,
- 565, 568, 570, 453, 454, 232, 419, 103,
- 508, 511, 515, 521, 526, 530, 536, 607,
- 548, 552, 560, 565, 568, 570, 453, 454,
- 608, 609, 610, 540, 612, 613, 614, 615,
- 616, 618, 622, 617, 232, 419, 103, 508,
- 511, 515, 521, 526, 530, 536, 540, 548,
- 552, 560, 565, 568, 570, 453, 454, 619,
- 620, 621, 232, 419, 103, 508, 511, 515,
- 521, 526, 530, 536, 540, 548, 552, 560,
- 565, 568, 570, 453, 454, 623, 624, 625,
- 626, 232, 419, 103, 508, 511, 515, 521,
- 526, 530, 536, 540, 548, 552, 560, 565,
- 568, 570, 453, 454, 628, 629, 630, 232,
- 419, 103, 508, 511, 515, 521, 526, 530,
- 536, 540, 548, 552, 560, 565, 568, 570,
- 453, 454, 232, 419, 103, 508, 511, 515,
- 521, 526, 530, 536, 540, 548, 552, 560,
- 565, 568, 570, 453, 454, 633, 634, 232,
- 419, 103, 508, 511, 515, 521, 526, 530,
- 536, 540, 548, 552, 560, 565, 568, 570,
- 453, 454, 636, 637, 638, 639, 232, 419,
- 103, 508, 511, 515, 521, 526, 530, 536,
- 540, 548, 552, 560, 565, 568, 570, 453,
- 454, 642, 645, 643, 644, 232, 419, 103,
- 508, 511, 515, 521, 526, 530, 536, 540,
- 548, 552, 560, 565, 568, 570, 453, 454,
- 646, 647, 648, 649, 650, 651, 232, 419,
- 103, 508, 511, 515, 521, 526, 530, 536,
- 540, 548, 552, 560, 565, 568, 570, 453,
- 454, 687, 689, 692, 706, 715, 718, 723,
- 728, 738, 741, 766, 770, 796, 797, 232,
- 419, 103, 121, 123, 126, 131, 135, 138,
- 143, 146, 153, 156, 163, 167, 169, 170,
- 453, 454, 232, 419, 103, 121, 123, 126,
- 131, 135, 138, 143, 146, 153, 156, 163,
- 167, 169, 170, 453, 454, 232, 419, 103,
- 121, 123, 126, 131, 135, 138, 143, 146,
- 153, 156, 163, 167, 169, 170, 453, 454,
- 232, 419, 103, 121, 123, 126, 131, 135,
- 138, 143, 146, 153, 156, 163, 167, 169,
- 170, 453, 454, 232, 419, 103, 121, 123,
- 126, 131, 135, 138, 143, 146, 153, 156,
- 163, 167, 169, 170, 453, 454, 232, 419,
- 103, 121, 123, 126, 131, 135, 138, 143,
- 146, 153, 156, 163, 167, 169, 170, 453,
- 454, 232, 419, 103, 121, 123, 126, 131,
- 135, 138, 143, 146, 153, 156, 163, 167,
- 169, 170, 453, 454, 232, 419, 103, 121,
- 123, 126, 131, 135, 138, 143, 146, 153,
- 156, 163, 167, 169, 170, 453, 454, 232,
- 419, 103, 121, 123, 126, 131, 135, 138,
- 143, 146, 153, 156, 163, 167, 169, 170,
- 453, 454, 232, 419, 103, 121, 123, 126,
- 131, 135, 138, 143, 146, 153, 156, 163,
- 167, 169, 170, 453, 454, 232, 419, 103,
- 121, 123, 126, 131, 135, 138, 143, 146,
- 153, 156, 163, 167, 169, 170, 453, 454,
- 232, 419, 103, 121, 123, 126, 131, 135,
- 138, 143, 146, 153, 156, 163, 167, 169,
- 170, 453, 454, 232, 419, 103, 121, 123,
- 126, 131, 135, 138, 143, 146, 153, 156,
- 163, 167, 169, 170, 453, 454, 232, 419,
- 103, 121, 123, 126, 131, 135, 138, 143,
- 146, 153, 156, 163, 167, 169, 170, 453,
- 454, 232, 419, 103, 121, 123, 126, 131,
- 135, 138, 143, 146, 153, 156, 163, 167,
- 169, 170, 453, 454, 232, 419, 103, 121,
- 123, 126, 131, 135, 138, 143, 146, 153,
- 156, 163, 167, 169, 170, 453, 454, 232,
- 419, 103, 121, 123, 126, 131, 135, 138,
- 143, 146, 153, 156, 163, 167, 169, 170,
- 453, 454, 232, 419, 103, 121, 123, 126,
- 131, 135, 138, 143, 146, 153, 156, 163,
- 167, 169, 170, 453, 454, 232, 419, 103,
- 121, 123, 126, 131, 135, 138, 143, 146,
- 153, 156, 163, 167, 169, 170, 453, 454,
- 232, 419, 103, 121, 123, 126, 131, 135,
- 138, 143, 146, 153, 156, 163, 167, 169,
- 170, 453, 454, 232, 419, 103, 121, 123,
- 126, 131, 135, 138, 143, 146, 153, 156,
- 163, 167, 169, 170, 453, 454, 232, 419,
- 103, 121, 123, 126, 131, 135, 138, 143,
- 146, 153, 156, 163, 167, 169, 170, 453,
- 454, 232, 419, 103, 121, 123, 126, 131,
- 135, 138, 143, 146, 153, 156, 163, 167,
- 169, 170, 453, 454, 232, 419, 103, 121,
- 123, 126, 131, 135, 138, 143, 196, 153,
- 156, 163, 167, 169, 170, 453, 454, 146,
- 232, 419, 103, 121, 123, 126, 131, 135,
- 138, 143, 146, 153, 156, 163, 167, 169,
- 170, 453, 454, 232, 419, 103, 121, 123,
- 126, 131, 135, 138, 143, 146, 153, 156,
- 163, 167, 169, 170, 453, 454, 232, 419,
- 103, 121, 123, 126, 131, 135, 138, 143,
- 146, 153, 156, 163, 167, 169, 170, 453,
- 454, 232, 419, 103, 121, 123, 126, 131,
- 135, 138, 143, 146, 153, 156, 163, 167,
- 169, 170, 453, 454, 232, 419, 103, 121,
- 123, 126, 131, 135, 138, 143, 146, 153,
- 156, 163, 167, 169, 170, 453, 454, 232,
- 419, 103, 121, 123, 126, 131, 135, 138,
- 143, 146, 153, 156, 163, 167, 169, 170,
- 453, 454, 232, 419, 103, 121, 123, 126,
- 131, 135, 138, 143, 146, 153, 156, 163,
- 167, 169, 170, 453, 454, 232, 419, 103,
- 121, 123, 126, 131, 135, 138, 143, 146,
- 153, 156, 163, 167, 169, 170, 453, 454,
- 232, 419, 103, 121, 123, 126, 131, 135,
- 138, 143, 146, 153, 156, 163, 167, 169,
- 170, 453, 454, 688, 690, 691, 693, 697,
- 694, 695, 696, 698, 700, 699, 701, 702,
- 703, 704, 705, 707, 710, 708, 709, 711,
- 712, 713, 714, 716, 717, 719, 720, 721,
- 722, 724, 726, 725, 727, 729, 730, 731,
- 732, 733, 734, 735, 736, 737, 739, 740,
- 742, 753, 747, 743, 748, 749, 744, 745,
- 746, 750, 751, 752, 754, 755, 756, 757,
- 758, 759, 762, 760, 761, 763, 764, 765,
- 767, 768, 769, 771, 772, 783, 785, 773,
- 780, 774, 775, 776, 777, 778, 779, 781,
- 782, 784, 786, 787, 788, 789, 790, 794,
- 791, 793, 792, 795, 232, 799, 232, 800,
- 232, 232, 800
-};
+ static const short _demo_machine_parser_cmd_trans_actions[] = {
+ 0, 0, 472, 164, 164, 5, 0, 135,
+ 139, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 135,
+ 135, 0, 0, 0, 135, 0, 135, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 135, 0, 135,
+ 0, 0, 135, 0, 135, 0, 0, 135,
+ 135, 135, 0, 0, 0, 135, 0, 0,
+ 0, 135, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 135, 0, 0, 135, 135,
+ 0, 135, 135, 0, 0, 0, 0, 135,
+ 0, 135, 135, 0, 135, 0, 135, 135,
+ 0, 135, 0, 135, 0, 135, 0, 0,
+ 135, 0, 0, 135, 0, 0, 0, 135,
+ 135, 141, 135, 0, 0, 0, 135, 0,
+ 0, 0, 0, 0, 135, 135, 0, 0,
+ 0, 0, 0, 135, 0, 135, 0, 0,
+ 135, 0, 0, 0, 0, 0, 135, 135,
+ 0, 0, 0, 0, 135, 0, 0, 135,
+ 0, 0, 0, 0, 135, 0, 0, 0,
+ 135, 135, 0, 0, 0, 0, 0, 0,
+ 0, 135, 0, 0, 135, 0, 0, 0,
+ 0, 0, 135, 0, 0, 0, 135, 0,
+ 0, 0, 135, 0, 0, 0, 0, 135,
+ 135, 135, 135, 0, 0, 0, 0, 0,
+ 0, 0, 0, 135, 0, 0, 135, 0,
+ 135, 0, 0, 0, 0, 0, 0, 135,
+ 0, 0, 0, 135, 135, 0, 135, 135,
+ 0, 0, 135, 0, 0, 0, 0, 0,
+ 0, 0, 135, 0, 0, 135, 0, 0,
+ 0, 135, 0, 0, 135, 0, 135, 0,
+ 0, 0, 0, 0, 0, 0, 135, 0,
+ 0, 0, 0, 0, 135, 0, 137, 0,
+ 0, 0, 0, 0, 460, 1, 167, 0,
+ 1025, 0, 1, 476, 0, 464, 1, 1,
+ 135, 0, 135, 135, 135, 135, 0, 135,
+ 0, 0, 135, 135, 0, 135, 170, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 488, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 496, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 508, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 0, 0, 19, 516, 23, 0,
+ 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 0, 0, 512, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 520, 25, 25,
+ 25, 25, 25, 25, 0, 25, 25, 25,
+ 25, 25, 25, 25, 25, 528, 0, 29,
+ 29, 0, 29, 29, 29, 29, 0, 29,
+ 29, 29, 29, 0, 29, 0, 0, 0,
+ 524, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 536, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 540, 35, 35, 35, 0, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 0, 0, 0, 0, 0, 35, 0,
+ 0, 544, 37, 37, 37, 37, 37, 37,
+ 0, 37, 37, 37, 37, 37, 37, 37,
+ 37, 0, 0, 0, 0, 0, 548, 39,
+ 39, 39, 39, 39, 39, 0, 39, 39,
+ 39, 39, 39, 39, 39, 0, 0, 0,
+ 39, 23, 560, 45, 45, 45, 0, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45,
+ 0, 45, 0, 0, 552, 41, 41, 41,
+ 41, 41, 41, 0, 41, 41, 41, 41,
+ 41, 41, 41, 41, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 564, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 584, 57, 57, 57, 57, 57,
+ 57, 0, 57, 57, 57, 57, 57, 57,
+ 57, 57, 0, 0, 0, 0, 0, 0,
+ 568, 49, 49, 49, 49, 49, 49, 49,
+ 49, 49, 49, 49, 49, 49, 49, 0,
+ 572, 51, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 0,
+ 0, 576, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53,
+ 0, 580, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 0, 55,
+ 0, 0, 0, 0, 0, 55, 556, 43,
+ 43, 43, 43, 43, 43, 43, 43, 43,
+ 43, 43, 43, 43, 0, 43, 0, 0,
+ 0, 45, 0, 0, 0, 0, 29, 29,
+ 29, 532, 31, 31, 31, 31, 31, 31,
+ 0, 31, 31, 31, 31, 31, 31, 31,
+ 0, 31, 0, 0, 0, 0, 504, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 0, 0, 0,
+ 0, 0, 500, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 0, 0, 0, 0, 0, 0, 0,
+ 492, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 173,
+ 269, 9, 269, 269, 269, 269, 9, 269,
+ 9, 9, 269, 269, 9, 0, 179, 275,
+ 13, 275, 275, 275, 275, 13, 275, 13,
+ 13, 275, 275, 13, 275, 188, 284, 19,
+ 284, 284, 284, 284, 19, 284, 19, 19,
+ 284, 284, 19, 0, 0, 284, 194, 290,
+ 0, 290, 290, 290, 290, 23, 290, 23,
+ 23, 290, 290, 23, 290, 0, 191, 287,
+ 21, 287, 287, 287, 287, 21, 287, 21,
+ 21, 287, 287, 21, 287, 197, 293, 25,
+ 293, 293, 293, 293, 0, 25, 293, 25,
+ 25, 293, 293, 25, 293, 203, 0, 29,
+ 299, 0, 299, 299, 29, 299, 135, 29,
+ 299, 299, 29, 299, 200, 296, 27, 296,
+ 296, 296, 296, 27, 296, 27, 27, 296,
+ 296, 27, 296, 209, 305, 33, 305, 305,
+ 305, 305, 33, 305, 33, 33, 305, 305,
+ 33, 305, 212, 308, 35, 308, 0, 308,
+ 308, 35, 308, 35, 35, 308, 308, 35,
+ 308, 308, 215, 311, 37, 311, 311, 311,
+ 311, 0, 37, 311, 37, 37, 311, 311,
+ 37, 311, 218, 314, 39, 314, 314, 314,
+ 314, 0, 314, 39, 39, 314, 314, 39,
+ 314, 39, 23, 227, 323, 45, 323, 0,
+ 323, 323, 45, 323, 45, 45, 323, 323,
+ 45, 0, 323, 221, 317, 41, 317, 317,
+ 317, 317, 0, 41, 317, 41, 41, 317,
+ 317, 41, 317, 230, 326, 47, 326, 326,
+ 326, 326, 47, 326, 47, 47, 326, 326,
+ 47, 326, 245, 341, 57, 341, 341, 341,
+ 341, 0, 57, 341, 57, 57, 341, 341,
+ 57, 341, 233, 329, 49, 329, 329, 329,
+ 329, 49, 329, 49, 49, 329, 329, 49,
+ 329, 236, 332, 51, 332, 332, 332, 332,
+ 51, 332, 51, 51, 332, 332, 51, 332,
+ 239, 335, 53, 335, 335, 335, 335, 53,
+ 335, 53, 53, 335, 335, 53, 335, 242,
+ 338, 55, 338, 338, 338, 338, 55, 338,
+ 55, 55, 338, 338, 0, 338, 55, 224,
+ 320, 43, 320, 320, 320, 320, 43, 320,
+ 43, 43, 320, 320, 43, 0, 320, 323,
+ 299, 299, 29, 206, 302, 31, 302, 302,
+ 302, 302, 0, 302, 31, 31, 302, 302,
+ 31, 302, 31, 185, 281, 17, 281, 281,
+ 281, 281, 17, 281, 17, 17, 281, 281,
+ 17, 281, 182, 278, 15, 278, 278, 278,
+ 278, 15, 278, 15, 15, 278, 278, 15,
+ 278, 0, 176, 272, 11, 272, 272, 272,
+ 272, 11, 272, 11, 11, 272, 272, 11,
+ 272, 1638, 736, 1240, 736, 1035, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 149,
+ 149, 149, 149, 149, 1240, 1240, 1035, 1434,
+ 135, 263, 480, 740, 480, 1020, 135, 143,
+ 257, 143, 1030, 1, 146, 1, 135, 135,
+ 0, 484, 0, 7, 152, 0, 0, 0,
+ 0, 1235, 254, 129, 0, 129, 129, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1230,
+ 251, 127, 127, 127, 1225, 248, 0, 125,
+ 125, 0, 0, 125, 728, 129, 449, 0,
+ 449, 129, 0, 724, 127, 446, 446, 127,
+ 720, 125, 0, 443, 125, 443, 468, 3,
+ 135, 3, 260, 260, 1410, 155, 1, 732,
+ 155, 135, 135, 135, 1040, 3, 0, 266,
+ 3, 0, 135, 3, 3, 0, 0, 0,
+ 1428, 1016, 129, 0, 129, 129, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1422, 1012,
+ 127, 127, 127, 1416, 1008, 0, 125, 125,
+ 0, 0, 125, 1055, 449, 449, 135, 449,
+ 449, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 1050, 446, 446, 446, 446, 1045, 443,
+ 135, 443, 443, 135, 135, 443, 736, 736,
+ 736, 736, 736, 736, 736, 736, 736, 736,
+ 736, 736, 736, 736, 135, 135, 1645, 748,
+ 1060, 344, 344, 344, 344, 344, 344, 344,
+ 344, 344, 344, 344, 344, 344, 344, 1245,
+ 1060, 135, 135, 135, 1652, 756, 1065, 347,
+ 347, 347, 347, 347, 347, 347, 347, 347,
+ 347, 347, 347, 347, 347, 1250, 1065, 135,
+ 135, 135, 135, 135, 135, 135, 1659, 764,
+ 1070, 350, 350, 350, 350, 350, 350, 350,
+ 350, 350, 350, 350, 350, 350, 350, 1255,
+ 1070, 135, 135, 135, 135, 135, 1687, 796,
+ 1090, 362, 362, 362, 362, 362, 362, 362,
+ 362, 362, 362, 362, 362, 362, 362, 1275,
+ 1090, 135, 135, 135, 1701, 812, 1100, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 1285, 1100, 135,
+ 135, 135, 135, 135, 1708, 820, 1105, 371,
+ 371, 371, 371, 371, 371, 371, 371, 371,
+ 371, 371, 371, 371, 371, 1290, 1105, 135,
+ 135, 135, 135, 135, 1715, 828, 1110, 374,
+ 374, 374, 374, 374, 374, 374, 374, 374,
+ 374, 374, 374, 374, 374, 1295, 1110, 135,
+ 135, 135, 135, 135, 135, 135, 135, 1736,
+ 852, 1125, 383, 383, 383, 383, 383, 383,
+ 383, 383, 383, 383, 383, 383, 383, 383,
+ 1310, 1125, 135, 135, 135, 1750, 868, 1135,
+ 389, 389, 389, 389, 389, 389, 389, 389,
+ 389, 389, 389, 389, 389, 389, 1320, 1135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 1757, 876, 1140, 392, 392, 392,
+ 392, 392, 392, 392, 392, 392, 392, 392,
+ 392, 392, 392, 1325, 1140, 135, 135, 135,
+ 135, 1799, 924, 1170, 410, 410, 410, 410,
+ 410, 410, 410, 410, 410, 410, 410, 410,
+ 410, 410, 1355, 1170, 135, 135, 135, 135,
+ 135, 1806, 932, 1175, 413, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 1360, 1175, 135, 1869, 1004, 1220,
+ 440, 440, 440, 440, 440, 440, 440, 440,
+ 440, 440, 440, 440, 440, 440, 1405, 1220,
+ 135, 1694, 804, 1095, 365, 365, 365, 365,
+ 365, 365, 365, 365, 365, 365, 365, 365,
+ 365, 365, 1280, 1095, 135, 135, 135, 1813,
+ 940, 1180, 416, 416, 416, 416, 416, 416,
+ 416, 416, 416, 416, 416, 416, 416, 416,
+ 1365, 1180, 135, 135, 135, 135, 135, 135,
+ 135, 1820, 948, 1185, 419, 419, 419, 419,
+ 419, 419, 419, 419, 419, 419, 419, 419,
+ 419, 419, 1370, 1185, 135, 135, 135, 1827,
+ 956, 1190, 422, 422, 422, 422, 422, 422,
+ 422, 422, 422, 422, 422, 422, 422, 422,
+ 1375, 1190, 135, 135, 1834, 964, 1195, 425,
+ 425, 425, 425, 425, 425, 425, 425, 425,
+ 425, 425, 425, 425, 425, 1380, 1195, 135,
+ 135, 135, 135, 135, 135, 135, 1841, 972,
+ 1200, 428, 428, 428, 428, 428, 428, 428,
+ 428, 428, 428, 428, 428, 428, 428, 1385,
+ 1200, 135, 135, 135, 135, 1855, 988, 1210,
+ 434, 434, 434, 434, 434, 434, 434, 434,
+ 434, 434, 434, 434, 434, 434, 1395, 1210,
+ 135, 1848, 980, 1205, 431, 431, 431, 431,
+ 431, 431, 431, 431, 431, 431, 431, 431,
+ 431, 431, 1390, 1205, 135, 135, 1862, 996,
+ 1215, 437, 437, 437, 437, 437, 437, 437,
+ 437, 437, 437, 437, 437, 437, 437, 1400,
+ 1215, 135, 1764, 884, 1145, 395, 395, 395,
+ 395, 395, 395, 395, 395, 395, 395, 395,
+ 395, 395, 395, 1330, 1145, 1771, 892, 1150,
+ 398, 398, 398, 398, 398, 398, 398, 135,
+ 398, 398, 398, 398, 398, 398, 1335, 1150,
+ 135, 135, 135, 398, 135, 135, 135, 135,
+ 135, 135, 135, 135, 1778, 900, 1155, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 1340, 1155, 135,
+ 135, 135, 1785, 908, 1160, 404, 404, 404,
+ 404, 404, 404, 404, 404, 404, 404, 404,
+ 404, 404, 404, 1345, 1160, 135, 135, 135,
+ 135, 1792, 916, 1165, 407, 407, 407, 407,
+ 407, 407, 407, 407, 407, 407, 407, 407,
+ 407, 407, 1350, 1165, 135, 135, 135, 1743,
+ 860, 1130, 386, 386, 386, 386, 386, 386,
+ 386, 386, 386, 386, 386, 386, 386, 386,
+ 1315, 1130, 1722, 836, 1115, 377, 377, 377,
+ 377, 377, 377, 377, 377, 377, 377, 377,
+ 377, 377, 377, 1300, 1115, 135, 135, 1729,
+ 844, 1120, 380, 380, 380, 380, 380, 380,
+ 380, 380, 380, 380, 380, 380, 380, 380,
+ 1305, 1120, 135, 135, 135, 135, 1666, 772,
+ 1075, 353, 353, 353, 353, 353, 353, 353,
+ 353, 353, 353, 353, 353, 353, 353, 1260,
+ 1075, 135, 135, 135, 135, 1673, 780, 1080,
+ 356, 356, 356, 356, 356, 356, 356, 356,
+ 356, 356, 356, 356, 356, 356, 1265, 1080,
+ 135, 135, 135, 135, 135, 135, 1680, 788,
+ 1085, 359, 359, 359, 359, 359, 359, 359,
+ 359, 359, 359, 359, 359, 359, 359, 1270,
+ 1085, 736, 736, 736, 736, 736, 736, 736,
+ 736, 736, 736, 736, 736, 736, 736, 1440,
+ 344, 588, 59, 59, 59, 59, 59, 59,
+ 59, 59, 59, 59, 59, 59, 59, 59,
+ 744, 588, 1446, 347, 592, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 752, 592, 1452, 350, 596,
+ 63, 63, 63, 63, 63, 63, 63, 63,
+ 63, 63, 63, 63, 63, 63, 760, 596,
+ 1476, 362, 612, 71, 71, 71, 71, 71,
+ 71, 71, 71, 71, 71, 71, 71, 71,
+ 71, 792, 612, 1488, 368, 620, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 808, 620, 1494, 371,
+ 624, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 816,
+ 624, 1500, 374, 628, 79, 79, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79,
+ 79, 79, 824, 628, 1518, 383, 640, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 848, 640, 1530,
+ 389, 648, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89,
+ 864, 648, 1536, 392, 652, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 872, 652, 1572, 410, 676,
+ 103, 103, 103, 103, 103, 103, 103, 103,
+ 103, 103, 103, 103, 103, 103, 920, 676,
+ 1578, 413, 680, 105, 105, 105, 105, 105,
+ 105, 105, 105, 105, 105, 105, 105, 105,
+ 105, 928, 680, 1632, 440, 716, 123, 123,
+ 123, 123, 123, 123, 123, 123, 123, 123,
+ 123, 123, 123, 123, 1000, 716, 1482, 365,
+ 616, 73, 73, 73, 73, 73, 73, 73,
+ 73, 73, 73, 73, 73, 73, 73, 800,
+ 616, 1584, 416, 684, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 936, 684, 1590, 419, 688, 109,
+ 109, 109, 109, 109, 109, 109, 109, 109,
+ 109, 109, 109, 109, 109, 944, 688, 1596,
+ 422, 692, 111, 111, 111, 111, 111, 111,
+ 111, 111, 111, 111, 111, 111, 111, 111,
+ 952, 692, 1602, 425, 696, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 960, 696, 1608, 428, 700,
+ 115, 115, 115, 115, 115, 115, 115, 115,
+ 115, 115, 115, 115, 115, 115, 968, 700,
+ 1620, 434, 708, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 984, 708, 1614, 431, 704, 117, 117,
+ 117, 117, 117, 117, 117, 117, 117, 117,
+ 117, 117, 117, 117, 976, 704, 1626, 437,
+ 712, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 992,
+ 712, 1542, 395, 656, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 880, 656, 1548, 398, 660, 95,
+ 95, 95, 95, 95, 95, 95, 0, 95,
+ 95, 95, 95, 95, 95, 888, 660, 95,
+ 1554, 401, 664, 97, 97, 97, 97, 97,
+ 97, 97, 97, 97, 97, 97, 97, 97,
+ 97, 896, 664, 1560, 404, 668, 99, 99,
+ 99, 99, 99, 99, 99, 99, 99, 99,
+ 99, 99, 99, 99, 904, 668, 1566, 407,
+ 672, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 912,
+ 672, 1524, 386, 644, 87, 87, 87, 87,
+ 87, 87, 87, 87, 87, 87, 87, 87,
+ 87, 87, 856, 644, 1506, 377, 632, 81,
+ 81, 81, 81, 81, 81, 81, 81, 81,
+ 81, 81, 81, 81, 81, 832, 632, 1512,
+ 380, 636, 83, 83, 83, 83, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83,
+ 840, 636, 1458, 353, 600, 65, 65, 65,
+ 65, 65, 65, 65, 65, 65, 65, 65,
+ 65, 65, 65, 768, 600, 1464, 356, 604,
+ 67, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 776, 604,
+ 1470, 359, 608, 69, 69, 69, 69, 69,
+ 69, 69, 69, 69, 69, 69, 69, 69,
+ 69, 784, 608, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 135,
+ 135, 135, 135, 135, 456, 0, 452, 1,
+ 161, 158, 0
+ };
-static const short _demo_machine_parser_cmd_trans_actions[] = {
- 0, 0, 472, 164, 164, 5, 0, 135,
- 139, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 135,
- 135, 0, 0, 0, 135, 0, 135, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 135, 0, 135,
- 0, 0, 135, 0, 135, 0, 0, 135,
- 135, 135, 0, 0, 0, 135, 0, 0,
- 0, 135, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 135, 0, 0, 135, 135,
- 0, 135, 135, 0, 0, 0, 0, 135,
- 0, 135, 135, 0, 135, 0, 135, 135,
- 0, 135, 0, 135, 0, 135, 0, 0,
- 135, 0, 0, 135, 0, 0, 0, 135,
- 135, 141, 135, 0, 0, 0, 135, 0,
- 0, 0, 0, 0, 135, 135, 0, 0,
- 0, 0, 0, 135, 0, 135, 0, 0,
- 135, 0, 0, 0, 0, 0, 135, 135,
- 0, 0, 0, 0, 135, 0, 0, 135,
- 0, 0, 0, 0, 135, 0, 0, 0,
- 135, 135, 0, 0, 0, 0, 0, 0,
- 0, 135, 0, 0, 135, 0, 0, 0,
- 0, 0, 135, 0, 0, 0, 135, 0,
- 0, 0, 135, 0, 0, 0, 0, 135,
- 135, 135, 135, 0, 0, 0, 0, 0,
- 0, 0, 0, 135, 0, 0, 135, 0,
- 135, 0, 0, 0, 0, 0, 0, 135,
- 0, 0, 0, 135, 135, 0, 135, 135,
- 0, 0, 135, 0, 0, 0, 0, 0,
- 0, 0, 135, 0, 0, 135, 0, 0,
- 0, 135, 0, 0, 135, 0, 135, 0,
- 0, 0, 0, 0, 0, 0, 135, 0,
- 0, 0, 0, 0, 135, 0, 137, 0,
- 0, 0, 0, 0, 460, 1, 167, 0,
- 1025, 0, 1, 476, 0, 464, 1, 1,
- 135, 0, 135, 135, 135, 135, 0, 135,
- 0, 0, 135, 135, 0, 135, 170, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 488, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 496, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 508, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 0, 0, 19, 516, 23, 0,
- 23, 23, 23, 23, 23, 23, 23, 23,
- 23, 23, 23, 23, 0, 0, 512, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 520, 25, 25,
- 25, 25, 25, 25, 0, 25, 25, 25,
- 25, 25, 25, 25, 25, 528, 0, 29,
- 29, 0, 29, 29, 29, 29, 0, 29,
- 29, 29, 29, 0, 29, 0, 0, 0,
- 524, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 27, 27, 27, 27, 27, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 536, 33, 33, 33, 33,
- 33, 33, 33, 33, 33, 33, 33, 33,
- 33, 33, 540, 35, 35, 35, 0, 35,
- 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 0, 0, 0, 0, 0, 35, 0,
- 0, 544, 37, 37, 37, 37, 37, 37,
- 0, 37, 37, 37, 37, 37, 37, 37,
- 37, 0, 0, 0, 0, 0, 548, 39,
- 39, 39, 39, 39, 39, 0, 39, 39,
- 39, 39, 39, 39, 39, 0, 0, 0,
- 39, 23, 560, 45, 45, 45, 0, 45,
- 45, 45, 45, 45, 45, 45, 45, 45,
- 0, 45, 0, 0, 552, 41, 41, 41,
- 41, 41, 41, 0, 41, 41, 41, 41,
- 41, 41, 41, 41, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 564, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 584, 57, 57, 57, 57, 57,
- 57, 0, 57, 57, 57, 57, 57, 57,
- 57, 57, 0, 0, 0, 0, 0, 0,
- 568, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 0,
- 572, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 0,
- 0, 576, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53,
- 0, 580, 55, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 0, 55,
- 0, 0, 0, 0, 0, 55, 556, 43,
- 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 0, 43, 0, 0,
- 0, 45, 0, 0, 0, 0, 29, 29,
- 29, 532, 31, 31, 31, 31, 31, 31,
- 0, 31, 31, 31, 31, 31, 31, 31,
- 0, 31, 0, 0, 0, 0, 504, 17,
- 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 0, 0, 0,
- 0, 0, 500, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 0, 0, 0, 0, 0, 0, 0,
- 492, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 173,
- 269, 9, 269, 269, 269, 269, 9, 269,
- 9, 9, 269, 269, 9, 0, 179, 275,
- 13, 275, 275, 275, 275, 13, 275, 13,
- 13, 275, 275, 13, 275, 188, 284, 19,
- 284, 284, 284, 284, 19, 284, 19, 19,
- 284, 284, 19, 0, 0, 284, 194, 290,
- 0, 290, 290, 290, 290, 23, 290, 23,
- 23, 290, 290, 23, 290, 0, 191, 287,
- 21, 287, 287, 287, 287, 21, 287, 21,
- 21, 287, 287, 21, 287, 197, 293, 25,
- 293, 293, 293, 293, 0, 25, 293, 25,
- 25, 293, 293, 25, 293, 203, 0, 29,
- 299, 0, 299, 299, 29, 299, 135, 29,
- 299, 299, 29, 299, 200, 296, 27, 296,
- 296, 296, 296, 27, 296, 27, 27, 296,
- 296, 27, 296, 209, 305, 33, 305, 305,
- 305, 305, 33, 305, 33, 33, 305, 305,
- 33, 305, 212, 308, 35, 308, 0, 308,
- 308, 35, 308, 35, 35, 308, 308, 35,
- 308, 308, 215, 311, 37, 311, 311, 311,
- 311, 0, 37, 311, 37, 37, 311, 311,
- 37, 311, 218, 314, 39, 314, 314, 314,
- 314, 0, 314, 39, 39, 314, 314, 39,
- 314, 39, 23, 227, 323, 45, 323, 0,
- 323, 323, 45, 323, 45, 45, 323, 323,
- 45, 0, 323, 221, 317, 41, 317, 317,
- 317, 317, 0, 41, 317, 41, 41, 317,
- 317, 41, 317, 230, 326, 47, 326, 326,
- 326, 326, 47, 326, 47, 47, 326, 326,
- 47, 326, 245, 341, 57, 341, 341, 341,
- 341, 0, 57, 341, 57, 57, 341, 341,
- 57, 341, 233, 329, 49, 329, 329, 329,
- 329, 49, 329, 49, 49, 329, 329, 49,
- 329, 236, 332, 51, 332, 332, 332, 332,
- 51, 332, 51, 51, 332, 332, 51, 332,
- 239, 335, 53, 335, 335, 335, 335, 53,
- 335, 53, 53, 335, 335, 53, 335, 242,
- 338, 55, 338, 338, 338, 338, 55, 338,
- 55, 55, 338, 338, 0, 338, 55, 224,
- 320, 43, 320, 320, 320, 320, 43, 320,
- 43, 43, 320, 320, 43, 0, 320, 323,
- 299, 299, 29, 206, 302, 31, 302, 302,
- 302, 302, 0, 302, 31, 31, 302, 302,
- 31, 302, 31, 185, 281, 17, 281, 281,
- 281, 281, 17, 281, 17, 17, 281, 281,
- 17, 281, 182, 278, 15, 278, 278, 278,
- 278, 15, 278, 15, 15, 278, 278, 15,
- 278, 0, 176, 272, 11, 272, 272, 272,
- 272, 11, 272, 11, 11, 272, 272, 11,
- 272, 1638, 736, 1240, 736, 1035, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 1240, 1240, 1035, 1434,
- 135, 263, 480, 740, 480, 1020, 135, 143,
- 257, 143, 1030, 1, 146, 1, 135, 135,
- 0, 484, 0, 7, 152, 0, 0, 0,
- 0, 1235, 254, 129, 0, 129, 129, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1230,
- 251, 127, 127, 127, 1225, 248, 0, 125,
- 125, 0, 0, 125, 728, 129, 449, 0,
- 449, 129, 0, 724, 127, 446, 446, 127,
- 720, 125, 0, 443, 125, 443, 468, 3,
- 135, 3, 260, 260, 1410, 155, 1, 732,
- 155, 135, 135, 135, 1040, 3, 0, 266,
- 3, 0, 135, 3, 3, 0, 0, 0,
- 1428, 1016, 129, 0, 129, 129, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1422, 1012,
- 127, 127, 127, 1416, 1008, 0, 125, 125,
- 0, 0, 125, 1055, 449, 449, 135, 449,
- 449, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 1050, 446, 446, 446, 446, 1045, 443,
- 135, 443, 443, 135, 135, 443, 736, 736,
- 736, 736, 736, 736, 736, 736, 736, 736,
- 736, 736, 736, 736, 135, 135, 1645, 748,
- 1060, 344, 344, 344, 344, 344, 344, 344,
- 344, 344, 344, 344, 344, 344, 344, 1245,
- 1060, 135, 135, 135, 1652, 756, 1065, 347,
- 347, 347, 347, 347, 347, 347, 347, 347,
- 347, 347, 347, 347, 347, 1250, 1065, 135,
- 135, 135, 135, 135, 135, 135, 1659, 764,
- 1070, 350, 350, 350, 350, 350, 350, 350,
- 350, 350, 350, 350, 350, 350, 350, 1255,
- 1070, 135, 135, 135, 135, 135, 1687, 796,
- 1090, 362, 362, 362, 362, 362, 362, 362,
- 362, 362, 362, 362, 362, 362, 362, 1275,
- 1090, 135, 135, 135, 1701, 812, 1100, 368,
- 368, 368, 368, 368, 368, 368, 368, 368,
- 368, 368, 368, 368, 368, 1285, 1100, 135,
- 135, 135, 135, 135, 1708, 820, 1105, 371,
- 371, 371, 371, 371, 371, 371, 371, 371,
- 371, 371, 371, 371, 371, 1290, 1105, 135,
- 135, 135, 135, 135, 1715, 828, 1110, 374,
- 374, 374, 374, 374, 374, 374, 374, 374,
- 374, 374, 374, 374, 374, 1295, 1110, 135,
- 135, 135, 135, 135, 135, 135, 135, 1736,
- 852, 1125, 383, 383, 383, 383, 383, 383,
- 383, 383, 383, 383, 383, 383, 383, 383,
- 1310, 1125, 135, 135, 135, 1750, 868, 1135,
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 1320, 1135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 1757, 876, 1140, 392, 392, 392,
- 392, 392, 392, 392, 392, 392, 392, 392,
- 392, 392, 392, 1325, 1140, 135, 135, 135,
- 135, 1799, 924, 1170, 410, 410, 410, 410,
- 410, 410, 410, 410, 410, 410, 410, 410,
- 410, 410, 1355, 1170, 135, 135, 135, 135,
- 135, 1806, 932, 1175, 413, 413, 413, 413,
- 413, 413, 413, 413, 413, 413, 413, 413,
- 413, 413, 1360, 1175, 135, 1869, 1004, 1220,
- 440, 440, 440, 440, 440, 440, 440, 440,
- 440, 440, 440, 440, 440, 440, 1405, 1220,
- 135, 1694, 804, 1095, 365, 365, 365, 365,
- 365, 365, 365, 365, 365, 365, 365, 365,
- 365, 365, 1280, 1095, 135, 135, 135, 1813,
- 940, 1180, 416, 416, 416, 416, 416, 416,
- 416, 416, 416, 416, 416, 416, 416, 416,
- 1365, 1180, 135, 135, 135, 135, 135, 135,
- 135, 1820, 948, 1185, 419, 419, 419, 419,
- 419, 419, 419, 419, 419, 419, 419, 419,
- 419, 419, 1370, 1185, 135, 135, 135, 1827,
- 956, 1190, 422, 422, 422, 422, 422, 422,
- 422, 422, 422, 422, 422, 422, 422, 422,
- 1375, 1190, 135, 135, 1834, 964, 1195, 425,
- 425, 425, 425, 425, 425, 425, 425, 425,
- 425, 425, 425, 425, 425, 1380, 1195, 135,
- 135, 135, 135, 135, 135, 135, 1841, 972,
- 1200, 428, 428, 428, 428, 428, 428, 428,
- 428, 428, 428, 428, 428, 428, 428, 1385,
- 1200, 135, 135, 135, 135, 1855, 988, 1210,
- 434, 434, 434, 434, 434, 434, 434, 434,
- 434, 434, 434, 434, 434, 434, 1395, 1210,
- 135, 1848, 980, 1205, 431, 431, 431, 431,
- 431, 431, 431, 431, 431, 431, 431, 431,
- 431, 431, 1390, 1205, 135, 135, 1862, 996,
- 1215, 437, 437, 437, 437, 437, 437, 437,
- 437, 437, 437, 437, 437, 437, 437, 1400,
- 1215, 135, 1764, 884, 1145, 395, 395, 395,
- 395, 395, 395, 395, 395, 395, 395, 395,
- 395, 395, 395, 1330, 1145, 1771, 892, 1150,
- 398, 398, 398, 398, 398, 398, 398, 135,
- 398, 398, 398, 398, 398, 398, 1335, 1150,
- 135, 135, 135, 398, 135, 135, 135, 135,
- 135, 135, 135, 135, 1778, 900, 1155, 401,
- 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 1340, 1155, 135,
- 135, 135, 1785, 908, 1160, 404, 404, 404,
- 404, 404, 404, 404, 404, 404, 404, 404,
- 404, 404, 404, 1345, 1160, 135, 135, 135,
- 135, 1792, 916, 1165, 407, 407, 407, 407,
- 407, 407, 407, 407, 407, 407, 407, 407,
- 407, 407, 1350, 1165, 135, 135, 135, 1743,
- 860, 1130, 386, 386, 386, 386, 386, 386,
- 386, 386, 386, 386, 386, 386, 386, 386,
- 1315, 1130, 1722, 836, 1115, 377, 377, 377,
- 377, 377, 377, 377, 377, 377, 377, 377,
- 377, 377, 377, 1300, 1115, 135, 135, 1729,
- 844, 1120, 380, 380, 380, 380, 380, 380,
- 380, 380, 380, 380, 380, 380, 380, 380,
- 1305, 1120, 135, 135, 135, 135, 1666, 772,
- 1075, 353, 353, 353, 353, 353, 353, 353,
- 353, 353, 353, 353, 353, 353, 353, 1260,
- 1075, 135, 135, 135, 135, 1673, 780, 1080,
- 356, 356, 356, 356, 356, 356, 356, 356,
- 356, 356, 356, 356, 356, 356, 1265, 1080,
- 135, 135, 135, 135, 135, 135, 1680, 788,
- 1085, 359, 359, 359, 359, 359, 359, 359,
- 359, 359, 359, 359, 359, 359, 359, 1270,
- 1085, 736, 736, 736, 736, 736, 736, 736,
- 736, 736, 736, 736, 736, 736, 736, 1440,
- 344, 588, 59, 59, 59, 59, 59, 59,
- 59, 59, 59, 59, 59, 59, 59, 59,
- 744, 588, 1446, 347, 592, 61, 61, 61,
- 61, 61, 61, 61, 61, 61, 61, 61,
- 61, 61, 61, 752, 592, 1452, 350, 596,
- 63, 63, 63, 63, 63, 63, 63, 63,
- 63, 63, 63, 63, 63, 63, 760, 596,
- 1476, 362, 612, 71, 71, 71, 71, 71,
- 71, 71, 71, 71, 71, 71, 71, 71,
- 71, 792, 612, 1488, 368, 620, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 808, 620, 1494, 371,
- 624, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 816,
- 624, 1500, 374, 628, 79, 79, 79, 79,
- 79, 79, 79, 79, 79, 79, 79, 79,
- 79, 79, 824, 628, 1518, 383, 640, 85,
- 85, 85, 85, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 85, 848, 640, 1530,
- 389, 648, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89,
- 864, 648, 1536, 392, 652, 91, 91, 91,
- 91, 91, 91, 91, 91, 91, 91, 91,
- 91, 91, 91, 872, 652, 1572, 410, 676,
- 103, 103, 103, 103, 103, 103, 103, 103,
- 103, 103, 103, 103, 103, 103, 920, 676,
- 1578, 413, 680, 105, 105, 105, 105, 105,
- 105, 105, 105, 105, 105, 105, 105, 105,
- 105, 928, 680, 1632, 440, 716, 123, 123,
- 123, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 123, 123, 1000, 716, 1482, 365,
- 616, 73, 73, 73, 73, 73, 73, 73,
- 73, 73, 73, 73, 73, 73, 73, 800,
- 616, 1584, 416, 684, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 936, 684, 1590, 419, 688, 109,
- 109, 109, 109, 109, 109, 109, 109, 109,
- 109, 109, 109, 109, 109, 944, 688, 1596,
- 422, 692, 111, 111, 111, 111, 111, 111,
- 111, 111, 111, 111, 111, 111, 111, 111,
- 952, 692, 1602, 425, 696, 113, 113, 113,
- 113, 113, 113, 113, 113, 113, 113, 113,
- 113, 113, 113, 960, 696, 1608, 428, 700,
- 115, 115, 115, 115, 115, 115, 115, 115,
- 115, 115, 115, 115, 115, 115, 968, 700,
- 1620, 434, 708, 119, 119, 119, 119, 119,
- 119, 119, 119, 119, 119, 119, 119, 119,
- 119, 984, 708, 1614, 431, 704, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 976, 704, 1626, 437,
- 712, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 992,
- 712, 1542, 395, 656, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 880, 656, 1548, 398, 660, 95,
- 95, 95, 95, 95, 95, 95, 0, 95,
- 95, 95, 95, 95, 95, 888, 660, 95,
- 1554, 401, 664, 97, 97, 97, 97, 97,
- 97, 97, 97, 97, 97, 97, 97, 97,
- 97, 896, 664, 1560, 404, 668, 99, 99,
- 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 904, 668, 1566, 407,
- 672, 101, 101, 101, 101, 101, 101, 101,
- 101, 101, 101, 101, 101, 101, 101, 912,
- 672, 1524, 386, 644, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 856, 644, 1506, 377, 632, 81,
- 81, 81, 81, 81, 81, 81, 81, 81,
- 81, 81, 81, 81, 81, 832, 632, 1512,
- 380, 636, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83,
- 840, 636, 1458, 353, 600, 65, 65, 65,
- 65, 65, 65, 65, 65, 65, 65, 65,
- 65, 65, 65, 768, 600, 1464, 356, 604,
- 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 776, 604,
- 1470, 359, 608, 69, 69, 69, 69, 69,
- 69, 69, 69, 69, 69, 69, 69, 69,
- 69, 784, 608, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 456, 0, 452, 1,
- 161, 158, 0
-};
+ static const short _demo_machine_parser_cmd_to_state_actions[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 131, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0
+ };
-static const short _demo_machine_parser_cmd_to_state_actions[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 131, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0
-};
+ static const short _demo_machine_parser_cmd_from_state_actions[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 133, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0
+ };
-static const short _demo_machine_parser_cmd_from_state_actions[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 133, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0
-};
+ static const short _demo_machine_parser_cmd_eof_trans[] = {
+ 0, 0, 0, 0, 0, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 114, 114, 114, 114, 114, 0,
+ 0, 269, 271, 273, 276, 278, 295, 278,
+ 311, 295, 295, 295, 295, 295, 295, 295,
+ 295, 295, 295, 295, 295, 295, 342, 357,
+ 374, 295, 391, 406, 422, 295, 295, 295,
+ 295, 441, 295, 295, 295, 295, 295, 295,
+ 295, 295, 295, 295, 295, 295, 468, 483,
+ 295, 295, 295, 295, 295, 483, 295, 295,
+ 506, 295, 295, 295, 506, 295, 295, 527,
+ 295, 295, 295, 527, 374, 547, 295, 565,
+ 295, 295, 295, 295, 565, 295, 295, 295,
+ 295, 295, 295, 295, 596, 611, 295, 295,
+ 295, 611, 295, 295, 295, 633, 295, 649,
+ 295, 295, 666, 295, 682, 295, 295, 295,
+ 295, 295, 682, 703, 295, 295, 703, 295,
+ 547, 295, 295, 374, 295, 295, 422, 730,
+ 295, 730, 295, 295, 406, 295, 295, 751,
+ 295, 295, 357, 295, 295, 295, 771, 295,
+ 295, 295, 295, 311, 295, 295, 295, 295,
+ 793, 808, 823, 838, 855, 871, 886, 902,
+ 917, 932, 947, 947, 963, 963, 979, 979,
+ 855, 996, 1012, 1012, 1028, 1043, 1043, 1059,
+ 1074, 1089, 1104, 1104, 1120, 1120, 996, 855,
+ 902, 1140, 1140, 886, 1156, 838, 1171, 808,
+ 1187, 1202, 1224, 1230, 1235, 1242, 1245, 1235,
+ 1250, 1242, 1242, 1242, 1242, 1250, 1250, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1272, 1277, 1242, 1242, 1277, 1285,
+ 1285, 1285, 1292, 1297, 1297, 1303, 1303, 1309,
+ 1317, 1242, 1303, 1317, 1309, 1329, 1317, 1317,
+ 1317, 1317, 1329, 1329, 1317, 1317, 1317, 1317,
+ 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1351,
+ 1356, 1317, 1317, 1356, 1364, 1303, 1303, 1303,
+ 1303, 1364, 1364, 1303, 1303, 1303, 1303, 1303,
+ 1303, 1303, 1303, 1303, 1303, 1303, 1386, 1391,
+ 1303, 1303, 1391, 1202, 1224, 1224, 1415, 1224,
+ 1224, 1224, 1437, 1224, 1224, 1224, 1224, 1224,
+ 1463, 1224, 1224, 1224, 1224, 1487, 1224, 1224,
+ 1224, 1509, 1224, 1224, 1224, 1224, 1224, 1533,
+ 1224, 1224, 1224, 1557, 1224, 1224, 1224, 1224,
+ 1224, 1224, 1224, 1584, 1224, 1224, 1224, 1606,
+ 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1635,
+ 1224, 1224, 1224, 1224, 1658, 1224, 1224, 1682,
+ 1224, 1702, 1224, 1722, 1224, 1744, 1224, 1224,
+ 1224, 1224, 1224, 1224, 1224, 1770, 1224, 1224,
+ 1224, 1792, 1224, 1224, 1813, 1224, 1224, 1224,
+ 1224, 1224, 1839, 1224, 1224, 1224, 1862, 1224,
+ 1882, 1224, 1224, 1903, 1224, 1923, 1942, 1224,
+ 1224, 1224, 1942, 1224, 1224, 1224, 1224, 1224,
+ 1224, 1973, 1224, 1224, 1224, 1995, 1224, 1224,
+ 1224, 1224, 2018, 1224, 1224, 1224, 2040, 2059,
+ 1224, 1224, 2080, 1224, 1224, 1224, 1224, 1224,
+ 2103, 1224, 1224, 1224, 2126, 1224, 1224, 1224,
+ 1224, 1224, 1224, 2151, 1202, 2184, 2203, 2222,
+ 2241, 2260, 2279, 2298, 2317, 2336, 2355, 2374,
+ 2393, 2412, 2431, 2450, 2469, 2488, 2507, 2526,
+ 2545, 2564, 2583, 2602, 2621, 2621, 2641, 2660,
+ 2679, 2698, 2717, 2736, 2755, 2774, 2793, 1303,
+ 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
+ 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
+ 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
+ 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
+ 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
+ 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
+ 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
+ 1303, 1303, 1303, 1303, 1303, 2621, 1303, 1303,
+ 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
+ 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
+ 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
+ 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
+ 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
+ 1303, 1303, 1303, 1303, 1303, 1303, 2909, 2909,
+ 2913
+ };
-static const short _demo_machine_parser_cmd_eof_trans[] = {
- 0, 0, 0, 0, 0, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 114,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 0,
- 0, 269, 271, 273, 276, 278, 295, 278,
- 311, 295, 295, 295, 295, 295, 295, 295,
- 295, 295, 295, 295, 295, 295, 342, 357,
- 374, 295, 391, 406, 422, 295, 295, 295,
- 295, 441, 295, 295, 295, 295, 295, 295,
- 295, 295, 295, 295, 295, 295, 468, 483,
- 295, 295, 295, 295, 295, 483, 295, 295,
- 506, 295, 295, 295, 506, 295, 295, 527,
- 295, 295, 295, 527, 374, 547, 295, 565,
- 295, 295, 295, 295, 565, 295, 295, 295,
- 295, 295, 295, 295, 596, 611, 295, 295,
- 295, 611, 295, 295, 295, 633, 295, 649,
- 295, 295, 666, 295, 682, 295, 295, 295,
- 295, 295, 682, 703, 295, 295, 703, 295,
- 547, 295, 295, 374, 295, 295, 422, 730,
- 295, 730, 295, 295, 406, 295, 295, 751,
- 295, 295, 357, 295, 295, 295, 771, 295,
- 295, 295, 295, 311, 295, 295, 295, 295,
- 793, 808, 823, 838, 855, 871, 886, 902,
- 917, 932, 947, 947, 963, 963, 979, 979,
- 855, 996, 1012, 1012, 1028, 1043, 1043, 1059,
- 1074, 1089, 1104, 1104, 1120, 1120, 996, 855,
- 902, 1140, 1140, 886, 1156, 838, 1171, 808,
- 1187, 1202, 1224, 1230, 1235, 1242, 1245, 1235,
- 1250, 1242, 1242, 1242, 1242, 1250, 1250, 1242,
- 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
- 1242, 1242, 1272, 1277, 1242, 1242, 1277, 1285,
- 1285, 1285, 1292, 1297, 1297, 1303, 1303, 1309,
- 1317, 1242, 1303, 1317, 1309, 1329, 1317, 1317,
- 1317, 1317, 1329, 1329, 1317, 1317, 1317, 1317,
- 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1351,
- 1356, 1317, 1317, 1356, 1364, 1303, 1303, 1303,
- 1303, 1364, 1364, 1303, 1303, 1303, 1303, 1303,
- 1303, 1303, 1303, 1303, 1303, 1303, 1386, 1391,
- 1303, 1303, 1391, 1202, 1224, 1224, 1415, 1224,
- 1224, 1224, 1437, 1224, 1224, 1224, 1224, 1224,
- 1463, 1224, 1224, 1224, 1224, 1487, 1224, 1224,
- 1224, 1509, 1224, 1224, 1224, 1224, 1224, 1533,
- 1224, 1224, 1224, 1557, 1224, 1224, 1224, 1224,
- 1224, 1224, 1224, 1584, 1224, 1224, 1224, 1606,
- 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1635,
- 1224, 1224, 1224, 1224, 1658, 1224, 1224, 1682,
- 1224, 1702, 1224, 1722, 1224, 1744, 1224, 1224,
- 1224, 1224, 1224, 1224, 1224, 1770, 1224, 1224,
- 1224, 1792, 1224, 1224, 1813, 1224, 1224, 1224,
- 1224, 1224, 1839, 1224, 1224, 1224, 1862, 1224,
- 1882, 1224, 1224, 1903, 1224, 1923, 1942, 1224,
- 1224, 1224, 1942, 1224, 1224, 1224, 1224, 1224,
- 1224, 1973, 1224, 1224, 1224, 1995, 1224, 1224,
- 1224, 1224, 2018, 1224, 1224, 1224, 2040, 2059,
- 1224, 1224, 2080, 1224, 1224, 1224, 1224, 1224,
- 2103, 1224, 1224, 1224, 2126, 1224, 1224, 1224,
- 1224, 1224, 1224, 2151, 1202, 2184, 2203, 2222,
- 2241, 2260, 2279, 2298, 2317, 2336, 2355, 2374,
- 2393, 2412, 2431, 2450, 2469, 2488, 2507, 2526,
- 2545, 2564, 2583, 2602, 2621, 2621, 2641, 2660,
- 2679, 2698, 2717, 2736, 2755, 2774, 2793, 1303,
- 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
- 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
- 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
- 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
- 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
- 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
- 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
- 1303, 1303, 1303, 1303, 1303, 2621, 1303, 1303,
- 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
- 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
- 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
- 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
- 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
- 1303, 1303, 1303, 1303, 1303, 1303, 2909, 2909,
- 2913
-};
+ static const int demo_machine_parser_cmd_start = 232;
+ static const int demo_machine_parser_cmd_first_final = 232;
+ static const int demo_machine_parser_cmd_error = 0;
-static const int demo_machine_parser_cmd_start = 232;
-static const int demo_machine_parser_cmd_first_final = 232;
-static const int demo_machine_parser_cmd_error = 0;
+ static const int demo_machine_parser_cmd_en_main = 232;
-static const int demo_machine_parser_cmd_en_main = 232;
+ /* #line 332 "./dssl.rl" */
-/* #line 332 "./dssl.rl" */
-
-/* #line 4439 "./dssl.c" */
- {
- cs = demo_machine_parser_cmd_start;
- ts = 0;
- te = 0;
- act = 0;
- }
+ /* #line 4439 "./dssl.c" */
+ {
+ cs = demo_machine_parser_cmd_start;
+ ts = 0;
+ te = 0;
+ act = 0;
+ }
-/* #line 333 "./dssl.rl" */
-
- /* default values */
- *comment = tsk_false;
+ /* #line 333 "./dssl.rl" */
- /* only parse one line */
- if((index = tsk_strindexOf(p, size, "\n")) != -1){
- pe = eof = (p + index + 1/*\n*/);
- }
- else{
- pe = eof = p + size;
- }
-
- /* exec */
-
-/* #line 4462 "./dssl.c" */
- {
- int _klen;
- unsigned int _trans;
- short _widec;
- const char *_acts;
- unsigned int _nacts;
- const short *_keys;
+ /* default values */
+ *comment = tsk_false;
- if ( p == pe )
- goto _test_eof;
- if ( cs == 0 )
- goto _out;
+ /* only parse one line */
+ if((index = tsk_strindexOf(p, size, "\n")) != -1) {
+ pe = eof = (p + index + 1/*\n*/);
+ }
+ else {
+ pe = eof = p + size;
+ }
+
+ /* exec */
+
+ /* #line 4462 "./dssl.c" */
+ {
+ int _klen;
+ unsigned int _trans;
+ short _widec;
+ const char *_acts;
+ unsigned int _nacts;
+ const short *_keys;
+
+ if ( p == pe ) {
+ goto _test_eof;
+ }
+ if ( cs == 0 ) {
+ goto _out;
+ }
_resume:
- _acts = _demo_machine_parser_cmd_actions + _demo_machine_parser_cmd_from_state_actions[cs];
- _nacts = (unsigned int) *_acts++;
- while ( _nacts-- > 0 ) {
- switch ( *_acts++ ) {
- case 75:
-/* #line 1 "./dssl.rl" */
- {ts = p;}
- break;
-/* #line 4484 "./dssl.c" */
- }
- }
+ _acts = _demo_machine_parser_cmd_actions + _demo_machine_parser_cmd_from_state_actions[cs];
+ _nacts = (unsigned int) *_acts++;
+ while ( _nacts-- > 0 ) {
+ switch ( *_acts++ ) {
+ case 75:
+ /* #line 1 "./dssl.rl" */
+ {
+ ts = p;
+ }
+ break;
+ /* #line 4484 "./dssl.c" */
+ }
+ }
- _widec = (*p);
- _klen = _demo_machine_parser_cmd_cond_lengths[cs];
- _keys = _demo_machine_parser_cmd_cond_keys + (_demo_machine_parser_cmd_cond_offsets[cs]*2);
- if ( _klen > 0 ) {
- const short *_lower = _keys;
- const short *_mid;
- const short *_upper = _keys + (_klen<<1) - 2;
- while (1) {
- if ( _upper < _lower )
- break;
+ _widec = (*p);
+ _klen = _demo_machine_parser_cmd_cond_lengths[cs];
+ _keys = _demo_machine_parser_cmd_cond_keys + (_demo_machine_parser_cmd_cond_offsets[cs]*2);
+ if ( _klen > 0 ) {
+ const short *_lower = _keys;
+ const short *_mid;
+ const short *_upper = _keys + (_klen<<1) - 2;
+ while (1) {
+ if ( _upper < _lower ) {
+ break;
+ }
- _mid = _lower + (((_upper-_lower) >> 1) & ~1);
- if ( _widec < _mid[0] )
- _upper = _mid - 2;
- else if ( _widec > _mid[1] )
- _lower = _mid + 2;
- else {
- switch ( _demo_machine_parser_cmd_cond_spaces[_demo_machine_parser_cmd_cond_offsets[cs] + ((_mid - _keys)>>1)] ) {
- case 0: {
- _widec = (short)(128 + ((*p) - -128));
- if (
-/* #line 187 "./dssl.rl" */
+ _mid = _lower + (((_upper-_lower) >> 1) & ~1);
+ if ( _widec < _mid[0] ) {
+ _upper = _mid - 2;
+ }
+ else if ( _widec > _mid[1] ) {
+ _lower = _mid + 2;
+ }
+ else {
+ switch ( _demo_machine_parser_cmd_cond_spaces[_demo_machine_parser_cmd_cond_offsets[cs] + ((_mid - _keys)>>1)] ) {
+ case 0: {
+ _widec = (short)(128 + ((*p) - -128));
+ if (
+ /* #line 187 "./dssl.rl" */
- next_not_hyphens(p, pe)
- && next_not_arobases(p, pe)
- && next_not_percents(p, pe)
- && next_not_redirs(p, pe)
- && (p && *p != '\n')
- && (p && *p != '#')
- ) _widec += 256;
- break;
- }
- case 1: {
- _widec = (short)(640 + ((*p) - -128));
- if (
-/* #line 196 "./dssl.rl" */
+ next_not_hyphens(p, pe)
+ && next_not_arobases(p, pe)
+ && next_not_percents(p, pe)
+ && next_not_redirs(p, pe)
+ && (p && *p != '\n')
+ && (p && *p != '#')
+ ) {
+ _widec += 256;
+ }
+ break;
+ }
+ case 1: {
+ _widec = (short)(640 + ((*p) - -128));
+ if (
+ /* #line 196 "./dssl.rl" */
- (p && *p != '\n')
- ) _widec += 256;
- break;
- }
- }
- break;
- }
- }
- }
+ (p && *p != '\n')
+ ) {
+ _widec += 256;
+ }
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
- _keys = _demo_machine_parser_cmd_trans_keys + _demo_machine_parser_cmd_key_offsets[cs];
- _trans = _demo_machine_parser_cmd_index_offsets[cs];
+ _keys = _demo_machine_parser_cmd_trans_keys + _demo_machine_parser_cmd_key_offsets[cs];
+ _trans = _demo_machine_parser_cmd_index_offsets[cs];
- _klen = _demo_machine_parser_cmd_single_lengths[cs];
- if ( _klen > 0 ) {
- const short *_lower = _keys;
- const short *_mid;
- const short *_upper = _keys + _klen - 1;
- while (1) {
- if ( _upper < _lower )
- break;
+ _klen = _demo_machine_parser_cmd_single_lengths[cs];
+ if ( _klen > 0 ) {
+ const short *_lower = _keys;
+ const short *_mid;
+ const short *_upper = _keys + _klen - 1;
+ while (1) {
+ if ( _upper < _lower ) {
+ break;
+ }
- _mid = _lower + ((_upper-_lower) >> 1);
- if ( _widec < *_mid )
- _upper = _mid - 1;
- else if ( _widec > *_mid )
- _lower = _mid + 1;
- else {
- _trans += (_mid - _keys);
- goto _match;
- }
- }
- _keys += _klen;
- _trans += _klen;
- }
+ _mid = _lower + ((_upper-_lower) >> 1);
+ if ( _widec < *_mid ) {
+ _upper = _mid - 1;
+ }
+ else if ( _widec > *_mid ) {
+ _lower = _mid + 1;
+ }
+ else {
+ _trans += (_mid - _keys);
+ goto _match;
+ }
+ }
+ _keys += _klen;
+ _trans += _klen;
+ }
- _klen = _demo_machine_parser_cmd_range_lengths[cs];
- if ( _klen > 0 ) {
- const short *_lower = _keys;
- const short *_mid;
- const short *_upper = _keys + (_klen<<1) - 2;
- while (1) {
- if ( _upper < _lower )
- break;
+ _klen = _demo_machine_parser_cmd_range_lengths[cs];
+ if ( _klen > 0 ) {
+ const short *_lower = _keys;
+ const short *_mid;
+ const short *_upper = _keys + (_klen<<1) - 2;
+ while (1) {
+ if ( _upper < _lower ) {
+ break;
+ }
- _mid = _lower + (((_upper-_lower) >> 1) & ~1);
- if ( _widec < _mid[0] )
- _upper = _mid - 2;
- else if ( _widec > _mid[1] )
- _lower = _mid + 2;
- else {
- _trans += ((_mid - _keys)>>1);
- goto _match;
- }
- }
- _trans += _klen;
- }
+ _mid = _lower + (((_upper-_lower) >> 1) & ~1);
+ if ( _widec < _mid[0] ) {
+ _upper = _mid - 2;
+ }
+ else if ( _widec > _mid[1] ) {
+ _lower = _mid + 2;
+ }
+ else {
+ _trans += ((_mid - _keys)>>1);
+ goto _match;
+ }
+ }
+ _trans += _klen;
+ }
_match:
- _trans = _demo_machine_parser_cmd_indicies[_trans];
+ _trans = _demo_machine_parser_cmd_indicies[_trans];
_eof_trans:
- cs = _demo_machine_parser_cmd_trans_targs[_trans];
+ cs = _demo_machine_parser_cmd_trans_targs[_trans];
- if ( _demo_machine_parser_cmd_trans_actions[_trans] == 0 )
- goto _again;
+ if ( _demo_machine_parser_cmd_trans_actions[_trans] == 0 ) {
+ goto _again;
+ }
- _acts = _demo_machine_parser_cmd_actions + _demo_machine_parser_cmd_trans_actions[_trans];
- _nacts = (unsigned int) *_acts++;
- while ( _nacts-- > 0 )
- {
- switch ( *_acts++ )
- {
- case 0:
-/* #line 86 "./dssl.rl" */
- {
- tag_start = p;
+ _acts = _demo_machine_parser_cmd_actions + _demo_machine_parser_cmd_trans_actions[_trans];
+ _nacts = (unsigned int) *_acts++;
+ while ( _nacts-- > 0 ) {
+ switch ( *_acts++ ) {
+ case 0:
+ /* #line 86 "./dssl.rl" */
+ {
+ tag_start = p;
#if DEBUG_PARSER
- // - TSK_DEBUG_INFO("tag=%s", tag_start);
+ // - TSK_DEBUG_INFO("tag=%s", tag_start);
#endif
- }
- break;
- case 1:
-/* #line 93 "./dssl.rl" */
- {
+ }
+ break;
+ case 1:
+ /* #line 93 "./dssl.rl" */
+ {
#if DEBUG_PARSER
- TSK_DEBUG_INFO("create_option");
+ TSK_DEBUG_INFO("create_option");
#endif
- TSK_OBJECT_SAFE_FREE(opt);
- opt = opt_create_null();
- }
- break;
- case 2:
-/* #line 101 "./dssl.rl" */
- {
+ TSK_OBJECT_SAFE_FREE(opt);
+ opt = opt_create_null();
+ }
+ break;
+ case 2:
+ /* #line 101 "./dssl.rl" */
+ {
#if DEBUG_PARSER
- TSK_DEBUG_INFO("add_option");
+ TSK_DEBUG_INFO("add_option");
#endif
- tsk_list_push_back_data(cmd->opts, (void**)&opt);
- }
- break;
- case 3:
-/* #line 108 "./dssl.rl" */
- {
- if(opt){
- int index_1, index_2;
- char* newval = tsk_null;
- TSK_PARSER_SET_STRING(opt->value);
- /* trim both: left and right */
- tsk_strtrim_both(&opt->value);
- /* replace params */
+ tsk_list_push_back_data(cmd->opts, (void**)&opt);
+ }
+ break;
+ case 3:
+ /* #line 108 "./dssl.rl" */
+ {
+ if(opt) {
+ int index_1, index_2;
+ char* newval = tsk_null;
+ TSK_PARSER_SET_STRING(opt->value);
+ /* trim both: left and right */
+ tsk_strtrim_both(&opt->value);
+ /* replace params */
replace:
- if((index_1 = tsk_strindexOf(opt->value, tsk_strlen(opt->value), "$$")) != -1){
- if((index_2 = tsk_strindexOf((opt->value + index_1), tsk_strlen((opt->value + index_1)), " ")) != -1){
- newval = replace_param(opt->value, index_1, (index_1 + index_2), params);
- }
- else{
- newval = replace_param(opt->value, index_1, tsk_strlen(opt->value), params);
- }
- if(newval){
- TSK_FREE(opt->value);
- opt->value = newval;
+ if((index_1 = tsk_strindexOf(opt->value, tsk_strlen(opt->value), "$$")) != -1) {
+ if((index_2 = tsk_strindexOf((opt->value + index_1), tsk_strlen((opt->value + index_1)), " ")) != -1) {
+ newval = replace_param(opt->value, index_1, (index_1 + index_2), params);
+ }
+ else {
+ newval = replace_param(opt->value, index_1, tsk_strlen(opt->value), params);
+ }
+ if(newval) {
+ TSK_FREE(opt->value);
+ opt->value = newval;
- /* again */
- goto replace;
- }
- }
+ /* again */
+ goto replace;
+ }
+ }
#if DEBUG_PARSER
- TSK_DEBUG_INFO("set_opt_value [%d] '%s'", opt->type, opt->value);
+ TSK_DEBUG_INFO("set_opt_value [%d] '%s'", opt->type, opt->value);
#endif
- }
- }
- break;
- case 4:
-/* #line 138 "./dssl.rl" */
- {
- TSK_PARSER_SET_STRING(cmd->sidparam);
+ }
+ }
+ break;
+ case 4:
+ /* #line 138 "./dssl.rl" */
+ {
+ TSK_PARSER_SET_STRING(cmd->sidparam);
#if DEBUG_PARSER
- TSK_DEBUG_INFO("set_sidparam_value '%s'", cmd->sidparam);
+ TSK_DEBUG_INFO("set_sidparam_value '%s'", cmd->sidparam);
#endif
- }
- break;
- case 5:
-/* #line 145 "./dssl.rl" */
- {
+ }
+ break;
+ case 5:
+ /* #line 145 "./dssl.rl" */
+ {
#if DEBUG_PARSER
- TSK_DEBUG_INFO("create_param");
+ TSK_DEBUG_INFO("create_param");
#endif
- TSK_OBJECT_SAFE_FREE(param);
- param = tsk_param_create_null();
- }
- break;
- case 6:
-/* #line 153 "./dssl.rl" */
- {
+ TSK_OBJECT_SAFE_FREE(param);
+ param = tsk_param_create_null();
+ }
+ break;
+ case 6:
+ /* #line 153 "./dssl.rl" */
+ {
#if DEBUG_PARSER
- TSK_DEBUG_INFO("add_param");
+ TSK_DEBUG_INFO("add_param");
#endif
- tsk_params_add_param_2(&params, param);
- TSK_OBJECT_SAFE_FREE(param);
- }
- break;
- case 7:
-/* #line 161 "./dssl.rl" */
- {
- if(param){
- TSK_PARSER_SET_STRING(param->value);
- /* trim both: left and right */
- tsk_strtrim_both(&param->value);
+ tsk_params_add_param_2(&params, param);
+ TSK_OBJECT_SAFE_FREE(param);
+ }
+ break;
+ case 7:
+ /* #line 161 "./dssl.rl" */
+ {
+ if(param) {
+ TSK_PARSER_SET_STRING(param->value);
+ /* trim both: left and right */
+ tsk_strtrim_both(&param->value);
#if DEBUG_PARSER
- TSK_DEBUG_INFO("set_param_value [%s] '%s'", param->name, param->value);
+ TSK_DEBUG_INFO("set_param_value [%s] '%s'", param->name, param->value);
#endif
- }
- }
- break;
- case 8:
-/* #line 172 "./dssl.rl" */
- {
- if(param){
- TSK_PARSER_SET_STRING(param->name);
- }
- }
- break;
- case 9:
-/* #line 178 "./dssl.rl" */
- {
+ }
+ }
+ break;
+ case 8:
+ /* #line 172 "./dssl.rl" */
+ {
+ if(param) {
+ TSK_PARSER_SET_STRING(param->name);
+ }
+ }
+ break;
+ case 9:
+ /* #line 178 "./dssl.rl" */
+ {
#if DEBUG_PARSER
- TSK_PARSER_SET_STRING(temp);
- TSK_DEBUG_INFO("is_comment '%s'", temp);
+ TSK_PARSER_SET_STRING(temp);
+ TSK_DEBUG_INFO("is_comment '%s'", temp);
#endif
- // *comment = tsk_true;
- // TSK_OBJECT_SAFE_FREE(opts);
- }
- break;
- case 10:
-/* #line 200 "./dssl.rl" */
- {
- TSK_PARSER_SET_STRING(temp);
- TSK_DEBUG_ERROR("'%s' is not a valid option.", temp);
- }
- break;
- case 11:
-/* #line 205 "./dssl.rl" */
- {
- TSK_PARSER_SET_STRING(temp);
- TSK_DEBUG_ERROR("'%s' is not a valid command.", temp);
- }
- break;
- case 12:
-/* #line 210 "./dssl.rl" */
- {
- TSK_PARSER_SET_STRING(temp);
- TSK_DEBUG_ERROR("'%s' is not a valid level.", temp);
- }
- break;
- case 13:
-/* #line 227 "./dssl.rl" */
- { cmd->type = cmd_audio; }
- break;
- case 14:
-/* #line 228 "./dssl.rl" */
- { cmd->type = cmd_audiovideo; }
- break;
- case 15:
-/* #line 229 "./dssl.rl" */
- { cmd->type = cmd_config_session; }
- break;
- case 16:
-/* #line 230 "./dssl.rl" */
- { cmd->type = cmd_config_stack; }
- break;
- case 17:
-/* #line 231 "./dssl.rl" */
- { cmd->type = cmd_dtmf; }
- break;
- case 18:
-/* #line 232 "./dssl.rl" */
- { cmd->type = cmd_dump; }
- break;
- case 19:
-/* #line 233 "./dssl.rl" */
- { cmd->type = cmd_ect; }
- break;
- case 20:
-/* #line 234 "./dssl.rl" */
- { cmd->type = cmd_exit; }
- break;
- case 21:
-/* #line 235 "./dssl.rl" */
- { cmd->type = cmd_file; }
- break;
- case 22:
-/* #line 236 "./dssl.rl" */
- { cmd->type = cmd_hangup; }
- break;
- case 23:
-/* #line 237 "./dssl.rl" */
- { cmd->type = cmd_help; }
- break;
- case 24:
-/* #line 238 "./dssl.rl" */
- { cmd->type = cmd_hold; }
- break;
- case 25:
-/* #line 239 "./dssl.rl" */
- { cmd->type = cmd_large_message; }
- break;
- case 26:
-/* #line 240 "./dssl.rl" */
- { cmd->type = cmd_message; }
- break;
- case 27:
-/* #line 241 "./dssl.rl" */
- { cmd->type = cmd_options; }
- break;
- case 28:
-/* #line 242 "./dssl.rl" */
- { cmd->type = cmd_publish; }
- break;
- case 29:
-/* #line 243 "./dssl.rl" */
- { cmd->type = cmd_register; }
- break;
- case 30:
-/* #line 244 "./dssl.rl" */
- { cmd->type = cmd_resume; }
- break;
- case 31:
-/* #line 245 "./dssl.rl" */
- { cmd->type = cmd_run; }
- break;
- case 32:
-/* #line 246 "./dssl.rl" */
- { cmd->type = cmd_scenario; }
- break;
- case 33:
-/* #line 247 "./dssl.rl" */
- { cmd->type = cmd_sleep; }
- break;
- case 34:
-/* #line 248 "./dssl.rl" */
- { cmd->type = cmd_sms; }
- break;
- case 35:
-/* #line 249 "./dssl.rl" */
- { cmd->type = cmd_stop; }
- break;
- case 36:
-/* #line 250 "./dssl.rl" */
- { cmd->type = cmd_subscribe; }
- break;
- case 37:
-/* #line 251 "./dssl.rl" */
- { cmd->type = cmd_video; }
- break;
- case 38:
-/* #line 255 "./dssl.rl" */
- { opt->type = opt_amf; }
- break;
- case 39:
-/* #line 256 "./dssl.rl" */
- { opt->type = opt_caps; }
- break;
- case 40:
-/* #line 257 "./dssl.rl" */
- { opt->type = opt_dhcpv4; }
- break;
- case 41:
-/* #line 258 "./dssl.rl" */
- { opt->type = opt_dhcpv6; }
- break;
- case 42:
-/* #line 259 "./dssl.rl" */
- { opt->type = opt_amf; }
- break;
- case 43:
-/* #line 260 "./dssl.rl" */
- { opt->type = opt_dname; }
- break;
- case 44:
-/* #line 261 "./dssl.rl" */
- { opt->type = opt_event; }
- break;
- case 45:
-/* #line 262 "./dssl.rl" */
- { opt->type = opt_expires; }
- break;
- case 46:
-/* #line 263 "./dssl.rl" */
- { opt->type = opt_from; }
- break;
- case 47:
-/* #line 264 "./dssl.rl" */
- { opt->type = opt_header; }
- break;
- case 48:
-/* #line 265 "./dssl.rl" */
- { opt->type = opt_impi; }
- break;
- case 49:
-/* #line 266 "./dssl.rl" */
- { opt->type = opt_impu; }
- break;
- case 50:
-/* #line 267 "./dssl.rl" */
- { opt->type = opt_ipv6; }
- break;
- case 51:
-/* #line 268 "./dssl.rl" */
- { opt->type = opt_local_ip; }
- break;
- case 52:
-/* #line 269 "./dssl.rl" */
- { opt->type = opt_local_port; }
- break;
- case 53:
-/* #line 270 "./dssl.rl" */
- { opt->type = opt_opid; }
- break;
- case 54:
-/* #line 271 "./dssl.rl" */
- { opt->type = opt_password; }
- break;
- case 55:
-/* #line 272 "./dssl.rl" */
- { opt->type = opt_path; }
- break;
- case 56:
-/* #line 273 "./dssl.rl" */
- { opt->type = opt_payload; }
- break;
- case 57:
-/* #line 274 "./dssl.rl" */
- { opt->type = opt_pcscf_ip; }
- break;
- case 58:
-/* #line 275 "./dssl.rl" */
- { opt->type = opt_pcscf_port; }
- break;
- case 59:
-/* #line 276 "./dssl.rl" */
- { opt->type = opt_pcscf_trans; }
- break;
- case 60:
-/* #line 277 "./dssl.rl" */
- { opt->type = opt_realm; }
- break;
- case 61:
-/* #line 278 "./dssl.rl" */
- { opt->type = opt_sec; }
- break;
- case 62:
-/* #line 279 "./dssl.rl" */
- { opt->type = opt_sid; }
- break;
- case 63:
-/* #line 280 "./dssl.rl" */
- { opt->type = opt_sigcomp_id; }
- break;
- case 64:
-/* #line 281 "./dssl.rl" */
- { opt->type = opt_silent; }
- break;
- case 65:
-/* #line 282 "./dssl.rl" */
- { opt->type = opt_smsc; }
- break;
- case 66:
-/* #line 283 "./dssl.rl" */
- { opt->type = opt_stun_ip; }
- break;
- case 67:
-/* #line 284 "./dssl.rl" */
- { opt->type = opt_stun_pwd; }
- break;
- case 68:
-/* #line 285 "./dssl.rl" */
- { opt->type = opt_stun_port; }
- break;
- case 69:
-/* #line 286 "./dssl.rl" */
- { opt->type = opt_stun_usr; }
- break;
- case 70:
-/* #line 287 "./dssl.rl" */
- { opt->type = opt_to; }
- break;
- case 71:
-/* #line 294 "./dssl.rl" */
- { set_level(lv_stack); }
- break;
- case 72:
-/* #line 294 "./dssl.rl" */
- { set_level(lv_session); }
- break;
- case 73:
-/* #line 294 "./dssl.rl" */
- { set_level(lv_action); }
- break;
- case 76:
-/* #line 1 "./dssl.rl" */
- {te = p+1;}
- break;
- case 77:
-/* #line 307 "./dssl.rl" */
- {te = p+1;{ }}
- break;
- case 78:
-/* #line 309 "./dssl.rl" */
- {te = p+1;{ }}
- break;
- case 79:
-/* #line 304 "./dssl.rl" */
- {te = p;p--;{ }}
- break;
- case 80:
-/* #line 305 "./dssl.rl" */
- {te = p;p--;{ }}
- break;
- case 81:
-/* #line 306 "./dssl.rl" */
- {te = p;p--;{ }}
- break;
- case 82:
-/* #line 307 "./dssl.rl" */
- {te = p;p--;{ }}
- break;
- case 83:
-/* #line 308 "./dssl.rl" */
- {te = p;p--;{ }}
- break;
- case 84:
-/* #line 304 "./dssl.rl" */
- {{p = ((te))-1;}{ }}
- break;
- case 85:
-/* #line 305 "./dssl.rl" */
- {{p = ((te))-1;}{ }}
- break;
-/* #line 5023 "./dssl.c" */
- }
- }
+ // *comment = tsk_true;
+ // TSK_OBJECT_SAFE_FREE(opts);
+ }
+ break;
+ case 10:
+ /* #line 200 "./dssl.rl" */
+ {
+ TSK_PARSER_SET_STRING(temp);
+ TSK_DEBUG_ERROR("'%s' is not a valid option.", temp);
+ }
+ break;
+ case 11:
+ /* #line 205 "./dssl.rl" */
+ {
+ TSK_PARSER_SET_STRING(temp);
+ TSK_DEBUG_ERROR("'%s' is not a valid command.", temp);
+ }
+ break;
+ case 12:
+ /* #line 210 "./dssl.rl" */
+ {
+ TSK_PARSER_SET_STRING(temp);
+ TSK_DEBUG_ERROR("'%s' is not a valid level.", temp);
+ }
+ break;
+ case 13:
+ /* #line 227 "./dssl.rl" */
+ {
+ cmd->type = cmd_audio;
+ }
+ break;
+ case 14:
+ /* #line 228 "./dssl.rl" */
+ {
+ cmd->type = cmd_audiovideo;
+ }
+ break;
+ case 15:
+ /* #line 229 "./dssl.rl" */
+ {
+ cmd->type = cmd_config_session;
+ }
+ break;
+ case 16:
+ /* #line 230 "./dssl.rl" */
+ {
+ cmd->type = cmd_config_stack;
+ }
+ break;
+ case 17:
+ /* #line 231 "./dssl.rl" */
+ {
+ cmd->type = cmd_dtmf;
+ }
+ break;
+ case 18:
+ /* #line 232 "./dssl.rl" */
+ {
+ cmd->type = cmd_dump;
+ }
+ break;
+ case 19:
+ /* #line 233 "./dssl.rl" */
+ {
+ cmd->type = cmd_ect;
+ }
+ break;
+ case 20:
+ /* #line 234 "./dssl.rl" */
+ {
+ cmd->type = cmd_exit;
+ }
+ break;
+ case 21:
+ /* #line 235 "./dssl.rl" */
+ {
+ cmd->type = cmd_file;
+ }
+ break;
+ case 22:
+ /* #line 236 "./dssl.rl" */
+ {
+ cmd->type = cmd_hangup;
+ }
+ break;
+ case 23:
+ /* #line 237 "./dssl.rl" */
+ {
+ cmd->type = cmd_help;
+ }
+ break;
+ case 24:
+ /* #line 238 "./dssl.rl" */
+ {
+ cmd->type = cmd_hold;
+ }
+ break;
+ case 25:
+ /* #line 239 "./dssl.rl" */
+ {
+ cmd->type = cmd_large_message;
+ }
+ break;
+ case 26:
+ /* #line 240 "./dssl.rl" */
+ {
+ cmd->type = cmd_message;
+ }
+ break;
+ case 27:
+ /* #line 241 "./dssl.rl" */
+ {
+ cmd->type = cmd_options;
+ }
+ break;
+ case 28:
+ /* #line 242 "./dssl.rl" */
+ {
+ cmd->type = cmd_publish;
+ }
+ break;
+ case 29:
+ /* #line 243 "./dssl.rl" */
+ {
+ cmd->type = cmd_register;
+ }
+ break;
+ case 30:
+ /* #line 244 "./dssl.rl" */
+ {
+ cmd->type = cmd_resume;
+ }
+ break;
+ case 31:
+ /* #line 245 "./dssl.rl" */
+ {
+ cmd->type = cmd_run;
+ }
+ break;
+ case 32:
+ /* #line 246 "./dssl.rl" */
+ {
+ cmd->type = cmd_scenario;
+ }
+ break;
+ case 33:
+ /* #line 247 "./dssl.rl" */
+ {
+ cmd->type = cmd_sleep;
+ }
+ break;
+ case 34:
+ /* #line 248 "./dssl.rl" */
+ {
+ cmd->type = cmd_sms;
+ }
+ break;
+ case 35:
+ /* #line 249 "./dssl.rl" */
+ {
+ cmd->type = cmd_stop;
+ }
+ break;
+ case 36:
+ /* #line 250 "./dssl.rl" */
+ {
+ cmd->type = cmd_subscribe;
+ }
+ break;
+ case 37:
+ /* #line 251 "./dssl.rl" */
+ {
+ cmd->type = cmd_video;
+ }
+ break;
+ case 38:
+ /* #line 255 "./dssl.rl" */
+ {
+ opt->type = opt_amf;
+ }
+ break;
+ case 39:
+ /* #line 256 "./dssl.rl" */
+ {
+ opt->type = opt_caps;
+ }
+ break;
+ case 40:
+ /* #line 257 "./dssl.rl" */
+ {
+ opt->type = opt_dhcpv4;
+ }
+ break;
+ case 41:
+ /* #line 258 "./dssl.rl" */
+ {
+ opt->type = opt_dhcpv6;
+ }
+ break;
+ case 42:
+ /* #line 259 "./dssl.rl" */
+ {
+ opt->type = opt_amf;
+ }
+ break;
+ case 43:
+ /* #line 260 "./dssl.rl" */
+ {
+ opt->type = opt_dname;
+ }
+ break;
+ case 44:
+ /* #line 261 "./dssl.rl" */
+ {
+ opt->type = opt_event;
+ }
+ break;
+ case 45:
+ /* #line 262 "./dssl.rl" */
+ {
+ opt->type = opt_expires;
+ }
+ break;
+ case 46:
+ /* #line 263 "./dssl.rl" */
+ {
+ opt->type = opt_from;
+ }
+ break;
+ case 47:
+ /* #line 264 "./dssl.rl" */
+ {
+ opt->type = opt_header;
+ }
+ break;
+ case 48:
+ /* #line 265 "./dssl.rl" */
+ {
+ opt->type = opt_impi;
+ }
+ break;
+ case 49:
+ /* #line 266 "./dssl.rl" */
+ {
+ opt->type = opt_impu;
+ }
+ break;
+ case 50:
+ /* #line 267 "./dssl.rl" */
+ {
+ opt->type = opt_ipv6;
+ }
+ break;
+ case 51:
+ /* #line 268 "./dssl.rl" */
+ {
+ opt->type = opt_local_ip;
+ }
+ break;
+ case 52:
+ /* #line 269 "./dssl.rl" */
+ {
+ opt->type = opt_local_port;
+ }
+ break;
+ case 53:
+ /* #line 270 "./dssl.rl" */
+ {
+ opt->type = opt_opid;
+ }
+ break;
+ case 54:
+ /* #line 271 "./dssl.rl" */
+ {
+ opt->type = opt_password;
+ }
+ break;
+ case 55:
+ /* #line 272 "./dssl.rl" */
+ {
+ opt->type = opt_path;
+ }
+ break;
+ case 56:
+ /* #line 273 "./dssl.rl" */
+ {
+ opt->type = opt_payload;
+ }
+ break;
+ case 57:
+ /* #line 274 "./dssl.rl" */
+ {
+ opt->type = opt_pcscf_ip;
+ }
+ break;
+ case 58:
+ /* #line 275 "./dssl.rl" */
+ {
+ opt->type = opt_pcscf_port;
+ }
+ break;
+ case 59:
+ /* #line 276 "./dssl.rl" */
+ {
+ opt->type = opt_pcscf_trans;
+ }
+ break;
+ case 60:
+ /* #line 277 "./dssl.rl" */
+ {
+ opt->type = opt_realm;
+ }
+ break;
+ case 61:
+ /* #line 278 "./dssl.rl" */
+ {
+ opt->type = opt_sec;
+ }
+ break;
+ case 62:
+ /* #line 279 "./dssl.rl" */
+ {
+ opt->type = opt_sid;
+ }
+ break;
+ case 63:
+ /* #line 280 "./dssl.rl" */
+ {
+ opt->type = opt_sigcomp_id;
+ }
+ break;
+ case 64:
+ /* #line 281 "./dssl.rl" */
+ {
+ opt->type = opt_silent;
+ }
+ break;
+ case 65:
+ /* #line 282 "./dssl.rl" */
+ {
+ opt->type = opt_smsc;
+ }
+ break;
+ case 66:
+ /* #line 283 "./dssl.rl" */
+ {
+ opt->type = opt_stun_ip;
+ }
+ break;
+ case 67:
+ /* #line 284 "./dssl.rl" */
+ {
+ opt->type = opt_stun_pwd;
+ }
+ break;
+ case 68:
+ /* #line 285 "./dssl.rl" */
+ {
+ opt->type = opt_stun_port;
+ }
+ break;
+ case 69:
+ /* #line 286 "./dssl.rl" */
+ {
+ opt->type = opt_stun_usr;
+ }
+ break;
+ case 70:
+ /* #line 287 "./dssl.rl" */
+ {
+ opt->type = opt_to;
+ }
+ break;
+ case 71:
+ /* #line 294 "./dssl.rl" */
+ {
+ set_level(lv_stack);
+ }
+ break;
+ case 72:
+ /* #line 294 "./dssl.rl" */
+ {
+ set_level(lv_session);
+ }
+ break;
+ case 73:
+ /* #line 294 "./dssl.rl" */
+ {
+ set_level(lv_action);
+ }
+ break;
+ case 76:
+ /* #line 1 "./dssl.rl" */
+ {
+ te = p+1;
+ }
+ break;
+ case 77:
+ /* #line 307 "./dssl.rl" */
+ {
+ te = p+1;
+ { }
+ }
+ break;
+ case 78:
+ /* #line 309 "./dssl.rl" */
+ {
+ te = p+1;
+ { }
+ }
+ break;
+ case 79:
+ /* #line 304 "./dssl.rl" */
+ {
+ te = p;
+ p--;
+ { }
+ }
+ break;
+ case 80:
+ /* #line 305 "./dssl.rl" */
+ {
+ te = p;
+ p--;
+ { }
+ }
+ break;
+ case 81:
+ /* #line 306 "./dssl.rl" */
+ {
+ te = p;
+ p--;
+ { }
+ }
+ break;
+ case 82:
+ /* #line 307 "./dssl.rl" */
+ {
+ te = p;
+ p--;
+ { }
+ }
+ break;
+ case 83:
+ /* #line 308 "./dssl.rl" */
+ {
+ te = p;
+ p--;
+ { }
+ }
+ break;
+ case 84:
+ /* #line 304 "./dssl.rl" */
+ {{
+ p = ((te))-1;
+ }{ }
+ }
+ break;
+ case 85:
+ /* #line 305 "./dssl.rl" */
+ {{
+ p = ((te))-1;
+ }{ }
+ }
+ break;
+ /* #line 5023 "./dssl.c" */
+ }
+ }
_again:
- _acts = _demo_machine_parser_cmd_actions + _demo_machine_parser_cmd_to_state_actions[cs];
- _nacts = (unsigned int) *_acts++;
- while ( _nacts-- > 0 ) {
- switch ( *_acts++ ) {
- case 74:
-/* #line 1 "./dssl.rl" */
- {ts = 0;}
- break;
-/* #line 5036 "./dssl.c" */
- }
- }
+ _acts = _demo_machine_parser_cmd_actions + _demo_machine_parser_cmd_to_state_actions[cs];
+ _nacts = (unsigned int) *_acts++;
+ while ( _nacts-- > 0 ) {
+ switch ( *_acts++ ) {
+ case 74:
+ /* #line 1 "./dssl.rl" */
+ {
+ ts = 0;
+ }
+ break;
+ /* #line 5036 "./dssl.c" */
+ }
+ }
+
+ if ( cs == 0 ) {
+ goto _out;
+ }
+ if ( ++p != pe ) {
+ goto _resume;
+ }
+_test_eof: {
+ }
+ if ( p == eof ) {
+ if ( _demo_machine_parser_cmd_eof_trans[cs] > 0 ) {
+ _trans = _demo_machine_parser_cmd_eof_trans[cs] - 1;
+ goto _eof_trans;
+ }
+ }
+
+_out: {
+ }
+ }
- if ( cs == 0 )
- goto _out;
- if ( ++p != pe )
- goto _resume;
- _test_eof: {}
- if ( p == eof )
- {
- if ( _demo_machine_parser_cmd_eof_trans[cs] > 0 ) {
- _trans = _demo_machine_parser_cmd_eof_trans[cs] - 1;
- goto _eof_trans;
- }
- }
+ /* #line 347 "./dssl.rl" */
- _out: {}
- }
+ if( cs <
+ /* #line 5059 "./dssl.c" */
+ 232
+ /* #line 348 "./dssl.rl" */
+ ) {
+ TSK_DEBUG_ERROR("Failed to parse [%s] command-Line.", p);
+ TSK_OBJECT_SAFE_FREE(cmd);
+ }
+ TSK_OBJECT_SAFE_FREE(opt);
+ TSK_OBJECT_SAFE_FREE(param);
+ TSK_FREE(temp);
-/* #line 347 "./dssl.rl" */
-
- if( cs <
-/* #line 5059 "./dssl.c" */
-232
-/* #line 348 "./dssl.rl" */
- ){
- TSK_DEBUG_ERROR("Failed to parse [%s] command-Line.", p);
- TSK_OBJECT_SAFE_FREE(cmd);
- }
- TSK_OBJECT_SAFE_FREE(opt);
- TSK_OBJECT_SAFE_FREE(param);
- TSK_FREE(temp);
-
- return cmd;
+ return cmd;
}
diff --git a/tinyDEMO/dssl.h b/tinyDEMO/dssl.h
index 172664c..409e1af 100755
--- a/tinyDEMO/dssl.h
+++ b/tinyDEMO/dssl.h
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
diff --git a/tinyDEMO/invite.c b/tinyDEMO/invite.c
index 58b3925..681ec08 100755
--- a/tinyDEMO/invite.c
+++ b/tinyDEMO/invite.c
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
@@ -31,253 +31,252 @@ static int invite_msrp_cb(const tmsrp_event_t* _event);
int invite_handle_event(const tsip_event_t *_event)
{
- const tsip_invite_event_t* inv_event = TSIP_INVITE_EVENT(_event);
- const session_t* session;
- tsip_ssession_id_t sid;
- int ret = 0;
-
- /* Find associated session */
- sid = tsip_ssession_get_id(_event->ss);
- if(!(session = session_get_by_sid(ctx->sessions, sid))){
- if(inv_event->type == tsip_i_newcall){
- /* It's a new incoming call */
- if(!tsip_ssession_have_ownership(_event->ss)){
- session_t* _session;
- if((_session = session_server_create(st_invite, _event->ss)) && (session = _session)){
- tsk_list_push_back_data(ctx->sessions, (void**)&_session);
- }
- else{
- TSK_DEBUG_ERROR("Failed to create \"sever-side-session\".");
- ret = -3;
- goto bail;
- }
- }
- }
- else{
- /* it's or own session and we fail to match it ==> should never happen */
- TSK_DEBUG_ERROR("Failed to match session event.");
- ret = -2;
- goto bail;
- }
- }
-
- if(!session || !session->handle){
- /* guard ==> should never happen */
- TSK_DEBUG_ERROR("Null session.");
- goto bail;
- }
-
- switch(inv_event->type){
- // ============================
- // Sip Events
- //
- case tsip_i_newcall:
- { /* New call */
- tmedia_type_t media_type = tsip_ssession_get_mediatype(session);
- tsip_api_common_accept(session->handle,
- TSIP_ACTION_SET_NULL());
- /*tsip_api_common_reject(session->handle,
- TSIP_ACTION_SET_NULL());*/
- break;
- }
- case tsip_i_request:
- TSK_DEBUG_INFO("invite_handle_event(tsip_i_request)");
- break;
- case tsip_ao_request:
- TSK_DEBUG_INFO("invite_handle_event(tsip_ao_request)");
- break;
-
- /* Explicit Call Transfer (ECT) */
- case tsip_o_ect_trying:
- case tsip_o_ect_accepted:
- case tsip_o_ect_completed:
- case tsip_o_ect_failed:
- case tsip_o_ect_notify:
- case tsip_i_ect_requested:
- case tsip_i_ect_newcall:
- case tsip_i_ect_completed:
- case tsip_i_ect_failed:
- case tsip_i_ect_notify:
- TSK_DEBUG_INFO("ECT event");
- break;
-
- // ============================
- // Media Events
- //
-
- /* Early Media started */
- case tsip_m_early_media:
- TSK_DEBUG_INFO("invite_handle_event(tsip_m_early_media)");
- break;
-
- /* 3GPP TS 24.610: Communication Hold */
- case tsip_m_local_hold_ok:
- TSK_DEBUG_INFO("invite_handle_event(tsip_m_local_hold_ok)");
- break;
- case tsip_m_local_hold_nok:
- TSK_DEBUG_INFO("invite_handle_event(tsip_m_local_hold_nok)");
- break;
- case tsip_m_local_resume_ok:
- TSK_DEBUG_INFO("invite_handle_event(tsip_m_local_resume_ok)");
- break;
- case tsip_m_local_resume_nok:
- TSK_DEBUG_INFO("invite_handle_event(tsip_m_local_resume_nok)");
- break;
- case tsip_m_remote_hold:
- TSK_DEBUG_INFO("invite_handle_event(tsip_m_remote_hold)");
- break;
- case tsip_m_remote_resume:
- TSK_DEBUG_INFO("invite_handle_event(tsip_m_remote_resume)");
- break;
-
- default:
- break;
- }
+ const tsip_invite_event_t* inv_event = TSIP_INVITE_EVENT(_event);
+ const session_t* session;
+ tsip_ssession_id_t sid;
+ int ret = 0;
+
+ /* Find associated session */
+ sid = tsip_ssession_get_id(_event->ss);
+ if(!(session = session_get_by_sid(ctx->sessions, sid))) {
+ if(inv_event->type == tsip_i_newcall) {
+ /* It's a new incoming call */
+ if(!tsip_ssession_have_ownership(_event->ss)) {
+ session_t* _session;
+ if((_session = session_server_create(st_invite, _event->ss)) && (session = _session)) {
+ tsk_list_push_back_data(ctx->sessions, (void**)&_session);
+ }
+ else {
+ TSK_DEBUG_ERROR("Failed to create \"sever-side-session\".");
+ ret = -3;
+ goto bail;
+ }
+ }
+ }
+ else {
+ /* it's or own session and we fail to match it ==> should never happen */
+ TSK_DEBUG_ERROR("Failed to match session event.");
+ ret = -2;
+ goto bail;
+ }
+ }
+
+ if(!session || !session->handle) {
+ /* guard ==> should never happen */
+ TSK_DEBUG_ERROR("Null session.");
+ goto bail;
+ }
+
+ switch(inv_event->type) {
+ // ============================
+ // Sip Events
+ //
+ case tsip_i_newcall: {
+ /* New call */
+ tmedia_type_t media_type = tsip_ssession_get_mediatype(session);
+ tsip_api_common_accept(session->handle,
+ TSIP_ACTION_SET_NULL());
+ /*tsip_api_common_reject(session->handle,
+ TSIP_ACTION_SET_NULL());*/
+ break;
+ }
+ case tsip_i_request:
+ TSK_DEBUG_INFO("invite_handle_event(tsip_i_request)");
+ break;
+ case tsip_ao_request:
+ TSK_DEBUG_INFO("invite_handle_event(tsip_ao_request)");
+ break;
+
+ /* Explicit Call Transfer (ECT) */
+ case tsip_o_ect_trying:
+ case tsip_o_ect_accepted:
+ case tsip_o_ect_completed:
+ case tsip_o_ect_failed:
+ case tsip_o_ect_notify:
+ case tsip_i_ect_requested:
+ case tsip_i_ect_newcall:
+ case tsip_i_ect_completed:
+ case tsip_i_ect_failed:
+ case tsip_i_ect_notify:
+ TSK_DEBUG_INFO("ECT event");
+ break;
+
+ // ============================
+ // Media Events
+ //
+
+ /* Early Media started */
+ case tsip_m_early_media:
+ TSK_DEBUG_INFO("invite_handle_event(tsip_m_early_media)");
+ break;
+
+ /* 3GPP TS 24.610: Communication Hold */
+ case tsip_m_local_hold_ok:
+ TSK_DEBUG_INFO("invite_handle_event(tsip_m_local_hold_ok)");
+ break;
+ case tsip_m_local_hold_nok:
+ TSK_DEBUG_INFO("invite_handle_event(tsip_m_local_hold_nok)");
+ break;
+ case tsip_m_local_resume_ok:
+ TSK_DEBUG_INFO("invite_handle_event(tsip_m_local_resume_ok)");
+ break;
+ case tsip_m_local_resume_nok:
+ TSK_DEBUG_INFO("invite_handle_event(tsip_m_local_resume_nok)");
+ break;
+ case tsip_m_remote_hold:
+ TSK_DEBUG_INFO("invite_handle_event(tsip_m_remote_hold)");
+ break;
+ case tsip_m_remote_resume:
+ TSK_DEBUG_INFO("invite_handle_event(tsip_m_remote_resume)");
+ break;
+
+ default:
+ break;
+ }
bail:
- return ret;
+ return ret;
}
tsip_ssession_id_t invite_handle_cmd(cmd_type_t cmd, const opts_L_t* opts)
{
- const session_t* session = tsk_null;
- tsip_ssession_id_t id = TSIP_SSESSION_INVALID_ID;
-
- if(!(session = session_handle_cmd(cmd, opts))){
- goto bail;
- }
- else{
- id = tsip_ssession_get_id(session->handle);
- }
-
- switch(cmd){
- case cmd_audio:
- case cmd_audiovideo:
- { /* Make Audio/Video call */
- tsip_action_handle_t* action_config = action_get_config(opts);
- tsip_api_invite_send_invite(session->handle, (cmd == cmd_audio) ? tmedia_audio : (tmedia_audio|tmedia_video),
- TSIP_ACTION_SET_CONFIG(action_config),
- /* Any other TSIP_ACTION_SET_*() macros */
- TSIP_ACTION_SET_NULL());
- TSK_OBJECT_SAFE_FREE(action_config);
- break;
- }
-
- case cmd_file:
- { /* Send file using MSRP protocol */
- tsip_action_handle_t* action_config = action_get_config(opts);
- const opt_t* opt = opt_get_by_type(opts, opt_path); // existance already checked
- /* Set Callback function */
- tsip_ssession_set(session->handle,
- TSIP_SSESSION_SET_MEDIA(
- TSIP_MSESSION_SET_MSRP_CB(invite_msrp_cb),
- TSIP_MSESSION_SET_NULL()
- ),
- TSIP_SSESSION_SET_NULL());
-
- /* Send INVITE */
- tsip_api_invite_send_invite(session->handle, tmedia_msrp,
- TSIP_ACTION_SET_CONFIG(action_config),
-
- TSIP_ACTION_SET_MEDIA(
- TMEDIA_SESSION_MSRP_SET_STR("file-path", opt->value),
- TMEDIA_SESSION_MSRP_SET_STR("accept-types", "application/octet-stream"),
- //TMEDIA_SESSION_MSRP_SET_STR("accept-wrapped-types", "application/octet-stream"),
- //TMEDIA_SESSION_MSRP_SET_STR("file-selector", "name:\"test.sn\" type:application/octet-stream size:3740 hash:sha-1:27:D0:AE:39:48:77:37:1D:FD:39:7E:2D:78:2F:BC:7B:94:48:29:81"),
- //TMEDIA_SESSION_MSRP_SET_STR("file-disposition", "attachment"),
- //TMEDIA_SESSION_MSRP_SET_STR("file-date", "creation:2010-02-13T17:50:31.763Z"),
- //TMEDIA_SESSION_MSRP_SET_STR("file-icon", "cid:test@doubango.org"),
-
- TMEDIA_SESSION_SET_NULL()
- ),
-
- TSIP_ACTION_SET_NULL());
- TSK_OBJECT_SAFE_FREE(action_config);
- break;
- }
-
- case cmd_dtmf:
- {
- const opt_t* opt = opt_get_by_type(opts, opt_event); // existance already checked
- tsip_action_handle_t* action_config = action_get_config(opts);
- tsip_api_invite_send_dtmf(session->handle, atoi(opt->value),
- TSIP_ACTION_SET_CONFIG(action_config),
- /* Any other TSIP_ACTION_SET_*() macros */
- TSIP_ACTION_SET_NULL());
- TSK_OBJECT_SAFE_FREE(action_config);
- break;
- }
-
- case cmd_ect:
- { /* Explict Call Transfer */
- const opt_t* opt = opt_get_by_type(opts, opt_to); // existance already checked
- tsip_action_handle_t* action_config = action_get_config(opts);
- tsip_api_invite_send_ect(session->handle, opt? opt->value : "sip:anonymous@example.com",
- TSIP_ACTION_SET_CONFIG(action_config),
- /* Any other TSIP_ACTION_SET_*() macros */
- TSIP_ACTION_SET_NULL());
- TSK_OBJECT_SAFE_FREE(action_config);
- break;
- }
-
- case cmd_hold:
- { /* Put the session on hold state */
- tsip_action_handle_t* action_config = action_get_config(opts);
- tsip_api_invite_send_hold(session->handle, tmedia_all,
- TSIP_ACTION_SET_CONFIG(action_config),
- /* Any other TSIP_ACTION_SET_*() macros */
- TSIP_ACTION_SET_NULL());
- TSK_OBJECT_SAFE_FREE(action_config);
- break;
- }
- case cmd_resume:
- { /* Put the session on hold state */
- tsip_action_handle_t* action_config = action_get_config(opts);
- tsip_api_invite_send_resume(session->handle, tmedia_all,
- TSIP_ACTION_SET_CONFIG(action_config),
- /* Any other TSIP_ACTION_SET_*() macros */
- TSIP_ACTION_SET_NULL());
- TSK_OBJECT_SAFE_FREE(action_config);
- break;
- }
- default:
- /* already handled by session_handle_cmd() */
- break;
- }
+ const session_t* session = tsk_null;
+ tsip_ssession_id_t id = TSIP_SSESSION_INVALID_ID;
+
+ if(!(session = session_handle_cmd(cmd, opts))) {
+ goto bail;
+ }
+ else {
+ id = tsip_ssession_get_id(session->handle);
+ }
+
+ switch(cmd) {
+ case cmd_audio:
+ case cmd_audiovideo: {
+ /* Make Audio/Video call */
+ tsip_action_handle_t* action_config = action_get_config(opts);
+ tsip_api_invite_send_invite(session->handle, (cmd == cmd_audio) ? tmedia_audio : (tmedia_audio|tmedia_video),
+ TSIP_ACTION_SET_CONFIG(action_config),
+ /* Any other TSIP_ACTION_SET_*() macros */
+ TSIP_ACTION_SET_NULL());
+ TSK_OBJECT_SAFE_FREE(action_config);
+ break;
+ }
+
+ case cmd_file: {
+ /* Send file using MSRP protocol */
+ tsip_action_handle_t* action_config = action_get_config(opts);
+ const opt_t* opt = opt_get_by_type(opts, opt_path); // existance already checked
+ /* Set Callback function */
+ tsip_ssession_set(session->handle,
+ TSIP_SSESSION_SET_MEDIA(
+ TSIP_MSESSION_SET_MSRP_CB(invite_msrp_cb),
+ TSIP_MSESSION_SET_NULL()
+ ),
+ TSIP_SSESSION_SET_NULL());
+
+ /* Send INVITE */
+ tsip_api_invite_send_invite(session->handle, tmedia_msrp,
+ TSIP_ACTION_SET_CONFIG(action_config),
+
+ TSIP_ACTION_SET_MEDIA(
+ TMEDIA_SESSION_MSRP_SET_STR("file-path", opt->value),
+ TMEDIA_SESSION_MSRP_SET_STR("accept-types", "application/octet-stream"),
+ //TMEDIA_SESSION_MSRP_SET_STR("accept-wrapped-types", "application/octet-stream"),
+ //TMEDIA_SESSION_MSRP_SET_STR("file-selector", "name:\"test.sn\" type:application/octet-stream size:3740 hash:sha-1:27:D0:AE:39:48:77:37:1D:FD:39:7E:2D:78:2F:BC:7B:94:48:29:81"),
+ //TMEDIA_SESSION_MSRP_SET_STR("file-disposition", "attachment"),
+ //TMEDIA_SESSION_MSRP_SET_STR("file-date", "creation:2010-02-13T17:50:31.763Z"),
+ //TMEDIA_SESSION_MSRP_SET_STR("file-icon", "cid:test@doubango.org"),
+
+ TMEDIA_SESSION_SET_NULL()
+ ),
+
+ TSIP_ACTION_SET_NULL());
+ TSK_OBJECT_SAFE_FREE(action_config);
+ break;
+ }
+
+ case cmd_dtmf: {
+ const opt_t* opt = opt_get_by_type(opts, opt_event); // existance already checked
+ tsip_action_handle_t* action_config = action_get_config(opts);
+ tsip_api_invite_send_dtmf(session->handle, atoi(opt->value),
+ TSIP_ACTION_SET_CONFIG(action_config),
+ /* Any other TSIP_ACTION_SET_*() macros */
+ TSIP_ACTION_SET_NULL());
+ TSK_OBJECT_SAFE_FREE(action_config);
+ break;
+ }
+
+ case cmd_ect: {
+ /* Explict Call Transfer */
+ const opt_t* opt = opt_get_by_type(opts, opt_to); // existance already checked
+ tsip_action_handle_t* action_config = action_get_config(opts);
+ tsip_api_invite_send_ect(session->handle, opt? opt->value : "sip:anonymous@example.com",
+ TSIP_ACTION_SET_CONFIG(action_config),
+ /* Any other TSIP_ACTION_SET_*() macros */
+ TSIP_ACTION_SET_NULL());
+ TSK_OBJECT_SAFE_FREE(action_config);
+ break;
+ }
+
+ case cmd_hold: {
+ /* Put the session on hold state */
+ tsip_action_handle_t* action_config = action_get_config(opts);
+ tsip_api_invite_send_hold(session->handle, tmedia_all,
+ TSIP_ACTION_SET_CONFIG(action_config),
+ /* Any other TSIP_ACTION_SET_*() macros */
+ TSIP_ACTION_SET_NULL());
+ TSK_OBJECT_SAFE_FREE(action_config);
+ break;
+ }
+ case cmd_resume: {
+ /* Put the session on hold state */
+ tsip_action_handle_t* action_config = action_get_config(opts);
+ tsip_api_invite_send_resume(session->handle, tmedia_all,
+ TSIP_ACTION_SET_CONFIG(action_config),
+ /* Any other TSIP_ACTION_SET_*() macros */
+ TSIP_ACTION_SET_NULL());
+ TSK_OBJECT_SAFE_FREE(action_config);
+ break;
+ }
+ default:
+ /* already handled by session_handle_cmd() */
+ break;
+ }
bail:
- return id;
+ return id;
}
int invite_msrp_cb(const tmsrp_event_t* _event)
{
- const session_t* session = _event->callback_data;
-
- if(_event->message){
- if(_event->message->end_line.cflag == '$'){
- TSK_DEBUG_INFO("Last Chunck");
- }
- switch(_event->message->type){
- case tmsrp_request:
- { /* MSRP Request */
-
-
- break;
- }
- case tmsrp_response:
- { /* MSRP Response */
- if(_event->message->ByteRange){
- TSK_DEBUG_INFO("MSRP Response code=%hi %lld-%lld/%lld", TMSRP_RESPONSE_CODE(_event->message),
- _event->message->ByteRange->start, _event->message->ByteRange->end, _event->message->ByteRange->total);
- }
- break;
- }
- default:
- TSK_DEBUG_ERROR("Invalid MSRP message");
- break;
- }
- }
-
- return 0;
+ const session_t* session = _event->callback_data;
+
+ if(_event->message) {
+ if(_event->message->end_line.cflag == '$') {
+ TSK_DEBUG_INFO("Last Chunck");
+ }
+ switch(_event->message->type) {
+ case tmsrp_request: {
+ /* MSRP Request */
+
+
+ break;
+ }
+ case tmsrp_response: {
+ /* MSRP Response */
+ if(_event->message->ByteRange) {
+ TSK_DEBUG_INFO("MSRP Response code=%hi %lld-%lld/%lld", TMSRP_RESPONSE_CODE(_event->message),
+ _event->message->ByteRange->start, _event->message->ByteRange->end, _event->message->ByteRange->total);
+ }
+ break;
+ }
+ default:
+ TSK_DEBUG_ERROR("Invalid MSRP message");
+ break;
+ }
+ }
+
+ return 0;
} \ No newline at end of file
diff --git a/tinyDEMO/invite.h b/tinyDEMO/invite.h
index 96c6a1f..659edfb 100755
--- a/tinyDEMO/invite.h
+++ b/tinyDEMO/invite.h
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
diff --git a/tinyDEMO/main.c b/tinyDEMO/main.c
index 3eb39c8..2340b9b 100755
--- a/tinyDEMO/main.c
+++ b/tinyDEMO/main.c
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
@@ -48,479 +48,455 @@ int execute(const cmd_t* );
/* === entry point === */
int main(int argc, char** argv)
{
- char cmdbuf[4096];
- tsk_buffer_t* buffer = tsk_null;
- cmd_t* cmd = tsk_null;
- tsk_bool_t comment = tsk_false;
- int ret;
- int i, index;
- const char* start = tsk_null, *end = tsk_null;
-
- int a = 32 | 1 | 2;
-
- /* Copyright */
- printf("Doubango Project (tinyDEMO)\nCopyright (C) 2009 - 2013 Mamadou Diop \n\n");
-
- /* Initialize Network Layer ==> Mandatory */
- tnet_startup();
- /* Initialize Doubango Audio/Video Framework ==> will register all plugins(codecs and sessions)
- * Not mandatory if you have your own plugins*/
- tdav_init();
-
- /* Print Usage */
- //cmd_print_help();
-
- /* create user's ctx */
- if(!(ctx = ctx_create()) || !ctx->stack){
- TSK_DEBUG_ERROR("Failed to create user's ctx.");
- goto bail;
- }
-
- /* create new buffer */
- if(!(buffer = tsk_buffer_create_null())){
- TSK_DEBUG_ERROR("Failed to create new buffer.");
- goto bail;
- }
-
- /* initial args */
- for(i=1 /* index zero contains the exe path */, index=0; i<argc && argv[i]; i++){
- if(index){
- tsk_buffer_append(buffer, " ", 1);
- }
- tsk_buffer_append(buffer, argv[i], tsk_strlen(argv[i]));
- }
-
- /* If initial args ==> parse it now */
- if(buffer->size){
- TSK_DEBUG_INFO("Initial command-line: %s", buffer->data);
- goto init_buffer;
- }
-
- /* always use fgets() instead of gets. gets() is considered to be unsafe.(Android and Mac OS X will warn) */
- while(fgets(cmdbuf, sizeof(cmdbuf), stdin)){
- TSK_DEBUG_INFO("Command-Line: %s", cmdbuf);
- tsk_buffer_cleanup(buffer); /* cannot read from console while executing scenario */
- tsk_buffer_append(buffer, cmdbuf, tsk_strlen(cmdbuf));
+ char cmdbuf[4096];
+ tsk_buffer_t* buffer = tsk_null;
+ cmd_t* cmd = tsk_null;
+ tsk_bool_t comment = tsk_false;
+ int ret;
+ int i, index;
+ const char* start = tsk_null, *end = tsk_null;
+
+ int a = 32 | 1 | 2;
+
+ /* Copyright */
+ printf("Doubango Project (tinyDEMO)\nCopyright (C) 2009 - 2013 Mamadou Diop \n\n");
+
+ /* Initialize Network Layer ==> Mandatory */
+ tnet_startup();
+ /* Initialize Doubango Audio/Video Framework ==> will register all plugins(codecs and sessions)
+ * Not mandatory if you have your own plugins*/
+ tdav_init();
+
+ /* Print Usage */
+ //cmd_print_help();
+
+ /* create user's ctx */
+ if(!(ctx = ctx_create()) || !ctx->stack) {
+ TSK_DEBUG_ERROR("Failed to create user's ctx.");
+ goto bail;
+ }
+
+ /* create new buffer */
+ if(!(buffer = tsk_buffer_create_null())) {
+ TSK_DEBUG_ERROR("Failed to create new buffer.");
+ goto bail;
+ }
+
+ /* initial args */
+ for(i=1 /* index zero contains the exe path */, index=0; i<argc && argv[i]; i++) {
+ if(index) {
+ tsk_buffer_append(buffer, " ", 1);
+ }
+ tsk_buffer_append(buffer, argv[i], tsk_strlen(argv[i]));
+ }
+
+ /* If initial args ==> parse it now */
+ if(buffer->size) {
+ TSK_DEBUG_INFO("Initial command-line: %s", buffer->data);
+ goto init_buffer;
+ }
+
+ /* always use fgets() instead of gets. gets() is considered to be unsafe.(Android and Mac OS X will warn) */
+ while(fgets(cmdbuf, sizeof(cmdbuf), stdin)) {
+ TSK_DEBUG_INFO("Command-Line: %s", cmdbuf);
+ tsk_buffer_cleanup(buffer); /* cannot read from console while executing scenario */
+ tsk_buffer_append(buffer, cmdbuf, tsk_strlen(cmdbuf));
init_buffer:
- start = buffer->data;
- //start = trim(start);
- end = start + buffer->size;
- if(start >= end){
- TSK_DEBUG_INFO("Empty buffer");
- continue;
- }
+ start = buffer->data;
+ //start = trim(start);
+ end = start + buffer->size;
+ if(start >= end) {
+ TSK_DEBUG_INFO("Empty buffer");
+ continue;
+ }
parse_buffer:
- TSK_OBJECT_SAFE_FREE(cmd); /* Free old value */
- cmd = cmd_parse(start, (end-start), &comment, ctx->params);
- if(cmd){
- if(comment || cmd->type == cmd_none){
- goto nex_line;
- }
- }
- else{
- continue;
- }
-
- /* Load from scenario file? */
- if(cmd->type == cmd_scenario){
- FILE* file;
- const opt_t* opt;
- tsk_size_t read = 0;
- tsk_bool_t rm_lf = tsk_false;
- if((opt = opt_get_by_type(cmd->opts, opt_path)) && !tsk_strnullORempty(opt->value)){ /* --path option */
- if((file = fopen(opt->value, "r"))){
- memset(cmdbuf, '\0', sizeof(cmdbuf)), cmdbuf[0] = '\n';
- read = fread(cmdbuf+1, sizeof(uint8_t), sizeof(cmdbuf)-1, file);
- fclose(file), file = tsk_null;
-
- if(read == 0){
- TSK_DEBUG_ERROR("[%s] is empty.", opt->value);
- goto nex_line;
- }
- else if(read == sizeof(cmdbuf)-1){
- TSK_DEBUG_ERROR("Buffer too short.");
-
- goto nex_line;
- }
- read++; /* \n */
- /* repplace all '\' with spaces (easier than handling that in the ragel file) */
- for(i=0; ((tsk_size_t)i)<read; i++){
- if(cmdbuf[i] == '\\'){
- cmdbuf[i] = ' ';
- rm_lf = tsk_true;
- }
- else if(rm_lf && cmdbuf[i] == '\n'){
- cmdbuf[i] = ' ';
- rm_lf = tsk_false;
- }
- }
- cmdbuf[read] = '\n';
-
- /* insert embedded scenario */
- if((index = tsk_strindexOf(start, (end-start), "\n")) == -1){ /* ++sn line */
- index = buffer->size;
- }
- else{
- index += (start - ((const char*)buffer->data));
- }
-
- if(tsk_buffer_insert(buffer, index, cmdbuf, read)){
- continue;
- }
- else{
- start = ((const char*)buffer->data) + index; // because insert use realloc()
- end = (((const char*)buffer->data) + buffer->size);
- goto nex_line;
- }
- }
- else{
- TSK_DEBUG_ERROR("Failed to open scenario-file [%s].", opt->value);
- goto nex_line;
- }
- continue;
- }
- else{
- TSK_DEBUG_ERROR("++scenario command must have --path option.");
- continue;
- }
- }
-
- /* execute current command */
- switch(cmd->type){
- case cmd_exit:
- TSK_DEBUG_INFO("Exit/Quit");
- goto bail;
- default:
- ret = execute(cmd);
- break;
- }
-
- /* next line */
+ TSK_OBJECT_SAFE_FREE(cmd); /* Free old value */
+ cmd = cmd_parse(start, (end-start), &comment, ctx->params);
+ if(cmd) {
+ if(comment || cmd->type == cmd_none) {
+ goto nex_line;
+ }
+ }
+ else {
+ continue;
+ }
+
+ /* Load from scenario file? */
+ if(cmd->type == cmd_scenario) {
+ FILE* file;
+ const opt_t* opt;
+ tsk_size_t read = 0;
+ tsk_bool_t rm_lf = tsk_false;
+ if((opt = opt_get_by_type(cmd->opts, opt_path)) && !tsk_strnullORempty(opt->value)) { /* --path option */
+ if((file = fopen(opt->value, "r"))) {
+ memset(cmdbuf, '\0', sizeof(cmdbuf)), cmdbuf[0] = '\n';
+ read = fread(cmdbuf+1, sizeof(uint8_t), sizeof(cmdbuf)-1, file);
+ fclose(file), file = tsk_null;
+
+ if(read == 0) {
+ TSK_DEBUG_ERROR("[%s] is empty.", opt->value);
+ goto nex_line;
+ }
+ else if(read == sizeof(cmdbuf)-1) {
+ TSK_DEBUG_ERROR("Buffer too short.");
+
+ goto nex_line;
+ }
+ read++; /* \n */
+ /* repplace all '\' with spaces (easier than handling that in the ragel file) */
+ for(i=0; ((tsk_size_t)i)<read; i++) {
+ if(cmdbuf[i] == '\\') {
+ cmdbuf[i] = ' ';
+ rm_lf = tsk_true;
+ }
+ else if(rm_lf && cmdbuf[i] == '\n') {
+ cmdbuf[i] = ' ';
+ rm_lf = tsk_false;
+ }
+ }
+ cmdbuf[read] = '\n';
+
+ /* insert embedded scenario */
+ if((index = tsk_strindexOf(start, (end-start), "\n")) == -1) { /* ++sn line */
+ index = buffer->size;
+ }
+ else {
+ index += (start - ((const char*)buffer->data));
+ }
+
+ if(tsk_buffer_insert(buffer, index, cmdbuf, read)) {
+ continue;
+ }
+ else {
+ start = ((const char*)buffer->data) + index; // because insert use realloc()
+ end = (((const char*)buffer->data) + buffer->size);
+ goto nex_line;
+ }
+ }
+ else {
+ TSK_DEBUG_ERROR("Failed to open scenario-file [%s].", opt->value);
+ goto nex_line;
+ }
+ continue;
+ }
+ else {
+ TSK_DEBUG_ERROR("++scenario command must have --path option.");
+ continue;
+ }
+ }
+
+ /* execute current command */
+ switch(cmd->type) {
+ case cmd_exit:
+ TSK_DEBUG_INFO("Exit/Quit");
+ goto bail;
+ default:
+ ret = execute(cmd);
+ break;
+ }
+
+ /* next line */
nex_line:
- if((index = tsk_strindexOf(start, (end - start), "\n")) !=-1){
- start += index;
- while((start < end) && isspace(*start)){
- start ++;
- }
- if((start + 2/*++*/) < end){
- goto parse_buffer; /* next line */
- }
- else{
- continue; /* wait for new commands */
- }
- }
- } /* while(buffer) */
+ if((index = tsk_strindexOf(start, (end - start), "\n")) !=-1) {
+ start += index;
+ while((start < end) && isspace(*start)) {
+ start ++;
+ }
+ if((start + 2/*++*/) < end) {
+ goto parse_buffer; /* next line */
+ }
+ else {
+ continue; /* wait for new commands */
+ }
+ }
+ } /* while(buffer) */
bail:
-
- /* Free current command */
- TSK_OBJECT_SAFE_FREE(cmd);
- /* Free buffer */
- TSK_OBJECT_SAFE_FREE(buffer);
- /* Destroy the user's ctx */
- TSK_OBJECT_SAFE_FREE(ctx);
- /* Deinitialize Doubango Audio/Video Framework ==> will unregister all plugins(codecs and sessions)
- * Not mandatory */
- tdav_init();
- /* Uninitilize Network Layer */
- tnet_cleanup();
+
+ /* Free current command */
+ TSK_OBJECT_SAFE_FREE(cmd);
+ /* Free buffer */
+ TSK_OBJECT_SAFE_FREE(buffer);
+ /* Destroy the user's ctx */
+ TSK_OBJECT_SAFE_FREE(ctx);
+ /* Deinitialize Doubango Audio/Video Framework ==> will unregister all plugins(codecs and sessions)
+ * Not mandatory */
+ tdav_init();
+ /* Uninitilize Network Layer */
+ tnet_cleanup();
#if ANDROID
- exit(0);
+ exit(0);
#endif
- return 0;
+ return 0;
}
const char* trim(const char* str)
{
- while(isspace(*str)){
- str++;
- }
- return str;
+ while(isspace(*str)) {
+ str++;
+ }
+ return str;
}
int update_param(const char* pname, const char* pvalue)
{
- if(ctx->params && pname){
- const tsk_param_t* param;
- if((param = tsk_params_get_param_by_name(ctx->params, pname))){
- tsk_strupdate(&TSK_PARAM(param)->value, pvalue);
- return 0;
- }
- else{
- TSK_DEBUG_INFO("[%s] parameter does not exist", pname);
- }
- }
- else{
- TSK_DEBUG_ERROR("Invalid parameter");
- }
- return -1;
+ if(ctx->params && pname) {
+ const tsk_param_t* param;
+ if((param = tsk_params_get_param_by_name(ctx->params, pname))) {
+ tsk_strupdate(&TSK_PARAM(param)->value, pvalue);
+ return 0;
+ }
+ else {
+ TSK_DEBUG_INFO("[%s] parameter does not exist", pname);
+ }
+ }
+ else {
+ TSK_DEBUG_ERROR("Invalid parameter");
+ }
+ return -1;
}
int execute(const cmd_t* cmd)
{
- int ret = 0;
- tsip_ssession_id_t sid;
- tsk_istr_t istr;
-
- if(!cmd){
- TSK_DEBUG_ERROR("Invalid parameter");
- return -1;
- }
-
- tsk_safeobj_lock(ctx);
-
- switch(cmd->type){
- case cmd_audio:
- case cmd_audiovideo:
- {
- TSK_DEBUG_INFO("command=audio/video");
- if((sid = invite_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID){
- if(cmd->sidparam){
- tsk_itoa(sid, &istr);
- update_param(cmd->sidparam, istr);
- }
- }
- break;
- }
- case cmd_config_session:
- {
- TSK_DEBUG_INFO("command=config-session");
- break;
- }
- case cmd_config_stack:
- {
- TSK_DEBUG_INFO("command=config-satck");
- ret = stack_config(cmd->opts);
- break;
- }
- case cmd_dtmf:
- {
- const opt_t* opt;
- TSK_DEBUG_INFO("command=dtmf");
- if(!(opt = opt_get_by_type(cmd->opts, opt_sid)) || tsk_strnullORempty(opt->value)){ /* --sid option */
- TSK_DEBUG_ERROR("++dtmf command need --sid option");
- break;
- }
- if(!(opt = opt_get_by_type(cmd->opts, opt_event)) || tsk_strnullORempty(opt->value)){ /* --event option */
- TSK_DEBUG_ERROR("++dtmf command need --event option");
- break;
- }
- invite_handle_cmd(cmd->type, cmd->opts);
- break;
- }
- case cmd_dump:
- {
- TSK_DEBUG_INFO("command=dump");
- ret = stack_dump();
- break;
- }
- case cmd_ect:
- {
- const opt_t* opt;
- TSK_DEBUG_INFO("command=ect");
- if((opt = opt_get_by_type(cmd->opts, opt_sid)) && !tsk_strnullORempty(opt->value)){
- TSK_DEBUG_ERROR("++ect command need --sid option");
- ret = -1;
- break;
- }
- if((opt = opt_get_by_type(cmd->opts, opt_to)) && !tsk_strnullORempty(opt->value)){
- TSK_DEBUG_ERROR("++ect command need --to option");
- ret = -1;
- break;
- }
- invite_handle_cmd(cmd->type, cmd->opts);
- break;
- }
- case cmd_exit:
- {
- TSK_DEBUG_INFO("command=exit");
- goto bail;
- break;
- }
- case cmd_file:
- {
- const opt_t* opt;
- TSK_DEBUG_INFO("command=file");
- if(!(opt = opt_get_by_type(cmd->opts, opt_path)) || tsk_strnullORempty(opt->value)){
- TSK_DEBUG_ERROR("++file command need --path option");
- break;
- }
- if((sid = invite_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID){
- if(cmd->sidparam){
- tsk_itoa(sid, &istr);
- update_param(cmd->sidparam, istr);
- }
- }
- break;
- }
- case cmd_hangup:
- {
- const opt_t* opt;
- TSK_DEBUG_INFO("command=hangup");
- if((opt = opt_get_by_type(cmd->opts, opt_sid)) && !tsk_strnullORempty(opt->value)){ /* --sid option */
- ret = session_hangup(tsk_atoll(opt->value));
- }
- else{
- TSK_DEBUG_ERROR("++hangup command need --sid option");
- ret = -1;
- }
- break;
- }
- case cmd_help:
- {
- TSK_DEBUG_INFO("command=help");
- cmd_print_help();
- break;
- }
- case cmd_hold:
- {
- const opt_t* opt;
- TSK_DEBUG_INFO("command=hold");
- if((opt = opt_get_by_type(cmd->opts, opt_sid)) && !tsk_strnullORempty(opt->value)){ /* --sid option */
- invite_handle_cmd(cmd->type, cmd->opts);
- }
- else{
- TSK_DEBUG_ERROR("++hold command need --sid option");
- ret = -1;
- }
- break;
- }
- case cmd_message:
- {
- TSK_DEBUG_INFO("command=message");
- if((sid = message_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID){
- if(cmd->sidparam){
- tsk_itoa(sid, &istr);
- update_param(cmd->sidparam, istr);
- }
- }
- break;
- }
-
- case cmd_options:
- {
- TSK_DEBUG_INFO("command=options");
- if((sid = options_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID){
- if(cmd->sidparam){
- tsk_itoa(sid, &istr);
- update_param(cmd->sidparam, istr);
- }
- }
- break;
- }
- case cmd_publish:
- {
- TSK_DEBUG_INFO("command=publish");
- if((sid = publish_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID){
- if(cmd->sidparam){
- tsk_itoa(sid, &istr);
- update_param(cmd->sidparam, istr);
- }
- }
- break;
- }
- case cmd_register:
- {
- TSK_DEBUG_INFO("command=register");
- if((sid = register_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID){
- if(cmd->sidparam){
- tsk_itoa(sid, &istr);
- update_param(cmd->sidparam, istr);
- }
- }
- break;
- }
- case cmd_resume:
- {
- const opt_t* opt;
- TSK_DEBUG_INFO("command=resume");
- if((opt = opt_get_by_type(cmd->opts, opt_sid)) && !tsk_strnullORempty(opt->value)){ /* --sid option */
- invite_handle_cmd(cmd->type, cmd->opts);
- }
- else{
- TSK_DEBUG_ERROR("++resume command need --sid option");
- ret = -1;
- }
- break;
- }
- case cmd_run:
- {
- TSK_DEBUG_INFO("command=run");
- ret = stack_run(cmd->opts);
- break;
- }
- case cmd_scenario:
- {
- TSK_DEBUG_INFO("command=scenario");
- break;
- }
- case cmd_sleep:
- {
- const opt_t* opt;
- double seconds;
-
- tsk_safeobj_unlock(ctx); /* beacuse of callback function */
-
- if((opt = opt_get_by_type(cmd->opts, opt_sec)) && !tsk_strnullORempty(opt->value)){ /* --sec option */
- seconds = strtod(opt->value, tsk_null); /* strtod() is better than atof() */
- if(seconds<=0){
- printf("\n==== Press ENTER to continue...\n");
- getchar();
- }
- else{
- TSK_DEBUG_INFO("Sleeping %f seconds", seconds);
- tsk_thread_sleep((uint64_t)(seconds * 1000));
- }
- }
- else{
- TSK_DEBUG_WARN("++sleep need --sec option.");
- }
- return 0; /* bail: will unlock again */
- }
- case cmd_sms:
- {
- TSK_DEBUG_INFO("command=sms");
- if((sid = message_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID){
- if(cmd->sidparam){
- tsk_itoa(sid, &istr);
- update_param(cmd->sidparam, istr);
- }
- }
- break;
- }
- case cmd_stop:
- {
- TSK_DEBUG_INFO("command=stop");
- tsip_stack_stop(ctx->stack);
- break;
- }
- case cmd_subscribe:
- {
- TSK_DEBUG_INFO("command=subscribe");
- if((sid = subscribe_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID){
- if(cmd->sidparam){
- tsk_itoa(sid, &istr);
- update_param(cmd->sidparam, istr);
- }
- }
- break;
- }
- case cmd_video:
- {
- TSK_DEBUG_INFO("command=video");
- break;
- }
- default:
- {
- TSK_DEBUG_ERROR("%d not a valid command.", cmd);
- break;
- }
- }
+ int ret = 0;
+ tsip_ssession_id_t sid;
+ tsk_istr_t istr;
+
+ if(!cmd) {
+ TSK_DEBUG_ERROR("Invalid parameter");
+ return -1;
+ }
+
+ tsk_safeobj_lock(ctx);
+
+ switch(cmd->type) {
+ case cmd_audio:
+ case cmd_audiovideo: {
+ TSK_DEBUG_INFO("command=audio/video");
+ if((sid = invite_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID) {
+ if(cmd->sidparam) {
+ tsk_itoa(sid, &istr);
+ update_param(cmd->sidparam, istr);
+ }
+ }
+ break;
+ }
+ case cmd_config_session: {
+ TSK_DEBUG_INFO("command=config-session");
+ break;
+ }
+ case cmd_config_stack: {
+ TSK_DEBUG_INFO("command=config-satck");
+ ret = stack_config(cmd->opts);
+ break;
+ }
+ case cmd_dtmf: {
+ const opt_t* opt;
+ TSK_DEBUG_INFO("command=dtmf");
+ if(!(opt = opt_get_by_type(cmd->opts, opt_sid)) || tsk_strnullORempty(opt->value)) { /* --sid option */
+ TSK_DEBUG_ERROR("++dtmf command need --sid option");
+ break;
+ }
+ if(!(opt = opt_get_by_type(cmd->opts, opt_event)) || tsk_strnullORempty(opt->value)) { /* --event option */
+ TSK_DEBUG_ERROR("++dtmf command need --event option");
+ break;
+ }
+ invite_handle_cmd(cmd->type, cmd->opts);
+ break;
+ }
+ case cmd_dump: {
+ TSK_DEBUG_INFO("command=dump");
+ ret = stack_dump();
+ break;
+ }
+ case cmd_ect: {
+ const opt_t* opt;
+ TSK_DEBUG_INFO("command=ect");
+ if((opt = opt_get_by_type(cmd->opts, opt_sid)) && !tsk_strnullORempty(opt->value)) {
+ TSK_DEBUG_ERROR("++ect command need --sid option");
+ ret = -1;
+ break;
+ }
+ if((opt = opt_get_by_type(cmd->opts, opt_to)) && !tsk_strnullORempty(opt->value)) {
+ TSK_DEBUG_ERROR("++ect command need --to option");
+ ret = -1;
+ break;
+ }
+ invite_handle_cmd(cmd->type, cmd->opts);
+ break;
+ }
+ case cmd_exit: {
+ TSK_DEBUG_INFO("command=exit");
+ goto bail;
+ break;
+ }
+ case cmd_file: {
+ const opt_t* opt;
+ TSK_DEBUG_INFO("command=file");
+ if(!(opt = opt_get_by_type(cmd->opts, opt_path)) || tsk_strnullORempty(opt->value)) {
+ TSK_DEBUG_ERROR("++file command need --path option");
+ break;
+ }
+ if((sid = invite_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID) {
+ if(cmd->sidparam) {
+ tsk_itoa(sid, &istr);
+ update_param(cmd->sidparam, istr);
+ }
+ }
+ break;
+ }
+ case cmd_hangup: {
+ const opt_t* opt;
+ TSK_DEBUG_INFO("command=hangup");
+ if((opt = opt_get_by_type(cmd->opts, opt_sid)) && !tsk_strnullORempty(opt->value)) { /* --sid option */
+ ret = session_hangup(tsk_atoll(opt->value));
+ }
+ else {
+ TSK_DEBUG_ERROR("++hangup command need --sid option");
+ ret = -1;
+ }
+ break;
+ }
+ case cmd_help: {
+ TSK_DEBUG_INFO("command=help");
+ cmd_print_help();
+ break;
+ }
+ case cmd_hold: {
+ const opt_t* opt;
+ TSK_DEBUG_INFO("command=hold");
+ if((opt = opt_get_by_type(cmd->opts, opt_sid)) && !tsk_strnullORempty(opt->value)) { /* --sid option */
+ invite_handle_cmd(cmd->type, cmd->opts);
+ }
+ else {
+ TSK_DEBUG_ERROR("++hold command need --sid option");
+ ret = -1;
+ }
+ break;
+ }
+ case cmd_message: {
+ TSK_DEBUG_INFO("command=message");
+ if((sid = message_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID) {
+ if(cmd->sidparam) {
+ tsk_itoa(sid, &istr);
+ update_param(cmd->sidparam, istr);
+ }
+ }
+ break;
+ }
+
+ case cmd_options: {
+ TSK_DEBUG_INFO("command=options");
+ if((sid = options_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID) {
+ if(cmd->sidparam) {
+ tsk_itoa(sid, &istr);
+ update_param(cmd->sidparam, istr);
+ }
+ }
+ break;
+ }
+ case cmd_publish: {
+ TSK_DEBUG_INFO("command=publish");
+ if((sid = publish_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID) {
+ if(cmd->sidparam) {
+ tsk_itoa(sid, &istr);
+ update_param(cmd->sidparam, istr);
+ }
+ }
+ break;
+ }
+ case cmd_register: {
+ TSK_DEBUG_INFO("command=register");
+ if((sid = register_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID) {
+ if(cmd->sidparam) {
+ tsk_itoa(sid, &istr);
+ update_param(cmd->sidparam, istr);
+ }
+ }
+ break;
+ }
+ case cmd_resume: {
+ const opt_t* opt;
+ TSK_DEBUG_INFO("command=resume");
+ if((opt = opt_get_by_type(cmd->opts, opt_sid)) && !tsk_strnullORempty(opt->value)) { /* --sid option */
+ invite_handle_cmd(cmd->type, cmd->opts);
+ }
+ else {
+ TSK_DEBUG_ERROR("++resume command need --sid option");
+ ret = -1;
+ }
+ break;
+ }
+ case cmd_run: {
+ TSK_DEBUG_INFO("command=run");
+ ret = stack_run(cmd->opts);
+ break;
+ }
+ case cmd_scenario: {
+ TSK_DEBUG_INFO("command=scenario");
+ break;
+ }
+ case cmd_sleep: {
+ const opt_t* opt;
+ double seconds;
+
+ tsk_safeobj_unlock(ctx); /* beacuse of callback function */
+
+ if((opt = opt_get_by_type(cmd->opts, opt_sec)) && !tsk_strnullORempty(opt->value)) { /* --sec option */
+ seconds = strtod(opt->value, tsk_null); /* strtod() is better than atof() */
+ if(seconds<=0) {
+ printf("\n==== Press ENTER to continue...\n");
+ getchar();
+ }
+ else {
+ TSK_DEBUG_INFO("Sleeping %f seconds", seconds);
+ tsk_thread_sleep((uint64_t)(seconds * 1000));
+ }
+ }
+ else {
+ TSK_DEBUG_WARN("++sleep need --sec option.");
+ }
+ return 0; /* bail: will unlock again */
+ }
+ case cmd_sms: {
+ TSK_DEBUG_INFO("command=sms");
+ if((sid = message_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID) {
+ if(cmd->sidparam) {
+ tsk_itoa(sid, &istr);
+ update_param(cmd->sidparam, istr);
+ }
+ }
+ break;
+ }
+ case cmd_stop: {
+ TSK_DEBUG_INFO("command=stop");
+ tsip_stack_stop(ctx->stack);
+ break;
+ }
+ case cmd_subscribe: {
+ TSK_DEBUG_INFO("command=subscribe");
+ if((sid = subscribe_handle_cmd(cmd->type, cmd->opts)) != TSIP_SSESSION_INVALID_ID) {
+ if(cmd->sidparam) {
+ tsk_itoa(sid, &istr);
+ update_param(cmd->sidparam, istr);
+ }
+ }
+ break;
+ }
+ case cmd_video: {
+ TSK_DEBUG_INFO("command=video");
+ break;
+ }
+ default: {
+ TSK_DEBUG_ERROR("%d not a valid command.", cmd);
+ break;
+ }
+ }
bail:
- tsk_safeobj_unlock(ctx);
+ tsk_safeobj_unlock(ctx);
- return ret;
+ return ret;
}
diff --git a/tinyDEMO/main.h b/tinyDEMO/main.h
index 351f334..a71f942 100755
--- a/tinyDEMO/main.h
+++ b/tinyDEMO/main.h
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
diff --git a/tinyDEMO/message.c b/tinyDEMO/message.c
index b0a97aa..fe826db 100755
--- a/tinyDEMO/message.c
+++ b/tinyDEMO/message.c
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
@@ -33,238 +33,236 @@ tsk_buffer_t* sms_submit(const tsip_uri_t* smsc, const tsip_uri_t* dest, const c
int message_handle_event(const tsip_event_t *_event)
{
- const tsip_message_event_t* msg_event = TSIP_MESSAGE_EVENT(_event);
- const session_t* session = tsk_null;
- tsip_ssession_id_t sid;
- int ret = 0;
+ const tsip_message_event_t* msg_event = TSIP_MESSAGE_EVENT(_event);
+ const session_t* session = tsk_null;
+ tsip_ssession_id_t sid;
+ int ret = 0;
+
+ /* Find associated session */
+ sid = tsip_ssession_get_id(_event->ss);
+ if(!(session = session_get_by_sid(ctx->sessions, sid))) {
+ if(tsip_ssession_have_ownership(_event->ss)) {
+ /* it's or own session and we fail to match it ==> should never happen */
+ TSK_DEBUG_ERROR("Failed to match session event.");
+ ret = -2;
+ goto bail;
+ }
+ else {
+ /* it's a "server-side-session" (incoming MESSAGE) */
+ session_t* _session;
+ if((_session = session_server_create(st_message, _event->ss)) && (session = _session)) {
+ tsk_list_push_back_data(ctx->sessions, (void**)&_session);
+ }
+ else {
+ TSK_DEBUG_ERROR("Failed to create \"sever-side-session\".");
+ ret = -3;
+ goto bail;
+ }
+ }
+ }
- /* Find associated session */
- sid = tsip_ssession_get_id(_event->ss);
- if(!(session = session_get_by_sid(ctx->sessions, sid))){
- if(tsip_ssession_have_ownership(_event->ss)){
- /* it's or own session and we fail to match it ==> should never happen */
- TSK_DEBUG_ERROR("Failed to match session event.");
- ret = -2;
- goto bail;
- }
- else{
- /* it's a "server-side-session" (incoming MESSAGE) */
- session_t* _session;
- if((_session = session_server_create(st_message, _event->ss)) && (session = _session)){
- tsk_list_push_back_data(ctx->sessions, (void**)&_session);
- }
- else{
- TSK_DEBUG_ERROR("Failed to create \"sever-side-session\".");
- ret = -3;
- goto bail;
- }
- }
- }
-
- switch(msg_event->type){
- case tsip_ao_message: /* Answer to outgoing MESSAGE */
- {
- TSK_DEBUG_INFO("Event: Answer to outgoing MESSAGE. Code=%d", TSIP_RESPONSE_CODE(_event->sipmessage));
- if(TSIP_RESPONSE_IS_2XX(_event->sipmessage)){
- TSK_DEBUG_INFO("Message successfully sent.");
- }
- break;
- }
+ switch(msg_event->type) {
+ case tsip_ao_message: { /* Answer to outgoing MESSAGE */
+ TSK_DEBUG_INFO("Event: Answer to outgoing MESSAGE. Code=%d", TSIP_RESPONSE_CODE(_event->sipmessage));
+ if(TSIP_RESPONSE_IS_2XX(_event->sipmessage)) {
+ TSK_DEBUG_INFO("Message successfully sent.");
+ }
+ break;
+ }
- case tsip_i_message: /* Incoming MESSAGE */
- {
- const char* content_type = TSIP_MESSAGE_CONTENT_TYPE(_event->sipmessage);
+ case tsip_i_message: { /* Incoming MESSAGE */
+ const char* content_type = TSIP_MESSAGE_CONTENT_TYPE(_event->sipmessage);
- TSK_DEBUG_INFO("Event: Incoming MESSAGE.");
- if(TSIP_MESSAGE_HAS_CONTENT(_event->sipmessage)){
- const tsk_buffer_t* content = TSIP_MESSAGE_CONTENT(_event->sipmessage);
- TSK_DEBUG_INFO("MESSAGE Content-Type: %s", content_type);
- TSK_DEBUG_INFO("MESSAGE Content: %s", content->data);
- }
- /* accept() the MESSAGE to terminate the dialog */
- if(tsk_striequals("plain/text", content_type) || tsk_striequals("text/html", content_type)){
- tsip_api_common_accept(session->handle,
- TSIP_ACTION_SET_HEADER("Info", "I've accept()ed your message"),// just for test
- TSIP_ACTION_SET_NULL());
- }
- /* reject() the MESSAGE to terminate the dialog */
- else{
- tsip_api_common_reject(session->handle,
- TSIP_ACTION_SET_HEADER("Info", "I've reject()ed your message"),// just for test
- TSIP_ACTION_SET_HEADER("In-Reply-To", "apb03a0s09dkjdfglkj49112"),// just for test
- TSIP_ACTION_SET_NULL());
- }
- break;
- }
+ TSK_DEBUG_INFO("Event: Incoming MESSAGE.");
+ if(TSIP_MESSAGE_HAS_CONTENT(_event->sipmessage)) {
+ const tsk_buffer_t* content = TSIP_MESSAGE_CONTENT(_event->sipmessage);
+ TSK_DEBUG_INFO("MESSAGE Content-Type: %s", content_type);
+ TSK_DEBUG_INFO("MESSAGE Content: %s", content->data);
+ }
+ /* accept() the MESSAGE to terminate the dialog */
+ if(tsk_striequals("plain/text", content_type) || tsk_striequals("text/html", content_type)) {
+ tsip_api_common_accept(session->handle,
+ TSIP_ACTION_SET_HEADER("Info", "I've accept()ed your message"),// just for test
+ TSIP_ACTION_SET_NULL());
+ }
+ /* reject() the MESSAGE to terminate the dialog */
+ else {
+ tsip_api_common_reject(session->handle,
+ TSIP_ACTION_SET_HEADER("Info", "I've reject()ed your message"),// just for test
+ TSIP_ACTION_SET_HEADER("In-Reply-To", "apb03a0s09dkjdfglkj49112"),// just for test
+ TSIP_ACTION_SET_NULL());
+ }
+ break;
+ }
- default:
- { /* Any other event */
- TSK_DEBUG_WARN("%d not a valid SIP Messaging event.", msg_event->type);
- break;
- }
- }
+ default: {
+ /* Any other event */
+ TSK_DEBUG_WARN("%d not a valid SIP Messaging event.", msg_event->type);
+ break;
+ }
+ }
bail:
- return ret;
+ return ret;
}
tsip_ssession_id_t message_handle_cmd(cmd_type_t cmd, const opts_L_t* opts)
{
- const session_t* session = tsk_null;
- const opt_t* opt;
- tsip_ssession_id_t id = TSIP_SSESSION_INVALID_ID;
+ const session_t* session = tsk_null;
+ const opt_t* opt;
+ tsip_ssession_id_t id = TSIP_SSESSION_INVALID_ID;
- if(!(session = session_handle_cmd(cmd, opts))){
- goto bail;
- }
- else{
- id = tsip_ssession_get_id(session->handle);
- }
-
- switch(cmd){
- case cmd_message:
- { /* Send SIP MESSAGE */
- tsip_action_handle_t* action_config = action_get_config(opts);
- tsip_api_message_send_message(session->handle,
- TSIP_ACTION_SET_CONFIG(action_config),
- /* Any other TSIP_ACTION_SET_*() macros */
- TSIP_ACTION_SET_NULL());
- TSK_OBJECT_SAFE_FREE(action_config);
- break;
- }
- case cmd_sms:
- { /* Binary SMS (RP-DATA) */
- const char* ascii_pay = tsk_null;
- tsk_buffer_t* binary_pay = tsk_null;
- if((opt = opt_get_by_type(opts, opt_smsc)) && !tsk_strnullORempty(opt->value)){
- tsip_uri_t* smsc = tsip_uri_parse(opt->value, tsk_strlen(opt->value));
- tsip_uri_t* dest = tsk_null;
- if(smsc){
- /* Valid phone number for the SMSC address? */
- if(!is_valid_telnum(smsc)){
- TSK_DEBUG_ERROR("[%s] contains invalid telephone number", opt->value);
- goto done;
- }
- tsip_ssession_set(session->handle,
- TSIP_SSESSION_SET_TO(opt->value),
- TSIP_SSESSION_SET_NULL());
+ if(!(session = session_handle_cmd(cmd, opts))) {
+ goto bail;
+ }
+ else {
+ id = tsip_ssession_get_id(session->handle);
+ }
- /* Destination URI */
- if((opt = opt_get_by_type(opts, opt_to)) && !tsk_strnullORempty(opt->value)){
- if((dest = tsip_uri_parse(opt->value, tsk_strlen(opt->value)))){
- if(!is_valid_telnum(dest)){
- TSK_DEBUG_ERROR("[%s] contains invalid telephone number", opt->value);
- goto done;
- }
- }
- else{
- TSK_DEBUG_ERROR("[%s] is an invalid SIP/tel uri", opt->value);
- goto done;
- }
- }
- else{
- TSK_DEBUG_ERROR("++sms command need --to");
- goto done;
- }
+ switch(cmd) {
+ case cmd_message: {
+ /* Send SIP MESSAGE */
+ tsip_action_handle_t* action_config = action_get_config(opts);
+ tsip_api_message_send_message(session->handle,
+ TSIP_ACTION_SET_CONFIG(action_config),
+ /* Any other TSIP_ACTION_SET_*() macros */
+ TSIP_ACTION_SET_NULL());
+ TSK_OBJECT_SAFE_FREE(action_config);
+ break;
+ }
+ case cmd_sms: {
+ /* Binary SMS (RP-DATA) */
+ const char* ascii_pay = tsk_null;
+ tsk_buffer_t* binary_pay = tsk_null;
+ if((opt = opt_get_by_type(opts, opt_smsc)) && !tsk_strnullORempty(opt->value)) {
+ tsip_uri_t* smsc = tsip_uri_parse(opt->value, tsk_strlen(opt->value));
+ tsip_uri_t* dest = tsk_null;
+ if(smsc) {
+ /* Valid phone number for the SMSC address? */
+ if(!is_valid_telnum(smsc)) {
+ TSK_DEBUG_ERROR("[%s] contains invalid telephone number", opt->value);
+ goto done;
+ }
+ tsip_ssession_set(session->handle,
+ TSIP_SSESSION_SET_TO(opt->value),
+ TSIP_SSESSION_SET_NULL());
- /* Payload? */
- if((opt = opt_get_by_type(opts, opt_payload)) && !tsk_strnullORempty(opt->value)){
- ascii_pay = opt->value;
- }
- else{
- TSK_DEBUG_ERROR("++sms command need --to");
- goto done;
- }
+ /* Destination URI */
+ if((opt = opt_get_by_type(opts, opt_to)) && !tsk_strnullORempty(opt->value)) {
+ if((dest = tsip_uri_parse(opt->value, tsk_strlen(opt->value)))) {
+ if(!is_valid_telnum(dest)) {
+ TSK_DEBUG_ERROR("[%s] contains invalid telephone number", opt->value);
+ goto done;
+ }
+ }
+ else {
+ TSK_DEBUG_ERROR("[%s] is an invalid SIP/tel uri", opt->value);
+ goto done;
+ }
+ }
+ else {
+ TSK_DEBUG_ERROR("++sms command need --to");
+ goto done;
+ }
- /* Create the binary content */
- if(!(binary_pay = sms_submit(smsc, dest, ascii_pay))){
- TSK_DEBUG_ERROR("Failed to encode RP-DATA(SMS-SUBMIT) message.");
- goto done;
- }
+ /* Payload? */
+ if((opt = opt_get_by_type(opts, opt_payload)) && !tsk_strnullORempty(opt->value)) {
+ ascii_pay = opt->value;
+ }
+ else {
+ TSK_DEBUG_ERROR("++sms command need --to");
+ goto done;
+ }
+
+ /* Create the binary content */
+ if(!(binary_pay = sms_submit(smsc, dest, ascii_pay))) {
+ TSK_DEBUG_ERROR("Failed to encode RP-DATA(SMS-SUBMIT) message.");
+ goto done;
+ }
+
+ /* Send the message */
+ tsip_api_message_send_message(session->handle,
+ /* TSIP_ACTION_SET_HEADER("Content-Type", "application/vnd.3gpp.sms"), */
+ /* TSIP_ACTION_SET_HEADER("Transfer-Encoding", "binary"),*/
+ TSIP_ACTION_SET_PAYLOAD(binary_pay->data, binary_pay->size),
+ TSIP_ACTION_SET_NULL());
- /* Send the message */
- tsip_api_message_send_message(session->handle,
- /* TSIP_ACTION_SET_HEADER("Content-Type", "application/vnd.3gpp.sms"), */
- /* TSIP_ACTION_SET_HEADER("Transfer-Encoding", "binary"),*/
- TSIP_ACTION_SET_PAYLOAD(binary_pay->data, binary_pay->size),
- TSIP_ACTION_SET_NULL());
-
done:
- TSK_OBJECT_SAFE_FREE(binary_pay);
- TSK_OBJECT_SAFE_FREE(dest);
- TSK_OBJECT_SAFE_FREE(smsc);
- }
- else{
- TSK_DEBUG_ERROR("[%s] is an invalid SIP/tel uri", opt->value);
- break;
- }
- }
- else{
- TSK_DEBUG_ERROR("++sms command need --smsc");
- break;
- }
- break;
- }
- default:
- /* already handled by session_handle_cmd() */
- break;
- }
-
+ TSK_OBJECT_SAFE_FREE(binary_pay);
+ TSK_OBJECT_SAFE_FREE(dest);
+ TSK_OBJECT_SAFE_FREE(smsc);
+ }
+ else {
+ TSK_DEBUG_ERROR("[%s] is an invalid SIP/tel uri", opt->value);
+ break;
+ }
+ }
+ else {
+ TSK_DEBUG_ERROR("++sms command need --smsc");
+ break;
+ }
+ break;
+ }
+ default:
+ /* already handled by session_handle_cmd() */
+ break;
+ }
+
bail:
- return id;
+ return id;
}
tsk_bool_t is_valid_telnum(const tsip_uri_t* uri)
{
- tsk_size_t i;
- tsk_size_t len;
+ tsk_size_t i;
+ tsk_size_t len;
- if(!uri || tsk_strnullORempty(uri->user_name)){
- return tsk_false;
- }
+ if(!uri || tsk_strnullORempty(uri->user_name)) {
+ return tsk_false;
+ }
- for(i = 0, len = tsk_strlen(uri->user_name); i<len; i++){
- if(uri->user_name[i] != '+' && !isdigit(uri->user_name[i])){
- return tsk_false;
- }
- }
- return tsk_true;
+ for(i = 0, len = tsk_strlen(uri->user_name); i<len; i++) {
+ if(uri->user_name[i] != '+' && !isdigit(uri->user_name[i])) {
+ return tsk_false;
+ }
+ }
+ return tsk_true;
}
tsk_buffer_t* sms_submit(const tsip_uri_t* smsc, const tsip_uri_t* dest, const char* ascii_pay)
{
- static uint8_t mr = 0x00;
+ static uint8_t mr = 0x00;
- int ret;
- tsk_buffer_t* buffer = tsk_null;
- tsms_tpdu_submit_t* sms_submit = tsk_null;
- tsms_rpdu_data_t* rp_data = tsk_null;
+ int ret;
+ tsk_buffer_t* buffer = tsk_null;
+ tsms_tpdu_submit_t* sms_submit = tsk_null;
+ tsms_rpdu_data_t* rp_data = tsk_null;
- // create SMS-SUBMIT message
- sms_submit = tsms_tpdu_submit_create(++mr, (const uint8_t*)smsc->user_name, (const uint8_t*)dest->user_name);
- // Set content for SMS-SUBMIT
- if((buffer = tsms_pack_to_7bit(ascii_pay))){
- if((ret = tsms_tpdu_submit_set_userdata(sms_submit, buffer, tsms_alpha_7bit))){
- goto bail;
- }
- TSK_OBJECT_SAFE_FREE(buffer);
- }
- // create Mobile Originated (MO) RP-DATA message
- if((rp_data = tsms_rpdu_data_create_mo(mr, (const uint8_t*)smsc->user_name, TSMS_TPDU_MESSAGE(sms_submit)))){
- // serialize into a buffer
- if((buffer = tsk_buffer_create_null())){
- ret = tsms_rpdu_data_serialize(rp_data, buffer);
- }
- }
+ // create SMS-SUBMIT message
+ sms_submit = tsms_tpdu_submit_create(++mr, (const uint8_t*)smsc->user_name, (const uint8_t*)dest->user_name);
+ // Set content for SMS-SUBMIT
+ if((buffer = tsms_pack_to_7bit(ascii_pay))) {
+ if((ret = tsms_tpdu_submit_set_userdata(sms_submit, buffer, tsms_alpha_7bit))) {
+ goto bail;
+ }
+ TSK_OBJECT_SAFE_FREE(buffer);
+ }
+ // create Mobile Originated (MO) RP-DATA message
+ if((rp_data = tsms_rpdu_data_create_mo(mr, (const uint8_t*)smsc->user_name, TSMS_TPDU_MESSAGE(sms_submit)))) {
+ // serialize into a buffer
+ if((buffer = tsk_buffer_create_null())) {
+ ret = tsms_rpdu_data_serialize(rp_data, buffer);
+ }
+ }
bail:
- if(ret){ /* Failed? */
- TSK_OBJECT_SAFE_FREE(buffer);
- }
- TSK_OBJECT_SAFE_FREE(sms_submit);
- TSK_OBJECT_SAFE_FREE(rp_data);
+ if(ret) { /* Failed? */
+ TSK_OBJECT_SAFE_FREE(buffer);
+ }
+ TSK_OBJECT_SAFE_FREE(sms_submit);
+ TSK_OBJECT_SAFE_FREE(rp_data);
- return buffer;
+ return buffer;
}
diff --git a/tinyDEMO/message.h b/tinyDEMO/message.h
index 6adb9c5..4b433ac 100755
--- a/tinyDEMO/message.h
+++ b/tinyDEMO/message.h
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
diff --git a/tinyDEMO/options.c b/tinyDEMO/options.c
index e46defb..00a719e 100755
--- a/tinyDEMO/options.c
+++ b/tinyDEMO/options.c
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
@@ -28,88 +28,88 @@ int options_hack_aor(const tsip_response_t* resp);
int options_handle_event(const tsip_event_t *_event)
{
- const tsip_options_event_t* opt_event = TSIP_OPTIONS_EVENT(_event);
- const session_t* session;
- tsip_ssession_id_t sid;
+ const tsip_options_event_t* opt_event = TSIP_OPTIONS_EVENT(_event);
+ const session_t* session;
+ tsip_ssession_id_t sid;
- /* Find associated session */
- sid = tsip_ssession_get_id(_event->ss);
- if(!(session = session_get_by_sid(ctx->sessions, sid))){
- TSK_DEBUG_WARN("Failed to match session event.");
- return -1;
- }
+ /* Find associated session */
+ sid = tsip_ssession_get_id(_event->ss);
+ if(!(session = session_get_by_sid(ctx->sessions, sid))) {
+ TSK_DEBUG_WARN("Failed to match session event.");
+ return -1;
+ }
- switch(opt_event->type){
- case tsip_i_options: /* incoming OPTIONS */
- break;
- case tsip_ao_options: /* answer to outgoing OPTIONS */
+ switch(opt_event->type) {
+ case tsip_i_options: /* incoming OPTIONS */
+ break;
+ case tsip_ao_options: /* answer to outgoing OPTIONS */
#if HACK_AOR
- if(TSIP_MESSAGE_IS_RESPONSE(_event->sipmessage)){
- options_hack_aor(_event->sipmessage);
- }
+ if(TSIP_MESSAGE_IS_RESPONSE(_event->sipmessage)) {
+ options_hack_aor(_event->sipmessage);
+ }
#endif
- break;
- }
+ break;
+ }
- return 0;
+ return 0;
}
tsip_ssession_id_t options_handle_cmd(cmd_type_t cmd, const opts_L_t* opts)
{
- const session_t* session = tsk_null;
- tsip_ssession_id_t id = TSIP_SSESSION_INVALID_ID;
-
- if(!(session = session_handle_cmd(cmd, opts))){
- goto bail;
- }
- else{
- id = tsip_ssession_get_id(session->handle);
- }
+ const session_t* session = tsk_null;
+ tsip_ssession_id_t id = TSIP_SSESSION_INVALID_ID;
+
+ if(!(session = session_handle_cmd(cmd, opts))) {
+ goto bail;
+ }
+ else {
+ id = tsip_ssession_get_id(session->handle);
+ }
- /* Execute command */
- switch(cmd){
- case cmd_options:
- { /* Send SIP OPTIONS */
- tsip_action_handle_t* action_config = action_get_config(opts);
- tsip_api_options_send_options(session->handle,
- TSIP_ACTION_SET_CONFIG(action_config),
- /* Any other TSIP_ACTION_SET_*() macros */
- TSIP_ACTION_SET_NULL());
- TSK_OBJECT_SAFE_FREE(action_config);
- break;
- }
- default:
- /* already handled by session_handle_cmd() */
- break;
- }
+ /* Execute command */
+ switch(cmd) {
+ case cmd_options: {
+ /* Send SIP OPTIONS */
+ tsip_action_handle_t* action_config = action_get_config(opts);
+ tsip_api_options_send_options(session->handle,
+ TSIP_ACTION_SET_CONFIG(action_config),
+ /* Any other TSIP_ACTION_SET_*() macros */
+ TSIP_ACTION_SET_NULL());
+ TSK_OBJECT_SAFE_FREE(action_config);
+ break;
+ }
+ default:
+ /* already handled by session_handle_cmd() */
+ break;
+ }
bail:
- return id;
+ return id;
}
/* used to hack the AOR. useful for devices behind NATs or emulators (e.g. ANDROID) */
int options_hack_aor(const tsip_response_t* resp)
{
- int32_t rport;
- if(resp && resp->firstVia){
- if(resp->firstVia->rport <=0){
- char* received_port_ext;
- /* Ericsson SDS
- ==> Via: SIP/2.0/TCP 192.168.0.12:49744;rport;branch=z9hG4bK1273100904048;received_port_ext=49744;received=192.168.0.12 */
- if((received_port_ext = tsip_header_get_param_value((const tsip_header_t*)resp->firstVia, "received_port_ext"))){
- rport = (int32_t)atoi(received_port_ext);
- TSK_FREE(received_port_ext);
- }
- }
- else{
- rport = resp->firstVia->rport;
- }
+ int32_t rport;
+ if(resp && resp->firstVia) {
+ if(resp->firstVia->rport <=0) {
+ char* received_port_ext;
+ /* Ericsson SDS
+ ==> Via: SIP/2.0/TCP 192.168.0.12:49744;rport;branch=z9hG4bK1273100904048;received_port_ext=49744;received=192.168.0.12 */
+ if((received_port_ext = tsip_header_get_param_value((const tsip_header_t*)resp->firstVia, "received_port_ext"))) {
+ rport = (int32_t)atoi(received_port_ext);
+ TSK_FREE(received_port_ext);
+ }
+ }
+ else {
+ rport = resp->firstVia->rport;
+ }
- tsip_stack_set(ctx->stack,
- TSIP_STACK_SET_AOR(resp->firstVia->received, rport),
- TSIP_STACK_SET_NULL());
- return 0;
- }
+ tsip_stack_set(ctx->stack,
+ TSIP_STACK_SET_AOR(resp->firstVia->received, rport),
+ TSIP_STACK_SET_NULL());
+ return 0;
+ }
- return -1;
+ return -1;
}
diff --git a/tinyDEMO/options.h b/tinyDEMO/options.h
index 5f1d95f..f9f5839 100755
--- a/tinyDEMO/options.h
+++ b/tinyDEMO/options.h
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
diff --git a/tinyDEMO/publish.c b/tinyDEMO/publish.c
index 0d34f1e..2c89773 100755
--- a/tinyDEMO/publish.c
+++ b/tinyDEMO/publish.c
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
@@ -26,92 +26,89 @@ extern const session_t* session_handle_cmd(cmd_type_t , const opts_L_t*);
int publish_handle_event(const tsip_event_t *_event)
{
- const tsip_publish_event_t* pub_event = TSIP_PUBLISH_EVENT(_event);
- const session_t* session;
- tsip_ssession_id_t sid;
+ const tsip_publish_event_t* pub_event = TSIP_PUBLISH_EVENT(_event);
+ const session_t* session;
+ tsip_ssession_id_t sid;
+
+ /* Find associated session */
+ sid = tsip_ssession_get_id(_event->ss);
+ if(!(session = session_get_by_sid(ctx->sessions, sid))) {
+ TSK_DEBUG_WARN("Failed to match session event.");
+ return -1;
+ }
- /* Find associated session */
- sid = tsip_ssession_get_id(_event->ss);
- if(!(session = session_get_by_sid(ctx->sessions, sid))){
- TSK_DEBUG_WARN("Failed to match session event.");
- return -1;
- }
+ switch(pub_event->type) {
+ case tsip_ao_publish: { /* Answer to outgoing PUBLISH */
+ if(_event->sipmessage) {
+ if(TSIP_MESSAGE_IS_RESPONSE(_event->sipmessage)) {
+ TSK_DEBUG_INFO("Event: Answer to outgoing PUBLISH. Code=%d and phrase=%s",
+ _event->sipmessage->line.response.status_code, _event->sipmessage->line.response.reason_phrase);
+ }
+ else {
+ // request
+ }
+ }
+ break;
+ }
- switch(pub_event->type){
- case tsip_ao_publish: /* Answer to outgoing PUBLISH */
- {
- if(_event->sipmessage){
- if(TSIP_MESSAGE_IS_RESPONSE(_event->sipmessage)){
- TSK_DEBUG_INFO("Event: Answer to outgoing PUBLISH. Code=%d and phrase=%s",
- _event->sipmessage->line.response.status_code, _event->sipmessage->line.response.reason_phrase);
- }
- else{
- // request
- }
- }
- break;
- }
-
- case tsip_ao_unpublish: /* Answer to outgoing unPUBLISH */
- {
- if(_event->sipmessage){
- if(TSIP_MESSAGE_IS_RESPONSE(_event->sipmessage)){
- TSK_DEBUG_INFO("Event: Answer to outgoing UNPUBLISH. Code=%d and phrase=%s",
- _event->sipmessage->line.response.status_code, _event->sipmessage->line.response.reason_phrase);
- }
- else{
- // request
- }
- }
- break;
- }
+ case tsip_ao_unpublish: { /* Answer to outgoing unPUBLISH */
+ if(_event->sipmessage) {
+ if(TSIP_MESSAGE_IS_RESPONSE(_event->sipmessage)) {
+ TSK_DEBUG_INFO("Event: Answer to outgoing UNPUBLISH. Code=%d and phrase=%s",
+ _event->sipmessage->line.response.status_code, _event->sipmessage->line.response.reason_phrase);
+ }
+ else {
+ // request
+ }
+ }
+ break;
+ }
- /* Server events (For whose dev. Server Side IMS Services) */
- case tsip_i_publish: /* Incoming PUBLISH */
- case tsip_i_unpublish: /* Incoming unPUBLISH */
- {
- TSK_DEBUG_WARN("Event not support by Client Framework.");
- break;
- }
+ /* Server events (For whose dev. Server Side IMS Services) */
+ case tsip_i_publish: /* Incoming PUBLISH */
+ case tsip_i_unpublish: { /* Incoming unPUBLISH */
+ TSK_DEBUG_WARN("Event not support by Client Framework.");
+ break;
+ }
- default:
- { /* Any other event */
- TSK_DEBUG_WARN("%d not a valid SIP Subscription event.", pub_event->type);
- break;
- }
- }
+ default: {
+ /* Any other event */
+ TSK_DEBUG_WARN("%d not a valid SIP Subscription event.", pub_event->type);
+ break;
+ }
+ }
- return 0;
+ return 0;
}
tsip_ssession_id_t publish_handle_cmd(cmd_type_t cmd, const opts_L_t* opts)
{
- const session_t* session = tsk_null;
- tsip_ssession_id_t id = TSIP_SSESSION_INVALID_ID;
+ const session_t* session = tsk_null;
+ tsip_ssession_id_t id = TSIP_SSESSION_INVALID_ID;
- if(!(session = session_handle_cmd(cmd, opts))){
- goto bail;
- }
- else{
- id = tsip_ssession_get_id(session->handle);
- }
+ if(!(session = session_handle_cmd(cmd, opts))) {
+ goto bail;
+ }
+ else {
+ id = tsip_ssession_get_id(session->handle);
+ }
- switch(cmd){
- case cmd_publish:
- { /* Send SIP PUBLISH */
- tsip_action_handle_t* action_config = action_get_config(opts);
- tsip_api_publish_send_publish(session->handle,
- TSIP_ACTION_SET_CONFIG(action_config),
- /* Any other TSIP_ACTION_SET_*() macros */
- TSIP_ACTION_SET_NULL());
- TSK_OBJECT_SAFE_FREE(action_config);
- break;
- }
- default:
- /* already handled by session_handle_cmd() */
- break;
- }
+ switch(cmd) {
+ case cmd_publish: {
+ /* Send SIP PUBLISH */
+ tsip_action_handle_t* action_config = action_get_config(opts);
+ tsip_api_publish_send_publish(session->handle,
+ TSIP_ACTION_SET_CONFIG(action_config),
+ /* Any other TSIP_ACTION_SET_*() macros */
+ TSIP_ACTION_SET_NULL());
+ TSK_OBJECT_SAFE_FREE(action_config);
+ break;
+ }
+ default:
+ /* already handled by session_handle_cmd() */
+ break;
+ }
bail:
- return id;
+ return id;
}
diff --git a/tinyDEMO/publish.h b/tinyDEMO/publish.h
index 36470ed..292b734 100755
--- a/tinyDEMO/publish.h
+++ b/tinyDEMO/publish.h
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
diff --git a/tinyDEMO/register.c b/tinyDEMO/register.c
index 45ca7fb..bfc4620 100755
--- a/tinyDEMO/register.c
+++ b/tinyDEMO/register.c
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
@@ -27,95 +27,92 @@ extern const session_t* session_handle_cmd(cmd_type_t , const opts_L_t*);
int register_handle_event(const tsip_event_t *_event)
{
- const tsip_register_event_t* reg_event = TSIP_REGISTER_EVENT(_event);
- const session_t* session;
- tsip_ssession_id_t sid;
+ const tsip_register_event_t* reg_event = TSIP_REGISTER_EVENT(_event);
+ const session_t* session;
+ tsip_ssession_id_t sid;
+
+ /* Find associated session */
+ sid = tsip_ssession_get_id(_event->ss);
+ if(!(session = session_get_by_sid(ctx->sessions, sid))) {
+ TSK_DEBUG_WARN("Failed to match session event.");
+ return -1;
+ }
- /* Find associated session */
- sid = tsip_ssession_get_id(_event->ss);
- if(!(session = session_get_by_sid(ctx->sessions, sid))){
- TSK_DEBUG_WARN("Failed to match session event.");
- return -1;
- }
+ switch(reg_event->type) {
+ case tsip_ao_register: { /* Answer to outgoing REGISTER */
+ if(_event->sipmessage) {
+ if(TSIP_MESSAGE_IS_RESPONSE(_event->sipmessage)) {
+ TSK_DEBUG_INFO("Event: Answer to outgoing REGISTER. Code=%d and phrase=%s",
+ _event->sipmessage->line.response.status_code, _event->sipmessage->line.response.reason_phrase);
+ }
+ else {
+ // request
+ }
+ }
+ break;
+ }
+ case tsip_ao_unregister: { /* Answer to outgoing unREGISTER */
+ if(_event->sipmessage) {
+ if(TSIP_MESSAGE_IS_RESPONSE(_event->sipmessage)) {
+ TSK_DEBUG_INFO("Event: Answer to outgoing unREGISTER. Code=%d and phrase=%s",
+ _event->sipmessage->line.response.status_code, _event->sipmessage->line.response.reason_phrase);
+ }
+ else {
+ // request
+ }
+ }
+ break;
+ }
- switch(reg_event->type){
- case tsip_ao_register: /* Answer to outgoing REGISTER */
- {
- if(_event->sipmessage){
- if(TSIP_MESSAGE_IS_RESPONSE(_event->sipmessage)){
- TSK_DEBUG_INFO("Event: Answer to outgoing REGISTER. Code=%d and phrase=%s",
- _event->sipmessage->line.response.status_code, _event->sipmessage->line.response.reason_phrase);
- }
- else{
- // request
- }
- }
- break;
- }
- case tsip_ao_unregister: /* Answer to outgoing unREGISTER */
- {
- if(_event->sipmessage){
- if(TSIP_MESSAGE_IS_RESPONSE(_event->sipmessage)){
- TSK_DEBUG_INFO("Event: Answer to outgoing unREGISTER. Code=%d and phrase=%s",
- _event->sipmessage->line.response.status_code, _event->sipmessage->line.response.reason_phrase);
- }
- else{
- // request
- }
- }
- break;
- }
-
- /* Server events (For whose dev. Server Side IMS Services) */
- case tsip_i_register: /* Incoming REGISTER */
- case tsip_i_unregister: /* Incoming unREGISTER */
- {
- TSK_DEBUG_WARN("Event not support by Client Framework.");
- break;
- }
-
- default:
- { /* Any other event */
- TSK_DEBUG_WARN("%d not a valid SIP Registration event.", reg_event->type);
- break;
- }
- }
+ /* Server events (For whose dev. Server Side IMS Services) */
+ case tsip_i_register: /* Incoming REGISTER */
+ case tsip_i_unregister: { /* Incoming unREGISTER */
+ TSK_DEBUG_WARN("Event not support by Client Framework.");
+ break;
+ }
- return 0;
+ default: {
+ /* Any other event */
+ TSK_DEBUG_WARN("%d not a valid SIP Registration event.", reg_event->type);
+ break;
+ }
+ }
+
+ return 0;
}
tsip_ssession_id_t register_handle_cmd(cmd_type_t cmd, const opts_L_t* opts)
{
- const session_t* session = tsk_null;
- tsip_ssession_id_t id = TSIP_SSESSION_INVALID_ID;
-
- if(!(session = session_handle_cmd(cmd, opts))){
- goto bail;
- }
- else{
- id = tsip_ssession_get_id(session->handle);
- }
-
- /* action config */
-
- /* Execute command */
- switch(cmd){
- case cmd_register:
- { /* Send SIP REGISTER */
- tsip_action_handle_t* action_config = action_get_config(opts);
- tsip_api_register_send_register(session->handle,
- TSIP_ACTION_SET_CONFIG(action_config),
- /* Any other TSIP_ACTION_SET_*() macros */
- TSIP_ACTION_SET_NULL());
- TSK_OBJECT_SAFE_FREE(action_config);
- break;
- }
- default:
- /* already handled by session_handle_cmd() */
- break;
- }
+ const session_t* session = tsk_null;
+ tsip_ssession_id_t id = TSIP_SSESSION_INVALID_ID;
+
+ if(!(session = session_handle_cmd(cmd, opts))) {
+ goto bail;
+ }
+ else {
+ id = tsip_ssession_get_id(session->handle);
+ }
+
+ /* action config */
+
+ /* Execute command */
+ switch(cmd) {
+ case cmd_register: {
+ /* Send SIP REGISTER */
+ tsip_action_handle_t* action_config = action_get_config(opts);
+ tsip_api_register_send_register(session->handle,
+ TSIP_ACTION_SET_CONFIG(action_config),
+ /* Any other TSIP_ACTION_SET_*() macros */
+ TSIP_ACTION_SET_NULL());
+ TSK_OBJECT_SAFE_FREE(action_config);
+ break;
+ }
+ default:
+ /* already handled by session_handle_cmd() */
+ break;
+ }
bail:
- return id;
+ return id;
}
diff --git a/tinyDEMO/register.h b/tinyDEMO/register.h
index f0c2ec0..9cecd62 100755
--- a/tinyDEMO/register.h
+++ b/tinyDEMO/register.h
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
diff --git a/tinyDEMO/subscribe.c b/tinyDEMO/subscribe.c
index 54a0375..60626a5 100755
--- a/tinyDEMO/subscribe.c
+++ b/tinyDEMO/subscribe.c
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
@@ -26,104 +26,100 @@ extern const session_t* session_handle_cmd(cmd_type_t , const opts_L_t*);
int subscribe_handle_event(const tsip_event_t *_event)
{
- const tsip_subscribe_event_t* sub_event = TSIP_SUBSCRIBE_EVENT(_event);
- const session_t* session;
- tsip_ssession_id_t sid;
+ const tsip_subscribe_event_t* sub_event = TSIP_SUBSCRIBE_EVENT(_event);
+ const session_t* session;
+ tsip_ssession_id_t sid;
+
+ /* Find associated session */
+ sid = tsip_ssession_get_id(_event->ss);
+ if(!(session = session_get_by_sid(ctx->sessions, sid))) {
+ TSK_DEBUG_WARN("Failed to match session event.");
+ return -1;
+ }
+
- /* Find associated session */
- sid = tsip_ssession_get_id(_event->ss);
- if(!(session = session_get_by_sid(ctx->sessions, sid))){
- TSK_DEBUG_WARN("Failed to match session event.");
- return -1;
- }
-
+ switch(sub_event->type) {
+ case tsip_ao_subscribe: { /* Answer to outgoing SUBSCRIBE */
+ if(_event->sipmessage) {
+ if(TSIP_MESSAGE_IS_RESPONSE(_event->sipmessage)) {
+ TSK_DEBUG_INFO("Event: Answer to outgoing SUBSCRIBE. Code=%d and phrase=%s",
+ _event->sipmessage->line.response.status_code, _event->sipmessage->line.response.reason_phrase);
+ }
+ else {
+ // request
+ }
+ }
+ break;
+ }
- switch(sub_event->type){
- case tsip_ao_subscribe: /* Answer to outgoing SUBSCRIBE */
- {
- if(_event->sipmessage){
- if(TSIP_MESSAGE_IS_RESPONSE(_event->sipmessage)){
- TSK_DEBUG_INFO("Event: Answer to outgoing SUBSCRIBE. Code=%d and phrase=%s",
- _event->sipmessage->line.response.status_code, _event->sipmessage->line.response.reason_phrase);
- }
- else{
- // request
- }
- }
- break;
- }
-
- case tsip_ao_unsubscribe: /* Answer to outgoing unSUBSCRIBE */
- {
- if(_event->sipmessage){
- if(TSIP_MESSAGE_IS_RESPONSE(_event->sipmessage)){
- TSK_DEBUG_INFO("Event: Answer to outgoing unSUBSCRIBE. Code=%d and phrase=%s",
- _event->sipmessage->line.response.status_code, _event->sipmessage->line.response.reason_phrase);
- }
- else{
- // request
- }
- }
- break;
- }
+ case tsip_ao_unsubscribe: { /* Answer to outgoing unSUBSCRIBE */
+ if(_event->sipmessage) {
+ if(TSIP_MESSAGE_IS_RESPONSE(_event->sipmessage)) {
+ TSK_DEBUG_INFO("Event: Answer to outgoing unSUBSCRIBE. Code=%d and phrase=%s",
+ _event->sipmessage->line.response.status_code, _event->sipmessage->line.response.reason_phrase);
+ }
+ else {
+ // request
+ }
+ }
+ break;
+ }
- case tsip_i_notify: /* Incoming NOTIFY */
- {
- TSK_DEBUG_INFO("Event: Incoming NOTIFY.");
- if(TSIP_MESSAGE_HAS_CONTENT(_event->sipmessage)){
- const tsk_buffer_t* content = TSIP_MESSAGE_CONTENT(_event->sipmessage);
- TSK_DEBUG_INFO("NOTIFY Content-Type: %s", TSIP_MESSAGE_CONTENT_TYPE(_event->sipmessage));
- TSK_DEBUG_INFO("NOTIFY Content: %s", content->data);
- }
- break;
- }
+ case tsip_i_notify: { /* Incoming NOTIFY */
+ TSK_DEBUG_INFO("Event: Incoming NOTIFY.");
+ if(TSIP_MESSAGE_HAS_CONTENT(_event->sipmessage)) {
+ const tsk_buffer_t* content = TSIP_MESSAGE_CONTENT(_event->sipmessage);
+ TSK_DEBUG_INFO("NOTIFY Content-Type: %s", TSIP_MESSAGE_CONTENT_TYPE(_event->sipmessage));
+ TSK_DEBUG_INFO("NOTIFY Content: %s", content->data);
+ }
+ break;
+ }
- /* Server events (For whose dev. Server Side IMS Services) */
- case tsip_i_subscribe: /* Incoming SUBSCRIBE */
- case tsip_i_unsubscribe: /* Incoming unSUBSCRIBE */
- {
- TSK_DEBUG_WARN("Event not support by Client Framework.");
- break;
- }
+ /* Server events (For whose dev. Server Side IMS Services) */
+ case tsip_i_subscribe: /* Incoming SUBSCRIBE */
+ case tsip_i_unsubscribe: { /* Incoming unSUBSCRIBE */
+ TSK_DEBUG_WARN("Event not support by Client Framework.");
+ break;
+ }
- default:
- { /* Any other event */
- TSK_DEBUG_WARN("%d not a valid SIP Subscription event.", sub_event->type);
- break;
- }
- }
+ default: {
+ /* Any other event */
+ TSK_DEBUG_WARN("%d not a valid SIP Subscription event.", sub_event->type);
+ break;
+ }
+ }
- return 0;
+ return 0;
}
tsip_ssession_id_t subscribe_handle_cmd(cmd_type_t cmd, const opts_L_t* opts)
{
- const session_t* session = tsk_null;
- tsip_ssession_id_t id = TSIP_SSESSION_INVALID_ID;
+ const session_t* session = tsk_null;
+ tsip_ssession_id_t id = TSIP_SSESSION_INVALID_ID;
- if(!(session = session_handle_cmd(cmd, opts))){
- goto bail;
- }
- else{
- id = tsip_ssession_get_id(session->handle);
- }
+ if(!(session = session_handle_cmd(cmd, opts))) {
+ goto bail;
+ }
+ else {
+ id = tsip_ssession_get_id(session->handle);
+ }
- switch(cmd){
- case cmd_subscribe:
- { /* Send SIP SUBSCRIBE */
- tsip_action_handle_t* action_config = action_get_config(opts);
- tsip_api_subscribe_send_subscribe(session->handle,
- TSIP_ACTION_SET_CONFIG(action_config),
- /* Any other TSIP_ACTION_SET_*() macros */
- TSIP_ACTION_SET_NULL());
- TSK_OBJECT_SAFE_FREE(action_config);
- break;
- }
- default:
- /* already handled by session_handle_cmd() */
- break;
- }
+ switch(cmd) {
+ case cmd_subscribe: {
+ /* Send SIP SUBSCRIBE */
+ tsip_action_handle_t* action_config = action_get_config(opts);
+ tsip_api_subscribe_send_subscribe(session->handle,
+ TSIP_ACTION_SET_CONFIG(action_config),
+ /* Any other TSIP_ACTION_SET_*() macros */
+ TSIP_ACTION_SET_NULL());
+ TSK_OBJECT_SAFE_FREE(action_config);
+ break;
+ }
+ default:
+ /* already handled by session_handle_cmd() */
+ break;
+ }
bail:
- return id;
+ return id;
}
diff --git a/tinyDEMO/subscribe.h b/tinyDEMO/subscribe.h
index 3a10538..e3a98e8 100755
--- a/tinyDEMO/subscribe.h
+++ b/tinyDEMO/subscribe.h
@@ -2,19 +2,19 @@
* Copyright (C) 2009 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
+*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
-*
+*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-*
+*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
OpenPOWER on IntegriCloud