diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..5df5c55 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,795 @@ +[*] +charset = utf-8 +end_of_line = crlf +indent_size = 4 +indent_style = space +insert_final_newline = true +max_line_length = 120 +tab_width = 4 +trim_trailing_whitespace = true +ij_continuation_indent_size = 8 +ij_formatter_off_tag = @formatter:off +ij_formatter_on_tag = @formatter:on +ij_formatter_tags_enabled = true +ij_smart_tabs = false +ij_visual_guides = none +ij_wrap_on_typing = false + +[*.blade.php] +ij_blade_keep_indents_on_empty_lines = false + +[*.css] +ij_css_align_closing_brace_with_properties = false +ij_css_blank_lines_around_nested_selector = 1 +ij_css_blank_lines_between_blocks = 1 +ij_css_block_comment_add_space = false +ij_css_brace_placement = end_of_line +ij_css_enforce_quotes_on_format = false +ij_css_hex_color_long_format = false +ij_css_hex_color_lower_case = false +ij_css_hex_color_short_format = false +ij_css_hex_color_upper_case = false +ij_css_keep_blank_lines_in_code = 2 +ij_css_keep_indents_on_empty_lines = false +ij_css_keep_single_line_blocks = false +ij_css_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow +ij_css_space_after_colon = true +ij_css_space_before_opening_brace = true +ij_css_use_double_quotes = true +ij_css_value_alignment = do_not_align + +[*.feature] +indent_size = 2 +ij_gherkin_keep_indents_on_empty_lines = false + +[*.less] +indent_size = 2 +ij_less_align_closing_brace_with_properties = false +ij_less_blank_lines_around_nested_selector = 1 +ij_less_blank_lines_between_blocks = 1 +ij_less_block_comment_add_space = false +ij_less_brace_placement = 0 +ij_less_enforce_quotes_on_format = false +ij_less_hex_color_long_format = false +ij_less_hex_color_lower_case = false +ij_less_hex_color_short_format = false +ij_less_hex_color_upper_case = false +ij_less_keep_blank_lines_in_code = 2 +ij_less_keep_indents_on_empty_lines = false +ij_less_keep_single_line_blocks = false +ij_less_line_comment_add_space = false +ij_less_line_comment_at_first_column = false +ij_less_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow +ij_less_space_after_colon = true +ij_less_space_before_opening_brace = true +ij_less_use_double_quotes = true +ij_less_value_alignment = 0 + +[*.sass] +indent_size = 2 +ij_sass_align_closing_brace_with_properties = false +ij_sass_blank_lines_around_nested_selector = 1 +ij_sass_blank_lines_between_blocks = 1 +ij_sass_brace_placement = 0 +ij_sass_enforce_quotes_on_format = false +ij_sass_hex_color_long_format = false +ij_sass_hex_color_lower_case = false +ij_sass_hex_color_short_format = false +ij_sass_hex_color_upper_case = false +ij_sass_keep_blank_lines_in_code = 2 +ij_sass_keep_indents_on_empty_lines = false +ij_sass_keep_single_line_blocks = false +ij_sass_line_comment_add_space = false +ij_sass_line_comment_at_first_column = false +ij_sass_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow +ij_sass_space_after_colon = true +ij_sass_space_before_opening_brace = true +ij_sass_use_double_quotes = true +ij_sass_value_alignment = 0 + +[*.scss] +indent_size = 2 +ij_scss_align_closing_brace_with_properties = false +ij_scss_blank_lines_around_nested_selector = 1 +ij_scss_blank_lines_between_blocks = 1 +ij_scss_block_comment_add_space = false +ij_scss_brace_placement = 0 +ij_scss_enforce_quotes_on_format = false +ij_scss_hex_color_long_format = false +ij_scss_hex_color_lower_case = false +ij_scss_hex_color_short_format = false +ij_scss_hex_color_upper_case = false +ij_scss_keep_blank_lines_in_code = 2 +ij_scss_keep_indents_on_empty_lines = false +ij_scss_keep_single_line_blocks = false +ij_scss_line_comment_add_space = false +ij_scss_line_comment_at_first_column = false +ij_scss_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow +ij_scss_space_after_colon = true +ij_scss_space_before_opening_brace = true +ij_scss_use_double_quotes = true +ij_scss_value_alignment = 0 + +[*.twig] +ij_twig_keep_indents_on_empty_lines = false +ij_twig_spaces_inside_comments_delimiters = true +ij_twig_spaces_inside_delimiters = true +ij_twig_spaces_inside_variable_delimiters = true + +[.editorconfig] +ij_editorconfig_align_group_field_declarations = false +ij_editorconfig_space_after_colon = false +ij_editorconfig_space_after_comma = true +ij_editorconfig_space_before_colon = false +ij_editorconfig_space_before_comma = false +ij_editorconfig_spaces_around_assignment_operators = true + +[{*.ad,*.adoc,*.asciidoc,.asciidoctorconfig}] +ij_asciidoc_blank_lines_after_header = 1 +ij_asciidoc_blank_lines_keep_after_header = 1 +ij_asciidoc_formatting_enabled = true +ij_asciidoc_one_sentence_per_line = true + +[{*.ant,*.fxml,*.jhm,*.jnlp,*.jrxml,*.rng,*.tld,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul,phpunit.xml.dist}] +ij_xml_align_attributes = true +ij_xml_align_text = false +ij_xml_attribute_wrap = normal +ij_xml_block_comment_add_space = false +ij_xml_block_comment_at_first_column = true +ij_xml_keep_blank_lines = 2 +ij_xml_keep_indents_on_empty_lines = false +ij_xml_keep_line_breaks = true +ij_xml_keep_line_breaks_in_text = true +ij_xml_keep_whitespaces = false +ij_xml_keep_whitespaces_around_cdata = preserve +ij_xml_keep_whitespaces_inside_cdata = false +ij_xml_line_comment_at_first_column = true +ij_xml_space_after_tag_name = false +ij_xml_space_around_equals_in_attribute = false +ij_xml_space_inside_empty_tag = false +ij_xml_text_wrap = normal + +[{*.ats,*.cts,*.mts,*.ts}] +ij_continuation_indent_size = 4 +ij_typescript_align_imports = false +ij_typescript_align_multiline_array_initializer_expression = false +ij_typescript_align_multiline_binary_operation = false +ij_typescript_align_multiline_chained_methods = false +ij_typescript_align_multiline_extends_list = false +ij_typescript_align_multiline_for = true +ij_typescript_align_multiline_parameters = true +ij_typescript_align_multiline_parameters_in_calls = false +ij_typescript_align_multiline_ternary_operation = false +ij_typescript_align_object_properties = 0 +ij_typescript_align_union_types = false +ij_typescript_align_var_statements = 0 +ij_typescript_array_initializer_new_line_after_left_brace = false +ij_typescript_array_initializer_right_brace_on_new_line = false +ij_typescript_array_initializer_wrap = off +ij_typescript_assignment_wrap = off +ij_typescript_binary_operation_sign_on_next_line = false +ij_typescript_binary_operation_wrap = off +ij_typescript_blacklist_imports = rxjs/Rx, node_modules/**, **/node_modules/**, @angular/material, @angular/material/typings/** +ij_typescript_blank_lines_after_imports = 1 +ij_typescript_blank_lines_around_class = 1 +ij_typescript_blank_lines_around_field = 0 +ij_typescript_blank_lines_around_field_in_interface = 0 +ij_typescript_blank_lines_around_function = 1 +ij_typescript_blank_lines_around_method = 1 +ij_typescript_blank_lines_around_method_in_interface = 1 +ij_typescript_block_brace_style = end_of_line +ij_typescript_block_comment_add_space = false +ij_typescript_block_comment_at_first_column = true +ij_typescript_call_parameters_new_line_after_left_paren = false +ij_typescript_call_parameters_right_paren_on_new_line = false +ij_typescript_call_parameters_wrap = off +ij_typescript_catch_on_new_line = false +ij_typescript_chained_call_dot_on_new_line = true +ij_typescript_class_brace_style = end_of_line +ij_typescript_comma_on_new_line = false +ij_typescript_do_while_brace_force = never +ij_typescript_else_on_new_line = false +ij_typescript_enforce_trailing_comma = keep +ij_typescript_enum_constants_wrap = on_every_item +ij_typescript_extends_keyword_wrap = off +ij_typescript_extends_list_wrap = off +ij_typescript_field_prefix = _ +ij_typescript_file_name_style = relaxed +ij_typescript_finally_on_new_line = false +ij_typescript_for_brace_force = never +ij_typescript_for_statement_new_line_after_left_paren = false +ij_typescript_for_statement_right_paren_on_new_line = false +ij_typescript_for_statement_wrap = off +ij_typescript_force_quote_style = false +ij_typescript_force_semicolon_style = false +ij_typescript_function_expression_brace_style = end_of_line +ij_typescript_if_brace_force = never +ij_typescript_import_merge_members = global +ij_typescript_import_prefer_absolute_path = global +ij_typescript_import_sort_members = true +ij_typescript_import_sort_module_name = false +ij_typescript_import_use_node_resolution = true +ij_typescript_imports_wrap = on_every_item +ij_typescript_indent_case_from_switch = true +ij_typescript_indent_chained_calls = true +ij_typescript_indent_package_children = 0 +ij_typescript_jsdoc_include_types = false +ij_typescript_jsx_attribute_value = braces +ij_typescript_keep_blank_lines_in_code = 2 +ij_typescript_keep_first_column_comment = true +ij_typescript_keep_indents_on_empty_lines = false +ij_typescript_keep_line_breaks = true +ij_typescript_keep_simple_blocks_in_one_line = false +ij_typescript_keep_simple_methods_in_one_line = false +ij_typescript_line_comment_add_space = true +ij_typescript_line_comment_at_first_column = false +ij_typescript_method_brace_style = end_of_line +ij_typescript_method_call_chain_wrap = off +ij_typescript_method_parameters_new_line_after_left_paren = false +ij_typescript_method_parameters_right_paren_on_new_line = false +ij_typescript_method_parameters_wrap = off +ij_typescript_object_literal_wrap = on_every_item +ij_typescript_object_types_wrap = on_every_item +ij_typescript_parentheses_expression_new_line_after_left_paren = false +ij_typescript_parentheses_expression_right_paren_on_new_line = false +ij_typescript_place_assignment_sign_on_next_line = false +ij_typescript_prefer_as_type_cast = false +ij_typescript_prefer_explicit_types_function_expression_returns = false +ij_typescript_prefer_explicit_types_function_returns = false +ij_typescript_prefer_explicit_types_vars_fields = false +ij_typescript_prefer_parameters_wrap = false +ij_typescript_reformat_c_style_comments = false +ij_typescript_space_after_colon = true +ij_typescript_space_after_comma = true +ij_typescript_space_after_dots_in_rest_parameter = false +ij_typescript_space_after_generator_mult = true +ij_typescript_space_after_property_colon = true +ij_typescript_space_after_quest = true +ij_typescript_space_after_type_colon = true +ij_typescript_space_after_unary_not = false +ij_typescript_space_before_async_arrow_lparen = true +ij_typescript_space_before_catch_keyword = true +ij_typescript_space_before_catch_left_brace = true +ij_typescript_space_before_catch_parentheses = true +ij_typescript_space_before_class_lbrace = true +ij_typescript_space_before_class_left_brace = true +ij_typescript_space_before_colon = true +ij_typescript_space_before_comma = false +ij_typescript_space_before_do_left_brace = true +ij_typescript_space_before_else_keyword = true +ij_typescript_space_before_else_left_brace = true +ij_typescript_space_before_finally_keyword = true +ij_typescript_space_before_finally_left_brace = true +ij_typescript_space_before_for_left_brace = true +ij_typescript_space_before_for_parentheses = true +ij_typescript_space_before_for_semicolon = false +ij_typescript_space_before_function_left_parenth = true +ij_typescript_space_before_generator_mult = false +ij_typescript_space_before_if_left_brace = true +ij_typescript_space_before_if_parentheses = true +ij_typescript_space_before_method_call_parentheses = false +ij_typescript_space_before_method_left_brace = true +ij_typescript_space_before_method_parentheses = false +ij_typescript_space_before_property_colon = false +ij_typescript_space_before_quest = true +ij_typescript_space_before_switch_left_brace = true +ij_typescript_space_before_switch_parentheses = true +ij_typescript_space_before_try_left_brace = true +ij_typescript_space_before_type_colon = false +ij_typescript_space_before_unary_not = false +ij_typescript_space_before_while_keyword = true +ij_typescript_space_before_while_left_brace = true +ij_typescript_space_before_while_parentheses = true +ij_typescript_spaces_around_additive_operators = true +ij_typescript_spaces_around_arrow_function_operator = true +ij_typescript_spaces_around_assignment_operators = true +ij_typescript_spaces_around_bitwise_operators = true +ij_typescript_spaces_around_equality_operators = true +ij_typescript_spaces_around_logical_operators = true +ij_typescript_spaces_around_multiplicative_operators = true +ij_typescript_spaces_around_relational_operators = true +ij_typescript_spaces_around_shift_operators = true +ij_typescript_spaces_around_unary_operator = false +ij_typescript_spaces_within_array_initializer_brackets = false +ij_typescript_spaces_within_brackets = false +ij_typescript_spaces_within_catch_parentheses = false +ij_typescript_spaces_within_for_parentheses = false +ij_typescript_spaces_within_if_parentheses = false +ij_typescript_spaces_within_imports = false +ij_typescript_spaces_within_interpolation_expressions = false +ij_typescript_spaces_within_method_call_parentheses = false +ij_typescript_spaces_within_method_parentheses = false +ij_typescript_spaces_within_object_literal_braces = false +ij_typescript_spaces_within_object_type_braces = true +ij_typescript_spaces_within_parentheses = false +ij_typescript_spaces_within_switch_parentheses = false +ij_typescript_spaces_within_type_assertion = false +ij_typescript_spaces_within_union_types = true +ij_typescript_spaces_within_while_parentheses = false +ij_typescript_special_else_if_treatment = true +ij_typescript_ternary_operation_signs_on_next_line = false +ij_typescript_ternary_operation_wrap = off +ij_typescript_union_types_wrap = on_every_item +ij_typescript_use_chained_calls_group_indents = false +ij_typescript_use_double_quotes = true +ij_typescript_use_explicit_js_extension = auto +ij_typescript_use_path_mapping = always +ij_typescript_use_public_modifier = false +ij_typescript_use_semicolon_after_statement = true +ij_typescript_var_declaration_wrap = normal +ij_typescript_while_brace_force = never +ij_typescript_while_on_new_line = false +ij_typescript_wrap_comments = false + +[{*.bash,*.sh,*.zsh}] +indent_size = 2 +tab_width = 2 +ij_shell_binary_ops_start_line = false +ij_shell_keep_column_alignment_padding = false +ij_shell_minify_program = false +ij_shell_redirect_followed_by_space = false +ij_shell_switch_cases_indented = false +ij_shell_use_unix_line_separator = true + +[{*.cjs,*.js}] +ij_continuation_indent_size = 4 +ij_javascript_align_imports = false +ij_javascript_align_multiline_array_initializer_expression = false +ij_javascript_align_multiline_binary_operation = false +ij_javascript_align_multiline_chained_methods = false +ij_javascript_align_multiline_extends_list = false +ij_javascript_align_multiline_for = true +ij_javascript_align_multiline_parameters = true +ij_javascript_align_multiline_parameters_in_calls = false +ij_javascript_align_multiline_ternary_operation = false +ij_javascript_align_object_properties = 0 +ij_javascript_align_union_types = false +ij_javascript_align_var_statements = 0 +ij_javascript_array_initializer_new_line_after_left_brace = false +ij_javascript_array_initializer_right_brace_on_new_line = false +ij_javascript_array_initializer_wrap = off +ij_javascript_assignment_wrap = off +ij_javascript_binary_operation_sign_on_next_line = false +ij_javascript_binary_operation_wrap = off +ij_javascript_blacklist_imports = rxjs/Rx, node_modules/**, **/node_modules/**, @angular/material, @angular/material/typings/** +ij_javascript_blank_lines_after_imports = 1 +ij_javascript_blank_lines_around_class = 1 +ij_javascript_blank_lines_around_field = 0 +ij_javascript_blank_lines_around_function = 1 +ij_javascript_blank_lines_around_method = 1 +ij_javascript_block_brace_style = end_of_line +ij_javascript_block_comment_add_space = false +ij_javascript_block_comment_at_first_column = true +ij_javascript_call_parameters_new_line_after_left_paren = false +ij_javascript_call_parameters_right_paren_on_new_line = false +ij_javascript_call_parameters_wrap = off +ij_javascript_catch_on_new_line = false +ij_javascript_chained_call_dot_on_new_line = true +ij_javascript_class_brace_style = end_of_line +ij_javascript_comma_on_new_line = false +ij_javascript_do_while_brace_force = never +ij_javascript_else_on_new_line = false +ij_javascript_enforce_trailing_comma = keep +ij_javascript_extends_keyword_wrap = off +ij_javascript_extends_list_wrap = off +ij_javascript_field_prefix = _ +ij_javascript_file_name_style = relaxed +ij_javascript_finally_on_new_line = false +ij_javascript_for_brace_force = never +ij_javascript_for_statement_new_line_after_left_paren = false +ij_javascript_for_statement_right_paren_on_new_line = false +ij_javascript_for_statement_wrap = off +ij_javascript_force_quote_style = false +ij_javascript_force_semicolon_style = false +ij_javascript_function_expression_brace_style = end_of_line +ij_javascript_if_brace_force = never +ij_javascript_import_merge_members = global +ij_javascript_import_prefer_absolute_path = global +ij_javascript_import_sort_members = true +ij_javascript_import_sort_module_name = false +ij_javascript_import_use_node_resolution = true +ij_javascript_imports_wrap = on_every_item +ij_javascript_indent_case_from_switch = true +ij_javascript_indent_chained_calls = true +ij_javascript_indent_package_children = 0 +ij_javascript_jsx_attribute_value = braces +ij_javascript_keep_blank_lines_in_code = 2 +ij_javascript_keep_first_column_comment = true +ij_javascript_keep_indents_on_empty_lines = false +ij_javascript_keep_line_breaks = true +ij_javascript_keep_simple_blocks_in_one_line = false +ij_javascript_keep_simple_methods_in_one_line = false +ij_javascript_line_comment_add_space = true +ij_javascript_line_comment_at_first_column = false +ij_javascript_method_brace_style = end_of_line +ij_javascript_method_call_chain_wrap = off +ij_javascript_method_parameters_new_line_after_left_paren = false +ij_javascript_method_parameters_right_paren_on_new_line = false +ij_javascript_method_parameters_wrap = off +ij_javascript_object_literal_wrap = on_every_item +ij_javascript_object_types_wrap = on_every_item +ij_javascript_parentheses_expression_new_line_after_left_paren = false +ij_javascript_parentheses_expression_right_paren_on_new_line = false +ij_javascript_place_assignment_sign_on_next_line = false +ij_javascript_prefer_as_type_cast = false +ij_javascript_prefer_explicit_types_function_expression_returns = false +ij_javascript_prefer_explicit_types_function_returns = false +ij_javascript_prefer_explicit_types_vars_fields = false +ij_javascript_prefer_parameters_wrap = false +ij_javascript_reformat_c_style_comments = false +ij_javascript_space_after_colon = true +ij_javascript_space_after_comma = true +ij_javascript_space_after_dots_in_rest_parameter = false +ij_javascript_space_after_generator_mult = true +ij_javascript_space_after_property_colon = true +ij_javascript_space_after_quest = true +ij_javascript_space_after_type_colon = true +ij_javascript_space_after_unary_not = false +ij_javascript_space_before_async_arrow_lparen = true +ij_javascript_space_before_catch_keyword = true +ij_javascript_space_before_catch_left_brace = true +ij_javascript_space_before_catch_parentheses = true +ij_javascript_space_before_class_lbrace = true +ij_javascript_space_before_class_left_brace = true +ij_javascript_space_before_colon = true +ij_javascript_space_before_comma = false +ij_javascript_space_before_do_left_brace = true +ij_javascript_space_before_else_keyword = true +ij_javascript_space_before_else_left_brace = true +ij_javascript_space_before_finally_keyword = true +ij_javascript_space_before_finally_left_brace = true +ij_javascript_space_before_for_left_brace = true +ij_javascript_space_before_for_parentheses = true +ij_javascript_space_before_for_semicolon = false +ij_javascript_space_before_function_left_parenth = true +ij_javascript_space_before_generator_mult = false +ij_javascript_space_before_if_left_brace = true +ij_javascript_space_before_if_parentheses = true +ij_javascript_space_before_method_call_parentheses = false +ij_javascript_space_before_method_left_brace = true +ij_javascript_space_before_method_parentheses = false +ij_javascript_space_before_property_colon = false +ij_javascript_space_before_quest = true +ij_javascript_space_before_switch_left_brace = true +ij_javascript_space_before_switch_parentheses = true +ij_javascript_space_before_try_left_brace = true +ij_javascript_space_before_type_colon = false +ij_javascript_space_before_unary_not = false +ij_javascript_space_before_while_keyword = true +ij_javascript_space_before_while_left_brace = true +ij_javascript_space_before_while_parentheses = true +ij_javascript_spaces_around_additive_operators = true +ij_javascript_spaces_around_arrow_function_operator = true +ij_javascript_spaces_around_assignment_operators = true +ij_javascript_spaces_around_bitwise_operators = true +ij_javascript_spaces_around_equality_operators = true +ij_javascript_spaces_around_logical_operators = true +ij_javascript_spaces_around_multiplicative_operators = true +ij_javascript_spaces_around_relational_operators = true +ij_javascript_spaces_around_shift_operators = true +ij_javascript_spaces_around_unary_operator = false +ij_javascript_spaces_within_array_initializer_brackets = false +ij_javascript_spaces_within_brackets = false +ij_javascript_spaces_within_catch_parentheses = false +ij_javascript_spaces_within_for_parentheses = false +ij_javascript_spaces_within_if_parentheses = false +ij_javascript_spaces_within_imports = false +ij_javascript_spaces_within_interpolation_expressions = false +ij_javascript_spaces_within_method_call_parentheses = false +ij_javascript_spaces_within_method_parentheses = false +ij_javascript_spaces_within_object_literal_braces = false +ij_javascript_spaces_within_object_type_braces = true +ij_javascript_spaces_within_parentheses = false +ij_javascript_spaces_within_switch_parentheses = false +ij_javascript_spaces_within_type_assertion = false +ij_javascript_spaces_within_union_types = true +ij_javascript_spaces_within_while_parentheses = false +ij_javascript_special_else_if_treatment = true +ij_javascript_ternary_operation_signs_on_next_line = false +ij_javascript_ternary_operation_wrap = off +ij_javascript_union_types_wrap = on_every_item +ij_javascript_use_chained_calls_group_indents = false +ij_javascript_use_double_quotes = true +ij_javascript_use_explicit_js_extension = auto +ij_javascript_use_path_mapping = always +ij_javascript_use_public_modifier = false +ij_javascript_use_semicolon_after_statement = true +ij_javascript_var_declaration_wrap = normal +ij_javascript_while_brace_force = never +ij_javascript_while_on_new_line = false +ij_javascript_wrap_comments = false + +[{*.class,*.ctp,*.disabled,*.hphp,*.inc,*.module,*.php,*.php4,*.php5,*.phtml,*.resolver,exportusershandlerfield}] +ij_continuation_indent_size = 4 +ij_php_align_assignments = false +ij_php_align_class_constants = false +ij_php_align_enum_cases = false +ij_php_align_group_field_declarations = false +ij_php_align_inline_comments = false +ij_php_align_key_value_pairs = false +ij_php_align_match_arm_bodies = false +ij_php_align_multiline_array_initializer_expression = false +ij_php_align_multiline_binary_operation = false +ij_php_align_multiline_chained_methods = false +ij_php_align_multiline_extends_list = false +ij_php_align_multiline_for = true +ij_php_align_multiline_parameters = true +ij_php_align_multiline_parameters_in_calls = false +ij_php_align_multiline_ternary_operation = false +ij_php_align_named_arguments = false +ij_php_align_phpdoc_comments = false +ij_php_align_phpdoc_param_names = false +ij_php_anonymous_brace_style = end_of_line +ij_php_api_weight = 28 +ij_php_array_initializer_new_line_after_left_brace = false +ij_php_array_initializer_right_brace_on_new_line = false +ij_php_array_initializer_wrap = off +ij_php_assignment_wrap = off +ij_php_attributes_wrap = off +ij_php_author_weight = 28 +ij_php_binary_operation_sign_on_next_line = false +ij_php_binary_operation_wrap = off +ij_php_blank_lines_after_class_header = 0 +ij_php_blank_lines_after_function = 1 +ij_php_blank_lines_after_imports = 1 +ij_php_blank_lines_after_opening_tag = 0 +ij_php_blank_lines_after_package = 0 +ij_php_blank_lines_around_class = 1 +ij_php_blank_lines_around_constants = 0 +ij_php_blank_lines_around_enum_cases = 0 +ij_php_blank_lines_around_field = 0 +ij_php_blank_lines_around_method = 1 +ij_php_blank_lines_before_class_end = 0 +ij_php_blank_lines_before_imports = 1 +ij_php_blank_lines_before_method_body = 0 +ij_php_blank_lines_before_package = 1 +ij_php_blank_lines_before_return_statement = 0 +ij_php_blank_lines_between_imports = 0 +ij_php_block_brace_style = end_of_line +ij_php_call_parameters_new_line_after_left_paren = false +ij_php_call_parameters_right_paren_on_new_line = false +ij_php_call_parameters_wrap = off +ij_php_catch_on_new_line = false +ij_php_category_weight = 28 +ij_php_class_brace_style = next_line +ij_php_comma_after_last_argument = false +ij_php_comma_after_last_array_element = false +ij_php_comma_after_last_closure_use_var = false +ij_php_comma_after_last_match_arm = false +ij_php_comma_after_last_parameter = false +ij_php_concat_spaces = true +ij_php_copyright_weight = 28 +ij_php_deprecated_weight = 28 +ij_php_do_while_brace_force = never +ij_php_else_if_style = as_is +ij_php_else_on_new_line = false +ij_php_example_weight = 28 +ij_php_extends_keyword_wrap = off +ij_php_extends_list_wrap = off +ij_php_fields_default_visibility = private +ij_php_filesource_weight = 28 +ij_php_finally_on_new_line = false +ij_php_for_brace_force = never +ij_php_for_statement_new_line_after_left_paren = false +ij_php_for_statement_right_paren_on_new_line = false +ij_php_for_statement_wrap = off +ij_php_force_empty_methods_in_one_line = false +ij_php_force_short_declaration_array_style = false +ij_php_getters_setters_naming_style = camel_case +ij_php_getters_setters_order_style = getters_first +ij_php_global_weight = 28 +ij_php_group_use_wrap = on_every_item +ij_php_if_brace_force = never +ij_php_if_lparen_on_next_line = false +ij_php_if_rparen_on_next_line = false +ij_php_ignore_weight = 28 +ij_php_import_sorting = alphabetic +ij_php_indent_break_from_case = true +ij_php_indent_case_from_switch = true +ij_php_indent_code_in_php_tags = false +ij_php_internal_weight = 28 +ij_php_keep_blank_lines_after_lbrace = 2 +ij_php_keep_blank_lines_before_right_brace = 2 +ij_php_keep_blank_lines_in_code = 2 +ij_php_keep_blank_lines_in_declarations = 2 +ij_php_keep_control_statement_in_one_line = true +ij_php_keep_first_column_comment = true +ij_php_keep_indents_on_empty_lines = false +ij_php_keep_line_breaks = true +ij_php_keep_rparen_and_lbrace_on_one_line = false +ij_php_keep_simple_classes_in_one_line = false +ij_php_keep_simple_methods_in_one_line = false +ij_php_lambda_brace_style = end_of_line +ij_php_license_weight = 28 +ij_php_line_comment_add_space = false +ij_php_line_comment_at_first_column = true +ij_php_link_weight = 28 +ij_php_lower_case_boolean_const = false +ij_php_lower_case_keywords = true +ij_php_lower_case_null_const = false +ij_php_method_brace_style = next_line +ij_php_method_call_chain_wrap = off +ij_php_method_parameters_new_line_after_left_paren = false +ij_php_method_parameters_right_paren_on_new_line = false +ij_php_method_parameters_wrap = off +ij_php_method_weight = 28 +ij_php_modifier_list_wrap = false +ij_php_multiline_chained_calls_semicolon_on_new_line = false +ij_php_namespace_brace_style = 1 +ij_php_new_line_after_php_opening_tag = false +ij_php_null_type_position = in_the_end +ij_php_package_weight = 28 +ij_php_param_weight = 0 +ij_php_parameters_attributes_wrap = off +ij_php_parentheses_expression_new_line_after_left_paren = false +ij_php_parentheses_expression_right_paren_on_new_line = false +ij_php_phpdoc_blank_line_before_tags = false +ij_php_phpdoc_blank_lines_around_parameters = false +ij_php_phpdoc_keep_blank_lines = true +ij_php_phpdoc_param_spaces_between_name_and_description = 1 +ij_php_phpdoc_param_spaces_between_tag_and_type = 1 +ij_php_phpdoc_param_spaces_between_type_and_name = 1 +ij_php_phpdoc_use_fqcn = false +ij_php_phpdoc_wrap_long_lines = false +ij_php_place_assignment_sign_on_next_line = false +ij_php_place_parens_for_constructor = 0 +ij_php_property_read_weight = 28 +ij_php_property_weight = 28 +ij_php_property_write_weight = 28 +ij_php_return_type_on_new_line = false +ij_php_return_weight = 1 +ij_php_see_weight = 28 +ij_php_since_weight = 28 +ij_php_sort_phpdoc_elements = true +ij_php_space_after_colon = true +ij_php_space_after_colon_in_enum_backed_type = true +ij_php_space_after_colon_in_named_argument = true +ij_php_space_after_colon_in_return_type = true +ij_php_space_after_comma = true +ij_php_space_after_for_semicolon = true +ij_php_space_after_quest = true +ij_php_space_after_type_cast = false +ij_php_space_after_unary_not = false +ij_php_space_before_array_initializer_left_brace = false +ij_php_space_before_catch_keyword = true +ij_php_space_before_catch_left_brace = true +ij_php_space_before_catch_parentheses = true +ij_php_space_before_class_left_brace = true +ij_php_space_before_closure_left_parenthesis = true +ij_php_space_before_colon = true +ij_php_space_before_colon_in_enum_backed_type = false +ij_php_space_before_colon_in_named_argument = false +ij_php_space_before_colon_in_return_type = false +ij_php_space_before_comma = false +ij_php_space_before_do_left_brace = true +ij_php_space_before_else_keyword = true +ij_php_space_before_else_left_brace = true +ij_php_space_before_finally_keyword = true +ij_php_space_before_finally_left_brace = true +ij_php_space_before_for_left_brace = true +ij_php_space_before_for_parentheses = true +ij_php_space_before_for_semicolon = false +ij_php_space_before_if_left_brace = true +ij_php_space_before_if_parentheses = true +ij_php_space_before_method_call_parentheses = false +ij_php_space_before_method_left_brace = true +ij_php_space_before_method_parentheses = false +ij_php_space_before_quest = true +ij_php_space_before_short_closure_left_parenthesis = false +ij_php_space_before_switch_left_brace = true +ij_php_space_before_switch_parentheses = true +ij_php_space_before_try_left_brace = true +ij_php_space_before_unary_not = false +ij_php_space_before_while_keyword = true +ij_php_space_before_while_left_brace = true +ij_php_space_before_while_parentheses = true +ij_php_space_between_ternary_quest_and_colon = false +ij_php_spaces_around_additive_operators = true +ij_php_spaces_around_arrow = false +ij_php_spaces_around_assignment_in_declare = false +ij_php_spaces_around_assignment_operators = true +ij_php_spaces_around_bitwise_operators = true +ij_php_spaces_around_equality_operators = true +ij_php_spaces_around_logical_operators = true +ij_php_spaces_around_multiplicative_operators = true +ij_php_spaces_around_null_coalesce_operator = true +ij_php_spaces_around_pipe_in_union_type = false +ij_php_spaces_around_relational_operators = true +ij_php_spaces_around_shift_operators = true +ij_php_spaces_around_unary_operator = false +ij_php_spaces_around_var_within_brackets = false +ij_php_spaces_within_array_initializer_braces = false +ij_php_spaces_within_brackets = false +ij_php_spaces_within_catch_parentheses = false +ij_php_spaces_within_for_parentheses = false +ij_php_spaces_within_if_parentheses = false +ij_php_spaces_within_method_call_parentheses = false +ij_php_spaces_within_method_parentheses = false +ij_php_spaces_within_parentheses = false +ij_php_spaces_within_short_echo_tags = true +ij_php_spaces_within_switch_parentheses = false +ij_php_spaces_within_while_parentheses = false +ij_php_special_else_if_treatment = false +ij_php_subpackage_weight = 28 +ij_php_ternary_operation_signs_on_next_line = false +ij_php_ternary_operation_wrap = off +ij_php_throws_weight = 2 +ij_php_todo_weight = 28 +ij_php_treat_multiline_arrays_and_lambdas_multiline = false +ij_php_unknown_tag_weight = 28 +ij_php_upper_case_boolean_const = false +ij_php_upper_case_null_const = false +ij_php_uses_weight = 28 +ij_php_var_weight = 28 +ij_php_variable_naming_style = mixed +ij_php_version_weight = 28 +ij_php_while_brace_force = never +ij_php_while_on_new_line = false + +[{*.eta,*.htm,*.html,*.ng,*.sht,*.shtm,*.shtml,ds}] +ij_html_add_new_line_before_tags = body, div, p, form, h1, h2, h3 +ij_html_align_attributes = true +ij_html_align_text = false +ij_html_attribute_wrap = normal +ij_html_block_comment_add_space = false +ij_html_block_comment_at_first_column = true +ij_html_do_not_align_children_of_min_lines = 0 +ij_html_do_not_break_if_inline_tags = title, h1, h2, h3, h4, h5, h6, p +ij_html_do_not_indent_children_of_tags = html, body, thead, tbody, tfoot +ij_html_enforce_quotes = false +ij_html_inline_tags = a, abbr, acronym, b, basefont, bdo, big, br, cite, cite, code, dfn, em, font, i, img, input, kbd, label, q, s, samp, select, small, span, strike, strong, sub, sup, textarea, tt, u, var +ij_html_keep_blank_lines = 2 +ij_html_keep_indents_on_empty_lines = false +ij_html_keep_line_breaks = true +ij_html_keep_line_breaks_in_text = true +ij_html_keep_whitespaces = false +ij_html_keep_whitespaces_inside = span, pre, textarea +ij_html_line_comment_at_first_column = true +ij_html_new_line_after_last_attribute = never +ij_html_new_line_before_first_attribute = never +ij_html_quote_style = double +ij_html_remove_new_line_before_tags = br +ij_html_space_after_tag_name = false +ij_html_space_around_equality_in_attribute = false +ij_html_space_inside_empty_tag = false +ij_html_text_wrap = normal + +[{*.har,*.jsb2,*.jsb3,*.json,.babelrc,.eslintrc,.prettierrc,.stylelintrc,bowerrc,composer.lock,jest.config}] +indent_size = 2 +ij_json_array_wrapping = split_into_lines +ij_json_keep_blank_lines_in_code = 0 +ij_json_keep_indents_on_empty_lines = false +ij_json_keep_line_breaks = true +ij_json_keep_trailing_comma = false +ij_json_object_wrapping = split_into_lines +ij_json_property_alignment = do_not_align +ij_json_space_after_colon = true +ij_json_space_after_comma = true +ij_json_space_before_colon = false +ij_json_space_before_comma = false +ij_json_spaces_within_braces = false +ij_json_spaces_within_brackets = false +ij_json_wrap_long_lines = false + +[{*.http,*.rest}] +indent_size = 0 +ij_continuation_indent_size = 4 +ij_http request_call_parameters_wrap = normal + +[{*.markdown,*.md,text}] +ij_markdown_force_one_space_after_blockquote_symbol = true +ij_markdown_force_one_space_after_header_symbol = true +ij_markdown_force_one_space_after_list_bullet = true +ij_markdown_force_one_space_between_words = true +ij_markdown_format_tables = true +ij_markdown_insert_quote_arrows_on_wrap = true +ij_markdown_keep_indents_on_empty_lines = false +ij_markdown_keep_line_breaks_inside_text_blocks = true +ij_markdown_max_lines_around_block_elements = 1 +ij_markdown_max_lines_around_header = 1 +ij_markdown_max_lines_between_paragraphs = 1 +ij_markdown_min_lines_around_block_elements = 1 +ij_markdown_min_lines_around_header = 1 +ij_markdown_min_lines_between_paragraphs = 1 +ij_markdown_wrap_text_if_long = true +ij_markdown_wrap_text_inside_blockquotes = true diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..e39e478 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,324 @@ +## GITATTRIBUTES FOR WEB PROJECTS +# +# These settings are for any web project. +# +# Details per file setting: +# text These files should be normalized (i.e. convert CRLF to LF). +# binary These files are binary and should be left untouched. +# +# Note that binary is a macro for -text -diff. +###################################################################### + +# Auto detect +## Handle line endings automatically for files detected as +## text and leave all files detected as binary untouched. +## This will handle all files NOT defined below. +* text=auto + +# Source code +*.bash text eol=lf +*.bat text eol=crlf +*.cmd text eol=crlf +*.coffee text +*.css text diff=css +*.htm text diff=html +*.html text diff=html +*.inc text +*.ini text +*.js text +*.json text +*.jsx text +*.less text +*.ls text +*.map text -diff +*.od text +*.onlydata text +*.php text diff=php +*.pl text +*.ps1 text eol=crlf +*.py text diff=python +*.rb text diff=ruby +*.sass text +*.scm text +*.scss text diff=css +*.sh text eol=lf +.husky/* text eol=lf +*.sql text +*.styl text +*.tag text +*.ts text +*.tsx text +*.xml text +*.xhtml text diff=html + +# Docker +Dockerfile text + +# Documentation +*.ipynb text eol=lf +*.markdown text diff=markdown +*.md text diff=markdown +*.mdwn text diff=markdown +*.mdown text diff=markdown +*.mkd text diff=markdown +*.mkdn text diff=markdown +*.mdtxt text +*.mdtext text +*.txt text +AUTHORS text +CHANGELOG text +CHANGES text +CONTRIBUTING text +COPYING text +copyright text +*COPYRIGHT* text +INSTALL text +license text +LICENSE text +NEWS text +readme text +*README* text +TODO text + +# Templates +*.dot text +*.ejs text +*.erb text +*.haml text +*.handlebars text +*.hbs text +*.hbt text +*.jade text +*.latte text +*.mustache text +*.njk text +*.phtml text +*.svelte text +*.tmpl text +*.tpl text +*.twig text +*.vue text + +# Configs +*.cnf text +*.conf text +*.config text +.editorconfig text +.env text +.gitattributes text +.gitconfig text +.htaccess text +*.lock text -diff +package.json text eol=lf +package-lock.json text eol=lf -diff +pnpm-lock.yaml text eol=lf -diff +.prettierrc text +yarn.lock text -diff +*.toml text +*.yaml text +*.yml text +browserslist text +Makefile text +makefile text + +# Heroku +Procfile text + +# Graphics +*.ai binary +*.bmp binary +*.eps binary +*.gif binary +*.gifv binary +*.ico binary +*.jng binary +*.jp2 binary +*.jpg binary +*.jpeg binary +*.jpx binary +*.jxr binary +*.pdf binary +*.png binary +*.psb binary +*.psd binary +# SVG treated as an asset (binary) by default. +*.svg text +# If you want to treat it as binary, +# use the following line instead. +# *.svg binary +*.svgz binary +*.tif binary +*.tiff binary +*.wbmp binary +*.webp binary + +# Audio +*.kar binary +*.m4a binary +*.mid binary +*.midi binary +*.mp3 binary +*.ogg binary +*.ra binary + +# Video +*.3gpp binary +*.3gp binary +*.as binary +*.asf binary +*.asx binary +*.avi binary +*.fla binary +*.flv binary +*.m4v binary +*.mng binary +*.mov binary +*.mp4 binary +*.mpeg binary +*.mpg binary +*.ogv binary +*.swc binary +*.swf binary +*.webm binary + +# Archives +*.7z binary +*.gz binary +*.jar binary +*.rar binary +*.tar binary +*.zip binary + +# Fonts +*.ttf binary +*.eot binary +*.otf binary +*.woff binary +*.woff2 binary + +# Executables +*.exe binary +*.pyc binary + +# RC files (like .babelrc or .eslintrc) +*.*rc text + +# Ignore files (like .npmignore or .gitignore) +*.*ignore text + +# Basic .gitattributes for a python repo. + +# Source files +# ============ +*.pxd text diff=python +*.py text diff=python +*.py3 text diff=python +*.pyw text diff=python +*.pyx text diff=python +*.pyz text diff=python +*.pyi text diff=python + +# Binary files +# ============ +*.db binary +*.p binary +*.pkl binary +*.pickle binary +*.pyc binary export-ignore +*.pyo binary export-ignore +*.pyd binary + +# Jupyter notebook +*.ipynb text eol=lf + +# Note: .db, .p, and .pkl files are associated +# with the python modules ``pickle``, ``dbm.*``, +# ``shelve``, ``marshal``, ``anydbm``, & ``bsddb`` +# (among others). + +# Apply override to all files in the directory +*.md linguist-detectable + +# Common settings that generally should always be used with your language specific settings + +# Auto detect text files and perform LF normalization +* text=auto + +# +# The above will handle all files NOT found below +# + +# Documents +*.bibtex text diff=bibtex +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain +*.md text diff=markdown +*.mdx text diff=markdown +*.tex text diff=tex +*.adoc text +*.textile text +*.mustache text +*.csv text eol=crlf +*.tab text +*.tsv text +*.txt text +*.sql text +*.epub diff=astextplain + +# Graphics +*.png binary +*.jpg binary +*.jpeg binary +*.gif binary +*.tif binary +*.tiff binary +*.ico binary +# SVG treated as text by default. +*.svg text +# If you want to treat it as binary, +# use the following line instead. +# *.svg binary +*.eps binary + +# Scripts +*.bash text eol=lf +*.fish text eol=lf +*.sh text eol=lf +*.zsh text eol=lf +# These are explicitly windows files and should use crlf +*.bat text eol=crlf +*.cmd text eol=crlf +*.ps1 text eol=crlf + +# Serialisation +*.json text +*.toml text +*.xml text +*.yaml text +*.yml text + +# Archives +*.7z binary +*.gz binary +*.tar binary +*.tgz binary +*.zip binary + +# Text files where line endings should be preserved +*.patch -text + +# +# Exclude files from exporting +# + +.gitattributes export-ignore +.gitignore export-ignore +.gitkeep export-ignore diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..2263d1e --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,4 @@ +# These are supported funding model platforms + +github: traineratwot +patreon: traineratwot diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml new file mode 100644 index 0000000..ec5711d --- /dev/null +++ b/.github/workflows/package.yml @@ -0,0 +1,14 @@ +on: + push: + branches: + - master +name: Deploy Extension +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - run: npm install + - uses: lannonbr/vsce-action@3.0.0 + with: + args: "package" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e09386f --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +node_modules +*.vsix +1.md +.idea +*.js.map +tools\interpreter\interpreter.js +package-lock.json +tools/interpreter/interpreter.js +tools/fn.js +logs +tools/cache/* +.project-manager/ + + +core/*.js +core/*.js.map +core/*.d.ts +debugger/*.js +debugger/*.js.map +debugger/*.d.ts diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..c1866b9 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Extension Ic10-vscode", + "type": "extensionHost", + "stopOnEntry": true, + "request": "launch", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}", + "${workspaceFolder}/sampleWorkspace" + ] + } + ] +} diff --git a/.vscodeignore b/.vscodeignore new file mode 100644 index 0000000..0540d25 --- /dev/null +++ b/.vscodeignore @@ -0,0 +1,23 @@ +.vscode/** +.idea +.github +typings/** +test/** +src/** +**/*.map +tools +logs +sampleWorkspace +.gitignore +.gitattributes +vsc-extension-quickstart.md +tsconfig.json +vsc-extension-quickstart.md +out/** +webpack.config.js +**/*.ts +.git/** +pnpm-lock.yaml +tsconfig.json +*.md +*.txt diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..9840559 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,9 @@ +# ChangeLog + +NEW WIKI [http://traineratwot.aytour.ru/wiki/icx](http://traineratwot.aytour.ru/wiki/icx) + +[25-11-2021 20:50] + +- [fix]: use jump mark as constant +- [21-04-2021 15:58] + - [fix]: add RatioNitrousOxide to Devices variable diff --git a/Compiler/BASIC IC10 Compiler for Stationeers.exe b/Compiler/BASIC IC10 Compiler for Stationeers.exe new file mode 100644 index 0000000..2632e9c Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers.exe differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_BurstDebugInformation_DoNotShip/Data/Plugins/x86_64/lib_burst_generated.txt b/Compiler/BASIC IC10 Compiler for Stationeers_BurstDebugInformation_DoNotShip/Data/Plugins/x86_64/lib_burst_generated.txt new file mode 100644 index 0000000..87317c2 --- /dev/null +++ b/Compiler/BASIC IC10 Compiler for Stationeers_BurstDebugInformation_DoNotShip/Data/Plugins/x86_64/lib_burst_generated.txt @@ -0,0 +1,330 @@ +Library: lib_burst_generated +--platform=Windows +--backend=burst-llvm-11 +--target=X64_SSE2 +--global-safety-checks-setting=Off +--dump=Function +--float-precision=Standard +--format=Coff +--disable-warnings=BC1370 +--compilation-defines=UNITY_2021_3_4 +--compilation-defines=UNITY_2021_3 +--compilation-defines=UNITY_2021 +--compilation-defines=UNITY_5_3_OR_NEWER +--compilation-defines=UNITY_5_4_OR_NEWER +--compilation-defines=UNITY_5_5_OR_NEWER +--compilation-defines=UNITY_5_6_OR_NEWER +--compilation-defines=UNITY_2017_1_OR_NEWER +--compilation-defines=UNITY_2017_2_OR_NEWER +--compilation-defines=UNITY_2017_3_OR_NEWER +--compilation-defines=UNITY_2017_4_OR_NEWER +--compilation-defines=UNITY_2018_1_OR_NEWER +--compilation-defines=UNITY_2018_2_OR_NEWER +--compilation-defines=UNITY_2018_3_OR_NEWER +--compilation-defines=UNITY_2018_4_OR_NEWER +--compilation-defines=UNITY_2019_1_OR_NEWER +--compilation-defines=UNITY_2019_2_OR_NEWER +--compilation-defines=UNITY_2019_3_OR_NEWER +--compilation-defines=UNITY_2019_4_OR_NEWER +--compilation-defines=UNITY_2020_1_OR_NEWER +--compilation-defines=UNITY_2020_2_OR_NEWER +--compilation-defines=UNITY_2020_3_OR_NEWER +--compilation-defines=UNITY_2021_1_OR_NEWER +--compilation-defines=UNITY_2021_2_OR_NEWER +--compilation-defines=UNITY_2021_3_OR_NEWER +--compilation-defines=PLATFORM_ARCH_64 +--compilation-defines=UNITY_64 +--compilation-defines=USE_SEARCH_ENGINE_API +--compilation-defines=USE_SEARCH_TABLE +--compilation-defines=USE_SEARCH_MODULE +--compilation-defines=USE_PROPERTY_DATABASE +--compilation-defines=USE_SEARCH_EXTENSION_API +--compilation-defines=SCENE_TEMPLATE_MODULE +--compilation-defines=ENABLE_AR +--compilation-defines=ENABLE_AUDIO +--compilation-defines=ENABLE_CACHING +--compilation-defines=ENABLE_CLOTH +--compilation-defines=ENABLE_EVENT_QUEUE +--compilation-defines=ENABLE_MICROPHONE +--compilation-defines=ENABLE_MULTIPLE_DISPLAYS +--compilation-defines=ENABLE_PHYSICS +--compilation-defines=ENABLE_TEXTURE_STREAMING +--compilation-defines=ENABLE_VIRTUALTEXTURING +--compilation-defines=ENABLE_UNET +--compilation-defines=ENABLE_LZMA +--compilation-defines=ENABLE_UNITYEVENTS +--compilation-defines=ENABLE_VR +--compilation-defines=ENABLE_WEBCAM +--compilation-defines=ENABLE_UNITYWEBREQUEST +--compilation-defines=ENABLE_WWW +--compilation-defines=ENABLE_CLOUD_SERVICES +--compilation-defines=ENABLE_CLOUD_SERVICES_COLLAB +--compilation-defines=ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS +--compilation-defines=ENABLE_CLOUD_SERVICES_ADS +--compilation-defines=ENABLE_CLOUD_SERVICES_USE_WEBREQUEST +--compilation-defines=ENABLE_CLOUD_SERVICES_CRASH_REPORTING +--compilation-defines=ENABLE_CLOUD_SERVICES_PURCHASING +--compilation-defines=ENABLE_CLOUD_SERVICES_ANALYTICS +--compilation-defines=ENABLE_CLOUD_SERVICES_UNET +--compilation-defines=ENABLE_CLOUD_SERVICES_BUILD +--compilation-defines=ENABLE_CLOUD_LICENSE +--compilation-defines=ENABLE_EDITOR_HUB_LICENSE +--compilation-defines=ENABLE_WEBSOCKET_CLIENT +--compilation-defines=ENABLE_DIRECTOR_AUDIO +--compilation-defines=ENABLE_DIRECTOR_TEXTURE +--compilation-defines=ENABLE_MANAGED_JOBS +--compilation-defines=ENABLE_MANAGED_TRANSFORM_JOBS +--compilation-defines=ENABLE_MANAGED_ANIMATION_JOBS +--compilation-defines=ENABLE_MANAGED_AUDIO_JOBS +--compilation-defines=ENABLE_MANAGED_UNITYTLS +--compilation-defines=INCLUDE_DYNAMIC_GI +--compilation-defines=ENABLE_SCRIPTING_GC_WBARRIERS +--compilation-defines=PLATFORM_SUPPORTS_MONO +--compilation-defines=RENDER_SOFTWARE_CURSOR +--compilation-defines=ENABLE_VIDEO +--compilation-defines=ENABLE_ACCELERATOR_CLIENT_DEBUGGING +--compilation-defines=PLATFORM_STANDALONE +--compilation-defines=TEXTCORE_1_0_OR_NEWER +--compilation-defines=PLATFORM_STANDALONE_WIN +--compilation-defines=UNITY_STANDALONE_WIN +--compilation-defines=UNITY_STANDALONE +--compilation-defines=ENABLE_RUNTIME_GI +--compilation-defines=ENABLE_MOVIES +--compilation-defines=ENABLE_NETWORK +--compilation-defines=ENABLE_NVIDIA +--compilation-defines=ENABLE_CRUNCH_TEXTURE_COMPRESSION +--compilation-defines=ENABLE_OUT_OF_PROCESS_CRASH_HANDLER +--compilation-defines=ENABLE_CLUSTER_SYNC +--compilation-defines=ENABLE_CLUSTERINPUT +--compilation-defines=PLATFORM_UPDATES_TIME_OUTSIDE_OF_PLAYER_LOOP +--compilation-defines=GFXDEVICE_WAITFOREVENT_MESSAGEPUMP +--compilation-defines=ENABLE_WEBSOCKET_HOST +--compilation-defines=ENABLE_MONO +--compilation-defines=NET_STANDARD_2_0 +--compilation-defines=NET_STANDARD +--compilation-defines=ENABLE_CUSTOM_RENDER_TEXTURE +--compilation-defines=ENABLE_DIRECTOR +--compilation-defines=ENABLE_LOCALIZATION +--compilation-defines=ENABLE_SPRITES +--compilation-defines=ENABLE_TERRAIN +--compilation-defines=ENABLE_TILEMAP +--compilation-defines=ENABLE_TIMELINE +--compilation-defines=ENABLE_INPUT_SYSTEM +--compilation-defines=ENABLE_LEGACY_INPUT_MANAGER +--compilation-defines=PACKAGE_PHYSICS +--compilation-defines=PACKAGE_PHYSICS2D +--compilation-defines=PACKAGE_TILEMAP +--compilation-defines=PACKAGE_ANIMATION +--compilation-defines=PACKAGE_UITOOLKIT +--compilation-defines=CSHARP_7_OR_LATER +--compilation-defines=CSHARP_7_3_OR_NEWER +--compilation-defines=MODULE_AI_EXISTS +--compilation-defines=MODULE_ANIMATION_EXISTS +--compilation-defines=MODULE_PHYSICS_EXISTS +--compilation-defines=MODULE_PHYSICS_2D_EXISTS +--compilation-defines=MODULE_PARTICLE_SYSTEM_EXISTS +--compilation-defines=ENABLE_ANIMATION_BURST +--compilation-defines=TIMELINE_FRAMEACCURATE +--compilation-defines=ENABLE_SPRITESHAPE_BURST +--linker-options=PdbAltPath="BASIC IC10 Compiler for Stationeers_Data/Plugins/x86_64" +--generate-link-xml=Temp\burst.link.xml +--output=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Plugins\x86_64\lib_burst_generated +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\UnityEngine.UI.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Assembly-CSharp.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.VisualScripting.Flow.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Mathematics.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Telemetry.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.VisualScripting.State.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.VisualScripting.Core.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Environments.Internal.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Burst.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.2D.Animation.Runtime.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.TextMeshPro.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Timeline.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Environments.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Internal.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Analytics.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.2D.SpriteShape.Runtime.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Scheduler.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Registration.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.2D.PixelPerfect.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.2D.Common.Runtime.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.2D.IK.Runtime.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Device.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Threading.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.2D.Tilemap.Extras.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Networking.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.InternalAPIEngineBridge.001.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Configuration.dll +--assembly-folder=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\ +--pdb-search-paths=Temp/ManagedSymbols/ +--method=Unity.Burst.BurstCompiler+BurstCompilerHelper, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null::IsBurstEnabled()--8c2be93e18276203cbd918daa2748a10 +--method=Unity.Burst.Intrinsics.X86, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null::DoSetCSRTrampoline(System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)--da352d92cabf024fc9986011d52a4537 +--method=Unity.Burst.Intrinsics.X86, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null::DoGetCSRTrampoline()--89425a97f3f500fa810ad03f0c382542 +--method=Unity.Jobs.IJobExtensions+JobStruct`1[[UnityEngine.U2D.SpriteShapeGenerator, Unity.2D.SpriteShape.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]], UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null::Execute(UnityEngine.U2D.SpriteShapeGenerator&, Unity.2D.SpriteShape.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.IntPtr, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|System.IntPtr, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|Unity.Jobs.LowLevel.Unsafe.JobRanges&, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)--a185c62eba2497c95197140e5282b27a +--platform=Windows +--backend=burst-llvm-11 +--target=AVX2 +--global-safety-checks-setting=Off +--dump=Function +--float-precision=Standard +--format=Coff +--disable-warnings=BC1370 +--compilation-defines=UNITY_2021_3_4 +--compilation-defines=UNITY_2021_3 +--compilation-defines=UNITY_2021 +--compilation-defines=UNITY_5_3_OR_NEWER +--compilation-defines=UNITY_5_4_OR_NEWER +--compilation-defines=UNITY_5_5_OR_NEWER +--compilation-defines=UNITY_5_6_OR_NEWER +--compilation-defines=UNITY_2017_1_OR_NEWER +--compilation-defines=UNITY_2017_2_OR_NEWER +--compilation-defines=UNITY_2017_3_OR_NEWER +--compilation-defines=UNITY_2017_4_OR_NEWER +--compilation-defines=UNITY_2018_1_OR_NEWER +--compilation-defines=UNITY_2018_2_OR_NEWER +--compilation-defines=UNITY_2018_3_OR_NEWER +--compilation-defines=UNITY_2018_4_OR_NEWER +--compilation-defines=UNITY_2019_1_OR_NEWER +--compilation-defines=UNITY_2019_2_OR_NEWER +--compilation-defines=UNITY_2019_3_OR_NEWER +--compilation-defines=UNITY_2019_4_OR_NEWER +--compilation-defines=UNITY_2020_1_OR_NEWER +--compilation-defines=UNITY_2020_2_OR_NEWER +--compilation-defines=UNITY_2020_3_OR_NEWER +--compilation-defines=UNITY_2021_1_OR_NEWER +--compilation-defines=UNITY_2021_2_OR_NEWER +--compilation-defines=UNITY_2021_3_OR_NEWER +--compilation-defines=PLATFORM_ARCH_64 +--compilation-defines=UNITY_64 +--compilation-defines=USE_SEARCH_ENGINE_API +--compilation-defines=USE_SEARCH_TABLE +--compilation-defines=USE_SEARCH_MODULE +--compilation-defines=USE_PROPERTY_DATABASE +--compilation-defines=USE_SEARCH_EXTENSION_API +--compilation-defines=SCENE_TEMPLATE_MODULE +--compilation-defines=ENABLE_AR +--compilation-defines=ENABLE_AUDIO +--compilation-defines=ENABLE_CACHING +--compilation-defines=ENABLE_CLOTH +--compilation-defines=ENABLE_EVENT_QUEUE +--compilation-defines=ENABLE_MICROPHONE +--compilation-defines=ENABLE_MULTIPLE_DISPLAYS +--compilation-defines=ENABLE_PHYSICS +--compilation-defines=ENABLE_TEXTURE_STREAMING +--compilation-defines=ENABLE_VIRTUALTEXTURING +--compilation-defines=ENABLE_UNET +--compilation-defines=ENABLE_LZMA +--compilation-defines=ENABLE_UNITYEVENTS +--compilation-defines=ENABLE_VR +--compilation-defines=ENABLE_WEBCAM +--compilation-defines=ENABLE_UNITYWEBREQUEST +--compilation-defines=ENABLE_WWW +--compilation-defines=ENABLE_CLOUD_SERVICES +--compilation-defines=ENABLE_CLOUD_SERVICES_COLLAB +--compilation-defines=ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS +--compilation-defines=ENABLE_CLOUD_SERVICES_ADS +--compilation-defines=ENABLE_CLOUD_SERVICES_USE_WEBREQUEST +--compilation-defines=ENABLE_CLOUD_SERVICES_CRASH_REPORTING +--compilation-defines=ENABLE_CLOUD_SERVICES_PURCHASING +--compilation-defines=ENABLE_CLOUD_SERVICES_ANALYTICS +--compilation-defines=ENABLE_CLOUD_SERVICES_UNET +--compilation-defines=ENABLE_CLOUD_SERVICES_BUILD +--compilation-defines=ENABLE_CLOUD_LICENSE +--compilation-defines=ENABLE_EDITOR_HUB_LICENSE +--compilation-defines=ENABLE_WEBSOCKET_CLIENT +--compilation-defines=ENABLE_DIRECTOR_AUDIO +--compilation-defines=ENABLE_DIRECTOR_TEXTURE +--compilation-defines=ENABLE_MANAGED_JOBS +--compilation-defines=ENABLE_MANAGED_TRANSFORM_JOBS +--compilation-defines=ENABLE_MANAGED_ANIMATION_JOBS +--compilation-defines=ENABLE_MANAGED_AUDIO_JOBS +--compilation-defines=ENABLE_MANAGED_UNITYTLS +--compilation-defines=INCLUDE_DYNAMIC_GI +--compilation-defines=ENABLE_SCRIPTING_GC_WBARRIERS +--compilation-defines=PLATFORM_SUPPORTS_MONO +--compilation-defines=RENDER_SOFTWARE_CURSOR +--compilation-defines=ENABLE_VIDEO +--compilation-defines=ENABLE_ACCELERATOR_CLIENT_DEBUGGING +--compilation-defines=PLATFORM_STANDALONE +--compilation-defines=TEXTCORE_1_0_OR_NEWER +--compilation-defines=PLATFORM_STANDALONE_WIN +--compilation-defines=UNITY_STANDALONE_WIN +--compilation-defines=UNITY_STANDALONE +--compilation-defines=ENABLE_RUNTIME_GI +--compilation-defines=ENABLE_MOVIES +--compilation-defines=ENABLE_NETWORK +--compilation-defines=ENABLE_NVIDIA +--compilation-defines=ENABLE_CRUNCH_TEXTURE_COMPRESSION +--compilation-defines=ENABLE_OUT_OF_PROCESS_CRASH_HANDLER +--compilation-defines=ENABLE_CLUSTER_SYNC +--compilation-defines=ENABLE_CLUSTERINPUT +--compilation-defines=PLATFORM_UPDATES_TIME_OUTSIDE_OF_PLAYER_LOOP +--compilation-defines=GFXDEVICE_WAITFOREVENT_MESSAGEPUMP +--compilation-defines=ENABLE_WEBSOCKET_HOST +--compilation-defines=ENABLE_MONO +--compilation-defines=NET_STANDARD_2_0 +--compilation-defines=NET_STANDARD +--compilation-defines=ENABLE_CUSTOM_RENDER_TEXTURE +--compilation-defines=ENABLE_DIRECTOR +--compilation-defines=ENABLE_LOCALIZATION +--compilation-defines=ENABLE_SPRITES +--compilation-defines=ENABLE_TERRAIN +--compilation-defines=ENABLE_TILEMAP +--compilation-defines=ENABLE_TIMELINE +--compilation-defines=ENABLE_INPUT_SYSTEM +--compilation-defines=ENABLE_LEGACY_INPUT_MANAGER +--compilation-defines=PACKAGE_PHYSICS +--compilation-defines=PACKAGE_PHYSICS2D +--compilation-defines=PACKAGE_TILEMAP +--compilation-defines=PACKAGE_ANIMATION +--compilation-defines=PACKAGE_UITOOLKIT +--compilation-defines=CSHARP_7_OR_LATER +--compilation-defines=CSHARP_7_3_OR_NEWER +--compilation-defines=MODULE_AI_EXISTS +--compilation-defines=MODULE_ANIMATION_EXISTS +--compilation-defines=MODULE_PHYSICS_EXISTS +--compilation-defines=MODULE_PHYSICS_2D_EXISTS +--compilation-defines=MODULE_PARTICLE_SYSTEM_EXISTS +--compilation-defines=ENABLE_ANIMATION_BURST +--compilation-defines=TIMELINE_FRAMEACCURATE +--compilation-defines=ENABLE_SPRITESHAPE_BURST +--linker-options=PdbAltPath="BASIC IC10 Compiler for Stationeers_Data/Plugins/x86_64" +--generate-link-xml=Temp\burst.link.xml +--output=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Plugins\x86_64\lib_burst_generated +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\UnityEngine.UI.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Assembly-CSharp.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.VisualScripting.Flow.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Mathematics.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Telemetry.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.VisualScripting.State.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.VisualScripting.Core.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Environments.Internal.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Burst.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.2D.Animation.Runtime.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.TextMeshPro.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Timeline.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Environments.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Internal.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Analytics.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.2D.SpriteShape.Runtime.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Scheduler.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Registration.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.2D.PixelPerfect.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.2D.Common.Runtime.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.2D.IK.Runtime.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Device.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Threading.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.2D.Tilemap.Extras.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Networking.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.InternalAPIEngineBridge.001.dll +--root-assembly=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\Unity.Services.Core.Configuration.dll +--assembly-folder=E:\Unity Projects\BASIC IC10 Compiler\Temp\StagingArea\Data\Managed\ +--pdb-search-paths=Temp/ManagedSymbols/ +--method=Unity.Burst.BurstCompiler+BurstCompilerHelper, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null::IsBurstEnabled()--8c2be93e18276203cbd918daa2748a10 +--method=Unity.Burst.Intrinsics.X86, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null::DoSetCSRTrampoline(System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)--da352d92cabf024fc9986011d52a4537 +--method=Unity.Burst.Intrinsics.X86, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null::DoGetCSRTrampoline()--89425a97f3f500fa810ad03f0c382542 +--method=Unity.Jobs.IJobExtensions+JobStruct`1[[UnityEngine.U2D.SpriteShapeGenerator, Unity.2D.SpriteShape.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]], UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null::Execute(UnityEngine.U2D.SpriteShapeGenerator&, Unity.2D.SpriteShape.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.IntPtr, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|System.IntPtr, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089|Unity.Jobs.LowLevel.Unsafe.JobRanges&, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null|System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)--a185c62eba2497c95197140e5282b27a + diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Assembly-CSharp.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Assembly-CSharp.dll new file mode 100644 index 0000000..b3b7b32 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Assembly-CSharp.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Mono.Security.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Mono.Security.dll new file mode 100644 index 0000000..5c07e0a Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Mono.Security.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Newtonsoft.Json.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Newtonsoft.Json.dll new file mode 100644 index 0000000..82b10c4 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Newtonsoft.Json.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.ComponentModel.Composition.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.ComponentModel.Composition.dll new file mode 100644 index 0000000..31f40a7 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.ComponentModel.Composition.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Configuration.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Configuration.dll new file mode 100644 index 0000000..724926c Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Configuration.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Core.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Core.dll new file mode 100644 index 0000000..c763e54 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Core.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Data.DataSetExtensions.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Data.DataSetExtensions.dll new file mode 100644 index 0000000..20db86b Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Data.DataSetExtensions.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Data.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Data.dll new file mode 100644 index 0000000..f066b18 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Data.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Drawing.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Drawing.dll new file mode 100644 index 0000000..a7d76b2 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Drawing.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.EnterpriseServices.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.EnterpriseServices.dll new file mode 100644 index 0000000..a8798ea Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.EnterpriseServices.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.IO.Compression.FileSystem.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.IO.Compression.FileSystem.dll new file mode 100644 index 0000000..d8d0f8b Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.IO.Compression.FileSystem.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.IO.Compression.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.IO.Compression.dll new file mode 100644 index 0000000..2bab4ff Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.IO.Compression.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Net.Http.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Net.Http.dll new file mode 100644 index 0000000..2404734 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Net.Http.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Numerics.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Numerics.dll new file mode 100644 index 0000000..cb229a9 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Numerics.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Runtime.Serialization.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Runtime.Serialization.dll new file mode 100644 index 0000000..6452550 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Runtime.Serialization.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Runtime.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Runtime.dll new file mode 100644 index 0000000..fcb17d5 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Runtime.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Security.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Security.dll new file mode 100644 index 0000000..5d410ed Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Security.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.ServiceModel.Internals.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.ServiceModel.Internals.dll new file mode 100644 index 0000000..101dbb2 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.ServiceModel.Internals.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Transactions.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Transactions.dll new file mode 100644 index 0000000..d744dc8 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Transactions.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Xml.Linq.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Xml.Linq.dll new file mode 100644 index 0000000..df76525 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Xml.Linq.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Xml.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Xml.dll new file mode 100644 index 0000000..24d57d9 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.Xml.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.dll new file mode 100644 index 0000000..c123d1b Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/System.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.Animation.Runtime.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.Animation.Runtime.dll new file mode 100644 index 0000000..c7e2d56 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.Animation.Runtime.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.Common.Runtime.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.Common.Runtime.dll new file mode 100644 index 0000000..6f93990 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.Common.Runtime.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.IK.Runtime.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.IK.Runtime.dll new file mode 100644 index 0000000..83c25d0 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.IK.Runtime.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.PixelPerfect.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.PixelPerfect.dll new file mode 100644 index 0000000..56abcf8 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.PixelPerfect.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.SpriteShape.Runtime.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.SpriteShape.Runtime.dll new file mode 100644 index 0000000..3d4a293 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.SpriteShape.Runtime.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.Tilemap.Extras.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.Tilemap.Extras.dll new file mode 100644 index 0000000..ebf1fd8 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.2D.Tilemap.Extras.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.Cecil.Mdb.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.Cecil.Mdb.dll new file mode 100644 index 0000000..c91fb2c Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.Cecil.Mdb.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.Cecil.Pdb.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.Cecil.Pdb.dll new file mode 100644 index 0000000..62c2093 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.Cecil.Pdb.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.Cecil.Rocks.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.Cecil.Rocks.dll new file mode 100644 index 0000000..ceda0a0 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.Cecil.Rocks.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.Cecil.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.Cecil.dll new file mode 100644 index 0000000..91aba2d Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.Cecil.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.Unsafe.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.Unsafe.dll new file mode 100644 index 0000000..ac36cfa Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.Unsafe.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.dll new file mode 100644 index 0000000..0f5f88f Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Burst.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.InternalAPIEngineBridge.001.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.InternalAPIEngineBridge.001.dll new file mode 100644 index 0000000..d8f6249 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.InternalAPIEngineBridge.001.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Mathematics.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Mathematics.dll new file mode 100644 index 0000000..0f76ecc Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Mathematics.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Analytics.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Analytics.dll new file mode 100644 index 0000000..3074dac Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Analytics.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Configuration.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Configuration.dll new file mode 100644 index 0000000..5bf0178 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Configuration.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Device.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Device.dll new file mode 100644 index 0000000..9bc0c99 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Device.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Environments.Internal.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Environments.Internal.dll new file mode 100644 index 0000000..cf82043 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Environments.Internal.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Environments.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Environments.dll new file mode 100644 index 0000000..4b94346 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Environments.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Internal.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Internal.dll new file mode 100644 index 0000000..3b672d0 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Internal.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Networking.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Networking.dll new file mode 100644 index 0000000..257add9 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Networking.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Registration.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Registration.dll new file mode 100644 index 0000000..6cead2d Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Registration.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Scheduler.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Scheduler.dll new file mode 100644 index 0000000..b59816f Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Scheduler.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Telemetry.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Telemetry.dll new file mode 100644 index 0000000..4a0f410 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Telemetry.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Threading.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Threading.dll new file mode 100644 index 0000000..1dd3bfb Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.Threading.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.dll new file mode 100644 index 0000000..3725850 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Services.Core.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.TextMeshPro.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.TextMeshPro.dll new file mode 100644 index 0000000..cbdf3d0 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.TextMeshPro.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Timeline.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Timeline.dll new file mode 100644 index 0000000..a9c5172 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.Timeline.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.VisualScripting.Antlr3.Runtime.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.VisualScripting.Antlr3.Runtime.dll new file mode 100644 index 0000000..d7de8d6 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.VisualScripting.Antlr3.Runtime.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.VisualScripting.Core.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.VisualScripting.Core.dll new file mode 100644 index 0000000..c193a91 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.VisualScripting.Core.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.VisualScripting.Flow.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.VisualScripting.Flow.dll new file mode 100644 index 0000000..4fc22e0 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.VisualScripting.Flow.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.VisualScripting.State.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.VisualScripting.State.dll new file mode 100644 index 0000000..d8acdd4 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/Unity.VisualScripting.State.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AIModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AIModule.dll new file mode 100644 index 0000000..c80bc58 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AIModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ARModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ARModule.dll new file mode 100644 index 0000000..00a71a1 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ARModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AccessibilityModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AccessibilityModule.dll new file mode 100644 index 0000000..a041c06 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AccessibilityModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AndroidJNIModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AndroidJNIModule.dll new file mode 100644 index 0000000..ce3125d Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AndroidJNIModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AnimationModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AnimationModule.dll new file mode 100644 index 0000000..c05c975 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AnimationModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AssetBundleModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AssetBundleModule.dll new file mode 100644 index 0000000..0984925 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AssetBundleModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AudioModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AudioModule.dll new file mode 100644 index 0000000..3646eb7 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.AudioModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ClothModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ClothModule.dll new file mode 100644 index 0000000..df1a96a Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ClothModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ClusterInputModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ClusterInputModule.dll new file mode 100644 index 0000000..2d94cb1 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ClusterInputModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ClusterRendererModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ClusterRendererModule.dll new file mode 100644 index 0000000..40ea7db Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ClusterRendererModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.CoreModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.CoreModule.dll new file mode 100644 index 0000000..70aab2f Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.CoreModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.CrashReportingModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.CrashReportingModule.dll new file mode 100644 index 0000000..5b0c4e3 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.CrashReportingModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.DSPGraphModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.DSPGraphModule.dll new file mode 100644 index 0000000..48cfec9 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.DSPGraphModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.DirectorModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.DirectorModule.dll new file mode 100644 index 0000000..75f8a95 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.DirectorModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.GIModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.GIModule.dll new file mode 100644 index 0000000..8e266a0 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.GIModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.GameCenterModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.GameCenterModule.dll new file mode 100644 index 0000000..4168cef Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.GameCenterModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.GridModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.GridModule.dll new file mode 100644 index 0000000..180559c Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.GridModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.HotReloadModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.HotReloadModule.dll new file mode 100644 index 0000000..dd0fa83 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.HotReloadModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.IMGUIModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.IMGUIModule.dll new file mode 100644 index 0000000..76a8aeb Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.IMGUIModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ImageConversionModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ImageConversionModule.dll new file mode 100644 index 0000000..0207eb2 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ImageConversionModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.InputLegacyModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.InputLegacyModule.dll new file mode 100644 index 0000000..15db736 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.InputLegacyModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.InputModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.InputModule.dll new file mode 100644 index 0000000..dc7de1d Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.InputModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.JSONSerializeModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.JSONSerializeModule.dll new file mode 100644 index 0000000..6154db0 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.JSONSerializeModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.LocalizationModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.LocalizationModule.dll new file mode 100644 index 0000000..c57baa9 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.LocalizationModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.NVIDIAModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.NVIDIAModule.dll new file mode 100644 index 0000000..99183a7 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.NVIDIAModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ParticleSystemModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ParticleSystemModule.dll new file mode 100644 index 0000000..727696c Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ParticleSystemModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.PerformanceReportingModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.PerformanceReportingModule.dll new file mode 100644 index 0000000..65972fd Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.PerformanceReportingModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.Physics2DModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.Physics2DModule.dll new file mode 100644 index 0000000..71c4420 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.Physics2DModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.PhysicsModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.PhysicsModule.dll new file mode 100644 index 0000000..2f8e3e7 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.PhysicsModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ProfilerModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ProfilerModule.dll new file mode 100644 index 0000000..baaa81b Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ProfilerModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll new file mode 100644 index 0000000..8ed149b Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ScreenCaptureModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ScreenCaptureModule.dll new file mode 100644 index 0000000..826fc33 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.ScreenCaptureModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.SharedInternalsModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.SharedInternalsModule.dll new file mode 100644 index 0000000..5b97c97 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.SharedInternalsModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.SpriteMaskModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.SpriteMaskModule.dll new file mode 100644 index 0000000..bc9dcbc Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.SpriteMaskModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.SpriteShapeModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.SpriteShapeModule.dll new file mode 100644 index 0000000..24c70fe Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.SpriteShapeModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.StreamingModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.StreamingModule.dll new file mode 100644 index 0000000..a8ec55d Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.StreamingModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.SubstanceModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.SubstanceModule.dll new file mode 100644 index 0000000..783e88e Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.SubstanceModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.SubsystemsModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.SubsystemsModule.dll new file mode 100644 index 0000000..ac5a995 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.SubsystemsModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TLSModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TLSModule.dll new file mode 100644 index 0000000..27875c7 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TLSModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TerrainModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TerrainModule.dll new file mode 100644 index 0000000..ee67f7e Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TerrainModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TerrainPhysicsModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TerrainPhysicsModule.dll new file mode 100644 index 0000000..8cd7aeb Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TerrainPhysicsModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TextCoreFontEngineModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TextCoreFontEngineModule.dll new file mode 100644 index 0000000..2d908d8 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TextCoreFontEngineModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TextCoreTextEngineModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TextCoreTextEngineModule.dll new file mode 100644 index 0000000..c96cd72 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TextCoreTextEngineModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TextRenderingModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TextRenderingModule.dll new file mode 100644 index 0000000..ddbe75a Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TextRenderingModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TilemapModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TilemapModule.dll new file mode 100644 index 0000000..d995664 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.TilemapModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UI.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UI.dll new file mode 100644 index 0000000..b5e0d4d Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UI.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UIElementsModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UIElementsModule.dll new file mode 100644 index 0000000..6726ea7 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UIElementsModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UIElementsNativeModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UIElementsNativeModule.dll new file mode 100644 index 0000000..b4543ee Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UIElementsNativeModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UIModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UIModule.dll new file mode 100644 index 0000000..aa27e22 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UIModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UNETModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UNETModule.dll new file mode 100644 index 0000000..a2aee7b Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UNETModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UmbraModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UmbraModule.dll new file mode 100644 index 0000000..abb2b42 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UmbraModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityAnalyticsModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityAnalyticsModule.dll new file mode 100644 index 0000000..5fcaec1 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityAnalyticsModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityConnectModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityConnectModule.dll new file mode 100644 index 0000000..253534f Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityConnectModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityCurlModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityCurlModule.dll new file mode 100644 index 0000000..3368c99 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityCurlModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityTestProtocolModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityTestProtocolModule.dll new file mode 100644 index 0000000..aa477f1 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityTestProtocolModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityWebRequestAssetBundleModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityWebRequestAssetBundleModule.dll new file mode 100644 index 0000000..e3f193a Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityWebRequestAssetBundleModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityWebRequestAudioModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityWebRequestAudioModule.dll new file mode 100644 index 0000000..ffce950 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityWebRequestAudioModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityWebRequestModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityWebRequestModule.dll new file mode 100644 index 0000000..9c4d066 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityWebRequestModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityWebRequestTextureModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityWebRequestTextureModule.dll new file mode 100644 index 0000000..2d6b993 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityWebRequestTextureModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityWebRequestWWWModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityWebRequestWWWModule.dll new file mode 100644 index 0000000..1822006 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.UnityWebRequestWWWModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.VFXModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.VFXModule.dll new file mode 100644 index 0000000..61f9865 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.VFXModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.VRModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.VRModule.dll new file mode 100644 index 0000000..3a72a72 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.VRModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.VehiclesModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.VehiclesModule.dll new file mode 100644 index 0000000..349d25c Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.VehiclesModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.VideoModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.VideoModule.dll new file mode 100644 index 0000000..1ca6be5 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.VideoModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.VirtualTexturingModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.VirtualTexturingModule.dll new file mode 100644 index 0000000..b79cd3f Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.VirtualTexturingModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.WindModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.WindModule.dll new file mode 100644 index 0000000..1834c0e Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.WindModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.XRModule.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.XRModule.dll new file mode 100644 index 0000000..034cab2 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.XRModule.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.dll new file mode 100644 index 0000000..c1f19a3 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/UnityEngine.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/mscorlib.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/mscorlib.dll new file mode 100644 index 0000000..4c75e1c Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/mscorlib.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/netstandard.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/netstandard.dll new file mode 100644 index 0000000..12f381a Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Managed/netstandard.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Plugins/x86_64/lib_burst_generated.dll b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Plugins/x86_64/lib_burst_generated.dll new file mode 100644 index 0000000..3556e1c Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Plugins/x86_64/lib_burst_generated.dll differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Resources/unity default resources b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Resources/unity default resources new file mode 100644 index 0000000..a98d6ae Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Resources/unity default resources differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/Resources/unity_builtin_extra b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Resources/unity_builtin_extra new file mode 100644 index 0000000..e6a540c Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/Resources/unity_builtin_extra differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/RuntimeInitializeOnLoads.json b/Compiler/BASIC IC10 Compiler for Stationeers_Data/RuntimeInitializeOnLoads.json new file mode 100644 index 0000000..891bae7 --- /dev/null +++ b/Compiler/BASIC IC10 Compiler for Stationeers_Data/RuntimeInitializeOnLoads.json @@ -0,0 +1 @@ +{"root":[{"assemblyName":"Unity.Services.Core.Internal","nameSpace":"Unity.Services.Core.Internal","className":"TaskAsyncOperation","methodName":"SetScheduler","loadTypes":1,"isUnityClass":true},{"assemblyName":"Unity.Services.Core.Internal","nameSpace":"Unity.Services.Core.Internal","className":"UnityServicesInitializer","methodName":"CreateStaticInstance","loadTypes":2,"isUnityClass":true},{"assemblyName":"Unity.Services.Core.Internal","nameSpace":"Unity.Services.Core.Internal","className":"UnityServicesInitializer","methodName":"EnableServicesInitializationAsync","loadTypes":0,"isUnityClass":true},{"assemblyName":"Unity.Services.Core","nameSpace":"Unity.Services.Core","className":"UnityThreadUtils","methodName":"CaptureUnityThreadInfo","loadTypes":4,"isUnityClass":true},{"assemblyName":"Unity.VisualScripting.Core","nameSpace":"Unity.VisualScripting","className":"RuntimeVSUsageUtility","methodName":"RuntimeInitializeOnLoadBeforeSceneLoad","loadTypes":1,"isUnityClass":true},{"assemblyName":"Unity.Services.Core.Registration","nameSpace":"Unity.Services.Core.Registration","className":"CorePackageInitializer","methodName":"Register","loadTypes":1,"isUnityClass":true}]} diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/ScriptingAssemblies.json b/Compiler/BASIC IC10 Compiler for Stationeers_Data/ScriptingAssemblies.json new file mode 100644 index 0000000..f30164f --- /dev/null +++ b/Compiler/BASIC IC10 Compiler for Stationeers_Data/ScriptingAssemblies.json @@ -0,0 +1 @@ +{"names":["UnityEngine.dll","UnityEngine.AIModule.dll","UnityEngine.ARModule.dll","UnityEngine.AccessibilityModule.dll","UnityEngine.AndroidJNIModule.dll","UnityEngine.AnimationModule.dll","UnityEngine.AssetBundleModule.dll","UnityEngine.AudioModule.dll","UnityEngine.ClothModule.dll","UnityEngine.ClusterInputModule.dll","UnityEngine.ClusterRendererModule.dll","UnityEngine.CoreModule.dll","UnityEngine.CrashReportingModule.dll","UnityEngine.DSPGraphModule.dll","UnityEngine.DirectorModule.dll","UnityEngine.GIModule.dll","UnityEngine.GameCenterModule.dll","UnityEngine.GridModule.dll","UnityEngine.HotReloadModule.dll","UnityEngine.IMGUIModule.dll","UnityEngine.ImageConversionModule.dll","UnityEngine.InputModule.dll","UnityEngine.InputLegacyModule.dll","UnityEngine.JSONSerializeModule.dll","UnityEngine.LocalizationModule.dll","UnityEngine.NVIDIAModule.dll","UnityEngine.ParticleSystemModule.dll","UnityEngine.PerformanceReportingModule.dll","UnityEngine.PhysicsModule.dll","UnityEngine.Physics2DModule.dll","UnityEngine.ProfilerModule.dll","UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll","UnityEngine.ScreenCaptureModule.dll","UnityEngine.SharedInternalsModule.dll","UnityEngine.SpriteMaskModule.dll","UnityEngine.SpriteShapeModule.dll","UnityEngine.StreamingModule.dll","UnityEngine.SubstanceModule.dll","UnityEngine.SubsystemsModule.dll","UnityEngine.TLSModule.dll","UnityEngine.TerrainModule.dll","UnityEngine.TerrainPhysicsModule.dll","UnityEngine.TextCoreFontEngineModule.dll","UnityEngine.TextCoreTextEngineModule.dll","UnityEngine.TextRenderingModule.dll","UnityEngine.TilemapModule.dll","UnityEngine.UIModule.dll","UnityEngine.UIElementsModule.dll","UnityEngine.UIElementsNativeModule.dll","UnityEngine.UNETModule.dll","UnityEngine.UmbraModule.dll","UnityEngine.UnityAnalyticsModule.dll","UnityEngine.UnityConnectModule.dll","UnityEngine.UnityCurlModule.dll","UnityEngine.UnityTestProtocolModule.dll","UnityEngine.UnityWebRequestModule.dll","UnityEngine.UnityWebRequestAssetBundleModule.dll","UnityEngine.UnityWebRequestAudioModule.dll","UnityEngine.UnityWebRequestTextureModule.dll","UnityEngine.UnityWebRequestWWWModule.dll","UnityEngine.VFXModule.dll","UnityEngine.VRModule.dll","UnityEngine.VehiclesModule.dll","UnityEngine.VideoModule.dll","UnityEngine.VirtualTexturingModule.dll","UnityEngine.WindModule.dll","UnityEngine.XRModule.dll","Assembly-CSharp.dll","Unity.2D.Tilemap.Extras.dll","Unity.InternalAPIEngineBridge.001.dll","Unity.2D.PixelPerfect.dll","Unity.Services.Core.Telemetry.dll","Unity.Timeline.dll","Unity.TextMeshPro.dll","Unity.Services.Core.Networking.dll","Unity.VisualScripting.Flow.dll","Unity.Services.Core.Internal.dll","UnityEngine.UI.dll","Unity.Services.Core.Configuration.dll","Unity.Services.Core.dll","Unity.VisualScripting.Core.dll","Unity.Mathematics.dll","Unity.2D.IK.Runtime.dll","Unity.Services.Core.Analytics.dll","Unity.Burst.dll","Unity.Services.Core.Registration.dll","Unity.Services.Core.Environments.dll","Unity.2D.Animation.Runtime.dll","Unity.Services.Core.Scheduler.dll","Unity.Services.Core.Environments.Internal.dll","Unity.Services.Core.Threading.dll","Unity.2D.Common.Runtime.dll","Unity.2D.SpriteShape.Runtime.dll","Unity.VisualScripting.State.dll","Unity.Services.Core.Device.dll","Newtonsoft.Json.dll","Unity.Burst.Unsafe.dll","Unity.Burst.Cecil.Mdb.dll","Unity.Burst.Cecil.Pdb.dll","Unity.Burst.Cecil.dll","Unity.Burst.Cecil.Rocks.dll","Unity.VisualScripting.Antlr3.Runtime.dll"],"types":[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]} \ No newline at end of file diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/StreamingAssets/UnityServicesProjectConfiguration.json b/Compiler/BASIC IC10 Compiler for Stationeers_Data/StreamingAssets/UnityServicesProjectConfiguration.json new file mode 100644 index 0000000..34b3a44 --- /dev/null +++ b/Compiler/BASIC IC10 Compiler for Stationeers_Data/StreamingAssets/UnityServicesProjectConfiguration.json @@ -0,0 +1 @@ +{"Keys":["com.unity.services.core.version"],"Values":[{"m_Value":"1.4.0","m_IsReadOnly":true}]} \ No newline at end of file diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/app.info b/Compiler/BASIC IC10 Compiler for Stationeers_Data/app.info new file mode 100644 index 0000000..52e365f --- /dev/null +++ b/Compiler/BASIC IC10 Compiler for Stationeers_Data/app.info @@ -0,0 +1,2 @@ +Fly Game Studio +BASIC IC10 Compiler for Stationeers \ No newline at end of file diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/boot.config b/Compiler/BASIC IC10 Compiler for Stationeers_Data/boot.config new file mode 100644 index 0000000..990e506 --- /dev/null +++ b/Compiler/BASIC IC10 Compiler for Stationeers_Data/boot.config @@ -0,0 +1,3 @@ +wait-for-native-debugger=0 +hdr-display-enabled=0 +gc-max-time-slice=3 diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/globalgamemanagers b/Compiler/BASIC IC10 Compiler for Stationeers_Data/globalgamemanagers new file mode 100644 index 0000000..9f40cc9 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/globalgamemanagers differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/globalgamemanagers.assets b/Compiler/BASIC IC10 Compiler for Stationeers_Data/globalgamemanagers.assets new file mode 100644 index 0000000..c5bf760 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/globalgamemanagers.assets differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/globalgamemanagers.assets.resS b/Compiler/BASIC IC10 Compiler for Stationeers_Data/globalgamemanagers.assets.resS new file mode 100644 index 0000000..d7e154b --- /dev/null +++ b/Compiler/BASIC IC10 Compiler for Stationeers_Data/globalgamemanagers.assets.resS @@ -0,0 +1,11 @@ +ѩo]]cSSxddФgVVQDDD99D99D99D99D99D99D99D99D99D99D99D99RDDvccέԭM@@4++jjȧyeeeTTUGGL??D99D99D99E::XJJ~ii׳όuu<22!XJJүԼK??"A66}}ԻTFF!1))~iiΉrr900F::ӬlZZSEED99D99D99D99D99D99D99D99D99D99D99D99D99D99D99D99D99D99D99D99PCCn\\ӦeTTM@@D99D99D99D99D99D99D99D99D99D99D99L??]NNn\\mmі}}>44?55}}ϭmmOBB#5,,hWWϣgVVOBBD99D99D99D99D99D99K??UGGdTTxddƥЍvv<22B77ɨhWW6--D99~ii£Ť900ߺ"}hhPCCүȔ||?55kYYش"ԉrr& ۷cSSղ侾";11-&&G;;忿0((C88/'',%%͇qq WIIѮȧ>44||%8//ջNAAo]]⽽㾾 + +(!!4++фnn lZZubbἼٵѕ}} <22bRRI==YJJ.&&>44UGGI==ԧ_OO p^^A66\MMԿ2**\MMp^^ֳ2**"Ӌtt }hhSEE\MMyee.&&ߺղѪ׳fUU#ߺwcc }}侾TFF +ss7..dTTҠnn;11E:: =33|hhկԱոrrdTT%̪XJJ㽽;11G;;նάƥE::#OBBБyy໻taaٵC88|hhњ<22kYYҠ¢Ԧp^^OBBfUUսӂmm.&&'!!#侾Ԧө'!!㽽!M@@ώwwtaaٵn\\;11hWWkYYҟӤppeTTռֳ~ii%侾ԥҦ!M@@ώww/''taa!شߺ̪kYYҟӤүѯnnռJ>> +%,%%ԥѺ'!!!M@@ώwwtaaL??M@@*##wccwccwccwccwccwccwccwccwccwccwccwccwccE::5,,kYYҟӤWII5,,D99ռٵ~ii%[LLԥ忿NAA!M@@ώwwkktaaХ˪kYYҟӤI==?55 ռtaa %ԥ>44!M@@ώwwJ>>UGGUGGUGGUGGUGGUGGXJJwccѮtaa7..<22kYYҟӤB77UGGUGGUGGUGGUGGUGGUGGUGGUGGUGGUGGUGGUGGUGGVHHp^^p^^VHHUGGUGGUGGUGGUGGUGGUGGUGGUGGUGGUGGUGGA66ռ%xddֳܸǦww5,,״%UGGPCC900$ԥѠdTT˪{{QDD !M@@ώww⽽taaђzz r__ͫҷ}hhkYYҟӤ˪L??ղռWII՜xx%900xx"ԥ!΁ll o]]!M@@ώww俿taa(!!UGG,%%kYYҟӤͫ¢ռԲ8//ӄnn^OO%900фnn-&&ԥИSEEἼ.&& !M@@ώww俿taaͫtaaѤXJJkYYҟӤͫ(!!ռχqq 4++%900Ҷ +Ұԥ0((gVV:00pp!M@@ώww俿taawccK?? ʩkYYҟӤͫ Юռs``K?? %900ѥ~iiԥִE::$%!.&&ώww俿taa6--ѓ{{1))kYYҟӤʨ^OOἼռdTTgVV%900VHH<22ԥЈrr侾ѿ໻!ώww俿taaWIIcSSkYYԱ>44 ҟӤ""""""""""""*##YJJʩ̫xxkkwccwccwccwccwccwcchWW*##ռTFFr__%900ٵ ԥH<<r__I==~~!ƥώww俿taa޺тmmwwK??kYYѿxddҟӤӫA666--ռD99r__%900?55㾾ԥѯѤkYY!<22ώww俿ѳ<22պ (!!{ggkYYڷ ҟӤү& taaռ?55r__%900Ђmm¢ԥD99!ώww俿թ ãr__љkYY*##үҟӤllѳ໻ռ?55r__%900Էԥ900 2**!Ἴώww俿lZZ ҡPCCTFF?55VHHkYYTFFҟӤXJJش WIIռ?55r__%900Ӱԥ⽽OBB& %!ώww俿ͬYJJը ڶ bRRǦkYYӆppM@@ԟӤcSSG;;!ռ?55r__%900ֳԥ@55*##!=33ώww俿0((ն׳4++ܹkkэvv1))kYYվoo՟Ӥղ'!!۷ռ?55r__%900Թãԥ#7..!˪ώww俿҃mmֳү¢QDD5,,kYYἼӤ3++}hh + +n\\ռ?55r__%900Ѐkk濿ԥ 忿ӺSEE!ώww俿ߺubbhWWά໻cSS5,,kkӤ8//C88$\MM~~ռ?55r__%9002** ԥ-&&ssbRR{gg!.&&ώww俿C88ү! A66E::mmyeeӤjYYrrrrrrrrrrrrrrrrrrrrrrrrzzǦ jjҰ俿俿俿俿俿俿ռ?55r__%900Ǧ@55ԥ`PPߺ!M@@ώww俿ѝ4++XJJZKKҽӤ̫vvռ?55r__%900900mmԥѤvccH<<!M@@ώww俿zzѢss2**TFF$Ӥͫռ?55r__%900r__ٵԥq^^J>>!M@@ώww俿VHH + m[[ѪŤڷ Ӥͫռ?55r__%900bRR0((ԥWIIm[[!M@@ώww俿ѸE::J>>ZKK'!!%,%%rrҳӤͫ~iiռ?55r__%900Ӫ$ԥͫaQQЮ;11& !B77ώ俿俿俿俿俿俿俿俿俿俿俿俿俿俿ώww俿ݸ6--ϮZKKww˪ИRDDӀkkӤ俿俿俿俿俿俿俿俿俿俿俿俿俿俿忿o]]ť俿俿俿俿俿俿俿俿俿俿俿俿俿俿俿ww俿俿俿俿?55r__%*##wwYJJ"ԥH<< gVVǣL??!kkώww俿m[[taaͬXJJK??⽽.&&TFFӤB77έ.&&ٵL??QDD޹?55r__%ԥܸ  ;11!L??ώww俿ͫcSSjYYߺчqqwccἼ+$$ӤM@@dTTϭ  ղ?55r__%RDDԥ҂mm ٵ!~~ώww俿-&& ϭѬB77 㾾ߺ ӤЈrr*##-&&?55r__%!ԥE::!-&&ώww俿Ѥ900ђzzM@@ԁllwccQDDrrѼӤܹ900ȧǦ?55r__%ڷԥ,%%r__!ώww俿L??ά/''s`` ¢WII҇qqӤyeeNAAѕ||{{?55r__%Ӱԥ& fUU(!!Вzz4++dTTã濿ԋttgVV+$$.&&WIIѯԬubbѮГ{{wwC88#vcc2**+$$ݸժ7..zff@55$ԫ\MM XJJ ȧ"⽽'!!⽽.&&ɨҋtt(!!Ծ\MM=33Бyy p^^fUUƥܸo]] тmmmmF::Ǧzz lZZЅoo H<<]NN҇qq㽽_OO  ԅoouuѦpp侾SEE :00ɩ !Ծ(!!SEE3++Ӂll + +Ա~iiK??ҧ+$$ΐxx-&&㽽6--ղчqqģ900E::Ѹ>44)""wcc ݸҽ NAAјӚ#I==ƥ޹B77[LLԎww .&&ѮԙjYYԥ^OOشrrNAATFF侾Юrr^OOF::شZKKL??Ԏww˩lZZ0((mmӻ'!!,%%ãdTTNAAԁll 5,,ششE::$^OOӠӻ[LL'!!|hhݹȧɨ̰vv||˩вvvϲww޺ѯȧлww¤tt忿ǨuuἼڶܷ⽽ҰԱἼ¢⽽£rr޹˯vv~~ѯ¢Ӱ⽽Ϸxxyyղyee_OOUGGM@@UGGgVVpp<>7777777777777777777777SS88777777777777锔>>77777777777777777777::簾oo7777777777777777777777>>ㆆ77777777777777裏::77777777777777777777==HH7777777777777777777777jj77777777777777잞9977777777777777777777@@琐::77777777777777777777AA閖}}77777777777799閖8877777777777777777777DDbb7777777777777777777777hhOO777777777777UU蓓8877777777777777777777JJHH77777777777777777777@@뚚77777777777777ッ琐7777777777777777777777PP掎9977777777777777777777ZZㅅ77777777777777珏7777777777777777777777TTrr7777777777777777777799 HH777777777777DD劊7777777777777777777777__UU77777777777777777777JJ뜜77777777777777ww䆆7777777777777777777777ggEE77777777777777777777aaPP77777777777777㄄7777777777777777777777rr锔9977777777777777777799勋뛛77777777777777aa၁7777777777777777777777||~~77777777777777777777GGJJ77777777777777簾挌yymmkkaaffrr၁锔}}7777777777777777777777䇇jj77777777777777777777]]㄄77777777777777EE}}[[;;777777777777777777777777GG~~zz7777777777777777777777蒒WW77777777777777777777yy<<7777777777777777777777777777777777777777777777777777;;}}xx7777777777777777777799뜜KK777777777777777777;;ꗗ^^7777777777777777777777777777777777777777777777777777777777RRuu77777777777777777777::DD777777777777777777GG琐77777777777777777777777777777777777777777777777777777777777777GGrr77777777777777777777==AA777777777777777777TT==7777777777777777777777777777777777777777777777777777777777777777OOoo77777777777777777777@@<<777777777777777777dd匌KK7777777777777777777777777777777777777777777777777777777777777777777777{{ll77777777777777777777DD잞99777777777777777777yyrr<<7777777777777777777777777777777777777777;;JJ[[iimmff^^JJ777777777777777777;;ii77777777777777777777KK잞99777777777777777799珏뚚XX777777777777777777777777777777777777::XXzz뛛珏DD77777777777777挌gg77777777777777777777RR젠997777777777777777::띝₂DD7777777777777777777777777777777777DDssAA777777777777aaee77777777777777777777[[997777777777777777==裏vv;;77777777777777777777777777777777II||xx777777777777HHbb77777777777777777777cc997777777777777777AAll9977777777777777777777777777777777dd蓓77777777777799bb77777777777777777777nn;;7777777777777777FFgg887777777777777777777777777777777777ZZ蔔77777777777799bb77777777777777777777zzAA7777777777777777EEhh88777777777777777777777777777777777777HH{{777777777777AAbb77777777777777777777䆆HH7777777777777777EEjj8877777777777777777777777777777777777777==ZZ777777777777UUbb77777777777777777777蓓QQ7777777777777777DDxx::777777777777777777777777777777777777777788읝99777777777777rrbb77777777777777777799잞aa7777777777777777DD䆆>>77777777777777777777777777777777777777777777勋ㆆ77777777777777ꙙaa777777777777777777;;7777777777777777>>잞HH7777777777777777777777777777777777777777777777zzHH77777777777799aa777777777777777777>>젠8877777777777777::﨨^^77777777777777777777777777==UU777777777777777777ii劊77777777777777ddaa777777777777777777BB>>7777777777777788Ꚛzz99777777777777777777777777==}}쟟==7777777777777777\\??77777777777777裏aa777777777777777777HHNN7777777777777777剉簾II777777777777777777777777<>7777777777777777QQpp77777777777777SSaa777777777777777777OOxx7777777777777777nnoo77777777777777777777777799tt@@7777777777777777II뚚7777777777777777響``777777777777777777WW8877777777777777SS젠DD777777777777777777777777aaAA7777777777777777FF>>77777777777777ff``777777777777777777__KK77777777777777AArr777777777777777777777777QQ裏AA7777777777777777CCSS77777777777777;;``777777777777777777jjxx7777777777777788MM7777777777777777777777AA锔>>7777777777777777AAcc7777777777777777₂``777777777777777777uu8877777777777777xx匌::7777777777777777777777pp==7777777777777777>>pp7777777777777777ZZ__777777777777777777 ZZ77777777777777JJll7777777777777777777777NN;;7777777777777777==7777777777777777AA__777777777777777777捍7777777777777788SS77777777777777777777;;ㅅ镕997777777777777777>>က777777777777777777__777777777777777788闗VV77777777777777uuCC77777777777777777777RRㆆ777777777777777777@@uu777777777777777777က^^777777777777777799젠﨨77777777777777??띝9977777777777777777788{{vv777777777777777777AAll777777777777777777pp^^7777777777777777;;﨨ff77777777777777ㆆ蔔99777777777777777777GGff777777777777777777CCbb777777777777777777cc^^7777777777777777==99777777777777DD劊77777777777777777777ddSS777777777777777777GGMM777777777777777777XX^^7777777777777777AA掎77777777777777捍ッ77777777777777777777၁EE777777777777777777OO>>777777777777777777XX\\7777777777777777DD\\777777777777>>蒒777777777777777777==잞뛛<<777777777777777777XX⁁88777777777777777777__ZZ7777777777777777HH99777777777777rr997777777777777777GGxx77777777777777777777dd]]77777777777777777777ggZZ7777777777777777MM77777777777777==7777777777777777KKWW77777777777777777777rr쟟AA77777777777777777777qqXX7777777777777777SS䈈ooWWDD7777777777777777PP裏BB77777777777777777788䈈rr7777777777777777777799䉉WW7777777777777777YY^^7777777777777777TT㄄88777777777777777777==LL77777777777777777777AA裏VV7777777777777777``拋7777777777777777KKaa77777777777777777777HH䇇::77777777777777777777SSUU7777777777777777hh==77777777777777AAHH77777777777777777777XXUU7777777777777777777777llSS7777777777777777ppSS777777777777;;⃃9977777777777777777777uuㅅ::77777777777777777777>>闗SS7777777777777777yy瑑AA77777777描WW77777777777777777777<<ꗗSS7777777777777777777777WWRR7777777777777777⃃bb7777\\蓓==77777777777777777777LL 997777777777777777777799၁PP7777777777777777拋띝挌⁁勋蔔描AAdd7777777777777777777777eeJJ7777777777777777777777HHPP77777777777777777777777777777777NNyyDD77777777777777777777;;掎ff777777777777777777777777mmOO777777777777777777777777777777777777JJ勋瑑7777777777777777777777LL䈈==7777777777777777777777FFMM77777777777777777777777777777777777777>>⃃dd777777777777777777oo띝JJ777777777777777777777777ooLL7777777777777777777777777777777777777777AA锔oo777777777777@@뚚WW777777777777777777777777GG劊77777777777777777777777777777777777777777777[[rr77777777]]gg77777777777777777777777788uuOO7777777777777777777777777777777777777777777777>>ꗗff77;;勋pp99777777777777777777777777TT7777777777777777777777777777777777777777777777777777uuttrr99777777777777777777777777@@琐jj==읝777777777777777777777777777777777777777777777777777777\\rr9977777777777777777777777777nn拋II777777䇇77777777777777777777777777777777777777777777777777777777RRgg9977777777777777777777777777XX劊CC7777777777ㅅ7777777777777777777777777777777777777777777777777777777777LL[[7777777777777777777777777777KK잞잞JJ77777777777777ㆆ777777777777777777777777777777777777777777777777777777777777PP捍LL7777777777777777777777777777AA挌ee777777777777777777蓓77777777777777777777777777777777777777777777777777777777777777XXuu==7777777777777777777777777777>>၁뚚AA77777777777777777777띝7777777777777777777777777777777777777777777777777777777777777777oo뚚[[777777777777777777777777777777==ff777777777777777777777777匌777777777777777777777777777777777777777777777777777777777777777777描yyAA777777777777777777777777777777==}}GG777777777777777777777777OOJJ7777777777777777777777777777777777777777777777777777777777777777;;ZZ77777777777777777777777777777777AAッ蓓;;7777777777777777777777]]tt777777777777777777777777777777777777777777777777777777777777777777QQmm7777777777777777777777777777JJ珏rr7777777777777777777777LL響77777777777777777777777777777777777777777777777777777777777777777777䈈887777777777777777777777VV뜜XX77777777777777777777==拋EE777777777777777777777777777777777777777777777777777777777777777777<>777777777777777777HH}}77777777777777777777777777777777777777777777777777777777777777777777xx⁁HH㄄쟟::777777777777777777^^@@777777777777777777777777777777777777777777777777777777777777777777==잞99777777777777777777zz珏77777777777777777777777777777777777777777777777777777777777777777777ꗗ띝99777777777777777799瑑闗<<``UU777777777777777777777777777777777777777777777777777777777777777777bb뛛997777777777777777;;젠uu777777<<7777777777777777777777777777777777777777777777777777777777777777<<뛛997777777777777777AA__77777777YY璒777777777777777777777777777777777777777777777777777777777777777777ကPP777777LLzz997777777777777777EEYY777777777777锔nn7777777777777777777777777777777777777777777777777777777777777777捍匌<<7777777777777799က==7777777777777777FFSS77777777777777AAWW7777777777777777777777777777777777777777777777777777777777OO匌rr7777777777777777777777ccAA7777777777777777FFSS777777777777777777ssOO7777777777777777777777777777777777777777777777777777QQ勋77777777777777777777777777yyDD7777777777777777GG^^777777777777777777XXJJ7777777777777777777777777777777777777777777777;;拋;;7777777777777777777777777788LL7777777777777777FFii777777777777777777ppMM777777777777777777777777777777777777777777MM{{777777777777777777777777777777ii[[7777777777777777AA{{777777777777777777||TT77777777777777777777777777777777777777ZZLL777777777777777777777777777777>>ll7777777777777777==뚚777777777777777777⁁ii7777777777777777777777777777777777YY7777777777777777777777777777777777⁁7777777777777777::簾<<7777777777777777⃃xxii剉::7777777777777777777777777777NN掎匌捍잞7777777777777777777777777777777777ꗗ777777777777777799뜜JJ7777777777777777uu7777rrMM777777777777777777777777;;拋OO77777777777777DD7777777777777777777777777777777777;;7777777777777777匌dd7777777777777777ggCC777777rr㄄;;77777777777777777777拋ꘘAA7777777777777777777777777777777777777777777777777777::GG7777777777777777uu瑑7777777777777777WW``7777777777ggoo9977777777777777NNll77777777777777777777777777777777777777777777777777777777^^YY7777777777777777aa<<77777777777777DD勋77777777777777]]uu<<7777777777^^7777777777777777777777777777777777777777777777777777777777uu7777777777777777QQSS7777777777777799::77777777777777PP镕^^;;77JJnn7777777777777777777777777777777777777777777777777777777777bb蔔7777777777777777DD||7777777777777777捍LL77777777777777<<뚚7777777777777777777777777777777777777777777777777777777777OO;;77777777777777999977777777777777__qq7777777777777777蔔DD77777777777777777777777777777777777777777777777777777777bbLL7777777777777777瑑RR77777777777777AAꙙ7777777777777777ii璒777777777777777777777777777777777777777777777777777799ZZii7777777777777777rr䆆7777777777777777띝==77777777777777JJUU7777777777777777777777777777777777777777777777;;琐7777777777777777WW;;77777777777777mmLL7777777777777799==nn88777777777777777777777777777777777777777777777777;;77777777777777CC\\77777777777777HHff7777777777777777䉉劊777799kk響77777777777777777777777777777777777777777777777777锔OO7777777777777788裏읝7777777777777777﨨ㅅ7777777777777777``JJ7777777777II䆆蔔77777777777777777777777777777777777777777777777777⁁uu7777777777777777₂JJ77777777777777ii8877777777777777DD77777777777777mm珏77777777777777777777777777777777777777777777777777}}7777777777777777^^ッ77777777777777>>==7777777777777799__77777777777777蔔77777777777777777777777777777777777777777777777777 CC77777777777777DD<<77777777777777勋II7777777777777777拋77777777777777QQ77777777777777777777777777777777777777777777777777镕cc7777777777777788簾kk77777777777777OOXX7777777777777777llww77777777777777蒒88777777777777777777777777777777777777777777777777闗7777777777777777zz8877777777777777ff7777777777777777SS>>777777777777>>WW7777777777777777777777777777777777777777777777DD@@77777777777777RR``77777777777777llxx7777777777777777BB珏77777777777777yy ``WWDD7777777777777777777777777777777777777777777777}}bb77777777777777<<77777777777777;;劊7777777777777777;;LL77777777777799XX777777777777777777777777777777777777777777777777777777;;闗7777777777777777描VV77777777777777zzꗗ887777777777777788뚚77777777777777ff뚚<<77777777777777777777777777777777777777777777777777777777䇇BB77777777777777\\젠77777777777777??젠997777777777777777㄄VV77777777777777響9977777777777777777777777777777777777777777777777777777777\\uu77777777777777==RR77777777777777ㆆ裏;;7777777777777777nn響77777777777777TTDD77777777777777777777777777777777777777777777777777777777QQ9977777777777777璒77777777777777DD==7777777777777777^^]]77777777777777띝剉77777777777777777777777777777777777777777777777777777777ddVV77777777777777^^TT77777777777777瑑??7777777777777777UU77777777777777LLSS7777777777777777777777777777777777777777777777777777AA勋蓓77777777777777::77777777777777JJ??7777777777777777MM__77777777777777闗7777777777777777777777777777777777II77777777777777NNッAA77777777777777~~WW77777777777777蓓>>7777777777777777GG77777777777777HH7777777777777777777777777777777777젠瑑ㆆ琐쟟䇇77777777777777GG77777777777777GG>>7777777777777777AAYY77777777777777珏7777777777777777777777777777777777BB77777777777777읝cc77777777777777捍>>7777777777777777AA77777777777777FF9977777777777777777777777777777799勋77777777777777^^88777777777777BB;;7777777777777777@@SS77777777777777蒒^^777777777777777777777777777777SSDD77777777777777rr77777777777777䆆ꙙ997777777777777777??ꗗ77777777777777JJꙙ777777777777777777777777777777锔珏77777777777777``;;777777777777??㄄887777777777777777>>FF77777777777777ꘘRR77777777777777777777777777LLOO77777777777777ッ77777777777777??777777777777777777@@₂77777777777777PPAA7777777777777777777777>>77777777777777ZZEE77777777777777777777777777777777BB<<77777777777777HH777777777777777777DDww77777777777777띝77777777777777777777777777777777FFll77777777777777]]yy;;777777777799uuEE777777777777DD[[777777777777777777777777777777JJ7777777777777799잞㄄ww㄄띝77777777777777zz777777777777777777777777777777NNNN77777777777777rr匌77777777777777uu7777777777777777777777777777WWㅅ77777777777777>>ff777777777777JJ@@77777777777777777777777777cc;;77777777777777䉉KK777777777777llꚚ77777777777777777777777777rraa77777777777777NN99777777777777捍\\777777777777777777777777ッꘘ777777777777778877777777777777887777777777777777777799锔AA77777777777777pp77777777777777LL77777777777777777777AA響cc77777777777777AA77777777777777bb7777777777777777777777OO闗7777777777777777镕77777777777777}}::7777777777777777777777ff@@77777777777777^^FF777777777777ㅅrr;;7777777777777777777777::挌bb77777777777777>>ff777777777777==閖__77777777777777777777777777FF珏7777777777777777璒ꗗ7777777777777799bb挌闗뜜䈈uuSS77777777777777777777777777777777㄄;;77777777777777^^??777777777777777777777777777777777777777777777777777777777777PP77777777777777>>㄄7777777777777777777777777777777777777777777777777777777777HHxx7777777777777777蒒PP77777777777777777777777777777777777777777777777777777777xx7777777777777777ccDD777777777777777777777777777777777777777777777777777777﨨DD77777777777777DDLL77777777777777777777777777777777BB}}gg777777777777::WW7777777777777788簾>>7777777777777777777777AAnn읝\\777777777777WWrr7777777777777777zz锔iiKK99777799HHbb₂>>777777777777xx蒒7777777777777777SS77777777777777ꘘ::77777777777777<<響77777777777777AA7777777777777777뚚闗77777777777777GG7777777777777777zzㅅ777777777777>>JJ7777777777777777^^}}777777777777NNOO7777777777777777HHzz777777777777[[KK7777777777777777==ww777777777777VVDD7777777777777777;;﨨777777777777MM>>777777777777777799쟟掎777777777777AA||88777777777777777788閖잞77777777777777WW77777777777777777777挌77777777777777ꗗ⃃==77777777777777777799锔DD777777777777PP蔔FF77777777777777777777<>7777777777777777777777AA88777777777777777777AA7777777777777777777777777777RRjj7777777777777777777777777777777777777777777777qqAA7777777777777777777777777777777777777777@@쟟99777777777777777777777777777777777777llꘘ99777777777777777777777777777777SSGG777777777777777777777777^^拋LL77777777777788UU⃃琐珏쟟 \ No newline at end of file diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/level0 b/Compiler/BASIC IC10 Compiler for Stationeers_Data/level0 new file mode 100644 index 0000000..22f23e2 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/level0 differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/resources.assets b/Compiler/BASIC IC10 Compiler for Stationeers_Data/resources.assets new file mode 100644 index 0000000..a26915c Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/resources.assets differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/resources.assets.resS b/Compiler/BASIC IC10 Compiler for Stationeers_Data/resources.assets.resS new file mode 100644 index 0000000..b511be0 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/resources.assets.resS differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/sharedassets0.assets b/Compiler/BASIC IC10 Compiler for Stationeers_Data/sharedassets0.assets new file mode 100644 index 0000000..869a062 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/sharedassets0.assets differ diff --git a/Compiler/BASIC IC10 Compiler for Stationeers_Data/sharedassets0.assets.resS b/Compiler/BASIC IC10 Compiler for Stationeers_Data/sharedassets0.assets.resS new file mode 100644 index 0000000..532fcc6 Binary files /dev/null and b/Compiler/BASIC IC10 Compiler for Stationeers_Data/sharedassets0.assets.resS differ diff --git a/Compiler/BasicCompiler.js b/Compiler/BasicCompiler.js new file mode 100644 index 0000000..3501444 --- /dev/null +++ b/Compiler/BasicCompiler.js @@ -0,0 +1,82 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BasicCompiler = void 0; +const child_process_1 = require("child_process"); +const promises_1 = __importDefault(require("fs/promises")); +const vscode_1 = __importDefault(require("vscode")); +const helpers_1 = require("../core/helpers"); +const path_1 = __importDefault(require("path")); +class BasicCompiler { + code; + hash; + compiler; + tmpInput; + tmpOutput; + tmpError; + actual = false; + vscodeFolder; + constructor(code, hash) { + this.code = code; + this.hash = hash; + if (process.platform !== 'win32') { + throw new Error('Only Windows is supported'); + } + this.compiler = __dirname + '/BASIC IC10 Compiler for Stationeers.exe'; + const workspaceFolder = vscode_1.default.workspace.workspaceFolders[0]; + this.vscodeFolder = path_1.default.join(workspaceFolder.uri.fsPath, '.vscode', 'tmp', String(hash)); + this.tmpInput = path_1.default.join(this.vscodeFolder, `input.txt`); + this.tmpOutput = path_1.default.join(this.vscodeFolder, `output.txt`); + this.tmpError = path_1.default.join(this.vscodeFolder, `error.txt`); + } + async checkActual() { + if (await (0, helpers_1.checkFileExists)(this.tmpInput)) { + await promises_1.default.readFile(this.tmpOutput, 'utf8') === this.code ? this.actual = true : this.actual = false; + } + return this.actual; + } + async compile() { + return new Promise(async (resolve, reject) => { + if (!await (0, helpers_1.checkFileExists)(this.vscodeFolder)) { + console.warn(this.vscodeFolder); + try { + await promises_1.default.mkdir(this.vscodeFolder, { recursive: true }); + } + catch (e) { + console.error(e); + } + } + await promises_1.default.writeFile(this.tmpInput, this.code); + await promises_1.default.writeFile(this.tmpError, ""); + const ls = (0, child_process_1.spawn)(this.compiler, ['compile', '-input', this.tmpInput, '-output', this.tmpOutput, '-error', this.tmpError, '-batchmode']); + ls.on('close', async (code) => { + const output = await promises_1.default.readFile(this.tmpOutput, 'utf8'); + const errors = await this.parseErrors(); + if (code === 0) { + this.actual = true; + resolve({ + output, + errors, + }); + } + else { + reject(code); + } + }); + }); + } + async parseErrors() { + return (await promises_1.default.readFile(this.tmpError, 'utf8')).split('\n'); + } + async getErrors() { + if (this.actual) { + return this.parseErrors(); + } + else { + return (await this.compile()).errors; + } + } +} +exports.BasicCompiler = BasicCompiler; diff --git a/Compiler/BasicCompiler.ts b/Compiler/BasicCompiler.ts new file mode 100644 index 0000000..9b782d7 --- /dev/null +++ b/Compiler/BasicCompiler.ts @@ -0,0 +1,77 @@ +import {spawn} from 'child_process' +import fs from "fs/promises" +import {hashStr} from "ic10/src/Utils"; +import vscode from "vscode"; +import {checkFileExists} from "../core/helpers"; +import path from "path"; + + +export class BasicCompiler { + public compiler: string + public tmpInput: string + public tmpOutput: string + public tmpError: string + public actual: boolean = false + public vscodeFolder: string; + + constructor(public code: string, public hash: string) { + if (process.platform !== 'win32') { + throw new Error('Only Windows is supported') + } + this.compiler = __dirname + '/BASIC IC10 Compiler for Stationeers.exe' + const workspaceFolder = vscode.workspace.workspaceFolders[0]; + this.vscodeFolder = path.join(workspaceFolder.uri.fsPath, '.vscode', 'tmp', String(hash)); + this.tmpInput = path.join(this.vscodeFolder, `input.txt`) + this.tmpOutput = path.join(this.vscodeFolder, `output.txt`) + this.tmpError = path.join(this.vscodeFolder, `error.txt`) + } + + async checkActual() { + if (await checkFileExists(this.tmpInput)) { + await fs.readFile(this.tmpOutput, 'utf8') === this.code ? this.actual = true : this.actual = false + } + return this.actual; + } + + public async compile(): Promise<{ output: string, errors: string[] }> { + return new Promise(async (resolve, reject) => { + if (!await checkFileExists(this.vscodeFolder)) { + console.warn(this.vscodeFolder) + try { + await fs.mkdir(this.vscodeFolder, {recursive: true}) + } catch (e) { + console.error(e) + } + } + await fs.writeFile(this.tmpInput, this.code) + await fs.writeFile(this.tmpError, "") + // запустить компилятор ".\BASIC IC10 Compiler for Stationeers.exe" compile -input ".\input.bas" -output ".\output.ic" -error ".\error.txt" -batchmode + const ls = spawn(this.compiler, ['compile', '-input', this.tmpInput, '-output', this.tmpOutput, '-error', this.tmpError, '-batchmode']) + ls.on('close', async (code: number) => { + const output = await fs.readFile(this.tmpOutput, 'utf8') + const errors = await this.parseErrors() + if (code === 0) { + this.actual = true; + resolve({ + output, + errors, + }) + } else { + reject(code) + } + }) + }) + } + + async parseErrors() { + return (await fs.readFile(this.tmpError, 'utf8')).split('\n'); + } + + async getErrors() { + if (this.actual) { + return this.parseErrors() + } else { + return (await this.compile()).errors + } + } +} \ No newline at end of file diff --git a/Compiler/MonoBleedingEdge/EmbedRuntime/MonoPosixHelper.dll b/Compiler/MonoBleedingEdge/EmbedRuntime/MonoPosixHelper.dll new file mode 100644 index 0000000..73895bf Binary files /dev/null and b/Compiler/MonoBleedingEdge/EmbedRuntime/MonoPosixHelper.dll differ diff --git a/Compiler/MonoBleedingEdge/EmbedRuntime/mono-2.0-bdwgc.dll b/Compiler/MonoBleedingEdge/EmbedRuntime/mono-2.0-bdwgc.dll new file mode 100644 index 0000000..2f78d41 Binary files /dev/null and b/Compiler/MonoBleedingEdge/EmbedRuntime/mono-2.0-bdwgc.dll differ diff --git a/Compiler/MonoBleedingEdge/etc/mono/2.0/Browsers/Compat.browser b/Compiler/MonoBleedingEdge/etc/mono/2.0/Browsers/Compat.browser new file mode 100644 index 0000000..dcedf7f --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/2.0/Browsers/Compat.browser @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Compiler/MonoBleedingEdge/etc/mono/2.0/DefaultWsdlHelpGenerator.aspx b/Compiler/MonoBleedingEdge/etc/mono/2.0/DefaultWsdlHelpGenerator.aspx new file mode 100644 index 0000000..f4d74bf --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/2.0/DefaultWsdlHelpGenerator.aspx @@ -0,0 +1,1901 @@ +<%-- +// +// DefaultWsdlHelpGenerator.aspx: +// +// Author: +// Lluis Sanchez Gual (lluis@ximian.com) +// +// (C) 2003 Ximian, Inc. http://www.ximian.com +// +--%> + +<%@ Import Namespace="System.Collections" %> +<%@ Import Namespace="System.Collections.Generic" %> +<%@ Import Namespace="System.IO" %> +<%@ Import Namespace="System.Xml.Serialization" %> +<%@ Import Namespace="System.Xml" %> +<%@ Import Namespace="System.Xml.Schema" %> +<%@ Import Namespace="System.Web.Services" %> +<%@ Import Namespace="System.Web.Services.Description" %> +<%@ Import Namespace="System.Web.Services.Configuration" %> +<%@ Import Namespace="System.Web.Configuration" %> +<%@ Import Namespace="System" %> +<%@ Import Namespace="System.Net" %> +<%@ Import Namespace="System.Globalization" %> +<%@ Import Namespace="System.Resources" %> +<%@ Import Namespace="System.Diagnostics" %> +<%@ Import Namespace="System.CodeDom" %> +<%@ Import Namespace="System.CodeDom.Compiler" %> +<%@ Import Namespace="Microsoft.CSharp" %> +<%@ Import Namespace="Microsoft.VisualBasic" %> +<%@ Import Namespace="System.Text" %> +<%@ Import Namespace="System.Text.RegularExpressions" %> +<%@ Import Namespace="System.Security.Cryptography.X509Certificates" %> +<%@ Assembly name="System.Web.Services" %> +<%@ Page debug="true" %> + + + + + + <% + Response.Write (""); + %> + <%=WebServiceName%> Web Service + + + + + + + +
+Web Service
+<%=WebServiceName%> +
+ + + + + + + + +
+
+Overview
+
+Service Description +
+Client proxy +

+ + + <%#FormatBindingName(DataBinder.Eval(Container.DataItem, "Name").ToString())%> + + + op=<%#GetOpName(Container.DataItem)%>&bnd=<%#DataBinder.Eval(Container.DataItem, "Binding.Name")%>"><%#GetOpName(Container.DataItem)%> +
+
+
+
+
+
+ +
+ +<% if (CurrentPage == "main") {%> + + + +

Web Service Overview

+ <%=WebServiceDescription%> +

+ <% if (ProfileViolations != null && ProfileViolations.Count > 0) { %> +

Basic Profile Conformance

+ This web service does not conform to WS-I Basic Profile v1.1 + <% + Response.Write ("
    "); + foreach (BasicProfileViolation vio in ProfileViolations) { + Response.Write ("
  • " + vio.NormativeStatement + ": " + vio.Details); + Response.Write ("
      "); + foreach (string ele in vio.Elements) + Response.Write ("
    • " + ele + "
    • "); + Response.Write ("
    "); + Response.Write ("
  • "); + } + Response.Write ("
"); + }%> + +<%} if (DefaultBinding == null) {%> +This service does not contain any public web method. +<%} else if (CurrentPage == "op") {%> + + + + <%=CurrentOperationName%> +

+ <% WriteTabs (); %> +


+ + <% if (CurrentTab == "main") { %> + Input Parameters +
+ <% if (InParams.Count == 0) { %> + No input parameters
+ <% } else { %> + + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%><%#DataBinder.Eval(Container.DataItem, "Type")%>
+ <% } %> +
+ + <% if (OutParams.Count > 0) { %> + Output Parameters +
+ + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%><%#DataBinder.Eval(Container.DataItem, "Type")%>
+
+ <% } %> + + Remarks +
+ <%=OperationDocumentation%> +

+ Technical information +
+ Format: <%=CurrentOperationFormat%> +
Supported protocols: <%=CurrentOperationProtocols%> + <% } %> + + + + <% if (CurrentTab == "test") { + if (CurrentOperationSupportsTest) {%> + Enter values for the parameters and click the 'Invoke' button to test this method:

+
+ + + + + + + + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%>: ">
 
+
+
"> + The web service returned the following result:

+
+
+ +
+ <% } else {%> + The test form is not available for this operation because it has parameters with a complex structure. + <% } %> + <% } %> + + + + <% if (CurrentTab == "msg") { %> + + The following are sample SOAP requests and responses for each protocol supported by this method: +

+ + <% if (IsOperationSupported ("Soap")) { %> + Soap +

+
<%=GenerateOperationMessages ("Soap", true)%>
+
+
<%=GenerateOperationMessages ("Soap", false)%>
+
+ <% } %> + <% if (IsOperationSupported ("HttpGet")) { %> + HTTP Get +

+
<%=GenerateOperationMessages ("HttpGet", true)%>
+
+
<%=GenerateOperationMessages ("HttpGet", false)%>
+
+ <% } %> + <% if (IsOperationSupported ("HttpPost")) { %> + HTTP Post +

+
<%=GenerateOperationMessages ("HttpPost", true)%>
+
+
<%=GenerateOperationMessages ("HttpPost", false)%>
+
+ <% } %> + + <% } %> +<%} else if (CurrentPage == "proxy") {%> + +
+ Select the language for which you want to generate a proxy +   + +    +
+
+ <%=CurrentProxytName%>    + Download +

+
+
<%=GetProxyCode ()%>
+
+<%} else if (CurrentPage == "wsdl") {%> + + <% if (descriptions.Count > 1 || schemas.Count > 1) {%> + The description of this web service is composed by several documents. Click on the document you want to see: + + + + <%} else {%> + <%}%> +
+ <%=CurrentDocumentName%>    + Download +

+
+
<%=GenerateDocument ()%>
+
+ +<%}%> + +














+
+ + diff --git a/Compiler/MonoBleedingEdge/etc/mono/2.0/machine.config b/Compiler/MonoBleedingEdge/etc/mono/2.0/machine.config new file mode 100644 index 0000000..2577c81 --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/2.0/machine.config @@ -0,0 +1,280 @@ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+ + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+
+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Compiler/MonoBleedingEdge/etc/mono/2.0/settings.map b/Compiler/MonoBleedingEdge/etc/mono/2.0/settings.map new file mode 100644 index 0000000..9a52ccc --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/2.0/settings.map @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/Compiler/MonoBleedingEdge/etc/mono/2.0/web.config b/Compiler/MonoBleedingEdge/etc/mono/2.0/web.config new file mode 100644 index 0000000..a5190c3 --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/2.0/web.config @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Compiler/MonoBleedingEdge/etc/mono/4.0/Browsers/Compat.browser b/Compiler/MonoBleedingEdge/etc/mono/4.0/Browsers/Compat.browser new file mode 100644 index 0000000..dcedf7f --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/4.0/Browsers/Compat.browser @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Compiler/MonoBleedingEdge/etc/mono/4.0/DefaultWsdlHelpGenerator.aspx b/Compiler/MonoBleedingEdge/etc/mono/4.0/DefaultWsdlHelpGenerator.aspx new file mode 100644 index 0000000..f4d74bf --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/4.0/DefaultWsdlHelpGenerator.aspx @@ -0,0 +1,1901 @@ +<%-- +// +// DefaultWsdlHelpGenerator.aspx: +// +// Author: +// Lluis Sanchez Gual (lluis@ximian.com) +// +// (C) 2003 Ximian, Inc. http://www.ximian.com +// +--%> + +<%@ Import Namespace="System.Collections" %> +<%@ Import Namespace="System.Collections.Generic" %> +<%@ Import Namespace="System.IO" %> +<%@ Import Namespace="System.Xml.Serialization" %> +<%@ Import Namespace="System.Xml" %> +<%@ Import Namespace="System.Xml.Schema" %> +<%@ Import Namespace="System.Web.Services" %> +<%@ Import Namespace="System.Web.Services.Description" %> +<%@ Import Namespace="System.Web.Services.Configuration" %> +<%@ Import Namespace="System.Web.Configuration" %> +<%@ Import Namespace="System" %> +<%@ Import Namespace="System.Net" %> +<%@ Import Namespace="System.Globalization" %> +<%@ Import Namespace="System.Resources" %> +<%@ Import Namespace="System.Diagnostics" %> +<%@ Import Namespace="System.CodeDom" %> +<%@ Import Namespace="System.CodeDom.Compiler" %> +<%@ Import Namespace="Microsoft.CSharp" %> +<%@ Import Namespace="Microsoft.VisualBasic" %> +<%@ Import Namespace="System.Text" %> +<%@ Import Namespace="System.Text.RegularExpressions" %> +<%@ Import Namespace="System.Security.Cryptography.X509Certificates" %> +<%@ Assembly name="System.Web.Services" %> +<%@ Page debug="true" %> + + + + + + <% + Response.Write (""); + %> + <%=WebServiceName%> Web Service + + + + + + + +
+Web Service
+<%=WebServiceName%> +
+ + + + + + + + +
+
+Overview
+
+Service Description +
+Client proxy +

+ + + <%#FormatBindingName(DataBinder.Eval(Container.DataItem, "Name").ToString())%> + + + op=<%#GetOpName(Container.DataItem)%>&bnd=<%#DataBinder.Eval(Container.DataItem, "Binding.Name")%>"><%#GetOpName(Container.DataItem)%> +
+
+
+
+
+
+ +
+ +<% if (CurrentPage == "main") {%> + + + +

Web Service Overview

+ <%=WebServiceDescription%> +

+ <% if (ProfileViolations != null && ProfileViolations.Count > 0) { %> +

Basic Profile Conformance

+ This web service does not conform to WS-I Basic Profile v1.1 + <% + Response.Write ("
    "); + foreach (BasicProfileViolation vio in ProfileViolations) { + Response.Write ("
  • " + vio.NormativeStatement + ": " + vio.Details); + Response.Write ("
      "); + foreach (string ele in vio.Elements) + Response.Write ("
    • " + ele + "
    • "); + Response.Write ("
    "); + Response.Write ("
  • "); + } + Response.Write ("
"); + }%> + +<%} if (DefaultBinding == null) {%> +This service does not contain any public web method. +<%} else if (CurrentPage == "op") {%> + + + + <%=CurrentOperationName%> +

+ <% WriteTabs (); %> +


+ + <% if (CurrentTab == "main") { %> + Input Parameters +
+ <% if (InParams.Count == 0) { %> + No input parameters
+ <% } else { %> + + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%><%#DataBinder.Eval(Container.DataItem, "Type")%>
+ <% } %> +
+ + <% if (OutParams.Count > 0) { %> + Output Parameters +
+ + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%><%#DataBinder.Eval(Container.DataItem, "Type")%>
+
+ <% } %> + + Remarks +
+ <%=OperationDocumentation%> +

+ Technical information +
+ Format: <%=CurrentOperationFormat%> +
Supported protocols: <%=CurrentOperationProtocols%> + <% } %> + + + + <% if (CurrentTab == "test") { + if (CurrentOperationSupportsTest) {%> + Enter values for the parameters and click the 'Invoke' button to test this method:

+
+ + + + + + + + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%>: ">
 
+
+
"> + The web service returned the following result:

+
+
+ +
+ <% } else {%> + The test form is not available for this operation because it has parameters with a complex structure. + <% } %> + <% } %> + + + + <% if (CurrentTab == "msg") { %> + + The following are sample SOAP requests and responses for each protocol supported by this method: +

+ + <% if (IsOperationSupported ("Soap")) { %> + Soap +

+
<%=GenerateOperationMessages ("Soap", true)%>
+
+
<%=GenerateOperationMessages ("Soap", false)%>
+
+ <% } %> + <% if (IsOperationSupported ("HttpGet")) { %> + HTTP Get +

+
<%=GenerateOperationMessages ("HttpGet", true)%>
+
+
<%=GenerateOperationMessages ("HttpGet", false)%>
+
+ <% } %> + <% if (IsOperationSupported ("HttpPost")) { %> + HTTP Post +

+
<%=GenerateOperationMessages ("HttpPost", true)%>
+
+
<%=GenerateOperationMessages ("HttpPost", false)%>
+
+ <% } %> + + <% } %> +<%} else if (CurrentPage == "proxy") {%> + +
+ Select the language for which you want to generate a proxy +   + +    +
+
+ <%=CurrentProxytName%>    + Download +

+
+
<%=GetProxyCode ()%>
+
+<%} else if (CurrentPage == "wsdl") {%> + + <% if (descriptions.Count > 1 || schemas.Count > 1) {%> + The description of this web service is composed by several documents. Click on the document you want to see: + + + + <%} else {%> + <%}%> +
+ <%=CurrentDocumentName%>    + Download +

+
+
<%=GenerateDocument ()%>
+
+ +<%}%> + +














+
+ + diff --git a/Compiler/MonoBleedingEdge/etc/mono/4.0/machine.config b/Compiler/MonoBleedingEdge/etc/mono/4.0/machine.config new file mode 100644 index 0000000..f3b71c4 --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/4.0/machine.config @@ -0,0 +1,307 @@ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+ + + +
+ +
+
+
+
+ + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Compiler/MonoBleedingEdge/etc/mono/4.0/settings.map b/Compiler/MonoBleedingEdge/etc/mono/4.0/settings.map new file mode 100644 index 0000000..4c53aca --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/4.0/settings.map @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/Compiler/MonoBleedingEdge/etc/mono/4.0/web.config b/Compiler/MonoBleedingEdge/etc/mono/4.0/web.config new file mode 100644 index 0000000..44cbe18 --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/4.0/web.config @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Compiler/MonoBleedingEdge/etc/mono/4.5/Browsers/Compat.browser b/Compiler/MonoBleedingEdge/etc/mono/4.5/Browsers/Compat.browser new file mode 100644 index 0000000..dcedf7f --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/4.5/Browsers/Compat.browser @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Compiler/MonoBleedingEdge/etc/mono/4.5/DefaultWsdlHelpGenerator.aspx b/Compiler/MonoBleedingEdge/etc/mono/4.5/DefaultWsdlHelpGenerator.aspx new file mode 100644 index 0000000..f4d74bf --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/4.5/DefaultWsdlHelpGenerator.aspx @@ -0,0 +1,1901 @@ +<%-- +// +// DefaultWsdlHelpGenerator.aspx: +// +// Author: +// Lluis Sanchez Gual (lluis@ximian.com) +// +// (C) 2003 Ximian, Inc. http://www.ximian.com +// +--%> + +<%@ Import Namespace="System.Collections" %> +<%@ Import Namespace="System.Collections.Generic" %> +<%@ Import Namespace="System.IO" %> +<%@ Import Namespace="System.Xml.Serialization" %> +<%@ Import Namespace="System.Xml" %> +<%@ Import Namespace="System.Xml.Schema" %> +<%@ Import Namespace="System.Web.Services" %> +<%@ Import Namespace="System.Web.Services.Description" %> +<%@ Import Namespace="System.Web.Services.Configuration" %> +<%@ Import Namespace="System.Web.Configuration" %> +<%@ Import Namespace="System" %> +<%@ Import Namespace="System.Net" %> +<%@ Import Namespace="System.Globalization" %> +<%@ Import Namespace="System.Resources" %> +<%@ Import Namespace="System.Diagnostics" %> +<%@ Import Namespace="System.CodeDom" %> +<%@ Import Namespace="System.CodeDom.Compiler" %> +<%@ Import Namespace="Microsoft.CSharp" %> +<%@ Import Namespace="Microsoft.VisualBasic" %> +<%@ Import Namespace="System.Text" %> +<%@ Import Namespace="System.Text.RegularExpressions" %> +<%@ Import Namespace="System.Security.Cryptography.X509Certificates" %> +<%@ Assembly name="System.Web.Services" %> +<%@ Page debug="true" %> + + + + + + <% + Response.Write (""); + %> + <%=WebServiceName%> Web Service + + + + + + + +
+Web Service
+<%=WebServiceName%> +
+ + + + + + + + +
+
+Overview
+
+Service Description +
+Client proxy +

+ + + <%#FormatBindingName(DataBinder.Eval(Container.DataItem, "Name").ToString())%> + + + op=<%#GetOpName(Container.DataItem)%>&bnd=<%#DataBinder.Eval(Container.DataItem, "Binding.Name")%>"><%#GetOpName(Container.DataItem)%> +
+
+
+
+
+
+ +
+ +<% if (CurrentPage == "main") {%> + + + +

Web Service Overview

+ <%=WebServiceDescription%> +

+ <% if (ProfileViolations != null && ProfileViolations.Count > 0) { %> +

Basic Profile Conformance

+ This web service does not conform to WS-I Basic Profile v1.1 + <% + Response.Write ("
    "); + foreach (BasicProfileViolation vio in ProfileViolations) { + Response.Write ("
  • " + vio.NormativeStatement + ": " + vio.Details); + Response.Write ("
      "); + foreach (string ele in vio.Elements) + Response.Write ("
    • " + ele + "
    • "); + Response.Write ("
    "); + Response.Write ("
  • "); + } + Response.Write ("
"); + }%> + +<%} if (DefaultBinding == null) {%> +This service does not contain any public web method. +<%} else if (CurrentPage == "op") {%> + + + + <%=CurrentOperationName%> +

+ <% WriteTabs (); %> +


+ + <% if (CurrentTab == "main") { %> + Input Parameters +
+ <% if (InParams.Count == 0) { %> + No input parameters
+ <% } else { %> + + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%><%#DataBinder.Eval(Container.DataItem, "Type")%>
+ <% } %> +
+ + <% if (OutParams.Count > 0) { %> + Output Parameters +
+ + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%><%#DataBinder.Eval(Container.DataItem, "Type")%>
+
+ <% } %> + + Remarks +
+ <%=OperationDocumentation%> +

+ Technical information +
+ Format: <%=CurrentOperationFormat%> +
Supported protocols: <%=CurrentOperationProtocols%> + <% } %> + + + + <% if (CurrentTab == "test") { + if (CurrentOperationSupportsTest) {%> + Enter values for the parameters and click the 'Invoke' button to test this method:

+
+ + + + + + + + + + + + + + + +
<%#DataBinder.Eval(Container.DataItem, "Name")%>: ">
 
+
+
"> + The web service returned the following result:

+
+
+ +
+ <% } else {%> + The test form is not available for this operation because it has parameters with a complex structure. + <% } %> + <% } %> + + + + <% if (CurrentTab == "msg") { %> + + The following are sample SOAP requests and responses for each protocol supported by this method: +

+ + <% if (IsOperationSupported ("Soap")) { %> + Soap +

+
<%=GenerateOperationMessages ("Soap", true)%>
+
+
<%=GenerateOperationMessages ("Soap", false)%>
+
+ <% } %> + <% if (IsOperationSupported ("HttpGet")) { %> + HTTP Get +

+
<%=GenerateOperationMessages ("HttpGet", true)%>
+
+
<%=GenerateOperationMessages ("HttpGet", false)%>
+
+ <% } %> + <% if (IsOperationSupported ("HttpPost")) { %> + HTTP Post +

+
<%=GenerateOperationMessages ("HttpPost", true)%>
+
+
<%=GenerateOperationMessages ("HttpPost", false)%>
+
+ <% } %> + + <% } %> +<%} else if (CurrentPage == "proxy") {%> + +
+ Select the language for which you want to generate a proxy +   + +    +
+
+ <%=CurrentProxytName%>    + Download +

+
+
<%=GetProxyCode ()%>
+
+<%} else if (CurrentPage == "wsdl") {%> + + <% if (descriptions.Count > 1 || schemas.Count > 1) {%> + The description of this web service is composed by several documents. Click on the document you want to see: + + + + <%} else {%> + <%}%> +
+ <%=CurrentDocumentName%>    + Download +

+
+
<%=GenerateDocument ()%>
+
+ +<%}%> + +














+
+ + diff --git a/Compiler/MonoBleedingEdge/etc/mono/4.5/machine.config b/Compiler/MonoBleedingEdge/etc/mono/4.5/machine.config new file mode 100644 index 0000000..4557095 --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/4.5/machine.config @@ -0,0 +1,310 @@ + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+ + + +
+ +
+
+
+
+ + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Compiler/MonoBleedingEdge/etc/mono/4.5/settings.map b/Compiler/MonoBleedingEdge/etc/mono/4.5/settings.map new file mode 100644 index 0000000..4c53aca --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/4.5/settings.map @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/Compiler/MonoBleedingEdge/etc/mono/4.5/web.config b/Compiler/MonoBleedingEdge/etc/mono/4.5/web.config new file mode 100644 index 0000000..30524c1 --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/4.5/web.config @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Compiler/MonoBleedingEdge/etc/mono/browscap.ini b/Compiler/MonoBleedingEdge/etc/mono/browscap.ini new file mode 100644 index 0000000..1267e1d --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/browscap.ini @@ -0,0 +1,16979 @@ +;;; Provided courtesy of http://browsers.garykeith.com +;;; Created on Wednesday, June 17, 2009 at 6:30 AM GMT + +[GJK_Browscap_Version] +Version=4476 +Released=Wed, 17 Jun 2009 06:30:21 -0000 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DefaultProperties + +[DefaultProperties] +Browser=DefaultProperties +Version=0 +MajorVer=0 +MinorVer=0 +Platform=unknown +Alpha=false +Beta=false +Win16=false +Win32=false +Win64=false +Frames=false +IFrames=false +Tables=false +Cookies=false +BackgroundSounds=false +CDF=false +VBScript=false +JavaApplets=false +JavaScript=false +ActiveXControls=false +isBanned=false +isMobileDevice=false +isSyndicationReader=false +Crawler=false +CssVersion=0 +supportsCSS=false +AOL=false +aolVersion=0 +ECMAScriptVersion=0.0 +W3CDOMVersion=0.0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ask + +[Ask] +Parent=DefaultProperties +Browser=Ask +Frames=true +Tables=true +Crawler=true + +[Mozilla/?.0 (compatible; Ask Jeeves/Teoma*)] +Parent=Ask +Browser=Teoma + +[Mozilla/2.0 (compatible; Ask Jeeves)] +Parent=Ask +Browser=AskJeeves + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Baidu + +[Baidu] +Parent=DefaultProperties +Browser=Baidu +Frames=true +Tables=true +Crawler=true + +[BaiduImageSpider*] +Parent=Baidu +Browser=BaiduImageSpider + +[Baiduspider*] +Parent=Baidu +Browser=BaiDu + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Google + +[Google] +Parent=DefaultProperties +Browser=Google +Frames=true +IFrames=true +Tables=true +JavaScript=true +Crawler=true + +[* (compatible; Googlebot-Mobile/2.1; *http://www.google.com/bot.html)] +Parent=Google +Browser=Googlebot-Mobile +Frames=false +IFrames=false +Tables=false + +[*Google Wireless Transcoder*] +Parent=Google +Browser=Google Wireless Transcoder + +[AdsBot-Google (?http://www.google.com/adsbot.html)] +Parent=Google +Browser=AdsBot-Google + +[Feedfetcher-Google-iGoogleGadgets;*] +Parent=Google +Browser=iGoogleGadgets +isBanned=true +isSyndicationReader=true + +[Feedfetcher-Google;*] +Parent=Google +Browser=Feedfetcher-Google +isBanned=true +isSyndicationReader=true + +[Google OpenSocial agent (http://www.google.com/feedfetcher.html)] +Parent=Google +Browser=Google OpenSocial + +[Google-Site-Verification/1.0] +Parent=Google +Browser=Google-Site-Verification + +[Google-Sitemaps/*] +Parent=Google +Browser=Google-Sitemaps + +[Googlebot-Image/*] +Parent=Google +Browser=Googlebot-Image +CDF=true + +[googlebot-urlconsole] +Parent=Google +Browser=googlebot-urlconsole + +[Googlebot-Video/1.0] +Parent=Google +Browser=Google-Video + +[Googlebot/2.1 (?http://www.google.com/bot.html)] +Parent=Google +Browser=Googlebot + +[Googlebot/2.1 (?http://www.googlebot.com/bot.html)] +Parent=Google +Browser=Googlebot + +[Googlebot/Test*] +Parent=Google +Browser=Googlebot/Test + +[gsa-crawler*] +Parent=Google +Browser=Google Search Appliance +isBanned=true + +[Mediapartners-Google*] +Parent=Google +Browser=Mediapartners-Google + +[Mozilla/4.0 (compatible; Google Desktop)] +Parent=Google +Browser=Google Desktop + +[Mozilla/4.0 (compatible; GoogleToolbar*)] +Parent=Google +Browser=Google Toolbar +isBanned=true + +[Mozilla/5.0 (compatible; Google Keyword Tool;*)] +Parent=Google +Browser=Google Keyword Tool + +[Mozilla/5.0 (compatible; Googlebot/2.1; ?http://www.google.com/bot.html)] +Parent=Google +Browser=Google Webmaster Tools + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Inktomi + +[Inktomi] +Parent=DefaultProperties +Browser=Inktomi +Frames=true +Tables=true +Crawler=true + +[* (compatible;YahooSeeker/M1A1-R2D2; *)] +Parent=Inktomi +Browser=YahooSeeker-Mobile +Frames=false +Tables=false + +[Mozilla/4.0] +Parent=Inktomi + +[Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)] +Parent=Inktomi +Win32=true + +[Mozilla/4.0 (compatible; Yahoo Japan; for robot study; kasugiya)] +Parent=Inktomi +Browser=Yahoo! RobotStudy +isBanned=true + +[Mozilla/5.0 (compatible; BMC/1.0 (Y!J-AGENT))] +Parent=Inktomi +Browser=Y!J-AGENT/BMC + +[Mozilla/5.0 (compatible; BMF/1.0 (Y!J-AGENT))] +Parent=Inktomi +Browser=Y!J-AGENT/BMF + +[Mozilla/5.0 (compatible; BMI/1.0 (Y!J-AGENT; 1.0))] +Parent=Inktomi +Browser=Y!J-AGENT/BMI + +[Mozilla/5.0 (compatible; Yahoo! DE Slurp; http://help.yahoo.com/help/us/ysearch/slurp)] +Parent=Inktomi +Browser=Yahoo! Directory Engine + +[Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)] +Parent=Inktomi +Browser=Yahoo! Slurp China + +[Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)] +Parent=Inktomi +Browser=Yahoo! Slurp +Version=3.0 +MajorVer=3 +MinorVer=0 + +[Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)] +Parent=Inktomi +Browser=Yahoo! Slurp + +[Mozilla/5.0 (compatible; Yahoo! Verifier/1.1)] +Parent=Inktomi +Browser=Yahoo! Verifier +Version=1.1 +MajorVer=1 +MinorVer=1 + +[Mozilla/5.0 (Slurp/cat; slurp@inktomi.com; http://www.inktomi.com/slurp.html)] +Parent=Inktomi +Browser=Slurp/cat + +[Mozilla/5.0 (Slurp/si; slurp@inktomi.com; http://www.inktomi.com/slurp.html)] +Parent=Inktomi + +[Mozilla/5.0 (Yahoo-MMCrawler/4.0; mailto:vertical-crawl-support@yahoo-inc.com)] +Parent=Inktomi +Browser=Yahoo-MMCrawler +Version=4.0 +MajorVer=4 +MinorVer=0 + +[Scooter/*] +Parent=Inktomi +Browser=Scooter + +[Scooter/3.3Y!CrawlX] +Parent=Inktomi +Browser=Scooter/3.3Y!CrawlX +Version=3.3 +MajorVer=3 +MinorVer=3 + +[slurp] +Parent=Inktomi +Browser=slurp + +[Y!J-BSC/1.0*] +Parent=Inktomi +Browser=Y!J-BSC +Version=1.0 +MajorVer=1 +MinorVer=0 +isBanned=true + +[Y!J-SRD/1.0] +Parent=Inktomi +Browser=Y!J-SRD +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Yahoo Mindset] +Parent=Inktomi +Browser=Yahoo Mindset + +[Yahoo Pipes*] +Parent=Inktomi +Browser=Yahoo Pipes + +[Yahoo! Mindset] +Parent=Inktomi +Browser=Yahoo! Mindset + +[Yahoo! Slurp/Site Explorer] +Parent=Inktomi +Browser=Yahoo! Site Explorer + +[Yahoo-Blogs/*] +Parent=Inktomi +Browser=Yahoo-Blogs + +[Yahoo-MMAudVid*] +Parent=Inktomi +Browser=Yahoo-MMAudVid + +[Yahoo-MMCrawler*] +Parent=Inktomi +Browser=Yahoo-MMCrawler +isBanned=true + +[YahooFeedSeeker*] +Parent=Inktomi +Browser=YahooFeedSeeker +isSyndicationReader=true +Crawler=false + +[YahooSeeker/*] +Parent=Inktomi +Browser=YahooSeeker +isMobileDevice=true + +[YahooSeeker/CafeKelsa (compatible; Konqueror/3.2; FreeBSD*) (KHTML, like Gecko)] +Parent=Inktomi +Browser=YahooSeeker/CafeKelsa + +[YahooSeeker/CafeKelsa-dev (compatible; Konqueror/3.2; FreeBSD*) (KHTML, like Gecko)] +Parent=Inktomi + +[YahooVideoSearch*] +Parent=Inktomi +Browser=YahooVideoSearch + +[YahooYSMcm*] +Parent=Inktomi +Browser=YahooYSMcm + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MSN + +[MSN] +Parent=DefaultProperties +Browser=MSN +Frames=true +Tables=true +Crawler=true + +[adidxbot/1.1 (?http://search.msn.com/msnbot.htm)] +Parent=MSN +Browser=adidxbot + +[librabot/1.0 (*)] +Parent=MSN +Browser=librabot + +[llssbot/1.0] +Parent=MSN +Browser=llssbot +Version=1.0 +MajorVer=1 +MinorVer=0 + +[MSMOBOT/1.1*] +Parent=MSN +Browser=msnbot-mobile +Version=1.1 +MajorVer=1 +MinorVer=1 + +[MSNBot-Academic/1.0*] +Parent=MSN +Browser=MSNBot-Academic +Version=1.0 +MajorVer=1 +MinorVer=0 + +[msnbot-media/1.0*] +Parent=MSN +Browser=msnbot-media +Version=1.0 +MajorVer=1 +MinorVer=0 + +[msnbot-media/1.1*] +Parent=MSN +Browser=msnbot-media +Version=1.1 +MajorVer=1 +MinorVer=1 + +[MSNBot-News/1.0*] +Parent=MSN +Browser=MSNBot-News +Version=1.0 +MajorVer=1 +MinorVer=0 + +[MSNBot-NewsBlogs/1.0*] +Parent=MSN +Browser=MSNBot-NewsBlogs +Version=1 +MajorVer=1 +MinorVer=0 + +[msnbot-products] +Parent=MSN +Browser=msnbot-products + +[msnbot-webmaster/1.0 (*http://search.msn.com/msnbot.htm)] +Parent=MSN +Browser=msnbot-webmaster tools + +[msnbot/1.0*] +Parent=MSN +Browser=msnbot +Version=1.0 +MajorVer=1 +MinorVer=0 + +[msnbot/1.1*] +Parent=MSN +Browser=msnbot +Version=1.1 +MajorVer=1 +MinorVer=1 + +[msnbot/2.0b*] +Parent=MSN +Version=2.0 +MajorVer=2 +MinorVer=0 +Beta=true + +[MSR-ISRCCrawler] +Parent=MSN +Browser=MSR-ISRCCrawler + +[renlifangbot/1.0 (?http://search.msn.com/msnbot.htm)] +Parent=MSN +Browser=renlifangbot + +[T-Mobile Dash Mozilla/4.0 (*) MSNBOT-MOBILE/1.1 (*)] +Parent=MSN +Browser=msnbot-mobile + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Yahoo + +[Yahoo] +Parent=DefaultProperties +Browser=Yahoo +Frames=true +Tables=true +Crawler=true + +[Mozilla/4.0 (compatible; Y!J; for robot study*)] +Parent=Yahoo +Browser=Y!J + +[Mozilla/5.0 (Yahoo-Test/4.0*)] +Parent=Yahoo +Browser=Yahoo-Test +Version=4.0 +MajorVer=4 +MinorVer=0 + +[mp3Spider cn-search-devel at yahoo-inc dot com] +Parent=Yahoo +Browser=Yahoo! Media +isBanned=true + +[My Browser] +Parent=Yahoo +Browser=Yahoo! My Browser + +[Y!OASIS/*] +Parent=Yahoo +Browser=Y!OASIS +isBanned=true + +[YahooYSMcm/2.0.0] +Parent=Yahoo +Browser=YahooYSMcm +Version=2.0 +MajorVer=2 +MinorVer=0 +isBanned=true + +[YRL_ODP_CRAWLER] +Parent=Yahoo +Browser=YRL_ODP_CRAWLER +isBanned=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Yandex + +[Yandex] +Parent=DefaultProperties +Browser=Yandex +Frames=true +IFrames=true +Tables=true +Cookies=true +Crawler=true + +[Mozilla/4.0 (compatible; MSIE 5.0; YANDEX)] +Parent=Yandex + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9) Gecko VisualParser/3.0] +Parent=Yandex +Browser=VisualParser +isBanned=true + +[YaDirectBot/*] +Parent=Yandex +Browser=YaDirectBot + +[Yandex/*] +Parent=Yandex + +[YandexBlog/*] +Parent=Yandex +Browser=YandexBlog +isSyndicationReader=true + +[YandexSomething/*] +Parent=Yandex +Browser=YandexSomething +isSyndicationReader=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Best of the Web + +[Best of the Web] +Parent=DefaultProperties +Browser=Best of the Web +Frames=true +Tables=true + +[Mozilla/4.0 (compatible; BOTW Feed Grabber; *http://botw.org)] +Parent=Best of the Web +Browser=BOTW Feed Grabber +isSyndicationReader=true +Crawler=false + +[Mozilla/4.0 (compatible; BOTW Spider; *http://botw.org)] +Parent=Best of the Web +Browser=BOTW Spider +isBanned=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Boitho + +[Boitho] +Parent=DefaultProperties +Browser=Boitho +Frames=true +Tables=true +Crawler=true + +[boitho.com-dc/*] +Parent=Boitho +Browser=boitho.com-dc + +[boitho.com-robot/*] +Parent=Boitho +Browser=boitho.com-robot + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Convera + +[Convera] +Parent=DefaultProperties +Browser=Convera +Frames=true +Tables=true +Crawler=true + +[ConveraCrawler/*] +Parent=Convera +Browser=ConveraCrawler + +[ConveraMultiMediaCrawler/0.1*] +Parent=Convera +Browser=ConveraMultiMediaCrawler +Version=0.1 +MajorVer=0 +MinorVer=1 + +[CrawlConvera*] +Parent=Convera +Browser=CrawlConvera + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DotBot + +[DotBot] +Parent=DefaultProperties +Browser=DotBot +Frames=true +Tables=true +isBanned=true +Crawler=true + +[DotBot/* (http://www.dotnetdotcom.org/*)] +Parent=DotBot + +[Mozilla/5.0 (compatible; DotBot/*; http://www.dotnetdotcom.org/*)] +Parent=DotBot + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Entireweb + +[Entireweb] +Parent=DefaultProperties +Browser=Entireweb +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[Mozilla/4.0 (compatible; SpeedySpider; www.entireweb.com)] +Parent=Entireweb + +[Speedy Spider (*Beta/*)] +Parent=Entireweb + +[Speedy?Spider?(http://www.entireweb.com*)] +Parent=Entireweb + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Envolk + +[Envolk] +Parent=DefaultProperties +Browser=Envolk +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[envolk/* (?http://www.envolk.com/envolk*)] +Parent=Envolk + +[envolk?ITS?spider/* (?http://www.envolk.com/envolk*)] +Parent=Envolk + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Exalead + +[Exalead] +Parent=DefaultProperties +Browser=Exalead +Frames=true +Tables=true +isBanned=true +Crawler=true + +[Exabot-Images/1.0] +Parent=Exalead +Browser=Exabot-Images +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Exabot-Test/*] +Parent=Exalead +Browser=Exabot-Test + +[Exabot/2.0] +Parent=Exalead +Browser=Exabot + +[Exabot/3.0] +Parent=Exalead +Browser=Exabot +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=Liberate + +[Exalead NG/*] +Parent=Exalead +Browser=Exalead NG +isBanned=true + +[Mozilla/5.0 (compatible; Exabot-Images/3.0;*)] +Parent=Exalead +Browser=Exabot-Images + +[Mozilla/5.0 (compatible; Exabot/3.0 (BiggerBetter/tests);*)] +Parent=Exalead +Browser=Exabot/BiggerBetter/tests + +[Mozilla/5.0 (compatible; Exabot/3.0;*)] +Parent=Exalead +Browser=Exabot +isBanned=false + +[Mozilla/5.0 (compatible; NGBot/*)] +Parent=Exalead + +[ng/*] +Parent=Exalead +Browser=Exalead Previewer +Version=1.0 +MajorVer=1 +MinorVer=0 +isBanned=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Fast/AllTheWeb + +[Fast/AllTheWeb] +Parent=DefaultProperties +Browser=Fast/AllTheWeb +Alpha=true +Beta=true +Win16=true +Win32=true +Win64=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +isBanned=true +isMobileDevice=true +isSyndicationReader=true +Crawler=true + +[*FAST Enterprise Crawler*] +Parent=Fast/AllTheWeb +Browser=FAST Enterprise Crawler + +[FAST Data Search Document Retriever/4.0*] +Parent=Fast/AllTheWeb +Browser=FAST Data Search Document Retriever + +[FAST MetaWeb Crawler (helpdesk at fastsearch dot com)] +Parent=Fast/AllTheWeb +Browser=FAST MetaWeb Crawler + +[Fast PartnerSite Crawler*] +Parent=Fast/AllTheWeb +Browser=FAST PartnerSite + +[FAST-WebCrawler/*] +Parent=Fast/AllTheWeb +Browser=FAST-WebCrawler + +[FAST-WebCrawler/*/FirstPage*] +Parent=Fast/AllTheWeb +Browser=FAST-WebCrawler/FirstPage + +[FAST-WebCrawler/*/Fresh*] +Parent=Fast/AllTheWeb +Browser=FAST-WebCrawler/Fresh + +[FAST-WebCrawler/*/PartnerSite*] +Parent=Fast/AllTheWeb +Browser=FAST PartnerSite + +[FAST-WebCrawler/*?Multimedia*] +Parent=Fast/AllTheWeb +Browser=FAST-WebCrawler/Multimedia + +[FastSearch Web Crawler for*] +Parent=Fast/AllTheWeb +Browser=FastSearch Web Crawler + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Gigabot + +[Gigabot] +Parent=DefaultProperties +Browser=Gigabot +Frames=true +IFrames=true +Tables=true +Crawler=true + +[Gigabot*] +Parent=Gigabot + +[GigabotSiteSearch/*] +Parent=Gigabot +Browser=GigabotSiteSearch + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ilse + +[Ilse] +Parent=DefaultProperties +Browser=Ilse +Frames=true +Tables=true +Crawler=true + +[IlseBot/*] +Parent=Ilse + +[INGRID/?.0*] +Parent=Ilse +Browser=Ilse + +[Mozilla/3.0 (INGRID/*] +Parent=Ilse +Browser=Ilse + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iVia Project + +[iVia Project] +Parent=DefaultProperties +Browser=iVia Project +Frames=true +IFrames=true +Tables=true +Crawler=true + +[DataFountains/DMOZ Downloader*] +Parent=iVia Project +Browser=DataFountains/DMOZ Downloader +isBanned=true + +[DataFountains/DMOZ Feature Vector Corpus Creator*] +Parent=iVia Project +Browser=DataFountains/DMOZ Feature Vector Corpus + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Jayde Online + +[Jayde Online] +Parent=DefaultProperties +Browser=Jayde Online +Frames=true +Tables=true +Crawler=true + +[ExactSeek Crawler/*] +Parent=Jayde Online +Browser=ExactSeek Crawler + +[exactseek-pagereaper-* (crawler@exactseek.com)] +Parent=Jayde Online +Browser=exactseek-pagereaper +isBanned=true + +[exactseek.com] +Parent=Jayde Online +Browser=exactseek.com + +[Jayde Crawler*] +Parent=Jayde Online +Browser=Jayde Crawler + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Lycos + +[Lycos] +Parent=DefaultProperties +Browser=Lycos +Frames=true +Tables=true +Crawler=true + +[Lycos*] +Parent=Lycos +Browser=Lycos + +[Lycos-Proxy] +Parent=Lycos +Browser=Lycos-Proxy + +[Lycos-Spider_(modspider)] +Parent=Lycos +Browser=Lycos-Spider_(modspider) + +[Lycos-Spider_(T-Rex)] +Parent=Lycos +Browser=Lycos-Spider_(T-Rex) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Naver + +[Naver] +Parent=DefaultProperties +Browser=Naver +isBanned=true +Crawler=true + +[Cowbot-* (NHN Corp*naver.com)] +Parent=Naver +Browser=Naver Cowbot + +[Mozilla/4.0 (compatible; NaverBot/*; *)] +Parent=Naver + +[Mozilla/4.0 (compatible; NaverBot/*; nhnbot@naver.com)] +Parent=Naver +Browser=Naver NaverBot + +[NaverBot-* (NHN Corp*naver.com)] +Parent=Naver +Browser=Naver NHN Corp + +[Yeti/*] +Parent=Naver +Browser=Yeti + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Snap + +[Snap] +Parent=DefaultProperties +Browser=Snap +isBanned=true +Crawler=true + +[Mozilla/5.0 (SnapPreviewBot) Gecko/* Firefox/*] +Parent=Snap + +[Snapbot/*] +Parent=Snap + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Sogou + +[Sogou] +Parent=DefaultProperties +Browser=Sogou +Frames=true +Tables=true +isBanned=true +Crawler=true + +[shaboyi spider] +Parent=Sogou +Browser=Sogou/Shaboyi Spider + +[Sogou develop spider/*] +Parent=Sogou +Browser=Sogou Develop Spider + +[Sogou head spider*] +Parent=Sogou +Browser=Sogou/HEAD Spider + +[sogou js robot(*)] +Parent=Sogou + +[Sogou Orion spider/*] +Parent=Sogou +Browser=Sogou Orion spider + +[Sogou Pic Agent] +Parent=Sogou +Browser=Sogou/Image Crawler + +[Sogou Pic Spider] +Parent=Sogou +Browser=Sogou Pic Spider + +[Sogou Push Spider/*] +Parent=Sogou +Browser=Sogou Push Spider + +[sogou spider] +Parent=Sogou +Browser=Sogou/Spider + +[sogou web spider*] +Parent=Sogou +Browser=sogou web spider + +[Sogou-Test-Spider/*] +Parent=Sogou +Browser=Sogou-Test-Spider + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; YodaoBot + +[YodaoBot] +Parent=DefaultProperties +Browser=YodaoBot +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[Mozilla/5.0 (compatible; YodaoBot/1.*)] +Parent=YodaoBot + +[Mozilla/5.0 (compatible;YodaoBot-Image/1.*)] +Parent=YodaoBot +Browser=YodaoBot-Image + +[WAP_Browser/5.0 (compatible; YodaoBot/1.*)] +Parent=YodaoBot + +[YodaoBot/1.* (*)] +Parent=YodaoBot + +[Best Whois (http://www.bestwhois.net/)] +Parent=DNS Tools +Browser=Best Whois + +[DNSGroup/*] +Parent=DNS Tools +Browser=DNS Group Crawler + +[NG-Search/*] +Parent=Exalead +Browser=NG-SearchBot + +[TouchStone] +Parent=Feeds Syndicators +Browser=TouchStone +isSyndicationReader=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; General Crawlers + +[General Crawlers] +Parent=DefaultProperties +Browser=General Crawlers +Crawler=true + +[A .NET Web Crawler] +Parent=General Crawlers +isBanned=true + +[BabalooSpider/1.*] +Parent=General Crawlers +Browser=BabalooSpider + +[BilgiBot/*] +Parent=General Crawlers +Browser=BilgiBot +isBanned=true + +[bot/* (bot; *bot@bot.bot)] +Parent=General Crawlers +Browser=bot +isBanned=true + +[CyberPatrol*] +Parent=General Crawlers +Browser=CyberPatrol +isBanned=true + +[Cynthia 1.0] +Parent=General Crawlers +Browser=Cynthia +Version=1.0 +MajorVer=1 +MinorVer=0 + +[ddetailsbot (http://www.displaydetails.com)] +Parent=General Crawlers +Browser=ddetailsbot + +[DomainCrawler/1.0 (info@domaincrawler.com; http://www.domaincrawler.com/domains/view/*)] +Parent=General Crawlers +Browser=DomainCrawler + +[DomainsBotBot/1.*] +Parent=General Crawlers +Browser=DomainsBotBot +isBanned=true + +[DomainsDB.net MetaCrawler*] +Parent=General Crawlers +Browser=DomainsDB + +[Drupal (*)] +Parent=General Crawlers +Browser=Drupal + +[Dumbot (version *)*] +Parent=General Crawlers +Browser=Dumbfind + +[EuripBot/*] +Parent=General Crawlers +Browser=Europe Internet Portal + +[eventax/*] +Parent=General Crawlers +Browser=eventax + +[FANGCrawl/*] +Parent=General Crawlers +Browser=Safe-t.net Web Filtering Service +isBanned=true + +[favorstarbot/*] +Parent=General Crawlers +Browser=favorstarbot +isBanned=true + +[FollowSite.com (*)] +Parent=General Crawlers +Browser=FollowSite +isBanned=true + +[Gaisbot*] +Parent=General Crawlers +Browser=Gaisbot + +[Healthbot/Health_and_Longevity_Project_(HealthHaven.com) ] +Parent=General Crawlers +Browser=Healthbot +isBanned=true + +[hitcrawler_0.*] +Parent=General Crawlers +Browser=hitcrawler +isBanned=true + +[htdig/*] +Parent=General Crawlers +Browser=ht://Dig + +[http://hilfe.acont.de/bot.html ACONTBOT] +Parent=General Crawlers +Browser=ACONTBOT +isBanned=true + +[JetBrains*] +Parent=General Crawlers +Browser=Omea Pro + +[KakleBot - www.kakle.com/0.1] +Parent=General Crawlers +Browser=KakleBot + +[KBeeBot/0.*] +Parent=General Crawlers +Browser=KBeeBot +isBanned=true + +[Keyword Density/*] +Parent=General Crawlers +Browser=Keyword Density + +[LetsCrawl.com/1.0*] +Parent=General Crawlers +Browser=LetsCrawl.com +isBanned=true + +[Lincoln State Web Browser] +Parent=General Crawlers +Browser=Lincoln State Web Browser +isBanned=true + +[Links4US-Crawler,*] +Parent=General Crawlers +Browser=Links4US-Crawler +isBanned=true + +[Lorkyll *.* -- lorkyll@444.net] +Parent=General Crawlers +Browser=Lorkyll +isBanned=true + +[Lsearch/sondeur] +Parent=General Crawlers +Browser=Lsearch/sondeur +isBanned=true + +[LucidMedia ClickSense/4.?] +Parent=General Crawlers +Browser=LucidMedia-ClickSense +isBanned=true + +[MapoftheInternet.com?(?http://MapoftheInternet.com)] +Parent=General Crawlers +Browser=MapoftheInternet +isBanned=true + +[Marvin v0.3] +Parent=General Crawlers +Browser=MedHunt +Version=0.3 +MajorVer=0 +MinorVer=3 + +[masidani_bot_v0.6*] +Parent=General Crawlers +Browser=masidani_bot + +[Metaspinner/0.01 (Metaspinner; http://www.meta-spinner.de/; support@meta-spinner.de/)] +Parent=General Crawlers +Browser=Metaspinner/0.01 +Version=0.01 +MajorVer=0 +MinorVer=01 + +[metatagsdir/*] +Parent=General Crawlers +Browser=metatagsdir +isBanned=true + +[Microsoft Windows Network Diagnostics] +Parent=General Crawlers +Browser=Microsoft Windows Network Diagnostics +isBanned=true + +[Miva (AlgoFeedback@miva.com)] +Parent=General Crawlers +Browser=Miva + +[moget/*] +Parent=General Crawlers +Browser=Goo + +[Mozdex/0.7.2*] +Parent=General Crawlers +Browser=Mozdex + +[Mozilla Compatible (MS IE 3.01 WinNT)] +Parent=General Crawlers +isBanned=true + +[Mozilla/* (compatible; WebCapture*)] +Parent=General Crawlers +Browser=WebCapture + +[Mozilla/4.0 (compatible; DepSpid/*)] +Parent=General Crawlers +Browser=DepSpid + +[Mozilla/4.0 (compatible; MSIE *; Windows NT *; SV1)] +Parent=General Crawlers +Browser=AVG + +[Mozilla/4.0 (compatible; MSIE 4.01; Vonna.com b o t)] +Parent=General Crawlers +Browser=Vonna.com +isBanned=true + +[Mozilla/4.0 (compatible; MSIE 4.01; Windows95)] +Parent=General Crawlers +Win32=true + +[Mozilla/4.0 (compatible; MSIE 4.5; Windows 98; )] +Parent=General Crawlers +Win32=true + +[Mozilla/4.0 (compatible; MyFamilyBot/*)] +Parent=General Crawlers +Browser=MyFamilyBot + +[Mozilla/4.0 (compatible; N-Stealth)] +Parent=General Crawlers +Browser=N-Stealth + +[Mozilla/4.0 (compatible; Scumbot/*; Linux/*)] +Parent=General Crawlers +isBanned=true + +[Mozilla/4.0 (compatible; Spider; Linux)] +Parent=General Crawlers +isBanned=true + +[Mozilla/4.0 (compatible; Win32)] +Parent=General Crawlers +Browser=Unknown Crawler +isBanned=true + +[Mozilla/4.1] +Parent=General Crawlers +isBanned=true + +[Mozilla/4.5] +Parent=General Crawlers +isBanned=true + +[Mozilla/5.0 (*http://gnomit.com/) Gecko/* Gnomit/1.0] +Parent=General Crawlers +Browser=Gnomit +isBanned=true + +[Mozilla/5.0 (compatible; AboutUsBot/*)] +Parent=General Crawlers +Browser=AboutUsBot +isBanned=true + +[Mozilla/5.0 (compatible; BuzzRankingBot/*)] +Parent=General Crawlers +Browser=BuzzRankingBot +isBanned=true + +[Mozilla/5.0 (compatible; Diffbot/0.1; http://www.diffbot.com)] +Parent=General Crawlers +Browser=Diffbot + +[Mozilla/5.0 (compatible; FirstSearchBot/1.0; *)] +Parent=General Crawlers +Browser=FirstSearchBot + +[mozilla/5.0 (compatible; genevabot http://www.healthdash.com)] +Parent=General Crawlers +Browser=Healthdash + +[Mozilla/5.0 (compatible; JadynAveBot; *http://www.jadynave.com/robot*] +Parent=General Crawlers +Browser=JadynAveBot +isBanned=true + +[Mozilla/5.0 (compatible; Kyluka crawl; http://www.kyluka.com/crawl.html; crawl@kyluka.com)] +Parent=General Crawlers +Browser=Kyluka + +[Mozilla/5.0 (compatible; MJ12bot/v1.2.*; http://www.majestic12.co.uk/bot.php*)] +Parent=General Crawlers +Browser=MJ12bot +Version=1.2 +MajorVer=1 +MinorVer=2 + +[Mozilla/5.0 (compatible; MSIE 7.0 ?http://www.europarchive.org)] +Parent=General Crawlers +Browser=Europe Web Archive + +[Mozilla/5.0 (compatible; Seznam screenshot-generator 2.0;*)] +Parent=General Crawlers +Browser=Seznam screenshot-generator +isBanned=true + +[Mozilla/5.0 (compatible; Twingly Recon; http://www.twingly.com/)] +Parent=General Crawlers +Browser=Twingly Recon + +[Mozilla/5.0 (compatible; unwrapbot/2.*; http://www.unwrap.jp*)] +Parent=General Crawlers +Browser=UnWrap + +[Mozilla/5.0 (compatible; Vermut*)] +Parent=General Crawlers +Browser=Vermut + +[Mozilla/5.0 (compatible; Webbot/*)] +Parent=General Crawlers +Browser=Webbot.ru +isBanned=true + +[n4p_bot*] +Parent=General Crawlers +Browser=n4p_bot + +[nabot*] +Parent=General Crawlers +Browser=Nabot + +[NetCarta_WebMapper/*] +Parent=General Crawlers +Browser=NetCarta_WebMapper +isBanned=true + +[NetID.com Bot*] +Parent=General Crawlers +Browser=NetID.com Bot +isBanned=true + +[neTVision AG andreas.heidoetting@thomson-webcast.net] +Parent=General Crawlers +Browser=neTVision + +[NextopiaBOT*] +Parent=General Crawlers +Browser=NextopiaBOT + +[nicebot] +Parent=General Crawlers +Browser=nicebot +isBanned=true + +[niXXieBot?Foster*] +Parent=General Crawlers +Browser=niXXiebot-Foster + +[Nozilla/P.N (Just for IDS woring)] +Parent=General Crawlers +Browser=Nozilla/P.N +isBanned=true + +[Nudelsalat/*] +Parent=General Crawlers +Browser=Nudelsalat +isBanned=true + +[NV32ts] +Parent=General Crawlers +Browser=NV32ts +isBanned=true + +[Ocelli/*] +Parent=General Crawlers +Browser=Ocelli + +[OpenTaggerBot (http://www.opentagger.com/opentaggerbot.htm)] +Parent=General Crawlers +Browser=OpenTaggerBot + +[Oracle Enterprise Search] +Parent=General Crawlers +Browser=Oracle Enterprise Search +isBanned=true + +[Oracle Ultra Search] +Parent=General Crawlers +Browser=Oracle Ultra Search + +[Pajaczek/*] +Parent=General Crawlers +Browser=Pajaczek +isBanned=true + +[panscient.com] +Parent=General Crawlers +Browser=panscient.com +isBanned=true + +[Patwebbot (http://www.herz-power.de/technik.html)] +Parent=General Crawlers +Browser=Patwebbot + +[PDFBot (crawler@pdfind.com)] +Parent=General Crawlers +Browser=PDFBot + +[Pete-Spider/1.*] +Parent=General Crawlers +Browser=Pete-Spider +isBanned=true + +[PhpDig/*] +Parent=General Crawlers +Browser=PhpDig + +[PlantyNet_WebRobot*] +Parent=General Crawlers +Browser=PlantyNet +isBanned=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; PluckIt + +[PluckItCrawler/1.0 (*)] +Parent=General Crawlers +isMobileDevice=true + +[PMAFind] +Parent=General Crawlers +Browser=PMAFind +isBanned=true + +[Poodle_predictor_1.0] +Parent=General Crawlers +Browser=Poodle Predictor + +[QuickFinder Crawler] +Parent=General Crawlers +Browser=QuickFinder +isBanned=true + +[Radiation Retriever*] +Parent=General Crawlers +Browser=Radiation Retriever +isBanned=true + +[RedCarpet/*] +Parent=General Crawlers +Browser=RedCarpet +isBanned=true + +[RixBot (http://babelserver.org/rix)] +Parent=General Crawlers +Browser=RixBot + +[Rome Client (http://tinyurl.com/64t5n) Ver: 0.*] +Parent=General Crawlers +Browser=TinyURL + +[SBIder/*] +Parent=General Crawlers +Browser=SiteSell + +[ScollSpider/2.*] +Parent=General Crawlers +Browser=ScollSpider +isBanned=true + +[Search Fst] +Parent=General Crawlers +Browser=Search Fst + +[searchbot admin@google.com] +Parent=General Crawlers +Browser=searchbot +isBanned=true + +[Seeker.lookseek.com] +Parent=General Crawlers +Browser=LookSeek +isBanned=true + +[semanticdiscovery/*] +Parent=General Crawlers +Browser=Semantic Discovery + +[SeznamBot/*] +Parent=General Crawlers +Browser=SeznamBot +isBanned=true + +[Shelob (shelob@gmx.net)] +Parent=General Crawlers +Browser=Shelob +isBanned=true + +[shelob v1.*] +Parent=General Crawlers +Browser=shelob +isBanned=true + +[ShopWiki/1.0*] +Parent=General Crawlers +Browser=ShopWiki +Version=1.0 +MajorVer=1 +MinorVer=0 + +[ShowXML/1.0 libwww/5.4.0] +Parent=General Crawlers +Browser=ShowXML +isBanned=true + +[sitecheck.internetseer.com*] +Parent=General Crawlers +Browser=Internetseer + +[SMBot/*] +Parent=General Crawlers +Browser=SMBot + +[sohu*] +Parent=General Crawlers +Browser=sohu-search +isBanned=true + +[SpankBot*] +Parent=General Crawlers +Browser=SpankBot +isBanned=true + +[spider (tspyyp@tom.com)] +Parent=General Crawlers +Browser=spider (tspyyp@tom.com) +isBanned=true + +[Sunrise/0.*] +Parent=General Crawlers +Browser=Sunrise +isBanned=true + +[Superpages URL Verification Engine] +Parent=General Crawlers +Browser=Superpages + +[Surf Knight] +Parent=General Crawlers +Browser=Surf Knight +isBanned=true + +[SurveyBot/*] +Parent=General Crawlers +Browser=SurveyBot +isBanned=true + +[SynapticSearch/AI Crawler 1.?] +Parent=General Crawlers +Browser=SynapticSearch +isBanned=true + +[SyncMgr] +Parent=General Crawlers +Browser=SyncMgr + +[Tagyu Agent/1.0] +Parent=General Crawlers +Browser=Tagyu + +[Talkro Web-Shot/*] +Parent=General Crawlers +Browser=Talkro Web-Shot +isBanned=true + +[Tecomi Bot (http://www.tecomi.com/bot.htm)] +Parent=General Crawlers +Browser=Tecomi + +[TheInformant*] +Parent=General Crawlers +Browser=TheInformant +isBanned=true + +[Toata dragostea*] +Parent=General Crawlers +Browser=Toata dragostea +isBanned=true + +[Tutorial Crawler*] +Parent=General Crawlers +isBanned=true + +[UbiCrawler/*] +Parent=General Crawlers +Browser=UbiCrawler + +[UCmore] +Parent=General Crawlers +Browser=UCmore + +[User*Agent:*] +Parent=General Crawlers +isBanned=true + +[USER_AGENT] +Parent=General Crawlers +Browser=USER_AGENT +isBanned=true + +[VadixBot] +Parent=General Crawlers +Browser=VadixBot + +[VengaBot/*] +Parent=General Crawlers +Browser=VengaBot +isBanned=true + +[Visicom Toolbar] +Parent=General Crawlers +Browser=Visicom Toolbar + +[W3C-WebCon/*] +Parent=General Crawlers +Browser=W3C-WebCon + +[Webclipping.com] +Parent=General Crawlers +Browser=Webclipping.com +isBanned=true + +[webcollage/*] +Parent=General Crawlers +Browser=WebCollage +isBanned=true + +[WebCrawler_1.*] +Parent=General Crawlers +Browser=WebCrawler + +[WebFilter Robot*] +Parent=General Crawlers +Browser=WebFilter Robot + +[WeBoX/*] +Parent=General Crawlers +Browser=WeBoX + +[WebTrends/*] +Parent=General Crawlers +Browser=WebTrends + +[West Wind Internet Protocols*] +Parent=General Crawlers +Browser=Versatel +isBanned=true + +[WhizBang] +Parent=General Crawlers +Browser=WhizBang + +[Willow Internet Crawler by Twotrees V*] +Parent=General Crawlers +Browser=Willow Internet Crawler + +[WIRE/* (Linux; i686; Bot,Robot,Spider,Crawler)] +Parent=General Crawlers +Browser=WIRE +isBanned=true + +[www.fi crawler, contact crawler@www.fi] +Parent=General Crawlers +Browser=www.fi crawler + +[Xerka WebBot v1.*] +Parent=General Crawlers +Browser=Xerka +isBanned=true + +[XML Sitemaps Generator*] +Parent=General Crawlers +Browser=XML Sitemaps Generator + +[XSpider*] +Parent=General Crawlers +Browser=XSpider +isBanned=true + +[YooW!/* (?http://www.yoow.eu)] +Parent=General Crawlers +Browser=YooW! +isBanned=true + +[HiddenMarket-*] +Parent=General RSS +Browser=HiddenMarket +isBanned=true + +[FOTOCHECKER] +Parent=Image Crawlers +Browser=FOTOCHECKER +isBanned=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Search Engines + +[Search Engines] +Parent=DefaultProperties +Browser=Search Engines +Crawler=true + +[*FDSE robot*] +Parent=Search Engines +Browser=FDSE Robot + +[*Fluffy the spider*] +Parent=Search Engines +Browser=SearchHippo + +[Abacho*] +Parent=Search Engines +Browser=Abacho + +[ah-ha.com crawler (crawler@ah-ha.com)] +Parent=Search Engines +Browser=Ah-Ha + +[AIBOT/*] +Parent=Search Engines +Browser=21Seek.Com + +[ALeadSoftbot/*] +Parent=Search Engines +Browser=ALeadSoftbot + +[Amfibibot/*] +Parent=Search Engines +Browser=Amfibi + +[AnswerBus (http://www.answerbus.com/)] +Parent=Search Engines + +[antibot-V*] +Parent=Search Engines +Browser=antibot + +[appie*(www.walhello.com)] +Parent=Search Engines +Browser=Walhello + +[ASPSeek/*] +Parent=Search Engines +Browser=ASPSeek + +[BigCliqueBOT/*] +Parent=Search Engines +Browser=BigClique.com/BigClic.com + +[Blaiz-Bee/*] +Parent=Search Engines +Browser=RawGrunt + +[btbot/*] +Parent=Search Engines +Browser=Bit Torrent Search Engine + +[Busiversebot/v1.0 (http://www.busiverse.com/bot.php)] +Parent=Search Engines +Browser=Busiversebot +isBanned=true + +[CatchBot/*; http://www.catchbot.com] +Parent=Search Engines +Browser=CatchBot +Version=1.0 +MajorVer=1 +MinorVer=0 + +[CipinetBot (http://www.cipinet.com/bot.html)] +Parent=Search Engines +Browser=CipinetBot + +[Cogentbot/1.?*] +Parent=Search Engines +Browser=Cogentbot + +[compatible; Mozilla 4.0; MSIE 5.5; (SqwidgeBot v1.01 - http://www.sqwidge.com/bot/)] +Parent=Search Engines +Browser=SqwidgeBot + +[cosmos*] +Parent=Search Engines +Browser=Xyleme + +[Deepindex] +Parent=Search Engines +Browser=Deepindex + +[DiamondBot] +Parent=Search Engines +Browser=DiamondBot + +[Dumbot*] +Parent=Search Engines +Browser=Dumbot +Version=0.2 +MajorVer=0 +MinorVer=2 +Beta=true + +[Eule?Robot*] +Parent=Search Engines +Browser=Eule-Robot + +[Faxobot/*] +Parent=Search Engines +Browser=Faxo + +[Filangy/*] +Parent=Search Engines +Browser=Filangy + +[flatlandbot/*] +Parent=Search Engines +Browser=Flatland + +[Fooky.com/ScorpionBot/ScoutOut;*] +Parent=Search Engines +Browser=ScorpionBot +isBanned=true + +[FyberSpider*] +Parent=Search Engines +Browser=FyberSpider +isBanned=true + +[Gaisbot/*] +Parent=Search Engines +Browser=Gaisbot + +[gazz/*(gazz@nttr.co.jp)] +Parent=Search Engines +Browser=gazz + +[geniebot*] +Parent=Search Engines +Browser=GenieKnows + +[GOFORITBOT (?http://www.goforit.com/about/?)] +Parent=Search Engines +Browser=GoForIt + +[GoGuidesBot/*] +Parent=Search Engines +Browser=GoGuidesBot + +[GroschoBot/*] +Parent=Search Engines +Browser=GroschoBot + +[GurujiBot/1.*] +Parent=Search Engines +Browser=GurujiBot +isBanned=true + +[HenryTheMiragoRobot*] +Parent=Search Engines +Browser=Mirago + +[HolmesBot (http://holmes.ge)] +Parent=Search Engines +Browser=HolmesBot + +[Hotzonu/*] +Parent=Search Engines +Browser=Hotzonu + +[HyperEstraier/*] +Parent=Search Engines +Browser=HyperEstraier +isBanned=true + +[i1searchbot/*] +Parent=Search Engines +Browser=i1searchbot + +[IIITBOT/1.*] +Parent=Search Engines +Browser=Indian Language Web Search Engine + +[Iltrovatore-?etaccio/*] +Parent=Search Engines +Browser=Iltrovatore-Setaccio + +[InfociousBot (?http://corp.infocious.com/tech_crawler.php)] +Parent=Search Engines +Browser=InfociousBot +isBanned=true + +[Infoseek SideWinder/*] +Parent=Search Engines +Browser=Infoseek + +[iSEEKbot/*] +Parent=Search Engines +Browser=iSEEKbot + +[Knight/0.? (Zook Knight; http://knight.zook.in/; knight@zook.in)] +Parent=Search Engines +Browser=Knight + +[Kolinka Forum Search (www.kolinka.com)] +Parent=Search Engines +Browser=Kolinka Forum Search +isBanned=true + +[KRetrieve/] +Parent=Search Engines +Browser=KRetrieve +isBanned=true + +[LapozzBot/*] +Parent=Search Engines +Browser=LapozzBot + +[Linknzbot*] +Parent=Search Engines +Browser=Linknzbot + +[LocalcomBot/*] +Parent=Search Engines +Browser=LocalcomBot + +[Mail.Ru/1.0] +Parent=Search Engines +Browser=Mail.Ru + +[MaSagool/*] +Parent=Search Engines +Browser=Sagoo +Version=1.0 +MajorVer=1 +MinorVer=0 + +[miniRank/*] +Parent=Search Engines +Browser=miniRank + +[Mnogosearch*] +Parent=Search Engines +Browser=Mnogosearch + +[Mozilla/0.9* no dos :) (Linux)] +Parent=Search Engines +Browser=goliat +isBanned=true + +[Mozilla/4.0 (compatible; Arachmo)] +Parent=Search Engines +Browser=Arachmo + +[Mozilla/4.0 (compatible; http://search.thunderstone.com/texis/websearch/about.html)] +Parent=Search Engines +Browser=ThunderStone +isBanned=true + +[Mozilla/4.0 (compatible; MSIE *; Windows NT; Girafabot; girafabot at girafa dot com; http://www.girafa.com)] +Parent=Search Engines +Browser=Girafabot +Win32=true + +[Mozilla/4.0 (compatible; Vagabondo/*; webcrawler at wise-guys dot nl; *)] +Parent=Search Engines +Browser=Vagabondo + +[Mozilla/4.0(?compatible; MSIE 6.0; Qihoo *)] +Parent=Search Engines +Browser=Qihoo + +[Mozilla/4.7 (compatible; WhizBang; http://www.whizbang.com/crawler)] +Parent=Search Engines +Browser=Inxight Software + +[Mozilla/5.0 (*) VoilaBot*] +Parent=Search Engines +Browser=VoilaBot +isBanned=true + +[Mozilla/5.0 (compatible; ActiveTouristBot*; http://www.activetourist.com)] +Parent=Search Engines +Browser=ActiveTouristBot + +[Mozilla/5.0 (compatible; Butterfly/1.0; *)*] +Parent=Search Engines +Browser=Butterfly + +[Mozilla/5.0 (compatible; Charlotte/*; *)] +Parent=Search Engines +Browser=Charlotte +Beta=true +isBanned=true + +[Mozilla/5.0 (compatible; CXL-FatAssANT*)] +Parent=Search Engines +Browser=FatAssANT + +[Mozilla/5.0 (compatible; DBLBot/1.0; ?http://www.dontbuylists.com/)] +Parent=Search Engines +Browser=DBLBot +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 (compatible; EARTHCOM.info/*)] +Parent=Search Engines +Browser=EARTHCOM + +[Mozilla/5.0 (compatible; Lipperhey Spider; http://www.lipperhey.com/)] +Parent=Search Engines +Browser=Lipperhey Spider + +[Mozilla/5.0 (compatible; MojeekBot/*; http://www.mojeek.com/bot.html)] +Parent=Search Engines +Browser=MojeekBot + +[Mozilla/5.0 (compatible; NLCrawler/*] +Parent=Search Engines +Browser=Northern Light Web Search + +[Mozilla/5.0 (compatible; OsO;*] +Parent=Search Engines +Browser=Octopodus +isBanned=true + +[Mozilla/5.0 (compatible; Pogodak.*)] +Parent=Search Engines +Browser=Pogodak + +[Mozilla/5.0 (compatible; Quantcastbot/1.*)] +Parent=Search Engines +Browser=Quantcastbot + +[Mozilla/5.0 (compatible; ScoutJet; *http://www.scoutjet.com/)] +Parent=Search Engines +Browser=ScoutJet + +[Mozilla/5.0 (compatible; Scrubby/*; http://www.scrubtheweb.com/abs/meta-check.html)] +Parent=Search Engines +Browser=Scrubby +isBanned=true + +[Mozilla/5.0 (compatible; YoudaoBot/1.*; http://www.youdao.com/help/webmaster/spider/*)] +Parent=Search Engines +Browser=YoudaoBot +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 (Twiceler*)] +Parent=Search Engines +Browser=Twiceler +isBanned=true + +[Mozilla/5.0 CostaCider Search*] +Parent=Search Engines +Browser=CostaCider Search + +[Mozilla/5.0 GurujiBot/1.0 (*)] +Parent=Search Engines +Browser=GurujiBot + +[NavissoBot] +Parent=Search Engines +Browser=NavissoBot + +[NextGenSearchBot*(for information visit *)] +Parent=Search Engines +Browser=ZoomInfo +isBanned=true + +[Norbert the Spider(Burf.com)] +Parent=Search Engines +Browser=Norbert the Spider + +[NuSearch Spider*] +Parent=Search Engines +Browser=nuSearch + +[ObjectsSearch/*] +Parent=Search Engines +Browser=ObjectsSearch + +[OpenISearch/1.*] +Parent=Search Engines +Browser=OpenISearch (Amazon) + +[Pagebull http://www.pagebull.com/] +Parent=Search Engines +Browser=Pagebull + +[PEERbot*] +Parent=Search Engines +Browser=PEERbot + +[Pompos/*] +Parent=Search Engines +Browser=Pompos + +[Popdexter/*] +Parent=Search Engines +Browser=Popdex + +[Qweery*] +Parent=Search Engines +Browser=QweeryBot + +[RedCell/* (*)] +Parent=Search Engines +Browser=RedCell + +[Scrubby/*] +Parent=Search Engines +Browser=Scrub The Web + +[Search-10/*] +Parent=Search Engines +Browser=Search-10 + +[search.ch*] +Parent=Search Engines +Browser=Swiss Search Engine + +[Searchmee! Spider*] +Parent=Search Engines +Browser=Searchmee! + +[Seekbot/*] +Parent=Search Engines +Browser=Seekbot + +[SiteSpider (http://www.SiteSpider.com/)] +Parent=Search Engines +Browser=SiteSpider + +[Spinne/*] +Parent=Search Engines +Browser=Spinne + +[sproose/*] +Parent=Search Engines +Browser=Sproose + +[Sqeobot/0.*] +Parent=Search Engines +Browser=Branzel +isBanned=true + +[SquigglebotBot/*] +Parent=Search Engines +Browser=SquigglebotBot +isBanned=true + +[StackRambler/*] +Parent=Search Engines +Browser=StackRambler + +[SygolBot*] +Parent=Search Engines +Browser=SygolBot + +[SynoBot] +Parent=Search Engines +Browser=SynoBot + +[Szukacz/*] +Parent=Search Engines +Browser=Szukacz + +[Tarantula/*] +Parent=Search Engines +Browser=Tarantula +isBanned=true + +[TerrawizBot/*] +Parent=Search Engines +Browser=TerrawizBot +isBanned=true + +[Tkensaku/*] +Parent=Search Engines +Browser=Tkensaku + +[TMCrawler] +Parent=Search Engines +Browser=TMCrawler +isBanned=true + +[Twingly Recon] +Parent=Search Engines +Browser=Twingly Recon +isBanned=true + +[updated/*] +Parent=Search Engines +Browser=Updated! + +[URL Spider Pro/*] +Parent=Search Engines +Browser=URL Spider Pro + +[URL Spider SQL*] +Parent=Search Engines +Browser=Innerprise Enterprise Search + +[VMBot/*] +Parent=Search Engines +Browser=VMBot + +[voyager/2.0 (http://www.kosmix.com/html/crawler.html)] +Parent=Search Engines +Browser=Voyager + +[wadaino.jp-crawler*] +Parent=Search Engines +Browser=wadaino.jp +isBanned=true + +[WebAlta Crawler/*] +Parent=Search Engines +Browser=WebAlta Crawler +isBanned=true + +[WebCorp/*] +Parent=Search Engines +Browser=WebCorp +isBanned=true + +[webcrawl.net] +Parent=Search Engines +Browser=webcrawl.net + +[WISEbot/*] +Parent=Search Engines +Browser=WISEbot +isBanned=true + +[Wotbox/*] +Parent=Search Engines +Browser=Wotbox + +[www.zatka.com] +Parent=Search Engines +Browser=Zatka + +[WWWeasel Robot v*] +Parent=Search Engines +Browser=World Wide Weasel + +[YadowsCrawler*] +Parent=Search Engines +Browser=YadowsCrawler + +[YodaoBot/*] +Parent=Search Engines +Browser=YodaoBot +isBanned=true + +[ZeBot_www.ze.bz*] +Parent=Search Engines +Browser=ZE.bz + +[zibber-v*] +Parent=Search Engines +Browser=Zibb + +[ZipppBot/*] +Parent=Search Engines +Browser=ZipppBot + +[ATA-Translation-Service] +Parent=Translators +Browser=ATA-Translation-Service + +[GJK_Browser_Check] +Parent=Version Checkers +Browser=GJK_Browser_Check + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Hatena + +[Hatena] +Parent=DefaultProperties +Browser=Hatena +isBanned=true +Crawler=true + +[Feed::Find/*] +Parent=Hatena +Browser=Feed Find +isSyndicationReader=true + +[Hatena Antenna/*] +Parent=Hatena +Browser=Hatena Antenna + +[Hatena Bookmark/*] +Parent=Hatena +Browser=Hatena Bookmark + +[Hatena RSS/*] +Parent=Hatena +Browser=Hatena RSS +isSyndicationReader=true + +[Hatena::Crawler/*] +Parent=Hatena +Browser=Hatena Crawler + +[HatenaScreenshot*] +Parent=Hatena +Browser=HatenaScreenshot + +[URI::Fetch/*] +Parent=Hatena +Browser=URI::Fetch + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Internet Archive + +[Internet Archive] +Parent=DefaultProperties +Browser=Internet Archive +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[*heritrix*] +Parent=Internet Archive +Browser=Heritrix +isBanned=true + +[ia_archiver*] +Parent=Internet Archive +Browser=Internet Archive + +[InternetArchive/*] +Parent=Internet Archive +Browser=InternetArchive + +[Mozilla/5.0 (compatible; archive.org_bot/1.*)] +Parent=Internet Archive + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Nutch + +[Nutch] +Parent=DefaultProperties +Browser=Nutch +isBanned=true +Crawler=true + +[*Nutch*] +Parent=Nutch +isBanned=true + +[CazoodleBot/*] +Parent=Nutch +Browser=CazoodleBot + +[LOOQ/0.1*] +Parent=Nutch +Browser=LOOQ + +[Nutch/0.? (OpenX Spider)] +Parent=Nutch + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Webaroo + +[Webaroo] +Parent=DefaultProperties +Browser=Webaroo + +[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Webaroo/*)] +Parent=Webaroo +Browser=Webaroo + +[Mozilla/5.0 (Windows; U; Windows *; *; rv:*) Gecko/* Firefox/* webaroo/*] +Parent=Webaroo +Browser=Webaroo + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Word Press + +[Word Press] +Parent=DefaultProperties +Browser=Word Press +Alpha=true +Beta=true +Win16=true +Win32=true +Win64=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +isBanned=true +isMobileDevice=true +isSyndicationReader=true +Crawler=true + +[WordPress-B-/2.*] +Parent=Word Press +Browser=WordPress-B + +[WordPress-Do-P-/2.*] +Parent=Word Press +Browser=WordPress-Do-P + +[BlueCoat ProxySG] +Parent=Blue Coat Systems +Browser=BlueCoat ProxySG + +[CerberianDrtrs/*] +Parent=Blue Coat Systems +Browser=Cerberian + +[Inne: Mozilla/4.0 (compatible; Cerberian Drtrs*)] +Parent=Blue Coat Systems +Browser=Cerberian + +[Mozilla/4.0 (compatible; Cerberian Drtrs*)] +Parent=Blue Coat Systems +Browser=Cerberian + +[Mozilla/4.0 (compatible; MSIE 6.0; Bluecoat DRTR)] +Parent=Blue Coat Systems +Browser=Bluecoat + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Copyright/Plagiarism + +[Copyright/Plagiarism] +Parent=DefaultProperties +Browser=Copyright/Plagiarism +isBanned=true +Crawler=true + +[BDFetch] +Parent=Copyright/Plagiarism +Browser=BDFetch + +[copyright sheriff (*)] +Parent=Copyright/Plagiarism +Browser=copyright sheriff + +[CopyRightCheck*] +Parent=Copyright/Plagiarism +Browser=CopyRightCheck + +[FairAd Client*] +Parent=Copyright/Plagiarism +Browser=FairAd Client + +[iCopyright Conductor*] +Parent=Copyright/Plagiarism +Browser=iCopyright Conductor + +[IPiumBot laurion(dot)com] +Parent=Copyright/Plagiarism +Browser=IPiumBot + +[IWAgent/*] +Parent=Copyright/Plagiarism +Browser=Brand Protect + +[Mozilla/5.0 (compatible; DKIMRepBot/*)] +Parent=Copyright/Plagiarism +Browser=DKIMRepBot + +[oBot] +Parent=Copyright/Plagiarism +Browser=oBot + +[SlySearch/*] +Parent=Copyright/Plagiarism +Browser=SlySearch + +[TurnitinBot/*] +Parent=Copyright/Plagiarism +Browser=TurnitinBot + +[TutorGigBot/*] +Parent=Copyright/Plagiarism +Browser=TutorGig + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DNS Tools + +[DNS Tools] +Parent=DefaultProperties +Browser=DNS Tools +Crawler=true + +[Domain Dossier utility*] +Parent=DNS Tools +Browser=Domain Dossier + +[Mozilla/5.0 (compatible; DNS-Digger/*)] +Parent=DNS Tools +Browser=DNS-Digger + +[OpenDNS Domain Crawler noc@opendns.com] +Parent=DNS Tools +Browser=OpenDNS Domain Crawler + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Download Managers + +[Download Managers] +Parent=DefaultProperties +Browser=Download Managers +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[AndroidDownloadManager] +Parent=Download Managers +Browser=Android Download Manager + +[AutoMate5] +Parent=Download Managers +Browser=AutoMate5 + +[Beamer*] +Parent=Download Managers +Browser=Beamer + +[BitBeamer/*] +Parent=Download Managers +Browser=BitBeamer + +[BitTorrent/*] +Parent=Download Managers +Browser=BitTorrent + +[DA *] +Parent=Download Managers +Browser=Download Accelerator + +[Download Demon*] +Parent=Download Managers +Browser=Download Demon + +[Download Express*] +Parent=Download Managers +Browser=Download Express + +[Download Master*] +Parent=Download Managers +Browser=Download Master + +[Download Ninja*] +Parent=Download Managers +Browser=Download Ninja + +[Download Wonder*] +Parent=Download Managers +Browser=Download Wonder + +[DownloadSession*] +Parent=Download Managers +Browser=DownloadSession + +[EasyDL/*] +Parent=Download Managers +Browser=EasyDL + +[FDM 1.x] +Parent=Download Managers +Browser=Free Download Manager + +[FlashGet] +Parent=Download Managers +Browser=FlashGet + +[FreshDownload/*] +Parent=Download Managers +Browser=FreshDownload + +[GetRight/*] +Parent=Download Managers +Browser=GetRight + +[GetRightPro/*] +Parent=Download Managers +Browser=GetRightPro + +[GetSmart/*] +Parent=Download Managers +Browser=GetSmart + +[Go!Zilla*] +Parent=Download Managers +Browser=GoZilla + +[Gozilla/*] +Parent=Download Managers +Browser=Gozilla + +[Internet Ninja*] +Parent=Download Managers +Browser=Internet Ninja + +[Kontiki Client*] +Parent=Download Managers +Browser=Kontiki Client + +[lftp/3.2.1] +Parent=Download Managers +Browser=lftp + +[LightningDownload/*] +Parent=Download Managers +Browser=LightningDownload + +[LMQueueBot/*] +Parent=Download Managers +Browser=LMQueueBot + +[MetaProducts Download Express/*] +Parent=Download Managers +Browser=Download Express + +[Mozilla/4.0 (compatible; Getleft*)] +Parent=Download Managers +Browser=Getleft + +[Myzilla] +Parent=Download Managers +Browser=Myzilla + +[Net Vampire/*] +Parent=Download Managers +Browser=Net Vampire + +[Net_Vampire*] +Parent=Download Managers +Browser=Net_Vampire + +[NetAnts*] +Parent=Download Managers +Browser=NetAnts + +[NetPumper*] +Parent=Download Managers +Browser=NetPumper + +[NetSucker*] +Parent=Download Managers +Browser=NetSucker + +[NetZip Downloader*] +Parent=Download Managers +Browser=NetZip Downloader + +[NexTools WebAgent*] +Parent=Download Managers +Browser=NexTools WebAgent + +[Offline Downloader*] +Parent=Download Managers +Browser=Offline Downloader + +[P3P Client] +Parent=Download Managers +Browser=P3P Client + +[PageDown*] +Parent=Download Managers +Browser=PageDown + +[PicaLoader*] +Parent=Download Managers +Browser=PicaLoader + +[Prozilla*] +Parent=Download Managers +Browser=Prozilla + +[RealDownload/*] +Parent=Download Managers +Browser=RealDownload + +[sEasyDL/*] +Parent=Download Managers +Browser=EasyDL + +[shareaza*] +Parent=Download Managers +Browser=shareaza + +[SmartDownload/*] +Parent=Download Managers +Browser=SmartDownload + +[SpeedDownload/*] +Parent=Download Managers +Browser=Speed Download + +[Star*Downloader/*] +Parent=Download Managers +Browser=StarDownloader + +[STEROID Download] +Parent=Download Managers +Browser=STEROID Download + +[SuperBot/*] +Parent=Download Managers +Browser=SuperBot + +[Vegas95/*] +Parent=Download Managers +Browser=Vegas95 + +[WebZIP*] +Parent=Download Managers +Browser=WebZIP + +[Wget*] +Parent=Download Managers +Browser=Wget + +[WinTools] +Parent=Download Managers +Browser=WinTools + +[Xaldon WebSpider*] +Parent=Download Managers +Browser=Xaldon WebSpider + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; E-Mail Harvesters + +[E-Mail Harvesters] +Parent=DefaultProperties +Browser=E-Mail Harvesters +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[*E-Mail Address Extractor*] +Parent=E-Mail Harvesters +Browser=E-Mail Address Extractor + +[*Larbin*] +Parent=E-Mail Harvesters +Browser=Larbin + +[*www4mail/*] +Parent=E-Mail Harvesters +Browser=www4mail + +[8484 Boston Project*] +Parent=E-Mail Harvesters +Browser=8484 Boston Project + +[CherryPicker*/*] +Parent=E-Mail Harvesters +Browser=CherryPickerElite + +[Chilkat/*] +Parent=E-Mail Harvesters +Browser=Chilkat + +[ContactBot/*] +Parent=E-Mail Harvesters +Browser=ContactBot + +[eCatch*] +Parent=E-Mail Harvesters +Browser=eCatch + +[EmailCollector*] +Parent=E-Mail Harvesters +Browser=E-Mail Collector + +[EMAILsearcher] +Parent=E-Mail Harvesters +Browser=EMAILsearcher + +[EmailSiphon*] +Parent=E-Mail Harvesters +Browser=E-Mail Siphon + +[EmailWolf*] +Parent=E-Mail Harvesters +Browser=EMailWolf + +[Epsilon SoftWorks' MailMunky] +Parent=E-Mail Harvesters +Browser=MailMunky + +[ExtractorPro*] +Parent=E-Mail Harvesters +Browser=ExtractorPro + +[Franklin Locator*] +Parent=E-Mail Harvesters +Browser=Franklin Locator + +[Missigua Locator*] +Parent=E-Mail Harvesters +Browser=Missigua Locator + +[Mozilla/4.0 (compatible; Advanced Email Extractor*)] +Parent=E-Mail Harvesters +Browser=Advanced Email Extractor + +[Netprospector*] +Parent=E-Mail Harvesters +Browser=Netprospector + +[ProWebWalker*] +Parent=E-Mail Harvesters +Browser=ProWebWalker + +[sna-0.0.*] +Parent=E-Mail Harvesters +Browser=Mike Elliott's E-Mail Harvester + +[WebEnhancer*] +Parent=E-Mail Harvesters +Browser=WebEnhancer + +[WebMiner*] +Parent=E-Mail Harvesters +Browser=WebMiner + +[ZIBB Crawler (email address / WWW address)] +Parent=E-Mail Harvesters +Browser=ZIBB Crawler + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Feeds Blogs + +[Feeds Blogs] +Parent=DefaultProperties +Browser=Feeds Blogs +isSyndicationReader=true +Crawler=true + +[Bloglines Title Fetch/*] +Parent=Feeds Blogs +Browser=Bloglines Title Fetch + +[Bloglines/* (http://www.bloglines.com*)] +Parent=Feeds Blogs +Browser=BlogLines Web + +[BlogPulseLive (support@blogpulse.com)] +Parent=Feeds Blogs +Browser=BlogPulseLive + +[blogsearchbot-pumpkin-2] +Parent=Feeds Blogs +Browser=blogsearchbot-pumpkin +isSyndicationReader=false + +[Irish Blogs Aggregator/*1.0*] +Parent=Feeds Blogs +Browser=Irish Blogs Aggregator +Version=1.0 +MajorVer=1 +MinorVer=0 + +[kinjabot (http://www.kinja.com; *)] +Parent=Feeds Blogs +Browser=kinjabot + +[Net::Trackback/*] +Parent=Feeds Blogs +Browser=Net::Trackback + +[Reblog*] +Parent=Feeds Blogs +Browser=Reblog + +[WordPress/*] +Parent=Feeds Blogs +Browser=WordPress + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Feeds Syndicators + +[Feeds Syndicators] +Parent=DefaultProperties +Browser=Feeds Syndicators +isSyndicationReader=true + +[*LinkLint*] +Parent=Feeds Syndicators +Browser=LinkLint + +[*NetNewsWire/*] +Parent=Feeds Syndicators + +[*NetVisualize*] +Parent=Feeds Syndicators +Browser=NetVisualize + +[AideRSS 2.* (postrank.com)] +Parent=Feeds Syndicators +Browser=AideRSS + +[AideRSS/2.0 (aiderss.com)] +Parent=Feeds Syndicators +Browser=AideRSS +isBanned=true + +[Akregator/*] +Parent=Feeds Syndicators +Browser=Akregator + +[AppleSyndication/*] +Parent=Feeds Syndicators +Browser=Safari RSS +Platform=MacOSX + +[Cocoal.icio.us/* (*)*] +Parent=Feeds Syndicators +Browser=Cocoal.icio.us +isBanned=true + +[Feed43 Proxy/* (*)] +Parent=Feeds Syndicators +Browser=Feed For Free + +[FeedBurner/*] +Parent=Feeds Syndicators +Browser=FeedBurner + +[FeedDemon/* (*)] +Parent=Feeds Syndicators +Browser=FeedDemon +Platform=Win32 + +[FeedDigest/* (*)] +Parent=Feeds Syndicators +Browser=FeedDigest + +[FeedGhost/1.*] +Parent=Feeds Syndicators +Browser=FeedGhost +Version=1.0 +MajorVer=1 +MinorVer=0 + +[FeedOnFeeds/0.1.* ( http://minutillo.com/steve/feedonfeeds/)] +Parent=Feeds Syndicators +Browser=FeedOnFeeds +Version=0.1 +MajorVer=0 +MinorVer=1 + +[Feedreader * (Powered by Newsbrain)] +Parent=Feeds Syndicators +Browser=Newsbrain + +[Feedshow/* (*)] +Parent=Feeds Syndicators +Browser=Feedshow + +[Feedster Crawler/?.0; Feedster, Inc.] +Parent=Feeds Syndicators +Browser=Feedster + +[GreatNews/1.0] +Parent=Feeds Syndicators +Browser=GreatNews +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Gregarius/*] +Parent=Feeds Syndicators +Browser=Gregarius + +[intraVnews/*] +Parent=Feeds Syndicators +Browser=intraVnews + +[JetBrains Omea Reader*] +Parent=Feeds Syndicators +Browser=Omea Reader +isBanned=true + +[Liferea/1.5* (Linux; *; http://liferea.sf.net/)] +Parent=Feeds Syndicators +Browser=Liferea +isBanned=true + +[livedoor FeedFetcher/0.0* (http://reader.livedoor.com/;*)] +Parent=Feeds Syndicators +Browser=FeedFetcher +Version=0.0 +MajorVer=0 +MinorVer=0 + +[MagpieRSS/* (*)] +Parent=Feeds Syndicators +Browser=MagpieRSS + +[Mobitype * (compatible; Mozilla/*; MSIE *.*; Windows *)] +Parent=Feeds Syndicators +Browser=Mobitype +Platform=Win32 + +[Mozilla/5.0 (*; Rojo *; http://www.rojo.com/corporate/help/agg; *)*] +Parent=Feeds Syndicators +Browser=Rojo + +[Mozilla/5.0 (*aggregator:TailRank; http://tailrank.com/robot)*] +Parent=Feeds Syndicators +Browser=TailRank + +[Mozilla/5.0 (compatible; MSIE 6.0; Podtech Network; crawler_admin@podtech.net)] +Parent=Feeds Syndicators +Browser=Podtech Network + +[Mozilla/5.0 (compatible; Newz Crawler *; http://www.newzcrawler.com/?)] +Parent=Feeds Syndicators +Browser=Newz Crawler + +[Mozilla/5.0 (compatible; RSSMicro.com RSS/Atom Feed Robot)] +Parent=Feeds Syndicators +Browser=RSSMicro + +[Mozilla/5.0 (compatible;*newstin.com;*)] +Parent=Feeds Syndicators +Browser=NewsTin + +[Mozilla/5.0 (RSS Reader Panel)] +Parent=Feeds Syndicators +Browser=RSS Reader Panel + +[Mozilla/5.0 (X11; U; Linux*; *; rv:1.*; aggregator:FeedParser; *) Gecko/*] +Parent=Feeds Syndicators +Browser=FeedParser + +[Mozilla/5.0 (X11; U; Linux*; *; rv:1.*; aggregator:NewsMonster; *) Gecko/*] +Parent=Feeds Syndicators +Browser=NewsMonster + +[Mozilla/5.0 (X11; U; Linux*; *; rv:1.*; aggregator:Rojo; *) Gecko/*] +Parent=Feeds Syndicators +Browser=Rojo + +[Netvibes (*)] +Parent=Feeds Syndicators +Browser=Netvibes + +[NewsAlloy/* (*)] +Parent=Feeds Syndicators +Browser=NewsAlloy + +[Omnipelagos*] +Parent=Feeds Syndicators +Browser=Omnipelagos + +[Particls] +Parent=Feeds Syndicators +Browser=Particls + +[Protopage/* (*)] +Parent=Feeds Syndicators +Browser=Protopage + +[PubSub-RSS-Reader/* (*)] +Parent=Feeds Syndicators +Browser=PubSub-RSS-Reader + +[RSS Menu/*] +Parent=Feeds Syndicators +Browser=RSS Menu + +[RssBandit/*] +Parent=Feeds Syndicators +Browser=RssBandit + +[RssBar/1.2*] +Parent=Feeds Syndicators +Browser=RssBar +Version=1.2 +MajorVer=1 +MinorVer=2 + +[SharpReader/*] +Parent=Feeds Syndicators +Browser=SharpReader + +[SimplePie/*] +Parent=Feeds Syndicators +Browser=SimplePie + +[Strategic Board Bot (?http://www.strategicboard.com)] +Parent=Feeds Syndicators +Browser=Strategic Board Bot +isBanned=true + +[TargetYourNews.com bot] +Parent=Feeds Syndicators +Browser=TargetYourNews + +[Technoratibot/*] +Parent=Feeds Syndicators +Browser=Technoratibot + +[Tumblr/* RSS syndication ( http://www.tumblr.com/) (support@tumblr.com)] +Parent=Feeds Syndicators +Browser=Tumblr RSS syndication + +[Windows-RSS-Platform/1.0*] +Parent=Feeds Syndicators +Browser=Windows-RSS-Platform +Version=1.0 +MajorVer=1 +MinorVer=0 +Win32=true + +[Wizz RSS News Reader] +Parent=Feeds Syndicators +Browser=Wizz + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; General RSS + +[General RSS] +Parent=DefaultProperties +Browser=General RSS +isSyndicationReader=true + +[AideRSS/1.0 (aiderss.com); * subscribers] +Parent=General RSS +Browser=AideRSS +Version=1.0 +MajorVer=1 +MinorVer=0 + +[CC Metadata Scaper http://wiki.creativecommons.org/Metadata_Scraper] +Parent=General RSS +Browser=CC Metadata Scaper + +[Mozilla/5.0 (compatible) GM RSS Panel] +Parent=General RSS +Browser=RSS Panel + +[Mozilla/5.0 http://www.inclue.com; graeme@inclue.com] +Parent=General RSS +Browser=Inclue + +[Runnk online rss reader : http://www.runnk.com/ : RSS favorites : RSS ranking : RSS aggregator*] +Parent=General RSS +Browser=Ruunk + +[Windows-RSS-Platform/2.0 (MSIE 8.0; Windows NT 6.0)] +Parent=General RSS +Browser=Windows-RSS-Platform +Platform=WinVista + +[Mozilla/5.0 (X11; ?; Linux; *) AppleWebKit/* (KHTML, like Gecko, Safari/*) Arora/0.4] +Parent=Google Code +Browser=Arora +Version=0.4 +MajorVer=0 +MinorVer=4 +Platform=Linux +CssVersion=2 +supportsCSS=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Validation Checkers + +[HTML Validators] +Parent=DefaultProperties +Browser=HTML Validators +Frames=true +IFrames=true +Tables=true +Crawler=true + +[(HTML Validator http://www.searchengineworld.com/validator/)] +Parent=HTML Validators +Browser=Search Engine World HTML Validator + +[FeedValidator/1.3] +Parent=HTML Validators +Browser=FeedValidator +Version=1.3 +MajorVer=1 +MinorVer=3 + +[Jigsaw/* W3C_CSS_Validator_JFouffa/*] +Parent=HTML Validators +Browser=Jigsaw CSS Validator + +[Search Engine World Robots.txt Validator*] +Parent=HTML Validators +Browser=Search Engine World Robots.txt Validator + +[W3C_Validator/*] +Parent=HTML Validators +Browser=W3C Validator + +[W3CLineMode/*] +Parent=HTML Validators +Browser=W3C Line Mode + +[Weblide/2.? beta*] +Parent=HTML Validators +Browser=Weblide +Version=2.0 +MajorVer=2 +MinorVer=0 +Beta=true + +[WebmasterWorld StickyMail Server Header Checker*] +Parent=HTML Validators +Browser=WebmasterWorld Server Header Checker + +[WWWC/*] +Parent=HTML Validators + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Image Crawlers + +[Image Crawlers] +Parent=DefaultProperties +Browser=Image Crawlers +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[*CFNetwork*] +Parent=Image Crawlers +Browser=CFNetwork + +[*PhotoStickies/*] +Parent=Image Crawlers +Browser=PhotoStickies + +[Camcrawler*] +Parent=Image Crawlers +Browser=Camcrawler + +[CydralSpider/*] +Parent=Image Crawlers +Browser=Cydral Web Image Search +isBanned=true + +[Der gro\xdfe BilderSauger*] +Parent=Image Crawlers +Browser=Gallery Grabber + +[Extreme Picture Finder] +Parent=Image Crawlers +Browser=Extreme Picture Finder + +[FLATARTS_FAVICO] +Parent=Image Crawlers +Browser=FlatArts Favorites Icon Tool + +[HTML2JPG Blackbox, http://www.html2jpg.com] +Parent=Image Crawlers +Browser=HTML2JPG + +[IconSurf/2.*] +Parent=Image Crawlers +Browser=IconSurf + +[kalooga/KaloogaBot*] +Parent=Image Crawlers +Browser=KaloogaBot + +[Mister PIX*] +Parent=Image Crawlers +Browser=Mister PIX + +[Mozilla/5.0 (Macintosh; U; *Mac OS X; *) AppleWebKit/* (*) Pandora/2.*] +Parent=Image Crawlers +Browser=Pandora + +[naoFavicon4IE*] +Parent=Image Crawlers +Browser=naoFavicon4IE + +[pixfinder/*] +Parent=Image Crawlers +Browser=pixfinder + +[rssImagesBot/0.1 (*http://herbert.groot.jebbink.nl/?app=rssImages)] +Parent=Image Crawlers +Browser=rssImagesBot + +[Web Image Collector*] +Parent=Image Crawlers +Browser=Web Image Collector + +[WebImages * (?http://herbert.groot.jebbink.nl/?app=WebImages?)] +Parent=Image Crawlers +Browser=WebImages + +[WebPix*] +Parent=Image Crawlers +Browser=Custo + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Link Checkers + +[Link Checkers] +Parent=DefaultProperties +Browser=Link Checkers +Frames=true +IFrames=true +Tables=true +Crawler=true + +[!Susie (http://www.sync2it.com/susie)] +Parent=Link Checkers +Browser=!Susie + +[*AgentName/*] +Parent=Link Checkers +Browser=AgentName + +[*Linkman*] +Parent=Link Checkers +Browser=Linkman + +[*LinksManager.com*] +Parent=Link Checkers +Browser=LinksManager + +[*Powermarks/*] +Parent=Link Checkers +Browser=Powermarks + +[*W3C-checklink/*] +Parent=Link Checkers +Browser=W3C Link Checker + +[*Web Link Validator*] +Parent=Link Checkers +Browser=Web Link Validator + +[*Zeus*] +Parent=Link Checkers +Browser=Zeus +isBanned=true + +[ActiveBookmark *] +Parent=Link Checkers +Browser=ActiveBookmark + +[Bookdog/*] +Parent=Link Checkers +Browser=Bookdog + +[Bookmark Buddy*] +Parent=Link Checkers +Browser=Bookmark Buddy + +[Bookmark Renewal Check Agent*] +Parent=Link Checkers +Browser=Bookmark Renewal Check Agent + +[Bookmark search tool*] +Parent=Link Checkers +Browser=Bookmark search tool + +[Bookmark-Manager] +Parent=Link Checkers +Browser=Bookmark-Manager + +[Checkbot*] +Parent=Link Checkers +Browser=Checkbot + +[CheckLinks/*] +Parent=Link Checkers +Browser=CheckLinks + +[CyberSpyder Link Test/*] +Parent=Link Checkers +Browser=CyberSpyder Link Test + +[DLC/*] +Parent=Link Checkers +Browser=DLC + +[DocWeb Link Crawler (http://doc.php.net)] +Parent=Link Checkers +Browser=DocWeb Link Crawler + +[FavOrg] +Parent=Link Checkers +Browser=FavOrg + +[Favorites Sweeper v.3.*] +Parent=Link Checkers +Browser=Favorites Sweeper + +[FindLinks/*] +Parent=Link Checkers +Browser=FindLinks + +[Funnel Web Profiler*] +Parent=Link Checkers +Browser=Funnel Web Profiler + +[Html Link Validator (www.lithopssoft.com)] +Parent=Link Checkers +Browser=HTML Link Validator + +[IECheck] +Parent=Link Checkers +Browser=IECheck + +[JCheckLinks/*] +Parent=Link Checkers +Browser=JCheckLinks + +[JRTwine Software Check Favorites Utility] +Parent=Link Checkers +Browser=JRTwine + +[Link Valet Online*] +Parent=Link Checkers +Browser=Link Valet +isBanned=true + +[LinkAlarm/*] +Parent=Link Checkers +Browser=LinkAlarm + +[Linkbot*] +Parent=Link Checkers +Browser=Linkbot + +[LinkChecker/*] +Parent=Link Checkers +Browser=LinkChecker + +[LinkextractorPro*] +Parent=Link Checkers +Browser=LinkextractorPro +isBanned=true + +[LinkLint-checkonly/*] +Parent=Link Checkers +Browser=LinkLint + +[LinkScan/*] +Parent=Link Checkers +Browser=LinkScan + +[LinkSweeper/*] +Parent=Link Checkers +Browser=LinkSweeper + +[LinkWalker*] +Parent=Link Checkers +Browser=LinkWalker + +[MetaGer-LinkChecker] +Parent=Link Checkers +Browser=MetaGer-LinkChecker + +[Mozilla/* (compatible; linktiger/*; *http://www.linktiger.com*)] +Parent=Link Checkers +Browser=LinkTiger +isBanned=true + +[Mozilla/4.0 (Compatible); URLBase*] +Parent=Link Checkers +Browser=URLBase + +[Mozilla/4.0 (compatible; Link Utility; http://net-promoter.com)] +Parent=Link Checkers +Browser=NetPromoter Link Utility + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Web Link Validator*] +Parent=Link Checkers +Browser=Web Link Validator +Win32=true + +[Mozilla/4.0 (compatible; MSIE 7.0; Win32) Link Commander 3.0] +Parent=Link Checkers +Browser=Link Commander +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=Win32 + +[Mozilla/4.0 (compatible; smartBot/1.*; checking links; *)] +Parent=Link Checkers +Browser=smartBot + +[Mozilla/4.0 (compatible; SuperCleaner*;*)] +Parent=Link Checkers +Browser=SuperCleaner + +[Mozilla/5.0 gURLChecker/*] +Parent=Link Checkers +Browser=gURLChecker +isBanned=true + +[Newsgroupreporter LinkCheck] +Parent=Link Checkers +Browser=Newsgroupreporter LinkCheck + +[onCHECK Linkchecker von www.scientec.de fuer www.onsinn.de] +Parent=Link Checkers +Browser=onCHECK Linkchecker + +[online link validator (http://www.dead-links.com/)] +Parent=Link Checkers +Browser=Dead-Links.com +isBanned=true + +[REL Link Checker*] +Parent=Link Checkers +Browser=REL Link Checker + +[RLinkCheker*] +Parent=Link Checkers +Browser=RLinkCheker + +[Robozilla/*] +Parent=Link Checkers +Browser=Robozilla + +[RPT-HTTPClient/*] +Parent=Link Checkers +Browser=RPT-HTTPClient +isBanned=true + +[SafariBookmarkChecker*(?http://www.coriolis.ch/)] +Parent=Link Checkers +Browser=SafariBookmarkChecker +Platform=MacOSX +CssVersion=2 +supportsCSS=true + +[Simpy/* (Simpy; http://www.simpy.com/?ref=bot; feedback at simpy dot com)] +Parent=Link Checkers +Browser=Simpy + +[SiteBar/*] +Parent=Link Checkers +Browser=SiteBar + +[Susie (http://www.sync2it.com/bms/susie.php] +Parent=Link Checkers +Browser=Susie + +[URLBase/6.*] +Parent=Link Checkers + +[VSE/*] +Parent=Link Checkers +Browser=VSE Link Tester + +[WebTrends Link Analyzer] +Parent=Link Checkers +Browser=WebTrends Link Analyzer + +[WorQmada/*] +Parent=Link Checkers +Browser=WorQmada + +[Xenu* Link Sleuth*] +Parent=Link Checkers +Browser=Xenu's Link Sleuth +isBanned=true + +[Z-Add Link Checker*] +Parent=Link Checkers +Browser=Z-Add Link Checker + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Microsoft + +[Microsoft] +Parent=DefaultProperties +Browser=Microsoft +isBanned=true + +[Live (http://www.live.com/)] +Parent=Microsoft +Browser=Microsoft Live +isBanned=false +isSyndicationReader=true + +[MFC Foundation Class Library*] +Parent=Microsoft +Browser=MFC Foundation Class Library + +[MFHttpScan] +Parent=Microsoft +Browser=MFHttpScan + +[Microsoft BITS/*] +Parent=Microsoft +Browser=BITS + +[Microsoft Data Access Internet Publishing Provider Cache Manager] +Parent=Microsoft +Browser=MS IPP + +[Microsoft Data Access Internet Publishing Provider DAV*] +Parent=Microsoft +Browser=MS IPP DAV + +[Microsoft Data Access Internet Publishing Provider Protocol Discovery] +Parent=Microsoft +Browser=MS IPPPD + +[Microsoft Internet Explorer] +Parent=Microsoft +Browser=Fake IE + +[Microsoft Office Existence Discovery] +Parent=Microsoft +Browser=Microsoft Office Existence Discovery + +[Microsoft Office Protocol Discovery] +Parent=Microsoft +Browser=MS OPD + +[Microsoft Office/* (*Picture Manager*)] +Parent=Microsoft +Browser=Microsoft Office Picture Manager + +[Microsoft URL Control*] +Parent=Microsoft +Browser=Microsoft URL Control + +[Microsoft Visio MSIE] +Parent=Microsoft +Browser=Microsoft Visio + +[Microsoft-WebDAV-MiniRedir/*] +Parent=Microsoft +Browser=Microsoft-WebDAV + +[Mozilla/5.0 (Macintosh; Intel Mac OS X) Excel/12.*] +Parent=Microsoft +Browser=Microsoft Excel +Version=12.0 +MajorVer=12 +MinorVer=0 +Platform=MacOSX + +[MSN Feed Manager] +Parent=Microsoft +Browser=MSN Feed Manager +isBanned=false +isSyndicationReader=true + +[MSProxy/*] +Parent=Microsoft +Browser=MS Proxy + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Miscellaneous Browsers + +[Miscellaneous Browsers] +Parent=DefaultProperties +Browser=Miscellaneous Browsers +Frames=true +Tables=true +Cookies=true + +[*Amiga*] +Parent=Miscellaneous Browsers +Browser=Amiga +Platform=Amiga + +[*avantbrowser*] +Parent=Miscellaneous Browsers +Browser=Avant Browser + +[12345] +Parent=Miscellaneous Browsers +Browser=12345 +isBanned=true + +[Ace Explorer] +Parent=Miscellaneous Browsers +Browser=Ace Explorer + +[Enigma Browser*] +Parent=Miscellaneous Browsers +Browser=Enigma Browser + +[EVE-minibrowser/*] +Parent=Miscellaneous Browsers +Browser=EVE-minibrowser +IFrames=false +Tables=false +BackgroundSounds=false +VBScript=false +JavaApplets=false +JavaScript=false +ActiveXControls=false +isBanned=false +Crawler=false + +[Godzilla/* (Basic*; *; Commodore C=64; *; rv:1.*)*] +Parent=Miscellaneous Browsers +Browser=Godzilla + +[GreenBrowser] +Parent=Miscellaneous Browsers +Browser=GreenBrowser +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true + +[Kopiczek/* (WyderOS*; *)] +Parent=Miscellaneous Browsers +Browser=Kopiczek +Platform=WyderOS +IFrames=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (*) - BrowseX (*)] +Parent=Miscellaneous Browsers +Browser=BrowseX + +[Mozilla/* (Win32;*Escape?*; ?)] +Parent=Miscellaneous Browsers +Browser=Escape +Platform=Win32 + +[Mozilla/4.0 (compatible; ibisBrowser)] +Parent=Miscellaneous Browsers +Browser=ibisBrowser + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) AppleWebKit/* (*) HistoryHound/*] +Parent=Miscellaneous Browsers +Browser=HistoryHound + +[NetRecorder*] +Parent=Miscellaneous Browsers +Browser=NetRecorder + +[NetSurfer*] +Parent=Miscellaneous Browsers +Browser=NetSurfer + +[ogeb browser , Version 1.1.0] +Parent=Miscellaneous Browsers +Browser=ogeb browser +Version=1.1 +MajorVer=1 +MinorVer=1 + +[SCEJ PSP BROWSER 0102pspNavigator] +Parent=Miscellaneous Browsers +Browser=Wipeout Pure + +[SlimBrowser] +Parent=Miscellaneous Browsers +Browser=SlimBrowser + +[WWW_Browser/*] +Parent=Miscellaneous Browsers +Browser=WWW Browser +Version=1.69 +MajorVer=1 +MinorVer=69 +Platform=Win16 +CssVersion=3 +supportsCSS=true + +[*Netcraft Webserver Survey*] +Parent=Netcraft +Browser=Netcraft Webserver Survey +isBanned=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Offline Browsers + +[Offline Browsers] +Parent=DefaultProperties +Browser=Offline Browsers +Frames=true +Tables=true +Cookies=true +isBanned=true +Crawler=true + +[*Check&Get*] +Parent=Offline Browsers +Browser=Check&Get + +[*HTTrack*] +Parent=Offline Browsers +Browser=HTTrack + +[*MSIECrawler*] +Parent=Offline Browsers +Browser=IE Offline Browser + +[*TweakMASTER*] +Parent=Offline Browsers +Browser=TweakMASTER + +[BackStreet Browser *] +Parent=Offline Browsers +Browser=BackStreet Browser + +[Go-Ahead-Got-It*] +Parent=Offline Browsers +Browser=Go Ahead Got-It + +[iGetter/*] +Parent=Offline Browsers +Browser=iGetter + +[Teleport*] +Parent=Offline Browsers +Browser=Teleport + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Online Scanners + +[Online Scanners] +Parent=DefaultProperties +Browser=Online Scanners +isBanned=true + +[JoeDog/* (X11; I; Siege *)] +Parent=Online Scanners +Browser=JoeDog +isBanned=false + +[Morfeus Fucking Scanner] +Parent=Online Scanners +Browser=Morfeus Fucking Scanner + +[Mozilla/4.0 (compatible; Trend Micro tmdr 1.*] +Parent=Online Scanners +Browser=Trend Micro + +[Titanium 2005 (4.02.01)] +Parent=Online Scanners +Browser=Panda Antivirus Titanium + +[virus_detector*] +Parent=Online Scanners +Browser=Secure Computing Corporation + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Proxy Servers + +[Proxy Servers] +Parent=DefaultProperties +Browser=Proxy Servers +isBanned=true + +[*squid*] +Parent=Proxy Servers +Browser=Squid + +[Anonymisiert*] +Parent=Proxy Servers +Browser=Anonymizied + +[Anonymizer/*] +Parent=Proxy Servers +Browser=Anonymizer + +[Anonymizied*] +Parent=Proxy Servers +Browser=Anonymizied + +[Anonymous*] +Parent=Proxy Servers +Browser=Anonymous + +[Anonymous/*] +Parent=Proxy Servers +Browser=Anonymous + +[CE-Preload] +Parent=Proxy Servers +Browser=CE-Preload + +[http://Anonymouse.org/*] +Parent=Proxy Servers +Browser=Anonymouse + +[IE/6.01 (CP/M; 8-bit*)] +Parent=Proxy Servers +Browser=Squid + +[Mozilla/* (TuringOS; Turing Machine; 0.0)] +Parent=Proxy Servers +Browser=Anonymizer + +[Mozilla/4.0 (compatible; MSIE ?.0; SaferSurf*)] +Parent=Proxy Servers +Browser=SaferSurf + +[Mozilla/5.0 (compatible; del.icio.us-thumbnails/*; *) KHTML/* (like Gecko)] +Parent=Proxy Servers +Browser=Yahoo! +isBanned=true +Crawler=true + +[Nutscrape] +Parent=Proxy Servers +Browser=Squid + +[Nutscrape/* (CP/M; 8-bit*)] +Parent=Proxy Servers +Browser=Squid + +[Privoxy/*] +Parent=Proxy Servers +Browser=Privoxy + +[ProxyTester*] +Parent=Proxy Servers +Browser=ProxyTester +isBanned=true +Crawler=true + +[SilentSurf*] +Parent=Proxy Servers +Browser=SilentSurf + +[SmallProxy*] +Parent=Proxy Servers +Browser=SmallProxy + +[Space*Bison/*] +Parent=Proxy Servers +Browser=Proxomitron + +[Sqworm/*] +Parent=Proxy Servers +Browser=Websense + +[SurfControl] +Parent=Proxy Servers +Browser=SurfControl + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Research Projects + +[Research Projects] +Parent=DefaultProperties +Browser=Research Projects +isBanned=true +Crawler=true + +[*research*] +Parent=Research Projects + +[AcadiaUniversityWebCensusClient] +Parent=Research Projects +Browser=AcadiaUniversityWebCensusClient + +[Amico Alpha * (*) Gecko/* AmicoAlpha/*] +Parent=Research Projects +Browser=Amico Alpha + +[annotate_google; http://ponderer.org/*] +Parent=Research Projects +Browser=Annotate Google + +[CMS crawler (?http://buytaert.net/crawler/)] +Parent=Research Projects + +[e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)] +Parent=Research Projects +Browser=e-SocietyRobot + +[Forschungsportal/*] +Parent=Research Projects +Browser=Forschungsportal + +[Gulper Web *] +Parent=Research Projects +Browser=Gulper Web Bot + +[HooWWWer/*] +Parent=Research Projects +Browser=HooWWWer + +[http://buytaert.net/crawler] +Parent=Research Projects + +[inetbot/* (?http://www.inetbot.com/bot.html)] +Parent=Research Projects +Browser=inetbot + +[IRLbot/*] +Parent=Research Projects +Browser=IRLbot + +[Lachesis] +Parent=Research Projects +Browser=Lachesis + +[Mozilla/5.0 (compatible; nextthing.org/*)] +Parent=Research Projects +Browser=nextthing.org +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 (compatible; Theophrastus/*)] +Parent=Research Projects +Browser=Theophrastus + +[Mozilla/5.0 (compatible; Webscan v0.*; http://otc.dyndns.org/webscan/)] +Parent=Research Projects +Browser=Webscan + +[MQbot*] +Parent=Research Projects +Browser=MQbot + +[OutfoxBot/*] +Parent=Research Projects +Browser=OutfoxBot + +[polybot?*] +Parent=Research Projects +Browser=Polybot + +[Shim?Crawler*] +Parent=Research Projects +Browser=Shim Crawler + +[Steeler/*] +Parent=Research Projects +Browser=Steeler + +[Taiga web spider] +Parent=Research Projects +Browser=Taiga + +[Theme Spider*] +Parent=Research Projects +Browser=Theme Spider + +[UofTDB_experiment* (leehyun@cs.toronto.edu)] +Parent=Research Projects +Browser=UofTDB Experiment + +[USyd-NLP-Spider*] +Parent=Research Projects +Browser=USyd-NLP-Spider + +[woriobot*] +Parent=Research Projects +Browser=woriobot + +[wwwster/* (Beta, mailto:gue@cis.uni-muenchen.de)] +Parent=Research Projects +Browser=wwwster +Beta=true + +[Zao-Crawler] +Parent=Research Projects +Browser=Zao-Crawler + +[Zao/*] +Parent=Research Projects +Browser=Zao + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Rippers + +[Rippers] +Parent=DefaultProperties +Browser=Rippers +Frames=true +IFrames=true +Tables=true +isBanned=true +Crawler=true + +[*grub*] +Parent=Rippers +Browser=grub + +[*ickHTTP*] +Parent=Rippers +Browser=IP*Works + +[*java*] +Parent=Rippers + +[*libwww-perl*] +Parent=Rippers +Browser=libwww-perl + +[*WebGrabber*] +Parent=Rippers + +[*WinHttpRequest*] +Parent=Rippers +Browser=WinHttp + +[3D-FTP/*] +Parent=Rippers +Browser=3D-FTP + +[3wGet/*] +Parent=Rippers +Browser=3wGet + +[ActiveRefresh*] +Parent=Rippers +Browser=ActiveRefresh + +[Artera (Version *)] +Parent=Rippers +Browser=Artera + +[AutoHotkey] +Parent=Rippers +Browser=AutoHotkey + +[b2w/*] +Parent=Rippers +Browser=b2w + +[BasicHTTP/*] +Parent=Rippers +Browser=BasicHTTP + +[BlockNote.Net] +Parent=Rippers +Browser=BlockNote.Net + +[CAST] +Parent=Rippers +Browser=CAST + +[CFNetwork/*] +Parent=Rippers +Browser=CFNetwork + +[CFSCHEDULE*] +Parent=Rippers +Browser=ColdFusion Task Scheduler + +[CobWeb/*] +Parent=Rippers +Browser=CobWeb + +[ColdFusion*] +Parent=Rippers +Browser=ColdFusion + +[Crawl_Application] +Parent=Rippers +Browser=Crawl_Application + +[curl/*] +Parent=Rippers +Browser=cURL + +[Custo*] +Parent=Rippers +Browser=Custo + +[DataCha0s/*] +Parent=Rippers +Browser=DataCha0s + +[DeepIndexer*] +Parent=Rippers +Browser=DeepIndexer + +[DISCo Pump *] +Parent=Rippers +Browser=DISCo Pump + +[eStyleSearch * (compatible; MSIE 6.0; Windows NT 5.0)] +Parent=Rippers +Browser=eStyleSearch +Win32=true + +[ezic.com http agent *] +Parent=Rippers +Browser=Ezic.com + +[fetch libfetch/*] +Parent=Rippers + +[FGet*] +Parent=Rippers +Browser=FGet + +[Flaming AttackBot*] +Parent=Rippers +Browser=Flaming AttackBot + +[Foobot*] +Parent=Rippers +Browser=Foobot + +[GameSpyHTTP/*] +Parent=Rippers +Browser=GameSpyHTTP + +[gnome-vfs/*] +Parent=Rippers +Browser=gnome-vfs + +[Harvest/*] +Parent=Rippers +Browser=Harvest + +[hcat/*] +Parent=Rippers +Browser=hcat + +[HLoader] +Parent=Rippers +Browser=HLoader + +[Holmes/*] +Parent=Rippers +Browser=Holmes + +[HTMLParser/*] +Parent=Rippers +Browser=HTMLParser + +[http generic] +Parent=Rippers +Browser=http generic + +[httpclient*] +Parent=Rippers + +[httperf/*] +Parent=Rippers +Browser=httperf + +[HTTPFetch/*] +Parent=Rippers +Browser=HTTPFetch + +[HTTPGrab] +Parent=Rippers +Browser=HTTPGrab + +[HttpSession] +Parent=Rippers +Browser=HttpSession + +[httpunit/*] +Parent=Rippers +Browser=HttpUnit + +[ICE_GetFile] +Parent=Rippers +Browser=ICE_GetFile + +[iexplore.exe] +Parent=Rippers + +[Inet - Eureka App] +Parent=Rippers +Browser=Inet - Eureka App + +[INetURL/*] +Parent=Rippers +Browser=INetURL + +[InetURL:/*] +Parent=Rippers +Browser=InetURL + +[Internet Exploiter/*] +Parent=Rippers + +[Internet Explore *] +Parent=Rippers +Browser=Fake IE + +[Internet Explorer *] +Parent=Rippers +Browser=Fake IE + +[IP*Works!*/*] +Parent=Rippers +Browser=IP*Works! + +[IrssiUrlLog/*] +Parent=Rippers +Browser=IrssiUrlLog + +[JPluck/*] +Parent=Rippers +Browser=JPluck + +[Kapere (http://www.kapere.com)] +Parent=Rippers +Browser=Kapere + +[LeechFTP] +Parent=Rippers +Browser=LeechFTP + +[LeechGet*] +Parent=Rippers +Browser=LeechGet + +[libcurl-agent/*] +Parent=Rippers +Browser=libcurl + +[libWeb/clsHTTP*] +Parent=Rippers +Browser=libWeb/clsHTTP + +[lwp*] +Parent=Rippers + +[MFC_Tear_Sample] +Parent=Rippers +Browser=MFC_Tear_Sample + +[Moozilla] +Parent=Rippers +Browser=Moozilla + +[MovableType/*] +Parent=Rippers +Browser=MovableType Web Log + +[Mozilla/2.0 (compatible; NEWT ActiveX; Win32)] +Parent=Rippers +Browser=NEWT ActiveX +Platform=Win32 + +[Mozilla/3.0 (compatible)] +Parent=Rippers + +[Mozilla/3.0 (compatible; Indy Library)] +Parent=Rippers +Cookies=true + +[Mozilla/3.01 (compatible;)] +Parent=Rippers + +[Mozilla/4.0 (compatible; BorderManager*)] +Parent=Rippers +Browser=Novell BorderManager + +[Mozilla/4.0 (compatible;)] +Parent=Rippers + +[Mozilla/5.0 (compatible; IPCheck Server Monitor*)] +Parent=Rippers +Browser=IPCheck Server Monitor + +[OCN-SOC/*] +Parent=Rippers +Browser=OCN-SOC + +[Offline Explorer*] +Parent=Rippers +Browser=Offline Explorer + +[Open Web Analytics Bot*] +Parent=Rippers +Browser=Open Web Analytics Bot + +[OSSProxy*] +Parent=Rippers +Browser=OSSProxy + +[Pageload*] +Parent=Rippers +Browser=PageLoad + +[PageNest/*] +Parent=Rippers +Browser=PageNest + +[pavuk/*] +Parent=Rippers +Browser=Pavuk + +[PEAR HTTP_Request*] +Parent=Rippers +Browser=PEAR-PHP + +[PHP*] +Parent=Rippers +Browser=PHP + +[PigBlock (Windows NT 5.1; U)*] +Parent=Rippers +Browser=PigBlock +Win32=true + +[Pockey*] +Parent=Rippers +Browser=Pockey-GetHTML + +[POE-Component-Client-HTTP/*] +Parent=Rippers +Browser=POE-Component-Client-HTTP + +[PycURL/*] +Parent=Rippers +Browser=PycURL + +[Python*] +Parent=Rippers +Browser=Python + +[RepoMonkey*] +Parent=Rippers +Browser=RepoMonkey + +[SBL-BOT*] +Parent=Rippers +Browser=BlackWidow + +[ScoutAbout*] +Parent=Rippers +Browser=ScoutAbout + +[sherlock/*] +Parent=Rippers +Browser=Sherlock + +[SiteParser/*] +Parent=Rippers +Browser=SiteParser + +[SiteSnagger*] +Parent=Rippers +Browser=SiteSnagger + +[SiteSucker/*] +Parent=Rippers +Browser=SiteSucker + +[SiteWinder*] +Parent=Rippers +Browser=SiteWinder + +[Snoopy*] +Parent=Rippers +Browser=Snoopy + +[SOFTWING_TEAR_AGENT*] +Parent=Rippers +Browser=AspTear + +[SuperHTTP/*] +Parent=Rippers +Browser=SuperHTTP + +[Tcl http client package*] +Parent=Rippers +Browser=Tcl http client package + +[Twisted PageGetter] +Parent=Rippers +Browser=Twisted PageGetter + +[URL2File/*] +Parent=Rippers +Browser=URL2File + +[UtilMind HTTPGet] +Parent=Rippers +Browser=UtilMind HTTPGet + +[VCI WebViewer*] +Parent=Rippers +Browser=VCI WebViewer + +[W3CRobot/*] +Parent=Rippers +Browser=W3CRobot + +[Web Downloader*] +Parent=Rippers +Browser=Web Downloader + +[Web Downloader/*] +Parent=Rippers +Browser=Web Downloader + +[Web Magnet*] +Parent=Rippers +Browser=Web Magnet + +[WebAuto/*] +Parent=Rippers + +[webbandit/*] +Parent=Rippers +Browser=webbandit + +[WebCopier*] +Parent=Rippers +Browser=WebCopier + +[WebDownloader*] +Parent=Rippers +Browser=WebDownloader + +[WebFetch] +Parent=Rippers +Browser=WebFetch + +[webfetch/*] +Parent=Rippers +Browser=WebFetch + +[WebGatherer*] +Parent=Rippers +Browser=WebGatherer + +[WebGet] +Parent=Rippers +Browser=WebGet + +[WebReaper*] +Parent=Rippers +Browser=WebReaper + +[WebRipper] +Parent=Rippers +Browser=WebRipper + +[WebSauger*] +Parent=Rippers +Browser=WebSauger + +[Website Downloader*] +Parent=Rippers +Browser=Website Downloader + +[Website eXtractor*] +Parent=Rippers +Browser=Website eXtractor + +[Website Quester] +Parent=Rippers +Browser=Website Quester + +[WebsiteExtractor*] +Parent=Rippers +Browser=Website eXtractor + +[WebSnatcher*] +Parent=Rippers +Browser=WebSnatcher + +[Webster Pro*] +Parent=Rippers +Browser=Webster Pro + +[WebStripper*] +Parent=Rippers +Browser=WebStripper + +[WebWhacker*] +Parent=Rippers +Browser=WebWhacker + +[WinScripter iNet Tools] +Parent=Rippers +Browser=WinScripter iNet Tools + +[WWW-Mechanize/*] +Parent=Rippers +Browser=WWW-Mechanize + +[Zend_Http_Client] +Parent=Rippers +Browser=Zend_Http_Client + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Site Monitors + +[Site Monitors] +Parent=DefaultProperties +Browser=Site Monitors +Cookies=true +isBanned=true +Crawler=true + +[*EasyRider*] +Parent=Site Monitors +Browser=EasyRider + +[*maxamine.com--robot*] +Parent=Site Monitors +Browser=maxamine.com--robot +isBanned=true + +[*WebMon ?.*] +Parent=Site Monitors +Browser=WebMon + +[Kenjin Spider*] +Parent=Site Monitors +Browser=Kenjin Spider + +[Kevin http://*] +Parent=Site Monitors +Browser=Kevin +isBanned=true + +[Mozilla/4.0 (compatible; ChangeDetection/*] +Parent=Site Monitors +Browser=ChangeDetection + +[Myst Monitor Service v*] +Parent=Site Monitors +Browser=Myst Monitor Service + +[Net Probe] +Parent=Site Monitors +Browser=Net Probe + +[NetMechanic*] +Parent=Site Monitors +Browser=NetMechanic + +[NetReality*] +Parent=Site Monitors +Browser=NetReality + +[Pingdom GIGRIB*] +Parent=Site Monitors +Browser=Pingdom + +[Site Valet Online*] +Parent=Site Monitors +Browser=Site Valet +isBanned=true + +[SITECHECKER] +Parent=Site Monitors +Browser=SITECHECKER + +[sitemonitor@dnsvr.com/*] +Parent=Site Monitors +Browser=ZoneEdit Failover Monitor +isBanned=false + +[UpTime Checker*] +Parent=Site Monitors +Browser=UpTime Checker + +[URL Control*] +Parent=Site Monitors +Browser=URL Control + +[URL_Access/*] +Parent=Site Monitors + +[URLCHECK] +Parent=Site Monitors +Browser=URLCHECK + +[URLy Warning*] +Parent=Site Monitors +Browser=URLy Warning + +[Webcheck *] +Parent=Site Monitors +Browser=Webcheck +Version=1.0 +MajorVer=1 +MinorVer=0 + +[WebPatrol/*] +Parent=Site Monitors +Browser=WebPatrol + +[websitepulse checker/*] +Parent=Site Monitors +Browser=websitepulse checker + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Social Bookmarkers + +[Social Bookmarkers] +Parent=DefaultProperties +Browser=Social Bookmarkers +Frames=true +Tables=true +Cookies=true +JavaScript=true + +[BookmarkBase(2/;http://bookmarkbase.com)] +Parent=Social Bookmarkers +Browser=BookmarkBase + +[Cocoal.icio.us/1.0 (v43) (Mac OS X; http://www.scifihifi.com/cocoalicious)] +Parent=Social Bookmarkers +Browser=Cocoalicious + +[Mozilla/5.0 (compatible; FriendFeedBot/0.*; Http://friendfeed.com/about/bot)] +Parent=Social Bookmarkers +Browser=FriendFeedBot + +[Twitturly*] +Parent=Social Bookmarkers +Browser=Twitturly + +[WinkBot/*] +Parent=Social Bookmarkers +Browser=WinkBot + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Translators + +[Translators] +Parent=DefaultProperties +Browser=Translators +Frames=true +Tables=true +Cookies=true + +[Seram Server] +Parent=Translators +Browser=Seram Server + +[TeragramWebcrawler/*] +Parent=Translators +Browser=TeragramWebcrawler +Version=1.0 +MajorVer=1 +MinorVer=0 + +[WebIndexer/* (Web Indexer; *)] +Parent=Translators +Browser=WorldLingo + +[WebTrans] +Parent=Translators +Browser=WebTrans + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Version Checkers + +[Version Checkers] +Parent=DefaultProperties +Browser=Version Checkers +Crawler=true + +[Automated Browscap.ini Updater. To report issues contact us at http://www.skycomp.ca] +Parent=Version Checkers +Browser=Automated Browscap.ini Updater + +[BMC Link Validator (http://www.briansmodelcars.com/links/)] +Parent=Version Checkers +Browser=BMC Link Validator +MajorVer=1 +MinorVer=0 +Platform=Win2000 + +[Browscap updater] +Parent=Version Checkers +Browser=Browscap updater + +[BrowscapUpdater1.0] +Parent=Version Checkers + +[Browser Capabilities Project (http://browsers.garykeith.com; http://browsers.garykeith.com/sitemail/contact-me.asp)] +Parent=Version Checkers +Browser=Gary Keith's Version Checker + +[Browser Capabilities Project AutoDownloader] +Parent=Version Checkers +Browser=TKC AutoDownloader + +[browsers.garykeith.com browscap.ini bot BETA] +Parent=Version Checkers + +[Code Sample Web Client] +Parent=Version Checkers +Browser=Code Sample Web Client + +[Desktop Sidebar*] +Parent=Version Checkers +Browser=Desktop Sidebar +isBanned=true + +[Mono Browser Capabilities Updater*] +Parent=Version Checkers +Browser=Mono Browser Capabilities Updater +isBanned=true + +[Rewmi/*] +Parent=Version Checkers +isBanned=true + +[Subtext Version 1.9* - http://subtextproject.com/ (Microsoft Windows NT 5.2.*)] +Parent=Version Checkers +Browser=Subtext + +[TherapeuticResearch] +Parent=Version Checkers +Browser=TherapeuticResearch + +[UpdateBrowscap*] +Parent=Version Checkers +Browser=UpdateBrowscap + +[www.garykeith.com browscap.ini bot*] +Parent=Version Checkers +Browser=clarkson.edu + +[www.substancia.com AutoHTTPAgent (ver *)] +Parent=Version Checkers +Browser=Substncia + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Become + +[Become] +Parent=DefaultProperties +Browser=Become +Frames=true +Tables=true +isSyndicationReader=true +Crawler=true + +[*BecomeBot/*] +Parent=Become +Browser=BecomeBot + +[*BecomeBot@exava.com*] +Parent=Become +Browser=BecomeBot + +[*Exabot@exava.com*] +Parent=Become +Browser=Exabot + +[MonkeyCrawl/*] +Parent=Become +Browser=MonkeyCrawl + +[Mozilla/5.0 (compatible; BecomeJPBot/2.3; *)] +Parent=Become +Browser=BecomeJPBot + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Blue Coat Systems + +[Blue Coat Systems] +Parent=DefaultProperties +Browser=Blue Coat Systems +isBanned=true +Crawler=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Browscap Abusers + +[Browscap Abusers] +Parent=DefaultProperties +Browser=Browscap Abusers +isBanned=true + +[Apple-PubSub/*] +Parent=Browscap Abusers +Browser=Apple-PubSub + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FeedHub + +[FeedHub] +Parent=DefaultProperties +Browser=FeedHub +isSyndicationReader=true + +[FeedHub FeedDiscovery/1.0 (http://www.feedhub.com)] +Parent=FeedHub +Browser=FeedHub FeedDiscovery +Version=1.0 +MajorVer=1 +MinorVer=0 + +[FeedHub FeedFetcher/1.0 (http://www.feedhub.com)] +Parent=FeedHub +Browser=FeedHub FeedFetcher +Version=1.0 +MajorVer=1 +MinorVer=0 + +[FeedHub MetaDataFetcher/1.0 (http://www.feedhub.com)] +Parent=FeedHub +Browser=FeedHub MetaDataFetcher +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Internet Content Rating Association] +Parent=DefaultProperties +Browser= +Frames=true +IFrames=true +Tables=true +Cookies=true +Crawler=true + +[ICRA_label_generator/1.?] +Parent=Internet Content Rating Association +Browser=ICRA_label_generator + +[ICRA_Semantic_spider/0.?] +Parent=Internet Content Rating Association +Browser=ICRA_Semantic_spider + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NameProtect + +[NameProtect] +Parent=DefaultProperties +Browser=NameProtect +isBanned=true +Crawler=true + +[abot/*] +Parent=NameProtect +Browser=NameProtect + +[NP/*] +Parent=NameProtect +Browser=NameProtect + +[NPBot*] +Parent=NameProtect +Browser=NameProtect + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netcraft + +[Netcraft] +Parent=DefaultProperties +Browser=Netcraft +isBanned=true +Crawler=true + +[*Netcraft Web Server Survey*] +Parent=Netcraft +Browser=Netcraft Webserver Survey +isBanned=true + +[Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; info@netcraft.com)] +Parent=Netcraft +Browser=NetcraftSurveyAgent + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NewsGator + +[NewsGator] +Parent=DefaultProperties +Browser=NewsGator +isSyndicationReader=true + +[MarsEdit*] +Parent=NewsGator +Browser=MarsEdit + +[NetNewsWire*/*] +Parent=NewsGator +Browser=NetNewsWire +Platform=MacOSX + +[NewsFire/*] +Parent=NewsGator +Browser=NewsFire + +[NewsGator FetchLinks extension/*] +Parent=NewsGator +Browser=NewsGator FetchLinks + +[NewsGator/*] +Parent=NewsGator +Browser=NewsGator +isBanned=true + +[NewsGatorOnline/*] +Parent=NewsGator +Browser=NewsGatorOnline + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.2 + +[Chrome 0.2] +Parent=DefaultProperties +Browser=Chrome +Version=0.2 +MinorVer=2 +Beta=true +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.2.* Safari/*] +Parent=Chrome 0.2 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.2.* Safari/*] +Parent=Chrome 0.2 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.2.* Safari/*] +Parent=Chrome 0.2 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.3 + +[Chrome 0.3] +Parent=DefaultProperties +Browser=Chrome +Version=0.3 +MinorVer=3 +Beta=true +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.3.* Safari/*] +Parent=Chrome 0.3 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.3.* Safari/*] +Parent=Chrome 0.3 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.3.* Safari/*] +Parent=Chrome 0.3 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.4 + +[Chrome 0.4] +Parent=DefaultProperties +Browser=Chrome +Version=0.4 +MinorVer=4 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.4.* Safari/*] +Parent=Chrome 0.4 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.4.* Safari/*] +Parent=Chrome 0.4 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.4.* Safari/*] +Parent=Chrome 0.4 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 0.5 + +[Chrome 0.5] +Parent=DefaultProperties +Browser=Chrome +Version=0.5 +MinorVer=5 +Beta=true +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.5.* Safari/*] +Parent=Chrome 0.5 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.5.* Safari/*] +Parent=Chrome 0.5 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/0.5.* Safari/*] +Parent=Chrome 0.5 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 1.0 + +[Chrome 1.0] +Parent=DefaultProperties +Browser=Chrome +Version=1.0 +MajorVer=1 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*] +Parent=Chrome 1.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*] +Parent=Chrome 1.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*] +Parent=Chrome 1.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*] +Parent=Chrome 1.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; U; Windows NT 7.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/1.0.* Safari/*] +Parent=Chrome 1.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 2.0 + +[Chrome 2.0] +Parent=DefaultProperties +Browser=Chrome +Version=2.0 +MajorVer=2 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*] +Parent=Chrome 2.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*] +Parent=Chrome 2.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*] +Parent=Chrome 2.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*] +Parent=Chrome 2.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; U; Windows NT 7.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/2.0.* Safari/*] +Parent=Chrome 2.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 3.0 + +[Chrome 3.0] +Parent=DefaultProperties +Browser=Chrome +Version=3.0 +MajorVer=3 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*] +Parent=Chrome 3.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*] +Parent=Chrome 3.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*] +Parent=Chrome 3.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*] +Parent=Chrome 3.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; U; Windows NT 7.0; *) AppleWebKit/* (KHTML, like Gecko) Chrome/3.0.* Safari/*] +Parent=Chrome 3.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Google Code + +[Google Code] +Parent=DefaultProperties +Browser=Google Code +Tables=true +Cookies=true +JavaApplets=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 0.2 + +[Iron 0.2] +Parent=DefaultProperties +Browser=Iron +Version=0.2 +MinorVer=2 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.2.* Safari/*] +Parent=Iron 0.2 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.2.* Safari/*] +Parent=Iron 0.2 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.2.* Safari/*] +Parent=Iron 0.2 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 0.3 + +[Iron 0.3] +Parent=DefaultProperties +Browser=Iron +Version=0.3 +MinorVer=3 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.3.* Safari/*] +Parent=Iron 0.3 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.3.* Safari/*] +Parent=Iron 0.3 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.3.* Safari/*] +Parent=Iron 0.3 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iron 0.4 + +[Iron 0.4] +Parent=DefaultProperties +Browser=Iron +Version=0.4 +MinorVer=4 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.4.* Safari/*] +Parent=Iron 0.4 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.4.* Safari/*] +Parent=Iron 0.4 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *) AppleWebKit/* (KHTML, like Gecko) Iron/0.4.* Safari/*] +Parent=Iron 0.4 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iPod + +[iPod] +Parent=DefaultProperties +Browser=iPod +Platform=iPhone OSX +isMobileDevice=true + +[Mozilla/5.0 (iPod; U; *Mac OS X; *) AppleWebKit/* (*) Version/3.0 Mobile/* Safari/*] +Parent=iPod +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=MacOSX + +[Mozilla/5.0 (iPod; U; CPU iPhone OS 2_2 like Mac OS X; en-us) AppleWebKit/* (KHTML, like Gecko) Mobile/*] +Parent=iPod + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iTunes + +[iTunes] +Parent=DefaultProperties +Browser=iTunes +Platform=iPhone OSX + +[iTunes/* (Windows; ?)] +Parent=iTunes +Browser=iTunes +Platform=Win32 +Win32=true + +[MOT-* iTunes/* MIB/* Profile/MIDP-* Configuration/CLDC-* UP.Link/*] +Parent=iTunes + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Media Players + +[Media Players] +Parent=DefaultProperties +Browser=Media Players +Cookies=true + +[Microsoft NetShow(TM) Player with RealVideo(R)] +Parent=Media Players +Browser=Microsoft NetShow + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; *) AppleWebKit/* RealPlayer] +Parent=Media Players +Browser=RealPlayer +Platform=MacOSX + +[MPlayer 0.9*] +Parent=Media Players +Browser=MPlayer +Version=0.9 +MajorVer=0 +MinorVer=9 + +[MPlayer 1.*] +Parent=Media Players +Browser=MPlayer +Version=1.0 +MajorVer=1 +MinorVer=0 + +[MPlayer HEAD CVS] +Parent=Media Players +Browser=MPlayer + +[RealPlayer*] +Parent=Media Players +Browser=RealPlayer + +[RMA/*] +Parent=Media Players +Browser=RMA + +[VLC media player*] +Parent=Media Players +Browser=VLC + +[vobsub] +Parent=Media Players +Browser=vobsub +isBanned=true + +[WinampMPEG/*] +Parent=Media Players +Browser=WinAmp + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Nintendo + +[Nintendo Wii] +Parent=DefaultProperties +Browser= +isMobileDevice=true + +[Opera/* (Nintendo DSi; Opera/*; *; *)] +Parent=Nintendo Wii +Browser=DSi + +[Opera/* (Nintendo Wii; U; *)] +Parent=Nintendo Wii +Browser=Wii + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Windows Media Player + +[Windows Media Player] +Parent=DefaultProperties +Browser=Windows Media Player +Cookies=true + +[NSPlayer/10.*] +Parent=Windows Media Player +Version=10.0 +MajorVer=10 +MinorVer=0 + +[NSPlayer/11.*] +Parent=Windows Media Player +Browser=Windows Media Player +Version=11.0 +MajorVer=11 +MinorVer=0 + +[NSPlayer/4.*] +Parent=Windows Media Player +Browser=Windows Media Player +Version=4.0 +MajorVer=4 +MinorVer=0 + +[NSPlayer/7.*] +Parent=Windows Media Player +Browser=Windows Media Player +Version=7.0 +MajorVer=7 +MinorVer=0 + +[NSPlayer/8.*] +Parent=Windows Media Player +Browser=Windows Media Player +Version=8.0 +MajorVer=8 +MinorVer=0 + +[NSPlayer/9.*] +Parent=Windows Media Player +Browser=Windows Media Player +Version=9.0 +MajorVer=9 +MinorVer=0 + +[Windows-Media-Player/10.*] +Parent=Windows Media Player +Browser=Windows-Media-Player +Version=10.0 +MajorVer=10 +MinorVer=0 +Win32=true + +[Windows-Media-Player/11.*] +Parent=Windows Media Player +Version=11.0 +MajorVer=11 +MinorVer=0 +Win32=true + +[Windows-Media-Player/7.*] +Parent=Windows Media Player +Browser=Windows Media Player +Version=7.0 +MajorVer=7 +MinorVer=0 +Win32=true + +[Windows-Media-Player/8.*] +Parent=Windows Media Player +Browser=Windows Media Player +Version=8.0 +MajorVer=8 +MinorVer=0 +Win32=true + +[Windows-Media-Player/9.*] +Parent=Windows Media Player +Version=9.0 +MajorVer=9 +MinorVer=0 +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Zune + +[Zune] +Parent=DefaultProperties +Browser=Zune +Cookies=true + +[Mozilla/4.0 (compatible; MSIE ?.0; *Zune 2.0*)*] +Parent=Zune +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/4.0 (compatible; MSIE ?.0; *Zune 2.5*)*] +Parent=Zune +Version=2.5 +MajorVer=2 +MinorVer=5 + +[Mozilla/4.0 (compatible; MSIE ?.0; *Zune 3.0*)*] +Parent=Zune +Version=3.0 +MajorVer=3 +MinorVer=0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.0 + +[QuickTime 7.0] +Parent=DefaultProperties +Browser=QuickTime +Version=7.0 +MajorVer=7 +Cookies=true + +[QuickTime (qtver=7.0*;cpu=PPC;os=Mac 10.*)] +Parent=QuickTime 7.0 +Platform=MacOSX + +[QuickTime (qtver=7.0*;cpu=PPC;os=Mac 9.*)] +Parent=QuickTime 7.0 +Platform=MacPPC + +[QuickTime (qtver=7.0*;os=Windows 95*)] +Parent=QuickTime 7.0 +Platform=Win95 +Win32=true + +[QuickTime (qtver=7.0*;os=Windows 98*)] +Parent=QuickTime 7.0 +Platform=Win98 +Win32=true + +[QuickTime (qtver=7.0*;os=Windows Me*)] +Parent=QuickTime 7.0 +Platform=WinME +Win32=true + +[QuickTime (qtver=7.0*;os=Windows NT 4.0*)] +Parent=QuickTime 7.0 +Platform=WinNT +Win32=true + +[QuickTime (qtver=7.0*;os=Windows NT 5.0*)] +Parent=QuickTime 7.0 +Platform=Win2000 +Win32=true + +[QuickTime (qtver=7.0*;os=Windows NT 5.1*)] +Parent=QuickTime 7.0 +Platform=WinXP +Win32=true + +[QuickTime (qtver=7.0*;os=Windows NT 5.2*)] +Parent=QuickTime 7.0 +Platform=Win2003 +Win32=true + +[QuickTime/7.0.* (qtver=7.0.*;*;os=Mac 10.*)*] +Parent=QuickTime 7.0 +Platform=MacOSX + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.1 + +[QuickTime 7.1] +Parent=DefaultProperties +Browser=QuickTime +Version=7.1 +MajorVer=7 +MinorVer=1 +Cookies=true + +[QuickTime (qtver=7.1*;cpu=PPC;os=Mac 10.*)] +Parent=QuickTime 7.1 +Platform=MacOSX + +[QuickTime (qtver=7.1*;cpu=PPC;os=Mac 9.*)] +Parent=QuickTime 7.1 +Platform=MacPPC + +[QuickTime (qtver=7.1*;os=Windows 98*)] +Parent=QuickTime 7.1 +Platform=Win98 +Win32=true + +[QuickTime (qtver=7.1*;os=Windows NT 4.0*)] +Parent=QuickTime 7.1 +Platform=WinNT +Win32=true + +[QuickTime (qtver=7.1*;os=Windows NT 5.0*)] +Parent=QuickTime 7.1 +Platform=Win2000 +Win32=true + +[QuickTime (qtver=7.1*;os=Windows NT 5.1*)] +Parent=QuickTime 7.1 +Platform=WinXP +Win32=true + +[QuickTime (qtver=7.1*;os=Windows NT 5.2*)] +Parent=QuickTime 7.1 +Platform=Win2003 +Win32=true + +[QuickTime/7.1.* (qtver=7.1.*;*;os=Mac 10.*)*] +Parent=QuickTime 7.1 +Platform=MacOSX + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.2 + +[QuickTime 7.2] +Parent=DefaultProperties +Browser=QuickTime +Version=7.2 +MajorVer=7 +MinorVer=2 +Platform=MacOSX +Cookies=true + +[QuickTime (qtver=7.2*;cpu=PPC;os=Mac 10.*)] +Parent=QuickTime 7.2 +Platform=MacOSX + +[QuickTime (qtver=7.2*;cpu=PPC;os=Mac 9.*)] +Parent=QuickTime 7.2 +Platform=MacPPC + +[QuickTime (qtver=7.2*;os=Windows 98*)] +Parent=QuickTime 7.2 +Platform=Win98 +Win32=true + +[QuickTime (qtver=7.2*;os=Windows NT 4.0*)] +Parent=QuickTime 7.2 +Platform=WinNT +Win32=true + +[QuickTime (qtver=7.2*;os=Windows NT 5.0*)] +Parent=QuickTime 7.2 +Platform=Win2000 +Win32=true + +[QuickTime (qtver=7.2*;os=Windows NT 5.1*)] +Parent=QuickTime 7.2 +Platform=WinXP +Win32=true + +[QuickTime (qtver=7.2*;os=Windows NT 5.2*)] +Parent=QuickTime 7.2 +Platform=Win2003 +Win32=true + +[QuickTime/7.2.* (qtver=7.2.*;*;os=Mac 10.*)*] +Parent=QuickTime 7.2 +Platform=MacOSX + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.3 + +[QuickTime 7.3] +Parent=DefaultProperties +Browser=QuickTime +Version=7.3 +MajorVer=7 +MinorVer=3 +Platform=MacOSX +Cookies=true + +[QuickTime (qtver=7.3*;cpu=PPC;os=Mac 10.*)] +Parent=QuickTime 7.3 +Platform=MacOSX + +[QuickTime (qtver=7.3*;cpu=PPC;os=Mac 9.*)] +Parent=QuickTime 7.3 +Platform=MacPPC + +[QuickTime (qtver=7.3*;os=Windows 98*)] +Parent=QuickTime 7.3 +Platform=Win98 +Win32=true + +[QuickTime (qtver=7.3*;os=Windows NT 4.0*)] +Parent=QuickTime 7.3 +Platform=WinNT +Win32=true + +[QuickTime (qtver=7.3*;os=Windows NT 5.0*)] +Parent=QuickTime 7.3 +Platform=Win2000 +Win32=true + +[QuickTime (qtver=7.3*;os=Windows NT 5.1*)] +Parent=QuickTime 7.3 +Platform=WinXP +Win32=true + +[QuickTime (qtver=7.3*;os=Windows NT 5.2*)] +Parent=QuickTime 7.3 +Platform=Win2003 +Win32=true + +[QuickTime/7.3.* (qtver=7.3.*;*;os=Mac 10.*)*] +Parent=QuickTime 7.3 +Platform=MacOSX + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; QuickTime 7.4 + +[QuickTime 7.4] +Parent=DefaultProperties +Browser=QuickTime +Version=7.4 +MajorVer=7 +MinorVer=4 +Platform=MacOSX +Cookies=true + +[QuickTime (qtver=7.4*;cpu=PPC;os=Mac 10.*)] +Parent=QuickTime 7.4 +Platform=MacOSX + +[QuickTime (qtver=7.4*;cpu=PPC;os=Mac 9.*)] +Parent=QuickTime 7.4 +Platform=MacPPC + +[QuickTime (qtver=7.4*;os=Windows 98*)] +Parent=QuickTime 7.4 +Platform=Win98 +Win32=true + +[QuickTime (qtver=7.4*;os=Windows NT 4.0*)] +Parent=QuickTime 7.4 +Platform=WinNT +Win32=true + +[QuickTime (qtver=7.4*;os=Windows NT 5.0*)] +Parent=QuickTime 7.4 +Platform=Win2000 +Win32=true + +[QuickTime (qtver=7.4*;os=Windows NT 5.1*)] +Parent=QuickTime 7.4 +Platform=WinXP +Win32=true + +[QuickTime (qtver=7.4*;os=Windows NT 5.2*)] +Parent=QuickTime 7.4 +Platform=Win2003 +Win32=true + +[QuickTime/7.4.* (qtver=7.4.*;*;os=Mac 10.*)*] +Parent=QuickTime 7.4 +Platform=MacOSX + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Google Android + +[Android] +Parent=DefaultProperties +Browser=Android +Frames=true +Tables=true +Cookies=true +JavaScript=true +isMobileDevice=true + +[Mozilla/5.0 (Linux; U; Android *; *) AppleWebKit/* (KHTML, like Gecko) Safari/*] +Parent=Android +Browser=Android +Platform=Linux +isMobileDevice=true + +[Mozilla/5.0 (Linux; U; Android *; *) AppleWebKit/* (KHTML, like Gecko) Version/3.0.* Mobile Safari/*] +Parent=Android +Browser=Android +Platform=Linux +isMobileDevice=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BlackBerry + +[BlackBerry] +Parent=DefaultProperties +Browser=BlackBerry +Frames=true +Tables=true +Cookies=true +JavaScript=true +isMobileDevice=true + +[*BlackBerry*] +Parent=BlackBerry + +[*BlackBerrySimulator/*] +Parent=BlackBerry + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Handspring Blazer + +[Blazer] +Parent=DefaultProperties +Browser=Handspring Blazer +Platform=Palm +Frames=true +Tables=true +Cookies=true +isMobileDevice=true + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows 95; PalmSource; Blazer 3.0) 16;160x160] +Parent=Blazer +Version=3.0 +MajorVer=3 +MinorVer=0 + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.0) 16;320x448] +Parent=Blazer +Version=4.0 +MajorVer=4 +MinorVer=0 + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.1) 16;320x320] +Parent=Blazer +Version=4.1 +MajorVer=4 +MinorVer=1 + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.2) 16;320x320] +Parent=Blazer +Version=4.2 +MajorVer=4 +MinorVer=2 + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.4) 16;320x320] +Parent=Blazer +Version=4.4 +MajorVer=4 +MinorVer=4 + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; PalmSource/*; Blazer/4.5) 16;320x320] +Parent=Blazer +Version=4.5 +MajorVer=4 +MinorVer=5 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DoCoMo + +[DoCoMo] +Parent=DefaultProperties +Browser=DoCoMo +Frames=true +Tables=true +Cookies=true +JavaScript=true +isMobileDevice=true + +[DoCoMo/1.0*] +Parent=DoCoMo +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WAP + +[DoCoMo/2.0*] +Parent=DoCoMo +Version=2.0 +MajorVer=2 +MinorVer=0 +Platform=WAP + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IEMobile + +[IEMobile] +Parent=DefaultProperties +Browser=IEMobile +Platform=WinCE +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +VBScript=true +JavaScript=true +ActiveXControls=true +isMobileDevice=true +CssVersion=2 +supportsCSS=true + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 6.*)*] +Parent=IEMobile +Version=6.0 +MajorVer=6 +MinorVer=0 + +[Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.*)*] +Parent=IEMobile +Version=7.0 +MajorVer=7 +MinorVer=0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iPhone + +[iPhone] +Parent=DefaultProperties +Browser=iPhone +Platform=iPhone OSX +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +isMobileDevice=true +CssVersion=3 +supportsCSS=true + +[Mozilla/4.0 (iPhone; *)] +Parent=iPhone + +[Mozilla/4.0 (iPhone; U; CPU like Mac OS X; *)] +Parent=iPhone + +[Mozilla/5.0 (iPhone Simulator; U; CPU iPhone OS 2_* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko) Version/3.1* Mobile/* Safari/*] +Parent=iPhone +Browser=iPhone Simulator +Version=3.1 +MajorVer=3 +MinorVer=1 + +[Mozilla/5.0 (iPhone Simulator; U; CPU iPhone OS 2_0_1 like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko) Version/3.1* Mobile/* Safari/*] +Parent=iPhone +Browser=iPhone Simulator +Version=3.1 +MajorVer=3 +MinorVer=1 + +[Mozilla/5.0 (iPhone Simulator; U; CPU iPhone OS 2_1 like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko) Version/3.1* Mobile/* Safari/*] +Parent=iPhone +Browser=iPhone Simulator +Version=3.1 +MajorVer=3 +MinorVer=1 + +[Mozilla/5.0 (iPhone)] +Parent=iPhone + +[Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)] +Parent=iPhone +Version=3.1 +MajorVer=3 +MinorVer=1 + +[Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko) Version/3.1* Mobile/* Safari/*] +Parent=iPhone +Version=3.1 +MajorVer=3 +MinorVer=1 + +[Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko) Version/3.1* Mobile/* Safari/*] +Parent=iPhone +Version=3.1 +MajorVer=3 +MinorVer=1 + +[Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0_2 like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)] +Parent=iPhone + +[Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_1 like Mac OS X; *)*] +Parent=iPhone + +[Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_2_1 like Mac OS X; *)] +Parent=iPhone + +[Mozilla/5.0 (iPhone; U; CPU like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko) Version/3.0 Mobile/* Safari/*] +Parent=iPhone +Version=3.0 +MajorVer=3 +MinorVer=0 + +[Mozilla/5.0 (iPod; U; *Mac OS X; *) AppleWebKit/* (*) Version/* Mobile/*] +Parent=iPhone +Browser=iTouch + +[Mozilla/5.0 (iPod; U; CPU iPhone OS 2_2* like Mac OS X; *)*] +Parent=iPhone +Browser=iTouch +Version=2.2 +MajorVer=2 +MinorVer=2 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; KDDI + +[KDDI] +Parent=DefaultProperties +Browser=KDDI +Frames=true +Tables=true +Cookies=true +BackgroundSounds=true +VBScript=true +JavaScript=true +ActiveXControls=true +isMobileDevice=true +CssVersion=1 +supportsCSS=true + +[KDDI-* UP.Browser/* (GUI) MMP/*] +Parent=KDDI + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Miscellaneous Mobile + +[Miscellaneous Mobile] +Parent=DefaultProperties +Browser= +IFrames=true +Tables=true +Cookies=true +JavaScript=true +isMobileDevice=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (X11; *; CentOS; *) AppleWebKit/* (KHTML, like Gecko) Bolt/0.* Version/3.0 Safari/*] +Parent=Miscellaneous Mobile +Browser=Bolt + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Motorola Internet Browser + +[Motorola Internet Browser] +Parent=DefaultProperties +Browser=Motorola Internet Browser +Frames=true +Tables=true +Cookies=true +isMobileDevice=true + +[MOT-*/*] +Parent=Motorola Internet Browser + +[MOT-1*/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-8700_/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-A-0A/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-A-2B/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-A-88/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-C???/* MIB/*] +Parent=Motorola Internet Browser + +[MOT-GATW_/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-L6/* MIB/*] +Parent=Motorola Internet Browser + +[MOT-L7/* MIB/*] +Parent=Motorola Internet Browser + +[MOT-M*/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-MP*/* Mozilla/* (compatible; MSIE *; Windows CE; *)] +Parent=Motorola Internet Browser +Win32=true + +[MOT-MP*/* Mozilla/4.0 (compatible; MSIE *; Windows CE; *)] +Parent=Motorola Internet Browser +Win32=true + +[MOT-SAP4_/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-T*/*] +Parent=Motorola Internet Browser + +[MOT-T7*/* MIB/*] +Parent=Motorola Internet Browser + +[MOT-T721*] +Parent=Motorola Internet Browser + +[MOT-TA02/* MIB/*] +Parent=Motorola Internet Browser + +[MOT-V*/*] +Parent=Motorola Internet Browser + +[MOT-V*/* MIB/*] +Parent=Motorola Internet Browser + +[MOT-V*/* UP.Browser/*] +Parent=Motorola Internet Browser + +[MOT-V3/* MIB/*] +Parent=Motorola Internet Browser + +[MOT-V4*/* MIB/*] +Parent=Motorola Internet Browser + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MSN Mobile Proxy + +[MSN Mobile Proxy] +Parent=DefaultProperties +Browser=MSN Mobile Proxy +Win32=true +Frames=true +Tables=true +Cookies=true +JavaScript=true +ActiveXControls=true +isMobileDevice=true + +[Mozilla/* (compatible; MSIE *; Windows*; MSN Mobile Proxy)] +Parent=MSN Mobile Proxy + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NetFront + +[NetFront] +Parent=DefaultProperties +Browser=NetFront +Frames=true +Tables=true +Cookies=true +JavaScript=true +isMobileDevice=true + +[*NetFront/*] +Parent=NetFront + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Nokia + +[Nokia] +Parent=DefaultProperties +Browser=Nokia +Tables=true +Cookies=true +isMobileDevice=true + +[*Nokia*/*] +Parent=Nokia + +[Mozilla/* (SymbianOS/*; ?; *) AppleWebKit/* (KHTML, like Gecko) Safari/*] +Parent=Nokia +Platform=SymbianOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Openwave Mobile Browser + +[Openwave Mobile Browser] +Parent=DefaultProperties +Browser=Openwave Mobile Browser +Alpha=true +Win32=true +Win64=true +Frames=true +Tables=true +Cookies=true +isMobileDevice=true + +[*UP.Browser/*] +Parent=Openwave Mobile Browser + +[*UP.Link/*] +Parent=Openwave Mobile Browser + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera Mini + +[Opera Mini] +Parent=DefaultProperties +Browser=Opera Mini +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true +isMobileDevice=true + +[Opera/* (J2ME/MIDP; Opera Mini/1.0*)*] +Parent=Opera Mini +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Opera/* (J2ME/MIDP; Opera Mini/1.1*)*] +Parent=Opera Mini +Version=1.1 +MajorVer=1 +MinorVer=1 + +[Opera/* (J2ME/MIDP; Opera Mini/1.2*)*] +Parent=Opera Mini +Version=1.2 +MajorVer=1 +MinorVer=2 + +[Opera/* (J2ME/MIDP; Opera Mini/2.0*)*] +Parent=Opera Mini +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Opera/* (J2ME/MIDP; Opera Mini/3.0*)*] +Parent=Opera Mini +Version=3.0 +MajorVer=3 +MinorVer=0 + +[Opera/* (J2ME/MIDP; Opera Mini/3.1*)*] +Parent=Opera Mini +Version=3.1 +MajorVer=3 +MinorVer=1 + +[Opera/* (J2ME/MIDP; Opera Mini/4.0*)*] +Parent=Opera Mini +Version=4.0 +MajorVer=4 +MinorVer=0 + +[Opera/* (J2ME/MIDP; Opera Mini/4.1*)*] +Parent=Opera Mini +Version=4.1 +MajorVer=4 +MinorVer=1 + +[Opera/* (J2ME/MIDP; Opera Mini/4.2*)*] +Parent=Opera Mini +Version=4.2 +MajorVer=4 +MinorVer=2 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera Mobile + +[Opera Mobile] +Parent=DefaultProperties +Browser=Opera Mobi +Frames=true +Tables=true +Cookies=true +isMobileDevice=true + +[Opera/9.5 (Microsoft Windows; PPC; *Opera Mobile/*)] +Parent=Opera Mobile +Version=9.5 +MajorVer=9 +MinorVer=5 + +[Opera/9.5 (Microsoft Windows; PPC; Opera Mobi/*)] +Parent=Opera Mobile +Version=9.5 +MajorVer=9 +MinorVer=5 + +[Opera/9.51 Beta (Microsoft Windows; PPC; Opera Mobi/*)*] +Parent=Opera Mobile +Version=9.51 +MajorVer=9 +MinorVer=51 +Beta=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Playstation + +[Playstation] +Parent=DefaultProperties +Browser=Playstation +Platform=WAP +Frames=true +Tables=true +Cookies=true +isMobileDevice=true + +[Mozilla/* (PLAYSTATION *; *)] +Parent=Playstation +Browser=PlayStation 3 +Frames=false + +[Mozilla/* (PSP (PlayStation Portable); *)] +Parent=Playstation + +[Sony PS2 (Linux)] +Parent=Playstation +Browser=Sony PS2 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Pocket PC + +[Pocket PC] +Parent=DefaultProperties +Browser=Pocket PC +Platform=WinCE +Win32=true +Frames=true +Tables=true +Cookies=true +JavaScript=true +ActiveXControls=true +isMobileDevice=true +CssVersion=1 +supportsCSS=true + +[*(compatible; MSIE *.*; Windows CE; PPC; *)] +Parent=Pocket PC + +[HTC-*/* Mozilla/* (compatible; MSIE *.*; Windows CE*)*] +Parent=Pocket PC +Win32=true + +[Mozilla/* (compatible; MSPIE *.*; *Windows CE*)*] +Parent=Pocket PC +Win32=true + +[T-Mobile* Mozilla/* (compatible; MSIE *.*; Windows CE; *)] +Parent=Pocket PC + +[Vodafone* Mozilla/* (compatible; MSIE *.*; Windows CE; *)*] +Parent=Pocket PC + +[Windows CE (Pocket PC) - Version *.*] +Parent=Pocket PC +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SEMC Browser + +[SEMC Browser] +Parent=DefaultProperties +Browser=SEMC Browser +Platform=JAVA +Tables=true +isMobileDevice=true +CssVersion=1 +supportsCSS=true + +[*SEMC-Browser/*] +Parent=SEMC Browser + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SonyEricsson + +[SonyEricsson] +Parent=DefaultProperties +Browser=SonyEricsson +Frames=true +Tables=true +Cookies=true +JavaScript=true +isMobileDevice=true +CssVersion=1 +supportsCSS=true + +[*Ericsson*] +Parent=SonyEricsson + +[*SonyEricsson*] +Parent=SonyEricsson + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netbox + +[Netbox] +Parent=DefaultProperties +Browser=Netbox +Frames=true +Tables=true +Cookies=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[Mozilla/3.01 (compatible; Netbox/*; Linux*)] +Parent=Netbox +Browser=Netbox +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; PowerTV + +[PowerTV] +Parent=DefaultProperties +Browser=PowerTV +Platform=PowerTV +Frames=true +Tables=true +Cookies=true +JavaScript=true + +[Mozilla/4.0 PowerTV/1.5 (Compatible; Spyglass DM 3.2.1, EXPLORER)] +Parent=PowerTV +Version=1.5 +MajorVer=1 +MinorVer=5 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; WebTV/MSNTV + +[WebTV] +Parent=DefaultProperties +Browser=WebTV/MSNTV +Platform=WebTV +Frames=true +Tables=true +Cookies=true +JavaScript=true + +[Mozilla/3.0 WebTV/1.*(compatible; MSIE 2.0)] +Parent=WebTV +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/4.0 WebTV/2.0*(compatible; MSIE 3.0)] +Parent=WebTV +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/4.0 WebTV/2.1*(compatible; MSIE 3.0)] +Parent=WebTV +Version=2.1 +MajorVer=2 +MinorVer=1 + +[Mozilla/4.0 WebTV/2.2*(compatible; MSIE 3.0)] +Parent=WebTV +Version=2.2 +MajorVer=2 +MinorVer=2 + +[Mozilla/4.0 WebTV/2.3*(compatible; MSIE 3.0)] +Parent=WebTV +Version=2.3 +MajorVer=2 +MinorVer=3 + +[Mozilla/4.0 WebTV/2.4*(compatible; MSIE 3.0)] +Parent=WebTV +Version=2.4 +MajorVer=2 +MinorVer=4 + +[Mozilla/4.0 WebTV/2.5*(compatible; MSIE 4.0)] +Parent=WebTV +Version=2.5 +MajorVer=2 +MinorVer=5 +CssVersion=1 +supportsCSS=true + +[Mozilla/4.0 WebTV/2.6*(compatible; MSIE 4.0)] +Parent=WebTV +Version=2.6 +MajorVer=2 +MinorVer=6 +CssVersion=1 +supportsCSS=true + +[Mozilla/4.0 WebTV/2.7*(compatible; MSIE 4.0)] +Parent=WebTV +Version=2.7 +MajorVer=2 +MinorVer=7 +CssVersion=1 +supportsCSS=true + +[Mozilla/4.0 WebTV/2.8*(compatible; MSIE 4.0)] +Parent=WebTV +Version=2.8 +MajorVer=2 +MinorVer=8 +JavaApplets=true +CssVersion=1 +supportsCSS=true + +[Mozilla/4.0 WebTV/2.9*(compatible; MSIE 4.0)] +Parent=WebTV +Version=2.9 +MajorVer=2 +MinorVer=9 +JavaApplets=true +CssVersion=1 +supportsCSS=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Amaya + +[Amaya] +Parent=DefaultProperties +Browser=Amaya +Tables=true +Cookies=true + +[amaya/7.*] +Parent=Amaya +Version=7.0 +MajorVer=7 +MinorVer=0 + +[amaya/8.0*] +Parent=Amaya +Version=8.0 +MajorVer=8 +MinorVer=0 +CssVersion=2 +supportsCSS=true + +[amaya/8.1*] +Parent=Amaya +Version=8.1 +MajorVer=8 +MinorVer=1 +CssVersion=2 +supportsCSS=true + +[amaya/8.2*] +Parent=Amaya +Version=8.2 +MajorVer=8 +MinorVer=2 +CssVersion=2 +supportsCSS=true + +[amaya/8.3*] +Parent=Amaya +Version=8.3 +MajorVer=8 +MinorVer=3 +CssVersion=2 +supportsCSS=true + +[amaya/8.4*] +Parent=Amaya +Version=8.4 +MajorVer=8 +MinorVer=4 +CssVersion=2 +supportsCSS=true + +[amaya/8.5*] +Parent=Amaya +Version=8.5 +MajorVer=8 +MinorVer=5 +CssVersion=2 +supportsCSS=true + +[amaya/8.6*] +Parent=Amaya +Version=8.6 +MajorVer=8 +MinorVer=6 +CssVersion=2 +supportsCSS=true + +[amaya/8.7*] +Parent=Amaya +Version=8.7 +MajorVer=8 +MinorVer=7 +CssVersion=2 +supportsCSS=true + +[amaya/8.8*] +Parent=Amaya +Version=8.8 +MajorVer=8 +MinorVer=8 +CssVersion=2 +supportsCSS=true + +[amaya/8.9*] +Parent=Amaya +Version=8.9 +MajorVer=8 +MinorVer=9 +CssVersion=2 +supportsCSS=true + +[amaya/9.0*] +Parent=Amaya +Version=9.0 +MajorVer=8 +MinorVer=0 +CssVersion=2 +supportsCSS=true + +[amaya/9.1*] +Parent=Amaya +Version=9.1 +MajorVer=9 +MinorVer=1 +CssVersion=2 +supportsCSS=true + +[amaya/9.2*] +Parent=Amaya +Version=9.2 +MajorVer=9 +MinorVer=2 +CssVersion=2 +supportsCSS=true + +[amaya/9.3*] +Parent=Amaya +Version=9.3 +MajorVer=9 +MinorVer=3 + +[amaya/9.4*] +Parent=Amaya +Version=9.4 +MajorVer=9 +MinorVer=4 + +[amaya/9.5*] +Parent=Amaya +Version=9.5 +MajorVer=9 +MinorVer=5 + +[Emacs-w3m/*] +Parent=Emacs/W3 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Links + +[Links] +Parent=DefaultProperties +Browser=Links +Frames=true +Tables=true + +[Links (0.9*; CYGWIN_NT-5.1*)] +Parent=Links +Browser=Links +Version=0.9 +MajorVer=0 +MinorVer=9 +Platform=WinXP + +[Links (0.9*; Darwin*)] +Parent=Links +Version=0.9 +MajorVer=0 +MinorVer=9 +Platform=MacPPC + +[Links (0.9*; FreeBSD*)] +Parent=Links +Browser=Links +Version=0.9 +MajorVer=0 +MinorVer=9 +Platform=FreeBSD + +[Links (0.9*; Linux*)] +Parent=Links +Browser=Links +Version=0.9 +MajorVer=0 +MinorVer=9 +Platform=Linux + +[Links (0.9*; OS/2*)] +Parent=Links +Browser=Links +Version=0.9 +MajorVer=0 +MinorVer=9 +Platform=OS/2 + +[Links (0.9*; Unix*)] +Parent=Links +Browser=Links +Version=0.9 +MajorVer=0 +MinorVer=9 +Platform=Unix + +[Links (0.9*; Win32*)] +Parent=Links +Browser=Links +Version=0.9 +MajorVer=0 +MinorVer=9 +Platform=Win32 +Win32=true + +[Links (1.0*; CYGWIN_NT-5.1*)] +Parent=Links +Browser=Links +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WinXP + +[Links (1.0*; FreeBSD*)] +Parent=Links +Browser=Links +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=FreeBSD + +[Links (1.0*; Linux*)] +Parent=Links +Browser=Links +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Linux + +[Links (1.0*; OS/2*)] +Parent=Links +Browser=Links +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=OS/2 + +[Links (1.0*; Unix*)] +Parent=Links +Browser=Links +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Unix + +[Links (1.0*; Win32*)] +Parent=Links +Browser=Links +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win32 +Win32=true + +[Links (2.0*; Linux*)] +Parent=Links +Browser=Links +Version=2.0 +MajorVer=2 +MinorVer=0 +Platform=Linux + +[Links (2.1*; FreeBSD*)] +Parent=Links +Browser=Links +Version=2.1 +MajorVer=2 +MinorVer=1 +Platform=FreeBSD + +[Links (2.1*; Linux *)] +Parent=Links +Browser=Links +Version=2.1 +MajorVer=2 +MinorVer=1 +Platform=Linux + +[Links (2.1*; OpenBSD*)] +Parent=Links +Browser=Links +Version=2.1 +MajorVer=2 +MinorVer=1 +Platform=OpenBSD + +[Links (2.2*; FreeBSD*)] +Parent=Links +Version=2.2 +MajorVer=2 +MinorVer=2 +Platform=FreeBSD + +[Links (2.2*; Linux *)] +Parent=Links +Version=2.2 +MajorVer=2 +MinorVer=2 +Platform=Linux + +[Links (2.2*; OpenBSD*)] +Parent=Links +Version=2.2 +MajorVer=2 +MinorVer=2 +Platform=OpenBSD + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Lynx + +[Lynx] +Parent=DefaultProperties +Browser=Lynx +Frames=true +Tables=true + +[Lynx *] +Parent=Lynx +Browser=Lynx + +[Lynx/2.3*] +Parent=Lynx +Browser=Lynx +Version=2.3 +MajorVer=2 +MinorVer=3 + +[Lynx/2.4*] +Parent=Lynx +Browser=Lynx +Version=2.4 +MajorVer=2 +MinorVer=4 + +[Lynx/2.5*] +Parent=Lynx +Browser=Lynx +Version=2.5 +MajorVer=2 +MinorVer=5 + +[Lynx/2.6*] +Parent=Lynx +Browser=Lynx +Version=2.6 +MajorVer=2 +MinorVer=6 + +[Lynx/2.7*] +Parent=Lynx +Browser=Lynx +Version=2.7 +MajorVer=2 +MinorVer=7 + +[Lynx/2.8*] +Parent=Lynx +Browser=Lynx +Version=2.8 +MajorVer=2 +MinorVer=8 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NCSA Mosaic + +[Mosaic] +Parent=DefaultProperties +Browser=Mosaic + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; w3m + +[w3m] +Parent=DefaultProperties +Browser=w3m +Frames=true +Tables=true + +[w3m/0.1*] +Parent=w3m +Browser=w3m +Version=0.1 +MajorVer=0 +MinorVer=1 + +[w3m/0.2*] +Parent=w3m +Browser=w3m +Version=0.2 +MajorVer=0 +MinorVer=2 + +[w3m/0.3*] +Parent=w3m +Browser=w3m +Version=0.3 +MajorVer=0 +MinorVer=3 + +[w3m/0.4*] +Parent=w3m +Browser=w3m +Version=0.4 +MajorVer=0 +MinorVer=4 +Cookies=true + +[w3m/0.5*] +Parent=w3m +Browser=w3m +Version=0.5 +MajorVer=0 +MinorVer=5 +Cookies=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.10 + +[ELinks 0.10] +Parent=DefaultProperties +Browser=ELinks +Version=0.10 +MinorVer=10 +Frames=true +Tables=true + +[ELinks (0.10*; *AIX*)] +Parent=ELinks 0.10 +Platform=AIX + +[ELinks (0.10*; *BeOS*)] +Parent=ELinks 0.10 +Platform=BeOS + +[ELinks (0.10*; *CygWin*)] +Parent=ELinks 0.10 +Platform=CygWin + +[ELinks (0.10*; *Darwin*)] +Parent=ELinks 0.10 +Platform=Darwin + +[ELinks (0.10*; *Digital Unix*)] +Parent=ELinks 0.10 +Platform=Digital Unix + +[ELinks (0.10*; *FreeBSD*)] +Parent=ELinks 0.10 +Platform=FreeBSD + +[ELinks (0.10*; *HPUX*)] +Parent=ELinks 0.10 +Platform=HP-UX + +[ELinks (0.10*; *IRIX*)] +Parent=ELinks 0.10 +Platform=IRIX + +[ELinks (0.10*; *Linux*)] +Parent=ELinks 0.10 +Platform=Linux + +[ELinks (0.10*; *NetBSD*)] +Parent=ELinks 0.10 +Platform=NetBSD + +[ELinks (0.10*; *OpenBSD*)] +Parent=ELinks 0.10 +Platform=OpenBSD + +[ELinks (0.10*; *OS/2*)] +Parent=ELinks 0.10 +Platform=OS/2 + +[ELinks (0.10*; *RISC*)] +Parent=ELinks 0.10 +Platform=RISC OS + +[ELinks (0.10*; *Solaris*)] +Parent=ELinks 0.10 +Platform=Solaris + +[ELinks (0.10*; *Unix*)] +Parent=ELinks 0.10 +Platform=Unix + +[ELinks/0.10* (*AIX*)] +Parent=ELinks 0.10 +Platform=AIX + +[ELinks/0.10* (*BeOS*)] +Parent=ELinks 0.10 +Platform=BeOS + +[ELinks/0.10* (*CygWin*)] +Parent=ELinks 0.10 +Platform=CygWin + +[ELinks/0.10* (*Darwin*)] +Parent=ELinks 0.10 +Platform=Darwin + +[ELinks/0.10* (*Digital Unix*)] +Parent=ELinks 0.10 +Platform=Digital Unix + +[ELinks/0.10* (*FreeBSD*)] +Parent=ELinks 0.10 +Platform=FreeBSD + +[ELinks/0.10* (*HPUX*)] +Parent=ELinks 0.10 +Platform=HP-UX + +[ELinks/0.10* (*IRIX*)] +Parent=ELinks 0.10 +Platform=IRIX + +[ELinks/0.10* (*Linux*)] +Parent=ELinks 0.10 +Platform=Linux + +[ELinks/0.10* (*NetBSD*)] +Parent=ELinks 0.10 +Platform=NetBSD + +[ELinks/0.10* (*OpenBSD*)] +Parent=ELinks 0.10 +Platform=OpenBSD + +[ELinks/0.10* (*OS/2*)] +Parent=ELinks 0.10 +Platform=OS/2 + +[ELinks/0.10* (*RISC*)] +Parent=ELinks 0.10 +Platform=RISC OS + +[ELinks/0.10* (*Solaris*)] +Parent=ELinks 0.10 +Platform=Solaris + +[ELinks/0.10* (*Unix*)] +Parent=ELinks 0.10 +Platform=Unix + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.11 + +[ELinks 0.11] +Parent=DefaultProperties +Browser=ELinks +Version=0.11 +MinorVer=11 +Frames=true +Tables=true + +[ELinks (0.11*; *AIX*)] +Parent=ELinks 0.11 +Platform=AIX + +[ELinks (0.11*; *BeOS*)] +Parent=ELinks 0.11 +Platform=BeOS + +[ELinks (0.11*; *CygWin*)] +Parent=ELinks 0.11 +Platform=CygWin + +[ELinks (0.11*; *Darwin*)] +Parent=ELinks 0.11 +Platform=Darwin + +[ELinks (0.11*; *Digital Unix*)] +Parent=ELinks 0.11 +Platform=Digital Unix + +[ELinks (0.11*; *FreeBSD*)] +Parent=ELinks 0.11 +Platform=FreeBSD + +[ELinks (0.11*; *HPUX*)] +Parent=ELinks 0.11 +Platform=HP-UX + +[ELinks (0.11*; *IRIX*)] +Parent=ELinks 0.11 +Platform=IRIX + +[ELinks (0.11*; *Linux*)] +Parent=ELinks 0.11 +Platform=Linux + +[ELinks (0.11*; *NetBSD*)] +Parent=ELinks 0.11 +Platform=NetBSD + +[ELinks (0.11*; *OpenBSD*)] +Parent=ELinks 0.11 +Platform=OpenBSD + +[ELinks (0.11*; *OS/2*)] +Parent=ELinks 0.11 +Platform=OS/2 + +[ELinks (0.11*; *RISC*)] +Parent=ELinks 0.11 +Platform=RISC OS + +[ELinks (0.11*; *Solaris*)] +Parent=ELinks 0.11 +Platform=Solaris + +[ELinks (0.11*; *Unix*)] +Parent=ELinks 0.11 +Platform=Unix + +[ELinks/0.11* (*AIX*)] +Parent=ELinks 0.11 +Platform=AIX + +[ELinks/0.11* (*BeOS*)] +Parent=ELinks 0.11 +Platform=BeOS + +[ELinks/0.11* (*CygWin*)] +Parent=ELinks 0.11 +Platform=CygWin + +[ELinks/0.11* (*Darwin*)] +Parent=ELinks 0.11 +Platform=Darwin + +[ELinks/0.11* (*Digital Unix*)] +Parent=ELinks 0.11 +Platform=Digital Unix + +[ELinks/0.11* (*FreeBSD*)] +Parent=ELinks 0.11 +Platform=FreeBSD + +[ELinks/0.11* (*HPUX*)] +Parent=ELinks 0.11 +Platform=HP-UX + +[ELinks/0.11* (*IRIX*)] +Parent=ELinks 0.11 +Platform=IRIX + +[ELinks/0.11* (*Linux*)] +Parent=ELinks 0.11 +Platform=Linux + +[ELinks/0.11* (*NetBSD*)] +Parent=ELinks 0.11 +Platform=NetBSD + +[ELinks/0.11* (*OpenBSD*)] +Parent=ELinks 0.11 +Platform=OpenBSD + +[ELinks/0.11* (*OS/2*)] +Parent=ELinks 0.11 +Platform=OS/2 + +[ELinks/0.11* (*RISC*)] +Parent=ELinks 0.11 +Platform=RISC OS + +[ELinks/0.11* (*Solaris*)] +Parent=ELinks 0.11 +Platform=Solaris + +[ELinks/0.11* (*Unix*)] +Parent=ELinks 0.11 +Platform=Unix + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.12 + +[ELinks 0.12] +Parent=DefaultProperties +Browser=ELinks +Version=0.12 +MinorVer=12 +Frames=true +Tables=true + +[ELinks (0.12*; *AIX*)] +Parent=ELinks 0.12 +Platform=AIX + +[ELinks (0.12*; *BeOS*)] +Parent=ELinks 0.12 +Platform=BeOS + +[ELinks (0.12*; *CygWin*)] +Parent=ELinks 0.12 +Platform=CygWin + +[ELinks (0.12*; *Darwin*)] +Parent=ELinks 0.12 +Platform=Darwin + +[ELinks (0.12*; *Digital Unix*)] +Parent=ELinks 0.12 +Platform=Digital Unix + +[ELinks (0.12*; *FreeBSD*)] +Parent=ELinks 0.12 +Platform=FreeBSD + +[ELinks (0.12*; *HPUX*)] +Parent=ELinks 0.12 +Platform=HP-UX + +[ELinks (0.12*; *IRIX*)] +Parent=ELinks 0.12 +Platform=IRIX + +[ELinks (0.12*; *Linux*)] +Parent=ELinks 0.12 +Platform=Linux + +[ELinks (0.12*; *NetBSD*)] +Parent=ELinks 0.12 +Platform=NetBSD + +[ELinks (0.12*; *OpenBSD*)] +Parent=ELinks 0.12 +Platform=OpenBSD + +[ELinks (0.12*; *OS/2*)] +Parent=ELinks 0.12 +Platform=OS/2 + +[ELinks (0.12*; *RISC*)] +Parent=ELinks 0.12 +Platform=RISC OS + +[ELinks (0.12*; *Solaris*)] +Parent=ELinks 0.12 +Platform=Solaris + +[ELinks (0.12*; *Unix*)] +Parent=ELinks 0.12 +Platform=Unix + +[ELinks/0.12* (*AIX*)] +Parent=ELinks 0.12 +Platform=AIX + +[ELinks/0.12* (*BeOS*)] +Parent=ELinks 0.12 +Platform=BeOS + +[ELinks/0.12* (*CygWin*)] +Parent=ELinks 0.12 +Platform=CygWin + +[ELinks/0.12* (*Darwin*)] +Parent=ELinks 0.12 +Platform=Darwin + +[ELinks/0.12* (*Digital Unix*)] +Parent=ELinks 0.12 +Platform=Digital Unix + +[ELinks/0.12* (*FreeBSD*)] +Parent=ELinks 0.12 +Platform=FreeBSD + +[ELinks/0.12* (*HPUX*)] +Parent=ELinks 0.12 +Platform=HP-UX + +[ELinks/0.12* (*IRIX*)] +Parent=ELinks 0.12 +Platform=IRIX + +[ELinks/0.12* (*Linux*)] +Parent=ELinks 0.12 +Platform=Linux + +[ELinks/0.12* (*NetBSD*)] +Parent=ELinks 0.12 +Platform=NetBSD + +[ELinks/0.12* (*OpenBSD*)] +Parent=ELinks 0.12 +Platform=OpenBSD + +[ELinks/0.12* (*OS/2*)] +Parent=ELinks 0.12 +Platform=OS/2 + +[ELinks/0.12* (*RISC*)] +Parent=ELinks 0.12 +Platform=RISC OS + +[ELinks/0.12* (*Solaris*)] +Parent=ELinks 0.12 +Platform=Solaris + +[ELinks/0.12* (*Unix*)] +Parent=ELinks 0.12 +Platform=Unix + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ELinks 0.9 + +[ELinks 0.9] +Parent=DefaultProperties +Browser=ELinks +Version=0.9 +MinorVer=9 +Frames=true +Tables=true + +[ELinks (0.9*; *AIX*)] +Parent=ELinks 0.9 +Platform=AIX + +[ELinks (0.9*; *BeOS*)] +Parent=ELinks 0.9 +Platform=BeOS + +[ELinks (0.9*; *CygWin*)] +Parent=ELinks 0.9 +Platform=CygWin + +[ELinks (0.9*; *Darwin*)] +Parent=ELinks 0.9 +Platform=Darwin + +[ELinks (0.9*; *Digital Unix*)] +Parent=ELinks 0.9 +Platform=Digital Unix + +[ELinks (0.9*; *FreeBSD*)] +Parent=ELinks 0.9 +Platform=FreeBSD + +[ELinks (0.9*; *HPUX*)] +Parent=ELinks 0.9 +Platform=HP-UX + +[ELinks (0.9*; *IRIX*)] +Parent=ELinks 0.9 +Platform=IRIX + +[ELinks (0.9*; *Linux*)] +Parent=ELinks 0.9 +Platform=Linux + +[ELinks (0.9*; *NetBSD*)] +Parent=ELinks 0.9 +Platform=NetBSD + +[ELinks (0.9*; *OpenBSD*)] +Parent=ELinks 0.9 +Platform=OpenBSD + +[ELinks (0.9*; *OS/2*)] +Parent=ELinks 0.9 +Platform=OS/2 + +[ELinks (0.9*; *RISC*)] +Parent=ELinks 0.9 +Platform=RISC OS + +[ELinks (0.9*; *Solaris*)] +Parent=ELinks 0.9 +Platform=Solaris + +[ELinks (0.9*; *Unix*)] +Parent=ELinks 0.9 +Platform=Unix + +[ELinks/0.9* (*AIX*)] +Parent=ELinks 0.9 +Platform=AIX + +[ELinks/0.9* (*BeOS*)] +Parent=ELinks 0.9 +Platform=BeOS + +[ELinks/0.9* (*CygWin*)] +Parent=ELinks 0.9 +Platform=CygWin + +[ELinks/0.9* (*Darwin*)] +Parent=ELinks 0.9 +Platform=Darwin + +[ELinks/0.9* (*Digital Unix*)] +Parent=ELinks 0.9 +Platform=Digital Unix + +[ELinks/0.9* (*FreeBSD*)] +Parent=ELinks 0.9 +Platform=FreeBSD + +[ELinks/0.9* (*HPUX*)] +Parent=ELinks 0.9 +Platform=HP-UX + +[ELinks/0.9* (*IRIX*)] +Parent=ELinks 0.9 +Platform=IRIX + +[ELinks/0.9* (*Linux*)] +Parent=ELinks 0.9 +Platform=Linux + +[ELinks/0.9* (*NetBSD*)] +Parent=ELinks 0.9 +Platform=NetBSD + +[ELinks/0.9* (*OpenBSD*)] +Parent=ELinks 0.9 +Platform=OpenBSD + +[ELinks/0.9* (*OS/2*)] +Parent=ELinks 0.9 +Platform=OS/2 + +[ELinks/0.9* (*RISC*)] +Parent=ELinks 0.9 +Platform=RISC OS + +[ELinks/0.9* (*Solaris*)] +Parent=ELinks 0.9 +Platform=Solaris + +[ELinks/0.9* (*Unix*)] +Parent=ELinks 0.9 +Platform=Unix + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AppleWebKit + +[AppleWebKit] +Parent=DefaultProperties +Browser=AppleWebKit +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (KHTML, like Gecko)] +Parent=AppleWebKit + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Camino + +[Camino] +Parent=DefaultProperties +Browser=Camino +Platform=MacOSX +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/0.7*] +Parent=Camino +Version=0.7 +MajorVer=0 +MinorVer=7 +Beta=true + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/0.8*] +Parent=Camino +Version=0.8 +MajorVer=0 +MinorVer=8 +Beta=true + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/0.9*] +Parent=Camino +Version=0.9 +MajorVer=0 +MinorVer=9 +Beta=true + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.0*] +Parent=Camino +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.2*] +Parent=Camino +Version=1.2 +MajorVer=1 +MinorVer=2 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.3*] +Parent=Camino +Version=1.3 +MajorVer=1 +MinorVer=3 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.4*] +Parent=Camino +Version=1.4 +MajorVer=1 +MinorVer=4 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.5*] +Parent=Camino +Version=1.5 +MajorVer=1 +MinorVer=5 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; *Mac OS X*) Gecko/* Camino/1.6*] +Parent=Camino +Version=1.6 +MajorVer=1 +MinorVer=6 +Platform=MacOSX + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chimera + +[Chimera] +Parent=DefaultProperties +Browser=Chimera +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true + +[Mozilla/5.0 (Macintosh; U; *Mac OS X*; *; rv:1.*) Gecko/* Chimera/*] +Parent=Chimera +Platform=MacOSX + +[Mozilla/5.0 Gecko/* Chimera/*] +Parent=Chimera + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Dillo + +[Dillo] +Parent=DefaultProperties +Browser=Dillo +Platform=Linux +Frames=true +IFrames=true +Tables=true +Cookies=true +CssVersion=2 +supportsCSS=true + +[Dillo/0.6*] +Parent=Dillo +Version=0.6 +MajorVer=0 +MinorVer=6 + +[Dillo/0.7*] +Parent=Dillo +Version=0.7 +MajorVer=0 +MinorVer=7 + +[Dillo/0.8*] +Parent=Dillo +Version=0.8 +MajorVer=0 +MinorVer=8 + +[Dillo/2.0] +Parent=Dillo +Version=2.0 +MajorVer=2 +MinorVer=0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Emacs/W3 + +[Emacs/W3] +Parent=DefaultProperties +Browser=Emacs/W3 +Frames=true +Tables=true +Cookies=true + +[Emacs/W3/2.* (Unix*] +Parent=Emacs/W3 +Version=2.0 +MajorVer=2 +MinorVer=0 +Platform=Unix + +[Emacs/W3/2.* (X11*] +Parent=Emacs/W3 +Version=2.0 +MajorVer=2 +MinorVer=0 +Platform=Linux + +[Emacs/W3/3.* (Unix*] +Parent=Emacs/W3 +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=Unix + +[Emacs/W3/3.* (X11*] +Parent=Emacs/W3 +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=Linux + +[Emacs/W3/4.* (Unix*] +Parent=Emacs/W3 +Version=4.0 +MajorVer=4 +MinorVer=0 +Platform=Unix + +[Emacs/W3/4.* (X11*] +Parent=Emacs/W3 +Version=4.0 +MajorVer=4 +MinorVer=0 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; fantomas + +[fantomas] +Parent=DefaultProperties +Browser=fantomas +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true + +[Mozilla/4.0 (cloakBrowser)] +Parent=fantomas +Browser=fantomas cloakBrowser + +[Mozilla/4.0 (fantomas shadowMaker Browser)] +Parent=fantomas +Browser=fantomas shadowMaker Browser + +[Mozilla/4.0 (fantomBrowser)] +Parent=fantomas +Browser=fantomas fantomBrowser + +[Mozilla/4.0 (fantomCrew Browser)] +Parent=fantomas +Browser=fantomas fantomCrew Browser + +[Mozilla/4.0 (stealthBrowser)] +Parent=fantomas +Browser=fantomas stealthBrowser + +[multiBlocker browser*] +Parent=fantomas +Browser=fantomas multiBlocker browser + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FrontPage + +[FrontPage] +Parent=DefaultProperties +Browser=FrontPage +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true + +[Mozilla/?* (compatible; MS FrontPage*)] +Parent=FrontPage + +[MSFrontPage/*] +Parent=FrontPage + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Galeon + +[Galeon] +Parent=DefaultProperties +Browser=Galeon +Platform=Linux +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (X11; U; Linux*) Gecko/* Galeon/1.*] +Parent=Galeon +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 (X11; U; Linux*) Gecko/* Galeon/2.*] +Parent=Galeon +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/5.0 Galeon/1.* (X11; Linux*)*] +Parent=Galeon +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 Galeon/2.* (X11; Linux*)*] +Parent=Galeon +Version=2.0 +MajorVer=2 +MinorVer=0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; HP Secure Web Browser + +[HP Secure Web Browser] +Parent=DefaultProperties +Browser=HP Secure Web Browser +Platform=OpenVMS +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.0*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.1*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.1 +MajorVer=1 +MinorVer=1 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.2*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.2 +MajorVer=1 +MinorVer=2 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.3*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.3 +MajorVer=1 +MinorVer=3 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.4*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.4 +MajorVer=1 +MinorVer=4 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.5*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.5 +MajorVer=1 +MinorVer=5 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.6*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.6 +MajorVer=1 +MinorVer=6 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.7*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.7 +MajorVer=1 +MinorVer=7 + +[Mozilla/5.0 (X11; U; OpenVMS*; *; rv:1.8*) Gecko/*] +Parent=HP Secure Web Browser +Version=1.8 +MajorVer=1 +MinorVer=8 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IBrowse + +[IBrowse] +Parent=DefaultProperties +Browser=IBrowse +Platform=Amiga +Frames=true +Tables=true +Cookies=true +JavaScript=true + +[Arexx (compatible; MSIE 6.0; AmigaOS5.0) IBrowse 4.0] +Parent=IBrowse +Version=4.0 +MajorVer=4 +MinorVer=0 + +[IBrowse/1.22 (AmigaOS *)] +Parent=IBrowse +Version=1.22 +MajorVer=1 +MinorVer=22 + +[IBrowse/2.1 (AmigaOS *)] +Parent=IBrowse +Version=2.1 +MajorVer=2 +MinorVer=1 + +[IBrowse/2.2 (AmigaOS *)] +Parent=IBrowse +Version=2.2 +MajorVer=2 +MinorVer=2 + +[IBrowse/2.3 (AmigaOS *)] +Parent=IBrowse +Version=2.2 +MajorVer=2 +MinorVer=3 + +[Mozilla/* (Win98; I) IBrowse/2.1 (AmigaOS 3.1)] +Parent=IBrowse +Version=2.1 +MajorVer=2 +MinorVer=1 + +[Mozilla/* (Win98; I) IBrowse/2.2 (AmigaOS 3.1)] +Parent=IBrowse +Version=2.2 +MajorVer=2 +MinorVer=2 + +[Mozilla/* (Win98; I) IBrowse/2.3 (AmigaOS 3.1)] +Parent=IBrowse +Version=2.3 +MajorVer=2 +MinorVer=3 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iCab + +[iCab] +Parent=DefaultProperties +Browser=iCab +Frames=true +Tables=true +Cookies=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[iCab/2.7* (Macintosh; ?; 68K*)] +Parent=iCab +Version=2.7 +MajorVer=2 +MinorVer=7 +Platform=Mac68K + +[iCab/2.7* (Macintosh; ?; PPC*)] +Parent=iCab +Version=2.7 +MajorVer=2 +MinorVer=7 +Platform=MacPPC + +[iCab/2.8* (Macintosh; ?; *Mac OS X*)] +Parent=iCab +Version=2.8 +MajorVer=2 +MinorVer=8 +Platform=MacOSX + +[iCab/2.8* (Macintosh; ?; 68K*)] +Parent=iCab +Version=2.8 +MajorVer=2 +MinorVer=8 +Platform=Mac68K + +[iCab/2.8* (Macintosh; ?; PPC)] +Parent=iCab +Version=2.8 +MajorVer=2 +MinorVer=8 +Platform=MacPPC + +[iCab/2.9* (Macintosh; ?; *Mac OS X*)] +Parent=iCab +Version=2.9 +MajorVer=2 +MinorVer=9 +Platform=MacOSX + +[iCab/2.9* (Macintosh; ?; 68K*)] +Parent=iCab +Version=2.9 +MajorVer=2 +MinorVer=9 +Platform=Mac68K + +[iCab/2.9* (Macintosh; ?; PPC*)] +Parent=iCab +Version=2.9 +MajorVer=2 +MinorVer=9 +Platform=MacPPC + +[iCab/3.0* (Macintosh; ?; *Mac OS X*)] +Parent=iCab +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=MacOSX +CssVersion=2 +supportsCSS=true + +[iCab/3.0* (Macintosh; ?; PPC*)] +Parent=iCab +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=MacPPC +CssVersion=2 +supportsCSS=true + +[iCab/4.0 (Macintosh; U; *Mac OS X)] +Parent=iCab +Version=4.0 +MajorVer=4 +MinorVer=0 +Platform=MacOSX + +[Mozilla/* (compatible; iCab 3.0*; Macintosh; *Mac OS X*)] +Parent=iCab +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=MacOSX +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; iCab 3.0*; Macintosh; ?; PPC*)] +Parent=iCab +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=MacPPC +CssVersion=2 +supportsCSS=true + +[Mozilla/4.5 (compatible; iCab 2.7*; Macintosh; ?; 68K*)] +Parent=iCab +Version=2.7 +MajorVer=2 +MinorVer=7 +Platform=Mac68K + +[Mozilla/4.5 (compatible; iCab 2.7*; Macintosh; ?; PPC*)] +Parent=iCab +Version=2.7 +MajorVer=2 +MinorVer=7 +Platform=MacPPC + +[Mozilla/4.5 (compatible; iCab 2.8*; Macintosh; ?; *Mac OS X*)] +Parent=iCab +Version=2.8 +MajorVer=2 +MinorVer=8 +Platform=MacOSX + +[Mozilla/4.5 (compatible; iCab 2.8*; Macintosh; ?; PPC*)] +Parent=iCab +Version=2.8 +MajorVer=2 +MinorVer=8 +Platform=MacPPC + +[Mozilla/4.5 (compatible; iCab 2.9*; Macintosh; *Mac OS X*)] +Parent=iCab +Version=2.9 +MajorVer=2 +MinorVer=9 +Platform=MacOSX + +[Mozilla/4.5 (compatible; iCab 2.9*; Macintosh; ?; PPC*)] +Parent=iCab +Version=2.9 +MajorVer=2 +MinorVer=9 +Platform=MacPPC + +[Mozilla/4.5 (compatible; iCab 4.2*; Macintosh; *Mac OS X*)] +Parent=iCab +Version=4.2 +MajorVer=4 +MinorVer=2 +Platform=MacOSX + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iSiloX + +[iSiloX] +Parent=DefaultProperties +Browser=iSiloX +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true +Crawler=true +CssVersion=2 +supportsCSS=true + +[iSiloX/4.0* MacOS] +Parent=iSiloX +Version=4.0 +MajorVer=4 +MinorVer=0 +Platform=MacPPC + +[iSiloX/4.0* Windows/32] +Parent=iSiloX +Version=4.0 +MajorVer=4 +MinorVer=0 +Platform=Win32 +Win32=true + +[iSiloX/4.1* MacOS] +Parent=iSiloX +Version=4.1 +MajorVer=4 +MinorVer=1 +Platform=MacPPC + +[iSiloX/4.1* Windows/32] +Parent=iSiloX +Version=4.1 +MajorVer=4 +MinorVer=1 +Platform=Win32 +Win32=true + +[iSiloX/4.2* MacOS] +Parent=iSiloX +Version=4.2 +MajorVer=4 +MinorVer=2 +Platform=MacPPC + +[iSiloX/4.2* Windows/32] +Parent=iSiloX +Version=4.2 +MajorVer=4 +MinorVer=2 +Platform=Win32 +Win32=true + +[iSiloX/4.3* MacOS] +Parent=iSiloX +Version=4.3 +MajorVer=4 +MinorVer=4 +Platform=MacOSX + +[iSiloX/4.3* Windows/32] +Parent=iSiloX +Version=4.3 +MajorVer=4 +MinorVer=3 +Platform=Win32 +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Lycoris Desktop/LX + +[Lycoris Desktop/LX] +Parent=DefaultProperties +Browser=Lycoris Desktop/LX +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +Crawler=true + +[Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.*: Desktop/LX Amethyst) Gecko/*] +Parent=Lycoris Desktop/LX +Version=1.1 +MajorVer=1 +MinorVer=1 +Platform=Linux + +[Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.*; Desktop/LX Amethyst) Gecko/*] +Parent=Lycoris Desktop/LX +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mosaic + +[Mosaic] +Parent=DefaultProperties +Browser=Mosaic +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true + +[Mozilla/4.0 (VMS_Mosaic)] +Parent=Mosaic +Platform=OpenVMS + +[VMS_Mosaic/3.7*] +Parent=Mosaic +Version=3.7 +MajorVer=3 +MinorVer=7 +Platform=OpenVMS + +[VMS_Mosaic/3.8*] +Parent=Mosaic +Version=3.8 +MajorVer=3 +MinorVer=8 +Platform=OpenVMS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NetPositive + +[NetPositive] +Parent=DefaultProperties +Browser=NetPositive +Platform=BeOS +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true + +[*NetPositive/2.2*] +Parent=NetPositive +Version=2.2 +MajorVer=2 +MinorVer=2 + +[*NetPositive/2.2*BeOS*] +Parent=NetPositive +Version=2.2 +MajorVer=2 +MinorVer=2 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; OmniWeb + +[OmniWeb] +Parent=DefaultProperties +Browser=OmniWeb +Platform=MacOSX +Frames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +isMobileDevice=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (Macintosh; ?; *Mac OS X; *) AppleWebKit/* (*) OmniWeb/v4*] +Parent=OmniWeb +Version=4.5 +MajorVer=4 +MinorVer=5 +Platform=MacOSX + +[Mozilla/* (Macintosh; ?; *Mac OS X; *) AppleWebKit/* (*) OmniWeb/v5*] +Parent=OmniWeb +Version=5. +MajorVer=5 +MinorVer=0 +Platform=MacOSX + +[Mozilla/* (Macintosh; ?; *Mac OS X; *) AppleWebKit/* (*) OmniWeb/v6*] +Parent=OmniWeb +Version=6.0 +MajorVer=6 +MinorVer=0 +Platform=MacOSX + +[Mozilla/* (Macintosh; ?; PPC) OmniWeb/4*] +Parent=OmniWeb +Version=4.0 +MajorVer=4 +MinorVer=0 +Platform=MacPPC + +[Mozilla/* (Macintosh; ?; PPC) OmniWeb/5*] +Parent=OmniWeb +Version=5.0 +MajorVer=5 +MinorVer=0 +Platform=MacOSX + +[Mozilla/* (Macintosh; ?; PPC) OmniWeb/6*] +Parent=OmniWeb +Version=6.0 +MajorVer=6 +MinorVer=0 +Platform=MacPPC + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.34] +Parent=OmniWeb +Version=5.1 +MajorVer=5 +MinorVer=1 + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.34] +Parent=OmniWeb +Version=5.1 +MajorVer=5 +MinorVer=1 + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/420+ (KHTML, like Gecko, Safari/420) OmniWeb/v607] +Parent=OmniWeb +Version=5.5 +MajorVer=5 +MinorVer=5 + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/420+ (KHTML, like Gecko, Safari/420) OmniWeb/v607] +Parent=OmniWeb +Version=5.5 +MajorVer=5 +MinorVer=5 + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/522+ (KHTML, like Gecko, Safari/522) OmniWeb/v613] +Parent=OmniWeb +Version=5.6 +MajorVer=5 +MinorVer=6 + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/522+ (KHTML, like Gecko, Safari/522) OmniWeb/v613] +Parent=OmniWeb +Version=5.6 +MajorVer=5 +MinorVer=6 + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v496] +Parent=OmniWeb +Version=4.5 +MajorVer=4 +MinorVer=5 + +[Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v558.36 ] +Parent=OmniWeb +Version=5.0 +MajorVer=5 +MinorVer=0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Shiira + +[Shiira] +Parent=DefaultProperties +Browser=Shiira +Platform=MacOSX +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/0.9*] +Parent=Shiira +Version=0.9 +MajorVer=0 +MinorVer=9 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/1.0*] +Parent=Shiira +Version=1.0 +MajorVer=1 +MinorVer=0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/1.1*] +Parent=Shiira +Version=1.1 +MajorVer=1 +MinorVer=1 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/1.2*] +Parent=Shiira +Version=1.2 +MajorVer=1 +MinorVer=2 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/2.1*] +Parent=Shiira +Version=2.1 +MajorVer=2 +MinorVer=1 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Shiira/2.2*] +Parent=Shiira +Version=2.2 +MajorVer=2 +MinorVer=2 + +[Windows Maker] +Parent=DefaultProperties +Browser=WMaker +Platform=Linux +Frames=true +IFrames=true +Tables=true +Cookies=true +VBScript=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[WMaker*] +Parent=Windows Maker + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; K-Meleon 1.0 + +[K-Meleon 1.0] +Parent=DefaultProperties +Browser=K-Meleon +Version=1.0 +MajorVer=1 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* K-Meleon/1.0*] +Parent=K-Meleon 1.0 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* K-Meleon/1.0*] +Parent=K-Meleon 1.0 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* K-Meleon?1.0*] +Parent=K-Meleon 1.0 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* K-Meleon/1.0*] +Parent=K-Meleon 1.0 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* K-Meleon/1.0*] +Parent=K-Meleon 1.0 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* K-Meleon/1.0*] +Parent=K-Meleon 1.0 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WinNT +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; K-Meleon 1.1 + +[K-Meleon 1.1] +Parent=DefaultProperties +Browser=K-Meleon +Version=1.1 +MajorVer=1 +MinorVer=1 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* K-Meleon/1.1*] +Parent=K-Meleon 1.1 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* K-Meleon/1.1*] +Parent=K-Meleon 1.1 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* K-Meleon?1.1*] +Parent=K-Meleon 1.1 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* K-Meleon/1.1*] +Parent=K-Meleon 1.1 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* K-Meleon/1.1*] +Parent=K-Meleon 1.1 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* K-Meleon/1.1*] +Parent=K-Meleon 1.1 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WinNT +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; K-Meleon 1.5 + +[K-Meleon 1.5] +Parent=DefaultProperties +Browser=K-Meleon +Version=1.5 +MajorVer=1 +MinorVer=5 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* K-Meleon/1.5*] +Parent=K-Meleon 1.5 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* K-Meleon/1.5*] +Parent=K-Meleon 1.5 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* K-Meleon?1.5*] +Parent=K-Meleon 1.5 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* K-Meleon/1.5*] +Parent=K-Meleon 1.5 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* K-Meleon/1.5*] +Parent=K-Meleon 1.5 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.*) Gecko/* K-Meleon/1.5*] +Parent=K-Meleon 1.5 +Platform=WinVista + +[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.*) Gecko/* K-Meleon/1.5*] +Parent=K-Meleon 1.5 +Platform=Win7 + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* K-Meleon/1.5*] +Parent=K-Meleon 1.5 +Version=1.0 +MajorVer=1 +MinorVer=0 +Platform=WinNT +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 3.0 + +[Konqueror 3.0] +Parent=DefaultProperties +Browser=Konqueror +Platform=Linux +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[*Konqueror/3.0*] +Parent=Konqueror 3.0 +Version=3.0 +MajorVer=3 +MinorVer=0 +IFrames=false + +[*Konqueror/3.0*FreeBSD*] +Parent=Konqueror 3.0 +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=FreeBSD +IFrames=false + +[*Konqueror/3.0*Linux*] +Parent=Konqueror 3.0 +Version=3.0 +MajorVer=3 +MinorVer=0 +Platform=Linux +IFrames=false + +[*Konqueror/3.1*] +Parent=Konqueror 3.0 +Version=3.1 +MajorVer=3 +MinorVer=1 + +[*Konqueror/3.1*FreeBSD*] +Parent=Konqueror 3.0 +Version=3.1 +MajorVer=3 +MinorVer=1 +Platform=FreeBSD + +[*Konqueror/3.1*Linux*] +Parent=Konqueror 3.0 +Version=3.1 +MajorVer=3 +MinorVer=1 + +[*Konqueror/3.2*] +Parent=Konqueror 3.0 +Version=3.2 +MajorVer=3 +MinorVer=2 + +[*Konqueror/3.2*FreeBSD*] +Parent=Konqueror 3.0 +Version=3.2 +MajorVer=3 +MinorVer=2 +Platform=FreeBSD + +[*Konqueror/3.2*Linux*] +Parent=Konqueror 3.0 +Version=3.2 +MajorVer=3 +MinorVer=2 +Platform=Linux + +[*Konqueror/3.3*] +Parent=Konqueror 3.0 +Version=3.3 +MajorVer=3 +MinorVer=3 + +[*Konqueror/3.3*FreeBSD*] +Parent=Konqueror 3.0 +Version=3.3 +MajorVer=3 +MinorVer=3 +Platform=FreeBSD + +[*Konqueror/3.3*Linux*] +Parent=Konqueror 3.0 +Version=3.3 +MajorVer=3 +MinorVer=3 +Platform=Linux + +[*Konqueror/3.3*OpenBSD*] +Parent=Konqueror 3.0 +Version=3.3 +MajorVer=3 +MinorVer=3 +Platform=OpenBSD + +[*Konqueror/3.4*] +Parent=Konqueror 3.0 +Version=3.4 +MajorVer=3 +MinorVer=4 + +[*Konqueror/3.4*FreeBSD*] +Parent=Konqueror 3.0 +Version=3.4 +MajorVer=3 +MinorVer=4 +Platform=FreeBSD + +[*Konqueror/3.4*Linux*] +Parent=Konqueror 3.0 +Version=3.4 +MajorVer=3 +MinorVer=4 +Platform=Linux + +[*Konqueror/3.4*OpenBSD*] +Parent=Konqueror 3.0 +Version=3.4 +MajorVer=3 +MinorVer=4 +Platform=OpenBSD + +[*Konqueror/3.5*] +Parent=Konqueror 3.0 +Version=3.5 +MajorVer=3 +MinorVer=5 + +[*Konqueror/3.5*FreeBSD*] +Parent=Konqueror 3.0 +Version=3.5 +MajorVer=3 +MinorVer=5 +Platform=FreeBSD + +[*Konqueror/3.5*Linux*] +Parent=Konqueror 3.0 +Version=3.5 +MajorVer=3 +MinorVer=5 +Platform=Linux + +[*Konqueror/3.5*OpenBSD*] +Parent=Konqueror 3.0 +Version=3.5 +MajorVer=3 +MinorVer=5 +Platform=OpenBSD + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 4.0 + +[Konqueror 4.0] +Parent=DefaultProperties +Browser=Konqueror +Version=4.0 +MajorVer=4 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (compatible; Konqueror/4.0*; Debian) KHTML/4.* (like Gecko)] +Parent=Konqueror 4.0 +Platform=Debian + +[Mozilla/5.0 (compatible; Konqueror/4.0.*; *Linux) KHTML/4.* (like Gecko)] +Parent=Konqueror 4.0 +Platform=Linux + +[Mozilla/5.0 (compatible; Konqueror/4.0.*; FreeBSD) KHTML/4.* (like Gecko)] +Parent=Konqueror 4.0 +Platform=FreeBSD + +[Mozilla/5.0 (compatible; Konqueror/4.0.*; NetBSD) KHTML/4.* (like Gecko)] +Parent=Konqueror 4.0 +Platform=NetBSD + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 4.1 + +[Konqueror 4.1] +Parent=DefaultProperties +Browser=Konqueror +Version=4.1 +MajorVer=4 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (compatible; Konqueror/4.1*; *Linux*) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.1 +Platform=Linux + +[Mozilla/5.0 (compatible; Konqueror/4.1*; Debian) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.1 +Platform=Debian + +[Mozilla/5.0 (compatible; Konqueror/4.1*; FreeBSD) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.1 +Platform=FreeBSD + +[Mozilla/5.0 (compatible; Konqueror/4.1*; NetBSD) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.1 +Platform=NetBSD + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Konqueror 4.2 + +[Konqueror 4.2] +Parent=DefaultProperties +Browser=Konqueror +Version=4.2 +MajorVer=4 +MinorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (compatible; Konqueror/4.2*; *Linux*) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.2 +Platform=Linux + +[Mozilla/5.0 (compatible; Konqueror/4.2*; Debian) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.2 +Platform=Debian + +[Mozilla/5.0 (compatible; Konqueror/4.2*; FreeBSD) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.2 +Platform=FreeBSD + +[Mozilla/5.0 (compatible; Konqueror/4.2*; NetBSD) KHTML/4.* (like Gecko)*] +Parent=Konqueror 4.2 +Platform=NetBSD + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari + +[Safari] +Parent=DefaultProperties +Browser=Safari +Platform=MacOSX +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.3 +w3cdomversion=1.0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/100*] +Parent=Safari +Version=1.1 +MajorVer=1 +MinorVer=1 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/125*] +Parent=Safari +Version=1.2 +MajorVer=1 +MinorVer=2 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/312*] +Parent=Safari +Version=1.3 +MajorVer=1 +MinorVer=3 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/412*] +Parent=Safari +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/416*] +Parent=Safari +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/417*] +Parent=Safari +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/418*] +Parent=Safari +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/419*] +Parent=Safari +Version=2.0 +MajorVer=2 +MinorVer=0 + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/52*] +Parent=Safari +Beta=true + +[Mozilla/5.0 (Macintosh; *Mac OS X*) AppleWebKit/* (*) Safari/85*] +Parent=Safari +Version=1.0 +MajorVer=1 +MinorVer=0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 3.0 + +[Safari 3.0] +Parent=DefaultProperties +Browser=Safari +Version=3.0 +MajorVer=3 +Platform=MacOSX +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*) AppleWebKit/* (*) Version/3.0* Safari/*] +Parent=Safari 3.0 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/3.0* Safari/*] +Parent=Safari 3.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/3.0* Safari/*] +Parent=Safari 3.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/3.0* Safari/*] +Parent=Safari 3.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/3.0* Safari/*] +Parent=Safari 3.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 3.1 + +[Safari 3.1] +Parent=DefaultProperties +Browser=Safari +Version=3.1 +MajorVer=3 +MinorVer=1 +Platform=MacOSX +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*) AppleWebKit/* (*) Version/3.1* Safari/*] +Parent=Safari 3.1 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/3.1* Safari/*] +Parent=Safari 3.1 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/3.1* Safari/*] +Parent=Safari 3.1 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/3.1* Safari/*] +Parent=Safari 3.1 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/3.1* Safari/*] +Parent=Safari 3.1 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 3.2 + +[Safari 3.2] +Parent=DefaultProperties +Browser=Safari +Version=3.2 +MajorVer=3 +MinorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*) AppleWebKit/* (*) Version/3.2* Safari/*] +Parent=Safari 3.2 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/3.2* Safari/*] +Parent=Safari 3.2 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/3.2* Safari/*] +Parent=Safari 3.2 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/3.2* Safari/*] +Parent=Safari 3.2 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/3.2* Safari/*] +Parent=Safari 3.2 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Safari 4.0 + +[Safari 4.0] +Parent=DefaultProperties +Browser=Safari +Version=4.0 +MajorVer=4 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *) AppleWebKit/* (KHTML, like Gecko) Version/4.0* Safari/*] +Parent=Safari 4.0 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; U; *Mac OS X*; *) AppleWebKit/* (KHTML, like Gecko) Version/4 Public Beta Safari/*] +Parent=Safari 4.0 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*] +Parent=Safari 4.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) AppleWebKit/* (*) Version/4.0* Safari/*] +Parent=Safari 4.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*] +Parent=Safari 4.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) AppleWebKit/* (*) Version/4.0* Safari/*] +Parent=Safari 4.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*] +Parent=Safari 4.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) AppleWebKit/* (*) Version/4.0* Safari/*] +Parent=Safari 4.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*] +Parent=Safari 4.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) AppleWebKit/* (*) Version/4.0* Safari/*] +Parent=Safari 4.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; Windows NT 7.0; *) AppleWebKit/* (*) Version/4 Public Beta Safari/*] +Parent=Safari 4.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; Windows NT 7.0; *) AppleWebKit/* (*) Version/4.0* Safari/*] +Parent=Safari 4.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 10.0 + +[Opera 10.0] +Parent=DefaultProperties +Browser=Opera +Version=10.0 +MajorVer=10 +Alpha=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 10.0*] +Parent=Opera 10.0 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win7 + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 10.0*] +Parent=Opera 10.0 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 10.0*] +Parent=Opera 10.0 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 10.0*] +Parent=Opera 10.0 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win2003 +Win32=true + +[Mozilla/* (Windows NT 6.0;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=WinVista + +[Mozilla/* (Windows NT 6.1;*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Win7 + +[Mozilla/* (X11; Linux*) Opera 10.0*] +Parent=Opera 10.0 +Platform=Linux + +[Opera/10.0* (Linux*)*] +Parent=Opera 10.0 +Platform=Linux + +[Opera/10.0* (Macintosh; *Mac OS X;*)*] +Parent=Opera 10.0 +Platform=MacOSX + +[Opera/10.0* (Windows 95*)*] +Parent=Opera 10.0 +Platform=Win95 +Win32=true + +[Opera/10.0* (Windows 98*)*] +Parent=Opera 10.0 +Platform=Win98 +Win32=true + +[Opera/10.0* (Windows CE*)*] +Parent=Opera 10.0 +Platform=WinCE +Win32=true + +[Opera/10.0* (Windows ME*)*] +Parent=Opera 10.0 +Platform=WinME +Win32=true + +[Opera/10.0* (Windows NT 4.0*)*] +Parent=Opera 10.0 +Platform=WinNT +Win32=true + +[Opera/10.0* (Windows NT 5.0*)*] +Parent=Opera 10.0 +Platform=Win2000 +Win32=true + +[Opera/10.0* (Windows NT 5.1*)*] +Parent=Opera 10.0 +Platform=WinXP +Win32=true + +[Opera/10.0* (Windows NT 5.2*)*] +Parent=Opera 10.0 +Platform=Win2003 +Win32=true + +[Opera/10.0* (Windows NT 6.0*)*] +Parent=Opera 10.0 +Platform=WinVista +Win32=true + +[Opera/10.0* (Windows NT 6.1*)*] +Parent=Opera 10.0 +Platform=Win7 + +[Opera/10.0* (Windows XP*)*] +Parent=Opera 10.0 +Platform=WinXP +Win32=true + +[Opera/10.0* (X11; FreeBSD*)*] +Parent=Opera 10.0 +Platform=FreeBSD + +[Opera/10.0* (X11; Linux*)*] +Parent=Opera 10.0 +Platform=Linux + +[Opera/10.0* (X11; SunOS*)*] +Parent=Opera 10.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.0 + +[Opera 7.0] +Parent=DefaultProperties +Browser=Opera +Version=7.0 +MajorVer=7 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/3.0 (Windows 2000; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/3.0 (Windows 95; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win95 +Win32=true + +[Mozilla/3.0 (Windows 98; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win98 +Win32=true + +[Mozilla/3.0 (Windows ME; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinME +Win32=true + +[Mozilla/3.0 (Windows NT 4.0; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinNT +Win32=true + +[Mozilla/3.0 (Windows XP; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows 2000) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows 95) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win95 +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows 98) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win98 +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows ME) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinME +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 4.0) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinNT +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.0) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows XP) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Mozilla/4.78 (Windows 2000; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/4.78 (Windows 95; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win95 +Win32=true + +[Mozilla/4.78 (Windows 98; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win98 +Win32=true + +[Mozilla/4.78 (Windows ME; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinME +Win32=true + +[Mozilla/4.78 (Windows NT 4.0; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinNT +Win32=true + +[Mozilla/4.78 (Windows NT 5.1; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Mozilla/4.78 (Windows Windows NT 5.0; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/4.78 (Windows XP; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows 2000; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows 95; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows 98; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows ME; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows NT 4.0; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows NT 5.1; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows XP; ?) Opera 7.0*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Opera/7.0* (Windows 2000; ?)*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Opera/7.0* (Windows 95; ?)*] +Parent=Opera 7.0 +Platform=Win95 +Win32=true + +[Opera/7.0* (Windows 98; ?)*] +Parent=Opera 7.0 +Platform=Win98 +Win32=true + +[Opera/7.0* (Windows ME; ?)*] +Parent=Opera 7.0 +Platform=WinME +Win32=true + +[Opera/7.0* (Windows NT 4.0; ?)*] +Parent=Opera 7.0 +Platform=WinNT +Win32=true + +[Opera/7.0* (Windows NT 5.0; ?)*] +Parent=Opera 7.0 +Platform=Win2000 +Win32=true + +[Opera/7.0* (Windows NT 5.1; ?)*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +[Opera/7.0* (Windows XP; ?)*] +Parent=Opera 7.0 +Platform=WinXP +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.1 + +[Opera 7.1] +Parent=DefaultProperties +Browser=Opera +Version=7.1 +MajorVer=7 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win95 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win98 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.1*] +Parent=Opera 7.1 +Platform=WinME +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.1*] +Parent=Opera 7.1 +Platform=WinNT +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.1*] +Parent=Opera 7.1 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.1*] +Parent=Opera 7.1 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows 2000; ?) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows 95; ?) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win95 +Win32=true + +[Mozilla/?.* (Windows 98; ?) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win98 +Win32=true + +[Mozilla/?.* (Windows ME; ?) Opera 7.1*] +Parent=Opera 7.1 +Platform=WinME +Win32=true + +[Mozilla/?.* (Windows NT 4.0; U) Opera 7.1*] +Parent=Opera 7.1 +Platform=WinNT +Win32=true + +[Mozilla/?.* (Windows NT 5.0; U) Opera 7.1*] +Parent=Opera 7.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows NT 5.1; ?) Opera 7.1*] +Parent=Opera 7.1 +Platform=WinXP +Win32=true + +[Opera/7.1* (Linux*; ?)*] +Parent=Opera 7.1 +Platform=Linux + +[Opera/7.1* (Windows 95; ?)*] +Parent=Opera 7.1 +Platform=Win95 +Win32=true + +[Opera/7.1* (Windows 98; ?)*] +Parent=Opera 7.1 +Platform=Win98 +Win32=true + +[Opera/7.1* (Windows ME; ?)*] +Parent=Opera 7.1 +Platform=WinME +Win32=true + +[Opera/7.1* (Windows NT 4.0; ?)*] +Parent=Opera 7.1 +Platform=WinNT +Win32=true + +[Opera/7.1* (Windows NT 5.0; ?)*] +Parent=Opera 7.1 +Platform=Win2000 +Win32=true + +[Opera/7.1* (Windows NT 5.1; ?)*] +Parent=Opera 7.1 +Platform=WinXP +Win32=true + +[Opera/7.1* (Windows XP; ?)*] +Parent=Opera 7.1 +Platform=WinXP +Win32=true + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.2 + +[Opera 7.2] +Parent=DefaultProperties +Browser=Opera +Version=7.2 +MajorVer=7 +MinorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 7.2*] +Parent=Opera 7.2 +Platform=Linux + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win95 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win98 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.2*] +Parent=Opera 7.2 +Platform=WinME +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.2*] +Parent=Opera 7.2 +Platform=WinNT +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.2*] +Parent=Opera 7.2 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.2*] +Parent=Opera 7.2 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows 2000; ?) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows 95; ?) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win95 +Win32=true + +[Mozilla/?.* (Windows 98; ?) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win98 +Win32=true + +[Mozilla/?.* (Windows ME; ?) Opera 7.2*] +Parent=Opera 7.2 +Platform=WinME +Win32=true + +[Mozilla/?.* (Windows NT 4.0; U) Opera 7.2*] +Parent=Opera 7.2 +Platform=WinNT +Win32=true + +[Mozilla/?.* (Windows NT 5.0; U) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows NT 5.1; ?) Opera 7.2*] +Parent=Opera 7.2 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows NT 5.2; ?) Opera 7.2*] +Parent=Opera 7.2 +Platform=Win2003 +Win32=true + +[Opera/7.2* (Linux*; ?)*] +Parent=Opera 7.2 +Platform=Linux + +[Opera/7.2* (Windows 95; ?)*] +Parent=Opera 7.2 +Platform=Win95 +Win32=true + +[Opera/7.2* (Windows 98; ?)*] +Parent=Opera 7.2 +Platform=Win98 +Win32=true + +[Opera/7.2* (Windows ME; ?)*] +Parent=Opera 7.2 +Platform=WinME +Win32=true + +[Opera/7.2* (Windows NT 4.0; ?)*] +Parent=Opera 7.2 +Platform=WinNT +Win32=true + +[Opera/7.2* (Windows NT 5.0; ?)*] +Parent=Opera 7.2 +Platform=Win2000 +Win32=true + +[Opera/7.2* (Windows NT 5.1; ?)*] +Parent=Opera 7.2 +Platform=WinXP +Win32=true + +[Opera/7.2* (Windows NT 5.2; ?)*] +Parent=Opera 7.2 +Platform=Win2003 +Win32=true + +[Opera/7.2* (Windows XP; ?)*] +Parent=Opera 7.2 +Platform=WinXP +Win32=true + +[Opera/7.2* (X11; FreeBSD*; ?)*] +Parent=Opera 7.2 +Platform=FreeBSD + +[Opera/7.2* (X11; Linux*; ?)*] +Parent=Opera 7.2 +Platform=Linux + +[Opera/7.2* (X11; SunOS*)*] +Parent=Opera 7.2 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.5 + +[Opera 7.5] +Parent=DefaultProperties +Browser=Opera +Version=7.5 +MajorVer=7 +MinorVer=5 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 7.5*] +Parent=Opera 7.5 +Platform=Linux + +[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 7.5*] +Parent=Opera 7.5 +Platform=MacPPC + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win95 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win98 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.5*] +Parent=Opera 7.5 +Platform=WinME +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.5*] +Parent=Opera 7.5 +Platform=WinNT +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.5*] +Parent=Opera 7.5 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.5*] +Parent=Opera 7.5 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 7.5*] +Parent=Opera 7.5 +Platform=Linux + +[Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=MacOSX + +[Mozilla/?.* (Windows 2000; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows 95; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win95 +Win32=true + +[Mozilla/?.* (Windows 98; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win98 +Win32=true + +[Mozilla/?.* (Windows ME; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=WinME +Win32=true + +[Mozilla/?.* (Windows NT 4.0; U) Opera 7.5*] +Parent=Opera 7.5 +Platform=WinNT +Win32=true + +[Mozilla/?.* (Windows NT 5.0; U) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows NT 5.1; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows NT 5.2; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (X11; Linux*; ?) Opera 7.5*] +Parent=Opera 7.5 +Platform=Linux + +[Opera/7.5* (Linux*; ?)*] +Parent=Opera 7.5 +Platform=Linux + +[Opera/7.5* (Macintosh; *Mac OS X; ?)*] +Parent=Opera 7.5 +Platform=MacOSX + +[Opera/7.5* (Windows 95; ?)*] +Parent=Opera 7.5 +Platform=Win95 +Win32=true + +[Opera/7.5* (Windows 98; ?)*] +Parent=Opera 7.5 +Platform=Win98 +Win32=true + +[Opera/7.5* (Windows ME; ?)*] +Parent=Opera 7.5 +Platform=WinME +Win32=true + +[Opera/7.5* (Windows NT 4.0; ?)*] +Parent=Opera 7.5 +Platform=WinNT +Win32=true + +[Opera/7.5* (Windows NT 5.0; ?)*] +Parent=Opera 7.5 +Platform=Win2000 +Win32=true + +[Opera/7.5* (Windows NT 5.1; ?)*] +Parent=Opera 7.5 +Platform=WinXP +Win32=true + +[Opera/7.5* (Windows NT 5.2; ?)*] +Parent=Opera 7.5 +Platform=Win2003 +Win32=true + +[Opera/7.5* (Windows XP; ?)*] +Parent=Opera 7.5 +Platform=WinXP +Win32=true + +[Opera/7.5* (X11; FreeBSD*; ?)*] +Parent=Opera 7.5 +Platform=FreeBSD + +[Opera/7.5* (X11; Linux*; ?)*] +Parent=Opera 7.5 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 7.6 + +[Opera 7.6] +Parent=DefaultProperties +Browser=Opera +Version=7.6 +MajorVer=7 +MinorVer=6 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 7.6*] +Parent=Opera 7.6 +Platform=Linux + +[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 7.6*] +Parent=Opera 7.6 +Platform=MacPPC + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 95) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win95 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 98) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win98 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows ME) Opera 7.6*] +Parent=Opera 7.6 +Platform=WinME +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0) Opera 7.6*] +Parent=Opera 7.6 +Platform=WinNT +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1) Opera 7.6*] +Parent=Opera 7.6 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows XP) Opera 7.6*] +Parent=Opera 7.6 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 7.6*] +Parent=Opera 7.6 +Platform=Linux + +[Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=MacOSX + +[Mozilla/?.* (Windows 2000; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows 95; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win95 +Win32=true + +[Mozilla/?.* (Windows 98; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win98 +Win32=true + +[Mozilla/?.* (Windows ME; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=WinME +Win32=true + +[Mozilla/?.* (Windows NT 4.0; U) Opera 7.6*] +Parent=Opera 7.6 +Platform=WinNT +Win32=true + +[Mozilla/?.* (Windows NT 5.0; U) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows NT 5.1; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows NT 5.2; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (X11; Linux*; ?) Opera 7.6*] +Parent=Opera 7.6 +Platform=Linux + +[Opera/7.6* (Linux*)*] +Parent=Opera 7.6 +Platform=Linux + +[Opera/7.6* (Macintosh; *Mac OS X; ?)*] +Parent=Opera 7.6 +Platform=MacOSX + +[Opera/7.6* (Windows 95*)*] +Parent=Opera 7.6 +Platform=Win95 +Win32=true + +[Opera/7.6* (Windows 98*)*] +Parent=Opera 7.6 +Platform=Win98 +Win32=true + +[Opera/7.6* (Windows ME*)*] +Parent=Opera 7.6 +Platform=WinME +Win32=true + +[Opera/7.6* (Windows NT 4.0*)*] +Parent=Opera 7.6 +Platform=WinNT +Win32=true + +[Opera/7.6* (Windows NT 5.0*)*] +Parent=Opera 7.6 +Platform=Win2000 +Win32=true + +[Opera/7.6* (Windows NT 5.1*)*] +Parent=Opera 7.6 +Platform=WinXP +Win32=true + +[Opera/7.6* (Windows NT 5.2*)*] +Parent=Opera 7.6 +Platform=Win2003 +Win32=true + +[Opera/7.6* (Windows XP*)*] +Parent=Opera 7.6 +Platform=WinXP +Win32=true + +[Opera/7.6* (X11; FreeBSD*)*] +Parent=Opera 7.6 +Platform=FreeBSD + +[Opera/7.6* (X11; Linux*)*] +Parent=Opera 7.6 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 8.0 + +[Opera 8.0] +Parent=DefaultProperties +Browser=Opera +Version=8.0 +MajorVer=8 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 8.0*] +Parent=Opera 8.0 +Platform=Linux + +[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC Mac OS X; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=MacOSX + +[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 8.0*] +Parent=Opera 8.0 +Platform=MacPPC + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000*) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 95*) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win95 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 98*) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win98 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows CE) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinCE +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows ME*) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinME +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0*) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinNT +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0*) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1*) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2*) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows XP*) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; X11; FreeBSD*) Opera 8.0*] +Parent=Opera 8.0 +Platform=FreeBSD + +[Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 8.0*] +Parent=Opera 8.0 +Platform=Linux + +[Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 8.0*] +Parent=Opera 8.0 +Platform=MacOSX + +[Mozilla/?.* (Windows 2000; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows 95; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win95 +Win32=true + +[Mozilla/?.* (Windows 98; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win98 +Win32=true + +[Mozilla/?.* (Windows ME; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinME +Win32=true + +[Mozilla/?.* (Windows NT 4.0; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinNT +Win32=true + +[Mozilla/?.* (Windows NT 5.0; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows NT 5.1; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows NT 5.2; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (X11; Linux*; *) Opera 8.0*] +Parent=Opera 8.0 +Platform=Linux + +[Opera/8.0* (Linux*)*] +Parent=Opera 8.0 +Platform=Linux + +[Opera/8.0* (Macintosh; *Mac OS X; *)*] +Parent=Opera 8.0 +Platform=MacOSX + +[Opera/8.0* (Windows 95*)*] +Parent=Opera 8.0 +Platform=Win95 +Win32=true + +[Opera/8.0* (Windows 98*)*] +Parent=Opera 8.0 +Platform=Win98 +Win32=true + +[Opera/8.0* (Windows CE*)*] +Parent=Opera 8.0 +Platform=WinCE +Win32=true + +[Opera/8.0* (Windows ME*)*] +Parent=Opera 8.0 +Platform=WinME +Win32=true + +[Opera/8.0* (Windows NT 4.0*)*] +Parent=Opera 8.0 +Platform=WinNT +Win32=true + +[Opera/8.0* (Windows NT 5.0*)*] +Parent=Opera 8.0 +Platform=Win2000 +Win32=true + +[Opera/8.0* (Windows NT 5.1*)*] +Parent=Opera 8.0 +Platform=WinXP +Win32=true + +[Opera/8.0* (Windows NT 5.2*)*] +Parent=Opera 8.0 +Platform=Win2003 +Win32=true + +[Opera/8.0* (Windows XP*)*] +Parent=Opera 8.0 +Platform=WinXP +Win32=true + +[Opera/8.0* (X11; FreeBSD*)*] +Parent=Opera 8.0 +Platform=FreeBSD + +[Opera/8.0* (X11; Linux*)*] +Parent=Opera 8.0 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 8.1 + +[Opera 8.1] +Parent=DefaultProperties +Browser=Opera +Version=8.1 +MajorVer=8 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 8.1*] +Parent=Opera 8.1 +Platform=Linux + +[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 8.1*] +Parent=Opera 8.1 +Platform=MacPPC + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000*) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 95*) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win95 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 98*) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win98 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows CE) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinCE +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows ME*) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinME +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0*) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinNT +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0*) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1*) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2*) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows XP*) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; X11; FreeBSD*) Opera 8.1*] +Parent=Opera 8.1 +Platform=FreeBSD + +[Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 8.1*] +Parent=Opera 8.1 +Platform=Linux + +[Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 8.1*] +Parent=Opera 8.1 +Platform=MacOSX + +[Mozilla/?.* (Windows 2000; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows 95; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win95 +Win32=true + +[Mozilla/?.* (Windows 98; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win98 +Win32=true + +[Mozilla/?.* (Windows ME; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinME +Win32=true + +[Mozilla/?.* (Windows NT 4.0; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinNT +Win32=true + +[Mozilla/?.* (Windows NT 5.0; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows NT 5.1; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows NT 5.2; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (X11; Linux*; *) Opera 8.1*] +Parent=Opera 8.1 +Platform=Linux + +[Opera/8.1* (Linux*)*] +Parent=Opera 8.1 +Platform=Linux + +[Opera/8.1* (Macintosh; *Mac OS X; *)*] +Parent=Opera 8.1 +Platform=MacOSX + +[Opera/8.1* (Windows 95*)*] +Parent=Opera 8.1 +Platform=Win95 +Win32=true + +[Opera/8.1* (Windows 98*)*] +Parent=Opera 8.1 +Platform=Win98 +Win32=true + +[Opera/8.1* (Windows CE*)*] +Parent=Opera 8.1 +Platform=WinCE +Win32=true + +[Opera/8.1* (Windows ME*)*] +Parent=Opera 8.1 +Platform=WinME +Win32=true + +[Opera/8.1* (Windows NT 4.0*)*] +Parent=Opera 8.1 +Platform=WinNT +Win32=true + +[Opera/8.1* (Windows NT 5.0*)*] +Parent=Opera 8.1 +Platform=Win2000 +Win32=true + +[Opera/8.1* (Windows NT 5.1*)*] +Parent=Opera 8.1 +Platform=WinXP +Win32=true + +[Opera/8.1* (Windows NT 5.2*)*] +Parent=Opera 8.1 +Platform=Win2003 +Win32=true + +[Opera/8.1* (Windows XP*)*] +Parent=Opera 8.1 +Platform=WinXP +Win32=true + +[Opera/8.1* (X11; FreeBSD*)*] +Parent=Opera 8.1 +Platform=FreeBSD + +[Opera/8.1* (X11; Linux*)*] +Parent=Opera 8.1 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 8.5 + +[Opera 8.5] +Parent=DefaultProperties +Browser=Opera +Version=8.5 +MajorVer=8 +MinorVer=5 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.3 +w3cdomversion=1.0 + +[Mozilla/?.* (compatible; MSIE ?.*; Linux*) Opera 8.5*] +Parent=Opera 8.5 +Platform=Linux + +[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC Mac OS X;*) Opera 8.5*] +Parent=Opera 8.5 +Platform=MacOSX + +[Mozilla/?.* (compatible; MSIE ?.*; Mac_PowerPC) Opera 8.5*] +Parent=Opera 8.5 +Platform=MacPPC + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 2000*) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 95*) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win95 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows 98*) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win98 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows CE) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinCE +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows ME*) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinME +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 4.0*) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinNT +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.0*) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.1*) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows NT 5.2*) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; Windows XP*) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinXP +Win32=true + +[Mozilla/?.* (compatible; MSIE ?.*; X11; FreeBSD*) Opera 8.5*] +Parent=Opera 8.5 +Platform=FreeBSD + +[Mozilla/?.* (compatible; MSIE ?.*; X11; Linux*) Opera 8.5*] +Parent=Opera 8.5 +Platform=Linux + +[Mozilla/?.* (Macintosh; *Mac OS X; ?) Opera 8.5*] +Parent=Opera 8.5 +Platform=MacOSX + +[Mozilla/?.* (Macintosh; PPC Mac OS X;*) Opera 8.5*] +Parent=Opera 8.5 +Platform=MacOSX + +[Mozilla/?.* (Windows 2000; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows 95; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win95 +Win32=true + +[Mozilla/?.* (Windows 98; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win98 +Win32=true + +[Mozilla/?.* (Windows ME; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinME +Win32=true + +[Mozilla/?.* (Windows NT 4.0; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinNT +Win32=true + +[Mozilla/?.* (Windows NT 5.0; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win2000 +Win32=true + +[Mozilla/?.* (Windows NT 5.1; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=WinXP +Win32=true + +[Mozilla/?.* (Windows NT 5.2; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=Win2003 +Win32=true + +[Mozilla/?.* (X11; Linux*; *) Opera 8.5*] +Parent=Opera 8.5 +Platform=Linux + +[Opera/8.5* (Linux*)*] +Parent=Opera 8.5 +Platform=Linux + +[Opera/8.5* (Macintosh; *Mac OS X; *)*] +Parent=Opera 8.5 +Platform=MacOSX + +[Opera/8.5* (Windows 95*)*] +Parent=Opera 8.5 +Platform=Win95 +Win32=true + +[Opera/8.5* (Windows 98*)*] +Parent=Opera 8.5 +Platform=Win98 +Win32=true + +[Opera/8.5* (Windows CE*)*] +Parent=Opera 8.5 +Platform=WinCE +Win32=true + +[Opera/8.5* (Windows ME*)*] +Parent=Opera 8.5 +Platform=WinME +Win32=true + +[Opera/8.5* (Windows NT 4.0*)*] +Parent=Opera 8.5 +Platform=WinNT +Win32=true + +[Opera/8.5* (Windows NT 5.0*)*] +Parent=Opera 8.5 +Platform=Win2000 +Win32=true + +[Opera/8.5* (Windows NT 5.1*)*] +Parent=Opera 8.5 +Platform=WinXP +Win32=true + +[Opera/8.5* (Windows NT 5.2*)*] +Parent=Opera 8.5 +Platform=Win2003 +Win32=true + +[Opera/8.5* (Windows XP*)*] +Parent=Opera 8.5 +Platform=WinXP +Win32=true + +[Opera/8.5* (X11; FreeBSD*)*] +Parent=Opera 8.5 +Platform=FreeBSD + +[Opera/8.5* (X11; Linux*)*] +Parent=Opera 8.5 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.0 + +[Opera 9.0] +Parent=DefaultProperties +Browser=Opera +Version=9.0 +MajorVer=9 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.5 +w3cdomversion=1.0 + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.0*] +Parent=Opera 9.0 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.0*] +Parent=Opera 9.0 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.0*] +Parent=Opera 9.0 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.0*] +Parent=Opera 9.0 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Win2003 +Win32=true + +[Mozilla/* (X11; Linux*) Opera 9.0*] +Parent=Opera 9.0 +Platform=Linux + +[Opera/9.0* (Linux*)*] +Parent=Opera 9.0 +Platform=Linux + +[Opera/9.0* (Macintosh; *Mac OS X;*)*] +Parent=Opera 9.0 +Platform=MacOSX + +[Opera/9.0* (Windows 95*)*] +Parent=Opera 9.0 +Platform=Win95 +Win32=true + +[Opera/9.0* (Windows 98*)*] +Parent=Opera 9.0 +Platform=Win98 +Win32=true + +[Opera/9.0* (Windows CE*)*] +Parent=Opera 9.0 +Platform=WinCE +Win32=true + +[Opera/9.0* (Windows ME*)*] +Parent=Opera 9.0 +Platform=WinME +Win32=true + +[Opera/9.0* (Windows NT 4.0*)*] +Parent=Opera 9.0 +Platform=WinNT +Win32=true + +[Opera/9.0* (Windows NT 5.0*)*] +Parent=Opera 9.0 +Platform=Win2000 +Win32=true + +[Opera/9.0* (Windows NT 5.1*)*] +Parent=Opera 9.0 +Platform=WinXP +Win32=true + +[Opera/9.0* (Windows NT 5.2*)*] +Parent=Opera 9.0 +Platform=Win2003 +Win32=true + +[Opera/9.0* (Windows NT 6.0*)*] +Parent=Opera 9.0 +Platform=WinVista +Win32=true + +[Opera/9.0* (Windows XP*)*] +Parent=Opera 9.0 +Platform=WinXP +Win32=true + +[Opera/9.0* (X11; FreeBSD*)*] +Parent=Opera 9.0 +Platform=FreeBSD + +[Opera/9.0* (X11; Linux*)*] +Parent=Opera 9.0 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.1 + +[Opera 9.1] +Parent=DefaultProperties +Browser=Opera +Version=9.1 +MajorVer=9 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.1*] +Parent=Opera 9.1 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.1*] +Parent=Opera 9.1 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.1*] +Parent=Opera 9.1 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Win2003 +Win32=true + +[Mozilla/* (X11; Linux*) Opera 9.1*] +Parent=Opera 9.1 +Platform=Linux + +[Opera/9.1* (Linux*)*] +Parent=Opera 9.1 +Platform=Linux + +[Opera/9.1* (Macintosh; *Mac OS X;*)*] +Parent=Opera 9.1 +Platform=MacOSX + +[Opera/9.1* (Windows 95*)*] +Parent=Opera 9.1 +Platform=Win95 +Win32=true + +[Opera/9.1* (Windows 98*)*] +Parent=Opera 9.1 +Platform=Win98 +Win32=true + +[Opera/9.1* (Windows CE*)*] +Parent=Opera 9.1 +Platform=WinCE +Win32=true + +[Opera/9.1* (Windows ME*)*] +Parent=Opera 9.1 +Platform=WinME +Win32=true + +[Opera/9.1* (Windows NT 4.0*)*] +Parent=Opera 9.1 +Platform=WinNT +Win32=true + +[Opera/9.1* (Windows NT 5.0*)*] +Parent=Opera 9.1 +Platform=Win2000 +Win32=true + +[Opera/9.1* (Windows NT 5.1*)*] +Parent=Opera 9.1 +Platform=WinXP +Win32=true + +[Opera/9.1* (Windows NT 5.2*)*] +Parent=Opera 9.1 +Platform=Win2003 +Win32=true + +[Opera/9.1* (Windows NT 6.0*)*] +Parent=Opera 9.1 +Platform=WinVista +Win32=true + +[Opera/9.1* (Windows XP*)*] +Parent=Opera 9.1 +Platform=WinXP +Win32=true + +[Opera/9.1* (X11; FreeBSD*)*] +Parent=Opera 9.1 +Platform=FreeBSD + +[Opera/9.1* (X11; Linux*)*] +Parent=Opera 9.1 +Platform=Linux + +[Opera/9.1* (X11; SunOS*)*] +Parent=Opera 9.1 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.2 + +[Opera 9.2] +Parent=DefaultProperties +Browser=Opera +Version=9.2 +MajorVer=9 +MinorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.2*] +Parent=Opera 9.2 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win7 + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.2*] +Parent=Opera 9.2 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.2*] +Parent=Opera 9.2 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.2*] +Parent=Opera 9.2 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win2003 +Win32=true + +[Mozilla/* (Windows NT 6.0;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=WinVista + +[Mozilla/* (Windows NT 6.1;*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Win7 + +[Mozilla/* (X11; Linux*) Opera 9.2*] +Parent=Opera 9.2 +Platform=Linux + +[Opera/9.2* (Linux*)*] +Parent=Opera 9.2 +Platform=Linux + +[Opera/9.2* (Macintosh; *Mac OS X;*)*] +Parent=Opera 9.2 +Platform=MacOSX + +[Opera/9.2* (Windows 95*)*] +Parent=Opera 9.2 +Platform=Win95 +Win32=true + +[Opera/9.2* (Windows 98*)*] +Parent=Opera 9.2 +Platform=Win98 +Win32=true + +[Opera/9.2* (Windows CE*)*] +Parent=Opera 9.2 +Platform=WinCE +Win32=true + +[Opera/9.2* (Windows ME*)*] +Parent=Opera 9.2 +Platform=WinME +Win32=true + +[Opera/9.2* (Windows NT 4.0*)*] +Parent=Opera 9.2 +Platform=WinNT +Win32=true + +[Opera/9.2* (Windows NT 5.0*)*] +Parent=Opera 9.2 +Platform=Win2000 +Win32=true + +[Opera/9.2* (Windows NT 5.1*)*] +Parent=Opera 9.2 +Platform=WinXP +Win32=true + +[Opera/9.2* (Windows NT 5.2*)*] +Parent=Opera 9.2 +Platform=Win2003 +Win32=true + +[Opera/9.2* (Windows NT 6.0*)*] +Parent=Opera 9.2 +Platform=WinVista +Win32=true + +[Opera/9.2* (Windows NT 6.1*)*] +Parent=Opera 9.2 +Platform=Win7 + +[Opera/9.2* (Windows XP*)*] +Parent=Opera 9.2 +Platform=WinXP +Win32=true + +[Opera/9.2* (X11; FreeBSD*)*] +Parent=Opera 9.2 +Platform=FreeBSD + +[Opera/9.2* (X11; Linux*)*] +Parent=Opera 9.2 +Platform=Linux + +[Opera/9.2* (X11; SunOS*)*] +Parent=Opera 9.2 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.3 + +[Opera 9.3] +Parent=DefaultProperties +Browser=Opera +Version=9.3 +MajorVer=9 +MinorVer=3 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.3*] +Parent=Opera 9.3 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win7 + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.3*] +Parent=Opera 9.3 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.3*] +Parent=Opera 9.3 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.3*] +Parent=Opera 9.3 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win2003 +Win32=true + +[Mozilla/* (Windows NT 6.0;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=WinVista + +[Mozilla/* (Windows NT 6.1;*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Win7 + +[Mozilla/* (X11; Linux*) Opera 9.3*] +Parent=Opera 9.3 +Platform=Linux + +[Opera/9.3* (Linux*)*] +Parent=Opera 9.3 +Platform=Linux + +[Opera/9.3* (Macintosh; *Mac OS X;*)*] +Parent=Opera 9.3 +Platform=MacOSX + +[Opera/9.3* (Windows 95*)*] +Parent=Opera 9.3 +Platform=Win95 +Win32=true + +[Opera/9.3* (Windows 98*)*] +Parent=Opera 9.3 +Platform=Win98 +Win32=true + +[Opera/9.3* (Windows CE*)*] +Parent=Opera 9.3 +Platform=WinCE +Win32=true + +[Opera/9.3* (Windows ME*)*] +Parent=Opera 9.3 +Platform=WinME +Win32=true + +[Opera/9.3* (Windows NT 4.0*)*] +Parent=Opera 9.3 +Platform=WinNT +Win32=true + +[Opera/9.3* (Windows NT 5.0*)*] +Parent=Opera 9.3 +Platform=Win2000 +Win32=true + +[Opera/9.3* (Windows NT 5.1*)*] +Parent=Opera 9.3 +Platform=WinXP +Win32=true + +[Opera/9.3* (Windows NT 5.2*)*] +Parent=Opera 9.3 +Platform=Win2003 +Win32=true + +[Opera/9.3* (Windows NT 6.0*)*] +Parent=Opera 9.3 +Platform=WinVista +Win32=true + +[Opera/9.3* (Windows NT 6.1*)*] +Parent=Opera 9.3 +Platform=Win7 + +[Opera/9.3* (Windows XP*)*] +Parent=Opera 9.3 +Platform=WinXP +Win32=true + +[Opera/9.3* (X11; FreeBSD*)*] +Parent=Opera 9.3 +Platform=FreeBSD + +[Opera/9.3* (X11; Linux*)*] +Parent=Opera 9.3 +Platform=Linux + +[Opera/9.3* (X11; SunOS*)*] +Parent=Opera 9.3 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.4 + +[Opera 9.4] +Parent=DefaultProperties +Browser=Opera +Version=9.4 +MajorVer=9 +MinorVer=4 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.4*] +Parent=Opera 9.4 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win7 + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.4*] +Parent=Opera 9.4 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.4*] +Parent=Opera 9.4 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.4*] +Parent=Opera 9.4 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win2003 +Win32=true + +[Mozilla/* (Windows NT 6.0;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=WinVista + +[Mozilla/* (Windows NT 6.1;*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Win7 + +[Mozilla/* (X11; Linux*) Opera 9.4*] +Parent=Opera 9.4 +Platform=Linux + +[Opera/9.4* (Linux*)*] +Parent=Opera 9.4 +Platform=Linux + +[Opera/9.4* (Macintosh; *Mac OS X;*)*] +Parent=Opera 9.4 +Platform=MacOSX + +[Opera/9.4* (Windows 95*)*] +Parent=Opera 9.4 +Platform=Win95 +Win32=true + +[Opera/9.4* (Windows 98*)*] +Parent=Opera 9.4 +Platform=Win98 +Win32=true + +[Opera/9.4* (Windows CE*)*] +Parent=Opera 9.4 +Platform=WinCE +Win32=true + +[Opera/9.4* (Windows ME*)*] +Parent=Opera 9.4 +Platform=WinME +Win32=true + +[Opera/9.4* (Windows NT 4.0*)*] +Parent=Opera 9.4 +Platform=WinNT +Win32=true + +[Opera/9.4* (Windows NT 5.0*)*] +Parent=Opera 9.4 +Platform=Win2000 +Win32=true + +[Opera/9.4* (Windows NT 5.1*)*] +Parent=Opera 9.4 +Platform=WinXP +Win32=true + +[Opera/9.4* (Windows NT 5.2*)*] +Parent=Opera 9.4 +Platform=Win2003 +Win32=true + +[Opera/9.4* (Windows NT 6.0*)*] +Parent=Opera 9.4 +Platform=WinVista +Win32=true + +[Opera/9.4* (Windows NT 6.1*)*] +Parent=Opera 9.4 +Platform=Win7 + +[Opera/9.4* (Windows XP*)*] +Parent=Opera 9.4 +Platform=WinXP +Win32=true + +[Opera/9.4* (X11; FreeBSD*)*] +Parent=Opera 9.4 +Platform=FreeBSD + +[Opera/9.4* (X11; Linux*)*] +Parent=Opera 9.4 +Platform=Linux + +[Opera/9.4* (X11; SunOS*)*] +Parent=Opera 9.4 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.5 + +[Opera 9.5] +Parent=DefaultProperties +Browser=Opera +Version=9.5 +MajorVer=9 +MinorVer=5 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.5*] +Parent=Opera 9.5 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win7 + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.5*] +Parent=Opera 9.5 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.5*] +Parent=Opera 9.5 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.5*] +Parent=Opera 9.5 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win2003 +Win32=true + +[Mozilla/* (Windows NT 6.0;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=WinVista + +[Mozilla/* (Windows NT 6.1;*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Win7 + +[Mozilla/* (X11; Linux*) Opera 9.5*] +Parent=Opera 9.5 +Platform=Linux + +[Opera/9.5* (Linux*)*] +Parent=Opera 9.5 +Platform=Linux + +[Opera/9.5* (Macintosh; *Mac OS X;*)*] +Parent=Opera 9.5 +Platform=MacOSX + +[Opera/9.5* (Windows 95*)*] +Parent=Opera 9.5 +Platform=Win95 +Win32=true + +[Opera/9.5* (Windows 98*)*] +Parent=Opera 9.5 +Platform=Win98 +Win32=true + +[Opera/9.5* (Windows CE*)*] +Parent=Opera 9.5 +Platform=WinCE +Win32=true + +[Opera/9.5* (Windows ME*)*] +Parent=Opera 9.5 +Platform=WinME +Win32=true + +[Opera/9.5* (Windows NT 4.0*)*] +Parent=Opera 9.5 +Platform=WinNT +Win32=true + +[Opera/9.5* (Windows NT 5.0*)*] +Parent=Opera 9.5 +Platform=Win2000 +Win32=true + +[Opera/9.5* (Windows NT 5.1*)*] +Parent=Opera 9.5 +Platform=WinXP +Win32=true + +[Opera/9.5* (Windows NT 5.2*)*] +Parent=Opera 9.5 +Platform=Win2003 +Win32=true + +[Opera/9.5* (Windows NT 6.0*)*] +Parent=Opera 9.5 +Platform=WinVista +Win32=true + +[Opera/9.5* (Windows NT 6.1*)*] +Parent=Opera 9.5 +Platform=Win7 + +[Opera/9.5* (Windows XP*)*] +Parent=Opera 9.5 +Platform=WinXP +Win32=true + +[Opera/9.5* (X11; FreeBSD*)*] +Parent=Opera 9.5 +Platform=FreeBSD + +[Opera/9.5* (X11; Linux*)*] +Parent=Opera 9.5 +Platform=Linux + +[Opera/9.5* (X11; SunOS*)*] +Parent=Opera 9.5 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Opera 9.6 + +[Opera 9.6] +Parent=DefaultProperties +Browser=Opera +Version=9.6 +MajorVer=9 +MinorVer=6 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/* (compatible; MSIE*; Linux*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC Mac OS X;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=MacOSX + +[Mozilla/* (compatible; MSIE*; Mac_PowerPC) Opera 9.6*] +Parent=Opera 9.6 +Platform=MacPPC + +[Mozilla/* (compatible; MSIE*; Windows 2000*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 95*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win95 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows 98*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win98 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows CE*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinCE +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows ME*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinME +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 4.0*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinNT +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.0*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win2000 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.1*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 5.2*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win2003 +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.0*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinVista +Win32=true + +[Mozilla/* (compatible; MSIE*; Windows NT 6.1*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win7 + +[Mozilla/* (compatible; MSIE*; Windows XP*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinXP +Win32=true + +[Mozilla/* (compatible; MSIE*; X11; FreeBSD*) Opera 9.6*] +Parent=Opera 9.6 +Platform=FreeBSD + +[Mozilla/* (compatible; MSIE*; X11; Linux*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Linux + +[Mozilla/* (compatible; MSIE*; X11; SunOS*) Opera 9.6*] +Parent=Opera 9.6 +Platform=SunOS + +[Mozilla/* (Macintosh; *Mac OS X; ?) Opera 9.6*] +Parent=Opera 9.6 +Platform=MacOSX + +[Mozilla/* (Windows 2000;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows 95;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win95 +Win32=true + +[Mozilla/* (Windows 98;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win98 +Win32=true + +[Mozilla/* (Windows ME;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinME +Win32=true + +[Mozilla/* (Windows NT 4.0;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinNT +Win32=true + +[Mozilla/* (Windows NT 5.0;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win2000 +Win32=true + +[Mozilla/* (Windows NT 5.1;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinXP +Win32=true + +[Mozilla/* (Windows NT 5.2;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win2003 +Win32=true + +[Mozilla/* (Windows NT 6.0;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=WinVista + +[Mozilla/* (Windows NT 6.1;*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Win7 + +[Mozilla/* (X11; Linux*) Opera 9.6*] +Parent=Opera 9.6 +Platform=Linux + +[Opera/9.6* (Linux*)*] +Parent=Opera 9.6 +Platform=Linux + +[Opera/9.6* (Macintosh; *Mac OS X;*)*] +Parent=Opera 9.6 +Platform=MacOSX + +[Opera/9.6* (Windows 95*)*] +Parent=Opera 9.6 +Platform=Win95 +Win32=true + +[Opera/9.6* (Windows 98*)*] +Parent=Opera 9.6 +Platform=Win98 +Win32=true + +[Opera/9.6* (Windows CE*)*] +Parent=Opera 9.6 +Platform=WinCE +Win32=true + +[Opera/9.6* (Windows ME*)*] +Parent=Opera 9.6 +Platform=WinME +Win32=true + +[Opera/9.6* (Windows NT 4.0*)*] +Parent=Opera 9.6 +Platform=WinNT +Win32=true + +[Opera/9.6* (Windows NT 5.0*)*] +Parent=Opera 9.6 +Platform=Win2000 +Win32=true + +[Opera/9.6* (Windows NT 5.1*)*] +Parent=Opera 9.6 +Platform=WinXP +Win32=true + +[Opera/9.6* (Windows NT 5.2*)*] +Parent=Opera 9.6 +Platform=Win2003 +Win32=true + +[Opera/9.6* (Windows NT 6.0*)*] +Parent=Opera 9.6 +Platform=WinVista +Win32=true + +[Opera/9.6* (Windows NT 6.1*)*] +Parent=Opera 9.6 +Platform=Win7 + +[Opera/9.6* (Windows XP*)*] +Parent=Opera 9.6 +Platform=WinXP +Win32=true + +[Opera/9.6* (X11; FreeBSD*)*] +Parent=Opera 9.6 +Platform=FreeBSD + +[Opera/9.6* (X11; Linux*)*] +Parent=Opera 9.6 +Platform=Linux + +[Opera/9.6* (X11; SunOS*)*] +Parent=Opera 9.6 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.0 + +[Netscape 4.0] +Parent=DefaultProperties +Browser=Netscape +Version=4.0 +MajorVer=4 +Frames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[Mozilla/4.0*(Macintosh*] +Parent=Netscape 4.0 +Version=4.03 +MinorVer=03 +Platform=MacPPC + +[Mozilla/4.0*(Win95;*] +Parent=Netscape 4.0 +Platform=Win95 + +[Mozilla/4.0*(Win98;*] +Parent=Netscape 4.0 +Version=4.03 +MinorVer=03 +Platform=Win98 + +[Mozilla/4.0*(WinNT*] +Parent=Netscape 4.0 +Version=4.03 +MinorVer=03 +Platform=WinNT + +[Mozilla/4.0*(X11;*)] +Parent=Netscape 4.0 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.5 + +[Netscape 4.5] +Parent=DefaultProperties +Browser=Netscape +Version=4.5 +MajorVer=4 +MinorVer=5 +Frames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[Mozilla/4.5*(Macintosh; ?; PPC)] +Parent=Netscape 4.5 +Platform=MacPPC + +[Mozilla/4.5*(Win2000; ?)] +Parent=Netscape 4.5 +Platform=Win2000 + +[Mozilla/4.5*(Win95; ?)] +Parent=Netscape 4.5 +Platform=Win95 + +[Mozilla/4.5*(Win98; ?)] +Parent=Netscape 4.5 +Platform=Win98 + +[Mozilla/4.5*(WinME; ?)] +Parent=Netscape 4.5 +Platform=WinME + +[Mozilla/4.5*(WinNT; ?)] +Parent=Netscape 4.5 +Platform=WinNT + +[Mozilla/4.5*(WinXP; ?)] +Parent=Netscape 4.5 +Platform=WinXP + +[Mozilla/4.5*(X11*)] +Parent=Netscape 4.5 +Platform=Linux + +[Mozilla/4.51*(Macintosh; ?; PPC)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 + +[Mozilla/4.51*(Win2000; ?)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 +Platform=Win2000 + +[Mozilla/4.51*(Win95; ?)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 +Platform=Win95 + +[Mozilla/4.51*(Win98; ?)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 +Platform=Win98 + +[Mozilla/4.51*(WinME; ?)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 +Platform=WinME + +[Mozilla/4.51*(WinNT; ?)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 +Platform=WinNT + +[Mozilla/4.51*(WinXP; ?)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 +Platform=WinXP + +[Mozilla/4.51*(X11*)] +Parent=Netscape 4.5 +Version=4.51 +MinorVer=51 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.6 + +[Netscape 4.6] +Parent=DefaultProperties +Browser=Netscape +Version=4.6 +MajorVer=4 +MinorVer=6 +Frames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[Mozilla/4.6 * (OS/2; ?)] +Parent=Netscape 4.6 +Platform=OS/2 + +[Mozilla/4.6*(Macintosh; ?; PPC)] +Parent=Netscape 4.6 +Platform=MacPPC + +[Mozilla/4.6*(Win95; ?)] +Parent=Netscape 4.6 +Platform=Win95 + +[Mozilla/4.6*(Win98; ?)] +Parent=Netscape 4.6 +Platform=Win98 + +[Mozilla/4.6*(WinNT; ?)] +Parent=Netscape 4.6 +Platform=WinNT + +[Mozilla/4.61*(Macintosh; ?; PPC)] +Parent=Netscape 4.6 +Version=4.61 +MajorVer=4 +MinorVer=61 +Platform=MacPPC + +[Mozilla/4.61*(OS/2; ?)] +Parent=Netscape 4.6 +Version=4.61 +MajorVer=4 +MinorVer=61 +Platform=OS/2 + +[Mozilla/4.61*(Win95; ?)] +Parent=Netscape 4.6 +Version=4.61 +MajorVer=4 +MinorVer=61 +Platform=Win95 + +[Mozilla/4.61*(Win98; ?)] +Parent=Netscape 4.6 +Version=4.61 +Platform=Win98 + +[Mozilla/4.61*(WinNT; ?)] +Parent=Netscape 4.6 +Version=4.61 +MajorVer=4 +MinorVer=61 +Platform=WinNT + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.7 + +[Netscape 4.7] +Parent=DefaultProperties +Browser=Netscape +Version=4.7 +MajorVer=4 +MinorVer=7 +Frames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[Mozilla/4.7 * (Win2000; ?)] +Parent=Netscape 4.7 +Platform=Win2000 + +[Mozilla/4.7*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=7 +Platform=MacPPC + +[Mozilla/4.7*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=7 +Platform=Win95 + +[Mozilla/4.7*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=7 +Platform=Win98 + +[Mozilla/4.7*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=7 +Platform=WinNT +Win32=true + +[Mozilla/4.7*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=7 +Platform=Win2000 +Win32=true + +[Mozilla/4.7*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=7 +Platform=WinXP +Win32=true + +[Mozilla/4.7*(WinNT; ?)*] +Parent=Netscape 4.7 +Platform=WinNT + +[Mozilla/4.7*(X11*)*] +Parent=Netscape 4.7 +Platform=Linux + +[Mozilla/4.7*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +Platform=SunOS + +[Mozilla/4.71*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=MacPPC + +[Mozilla/4.71*(Win95; ?)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=Win95 + +[Mozilla/4.71*(Win98; ?)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=Win98 + +[Mozilla/4.71*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=WinNT +Win32=true + +[Mozilla/4.71*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=Win2000 +Win32=true + +[Mozilla/4.71*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=WinXP +Win32=true + +[Mozilla/4.71*(WinNT; ?)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=WinNT + +[Mozilla/4.71*(X11*)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=Linux + +[Mozilla/4.71*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +Version=4.71 +MinorVer=71 +Platform=SunOS + +[Mozilla/4.72*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=MacPPC + +[Mozilla/4.72*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=Win95 + +[Mozilla/4.72*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=Win98 + +[Mozilla/4.72*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=WinNT +Win32=true + +[Mozilla/4.72*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=Win2000 +Win32=true + +[Mozilla/4.72*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=WinXP +Win32=true + +[Mozilla/4.72*(WinNT; ?)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=WinNT + +[Mozilla/4.72*(X11*)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=Linux + +[Mozilla/4.72*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +MinorVer=72 +Platform=SunOS + +[Mozilla/4.73*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=MacPPC + +[Mozilla/4.73*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=Win95 + +[Mozilla/4.73*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=Win98 + +[Mozilla/4.73*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=WinNT +Win32=true + +[Mozilla/4.73*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=Win2000 +Win32=true + +[Mozilla/4.73*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=WinXP +Win32=true + +[Mozilla/4.73*(WinNT; ?)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=WinNT + +[Mozilla/4.73*(X11*)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=Linux + +[Mozilla/4.73*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +MinorVer=73 +Platform=SunOS + +[Mozilla/4.74*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=MacPPC + +[Mozilla/4.74*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=Win95 + +[Mozilla/4.74*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=Win98 + +[Mozilla/4.74*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=WinNT +Win32=true + +[Mozilla/4.74*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=Win2000 +Win32=true + +[Mozilla/4.74*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=WinXP +Win32=true + +[Mozilla/4.74*(WinNT; ?)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=WinNT + +[Mozilla/4.74*(X11*)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=Linux + +[Mozilla/4.74*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +MinorVer=74 +Platform=SunOS + +[Mozilla/4.75*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=MacPPC + +[Mozilla/4.75*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=Win95 + +[Mozilla/4.75*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=Win98 + +[Mozilla/4.75*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=WinNT +Win32=true + +[Mozilla/4.75*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=Win2000 +Win32=true + +[Mozilla/4.75*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=WinXP +Win32=true + +[Mozilla/4.75*(WinNT; ?)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=WinNT + +[Mozilla/4.75*(X11*)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=Linux + +[Mozilla/4.75*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +MinorVer=75 +Platform=SunOS + +[Mozilla/4.76*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=MacPPC + +[Mozilla/4.76*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=Win95 + +[Mozilla/4.76*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=Win98 + +[Mozilla/4.76*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=WinNT +Win32=true + +[Mozilla/4.76*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=Win2000 +Win32=true + +[Mozilla/4.76*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=WinXP +Win32=true + +[Mozilla/4.76*(WinNT; ?)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=WinNT + +[Mozilla/4.76*(X11*)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=Linux + +[Mozilla/4.76*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +MinorVer=76 +Platform=SunOS + +[Mozilla/4.77*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=MacPPC + +[Mozilla/4.77*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=Win95 + +[Mozilla/4.77*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=Win98 + +[Mozilla/4.77*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=WinNT +Win32=true + +[Mozilla/4.77*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=Win2000 +Win32=true + +[Mozilla/4.77*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=WinXP +Win32=true + +[Mozilla/4.77*(WinNT; ?)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=WinNT + +[Mozilla/4.77*(X11*)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=Linux + +[Mozilla/4.77*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +MinorVer=77 +Platform=SunOS + +[Mozilla/4.78*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=MacPPC + +[Mozilla/4.78*(Win95; ?)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=Win95 + +[Mozilla/4.78*(Win98; ?)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=Win98 + +[Mozilla/4.78*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=WinNT +Win32=true + +[Mozilla/4.78*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=Win2000 +Win32=true + +[Mozilla/4.78*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=WinXP +Win32=true + +[Mozilla/4.78*(WinNT; ?)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=WinNT + +[Mozilla/4.78*(X11*)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=Linux + +[Mozilla/4.78*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +MinorVer=78 +Platform=SunOS + +[Mozilla/4.79*(Macintosh; ?; PPC)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=MacPPC + +[Mozilla/4.79*(Win95; ?)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=Win95 + +[Mozilla/4.79*(Win98; ?)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=Win98 + +[Mozilla/4.79*(Windows NT 4.0; ?)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=WinNT +Win32=true + +[Mozilla/4.79*(Windows NT 5.0; ?)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=Win2000 +Win32=true + +[Mozilla/4.79*(Windows NT 5.1; ?)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=WinXP +Win32=true + +[Mozilla/4.79*(WinNT; ?)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=WinNT + +[Mozilla/4.79*(X11*)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=Linux + +[Mozilla/4.79*(X11; ?; SunOS*)*] +Parent=Netscape 4.7 +Version=4.79 +MinorVer=79 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 4.8 + +[Netscape 4.8] +Parent=DefaultProperties +Browser=Netscape +Version=4.8 +MajorVer=4 +MinorVer=8 +Frames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[Mozilla/4.8*(Macintosh; ?; MacPPC)*] +Parent=Netscape 4.8 +Platform=MacPPC + +[Mozilla/4.8*(Macintosh; ?; PPC Mac OS X*] +Parent=Netscape 4.8 +Platform=MacOSX + +[Mozilla/4.8*(Macintosh; ?; PPC)*] +Parent=Netscape 4.8 +Platform=MacPPC + +[Mozilla/4.8*(Win95; *)*] +Parent=Netscape 4.8 + +[Mozilla/4.8*(Win98; *)*] +Parent=Netscape 4.8 +Platform=Win98 + +[Mozilla/4.8*(Windows NT 4.0; *)*] +Parent=Netscape 4.8 +Platform=WinNT +Win32=true + +[Mozilla/4.8*(Windows NT 5.0; *)*] +Parent=Netscape 4.8 +Platform=Win2000 +Win32=true + +[Mozilla/4.8*(Windows NT 5.1; *)*] +Parent=Netscape 4.8 +Platform=WinXP +Win32=true + +[Mozilla/4.8*(WinNT; *)*] +Parent=Netscape 4.8 +Platform=WinNT + +[Mozilla/4.8*(X11; *)*] +Parent=Netscape 4.8 +Platform=Linux + +[Mozilla/4.8*(X11; *SunOS*)*] +Parent=Netscape 4.8 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 6.0 + +[Netscape 6.0] +Parent=DefaultProperties +Browser=Netscape +Version=6.0 +MajorVer=6 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape6/6.0*] +Parent=Netscape 6.0 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 6.1 + +[Netscape 6.1] +Parent=DefaultProperties +Browser=Netscape +Version=6.1 +MajorVer=6 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape6/6.1*] +Parent=Netscape 6.1 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 6.2 + +[Netscape 6.2] +Parent=DefaultProperties +Browser=Netscape +Version=6.2 +MajorVer=6 +MinorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X*) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape6/6.2*] +Parent=Netscape 6.2 +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 7.0 + +[Netscape 7.0] +Parent=DefaultProperties +Browser=Netscape +Version=7.0 +MajorVer=7 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win*9x 4.90; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/7.0*] +Parent=Netscape 7.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 7.1 + +[Netscape 7.1] +Parent=DefaultProperties +Browser=Netscape +Version=7.1 +MajorVer=7 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X Mach-O; *; rv:*) Gecko/* Netscape*/7.1] +Parent=Netscape 7.1 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/7.1*] +Parent=Netscape 7.1 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 7.2 + +[Netscape 7.2] +Parent=DefaultProperties +Browser=Netscape +Version=7.2 +MajorVer=7 +MinorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X Mach-O; *; rv:*) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/7.2*] +Parent=Netscape 7.2 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 8.0 + +[Netscape 8.0] +Parent=DefaultProperties +Browser=Netscape +Version=8.0 +MajorVer=8 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X Mach-O; *; rv:*) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/8.0*] +Parent=Netscape 8.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netscape 8.1 + +[Netscape 8.1] +Parent=DefaultProperties +Browser=Netscape +Version=8.1 +MajorVer=8 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; ?; PPC;*) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=MacPPC + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95;*) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win9x 4.90; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 4.0; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win7 + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.0; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.1; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT5.2; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT6.0; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT6.1; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; *) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*) Gecko/* Netscape*/8.1*] +Parent=Netscape 8.1 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SeaMonkey 1.0 + +[SeaMonkey 1.0] +Parent=DefaultProperties +Browser=SeaMonkey +Version=1.0 +MajorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=WinME + +[Mozilla/5.0 (Windows; ?; Win98; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=Win98 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=Win2000 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; FreeBSD*; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=FreeBSD + +[Mozilla/5.0 (X11; ?; Linux*; *; rv:1.8*) Gecko/20060221 SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*; *; rv:1.8*) Gecko/* SeaMonkey/1.0*] +Parent=SeaMonkey 1.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SeaMonkey 1.1 + +[SeaMonkey 1.1] +Parent=DefaultProperties +Browser=SeaMonkey +Version=1.1 +MajorVer=1 +MinorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=WinME + +[Mozilla/5.0 (Windows; ?; Win98; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=Win98 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=Win2000 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; FreeBSD*; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=FreeBSD + +[Mozilla/5.0 (X11; ?; Linux*; *; rv:1.8*) Gecko/20060221 SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*; *; rv:1.8*) Gecko/* SeaMonkey/1.1*] +Parent=SeaMonkey 1.1 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SeaMonkey 2.0 + +[SeaMonkey 2.0] +Parent=DefaultProperties +Browser=SeaMonkey +Version=2.0 +MajorVer=2 +Alpha=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=WinME + +[Mozilla/5.0 (Windows; ?; Win98; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=Win98 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=Win2000 + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; ?; Windows NT 6.0; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; ?; Windows NT 6.1; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=Win7 + +[Mozilla/5.0 (X11; ?; FreeBSD*; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=FreeBSD + +[Mozilla/5.0 (X11; ?; Linux*; *; rv:1.9*) Gecko/20060221 SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=Linux + +[Mozilla/5.0 (X11; ?; SunOS*; *; rv:1.9*) Gecko/* SeaMonkey/2.0*] +Parent=SeaMonkey 2.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Flock 1.0 + +[Flock 1.0] +Parent=DefaultProperties +Browser=Flock +Version=1.0 +MajorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; U; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*] +Parent=Flock 1.0 +Platform=MacOSX + +[Mozilla/5.0 (Windows; U; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*] +Parent=Flock 1.0 +Platform=WinME + +[Mozilla/5.0 (Windows; U; Windows NT 5.0*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*] +Parent=Flock 1.0 +Platform=Win2000 + +[Mozilla/5.0 (Windows; U; Windows NT 5.1*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*] +Parent=Flock 1.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*] +Parent=Flock 1.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*] +Parent=Flock 1.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1*; *; rv:1.*) Gecko/* Firefox/2.* Flock/1.*] +Parent=Flock 1.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Flock 2.0 + +[Flock 2.0] +Parent=DefaultProperties +Browser=Flock +Version=2.0 +MajorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; U; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*] +Parent=Flock 2.0 +Platform=MacOSX + +[Mozilla/5.0 (Windows; U; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*] +Parent=Flock 2.0 +Platform=WinME + +[Mozilla/5.0 (Windows; U; Windows NT 5.0*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*] +Parent=Flock 2.0 +Platform=Win2000 + +[Mozilla/5.0 (Windows; U; Windows NT 5.1*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*] +Parent=Flock 2.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 5.2*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*] +Parent=Flock 2.0 +Platform=Win2003 + +[Mozilla/5.0 (Windows; U; Windows NT 6.0*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*] +Parent=Flock 2.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1*; *; rv:1.*) Gecko/* Firefox/3.* Flock/2.*] +Parent=Flock 2.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Sleipnir 2.0 + +[Sleipnir] +Parent=DefaultProperties +Browser=Sleipnir +Version=2.0 +MajorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.0*) Sleipnir/2.*] +Parent=Sleipnir +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.1*) Sleipnir/2.*] +Parent=Sleipnir +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 5.2*) Sleipnir/2.*] +Parent=Sleipnir +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 6.0*) Sleipnir/2.*] +Parent=Sleipnir +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE ?.0; Windows NT 6.1*) Sleipnir/2.*] +Parent=Sleipnir +Platform=Win7 + +[Sleipnir*] +Parent=Sleipnir + +[Sleipnir/2.*] +Parent=Sleipnir + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Fennec 1.0 + +[Fennec 1.0] +Parent=DefaultProperties +Browser=Firefox Mobile +Version=1.0 +MajorVer=1 +Alpha=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1; *; rv:1.9*) Gecko/* Fennec/1.0*] +Parent=Fennec 1.0 +Platform=WinXP + +[Mozilla/5.0 (Windows; U; Windows NT 6.0; *; rv:1.9*) Gecko/* Fennec/1.0*] +Parent=Fennec 1.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1; *; rv:1.9*) Gecko/* Fennec/1.0*] +Parent=Fennec 1.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firebird + +[Firebird] +Parent=DefaultProperties +Browser=Firebird +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Linux; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.?; *; rv:1.*) Gecko/* Firebird Browser/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.?; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.?; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.?; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.*; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird +Win32=true + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (X11; *; IRIX*; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (X11; *; Linux*; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firebird/0.*] +Parent=Firebird + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Mozilla Firebird/0.*] +Parent=Firebird + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox + +[Firefox] +Parent=DefaultProperties +Browser=Firefox +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.3 +w3cdomversion=1.0 + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=MacOSX + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox + +[Mozilla/5.0 (OS/2; *; Warp*; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox + +[Mozilla/5.0 (Windows NT 5.?; ?; rv:1.*) Gecko/* Firefox] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win95; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.*; *; rv:1.*) Gecko/* Deer Park/Alpha*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.?; *; rv:1.*) Gecko/* Firefox/10.5] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0*; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0*; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Win32=true + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; FreeBSD*; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox + +[Mozilla/5.0 (X11; *; HP-UX*; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; Linux*; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox + +[Mozilla/5.0 (X11; *; Linux*; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firefox/0.*] +Parent=Firefox +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 1.0 + +[Firefox 1.0] +Parent=DefaultProperties +Browser=Firefox +Version=1.0 +MajorVer=1 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.3 +w3cdomversion=1.0 + +[Mozilla/5.0 (Linux; *; PPC*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=MacPPC + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=MacOSX + +[Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=OS/2 + +[Mozilla/5.0 (Windows; *; Win 9x 4.90*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=Linux + +[Mozilla/5.0 (X11; *; *Linux*; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=Linux + +[Mozilla/5.0 (X11; *; DragonFly*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firefox/1.0*] +Parent=Firefox 1.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 1.4 + +[Firefox 1.4] +Parent=DefaultProperties +Browser=Firefox +Version=1.4 +MajorVer=1 +MinorVer=4 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.3 +w3cdomversion=1.0 + +[Mozilla/5.0 (Linux; *; PPC*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=Linux + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=MacOSX + +[Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=OS/2 + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; *; Win95*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=Linux + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firefox/1.4*] +Parent=Firefox 1.4 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 1.5 + +[Firefox 1.5] +Parent=DefaultProperties +Browser=Firefox +Version=1.5 +MajorVer=1 +MinorVer=5 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.5 +w3cdomversion=1.0 + +[Mozilla/5.0 (Linux; *; PPC*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=Linux + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=MacOSX + +[Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=OS/2 + +[Mozilla/5.0 (rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2 x64; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=Linux + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.*) Gecko/* Firefox/1.5*] +Parent=Firefox 1.5 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 2.0 + +[Firefox 2.0] +Parent=DefaultProperties +Browser=Firefox +Version=2.0 +MajorVer=2 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.5 +w3cdomversion=1.0 + +[Mozilla/5.0 (Linux; *; PPC*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=Linux + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=MacOSX + +[Mozilla/5.0 (OS/2; *; Warp*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=OS/2 + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; *; Win95; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=Linux + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.8*) Gecko/* Firefox/2.0*] +Parent=Firefox 2.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.0 + +[Firefox 3.0] +Parent=DefaultProperties +Browser=Firefox +Version=3.0 +MajorVer=3 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true +ecmascriptversion=1.5 +w3cdomversion=1.0 + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=MacOSX + +[Mozilla/5.0 (Windows; *; Windows NT 5.0; *; rv:1.*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=Win2000 + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=Win7 + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=WinXP +Win32=false +Win64=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=Win2003 +Win32=false +Win64=true + +[Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=Win7 + +[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=Linux + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9*) Gecko/* Firefox/3.0*] +Parent=Firefox 3.0 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.1 + +[Firefox 3.1] +Parent=DefaultProperties +Browser=Firefox +Version=3.1 +MajorVer=3 +MinorVer=1 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=MacOSX + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=Win7 + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=WinXP +Win32=false +Win64=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=Win2003 +Win32=false +Win64=true + +[Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=Win7 + +[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=Linux + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9*) Gecko/* Firefox/3.1*] +Parent=Firefox 3.1 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Firefox 3.5 + +[Firefox 3.5] +Parent=DefaultProperties +Browser=Firefox +Version=3.5 +MajorVer=3 +MinorVer=5 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=3 +supportsCSS=true + +[Mozilla/5.0 (Macintosh; *; *Mac OS X*; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=MacOSX + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.0; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=WinVista +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 6.1; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=Win7 + +[Mozilla/5.0 (Windows; *; WinNT4.0; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.1 x64; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=WinXP +Win32=false +Win64=true + +[Mozilla/5.0 (Windows; U; Windows NT 5.2 x64; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=Win2003 +Win32=false +Win64=true + +[Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=WinVista + +[Mozilla/5.0 (Windows; U; Windows NT 6.1 x64; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=Win7 + +[Mozilla/5.0 (X11; *; *Linux*; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=Linux + +[Mozilla/5.0 (X11; *; FreeBSD*; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *; HP-UX*; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=HP-UX + +[Mozilla/5.0 (X11; *; IRIX64*; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=IRIX64 + +[Mozilla/5.0 (X11; *; OpenBSD*; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *; SunOS*; *; rv:1.9.*) Gecko/* Firefox/3.5b*] +Parent=Firefox 3.5 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Phoenix + +[Phoenix] +Parent=DefaultProperties +Browser=Phoenix +Version=0.5 +MinorVer=5 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (Windows; *; Win 9x 4.90; *; rv:1.4*) Gecko/* Phoenix/0.5*] +Parent=Phoenix +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; *; Win98; *; rv:1.4*) Gecko/* Phoenix/0.5*] +Parent=Phoenix +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.0*; *; rv:1.4*) Gecko/* Phoenix/0.5*] +Parent=Phoenix +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.1; *; rv:1.4*) Gecko/* Phoenix/0.5*] +Parent=Phoenix +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; *; Windows NT 5.2*; *; rv:1.4*) Gecko/* Phoenix/0.5*] +Parent=Phoenix +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (X11; *; Linux*; *; rv:1.4*) Gecko/* Phoenix/0.5*] +Parent=Phoenix +Platform=Linux + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Iceweasel + +[Iceweasel] +Parent=DefaultProperties +Browser=Iceweasel +Platform=Linux +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (X11; U; Linux*; *; rv:1.8*) Gecko/* Iceweasel/2.0* (Debian-*)] +Parent=Iceweasel +Version=2.0 +MajorVer=2 +MinorVer=0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.0 + +[Mozilla 1.0] +Parent=DefaultProperties +Browser=Mozilla +Version=1.0 +MajorVer=1 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.0.*) Gecko/*] +Parent=Mozilla 1.0 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.1 + +[Mozilla 1.1] +Parent=DefaultProperties +Browser=Mozilla +Version=1.1 +MajorVer=1 +MinorVer=1 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.1.*) Gecko/*] +Parent=Mozilla 1.1 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.2 + +[Mozilla 1.2] +Parent=DefaultProperties +Browser=Mozilla +Version=1.2 +MajorVer=1 +MinorVer=2 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.2.*) Gecko/*] +Parent=Mozilla 1.2 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.3 + +[Mozilla 1.3] +Parent=DefaultProperties +Browser=Mozilla +Version=1.3 +MajorVer=1 +MinorVer=3 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.3.*) Gecko/*] +Parent=Mozilla 1.3 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.4 + +[Mozilla 1.4] +Parent=DefaultProperties +Browser=Mozilla +Version=1.4 +MajorVer=1 +MinorVer=4 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=Win31 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=Win31 +Win16=true +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *Linux*; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=Linux + +[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *SunOS*; *rv:1.4*) Gecko/*] +Parent=Mozilla 1.4 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.5 + +[Mozilla 1.5] +Parent=DefaultProperties +Browser=Mozilla +Version=1.5 +MajorVer=1 +MinorVer=5 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=Win31 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=Win31 +Win16=true +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *Linux*; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=Linux + +[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *SunOS*; *rv:1.5*) Gecko/*] +Parent=Mozilla 1.5 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.6 + +[Mozilla 1.6] +Parent=DefaultProperties +Browser=Mozilla +Version=1.6 +MajorVer=1 +MinorVer=6 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=Win31 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=Win31 +Win16=true +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *Linux*; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=Linux + +[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *SunOS*; *rv:1.6*) Gecko/*] +Parent=Mozilla 1.6 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.7 + +[Mozilla 1.7] +Parent=DefaultProperties +Browser=Mozilla +Version=1.7 +MajorVer=1 +MinorVer=7 +Beta=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.5 +w3cdomversion=1.0 + +[Mozilla/5.0 (*rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=Win31 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=Win31 +Win16=true +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *Linux*; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=Linux + +[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *SunOS*; *rv:1.7*) Gecko/*] +Parent=Mozilla 1.7 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.8 + +[Mozilla 1.8] +Parent=DefaultProperties +Browser=Mozilla +Version=1.8 +MajorVer=1 +MinorVer=8 +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.5 +w3cdomversion=1.0 + +[Mozilla/5.0 (*rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=Win31 +Win16=true +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *Linux*; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=Linux + +[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *SunOS*; *rv:1.8*) Gecko/*] +Parent=Mozilla 1.8 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Mozilla 1.9 + +[Mozilla 1.9] +Parent=DefaultProperties +Browser=Mozilla +Version=1.9 +MajorVer=1 +MinorVer=9 +Alpha=true +Frames=true +IFrames=true +Tables=true +Cookies=true +JavaApplets=true +JavaScript=true +CssVersion=2 +supportsCSS=true + +[Mozilla/5.0 (*rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 + +[Mozilla/5.0 (Macintosh; ?; *Mac OS X*; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=MacOSX + +[Mozilla/5.0 (Windows; ?; Win 9x 4.90; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=WinME +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.1; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win3.11; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=Win31 +Win16=true +Win32=true + +[Mozilla/5.0 (Windows; ?; Win95; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=Win95 +Win32=true + +[Mozilla/5.0 (Windows; ?; Win98; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=Win98 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.0; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=Win2000 +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=WinXP +Win32=true + +[Mozilla/5.0 (Windows; ?; Windows NT 5.2; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=Win2003 +Win32=true + +[Mozilla/5.0 (Windows; ?; WinNT4.0; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=WinNT +Win32=true + +[Mozilla/5.0 (X11; *FreeBSD*; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=FreeBSD + +[Mozilla/5.0 (X11; *Linux*; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=Linux + +[Mozilla/5.0 (X11; *OpenBSD*; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=OpenBSD + +[Mozilla/5.0 (X11; *SunOS*; *rv:1.9*) Gecko/*] +Parent=Mozilla 1.9 +Platform=SunOS + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE Mac + +[IE Mac] +Parent=DefaultProperties +Browser=IE +Platform=MacPPC +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +JavaApplets=true +JavaScript=true +CssVersion=1 +supportsCSS=true + +[Mozilla/?.? (compatible; MSIE 4.0*; *Mac_PowerPC*] +Parent=IE Mac +Version=4.0 +MajorVer=4 +MinorVer=0 + +[Mozilla/?.? (compatible; MSIE 4.5*; *Mac_PowerPC*] +Parent=IE Mac +Version=4.5 +MajorVer=4 +MinorVer=5 + +[Mozilla/?.? (compatible; MSIE 5.0*; *Mac_PowerPC*] +Parent=IE Mac +Version=5.0 +MajorVer=5 +MinorVer=0 + +[Mozilla/?.? (compatible; MSIE 5.1*; *Mac_PowerPC*] +Parent=IE Mac +Version=5.1 +MajorVer=5 +MinorVer=1 + +[Mozilla/?.? (compatible; MSIE 5.2*; *Mac_PowerPC*] +Parent=IE Mac +Version=5.2 +MajorVer=5 +MinorVer=2 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AOL 9.0/IE 5.5 + +[AOL 9.0/IE 5.5] +Parent=DefaultProperties +Browser=AOL +Version=5.5 +MajorVer=5 +MinorVer=5 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true +AOL=true +aolVersion=9.0 +ecmascriptversion=1.3 +w3cdomversion=1.0 + +[Mozilla/?.* (?compatible; *MSIE 5.5; *AOL 9.0*)*] +Parent=AOL 9.0/IE 5.5 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Win 9x 4.90*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 95*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +CssVersion=2 +supportsCSS=true + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 4.0*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 5.5; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 5.5 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AOL 9.0/IE 6.0 + +[AOL 9.0/IE 6.0] +Parent=DefaultProperties +Browser=AOL +Version=6.0 +MajorVer=6 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true +AOL=true +aolVersion=9.0 +ecmascriptversion=1.3 +w3cdomversion=1.0 + +[Mozilla/?.* (?compatible; *MSIE 6.0; *AOL 9.0*)*] +Parent=AOL 9.0/IE 6.0 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Win 9x 4.90*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 95*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +CssVersion=2 +supportsCSS=true + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 4.0*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 6.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 6.0 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; AOL 9.0/IE 7.0 + +[AOL 9.0/IE 7.0] +Parent=DefaultProperties +Browser=AOL +Version=7.0 +MajorVer=7 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true +AOL=true +aolVersion=9.0 + +[Mozilla/?.* (?compatible; *MSIE 7.0; *AOL 9.0*)*] +Parent=AOL 9.0/IE 7.0 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Win 9x 4.90*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 95*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +CssVersion=2 +supportsCSS=true + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows 98; Win 9x 4.90*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 4.0*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.0*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.01*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.1*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 5.2*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 1*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 7.0; *AOL 9.0; *Windows NT 6.0*.NET CLR 2*.NET CLR 1*)*] +Parent=AOL 9.0/IE 7.0 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Avant Browser + +[Avant Browser] +Parent=DefaultProperties +Browser=Avant Browser +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true + +[Advanced Browser (http://www.avantbrowser.com)] +Parent=Avant Browser + +[Avant Browser*] +Parent=Avant Browser + +[Avant Browser/*] +Parent=Avant Browser + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 4.01 + +[IE 4.01] +Parent=DefaultProperties +Browser=IE +Version=4.01 +MajorVer=4 +MinorVer=01 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (?compatible; *MSIE 4.01*)*] +Parent=IE 4.01 + +[Mozilla/4.0 (compatible; MSIE 4.01; *Windows 95*)*] +Parent=IE 4.01 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 4.01; *Windows 98*)*] +Parent=IE 4.01 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 4.01; *Windows 98; Win 9x 4.90;*)*] +Parent=IE 4.01 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 4.01; *Windows NT 4.0*)*] +Parent=IE 4.01 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 4.01; *Windows NT 5.0*)*] +Parent=IE 4.01 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 4.01; *Windows NT 5.01*)*] +Parent=IE 4.01 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)] +Parent=IE 4.01 +Platform=WinNT + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 5.0 + +[IE 5.0] +Parent=DefaultProperties +Browser=IE +Version=5.0 +MajorVer=5 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (?compatible; *MSIE 5.0*)*] +Parent=IE 5.0 + +[Mozilla/4.0 (compatible; MSIE 5.0; *Windows 95*)*] +Parent=IE 5.0 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 5.0; *Windows 98*)*] +Parent=IE 5.0 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 5.0; *Windows 98; Win 9x 4.90;*)*] +Parent=IE 5.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.0; *Windows NT 4.0*)*] +Parent=IE 5.0 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 5.0; *Windows NT 5.0*)*] +Parent=IE 5.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.0; *Windows NT 5.01*)*] +Parent=IE 5.0 +Platform=Win2000 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 5.01 + +[IE 5.01] +Parent=DefaultProperties +Browser=IE +Version=5.01 +MajorVer=5 +MinorVer=01 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true + +[Mozilla/?.* (?compatible; *MSIE 5.01*)*] +Parent=IE 5.01 + +[Mozilla/4.0 (compatible; MSIE 5.01; *Windows 95*)*] +Parent=IE 5.01 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 5.01; *Windows 98*)*] +Parent=IE 5.01 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 5.01; *Windows 98; Win 9x 4.90;*)*] +Parent=IE 5.01 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.01; *Windows NT 4.0*)*] +Parent=IE 5.01 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 5.01; *Windows NT 5.0*)*] +Parent=IE 5.01 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.01; *Windows NT 5.01*)*] +Parent=IE 5.01 +Platform=Win2000 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 5.5 + +[IE 5.5] +Parent=DefaultProperties +Browser=IE +Version=5.5 +MajorVer=5 +MinorVer=5 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.2 +w3cdomversion=1.0 + +[Mozilla/?.* (?compatible; *MSIE 5.5*)*] +Parent=IE 5.5 + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows 95*)*] +Parent=IE 5.5 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows 98*)*] +Parent=IE 5.5 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows 98; Win 9x 4.90*)*] +Parent=IE 5.5 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 4.0*)*] +Parent=IE 5.5 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.0*)*] +Parent=IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.01*)*] +Parent=IE 5.5 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.1*)*] +Parent=IE 5.5 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 5.5; *Windows NT 5.2*)*] +Parent=IE 5.5 +Platform=Win2003 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 6.0 + +[IE 6.0] +Parent=DefaultProperties +Browser=IE +Version=6.0 +MajorVer=6 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.2 +w3cdomversion=1.0 +msdomversion=6.0 + +[Mozilla/?.* (?compatible; *MSIE 6.0*)*] +Parent=IE 6.0 + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows 95*)*] +Parent=IE 6.0 +Platform=Win95 + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows 98*)*] +Parent=IE 6.0 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows 98; Win 9x 4.90*)*] +Parent=IE 6.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 4.0*)*] +Parent=IE 6.0 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.0*)*] +Parent=IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.01*)*] +Parent=IE 6.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.1*)*] +Parent=IE 6.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.2*)*] +Parent=IE 6.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.2;*Win64;*)*] +Parent=IE 6.0 +Platform=WinXP +Win32=false +Win64=true + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 5.2;*WOW64;*)*] +Parent=IE 6.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 6.0; *Windows NT 6.0*)*] +Parent=IE 6.0 +Platform=WinVista + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 7.0 + +[IE 7.0] +Parent=DefaultProperties +Browser=IE +Version=7.0 +MajorVer=7 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=2 +supportsCSS=true +ecmascriptversion=1.2 +msdomversion=7.0 +w3cdomversion=1.0 + +[Mozilla/?.* (?compatible; *MSIE 7.0*)*] +Parent=IE 7.0 + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows 98*)*] +Parent=IE 7.0 +Platform=Win98 + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows 98; Win 9x 4.90;*)*] +Parent=IE 7.0 +Platform=WinME + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 4.0*)*] +Parent=IE 7.0 +Platform=WinNT + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.0*)*] +Parent=IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.01*)*] +Parent=IE 7.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.1*)*] +Parent=IE 7.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.2*)*] +Parent=IE 7.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.2;*Win64;*)*] +Parent=IE 7.0 +Platform=WinXP +Win32=false +Win64=true + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 5.2;*WOW64;*)*] +Parent=IE 7.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.0*)*] +Parent=IE 7.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 7.0; *Windows NT 6.1*)*] +Parent=IE 7.0 +Platform=Win7 + +[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; *)*] +Parent=IE 7.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; IE 8.0 + +[IE 8.0] +Parent=DefaultProperties +Browser=IE +Version=8.0 +MajorVer=8 +Win32=true +Frames=true +IFrames=true +Tables=true +Cookies=true +BackgroundSounds=true +CDF=true +VBScript=true +JavaApplets=true +JavaScript=true +ActiveXControls=true +CssVersion=3 +supportsCSS=true +ecmascriptversion=1.2 +msdomversion=8.0 +w3cdomversion=1.0 + +[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0*)*] +Parent=IE 8.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 8.0; Win32*)*] +Parent=IE 8.0 +Platform=Win32 + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0*)*] +Parent=IE 8.0 +Platform=Win2000 + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1*)*] +Parent=IE 8.0 +Platform=WinXP + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2*)*] +Parent=IE 8.0 +Platform=Win2003 + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0*)*] +Parent=IE 8.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0*)*] +Parent=IE 8.0 +Platform=WinVista + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0*)*] +Parent=IE 8.0 +Platform=WinVista +Win32=false +Win64=true + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0*)*] +Parent=IE 8.0 +Platform=WinVista +Win64=false + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1*)*] +Parent=IE 8.0 +Platform=Win7 + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0*)*] +Parent=IE 8.0 +Platform=Win7 + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0*)*] +Parent=IE 8.0 +Platform=Win7 +Win32=false +Win64=true + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0*)*] +Parent=IE 8.0 +Platform=Win7 +Win64=false + +[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 7.0; Trident/4.0*)*] +Parent=IE 8.0 +Platform=Win7 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Default Browser + +[*] +Browser=Default Browser +Version=0 +MajorVer=0 +MinorVer=0 +Platform=unknown +Alpha=false +Beta=false +Win16=false +Win32=false +Win64=false +Frames=true +IFrames=false +Tables=true +Cookies=false +BackgroundSounds=false +CDF=false +VBScript=false +JavaApplets=false +JavaScript=false +ActiveXControls=false +Stripper=false +isBanned=false +isMobileDevice=false +isSyndicationReader=false +Crawler=false +CssVersion=0 +supportsCSS=false +AOL=false +aolVersion=0 +AuthenticodeUpdate=0 +CSS=0 +WAP=false +netCLR=false +ClrVersion=0 +ECMAScriptVersion=0.0 +W3CDOMVersion=0.0 diff --git a/Compiler/MonoBleedingEdge/etc/mono/config b/Compiler/MonoBleedingEdge/etc/mono/config new file mode 100644 index 0000000..bc9a1ef --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/config @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Compiler/MonoBleedingEdge/etc/mono/mconfig/config.xml b/Compiler/MonoBleedingEdge/etc/mono/mconfig/config.xml new file mode 100644 index 0000000..a3df3b5 --- /dev/null +++ b/Compiler/MonoBleedingEdge/etc/mono/mconfig/config.xml @@ -0,0 +1,616 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + + +]]> + + + + + + +
+
+
+ + + + + +
+ +
+
+
+
+ + + +]]> + + + + + +
+
+
+
+
+
+
+ + + + + +]]> + + + + + +
+
+
+
+
+
+
+ + + + + + + + +]]> + + + + + +
+
+
+
+
+ + + + + + + +]]> + + + + + +
+
+
+
+
+ + + + +]]> + + + + + +
+
+
+
+
+ + + + + + + + + + + + +]]> + + + + + +
+
+
+ + + + + + + + + + + + + +]]> + + + + + +
+
+
+ + + + + + + + + + + + + + + + + +]]> + + + + + + + +
+
+
+ + + + + +
+ +
+
+
+ + + + ]]> + + + + + +
+
+
+
+
+
+
+ + + + +]]> + + + + + +
+
+
+
+
+
+
+ + + + +]]> + + + + + +
+
+
+
+
+ + + + + + + +]]> + + + + + +
+
+
+
+
+ + + + +]]> + + + + + +
+
+
+ + + + + + + + + + + + + + + +]]> + + + + + +
+
+
+ + + + + + + + + + + + + +]]> + + + + + + +
+
+
+
+
+
+
+ + + + +]]> + + + + + +
+
+
+
+
+
+
+ + + + + + + + + + + +]]> + + + + + +
+
+
+
+
+ + + + +]]> + + + + + + + + ]]> + + + + + + ]]> + + + + + + ]]> + + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + + +]]> + + + + +
+
+
+
+
+
+ + diff --git a/Compiler/UnityPlayer.dll b/Compiler/UnityPlayer.dll new file mode 100644 index 0000000..2172954 Binary files /dev/null and b/Compiler/UnityPlayer.dll differ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4875457 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Kirill + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..78c27e1 --- /dev/null +++ b/README.md @@ -0,0 +1,156 @@ +# Stationeers ic10 +## Change log + - [10.10.29] BIG Debubget FIX + + +--- + + +WIKI [https://icx.traineratwot.site/wiki/icx](https://icx.traineratwot.site/wiki/icx) + +## languages + +> ru + +> ru + + + +VS code Sample +project [https://github.com/Traineratwot/Ic10-and-Icx-Sample](https://github.com/Traineratwot/Ic10-and-Icx-Sample) + +[![issues](https://badgen.net/github/issues/Traineratwot/vscode-stationeers-ic10/)](https://github.com/Traineratwot/vscode-stationeers-ic10/issues?q=is%3Aissue) +[![open-issues](https://badgen.net/github/open-issues/Traineratwot/vscode-stationeers-ic10/)](https://github.com/Traineratwot/vscode-stationeers-ic10/issues) +![watchers](https://badgen.net/github/watchers/Traineratwot/vscode-stationeers-ic10/) +![stars](https://badgen.net/github/stars/Traineratwot/vscode-stationeers-ic10/) +![release](https://badgen.net/github/release/Traineratwot/vscode-stationeers-ic10/) +![last-commit](https://badgen.net/github/last-commit/Traineratwot/vscode-stationeers-ic10/) +![open-prs](https://badgen.net/github/open-prs/Traineratwot/vscode-stationeers-ic10/) + +[![npm-ic10](https://badgen.net/npm/v/ic10?label=npm-ic10)](https://www.npmjs.com/package/ic10) +[![npm](https://badgen.net/vs-marketplace/v/Traineratwot.stationeers-ic10)](https://marketplace.visualstudio.com/items?itemName=Traineratwot.stationeers-ic10) + +![npm](https://badgen.net/vs-marketplace/d/Traineratwot.stationeers-ic10) +![npm](https://badgen.net/vs-marketplace/i/Traineratwot.stationeers-ic10) +![npm](https://badgen.net/vs-marketplace/rating/Traineratwot.stationeers-ic10) +![](https://stat.aytour.ru/stat/b4b55c18a3677f92ff2fe4c73d2e55d3.png) + +[](https://discord.gg/KSVjXufkA9) + +Debugger launch + +```json +{ + "version": "0.2.0", + "configurations": [ + { + "type": "ic10", + "request": "launch", + "name": "Debug ic10", + "program": "${file}", + "stopOnEntry": true, + "trace": false + } + ] +} + +``` + +- highlights syntax for ic10 +- tooltips for function +- snippets +- Debugger + + +## BIG Update +#### So the latest releases have fixed a lot of problems + +- all new ic10 command now supported `lr`,`sra`, `sds`, `ss` and more +- new [debugger](#Debugger) system - more convenient and understandable +- environment system - now you can configure the hardware environment of your scripts [more](#Environment) +- more information on [wiki](https://icx.traineratwot.site/wiki/ic10) +- [We need you help](#help) + +## Debugger +![](https://i.imgur.com/kFweq9N.jpeg) + + +![](https://i.imgur.com/pQ1faV0.gif) + +## Environment +you can configure the hardware environment of your scripts. for this you need +1) create a file with name `.toml` +2) if you want this file to refer to only one script and not to the entire folder, name it also as a script eg: `solat.icx.ic10` => `solar.toml` +3) write in toml file with template : +```toml +[d0] +PrefabHash="StructureAdvancedPackagingMachine" +Setting=18 + +[d0.slot.0] +Quantity=5 + +[d0.Reagents.Contents] +Iron=1 +Copper=3 +``` + +## help +![](https://hadtl54cswnmgshye9o3v63hrsaidvki.cdn-freehost.com.ua/wp-content/uploads/2014/10/We-Need-You.jpg) +Add missing functions constants and parameters to the [wiki](https://icx.traineratwot.site/wiki/ic10) in your language + +If your language is not available, write Me `@Traineratwot` about it, in [discord server](https://discord.gg/KSVjXufkA9) + +Add missing devices and parametrs in [google spreadsheets](https://docs.google.com/spreadsheets/d/11a_KlDoNv-ZDTKXhhw206uO0xge3_6s2BrCYBfZh86w/edit?usp=sharing) +This is necessary for the correct hints inside the extension + +## icX + +icX is a programming language translated to ic10 used to simplify the programming of ic10 microprocessors in +the Stationeers game. + +## Quick start + +1. Install [plugin for VSC](https://marketplace.visualstudio.com/items?itemName=Traineratwot.stationeers-ic10) +2. Create a file with **.icX** type +3. Write a program. For example: + ``` + use loop + var on = d1.Open + d0.On = on + ``` +4. Save the file (Ctrl+S) +5. Copy a code from a new generated file with the same name and type **.ic10** +6. Paste code into microprocessor Ic10 in the game + +[icX wiki](https://icx.traineratwot.site/wiki/icx) + +## icX - compiler + +![](https://i.imgur.com/W4KRn28.png) + +counter left lines + +![counter](https://i.imgur.com/Y2MHtew.jpg) + +new snippets + +![snippets](https://i.imgur.com/Aokz1an.jpg) + +[demo4](https://youtu.be/hYm49tz8V0A) + +![img4](https://i.imgur.com/1H5azvo.gif) + +[demo3](https://youtu.be/klg56OXbM3Q) + +![img3](https://i.imgur.com/OYCpN7Z.gif) + +[demo2](https://youtu.be/ims5SBcao64) + +![img2](https://i.imgur.com/KQY21h6.gif) + +[demo1](https://youtu.be/KAYrX01RgmA) + +![img1](https://i.imgur.com/F1sGrVy.gif) + +![img1](https://i.imgur.com/phOgb3n.jpeg) diff --git a/core/helpers.ts b/core/helpers.ts new file mode 100644 index 0000000..ec2b247 --- /dev/null +++ b/core/helpers.ts @@ -0,0 +1,10 @@ +import fs from 'fs/promises'; +import {PathLike} from "node:fs"; +export async function checkFileExists(filePath:PathLike) { + try { + await fs.access(filePath); + return true; + } catch (error) { + return false; + } +} \ No newline at end of file diff --git a/core/ic10-vscode.ts b/core/ic10-vscode.ts new file mode 100644 index 0000000..7f5d39e --- /dev/null +++ b/core/ic10-vscode.ts @@ -0,0 +1,155 @@ +"use strict" +import vscode = require("vscode"); +import {Ic10Error} from "ic10/src/Ic10Error" + +export class Ic10Vscode { + public wiki = "https://icx.traineratwot.site/wiki/ic10" + LOCALE_KEY: string + private readonly langPath: {} + + constructor() { + this.langPath = {} + this.LOCALE_KEY = vscode.env.language.trim() + try { + if (this.LOCALE_KEY === "zh-cn") { + this.LOCALE_KEY = "zh" + } + let langPath = require(`../languages/${this.LOCALE_KEY}.json`) + if (langPath instanceof Object) { + this.langPath = langPath + } else { + langPath = require(`../languages/en.json`) + this.langPath = langPath + // console.info(`undefined lang ${this.LOCALE_KEY}`) + } + } catch (e) { + // console.warn(e) + } + } + + public getHover(name = "") { + if (this.langPath.hasOwnProperty(name)) { + let data = this.langPath[name] + if (Array.isArray(data)) { + data = data[0] + } + const type = data?.type + const op1 = data?.op1 || null + const op2 = data?.op2 || null + const op3 = data?.op3 || null + const op4 = data?.op4 || null + const op5 = data?.op5 || null + const op6 = data?.op6 || null + let preview = data?.description?.preview + if (preview) { + preview = "*" + preview + "*" + } + let description = data.description.text + if (this.LOCALE_KEY == "ru") { + description += ` + +---- + +[wiki](${this.wiki}#${name}) + ` + } + let heading = `**${name} [_${type}_]** ` + if (op1) { + heading += `op1:[${op1}] ` + } + if (op2) { + heading += `op2:[${op2}] ` + } + if (op3) { + heading += `op3:[${op3}] ` + } + if (op4) { + heading += `op4:[${op4}] ` + } + if (op5) { + heading += `op5:[${op5}] ` + } + if (op6) { + heading += `op6:[${op6}] ` + } + + return ` +${heading} + +---- +${preview} + +${description} + ` + } else { + return null + } + } + + public baseName(str) { + const base = String(str).split("/") + return base.unshift() + } + + public htmlLog(e = null) { + const html = [] + if (e instanceof Ic10Error) { + const string = `[${this.var2str(e.message, 1)}:${this.var2str(e.line, 1)}] (${this.var2str(e.lvl, 1)}) - ${this.var2str(e.message, 1)}:` + html.push(string) + } else { + for (const argumentsKey in arguments) { + if (arguments.hasOwnProperty(argumentsKey)) { + const value = arguments[argumentsKey] + html.push(this.var2str(value)) + } + } + } + return html.join("\r\n") + } + + public var2str(value: any, mode = 0) { + switch (typeof value) { + case "string": + case "number": + if (isNaN(value)) { + if (!mode) { + value = `${value}` + } else { + value = `${value}` + } + } else { + if (!mode) { + value = `${value}` + } else { + value = `${value}` + } + } + break + case "boolean": + if (!mode) { + value = `${Number(value)}` + } else { + value = `${Number(value)}` + } + break + case "object": + value = JSON.stringify(value) + if (value instanceof Array) { + if (!mode) { + value = `${value}` + } else { + value = `${value}` + } + } else { + if (!mode) { + value = `${value}` + } else { + value = `${value}` + } + } + break + } + + return value + } +} diff --git a/core/ic10.diagnostics.ts b/core/ic10.diagnostics.ts new file mode 100644 index 0000000..bf8415a --- /dev/null +++ b/core/ic10.diagnostics.ts @@ -0,0 +1,383 @@ +import * as vscode from "vscode" +import {Ic10DiagnosticError} from "ic10/src/Ic10Error"; +import InterpreterIc10 from "ic10"; +import {parseEnvironment} from "../debugger/utils"; +import {isConst} from "ic10/src/icTypes"; + +export const Ic10DiagnosticsName = "ic10_diagnostic" +const manual: { + "type": string, + "op1": string | null, + "op2": string | null, + "op3": string | null, + "op4": string | null, + "op5": string | null, + "op6": string | null, + "description": { + "preview": string | null, + "text": string | null + } +}[] = require("../languages/en.json") +const functions: string[] = require("../media/ic10.functions.json") +const keywords: string[] = require("../media/ic10.keyword.json") + +export const regexes = { + "rr1": new RegExp("[r]{1,}(r(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|a))$"), + "dr1": new RegExp("[d]{1,}(r(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|a))$"), + "r1": new RegExp("(^r(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|a)$)|(^sp$)"), + "d1": new RegExp("^d(0|1|2|3|4|5|b)$"), + "hash": new RegExp("HASH\\(.+\\)"), + "chanel": new RegExp("d[0-5]:[0-7]"), + "rr": new RegExp(`\\br(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|17|a)\\b`), + "rm": new RegExp(`(#-reset-vars-)[\\s\\S]{0,}?(#-reset-vars-)`), + "oldSpace": new RegExp("^[\\t ]+", "gmi"), + "strStart": new RegExp("^\".+$"), + "strEnd": new RegExp(".+\"$"), +} + +export class DiagnosticsError { + public range: vscode.Range + public message: string + public lvl: number + public line: number + public hash: string + + constructor(message: string, lvl, start: number, length: number, line) { + this.line = line + this.message = message + this.lvl = lvl + this.range = new vscode.Range(line, start, line, start + length) + this.hash = this.message.replace(/\s+/, "") + line + } +} + +export class DiagnosticsErrors { + public values: DiagnosticsError[] = [] + private index: string[] = [] + + push(a: DiagnosticsError) { + if (this.index.indexOf(a.hash) < 0) { + this.index.push(a.hash) + this.values.push(a) + } + } + + reset() { + this.values = [] + this.index = [] + } +} + +export class Ic10Diagnostics { + public jumps: string[] + public aliases: string[] + public errors: DiagnosticsErrors + + constructor() { + this.errors = new DiagnosticsErrors + } + + clear(doc: vscode.TextDocument, container: vscode.DiagnosticCollection) { + container.set(doc.uri, []) + } + + prepare(doc: vscode.TextDocument) { + this.jumps = [] + this.aliases = [] + this.errors.reset() + for (let lineIndex = 0; lineIndex < doc.lineCount; lineIndex++) { + try { + this.parseLine(doc, lineIndex) + } catch (e) { + console.warn(e) + } + } + for (let lineIndex = 0; lineIndex < doc.lineCount; lineIndex++) { + try { + this.parseLine2(doc, lineIndex) + } catch (e) { + console.warn(e) + } + } + const interpreterIc10 = new InterpreterIc10(doc.getText()); + parseEnvironment(interpreterIc10, doc.uri.fsPath) + for (let lineIndex = 0; lineIndex < doc.lineCount; lineIndex++) { + try { + interpreterIc10.settings.executionCallback = (e) => { + if (e instanceof Ic10DiagnosticError) { + const lineOfText = doc.lineAt(lineIndex) + + let start = 0 + let len = lineOfText.text.length + if (typeof e.obj === 'string') { + start = lineOfText.text.indexOf(e.obj) + if (start !== -1) { + len = e.obj.length + } else { + start = 0 + } + } + this.errors.push(new DiagnosticsError(e.message, e.lvl, start, len, lineIndex)) + } + } + interpreterIc10.prepareLine(lineIndex, true) + } catch (e) { + } + } + + } + + run(doc: vscode.TextDocument, container: vscode.DiagnosticCollection): void { + const diagnostics: vscode.Diagnostic[] = [] + this.prepare(doc) + + for (const de of this.errors.values) { + diagnostics.push(this.createDiagnostic(de.range, de.message, de.lvl)) + } + if (doc.lineCount > 128) { + diagnostics.push(this.createDiagnostic(new vscode.Range(128, 0, 128, 1), "Max line", vscode.DiagnosticSeverity.Error)) + } + container.set(doc.uri, diagnostics) + } + + parseLine2(doc: vscode.TextDocument, lineIndex) { + const lineOfText = doc.lineAt(lineIndex) + if (lineOfText.text.trim().length > 0) { + let text = lineOfText.text.trim() + functions.some((substring) => { + if (text.startsWith("#")) { + if (text.startsWith("#log")) { + this.errors.push(new DiagnosticsError(`Debug function: "${text}"`, 2, 0, text.length, lineIndex)) + return true + } + return true + } + text = text.replace(/#.+$/, "") + text = text.trim() + if (text.endsWith(":")) { + return true + } + if (text.startsWith(substring)) { + // console.log(this.aliases) + const words = (new InterpreterIc10).splitString(text) + this.analyzeFunctionInputs(words, text, lineIndex) + return true + } else { + return false + } + + }, this) + } + } + + parseLine(doc: vscode.TextDocument, lineIndex) { + const lineOfText = doc.lineAt(lineIndex) + if (lineOfText.text.trim().length > 0) { + var text = lineOfText.text.trim() + var test = functions.some((substring) => { + if (text.startsWith("#")) { + if (text.startsWith("#log")) { + this.errors.push(new DiagnosticsError(`Debug function: "${text}"`, 2, 0, text.length, lineIndex)) + return true + } + return true + } + text = text.replace(/#.+$/, "") + text = text.trim() + if (text.endsWith(":")) { + this.jumps.push(text) + this.aliases.push(text.replace(":", "")) + return true + } + if (text.startsWith(substring)) { + var words = text.split(/ +/) + if (text.startsWith("alias")) { + this.aliases.push(words[1]) + } + if (text.startsWith("define")) { + this.aliases.push(words[1]) + } + return true + } + return false + }, this) + this.aliases = [...new Set(this.aliases)] + if (test === false) { + this.errors.push(new DiagnosticsError(`Unknown function: "${text}"`, 0, 0, text.length, lineIndex)) + } + } + } + + analyzeFunctionInputs(words: string[], text: string, lineIndex: number): errorMsg | true { + const fn = words[0] ?? null + const op1 = words[1] ?? null; + const op2 = words[2] ?? null + const op3 = words[3] ?? null + const op4 = words[4] ?? null + const op5 = words[5] ?? null + const op6 = words[6] ?? null + + if (!manual.hasOwnProperty(fn)) { + this.errors.push(new DiagnosticsError(`Unknown function: "${text}"`, 0, 0, text.length, lineIndex)) + + //return {length: fn.length, msg: `Unknown function "${fn}"`, lvl: 0}; + } else { + var rule = manual[fn] + if (rule.type == "Function") { + if (op1 !== null && this.empty(rule.op1)) { + this.errors.push(new DiagnosticsError(`this function have\`t any Arguments: "${text}"`, 0, 0, text.length, lineIndex)) + return true + } + if (!this.empty(op1) && !this.empty(rule.op1)) { + this.parseOpRule(rule.op1, op1, text.indexOf(op1, fn.length), text, lineIndex) + } else if (this.empty(op1) && !this.empty(rule.op1)) { + this.errors.push(new DiagnosticsError(`missing first "Argument": "${text}"`, 0, 0, text.length, lineIndex)) + } + if (!this.empty(op2) && !this.empty(rule.op2)) { + this.parseOpRule(rule.op2, op2, text.indexOf(op2, fn.length + op1.length), text, lineIndex) + } else if (this.empty(op2) && !this.empty(rule.op2)) { + this.errors.push(new DiagnosticsError(`missing second "Argument": "${text}"`, 0, 0, text.length, lineIndex)) + } + if (!this.empty(op3) && !this.empty(rule.op3)) { + this.parseOpRule(rule.op3, op3, text.indexOf(op3, fn.length + op1.length + op2.length), text, lineIndex) + } else if (this.empty(op3) && !this.empty(rule.op3)) { + this.errors.push(new DiagnosticsError(`missing third "Argument": "${text}"`, 0, 0, text.length, lineIndex)) + } + if (!this.empty(op4) && !this.empty(rule.op4)) { + this.parseOpRule(rule.op4, op4, text.indexOf(op4, fn.length + op1.length + op2.length + op3.length), text, lineIndex) + } else if (this.empty(op4) && !this.empty(rule.op4)) { + this.errors.push(new DiagnosticsError(`missing fourth "Argument": "${text}"`, 0, 0, text.length, lineIndex)) + } + } else { + this.errors.push(new DiagnosticsError(`Unknown function: "${text}"`, 0, 0, text.length, lineIndex)) + } + } + return true + } + + parseOpRule(op, value, start, text, lineIndex) { + + ` + R - один из регистров r0-r17, в прямой или косвенной адресации + N - псевдоним, понятное имя, которое можно задать регистру или каналу данных + D - один из входных портов db, d0-d5 в прямой или косвенной адресации + S - номер слота порта db, d0-d5 + P - логический параметр порта db, d0-d5 + C - константа типа double, заданная непосредственно или по имени + A - номер строки, неотрицательное целое число (нумерация начинается с 0) + T - тэг + O - смещение, целое число, указывающее смещение в строках кода относительно текущей + RM - режим чтения реагентов, одно из Contents, Required или Recipe (можно 0, 1 или 2, соответственно) + RC - код реагента + H - хеш устройств, с которыми выполняется операция пакетного чтения lb или записи sb + BM - режим пакетного чтения, одно из Average, Sum, Minimum или Maximum (можно 0, 1, 2 или 3, соотвественно) + Y - текст + ` + const ops = op.replace(/ */, "").split("/") + let errors = 0 + const maxErrors = ops.length + for (const o of ops) { + switch (o.toUpperCase()) { + case "T": + case "RC": + break + case "Y": + if (!isNaN(parseFloat(value))) { + errors++ + } + if (regexes.rr1.test(value) || regexes.r1.test(value) || regexes.dr1.test(value) || regexes.d1.test(value)) { + errors++ + } + break + case "H": + if (isNaN(parseFloat(value)) && this.aliases.indexOf(value) < 0 && !regexes.hash.test(value)) { + errors++ + } + break + case "C": + case "A": + case "O": + if (!isConst(value) && isNaN(parseFloat(value)) && this.aliases.indexOf(value) < 0) { + errors++ + } + break + case "R": + if (!regexes.rr1.test(value) && !regexes.r1.test(value)) { + errors++ + } + break + case "N": + if (this.aliases.indexOf(value) < 0) { + errors++ + } + break + case "D": + if (!regexes.dr1.test(value) && !regexes.d1.test(value) && !regexes.chanel.test(value)) { + errors++ + } + break + case "S": + if (isNaN(parseFloat(value))) { + errors++ + } + break + case "P": + if (keywords.indexOf(value) < 0) { + errors++ + } + break + case "RM": + if (["Contents", "Required", "Recipe", 0, 1, 2, "0", "1", "2"].indexOf(value) < 0) { + errors++ + } + break + case "BM": + if (["Average", "Sum", "Minimum", "Maximum", 0, 1, 2, 3, "0", "1", "2", "3"].indexOf(value) < 0) { + errors++ + } + break + default : + break + } + } + if (errors >= ops.length) { + this.errors.push(new DiagnosticsError(`invalid parameter: ${value}, must be "${op}"`, 0, start, value.length, lineIndex)) + } + return true + } + + createDiagnostic(range: vscode.Range, message: string, lvl: number): vscode.Diagnostic { + + // create range that represents, where in the document the word is + const diagnostic = new vscode.Diagnostic(range, message, + lvl) + diagnostic.code = Ic10DiagnosticsName + return diagnostic + } + + empty(a): boolean { + if (a == null) { + return true + } + switch (typeof a) { + case "string": + if (!a || a.trim() == "") { + return true + } else { + return false + } + case "number": + return Boolean(a) + + } + return false + } +} + +export interface errorMsg { + msg?: string, + lvl?: number, + length?: number +} + +export var ic10Diagnostics = new Ic10Diagnostics diff --git a/core/ic10.formatter.ts b/core/ic10.formatter.ts new file mode 100644 index 0000000..6ab5beb --- /dev/null +++ b/core/ic10.formatter.ts @@ -0,0 +1,268 @@ +import * as vscode from "vscode" + +const regexes = { + "rr1": new RegExp("[rd]+(r(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|a))$"), + "r1": new RegExp("(^r(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|a)$)|(sp)"), + "d1": new RegExp("^d([012345b])$"), + "rr": new RegExp(`\\br(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|17|a)\\b`), + "rm": new RegExp(`(#-reset-vars-)[\\s\\S]*?(#-reset-vars-)`), + "oldSpace": new RegExp("^[\\t ]+", "gmi"), + "strStart": new RegExp("^\".+$"), + "strEnd": new RegExp(".+\"$"), +} + +export class ic10Formatter { + public resultText: string + private readonly text: string + private labels: {} + private lines: Array + private commands: any + private position: number + private jumps: { + jal: Object; + j: { + ra: Array + } + } + private document: vscode.TextDocument + private vars: Set + private functions: Object + private spaces: Array + private loops: Object + + + constructor(document: vscode.TextDocument) { + this.document = document + this.text = document.getText() + this.resultText = this.text + "" + this.labels = {} + this.functions = {} + this.loops = {} + this.spaces = [] + this.vars = new Set + this.jumps = { + j: { + ra: [] + }, + jal: {}, + } + + this.text = this.text.replace(regexes.oldSpace, "") + this.text = this.text.replace(regexes.rm, "") + this.init(this.text) + this.formatStart() + } + + init(text: string) { + this.labels = {} + this.functions = {} + this.loops = {} + this.spaces = [] + this.vars = new Set + this.jumps = { + j: { + ra: [] + }, + jal: {}, + } + + const self = this + + this.lines = text.split(/\r?\n/) + const commands = this.lines + .map((line: string) => { + let m = regexes.rr.exec(line) + if (m) { + self.vars.add(m[0]) + } + const args = line.trim().split(/ +/) + const command = args.shift() + return {command, args} + }) + for (const commandsKey in this.lines) { + if (commands.hasOwnProperty(commandsKey)) { + let command = commands[commandsKey] + const newArgs = {} + let mode = 0 + let argNumber = 0 + for (let argsKey in command.args) { + if (command.args.hasOwnProperty(argsKey)) { + let arg = command.args[argsKey] + if (arg.startsWith("#")) { + break + } + if (mode === 0) { + argNumber++ + } + if (regexes.strStart.test(arg)) { + mode = 1 + } + if (argNumber in newArgs) { + newArgs[argNumber] += " " + arg + } else { + newArgs[argNumber] = arg + } + if (regexes.strEnd.test(arg)) { + mode = 0 + } + } + } + commands[commandsKey].args = Object.values(newArgs) + } else { + commands.push({command: "", args: []}) + } + } + this.commands = commands + this.position = 0 + while (this.position < this.commands.length) { + let {command, args} = this.commands[this.position] + this.position++ + if (command.match(/^\w+:$/)) { + this.labels[command.replace(":", "")] = this.position + } + if (command == "j" && (args[0] == "ra" || args[0] == "r17")) { + this.jumps.j.ra.push(this.position) + } else { + if (command == "j" || command == "jr" || command == "jal") { + if (typeof this.jumps[command] == "undefined") { + this.jumps[command] = {} + } + if (typeof this.jumps[command][args[0]] == "undefined") { + this.jumps[command][args[0]] = [] + } + this.jumps[command][args[0]].push(this.position) + } + } + } + this.position = 0 + return this + } + + formatStart() { + this.addResetVar() + this.init(this.text) + let maxIterations = 1 + for (let o = 0; o < maxIterations; o++) { + const lineCount = this.lines.length + for (let i = 0; i < lineCount; i++) { + let line = this.lines[i] + if (i == 0) { + if ((/^\s*$/.test(line) || !line)) { + this.lines.splice(0, 1) + maxIterations++ + break + } + } + if (i + 1 <= lineCount) { + let nextLine = this.lines[i + 1] + if ((/^\s*$/.test(nextLine) || !nextLine) && (/^\s*$/.test(line) || !line)) { + this.lines.splice(i, 1) + maxIterations++ + break + } + } + } + } + const new_txt = this.lines.join("\n") + this.init(new_txt) + this.findFunctions() + this.findLoos() + + this.renderSpaces() + this.resultText = this.lines.join("\n") + } + + addResetVar() { + // var txt = '#-reset-vars-' + "\n" + // this.vars.forEach((value) => { + // txt += `move ${value} 0` + "\n" + // }) + // txt += '#-reset-vars-' + "\n" + // this.text = txt + this.text + } + + renderSpaces() { + let fn + this.spaces = [] + this.lines.forEach(() => { + this.spaces.push(0) + }) + for (const functionsKey in this.functions) { + fn = this.functions[functionsKey] + let start = fn.start + let end = fn.end - 2 + this.spaces.forEach(function (value, i, arr) { + if (i >= start && i <= end) { + arr[i] = value + 1 + } + }) + } + for (const loopsKey in this.loops) { + fn = this.loops[loopsKey] + let start = fn.start + let end = fn.end - 2 + this.spaces.forEach(function (value, i, arr) { + if (i >= start && i <= end) { + arr[i] = value + 1 + } + }) + } + this.lines.forEach((val, i, arr) => { + arr[i] = val.padStart(this.spaces[i] + val.trim().length, "\t") + }) + } + + findFunctions() { + for (const labelsKey in this.labels) { + try { + let position = this.labels[labelsKey] + if (this.jumps.jal.hasOwnProperty(labelsKey)) { + this.jumps.j.ra.sort((a, b) => { + return b - a + }) + let j_pos = 0 + this.jumps.j.ra.forEach((v) => { + if (v > position) { + j_pos = v + return true + } + }) + this.functions[labelsKey] = { + start: position, + end: j_pos, + calls: this.jumps.jal[labelsKey] + } + } + } catch (e) { + // console.warn(e) + } + } + } + + findLoos() { + for (const labelsKey in this.labels) { + try { + let position = this.labels[labelsKey] + if (labelsKey in this.jumps.j) { + this.jumps.j[labelsKey].sort((a, b) => { + return b - a + }) + let j_pos = 0 + this.jumps.j[labelsKey].forEach((v) => { + if (v > position) { + j_pos = v + return true + } + }) + this.loops[labelsKey] = { + start: position, + end: j_pos, + calls: this.jumps.j[labelsKey] + } + } + } catch (e) { + // console.warn(e) + } + } + } +} diff --git a/core/icB.SemanticProvider.ts b/core/icB.SemanticProvider.ts new file mode 100644 index 0000000..6af41be --- /dev/null +++ b/core/icB.SemanticProvider.ts @@ -0,0 +1,125 @@ +import vscode, {CancellationToken, ProviderResult, SemanticTokens, TextDocument} from "vscode" +import * as fs from "fs"; + +// import * as fs from "fs"; + +interface IParsedToken { + line: number; + startCharacter: number; + length: number; + tokenType: number; + tokenModifier?: number +} + +const tokenTypes = new Map() +const tokenModifiers = new Map() +export const legendIcB = (function () { + const tokenTypesLegend = [ + "parameter", "keyword", "enumMember", + "property", "function", + "variable", "label" + ] + tokenTypesLegend.forEach((tokenType, index) => tokenTypes.set(tokenType, index)) + + const tokenModifiersLegend = [ + "declaration", "readonly" + ] + tokenModifiersLegend.forEach((tokenModifier, index) => tokenModifiers.set(tokenModifier, index)) + + return new vscode.SemanticTokensLegend(tokenTypesLegend, tokenModifiersLegend) +})() + +export class IcBSemanticTokensProvider implements vscode.DocumentSemanticTokensProvider { + + provideDocumentSemanticTokens(document: TextDocument, token: CancellationToken): ProviderResult { + const allTokens = this._parseText(document.getText()) + const builder = new vscode.SemanticTokensBuilder(legendIcB) + allTokens.forEach((token) => { + builder.push( + token.line, token.startCharacter, token.length, + token.tokenType, + ) + }) + return builder.build() + } + + _parseText(text: string): IParsedToken[] { + try { + let r: IParsedToken[] = [] + const lines = text.split(/\r\n|\r|\n/) + const vars: string[] = [] + const keywords: string[] = [] + const constants: string[] = [] + + lines.forEach((line) => { + let match + try { + let re = /\b(var|alias)\s+([\w\d]+).*/ + if (re.test(line)) { + match = re.exec(line) + vars.push(match[2]) + } + re = /\b(const|define)\s+([\w\d]+).*/ + if (re.test(line)) { + match = re.exec(line) + constants.push(match[2]) + } + re = /([\w\d]+):/ + if (re.test(line)) { + match = re.exec(line) + keywords.push(match[1]) + } + } catch (e) { + } + }) + console.table(vars) + fs.writeFileSync('C:\\Projects\\IC\\vscode-stationeers-ic10\\core\\Test.json',JSON.stringify(vars)) + + lines.forEach((line, index) => { + try { + for (let value of vars) { + r = this.pushToken(value, line, index, 0, null, r) + } + for (let value of keywords) { + r = this.pushToken(value, line, index, 1, null, r) + } + for (let value of constants) { + r = this.pushToken(value, line, index, 2, 1, r) + } + } catch (e) { + } + }) + return r + } catch (e) { + } + return [] + } + + pushToken(search, line, index, tokenType, tokenModifier, out: IParsedToken[]) { + const find = new RegExp("\\b" + search + "\\b", "y") + try { + for (let i = 0; i < line.length; i++) { + if (line[i] == "#") { + break + } + find.lastIndex = i + const match = find.exec(line) + if (match && match[0] == search) { + const a: IParsedToken = { + line: index, + startCharacter: match.index, + length: search.length, + tokenType: tokenType, + } + if (tokenModifier !== null) { + a.tokenModifier = tokenModifier + } + out.push(a) + } + } + } catch (e) { + } + return out + } + +} diff --git a/core/icX-vscode.ts b/core/icX-vscode.ts new file mode 100644 index 0000000..d375b18 --- /dev/null +++ b/core/icX-vscode.ts @@ -0,0 +1,6 @@ +"use strict" +import {Ic10Vscode} from "./ic10-vscode" + +export class IcXVscode extends Ic10Vscode { + public wiki = "https://icx.traineratwot.site/wiki/icX" +} diff --git a/core/icX.SemanticProvider.ts b/core/icX.SemanticProvider.ts new file mode 100644 index 0000000..20f1a49 --- /dev/null +++ b/core/icX.SemanticProvider.ts @@ -0,0 +1,124 @@ +import vscode, {CancellationToken, ProviderResult, SemanticTokens, TextDocument} from "vscode" +import fs from "fs"; + +// import * as fs from "fs"; + +interface IParsedToken { + line: number; + startCharacter: number; + length: number; + tokenType: number; + tokenModifier?: number +} + +export const tokenTypes = new Map() +export const tokenModifiers = new Map() +export const legend = (function () { + const tokenTypesLegend = [ + "parameter", "keyword", "enumMember", + "property", "function", + "variable", "label" + ] + tokenTypesLegend.forEach((tokenType, index) => tokenTypes.set(tokenType, index)) + + const tokenModifiersLegend = [ + "declaration", "readonly" + ] + tokenModifiersLegend.forEach((tokenModifier, index) => tokenModifiers.set(tokenModifier, index)) + + return new vscode.SemanticTokensLegend(tokenTypesLegend, tokenModifiersLegend) +})() + +export class IcxSemanticTokensProvider implements vscode.DocumentSemanticTokensProvider { + + provideDocumentSemanticTokens(document: TextDocument, token: CancellationToken): ProviderResult { + const allTokens = this._parseText(document.getText()) + const builder = new vscode.SemanticTokensBuilder(legend) + allTokens.forEach((token) => { + builder.push( + token.line, token.startCharacter, token.length, + token.tokenType, + ) + }) + return builder.build() + } + + _parseText(text: string): IParsedToken[] { + try { + let r: IParsedToken[] = [] + const lines = text.split(/\r\n|\r|\n/) + const vars: string[] = [] + const keywords: string[] = [] + const constants: string[] = [] + + lines.forEach((line) => { + let match + try { + let re = /\b(var|alias)\s+([\w\d]+).*/ + if (re.test(line)) { + match = re.exec(line) + vars.push(match[2]) + } + re = /\b(const|define)\s+([\w\d]+).*/ + if (re.test(line)) { + match = re.exec(line) + constants.push(match[2]) + } + re = /([\w\d]+):/ + if (re.test(line)) { + match = re.exec(line) + keywords.push(match[1]) + } + } catch (e) { + } + }) + + lines.forEach((line, index) => { + try { + for (let value of vars) { + r = this.pushToken(value, line, index, 0, null, r) + } + for (let value of keywords) { + r = this.pushToken(value, line, index, 1, null, r) + } + for (let value of constants) { + r = this.pushToken(value, line, index, 2, 1, r) + } + } catch (e) { + } + }) + return r + } catch (e) { + } + return [] + } + + pushToken(search, line, index, tokenType, tokenModifier, out: IParsedToken[]) { + + const find = new RegExp("\\b" + search + "\\b", "y") + try { + for (let i = 0; i < line.length; i++) { + if (line[i] == "#") { + break + } + find.lastIndex = i + const match = find.exec(line) + if (match && match[0] == search) { + const a: IParsedToken = { + line: index, + startCharacter: match.index, + length: search.length, + tokenType: tokenType, + } + if (tokenModifier !== null) { + a.tokenModifier = tokenModifier + } + out.push(a) + } + } + } catch (e) { + } + return out + } + +} diff --git a/core/icX.diagnostics.ts b/core/icX.diagnostics.ts new file mode 100644 index 0000000..4aeb9ae --- /dev/null +++ b/core/icX.diagnostics.ts @@ -0,0 +1,338 @@ +import * as vscode from "vscode" +import {DiagnosticsError, errorMsg, Ic10Diagnostics} from "./ic10.diagnostics" +import {icX} from "icx-compiler" +import {icSidebar, icxOptions, LANG_ICX} from "./main" +import {Err, Errors} from "icx-compiler/src/err" +import InterpreterIc10 from "ic10"; + +const manual: { + "type": string, + "op1": string | null, + "op2": string | null, + "op3": string | null, + "op4": string | null, + "description": { + "preview": string | null, + "text": string | null + } +}[] = require("../languages/en.json") +const functions: string[] = require("../media/ic10.functions.json") +require("../media/ic10.keyword.json") +export const IcXDiagnosticsName = "icX_diagnostic" + + +class IcXDiagnostics extends Ic10Diagnostics { + private InFunction: number | false = false + private blockCount: number = 0 + private endCount: number = 0 + + constructor() { + super() + } + + prepare(doc: vscode.TextDocument) { + this.jumps = [] + this.aliases = [] + this.errors.reset() + this.blockCount = 0 + this.endCount = 0 + this.InFunction = false + const interpreterIc10 = new InterpreterIc10(doc.getText()); + + for (let lineIndex = 0; lineIndex < doc.lineCount; lineIndex++) { + try { + this.parseLine(doc, lineIndex) + const text = doc.lineAt(lineIndex).text + if (text.trim() === "end") { + this.endCount++ + } + } catch (e) { + console.warn(e) + } + } + if (this.blockCount !== this.endCount) { + this.errors.push(new DiagnosticsError(`some block is not closed. blockCount:${this.blockCount}, endCount:${this.endCount}`, 0, 0, 0, doc.lineCount)) + } + } + + run(doc: vscode.TextDocument, container: vscode.DiagnosticCollection): void { + const diagnostics: vscode.Diagnostic[] = [] + const code = doc.getText() + const compiler = new icX(code, icxOptions) + // console.log(test) + this.prepare(doc) + const test = compiler.analyze() + if (test.error instanceof Errors) { + if (test.error.isError()) { + for (const eKey in test.error.e) { + const err = test.error.e[eKey] + if (err instanceof Err) { + const l = doc.lineAt(err.line) + diagnostics.push(this.createDiagnostic(l.range, err.getUserMessage(), vscode.DiagnosticSeverity.Error)) + } + } + } + } + try { + const linesCount = test.result.split("\n").length + if (linesCount > 128) { + diagnostics.push(this.createDiagnostic(new vscode.Range(0, 0, 0, 1), "Max line", vscode.DiagnosticSeverity.Error)) + } + this.view(test, linesCount) + } catch (e) { + + } + for (const de of this.errors.values) { + diagnostics.push(this.createDiagnostic(de.range, de.message, de.lvl)) + } + container.set(doc.uri, diagnostics) + } + + view(test, linesCount) { + const b = Math.abs(test.vars.empty.length - 15) + const p = b / 15 * 100 + const b2 = Math.abs(linesCount - 128) + const p2 = linesCount / 128 * 100 + let errors = "
    " + this.errors.values.forEach((item) => { + errors += "
      [" + item.line + "]: " + item.message + "
    " + }) + let content = ` +
    +
      +
        + vars: +
          + temp: ${test.vars.temps.length} +
        +
          + aliases: ${test.vars.aliases.length} +
        +
          + left vars: ${test.vars.empty.length} +
            +
            +
            +
            +
          +
        +
      +
        +
          + left ic10 lines: ${b2} +
            +
            +
            +
            +
          +
        +
      +
    +
    +
    + + ` + if (this.errors.values.length > 0) { + content += ` +
    + ${errors} +
    ` + } + icSidebar.section("icxStats", content, LANG_ICX) + let comments: any = test.use.has("comments") + let aliases: any = test.use.has("aliases") + let loop: any = test.use.has("loop") + let constants: any = test.use.has("constants") + comments = comments ? comments : icxOptions.comments + aliases = aliases ? aliases : icxOptions.aliases + loop = loop ? loop : icxOptions.loop + constants = constants ? constants : icxOptions.constants + if (comments) { + comments = "checked" + } else { + comments = "" + } + if (aliases) { + aliases = "checked" + } else { + aliases = "" + } + if (loop) { + loop = "checked" + } else { + loop = "" + } + if (constants) { + constants = "checked" + } else { + constants = "" + } + icSidebar.section("settings", ` +
    +
    +
      +
        + + +
      +
        + + +
      +
        + + +
      +
        + + +
      +
    +
    +
    + `, LANG_ICX) + } + + parseLine(doc: vscode.TextDocument, lineIndex) { + const lineOfText = doc.lineAt(lineIndex) + if (lineOfText.text.trim().length > 0) { + let text = lineOfText.text.trim() + functions.some((substring) => { + if (text.startsWith("#")) { + if (text.startsWith("#log") || text.startsWith("debug")) { + this.errors.push(new DiagnosticsError(`Debug function: "${text}"`, 2, 0, text.length, lineIndex)) + return true + } + return true + } + const words = text.split(/ +/) + text = text.replace(/#.+$/, "") + text = text.trim() + if (text.endsWith(":")) { + this.jumps.push(text) + return true + } + if (text.startsWith("alias")) { + this.aliases.push(words[1]) + } + if (text.startsWith("var")) { + this.aliases.push(words[1]) + } + if (text.startsWith("define")) { + this.aliases.push(words[1]) + } + if (text.startsWith("const")) { + this.aliases.push(words[1]) + } + if (text.startsWith("if")) { + this.blockCount++ + this.analyzeIF(words, text, lineIndex) + return true + } + if (this.InFunction !== false) { + if (text.startsWith("function") && this.InFunction !== lineIndex) { + this.errors.push(new DiagnosticsError(`Do not create function in function`, 0, 0, text.length, lineIndex)) + } + if (text.trim() === "end") { + this.InFunction = false + } + } else { + if (text.startsWith("function")) { + this.blockCount++ + this.InFunction = lineIndex + } + } + if (text.startsWith(substring)) { + this.analyzeFunctionInputs(words, text, lineIndex) + return true + } + if (text.startsWith(substring)) { + this.analyzeFunctionInputs(words, text, lineIndex) + } + return false + }, this) + this.aliases = [...new Set(this.aliases)] + } + //console.log(this.aliases) + } + + analyzeFunctionInputs(words: string[], text: string, lineIndex: number): errorMsg | true { + const fn = words[0] ?? null + const op1 = words[1] ?? null + const op2 = words[2] ?? null + const op3 = words[3] ?? null + const op4 = words[4] ?? null + + if (!manual.hasOwnProperty(fn)) { + return true + //return {length: fn.length, msg: `Unknown function "${fn}"`, lvl: 0}; + } else { + const rule = manual[fn] + if (fn === "return") { + if (!this.InFunction) { + this.errors.push(new DiagnosticsError(`"return" must be in function`, 0, 0, text.length, lineIndex)) + } + return true + } + if (rule.type == "Function") { + if (op1 !== null && this.empty(rule.op1)) { + this.errors.push(new DiagnosticsError(`this function have\`t any Arguments: "${text}"`, 0, 0, text.length, lineIndex)) + return true + } + if (!this.empty(op1) && !this.empty(rule.op1)) { + this.parseOpRule(rule.op1, op1, text.indexOf(op1, fn.length), text, lineIndex) + } else if (this.empty(op1) && !this.empty(rule.op1)) { + this.errors.push(new DiagnosticsError(`missing first "Argument": "${text}"`, 0, 0, text.length, lineIndex)) + } + if (!this.empty(op2) && !this.empty(rule.op2)) { + this.parseOpRule(rule.op2, op2, text.indexOf(op2, fn.length + op1.length), text, lineIndex) + } else if (this.empty(op2) && !this.empty(rule.op2)) { + this.errors.push(new DiagnosticsError(`missing second "Argument": "${text}"`, 0, 0, text.length, lineIndex)) + } + if (!this.empty(op3) && !this.empty(rule.op3)) { + this.parseOpRule(rule.op3, op3, text.indexOf(op3, fn.length + op1.length + op2.length), text, lineIndex) + } else if (this.empty(op3) && !this.empty(rule.op3)) { + this.errors.push(new DiagnosticsError(`missing third "Argument": "${text}"`, 0, 0, text.length, lineIndex)) + } + if (!this.empty(op4) && !this.empty(rule.op4)) { + this.parseOpRule(rule.op4, op4, text.indexOf(op4, fn.length + op1.length + op2.length + op3.length), text, lineIndex) + } else if (this.empty(op4) && !this.empty(rule.op4)) { + this.errors.push(new DiagnosticsError(`missing fourth "Argument": "${text}"`, 0, 0, text.length, lineIndex)) + } + } else { + return true + } + } + return true + } + + analyzeIF(words: string[], text: string, lineIndex: number): errorMsg | true { + if (text.includes("&")) { + if (!text.includes("&&")) { + this.errors.push(new DiagnosticsError(`Incorrect 'and' operator "$" must be "&&"`, 0, 0, text.length, lineIndex)) + } + } + if (text.includes("|")) { + if (!text.includes("||")) { + this.errors.push(new DiagnosticsError(`Incorrect 'or' operator "|" must be "||"`, 0, 0, text.length, lineIndex)) + } + } + if (text.includes("=")) { + if (!text.includes("==") && !text.includes("~=") && !text.includes("!=") && !text.includes("<=") && !text.includes(">=")) { + this.errors.push(new DiagnosticsError(`Incorrect operator must be "==" or "!=" or "~=" or ">=" or "<="`, 0, 0, text.length, lineIndex)) + } + } + return true + } + + createDiagnostic(range: vscode.Range, message: string, lvl: number): vscode.Diagnostic { + + // create range that represents, where in the document the word is + const diagnostic = new vscode.Diagnostic(range, message, + lvl) + diagnostic.code = IcXDiagnosticsName + return diagnostic + } +} + +export var icXDiagnostics = new IcXDiagnostics diff --git a/core/icX.formatter.ts b/core/icX.formatter.ts new file mode 100644 index 0000000..c95eab9 --- /dev/null +++ b/core/icX.formatter.ts @@ -0,0 +1,204 @@ +import * as vscode from "vscode" +import {icX} from "icx-compiler" +import {icXBlock, icXElem} from "icx-compiler/src/classes" + +const regexes = { + "rr1": new RegExp("[rd]+(r(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|a))$"), + "r1": new RegExp("(^r(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|a)$)|(sp)"), + "d1": new RegExp("^d([012345b])$"), + "rr": new RegExp(`\\br(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|17|a)\\b`), + "rm": new RegExp(`(#-reset-vars-)[\\s\\S]*?(#-reset-vars-)`), + "oldSpace": new RegExp("^[\\t ]+", "gmi"), + "strStart": new RegExp("^\".+$"), + "strEnd": new RegExp(".+\"$"), +} + +export class icXFormatter { + public resultText: string + private readonly text: string + private labels: {} + private readonly lines: Array + private commands: any + private position: number + private jumps: { + jal: Object; + j: { + ra: Array + } + } + private document: vscode.TextDocument + private vars: Set + private functions: Object + private spaces: Array + private loops: Object + private icxOptions: { + comments: boolean + aliases: boolean + loop: boolean + constants: boolean + } + private icX: icX + + constructor(document: vscode.TextDocument, icxOptions) { + this.document = document + this.icxOptions = icxOptions + this.text = document.getText() + + this.resultText = "" + this.text = this.text.replace(regexes.oldSpace, "") + this.lines = this.text.split(/\r?\n/) + this.icX = new icX(this.text, icxOptions) + this.init() + } + + init() { + this.labels = {} + this.functions = {} + this.loops = {} + this.spaces = [] + this.vars = new Set + this.jumps = { + j: { + ra: [] + }, + jal: {}, + } + + const self = this + + const commands = this.lines + .map((line: string) => { + let m = regexes.rr.exec(line) + if (m) { + self.vars.add(m[0]) + } + const args = line.trim().split(/ +/) + const command = args.shift() + return {command, args} + }) + for (const commandsKey in this.lines) { + if (commands.hasOwnProperty(commandsKey)) { + let command = commands[commandsKey] + const newArgs = {} + let mode = 0 + let argNumber = 0 + for (let argsKey in command.args) { + if (command.args.hasOwnProperty(argsKey)) { + let arg = command.args[argsKey] + if (arg.startsWith("#")) { + break + } + if (mode === 0) { + argNumber++ + } + if (regexes.strStart.test(arg)) { + mode = 1 + } + if (argNumber in newArgs) { + newArgs[argNumber] += " " + arg + } else { + newArgs[argNumber] = arg + } + if (regexes.strEnd.test(arg)) { + mode = 0 + } + } + } + commands[commandsKey].args = Object.values(newArgs) + } else { + commands.push({command: "", args: []}) + } + } + this.commands = commands + this.position = 0 + while (this.position < this.commands.length) { + let {command, args} = this.commands[this.position] + this.position++ + if (command.match(/^\w+:$/)) { + this.labels[command.replace(":", "")] = this.position + } + if (command == "j" && (args[0] == "ra" || args[0] == "r17")) { + this.jumps.j.ra.push(this.position) + } else { + if (command == "j" || command == "jr" || command == "jal") { + if (typeof this.jumps[command] == "undefined") { + this.jumps[command] = {} + } + if (typeof this.jumps[command][args[0]] == "undefined") { + this.jumps[command][args[0]] = [] + } + this.jumps[command][args[0]].push(this.position) + } + } + } + this.position = 0 + this.findLoos() + this.renderSpaces() + this.recursiveSpace(this.icX.structure.content) + this.resultText = this.lines.join("\n") + } + + addSpace(text, count) { + return "\t".repeat(count) + text + } + + recursiveSpace(content, level = 0) { + for (const contentKey in content) { + if (content.hasOwnProperty(contentKey)) { + const c = content[contentKey] + if (c instanceof icXBlock) { + for (let i = c.originalPosition + 1; i <= c.end; i++) { + if (this.lines[i].trim() === "else") { + this.lines[i] = this.addSpace(this.lines[i], level) + } else { + this.lines[i] = this.addSpace(this.lines[i], level + 1) + } + } + this.recursiveSpace(c.content, level) + } else if (c instanceof icXElem) { + this.lines[c.originalPosition] = this.addSpace(this.lines[c.originalPosition], level) + } + } + } + } + + renderSpaces() { + for (const loopsKey in this.loops) { + const fn = this.loops[loopsKey] + let start = fn.start + let end = fn.end - 2 + for (let i = start; i <= end; i++) { + this.lines[i] = this.addSpace(this.lines[i], 1) + } + } + } + + + findLoos() { + for (const labelsKey in this.labels) { + try { + let position = this.labels[labelsKey] + if (labelsKey in this.jumps.j) { + this.jumps.j[labelsKey].sort((a, b) => { + return b - a + }) + let j_pos = 0 + this.jumps.j[labelsKey].forEach((v) => { + if (v > position) { + j_pos = v + return true + } + }) + this.loops[labelsKey] = { + start: position, + end: j_pos, + calls: this.jumps.j[labelsKey] + } + + } + } catch (e) { + // console.warn(e) + } + } + } +} diff --git a/core/main.ts b/core/main.ts new file mode 100644 index 0000000..ff5355e --- /dev/null +++ b/core/main.ts @@ -0,0 +1,576 @@ +"use strict" +import * as vscode from "vscode" +import {FileDeleteEvent, Hover} from "vscode" +import {Ic10Vscode} from "./ic10-vscode" +import {ic10Formatter} from "./ic10.formatter" +import {IcxSemanticTokensProvider, legend} from "./icX.SemanticProvider" +import {IcBSemanticTokensProvider, legendIcB} from "./icB.SemanticProvider" +import {Ic10SidebarViewProvider} from "./sidebarView" +import {ic10Diagnostics} from "./ic10.diagnostics" +import {icX} from "icx-compiler" +import {icXDiagnostics} from "./icX.diagnostics" +import {icXFormatter} from "./icX.formatter" +import {Err, Errors} from "icx-compiler/src/err" +import {IcXVscode} from "./icX-vscode" +import InterpreterIc10 from "ic10" +import {Ic10Error} from "ic10/src/Ic10Error" +import {parseEnvironment} from "../debugger/utils"; +import {BasicCompiler} from "../Compiler/BasicCompiler"; +import {hashStr} from "ic10/src/Utils"; +import {checkFileExists} from "./helpers"; +import fs from "fs/promises"; +import path from "path"; + + +const LOCALE_KEY: string = vscode.env.language +const ic10_hover = new Ic10Vscode() +const icX_hover = new IcXVscode() +export const LANG_IC10 = "ic10" +export const LANG_ICX = "icX" +export const LANG_ICB = "icB" +const interpreterIc10 = new InterpreterIc10(null) +let interpreterIc10State = 0 +let leftCodeLength: vscode.StatusBarItem +export var icSidebar: Ic10SidebarViewProvider +const onChangeCallbacks: { + ChangeActiveTextEditor: Array + ChangeTextEditorSelection: Array + SaveTextDocument: Array + DeleteFiles: Array<(e: FileDeleteEvent) => void> +} = { + ChangeActiveTextEditor: [], + ChangeTextEditorSelection: [], + SaveTextDocument: [], + DeleteFiles: [] +} +export const icxOptions: { + comments: boolean + aliases: boolean + loop: boolean + constants: boolean +} = { + comments: false, + aliases: false, + loop: false, + constants: false, +} + +export function activate(ctx: vscode.ExtensionContext) { + // console.info('activate 1c10') + view(ctx) + //------------- + formatter(ctx) + command(ctx) + semantic(ctx) + statusBar(ctx) + diagnostic(ctx) + hover(ctx) + icxStart() + //------------- + onChange(ctx) +} + +function icxStart() { + onChangeCallbacks.SaveTextDocument.push(() => { + // console.log('onSaveTextDocument') + if (vscode.window.activeTextEditor.document.languageId == LANG_ICX) { + vscode.commands.executeCommand(LANG_ICX + ".compile") + } + }) + onChangeCallbacks.SaveTextDocument.push(() => { + // console.log('onSaveTextDocument') + if (vscode.window.activeTextEditor.document.languageId == LANG_ICB) { + vscode.commands.executeCommand(LANG_ICB + ".compile") + } + }) + onChangeCallbacks.DeleteFiles.push(async (e) => { + //Удаляем мусор от ICB + console.log(e) + e.files.map(async (file) => { + try { + const hash = hashStr(path.relative(vscode.workspace.workspaceFolders[0].uri.fsPath, file.fsPath)) + const vscodeFolder = path.join(vscode.workspace.workspaceFolders[0].uri.fsPath, '.vscode', 'tmp', String(hash)); + if (await checkFileExists(vscodeFolder)) { + await fs.rm(vscodeFolder, {recursive: true}) + } + const compiledFile = path.join(path.dirname(file.fsPath), path.basename(file.fsPath) + '.ic10'); + if (await checkFileExists(compiledFile)) { + await fs.rm(compiledFile, {recursive: true}) + } + } catch (e) { + console.error(e) + } + }) + }) +} + +function hover(ctx: vscode.ExtensionContext) { + // console.time('hover') + try { + ctx.subscriptions.push(vscode.languages.registerHoverProvider(LANG_IC10, { + provideHover(document, position) { + const word = document.getWordRangeAtPosition(position) + const text = document.getText(word) + return new Hover(ic10_hover.getHover(text)) + } + })) + ctx.subscriptions.push(vscode.languages.registerHoverProvider(LANG_ICX, { + provideHover(document, position) { + const word = document.getWordRangeAtPosition(position) + const text = document.getText(word) + return new Hover(icX_hover.getHover(text)) + } + })) + } catch (e) { + // console.error(e) + } + // console.timeEnd('hover') +} + +function formatter(ctx: vscode.ExtensionContext) { + // console.time('formatter') + try { + function replaceTextInDocument(newText: string, document: vscode.TextDocument) { + const firstLine = document.lineAt(0) + const lastLine = document.lineAt(document.lineCount - 1) + const range = new vscode.Range( + 0, + firstLine.range.start.character, + document.lineCount - 1, + lastLine.range.end.character + ) + return vscode.TextEdit.replace(range, newText) + } + + try { + + vscode.languages.registerDocumentFormattingEditProvider(LANG_IC10, { + provideDocumentFormattingEdits(document: vscode.TextDocument): vscode.TextEdit[] { + try { + const formatter = new ic10Formatter(document) + return [replaceTextInDocument(formatter.resultText, document)] + } catch (e) { + + } + } + }) + } catch (e) { + // console.error(e) + } + try { + vscode.languages.registerDocumentFormattingEditProvider(LANG_ICX, { + provideDocumentFormattingEdits(document: vscode.TextDocument): vscode.TextEdit[] { + try { + const formatter = new icXFormatter(document, icxOptions) + return [replaceTextInDocument(formatter.resultText, document)] + } catch (e) { + + } + } + }) + } catch (e) { + // console.error(e) + } + } catch (e) { + // console.error(e) + } + // console.timeEnd('formatter') +} + +function command(ctx: vscode.ExtensionContext) { + // console.time('command') + try { + ctx.subscriptions.push(vscode.commands.registerCommand(LANG_IC10 + ".run", () => { + if (!interpreterIc10State) { + vscode.window.showInformationMessage("Running") + const code = vscode.window.activeTextEditor.document.getText() + const title = path.basename(vscode.window.activeTextEditor.document.fileName) + interpreterIc10State = 1 + const panel = vscode.window.createWebviewPanel( + "ic10.debug", // Identifies the type of the webview. Used internally + `${title}-Debug`, // Title of the panel displayed to the user + vscode.ViewColumn.Two, // Editor column to show the new webview panel in. + ) + const settings = { + debug: true, + tickTime: 500, + debugCallback: function () { + panel.webview.html += ic10_hover.htmlLog(...arguments) + "
    " + }, + logCallback: function () { + panel.webview.html += ic10_hover.htmlLog(...arguments) + "
    " + }, + executionCallback: function (e: Ic10Error) { + panel.webview.html += ic10_hover.htmlLog(...arguments) + "
    " + }, + } + const ic10 = interpreterIc10.setSettings(settings).init(code) + const env = parseEnvironment(ic10, vscode.window.activeTextEditor.document.uri.fsPath) + vscode.window.showInformationMessage(`Окружения: ${env}`) + ic10.run().then(); + } + })) + ctx.subscriptions.push(vscode.commands.registerCommand(LANG_IC10 + ".stop", () => { + if (interpreterIc10State) { + vscode.window.showInformationMessage("Stop") + interpreterIc10.stop() + } + })) + ctx.subscriptions.push(vscode.commands.registerCommand(LANG_IC10 + ".debug.variables.write", (variable) => { + const ds = vscode.debug.activeDebugSession + const input = vscode.window.createInputBox() + input.title = "set " + variable.variable.name + input.show() + input.onDidAccept(function () { + ds.customRequest("ic10.debug.variables.write", {variable: variable, value: input.value}) + input.hide() + }) + })) + ctx.subscriptions.push(vscode.commands.registerCommand(LANG_ICX + ".compile", () => { + try { + const code = vscode.window.activeTextEditor.document.getText() + // @ts-ignore + const icx = new icX(code, icxOptions) + const compiled = icx.getCompiled() + if (compiled) { + // console.log(compiled) + const content = Buffer.from(compiled) + const file = vscode.window.activeTextEditor.document.uri + ".ic10" + vscode.window.showInformationMessage("Compiling output: " + file) + vscode.workspace.fs.writeFile(vscode.Uri.parse(file), content)// console.log('file', file) + } else { + vscode.window.showErrorMessage("compiling error: " + compiled) + } + } catch (e) { + if (e instanceof Errors || e instanceof Err) { + vscode.window.showErrorMessage("compiling error: " + e.getUserMessage()) + } else { + vscode.window.showErrorMessage("compiling error", JSON.stringify(e)) + } + console.error(e) + } + })) + ctx.subscriptions.push(vscode.commands.registerCommand(LANG_ICX + ".open.wiki", async () => { + const panel = vscode.window.createWebviewPanel( + 'icX.wiki', + 'wiki', + vscode.ViewColumn.Beside, + { + enableScripts: true, + retainContextWhenHidden: true, + enableCommandUris: true, + enableFindWidget: true + } + ); + const _disposables: vscode.Disposable[] = [] + // Listen for when the panel is disposed + // This happens when the user closes the panel or when the panel is closed programmatically + panel.onDidDispose(() => this.dispose(), null, _disposables) + + // Update the content based on view changes + panel.onDidChangeViewState( + e => { + if (panel.visible) { + this._update() + } + }, + null, + _disposables + ) + + // Handle messages from the webview + panel.webview.onDidReceiveMessage( + message => { + switch (message.command) { + case "alert": + vscode.window.showErrorMessage(message.text) + return + } + }, + null, + _disposables + ) + + const ext = path.extname(vscode.window.activeTextEditor.document.uri.path).replace(".","") + + panel.webview.html = ` + + +` + })) + ctx.subscriptions.push(vscode.commands.registerCommand(LANG_ICB + ".compile", async () => { + try { + const code = vscode.window.activeTextEditor.document.getText() + const hash = hashStr(path.relative(vscode.workspace.workspaceFolders[0].uri.fsPath, vscode.window.activeTextEditor.document.uri.fsPath)) + const compiled = await (new BasicCompiler(code, String(hash))).compile() + if (compiled) { + // console.log(compiled) + const content = Buffer.from(compiled.output) + const file = vscode.window.activeTextEditor.document.uri + ".ic10" + vscode.window.showInformationMessage("Compiling output: " + file) + vscode.workspace.fs.writeFile(vscode.Uri.parse(file), content)// console.log('file', file) + compiled.errors.forEach((e) => { + console.error(e) + }) + } else { + vscode.window.showErrorMessage("compiling error: " + compiled) + } + } catch (e) { + if (e instanceof Errors || e instanceof Err) { + vscode.window.showErrorMessage("compiling error: " + e.getUserMessage()) + } else { + vscode.window.showErrorMessage("compiling error", JSON.stringify(e)) + } + console.error(e) + } + })) + + } catch (e) { + vscode.window.showErrorMessage("Commands: " + e.toString()) + console.error(e) + } +} + +function semantic(ctx: vscode.ExtensionContext) { + console.time('semantic') + try { + ctx.subscriptions.push(vscode.languages.registerDocumentSemanticTokensProvider( + {language: LANG_ICB, scheme: "file"}, + new IcBSemanticTokensProvider, + legendIcB + ) + ) + ctx.subscriptions.push(vscode.languages.registerDocumentSemanticTokensProvider( + {language: LANG_ICX, scheme: "file"}, + new IcxSemanticTokensProvider, + legend + ) + ) + } catch (e) { + console.error(e) + } + console.timeEnd('semantic') +} + +function view(ctx: vscode.ExtensionContext) { + console.time("view") + try { + icSidebar = new Ic10SidebarViewProvider(ctx.extensionUri) + ctx.subscriptions.push(vscode.window.registerWebviewViewProvider(Ic10SidebarViewProvider.viewType, icSidebar)) + onChangeCallbacks.ChangeActiveTextEditor.push(() => { + icSidebar.clear() + if (vscode.window.activeTextEditor.document.languageId == LANG_IC10) { + renderIc10() + } + if (vscode.window.activeTextEditor.document.languageId == LANG_ICX) { + renderIcX() + } + if (vscode.window.activeTextEditor.document.languageId == LANG_ICB) { + } + }) + icSidebar.start() + } catch (e) { + console.error(e) + } + console.timeEnd("view") +} + +function statusBar(ctx: vscode.ExtensionContext) { + // console.time('statusBar') + try { + leftCodeLength = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left, 100) + ctx.subscriptions.push(leftCodeLength) + onChangeCallbacks.ChangeTextEditorSelection.push(() => { + updateStatusBarItem() + }) + updateStatusBarItem() + + function updateStatusBarItem(): void { + const n = getNumberLeftLines() + if (n) { + if (LOCALE_KEY == "ru2") { + leftCodeLength.text = + `осталось ${n[0]} ${n[1]} строк` + + } else { + leftCodeLength.text = + `${n[0]}${n[1]} line(s) left` + + } + leftCodeLength.show() + } else { + leftCodeLength.hide() + } + } + + + } catch (e) { + // console.error(e) + } + // console.timeEnd('statusBar') +} + +function ChangeActiveTextEditor(editor:vscode.TextEditor): void { + onChangeCallbacks.ChangeActiveTextEditor.forEach((e) => { + e.call(null, editor) + }) +} + +function ChangeTextEditorSelection(editor:vscode.TextEditorSelectionChangeEvent): void { + if (vscode.window.activeTextEditor.document.languageId == LANG_IC10 || vscode.window.activeTextEditor.document.languageId == LANG_ICX) { + + onChangeCallbacks.ChangeTextEditorSelection.forEach((e) => { + e.call(null, editor) + }) + } +} + +function SaveTextDocument(): void { + onChangeCallbacks.SaveTextDocument.forEach((e) => { + e.call(null) + }) +} + +function DeleteFiles(event: FileDeleteEvent): void { + onChangeCallbacks.DeleteFiles.forEach((e) => { + e.call(null, event) + }) +} + +function onChange(ctx:vscode.ExtensionContext) { + ctx.subscriptions.push(vscode.window.onDidChangeActiveTextEditor(ChangeActiveTextEditor)) + ctx.subscriptions.push(vscode.workspace.onDidSaveTextDocument(SaveTextDocument)) + ctx.subscriptions.push(vscode.workspace.onDidDeleteFiles(DeleteFiles)) +} + +function getNumberLeftLines(): Array | false { + const text = vscode.window.activeTextEditor.document.getText() + if (vscode.window.activeTextEditor.document.languageId == LANG_IC10) { + let left = 128 + const a = " ▁▃▅▉" + if (text) { + left = left - text.split("\n").length + } + const x = a[Math.ceil(left / 32)] ?? "" + return [x, left] + } else { + return false + } +} + +function diagnostic(context:vscode.ExtensionContext) { + // console.time('diagnostic') + + try { + const ic10DiagnosticsCollection = vscode.languages.createDiagnosticCollection("ic10") + const icXDiagnosticsCollection = vscode.languages.createDiagnosticCollection("icX") + // const icBDiagnosticsCollection = vscode.languages.createDiagnosticCollection("icB") + context.subscriptions.push(ic10DiagnosticsCollection) + context.subscriptions.push(icXDiagnosticsCollection) + // context.subscriptions.push(icBDiagnosticsCollection) + + onChangeCallbacks.ChangeTextEditorSelection.push(() => { + if (vscode.window.activeTextEditor.document.languageId == LANG_IC10) { + ic10Diagnostics.run(vscode.window.activeTextEditor.document, ic10DiagnosticsCollection) + icXDiagnostics.clear(vscode.window.activeTextEditor.document, icXDiagnosticsCollection) + } else { + ic10Diagnostics.clear(vscode.window.activeTextEditor.document, ic10DiagnosticsCollection) + } + if (vscode.window.activeTextEditor.document.languageId == LANG_ICX) { + icXDiagnostics.run(vscode.window.activeTextEditor.document, icXDiagnosticsCollection) + ic10Diagnostics.clear(vscode.window.activeTextEditor.document, ic10DiagnosticsCollection) + } else { + icXDiagnostics.clear(vscode.window.activeTextEditor.document, icXDiagnosticsCollection) + } + }) + onChangeCallbacks.ChangeActiveTextEditor.push(() => { + if (vscode.window.activeTextEditor.document.languageId == LANG_ICX) { + icXDiagnostics.run(vscode.window.activeTextEditor.document, icXDiagnosticsCollection) + ic10Diagnostics.clear(vscode.window.activeTextEditor.document, ic10DiagnosticsCollection) + } else { + icXDiagnostics.clear(vscode.window.activeTextEditor.document, icXDiagnosticsCollection) + } + if (vscode.window.activeTextEditor.document.languageId == LANG_IC10) { + ic10Diagnostics.run(vscode.window.activeTextEditor.document, ic10DiagnosticsCollection) + icXDiagnostics.clear(vscode.window.activeTextEditor.document, icXDiagnosticsCollection) + } else { + ic10Diagnostics.clear(vscode.window.activeTextEditor.document, ic10DiagnosticsCollection) + } + // if (vscode.window.activeTextEditor.document.languageId == LANG_ICB) { + // icBDiagnostics.run(vscode.window.activeTextEditor.document, ic10DiagnosticsCollection) + // icXDiagnostics.clear(vscode.window.activeTextEditor.document, icXDiagnosticsCollection) + // }else{ + // + // } + }) + } catch (e) { + // console.error(e) + } + // console.timeEnd('diagnostic') +} + +export function deactivate() { + // console.info('deactivate 1c10') +} + +function renderIcX() { + icSidebar.section("settings", ` +
    +
    +
      +
        + + +
      +
        + + +
      +
        + + +
      +
        + + +
      +
    +
    +
    + `, LANG_ICX) + + icSidebar.events.icxComments = (data) => { + icxOptions.comments = Boolean(data.value) + } + icSidebar.events.icxAliases = (data) => { + icxOptions.aliases = Boolean(data.value) + } + icSidebar.events.icxLoop = (data) => { + icxOptions.loop = Boolean(data.value) + } + icSidebar.events.icxConstants = (data) => { + icxOptions.constants = Boolean(data.value) + } +} + +function renderIc10() { + const a = getNumberLeftLines() + if (a) { + const b = Math.abs(a[1] - 128) + const p = b / 128 * 100 + icSidebar.section("leftLineCounter", ` +

    Left lines ${a[1]}

    +
    +
    +
    + `, LANG_IC10, -10) + } else { + icSidebar.section("leftLineCounter", ``, -10) + } +} diff --git a/core/sidebarView.ts b/core/sidebarView.ts new file mode 100644 index 0000000..24fda61 --- /dev/null +++ b/core/sidebarView.ts @@ -0,0 +1,165 @@ +import * as vscode from "vscode" +import {CancellationToken, WebviewView, WebviewViewResolveContext} from "vscode" + +export class Ic10SidebarViewProvider implements vscode.WebviewViewProvider { + public static readonly viewType = "Ic10ViewProvider" + + public view?: vscode.WebviewView + public events: { + [name: string]: (data: { + id: string + value: any + type: string + name: string + }) => void + } = {} + private sectionsNamed: {} = {} + private sections: { + name: string, + content: string, + lang: string, + priority: number + }[] = [] + private newContent: string + private update: boolean + private isEvent: boolean = false + + constructor( + private readonly _extensionUri: vscode.Uri, + ) { + + } + + sendCommand(name, data) { + this.view.webview.postMessage({fn: name, data: data}) + } + + refresh(newContent = "") { + this.sendCommand("update", newContent) + } + + start() { + setInterval(() => { + if (this.update) { + this.update = false + this.refresh(this.newContent) + } + if (!this.isEvent) { + try { + this.view.webview.onDidReceiveMessage( + message => { + // console.log(message) + if (typeof this.events[message.fn] == "function") { + this.events[message.fn](message.data) + } + }, + this, + ) + this.isEvent = true + } catch (e) { + + } + } + }, 100) + + } + + section(name, content, lang, priority: number = 0) { + if (!this.sectionsNamed.hasOwnProperty(name)) { + this.sections.length + this.sectionsNamed[name] = this.sections.length + this.sections.push({name, content, lang, priority}) + } else { + this.sections[this.sectionsNamed[name]] = {name, content, lang, priority} + } + let newContent = "" + const languageId = vscode.window.activeTextEditor.document.languageId + this.sections.sort((a, b) => { + if (a.priority < b.priority) { + return -1 + } + if (a.priority > b.priority) { + return 1 + } + return 0 + }) + for (const sectionsKey in this.sections) { + const obj = this.sections[sectionsKey] + if (obj.lang == "both" || obj.lang == languageId) { + newContent += ` +
    + ${obj.content} +
    + ` + } + } + this.newContent = newContent + this.update = true + } + + clear() { + this.sectionsNamed = new Set + this.sections = [] + } + + getNonce() { + let text = "" + const possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" + for (let i = 0; i < 32; i++) { + text += possible.charAt(Math.floor(Math.random() * possible.length)) + } + return text + } + + resolveWebviewView(webviewView: WebviewView, context: WebviewViewResolveContext, token: CancellationToken): Thenable | void { + this.view = webviewView + + webviewView.webview.options = { + // Allow scripts in the webview + enableScripts: true, + + localResourceRoots: [ + this._extensionUri + ] + } + + webviewView.webview.html = this._getHtmlForWebview() + + webviewView.webview.onDidReceiveMessage(data => { + console.log(data) + }) + } + + private _getHtmlForWebview(content = "") { + // Do the same for the stylesheet. + const styleMainUri = this.view.webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, "media", "sidebar.css")) + const scriptMainUri = this.view.webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, "media", "sidebar.js")) + const nonce = this.getNonce() + + return ` + + + + + + + + + + + +
    + ${content} +
    + + + ` + } + +} + + + diff --git a/debugger/activateIc10Debug.ts b/debugger/activateIc10Debug.ts new file mode 100644 index 0000000..fe41834 --- /dev/null +++ b/debugger/activateIc10Debug.ts @@ -0,0 +1,6 @@ +import * as vscode from "vscode" +import {FileAccessor} from "./ic10Runtime" + +export declare function activateIc10Debug(context: vscode.ExtensionContext, factory?: vscode.DebugAdapterDescriptorFactory): void; + +export declare const workspaceFileAccessor: FileAccessor diff --git a/debugger/debugAdapter.ts b/debugger/debugAdapter.ts new file mode 100644 index 0000000..1687a48 --- /dev/null +++ b/debugger/debugAdapter.ts @@ -0,0 +1,74 @@ +/*--------------------------------------------------------- + * Copyright (C) Microsoft Corporation. All rights reserved. + *--------------------------------------------------------*/ + +import {ic10DebugSession} from "./ic10Debug" + +import {readFile} from "fs" +import * as Net from "net" +import {FileAccessor} from "./ic10Runtime" + +/* + * debugAdapter.js is the entrypoint of the debug adapter when it runs as a separate process. + */ + +/* + * Since here we run the debug adapter as a separate ("external") process, it has no access to VS Code API. + * So we can only use node.js API for accessing files. + */ +const fsAccessor: FileAccessor = { + async readFile(path: string): Promise { + return new Promise((resolve, reject) => { + readFile(path, (err, data) => { + if (err) { + reject(err) + } else { + resolve(data.toString()) + } + }) + }) + } +} + +/* + * When the debug adapter is run as an external process, + * normally the helper function DebugSession.run(...) takes care of everything: + * + * ic10DebugSession.run(ic10DebugSession); + * + * but here the helper is not flexible enough to deal with a debug session constructors with a parameter. + * So for now we copied and modified the helper: + */ + +// first parse command line arguments to see whether the debug adapter should run as a server +let port = 0 +const args = process.argv.slice(2) +args.forEach(function (val) { + const portMatch = /^--server=(\d{4,5})$/.exec(val) + if (portMatch) { + port = parseInt(portMatch[1], 10) + } +}) + +if (port > 0) { + + // start a server that creates a new session for every connection request + // console.error(`waiting for debug protocol on port ${port}`); + Net.createServer((socket) => { + // console.error('>> accepted connection from client'); + socket.on("end", () => { + // console.error('>> client connection closed\n'); + }) + const session = new ic10DebugSession(fsAccessor) + session.setRunAsServer(true) + session.start(socket, socket) + }).listen(port) +} else { + + // start a single session that communicates via stdin/stdout + const session = new ic10DebugSession(fsAccessor) + process.on("SIGTERM", () => { + session.shutdown() + }) + session.start(process.stdin, process.stdout) +} diff --git a/debugger/extension.ts b/debugger/extension.ts new file mode 100644 index 0000000..264aafc --- /dev/null +++ b/debugger/extension.ts @@ -0,0 +1,136 @@ +/*--------------------------------------------------------- + * Copyright (C) Microsoft Corporation. All rights reserved. + *--------------------------------------------------------*/ + +"use strict" + +import * as Net from "net" +import * as vscode from "vscode" +import {ProviderResult} from "vscode" +import {randomBytes} from "crypto" +import {tmpdir} from "os" +import {join} from "path" +import {platform} from "process" +import {ic10DebugSession} from "./ic10Debug" +import {activateIc10Debug, workspaceFileAccessor} from "./activateIc10Debug" + +/* + * The compile time flag 'runMode' controls how the debug adapter is run. + * Please note: the test suite only supports 'external' mode. + */ +const runMode: "external" | "server" | "namedPipeServer" | "inline" = "inline" + +export function activate(context: vscode.ExtensionContext) { + + // debug adapters can be run in different ways by using a vscode.DebugAdapterDescriptorFactory: + switch (runMode) { + case "server": + // run the debug adapter as a server inside the extension and communicate via a socket + activateIc10Debug(context, new ic10DebugAdapterServerDescriptorFactory()) + break + + case "namedPipeServer": + // run the debug adapter as a server inside the extension and communicate via a named pipe (Windows) or UNIX domain socket (non-Windows) + activateIc10Debug(context, new ic10DebugAdapterNamedPipeServerDescriptorFactory()) + break + + case "external": + default: + // run the debug adapter as a separate process + activateIc10Debug(context, new DebugAdapterExecutableFactory()) + break + + case "inline": + // run the debug adapter inside the extension and directly talk to it + activateIc10Debug(context) + break + } +} + +export function deactivate() { + // nothing to do +} + +class DebugAdapterExecutableFactory implements vscode.DebugAdapterDescriptorFactory { + + // The following use of a DebugAdapter factory shows how to control what debug adapter executable is used. + // Since the code implements the default behavior, it is absolutely not neccessary and we show it here only for educational purpose. + + createDebugAdapterDescriptor(_session: vscode.DebugSession, executable: vscode.DebugAdapterExecutable | undefined): ProviderResult { + // param "executable" contains the executable optionally specified in the package.json (if any) + + // use the executable specified in the package.json if it exists or determine it based on some other information (e.g. the session) + if (!executable) { + const command = "absolute path to my DA executable" + const args = [ + "some args", + "another arg" + ] + const options = { + cwd: "working directory for executable", + env: {"envVariable": "some value"} + } + executable = new vscode.DebugAdapterExecutable(command, args, options) + } + + // make VS Code launch the DA executable + return executable + } +} + +class ic10DebugAdapterServerDescriptorFactory implements vscode.DebugAdapterDescriptorFactory { + + private server?: Net.Server + + createDebugAdapterDescriptor(session: vscode.DebugSession, executable: vscode.DebugAdapterExecutable | undefined): vscode.ProviderResult { + + if (!this.server) { + // start listening on a random port + this.server = Net.createServer(socket => { + const session = new ic10DebugSession(workspaceFileAccessor) + session.setRunAsServer(true) + session.start(socket as NodeJS.ReadableStream, socket) + }).listen(0) + } + + // make VS Code connect to debug server + return new vscode.DebugAdapterServer((this.server.address() as Net.AddressInfo).port) + } + + dispose() { + if (this.server) { + this.server.close() + } + } +} + +class ic10DebugAdapterNamedPipeServerDescriptorFactory implements vscode.DebugAdapterDescriptorFactory { + + private server?: Net.Server + + createDebugAdapterDescriptor(session: vscode.DebugSession, executable: vscode.DebugAdapterExecutable | undefined): vscode.ProviderResult { + + if (!this.server) { + // start listening on a random named pipe path + const pipeName = randomBytes(10).toString("utf8") + const pipePath = platform === "win32" ? join("\\\\.\\pipe\\", pipeName) : join(tmpdir(), pipeName) + + this.server = Net.createServer(socket => { + const session = new ic10DebugSession(workspaceFileAccessor) + session.setRunAsServer(true) + session.start(socket, socket) + }).listen(pipePath) + } + + // make VS Code connect to debug server + // TODO: enable named pipe support as soon as VS Code 1.49 is out + //return new vscode.DebugAdapterNamedPipeServer(this.server.address() as string); + return undefined + } + + dispose() { + if (this.server) { + this.server.close() + } + } +} diff --git a/debugger/ic10Debug.ts b/debugger/ic10Debug.ts new file mode 100644 index 0000000..1b8d496 --- /dev/null +++ b/debugger/ic10Debug.ts @@ -0,0 +1,1009 @@ +/*--------------------------------------------------------- + * Copyright (C) Microsoft Corporation. All rights reserved. + *--------------------------------------------------------*/ +import { + Breakpoint, + BreakpointEvent, + Handles, + InitializedEvent, + InvalidatedEvent, + Logger, + logger, + LoggingDebugSession, + OutputEvent, + ProgressEndEvent, + ProgressStartEvent, + ProgressUpdateEvent, + Scope, + Source, + StackFrame, + StoppedEvent, + TerminatedEvent, + Thread +} from "@vscode/debugadapter" +import {DebugProtocol} from "@vscode/debugprotocol" +import {basename} from "path" +import {FileAccessor, ic10Runtime, Iic10Breakpoint} from "./ic10Runtime" +import {Ic10Error} from "ic10/src/Ic10Error" +import {InterpreterIc10} from "ic10" +import {MemoryStack} from "ic10/src/MemoryStack" +import {ConstantCell} from "ic10/src/ConstantCell" +import {Slot} from "ic10/src/Slot" +import {RegisterCell} from "ic10/src/RegisterCell" +import {isDevice, isDeviceOutput, isIcHousing, isSlot} from "ic10/src/types"; +import {DeviceOutput} from "ic10/src/DeviceOutput"; +import {Device} from "ic10/src/devices/Device"; +import {parseEnvironment} from "./utils"; +import {IcHousing} from "ic10/src/devices/IcHousing"; + +function timeout(ms: number) { + return new Promise(resolve => setTimeout(resolve, ms)) +} + +/** + * This interface describes the ic10-debug specific launch attributes + * (which are not part of the Debug Adapter Protocol). + * The schema for these attributes lives in the package.json of the ic10-debug extension. + * The interface should always match this schema. + */ +interface ILaunchRequestArguments extends DebugProtocol.LaunchRequestArguments { + /** An absolute path to the "program" to debug. */ + program: string; + /** Automatically stop target after launch. If not specified, target does not stop. */ + stopOnEntry?: boolean; + /** enable logging the Debug Adapter Protocol */ + trace?: boolean; + /** run without debugging */ + noDebug?: boolean; +} + +export class ic10DebugSession extends LoggingDebugSession { + + // we don't support multiple threads, so we can use a hardcoded ID for the default thread + private static threadID = 1 + public _variableHandles = new Handles() + variableMap: VariableMap + // a ic10 runtime (or debugger) + private _runtime: ic10Runtime + private _cancelActionTokens = new Map() + private _reportProgress = false + private _progressId = 10000 + private _cancelledProgressId: string | undefined = undefined + private _isProgressCancellable = true + private _useInvalidatedEvent = false + private readonly ic10: InterpreterIc10 + public env: string + public file: string; + + /** + * Creates a new debug adapter that is used for one debug session. + * We configure the default implementation of a debug adapter here. + */ + public constructor(fileAccessor: FileAccessor) { + super("ic10-debug.txt") + this.ic10 = new InterpreterIc10() + this.variableMap = new VariableMap(this, this.ic10) + this.ic10.setSettings({ + executionCallback: function (e: Ic10Error) { + // this.output.error = `[${e.functionName}:${e.line}] (${e.code}) - ${e.message}:` + this.output.error = `${e.message}:` + if (e.obj) { + this.output.error += JSON.stringify(e.obj) + } + switch (e.lvl) { + case 0: + this.output.error = "ERROR " + this.output.error + break + case 1: + this.output.error = "WARN " + this.output.error + break + case 2: + this.output.error = "INFO " + this.output.error + break + case 3: + default: + this.output.error = "LOG " + this.output.error + break + + } + }, + }) + // this debugger uses zero-based lines and columns + this.setDebuggerLinesStartAt1(false) + this.setDebuggerColumnsStartAt1(false) + + this._runtime = new ic10Runtime(fileAccessor, this.ic10) + + // setup event handlers + this._runtime.on("stopOnEntry", () => { + this.sendEvent(new StoppedEvent("entry", ic10DebugSession.threadID)) + }) + this._runtime.on("stopOnStep", () => { + this.sendEvent(new StoppedEvent("step", ic10DebugSession.threadID)) + }) + this._runtime.on("stopOnBreakpoint", () => { + this.sendEvent(new StoppedEvent("breakpoint", ic10DebugSession.threadID)) + }) + this._runtime.on("stopOnDataBreakpoint", () => { + this.sendEvent(new StoppedEvent("data breakpoint", ic10DebugSession.threadID)) + }) + this._runtime.on("stopOnException", (exception) => { + if (exception) { + this.sendEvent(new StoppedEvent(`exception(${exception})`, ic10DebugSession.threadID)) + } else { + this.sendEvent(new StoppedEvent("exception", ic10DebugSession.threadID)) + } + }) + this._runtime.on("breakpointValidated", (bp: Iic10Breakpoint) => { + this.sendEvent(new BreakpointEvent("changed", { + verified: bp.verified, + id: bp.id + } as DebugProtocol.Breakpoint)) + }) + this._runtime.on("output", (text, filePath, line, column) => { + const e: DebugProtocol.OutputEvent = new OutputEvent(`${text}\n`) + + if (text === "start" || text === "startCollapsed" || text === "end") { + e.body.group = text + e.body.output = `group-${text}\n` + } + + e.body.source = this.createSource(filePath) + e.body.line = this.convertDebuggerLineToClient(line) + e.body.column = this.convertDebuggerColumnToClient(column) + this.sendEvent(e) + }) + this._runtime.on("end", () => { + this.sendEvent(new TerminatedEvent()) + }) + } + + /** + * The 'initialize' request is the first request called by the frontend + * to interrogate the features the debug adapter provides. + */ + protected initializeRequest(response: DebugProtocol.InitializeResponse, args: DebugProtocol.InitializeRequestArguments): void { + + if (args.supportsProgressReporting) { + this._reportProgress = true + } + if (args.supportsInvalidatedEvent) { + this._useInvalidatedEvent = true + } + + // build and return the capabilities of this debug adapter: + response.body = response.body || {} + + // the adapter implements the configurationDoneRequest. + response.body.supportsConfigurationDoneRequest = true + + // make VS Code use 'evaluate' when hovering over source + response.body.supportsEvaluateForHovers = true + + // make VS Code show a 'step back' button + response.body.supportsStepBack = true + + // make VS Code support data breakpoints + response.body.supportsDataBreakpoints = true + + // make VS Code support completion in REPL + response.body.supportsCompletionsRequest = true + response.body.completionTriggerCharacters = [".", "["] + + // make VS Code send cancelRequests + response.body.supportsCancelRequest = true + + // make VS Code send the breakpointLocations request + response.body.supportsBreakpointLocationsRequest = true + + // make VS Code provide "Step in Target" functionality + response.body.supportsStepInTargetsRequest = true + + // the adapter defines two exceptions filters, one with support for conditions. + response.body.supportsExceptionFilterOptions = true + response.body.exceptionBreakpointFilters = [ + { + filter: "namedException", + label: "Named Exception", + description: `Break on named exceptions. Enter the exception's name as the Condition.`, + default: false, + supportsCondition: true, + conditionDescription: `Enter the exception's name` + }, + { + filter: "otherExceptions", + label: "Other Exceptions", + description: "This is a other exception", + default: true, + supportsCondition: false + } + ] + + // make VS Code send exceptionInfoRequests + response.body.supportsExceptionInfoRequest = true + + this.sendResponse(response) + + // since this debug adapter can accept configuration requests like 'setBreakpoint' at any time, + // we request them early by sending an 'initializeRequest' to the frontend. + // The frontend will end the configuration sequence by calling 'configurationDone' request. + this.sendEvent(new InitializedEvent()) + } + + /** + * Called at the end of the configuration sequence. + * Indicates that all breakpoints etc. have been sent to the DA and that the 'launch' can start. + */ + protected configurationDoneRequest(response: DebugProtocol.ConfigurationDoneResponse, args: DebugProtocol.ConfigurationDoneArguments): void { + super.configurationDoneRequest(response, args) + + // notify the launchRequest that configuration has finished + } + + protected async launchRequest(response: DebugProtocol.LaunchResponse, args: ILaunchRequestArguments) { + + // make sure to 'Stop' the buffered logging if 'trace' is not set + logger.setup(args.trace ? Logger.LogLevel.Verbose : Logger.LogLevel.Stop, false) + this.file = args.program + try { + this.env = parseEnvironment(this.ic10, this.file) + } catch (e) { + } + + await this._runtime.start(args.program, !!args.stopOnEntry, !!args.noDebug) + + this.sendResponse(response) + } + + protected async setBreakPointsRequest(response: DebugProtocol.SetBreakpointsResponse, args: DebugProtocol.SetBreakpointsArguments): Promise { + + const path = args.source.path as string + const clientLines = args.lines || [] + + // clear all breakpoints for this file + this._runtime.clearBreakpoints(path) + + // set and verify breakpoint locations + const actualBreakpoints0 = clientLines.map(async l => { + const {verified, line, id} = await this._runtime.setBreakPoint(path, this.convertClientLineToDebugger(l)) + const bp = new Breakpoint(verified, this.convertDebuggerLineToClient(line)) as DebugProtocol.Breakpoint + bp.id = id + return bp + }) + const actualBreakpoints = await Promise.all(actualBreakpoints0) + + // send back the actual breakpoint positions + response.body = { + breakpoints: actualBreakpoints + } + this.sendResponse(response) + } + + protected breakpointLocationsRequest(response: DebugProtocol.BreakpointLocationsResponse, args: DebugProtocol.BreakpointLocationsArguments, request?: DebugProtocol.Request): void { + + if (args.source.path) { + const bps = this._runtime.getBreakpoints(args.source.path, this.convertClientLineToDebugger(args.line)) + response.body = { + breakpoints: bps.map(col => { + return { + line: args.line, + column: this.convertDebuggerColumnToClient(col) + } + }) + } + } else { + response.body = { + breakpoints: [] + } + } + this.sendResponse(response) + } + + protected async setExceptionBreakPointsRequest(response: DebugProtocol.SetExceptionBreakpointsResponse, args: DebugProtocol.SetExceptionBreakpointsArguments): Promise { + + let namedException: string | undefined = undefined + let otherExceptions = false + + if (args.filterOptions) { + for (const filterOption of args.filterOptions) { + switch (filterOption.filterId) { + case "namedException": + namedException = args.filterOptions[0].condition + break + case "otherExceptions": + otherExceptions = true + break + } + } + } + + if (args.filters) { + if (args.filters.indexOf("otherExceptions") >= 0) { + otherExceptions = true + } + } + + this._runtime.setExceptionsFilters(namedException, otherExceptions) + + this.sendResponse(response) + } + + protected exceptionInfoRequest(response: DebugProtocol.ExceptionInfoResponse, args: DebugProtocol.ExceptionInfoArguments) { + response.body = { + exceptionId: "Exception ID", + description: "This is a descriptive description of the exception.", + breakMode: "always", + details: { + message: "Message contained in the exception.", + typeName: "Short type name of the exception object", + stackTrace: "stack frame 1\nstack frame 2", + } + } + this.sendResponse(response) + } + + protected threadsRequest(response: DebugProtocol.ThreadsResponse): void { + + // runtime supports no threads so just return a default thread. + response.body = { + threads: [ + new Thread(ic10DebugSession.threadID, "thread 1") + ] + } + this.sendResponse(response) + } + + protected stackTraceRequest(response: DebugProtocol.StackTraceResponse, args: DebugProtocol.StackTraceArguments): void { + + const startFrame = typeof args.startFrame === "number" ? args.startFrame : 0 + const maxLevels = typeof args.levels === "number" ? args.levels : 1000 + const endFrame = startFrame + maxLevels + + const stk = this._runtime.stack(startFrame, endFrame) + + response.body = { + stackFrames: stk.frames.map(f => { + const sf = new StackFrame(f.index, f.name, this.createSource(f.file), this.convertDebuggerLineToClient(f.line)) + if (typeof f.column === "number") { + sf.column = this.convertDebuggerColumnToClient(f.column) + } + return sf + }), + //no totalFrames: // VS Code has to probe/guess. Should result in a max. of two requests + totalFrames: stk.count // stk.count is the correct size, should result in a max. of two requests + //totalFrames: 1000000 // not the correct size, should result in a max. of two requests + //totalFrames: endFrame + 20 // dynamically increases the size with every requested chunk, results in paging + } + this.sendResponse(response) + } + + protected scopesRequest(response: DebugProtocol.ScopesResponse, args: DebugProtocol.ScopesArguments): void { + try { + this.env = parseEnvironment(this.ic10, this.file) + } catch (e) { + + } + + response.body = { + scopes: [ + new Scope("Constants", this._variableHandles.create("Constants"), false), + new Scope("Registers", this._variableHandles.create("Registers"), false), + new Scope("Stack", this._variableHandles.create("Stack"), false), + ] + } + let db = 'DB [Socket]' + if (!this.ic10?.memory.environ.get('db')) { + db = `🟡 ${db}` + } else if (this.ic10?.memory.environ.get('db').properties.Error > 0) { + db = `🔴 ${db}` + } else { + db = `🟢 ${db}` + } + response.body.scopes.push(new Scope(db, this._variableHandles.create('db'), false)) + + const dd = { + 'D0': this.ic10.memory.environ.d0 || undefined, + 'D1': this.ic10.memory.environ.d1 || undefined, + 'D2': this.ic10.memory.environ.d2 || undefined, + 'D3': this.ic10.memory.environ.d3 || undefined, + 'D4': this.ic10.memory.environ.d4 || undefined, + 'D5': this.ic10.memory.environ.d5 || undefined, + } + for (const ddKey in dd) { + let name = ddKey + if (dd[ddKey]) { + name = `⚪ ${ddKey.toUpperCase()} [${dd[ddKey].name}]` + } else { + name = `⚫ ${ddKey.toUpperCase()}` + } + response.body.scopes.push(new Scope(name, this._variableHandles.create(ddKey.toLowerCase()), false)) + } + this.sendResponse(response) + + } + + protected async variablesRequest(response: DebugProtocol.VariablesResponse, args: DebugProtocol.VariablesArguments, request?: DebugProtocol.Request) { + const id = this._variableHandles.get(args.variablesReference) + if (id) { + if (["Constants", "Registers", "Devices", "Stack", "d0", "d1", "d2", "d3", "d4", "d5", "db"].includes(id)) { + this.variableMap.init(id) + } + response.body = { + variables: Object.values(this.variableMap.get(id)) + } + this.sendResponse(response) + } else { + response.body = { + variables: [] + } + this.sendResponse(response) + } + } + + protected continueRequest(response: DebugProtocol.ContinueResponse, args: DebugProtocol.ContinueArguments): void { + this._runtime.continue() + this.sendResponse(response) + } + + protected reverseContinueRequest(response: DebugProtocol.ReverseContinueResponse, args: DebugProtocol.ReverseContinueArguments): void { + this._runtime.continue(true) + this.sendResponse(response) + } + + protected nextRequest(response: DebugProtocol.NextResponse, args: DebugProtocol.NextArguments): void { + this._runtime.step() + this.sendResponse(response) + } + + protected stepBackRequest(response: DebugProtocol.StepBackResponse, args: DebugProtocol.StepBackArguments): void { + this._runtime.step(true) + this.sendResponse(response) + } + + protected stepInTargetsRequest(response: DebugProtocol.StepInTargetsResponse, args: DebugProtocol.StepInTargetsArguments) { + const targets = this._runtime.getStepInTargets(args.frameId) + response.body = { + targets: targets.map(t => { + return {id: t.id, label: t.label} + }) + } + this.sendResponse(response) + } + + protected stepInRequest(response: DebugProtocol.StepInResponse, args: DebugProtocol.StepInArguments): void { + this._runtime.stepIn(args.targetId) + this.sendResponse(response) + } + + protected stepOutRequest(response: DebugProtocol.StepOutResponse, args: DebugProtocol.StepOutArguments): void { + this._runtime.stepOut() + this.sendResponse(response) + } + + protected async evaluateRequest(response: DebugProtocol.EvaluateResponse, args: DebugProtocol.EvaluateArguments): Promise { + + let reply: string | undefined = undefined + + if (args.context === "repl") { + // 'evaluate' supports to create and delete breakpoints from the 'repl': + const matches = /new +(\d+)/.exec(args.expression) + if (matches && matches.length === 2) { + const mbp = await this._runtime.setBreakPoint(this._runtime.sourceFile, this.convertClientLineToDebugger(parseInt(matches[1]))) + const bp = new Breakpoint(mbp.verified, this.convertDebuggerLineToClient(mbp.line), undefined, this.createSource(this._runtime.sourceFile)) as DebugProtocol.Breakpoint + bp.id = mbp.id + this.sendEvent(new BreakpointEvent("new", bp)) + reply = `breakpoint created` + } else { + const matches = /del +(\d+)/.exec(args.expression) + if (matches && matches.length === 2) { + const mbp = this._runtime.clearBreakPoint(this._runtime.sourceFile, this.convertClientLineToDebugger(parseInt(matches[1]))) + if (mbp) { + const bp = new Breakpoint(false) as DebugProtocol.Breakpoint + bp.id = mbp.id + this.sendEvent(new BreakpointEvent("removed", bp)) + reply = `breakpoint deleted` + } + } else { + const matches = /progress/.exec(args.expression) + if (matches && matches.length === 1) { + if (this._reportProgress) { + reply = `progress started` + await this.progressSequence() + } else { + reply = `frontend doesn't support progress (capability 'supportsProgressReporting' not set)` + } + } + } + } + } + + if (args.context === "hover") { + reply = this.getHover(args) + } + + response.body = { + result: reply, + variablesReference: 0 + } + this.sendResponse(response) + } + + protected dataBreakpointInfoRequest(response: DebugProtocol.DataBreakpointInfoResponse, args: DebugProtocol.DataBreakpointInfoArguments): void { + + response.body = { + dataId: null, + description: "cannot break on data access", + accessTypes: undefined, + canPersist: false + } + + if (args.variablesReference && args.name) { + const id = this._variableHandles.get(args.variablesReference) + if (id === "global") { + response.body.dataId = args.name + response.body.description = args.name + response.body.accessTypes = ["read", "write", "readWrite"] + response.body.canPersist = true + } else { + response.body.dataId = args.name + response.body.description = args.name + response.body.accessTypes = ["read", "write", "readWrite"] + response.body.canPersist = true + } + } + + this.sendResponse(response) + } + + protected setDataBreakpointsRequest(response: DebugProtocol.SetDataBreakpointsResponse, args: DebugProtocol.SetDataBreakpointsArguments): void { + + // clear all data breakpoints + this._runtime.clearAllDataBreakpoints() + + response.body = { + breakpoints: [] + } + + for (const dbp of args.breakpoints) { + // assume that id is the "address" to break on + const dataId = dbp.dataId + `_${dbp.accessType ? dbp.accessType : "write"}` + const ok = this._runtime.setDataBreakpoint(dataId) + response.body.breakpoints.push({ + verified: ok + }) + } + + this.sendResponse(response) + } + + protected completionsRequest(response: DebugProtocol.CompletionsResponse, args: DebugProtocol.CompletionsArguments): void { + + response.body = { + targets: [ + { + label: "item 10", + sortText: "10" + }, + { + label: "item 1", + sortText: "01" + }, + { + label: "item 2", + sortText: "02" + }, + { + label: "array[]", + selectionStart: 6, + sortText: "03" + }, + { + label: "func(arg)", + selectionStart: 5, + selectionLength: 3, + sortText: "04" + } + ] + } + this.sendResponse(response) + } + + protected cancelRequest(response: DebugProtocol.CancelResponse, args: DebugProtocol.CancelArguments) { + if (args.requestId) { + this._cancelActionTokens.set(args.requestId, true) + } + if (args.progressId) { + this._cancelledProgressId = args.progressId + } + } + + protected customRequest(command: string, response: DebugProtocol.Response, args: any) { + const regex = /(.+)\[.+]/gm + command = command.trim() + + if (["ic10.debug.variables.write", + "ic10.debug.device.write", + "ic10.debug.device.slot.write", + "ic10.debug.stack.push", + "ic10.debug.remove.push"].indexOf(command) >= 0) { + try { + const name = regex.exec(args.variable.variable.name) + if (name) { + args.variableName = name[1] + } else { + args.variableName = args.variable.variable.name + } + const container = regex.exec(args.variable.container.name) + if (container) { + args.containerName = container[1] + } else { + args.containerName = args.variable.container.name + } + } catch (e) { + } + } + + const containerName = args.containerName.replace('🟢', '').replace('🔴', '').replace('🟡', '').replace('⚪', '').replace('⚫', '').trim().toLowerCase() + args.containerName = containerName + switch (command) { + case "ic10.debug.variables.write": + try { + switch (containerName) { + case 'registers': + this.ic10.memory.getRegister(args.variableName).value = Number(args.value) + break; + case 'db': + case 'd0': + case 'd1': + case 'd2': + case 'd3': + case 'd4': + case 'd5': + this.ic10.memory.environ.get(containerName).set(args.variableName, Number(args.value)) + break; + case 'zero': + this.ic10.memory.stack.getStack()[args.variableName] = Number(args.value) + break; + case 'constants': + this.ic10.memory.define(args.variableName, Number(args.value)) + break; + + } + } catch (e) { + this.sendEvent(new InvalidatedEvent(["variables"])) + } + break + default: + super.customRequest(command, response, args) + break + } + this.sendResponse(response) + } + + private async progressSequence() { + + const ID = "" + this._progressId++ + + await timeout(100) + + const title = this._isProgressCancellable ? "Cancellable operation" : "Long running operation" + const startEvent: DebugProtocol.ProgressStartEvent = new ProgressStartEvent(ID, title) + startEvent.body.cancellable = this._isProgressCancellable + this._isProgressCancellable = !this._isProgressCancellable + this.sendEvent(startEvent) + this.sendEvent(new OutputEvent(`start progress: ${ID}\n`)) + + let endMessage = "progress ended" + + for (let i = 0; i < 100; i++) { + await timeout(500) + this.sendEvent(new ProgressUpdateEvent(ID, `progress: ${i}`)) + if (this._cancelledProgressId === ID) { + endMessage = "progress cancelled" + this._cancelledProgressId = undefined + this.sendEvent(new OutputEvent(`cancel progress: ${ID}\n`)) + break + } + } + this.sendEvent(new ProgressEndEvent(ID, endMessage)) + this.sendEvent(new OutputEvent(`end progress: ${ID}\n`)) + + this._cancelledProgressId = undefined + } + + //---- helpers + + private createSource(filePath: string): Source { + return new Source(basename(filePath), this.convertDebuggerPathToClient(filePath), undefined, undefined, "ic10-adapter-data") + } + + private getHover(args: DebugProtocol.EvaluateArguments) { + let response = args.expression + if (args.expression.includes('env')) { + return this.env + } + try { + response = String(this.ic10.memory.getValue(args.expression)) + } catch (e) { + try { + response = String(this.ic10.memory.getDevice(args.expression).properties.PrefabHash) + } catch (e) { + try { + response = String(this.ic10.memory.getRegister(args.expression).value) + } catch (e) { + + } + } + } + return response + } + +} + +export class VariableMap { + scope: ic10DebugSession + private map: object + private ic10: InterpreterIc10 + + constructor(scope: ic10DebugSession, ic10: InterpreterIc10) { + this.ic10 = ic10 + this.scope = scope + this.map = {} + } + + init(id: string) { + this.map = {} + if (id == 'Registers') { + for (let cellsKey in this.ic10.memory.cells) { + try { + cellsKey = String(cellsKey) + const cell = this.ic10.memory.cells[cellsKey] + let val = cell.value + let name = cell.name + let alias = this.ic10.memory.aliasesRevert[name] || '' + let _name = "" + if (alias) { + _name = name + `[${alias}]` + } else { + _name = name + } + this.var2variable(_name, val, id) + } catch (e) { + + } + } + } + if (id == 'Stack') { + const stack: MemoryStack = this.ic10.memory.stack + if (stack instanceof MemoryStack) { + this.var2variable("Stack", stack, id) + } + } + if (["d0", "d1", "d2", "d3", "d4", "d5"].includes(id)) { + try { + const device = this.ic10.memory.environ.get(id) + Object.entries(device.properties).forEach(([name, value]) => { + this.var2variable(name, value, id) + }) + // @ts-ignore + if (Object.keys(device.reagents.Contents).length) { + this.map[id][`${id}.Contents`] = { + name: `Reagents.Contents`, + type: "object", + value: `Object`, + __vscodeVariableMenuContext: "Object", + variablesReference: this.scope._variableHandles.create(`${id}.Contents`), + } as DebugProtocol.Variable + // @ts-ignore + Object.entries(device.reagents.Contents).map(([key, val]) => { + // @ts-ignore + this.var2variable(key, val, `${id}.Contents`) + }) + } + // @ts-ignore + if (Object.keys(device.reagents.Recipe).length) { + this.map[id][`${id}.Recipe`] = { + name: `Reagents.Recipes`, + type: "object", + value: `Object`, + __vscodeVariableMenuContext: "Object", + variablesReference: this.scope._variableHandles.create(`${id}.Recipe`), + } as DebugProtocol.Variable + // @ts-ignore + Object.entries(device.reagents.Recipe).map(([key, val]) => { + // @ts-ignore + this.var2variable(key, val, `${id}.Recipe`) + }) + + } + // @ts-ignore + if (Object.keys(device.reagents.Required).length) { + this.map[id][`${id}.Required`] = { + name: `Reagents.Required`, + type: "object", + value: `Object`, + __vscodeVariableMenuContext: "Object", + variablesReference: this.scope._variableHandles.create(`${id}.Required`), + } as DebugProtocol.Variable + // @ts-ignore + Object.entries(device.reagents.Required).map(([key, val]) => { + // @ts-ignore + this.var2variable(key, val, `${id}.Required`) + }) + } + + this.var2variable('Slots', device.slots, id) + for (let i = 0; i < 7; i++) { + const channel: DeviceOutput = device.getChannel(i) + this.var2variable(`Output ${i}`, channel, id) + } + + } catch (e) { + + } + } + if (id === 'Constants') { + for (const aliasesKey in this.ic10.memory.aliases) { + if (this.ic10.memory.aliases.hasOwnProperty(aliasesKey)) { + try { + let val = this.ic10.memory.aliases[aliasesKey] + if (val instanceof ConstantCell) { + this.var2variable(val.name, val.value, id) + } + } catch (e) { + + } + } + } + } + } + + get(id: any) { + try { + const device = this.ic10.memory.getDevice(id) + Object.entries(device.properties).forEach(([name, value]) => { + this.var2variable(name, value, id) + }) + return this.map[id] + } catch (e) { + + } + if (id in this.map) { + return this.map[id] + } + return [] + } + + public var2variable(name: string, value: string | number | Device | IcHousing | number[] | DeviceOutput | MemoryStack | Slot[] | Slot, id: string, mc: string = null) { + if (!(id in this.map)) { + this.map[id] = {} + } + if (value === null) { + value = 0 + } + const type = value.constructor.name + + if (typeof value === 'number') { + this.map[id][name] = { + name: name, + type: "float", + value: String(value), + variablesReference: 0, + __vscodeVariableMenuContext: mc || "Number", + } as DebugProtocol.Variable + return name + } + if (isDevice(value) || isIcHousing(value)) { + this.map[id][name] = { + name: name, + type: "object", + value: `Object`, + __vscodeVariableMenuContext: "Object", + variablesReference: this.scope._variableHandles.create(name), + } as DebugProtocol.Variable + return name + } + if (value instanceof MemoryStack) { + const arr = value.getStack() + let b = 0 + for (const valueKey in arr) { + if (arr.hasOwnProperty(valueKey)) { + let index = `${valueKey}` + if (arr[valueKey]) { + this.var2variable(index, arr[valueKey], name) + } else { + b++ + this.var2variable(index, arr[valueKey], 'zero') + } + } + } + this.map[id]['zero'] = { + name: 'zero', + type: "array", + value: `Array (${b})`, + __vscodeVariableMenuContext: "Array", + variablesReference: this.scope._variableHandles.create('zero'), + } as DebugProtocol.Variable + } + if (isDeviceOutput(value)) { + if (!value.isEmpty()) { + const arr = value.toArray() + this.map[id][name] = { + name: name, + type: "array", + value: `Array (${arr.length})`, + __vscodeVariableMenuContext: "Array", + variablesReference: this.scope._variableHandles.create(name), + } as DebugProtocol.Variable + arr.forEach((val, index) => { + if (val) this.var2variable(`Channel ${index}`, val, name, mc) + }) + } + } + if (Array.isArray(value)) { + if (value.length != 0) { + this.map[id][name] = { + name: name, + type: "array", + value: `Array (${value.length})`, + __vscodeVariableMenuContext: "Array", + variablesReference: this.scope._variableHandles.create(name), + } as DebugProtocol.Variable + for (const valueKey in value) { + if (value.hasOwnProperty(valueKey)) { + let index = `${valueKey}` + if (!(value[valueKey] instanceof Slot)) { + index = `[${valueKey}]` + const stack: RegisterCell | MemoryStack = this.ic10.memory.cells[16] + if (stack instanceof MemoryStack) { + // if (parseInt(valueKey) == parseInt(String(stack.get()))) { + // index = `(${valueKey})` + // } + } + } + this.var2variable(index, value[valueKey], name, mc) + } + } + + } else { + this.map[id][name] = { + name: name, + type: "array", + value: "Array (0)", + variablesReference: 0, + __vscodeVariableMenuContext: "Array", + } as DebugProtocol.Variable + } + return name + } + if (isSlot(value)) { + this.map[id][name] = { + name: name, + type: "object", + value: `Object`, + __vscodeVariableMenuContext: "Object", + variablesReference: this.scope._variableHandles.create(name), + } as DebugProtocol.Variable + let _arr = Object.keys(value.properties).sort() + for (const valueKey of _arr) { + if (value.properties.hasOwnProperty(valueKey)) { + this.var2variable(valueKey, value.properties[valueKey], name, "Slot") + } + } + return name + } + if (typeof value === 'string') { + this.map[id][name] = { + name: name, + type: "string", + value: String(value), + variablesReference: 0, + __vscodeVariableMenuContext: mc || "String", + + } as DebugProtocol.Variable + return name + } + return name + } +} + diff --git a/debugger/ic10Runtime.ts b/debugger/ic10Runtime.ts new file mode 100644 index 0000000..99c1b19 --- /dev/null +++ b/debugger/ic10Runtime.ts @@ -0,0 +1,461 @@ +/*--------------------------------------------------------- + * Copyright (C) Microsoft Corporation. All rights reserved. + *--------------------------------------------------------*/ + +import {EventEmitter} from "events" +import {InterpreterIc10} from "ic10" +import {parseEnvironment} from "./utils"; +import path from "path"; + +export interface FileAccessor { + readFile(path: string): Promise; +} + +export interface Iic10Breakpoint { + id: number; + line: number; + verified: boolean; +} + +interface IStepInTargets { + id: number; + label: string; +} + +interface IStackFrame { + index: number; + name: string; + file: string; + line: number; + column?: number; +} + +interface IStack { + count: number; + frames: IStackFrame[]; +} + +/** + * ic10 runtime with minimal debugger functionality. + */ +export class ic10Runtime extends EventEmitter { + + // the contents (= lines) of the one and only file + private _sourceLines: string[] = [] + // This is the next line that will be 'executed' + private _currentLine = 0 + private _currentColumn: number | undefined + // maps from sourceFile to array of ic10 breakpoints + private _breakPoints = new Map() + // so that the frontend can match events with breakpoints. + private _breakpointId = 1 + private _breakAddresses = new Set() + + // since we want to send breakpoint events, we will assign an id to every event + private _noDebug = false + private _namedException: string | undefined + private _otherExceptions = false + private readonly ic10: InterpreterIc10 + + constructor(private _fileAccessor: FileAccessor, ic10: InterpreterIc10) { + super() + this.ic10 = ic10 + } + + // the initial (and one and only) file we are 'debugging' + private _sourceFile: string = "" + + public get sourceFile() { + return this._sourceFile + } + + /** + * Start executing the given program. + */ + public async start(program: string, stopOnEntry: boolean, noDebug: boolean): Promise { + + this._noDebug = noDebug + + await this.loadSource(program) + this._currentLine = 0 + + await this.verifyBreakpoints(this._sourceFile) + parseEnvironment(this.ic10, this._sourceFile) + if (stopOnEntry) { + // we step once + this.step(false, "stopOnEntry") + } else { + // we just start to run until we hit a breakpoint or an exception + this.step(false, "stopOnBreakpoint") + } + } + + /** + * Continue execution to the end/beginning. + */ + public continue(reverse = false) { + this.run(reverse, undefined) + } + + /** + * Step to the next/previous not empty line. + */ + public step(reverse = false, event = "stopOnStep") { + this.run(reverse, event) + } + + /** + * "Step into" for ic10 debug means: go to next character + */ + public stepIn(targetId: number | undefined) { + if (typeof targetId === "number") { + this._currentColumn = targetId + this.sendEvent("stopOnStep") + } else { + if (typeof this._currentColumn === "number") { + if (this._currentColumn <= this._sourceLines[this._currentLine].length) { + this._currentColumn += 1 + } + } else { + this._currentColumn = 1 + } + this.sendEvent("stopOnStep") + } + } + + /** + * "Step out" for ic10 debug means: go to previous character + */ + public stepOut() { + if (typeof this._currentColumn === "number") { + this._currentColumn -= 1 + if (this._currentColumn === 0) { + this._currentColumn = undefined + } + } + this.sendEvent("stopOnStep") + } + + public getStepInTargets(frameId: number): IStepInTargets[] { + + const line = this._sourceLines[this._currentLine].trim() + + // every word of the current line becomes a stack frame. + const words = line.split(/\s+/) + + // return nothing if frameId is out of range + if (frameId < 0 || frameId >= words.length) { + return [] + } + + // pick the frame for the given frameId + const frame = words[frameId] + + const pos = line.indexOf(frame) + + // make every character of the frame a potential "step in" target + return frame.split("").map((c, ix) => { + return { + id: pos + ix, + label: `target: ${c}` + } + }) + } + + /** + * Returns a fake 'stacktrace' where every 'stackframe' is a word from the current line. + */ + public stack(startFrame: number, endFrame: number): IStack { + + const words = this._sourceLines[this._currentLine].trim().split(/\s+/) + + const frames = new Array() + // every word of the current line becomes a stack frame. + for (let i = startFrame; i < Math.min(endFrame, words.length); i++) { + const name = words[i] // use a word of the line as the stackframe name + const stackFrame: IStackFrame = { + index: i, + name: `${name}(${i})`, + file: this._sourceFile, + line: this._currentLine + } + if (typeof this._currentColumn === "number") { + stackFrame.column = this._currentColumn + } + frames.push(stackFrame) + } + return { + frames: frames, + count: words.length + } + } + + public getBreakpoints(path: string, line: number): number[] { + + const l = this._sourceLines[line] + + let sawSpace = true + const bps: number[] = [] + for (let i = 0; i < l.length; i++) { + if (l[i] !== " ") { + if (sawSpace) { + bps.push(i) + sawSpace = false + } + } else { + sawSpace = true + } + } + + return bps + } + + /* + * Set breakpoint in file with given line. + */ + public async setBreakPoint(path: string, line: number): Promise { + + const bp: Iic10Breakpoint = {verified: false, line, id: this._breakpointId++} + let bps = this._breakPoints.get(path) + if (!bps) { + bps = new Array() + this._breakPoints.set(path, bps) + } + bps.push(bp) + + await this.verifyBreakpoints(path) + + return bp + } + + /* + * Clear breakpoint in file with given line. + */ + public clearBreakPoint(path: string, line: number): Iic10Breakpoint | undefined { + const bps = this._breakPoints.get(path) + if (bps) { + const index = bps.findIndex(bp => bp.line === line) + if (index >= 0) { + const bp = bps[index] + bps.splice(index, 1) + return bp + } + } + return undefined + } + + /* + * Clear all breakpoints for file. + */ + public clearBreakpoints(path: string): void { + this._breakPoints.delete(path) + } + + /* + * Set data breakpoint. + */ + public setDataBreakpoint(address: string): boolean { + if (address) { + this._breakAddresses.add(address) + return true + } + return false + } + + public setExceptionsFilters(namedException: string | undefined, otherExceptions: boolean): void { + this._namedException = namedException + this._otherExceptions = otherExceptions + } + + /* + * Clear all data breakpoints. + */ + public clearAllDataBreakpoints(): void { + this._breakAddresses.clear() + } + + // private methods + + private async loadSource(file: string): Promise { + if (this._sourceFile !== file) { + if(path.extname(file).toLowerCase() === '.icx'){ + file+=".ic10" + } + this._sourceFile = file + const contents = await this._fileAccessor.readFile(file) + try { + this.ic10.init(contents) + } catch (e) { + // console.error(e) + } + this._sourceLines = contents.split(/\r?\n/) + } + } + + /** + * Run through the file. + * If stepEvent is specified only run a single step and emit the stepEvent. + */ + private run(reverse = false, stepEvent?: string) { + if (!reverse) { + let ln = this.ic10.position + let why + let counter = 0 + do { + why = this.ic10.prepareLine(ln, true) + if (this.ic10?.output?.debug && this.ic10.ignoreLine.indexOf(ln) < 0) { + // this.sendEvent('output', '[debug]: ' + this.ic10.output.debug, this._sourceFile, ln - 1); + this.ic10.output.debug = "" + } + if (this.ic10?.output?.log) { + this.sendEvent("output", this.ic10.output.log, this._sourceFile, ln - 1) + this.ic10.output.log = "" + } + if (this.ic10?.output?.error && this.ic10.ignoreLine.indexOf(ln) < 0) { + this.sendEvent("output", this.ic10.output.error, this._sourceFile, ln - 1) + this.ic10.output.error = "" + } + if (this.fireEventsForLine(ln, stepEvent)) { + this._currentLine = ln + this._currentColumn = 0 + return true + } + ln = this.ic10.position + if (counter++ > 1000) { + why = "timeOut" + } + } while (why === true) + switch (why) { + case "timeOut": + this.sendEvent("output", "WHILE TRUE!!!!", this._sourceFile, ln) + this.sendEvent("stopOnBreakpoint") + break + default: + this.sendEvent("end") + break + } + } else { + this.sendEvent("output", "can`t go back", this._sourceFile, 0) + this.sendEvent("stopOnBreakpoint") + } + } + + private async verifyBreakpoints(path: string): Promise { + + if (this._noDebug) { + return + } + + const bps = this._breakPoints.get(path) + if (bps) { + await this.loadSource(path) + bps.forEach(bp => { + if (!bp.verified && bp.line < this._sourceLines.length) { + const srcLine = this._sourceLines[bp.line].trim() + + // if a line is empty or starts with '+' we don't allow to set a breakpoint but move the breakpoint down + if (srcLine.length === 0 || srcLine.indexOf("+") === 0) { + bp.line++ + } + // if a line starts with '-' we don't allow to set a breakpoint but move the breakpoint up + if (srcLine.indexOf("-") === 0) { + bp.line-- + } + // don't set 'verified' to true if the line contains the word 'lazy' + // in this case the breakpoint will be verified 'lazy' after hitting it once. + if (srcLine.indexOf("lazy") < 0) { + bp.verified = true + this.sendEvent("breakpointValidated", bp) + } + } + }) + } + } + + /** + * Fire events if line has a breakpoint or the word 'exception' or 'exception(...)' is found. + * Returns true if execution needs to stop. + */ + private fireEventsForLine(ln: number, stepEvent?: string): boolean { + + if (this._noDebug) { + return false + } + if(!this._sourceLines[ln]){ + return false + } + const line = this._sourceLines[ln].trim() + + // if 'log(...)' found in source -> send argument to debug // console + //const matches = /log\((.*)\)/.exec(line); + //if (matches && matches.length === 2) { + // this.sendEvent('output', matches[1], this._sourceFile, ln, matches.index); + //} + + // if a word in a line matches a data breakpoint, fire a 'dataBreakpoint' event + const words = line.split(" ") + for (const word of words) { + if (this._breakAddresses.has(word)) { + this.sendEvent("stopOnDataBreakpoint") + return true + } + } + + // if pattern 'exception(...)' found in source -> throw named exception + const matches2 = /exception\((.*)\)/.exec(line) + if (matches2 && matches2.length === 2) { + const exception = matches2[1].trim() + if (this._namedException === exception) { + this.sendEvent("stopOnException", exception) + return true + } else { + if (this._otherExceptions) { + this.sendEvent("stopOnException", undefined) + return true + } + } + } else { + // if word 'exception' found in source -> throw exception + if (line.indexOf("exception") >= 0) { + if (this._otherExceptions) { + this.sendEvent("stopOnException", undefined) + return true + } + } + } + + // is there a breakpoint? + const breakpoints = this._breakPoints.get(this._sourceFile) + if (breakpoints) { + const bps = breakpoints.filter(bp => bp.line === ln) + if (bps.length > 0) { + + // send 'stopped' event + this.sendEvent("stopOnBreakpoint") + + // the following shows the use of 'breakpoint' events to update properties of a breakpoint in the UI + // if breakpoint is not yet verified, verify it now and send a 'breakpoint' update event + if (!bps[0].verified) { + bps[0].verified = true + this.sendEvent("breakpointValidated", bps[0]) + } + return true + } + } + + // non-empty line + if (stepEvent && line.length > 0) { + this.sendEvent(stepEvent) + return true + } + + // nothing interesting found -> continue + return false + } + + private sendEvent(event: string, ...args: any[]) { + setImmediate(_ => { + this.emit(event, ...args) + }) + } +} diff --git a/debugger/utils.ts b/debugger/utils.ts new file mode 100644 index 0000000..a2afd9e --- /dev/null +++ b/debugger/utils.ts @@ -0,0 +1,111 @@ +import path from "path"; +import dotenv from "dotenv"; +import * as fs from "fs"; +import YAML from 'yaml' +import toml from "toml"; +import InterpreterIc10 from "ic10"; +import {TypeRM} from "ic10/src/icTypes"; +import {Reagent} from "ic10/src/data/reagents"; + +export function parseEnvironment(ic10: InterpreterIc10, file: string): string { + try { + let env + const n = basename(file) + const f = path.join(path.dirname(file), n) + env = `${f}.toml`; + if (fs.existsSync(env)) { + parseToml(ic10, env); + return env; + } + env = `${f}.yml`; + if (fs.existsSync(env)) { + parseYaml(ic10, env); + return env; + } + env = `${f}.env`; + if (fs.existsSync(env)) { + parseEnv(ic10, env); + return env; + } + + env = path.join(path.dirname(f), '.toml'); + if (fs.existsSync(env)) { + parseToml(ic10, env); + return env; + } + env = path.join(path.dirname(f), '.yml'); + if (fs.existsSync(env)) { + parseYaml(ic10, env); + return env; + } + env = path.join(path.dirname(f), '.env'); + if (fs.existsSync(env)) { + parseEnv(ic10, env); + return env; + } + } catch (e) { + + } + return "Не найден файл окружения" +} + +function basename(file: string): string { + const bName = path.basename(file) + const aName = bName.split(".").filter((ext) => { + let e = ext.toLowerCase() + return e !== 'ic10' && e !== 'icx' + }) + return aName.join('.') +} + +function parseToml(ic10: InterpreterIc10, env: string) { + const content = fs.readFileSync(env, {encoding: 'utf-8'}) + const config = toml.parse(content) as { + [key: `d${number}`]: { [key: string]: number } & { reagents: Partial>>> } + } + Object.entries(config).forEach(([key, value]) => { + if (key) { + const fields: { [key: string]: number } = {} + let reagents: Partial>>> = {} + for (const valueKey in value) { + if (valueKey.toLowerCase() !== 'reagents') { + fields[valueKey] = value[valueKey]; + } else { + reagents = value[valueKey] as Partial>>> + } + } + + ic10.connectDevice(key, fields.PrefabHash, 2, fields, {reagents: reagents}) + } + }) + return ic10 +} + +function parseYaml(ic10: InterpreterIc10, env: string) { + const content = fs.readFileSync(env, {encoding: 'utf-8'}) + const config = YAML.parse(content) as { + [key: `d${number}`]: { [key: string]: number }[] + } + Object.entries(config).forEach(([key, value]) => { + if (key) { + const fields: { [key: string]: number } = {} + value.map((item) => { + Object.entries(item).map(([k, v]) => { + fields[k] = v + }) + }) + ic10.connectDevice(key, fields.PrefabHash, 2, fields) + } + }) + return ic10 +} + +function parseEnv(ic10: InterpreterIc10, env: string) { + const config = dotenv.config({path: env}).parsed as { [key: string]: string } + Object.entries(config).forEach(([key, value]) => { + if (key) { + ic10.connectDevice(key, value, 2, {}) + } + }) + return ic10 +} diff --git a/extension/images/cooltext385352775342553.png b/extension/images/cooltext385352775342553.png new file mode 100644 index 0000000..1e4cbe8 Binary files /dev/null and b/extension/images/cooltext385352775342553.png differ diff --git a/extension/images/cooltext385352803949697.png b/extension/images/cooltext385352803949697.png new file mode 100644 index 0000000..d3a9348 Binary files /dev/null and b/extension/images/cooltext385352803949697.png differ diff --git a/extension/images/logo.png b/extension/images/logo.png new file mode 100644 index 0000000..b609c18 Binary files /dev/null and b/extension/images/logo.png differ diff --git a/extension/images/logo.svg b/extension/images/logo.svg new file mode 100644 index 0000000..43a93ef --- /dev/null +++ b/extension/images/logo.svg @@ -0,0 +1,913 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ic10-theme.json b/ic10-theme.json new file mode 100644 index 0000000..9ec650a --- /dev/null +++ b/ic10-theme.json @@ -0,0 +1,14 @@ +{ + "iconDefinitions": { + "_ic10": { + "iconPath": "./images/" + } + }, + "languageIds": { + "ic10": "_ic10" + }, + "fileExtensions": { + "ic10": "_ic10" + } +} + diff --git a/icB.language-configuration.json b/icB.language-configuration.json new file mode 100644 index 0000000..acdf8a9 --- /dev/null +++ b/icB.language-configuration.json @@ -0,0 +1,96 @@ +{ + "comments": { + "lineComment": "#" + }, + "brackets": [ + [ + "IF", + "ENDIF" + ], + [ + "{", + "}" + ], + [ + "{", + "}" + ], + [ + "{", + "}" + ], + [ + "[", + "]" + ], + [ + "(", + ")" + ] + ], + "autoClosingPairs": [ + + { + "open": "{", + "close": "}" + }, + { + "open": "[", + "close": "]" + }, + { + "open": "(", + "close": ")" + }, + { + "open": "'", + "close": "'", + "notIn": [ + "string", + "comment" + ] + }, + { + "open": "\"", + "close": "\"", + "notIn": [ + "string" + ] + }, + { + "open": "`", + "close": "`", + "notIn": [ + "string", + "comment" + ] + }, + ], + "autoCloseBefore": ";:.,=}])>` \n\t", + "surroundingPairs": [ + [ + "{", + "}" + ], + [ + "[", + "]" + ], + [ + "(", + ")" + ], + [ + "'", + "'" + ], + [ + "\"", + "\"" + ], + [ + "`", + "`" + ] + ] +} diff --git a/icX.language-configuration.json b/icX.language-configuration.json new file mode 100644 index 0000000..6ae0b22 --- /dev/null +++ b/icX.language-configuration.json @@ -0,0 +1,94 @@ +{ + "comments": { + "lineComment": "#", + "blockComment": [ + "/*", + "*/" + ] + }, + "brackets": [ + [ + "{", + "}" + ], + [ + "[", + "]" + ], + [ + "(", + ")" + ] + ], + "autoClosingPairs": [ + { + "open": "{", + "close": "}" + }, + { + "open": "[", + "close": "]" + }, + { + "open": "(", + "close": ")" + }, + { + "open": "'", + "close": "'", + "notIn": [ + "string", + "comment" + ] + }, + { + "open": "\"", + "close": "\"", + "notIn": [ + "string" + ] + }, + { + "open": "`", + "close": "`", + "notIn": [ + "string", + "comment" + ] + }, + { + "open": "/**", + "close": " */", + "notIn": [ + "string" + ] + } + ], + "autoCloseBefore": ";:.,=}])>` \n\t", + "surroundingPairs": [ + [ + "{", + "}" + ], + [ + "[", + "]" + ], + [ + "(", + ")" + ], + [ + "'", + "'" + ], + [ + "\"", + "\"" + ], + [ + "`", + "`" + ] + ] +} diff --git a/images/cooltext385352775342553.png b/images/cooltext385352775342553.png new file mode 100644 index 0000000..1e4cbe8 Binary files /dev/null and b/images/cooltext385352775342553.png differ diff --git a/images/cooltext385352803949697.png b/images/cooltext385352803949697.png new file mode 100644 index 0000000..d3a9348 Binary files /dev/null and b/images/cooltext385352803949697.png differ diff --git a/images/file-type-ic10.svg b/images/file-type-ic10.svg new file mode 100644 index 0000000..b9f8a3c --- /dev/null +++ b/images/file-type-ic10.svg @@ -0,0 +1,4 @@ + + + diff --git a/images/file-type-icx.svg b/images/file-type-icx.svg new file mode 100644 index 0000000..b0c0fbd --- /dev/null +++ b/images/file-type-icx.svg @@ -0,0 +1,4 @@ + + + diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 0000000..b609c18 Binary files /dev/null and b/images/logo.png differ diff --git a/images/logo.svg b/images/logo.svg new file mode 100644 index 0000000..43a93ef --- /dev/null +++ b/images/logo.svg @@ -0,0 +1,913 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/languages/en.json b/languages/en.json new file mode 100644 index 0000000..428a5eb --- /dev/null +++ b/languages/en.json @@ -0,0 +1,2944 @@ +{ + "ChargeRatio": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "The battery level in the slot." + } + }, + "Class": { + "type": "Slot parameter", + "description": { + "preview": "", + "text": "the class of the object in the slot" + } + }, + "Damage": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "object damage level" + } + }, + "Efficiency": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "Plant growth efficiency in an automatic hydroponic station. -1 if there is no plant." + } + }, + "Growth": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "Plant growth stage in automatic hydroponic station. -1 if there is no plant." + } + }, + "Health": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "Plant health in an automatic hydroponic station. 0 - dead plant, 1 - completely healthy, -1 - no plant." + } + }, + "Mature": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "Readiness of the plant in the automatic hydroponic station for harvesting. -1 if there is no plant." + } + }, + "MaxQuantity": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "maximum number of items in a slot" + } + }, + "OccupantHash": { + "type": "Slot parameter", + "description": { + "preview": "Hash", + "text": "hash of the object in the slot" + } + }, + "Occupied": { + "type": "Slot parameter", + "description": { + "preview": "Bool", + "text": "0 - slot free, 1 - occupied" + } + }, + "Quantity": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "Quantity of the iten in the slot" + } + }, + "Seeding": { + "type": "Slot parameter", + "description": { + "preview": "", + "text": "" + } + }, + "SortingClass": { + "type": "Slot parameter", + "description": { + "preview": "", + "text": "" + } + }, + "x": { + "type": "Slot parameter", + "description": { + "preview": "x", + "text": "x" + } + }, + "Activate": { + "type": "Device parameter", + "description": { + "preview": "trigger", + "text": "-1 - stop, 0 - not working 1 - working" + } + }, + "AirRelease": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "Bpm": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "Charge": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Battery or accumulator charge, J. Level of electricity generation by a solar panel, W." + } + }, + "ClearMemory": { + "type": "Device parameter", + "description": { + "preview": "trigger", + "text": ">=1 - reset counters" + } + }, + "CollectableGoods": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "Color": { + "type": "Device parameter", + "description": { + "preview": "0-blue, 1-grey, 2-green, 3-orange, 4-red, 5-yellow, 6-white, 7-black, 8-brown, 9-khaki, 10-pink, 11-purple", + "text": "Color of LED lamp, fixed beacon and LED display" + } + }, + "Combustion": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "1 - ignition detected, 0 - in all other cases" + } + }, + "CombustionInput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "CombustionLimiter": { + "type": "Device parameter", + "description": { + "preview": "int[0,10,20,30,40,50,60,70,80,90,100]", + "text": "Sets the combustion limiter of Combustion Centrifuge." + } + }, + "CombustionOutput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "CombustionOutput2": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "CompletionRatio": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "production stage in %" + } + }, + "ElevatorLevel": { + "type": "Device parameter", + "description": { + "preview": "int", + "text": "For reading - the level at which the elevator cabin is located, or -1 if there is no cabin. On record - sends the elevator to the specified floor." + } + }, + "ElevatorSpeed": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "The speed of the elevator cabin, m / tick. A negative value corresponds to downward movement, 0 to a stationary booth, a positive value to upward movement." + } + }, + "Error": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "0 - normal operation, 1 - error" + } + }, + "ExportCount": { + "type": "Device parameter", + "description": { + "preview": "int", + "text": "counter of objects passed through the export slot" + } + }, + "Filtration": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "Switches the filtration of the spent mixture in a durable suit." + } + }, + "Flush": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "ForceWrite": { + "type": "Device parameter", + "description": { + "preview": "trigger", + "text": "Forces the write and multiwrite chips to transfer the current value to the hardware." + } + }, + "Fuel": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "Harvest": { + "type": "Device parameter", + "description": { + "preview": "trigger", + "text": "Activates harvesting in an automatic hydroponic station." + } + }, + "HASH(\"name\")": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "Horizontal": { + "type": "Device parameter", + "description": { + "preview": "float[0 - 360]", + "text": "angle with respect to the Sun in degrees in the horizontal projection of the Sun onto the sensor plane" + } + }, + "Idle": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "Loading the arc furnace. 0 - ore is not loaded, 1 - loaded." + } + }, + "ImportCount": { + "type": "Device parameter", + "description": { + "preview": "int", + "text": "counter of objects passed through the import slot" + } + }, + "InterrogationProgress": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "LineNumber": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "Lock": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "0 - manual control unlocked, 1 - locked" + } + }, + "Maximum": [ + { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "The maximum value of some equipment parameter, such as battery charge or pressure at the inlet to the combustion chamber of a jet engine. Very often present but not used." + } + }, + { + "type": "BM", + "description": { + "preview": "", + "text": "" + } + } + ], + "MineablesInQueue": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "MineablesInVicinity": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "Minimum": [ + { + "type": "Device parameter", + "description": { + "preview": "string", + "text": "" + } + }, + { + "type": "BM", + "description": { + "preview": "", + "text": "" + } + } + ], + "MinimumWattsToContact": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "Mode": { + "type": "Device parameter", + "description": { + "preview": "int", + "text": "working mode" + } + }, + "NextWeatherEventTime": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "On": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "0 - disabled 1 - enabled" + } + }, + "Open": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "0 - release closed, 1 - open" + } + }, + "Output": { + "type": "Device parameter", + "description": { + "preview": "Int/Trigger", + "text": "For a sorter - r/w , Int - the next output to which the object will be issued.
    For a stacker - w, Trigger - unloads the accumulated packing of objects into the export slot." + } + }, + "Plant": { + "type": "Device parameter", + "description": { + "preview": "trigger", + "text": "Starts the process of planting a plant from the import slot in an automatic hydroponic station." + } + }, + "PositionX": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "X coordinate of current position" + } + }, + "PositionY": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Y coordinate of the current position" + } + }, + "PositionZ": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Z coordinate of the current position" + } + }, + "Power": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "0 - no power or off, 1 - power on" + } + }, + "PowerActual": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Total electricity consumption by all devices in the network, W." + } + }, + "PowerGeneration": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Current generation of electricity by the generator, W." + } + }, + "PowerPotential": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Maximum available network power, W." + } + }, + "PowerRequired": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "The total electricity demand of all devices in the network, W." + } + }, + "PrefabHash": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "Pressure": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "PressureAir": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Pressure in the cylinder with the breathing mixture of the suit installed in the rack, kPa." + } + }, + "PressureExternal": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "atmospheric pressure in the environment, kPa" + } + }, + "PressureInput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "PressureInternal": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "The pressure in the pipeline at which the operation of active ventilation stops, kPa. Installed but not used." + } + }, + "PressureOutput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "PressureOutput2": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "PressureSetting": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "PressureWaste": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Pressure in the cylinder with the spent mixture of the suit installed in the rack, kPa." + } + }, + "Ratio": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "For batteries - Charge/Maximum ratio.
    For other devices - Setting/Maximum ratio." + } + }, + "RatioCarbonDioxide": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "share of carbon dioxide" + } + }, + "RatioCarbonDioxideInput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioCarbonDioxideOutput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioCarbonDioxideOutput2": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioLiquidCarbonDioxide": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioLiquidNitrogen": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioLiquidNitrousOxide": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioLiquidOxygen": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioLiquidPollutant": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioLiquidVolatiles": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioNitrogen": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "proportion of nitrogen" + } + }, + "RatioNitrogenInput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioNitrogenOutput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioNitrogenOutput2": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioNitrousOxide": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "share of nitrous oxide" + } + }, + "RatioNitrousOxideInput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioNitrousOxideOutput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioNitrousOxideOutput2": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioOxygen": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "fraction of oxygen" + } + }, + "RatioOxygenInput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioOxygenOutput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioOxygenOutput2": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioPollutant": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "proportion of toxins" + } + }, + "RatioPollutantInput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioPollutantOutput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioPollutantOutput2": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioSteam": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioVolatiles": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "fraction of volatile gases" + } + }, + "RatioVolatilesInput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioVolatilesOutput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioVolatilesOutput2": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioWater": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "proportion of water vapor" + } + }, + "RatioWaterInput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioWaterOutput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RatioWaterOutput2": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "Reagents": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "total weight of ingredients in grams" + } + }, + "RecipeHash": { + "type": "Device parameter", + "description": { + "preview": "int", + "text": "hash of the selected recipe" + } + }, + "RequestHash": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "hash of requested item" + } + }, + "RequiredPower": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "The energy required for the operation of the device, W." + } + }, + "ReturnFuelCost": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "Rpm": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "Setting": { + "type": "Device parameter", + "description": { + "preview": "Any", + "text": "The current value of some hardware parameter. The type and possible values ​​depend on the hardware." + } + }, + "SettingOutput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Secondary setting" + } + }, + "SignalID": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "SignalStrength": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "SizeX": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "SizeZ": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "SolarAngle": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "angle relative to the sun in degrees" + } + }, + "SolarIrradiance": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "SoundAlert": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "Stress": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "TargetPadIndex": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "TargetX": { + "type": "Device parameter", + "description": { + "preview": "int", + "text": "target x-coordinate" + } + }, + "TargetY": { + "type": "Device parameter", + "description": { + "preview": "int", + "text": "target y-coordinate" + } + }, + "TargetZ": { + "type": "Device parameter", + "description": { + "preview": "int", + "text": "target's z-coordinate" + } + }, + "Temperature": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "TemperatureExternal": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "temperature of the external atmosphere, K" + } + }, + "TemperatureInput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "TemperatureOutput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "TemperatureOutput2": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "TemperatureSetting": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "The specified temperature inside the durable suit, K." + } + }, + "Throttle": { + "type": "Device parameter", + "description": { + "preview": "int[0,10,20,30,40,50,60,70,80,90,100]", + "text": "Sets the throttle of Combustion Centrifuge." + } + }, + "Time": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "TotalMoles": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "The total amount of gas inside the pipeline, mol." + } + }, + "TotalMolesInput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "TotalMolesOutput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "TotalMolesOutput2": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "VelocityMagnitude": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "bot movement speed module" + } + }, + "VelocityRelativeX": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "speed of movement along the X coordinate" + } + }, + "VelocityRelativeY": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Y-axis movement speed" + } + }, + "VelocityRelativeZ": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "movement speed along Z coordinate" + } + }, + "Vertical": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "angle relative to the sun in degrees" + } + }, + "Volume": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Volume" + } + }, + "VolumeOfLiquid": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "WattsReachingContact": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "abs": { + "type": "Function", + "description": { + "preview": "op1 := |op2|", + "text": "The absolute value of the number" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "acos": { + "type": "Function", + "description": { + "preview": "op1 := acos(op2)", + "text": "Arccosine*" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "add": { + "type": "Function", + "description": { + "preview": "op1 := op2 + op3", + "text": "Sum" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "alias": { + "type": "Function", + "description": { + "preview": "op2 => op1", + "text": "Specify an alias for a register or data channel" + }, + "op1": "N", + "op2": "R/D", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "and": { + "type": "Function", + "description": { + "preview": "op1 := op2 op3", + "text": "Logical AND, one if both op2 and op3 are true, zero otherwise" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "asin": { + "type": "Function", + "description": { + "preview": "op1 := asin(op2)", + "text": "Arcsine*" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "atan": { + "type": "Function", + "description": { + "preview": "op1 := atan(op2)", + "text": "Arctangent*" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "atan2": { + "type": "Function", + "description": { + "preview": "op1 := atan2(op2,op3)", + "text": "Arc tangent with 2 arguments" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "bap": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op4 if op1 op2 with precision op3" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/A/T", + "op5": null, + "op6": null + }, + "bapal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op4 if op1 op2 with precision op3, writing the address of the next line to ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/A/T", + "op5": null, + "op6": null + }, + "bapz": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 0 with precision op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bapzal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 0 with precision op2, writing the address of the next line to ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bdns": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if op1 channel is not configured" + }, + "op1": "N/D", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bdnsal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if channel op1 is not configured, writing next line address to ra" + }, + "op1": "N/D", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bdse": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if channel op1 is configured" + }, + "op1": "N/D", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bdseal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if channel op1 is configured with next line address written to ra" + }, + "op1": "N/D", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "beq": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 = op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "beqal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 = op2, writing the address of the next line to ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "beqz": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if op1 = 0" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "beqzal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if op1 = 0, writing the address of the next line to ra" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bge": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 >= op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bgeal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 >= op2, writing next line address to ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bgez": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if op1 >= 0" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bgezal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if op1 >= 0, writing next line address to ra" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bgt": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 > op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bgtal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 > op2, writing next line address to ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bgtz": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if op1 > 0" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bgtzal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if op1 > 0, writing the address of the next line to ra" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "ble": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 <= op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bleal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 <= op2, writing next line address to ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "blez": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if op1 <= 0" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "blezal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if op1 <= 0, writing the address of the next line to ra" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "blt": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 < op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bltal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 < op2, writing the address of the next line to ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bltz": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if op1 < 0" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bltzal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if op1 < 0, writing the address of the next line to ra" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bna": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op4 if op1 ~= op2 with precision op3" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/A/T", + "op5": null, + "op6": null + }, + "bnaal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op4 if op1 ~= op2 with precision op3, writing next line address to ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/A/T", + "op5": null, + "op6": null + }, + "bnan": { + "type": "Function", + "description": { + "preview": "", + "text": "" + }, + "op1": "R/N", + "op2": "R/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bnaz": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 ~= 0 with precision op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bnazal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 ~= 0 with precision op2, writing next line address to ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bne": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 != op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bneal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op3 if op1 != op2, writing next line address to ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bnez": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if op1 != 0" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bnezal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op2 if op1 != 0, writing the address of the next line to ra" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brap": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op4 if op1 op2 with precision op3" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/O", + "op5": null, + "op6": null + }, + "brapz": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op3 if op1 0 with precision op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "op5": null, + "op6": null + }, + "brdns": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op2 if channel op1 is not configured" + }, + "op1": "N/D", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brdse": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op2 if channel op1 is configured" + }, + "op1": "N/D", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "breq": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op3 if op1 = op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "op5": null, + "op6": null + }, + "breqz": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op2 if op1 = 0" + }, + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brge": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op3 if op1 >= op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "op5": null, + "op6": null + }, + "brgez": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op2 if op1 >= 0" + }, + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brgt": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op3 if op1 > op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "op5": null, + "op6": null + }, + "brgtz": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op2 if op1 > 0" + }, + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brle": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op3 if op1 <= op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "op5": null, + "op6": null + }, + "brlez": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op2 if op1 <= 0" + }, + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brlt": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op3 if op1 < op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "op5": null, + "op6": null + }, + "brltz": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op2 if op1 < 0" + }, + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brna": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op4 if op1 op2 with precision op3" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/O", + "op5": null, + "op6": null + }, + "brnan": { + "type": "Function", + "description": { + "preview": "", + "text": "" + }, + "op1": "R/N", + "op2": "R/N/C/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brnaz": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op3 if op1 0 with precision op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "op5": null, + "op6": null + }, + "brne": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op3 if op1 != op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brnez": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op2 if op1 != 0" + }, + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "ceil": { + "type": "Function", + "description": { + "preview": "op1 := op2", + "text": "Round up to nearest integer" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "cos": { + "type": "Function", + "description": { + "preview": "op1 := cos(op2)", + "text": "Cosine*" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "debug": { + "type": "Function", + "description": { + "preview": "[icX]", + "text": "[icX] logs passed values ​​in the debugger" + }, + "op1": "R/N/C/Y", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "define": { + "type": "Function", + "description": { + "preview": "op2 => op1", + "text": "Set a name for the constant" + }, + "op1": "Y", + "op2": "R/N/C/H", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "div": { + "type": "Function", + "description": { + "preview": "op1 :=op2 / op3", + "text": "Division" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "exp": { + "type": "Function", + "description": { + "preview": "op1 := eop2", + "text": "Exhibitor" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "floor": { + "type": "Function", + "description": { + "preview": "op1 := op2", + "text": "Rounding down to nearest integer" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "hcf": { + "type": "Function", + "description": { + "preview": "", + "text": "Stop work and burn the microprocessor" + }, + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "j": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to the specified line" + }, + "op1": "R/N/A/T", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "jal": { + "type": "Function", + "description": { + "preview": "", + "text": "Jump to op1, writing the address of the next line to ra" + }, + "op1": "R/N/A/T", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "jr": { + "type": "Function", + "description": { + "preview": "", + "text": "Relative jump to +op1" + }, + "op1": "R/N/O", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "l": { + "type": "Function", + "description": { + "preview": "op1 := op2.op3", + "text": "Reading the value of parameter op3 from port op2" + }, + "op1": "R/N", + "op2": "N/D", + "op3": "P", + "op4": null, + "op5": null, + "op6": null + }, + "lb": { + "type": "Function", + "description": { + "preview": "op1 := op2.op3.mode(op4)", + "text": "Batch read in op1 from all devices with hash op2 of parameter op3 in op4 mode" + }, + "op1": "R/N", + "op2": "R/N/C/H", + "op3": "P", + "op4": "BM", + "op5": null, + "op6": null + }, + "lbn": { + "type": "Function", + "description": { + "preview": "", + "text": "" + }, + "op1": "R/N", + "op2": "R/N/C/H", + "op3": "R/N/C/H", + "op4": "P", + "op5": "BM", + "op6": null + }, + "lbns": { + "type": "Function", + "description": { + "preview": "", + "text": "" + }, + "op1": "R/N", + "op2": "R/N/C/H", + "op3": "R/N/C/H", + "op4": "R/N/S", + "op5": "P", + "op6": "BM" + }, + "lbs": { + "type": "Function", + "description": { + "preview": "", + "text": "" + }, + "op1": "R/N", + "op2": "R/N/H", + "op3": "R/N/S", + "op4": "P", + "op5": "BM", + "op6": null + }, + "log": { + "type": "Function", + "description": { + "preview": "op1 := log(op2)", + "text": "natural logarithm" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "lr": { + "type": "Function", + "description": { + "preview": "op1 := op2.mode(op3).op4", + "text": "Read reagent value op4 in op3 mode from port op2" + }, + "op1": "R/N", + "op2": "N/D", + "op3": "RM", + "op4": "R/N/RC/H", + "op5": null, + "op6": null + }, + "ls": { + "type": "Function", + "description": { + "preview": "op1 := op2.slot(op3).op4", + "text": "Read value op4 from slot op3 of port op2" + }, + "op1": "R/N", + "op2": "N/D", + "op3": "R/N/S", + "op4": "P", + "op5": null, + "op6": null + }, + "max": { + "type": "Function", + "description": { + "preview": "op1 := max(op2, op3)", + "text": "Maximum of two" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "min": { + "type": "Function", + "description": { + "preview": "op1 := min(op2, op3)", + "text": "Minimum of two" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "mod": { + "type": "Function", + "description": { + "preview": "op1 := op2 mod op3", + "text": "Remainder of integer division of op2 by op3 (the result is not equivalent to the % operator, and will be positive for any signs of op2 and op3)" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "move": { + "type": "Function", + "description": { + "preview": "op1 := op2", + "text": "Value assignment" + }, + "op1": "R/N", + "op2": "R/N/C/T/H", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "mul": { + "type": "Function", + "description": { + "preview": "op1 := op2 * op3", + "text": "Multiplication" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "nor": { + "type": "Function", + "description": { + "preview": "op1 := ¬(op2 op3)", + "text": "Inverse OR, one if both op2 and op3 are false, zero otherwise" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "or": { + "type": "Function", + "description": { + "preview": "op1 := op2 op3", + "text": "Logical OR, zero if both op2 and op3 are false, one otherwise" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "peek": { + "type": "Function", + "description": { + "preview": "op1 := stack[sp-1]", + "text": "Push the top value off the stack into op1 without moving the stack" + }, + "op1": "R/N", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "pop": { + "type": "Function", + "description": { + "preview": "op1 := stack[--sp]", + "text": "Pop a value from the stack and write to op1" + }, + "op1": "R/N", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "push": { + "type": "Function", + "description": { + "preview": "stack[sp++] := op1", + "text": "Push op1 onto the stack" + }, + "op1": "R/N/C/T/H", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "rand": { + "type": "Function", + "description": { + "preview": "op1 := rand(0,1)", + "text": "Random value from 0 to 1 inclusive" + }, + "op1": "R/N", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "return": { + "type": "Function", + "description": { + "preview": "[icX] return x", + "text": "[icX] return value from functions" + }, + "op1": "R/N/C", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "round": { + "type": "Function", + "description": { + "preview": "op1 := [op2]", + "text": "Rounding to nearest integer" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "s": { + "type": "Function", + "description": { + "preview": "op1.op2 := op3", + "text": "Writing a value to the op2 parameter of port op1" + }, + "op1": "N/D", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sap": { + "type": "Function", + "description": { + "preview": "op1 := (op2 op3)", + "text": "If op2 op3 with precision op4, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/C", + "op5": null, + "op6": null + }, + "sapz": { + "type": "Function", + "description": { + "preview": "op1 := (op2 0)", + "text": "If op2 0 with precision op3, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sb": { + "type": "Function", + "description": { + "preview": "op1.op2 := op3", + "text": "Batch write to all devices with hash op1 to parameter op2 of value op3" + }, + "op1": "R/N/C/H", + "op2": "P", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sbn": { + "type": "Function", + "description": { + "preview": "", + "text": "" + }, + "op1": "R/N/C/H", + "op2": "R/N/C/H", + "op3": "P", + "op4": "R/N/C", + "op5": null, + "op6": null + }, + "sbs": { + "type": "Function", + "description": { + "preview": "", + "text": "" + }, + "op1": "R/N/H", + "op2": "R/N/S", + "op3": "P", + "op4": "R/N/C", + "op5": null, + "op6": null + }, + "sdns": { + "type": "Function", + "description": { + "preview": "op1 := ¬isset(op2) ? ten", + "text": "If channel op2 is not set to one, otherwise zero" + }, + "op1": "R/N", + "op2": "N/D", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sdse": { + "type": "Function", + "description": { + "preview": "op1 := isset(op2) ? ten", + "text": "If channel op2 is set to one, otherwise zero" + }, + "op1": "R/N", + "op2": "N/D", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "select": { + "type": "Function", + "description": { + "preview": "op1 := (op2 ? op3 : op4)", + "text": "Ternary select. If op2 is true then op1 := op3, otherwise op1 := op4" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/C", + "op5": null, + "op6": null + }, + "seq": { + "type": "Function", + "description": { + "preview": "op1 := (op2 = op3)", + "text": "If op2 = op3, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "seqz": { + "type": "Function", + "description": { + "preview": "op1 := (op2 = 0)", + "text": "If op2 = 0, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sge": { + "type": "Function", + "description": { + "preview": "op1 := (op2 op3)", + "text": "If op2 op3, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sgez": { + "type": "Function", + "description": { + "preview": "op1 := (op2 0)", + "text": "If op2 0, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sgt": { + "type": "Function", + "description": { + "preview": "op1 := (op2 > op3)", + "text": "If op2 > op3, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sgtz": { + "type": "Function", + "description": { + "preview": "op1 := (op2 > 0)", + "text": "If op2 > 0, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sin": { + "type": "Function", + "description": { + "preview": "op1 := sin(op2)", + "text": "Sinus*" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sla": { + "type": "Function", + "description": { + "preview": "op1 := op2 <<$ op3", + "text": "Left arithmetic bitshift" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sle": { + "type": "Function", + "description": { + "preview": "op1 := (op2 op3)", + "text": "If op2 op3, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sleep": { + "type": "Function", + "description": { + "preview": "sleep", + "text": "Pause the program for op1 seconds" + }, + "op1": "R/N/C", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "slez": { + "type": "Function", + "description": { + "preview": "op1 := (op2 0)", + "text": "If op2 0, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sll": { + "type": "Function", + "description": { + "preview": "op1 := op2 << op3", + "text": "Left bitshift" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "slt": { + "type": "Function", + "description": { + "preview": "op1 := (op2 < op3)", + "text": "If op2 < op3, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sltz": { + "type": "Function", + "description": { + "preview": "op1 := (op2 < 0)", + "text": "If op2 < 0, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sna": { + "type": "Function", + "description": { + "preview": "op1 := (op2 op3)", + "text": "If op2 op3 with precision op4, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/C", + "op5": null, + "op6": null + }, + "snan": { + "type": "Function", + "description": { + "preview": "", + "text": "" + }, + "op1": "R/N", + "op2": "R/N", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "snanz": { + "type": "Function", + "description": { + "preview": "", + "text": "" + }, + "op1": "R/N", + "op2": "R/N", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "snaz": { + "type": "Function", + "description": { + "preview": "op1 := (op2 0)", + "text": "If op2 0 with precision op3, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sne": { + "type": "Function", + "description": { + "preview": "op1 := (op2 op3)", + "text": "If op2 op3, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "snez": { + "type": "Function", + "description": { + "preview": "op1 := (op2 0)", + "text": "If op2 0, then one, otherwise zero" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sqrt": { + "type": "Function", + "description": { + "preview": "op1 := o̅p̅2̅", + "text": "Square root" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sra": { + "type": "Function", + "description": { + "preview": "op1 := op2 >>$ op3", + "text": "Right arithmetic bitshift" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "srl": { + "type": "Function", + "description": { + "preview": "op1 := op2 >> op3", + "text": "Right bitshift" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "ss": { + "type": "Function", + "description": { + "preview": "", + "text": "" + }, + "op1": "N/D", + "op2": "R/N/S", + "op3": "P", + "op4": "R/N/C", + "op5": null, + "op6": null + }, + "stack": { + "type": "Function", + "description": { + "preview": "[icX] stack 1 2 3 ...", + "text": "[icX] Populates the stack with argument values" + }, + "op1": "R/N/C", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sub": { + "type": "Function", + "description": { + "preview": "op1 := op2 - op3", + "text": "Difference" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "tan": { + "type": "Function", + "description": { + "preview": "op1 := tan(op2)", + "text": "Tangent*" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "trunc": { + "type": "Function", + "description": { + "preview": "op1 := int(op2)", + "text": "The integer part of number" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "xor": { + "type": "Function", + "description": { + "preview": "op1 := op2 op3", + "text": "XOR, one if one and only one of op2 and op3 is true, zero otherwise" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "yield": { + "type": "Function", + "description": { + "preview": "", + "text": "Pausing the program until the next tick" + }, + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "Contents": { + "type": "Const", + "description": { + "preview": "", + "text": "" + } + }, + "deg2rad": { + "type": "Const", + "description": { + "preview": "0.017453292519943295769236907684", + "text": "" + } + }, + "nan": { + "type": "Const", + "description": { + "preview": "NaN", + "text": "" + } + }, + "ninf": { + "type": "Const", + "description": { + "preview": "-Infinity", + "text": "" + } + }, + "pi": { + "type": "Const", + "description": { + "preview": "3.14159265358979", + "text": "" + } + }, + "pinf": { + "type": "Const", + "description": { + "preview": "Infinity", + "text": "" + } + }, + "rad2deg": { + "type": "Const", + "description": { + "preview": "57.2957795130823208767981", + "text": "" + } + }, + "Recipe": { + "type": "Const", + "description": { + "preview": "2", + "text": "" + } + }, + "Required": { + "type": "Const", + "description": { + "preview": "1", + "text": "" + } + }, + "Channel0": { + "type": "Channel", + "description": { + "preview": "", + "text": "" + } + }, + "Channel1": { + "type": "Channel", + "description": { + "preview": "", + "text": "" + } + }, + "Channel2": { + "type": "Channel", + "description": { + "preview": "", + "text": "" + } + }, + "Channel3": { + "type": "Channel", + "description": { + "preview": "", + "text": "" + } + }, + "Channel4": { + "type": "Channel", + "description": { + "preview": "", + "text": "" + } + }, + "Channel5": { + "type": "Channel", + "description": { + "preview": "", + "text": "" + } + }, + "Channel6": { + "type": "Channel", + "description": { + "preview": "", + "text": "" + } + }, + "Channel7": { + "type": "Channel", + "description": { + "preview": "", + "text": "" + } + }, + "Average": { + "type": "BM", + "description": { + "preview": "string", + "text": "" + } + }, + "Sum": { + "type": "BM", + "description": { + "preview": "string", + "text": "" + } + } +} \ No newline at end of file diff --git a/languages/ru.json b/languages/ru.json new file mode 100644 index 0000000..49eb4da --- /dev/null +++ b/languages/ru.json @@ -0,0 +1,2944 @@ +{ + "ChargeRatio": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "Уровень заряда аккумулятора в слоте." + } + }, + "Class": { + "type": "Slot parameter", + "description": { + "preview": "", + "text": "класс объекта в слоте" + } + }, + "Damage": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "Повреждение растения." + } + }, + "Efficiency": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "Эффективность роста растения в автоматической гидропонной станции. -1, если растения нет." + } + }, + "Growth": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "Стадия роста растения в автоматической гидропонной станции. -1, если растения нет." + } + }, + "Health": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "Здоровье растения в автоматической гидропонной станции. 0 - умершаа растение, 1 - полностью здоровое, -1 - растения нет." + } + }, + "Mature": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "Стадия роста растения в автоматической гидропонной станции. -1 если растения нет." + } + }, + "MaxQuantity": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "Максимальное количество в слоте" + } + }, + "OccupantHash": { + "type": "Slot parameter", + "description": { + "preview": "Hash", + "text": "хэш объекта в слоте" + } + }, + "Occupied": { + "type": "Slot parameter", + "description": { + "preview": "Bool", + "text": "0 - слот свободен, 1 - занят" + } + }, + "Quantity": { + "type": "Slot parameter", + "description": { + "preview": "float", + "text": "Количество предметов в слоте" + } + }, + "Seeding": { + "type": "Slot parameter", + "description": { + "preview": "bool", + "text": "Наличие семени." + } + }, + "SortingClass": { + "type": "Slot parameter", + "description": { + "preview": "", + "text": "класс объекта в слоте" + } + }, + "x": { + "type": "Slot parameter", + "description": { + "preview": "", + "text": "" + } + }, + "Activate": { + "type": "Device parameter", + "description": { + "preview": "Trigger", + "text": "-1 - остановить , 0 - не работает 1 - работает" + } + }, + "AirRelease": { + "type": "Device parameter", + "description": { + "preview": "bool", + "text": "Подача газа из баллона в костюме." + } + }, + "Bpm": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "ритм" + } + }, + "Charge": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Заряд батареи или аккумулятора, Дж. Уровень генерации электричества солнечной панелью, Вт." + } + }, + "ClearMemory": { + "type": "Device parameter", + "description": { + "preview": "Trigger", + "text": ">=1 - сбрасывает счётчики" + } + }, + "CollectableGoods": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "Возможность добычи." + } + }, + "Color": { + "type": "Device parameter", + "description": { + "preview": "0-синий , 1-серый , 2-зелёный , 3-оранжевый , 4-красный , 5-жёлтый, 6-белый, 7-черный, 8-коричневый, 9-хаки, 10-розовый, 11-фиолетовый", + "text": "Цвет LED-лампы, стационарного маяка и светодиодного дисплея" + } + }, + "Combustion": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "1 - обнаружено воспламенение, 0 - во всех остальных случаях" + } + }, + "CombustionInput": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "Труба вход: 1 - обнаружено воспламенение, 0 - во всех остальных случаях" + } + }, + "CombustionLimiter": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "CombustionOutput": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "Труба выход: 1 - обнаружено воспламенение, 0 - во всех остальных случаях" + } + }, + "CombustionOutput2": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "Труба выход 2: 1 - обнаружено воспламенение, 0 - во всех остальных случаях" + } + }, + "CompletionRatio": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "этап производства в %" + } + }, + "ElevatorLevel": { + "type": "Device parameter", + "description": { + "preview": "Int", + "text": "На чтение - уровень, на котором находится кабинка лифта, или -1, если кабинки нет. На запись - отправляет лифт на указанный этаж." + } + }, + "ElevatorSpeed": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Скорость движения кабинки лифта, м/тик. Отрицательное значение соответствуют движению вниз, 0 - неподвижной кабинке, положительное - движению вверх." + } + }, + "Error": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "0 - нормальная работа, 1 - ошибка" + } + }, + "ExportCount": { + "type": "Device parameter", + "description": { + "preview": "Int", + "text": "счётчик объектов, прошедших через слот экспорта" + } + }, + "Filtration": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "Переключает фильтрацию отработанной смеси в прочном скафандре." + } + }, + "Flush": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "ForceWrite": { + "type": "Device parameter", + "description": { + "preview": "Trigger", + "text": "Принудительно заставляет чипы записи и множественной записи передать текущее значение в оборудование." + } + }, + "Fuel": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Количества топлива в ракете." + } + }, + "Harvest": { + "type": "Device parameter", + "description": { + "preview": "Trigger", + "text": "Активирует сбор урожая в автоматической гидропонной станции." + } + }, + "HASH(\"name\")": { + "type": "Device parameter", + "description": { + "preview": "int", + "text": "Переводит имя в числовое значение." + } + }, + "Horizontal": { + "type": "Device parameter", + "description": { + "preview": "float[0 - 360]", + "text": "угол по отношению к Солнцу в градусах в горизонтальной проекции Солнца на плоскость датчика" + } + }, + "Idle": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "Загрузка дуговой печи. 0 - руда не загружена, 1 - загружена." + } + }, + "ImportCount": { + "type": "Device parameter", + "description": { + "preview": "Int", + "text": "счётчик объектов, прошедших через слот импорта" + } + }, + "InterrogationProgress": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Установление связи" + } + }, + "LineNumber": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "Выполняемый номер строки " + } + }, + "Lock": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "0 - ручное управление разблокировано, 1 - заблокировано" + } + }, + "Maximum": [ + { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + { + "type": "BM", + "description": { + "preview": "", + "text": "" + } + } + ], + "MineablesInQueue": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "" + } + }, + "MineablesInVicinity": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "" + } + }, + "Minimum": [ + { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + { + "type": "BM", + "description": { + "preview": "", + "text": "" + } + } + ], + "MinimumWattsToContact": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Минимум ватт для соединения" + } + }, + "Mode": { + "type": "Device parameter", + "description": { + "preview": "Int", + "text": "режим работы" + } + }, + "NextWeatherEventTime": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Время до шторма" + } + }, + "On": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "0 - выключен 1 - включен" + } + }, + "Open": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "0 - выброс закрыт, 1 - открыт" + } + }, + "Output": { + "type": "Device parameter", + "description": { + "preview": "Int/Trigger", + "text": "Для сортировщика - r/w , Int - следующий выход, на который будет выдан объект.
    Для стакера - w, Trigger - выгружает накопленную упаковку объектов в слот экспорта." + } + }, + "Plant": { + "type": "Device parameter", + "description": { + "preview": "Trigger", + "text": "Запускает процесс посадки растения из слота импорта в автоматической гидропонной станции." + } + }, + "PositionX": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "координата X текущего положения" + } + }, + "PositionY": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "координата Y текущего положения" + } + }, + "PositionZ": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "координата Z текущего положения" + } + }, + "Power": { + "type": "Device parameter", + "description": { + "preview": "Bool", + "text": "0 - питание отсутствует или выключен, 1 - питание подано" + } + }, + "PowerActual": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Суммарное потребление электроэнергии всеми устройствами в сети, Вт." + } + }, + "PowerGeneration": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Текущее производство электроэнергии генератором, Вт." + } + }, + "PowerPotential": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Предельная доступная мощность сети, Вт." + } + }, + "PowerRequired": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Суммарная потребность в электроэнергии всех устройств в сети, Вт." + } + }, + "PrefabHash": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "Хеш устройства." + } + }, + "Pressure": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Давление в устройстве." + } + }, + "PressureAir": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Давление в устройстве." + } + }, + "PressureExternal": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "атмосферное давление во внешней среде, кПа" + } + }, + "PressureInput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Давление в трубе вход." + } + }, + "PressureInternal": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Давление в трубопроводе, при котором останавливается работа активной вентиляции, кПа. Устанавливается, но не используется." + } + }, + "PressureOutput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Давление в трубе выход." + } + }, + "PressureOutput2": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Давление в трубе выход 2." + } + }, + "PressureSetting": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Целевое давление в костюме." + } + }, + "PressureWaste": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Давление в устройстве." + } + }, + "Ratio": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Для батарей - соотношение Charge/Maximum.
    Для остальных устройств - соотношение Setting/Maximum." + } + }, + "RatioCarbonDioxide": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля углекислого газа" + } + }, + "RatioCarbonDioxideInput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля углекислого газа в трубе вход" + } + }, + "RatioCarbonDioxideOutput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля углекислого газа в трубе выход" + } + }, + "RatioCarbonDioxideOutput2": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля углекислого газа в трубе выход 2" + } + }, + "RatioLiquidCarbonDioxide": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля жидкого углекислого газа" + } + }, + "RatioLiquidNitrogen": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля жидкого азота" + } + }, + "RatioLiquidNitrousOxide": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля жидкого закиси азота" + } + }, + "RatioLiquidOxygen": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля жидкого кислорода" + } + }, + "RatioLiquidPollutant": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля жидких токсинов" + } + }, + "RatioLiquidVolatiles": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля Жидких летучих газов" + } + }, + "RatioNitrogen": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля азота" + } + }, + "RatioNitrogenInput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля азота в трубе вход" + } + }, + "RatioNitrogenOutput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля азота в трубе выход" + } + }, + "RatioNitrogenOutput2": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля азота в трубе выход 2" + } + }, + "RatioNitrousOxide": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля закиси азота" + } + }, + "RatioNitrousOxideInput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля закиси азота в трубе вход" + } + }, + "RatioNitrousOxideOutput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля закиси азота в трубе выход" + } + }, + "RatioNitrousOxideOutput2": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля закиси азота в трубе выход 2" + } + }, + "RatioOxygen": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля кислорода" + } + }, + "RatioOxygenInput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля кислорода в трубе вход." + } + }, + "RatioOxygenOutput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля кислорода в трубе выход." + } + }, + "RatioOxygenOutput2": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля кислорода в трубе выход 2." + } + }, + "RatioPollutant": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля токсинов" + } + }, + "RatioPollutantInput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля токсинов в трубе вход" + } + }, + "RatioPollutantOutput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля токсинов в трубе выход" + } + }, + "RatioPollutantOutput2": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля токсинов в трубе выход 2" + } + }, + "RatioSteam": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Доля пара(вода) в трубе." + } + }, + "RatioVolatiles": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля летучих газов" + } + }, + "RatioVolatilesInput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля летучих газов в трубе вход" + } + }, + "RatioVolatilesOutput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля летучих газов в трубе выход" + } + }, + "RatioVolatilesOutput2": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля летучих газов в трубе выход 2" + } + }, + "RatioWater": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля водяных паров" + } + }, + "RatioWaterInput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля водяных паров в трубе вход" + } + }, + "RatioWaterOutput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля водяных паров в трубе выход" + } + }, + "RatioWaterOutput2": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "доля водяных паров в трубе выход 2" + } + }, + "Reagents": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "общая масса ингредиентов в граммах" + } + }, + "RecipeHash": { + "type": "Device parameter", + "description": { + "preview": "Int", + "text": "хэш выбранного рецепта" + } + }, + "RequestHash": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "RequiredPower": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Энергия, требуемая для рабботы устройства, Вт." + } + }, + "ReturnFuelCost": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Топливо для возврата" + } + }, + "Rpm": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "обороты" + } + }, + "Setting": { + "type": "Device parameter", + "description": { + "preview": "Any", + "text": "Текущее значение какого-то параметра оборудования. Тип и возможные значения зависят от оборудования." + } + }, + "SettingOutput": { + "type": "Device parameter", + "description": { + "preview": "", + "text": "" + } + }, + "SignalID": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Ид сигнала" + } + }, + "SignalStrength": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "" + } + }, + "SizeX": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "" + } + }, + "SizeZ": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "" + } + }, + "SolarAngle": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "угол по отношению к Солнцу в градусах" + } + }, + "SolarIrradiance": { + "type": "Device parameter", + "description": { + "preview": "bool", + "text": "освещенность" + } + }, + "SoundAlert": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Подача сигнала в костюме." + } + }, + "Stress": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Сбой центрифуги" + } + }, + "TargetPadIndex": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "" + } + }, + "TargetX": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "координата X цели" + } + }, + "TargetY": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "координата Y цели" + } + }, + "TargetZ": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "координата Z цели" + } + }, + "Temperature": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Температура в устройстве (баллоне)" + } + }, + "TemperatureExternal": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "температура внешней атмосферы, К" + } + }, + "TemperatureInput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Температура в трубе вход." + } + }, + "TemperatureOutput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Температура в трубе выход." + } + }, + "TemperatureOutput2": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Температура в трубе выход 2." + } + }, + "TemperatureSetting": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Заданная температура внутри прочного скафандра, К." + } + }, + "Throttle": { + "type": "Device parameter", + "description": { + "preview": "int[0,10,20,30,40,50,60,70,80,90,100]", + "text": "Устанавливает дроссель центрифуги сгорания." + } + }, + "Time": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Время счетчика" + } + }, + "TotalMoles": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Общее количество газа внутри трубопровода, моль." + } + }, + "TotalMolesInput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Общее количество газа внутри трубопровода вход, моль." + } + }, + "TotalMolesOutput": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Общее количество газа внутри трубопровода выход, моль." + } + }, + "TotalMolesOutput2": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Общее количество газа внутри трубопровода выход 2, моль." + } + }, + "VelocityMagnitude": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "модуль скорости движения бота" + } + }, + "VelocityRelativeX": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "скорость движения по координате X" + } + }, + "VelocityRelativeY": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "скорость движения по координате Y" + } + }, + "VelocityRelativeZ": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "скорость движения по координате Z" + } + }, + "Vertical": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "угол по отношению к Солнцу в градусах" + } + }, + "Volume": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Громкость" + } + }, + "VolumeOfLiquid": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Количество жидкости, литры" + } + }, + "WattsReachingContact": { + "type": "Device parameter", + "description": { + "preview": "float", + "text": "Ватты при соединении" + } + }, + "abs": { + "type": "Function", + "description": { + "preview": "op1 := |op2|", + "text": "Абсолютная величина числа" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "acos": { + "type": "Function", + "description": { + "preview": "op1 := acos(op2)", + "text": "Арккосинус*" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "add": { + "type": "Function", + "description": { + "preview": "op1 := op2 + op3", + "text": "Сумма" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "alias": { + "type": "Function", + "description": { + "preview": "op2 => op1", + "text": "Задат псевдоним для регистра или канала данных" + }, + "op1": "N", + "op2": "R/D", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "and": { + "type": "Function", + "description": { + "preview": "op1 := op2 op3", + "text": "Логическое И, единица, если и op2 и op3 истинны, ноль в противном случае" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "asin": { + "type": "Function", + "description": { + "preview": "op1 := asin(op2)", + "text": "Арксинус*" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "atan": { + "type": "Function", + "description": { + "preview": "op1 := atan(op2)", + "text": "Арктангенс*" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "atan2": { + "type": "Function", + "description": { + "preview": "op1 := atan2(op2,op3)", + "text": "Арктангенс с 2 аргументами" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "bap": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op4, если op1 op2 с точностью op3" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/A/T", + "op5": null, + "op6": null + }, + "bapal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op4, если op1 op2 с точностью op3 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/A/T", + "op5": null, + "op6": null + }, + "bapz": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 0 с точностью op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bapzal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 0 с точностью op2 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bdns": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если канал op1 не настроен" + }, + "op1": "N/D", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bdnsal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если канал op1 не настроен с записью адреса следующей строки в ra" + }, + "op1": "N/D", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bdse": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если канал op1 настроен" + }, + "op1": "N/D", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bdseal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если канал op1 настроен с записью адреса следующей строки в ra" + }, + "op1": "N/D", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "beq": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 = op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "beqal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 = op2 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "beqz": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если op1 = 0" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "beqzal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если op1 = 0 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bge": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 >= op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bgeal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 >= op2 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bgez": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если op1 >= 0" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bgezal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если op1 >= 0 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bgt": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 > op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bgtal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 > op2 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bgtz": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если op1 > 0" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bgtzal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если op1 > 0 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "ble": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 <= op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bleal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 <= op2 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "blez": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если op1 <= 0" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "blezal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если op1 <= 0 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "blt": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 < op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bltal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 < op2 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bltz": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если op1 < 0" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bltzal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если op1 < 0 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bna": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op4, если op1 ~= op2 с точностью op3" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/A/T", + "op5": null, + "op6": null + }, + "bnaal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op4, если op1 ~= op2 с точностью op3 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/A/T", + "op5": null, + "op6": null + }, + "bnan": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если op1 = nan" + }, + "op1": "R/N", + "op2": "R/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bnaz": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 ~= 0 с точностью op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bnazal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 ~= 0 с точностью op2 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bne": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 != op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bneal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op3, если op1 != op2 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "op5": null, + "op6": null + }, + "bnez": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если op1 != 0" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "bnezal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op2, если op1 != 0 с записью адреса следующей строки в ra" + }, + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brap": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op4, если op1 op2 с точностью op3" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/O", + "op5": null, + "op6": null + }, + "brapz": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op3, если op1 0 с точностью op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "op5": null, + "op6": null + }, + "brdns": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op2, если канал op1 не настроен" + }, + "op1": "N/D", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brdse": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op2, если канал op1 настроен" + }, + "op1": "N/D", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "breq": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op3, если op1 = op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "op5": null, + "op6": null + }, + "breqz": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op2, если op1 = 0" + }, + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brge": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op3, если op1 >= op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "op5": null, + "op6": null + }, + "brgez": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op2, если op1 >= 0" + }, + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brgt": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op3, если op1 > op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "op5": null, + "op6": null + }, + "brgtz": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op2, если op1 > 0" + }, + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brle": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op3, если op1 <= op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "op5": null, + "op6": null + }, + "brlez": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op2, если op1 <= 0" + }, + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brlt": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op3, если op1 < op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "op5": null, + "op6": null + }, + "brltz": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op2, если op1 < 0" + }, + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brna": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op4, если op1 op2 с точностью op3" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/O", + "op5": null, + "op6": null + }, + "brnan": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op2, если op1 = nan" + }, + "op1": "R/N", + "op2": "R/N/C/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brnaz": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op3, если op1 0 с точностью op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "op5": null, + "op6": null + }, + "brne": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op3, если op1 != op2" + }, + "op1": "R/N/C", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "brnez": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op2, если op1 != 0" + }, + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "ceil": { + "type": "Function", + "description": { + "preview": "op1 := op2", + "text": "Округление до ближайшего целого вверх" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "cos": { + "type": "Function", + "description": { + "preview": "op1 := cos(op2)", + "text": "Косинус*" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "debug": { + "type": "Function", + "description": { + "preview": "debug ...", + "text": "Логирует переданные значения" + }, + "op1": "R/N/C/Y", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "define": { + "type": "Function", + "description": { + "preview": "op2 => op1", + "text": "Задать имя для константы\t\r\n" + }, + "op1": "Y", + "op2": "R/N/C/H", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "div": { + "type": "Function", + "description": { + "preview": "op1 :=op2 / op3", + "text": "Деление" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "exp": { + "type": "Function", + "description": { + "preview": "op1 := eop2", + "text": "Экспонента" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "floor": { + "type": "Function", + "description": { + "preview": "op1 := op2", + "text": "Округление до ближайшего целого вниз" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "hcf": { + "type": "Function", + "description": { + "preview": "", + "text": "Остановить работу и сжечь микропроцессор" + }, + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "j": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на указанную строку" + }, + "op1": "R/N/A/T", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "jal": { + "type": "Function", + "description": { + "preview": "", + "text": "Переход на op1 с записью адреса следующей строки в ra" + }, + "op1": "R/N/A/T", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "jr": { + "type": "Function", + "description": { + "preview": "", + "text": "Относительный переход на +op1" + }, + "op1": "R/N/O", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "l": { + "type": "Function", + "description": { + "preview": "op1 := op2.op3", + "text": "Чтение значения параметра op3 из порта op2" + }, + "op1": "R/N", + "op2": "N/D", + "op3": "P", + "op4": null, + "op5": null, + "op6": null + }, + "lb": { + "type": "Function", + "description": { + "preview": "op1 := op2.op3.mode(op4)", + "text": "Пакетное чтение в op1 из всех устройств с хешем op2 параметра op3 в режиме op4" + }, + "op1": "R/N", + "op2": "R/N/C/H", + "op3": "P", + "op4": "BM", + "op5": null, + "op6": null + }, + "lbn": { + "type": "Function", + "description": { + "preview": "op1 := op2.op3.op4.mode(op5)", + "text": "Чтение c устройства по хеш op2 и HASH(\"name\") op3 параметра op4 режимом чтение op5 в регистр op1" + }, + "op1": "R/N", + "op2": "R/N/C/H", + "op3": "R/N/C/H", + "op4": "P", + "op5": "BM", + "op6": null + }, + "lbns": { + "type": "Function", + "description": { + "preview": "op1 := op2.op3.op4.op5.mode(op6)", + "text": "Чтение из устройства хеш op2, имя устройства HASH(\"name\") op3, слота op4, параметра op5, способом op6 в регистр op1" + }, + "op1": "R/N", + "op2": "R/N/C/H", + "op3": "R/N/C/H", + "op4": "R/N/S", + "op5": "P", + "op6": "BM" + }, + "lbs": { + "type": "Function", + "description": { + "preview": "op1 := op2.op3.op4.Mode(op5)", + "text": "Пакетное чтение слотов." + }, + "op1": "R/N", + "op2": "R/N/H", + "op3": "R/N/S", + "op4": "P", + "op5": "BM", + "op6": null + }, + "log": { + "type": "Function", + "description": { + "preview": "op1 := ln(op2)", + "text": "Натуральный логарифм" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "lr": { + "type": "Function", + "description": { + "preview": "op1 := op2.mode(op3).op4", + "text": "Чтение значения реагента op4 в режиме op3 из порта op2" + }, + "op1": "R/N", + "op2": "N/D", + "op3": "RM", + "op4": "R/N/RC/H", + "op5": null, + "op6": null + }, + "ls": { + "type": "Function", + "description": { + "preview": "op1 := op2.op3.op4", + "text": "Чтение из устройства op2, слота op3, параметра op4 в регистр op1\t\r\n" + }, + "op1": "R/N", + "op2": "N/D", + "op3": "R/N/S", + "op4": "P", + "op5": null, + "op6": null + }, + "max": { + "type": "Function", + "description": { + "preview": "op1 := max(op2, op3)", + "text": "Максимальное из двух" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "min": { + "type": "Function", + "description": { + "preview": "op1 := min(op2, op3)", + "text": "Минимальное из двух" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "mod": { + "type": "Function", + "description": { + "preview": "op1 := op2 mod op3", + "text": "Остаток от целочисленного деления op2 на op3 (результат не эквивалентен оператору %, и будет положителен при любых знаках op2 и op3)" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "move": { + "type": "Function", + "description": { + "preview": "op1 := op2", + "text": "Присвоение значения" + }, + "op1": "R/N", + "op2": "R/N/C/T/H", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "mul": { + "type": "Function", + "description": { + "preview": "op1 := op2 * op3", + "text": "Произведение" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "nor": { + "type": "Function", + "description": { + "preview": "op1 := ¬(op2 op3)", + "text": "Инверсное ИЛИ, единица, если и op2 и op3 ложны, ноль в противном случае" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "or": { + "type": "Function", + "description": { + "preview": "op1 := op2 op3", + "text": "Логическое ИЛИ, ноль, если и op2 и op3 ложны, единица в противном случае" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "peek": { + "type": "Function", + "description": { + "preview": "op1 := stack[sp-1]", + "text": "Записать в op1 верхнее значение со стека не двигая стек" + }, + "op1": "R/N", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "pop": { + "type": "Function", + "description": { + "preview": "op1 := stack[--sp]", + "text": "Снять значение со стека и записать в op1" + }, + "op1": "R/N", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "push": { + "type": "Function", + "description": { + "preview": "stack[sp++] := op1", + "text": "Положить op1 на стек" + }, + "op1": "R/N/C/T/H", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "rand": { + "type": "Function", + "description": { + "preview": "op1 := rand(0,1)", + "text": "Случайная величина от 0 до 1 включительно" + }, + "op1": "R/N", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "return": { + "type": "Function", + "description": { + "preview": "[icX] return х", + "text": "[icX] возвращает значение из функций" + }, + "op1": "R/N/C", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "round": { + "type": "Function", + "description": { + "preview": "op1 := [op2]", + "text": "Округление к ближайшему целому" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "s": { + "type": "Function", + "description": { + "preview": "op1.op2 := op3", + "text": "Запись значения в параметр op2 порта op1" + }, + "op1": "N/D", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sap": { + "type": "Function", + "description": { + "preview": "op1 := (op2 op3)", + "text": "Если op2 op3 с точностью op4, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/C", + "op5": null, + "op6": null + }, + "sapz": { + "type": "Function", + "description": { + "preview": "op1 := (op2 0)", + "text": "Если op2 0 с точностью op3, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sb": { + "type": "Function", + "description": { + "preview": "op1.op2 := op3", + "text": "Пакетная запись во все устройства с хешем op1 в параметр op2 значения op3" + }, + "op1": "R/N/C/H", + "op2": "P", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sbn": { + "type": "Function", + "description": { + "preview": "op1.op2.op3 := op4", + "text": "Записывает в устройство хеш op1, хеш имя HASH(\"name\") op2, параметр op3 значение op4\r\n" + }, + "op1": "R/N/C/H", + "op2": "R/N/C/H", + "op3": "P", + "op4": "R/N/C", + "op5": null, + "op6": null + }, + "sbs": { + "type": "Function", + "description": { + "preview": "", + "text": "" + }, + "op1": "R/N/H", + "op2": "R/N/S", + "op3": "P", + "op4": "R/N/C", + "op5": null, + "op6": null + }, + "sdns": { + "type": "Function", + "description": { + "preview": "op1 := ¬isset(op2) ? 1 : 0", + "text": "Если канал op2 не настроен на то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "N/D", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sdse": { + "type": "Function", + "description": { + "preview": "op1 := isset(op2) ? 1 : 0", + "text": "Если канал op2 настроен на то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "N/D", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "select": { + "type": "Function", + "description": { + "preview": "op1 := (op2 ? op3 : op4)", + "text": "Тернарный select. Если op2 истинно, то op1 := op3, иначе op1 := op4" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/C", + "op5": null, + "op6": null + }, + "seq": { + "type": "Function", + "description": { + "preview": "op1 := (op2 = op3)", + "text": "Если op2 = op3, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "seqz": { + "type": "Function", + "description": { + "preview": "op1 := (op2 = 0)", + "text": "Если op2 = 0, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sge": { + "type": "Function", + "description": { + "preview": "op1 := (op2 op3)", + "text": "Если op2 op3, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sgez": { + "type": "Function", + "description": { + "preview": "op1 := (op2 0)", + "text": "Если op2 0, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sgt": { + "type": "Function", + "description": { + "preview": "op1 := (op2 > op3)", + "text": "Если op2 > op3, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sgtz": { + "type": "Function", + "description": { + "preview": "op1 := (op2 > 0)", + "text": "Если op2 > 0, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sin": { + "type": "Function", + "description": { + "preview": "op1 := sin(op2)", + "text": "Синус*" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sla": { + "type": "Function", + "description": { + "preview": "", + "text": "" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sle": { + "type": "Function", + "description": { + "preview": "op1 := (op2 op3)", + "text": "Если op2 op3, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sleep": { + "type": "Function", + "description": { + "preview": "sleep", + "text": "Приостановка программы на op1 секунд" + }, + "op1": "R/N/C", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "slez": { + "type": "Function", + "description": { + "preview": "op1 := (op2 0)", + "text": "Если op2 0, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sll": { + "type": "Function", + "description": { + "preview": "", + "text": "" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "slt": { + "type": "Function", + "description": { + "preview": "op1 := (op2 < op3)", + "text": "Если op2 < op3, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sltz": { + "type": "Function", + "description": { + "preview": "op1 := (op2 < 0)", + "text": "Если op2 < 0, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sna": { + "type": "Function", + "description": { + "preview": "op1 := (op2 op3)", + "text": "Если op2 op3 с точностью op4, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/C", + "op5": null, + "op6": null + }, + "snan": { + "type": "Function", + "description": { + "preview": "op1 := (op2 = nan)", + "text": "op1 равно 1, если op2 не имеет значения." + }, + "op1": "R/N", + "op2": "R/N", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "snanz": { + "type": "Function", + "description": { + "preview": "op1 := !(op2 = nan)", + "text": "op1 равно 0, если op2 не имеет значения." + }, + "op1": "R/N", + "op2": "R/N", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "snaz": { + "type": "Function", + "description": { + "preview": "op1 := (op2 0)", + "text": "Если op2 0 с точностью op3, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "sne": { + "type": "Function", + "description": { + "preview": "op1 := (op2 op3)", + "text": "Если op2 op3, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "snez": { + "type": "Function", + "description": { + "preview": "op1 := (op2 0)", + "text": "Если op2 0, то единица, иначе ноль" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sqrt": { + "type": "Function", + "description": { + "preview": "op1 := o̅p̅2̅", + "text": "Квадратный корень" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sra": { + "type": "Function", + "description": { + "preview": "", + "text": "" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "srl": { + "type": "Function", + "description": { + "preview": "", + "text": "" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "ss": { + "type": "Function", + "description": { + "preview": "op1.op2.op3 := op4", + "text": "Запись в слот в устройства потр ор1, слот ор2, параметр ор3, значения ор4" + }, + "op1": "N/D", + "op2": "R/N/S", + "op3": "P", + "op4": "R/N/C", + "op5": null, + "op6": null + }, + "stack": { + "type": "Function", + "description": { + "preview": "[icX] stack 1 2 3 ...", + "text": "[icX] Заполняет стак значиниями аргументов" + }, + "op1": "R/N/C", + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "sub": { + "type": "Function", + "description": { + "preview": "op1 := op2 - op3", + "text": "Разность" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "tan": { + "type": "Function", + "description": { + "preview": "op1 := tan(op2)", + "text": "Тангенс*" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "trunc": { + "type": "Function", + "description": { + "preview": "op1 := int(op2)", + "text": "Целая часть числа" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "xor": { + "type": "Function", + "description": { + "preview": "op1 := op2 op3", + "text": "Исключающее ИЛИ, единица, если одно и только одно из op2 и op3 истинно, ноль в противном случае" + }, + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "op5": null, + "op6": null + }, + "yield": { + "type": "Function", + "description": { + "preview": "", + "text": "Приостановка программы до следующего тика" + }, + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "op5": null, + "op6": null + }, + "Contents": { + "type": "Const", + "description": { + "preview": "string", + "text": "" + } + }, + "deg2rad": { + "type": "Const", + "description": { + "preview": "0,017453292519943295769236907684", + "text": "0,017453292519943295769236907684\r\nКонстанта для перевода в радианы. 180 * deg2rad = pi" + } + }, + "nan": { + "type": "Const", + "description": { + "preview": "NaN", + "text": "Нет значения." + } + }, + "ninf": { + "type": "Const", + "description": { + "preview": "-Infinity", + "text": "-бесконечность" + } + }, + "pi": { + "type": "Const", + "description": { + "preview": "3.14159265358979", + "text": "3.14159265358979" + } + }, + "pinf": { + "type": "Const", + "description": { + "preview": "Infinity", + "text": "+бесконечность" + } + }, + "rad2deg": { + "type": "Const", + "description": { + "preview": "57,2957795130823208767981", + "text": "57,2957795130823208767981\r\nКонстанта для перевода в градусы. pi * rad2deg= 180" + } + }, + "Recipe": { + "type": "Const", + "description": { + "preview": "string", + "text": "" + } + }, + "Required": { + "type": "Const", + "description": { + "preview": "string", + "text": "" + } + }, + "Channel0": { + "type": "Channel", + "description": { + "preview": "", + "text": "Канал 0" + } + }, + "Channel1": { + "type": "Channel", + "description": { + "preview": "", + "text": "Канал 1" + } + }, + "Channel2": { + "type": "Channel", + "description": { + "preview": "", + "text": "Канал 2" + } + }, + "Channel3": { + "type": "Channel", + "description": { + "preview": "", + "text": "Канал 3" + } + }, + "Channel4": { + "type": "Channel", + "description": { + "preview": "", + "text": "Канал 4" + } + }, + "Channel5": { + "type": "Channel", + "description": { + "preview": "", + "text": "Канал 5" + } + }, + "Channel6": { + "type": "Channel", + "description": { + "preview": "", + "text": "Канал 6" + } + }, + "Channel7": { + "type": "Channel", + "description": { + "preview": "", + "text": "Канал 7" + } + }, + "Average": { + "type": "BM", + "description": { + "preview": "string", + "text": "" + } + }, + "Sum": { + "type": "BM", + "description": { + "preview": "string", + "text": "" + } + } +} \ No newline at end of file diff --git a/languages/zh.json b/languages/zh.json new file mode 100644 index 0000000..7533171 --- /dev/null +++ b/languages/zh.json @@ -0,0 +1,2018 @@ +{ + "abs": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "acos": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "add": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "alias": { + "type": "Function", + "op1": "N", + "op2": "R/D", + "op3": null, + "op4": null, + "description": {} + }, + "and": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "asin": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "atan": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "atan2": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "bap": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/A/T", + "description": {} + }, + "bapal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/A/T", + "description": {} + }, + "bapz": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "bapzal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "bdns": { + "type": "Function", + "op1": "D/N", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "bdnsal": { + "type": "Function", + "op1": "D/N", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "bdse": { + "type": "Function", + "op1": "D/N", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "bdseal": { + "type": "Function", + "op1": "D/N", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "beq": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "beqal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "beqz": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "beqzal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "bge": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "bgeal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "bgez": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "bgezal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "bgt": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "bgtal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "bgtz": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "bgtzal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "ble": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "bleal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "blez": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "blezal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "blt": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "bltal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "bltz": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "bltzal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "bna": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/A/T", + "description": {} + }, + "bnaal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/A/T", + "description": {} + }, + "bnaz": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "bnazal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "bne": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "bneal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/A/T", + "op4": null, + "description": {} + }, + "bnez": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "bnezal": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/A/T", + "op3": null, + "op4": null, + "description": {} + }, + "brap": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/O", + "description": {} + }, + "brapz": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "description": {} + }, + "brdns": { + "type": "Function", + "op1": "D/N", + "op2": "R/N/O", + "op3": null, + "op4": null, + "description": {} + }, + "brdse": { + "type": "Function", + "op1": "D/N", + "op2": "R/N/O", + "op3": null, + "op4": null, + "description": {} + }, + "breq": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "description": {} + }, + "breqz": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "description": {} + }, + "brge": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "description": {} + }, + "brgez": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "description": {} + }, + "brgt": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "description": {} + }, + "brgtz": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "description": {} + }, + "brle": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "description": {} + }, + "brlez": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "description": {} + }, + "brlt": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "description": {} + }, + "brltz": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "description": {} + }, + "brna": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/O", + "description": {} + }, + "brnaz": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": "R/N/O", + "op4": null, + "description": {} + }, + "brne": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "brnez": { + "type": "Function", + "op1": "R/N/C", + "op2": "R/N/O", + "op3": null, + "op4": null, + "description": {} + }, + "ceil": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "cos": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "define": { + "type": "Function", + "op1": "Cn", + "op2": "C", + "op3": null, + "op4": null, + "description": {} + }, + "div": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "exp": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "floor": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "hcf": { + "type": "Function", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "j": { + "type": "Function", + "op1": "R/N/A/T", + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "jal": { + "type": "Function", + "op1": "R/N/A/T", + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "jr": { + "type": "Function", + "op1": "R/N/O", + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "l": { + "type": "Function", + "op1": "R/N", + "op2": "D/N", + "op3": "P", + "op4": null, + "description": {} + }, + "log": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "lr": { + "type": "Function", + "op1": "R/N", + "op2": "D/N", + "op3": "R/N/RM", + "op4": "RC", + "description": {} + }, + "ls": { + "type": "Function", + "op1": "R/N", + "op2": "D/N", + "op3": "R/N/S", + "op4": "P", + "description": {} + }, + "max": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "min": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "mod": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "move": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "mul": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "nor": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "or": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "peek": { + "type": "Function", + "op1": "R/N", + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "pop": { + "type": "Function", + "op1": "R/N", + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "push": { + "type": "Function", + "op1": "R/N/C", + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "rand": { + "type": "Function", + "op1": "R/N", + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "round": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "s": { + "type": "Function", + "op1": "D/N", + "op2": "P", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "sap": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/C", + "description": {} + }, + "sapz": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "sdns": { + "type": "Function", + "op1": "R/N", + "op2": "D/N", + "op3": null, + "op4": null, + "description": {} + }, + "sdse": { + "type": "Function", + "op1": "R/N", + "op2": "D/N", + "op3": null, + "op4": null, + "description": {} + }, + "select": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/C", + "description": {} + }, + "seq": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "seqz": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "sge": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "sgez": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "sgt": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "sgtz": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "sin": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "sle": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "sleep": { + "type": "Function", + "op1": "R/N/C", + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "slez": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "slt": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "sltz": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "sna": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": "R/N/C", + "description": {} + }, + "snaz": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "sne": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "snez": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "sqrt": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "sub": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "tan": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "trunc": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": null, + "op4": null, + "description": {} + }, + "xor": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "yield": { + "type": "Function", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "lb": { + "type": "Function", + "op1": "R/N", + "op2": "R/N/C/H", + "op3": "P", + "op4": "BM", + "description": {} + }, + "sb": { + "type": "Function", + "op1": "R/N/C/H", + "op2": "P", + "op3": "R/N/C", + "op4": null, + "description": {} + }, + "stack": { + "type": "Function", + "op1": "R/N/C", + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Activate": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Charge": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Class": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "ClearMemory": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Color": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Combustion": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "CompletionRatio": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Damage": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "ElevatorLevel": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "ElevatorSpeed": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Error": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "ExportCount": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Filtration": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "ForceWrite": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Harvest": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Horizontal": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Idle": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "ImportCount": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Lock": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Maximum": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "MaxQuantity": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Mode": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "On": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Open": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Output": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Plant": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PositionX": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PositionY": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PositionZ": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Power": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PowerActual": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PowerGeneration": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PowerPotential": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PowerRequired": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PressureExternal": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PressureInternal": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Ratio": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioCarbonDioxide": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioNitrogen": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioNitrousOxide": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioOxygen": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioPollutant": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioVolatiles": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioWater": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Reagents": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RecipeHash": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RequiredPower": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Setting": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "SolarAngle": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "TargetX": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "TargetY": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "TargetZ": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "TemperatureExternal": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "TemperatureSetting": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "TotalMoles": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "VelocityMagnitude": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "VelocityRelativeX": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "VelocityRelativeY": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "VelocityRelativeZ": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Vertical": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Volume": { + "type": "Device parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "ChargeRatio": { + "type": "Slot parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Efficiency": { + "type": "Slot parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Growth": { + "type": "Slot parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Health": { + "type": "Slot parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Mature": { + "type": "Slot parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "OccupantHash": { + "type": "Slot parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Occupied": { + "type": "Slot parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PressureAir": { + "type": "Slot parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PressureWaste": { + "type": "Slot parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PrefabHash": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Pressure": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Quantity": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Temperature": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Bpm": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "CollectableGoods": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "CurrentResearchPodType": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Fuel": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "ManualResearchRequiredPod": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "MineablesInQueue": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "MineablesInVicinity": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "NextWeatherEventTime": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "ReturnFuelCost": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "SettingInput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "SettingOutput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "SignalID": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "SignalStrength": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Time": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "AirRelease": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "HorizontalRatio": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PressureSetting": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RequestHash": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "VerticalRatio": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Seeding": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "CombustionInput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "CombustionOutput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "CombustionOutput2": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "TemperatureInput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "TemperatureOutput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "TemperatureOutput2": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PressureInput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PressureOutput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PressureOutput2": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "TotalMolesInput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "TotalMolesOutput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "TotalMolesOutput2": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioCarbonDioxideInput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioCarbonDioxideOutput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioCarbonDioxideOutput2": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioNitrogenInput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioNitrogenOutput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioNitrogenOutput2": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioNitrousOxideInput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioNitrousOxideOutput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioNitrousOxideOutput2": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioOxygenInput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioOxygenOutput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioOxygenOutput2": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioPollutantInput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioPollutantOutpu": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioPollutantOutput2": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioVolatilesInput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioVolatilesOutput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioVolatilesOutput2": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioWaterInput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioWaterOutput": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "RatioWaterOutput2": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "PressureEfficiency": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "OperationalTemperatureEfficiency": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "TemperatureDifferentialEfficiency": { + "type": "Parameter", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Average": { + "type": "Const", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Sum": { + "type": "Const", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + }, + "Minimum": { + "type": "Const", + "op1": null, + "op2": null, + "op3": null, + "op4": null, + "description": {} + } +} diff --git a/media/.sass-cache/5055c02d75765241d890dc179977d36569da056a/sidebar.scssc b/media/.sass-cache/5055c02d75765241d890dc179977d36569da056a/sidebar.scssc new file mode 100644 index 0000000..598e989 Binary files /dev/null and b/media/.sass-cache/5055c02d75765241d890dc179977d36569da056a/sidebar.scssc differ diff --git a/media/ic10.functions.json b/media/ic10.functions.json new file mode 100644 index 0000000..85133d8 --- /dev/null +++ b/media/ic10.functions.json @@ -0,0 +1,137 @@ +[ + "abs", + "acos", + "add", + "alias", + "and", + "asin", + "atan", + "atan2", + "bap", + "bapal", + "bapz", + "bapzal", + "bdns", + "bdnsal", + "bdse", + "bdseal", + "beq", + "beqal", + "beqz", + "beqzal", + "bge", + "bgeal", + "bgez", + "bgezal", + "bgt", + "bgtal", + "bgtz", + "bgtzal", + "ble", + "bleal", + "blez", + "blezal", + "blt", + "bltal", + "bltz", + "bltzal", + "bna", + "bnaal", + "bnan", + "bnaz", + "bnazal", + "bne", + "bneal", + "bnez", + "bnezal", + "brap", + "brapz", + "brdns", + "brdse", + "breq", + "breqz", + "brge", + "brgez", + "brgt", + "brgtz", + "brle", + "brlez", + "brlt", + "brltz", + "brna", + "brnan", + "brnaz", + "brne", + "brnez", + "ceil", + "cos", + "debug", + "define", + "div", + "exp", + "floor", + "hcf", + "j", + "jal", + "jr", + "l", + "lb", + "lbn", + "lbns", + "lbs", + "log", + "lr", + "ls", + "max", + "min", + "mod", + "move", + "mul", + "nor", + "or", + "peek", + "pop", + "push", + "rand", + "return", + "round", + "s", + "sap", + "sapz", + "sb", + "sbn", + "sbs", + "sdns", + "sdse", + "select", + "seq", + "seqz", + "sge", + "sgez", + "sgt", + "sgtz", + "sin", + "sla", + "sle", + "sleep", + "slez", + "sll", + "slt", + "sltz", + "sna", + "snan", + "snanz", + "snaz", + "sne", + "snez", + "sqrt", + "sra", + "srl", + "ss", + "stack", + "sub", + "tan", + "trunc", + "xor", + "yield" +] \ No newline at end of file diff --git a/media/ic10.keyword.json b/media/ic10.keyword.json new file mode 100644 index 0000000..8d9bf22 --- /dev/null +++ b/media/ic10.keyword.json @@ -0,0 +1,169 @@ +[ + "ChargeRatio", + "Class", + "Damage", + "Efficiency", + "Growth", + "Health", + "Mature", + "MaxQuantity", + "OccupantHash", + "Occupied", + "Quantity", + "Seeding", + "SortingClass", + "x", + "Activate", + "AirRelease", + "Bpm", + "Charge", + "ClearMemory", + "CollectableGoods", + "Color", + "Combustion", + "CombustionInput", + "CombustionLimiter", + "CombustionOutput", + "CombustionOutput2", + "CompletionRatio", + "ElevatorLevel", + "ElevatorSpeed", + "Error", + "ExportCount", + "Filtration", + "Flush", + "ForceWrite", + "Fuel", + "Harvest", + "HASH(\"name\")", + "Horizontal", + "Idle", + "ImportCount", + "InterrogationProgress", + "LineNumber", + "Lock", + "Maximum", + "MineablesInQueue", + "MineablesInVicinity", + "Minimum", + "MinimumWattsToContact", + "Mode", + "NextWeatherEventTime", + "On", + "Open", + "Output", + "Plant", + "PositionX", + "PositionY", + "PositionZ", + "Power", + "PowerActual", + "PowerGeneration", + "PowerPotential", + "PowerRequired", + "PrefabHash", + "Pressure", + "PressureAir", + "PressureExternal", + "PressureInput", + "PressureInternal", + "PressureOutput", + "PressureOutput2", + "PressureSetting", + "PressureWaste", + "Ratio", + "RatioCarbonDioxide", + "RatioCarbonDioxideInput", + "RatioCarbonDioxideOutput", + "RatioCarbonDioxideOutput2", + "RatioLiquidCarbonDioxide", + "RatioLiquidNitrogen", + "RatioLiquidNitrousOxide", + "RatioLiquidOxygen", + "RatioLiquidPollutant", + "RatioLiquidVolatiles", + "RatioNitrogen", + "RatioNitrogenInput", + "RatioNitrogenOutput", + "RatioNitrogenOutput2", + "RatioNitrousOxide", + "RatioNitrousOxideInput", + "RatioNitrousOxideOutput", + "RatioNitrousOxideOutput2", + "RatioOxygen", + "RatioOxygenInput", + "RatioOxygenOutput", + "RatioOxygenOutput2", + "RatioPollutant", + "RatioPollutantInput", + "RatioPollutantOutput", + "RatioPollutantOutput2", + "RatioSteam", + "RatioVolatiles", + "RatioVolatilesInput", + "RatioVolatilesOutput", + "RatioVolatilesOutput2", + "RatioWater", + "RatioWaterInput", + "RatioWaterOutput", + "RatioWaterOutput2", + "Reagents", + "RecipeHash", + "RequestHash", + "RequiredPower", + "ReturnFuelCost", + "Rpm", + "Setting", + "SettingOutput", + "SignalID", + "SignalStrength", + "SizeX", + "SizeZ", + "SolarAngle", + "SolarIrradiance", + "SoundAlert", + "Stress", + "TargetPadIndex", + "TargetX", + "TargetY", + "TargetZ", + "Temperature", + "TemperatureExternal", + "TemperatureInput", + "TemperatureOutput", + "TemperatureOutput2", + "TemperatureSetting", + "Throttle", + "Time", + "TotalMoles", + "TotalMolesInput", + "TotalMolesOutput", + "TotalMolesOutput2", + "VelocityMagnitude", + "VelocityRelativeX", + "VelocityRelativeY", + "VelocityRelativeZ", + "Vertical", + "Volume", + "VolumeOfLiquid", + "WattsReachingContact", + "Contents", + "deg2rad", + "nan", + "ninf", + "pi", + "pinf", + "rad2deg", + "Recipe", + "Required", + "Channel0", + "Channel1", + "Channel2", + "Channel3", + "Channel4", + "Channel5", + "Channel6", + "Channel7", + "Average", + "Sum" +] \ No newline at end of file diff --git a/media/sidebar.css b/media/sidebar.css new file mode 100644 index 0000000..7772890 --- /dev/null +++ b/media/sidebar.css @@ -0,0 +1,31 @@ +section { + margin-bottom: 10px; +} + +.disabledSelect { + user-select: none; +} + +#settings ul, #settings ol, #icxStats ul, #icxStats ol { + padding: 0 0 0 5px; +} + +.progress { + padding: 3px; + border-radius: 10px; + background-color: lightslategrey; +} + +.progress > div { + height: 12px; + border-radius: 10px; + background: var(--vscode-list-errorForeground); + background-color: var(--vscode-inputValidation-infoForeground); +} + +.progress.geMax > div { + color: red !important; + background-color: red !important; +} + +/*# sourceMappingURL=sidebar.css.map */ diff --git a/media/sidebar.css.map b/media/sidebar.css.map new file mode 100644 index 0000000..b0c3619 --- /dev/null +++ b/media/sidebar.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AAAA,OAAQ;EACN,aAAa,EAAE,IAAI;;AAGrB,eAAgB;EACd,WAAW,EAAE,IAAI;;AAIjB,sDAAO;EACL,OAAO,EAAE,SACX;;AAMF,SAAU;EACR,gBAAgB,EAAE,cAAc;EAChC,aAAa,EAAE,IAAI;EACnB,OAAO,EAAE,GAAG;EAEZ,eAAQ;IACN,gBAAgB,EAAE,4CAA4C;IAC9D,MAAM,EAAE,IAAI;IACZ,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,kCAAkC;EAGhD,qBAAc;IACZ,gBAAgB,EAAE,cAAc;IAChC,KAAK,EAAE,cAAc", +"sources": ["sidebar.scss"], +"names": [], +"file": "sidebar.css" +} diff --git a/media/sidebar.js b/media/sidebar.js new file mode 100644 index 0000000..26d22fb --- /dev/null +++ b/media/sidebar.js @@ -0,0 +1,117 @@ +class ic10SideBar { + constructor() { + this.vscode = acquireVsCodeApi() + // this.oldState = vscode.getState() + this.run() + window.addEventListener("message", event => { + const message = event.data // The json data that the extension sent + if (typeof this[message.fn] == "function") { + this[message.fn](message.data) + this.run() + } + }) + } + + + run() { + this.p() + this.form() + } + + + form() { + const self = this + try { + self.events = {} + window.addEventListener("input", function (event) { + var fn = event.target.getAttribute("data-fn") + if (fn && event.target.id) { + + var data = { + id: event.target.id ?? null, + value: event.target.value ?? null, + type: event.target.type ?? null, + name: event.target.name ?? null, + } + switch (event.target.tagName) { + case "INPUT": + switch (event.target.type) { + case "checkbox": + data.value = event.target.checked + break + default: + break + } + break + case "SELECT": + break + case "BUTTON": + data.value = event.target.value ?? true + break + } + self.events[event.target.id] = { + event: "input", + data: data, + fn: fn, + } + } + }) + } catch (e) { + // console.error(e) + } + setInterval(() => { + for (const eventsKey in self.events) { + if (self.events.hasOwnProperty(eventsKey)) { + const data = self.events[eventsKey] + self.events[eventsKey] = null + delete self.events[eventsKey] + // console.log(data) + self.vscode.postMessage(data) + + } + } + self.events = {} + }, 100) + } + + + update(newContent) { + try { + this.content = document.querySelector("#content") + this.content.innerHTML = newContent + } catch (e) { + + } + } + + + p() { + try { + this.progreses = document.querySelectorAll(".progress") + for (const progress of this.progreses) { + if (progress) { + if (progress.getAttribute("data-percent")) { + if (progress.getAttribute("data-percent") <= 100) { + progress.children[0].style.setProperty("width", progress.getAttribute("data-percent") + "%") + } + } + if (parseFloat(progress.getAttribute("data-value")) >= parseFloat(progress.getAttribute("data-max") ?? 0)) { + progress.classList.add("geMax") + } else { + progress.classList.remove("geMax") + } + if (parseFloat(progress.getAttribute("data-value")) <= parseFloat(progress.getAttribute("data-min") ?? 0)) { + progress.classList.add("leMin") + } else { + progress.classList.remove("leMin") + } + } + } + + } catch (e) { + + } + } +} + +document.ic10SideBarController = new ic10SideBar() diff --git a/media/sidebar.scss b/media/sidebar.scss new file mode 100644 index 0000000..ecaac04 --- /dev/null +++ b/media/sidebar.scss @@ -0,0 +1,38 @@ +section { + margin-bottom: 10px +} + +.disabledSelect { + user-select: none +} + +#settings, #icxStats { + ul, ol { + padding: 0 0 0 5px + } +} + +#leftLineCounter { +} + +.progress { + background-color: lightslategrey; + border-radius: 10px; + padding: 3px; + + & > div { + background-color: var(--vscode-inputValidation-infoForeground); + height: 12px; + border-radius: 10px; + background: var(--vscode-list-errorForeground); + } + + &.geMax > div { + background-color: red !important; + color: red !important; + } + + &.geMin { + + } +} diff --git a/media/stateoneers.svg b/media/stateoneers.svg new file mode 100644 index 0000000..5649815 --- /dev/null +++ b/media/stateoneers.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..4ff868f --- /dev/null +++ b/package.json @@ -0,0 +1,327 @@ +{ + "name": "stationeers-ic10", + "displayName": "Stationeers ic10", + "description": "Ic10 & icB support", + "version": "2.5.0", + "license": "MIT", + "homepage": "https://github.com/Stationeers-ic/vscode-stationeers-ic10", + "type": "commonjs", + "scripts": { + "generate": "cd ./tools && npm i && npx gulp generate-langs && cd ../", + "vscode:prepublish": "npx tsc", + "start": "npm i && tsc -w", + "publish": "vsce package", + "package": "vsce package" + }, + "badges": [], + "publisher": "Traineratwot", + "repository": "https://github.com/Stationeers-ic/vscode-stationeers-ic10/", + "author": { + "name": "Traineratwot" + }, + "icon": "images/logo.png", + "bugs": { + "url": "https://github.com/Stationeers-ic/vscode-stationeers-ic10/issues", + "email": "Traineratwot@yandex.com" + }, + "engines": { + "vscode": "^1.52.0" + }, + "categories": [ + "Programming Languages", + "Debuggers", + "Snippets", + "Formatters" + ], + "activationEvents": [ + "workspaceContains:**/*.ic10", + "onDebugResolve:ic10", + "onDebugDynamicConfigurations:ic10", + "onWebviewPanel:icX.wiki" + ], + "extensionKind": [ + "workspace" + ], + "main": "./core/main.js", + "contributes": { + "files.associations": { + "*.ic10": "ic10", + "*.ic": "ic10", + "*.icX": "icX", + "*.icb": "icB", + "*.icB": "icB" + }, + "languages": [ + { + "id": "ic10", + "aliases": [ + "ic10" + ], + "extensions": [ + "ic10", + "ic" + ], + "configuration": "./ic10.language-configuration.json" + }, + { + "id": "icX", + "aliases": [ + "icX" + ], + "extensions": [ + "icX" + ], + "configuration": "./icX.language-configuration.json" + }, + { + "id": "icB", + "aliases": [ + "icB" + ], + "extensions": [ + "icb", + "icB" + ], + "configuration": "./icB.language-configuration.json" + } + ], + "grammars": [ + { + "language": "ic10", + "scopeName": "source.ic10", + "path": "./syntaxes/ic10.tmLanguage.json" + }, + { + "language": "icX", + "scopeName": "source.icX", + "path": "./syntaxes/icX.tmLanguage.json" + }, + { + "language": "icB", + "scopeName": "source.icB", + "path": "./syntaxes/icB.tmLanguage.json" + } + ], + "debuggers": [ + { + "type": "ic10", + "label": "ic10 Debug", + "program": "./debugger/debugAdapter.js", + "runtime": "node", + "languages": [ + "ic10" + ], + "configurationAttributes": { + "launch": { + "required": [ + "program" + ], + "properties": { + "program": { + "type": "string", + "description": "Absolute path to a text file.", + "default": "${file}" + }, + "stopOnEntry": { + "type": "boolean", + "description": "Automatically stop after launch.", + "default": true + }, + "trace": { + "type": "boolean", + "description": "Enable logging of the Debug Adapter Protocol.", + "default": true + } + }, + "initialConfigurations": [ + { + "type": "ic10", + "request": "launch", + "name": "Ask for file name", + "program": "${workspaceFolder}/${command:AskForProgramName}", + "stopOnEntry": true + } + ] + } + }, + "configurationSnippets": [ + { + "label": "Ic10 Debug", + "description": "Stationers ic10 debugger", + "body": { + "type": "ic10", + "request": "launch", + "name": "Debug ic10", + "program": "${file}", + "stopOnEntry": true, + "trace": false + } + } + ], + "variables": { + "AskForProgramName": "extension.1c10-debug.getProgramName" + } + } + ], + "snippets": [ + { + "language": "ic10", + "path": "./snippets/ic10.json" + }, + { + "language": "icX", + "path": "./snippets/icX.json" + } + ], + "breakpoints": [ + { + "language": "ic10" + } + ], + "commands": [ + { + "command": "ic10.run", + "title": "Run", + "description": "Run script", + "icon": "$(play)" + }, + { + "command": "ic10.test", + "title": "test", + "description": "test script", + "icon": "$(play)" + }, + { + "command": "ic10.stop", + "title": "Stop", + "description": "Stop script", + "icon": "$(stop)" + }, + { + "command": "ic10.debug.variables.write", + "title": "Write value", + "icon": "$(pencil)" + }, + { + "command": "icX.compile", + "title": "Compile", + "icon": "$(heart)" + }, + { + "command": "icB.compile", + "title": "Basic compile", + "icon": "$(heart)" + }, + { + "command": "icX.open.wiki", + "title": "Open wiki", + "icon": "$(eye)" + } + ], + "menus": { + "editor/context": [ + { + "command": "ic10.run", + "when": "editorLangId == ic10" + }, + { + "command": "icX.compile", + "when": "editorLangId == icX" + }, + { + "command": "icX.open.wiki", + "when": "editorLangId == icX" + }, + { + "command": "icX.open.wiki", + "when": "editorLangId == ic10" + } + ], + "commandPalette": [ + { + "command": "ic10.run", + "when": "editorLangId == ic10" + }, + { + "command": "icX.compile", + "when": "editorLangId == icX" + } + ], + "editor/title/run": [ + { + "command": "icX.compile", + "when": "resourceLangId == icX" + }, + { + "command": "icX.open.wiki", + "when": "resourceLangId == icX" + }, + { + "command": "icX.open.wiki", + "when": "resourceLangId == ic10" + }, + { + "command": "ic10.run", + "when": "resourceLangId == ic10" + }, + { + "command": "ic10.stop", + "when": "resourceLangId == ic10" + } + ], + "debug/variables/context": [ + { + "command": "ic10.debug.variables.write", + "group": "3_modifications", + "when": "debugProtocolVariableMenuContext == String || debugProtocolVariableMenuContext == Number" + } + ] + }, + "views": { + "explorer": [ + { + "type": "webview", + "id": "Ic10ViewProvider", + "name": "ic10", + "icon": "images/logo.svg", + "contextualTitle": "ic10/icX" + } + ] + } + }, + "configurationDefaults": { + "ic10": { + "editor.semanticHighlighting.enabled": true + }, + "icX": { + "editor.semanticHighlighting.enabled": true + }, + "icB": { + "editor.semanticHighlighting.enabled": true + } + }, + "dependencies": { + "@vscode/debugadapter": "1.61.0", + "@vscode/debugprotocol": "1.61.0", + "dotenv": "16.3.1", + "ic10": "^3.4.12", + "icx-compiler": "^2.1.6", + "toml": "^3.0.0", + "yaml": "^2.3.1" + }, + "devDependencies": { + "@types/glob": "^7.2.0", + "@types/mocha": "^7.0.2", + "@types/node": "^20.3.0", + "@types/semver": "^7.3.12", + "@types/sinon": "9.0.11", + "@types/vscode": "1.52.0", + "typescript": "4.9.3", + "vsce": "^2.15.0" + }, + "__metadata": { + "id": "e9ab14ed-1c65-4a3c-835b-f13c96f90ac7", + "publisherDisplayName": "Traineratwot", + "publisherId": "380b2875-741d-4735-b93a-1850757c5e71" + } +} diff --git a/sampleWorkspace/.vscode/launch.json b/sampleWorkspace/.vscode/launch.json new file mode 100644 index 0000000..6b73838 --- /dev/null +++ b/sampleWorkspace/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + // Используйте IntelliSense, чтобы узнать о возможных атрибутах. + // Наведите указатель мыши, чтобы просмотреть описания существующих атрибутов. + // Для получения дополнительной информации посетите: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "ic10", + "request": "launch", + "name": "Debug ic10", + "program": "${file}", + "stopOnEntry": true, + "trace": false + } + ] +} \ No newline at end of file diff --git a/sampleWorkspace/.vscode/tmp/-2815341/error.txt b/sampleWorkspace/.vscode/tmp/-2815341/error.txt new file mode 100644 index 0000000..7a70191 --- /dev/null +++ b/sampleWorkspace/.vscode/tmp/-2815341/error.txt @@ -0,0 +1 @@ +WARNING : Optimizer: No yield or wait command found in code. It will be automatically added to the main loop. diff --git a/sampleWorkspace/.vscode/tmp/-2815341/input.txt b/sampleWorkspace/.vscode/tmp/-2815341/input.txt new file mode 100644 index 0000000..0685f83 --- /dev/null +++ b/sampleWorkspace/.vscode/tmp/-2815341/input.txt @@ -0,0 +1,44 @@ +const @heater = -287495560 +alias sensor = d0 +alias freezeVent = d1 +alias freezePump = d4 +alias inputVent = d2 +alias tank = d3 + +freezePump.Setting = 1 +IC.device[@heater].On = 0 +const target = 40c + +start: + +var volume = tank.VolumeOfLiquid +var temp = sensor.Temperature + +if volume < 5 then + inputVent.ON = 1 +else + inputVent.ON = 0 +endif + +Ic.Setting = temp - 0C + +if temp > target + 5 then + IC.device[@heater].On = 0 +endif + +if temp > target + 10 then + IC.device[@heater].On = 0 + freezeVent.On = 1 + freezePump.On = 1 +endif + +if temp < target + 10 then + freezeVent.On = 0 + freezePump.On = 0 +endif + +if temp < target + 5 then + IC.device[@heater].On = 1 +endif + +goto start \ No newline at end of file diff --git a/sampleWorkspace/.vscode/tmp/-2815341/output.txt b/sampleWorkspace/.vscode/tmp/-2815341/output.txt new file mode 100644 index 0000000..f7c7f31 --- /dev/null +++ b/sampleWorkspace/.vscode/tmp/-2815341/output.txt @@ -0,0 +1,31 @@ +alias sensor d0 +alias freezevent d1 +alias freezepump d4 +alias inputvent d2 +alias tank d3 +yield # Switch on-off and see the pin's names +define heater -287495560 +s d4 Setting 1 +sb heater On 0 +yield +l r0 d3 VolumeOfLiquid +l r1 d0 Temperature +bge r0 5 15 +s d2 On 1 +j 16 +s d2 On 0 +sub r0 r1 273.15 +s db Setting r0 +ble r1 318.15 20 +sb heater On 0 +ble r1 323.15 24 +sb heater On 0 +s d1 On 1 +s d4 On 1 +bge r1 323.15 27 +s d1 On 0 +s d4 On 0 +bge r1 318.15 29 +sb heater On 1 +j 9 +# Compiled at 2024-01-24 10:32 by Exca's Basic10. diff --git a/sampleWorkspace/test.icb b/sampleWorkspace/test.icb new file mode 100644 index 0000000..0685f83 --- /dev/null +++ b/sampleWorkspace/test.icb @@ -0,0 +1,44 @@ +const @heater = -287495560 +alias sensor = d0 +alias freezeVent = d1 +alias freezePump = d4 +alias inputVent = d2 +alias tank = d3 + +freezePump.Setting = 1 +IC.device[@heater].On = 0 +const target = 40c + +start: + +var volume = tank.VolumeOfLiquid +var temp = sensor.Temperature + +if volume < 5 then + inputVent.ON = 1 +else + inputVent.ON = 0 +endif + +Ic.Setting = temp - 0C + +if temp > target + 5 then + IC.device[@heater].On = 0 +endif + +if temp > target + 10 then + IC.device[@heater].On = 0 + freezeVent.On = 1 + freezePump.On = 1 +endif + +if temp < target + 10 then + freezeVent.On = 0 + freezePump.On = 0 +endif + +if temp < target + 5 then + IC.device[@heater].On = 1 +endif + +goto start \ No newline at end of file diff --git a/sampleWorkspace/test.icb.ic10 b/sampleWorkspace/test.icb.ic10 new file mode 100644 index 0000000..f7c7f31 --- /dev/null +++ b/sampleWorkspace/test.icb.ic10 @@ -0,0 +1,31 @@ +alias sensor d0 +alias freezevent d1 +alias freezepump d4 +alias inputvent d2 +alias tank d3 +yield # Switch on-off and see the pin's names +define heater -287495560 +s d4 Setting 1 +sb heater On 0 +yield +l r0 d3 VolumeOfLiquid +l r1 d0 Temperature +bge r0 5 15 +s d2 On 1 +j 16 +s d2 On 0 +sub r0 r1 273.15 +s db Setting r0 +ble r1 318.15 20 +sb heater On 0 +ble r1 323.15 24 +sb heater On 0 +s d1 On 1 +s d4 On 1 +bge r1 323.15 27 +s d1 On 0 +s d4 On 0 +bge r1 318.15 29 +sb heater On 1 +j 9 +# Compiled at 2024-01-24 10:32 by Exca's Basic10. diff --git a/snippets/ic10.json b/snippets/ic10.json new file mode 100644 index 0000000..b6a4f71 --- /dev/null +++ b/snippets/ic10.json @@ -0,0 +1,2215 @@ +{ + "alias": { + "prefix": "alias", + "body": [ + "alias" + ], + "description": "Specify an alias for a register or data channel" + }, + "aliasD0": { + "prefix": "aliasd0", + "body": [ + "alias $1 d0" + ], + "description": "alias {name} d0" + }, + "aliasD1": { + "prefix": "aliasd1", + "body": [ + "alias $1 d1" + ], + "description": "alias {name} d1" + }, + "aliasD2": { + "prefix": "aliasd2", + "body": [ + "alias $1 d2" + ], + "description": "alias {name} d2" + }, + "aliasD3": { + "prefix": "aliasd3", + "body": [ + "alias $1 d3" + ], + "description": "alias {name} d3" + }, + "aliasD4": { + "prefix": "aliasd4", + "body": [ + "alias $1 d4" + ], + "description": "alias {name} d4" + }, + "aliasD5": { + "prefix": "aliasd5", + "body": [ + "alias $1 d5" + ], + "description": "alias {name} d5" + }, + "loop": { + "prefix": "j l", + "body": [ + "loop:", + "$1", + "j loop" + ], + "description": "main loop" + }, + "abs": { + "prefix": "abs", + "body": [ + "abs" + ], + "description": "The absolute value of the number" + }, + "acos": { + "prefix": "acos", + "body": [ + "acos" + ], + "description": "Arccosine*" + }, + "add": { + "prefix": "add", + "body": [ + "add" + ], + "description": "Sum" + }, + "and": { + "prefix": "and", + "body": [ + "and" + ], + "description": "Logical AND, one if both op2 and op3 are true, zero otherwise" + }, + "asin": { + "prefix": "asin", + "body": [ + "asin" + ], + "description": "Arcsine*" + }, + "atan": { + "prefix": "atan", + "body": [ + "atan" + ], + "description": "Arctangent*" + }, + "bap": { + "prefix": "bap", + "body": [ + "bap" + ], + "description": "Jump to op4 if op1 op2 with precision op3" + }, + "bapal": { + "prefix": "bapal", + "body": [ + "bapal" + ], + "description": "Jump to op4 if op1 op2 with precision op3, writing the address of the next line to ra" + }, + "bapz": { + "prefix": "bapz", + "body": [ + "bapz" + ], + "description": "Jump to op3 if op1 0 with precision op2" + }, + "bapzal": { + "prefix": "bapzal", + "body": [ + "bapzal" + ], + "description": "Jump to op3 if op1 0 with precision op2, writing the address of the next line to ra" + }, + "bdns": { + "prefix": "bdns", + "body": [ + "bdns" + ], + "description": "Jump to op2 if op1 channel is not configured" + }, + "bdnsal": { + "prefix": "bdnsal", + "body": [ + "bdnsal" + ], + "description": "Jump to op2 if channel op1 is not configured, writing next line address to ra" + }, + "bdse": { + "prefix": "bdse", + "body": [ + "bdse" + ], + "description": "Jump to op2 if channel op1 is configured" + }, + "bdseal": { + "prefix": "bdseal", + "body": [ + "bdseal" + ], + "description": "Jump to op2 if channel op1 is configured with next line address written to ra" + }, + "beq": { + "prefix": "beq", + "body": [ + "beq" + ], + "description": "Jump to op3 if op1 = op2" + }, + "beqal": { + "prefix": "beqal", + "body": [ + "beqal" + ], + "description": "Jump to op3 if op1 = op2, writing the address of the next line to ra" + }, + "beqz": { + "prefix": "beqz", + "body": [ + "beqz" + ], + "description": "Jump to op2 if op1 = 0" + }, + "beqzal": { + "prefix": "beqzal", + "body": [ + "beqzal" + ], + "description": "Jump to op2 if op1 = 0, writing the address of the next line to ra" + }, + "bge": { + "prefix": "bge", + "body": [ + "bge" + ], + "description": "Jump to op3 if op1 >= op2" + }, + "bgeal": { + "prefix": "bgeal", + "body": [ + "bgeal" + ], + "description": "Jump to op3 if op1 >= op2, writing next line address to ra" + }, + "bgez": { + "prefix": "bgez", + "body": [ + "bgez" + ], + "description": "Jump to op2 if op1 >= 0" + }, + "bgezal": { + "prefix": "bgezal", + "body": [ + "bgezal" + ], + "description": "Jump to op2 if op1 >= 0, writing next line address to ra" + }, + "bgt": { + "prefix": "bgt", + "body": [ + "bgt" + ], + "description": "Jump to op3 if op1 > op2" + }, + "bgtal": { + "prefix": "bgtal", + "body": [ + "bgtal" + ], + "description": "Jump to op3 if op1 > op2, writing next line address to ra" + }, + "bgtz": { + "prefix": "bgtz", + "body": [ + "bgtz" + ], + "description": "Jump to op2 if op1 > 0" + }, + "bgtzal": { + "prefix": "bgtzal", + "body": [ + "bgtzal" + ], + "description": "Jump to op2 if op1 > 0, writing the address of the next line to ra" + }, + "ble": { + "prefix": "ble", + "body": [ + "ble" + ], + "description": "Jump to op3 if op1 <= op2" + }, + "bleal": { + "prefix": "bleal", + "body": [ + "bleal" + ], + "description": "Jump to op3 if op1 <= op2, writing next line address to ra" + }, + "blez": { + "prefix": "blez", + "body": [ + "blez" + ], + "description": "Jump to op2 if op1 <= 0" + }, + "blezal": { + "prefix": "blezal", + "body": [ + "blezal" + ], + "description": "Jump to op2 if op1 <= 0, writing the address of the next line to ra" + }, + "blt": { + "prefix": "blt", + "body": [ + "blt" + ], + "description": "Jump to op3 if op1 < op2" + }, + "bltal": { + "prefix": "bltal", + "body": [ + "bltal" + ], + "description": "Jump to op3 if op1 < op2, writing the address of the next line to ra" + }, + "bltz": { + "prefix": "bltz", + "body": [ + "bltz" + ], + "description": "Jump to op2 if op1 < 0" + }, + "bltzal": { + "prefix": "bltzal", + "body": [ + "bltzal" + ], + "description": "Jump to op2 if op1 < 0, writing the address of the next line to ra" + }, + "bna": { + "prefix": "bna", + "body": [ + "bna" + ], + "description": "Jump to op4 if op1 ~= op2 with precision op3" + }, + "bnaal": { + "prefix": "bnaal", + "body": [ + "bnaal" + ], + "description": "Jump to op4 if op1 ~= op2 with precision op3, writing next line address to ra" + }, + "bnaz": { + "prefix": "bnaz", + "body": [ + "bnaz" + ], + "description": "Jump to op3 if op1 ~= 0 with precision op2" + }, + "bnazal": { + "prefix": "bnazal", + "body": [ + "bnazal" + ], + "description": "Jump to op3 if op1 ~= 0 with precision op2, writing next line address to ra" + }, + "bne": { + "prefix": "bne", + "body": [ + "bne" + ], + "description": "Jump to op3 if op1 != op2" + }, + "bneal": { + "prefix": "bneal", + "body": [ + "bneal" + ], + "description": "Jump to op3 if op1 != op2, writing next line address to ra" + }, + "bnez": { + "prefix": "bnez", + "body": [ + "bnez" + ], + "description": "Jump to op2 if op1 != 0" + }, + "bnezal": { + "prefix": "bnezal", + "body": [ + "bnezal" + ], + "description": "Jump to op2 if op1 != 0, writing the address of the next line to ra" + }, + "brap": { + "prefix": "brap", + "body": [ + "brap" + ], + "description": "Relative jump to +op4 if op1 op2 with precision op3" + }, + "brapz": { + "prefix": "brapz", + "body": [ + "brapz" + ], + "description": "Relative jump to +op3 if op1 0 with precision op2" + }, + "brdns": { + "prefix": "brdns", + "body": [ + "brdns" + ], + "description": "Relative jump to +op2 if channel op1 is not configured" + }, + "brdse": { + "prefix": "brdse", + "body": [ + "brdse" + ], + "description": "Relative jump to +op2 if channel op1 is configured" + }, + "breq": { + "prefix": "breq", + "body": [ + "breq" + ], + "description": "Relative jump to +op3 if op1 = op2" + }, + "breqz": { + "prefix": "breqz", + "body": [ + "breqz" + ], + "description": "Relative jump to +op2 if op1 = 0" + }, + "brge": { + "prefix": "brge", + "body": [ + "brge" + ], + "description": "Relative jump to +op3 if op1 >= op2" + }, + "brgez": { + "prefix": "brgez", + "body": [ + "brgez" + ], + "description": "Relative jump to +op2 if op1 >= 0" + }, + "brgt": { + "prefix": "brgt", + "body": [ + "brgt" + ], + "description": "Relative jump to +op3 if op1 > op2" + }, + "brgtz": { + "prefix": "brgtz", + "body": [ + "brgtz" + ], + "description": "Relative jump to +op2 if op1 > 0" + }, + "brle": { + "prefix": "brle", + "body": [ + "brle" + ], + "description": "Relative jump to +op3 if op1 <= op2" + }, + "brlez": { + "prefix": "brlez", + "body": [ + "brlez" + ], + "description": "Relative jump to +op2 if op1 <= 0" + }, + "brlt": { + "prefix": "brlt", + "body": [ + "brlt" + ], + "description": "Relative jump to +op3 if op1 < op2" + }, + "brltz": { + "prefix": "brltz", + "body": [ + "brltz" + ], + "description": "Relative jump to +op2 if op1 < 0" + }, + "brna": { + "prefix": "brna", + "body": [ + "brna" + ], + "description": "Relative jump to +op4 if op1 op2 with precision op3" + }, + "brnaz": { + "prefix": "brnaz", + "body": [ + "brnaz" + ], + "description": "Relative jump to +op3 if op1 0 with precision op2" + }, + "brne": { + "prefix": "brne", + "body": [ + "brne" + ], + "description": "Relative jump to +op3 if op1 != op2" + }, + "brnez": { + "prefix": "brnez", + "body": [ + "brnez" + ], + "description": "Relative jump to +op2 if op1 != 0" + }, + "ceil": { + "prefix": "ceil", + "body": [ + "ceil" + ], + "description": "Round up to nearest integer" + }, + "cos": { + "prefix": "cos", + "body": [ + "cos" + ], + "description": "Cosine*" + }, + "define": { + "prefix": "define", + "body": [ + "define" + ], + "description": "Set a name for the constant" + }, + "div": { + "prefix": "div", + "body": [ + "div" + ], + "description": "Division" + }, + "exp": { + "prefix": "exp", + "body": [ + "exp" + ], + "description": "Exhibitor" + }, + "floor": { + "prefix": "floor", + "body": [ + "floor" + ], + "description": "Rounding down to nearest integer" + }, + "hcf": { + "prefix": "hcf", + "body": [ + "hcf" + ], + "description": "Stop work and burn the microprocessor" + }, + "j": { + "prefix": "j", + "body": [ + "j" + ], + "description": "Jump to the specified line" + }, + "jal": { + "prefix": "jal", + "body": [ + "jal" + ], + "description": "Jump to op1, writing the address of the next line to ra" + }, + "jr": { + "prefix": "jr", + "body": [ + "jr" + ], + "description": "Relative jump to +op1" + }, + "l": { + "prefix": "l", + "body": [ + "l" + ], + "description": "Reading the value of parameter op3 from port op2" + }, + "log": { + "prefix": "log", + "body": [ + "log" + ], + "description": "natural logarithm" + }, + "lr": { + "prefix": "lr", + "body": [ + "lr" + ], + "description": "Read reagent value op4 in op3 mode from port op2" + }, + "ls": { + "prefix": "ls", + "body": [ + "ls" + ], + "description": "Read value op4 from slot op3 of port op2" + }, + "max": { + "prefix": "max", + "body": [ + "max" + ], + "description": "Maximum of two" + }, + "min": { + "prefix": "min", + "body": [ + "min" + ], + "description": "Minimum of two" + }, + "mod": { + "prefix": "mod", + "body": [ + "mod" + ], + "description": "Remainder of integer division of op2 by op3 (the result is not equivalent to the % operator, and will be positive for any signs of op2 and op3)" + }, + "move": { + "prefix": "move", + "body": [ + "move" + ], + "description": "Value assignment" + }, + "mul": { + "prefix": "mul", + "body": [ + "mul" + ], + "description": "Multiplication" + }, + "nor": { + "prefix": "nor", + "body": [ + "nor" + ], + "description": "Inverse OR, one if both op2 and op3 are false, zero otherwise" + }, + "or": { + "prefix": "or", + "body": [ + "or" + ], + "description": "Logical OR, zero if both op2 and op3 are false, one otherwise" + }, + "peek": { + "prefix": "peek", + "body": [ + "peek" + ], + "description": "Push the top value off the stack into op1 without moving the stack" + }, + "pop": { + "prefix": "pop", + "body": [ + "pop" + ], + "description": "Pop a value from the stack and write to op1" + }, + "push": { + "prefix": "push", + "body": [ + "push" + ], + "description": "Push op1 onto the stack" + }, + "rand": { + "prefix": "rand", + "body": [ + "rand" + ], + "description": "Random value from 0 to 1 inclusive" + }, + "round": { + "prefix": "round", + "body": [ + "round" + ], + "description": "Rounding to nearest integer" + }, + "s": { + "prefix": "s", + "body": [ + "s" + ], + "description": "Writing a value to the op2 parameter of port op1" + }, + "sap": { + "prefix": "sap", + "body": [ + "sap" + ], + "description": "If op2 op3 with precision op4, then one, otherwise zero" + }, + "sapz": { + "prefix": "sapz", + "body": [ + "sapz" + ], + "description": "If op2 0 with precision op3, then one, otherwise zero" + }, + "sdns": { + "prefix": "sdns", + "body": [ + "sdns" + ], + "description": "If channel op2 is not set to one, otherwise zero" + }, + "sdse": { + "prefix": "sdse", + "body": [ + "sdse" + ], + "description": "If channel op2 is set to one, otherwise zero" + }, + "select": { + "prefix": "select", + "body": [ + "select" + ], + "description": "Ternary select. If op2 is true then op1 := op3, otherwise op1 := op4" + }, + "seq": { + "prefix": "seq", + "body": [ + "seq" + ], + "description": "If op2 = op3, then one, otherwise zero" + }, + "seqz": { + "prefix": "seqz", + "body": [ + "seqz" + ], + "description": "If op2 = 0, then one, otherwise zero" + }, + "sge": { + "prefix": "sge", + "body": [ + "sge" + ], + "description": "If op2 op3, then one, otherwise zero" + }, + "sgez": { + "prefix": "sgez", + "body": [ + "sgez" + ], + "description": "If op2 0, then one, otherwise zero" + }, + "sgt": { + "prefix": "sgt", + "body": [ + "sgt" + ], + "description": "If op2 > op3, then one, otherwise zero" + }, + "sgtz": { + "prefix": "sgtz", + "body": [ + "sgtz" + ], + "description": "If op2 > 0, then one, otherwise zero" + }, + "sin": { + "prefix": "sin", + "body": [ + "sin" + ], + "description": "Sinus*" + }, + "sle": { + "prefix": "sle", + "body": [ + "sle" + ], + "description": "If op2 op3, then one, otherwise zero" + }, + "sleep": { + "prefix": "sleep", + "body": [ + "sleep" + ], + "description": "Pause the program for op1 seconds" + }, + "slez": { + "prefix": "slez", + "body": [ + "slez" + ], + "description": "If op2 0, then one, otherwise zero" + }, + "slt": { + "prefix": "slt", + "body": [ + "slt" + ], + "description": "If op2 < op3, then one, otherwise zero" + }, + "sltz": { + "prefix": "sltz", + "body": [ + "sltz" + ], + "description": "If op2 < 0, then one, otherwise zero" + }, + "sna": { + "prefix": "sna", + "body": [ + "sna" + ], + "description": "If op2 op3 with precision op4, then one, otherwise zero" + }, + "snaz": { + "prefix": "snaz", + "body": [ + "snaz" + ], + "description": "If op2 0 with precision op3, then one, otherwise zero" + }, + "sne": { + "prefix": "sne", + "body": [ + "sne" + ], + "description": "If op2 op3, then one, otherwise zero" + }, + "snez": { + "prefix": "snez", + "body": [ + "snez" + ], + "description": "If op2 0, then one, otherwise zero" + }, + "sqrt": { + "prefix": "sqrt", + "body": [ + "sqrt" + ], + "description": "Square root" + }, + "sub": { + "prefix": "sub", + "body": [ + "sub" + ], + "description": "Difference" + }, + "tan": { + "prefix": "tan", + "body": [ + "tan" + ], + "description": "Tangent*" + }, + "trunc": { + "prefix": "trunc", + "body": [ + "trunc" + ], + "description": "The integer part of number" + }, + "xor": { + "prefix": "xor", + "body": [ + "xor" + ], + "description": "XOR, one if one and only one of op2 and op3 is true, zero otherwise" + }, + "yield": { + "prefix": "yield", + "body": [ + "yield" + ], + "description": "Pausing the program until the next tick" + }, + "Activate": { + "prefix": "Activate", + "body": [ + "Activate" + ], + "description": "-1 - stop, 0 - not working 1 - working" + }, + "Charge": { + "prefix": "Charge", + "body": [ + "Charge" + ], + "description": "Battery or accumulator charge, J. Level of electricity generation by a solar panel, W." + }, + "Class": { + "prefix": "Class", + "body": [ + "Class" + ], + "description": "the class of the object in the slot" + }, + "ClearMemory": { + "prefix": "ClearMemory", + "body": [ + "ClearMemory" + ], + "description": ">=1 - reset counters" + }, + "Color": { + "prefix": "Color", + "body": [ + "Color" + ], + "description": "Color of LED lamp, fixed beacon and LED display" + }, + "Combustion": { + "prefix": "Combustion", + "body": [ + "Combustion" + ], + "description": "1 - ignition detected, 0 - in all other cases" + }, + "CompletionRatio": { + "prefix": "CompletionRatio", + "body": [ + "CompletionRatio" + ], + "description": "production stage in %" + }, + "Damage": { + "prefix": "Damage", + "body": [ + "Damage" + ], + "description": "object damage level" + }, + "ElevatorLevel": { + "prefix": "ElevatorLevel", + "body": [ + "ElevatorLevel" + ], + "description": "For reading - the level at which the elevator cabin is located, or -1 if there is no cabin. On record - sends the elevator to the specified floor." + }, + "ElevatorSpeed": { + "prefix": "ElevatorSpeed", + "body": [ + "ElevatorSpeed" + ], + "description": "The speed of the elevator cabin, m / tick. A negative value corresponds to downward movement, 0 to a stationary booth, a positive value to upward movement." + }, + "Error": { + "prefix": "Error", + "body": [ + "Error" + ], + "description": "0 - normal operation, 1 - error" + }, + "ExportCount": { + "prefix": "ExportCount", + "body": [ + "ExportCount" + ], + "description": "counter of objects passed through the export slot" + }, + "Filtration": { + "prefix": "Filtration", + "body": [ + "Filtration" + ], + "description": "Switches the filtration of the spent mixture in a durable suit." + }, + "ForceWrite": { + "prefix": "ForceWrite", + "body": [ + "ForceWrite" + ], + "description": "Forces the write and multiwrite chips to transfer the current value to the hardware." + }, + "Harvest": { + "prefix": "Harvest", + "body": [ + "Harvest" + ], + "description": "Activates harvesting in an automatic hydroponic station." + }, + "Horizontal": { + "prefix": "Horizontal", + "body": [ + "Horizontal" + ], + "description": "angle with respect to the Sun in degrees in the horizontal projection of the Sun onto the sensor plane" + }, + "Idle": { + "prefix": "Idle", + "body": [ + "Idle" + ], + "description": "Loading the arc furnace. 0 - ore is not loaded, 1 - loaded." + }, + "ImportCount": { + "prefix": "ImportCount", + "body": [ + "ImportCount" + ], + "description": "counter of objects passed through the import slot" + }, + "Lock": { + "prefix": "Lock", + "body": [ + "Lock" + ], + "description": "0 - manual control unlocked, 1 - locked" + }, + "Maximum": { + "prefix": "Maximum", + "body": [ + "Maximum" + ], + "description": "The maximum value of some equipment parameter, such as battery charge or pressure at the inlet to the combustion chamber of a jet engine. Very often present but not used." + }, + "MaxQuantity": { + "prefix": "MaxQuantity", + "body": [ + "MaxQuantity" + ], + "description": "maximum number of items in a slot" + }, + "Mode": { + "prefix": "Mode", + "body": [ + "Mode" + ], + "description": "working mode" + }, + "On": { + "prefix": "On", + "body": [ + "On" + ], + "description": "0 - disabled 1 - enabled" + }, + "Open": { + "prefix": "Open", + "body": [ + "Open" + ], + "description": "0 - release closed, 1 - open" + }, + "Output": { + "prefix": "Output", + "body": [ + "Output" + ], + "description": "For a sorter - r/w , Int - the next output to which the object will be issued.
    For a stacker - w, Trigger - unloads the accumulated packing of objects into the export slot." + }, + "Plant": { + "prefix": "Plant", + "body": [ + "Plant" + ], + "description": "Starts the process of planting a plant from the import slot in an automatic hydroponic station." + }, + "PositionX": { + "prefix": "PositionX", + "body": [ + "PositionX" + ], + "description": "X coordinate of current position" + }, + "PositionY": { + "prefix": "PositionY", + "body": [ + "PositionY" + ], + "description": "Y coordinate of the current position" + }, + "PositionZ": { + "prefix": "PositionZ", + "body": [ + "PositionZ" + ], + "description": "Z coordinate of the current position" + }, + "Power": { + "prefix": "Power", + "body": [ + "Power" + ], + "description": "0 - no power or off, 1 - power on" + }, + "PowerActual": { + "prefix": "PowerActual", + "body": [ + "PowerActual" + ], + "description": "Total electricity consumption by all devices in the network, W." + }, + "PowerGeneration": { + "prefix": "PowerGeneration", + "body": [ + "PowerGeneration" + ], + "description": "Current generation of electricity by the generator, W." + }, + "PowerPotential": { + "prefix": "PowerPotential", + "body": [ + "PowerPotential" + ], + "description": "Maximum available network power, W." + }, + "PowerRequired": { + "prefix": "PowerRequired", + "body": [ + "PowerRequired" + ], + "description": "The total electricity demand of all devices in the network, W." + }, + "PressureExternal": { + "prefix": "PressureExternal", + "body": [ + "PressureExternal" + ], + "description": "atmospheric pressure in the environment, kPa" + }, + "PressureInternal": { + "prefix": "PressureInternal", + "body": [ + "PressureInternal" + ], + "description": "The pressure in the pipeline at which the operation of active ventilation stops, kPa. Installed but not used." + }, + "Ratio": { + "prefix": "Ratio", + "body": [ + "Ratio" + ], + "description": "For batteries - Charge/Maximum ratio.
    For other devices - Setting/Maximum ratio." + }, + "RatioCarbonDioxide": { + "prefix": "RatioCarbonDioxide", + "body": [ + "RatioCarbonDioxide" + ], + "description": "share of carbon dioxide" + }, + "RatioNitrogen": { + "prefix": "RatioNitrogen", + "body": [ + "RatioNitrogen" + ], + "description": "proportion of nitrogen" + }, + "RatioNitrousOxide": { + "prefix": "RatioNitrousOxide", + "body": [ + "RatioNitrousOxide" + ], + "description": "share of nitrous oxide" + }, + "RatioOxygen": { + "prefix": "RatioOxygen", + "body": [ + "RatioOxygen" + ], + "description": "fraction of oxygen" + }, + "RatioPollutant": { + "prefix": "RatioPollutant", + "body": [ + "RatioPollutant" + ], + "description": "proportion of toxins" + }, + "RatioVolatiles": { + "prefix": "RatioVolatiles", + "body": [ + "RatioVolatiles" + ], + "description": "fraction of volatile gases" + }, + "RatioWater": { + "prefix": "RatioWater", + "body": [ + "RatioWater" + ], + "description": "proportion of water vapor" + }, + "Reagents": { + "prefix": "Reagents", + "body": [ + "Reagents" + ], + "description": "total weight of ingredients in grams" + }, + "RecipeHash": { + "prefix": "RecipeHash", + "body": [ + "RecipeHash" + ], + "description": "hash of the selected recipe" + }, + "RequiredPower": { + "prefix": "RequiredPower", + "body": [ + "RequiredPower" + ], + "description": "The energy required for the operation of the device, W." + }, + "Setting": { + "prefix": "Setting", + "body": [ + "Setting" + ], + "description": "The current value of some hardware parameter. The type and possible values ​​depend on the hardware." + }, + "SolarAngle": { + "prefix": "SolarAngle", + "body": [ + "SolarAngle" + ], + "description": "angle relative to the sun in degrees" + }, + "TargetX": { + "prefix": "TargetX", + "body": [ + "TargetX" + ], + "description": "target x-coordinate" + }, + "TargetY": { + "prefix": "TargetY", + "body": [ + "TargetY" + ], + "description": "target y-coordinate" + }, + "TargetZ": { + "prefix": "TargetZ", + "body": [ + "TargetZ" + ], + "description": "target's z-coordinate" + }, + "TemperatureExternal": { + "prefix": "TemperatureExternal", + "body": [ + "TemperatureExternal" + ], + "description": "temperature of the external atmosphere, K" + }, + "TemperatureSetting": { + "prefix": "TemperatureSetting", + "body": [ + "TemperatureSetting" + ], + "description": "The specified temperature inside the durable suit, K." + }, + "TotalMoles": { + "prefix": "TotalMoles", + "body": [ + "TotalMoles" + ], + "description": "The total amount of gas inside the pipeline, mol." + }, + "VelocityMagnitude": { + "prefix": "VelocityMagnitude", + "body": [ + "VelocityMagnitude" + ], + "description": "bot movement speed module" + }, + "VelocityRelativeX": { + "prefix": "VelocityRelativeX", + "body": [ + "VelocityRelativeX" + ], + "description": "speed of movement along the X coordinate" + }, + "VelocityRelativeY": { + "prefix": "VelocityRelativeY", + "body": [ + "VelocityRelativeY" + ], + "description": "Y-axis movement speed" + }, + "VelocityRelativeZ": { + "prefix": "VelocityRelativeZ", + "body": [ + "VelocityRelativeZ" + ], + "description": "movement speed along Z coordinate" + }, + "Vertical": { + "prefix": "Vertical", + "body": [ + "Vertical" + ], + "description": "angle relative to the sun in degrees" + }, + "Volume": { + "prefix": "Volume", + "body": [ + "Volume" + ], + "description": "Volume" + }, + "ChargeRatio": { + "prefix": "ChargeRatio", + "body": [ + "ChargeRatio" + ], + "description": "The battery level in the slot." + }, + "Efficiency": { + "prefix": "Efficiency", + "body": [ + "Efficiency" + ], + "description": "Plant growth efficiency in an automatic hydroponic station. -1 if there is no plant." + }, + "Growth": { + "prefix": "Growth", + "body": [ + "Growth" + ], + "description": "Plant growth stage in automatic hydroponic station. -1 if there is no plant." + }, + "Health": { + "prefix": "Health", + "body": [ + "Health" + ], + "description": "Plant health in an automatic hydroponic station. 0 - dead plant, 1 - completely healthy, -1 - no plant." + }, + "Mature": { + "prefix": "Mature", + "body": [ + "Mature" + ], + "description": "Readiness of the plant in the automatic hydroponic station for harvesting. -1 if there is no plant." + }, + "OccupantHash": { + "prefix": "OccupantHash", + "body": [ + "OccupantHash" + ], + "description": "hash of the object in the slot" + }, + "Occupied": { + "prefix": "Occupied", + "body": [ + "Occupied" + ], + "description": "0 - slot free, 1 - occupied" + }, + "PressureAir": { + "prefix": "PressureAir", + "body": [ + "PressureAir" + ], + "description": "Pressure in the cylinder with the breathing mixture of the suit installed in the rack, kPa." + }, + "PressureWaste": { + "prefix": "PressureWaste", + "body": [ + "PressureWaste" + ], + "description": "Pressure in the cylinder with the spent mixture of the suit installed in the rack, kPa." + }, + "PrefabHash": { + "prefix": "PrefabHash", + "body": [ + "PrefabHash" + ], + "description": "" + }, + "Pressure": { + "prefix": "Pressure", + "body": [ + "Pressure" + ], + "description": "" + }, + "Quantity": { + "prefix": "Quantity", + "body": [ + "Quantity" + ], + "description": "Quantity of the iten in the slot" + }, + "Temperature": { + "prefix": "Temperature", + "body": [ + "Temperature" + ], + "description": "" + }, + "lb": { + "prefix": "lb", + "body": [ + "lb" + ], + "description": "Batch read in op1 from all devices with hash op2 of parameter op3 in op4 mode" + }, + "sb": { + "prefix": "sb", + "body": [ + "sb" + ], + "description": "Batch write to all devices with hash op1 to parameter op2 of value op3" + }, + "Bpm": { + "prefix": "Bpm", + "body": [ + "Bpm" + ], + "description": "" + }, + "CollectableGoods": { + "prefix": "CollectableGoods", + "body": [ + "CollectableGoods" + ], + "description": "" + }, + "CurrentResearchPodType": { + "prefix": "CurrentResearchPodType", + "body": [ + "CurrentResearchPodType" + ] + }, + "Fuel": { + "prefix": "Fuel", + "body": [ + "Fuel" + ], + "description": "" + }, + "ManualResearchRequiredPod": { + "prefix": "ManualResearchRequiredPod", + "body": [ + "ManualResearchRequiredPod" + ] + }, + "MineablesInQueue": { + "prefix": "MineablesInQueue", + "body": [ + "MineablesInQueue" + ], + "description": "" + }, + "MineablesInVicinity": { + "prefix": "MineablesInVicinity", + "body": [ + "MineablesInVicinity" + ], + "description": "" + }, + "NextWeatherEventTime": { + "prefix": "NextWeatherEventTime", + "body": [ + "NextWeatherEventTime" + ], + "description": "" + }, + "ReturnFuelCost": { + "prefix": "ReturnFuelCost", + "body": [ + "ReturnFuelCost" + ], + "description": "" + }, + "SettingInput": { + "prefix": "SettingInput", + "body": [ + "SettingInput" + ] + }, + "SettingOutput": { + "prefix": "SettingOutput", + "body": [ + "SettingOutput" + ], + "description": "Secondary setting" + }, + "SignalID": { + "prefix": "SignalID", + "body": [ + "SignalID" + ], + "description": "" + }, + "SignalStrength": { + "prefix": "SignalStrength", + "body": [ + "SignalStrength" + ], + "description": "" + }, + "Time": { + "prefix": "Time", + "body": [ + "Time" + ], + "description": "" + }, + "AirRelease": { + "prefix": "AirRelease", + "body": [ + "AirRelease" + ], + "description": "" + }, + "HorizontalRatio": { + "prefix": "HorizontalRatio", + "body": [ + "HorizontalRatio" + ] + }, + "PressureSetting": { + "prefix": "PressureSetting", + "body": [ + "PressureSetting" + ], + "description": "" + }, + "RequestHash": { + "prefix": "RequestHash", + "body": [ + "RequestHash" + ], + "description": "hash of requested item" + }, + "VerticalRatio": { + "prefix": "VerticalRatio", + "body": [ + "VerticalRatio" + ] + }, + "Average": { + "prefix": "Average", + "body": [ + "Average" + ], + "description": "" + }, + "Sum": { + "prefix": "Sum", + "body": [ + "Sum" + ], + "description": "" + }, + "Minimum": { + "prefix": "Minimum", + "body": [ + "Minimum" + ], + "description": "" + }, + "stack": { + "prefix": "stack", + "body": [ + "stack" + ], + "description": "[icX] Populates the stack with argument values" + }, + "Seeding": { + "prefix": "Seeding", + "body": [ + "Seeding" + ], + "description": "" + }, + "atan2": { + "prefix": "atan2", + "body": [ + "atan2" + ], + "description": "Arc tangent with 2 arguments" + }, + "CombustionInput": { + "prefix": "CombustionInput", + "body": [ + "CombustionInput" + ], + "description": "" + }, + "CombustionOutput": { + "prefix": "CombustionOutput", + "body": [ + "CombustionOutput" + ], + "description": "" + }, + "CombustionOutput2": { + "prefix": "CombustionOutput2", + "body": [ + "CombustionOutput2" + ], + "description": "" + }, + "TemperatureInput": { + "prefix": "TemperatureInput", + "body": [ + "TemperatureInput" + ], + "description": "" + }, + "TemperatureOutput": { + "prefix": "TemperatureOutput", + "body": [ + "TemperatureOutput" + ], + "description": "" + }, + "TemperatureOutput2": { + "prefix": "TemperatureOutput2", + "body": [ + "TemperatureOutput2" + ], + "description": "" + }, + "PressureInput": { + "prefix": "PressureInput", + "body": [ + "PressureInput" + ], + "description": "" + }, + "PressureOutput": { + "prefix": "PressureOutput", + "body": [ + "PressureOutput" + ], + "description": "" + }, + "PressureOutput2": { + "prefix": "PressureOutput2", + "body": [ + "PressureOutput2" + ], + "description": "" + }, + "TotalMolesInput": { + "prefix": "TotalMolesInput", + "body": [ + "TotalMolesInput" + ], + "description": "" + }, + "TotalMolesOutput": { + "prefix": "TotalMolesOutput", + "body": [ + "TotalMolesOutput" + ], + "description": "" + }, + "TotalMolesOutput2": { + "prefix": "TotalMolesOutput2", + "body": [ + "TotalMolesOutput2" + ], + "description": "" + }, + "RatioCarbonDioxideInput": { + "prefix": "RatioCarbonDioxideInput", + "body": [ + "RatioCarbonDioxideInput" + ], + "description": "" + }, + "RatioCarbonDioxideOutput": { + "prefix": "RatioCarbonDioxideOutput", + "body": [ + "RatioCarbonDioxideOutput" + ], + "description": "" + }, + "RatioCarbonDioxideOutput2": { + "prefix": "RatioCarbonDioxideOutput2", + "body": [ + "RatioCarbonDioxideOutput2" + ], + "description": "" + }, + "RatioNitrogenInput": { + "prefix": "RatioNitrogenInput", + "body": [ + "RatioNitrogenInput" + ], + "description": "" + }, + "RatioNitrogenOutput": { + "prefix": "RatioNitrogenOutput", + "body": [ + "RatioNitrogenOutput" + ], + "description": "" + }, + "RatioNitrogenOutput2": { + "prefix": "RatioNitrogenOutput2", + "body": [ + "RatioNitrogenOutput2" + ], + "description": "" + }, + "RatioNitrousOxideInput": { + "prefix": "RatioNitrousOxideInput", + "body": [ + "RatioNitrousOxideInput" + ], + "description": "" + }, + "RatioNitrousOxideOutput": { + "prefix": "RatioNitrousOxideOutput", + "body": [ + "RatioNitrousOxideOutput" + ], + "description": "" + }, + "RatioNitrousOxideOutput2": { + "prefix": "RatioNitrousOxideOutput2", + "body": [ + "RatioNitrousOxideOutput2" + ], + "description": "" + }, + "RatioOxygenInput": { + "prefix": "RatioOxygenInput", + "body": [ + "RatioOxygenInput" + ], + "description": "" + }, + "RatioOxygenOutput": { + "prefix": "RatioOxygenOutput", + "body": [ + "RatioOxygenOutput" + ], + "description": "" + }, + "RatioOxygenOutput2": { + "prefix": "RatioOxygenOutput2", + "body": [ + "RatioOxygenOutput2" + ], + "description": "" + }, + "RatioPollutantInput": { + "prefix": "RatioPollutantInput", + "body": [ + "RatioPollutantInput" + ], + "description": "" + }, + "RatioPollutantOutput2": { + "prefix": "RatioPollutantOutput2", + "body": [ + "RatioPollutantOutput2" + ], + "description": "" + }, + "RatioVolatilesInput": { + "prefix": "RatioVolatilesInput", + "body": [ + "RatioVolatilesInput" + ], + "description": "" + }, + "RatioVolatilesOutput": { + "prefix": "RatioVolatilesOutput", + "body": [ + "RatioVolatilesOutput" + ], + "description": "" + }, + "RatioVolatilesOutput2": { + "prefix": "RatioVolatilesOutput2", + "body": [ + "RatioVolatilesOutput2" + ], + "description": "" + }, + "RatioWaterInput": { + "prefix": "RatioWaterInput", + "body": [ + "RatioWaterInput" + ], + "description": "" + }, + "RatioWaterOutput": { + "prefix": "RatioWaterOutput", + "body": [ + "RatioWaterOutput" + ], + "description": "" + }, + "RatioWaterOutput2": { + "prefix": "RatioWaterOutput2", + "body": [ + "RatioWaterOutput2" + ], + "description": "" + }, + "PressureEfficiency": { + "prefix": "PressureEfficiency", + "body": [ + "PressureEfficiency" + ] + }, + "OperationalTemperatureEfficiency": { + "prefix": "OperationalTemperatureEfficiency", + "body": [ + "OperationalTemperatureEfficiency" + ] + }, + "TemperatureDifferentialEfficiency": { + "prefix": "TemperatureDifferentialEfficiency", + "body": [ + "TemperatureDifferentialEfficiency" + ] + }, + "Throttle": { + "prefix": "Throttle", + "body": [ + "Throttle" + ], + "description": "Sets the throttle of Combustion Centrifuge." + }, + "CombustionLimiter": { + "prefix": "CombustionLimiter", + "body": [ + "CombustionLimiter" + ], + "description": "Sets the combustion limiter of Combustion Centrifuge." + }, + "debug": { + "prefix": "debug", + "body": [ + "debug" + ], + "description": "[icX] logs passed values ​​in the debugger" + }, + "Contents": { + "prefix": "Contents", + "body": [ + "Contents" + ], + "description": "" + }, + "Required": { + "prefix": "Required", + "body": [ + "Required" + ], + "description": "" + }, + "Recipe": { + "prefix": "Recipe", + "body": [ + "Recipe" + ], + "description": "" + }, + "return": { + "prefix": "return", + "body": [ + "return" + ], + "description": "[icX] return value from functions" + }, + "HASH(\"name\")": { + "prefix": "HASH(\"name\")", + "body": [ + "HASH(\"name\")" + ], + "description": "" + }, + "lbn": { + "prefix": "lbn", + "body": [ + "lbn" + ], + "description": "" + }, + "lbns": { + "prefix": "lbns", + "body": [ + "lbns" + ], + "description": "" + }, + "bnan": { + "prefix": "bnan", + "body": [ + "bnan" + ], + "description": "" + }, + "brnan": { + "prefix": "brnan", + "body": [ + "brnan" + ], + "description": "" + }, + "pi": { + "prefix": "pi", + "body": [ + "pi" + ], + "description": "" + }, + "ninf": { + "prefix": "ninf", + "body": [ + "ninf" + ], + "description": "" + }, + "pinf": { + "prefix": "pinf", + "body": [ + "pinf" + ], + "description": "" + }, + "nan": { + "prefix": "nan", + "body": [ + "nan" + ], + "description": "" + }, + "deg2rad": { + "prefix": "deg2rad", + "body": [ + "deg2rad" + ], + "description": "" + }, + "rad2deg": { + "prefix": "rad2deg", + "body": [ + "rad2deg" + ], + "description": "" + }, + "Channel0": { + "prefix": "Channel0", + "body": [ + "Channel0" + ], + "description": "" + }, + "Channel1": { + "prefix": "Channel1", + "body": [ + "Channel1" + ], + "description": "" + }, + "Channel2": { + "prefix": "Channel2", + "body": [ + "Channel2" + ], + "description": "" + }, + "Channel3": { + "prefix": "Channel3", + "body": [ + "Channel3" + ], + "description": "" + }, + "Channel4": { + "prefix": "Channel4", + "body": [ + "Channel4" + ], + "description": "" + }, + "Channel5": { + "prefix": "Channel5", + "body": [ + "Channel5" + ], + "description": "" + }, + "Channel6": { + "prefix": "Channel6", + "body": [ + "Channel6" + ], + "description": "" + }, + "Channel7": { + "prefix": "Channel7", + "body": [ + "Channel7" + ], + "description": "" + }, + "snan": { + "prefix": "snan", + "body": [ + "snan" + ], + "description": "" + }, + "snanz": { + "prefix": "snanz", + "body": [ + "snanz" + ], + "description": "" + }, + "sbn": { + "prefix": "sbn", + "body": [ + "sbn" + ], + "description": "" + }, + "SortingClass": { + "prefix": "SortingClass", + "body": [ + "SortingClass" + ], + "description": "" + }, + "RatioPollutantOutput": { + "prefix": "RatioPollutantOutput", + "body": [ + "RatioPollutantOutput" + ], + "description": "" + }, + "SolarIrradiance": { + "prefix": "SolarIrradiance", + "body": [ + "SolarIrradiance" + ], + "description": "" + }, + "Rpm": { + "prefix": "Rpm", + "body": [ + "Rpm" + ], + "description": "" + }, + "Stress": { + "prefix": "Stress", + "body": [ + "Stress" + ], + "description": "" + }, + "InterrogationProgress": { + "prefix": "InterrogationProgress", + "body": [ + "InterrogationProgress" + ], + "description": "" + }, + "TargetPadIndex": { + "prefix": "TargetPadIndex", + "body": [ + "TargetPadIndex" + ], + "description": "" + }, + "SizeX": { + "prefix": "SizeX", + "body": [ + "SizeX" + ], + "description": "" + }, + "SizeZ": { + "prefix": "SizeZ", + "body": [ + "SizeZ" + ], + "description": "" + }, + "MinimumWattsToContact": { + "prefix": "MinimumWattsToContact", + "body": [ + "MinimumWattsToContact" + ], + "description": "" + }, + "WattsReachingContact": { + "prefix": "WattsReachingContact", + "body": [ + "WattsReachingContact" + ], + "description": "" + }, + "ss": { + "prefix": "ss", + "body": [ + "ss" + ], + "description": "" + }, + "lbs": { + "prefix": "lbs", + "body": [ + "lbs" + ], + "description": "" + }, + "LineNumber": { + "prefix": "LineNumber", + "body": [ + "LineNumber" + ], + "description": "" + }, + "SoundAlert": { + "prefix": "SoundAlert", + "body": [ + "SoundAlert" + ], + "description": "" + }, + "Flush": { + "prefix": "Flush", + "body": [ + "Flush" + ], + "description": "" + }, + "sbs": { + "prefix": "sbs", + "body": [ + "sbs" + ], + "description": "" + }, + "sla": { + "prefix": "sla", + "body": [ + "sla" + ], + "description": "Left arithmetic bitshift" + }, + "sll": { + "prefix": "sll", + "body": [ + "sll" + ], + "description": "Left bitshift" + }, + "sra": { + "prefix": "sra", + "body": [ + "sra" + ], + "description": "Right arithmetic bitshift" + }, + "srl": { + "prefix": "srl", + "body": [ + "srl" + ], + "description": "Right bitshift" + }, + "RatioLiquidCarbonDioxide": { + "prefix": "RatioLiquidCarbonDioxide", + "body": [ + "RatioLiquidCarbonDioxide" + ], + "description": "" + }, + "RatioLiquidNitrogen": { + "prefix": "RatioLiquidNitrogen", + "body": [ + "RatioLiquidNitrogen" + ], + "description": "" + }, + "RatioLiquidNitrousOxide": { + "prefix": "RatioLiquidNitrousOxide", + "body": [ + "RatioLiquidNitrousOxide" + ], + "description": "" + }, + "RatioLiquidOxygen": { + "prefix": "RatioLiquidOxygen", + "body": [ + "RatioLiquidOxygen" + ], + "description": "" + }, + "RatioLiquidPollutant": { + "prefix": "RatioLiquidPollutant", + "body": [ + "RatioLiquidPollutant" + ], + "description": "" + }, + "RatioLiquidVolatiles": { + "prefix": "RatioLiquidVolatiles", + "body": [ + "RatioLiquidVolatiles" + ], + "description": "" + }, + "RatioSteam": { + "prefix": "RatioSteam", + "body": [ + "RatioSteam" + ], + "description": "" + }, + "VolumeOfLiquid": { + "prefix": "VolumeOfLiquid", + "body": [ + "VolumeOfLiquid" + ], + "description": "" + }, + "x": { + "prefix": "x", + "body": [ + "x" + ], + "description": "x" + } +} \ No newline at end of file diff --git a/snippets/icX.json b/snippets/icX.json new file mode 100644 index 0000000..6fc7a9a --- /dev/null +++ b/snippets/icX.json @@ -0,0 +1,1459 @@ +{ + "alias": { + "prefix": "alias", + "body": [ + "alias" + ], + "description": "Set an alias for the register or data channel" + }, + "aliasD0": { + "prefix": "aliasd0", + "body": [ + "alias $1 d0" + ], + "description": "alias {name} d0" + }, + "aliasD1": { + "prefix": "aliasd1", + "body": [ + "alias $1 d1" + ], + "description": "alias {name} d1" + }, + "aliasD2": { + "prefix": "aliasd2", + "body": [ + "alias $1 d2" + ], + "description": "alias {name} d2" + }, + "aliasD3": { + "prefix": "aliasd3", + "body": [ + "alias $1 d3" + ], + "description": "alias {name} d3" + }, + "aliasD4": { + "prefix": "aliasd4", + "body": [ + "alias $1 d4" + ], + "description": "alias {name} d4" + }, + "aliasD5": { + "prefix": "aliasd5", + "body": [ + "alias $1 d5" + ], + "description": "alias {name} d5" + }, + "loop": { + "prefix": "j l", + "body": [ + "loop:", + "$1", + "j loop" + ], + "description": "main loop" + }, + "abs": { + "prefix": "abs", + "body": [ + "abs" + ], + "description": "The absolute value of the number" + }, + "acos": { + "prefix": "acos", + "body": [ + "acos" + ], + "description": "Arccosine *" + }, + "add": { + "prefix": "add", + "body": [ + "add" + ], + "description": "Amount" + }, + "and": { + "prefix": "and", + "body": [ + "and" + ], + "description": "Logical AND, one if both op2 and op3 are true, zero otherwise" + }, + "asin": { + "prefix": "asin", + "body": [ + "asin" + ], + "description": "Arcsine *" + }, + "atan": { + "prefix": "atan", + "body": [ + "atan" + ], + "description": "Arctangent *" + }, + "bap": { + "prefix": "bap", + "body": [ + "bap" + ], + "description": "R / N / C" + }, + "bapal": { + "prefix": "bapal", + "body": [ + "bapal" + ], + "description": "R / N / C" + }, + "bapz": { + "prefix": "bapz", + "body": [ + "bapz" + ], + "description": "R / N / C" + }, + "bapzal": { + "prefix": "bapzal", + "body": [ + "bapzal" + ], + "description": "R / N / C" + }, + "bdns": { + "prefix": "bdns", + "body": [ + "bdns" + ], + "description": "D / N" + }, + "bdnsal": { + "prefix": "bdnsal", + "body": [ + "bdnsal" + ], + "description": "D / N" + }, + "bdse": { + "prefix": "bdse", + "body": [ + "bdse" + ], + "description": "D / N" + }, + "bdseal": { + "prefix": "bdseal", + "body": [ + "bdseal" + ], + "description": "D / N" + }, + "beq": { + "prefix": "beq", + "body": [ + "beq" + ], + "description": "R / N / C" + }, + "beqal": { + "prefix": "beqal", + "body": [ + "beqal" + ], + "description": "R / N / C" + }, + "beqz": { + "prefix": "beqz", + "body": [ + "beqz" + ], + "description": "R / N / C" + }, + "beqzal": { + "prefix": "beqzal", + "body": [ + "beqzal" + ], + "description": "R / N / C" + }, + "bge": { + "prefix": "bge", + "body": [ + "bge" + ], + "description": "R / N / C" + }, + "bgeal": { + "prefix": "bgeal", + "body": [ + "bgeal" + ], + "description": "R / N / C" + }, + "bgez": { + "prefix": "bgez", + "body": [ + "bgez" + ], + "description": "R / N / C" + }, + "bgezal": { + "prefix": "bgezal", + "body": [ + "bgezal" + ], + "description": "R / N / C" + }, + "bgt": { + "prefix": "bgt", + "body": [ + "bgt" + ], + "description": "R / N / C" + }, + "bgtal": { + "prefix": "bgtal", + "body": [ + "bgtal" + ], + "description": "R / N / C" + }, + "bgtz": { + "prefix": "bgtz", + "body": [ + "bgtz" + ], + "description": "R / N / C" + }, + "bgtzal": { + "prefix": "bgtzal", + "body": [ + "bgtzal" + ], + "description": "R / N / C" + }, + "ble": { + "prefix": "ble", + "body": [ + "ble" + ], + "description": "R / N / C" + }, + "bleal": { + "prefix": "bleal", + "body": [ + "bleal" + ], + "description": "R / N / C" + }, + "blez": { + "prefix": "blez", + "body": [ + "blez" + ], + "description": "R / N / C" + }, + "blezal": { + "prefix": "blezal", + "body": [ + "blezal" + ], + "description": "R / N / C" + }, + "blt": { + "prefix": "blt", + "body": [ + "blt" + ], + "description": "R / N / C" + }, + "bltal": { + "prefix": "bltal", + "body": [ + "bltal" + ], + "description": "R / N / C" + }, + "bltz": { + "prefix": "bltz", + "body": [ + "bltz" + ], + "description": "R / N / C" + }, + "bltzal": { + "prefix": "bltzal", + "body": [ + "bltzal" + ], + "description": "R / N / C" + }, + "bna": { + "prefix": "bna", + "body": [ + "bna" + ], + "description": "R / N / C" + }, + "bnaal": { + "prefix": "bnaal", + "body": [ + "bnaal" + ], + "description": "R / N / C" + }, + "bnaz": { + "prefix": "bnaz", + "body": [ + "bnaz" + ], + "description": "R / N / C" + }, + "bnazal": { + "prefix": "bnazal", + "body": [ + "bnazal" + ], + "description": "R / N / C" + }, + "bne": { + "prefix": "bne", + "body": [ + "bne" + ], + "description": "R / N / C" + }, + "bneal": { + "prefix": "bneal", + "body": [ + "bneal" + ], + "description": "R / N / C" + }, + "bnez": { + "prefix": "bnez", + "body": [ + "bnez" + ], + "description": "R / N / C" + }, + "bnezal": { + "prefix": "bnezal", + "body": [ + "bnezal" + ], + "description": "R / N / C" + }, + "brap": { + "prefix": "brap", + "body": [ + "brap" + ], + "description": "R / N / C" + }, + "brapz": { + "prefix": "brapz", + "body": [ + "brapz" + ], + "description": "R / N / C" + }, + "brdns": { + "prefix": "brdns", + "body": [ + "brdns" + ], + "description": "D / N" + }, + "brdse": { + "prefix": "brdse", + "body": [ + "brdse" + ], + "description": "D / N" + }, + "breq": { + "prefix": "breq", + "body": [ + "breq" + ], + "description": "R / N / C" + }, + "breqz": { + "prefix": "breqz", + "body": [ + "breqz" + ], + "description": "R / N / C" + }, + "brge": { + "prefix": "brge", + "body": [ + "brge" + ], + "description": "R / N / C" + }, + "brgez": { + "prefix": "brgez", + "body": [ + "brgez" + ], + "description": "R / N / C" + }, + "brgt": { + "prefix": "brgt", + "body": [ + "brgt" + ], + "description": "R / N / C" + }, + "brgtz": { + "prefix": "brgtz", + "body": [ + "brgtz" + ], + "description": "R / N / C" + }, + "brle": { + "prefix": "brle", + "body": [ + "brle" + ], + "description": "R / N / C" + }, + "brlez": { + "prefix": "brlez", + "body": [ + "brlez" + ], + "description": "R / N / C" + }, + "brlt": { + "prefix": "brlt", + "body": [ + "brlt" + ], + "description": "R / N / C" + }, + "brltz": { + "prefix": "brltz", + "body": [ + "brltz" + ], + "description": "R / N / C" + }, + "brna": { + "prefix": "brna", + "body": [ + "brna" + ], + "description": "R / N / C" + }, + "brnaz": { + "prefix": "brnaz", + "body": [ + "brnaz" + ], + "description": "R / N / C" + }, + "brne": { + "prefix": "brne", + "body": [ + "brne" + ], + "description": "R / N / C" + }, + "brnez": { + "prefix": "brnez", + "body": [ + "brnez" + ], + "description": "R / N / C" + }, + "ceil": { + "prefix": "ceil", + "body": [ + "ceil" + ], + "description": "Round up to nearest integer" + }, + "cos": { + "prefix": "cos", + "body": [ + "cos" + ], + "description": "Cosine*" + }, + "define": { + "prefix": "define", + "body": [ + "define" + ], + "description": "Set a name for the constant" + }, + "div": { + "prefix": "div", + "body": [ + "div" + ], + "description": "Division" + }, + "exp": { + "prefix": "exp", + "body": [ + "exp" + ], + "description": "Exhibitor" + }, + "floor": { + "prefix": "floor", + "body": [ + "floor" + ], + "description": "Round down to nearest integer" + }, + "hcf": { + "prefix": "hcf", + "body": [ + "hcf" + ], + "description": "" + }, + "j": { + "prefix": "j", + "body": [ + "j" + ], + "description": "R / N / A / T" + }, + "jal": { + "prefix": "jal", + "body": [ + "jal" + ], + "description": "R / N / A / T" + }, + "jr": { + "prefix": "jr", + "body": [ + "jr" + ], + "description": "R / N / O" + }, + "l": { + "prefix": "l", + "body": [ + "l" + ], + "description": "Reading the value of the op3 parameter from the op2 port" + }, + "log": { + "prefix": "log", + "body": [ + "log" + ], + "description": "Natural logarithm" + }, + "lr": { + "prefix": "lr", + "body": [ + "lr" + ], + "description": "Reading op4 reagent value in op3 mode from op2 port" + }, + "ls": { + "prefix": "ls", + "body": [ + "ls" + ], + "description": "Reading the op4 value from the op3 slot of the op2 port" + }, + "max": { + "prefix": "max", + "body": [ + "max" + ], + "description": "Maximum of two" + }, + "min": { + "prefix": "min", + "body": [ + "min" + ], + "description": "The minimum of two" + }, + "mod": { + "prefix": "mod", + "body": [ + "mod" + ], + "description": "Remainder of integer division of op2 by op3 (the result is not equivalent to the% operator, and will be positive for any signs of op2 and op3)" + }, + "move": { + "prefix": "move", + "body": [ + "move" + ], + "description": "Assigning a value" + }, + "mul": { + "prefix": "mul", + "body": [ + "mul" + ], + "description": "Composition" + }, + "nor": { + "prefix": "nor", + "body": [ + "nor" + ], + "description": "Inverse OR, one if both op2 and op3 are false, zero otherwise" + }, + "or": { + "prefix": "or", + "body": [ + "or" + ], + "description": "Logical OR, zero if both op2 and op3 are false, one otherwise" + }, + "peek": { + "prefix": "peek", + "body": [ + "peek" + ], + "description": "Write the top value from the stack to op1 without moving the stack" + }, + "pop": { + "prefix": "pop", + "body": [ + "pop" + ], + "description": "Pop the value off the stack and write to op1" + }, + "push": { + "prefix": "push", + "body": [ + "push" + ], + "description": "Put op1 on the stack" + }, + "rand": { + "prefix": "rand", + "body": [ + "rand" + ], + "description": "Random variable from 0 to 1 inclusive" + }, + "round": { + "prefix": "round", + "body": [ + "round" + ], + "description": "Round to the nearest integer" + }, + "s": { + "prefix": "s", + "body": [ + "s" + ], + "description": "Writing a value to the op2 parameter of the op1 port" + }, + "sap": { + "prefix": "sap", + "body": [ + "sap" + ], + "description": "If op2 op3 with precision op4, then one, otherwise zero" + }, + "sapz": { + "prefix": "sapz", + "body": [ + "sapz" + ], + "description": "If op2 0 with precision op3, then one, otherwise zero" + }, + "sdns": { + "prefix": "sdns", + "body": [ + "sdns" + ], + "description": "If channel op2 is not set to then one, otherwise zero" + }, + "sdse": { + "prefix": "sdse", + "body": [ + "sdse" + ], + "description": "If channel op2 is set to one, otherwise zero" + }, + "select": { + "prefix": "select", + "body": [ + "select" + ], + "description": "Ternary select. If op2 is true, then op1: = op3, otherwise op1: = op4" + }, + "seq": { + "prefix": "seq", + "body": [ + "seq" + ], + "description": "If op2 = op3, then one, otherwise zero" + }, + "seqz": { + "prefix": "seqz", + "body": [ + "seqz" + ], + "description": "If op2 = 0, then one, otherwise zero" + }, + "sge": { + "prefix": "sge", + "body": [ + "sge" + ], + "description": "If op2 op3, then one, otherwise zero" + }, + "sgez": { + "prefix": "sgez", + "body": [ + "sgez" + ], + "description": "If op2 0, then one, otherwise zero" + }, + "sgt": { + "prefix": "sgt", + "body": [ + "sgt" + ], + "description": "If op2> op3, then one, otherwise zero" + }, + "sgtz": { + "prefix": "sgtz", + "body": [ + "sgtz" + ], + "description": "If op2> 0, then one, otherwise zero" + }, + "sin": { + "prefix": "sin", + "body": [ + "sin" + ], + "description": "Sinus*" + }, + "sle": { + "prefix": "sle", + "body": [ + "sle" + ], + "description": "If op2 op3, then one, otherwise zero" + }, + "sleep": { + "prefix": "sleep", + "body": [ + "sleep" + ], + "description": "R / N / C" + }, + "slez": { + "prefix": "slez", + "body": [ + "slez" + ], + "description": "If op2 0, then one, otherwise zero" + }, + "slt": { + "prefix": "slt", + "body": [ + "slt" + ], + "description": "If op2 1 - helmets;
    2 - suits and armor;
    3 - jetpacks and backpacks;
    4 - gas filters;
    5 - gas cylinders;
    6 - motherboards;
    7 - printed circuit boards;
    8 - data disc;
    9 - organs (brain, lungs);
    10 - ores;
    11 - plants;
    12 - uniforms;
    13 - creatures (including characters);
    14 - batteries;
    14 - eggs;
    15 - belts;
    16 - tools ;
    17 - desktop equipment (microwave oven, paint mixer, etc.);
    18 - ingots;
    19 - torpedoes;
    20 - cartridges;
    21 - access cards, < br> 22 - shops for arms;
    23 - logic chips;
    24 - bottles (milk, soybean oil);
    25 - microprocessors;
    26 - glasses." + }, + "ClearMemory": { + "prefix": "ClearMemory", + "body": [ + "ClearMemory" + ], + "description": "> = 1 - resets counters" + }, + "Color": { + "prefix": "Color", + "body": [ + "Color" + ], + "description": "Color of LED lamp, fixed beacon and LED display" + }, + "Combustion": { + "prefix": "Combustion", + "body": [ + "Combustion" + ], + "description": "1 - ignition detected, 0 - in all other cases" + }, + "CompletionRatio": { + "prefix": "CompletionRatio", + "body": [ + "CompletionRatio" + ], + "description": "production stage in%" + }, + "Damage": { + "prefix": "Damage", + "body": [ + "Damage" + ], + "description": "The damage level of the object in the slot. 0 - whole object, 1 - completely destroyed." + }, + "ElevatorLevel": { + "prefix": "ElevatorLevel", + "body": [ + "ElevatorLevel" + ], + "description": "For reading - the level at which the elevator car is located, or -1 if there is no car. On record - sends the elevator to the specified floor." + }, + "ElevatorSpeed": { + "prefix": "ElevatorSpeed", + "body": [ + "ElevatorSpeed" + ], + "description": "Elevator car speed, m / tick. A negative value corresponds to a downward movement, 0 to a stationary booth, and a positive value to an upward movement." + }, + "Error": { + "prefix": "Error", + "body": [ + "Error" + ], + "description": "0 - normal operation, 1 - error" + }, + "ExportCount": { + "prefix": "ExportCount", + "body": [ + "ExportCount" + ], + "description": "counter of objects passed through the export slot" + }, + "Filtration": { + "prefix": "Filtration", + "body": [ + "Filtration" + ], + "description": "Switches the filtration of the spent mixture in a rugged spacesuit." + }, + "ForceWrite": { + "prefix": "ForceWrite", + "body": [ + "ForceWrite" + ], + "description": "Forces write and multi-write chips to transmit the current value to the hardware." + }, + "Harvest": { + "prefix": "Harvest", + "body": [ + "Harvest" + ], + "description": "Activates harvesting in an automatic hydroponic station." + }, + "Horizontal": { + "prefix": "Horizontal", + "body": [ + "Horizontal" + ], + "description": "angle with respect to the Sun in degrees in the horizontal projection of the Sun on the plane of the sensor" + }, + "Idle": { + "prefix": "Idle", + "body": [ + "Idle" + ], + "description": "Loading the arc furnace. 0 - ore not loaded, 1 - loaded." + }, + "ImportCount": { + "prefix": "ImportCount", + "body": [ + "ImportCount" + ], + "description": "counter of objects passed through the import slot" + }, + "Lock": { + "prefix": "Lock", + "body": [ + "Lock" + ], + "description": "0 - manual control unlocked, 1 - locked" + }, + "Maximum": { + "prefix": "Maximum", + "body": [ + "Maximum" + ], + "description": "The maximum value of any equipment parameter, such as battery charge or pressure at the inlet to the combustion chamber of a jet engine. Very often present, but not used." + }, + "MaxQuantity": { + "prefix": "MaxQuantity", + "body": [ + "MaxQuantity" + ], + "description": "maximum number of items in a slot" + }, + "Mode": { + "prefix": "Mode", + "body": [ + "Mode" + ], + "description": "operating mode" + }, + "On": { + "prefix": "On", + "body": [ + "On" + ], + "description": "0 - disabled 1 - disabled" + }, + "Open": { + "prefix": "Open", + "body": [ + "Open" + ], + "description": "0 - ejection closed, 1 - open" + }, + "Output": { + "prefix": "Output", + "body": [ + "Output" + ], + "description": "For the sorter - r / w, Int - the next output to which the object will be sent.
    For the stacker - w, Trigger - unloads the accumulated packing of objects into the export slot." + }, + "Plant": { + "prefix": "Plant", + "body": [ + "Plant" + ], + "description": "Starts the process of planting a plant from the import slot in an automatic hydroponic station." + }, + "PositionX": { + "prefix": "PositionX", + "body": [ + "PositionX" + ], + "description": "the X coordinate of the current position" + }, + "PositionY": { + "prefix": "PositionY", + "body": [ + "PositionY" + ], + "description": "the y-coordinate of the current position" + }, + "PositionZ": { + "prefix": "PositionZ", + "body": [ + "PositionZ" + ], + "description": "the Z coordinate of the current position" + }, + "Power": { + "prefix": "Power", + "body": [ + "Power" + ], + "description": "0 - no power or off, 1 - power on" + }, + "PowerActual": { + "prefix": "PowerActual", + "body": [ + "PowerActual" + ], + "description": "Total electricity consumption by all devices in the network, W." + }, + "PowerGeneration": { + "prefix": "PowerGeneration", + "body": [ + "PowerGeneration" + ], + "description": "Generator's current electricity production, W." + }, + "PowerPotential": { + "prefix": "PowerPotential", + "body": [ + "PowerPotential" + ], + "description": "Maximum available power of the network, W." + }, + "PowerRequired": { + "prefix": "PowerRequired", + "body": [ + "PowerRequired" + ], + "description": "The total demand for electricity of all devices in the network, W." + }, + "PressureExternal": { + "prefix": "PressureExternal", + "body": [ + "PressureExternal" + ], + "description": "atmospheric pressure in the environment, kPa" + }, + "PressureInternal": { + "prefix": "PressureInternal", + "body": [ + "PressureInternal" + ], + "description": "Pressure in the pipeline at which the active ventilation stops, kPa. Installed but not used." + }, + "Ratio": { + "prefix": "Ratio", + "body": [ + "Ratio" + ], + "description": "For batteries - Charge / Maximum ratio.
    For other devices - Setting / Maximum ratio." + }, + "RatioCarbonDioxide": { + "prefix": "RatioCarbonDioxide", + "body": [ + "RatioCarbonDioxide" + ], + "description": "fraction of carbon dioxide" + }, + "RatioNitrogen": { + "prefix": "RatioNitrogen", + "body": [ + "RatioNitrogen" + ], + "description": "proportion of nitrogen" + }, + "RatioNitrousOxide": { + "prefix": "RatioNitrousOxide", + "body": [ + "RatioNitrousOxide" + ], + "description": "proportion of nitrous oxide" + }, + "RatioOxygen": { + "prefix": "RatioOxygen", + "body": [ + "RatioOxygen" + ], + "description": "oxygen fraction" + }, + "RatioPollutant": { + "prefix": "RatioPollutant", + "body": [ + "RatioPollutant" + ], + "description": "proportion of toxins" + }, + "RatioVolatiles": { + "prefix": "RatioVolatiles", + "body": [ + "RatioVolatiles" + ], + "description": "fraction of volatile gases" + }, + "RatioWater": { + "prefix": "RatioWater", + "body": [ + "RatioWater" + ], + "description": "fraction of water vapor" + }, + "Reagents": { + "prefix": "Reagents", + "body": [ + "Reagents" + ], + "description": "total weight of ingredients in grams" + }, + "RecipeHash": { + "prefix": "RecipeHash", + "body": [ + "RecipeHash" + ], + "description": "hash of the selected recipe" + }, + "RequiredPower": { + "prefix": "RequiredPower", + "body": [ + "RequiredPower" + ], + "description": "Energy required to operate the device, W." + }, + "Setting": { + "prefix": "Setting", + "body": [ + "Setting" + ], + "description": "The current value of some parameter of the equipment. The type and possible values ​​depend on the equipment." + }, + "SolarAngle": { + "prefix": "SolarAngle", + "body": [ + "SolarAngle" + ], + "description": "angle to the sun in degrees" + }, + "TargetX": { + "prefix": "TargetX", + "body": [ + "TargetX" + ], + "description": "target X coordinate" + }, + "TargetY": { + "prefix": "TargetY", + "body": [ + "TargetY" + ], + "description": "target Y coordinate" + }, + "TargetZ": { + "prefix": "TargetZ", + "body": [ + "TargetZ" + ], + "description": "target Z coordinate" + }, + "TemperatureExternal": { + "prefix": "TemperatureExternal", + "body": [ + "TemperatureExternal" + ], + "description": "temperature of the outer atmosphere, K" + }, + "TemperatureSetting": { + "prefix": "TemperatureSetting", + "body": [ + "TemperatureSetting" + ], + "description": "The set temperature inside a durable spacesuit, K." + }, + "TotalMoles": { + "prefix": "TotalMoles", + "body": [ + "TotalMoles" + ], + "description": "The total amount of gas inside the pipeline, mol." + }, + "VelocityMagnitude": { + "prefix": "VelocityMagnitude", + "body": [ + "VelocityMagnitude" + ], + "description": "bot movement speed module" + }, + "VelocityRelativeX": { + "prefix": "VelocityRelativeX", + "body": [ + "VelocityRelativeX" + ], + "description": "speed of movement along the X coordinate" + }, + "VelocityRelativeY": { + "prefix": "VelocityRelativeY", + "body": [ + "VelocityRelativeY" + ], + "description": "speed of movement along the Y coordinate" + }, + "VelocityRelativeZ": { + "prefix": "VelocityRelativeZ", + "body": [ + "VelocityRelativeZ" + ], + "description": "speed of movement along the Z coordinate" + }, + "Vertical": { + "prefix": "Vertical", + "body": [ + "Vertical" + ], + "description": "angle to the sun in degrees" + }, + "Volume": { + "prefix": "Volume", + "body": [ + "Volume" + ], + "description": "Volume" + }, + "ChargeRatio": { + "prefix": "ChargeRatio", + "body": [ + "ChargeRatio" + ], + "description": "Battery charge level in the slot." + }, + "Efficiency": { + "prefix": "Efficiency", + "body": [ + "Efficiency" + ], + "description": "Plant growth efficiency in an automatic hydroponic station. -1 if there is no plant." + }, + "Growth": { + "prefix": "Growth", + "body": [ + "Growth" + ], + "description": "Plant growth stage in an automatic hydroponic station. -1 if there is no plant." + }, + "Health": { + "prefix": "Health", + "body": [ + "Health" + ], + "description": "Plant health in an automatic hydroponic station. 0 - dead plant, 1 - completely healthy, -1 - no plant." + }, + "Mature": { + "prefix": "Mature", + "body": [ + "Mature" + ], + "description": "The readiness of the plant in the automatic hydroponic station for harvesting. -1 if there is no plant." + }, + "OccupantHash": { + "prefix": "OccupantHash", + "body": [ + "OccupantHash" + ], + "description": "hash of the object in the slot" + }, + "Occupied": { + "prefix": "Occupied", + "body": [ + "Occupied" + ], + "description": "0 - slot free, 1 - busy" + }, + "PressureAir": { + "prefix": "PressureAir", + "body": [ + "PressureAir" + ], + "description": "Pressure in the breathing gas cylinder of a spacesuit installed in a rack, kPa." + }, + "PressureWaste": { + "prefix": "PressureWaste", + "body": [ + "PressureWaste" + ], + "description": "Pressure in the tank with the spent mixture of the spacesuit installed in the rack, kPa." + }, + "PrefabHash": { + "prefix": "PrefabHash", + "body": [ + "PrefabHash" + ], + "description": "hash of the Prefab object" + }, + "Pressure": { + "prefix": "Pressure", + "body": [ + "Pressure" + ], + "description": "pressure, kPa" + }, + "Quantity": { + "prefix": "Quantity", + "body": [ + "Quantity" + ], + "description": "weight / number of items" + }, + "Temperature": { + "prefix": "Temperature", + "body": [ + "Temperature" + ], + "description": "temperature, K" + }, + "lb": { + "prefix": "lb", + "body": [ + "lb" + ], + "description": "Batch read to op1 from all devices with op2 hash of op3 in op4 mode" + }, + "sb": { + "prefix": "sb", + "body": [ + "sb" + ], + "description": "Batch write to all devices with hash op1 to op2 of op3" + }, + "if": { + "prefix": "if", + "body": [ + "if $1", + "\t$2", + "end" + ], + "description": "if" + }, + "function": { + "prefix": "function", + "body": [ + "function $1", + "\t$2", + "end" + ], + "description": "if" + }, + "while": { + "prefix": "while", + "body": [ + "while $1", + "\t$2", + "end" + ], + "description": "if" + }, + "break": { + "prefix": "break", + "body": [ + "break", + "$1" + ], + "description": "break" + }, + "var": { + "prefix": "var", + "body": [ + "var $1 $2" + ], + "description": "var" + }, + "const": { + "prefix": "const", + "body": [ + "const $1 $2" + ], + "description": "const" + }, + "switch": { + "prefix": "switch", + "body": [ + "switch $1", + "\tcase $2", + "\t\t$3", + "\tend", + "end" + ], + "description": "switch" + }, + "foreach": { + "prefix": "foreach", + "body": [ + "foreach $1", + "$2", + "end" + ], + "description": "foreach" + } +} diff --git a/syntaxes/ic10.tmLanguage.json b/syntaxes/ic10.tmLanguage.json new file mode 100644 index 0000000..5585c38 --- /dev/null +++ b/syntaxes/ic10.tmLanguage.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "ic10", + "foldingStartMarker": "^#\\s{0,1}Section:\\s{0,}\\w+$", + "foldingStopMarker": "^#\\s{0,1}endSection$", + "patterns": [ + { + "include": "#goto" + }, + { + "include": "#keywords" + }, + { + "include": "#entity" + }, + { + "include": "#variable" + }, + { + "include": "#constant" + }, + { + "include": "#comments" + }, + { + "include": "#operator" + } + ], + "repository": { + "GOTO": { + "patterns": [ + { + "name": "support.function", + "match": "^.+(?=:\\D)" + }, + { + "name": "support.function", + "match": "(?!j)(?!\\s).+" + } + ] + }, + "keywords": { + "patterns": [ + { + "match": "\\b(ChargeRatio|Class|Damage|Efficiency|Growth|Health|Mature|MaxQuantity|OccupantHash|Occupied|Quantity|Seeding|SortingClass|x|Activate|AirRelease|Bpm|Charge|ClearMemory|CollectableGoods|Color|Combustion|CombustionInput|CombustionLimiter|CombustionOutput|CombustionOutput2|CompletionRatio|ElevatorLevel|ElevatorSpeed|Error|ExportCount|Filtration|Flush|ForceWrite|Fuel|Harvest|HASH(\"name\")|Horizontal|Idle|ImportCount|InterrogationProgress|LineNumber|Lock|Maximum|MineablesInQueue|MineablesInVicinity|Minimum|MinimumWattsToContact|Mode|NextWeatherEventTime|On|Open|Output|Plant|PositionX|PositionY|PositionZ|Power|PowerActual|PowerGeneration|PowerPotential|PowerRequired|PrefabHash|Pressure|PressureAir|PressureExternal|PressureInput|PressureInternal|PressureOutput|PressureOutput2|PressureSetting|PressureWaste|Ratio|RatioCarbonDioxide|RatioCarbonDioxideInput|RatioCarbonDioxideOutput|RatioCarbonDioxideOutput2|RatioLiquidCarbonDioxide|RatioLiquidNitrogen|RatioLiquidNitrousOxide|RatioLiquidOxygen|RatioLiquidPollutant|RatioLiquidVolatiles|RatioNitrogen|RatioNitrogenInput|RatioNitrogenOutput|RatioNitrogenOutput2|RatioNitrousOxide|RatioNitrousOxideInput|RatioNitrousOxideOutput|RatioNitrousOxideOutput2|RatioOxygen|RatioOxygenInput|RatioOxygenOutput|RatioOxygenOutput2|RatioPollutant|RatioPollutantInput|RatioPollutantOutput|RatioPollutantOutput2|RatioSteam|RatioVolatiles|RatioVolatilesInput|RatioVolatilesOutput|RatioVolatilesOutput2|RatioWater|RatioWaterInput|RatioWaterOutput|RatioWaterOutput2|Reagents|RecipeHash|RequestHash|RequiredPower|ReturnFuelCost|Rpm|Setting|SettingOutput|SignalID|SignalStrength|SizeX|SizeZ|SolarAngle|SolarIrradiance|SoundAlert|Stress|TargetPadIndex|TargetX|TargetY|TargetZ|Temperature|TemperatureExternal|TemperatureInput|TemperatureOutput|TemperatureOutput2|TemperatureSetting|Throttle|Time|TotalMoles|TotalMolesInput|TotalMolesOutput|TotalMolesOutput2|VelocityMagnitude|VelocityRelativeX|VelocityRelativeY|VelocityRelativeZ|Vertical|Volume|VolumeOfLiquid|WattsReachingContact|Contents|deg2rad|nan|ninf|pi|pinf|rad2deg|Recipe|Required|Channel0|Channel1|Channel2|Channel3|Channel4|Channel5|Channel6|Channel7|Average|Sum)\\b", + "name": "keyword.operator.ic10" + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.ic10" + } + }, + "end": "$", + "name": "comment.line.number-sign.ic10" + } + ] + }, + "constant": { + "patterns": [ + { + "name": "constant.numeric.ic10", + "match": "\\b[\\d\\.]+\\b" + } + ] + }, + "entity": { + "patterns": [ + { + "name": "entity.name.function.ic10", + "match": "\\b(abs|acos|add|alias|and|asin|atan|atan2|bap|bapal|bapz|bapzal|bdns|bdnsal|bdse|bdseal|beq|beqal|beqz|beqzal|bge|bgeal|bgez|bgezal|bgt|bgtal|bgtz|bgtzal|ble|bleal|blez|blezal|blt|bltal|bltz|bltzal|bna|bnaal|bnan|bnaz|bnazal|bne|bneal|bnez|bnezal|brap|brapz|brdns|brdse|breq|breqz|brge|brgez|brgt|brgtz|brle|brlez|brlt|brltz|brna|brnan|brnaz|brne|brnez|ceil|cos|debug|define|div|exp|floor|hcf|j|jal|jr|l|lb|lbn|lbns|lbs|log|lr|ls|max|min|mod|move|mul|nor|or|peek|pop|push|rand|return|round|s|sap|sapz|sb|sbn|sbs|sdns|sdse|select|seq|seqz|sge|sgez|sgt|sgtz|sin|sla|sle|sleep|slez|sll|slt|sltz|sna|snan|snanz|snaz|sne|snez|sqrt|sra|srl|ss|stack|sub|tan|trunc|xor|yield)\\b" + }, + { + "name": "entity.name.tag.ic10", + "match": "(^\\s{0,}j \\w+$)|(^\\s{0,}\\w+:$)" + } + ] + }, + "variable": { + "patterns": [ + { + "name": "variable.parameter.icX", + "match": "\\b(([rd]{1,}(r(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|a)))|(r(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|a))|(d(0|1|2|3|4|5|b)))\\b" + }, + { + "name": "variable.language.icX", + "match": "\\bsp\\b" + } + ] + } + }, + "scopeName": "source.ic10" +} \ No newline at end of file diff --git a/syntaxes/icB.tmLanguage.json b/syntaxes/icB.tmLanguage.json new file mode 100644 index 0000000..bd6538f --- /dev/null +++ b/syntaxes/icB.tmLanguage.json @@ -0,0 +1,251 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "icB", + "patterns": [ + { + "include": "#GOTO" + }, + { + "include": "#ic10" + }, + { + "include": "#operators" + }, + { + "include": "#mathOpertors" + }, + { + "include": "#if" + }, + { + "include": "#variable" + }, + { + "include": "#env" + } + ], + "repository": { + "env":{ + "patterns": [ + { + "begin": "([Ii][Cc]\\.device\\[)", + "end": "\\]", + "beginCaptures": { + "1":{ + "name":"variable.language.icB" + } + } + } + ] + }, + "variableName":{ + "match": "[a-zA-Z]\\w+\\s", + "name":"variable.parameter.icB" + }, + "ConstName":{ + "match": "(@[a-zA-Z]\\w+)", + "name":"constant.language.icB" + }, + "number":{ + "match": "[-]{0,1}[d]{0,1}\\d+[cC]{0,1}", + "name":"constant.numeric.icB" + }, + "hashString": { + "name": "string.quoted.double.icB", + "begin": "[\"]", + "end": "[\"]" + }, + "variable": { + "patterns": [ + { + "match": "(var|alias|const)(.+)(=)(.+)", + "captures": { + "1": { + "name":"keyword.control.icB" + }, + "2": { + "patterns": [ + { + "include": "#variableName" + }, + { + "include": "#ConstName" + } + ] + }, + "3": { + "name":"keyword.operator.new.icB" + }, + "4": { + "patterns": [ + { + "include": "#ConstName" + }, + { + "include": "#hashString" + }, + { + "include": "#number" + }, + { + "include": "#variableName" + }, + { + "include": "#operators" + }, + { + "include": "#mathOpertors" + } + ] + } + } + }, + { + "match": "(.+)(=)(.+)", + "captures": { + "1": { + "patterns": [ + { + "include": "#variableName" + } + ] + }, + "2": { + "name":"keyword.operator.new.icB" + }, + "3": { + "patterns": [ + { + "include": "#hashString" + }, + { + "include": "#hashString" + }, + { + "include": "#number" + }, + { + "include": "#variableName" + } + ] + } + } + } + + ] + + }, + "dotOperator":{ + "patterns": [ + + ] + }, + "GOTO": { + "patterns": [ + { + "match": "([a-zA-Z]\\w+)(:)", + "captures": { + "0": { + "name": "variable.language.icB" + } + } + }, + { + "name": "support.function", + "match": "\\b([gG][oO][tT][oO]) ([a-zA-Z]\\w+)\\b", + "captures": { + "1": { + "name": "keyword.control.icB" + }, + "2": { + "name": "variable.language.icB" + } + } + }, + { + "name": "support.function", + "match": "\\b([gG][oO][tT][oO]) (\\d+)\\b", + "captures": { + "1": { + "name": "keyword.control.icB" + }, + "2": { + "name": "variable.parameter.icB" + } + } + } + ] + }, + "ic10": { + "patterns": [ + { + "match": "\\b(ChargeRatio|Class|Damage|Efficiency|Growth|Health|Mature|MaxQuantity|OccupantHash|Occupied|Quantity|Seeding|SortingClass|Activate|AirRelease|Bpm|Charge|ClearMemory|CollectableGoods|Color|Combustion|CombustionInput|CombustionLimiter|CombustionOutput|CombustionOutput2|CompletionRatio|ElevatorLevel|ElevatorSpeed|Error|ExportCount|Filtration|Flush|ForceWrite|Fuel|Harvest|HASH(\"name\")|Horizontal|Idle|ImportCount|InterrogationProgress|LineNumber|Lock|Maximum|MineablesInQueue|MineablesInVicinity|Minimum|MinimumWattsToContact|Mode|NextWeatherEventTime|On|Open|Output|Plant|PositionX|PositionY|PositionZ|Power|PowerActual|PowerGeneration|PowerPotential|PowerRequired|PrefabHash|Pressure|PressureAir|PressureExternal|PressureInput|PressureInternal|PressureOutput|PressureOutput2|PressureSetting|PressureWaste|Ratio|RatioCarbonDioxide|RatioCarbonDioxideInput|RatioCarbonDioxideOutput|RatioCarbonDioxideOutput2|RatioLiquidCarbonDioxide|RatioLiquidNitrogen|RatioLiquidNitrousOxide|RatioLiquidOxygen|RatioLiquidPollutant|RatioLiquidVolatiles|RatioNitrogen|RatioNitrogenInput|RatioNitrogenOutput|RatioNitrogenOutput2|RatioNitrousOxide|RatioNitrousOxideInput|RatioNitrousOxideOutput|RatioNitrousOxideOutput2|RatioOxygen|RatioOxygenInput|RatioOxygenOutput|RatioOxygenOutput2|RatioPollutant|RatioPollutantInput|RatioPollutantOutput|RatioPollutantOutput2|RatioSteam|RatioVolatiles|RatioVolatilesInput|RatioVolatilesOutput|RatioVolatilesOutput2|RatioWater|RatioWaterInput|RatioWaterOutput|RatioWaterOutput2|Reagents|RecipeHash|RequestHash|RequiredPower|ReturnFuelCost|Rpm|Setting|SettingOutput|SignalID|SignalStrength|SizeX|SizeZ|SolarAngle|SolarIrradiance|SoundAlert|Stress|TargetPadIndex|TargetX|TargetY|TargetZ|Temperature|TemperatureExternal|TemperatureInput|TemperatureOutput|TemperatureOutput2|TemperatureSetting|Throttle|Time|TotalMoles|TotalMolesInput|TotalMolesOutput|TotalMolesOutput2|VelocityMagnitude|VelocityRelativeX|VelocityRelativeY|VelocityRelativeZ|Vertical|Volume|VolumeOfLiquid|WattsReachingContact|Contents|deg2rad|nan|ninf|pi|pinf|rad2deg|Recipe|Required|Channel0|Channel1|Channel2|Channel3|Channel4|Channel5|Channel6|Channel7|Average|Sum)\\b", + "name": "entity.name.type.ic10" + } + ] + }, + "operators": { + "patterns": [ + { + "match": "(={1,2}|!=|>=|<=|>|<|&{2}|\\|{2})", + "name": "keyword.control.icB" + } + ] + }, + "mathOpertors": { + "patterns": [ + { + "match": "(\\+|\\-|\\*|\\/)", + "name": "keyword.control.icB" + } + ] + }, + "if": { + "patterns": [ + { + "begin": "([iI][fF])", + "beginCaptures": { + "1": { + "name": "keyword.control.icB" + } + }, + "end": "([tT][hH][eE][nN])", + "endCaptures": { + "1": { + "name": "keyword.control.icB" + } + }, + "patterns": [ + { + "include": "#operators" + }, + { + "include": "#mathOpertors" + }, + { + "include": "#hashString" + }, + { + "include": "#hashString" + }, + { + "include": "#number" + }, + { + "include": "#variableName" + } + ] + }, + { + "match": "([eE][lL][sS][eE])", + "name": "keyword.control.icB" + }, + { + "match": "([eE][nN][dD][iI][fF])", + "name": "keyword.control.icB" + } + ] + } + }, + "scopeName": "source.icB" +} \ No newline at end of file diff --git a/syntaxes/icX.tmLanguage.json b/syntaxes/icX.tmLanguage.json new file mode 100644 index 0000000..34ec80d --- /dev/null +++ b/syntaxes/icX.tmLanguage.json @@ -0,0 +1,190 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "icX", + "foldingStartMarker": "^#\\s{0,1}Section:\\s{0,}\\w+$", + "foldingStopMarker": "^#\\s{0,1}endSection$", + "patterns": [ + { + "include": "#goto" + }, + { + "include": "#keywords" + }, + { + "include": "#entity" + }, + { + "include": "#variable" + }, + { + "include": "#constant" + }, + { + "include": "#comments" + }, + { + "include": "#operator" + } + ], + "repository": { + "GOTO": { + "patterns": [ + { + "name": "support.function", + "match": "^.+(?=:\\D)" + }, + { + "name": "support.function", + "match": "(?!j)(?!\\s).+" + } + ] + }, + "keywords": { + "patterns": [ + { + "match": "\\b(ChargeRatio|Class|Damage|Efficiency|Growth|Health|Mature|MaxQuantity|OccupantHash|Occupied|Quantity|Seeding|SortingClass|x|Activate|AirRelease|Bpm|Charge|ClearMemory|CollectableGoods|Color|Combustion|CombustionInput|CombustionLimiter|CombustionOutput|CombustionOutput2|CompletionRatio|ElevatorLevel|ElevatorSpeed|Error|ExportCount|Filtration|Flush|ForceWrite|Fuel|Harvest|HASH(\"name\")|Horizontal|Idle|ImportCount|InterrogationProgress|LineNumber|Lock|Maximum|MineablesInQueue|MineablesInVicinity|Minimum|MinimumWattsToContact|Mode|NextWeatherEventTime|On|Open|Output|Plant|PositionX|PositionY|PositionZ|Power|PowerActual|PowerGeneration|PowerPotential|PowerRequired|PrefabHash|Pressure|PressureAir|PressureExternal|PressureInput|PressureInternal|PressureOutput|PressureOutput2|PressureSetting|PressureWaste|Ratio|RatioCarbonDioxide|RatioCarbonDioxideInput|RatioCarbonDioxideOutput|RatioCarbonDioxideOutput2|RatioLiquidCarbonDioxide|RatioLiquidNitrogen|RatioLiquidNitrousOxide|RatioLiquidOxygen|RatioLiquidPollutant|RatioLiquidVolatiles|RatioNitrogen|RatioNitrogenInput|RatioNitrogenOutput|RatioNitrogenOutput2|RatioNitrousOxide|RatioNitrousOxideInput|RatioNitrousOxideOutput|RatioNitrousOxideOutput2|RatioOxygen|RatioOxygenInput|RatioOxygenOutput|RatioOxygenOutput2|RatioPollutant|RatioPollutantInput|RatioPollutantOutput|RatioPollutantOutput2|RatioSteam|RatioVolatiles|RatioVolatilesInput|RatioVolatilesOutput|RatioVolatilesOutput2|RatioWater|RatioWaterInput|RatioWaterOutput|RatioWaterOutput2|Reagents|RecipeHash|RequestHash|RequiredPower|ReturnFuelCost|Rpm|Setting|SettingOutput|SignalID|SignalStrength|SizeX|SizeZ|SolarAngle|SolarIrradiance|SoundAlert|Stress|TargetPadIndex|TargetX|TargetY|TargetZ|Temperature|TemperatureExternal|TemperatureInput|TemperatureOutput|TemperatureOutput2|TemperatureSetting|Throttle|Time|TotalMoles|TotalMolesInput|TotalMolesOutput|TotalMolesOutput2|VelocityMagnitude|VelocityRelativeX|VelocityRelativeY|VelocityRelativeZ|Vertical|Volume|VolumeOfLiquid|WattsReachingContact|Contents|deg2rad|nan|ninf|pi|pinf|rad2deg|Recipe|Required|Channel0|Channel1|Channel2|Channel3|Channel4|Channel5|Channel6|Channel7|Average|Sum)\\b", + "name": "keyword.other.icX" + }, + { + "match": "\\b(if|while|else|end|switch|case|break|foreach|each|for)\\b", + "name": "keyword.control.icX" + }, + { + "match": "([~!+-=<>&|*]|dse)", + "name": "keyword.operator.icX" + }, + { + "match": "(var) ([\\d\\w]+)\\s*(=)", + "captures": { + "1": { + "name": "keyword.control.icX" + }, + "2": { + "name": "variable.parameter.icX", + "patterns": [ + { + "include": "#variable" + } + ] + }, + "3": { + "name": "keyword.operator.icX" + } + } + }, + { + "match": "(const) ([\\d\\w]+)\\s*(=)", + "captures": { + "1": { + "name": "keyword.control.icX" + }, + "2": { + "name": "variable.parameter.icX", + "patterns": [ + { + "include": "#constant" + } + ] + }, + "3": { + "name": "keyword.operator.icX" + } + } + }, + { + "match": "(var) ([\\d\\w]+)", + "captures": { + "1": { + "name": "keyword.control.untitled" + }, + "2": { + "name": "variable.parameter.icX", + "patterns": [ + { + "include": "#variable" + } + ] + } + } + }, + { + "match": "\\b(function) ([\\d\\w]+)", + "name": "keyword.operator.icX", + "captures": { + "1": { + "name": "keyword.control.untitled" + }, + "2": { + "name": "entity.name.function.icX" + } + } + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.icX" + } + }, + "end": "$", + "name": "comment.line.number-sign.icX" + }, + { + "begin": "use", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.icX" + } + }, + "end": "$", + "name": "comment.line.number-sign.icX" + } + ] + }, + "constant": { + "patterns": [ + { + "name": "constant.numeric.icX", + "match": "\\b[\\d\\.]+\\b" + } + ] + }, + "entity": { + "patterns": [ + { + "name": "entity.name.function.icX", + "match": "\\b(abs|acos|add|alias|and|asin|atan|atan2|bap|bapal|bapz|bapzal|bdns|bdnsal|bdse|bdseal|beq|beqal|beqz|beqzal|bge|bgeal|bgez|bgezal|bgt|bgtal|bgtz|bgtzal|ble|bleal|blez|blezal|blt|bltal|bltz|bltzal|bna|bnaal|bnan|bnaz|bnazal|bne|bneal|bnez|bnezal|brap|brapz|brdns|brdse|breq|breqz|brge|brgez|brgt|brgtz|brle|brlez|brlt|brltz|brna|brnan|brnaz|brne|brnez|ceil|cos|debug|define|div|exp|floor|hcf|j|jal|jr|l|lb|lbn|lbns|lbs|log|lr|ls|max|min|mod|move|mul|nor|or|peek|pop|push|rand|return|round|s|sap|sapz|sb|sbn|sbs|sdns|sdse|select|seq|seqz|sge|sgez|sgt|sgtz|sin|sla|sle|sleep|slez|sll|slt|sltz|sna|snan|snanz|snaz|sne|snez|sqrt|sra|srl|ss|stack|sub|tan|trunc|xor|yield)\\b" + }, + { + "name": "entity.name.function.icX", + "match": "([\\d\\w]+)\\(\\)" + }, + { + "name": "entity.name.tag.icX", + "match": "(^\\s{0,}j \\w+$)|(^\\s{0,}\\w+:$)" + }, + { + "name": "entity.name.function.icX", + "match": "\\b(debug|stack)\\b" + } + ] + }, + "variable": { + "patterns": [ + { + "name": "variable.parameter.icX", + "match": "\\b(([rd]{1,}(r(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|a)))|(r(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|a))|(d(0|1|2|3|4|5|b)))\\b" + }, + { + "name": "variable.language.icX", + "match": "\\bsp\\b" + } + ] + } + }, + "scopeName": "source.icX" +} \ No newline at end of file diff --git a/tools/ajax.js b/tools/ajax.js new file mode 100644 index 0000000..7a49589 --- /dev/null +++ b/tools/ajax.js @@ -0,0 +1,19 @@ +const request = require("sync-request") +const axios = require("axios") + +async function getData() { + + const Languages = { + "en": await getLang("en"), + "ru": await getLang("ru"), + } + + async function getLang(lang = "en") { + const r = await axios.get("https://icx.traineratwot.site/GetIc10?lang=" + lang) + return r.data + } + + return {Languages} +} + +module.exports = getData diff --git a/tools/data.js b/tools/data.js new file mode 100644 index 0000000..c3515ce --- /dev/null +++ b/tools/data.js @@ -0,0 +1,437 @@ +const request = require("sync-request") +const fs = require("fs") +const path = require("path") +const md5 = require("md5") + +class cache { + constructor() { + if (!fs.existsSync(path.join(__dirname, "cache"))) { + fs.mkdirSync(path.join(__dirname, "cache")) + } + } + + + static getCache(str, source, target) { + const key = md5(str + source + target) + try { + return fs.readFileSync(path.join(__dirname, "cache", key)) + } catch (err) { + return null + } + } + + + static setCache(str, source, target, value) { + const key = md5(str + source + target) + fs.writeFileSync(path.join(__dirname, "cache", key), value) + return value + } + + + static call(str, source, target, callback) { + let res = cache.getCache(str, source, target) + if (!res) { + return cache.setCache(str, source, target, callback(str, source, target)) + } + return res + } +} + +new cache() + +function getData() { + const IC10Data = { + translate: function (str, source = "ru", target = "en") { + console.time("translate " + str) + cache.call(str, source, target, (str, source, target) => { + const url = encodeURI("http://traineratwot.aytour.ru/translate?string=" + str + "&source=" + source + "&target=" + target) + const res = request("GET", url) + return res.getBody("utf8") + }) + console.timeEnd("translate " + str) + }, + Languages: {}, + add: function (lang = null, name = null, type = null, preview = null, text = null, op1 = null, op2 = null, op3 = null, op4 = null) { + this.__add(lang, name, type, preview, text, op1, op2, op3, op4) + return this + }, + __add: function (lang = null, name = null, type = null, preview = null, text = null, op1 = null, op2 = null, op3 = null, op4 = null) { + if (lang) { + lang = lang.trim() ?? null + } + if (name) { + name = name.trim() ?? null + } + if (type) { + type = type.trim() ?? null + } + if (preview) { + preview = preview.trim() ?? null + } + if (text) { + text = text.trim() ?? null + } + if (op1) { + op1 = op1.trim() ?? null + } + if (op2) { + op2 = op2.trim() ?? null + } + if (op3) { + op3 = op3.trim() ?? null + } + if (op4) { + op4 = op4.trim() ?? null + } + + if (!(this.Languages[lang] instanceof Object)) { + this.Languages[lang] = {} + } + if (name in this.Languages[lang]) { + return this + } + if (!(this.Languages["en"] instanceof Object)) { + this.Languages["en"] = {} + } + if (!(this.Languages["zh"] instanceof Object)) { + this.Languages["zh"] = {} + } + this.Languages[lang][name] = { + type: type, + op1: op1 ? op1 : null, + op2: op2 ? op2 : null, + op3: op3 ? op3 : null, + op4: op4 ? op4 : null, + description: { + "preview": preview, + "text": text, + }, + } + this.Languages["en"][name] = { + type: type, + op1: op1 ? op1 : null, + op2: op2 ? op2 : null, + op3: op3 ? op3 : null, + op4: op4 ? op4 : null, + description: { + "preview": this.translate(preview), + "text": this.translate(text), + }, + } + this.Languages["zh"][name] = { + type: type, + op1: op1 ? op1 : null, + op2: op2 ? op2 : null, + op3: op3 ? op3 : null, + op4: op4 ? op4 : null, + description: { + "preview": this.translate(preview, "ru", "zh"), + "text": this.translate(text, "ru", "zh"), + }, + } + return this + }, + } + IC10Data + .add("ru ", "abs ", "Function ", "op1 := |op2| ", "Абсолютная величина числа ", "R/N ", "R/N/C ", null) + .add("ru ", "acos ", "Function ", "op1 := acos(op2) ", "Арккосинус* ", "R/N ", "R/N/C ", null) + .add("ru ", "add ", "Function ", "op1 := op2 + op3 ", "Сумма ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "alias ", "Function ", "op2 => op1 ", "Задат псевдоним для регистра или канала данных ", "N ", "R/D ", null) + .add("ru ", "and ", "Function ", "op1 := op2 op3 ", "Логическое И, единица, если и op2 и op3 истинны, ноль в противном случае ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "asin ", "Function ", "op1 := asin(op2) ", "Арксинус* ", "R/N ", "R/N/C ", null) + .add("ru ", "atan ", "Function ", "op1 := atan(op2) ", "Арктангенс* ", "R/N ", "R/N/C ", null) + .add("ru ", "atan2", "Function ", "op1 := atan2(op2,op3) ", "Арктангенс с 2 аргументами", "R/N ", "R/N/C", "R/N/C", null) + .add("ru ", "bap ", "Function ", "Переход на op4, если op1 op2 с точностью op3 ", null, "R/N/C ", "R/N/C ", "R/N/C ", "R/N/A/T") + .add("ru ", "bapal ", "Function ", "Переход на op4, если op1 op2 с точностью op3 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/C ", "R/N/C ", "R/N/A/T") + .add("ru ", "bapz ", "Function ", "Переход на op3, если op1 0 с точностью op2 ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bapzal ", "Function ", "Переход на op3, если op1 0 с точностью op2 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bdns ", "Function ", "Переход на op2, если канал op1 не настроен ", null, "D/N ", "R/N/A/T ", null) + .add("ru ", "bdnsal ", "Function ", "Переход на op2, если канал op1 не настроен с записью адреса следующей строки в ra ", null, "D/N ", "R/N/A/T ", null) + .add("ru ", "bdse ", "Function ", "Переход на op2, если канал op1 настроен ", null, "D/N ", "R/N/A/T ", null) + .add("ru ", "bdseal ", "Function ", "Переход на op2, если канал op1 настроен с записью адреса следующей строки в ra ", null, "D/N ", "R/N/A/T ", null) + .add("ru ", "beq ", "Function ", "Переход на op3, если op1 = op2 ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "beqal ", "Function ", "Переход на op3, если op1 = op2 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "beqz ", "Function ", "Переход на op2, если op1 = 0 ", null, "R/N/C ", "R/N/A/T ", null) + .add("ru ", "beqzal ", "Function ", "Переход на op2, если op1 = 0 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bge ", "Function ", "Переход на op3, если op1 >= op2 ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bgeal ", "Function ", "Переход на op3, если op1 >= op2 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bgez ", "Function ", "Переход на op2, если op1 >= 0 ", null, "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bgezal ", "Function ", "Переход на op2, если op1 >= 0 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bgt ", "Function ", "Переход на op3, если op1 > op2 ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bgtal ", "Function ", "Переход на op3, если op1 > op2 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bgtz ", "Function ", "Переход на op2, если op1 > 0 ", null, "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bgtzal ", "Function ", "Переход на op2, если op1 > 0 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/A/T ", null) + .add("ru ", "ble ", "Function ", "Переход на op3, если op1 <= op2 ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bleal ", "Function ", "Переход на op3, если op1 <= op2 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "blez ", "Function ", "Переход на op2, если op1 <= 0 ", null, "R/N/C ", "R/N/A/T ", null) + .add("ru ", "blezal ", "Function ", "Переход на op2, если op1 <= 0 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/A/T ", null) + .add("ru ", "blt ", "Function ", "Переход на op3, если op1 < op2 ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bltal ", "Function ", "Переход на op3, если op1 < op2 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bltz ", "Function ", "Переход на op2, если op1 < 0 ", null, "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bltzal ", "Function ", "Переход на op2, если op1 < 0 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bna ", "Function ", "Переход на op4, если op1 ~= op2 с точностью op3 ", null, "R/N/C ", "R/N/C ", "R/N/C ", "R/N/A/T") + .add("ru ", "bnaal ", "Function ", "Переход на op4, если op1 ~= op2 с точностью op3 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/C ", "R/N/C ", "R/N/A/T") + .add("ru ", "bnaz ", "Function ", "Переход на op3, если op1 ~= 0 с точностью op2 ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bnazal ", "Function ", "Переход на op3, если op1 ~= 0 с точностью op2 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bne ", "Function ", "Переход на op3, если op1 != op2 ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bneal ", "Function ", "Переход на op3, если op1 != op2 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bnez ", "Function ", "Переход на op2, если op1 != 0 ", null, "R/N/C ", "R/N/A/T ", null) + .add("ru ", "bnezal ", "Function ", "Переход на op2, если op1 != 0 с записью адреса следующей строки в ra ", null, "R/N/C ", "R/N/A/T ", null) + .add("ru ", "brap ", "Function ", "Относительный переход на +op4, если op1 op2 с точностью op3 ", null, "R/N/C ", "R/N/C ", "R/N/C ", "R/N/O") + .add("ru ", "brapz ", "Function ", "Относительный переход на +op3, если op1 0 с точностью op2 ", null, "R/N/C ", "R/N/C ", "R/N/O ", null) + .add("ru ", "brdns ", "Function ", "Относительный переход на +op2, если канал op1 не настроен ", null, "D/N ", "R/N/O ", null) + .add("ru ", "brdse ", "Function ", "Относительный переход на +op2, если канал op1 настроен ", null, "D/N ", "R/N/O ", null) + .add("ru ", "breq ", "Function ", "Относительный переход на +op3, если op1 = op2 ", null, "R/N/C ", "R/N/C ", "R/N/O ", null) + .add("ru ", "breqz ", "Function ", "Относительный переход на +op2, если op1 = 0 ", null, "R/N/C ", "R/N/O ", null) + .add("ru ", "brge ", "Function ", "Относительный переход на +op3, если op1 >= op2 ", null, "R/N/C ", "R/N/C ", "R/N/O ", null) + .add("ru ", "brgez ", "Function ", "Относительный переход на +op2, если op1 >= 0 ", null, "R/N/C ", "R/N/O ", null) + .add("ru ", "brgt ", "Function ", "Относительный переход на +op3, если op1 > op2 ", null, "R/N/C ", "R/N/C ", "R/N/O ", null) + .add("ru ", "brgtz ", "Function ", "Относительный переход на +op2, если op1 > 0 ", null, "R/N/C ", "R/N/O ", null) + .add("ru ", "brle ", "Function ", "Относительный переход на +op3, если op1 <= op2 ", null, "R/N/C ", "R/N/C ", "R/N/O ", null) + .add("ru ", "brlez ", "Function ", "Относительный переход на +op2, если op1 <= 0 ", null, "R/N/C ", "R/N/O ", null) + .add("ru ", "brlt ", "Function ", "Относительный переход на +op3, если op1 < op2 ", null, "R/N/C ", "R/N/C ", "R/N/O ", null) + .add("ru ", "brltz ", "Function ", "Относительный переход на +op2, если op1 < 0 ", null, "R/N/C ", "R/N/O ", null) + .add("ru ", "brna ", "Function ", "Относительный переход на +op4, если op1 op2 с точностью op3 ", null, "R/N/C ", "R/N/C ", "R/N/C ", "R/N/O") + .add("ru ", "brnaz ", "Function ", "Относительный переход на +op3, если op1 0 с точностью op2 ", null, "R/N/C ", "R/N/C ", "R/N/O ", null) + .add("ru ", "brne ", "Function ", "Относительный переход на +op3, если op1 != op2 ", null, "R/N/C ", "R/N/C ", null) + .add("ru ", "brnez ", "Function ", "Относительный переход на +op2, если op1 != 0 ", null, "R/N/C ", "R/N/O ", null) + .add("ru ", "ceil ", "Function ", "op1 := op2 ", "Округление до ближайшего целого вверх ", "R/N ", "R/N/C ", null) + .add("ru ", "cos ", "Function ", "op1 := cos(op2) ", "Косинус* ", "R/N ", "R/N/C ", null) + .add("ru ", "define ", "Function ", "op2 => op1 ", "Задать имя для константы ", "Cn ", "C ", null) + .add("ru ", "div ", "Function ", "op1 :=op2 / op3 ", "Деление ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "exp ", "Function ", "op1 := eop2 ", "Экспонента ", "R/N ", "R/N/C ", null) + .add("ru ", "floor ", "Function ", "op1 := op2 ", "Округление до ближайшего целого вниз ", "R/N ", "R/N/C ", null) + .add("ru ", "hcf ", "Function ", "Остановить работу и сжечь микропроцессор ", null) + .add("ru ", "j ", "Function ", "Переход на указанную строку ", null, "R/N/A/T") + .add("ru ", "jal ", "Function ", "Переход на op1 с записью адреса следующей строки в ra ", null, "R/N/A/T") + .add("ru ", "jr ", "Function ", "Относительный переход на +op1 ", null, "R/N/O") + .add("ru ", "l ", "Function ", "op1 := op2.op3 ", "Чтение значения параметра op3 из порта op2 ", "R/N ", "D/N ", "P ", null) + .add("ru ", "log ", "Function ", "op1 := ln(op2) ", "Натуральный логарифм ", "R/N ", "R/N/C ", null) + .add("ru ", "lr ", "Function ", "op1 := op2.mode(op3).op4 ", "Чтение значения реагента op4 в режиме op3 из порта op2 ", "R/N ", "D/N ", "R/N/RM ", "RC") + .add("ru ", "ls ", "Function ", "op1 := op2.slot(op3).op4 ", "Чтение значения op4 из слота op3 порта op2 ", "R/N ", "D/N ", "R/N/S ", "P") + .add("ru ", "max ", "Function ", "op1 := max(op2, op3) ", "Максимальное из двух ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "min ", "Function ", "op1 := min(op2, op3) ", "Минимальное из двух ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", + "mod ", + "Function ", + "op1 := op2 mod op3 ", + "Остаток от целочисленного деления op2 на op3 (результат не эквивалентен оператору %, и будет положителен при любых знаках op2 и op3) ", + "R/N ", + "R/N/C ", + "R/N/C ", + null) + .add("ru ", "move ", "Function ", "op1 := op2 ", "Присвоение значения ", "R/N ", "R/N/C ", null) + .add("ru ", "mul ", "Function ", "op1 := op2 * op3 ", "Произведение ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "nor ", "Function ", "op1 := ¬(op2 op3) ", "Инверсное ИЛИ, единица, если и op2 и op3 ложны, ноль в противном случае ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "or ", "Function ", "op1 := op2 op3 ", "Логическое ИЛИ, ноль, если и op2 и op3 ложны, единица в противном случае ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "peek ", "Function ", "op1 := stack[sp-1] ", "Записать в op1 верхнее значение со стека не двигая стек ", "R/N ", null) + .add("ru ", "pop ", "Function ", "op1 := stack[--sp] ", "Снять значение со стека и записать в op1 ", "R/N ", null) + .add("ru ", "push ", "Function ", "stack[sp++] := op1 ", "Положить op1 на стек ", "R/N/C ", null) + .add("ru ", "rand ", "Function ", "op1 := rand(0,1) ", "Случайная величина от 0 до 1 включительно ", "R/N ", null) + .add("ru ", "round ", "Function ", "op1 := [op2] ", "Округление к ближайшему целому ", "R/N ", "R/N/C ", null) + .add("ru ", "s ", "Function ", "op1.op2 := op3 ", "Запись значения в параметр op2 порта op1 ", "D/N ", "P ", "R/N/C ", null) + .add("ru ", "sap ", "Function ", "op1 := (op2 op3) ", "Если op2 op3 с точностью op4, то единица, иначе ноль ", "R/N ", "R/N/C ", "R/N/C ", "R/N/C") + .add("ru ", "sapz ", "Function ", "op1 := (op2 0) ", "Если op2 0 с точностью op3, то единица, иначе ноль ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "sdns ", "Function ", "op1 := ¬isset(op2) ? 1 : 0 ", "Если канал op2 не настроен на то единица, иначе ноль ", "R/N ", "D/N ", null) + .add("ru ", "sdse ", "Function ", "op1 := isset(op2) ? 1 : 0 ", "Если канал op2 настроен на то единица, иначе ноль ", "R/N ", "D/N ", null) + .add("ru ", "select ", "Function ", "op1 := (op2 ? op3 : op4) ", "Тернарный select. Если op2 истинно, то op1 := op3, иначе op1 := op4 ", "R/N ", "R/N/C ", "R/N/C ", "R/N/C") + .add("ru ", "seq ", "Function ", "op1 := (op2 = op3) ", "Если op2 = op3, то единица, иначе ноль ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "seqz ", "Function ", "op1 := (op2 = 0) ", "Если op2 = 0, то единица, иначе ноль ", "R/N ", "R/N/C ", null) + .add("ru ", "sge ", "Function ", "op1 := (op2 op3) ", "Если op2 op3, то единица, иначе ноль ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "sgez ", "Function ", "op1 := (op2 0) ", "Если op2 0, то единица, иначе ноль ", "R/N ", "R/N/C ", null) + .add("ru ", "sgt ", "Function ", "op1 := (op2 > op3) ", "Если op2 > op3, то единица, иначе ноль ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "sgtz ", "Function ", "op1 := (op2 > 0) ", "Если op2 > 0, то единица, иначе ноль ", "R/N ", "R/N/C ", null) + .add("ru ", "sin ", "Function ", "op1 := sin(op2) ", "Синус* ", "R/N ", "R/N/C ", null) + .add("ru ", "sle ", "Function ", "op1 := (op2 op3) ", "Если op2 op3, то единица, иначе ноль ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "sleep ", "Function ", "Приостановка программы на op1 секунд ", "R/N/C ", "R/N/C") + .add("ru ", "slez ", "Function ", "op1 := (op2 0) ", "Если op2 0, то единица, иначе ноль ", "R/N ", "R/N/C ", null) + .add("ru ", "slt ", "Function ", "op1 := (op2 < op3) ", "Если op2 < op3, то единица, иначе ноль ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "sltz ", "Function ", "op1 := (op2 < 0) ", "Если op2 < 0, то единица, иначе ноль ", "R/N ", "R/N/C ", null) + .add("ru ", "sna ", "Function ", "op1 := (op2 op3) ", "Если op2 op3 с точностью op4, то единица, иначе ноль ", "R/N ", "R/N/C ", "R/N/C ", "R/N/C") + .add("ru ", "snaz ", "Function ", "op1 := (op2 0) ", "Если op2 0 с точностью op3, то единица, иначе ноль ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "sne ", "Function ", "op1 := (op2 op3) ", "Если op2 op3, то единица, иначе ноль ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "snez ", "Function ", "op1 := (op2 0) ", "Если op2 0, то единица, иначе ноль ", "R/N ", "R/N/C ", null) + .add("ru ", "sqrt ", "Function ", "op1 := o̅p̅2̅ ", "Квадратный корень ", "R/N ", "R/N/C ", null) + .add("ru ", "sub ", "Function ", "op1 := op2 - op3 ", "Разность ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "tan ", "Function ", "op1 := tan(op2) ", "Тангенс* ", "R/N ", "R/N/C ", null) + .add("ru ", "trunc ", "Function ", "op1 := int(op2) ", "Целая часть числа ", "R/N ", "R/N/C ", null) + .add("ru ", "xor ", "Function ", "op1 := op2 op3 ", "Исключающее ИЛИ, единица, если одно и только одно из op2 и op3 истинно, ноль в противном случае ", "R/N ", "R/N/C ", "R/N/C ", null) + .add("ru ", "yield ", "Function ", "Приостановка программы до следующего тика ", null) + .add("ru ", "lb ", "Function ", "op1 := op2.op3.mode(op4) ", "Пакетное чтение в op1 из всех устройств с хешем op2 параметра op3 в режиме op4 ", "R/N ", "R/N/C/H ", "P ", "BM") + .add("ru ", "sb ", "Function ", "op1.op2 := op3 ", "Пакетная запись во все устройства с хешем op1 в параметр op2 значения op3 ", "R/N/C/H", "P ", "R/N/C ", null) + .add("ru ", "ls ", "Function ", "op1 := op2.slot(op3).op4 ", "Чтение значения op4 из слота op3 порта op2 ", "R/N ", "D/N ", "R/N/S ", "P") + .add("ru ", "stack ", "Function ", "stack 1 2 3 ... ", "Заполняет стак значиниями аргументов ", "R/N/C ", null, null, null) + + .add("ru ", "Activate ", "Device parameter ", "Trigger ", "-1 - остановить , 0 - не работает 1 - работает") + .add("ru ", "Charge ", "Device parameter ", "Float ", "Заряд батареи или аккумулятора, Дж. Уровень генерации электричества солнечной панелью, Вт.") + .add("ru ", "Class ", "Device parameter ", null, "класс объекта в слоте") + .add("ru ", "ClearMemory ", "Device parameter ", "Trigger ", ">=1 - сбрасывает счётчики") + .add("ru ", + "Color ", + "Device parameter ", + `0-синий , 1-серый , 2-зелёный , 3-оранжевый , 4-красный , 5-жёлтый, 6-белый, 7-чёрный, 8-коричневый, 9-хаки, 10-розовый, 11-фиолетовый`, + "Цвет LED-лампы, стационарного маяка и светодиодного дисплея") + .add("ru ", "Combustion ", "Device parameter ", "Bool ", "1 - обнаружено воспламенение, 0 - во всех остальных случаях") + .add("ru ", "CompletionRatio ", "Device parameter ", "Float[0-1] ", "этап производства в %") + .add("ru ", "Damage ", "Device parameter ", "Float[0-1] ", "уровень повреждения объекта") + .add("ru ", + "ElevatorLevel ", + "Device parameter ", + "Int ", + "На чтение - уровень, на котором находится кабинка лифта, или -1, если кабинки нет. На запись - отправляет лифт на указанный этаж.") + .add("ru ", + "ElevatorSpeed ", + "Device parameter ", + "Float ", + "Скорость движения кабинки лифта, м/тик. Отрицательное значение соответствуют движению вниз, 0 - неподвижной кабинке, положительное - движению вверх.") + .add("ru ", "Error ", "Device parameter ", "Bool ", "0 - нормальная работа, 1 - ошибка") + .add("ru ", "ExportCount ", "Device parameter ", "Int ", "счётчик объектов, прошедших через слот экспорта") + .add("ru ", "Filtration ", "Device parameter ", "Bool ", "Переключает фильтрацию отработанной смеси в прочном скафандре.") + .add("ru ", "ForceWrite ", "Device parameter ", "Trigger ", "Принудительно заставляет чипы записи и множественной записи передать текущее значение в оборудование.") + .add("ru ", "Harvest ", "Device parameter ", "Trigger ", "Активирует сбор урожая в автоматической гидропонной станции.") + .add("ru ", "Horizontal ", "Device parameter ", "Float[0 - 360] ", "угол по отношению к Солнцу в градусах в горизонтальной проекции Солнца на плоскость датчика") + .add("ru ", "Idle ", "Device parameter ", "Bool ", "Загрузка дуговой печи. 0 - руда не загружена, 1 - загружена.") + .add("ru ", "ImportCount ", "Device parameter ", "Int ", "счётчик объектов, прошедших через слот импорта") + .add("ru ", "Lock ", "Device parameter ", "Bool ", "0 - ручное управление разблокировано, 1 - заблокировано") + .add("ru ", + "Maximum ", + "Device parameter ", + "Float ", + "Максимальное значение какого-либо параметра оборудования, например, заряда батареи или давления на входе в камеру сгорания реактивного двигателя. Очень часто присутствует, но не используется.") + .add("ru ", "MaxQuantity ", "Device parameter ", "Float ", "максимальное количество предметов в слоте") + .add("ru ", "Mode ", "Device parameter ", "Int ", " режим работы") + .add("ru ", "On ", "Device parameter ", "Bool ", "0 - выключен 1 - включен") + .add("ru ", "Open ", "Device parameter ", "Bool ", "0 - выброс закрыт, 1 - открыт") + .add("ru ", + "Output ", + "Device parameter ", + "Int/Trigger ", + `Для сортировщика - r/w , Int - следующий выход, на который будет выдан объект.
    Для стакера - w, Trigger - выгружает накопленную упаковку объектов в слот экспорта. `) + .add("ru ", "Plant ", "Device parameter ", "Trigger ", "Запускает процесс посадки растения из слота импорта в автоматической гидропонной станции.") + .add("ru ", "PositionX ", "Device parameter ", "Float ", "координата X текущего положения") + .add("ru ", "PositionY ", "Device parameter ", "Float ", "координата Y текущего положения") + .add("ru ", "PositionZ ", "Device parameter ", "Float ", "координата Z текущего положения") + .add("ru ", "Power ", "Device parameter ", "Bool ", "0 - питание отсутствует или выключен, 1 - питание подано") + .add("ru ", "PowerActual ", "Device parameter ", "Float ", "Суммарное потребление электроэнергии всеми устройствами в сети, Вт.") + .add("ru ", "PowerGeneration ", "Device parameter ", "Float ", "Текущее производство электроэнергии генератором, Вт.") + .add("ru ", "PowerPotential ", "Device parameter ", "Float ", "Предельная доступная мощность сети, Вт.") + .add("ru ", "PowerRequired ", "Device parameter ", "Float ", "Суммарная потребность в электроэнергии всех устройств в сети, Вт.") + .add("ru ", "PressureExternal ", "Device parameter ", "Float ", "атмосферное давление во внешней среде, кПа") + .add("ru ", "PressureInternal ", "Device parameter ", "Float ", "Давление в трубопроводе, при котором останавливается работа активной вентиляции, кПа. Устанавливается, но не используется.") + .add("ru ", "Ratio ", "Device parameter ", "Float ", "Для батарей - соотношение Charge/Maximum.
    Для остальных устройств - соотношение Setting/Maximum.") + .add("ru ", "RatioCarbonDioxide ", "Device parameter ", "Float ", "доля углекислого газа") + .add("ru ", "RatioNitrogen ", "Device parameter ", "Float ", "доля азота") + .add("ru ", "RatioNitrousOxide ", "Device parameter ", "Float ", "доля закиси азота") + .add("ru ", "RatioOxygen ", "Device parameter ", "Float ", "доля кислорода") + .add("ru ", "RatioPollutant ", "Device parameter ", "Float ", "доля токсинов") + .add("ru ", "RatioVolatiles ", "Device parameter ", "Float ", "доля летучих газов") + .add("ru ", "RatioWater ", "Device parameter ", "Float ", "доля водяных паров") + .add("ru ", "Reagents ", "Device parameter ", "Float ", "общая масса ингредиентов в граммах") + .add("ru ", "RecipeHash ", "Device parameter ", "Int ", "хэш выбранного рецепта") + .add("ru ", "RequiredPower ", "Device parameter ", "Float ", "Энергия, требуемая для рабботы устройства, Вт.") + .add("ru ", "Setting ", "Device parameter ", "Any ", "Текущее значение какого-то параметра оборудования. Тип и возможные значения зависят от оборудования.") + .add("ru ", "SolarAngle ", "Device parameter ", "Float ", "угол по отношению к Солнцу в градусах") + .add("ru ", "TargetX ", "Device parameter ", "Int ", "координата X цели") + .add("ru ", "TargetY ", "Device parameter ", "Int ", "координата Y цели") + .add("ru ", "TargetZ ", "Device parameter ", "Int ", "координата Z цели") + .add("ru ", "TemperatureExternal ", "Device parameter ", "Float ", "температура внешней атмосферы, К") + .add("ru ", "TemperatureSetting ", "Device parameter ", "Float ", "Заданная температура внутри прочного скафандра, К.") + .add("ru ", "TotalMoles ", "Device parameter ", "Float ", "Общее количество газа внутри трубопровода, моль.") + .add("ru ", "VelocityMagnitude ", "Device parameter ", "Float ", "модуль скорости движения бота") + .add("ru ", "VelocityRelativeX ", "Device parameter ", "Float ", "скорость движения по координате X") + .add("ru ", "VelocityRelativeY ", "Device parameter ", "Float ", "скорость движения по координате Y") + .add("ru ", "VelocityRelativeZ ", "Device parameter ", "Float ", "скорость движения по координате Z") + .add("ru ", "Vertical ", "Device parameter ", "Float ", "угол по отношению к Солнцу в градусах") + .add("ru ", "Volume ", "Device parameter ", "Float ", "Громкость") + + .add("ru ", "Charge ", "Slot parameter ", "Float ", "Заряд аккумулятора в слоте, Дж.") + .add("ru ", "ChargeRatio ", "Slot parameter ", "Float[0-1] ", "Уровень заряда аккумулятора в слоте.") + .add("ru ", + "Class ", + "Slot parameter ", + "Int ", + `0 - всё , что не относится к остальным классам;
    1 - шлемы;
    2 - скафандры и броня;
    3 - джетпаки и рюкзаки;
    4 - газовые фильтры;
    5 - газовые баллоны;
    6 - материнские платы;
    7 - печатные платы;
    8 - диск данных;
    9 - органы (мозг, лёгкие);
    10 - руды;
    11 - растения;
    12 - униформа;
    13 - существа (в том числе и персонажи);
    14 - аккумуляторы;
    14 - яйца;
    15 - пояса;
    16 - инструменты;
    17 - настольное оборудование (микроволновка, смеситель красок и т.п.);
    18 - слитки;
    19 - торпеды;
    20 - картриджи;
    21 - карты доступа,
    22 - магазины к оружию;
    23 - логические чипы;
    24 - бутылки (молоко, соевое масло);
    25 - микропроцессоры;
    26 - очки.`) + .add("ru ", "Damage ", "Slot parameter ", "Float[0-1] ", "Уровень повреждения объекта в слоте. 0 - объект целый, 1 - полностью разрушен.") + .add("ru ", "Efficiency ", "Slot parameter ", "Float[0-1] ", "Эффективность роста растения в автоматической гидропонной станции. -1, если растения нет.") + .add("ru ", "Growth ", "Slot parameter ", "Float[0-1] ", "Стадия роста растения в автоматической гидропонной станции. -1, если растения нет.") + .add("ru ", "Health ", "Slot parameter ", "Float[0-1] ", "Здоровье растения в автоматической гидропонной станции. 0 - умершаа растение, 1 - полностью здоровое, -1 - растения нет.") + .add("ru ", "Mature ", "Slot parameter ", "Float[0-1] ", "Готовность растения в автоматической гидропонной станции к сбору урожая. -1 если растения нет.") + .add("ru ", "OccupantHash ", "Slot parameter ", "Hash ", "хэш объекта в слоте") + .add("ru ", "Occupied ", "Slot parameter ", "Bool ", "0 - слот свободен, 1 - занят") + .add("ru ", "PressureAir ", "Slot parameter ", "Float ", "Давление в баллоне с дыхательной смесью скафандра, установленного в стойку, кПа.") + .add("ru ", "PressureWaste ", "Slot parameter ", "Float ", "Давление в баллоне с отработанной смесью скафандра, установленного в стойку, кПа.") + + .add("ru ", "PrefabHash ", "Parameter ", "Hash ", "хэш Prefab объекта") + .add("ru ", "Pressure ", "Parameter ", "Float ", "давление, кПа") + .add("ru ", "Quantity ", "Parameter ", "Float/Int ", "масса / количество предметов") + .add("ru ", "Temperature ", "Parameter ", "Float ", "температура, К") + .add("ru ", "Bpm ", "Parameter ", "Float ", null) + .add("ru ", "CollectableGoods ", "Parameter ", "Float ", null) + .add("ru ", "Combustion ", "Parameter ", "Float ", null) + .add("ru ", "CurrentResearchPodType ", "Parameter ", "Float ", null) + .add("ru ", "Fuel ", "Parameter ", "Float ", "Топливо") + .add("ru ", "ManualResearchRequiredPod ", "Parameter ", "Float ", null) + .add("ru ", "MineablesInQueue ", "Parameter ", "Float ", null) + .add("ru ", "MineablesInVicinity ", "Parameter ", "Float ", null) + .add("ru ", "NextWeatherEventTime ", "Parameter ", "Float ", null) + .add("ru ", "ReturnFuelCost ", "Parameter ", "Float ", null) + .add("ru ", "SettingInput ", "Parameter ", "Float ", null) + .add("ru ", "SettingOutput ", "Parameter ", "Float ", null) + .add("ru ", "SignalID ", "Parameter ", "Float ", null) + .add("ru ", "SignalStrength ", "Parameter ", "Float ", null) + .add("ru ", "TemperatureSetting ", "Parameter ", "Float ", null) + .add("ru ", "Time ", "Parameter ", "Float ", null) + .add("ru ", "AirRelease ", "Parameter ", "Float ", null) + .add("ru ", "HorizontalRatio ", "Parameter ", "Float ", null) + .add("ru ", "PressureSetting ", "Parameter ", "Float ", null) + .add("ru ", "RequestHash ", "Parameter ", "Float ", null) + .add("ru ", "VerticalRatio ", "Parameter ", "Float ", null) + .add("ru ", "Seeding ", "Parameter ", "int ", "-1 - нельзя собрать семена, 1 - можно") + + .add("ru ", "CombustionInput ", "Parameter ", "Float ", null) + .add("ru ", "CombustionOutput ", "Parameter ", "Float ", null) + .add("ru ", "CombustionOutput2", "Parameter ", "Float ", null) + .add("ru ", "TemperatureInput", "Parameter ", "Float ", null) + .add("ru ", "TemperatureOutput", "Parameter ", "Float ", null) + .add("ru ", "TemperatureOutput2", "Parameter ", "Float ", null) + .add("ru ", "PressureInput", "Parameter ", "Float ", null) + .add("ru ", "PressureOutput", "Parameter ", "Float ", null) + .add("ru ", "PressureOutput2", "Parameter ", "Float ", null) + .add("ru ", "TotalMolesInput", "Parameter ", "Float ", null) + .add("ru ", "TotalMolesOutput", "Parameter ", "Float ", null) + .add("ru ", "TotalMolesOutput2", "Parameter ", "Float ", null) + .add("ru ", "RatioCarbonDioxideInput", "Parameter ", "Float ", null) + .add("ru ", "RatioCarbonDioxideOutput", "Parameter ", "Float ", null) + .add("ru ", "RatioCarbonDioxideOutput2", "Parameter ", "Float ", null) + .add("ru ", "RatioNitrogenInput", "Parameter ", "Float ", null) + .add("ru ", "RatioNitrogenOutput", "Parameter ", "Float ", null) + .add("ru ", "RatioNitrogenOutput2", "Parameter ", "Float ", null) + .add("ru ", "RatioNitrousOxideInput", "Parameter ", "Float ", null) + .add("ru ", "RatioNitrousOxideOutput", "Parameter ", "Float ", null) + .add("ru ", "RatioNitrousOxideOutput2", "Parameter ", "Float ", null) + .add("ru ", "RatioOxygenInput", "Parameter ", "Float ", null) + .add("ru ", "RatioOxygenOutput", "Parameter ", "Float ", null) + .add("ru ", "RatioOxygenOutput2", "Parameter ", "Float ", null) + .add("ru ", "RatioPollutantInput", "Parameter ", "Float ", null) + .add("ru ", "RatioPollutantOutput", "Parameter ", "Float ", null) + .add("ru ", "RatioPollutantOutput2", "Parameter ", "Float ", null) + .add("ru ", "RatioVolatilesInput", "Parameter ", "Float ", null) + .add("ru ", "RatioVolatilesOutput", "Parameter ", "Float ", null) + .add("ru ", "RatioVolatilesOutput2", "Parameter ", "Float ", null) + .add("ru ", "RatioWaterInput", "Parameter ", "Float ", null) + .add("ru ", "RatioWaterOutput", "Parameter ", "Float ", null) + .add("ru ", "RatioWaterOutput2", "Parameter ", "Float ", null) + .add("ru ", "PressureEfficiency", "Parameter ", "Float ", null) + .add("ru ", "OperationalTemperatureEfficiency", "Parameter ", "Float ", null) + .add("ru ", "TemperatureDifferentialEfficiency", "Parameter ", "Float ", null) + + .add("ru ", "Average ", "Const ", "string ", null) + .add("ru ", "Sum ", "Const ", "string ", null) + .add("ru ", "Minimum ", "Const ", "string ", null) + .add("ru ", "Maximum ", "Const ", "string ", null) + + .add("ru ", "Maximum ", "ERROR ", "string ", null) + return IC10Data +} + +module.exports = getData diff --git a/tools/gulpfile.js b/tools/gulpfile.js new file mode 100644 index 0000000..47c2d0a --- /dev/null +++ b/tools/gulpfile.js @@ -0,0 +1,159 @@ +"use strict" +const gulp = require("gulp") +const fs = require("fs") +const getData = require(__dirname + "/ajax.js") +gulp.task("generate-langs", async function () { + // console.log('generating') + // console.log(IC10Data.Languages['ru'][0]) + const IC10Data = await getData() + console.log(IC10Data) + const keyword = [] + const functions = [] + for (const languagesKey in IC10Data?.Languages) { + fs.writeFileSync(`..\\languages\\${languagesKey}.json`, JSON.stringify(IC10Data.Languages[languagesKey], null, 2)) + } + const snippets = JSON.parse(fs.readFileSync(`..\\snippets\\ic10.json`)) + for (const languageKey in IC10Data.Languages["en"]) { + let data = IC10Data.Languages["en"][languageKey] + if (Array.isArray(data)) { + data = data[0] + } + if (data.type === "Function") { + functions.push(languageKey) + } else { + keyword.push(languageKey) + } + snippets[languageKey] = { + "prefix": languageKey, + "body": [ + languageKey, + ], + "description": data.description.text, + } + + } + + fs.writeFileSync(`..\\snippets\\ic10.json`, JSON.stringify(snippets, null, 2)) + const tmLanguage10 = JSON.parse(fs.readFileSync(`..\\syntaxes\\ic10.tmLanguage.json`)); + tmLanguage10.repository.keywords.patterns[0].match = `\\b(${keyword.join("|")})\\b` + tmLanguage10.repository.entity.patterns[0].match = `\\b(${functions.join("|")})\\b` + fs.writeFileSync(`..\\syntaxes\\ic10.tmLanguage.json`, JSON.stringify(tmLanguage10, null, 2)) + const tmLanguagex = JSON.parse(fs.readFileSync(`..\\syntaxes\\icX.tmLanguage.json`)); + tmLanguagex.repository.keywords.patterns[0].match = `\\b(${keyword.join("|")})\\b` + tmLanguagex.repository.entity.patterns[0].match = `\\b(${functions.join("|")})\\b` + fs.writeFileSync(`..\\syntaxes\\icX.tmLanguage.json`, JSON.stringify(tmLanguagex, null, 2)) + + fs.writeFileSync(`..\\media\\ic10.keyword.json`, JSON.stringify(keyword, null, 2)) + fs.writeFileSync(`..\\media\\ic10.functions.json`, JSON.stringify(functions, null, 2)) + return gulp; +}) + +gulp.task("#generate-aaa", function () { + var result = null + var a = [ + "eq", + "eqz", + "ge", + "gez", + "gt", + "gtz", + "le", + "lez", + "lt", + "ltz", + "ne", + "nez", + "ap", + "apz", + "na", + "naz", + "dse", + "dns", + ] + // s + for (const aKey in a) { + var b = a[aKey] + if (b.endsWith("z")) { + + result += ` + s${b}(op1,op2,op3,op4){ + this.memory.cell(op1, this.__${b.replace("z", null)}(this.memory.cell(op2),0)) + } + ` + } else { + result += ` + s${b}(op1,op2,op3,op4){ + this.memory.cell(op1, this.__${b}(this.memory.cell(op2),this.memory.cell(op3))) + } + ` + } + } + //b + for (const aKey in a) { + var b = a[aKey] + if (b.endsWith("z")) { + + result += ` + b${b}(op1,op2,op3,op4){ + if( this.__${b.replace("z", null)}(this.memory.cell(op1),0)){ + this.j(op3) + } + } + ` + } else { + result += ` + b${b}(op1,op2,op3,op4){ + if( this.__${b}(this.memory.cell(op1),this.memory.cell(op2))){ + this.j(op3) + } + } + ` + } + } + //br + for (const aKey in a) { + var b = a[aKey] + if (b.endsWith("z")) { + result += ` + br${b}(op1,op2,op3,op4){ + if( this.__${b.replace("z", null)}(this.memory.cell(op1),0)){ + this.jr(op3) + } + } + ` + } else { + result += ` + br${b}(op1,op2,op3,op4){ + if( this.__${b}(this.memory.cell(op1),this.memory.cell(op2))){ + this.jr(op3) + } + } + ` + } + } + for (const aKey in a) { + var b = a[aKey] + if (b.endsWith("z")) { + result += ` + b${b}al(op1,op2,op3,op4){ + if( this.__${b.replace("z", null)}(this.memory.cell(op1),0)){ + this.jal(op3) + } + } + ` + } else { + result += ` + b${b}al(op1,op2,op3,op4){ + if( this.__${b}(this.memory.cell(op1),this.memory.cell(op2))){ + this.jal(op3) + } + } + ` + } + } + fs.writeFileSync(`fn.js`, result) + + // console.log(result) +}) + + diff --git a/tools/package.json b/tools/package.json new file mode 100644 index 0000000..dc1709b --- /dev/null +++ b/tools/package.json @@ -0,0 +1,22 @@ +{ + "name": "tools", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "gulp": "^4.0.2" + }, + "dependencies": { + "axios": "^1.1.3", + "caller-id": "^0.1.0", + "chalk": "^4.1.2", + "md5": "^2.3.0", + "request": "^2.88.2", + "sync-request": "^6.1.0" + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..2988179 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,97 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + + /* Basic Options */ + // "incremental": true, /* Enable incremental compilation */ + "target": "ESNEXT", + /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ + "module": "commonjs", + /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ + "lib": [ + "es6", + "dom" + ], + /* Specify library files to be included in the compilation. */ + "allowJs": false, + /* Allow javascript files to be compiled. */ + "checkJs": false, + /* Report errors in .js files. */ + "noEmitOnError": true, + "pretty": true, + "removeComments": true, + "sourceMap": false, + "declaration": false, + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */ + // "declaration": true, /* Generates corresponding '.d.ts' file. */ + // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + // "sourceMap": true, /* Generates corresponding '.map' file. */ + // "outFile": "./", /* Concatenate and emit output to single file. */ + // "outDir": "./", /* Redirect output structure to the directory. */ + // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + // "composite": true, /* Enable project compilation */ + // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "strict": false, + /* Enable all strict type-checking options. */ + // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* Enable strict null checks. */ + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noPropertyAccessFromIndexSignature": true, /* Require undeclared properties from index signatures to use element accesses. */ + + /* Module Resolution Options */ + // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + // "types": [], /* Type declaration files to be included in compilation. */ + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true, + /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + + /* Advanced Options */ + "skipLibCheck": true, + /* Skip type checking of declaration files. */ + "noImplicitAny": false, + "strictPropertyInitialization": false, + "types": [] + }, + "exclude": [ + "node_modules", + "./node_modules", + "../node_modules", + "./node_modules/*", + "../node_modules/*", + "../node_modules/ic10/src/devices/Device.ts", + ] +} diff --git a/vsc-extension-quickstart.md b/vsc-extension-quickstart.md new file mode 100644 index 0000000..87d7ecc --- /dev/null +++ b/vsc-extension-quickstart.md @@ -0,0 +1,33 @@ +# Welcome to your VS Code Extension + +## What's in the folder + +* This folder contains all of the files necessary for your extension. +* `package.json` - this is the manifest file in which you declare your language support and define the location of the + grammar file that has been copied into your extension. +* `syntaxes/ic10.tmLanguage.json` - this is the Text mate grammar file that is used for tokenization. +* `language-configuration.json` - this is the language configuration, defining the tokens that are used for comments and + brackets. + +## Get up and running straight away + +* Make sure the language configuration settings in `language-configuration.json` are accurate. +* Press `F5` to open a new window with your extension loaded. +* Create a new file with a file name suffix matching your language. +* Verify that syntax highlighting works and that the language configuration settings are working. + +## Make changes + +* You can relaunch the extension from the debug toolbar after making changes to the files listed above. +* You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes. + +## Add more language features + +* To add features such as intellisense, hovers and validators check out the VS Code extenders documentation + at https://code.visualstudio.com/docs + +## Install your extension + +* To start using your extension with Visual Studio Code copy it into the `/.vscode/extensions` folder and + restart Code. +* To share your extension with the world, read on https://code.visualstudio.com/docs about publishing an extension.