diff --git a/.editorconfig b/.editorconfig
index 0cb7ebe..e8dd2db 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,11 +1,10 @@
-
[*]
charset = utf-8
end_of_line = lf
+indent_size = 4
+indent_style = space
trim_trailing_whitespace = true
insert_final_newline = true
-indent_style = space
-indent_size = 4
tab_width = 4
# Microsoft .NET properties
@@ -320,7 +319,7 @@ dotnet_naming_style.lower_camel_case_style_1.capitalization = camel_case
dotnet_naming_style.t_upper_camel_case_style.capitalization = pascal_case
dotnet_naming_style.t_upper_camel_case_style.required_prefix = T
dotnet_naming_style.upper_camel_case_style.capitalization = pascal_case
-dotnet_naming_symbols.constants_symbols.applicable_accessibilities = public,internal,protected,protected_internal,private_protected
+dotnet_naming_symbols.constants_symbols.applicable_accessibilities = public, internal, protected, protected_internal, private_protected
dotnet_naming_symbols.constants_symbols.applicable_kinds = field
dotnet_naming_symbols.constants_symbols.required_modifiers = const
dotnet_naming_symbols.event_symbols.applicable_accessibilities = *
@@ -348,16 +347,16 @@ dotnet_naming_symbols.private_static_fields_symbols.applicable_kinds = field
dotnet_naming_symbols.private_static_fields_symbols.required_modifiers = static
dotnet_naming_symbols.private_static_readonly_symbols.applicable_accessibilities = private
dotnet_naming_symbols.private_static_readonly_symbols.applicable_kinds = field
-dotnet_naming_symbols.private_static_readonly_symbols.required_modifiers = static,readonly
+dotnet_naming_symbols.private_static_readonly_symbols.required_modifiers = static, readonly
dotnet_naming_symbols.property_symbols.applicable_accessibilities = *
dotnet_naming_symbols.property_symbols.applicable_kinds = property
-dotnet_naming_symbols.public_fields_symbols.applicable_accessibilities = public,internal,protected,protected_internal,private_protected
+dotnet_naming_symbols.public_fields_symbols.applicable_accessibilities = public, internal, protected, protected_internal, private_protected
dotnet_naming_symbols.public_fields_symbols.applicable_kinds = field
-dotnet_naming_symbols.static_readonly_symbols.applicable_accessibilities = public,internal,protected,protected_internal,private_protected
+dotnet_naming_symbols.static_readonly_symbols.applicable_accessibilities = public, internal, protected, protected_internal, private_protected
dotnet_naming_symbols.static_readonly_symbols.applicable_kinds = field
-dotnet_naming_symbols.static_readonly_symbols.required_modifiers = static,readonly
+dotnet_naming_symbols.static_readonly_symbols.required_modifiers = static, readonly
dotnet_naming_symbols.types_and_namespaces_symbols.applicable_accessibilities = *
-dotnet_naming_symbols.types_and_namespaces_symbols.applicable_kinds = namespace,class,struct,enum,delegate
+dotnet_naming_symbols.types_and_namespaces_symbols.applicable_kinds = namespace, class, struct, enum, delegate
dotnet_naming_symbols.type_parameters_symbols.applicable_accessibilities = *
dotnet_naming_symbols.type_parameters_symbols.applicable_kinds = type_parameter
dotnet_separate_import_directive_groups = false
@@ -372,9 +371,8 @@ dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_property = false:suggestion
dotnet_style_require_accessibility_modifiers = for_non_interface_members:error
-file_header_template =
+file_header_template = # ReSharper properties
-# ReSharper properties
resharper_alignment_tab_fill_style = use_spaces
resharper_align_first_arg_by_paren = false
resharper_align_linq_query = false
@@ -535,7 +533,7 @@ resharper_generator_mode = false
resharper_html_allow_far_alignment = true
resharper_html_attribute_indent = align_by_first_attribute
resharper_html_insert_final_newline = false
-resharper_html_linebreak_before_elements = body,div,p,form,h1,h2,h3
+resharper_html_linebreak_before_elements = body, div, p, form, h1, h2, h3
resharper_html_max_blank_lines_between_tags = 2
resharper_html_max_line_length = 180
resharper_html_pi_attribute_style = on_single_line
@@ -665,7 +663,7 @@ resharper_place_type_attribute_on_same_line = false
resharper_place_type_constraints_on_same_line = true
resharper_prefer_explicit_discard_declaration = false
resharper_prefer_separate_deconstructed_variables_declaration = false
-resharper_preserve_spaces_inside_tags = pre,textarea
+resharper_preserve_spaces_inside_tags = pre, textarea
resharper_qualified_using_at_nested_scope = false
resharper_quote_style = doublequoted
resharper_razor_prefer_qualified_reference = true
@@ -893,7 +891,7 @@ resharper_wrap_verbatim_interpolated_strings = no_wrap
resharper_xmldoc_allow_far_alignment = false
resharper_xmldoc_attribute_indent = single_indent
resharper_xmldoc_insert_final_newline = false
-resharper_xmldoc_linebreak_before_elements = summary,remarks,example,returns,param,typeparam,value,para
+resharper_xmldoc_linebreak_before_elements = summary, remarks, example, returns, param, typeparam, value, para
resharper_xmldoc_max_blank_lines_between_tags = 0
resharper_xmldoc_max_line_length = 180
resharper_xmldoc_pi_attribute_style = do_not_touch
diff --git a/.editorconfig2.editorconfig b/.editorconfig2.editorconfig
new file mode 100644
index 0000000..8884e9d
--- /dev/null
+++ b/.editorconfig2.editorconfig
@@ -0,0 +1,606 @@
+[*]
+charset = utf-8
+end_of_line = lf
+indent_size = 2
+indent_style = space
+insert_final_newline = false
+max_line_length = 120
+tab_width = 2
+trim_trailing_whitespace = false
+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 =
+ij_wrap_on_typing = false
+
+[*.cs]
+indent_size = 4
+tab_width = 4
+
+[*.cshtml]
+indent_size = 4
+tab_width = 4
+
+[*.css]
+indent_size = 4
+tab_width = 4
+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
+
+[*.less]
+tab_width = 4
+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
+
+[*.properties]
+ij_properties_align_group_field_declarations = false
+ij_properties_keep_blank_lines = false
+ij_properties_key_value_delimiter = equals
+ij_properties_spaces_around_key_value_delimiter = false
+
+[*.sass]
+tab_width = 4
+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]
+tab_width = 4
+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
+
+[*.vb]
+indent_size = 4
+tab_width = 4
+
+[.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
+
+[{*.ant,*.appxmanifest,*.axml,*.cscfg,*.csdef,*.disco,*.dotsettings,*.filelayout,*.fxml,*.jhm,*.jnlp,*.jrxml,*.manifest,*.myapp,*.nuspec,*.rng,*.stylecop,*.svcmap,*.tld,*.wadcfgx,*.webref,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul,StyleCop.Cache}]
+indent_size = 4
+tab_width = 4
+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}]
+indent_size = 4
+tab_width = 4
+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_property_prefix =
+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
+
+[{*.axaml,*.paml,*.xaml}]
+indent_size = 4
+tab_width = 4
+
+[{*.bash,*.sh,*.zsh}]
+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
+
+[{*.c,*.c++,*.cc,*.cp,*.cpp,*.cppm,*.cu,*.cxx,*.ino,*.ixx,*.usf}]
+indent_size = 4
+tab_width = 4
+
+[{*.cjs,*.js}]
+indent_size = 4
+tab_width = 4
+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_property_prefix =
+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
+
+[{*.har,*.jsb2,*.jsb3,*.json,.babelrc,.eslintrc,.stylelintrc,bowerrc,jest.config}]
+tab_width = 4
+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
+
+[{*.htm,*.html,*.sht,*.shtm,*.shtml}]
+indent_size = 4
+tab_width = 4
+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
+
+[{*.http,*.rest}]
+indent_size = 0
+ij_continuation_indent_size = 4
+ij_http-request_call_parameters_wrap = normal
+ij_http-request_method_parameters_wrap = split_into_lines
+ij_http-request_space_before_comma = true
+ij_http-request_spaces_around_assignment_operators = true
+
+[{*.jade,*.pug}]
+indent_size = 4
+tab_width = 4
+
+[{*.markdown,*.md}]
+indent_size = 4
+tab_width = 4
+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
+
+[{*.yaml,*.yml}]
+ij_yaml_align_values_properties = do_not_align
+ij_yaml_autoinsert_sequence_marker = true
+ij_yaml_block_mapping_on_new_line = false
+ij_yaml_indent_sequence_value = true
+ij_yaml_keep_indents_on_empty_lines = false
+ij_yaml_keep_line_breaks = true
+ij_yaml_sequence_on_new_line = false
+ij_yaml_space_before_colon = false
+ij_yaml_spaces_within_braces = true
+ij_yaml_spaces_within_brackets = true
diff --git a/.editorconfig3.editorconfig b/.editorconfig3.editorconfig
new file mode 100644
index 0000000..8884e9d
--- /dev/null
+++ b/.editorconfig3.editorconfig
@@ -0,0 +1,606 @@
+[*]
+charset = utf-8
+end_of_line = lf
+indent_size = 2
+indent_style = space
+insert_final_newline = false
+max_line_length = 120
+tab_width = 2
+trim_trailing_whitespace = false
+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 =
+ij_wrap_on_typing = false
+
+[*.cs]
+indent_size = 4
+tab_width = 4
+
+[*.cshtml]
+indent_size = 4
+tab_width = 4
+
+[*.css]
+indent_size = 4
+tab_width = 4
+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
+
+[*.less]
+tab_width = 4
+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
+
+[*.properties]
+ij_properties_align_group_field_declarations = false
+ij_properties_keep_blank_lines = false
+ij_properties_key_value_delimiter = equals
+ij_properties_spaces_around_key_value_delimiter = false
+
+[*.sass]
+tab_width = 4
+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]
+tab_width = 4
+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
+
+[*.vb]
+indent_size = 4
+tab_width = 4
+
+[.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
+
+[{*.ant,*.appxmanifest,*.axml,*.cscfg,*.csdef,*.disco,*.dotsettings,*.filelayout,*.fxml,*.jhm,*.jnlp,*.jrxml,*.manifest,*.myapp,*.nuspec,*.rng,*.stylecop,*.svcmap,*.tld,*.wadcfgx,*.webref,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul,StyleCop.Cache}]
+indent_size = 4
+tab_width = 4
+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}]
+indent_size = 4
+tab_width = 4
+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_property_prefix =
+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
+
+[{*.axaml,*.paml,*.xaml}]
+indent_size = 4
+tab_width = 4
+
+[{*.bash,*.sh,*.zsh}]
+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
+
+[{*.c,*.c++,*.cc,*.cp,*.cpp,*.cppm,*.cu,*.cxx,*.ino,*.ixx,*.usf}]
+indent_size = 4
+tab_width = 4
+
+[{*.cjs,*.js}]
+indent_size = 4
+tab_width = 4
+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_property_prefix =
+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
+
+[{*.har,*.jsb2,*.jsb3,*.json,.babelrc,.eslintrc,.stylelintrc,bowerrc,jest.config}]
+tab_width = 4
+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
+
+[{*.htm,*.html,*.sht,*.shtm,*.shtml}]
+indent_size = 4
+tab_width = 4
+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
+
+[{*.http,*.rest}]
+indent_size = 0
+ij_continuation_indent_size = 4
+ij_http-request_call_parameters_wrap = normal
+ij_http-request_method_parameters_wrap = split_into_lines
+ij_http-request_space_before_comma = true
+ij_http-request_spaces_around_assignment_operators = true
+
+[{*.jade,*.pug}]
+indent_size = 4
+tab_width = 4
+
+[{*.markdown,*.md}]
+indent_size = 4
+tab_width = 4
+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
+
+[{*.yaml,*.yml}]
+ij_yaml_align_values_properties = do_not_align
+ij_yaml_autoinsert_sequence_marker = true
+ij_yaml_block_mapping_on_new_line = false
+ij_yaml_indent_sequence_value = true
+ij_yaml_keep_indents_on_empty_lines = false
+ij_yaml_keep_line_breaks = true
+ij_yaml_sequence_on_new_line = false
+ij_yaml_space_before_colon = false
+ij_yaml_spaces_within_braces = true
+ij_yaml_spaces_within_brackets = true
diff --git a/LibMatrix b/LibMatrix
-Subproject 71d115dc8e915a620dd935955ba980fcbe421da
+Subproject 83f9a4df147ef58c884f43092527f5cb6fa2f0a
diff --git a/MatrixRoomUtils.Web/MatrixRoomUtils.Web.csproj b/MatrixRoomUtils.Web/MatrixRoomUtils.Web.csproj
index 68fb9c7..c6678ce 100644
--- a/MatrixRoomUtils.Web/MatrixRoomUtils.Web.csproj
+++ b/MatrixRoomUtils.Web/MatrixRoomUtils.Web.csproj
@@ -9,6 +9,7 @@
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<UseBlazorWebAssembly>true</UseBlazorWebAssembly>
+<!-- <RunAOTCompilation>true</RunAOTCompilation>-->
</PropertyGroup>
<ItemGroup>
@@ -25,4 +26,48 @@
<ProjectReference Include="..\MatrixRoomUtils.LibDMSpace\MatrixRoomUtils.LibDMSpace.csproj" />
</ItemGroup>
+ <ItemGroup>
+ <Content Update="appsettings.Development.json">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Update="appsettings.json">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ </ItemGroup>
+
+ <ItemGroup>
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-Bold.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-BoldItalic.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-ExtraBold.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-ExtraBoldItalic.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-ExtraLight.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-ExtraLightItalic.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-Italic.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-Light.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-LightItalic.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-Medium.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-MediumItalic.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-Regular.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-SemiBold.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-SemiBoldItalic.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-Thin.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMono-ThinItalic.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-Bold.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-BoldItalic.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-ExtraBold.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-ExtraBoldItalic.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-ExtraLight.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-ExtraLightItalic.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-Italic.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-Light.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-LightItalic.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-Medium.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-MediumItalic.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-Regular.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-SemiBold.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-SemiBoldItalic.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-Thin.ttf" />
+ <_ContentIncludedByDefault Remove="wwwroot\css\jetbrains-mono\ttf\JetBrainsMonoNL-ThinItalic.ttf" />
+ </ItemGroup>
+
</Project>
diff --git a/MatrixRoomUtils.Web/Pages/Index.razor b/MatrixRoomUtils.Web/Pages/Index.razor
index 804fde3..68a4f26 100644
--- a/MatrixRoomUtils.Web/Pages/Index.razor
+++ b/MatrixRoomUtils.Web/Pages/Index.razor
@@ -1,4 +1,5 @@
@page "/"
+@inject ILogger<Index> logger
@using LibMatrix.Responses
@using LibMatrix
@using LibMatrix.Homeservers
@@ -26,7 +27,6 @@ Small collection of tools to do not-so-everyday things.
<p>
<input type="radio" name="csa" checked="@(_currentSession.AccessToken == _auth.AccessToken)" @onclick="@(() => SwitchSession(_auth))" style="text-decoration-line: unset;"/>
<b>@__auth.UserInfo.DisplayName</b> on <b>@_auth.Homeserver</b><br/>
-
</p>
<span style="display: inline-block; width: 128px;">@__auth.UserInfo.RoomCount rooms</span>
<a style="color: #888888" href="@("/ServerInfo/"+__auth.Homeserver.ServerName+"/")">@__auth.ServerVersion.Server.Name @__auth.ServerVersion.Server.Version</a>
@@ -91,20 +91,24 @@ Small collection of tools to do not-so-everyday things.
}
throw;
}
+ catch (HttpRequestException e) {
+ logger.LogError(e, $"Failed to instantiate AuthenticatedHomeserver for {_auth}, homeserver may be offline?", token.UserId);
+ return;
+ }
var roomCountTask = hs.GetJoinedRooms();
var profile = await hs.GetProfileAsync(hs.WhoAmI.UserId);
userInfo.DisplayName = profile.DisplayName ?? hs.WhoAmI.UserId;
Console.WriteLine(profile.ToJson());
- userInfo.AvatarUrl = string.IsNullOrWhiteSpace(profile.AvatarUrl) ? "https://api.dicebear.com/6.x/identicon/svg?seed=" + hs.WhoAmI.UserId : hs.ResolveMediaUri(profile.AvatarUrl);
- userInfo.RoomCount = (await roomCountTask).Count;
- // _users.Add(token, userInfo);
_auth.Add(new() {
- UserInfo = userInfo,
+ UserInfo = new() {
+ AvatarUrl = string.IsNullOrWhiteSpace(profile.AvatarUrl) ? "https://api.dicebear.com/6.x/identicon/svg?seed=" + hs.WhoAmI.UserId : hs.ResolveMediaUri(profile.AvatarUrl),
+ RoomCount = (await roomCountTask).Count,
+ DisplayName = profile.DisplayName ?? hs.WhoAmI.UserId
+ },
UserAuth = token,
ServerVersion = await hs.GetServerVersionAsync(),
Homeserver = hs
});
- // StateHasChanged();
});
await Task.WhenAll(profileTasks);
await base.OnInitializedAsync();
diff --git a/MatrixRoomUtils.Web/Pages/Rooms/Index.razor b/MatrixRoomUtils.Web/Pages/Rooms/Index.razor
index 60f4f62..e137b6c 100644
--- a/MatrixRoomUtils.Web/Pages/Rooms/Index.razor
+++ b/MatrixRoomUtils.Web/Pages/Rooms/Index.razor
@@ -8,6 +8,7 @@
@using LibMatrix.Extensions
@using LibMatrix.Responses
@using System.Collections.ObjectModel
+@using System.Diagnostics
@inject ILogger<Index> logger
<h3>Room list</h3>
@@ -60,36 +61,36 @@
}
};
- private static SyncFilter profileUpdateFilter = new() {
- AccountData = new SyncFilter.EventFilter {
- NotTypes = new List<string> { "*" },
- Limit = 1
- },
- Presence = new SyncFilter.EventFilter {
- NotTypes = new List<string> { "*" },
- Limit = 1
- },
- Room = new SyncFilter.RoomFilter {
- AccountData = new SyncFilter.RoomFilter.StateFilter {
- NotTypes = new List<string> { "*" },
- Limit = 1
- },
- Ephemeral = new SyncFilter.RoomFilter.StateFilter {
- NotTypes = new List<string> { "*" },
- Limit = 1
- },
- State = new SyncFilter.RoomFilter.StateFilter {
- Types = new List<string> {
- "m.room.member"
- },
- Senders = new()
- },
- Timeline = new SyncFilter.RoomFilter.StateFilter {
- NotTypes = new List<string> { "*" },
- Limit = 1
- }
- }
- };
+ // private static SyncFilter profileUpdateFilter = new() {
+ // AccountData = new SyncFilter.EventFilter {
+ // NotTypes = new List<string> { "*" },
+ // Limit = 1
+ // },
+ // Presence = new SyncFilter.EventFilter {
+ // NotTypes = new List<string> { "*" },
+ // Limit = 1
+ // },
+ // Room = new SyncFilter.RoomFilter {
+ // AccountData = new SyncFilter.RoomFilter.StateFilter {
+ // NotTypes = new List<string> { "*" },
+ // Limit = 1
+ // },
+ // Ephemeral = new SyncFilter.RoomFilter.StateFilter {
+ // NotTypes = new List<string> { "*" },
+ // Limit = 1
+ // },
+ // State = new SyncFilter.RoomFilter.StateFilter {
+ // Types = new List<string> {
+ // "m.room.member"
+ // },
+ // Senders = new()
+ // },
+ // Timeline = new SyncFilter.RoomFilter.StateFilter {
+ // NotTypes = new List<string> { "*" },
+ // Limit = 1
+ // }
+ // }
+ // };
protected override async Task OnInitializedAsync() {
Homeserver = await MRUStorage.GetCurrentSessionOrNavigate();
@@ -103,20 +104,23 @@
var syncHelper = new SyncHelper(Homeserver, logger) {
Timeout = 10000,
- Filter = filter
- };
- profileUpdateFilter.Room.State.Senders.Add(Homeserver.WhoAmI.UserId);
- var profileSyncHelper = new SyncHelper(Homeserver, logger) {
- Timeout = 10000,
- Filter = profileUpdateFilter
+ Filter = filter,
+ MinimumDelay = TimeSpan.FromMilliseconds(5000)
};
+ // profileUpdateFilter.Room.State.Senders.Add(Homeserver.WhoAmI.UserId);
+ // var profileSyncHelper = new SyncHelper(Homeserver, logger) {
+ // Timeout = 10000,
+ // Filter = profileUpdateFilter,
+ // MinimumDelay = TimeSpan.FromMilliseconds(5000)
+ // };
RunSyncLoop(syncHelper);
- RunSyncLoop(profileSyncHelper);
+ // RunSyncLoop(profileSyncHelper);
RunQueueProcessor();
await base.OnInitializedAsync();
}
-
+
private async Task RunQueueProcessor() {
+ var renderTimeSw = Stopwatch.StartNew();
while (true) {
try {
if (queue.Count == 0) {
@@ -126,7 +130,7 @@
}
Console.WriteLine("Queue no longer empty!");
}
- if (queue.TryDequeue(out var queueEntry)) {
+ while (queue.TryDequeue(out var queueEntry)) {
var (roomId, roomData) = queueEntry;
Console.WriteLine($"Dequeued room {roomId}");
RoomInfo room;
@@ -159,9 +163,9 @@
if (queue.Count > 10) RenderContents = false;
await Task.Delay(RenderContents ? 25 : 25);
}
- else {
- Console.WriteLine("Failed to dequeue item");
- }
+ // else {
+ // Console.WriteLine("Failed to dequeue item");
+ // }
}
catch (Exception e) {
Console.WriteLine("QueueWorker exception: " + e);
diff --git a/MatrixRoomUtils.Web/Program.cs b/MatrixRoomUtils.Web/Program.cs
index a670378..a7a0105 100644
--- a/MatrixRoomUtils.Web/Program.cs
+++ b/MatrixRoomUtils.Web/Program.cs
@@ -12,7 +12,15 @@ var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");
+// builder.Logging.SetMinimumLevel(LogLevel.Trace);
+
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
+
+builder.Configuration.AddJsonStream(await new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }.GetStreamAsync("/appsettings.json"));
+#if DEBUG
+builder.Configuration.AddJsonStream(await new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }.GetStreamAsync("/appsettings.Development.json"));
+#endif
+
builder.Services.AddBlazoredLocalStorage(config => {
config.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.CamelCase;
config.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
diff --git a/MatrixRoomUtils.Web/Shared/RoomListItem.razor b/MatrixRoomUtils.Web/Shared/RoomListItem.razor
index 970526d..c5c3cfe 100644
--- a/MatrixRoomUtils.Web/Shared/RoomListItem.razor
+++ b/MatrixRoomUtils.Web/Shared/RoomListItem.razor
@@ -16,7 +16,7 @@
</span>
<span class="centerVertical noLeftPadding">-></span>
}
- <MxcImage Class="avatar32" MxcUri="RoomInfo.RoomIcon" Style="@(ChildContent is not null ? "vertical-align: middle;" : "")"/>
+ <MxcImage Class="avatar32" MxcUri="@RoomInfo.RoomIcon" Style="@(ChildContent is not null ? "vertical-align: middle;" : "")"/>
<div class="inlineBlock">
<span class="centerVertical">@RoomInfo.RoomName</span>
@if (ChildContent is not null) {
diff --git a/MatrixRoomUtils.Web/appsettings.Development.json b/MatrixRoomUtils.Web/appsettings.Development.json
new file mode 100644
index 0000000..e203e94
--- /dev/null
+++ b/MatrixRoomUtils.Web/appsettings.Development.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Debug",
+ "System": "Information",
+ "Microsoft": "Information"
+ }
+ }
+}
diff --git a/MatrixRoomUtils.Web/appsettings.json b/MatrixRoomUtils.Web/appsettings.json
new file mode 100644
index 0000000..e203e94
--- /dev/null
+++ b/MatrixRoomUtils.Web/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Debug",
+ "System": "Information",
+ "Microsoft": "Information"
+ }
+ }
+}
diff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/jetbrains-mono.css b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/jetbrains-mono.css
index aa98602..78aedd2 100644
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/jetbrains-mono.css
+++ b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/jetbrains-mono.css
@@ -14,7 +14,6 @@
font-family: JetBrainsMono;
font-style: normal;
font-weight: 200;
- src: url("./ttf/JetBrainsMono-ExtraLight.ttf") format("truetype");
src: url("./webfonts/JetBrainsMono-ExtraLight.woff2") format("woff2");
}
@@ -22,7 +21,6 @@
font-family: JetBrainsMono;
font-style: normal;
font-weight: 300;
- src: url("./ttf/JetBrainsMono-Light.ttf") format("truetype");
src: url("./webfonts/JetBrainsMono-Light.woff2") format("woff2");
}
@@ -30,7 +28,6 @@
font-family: JetBrainsMono;
font-style: normal;
font-weight: 400;
- src: url("./ttf/JetBrainsMono-Regular.ttf") format("truetype");
src: url("./webfonts/JetBrainsMono-Regular.woff2") format("woff2");
}
@@ -38,7 +35,6 @@
font-family: JetBrainsMono;
font-style: normal;
font-weight: 500;
- src: url("./ttf/JetBrainsMono-Medium.ttf") format("truetype");
src: url("./webfonts/JetBrainsMono-Medium.woff2") format("woff2");
}
@@ -46,7 +42,6 @@
font-family: JetBrainsMono;
font-style: normal;
font-weight: 600;
- src: url("./ttf/JetBrainsMono-SemiBold.ttf") format("truetype");
src: url("./webfonts/JetBrainsMono-SemiBold.woff2") format("woff2");
}
@@ -54,7 +49,6 @@
font-family: JetBrainsMono;
font-style: normal;
font-weight: 700;
- src: url("./ttf/JetBrainsMono-Bold.ttf") format("truetype");
src: url("./webfonts/JetBrainsMono-Bold.woff2") format("woff2");
}
@@ -62,7 +56,6 @@
font-family: JetBrainsMono;
font-style: normal;
font-weight: 800;
- src: url("./ttf/JetBrainsMono-ExtraBold.ttf") format("truetype");
src: url("./webfonts/JetBrainsMono-ExtraBold.woff2") format("woff2");
}
@@ -72,7 +65,6 @@
font-family: JetBrainsMono;
font-style: italic;
font-weight: 100;
- src: url("./ttf/JetBrainsMono-ThinItalic.ttf") format("truetype");
src: url("./webfonts/JetBrainsMono-ThinItalic.woff2") format("woff2");
}
@@ -80,7 +72,6 @@
font-family: JetBrainsMono;
font-style: italic;
font-weight: 200;
- src: url("./ttf/JetBrainsMono-ExtraLightItalic.ttf") format("truetype");
src: url("./webfonts/JetBrainsMono-ExtraLightItalic.woff2") format("woff2");
}
@@ -88,7 +79,6 @@
font-family: JetBrainsMono;
font-style: italic;
font-weight: 300;
- src: url("./ttf/JetBrainsMono-LightItalic.ttf") format("truetype");
src: url("./webfonts/JetBrainsMono-LightItalic.woff2") format("woff2");
}
@@ -96,7 +86,6 @@
font-family: JetBrainsMono;
font-style: italic;
font-weight: 400;
- src: url("./ttf/JetBrainsMono-Italic.ttf") format("truetype");
src: url("./webfonts/JetBrainsMono-Italic.woff2") format("woff2");
}
@@ -104,7 +93,6 @@
font-family: JetBrainsMono;
font-style: italic;
font-weight: 500;
- src: url("./ttf/JetBrainsMono-MediumItalic.ttf") format("truetype");
src: url("./webfonts/JetBrainsMono-MediumItalic.woff2") format("woff2");
}
@@ -112,7 +100,6 @@
font-family: JetBrainsMono;
font-style: italic;
font-weight: 600;
- src: url("./ttf/JetBrainsMono-SemiBoldItalic.ttf") format("truetype");
src: url("./webfonts/JetBrainsMono-SemiBoldItalic.woff2") format("woff2");
}
@@ -120,7 +107,6 @@
font-family: JetBrainsMono;
font-style: italic;
font-weight: 700;
- src: url("./ttf/JetBrainsMono-BoldItalic.ttf") format("truetype");
src: url("./webfonts/JetBrainsMono-BoldItalic.woff2") format("woff2");
}
@@ -128,6 +114,5 @@
font-family: JetBrainsMono;
font-style: italic;
font-weight: 800;
- src: url("./ttf/JetBrainsMono-ExtraBoldItalic.ttf") format("truetype");
src: url("./webfonts/JetBrainsMono-ExtraBoldItalic.woff2") format("woff2");
}
\ No newline at end of file
diff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Bold.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Bold.ttf
deleted file mode 100644
index 8c93043..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Bold.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-BoldItalic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-BoldItalic.ttf
deleted file mode 100644
index 1ddf216..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-BoldItalic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-ExtraBold.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-ExtraBold.ttf
deleted file mode 100644
index 435d7a7..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-ExtraBold.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-ExtraBoldItalic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-ExtraBoldItalic.ttf
deleted file mode 100644
index 79e616e..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-ExtraBoldItalic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-ExtraLight.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-ExtraLight.ttf
deleted file mode 100644
index c131cbf..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-ExtraLight.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-ExtraLightItalic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-ExtraLightItalic.ttf
deleted file mode 100644
index a768985..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-ExtraLightItalic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Italic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Italic.ttf
deleted file mode 100644
index ccc9d6a..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Italic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Light.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Light.ttf
deleted file mode 100644
index 15f15a2..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Light.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-LightItalic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-LightItalic.ttf
deleted file mode 100644
index 506208f..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-LightItalic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Medium.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Medium.ttf
deleted file mode 100644
index 9767115..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Medium.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-MediumItalic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-MediumItalic.ttf
deleted file mode 100644
index 415a9e3..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-MediumItalic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Regular.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Regular.ttf
deleted file mode 100644
index dff66cc..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Regular.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-SemiBold.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-SemiBold.ttf
deleted file mode 100644
index a70e69b..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-SemiBold.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-SemiBoldItalic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-SemiBoldItalic.ttf
deleted file mode 100644
index 968602e..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-SemiBoldItalic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Thin.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Thin.ttf
deleted file mode 100644
index 7dbe2ac..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-Thin.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-ThinItalic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-ThinItalic.ttf
deleted file mode 100644
index c6ad6c2..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMono-ThinItalic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Bold.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Bold.ttf
deleted file mode 100644
index f78f84f..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Bold.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-BoldItalic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-BoldItalic.ttf
deleted file mode 100644
index 9fb8c83..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-BoldItalic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-ExtraBold.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-ExtraBold.ttf
deleted file mode 100644
index fe5be6a..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-ExtraBold.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-ExtraBoldItalic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-ExtraBoldItalic.ttf
deleted file mode 100644
index 59fc980..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-ExtraBoldItalic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-ExtraLight.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-ExtraLight.ttf
deleted file mode 100644
index 6da7b75..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-ExtraLight.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-ExtraLightItalic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-ExtraLightItalic.ttf
deleted file mode 100644
index 5733efc..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-ExtraLightItalic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Italic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Italic.ttf
deleted file mode 100644
index 4e9c380..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Italic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Light.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Light.ttf
deleted file mode 100644
index 0b79b0c..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Light.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-LightItalic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-LightItalic.ttf
deleted file mode 100644
index b5e0842..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-LightItalic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Medium.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Medium.ttf
deleted file mode 100644
index 1454372..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Medium.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-MediumItalic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-MediumItalic.ttf
deleted file mode 100644
index 8d63c6c..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-MediumItalic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Regular.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Regular.ttf
deleted file mode 100644
index 70d2ec9..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Regular.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-SemiBold.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-SemiBold.ttf
deleted file mode 100644
index ce60a88..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-SemiBold.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-SemiBoldItalic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-SemiBoldItalic.ttf
deleted file mode 100644
index 3b3f8f6..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-SemiBoldItalic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Thin.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Thin.ttf
deleted file mode 100644
index bea837e..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-Thin.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-ThinItalic.ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-ThinItalic.ttf
deleted file mode 100644
index f0bfed7..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/ttf/JetBrainsMonoNL-ThinItalic.ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/variable/JetBrainsMono-Italic[wght].ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/variable/JetBrainsMono-Italic[wght].ttf
deleted file mode 100644
index 5414835..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/variable/JetBrainsMono-Italic[wght].ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/variable/JetBrainsMono[wght].ttf b/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/variable/JetBrainsMono[wght].ttf
deleted file mode 100644
index b60e77f..0000000
--- a/MatrixRoomUtils.Web/wwwroot/css/jetbrains-mono/variable/JetBrainsMono[wght].ttf
+++ /dev/null
Binary files differdiff --git a/MatrixRoomUtils.Web/wwwroot/css/open-iconic/font/css/open-iconic-bootstrap.min.css b/MatrixRoomUtils.Web/wwwroot/css/open-iconic/font/css/open-iconic-bootstrap.min.css
index 4664f2e..24fae0c 100644
--- a/MatrixRoomUtils.Web/wwwroot/css/open-iconic/font/css/open-iconic-bootstrap.min.css
+++ b/MatrixRoomUtils.Web/wwwroot/css/open-iconic/font/css/open-iconic-bootstrap.min.css
@@ -1 +1,948 @@
-@font-face{font-family:Icons;src:url(../fonts/open-iconic.eot);src:url(../fonts/open-iconic.eot?#iconic-sm) format('embedded-opentype'),url(../fonts/open-iconic.woff) format('woff'),url(../fonts/open-iconic.ttf) format('truetype'),url(../fonts/open-iconic.otf) format('opentype'),url(../fonts/open-iconic.svg#iconic-sm) format('svg');font-weight:400;font-style:normal}.oi{position:relative;top:1px;display:inline-block;speak:none;font-family:Icons;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.oi:empty:before{width:1em;text-align:center;box-sizing:content-box}.oi.oi-align-center:before{text-align:center}.oi.oi-align-left:before{text-align:left}.oi.oi-align-right:before{text-align:right}.oi.oi-flip-horizontal:before{-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.oi.oi-flip-vertical:before{-webkit-transform:scale(1,-1);-ms-transform:scale(-1,1);transform:scale(1,-1)}.oi.oi-flip-horizontal-vertical:before{-webkit-transform:scale(-1,-1);-ms-transform:scale(-1,1);transform:scale(-1,-1)}.oi-account-login:before{content:'\e000'}.oi-account-logout:before{content:'\e001'}.oi-action-redo:before{content:'\e002'}.oi-action-undo:before{content:'\e003'}.oi-align-center:before{content:'\e004'}.oi-align-left:before{content:'\e005'}.oi-align-right:before{content:'\e006'}.oi-aperture:before{content:'\e007'}.oi-arrow-bottom:before{content:'\e008'}.oi-arrow-circle-bottom:before{content:'\e009'}.oi-arrow-circle-left:before{content:'\e00a'}.oi-arrow-circle-right:before{content:'\e00b'}.oi-arrow-circle-top:before{content:'\e00c'}.oi-arrow-left:before{content:'\e00d'}.oi-arrow-right:before{content:'\e00e'}.oi-arrow-thick-bottom:before{content:'\e00f'}.oi-arrow-thick-left:before{content:'\e010'}.oi-arrow-thick-right:before{content:'\e011'}.oi-arrow-thick-top:before{content:'\e012'}.oi-arrow-top:before{content:'\e013'}.oi-audio-spectrum:before{content:'\e014'}.oi-audio:before{content:'\e015'}.oi-badge:before{content:'\e016'}.oi-ban:before{content:'\e017'}.oi-bar-chart:before{content:'\e018'}.oi-basket:before{content:'\e019'}.oi-battery-empty:before{content:'\e01a'}.oi-battery-full:before{content:'\e01b'}.oi-beaker:before{content:'\e01c'}.oi-bell:before{content:'\e01d'}.oi-bluetooth:before{content:'\e01e'}.oi-bold:before{content:'\e01f'}.oi-bolt:before{content:'\e020'}.oi-book:before{content:'\e021'}.oi-bookmark:before{content:'\e022'}.oi-box:before{content:'\e023'}.oi-briefcase:before{content:'\e024'}.oi-british-pound:before{content:'\e025'}.oi-browser:before{content:'\e026'}.oi-brush:before{content:'\e027'}.oi-bug:before{content:'\e028'}.oi-bullhorn:before{content:'\e029'}.oi-calculator:before{content:'\e02a'}.oi-calendar:before{content:'\e02b'}.oi-camera-slr:before{content:'\e02c'}.oi-caret-bottom:before{content:'\e02d'}.oi-caret-left:before{content:'\e02e'}.oi-caret-right:before{content:'\e02f'}.oi-caret-top:before{content:'\e030'}.oi-cart:before{content:'\e031'}.oi-chat:before{content:'\e032'}.oi-check:before{content:'\e033'}.oi-chevron-bottom:before{content:'\e034'}.oi-chevron-left:before{content:'\e035'}.oi-chevron-right:before{content:'\e036'}.oi-chevron-top:before{content:'\e037'}.oi-circle-check:before{content:'\e038'}.oi-circle-x:before{content:'\e039'}.oi-clipboard:before{content:'\e03a'}.oi-clock:before{content:'\e03b'}.oi-cloud-download:before{content:'\e03c'}.oi-cloud-upload:before{content:'\e03d'}.oi-cloud:before{content:'\e03e'}.oi-cloudy:before{content:'\e03f'}.oi-code:before{content:'\e040'}.oi-cog:before{content:'\e041'}.oi-collapse-down:before{content:'\e042'}.oi-collapse-left:before{content:'\e043'}.oi-collapse-right:before{content:'\e044'}.oi-collapse-up:before{content:'\e045'}.oi-command:before{content:'\e046'}.oi-comment-square:before{content:'\e047'}.oi-compass:before{content:'\e048'}.oi-contrast:before{content:'\e049'}.oi-copywriting:before{content:'\e04a'}.oi-credit-card:before{content:'\e04b'}.oi-crop:before{content:'\e04c'}.oi-dashboard:before{content:'\e04d'}.oi-data-transfer-download:before{content:'\e04e'}.oi-data-transfer-upload:before{content:'\e04f'}.oi-delete:before{content:'\e050'}.oi-dial:before{content:'\e051'}.oi-document:before{content:'\e052'}.oi-dollar:before{content:'\e053'}.oi-double-quote-sans-left:before{content:'\e054'}.oi-double-quote-sans-right:before{content:'\e055'}.oi-double-quote-serif-left:before{content:'\e056'}.oi-double-quote-serif-right:before{content:'\e057'}.oi-droplet:before{content:'\e058'}.oi-eject:before{content:'\e059'}.oi-elevator:before{content:'\e05a'}.oi-ellipses:before{content:'\e05b'}.oi-envelope-closed:before{content:'\e05c'}.oi-envelope-open:before{content:'\e05d'}.oi-euro:before{content:'\e05e'}.oi-excerpt:before{content:'\e05f'}.oi-expand-down:before{content:'\e060'}.oi-expand-left:before{content:'\e061'}.oi-expand-right:before{content:'\e062'}.oi-expand-up:before{content:'\e063'}.oi-external-link:before{content:'\e064'}.oi-eye:before{content:'\e065'}.oi-eyedropper:before{content:'\e066'}.oi-file:before{content:'\e067'}.oi-fire:before{content:'\e068'}.oi-flag:before{content:'\e069'}.oi-flash:before{content:'\e06a'}.oi-folder:before{content:'\e06b'}.oi-fork:before{content:'\e06c'}.oi-fullscreen-enter:before{content:'\e06d'}.oi-fullscreen-exit:before{content:'\e06e'}.oi-globe:before{content:'\e06f'}.oi-graph:before{content:'\e070'}.oi-grid-four-up:before{content:'\e071'}.oi-grid-three-up:before{content:'\e072'}.oi-grid-two-up:before{content:'\e073'}.oi-hard-drive:before{content:'\e074'}.oi-header:before{content:'\e075'}.oi-headphones:before{content:'\e076'}.oi-heart:before{content:'\e077'}.oi-home:before{content:'\e078'}.oi-image:before{content:'\e079'}.oi-inbox:before{content:'\e07a'}.oi-infinity:before{content:'\e07b'}.oi-info:before{content:'\e07c'}.oi-italic:before{content:'\e07d'}.oi-justify-center:before{content:'\e07e'}.oi-justify-left:before{content:'\e07f'}.oi-justify-right:before{content:'\e080'}.oi-key:before{content:'\e081'}.oi-laptop:before{content:'\e082'}.oi-layers:before{content:'\e083'}.oi-lightbulb:before{content:'\e084'}.oi-link-broken:before{content:'\e085'}.oi-link-intact:before{content:'\e086'}.oi-list-rich:before{content:'\e087'}.oi-list:before{content:'\e088'}.oi-location:before{content:'\e089'}.oi-lock-locked:before{content:'\e08a'}.oi-lock-unlocked:before{content:'\e08b'}.oi-loop-circular:before{content:'\e08c'}.oi-loop-square:before{content:'\e08d'}.oi-loop:before{content:'\e08e'}.oi-magnifying-glass:before{content:'\e08f'}.oi-map-marker:before{content:'\e090'}.oi-map:before{content:'\e091'}.oi-media-pause:before{content:'\e092'}.oi-media-play:before{content:'\e093'}.oi-media-record:before{content:'\e094'}.oi-media-skip-backward:before{content:'\e095'}.oi-media-skip-forward:before{content:'\e096'}.oi-media-step-backward:before{content:'\e097'}.oi-media-step-forward:before{content:'\e098'}.oi-media-stop:before{content:'\e099'}.oi-medical-cross:before{content:'\e09a'}.oi-menu:before{content:'\e09b'}.oi-microphone:before{content:'\e09c'}.oi-minus:before{content:'\e09d'}.oi-monitor:before{content:'\e09e'}.oi-moon:before{content:'\e09f'}.oi-move:before{content:'\e0a0'}.oi-musical-note:before{content:'\e0a1'}.oi-paperclip:before{content:'\e0a2'}.oi-pencil:before{content:'\e0a3'}.oi-people:before{content:'\e0a4'}.oi-person:before{content:'\e0a5'}.oi-phone:before{content:'\e0a6'}.oi-pie-chart:before{content:'\e0a7'}.oi-pin:before{content:'\e0a8'}.oi-play-circle:before{content:'\e0a9'}.oi-plus:before{content:'\e0aa'}.oi-power-standby:before{content:'\e0ab'}.oi-print:before{content:'\e0ac'}.oi-project:before{content:'\e0ad'}.oi-pulse:before{content:'\e0ae'}.oi-puzzle-piece:before{content:'\e0af'}.oi-question-mark:before{content:'\e0b0'}.oi-rain:before{content:'\e0b1'}.oi-random:before{content:'\e0b2'}.oi-reload:before{content:'\e0b3'}.oi-resize-both:before{content:'\e0b4'}.oi-resize-height:before{content:'\e0b5'}.oi-resize-width:before{content:'\e0b6'}.oi-rss-alt:before{content:'\e0b7'}.oi-rss:before{content:'\e0b8'}.oi-script:before{content:'\e0b9'}.oi-share-boxed:before{content:'\e0ba'}.oi-share:before{content:'\e0bb'}.oi-shield:before{content:'\e0bc'}.oi-signal:before{content:'\e0bd'}.oi-signpost:before{content:'\e0be'}.oi-sort-ascending:before{content:'\e0bf'}.oi-sort-descending:before{content:'\e0c0'}.oi-spreadsheet:before{content:'\e0c1'}.oi-star:before{content:'\e0c2'}.oi-sun:before{content:'\e0c3'}.oi-tablet:before{content:'\e0c4'}.oi-tag:before{content:'\e0c5'}.oi-tags:before{content:'\e0c6'}.oi-target:before{content:'\e0c7'}.oi-task:before{content:'\e0c8'}.oi-terminal:before{content:'\e0c9'}.oi-text:before{content:'\e0ca'}.oi-thumb-down:before{content:'\e0cb'}.oi-thumb-up:before{content:'\e0cc'}.oi-timer:before{content:'\e0cd'}.oi-transfer:before{content:'\e0ce'}.oi-trash:before{content:'\e0cf'}.oi-underline:before{content:'\e0d0'}.oi-vertical-align-bottom:before{content:'\e0d1'}.oi-vertical-align-center:before{content:'\e0d2'}.oi-vertical-align-top:before{content:'\e0d3'}.oi-video:before{content:'\e0d4'}.oi-volume-high:before{content:'\e0d5'}.oi-volume-low:before{content:'\e0d6'}.oi-volume-off:before{content:'\e0d7'}.oi-warning:before{content:'\e0d8'}.oi-wifi:before{content:'\e0d9'}.oi-wrench:before{content:'\e0da'}.oi-x:before{content:'\e0db'}.oi-yen:before{content:'\e0dc'}.oi-zoom-in:before{content:'\e0dd'}.oi-zoom-out:before{content:'\e0de'}
\ No newline at end of file
+@font-face {
+ font-family: Icons;
+ src: url(../fonts/open-iconic.eot);
+ src: url(../fonts/open-iconic.eot?#iconic-sm) format('embedded-opentype'), url(../fonts/open-iconic.woff) format('woff'), url(../fonts/open-iconic.ttf) format('truetype'), url(../fonts/open-iconic.otf) format('opentype'), url(../fonts/open-iconic.svg#iconic-sm) format('svg');
+ font-weight: 400;
+ font-style: normal
+}
+
+.oi {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ speak: none;
+ font-family: Icons;
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale
+}
+
+.oi:empty:before {
+ width: 1em;
+ text-align: center;
+ box-sizing: content-box
+}
+
+.oi.oi-align-center:before {
+ text-align: center
+}
+
+.oi.oi-align-left:before {
+ text-align: left
+}
+
+.oi.oi-align-right:before {
+ text-align: right
+}
+
+.oi.oi-flip-horizontal:before {
+ -webkit-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1)
+}
+
+.oi.oi-flip-vertical:before {
+ -webkit-transform: scale(1, -1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(1, -1)
+}
+
+.oi.oi-flip-horizontal-vertical:before {
+ -webkit-transform: scale(-1, -1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, -1)
+}
+
+.oi-account-login:before {
+ content: '\e000'
+}
+
+.oi-account-logout:before {
+ content: '\e001'
+}
+
+.oi-action-redo:before {
+ content: '\e002'
+}
+
+.oi-action-undo:before {
+ content: '\e003'
+}
+
+.oi-align-center:before {
+ content: '\e004'
+}
+
+.oi-align-left:before {
+ content: '\e005'
+}
+
+.oi-align-right:before {
+ content: '\e006'
+}
+
+.oi-aperture:before {
+ content: '\e007'
+}
+
+.oi-arrow-bottom:before {
+ content: '\e008'
+}
+
+.oi-arrow-circle-bottom:before {
+ content: '\e009'
+}
+
+.oi-arrow-circle-left:before {
+ content: '\e00a'
+}
+
+.oi-arrow-circle-right:before {
+ content: '\e00b'
+}
+
+.oi-arrow-circle-top:before {
+ content: '\e00c'
+}
+
+.oi-arrow-left:before {
+ content: '\e00d'
+}
+
+.oi-arrow-right:before {
+ content: '\e00e'
+}
+
+.oi-arrow-thick-bottom:before {
+ content: '\e00f'
+}
+
+.oi-arrow-thick-left:before {
+ content: '\e010'
+}
+
+.oi-arrow-thick-right:before {
+ content: '\e011'
+}
+
+.oi-arrow-thick-top:before {
+ content: '\e012'
+}
+
+.oi-arrow-top:before {
+ content: '\e013'
+}
+
+.oi-audio-spectrum:before {
+ content: '\e014'
+}
+
+.oi-audio:before {
+ content: '\e015'
+}
+
+.oi-badge:before {
+ content: '\e016'
+}
+
+.oi-ban:before {
+ content: '\e017'
+}
+
+.oi-bar-chart:before {
+ content: '\e018'
+}
+
+.oi-basket:before {
+ content: '\e019'
+}
+
+.oi-battery-empty:before {
+ content: '\e01a'
+}
+
+.oi-battery-full:before {
+ content: '\e01b'
+}
+
+.oi-beaker:before {
+ content: '\e01c'
+}
+
+.oi-bell:before {
+ content: '\e01d'
+}
+
+.oi-bluetooth:before {
+ content: '\e01e'
+}
+
+.oi-bold:before {
+ content: '\e01f'
+}
+
+.oi-bolt:before {
+ content: '\e020'
+}
+
+.oi-book:before {
+ content: '\e021'
+}
+
+.oi-bookmark:before {
+ content: '\e022'
+}
+
+.oi-box:before {
+ content: '\e023'
+}
+
+.oi-briefcase:before {
+ content: '\e024'
+}
+
+.oi-british-pound:before {
+ content: '\e025'
+}
+
+.oi-browser:before {
+ content: '\e026'
+}
+
+.oi-brush:before {
+ content: '\e027'
+}
+
+.oi-bug:before {
+ content: '\e028'
+}
+
+.oi-bullhorn:before {
+ content: '\e029'
+}
+
+.oi-calculator:before {
+ content: '\e02a'
+}
+
+.oi-calendar:before {
+ content: '\e02b'
+}
+
+.oi-camera-slr:before {
+ content: '\e02c'
+}
+
+.oi-caret-bottom:before {
+ content: '\e02d'
+}
+
+.oi-caret-left:before {
+ content: '\e02e'
+}
+
+.oi-caret-right:before {
+ content: '\e02f'
+}
+
+.oi-caret-top:before {
+ content: '\e030'
+}
+
+.oi-cart:before {
+ content: '\e031'
+}
+
+.oi-chat:before {
+ content: '\e032'
+}
+
+.oi-check:before {
+ content: '\e033'
+}
+
+.oi-chevron-bottom:before {
+ content: '\e034'
+}
+
+.oi-chevron-left:before {
+ content: '\e035'
+}
+
+.oi-chevron-right:before {
+ content: '\e036'
+}
+
+.oi-chevron-top:before {
+ content: '\e037'
+}
+
+.oi-circle-check:before {
+ content: '\e038'
+}
+
+.oi-circle-x:before {
+ content: '\e039'
+}
+
+.oi-clipboard:before {
+ content: '\e03a'
+}
+
+.oi-clock:before {
+ content: '\e03b'
+}
+
+.oi-cloud-download:before {
+ content: '\e03c'
+}
+
+.oi-cloud-upload:before {
+ content: '\e03d'
+}
+
+.oi-cloud:before {
+ content: '\e03e'
+}
+
+.oi-cloudy:before {
+ content: '\e03f'
+}
+
+.oi-code:before {
+ content: '\e040'
+}
+
+.oi-cog:before {
+ content: '\e041'
+}
+
+.oi-collapse-down:before {
+ content: '\e042'
+}
+
+.oi-collapse-left:before {
+ content: '\e043'
+}
+
+.oi-collapse-right:before {
+ content: '\e044'
+}
+
+.oi-collapse-up:before {
+ content: '\e045'
+}
+
+.oi-command:before {
+ content: '\e046'
+}
+
+.oi-comment-square:before {
+ content: '\e047'
+}
+
+.oi-compass:before {
+ content: '\e048'
+}
+
+.oi-contrast:before {
+ content: '\e049'
+}
+
+.oi-copywriting:before {
+ content: '\e04a'
+}
+
+.oi-credit-card:before {
+ content: '\e04b'
+}
+
+.oi-crop:before {
+ content: '\e04c'
+}
+
+.oi-dashboard:before {
+ content: '\e04d'
+}
+
+.oi-data-transfer-download:before {
+ content: '\e04e'
+}
+
+.oi-data-transfer-upload:before {
+ content: '\e04f'
+}
+
+.oi-delete:before {
+ content: '\e050'
+}
+
+.oi-dial:before {
+ content: '\e051'
+}
+
+.oi-document:before {
+ content: '\e052'
+}
+
+.oi-dollar:before {
+ content: '\e053'
+}
+
+.oi-double-quote-sans-left:before {
+ content: '\e054'
+}
+
+.oi-double-quote-sans-right:before {
+ content: '\e055'
+}
+
+.oi-double-quote-serif-left:before {
+ content: '\e056'
+}
+
+.oi-double-quote-serif-right:before {
+ content: '\e057'
+}
+
+.oi-droplet:before {
+ content: '\e058'
+}
+
+.oi-eject:before {
+ content: '\e059'
+}
+
+.oi-elevator:before {
+ content: '\e05a'
+}
+
+.oi-ellipses:before {
+ content: '\e05b'
+}
+
+.oi-envelope-closed:before {
+ content: '\e05c'
+}
+
+.oi-envelope-open:before {
+ content: '\e05d'
+}
+
+.oi-euro:before {
+ content: '\e05e'
+}
+
+.oi-excerpt:before {
+ content: '\e05f'
+}
+
+.oi-expand-down:before {
+ content: '\e060'
+}
+
+.oi-expand-left:before {
+ content: '\e061'
+}
+
+.oi-expand-right:before {
+ content: '\e062'
+}
+
+.oi-expand-up:before {
+ content: '\e063'
+}
+
+.oi-external-link:before {
+ content: '\e064'
+}
+
+.oi-eye:before {
+ content: '\e065'
+}
+
+.oi-eyedropper:before {
+ content: '\e066'
+}
+
+.oi-file:before {
+ content: '\e067'
+}
+
+.oi-fire:before {
+ content: '\e068'
+}
+
+.oi-flag:before {
+ content: '\e069'
+}
+
+.oi-flash:before {
+ content: '\e06a'
+}
+
+.oi-folder:before {
+ content: '\e06b'
+}
+
+.oi-fork:before {
+ content: '\e06c'
+}
+
+.oi-fullscreen-enter:before {
+ content: '\e06d'
+}
+
+.oi-fullscreen-exit:before {
+ content: '\e06e'
+}
+
+.oi-globe:before {
+ content: '\e06f'
+}
+
+.oi-graph:before {
+ content: '\e070'
+}
+
+.oi-grid-four-up:before {
+ content: '\e071'
+}
+
+.oi-grid-three-up:before {
+ content: '\e072'
+}
+
+.oi-grid-two-up:before {
+ content: '\e073'
+}
+
+.oi-hard-drive:before {
+ content: '\e074'
+}
+
+.oi-header:before {
+ content: '\e075'
+}
+
+.oi-headphones:before {
+ content: '\e076'
+}
+
+.oi-heart:before {
+ content: '\e077'
+}
+
+.oi-home:before {
+ content: '\e078'
+}
+
+.oi-image:before {
+ content: '\e079'
+}
+
+.oi-inbox:before {
+ content: '\e07a'
+}
+
+.oi-infinity:before {
+ content: '\e07b'
+}
+
+.oi-info:before {
+ content: '\e07c'
+}
+
+.oi-italic:before {
+ content: '\e07d'
+}
+
+.oi-justify-center:before {
+ content: '\e07e'
+}
+
+.oi-justify-left:before {
+ content: '\e07f'
+}
+
+.oi-justify-right:before {
+ content: '\e080'
+}
+
+.oi-key:before {
+ content: '\e081'
+}
+
+.oi-laptop:before {
+ content: '\e082'
+}
+
+.oi-layers:before {
+ content: '\e083'
+}
+
+.oi-lightbulb:before {
+ content: '\e084'
+}
+
+.oi-link-broken:before {
+ content: '\e085'
+}
+
+.oi-link-intact:before {
+ content: '\e086'
+}
+
+.oi-list-rich:before {
+ content: '\e087'
+}
+
+.oi-list:before {
+ content: '\e088'
+}
+
+.oi-location:before {
+ content: '\e089'
+}
+
+.oi-lock-locked:before {
+ content: '\e08a'
+}
+
+.oi-lock-unlocked:before {
+ content: '\e08b'
+}
+
+.oi-loop-circular:before {
+ content: '\e08c'
+}
+
+.oi-loop-square:before {
+ content: '\e08d'
+}
+
+.oi-loop:before {
+ content: '\e08e'
+}
+
+.oi-magnifying-glass:before {
+ content: '\e08f'
+}
+
+.oi-map-marker:before {
+ content: '\e090'
+}
+
+.oi-map:before {
+ content: '\e091'
+}
+
+.oi-media-pause:before {
+ content: '\e092'
+}
+
+.oi-media-play:before {
+ content: '\e093'
+}
+
+.oi-media-record:before {
+ content: '\e094'
+}
+
+.oi-media-skip-backward:before {
+ content: '\e095'
+}
+
+.oi-media-skip-forward:before {
+ content: '\e096'
+}
+
+.oi-media-step-backward:before {
+ content: '\e097'
+}
+
+.oi-media-step-forward:before {
+ content: '\e098'
+}
+
+.oi-media-stop:before {
+ content: '\e099'
+}
+
+.oi-medical-cross:before {
+ content: '\e09a'
+}
+
+.oi-menu:before {
+ content: '\e09b'
+}
+
+.oi-microphone:before {
+ content: '\e09c'
+}
+
+.oi-minus:before {
+ content: '\e09d'
+}
+
+.oi-monitor:before {
+ content: '\e09e'
+}
+
+.oi-moon:before {
+ content: '\e09f'
+}
+
+.oi-move:before {
+ content: '\e0a0'
+}
+
+.oi-musical-note:before {
+ content: '\e0a1'
+}
+
+.oi-paperclip:before {
+ content: '\e0a2'
+}
+
+.oi-pencil:before {
+ content: '\e0a3'
+}
+
+.oi-people:before {
+ content: '\e0a4'
+}
+
+.oi-person:before {
+ content: '\e0a5'
+}
+
+.oi-phone:before {
+ content: '\e0a6'
+}
+
+.oi-pie-chart:before {
+ content: '\e0a7'
+}
+
+.oi-pin:before {
+ content: '\e0a8'
+}
+
+.oi-play-circle:before {
+ content: '\e0a9'
+}
+
+.oi-plus:before {
+ content: '\e0aa'
+}
+
+.oi-power-standby:before {
+ content: '\e0ab'
+}
+
+.oi-print:before {
+ content: '\e0ac'
+}
+
+.oi-project:before {
+ content: '\e0ad'
+}
+
+.oi-pulse:before {
+ content: '\e0ae'
+}
+
+.oi-puzzle-piece:before {
+ content: '\e0af'
+}
+
+.oi-question-mark:before {
+ content: '\e0b0'
+}
+
+.oi-rain:before {
+ content: '\e0b1'
+}
+
+.oi-random:before {
+ content: '\e0b2'
+}
+
+.oi-reload:before {
+ content: '\e0b3'
+}
+
+.oi-resize-both:before {
+ content: '\e0b4'
+}
+
+.oi-resize-height:before {
+ content: '\e0b5'
+}
+
+.oi-resize-width:before {
+ content: '\e0b6'
+}
+
+.oi-rss-alt:before {
+ content: '\e0b7'
+}
+
+.oi-rss:before {
+ content: '\e0b8'
+}
+
+.oi-script:before {
+ content: '\e0b9'
+}
+
+.oi-share-boxed:before {
+ content: '\e0ba'
+}
+
+.oi-share:before {
+ content: '\e0bb'
+}
+
+.oi-shield:before {
+ content: '\e0bc'
+}
+
+.oi-signal:before {
+ content: '\e0bd'
+}
+
+.oi-signpost:before {
+ content: '\e0be'
+}
+
+.oi-sort-ascending:before {
+ content: '\e0bf'
+}
+
+.oi-sort-descending:before {
+ content: '\e0c0'
+}
+
+.oi-spreadsheet:before {
+ content: '\e0c1'
+}
+
+.oi-star:before {
+ content: '\e0c2'
+}
+
+.oi-sun:before {
+ content: '\e0c3'
+}
+
+.oi-tablet:before {
+ content: '\e0c4'
+}
+
+.oi-tag:before {
+ content: '\e0c5'
+}
+
+.oi-tags:before {
+ content: '\e0c6'
+}
+
+.oi-target:before {
+ content: '\e0c7'
+}
+
+.oi-task:before {
+ content: '\e0c8'
+}
+
+.oi-terminal:before {
+ content: '\e0c9'
+}
+
+.oi-text:before {
+ content: '\e0ca'
+}
+
+.oi-thumb-down:before {
+ content: '\e0cb'
+}
+
+.oi-thumb-up:before {
+ content: '\e0cc'
+}
+
+.oi-timer:before {
+ content: '\e0cd'
+}
+
+.oi-transfer:before {
+ content: '\e0ce'
+}
+
+.oi-trash:before {
+ content: '\e0cf'
+}
+
+.oi-underline:before {
+ content: '\e0d0'
+}
+
+.oi-vertical-align-bottom:before {
+ content: '\e0d1'
+}
+
+.oi-vertical-align-center:before {
+ content: '\e0d2'
+}
+
+.oi-vertical-align-top:before {
+ content: '\e0d3'
+}
+
+.oi-video:before {
+ content: '\e0d4'
+}
+
+.oi-volume-high:before {
+ content: '\e0d5'
+}
+
+.oi-volume-low:before {
+ content: '\e0d6'
+}
+
+.oi-volume-off:before {
+ content: '\e0d7'
+}
+
+.oi-warning:before {
+ content: '\e0d8'
+}
+
+.oi-wifi:before {
+ content: '\e0d9'
+}
+
+.oi-wrench:before {
+ content: '\e0da'
+}
+
+.oi-x:before {
+ content: '\e0db'
+}
+
+.oi-yen:before {
+ content: '\e0dc'
+}
+
+.oi-zoom-in:before {
+ content: '\e0dd'
+}
+
+.oi-zoom-out:before {
+ content: '\e0de'
+}
\ No newline at end of file
diff --git a/MatrixRoomUtils.Web/wwwroot/index.html b/MatrixRoomUtils.Web/wwwroot/index.html
index 0439e62..3fc740a 100644
--- a/MatrixRoomUtils.Web/wwwroot/index.html
+++ b/MatrixRoomUtils.Web/wwwroot/index.html
@@ -36,6 +36,7 @@
console.log("Element is not an HTMLElement", element);
}
}
+
function getWidth(element) {
console.log("getWidth", element);
if (element == null) return 0;
@@ -47,6 +48,7 @@
}
return 0;
}
+
function getWindowDimensions() {
return {
width: window.innerWidth,
diff --git a/deploy-chroot.sh b/deploy-chroot.sh
new file mode 100755
index 0000000..f5c7394
--- /dev/null
+++ b/deploy-chroot.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+# if [ -f "/tmp/mru-build/dev/null" ]; then sudo umount /tmp/mru-build/dev || exit 1; fi
+# if [ -f "/tmp/mru-build/proc/uptime" ]; then sudo umount /tmp/mru-build/proc || exit 1; fi
+# if [ -d "/tmp/mru-build/sys/power" ]; then sudo umount /tmp/mru-build/sys || exit 1; fi
+# sudo rm -rf /tmp/mru-build
+# mkdir /tmp/mru-build
+#
+# # ARCH
+# #sudo pacstrap -C ./pacman.conf -c -G -M -P /tmp/mru-build dotnet-sdk aspnet-runtime busybox kitty-terminfo
+# #sudo arch-chroot /tmp/mru-build sh -c 'for i in `busybox --list-full`; do busybox ln /bin/busybox /$i; done'
+#
+# # DEBIAN
+# sudo debootstrap stable /tmp/mru-build http://deb.debian.org/debian
+# sudo arch-chroot /tmp/mru-build bash --login -c 'apt update; apt upgrade -y; apt install -y curl'
+# sudo arch-chroot /tmp/mru-build bash --login -c 'curl https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb; echo $PATH; dpkg -i packages-microsoft-prod.deb; rm packages-microsoft-prod.deb'
+# sudo arch-chroot /tmp/mru-build bash --login -c 'apt update; apt upgrade -y; apt install -y dotnet-sdk-8.0'
+
+
+#git clone --recursive .git /tmp/mru-build/tmp
+sudo rm -rf /tmp/mru-build/build/
+cp ./ /tmp/mru-build/build/ -r
+#sudo arch-chroot /tmp/mru-build bash --login -c 'ping nuget.org -c 4'
+sudo arch-chroot /tmp/mru-build bash --login -c 'cd /build; dotnet restore -v:n'
+sudo arch-chroot /tmp/mru-build bash --login -c 'cd /build; dotnet clean --r -v:n'
+#sudo arch-chroot /tmp/mru-build sh -c 'cd /build; dotnet build -v d'
+
+echo "-- End of script! --"
\ No newline at end of file
diff --git a/deploy-local.sh b/deploy-local.sh
new file mode 100755
index 0000000..a030a21
--- /dev/null
+++ b/deploy-local.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+ssh 192.168.0.13 "bash -xc 'sudo rm -rf /tmp/mru-build'"
+ssh 192.168.0.13 "bash -xc 'sudo mkdir /tmp/mru-build'"
+ssh 192.168.0.13 "bash -xc 'sudo chown \`basename \$PWD\`: /tmp/mru-build'"
+rsync -raP ./ 192.168.0.13:/tmp/mru-build
+ssh 192.168.0.13 "sh -c 'cd /tmp/mru-build/MatrixRoomUtils.Web; dotnet clean --r -v:n'"
+#ssh 192.168.0.13 "sh -c 'cd /tmp/mru-build/MatrixRoomUtils.Web; dotnet build -c Release'"
+ssh 192.168.0.13 "sh -c 'cd /tmp/mru-build/MatrixRoomUtils.Web; dotnet publish -c Release'"
+rsync -raP 192.168.0.13:/tmp/mru-build/MatrixRoomUtils.Web/bin/Release/net8.0/publish/wwwroot/ /tmp/mru-wwwroot --delete
+rsync -raP /tmp/mru-wwwroot/ rory.gay:/data/nginx/html_mru --delete
+ssh rory.gay chmod o+r /data/nginx/html_mru -Rc
+ssh rory.gay sudo find /data/nginx/html_mru -type d -exec chmod o+rx {} +
+
+echo "-- End of script! --"
diff --git a/deploy.sh b/deploy.sh
index ea42481..dd91c42 100755
--- a/deploy.sh
+++ b/deploy.sh
@@ -11,8 +11,8 @@ BASE_DIR=`pwd`
rm -rf **/bin/Release
cd MatrixRoomUtils.Web
dotnet publish -c Release
-rsync -raP bin/Release/net7.0/publish/wwwroot/ rory.gay:/data/nginx/html_mru/
-cd bin/Release/net7.0/publish/wwwroot
+rsync -raP bin/Release/net8.0/publish/wwwroot/ rory.gay:/data/nginx/html_mru/
+cd bin/Release/net8.0/publish/wwwroot
tar cf - ./ | xz -z -9 - > $BASE_DIR/MRU-BIN.tar.xz
#rsync -raP $BASE_DIR/MRU-BIN.tar.xz rory.gay:/data/nginx/html_mru/MRU-BIN.tar.xz
rm -rf $BASE_DIR/MRU-BIN.tar.xz
diff --git a/mirrorlist b/mirrorlist
new file mode 100644
index 0000000..2929fbc
--- /dev/null
+++ b/mirrorlist
@@ -0,0 +1,30 @@
+################################################################################
+################# Arch Linux mirrorlist generated by Reflector #################
+################################################################################
+
+# With: reflector @/etc/xdg/reflector/reflector.conf
+# When: 2021-07-23 10:41:38 UTC
+# From: https://www.archlinux.org/mirrors/status/json/
+# Retrieved: 2021-07-23 10:40:59 UTC
+# Last Check: 2021-07-23 09:53:23 UTC
+
+Server = https://mirror.osbeck.com/archlinux/$repo/os/$arch
+Server = https://archmirror.it/repos/$repo/os/$arch
+Server = https://mirror.pkgbuild.com/$repo/os/$arch
+Server = https://europe.mirror.pkgbuild.com/$repo/os/$arch
+Server = https://mirror.chaoticum.net/arch/$repo/os/$arch
+Server = https://ftp.rnl.tecnico.ulisboa.pt/pub/archlinux/$repo/os/$arch
+Server = https://mirror.pseudoform.org/$repo/os/$arch
+Server = https://mirror.f4st.host/archlinux/$repo/os/$arch
+Server = https://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch
+Server = https://mirror.telepoint.bg/archlinux/$repo/os/$arch
+Server = https://phinau.de/arch/$repo/os/$arch
+Server = https://arch.mirror.constant.com/$repo/os/$arch
+Server = https://archlinux.thaller.ws/$repo/os/$arch
+Server = https://arch.mirror.square-r00t.net/$repo/os/$arch
+Server = https://mirror.lty.me/archlinux/$repo/os/$arch
+Server = https://archmirror1.octyl.net/$repo/os/$arch
+Server = https://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch
+Server = https://america.mirror.pkgbuild.com/$repo/os/$arch
+Server = https://archlinux.za.mirror.allworldit.com/archlinux/$repo/os/$arch
+Server = https://asia.mirror.pkgbuild.com/$repo/os/$arch
diff --git a/pacman.conf b/pacman.conf
new file mode 100644
index 0000000..8f2650c
--- /dev/null
+++ b/pacman.conf
@@ -0,0 +1,104 @@
+#
+# /etc/pacman.conf
+#
+# See the pacman.conf(5) manpage for option and repository directives
+
+#
+# GENERAL OPTIONS
+#
+[options]
+# The following paths are commented out with their default values listed.
+# If you wish to use different paths, uncomment and update the paths.
+#RootDir = /
+#DBPath = /var/lib/pacman/
+CacheDir = /tmp/
+#LogFile = /var/log/pacman.log
+#GPGDir = ./gnupg/
+#HookDir = ./hooks/
+#HoldPkg = pacman glibc
+#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
+#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
+#CleanMethod = KeepInstalled
+Architecture = auto
+
+# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+#IgnorePkg =
+#IgnoreGroup =
+
+#NoUpgrade =
+#NoExtract =
+
+# Misc options
+#UseSyslog
+Color
+#NoProgressBar
+CheckSpace
+#VerbosePkgLists
+ParallelDownloads = 32
+ILoveCandy
+
+# By default, pacman accepts packages signed by keys that its local keyring
+# trusts (see pacman-key and its man page), as well as unsigned packages.
+#SigLevel = Required DatabaseOptional
+SigLevel = Never
+LocalFileSigLevel = Never
+RemoteFileSigLevel = Never
+
+# NOTE: You must run `pacman-key --init` before first using pacman; the local
+# keyring can then be populated with the keys of all official Arch Linux
+# packagers with `pacman-key --populate archlinux`.
+
+#
+# REPOSITORIES
+# - can be defined here or included from another file
+# - pacman will search repositories in the order defined here
+# - local/custom mirrors can be added here or in separate files
+# - repositories listed first will take precedence when packages
+# have identical names, regardless of version number
+# - URLs will have $repo replaced by the name of the current repo
+# - URLs will have $arch replaced by the name of the architecture
+#
+# Repository entries are of the format:
+# [repo-name]
+# Server = ServerName
+# Include = IncludePath
+#
+# The header [repo-name] is crucial - it must be present and
+# uncommented to enable the repo.
+#
+
+# The testing repositories are disabled by default. To enable, uncomment the
+# repo name header and Include lines. You can add preferred servers immediately
+# after the header, and they will be used before the default mirrors.
+
+#[testing]
+#Include = ./mirrorlist
+
+[core]
+#Include = ./mirrorlist
+Server = https://mirror.pkgbuild.com/$repo/os/$arch
+
+[extra]
+#Include = ./mirrorlist
+Server = https://mirror.pkgbuild.com/$repo/os/$arch
+
+#[community-testing]
+#Include = ./mirrorlist
+
+#[community]
+#Include = ./mirrorlist
+
+# If you want to run 32 bit applications on your x86_64 system,
+# enable the multilib repositories as required here.
+
+#[multilib-testing]
+#Include = ./mirrorlist
+
+#[multilib]
+#Include = ./mirrorlist
+
+# An example of a custom package repository. See the pacman manpage for
+# tips on creating your own repositories.
+#[custom]
+#SigLevel = Optional TrustAll
+#Server = file:///home/custompkgs
|